12005-08-23  David Harrison  <harrison@apple.com>
2
3        Reviewed by Darin.
4
5        <rdar://problem/4226539> REGRESSION: Blank content at http://www.the-leaky-cauldron.org/ with Denver and TOT
6
7        Test cases added:
8        * layout-tests/fast/parser/comments-expected.txt: Added.
9        * layout-tests/fast/parser/comments.html: Added.
10
11        * khtml/html/htmltokenizer.cpp:
12        (khtml::HTMLTokenizer::parseComment):
13        When non-space follows comment end, ignore that comment end.
14
152005-08-23  Justin Garcia  <justin.garcia@apple.com>
16
17        Reviewed by mjs
18        
19        Temporary workaround for gcc-5216+ bug 4213314.  Don't use NSMake* convenience methods inside KWQ_BLOCK_EXCEPTIONS.
20
21        * kwq/KWQKConfigBase.mm:
22        (KConfig::readEntry):
23        * kwq/KWQKHTMLPart.mm:
24        (KWQKHTMLPart::attributedString):
25        * kwq/KWQListBox.mm:
26        (QListBox::sizeForNumberOfLines):
27        * kwq/KWQPainter.mm:
28        (QPainter::drawTiledPixmap):
29        * kwq/KWQScrollView.mm:
30        (QScrollView::resizeContents):
31        (QScrollView::contentsToViewport):
32        (QScrollView::viewportToContents):
33        (QScrollView::setContentsPosRecursive):
34        (QScrollView::ensureVisible):
35        (QScrollView::ensureRectVisibleCentered):
36
372005-08-22  John Sullivan  <sullivan@apple.com>
38
39        Reviewed by Beth Dakin.
40        
41        - fixed <rdar://problem/4227019> Several 32-byte leaks after choosing pop-up menu at dzone198.apple.com
42
43        Test cases added: none, doesn't affect layout. I did execute run-layout-tests to verify that there
44        were no surprises though.
45
46        * khtml/ecma/xmlhttprequest.h:
47        use SharedPtr for onReadyStateChangeListener and onLoadListener
48        * khtml/ecma/xmlhttprequest.cpp:
49        (KJS::XMLHttpRequest::getValueProperty):
50        use notNull() instead of testing SharedPtrs against 0
51        (KJS::XMLHttpRequest::putValueProperty):
52        use reset() to set values of SharedPtrs; eliminate ref()s that had no deref()s
53        (KJS::XMLHttpRequest::mark):
54        use notNull() instead of testing SharedPtrs against 0
55        (KJS::XMLHttpRequest::XMLHttpRequest):
56        don't initialize SharedPtrs
57        (KJS::XMLHttpRequest::changeState):
58        use notNull() instead of testing SharedPtrs against 0
59
602005-08-22  David Harrison  <harrison@apple.com>
61
62        Reviewed by Justin.
63
64        <rdar://problem/4221384> Denver Regression: stickies widget crashed on 8F15 when pasting text
65
66        Test cases added:  None.  Problem triggered by simple paste, which lots of the
67        editing tests already do, but also required particular memory layout/cleanup state, which
68        is not specifiable in our tests.
69
70        * khtml/editing/markup.cpp:
71        (khtml::createFragmentFromText):
72        Ref the new paragraph element right away, rather than allocating more memory first.
73
742005-08-22  Eric Seidel  <eseidel@apple.com>
75        Fix by Tobias Lidskog <tobiaslidskog@mac.com>
76
77        Reviewed by eseidel.
78
79        * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
80        (KCanvasFilterQuartz::inputImage): null check
81        (KCanvasFEBlendQuartz::getCIFilter): ditto
82        (KCanvasFEColorMatrixQuartz::getCIFilter): ditto
83        (KCanvasFEMergeQuartz::getCIFilter): ditto
84        Added NULL checks to avoid throwing Obj-C exceptions from
85        CoreImage either when rendering bad SVGs or in cases where
86        we do not yet implement a certain SVG filter element.
87        http://bugs.webkit.org/show_bug.cgi?id=4554
88
892005-08-22  Eric Seidel  <eseidel@apple.com>
90
91        Reviewed by darin.
92
93        * ksvg2/impl/SVGScriptElementImpl.cpp:
94        (SVGScriptElementImpl::executeScript):
95        Added necessary Interpreter::lock()/unlock() calls to prevent
96        assertion failure when loading SVGs with JavaScript.
97        http://bugs.webkit.org/show_bug.cgi?id=4580
98
992005-08-22  Eric Seidel  <eseidel@apple.com>
100
101        Reviewed by darin.
102
103        * WebCore.xcodeproj/project.pbxproj:
104        Applied Darin's nmedit workaround/build-speedup to WebCore+SVG.
105        http://bugs.webkit.org/show_bug.cgi?id=4577
106
1072005-08-22  Eric Seidel  <eseidel@apple.com>
108        Fix by Tobias Lidskog <tobiaslidskog@mac.com>
109
110        Reviewed by eseidel.
111
112        * kcanvas/device/KRenderingPaintServerSolid.cpp:
113        * kcanvas/device/KRenderingPaintServerSolid.h:
114        * kcanvas/device/quartz/KRenderingPaintServerQuartz.mm:
115        (KRenderingPaintServerSolidQuartz::draw):
116        * svg-tests/W3C-SVG-1.1/animate-elem-22-b-expected.png:
117        * svg-tests/W3C-SVG-1.1/masking-opacity-01-b-expected.png:
118        Group opacity was doubly-applied.  This patch fixes that.
119        http://bugs.webkit.org/show_bug.cgi?id=4463
120
1212005-08-22  Eric Seidel  <eseidel@apple.com>
122        Fix by Tobias Lidskog <tobiaslidskog@mac.com>
123
124        Reviewed by eseidel.
125
126        * kcanvas/device/quartz/QuartzSupport.mm:
127        (CGPathToCFStringApplierFunction): Fixed output for curves.
128        * svg-tests/W3C-SVG-1.1/Resources/filters-example-01-f-expected.txt:
129        * svg-tests/W3C-SVG-1.1/Resources/paths-data-01-f-expected.txt:
130        * svg-tests/W3C-SVG-1.1/Resources/paths-data-02-f-expected.txt:
131        * svg-tests/W3C-SVG-1.1/Resources/paths-data-03-f-expected.txt:
132        * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-b-expected.txt:
133        * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-f-expected.txt:
134        * svg-tests/W3C-SVG-1.1/animate-elem-06-t-expected.txt:
135        * svg-tests/W3C-SVG-1.1/animate-elem-07-t-expected.txt:
136        * svg-tests/W3C-SVG-1.1/animate-elem-08-t-expected.txt:
137        * svg-tests/W3C-SVG-1.1/animate-elem-28-t-expected.txt:
138        * svg-tests/W3C-SVG-1.1/filters-example-01-b-expected.txt:
139        * svg-tests/W3C-SVG-1.1/filters-morph-01-f-expected.txt:
140        * svg-tests/W3C-SVG-1.1/fonts-elem-01-t-expected.txt:
141        * svg-tests/W3C-SVG-1.1/fonts-elem-02-t-expected.txt:
142        * svg-tests/W3C-SVG-1.1/fonts-elem-03-b-expected.txt:
143        * svg-tests/W3C-SVG-1.1/fonts-elem-04-b-expected.txt:
144        * svg-tests/W3C-SVG-1.1/metadata-example-01-b-expected.txt:
145        * svg-tests/W3C-SVG-1.1/paths-data-01-t-expected.txt:
146        * svg-tests/W3C-SVG-1.1/paths-data-02-t-expected.txt:
147        * svg-tests/W3C-SVG-1.1/paths-data-03-f-expected.txt:
148        * svg-tests/W3C-SVG-1.1/shapes-rect-01-t-expected.txt:
149        * svg-tests/W3C-SVG-1.1/text-path-01-b-expected.txt:
150        Fixed output for curves and updated tests accordingly.
151        http://bugs.webkit.org/show_bug.cgi?id=4553
152
1532005-08-22  Eric Seidel  <eseidel@apple.com>
154        Fix by Tobias Lidskog <tobiaslidskog@mac.com>
155
156        Reviewed by eseidel.
157
158        * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
159        (KCanvasFilterQuartz::prepareFilter):
160        * kcanvas/device/quartz/KRenderingDeviceQuartz.h:
161        * kcanvas/device/quartz/KRenderingDeviceQuartz.mm:
162        (KRenderingDeviceQuartz::filtersEnabled):
163        (KRenderingDeviceQuartz::setFiltersEnabled):
164        (KRenderingDeviceQuartz::hardwareRenderingEnabled):
165        (KRenderingDeviceQuartz::setHardwareRenderingEnabled):
166        Added ability to disable hardware rendering (for testing).
167        http://bugs.webkit.org/show_bug.cgi?id=4550
168
1692005-08-20  Darin Adler  <darin@apple.com>
170
171        * khtml/xml/xml_namespace_table.cpp: Removed this file that's been obsolete and
172        unused for a while.
173        * khtml/xml/xml_namespace_table.h: Ditto.
174
1752005-08-19  Anders Carlsson  <andersca@mac.com>
176
177        Reviewed by Darin.
178        Landed by David Harrison.
179
180        - fixed http://bugs.webkit.org/show_bug.cgi?id=4475
181          <noscript>, <noframes>, <nolayer> and <noembed> elements should be in the DOM
182
183        Test cases added:
184        * layout-tests/fast/dom/no-elements-expected.txt: Added.
185        * layout-tests/fast/dom/no-elements.html: Added.
186
187        * khtml/html/html_elementimpl.cpp:
188        (blockTagList):
189        Add noembed and nolayer to the list of block tags.
190        
191        * khtml/html/htmlparser.cpp:
192        (HTMLParser::noembedCreateErrorCheck):
193        (HTMLParser::noframesCreateErrorCheck):
194        (HTMLParser::noscriptCreateErrorCheck):
195        (HTMLParser::nolayerCreateErrorCheck):
196        Make sure these elements are created, but that they won't have any children.
197        (Except for <noscript> when JavaScript is turned off).
198        
199        * layout-tests/dom/html/level2/html/HTMLElement113-expected.txt:
200        * layout-tests/dom/html/level2/html/HTMLElement114-expected.txt:
201        * layout-tests/dom/html/level2/html/HTMLElement142-expected.txt:
202        * layout-tests/dom/html/level2/html/HTMLElement143-expected.txt:
203        * layout-tests/dom/html/level2/html/HTMLElement26-expected.txt:
204        * layout-tests/dom/html/level2/html/HTMLElement27-expected.txt:
205        * layout-tests/dom/html/level2/html/HTMLElement55-expected.txt:
206        * layout-tests/dom/html/level2/html/HTMLElement56-expected.txt:
207        * layout-tests/dom/html/level2/html/HTMLElement84-expected.txt:
208        * layout-tests/dom/html/level2/html/HTMLElement85-expected.txt:
209        These tests pass now.
210
2112005-08-19  Darin Adler  <darin@apple.com>
212
213        Reviewed by Maciej.
214        Landed by David Harrison.
215        
216        Test cases added:
217	manual-tests/onclick_in_noncontent.html: Added.
218        (a manual test because Darin saw no way to exercise the hit testing code from JavaScript)
219
220        - fixed http://bugs.webkit.org/show_bug.cgi?id=3662
221          onClick event for TD element doesn't fire unless its contents are clicked
222
223        * khtml/rendering/render_block.cpp:
224        (khtml::RenderBlock::nodeAtPoint):
225        Take the border extra into account when hit testing just as we do when
226        painting the background of a table cell. OK for other renderers because
227        they have a border extra of 0.
228
2292005-08-19  Anders Carlsson  <andersca@mac.com>
230
231        Reviewed by Darin.
232        Landed by David Harrison.
233
234        Test cases added: None.  Fixes existing tests.
235
236        * khtml/ecma/kjs_dom.cpp:
237        Attribute values are writable
238        
239        * khtml/xml/dom_docimpl.cpp:
240        (DocumentImpl::createAttributeNS):
241        Update for new AttrImpl constructor.
242        
243        * khtml/xml/dom_elementimpl.cpp:
244        (AttributeImpl::allocateImpl):
245        Update for new AttrImpl constructor.
246        
247        (AttrImpl::AttrImpl):
248        Initialize m_ignoreChildCount to 0. If createTextChild.
249        is true, create a child text node with the contents
250        of the attribute value.
251        
252        (AttrImpl::setValue):
253        Remove all children and create a new text node with the contents
254        of the attribute value.
255        
256        (AttrImpl::cloneNode):
257        Make sure to clone any children.
258        
259        (AttrImpl::childrenChanged):
260        If m_ignoreChildrenChanged is 0, update the attribute value.
261        
262        * khtml/xml/dom_elementimpl.h:
263        Add childrenChanged, update AttrImpl constructor and
264        add m_ignoreChildrenChanged to AttrImpl.
265
266        * khtml/xml/dom_nodeimpl.cpp:
267        (DOM::NodeImpl::normalize):
268        If an element has attributes, make sure to normalize them.
269
270        * layout-tests/dom/html/level1/core/hc_attrappendchild1-expected.txt:
271        * layout-tests/dom/html/level1/core/hc_attrappendchild3-expected.txt:
272        * layout-tests/dom/html/level1/core/hc_attrappendchild6-expected.txt:
273        * layout-tests/dom/html/level1/core/hc_attrchildnodes1-expected.txt:
274        * layout-tests/dom/html/level1/core/hc_attrchildnodes2-expected.txt:
275        * layout-tests/dom/html/level1/core/hc_attrclonenode1-expected.txt:
276        * layout-tests/dom/html/level1/core/hc_attrcreatetextnode-expected.txt:
277        * layout-tests/dom/html/level1/core/hc_attrfirstchild-expected.txt:
278        * layout-tests/dom/html/level1/core/hc_attrhaschildnodes-expected.txt:
279        * layout-tests/dom/html/level1/core/hc_attrinsertbefore1-expected.txt:
280        * layout-tests/dom/html/level1/core/hc_attrinsertbefore2-expected.txt:
281        * layout-tests/dom/html/level1/core/hc_attrinsertbefore3-expected.txt:
282        * layout-tests/dom/html/level1/core/hc_attrinsertbefore4-expected.txt:
283        * layout-tests/dom/html/level1/core/hc_attrlastchild-expected.txt:
284        * layout-tests/dom/html/level1/core/hc_attrnormalize-expected.txt:
285        * layout-tests/dom/html/level1/core/hc_attrremovechild1-expected.txt:
286        * layout-tests/dom/html/level1/core/hc_attrreplacechild1-expected.txt:
287        * layout-tests/dom/html/level1/core/hc_attrreplacechild2-expected.txt:
288        * layout-tests/dom/html/level1/core/hc_attrsetvalue1-expected.txt:
289        * layout-tests/dom/html/level1/core/hc_attrsetvalue2-expected.txt:
290        * layout-tests/dom/html/level1/core/hc_elementnormalize2-expected.txt:
291        These tests pass now.
292
2932005-08-19  Mitz Pettel  <opendarwin.org@mitzpettel.com>
294
295        Reviewed by Darin.
296        Landed by David Harrison
297
298	- Fixes <http://bugs.webkit.org/show_bug.cgi?id=4523>
299          REGRESSION assertion failure in Window::getValueProperty accessing window.konqueror
300
301        Test cases added: N/A for this code removal
302
303        Remove all traces of the konqueror property
304
305        * khtml/ecma/kjs_window.cpp:
306        (KJS::Window::getValueProperty):
307        * khtml/ecma/kjs_window.h:
308        (KJS::Window::):
309
3102005-08-19  Antti Koivisto  <koivisto@iki.fi>
311
312        Reviewed by Darin
313        Landed by David Harrison
314
315	- Fixes <http://bugs.webkit.org/show_bug.cgi?id=4379>
316          negative margins allowed where they should not
317
318        Test cases added:
319	layout-tests/fast/block/margin-collapse/104.html: Added.
320	layout-tests/fast/block/margin-collapse/104-expected.txt: Added.
321
322        * khtml/rendering/render_box.cpp:
323        (RenderBox::calcHorizontalMargins):
324
3252005-08-19  Eric Seidel  <eseidel@apple.com>
326        Change from Tobias Lidskog <tobiaslidskog@mac.com>
327
328        Reviewed by eseidel.
329
330        * kcanvas/KCanvasContainer.cpp:
331        (KCanvasContainer::bbox): avoid unnecessary computation.
332        (KCanvasContainer::collisions):
333        * kcanvas/device/quartz/KCanvasItemQuartz.mm:
334        (KCanvasItemQuartz::draw):
335        (KCanvasItemQuartz::hitsPath): use untranslated point
336        * svg-tests/W3C-SVG-1.1/metadata-example-01-b-expected.txt:
337        Performance improvements to bbox and hit-testing fix.
338        http://bugs.webkit.org/show_bug.cgi?id=4459
339
3402005-08-19  Eric Seidel  <eseidel@apple.com>
341
342        Reviewed by darin.
343
344        * kcanvas/device/quartz/KRenderingPaintServerGradientQuartz.mm:
345        (cgGradientCallback):
346        Fixes forgotten memcopy.
347        http://bugs.webkit.org/show_bug.cgi?id=4529
348
3492005-08-19  Vicki Murley  <vicki@apple.com>
350
351	- remove this test, I disabled it in my last checkin
352
353        * layout-tests/dom/html/level2/html/HTMLFormElement10.html: Removed.
354
3552005-08-19  Vicki Murley  <vicki@apple.com>
356
357        Reviewed by Geoff.
358 
359        - fixed <rdar://problem/4223107> frame tests in layout-tests/dom/html/level2/html 
360        have empty expected results
361
362        * layout-tests/dom/html/level2/html/selfhtml.js: wait until done before
363        dumping the render tree
364
365        * layout-tests/dom/html/level2/html/HTMLFormElement10.html-disabled: Disable this
366        test for now - its causing all tests after it to dump the render tree, even though
367        dumpAsText is enabled
368        
369        Update expected results for these tests:
370
371        * layout-tests/dom/html/level2/html/HTMLFrameElement01-expected.txt:
372        * layout-tests/dom/html/level2/html/HTMLFrameElement02-expected.txt:
373        * layout-tests/dom/html/level2/html/HTMLFrameElement03-expected.txt:
374        * layout-tests/dom/html/level2/html/HTMLFrameElement04-expected.txt:
375        * layout-tests/dom/html/level2/html/HTMLFrameElement05-expected.txt:
376        * layout-tests/dom/html/level2/html/HTMLFrameElement06-expected.txt:
377        * layout-tests/dom/html/level2/html/HTMLFrameElement07-expected.txt:
378        * layout-tests/dom/html/level2/html/HTMLFrameElement08-expected.txt:
379        * layout-tests/dom/html/level2/html/HTMLFrameSetElement01-expected.txt:
380        * layout-tests/dom/html/level2/html/HTMLFrameSetElement02-expected.txt:
381        * layout-tests/dom/html/level2/html/HTMLIFrameElement01-expected.txt:
382        * layout-tests/dom/html/level2/html/HTMLIFrameElement02-expected.txt:
383        * layout-tests/dom/html/level2/html/HTMLIFrameElement03-expected.txt:
384        * layout-tests/dom/html/level2/html/HTMLIFrameElement04-expected.txt:
385        * layout-tests/dom/html/level2/html/HTMLIFrameElement05-expected.txt:
386        * layout-tests/dom/html/level2/html/HTMLIFrameElement06-expected.txt:
387        * layout-tests/dom/html/level2/html/HTMLIFrameElement07-expected.txt:
388        * layout-tests/dom/html/level2/html/HTMLIFrameElement08-expected.txt:
389        * layout-tests/dom/html/level2/html/HTMLIFrameElement09-expected.txt:
390        * layout-tests/dom/html/level2/html/HTMLIFrameElement10-expected.txt:
391
3922005-08-19  Anders Carlsson  <andersca@mac.com>
393
394        Reviewed by Maciej.
395        Landed by Darin.
396
397	- Fixes <http://bugs.webkit.org/show_bug.cgi?id=3301>
398	innerHTML does not work for xhtml documents.
399	
400        Test cases added:
401	layout-tests/fast/dom/set-innerHTML.xhtml: Added.
402	layout-tests/fast/dom/set-innerHTML-expected.txt: Added.
403
404        * khtml/html/html_elementimpl.cpp:
405        (HTMLElementImpl::createContextualFragment):
406	Call parseXMLDocumentFragment if we're an xml document.
407	
408        * khtml/xml/xml_tokenizer.cpp:
409        (khtml::XMLTokenizer::pushNamespaces):
410	New function that takes an element.
411	
412        (khtml::XMLTokenizer::XMLTokenizer):
413	New constructor that takes a DocumentFragmentImpl and fills it.
414	
415        (khtml::parseXMLDocumentFragment):
416	New function that parses a document fragment.
417	
418        (khtml::XMLNamespaceStack::pushNamespaces):
419	New function that takes an element and pushes namespaces based on its 
420	xmlns attributes.
421	
422        * khtml/xml/xml_tokenizer.h:
423	Add parseXMLDocumentFragment declaration.
424	
4252005-08-18  Eric Seidel  <eseidel@apple.com>
426
427        No review needed, affects only SVGSupport.
428
429        Test cases added:
430        * svg-tests/W3C-SVG-1.1/Resources/animation-add-BE-09-expected.checksum: Added.
431        * svg-tests/W3C-SVG-1.1/Resources/animation-add-BE-09-expected.png: Added.
432        * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image1-expected.checksum: Added.
433        * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image1-expected.png: Added.
434        * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image2-expected.checksum: Added.
435        * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image2-expected.png: Added.
436        * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image3-expected.checksum: Added.
437        * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image3-expected.png: Added.
438        * svg-tests/W3C-SVG-1.1/Resources/coords-units-01-f-expected.checksum: Added.
439        * svg-tests/W3C-SVG-1.1/Resources/coords-units-01-f-expected.png: Added.
440        * svg-tests/W3C-SVG-1.1/Resources/ext-TestComic-expected.checksum: Added.
441        * svg-tests/W3C-SVG-1.1/Resources/ext-TestComic-expected.png: Added.
442        * svg-tests/W3C-SVG-1.1/Resources/filters-blend-01-f-expected.checksum: Added.
443        * svg-tests/W3C-SVG-1.1/Resources/filters-blend-01-f-expected.png: Added.
444        * svg-tests/W3C-SVG-1.1/Resources/filters-color-01-f-expected.checksum: Added.
445        * svg-tests/W3C-SVG-1.1/Resources/filters-color-01-f-expected.png: Added.
446        * svg-tests/W3C-SVG-1.1/Resources/filters-composite-01-f-expected.checksum: Added.
447        * svg-tests/W3C-SVG-1.1/Resources/filters-composite-01-f-expected.png: Added.
448        * svg-tests/W3C-SVG-1.1/Resources/filters-conv-01-f-expected.checksum: Added.
449        * svg-tests/W3C-SVG-1.1/Resources/filters-conv-01-f-expected.png: Added.
450        * svg-tests/W3C-SVG-1.1/Resources/filters-diffuse-01-f-expected.checksum: Added.
451        * svg-tests/W3C-SVG-1.1/Resources/filters-diffuse-01-f-expected.png: Added.
452        * svg-tests/W3C-SVG-1.1/Resources/filters-example-01-f-expected.checksum: Added.
453        * svg-tests/W3C-SVG-1.1/Resources/filters-example-01-f-expected.png: Added.
454        * svg-tests/W3C-SVG-1.1/Resources/interact-dom-01-f-expected.checksum: Added.
455        * svg-tests/W3C-SVG-1.1/Resources/interact-dom-01-f-expected.png: Added.
456        * svg-tests/W3C-SVG-1.1/Resources/interact-order-02-b-targ-expected.checksum: Added.
457        * svg-tests/W3C-SVG-1.1/Resources/interact-order-02-b-targ-expected.png: Added.
458        * svg-tests/W3C-SVG-1.1/Resources/interact-order-03-b-targ-expected.checksum: Added.
459        * svg-tests/W3C-SVG-1.1/Resources/interact-order-03-b-targ-expected.png: Added.
460        * svg-tests/W3C-SVG-1.1/Resources/linking-uri-01-b-expected.checksum: Added.
461        * svg-tests/W3C-SVG-1.1/Resources/linking-uri-01-b-expected.png: Added.
462        * svg-tests/W3C-SVG-1.1/Resources/linkingCircle-f-expected.checksum: Added.
463        * svg-tests/W3C-SVG-1.1/Resources/linkingCircle-f-expected.png: Added.
464        * svg-tests/W3C-SVG-1.1/Resources/linkingToc-t-expected.checksum: Added.
465        * svg-tests/W3C-SVG-1.1/Resources/linkingToc-t-expected.png: Added.
466        * svg-tests/W3C-SVG-1.1/Resources/paths-data-01-f-expected.checksum: Added.
467        * svg-tests/W3C-SVG-1.1/Resources/paths-data-01-f-expected.png: Added.
468        * svg-tests/W3C-SVG-1.1/Resources/paths-data-02-f-expected.checksum: Added.
469        * svg-tests/W3C-SVG-1.1/Resources/paths-data-02-f-expected.png: Added.
470        * svg-tests/W3C-SVG-1.1/Resources/paths-data-03-f-expected.checksum: Added.
471        * svg-tests/W3C-SVG-1.1/Resources/paths-data-03-f-expected.png: Added.
472        * svg-tests/W3C-SVG-1.1/Resources/paths-data-04-f-expected.checksum: Added.
473        * svg-tests/W3C-SVG-1.1/Resources/paths-data-04-f-expected.png: Added.
474        * svg-tests/W3C-SVG-1.1/Resources/rects-expected.checksum: Added.
475        * svg-tests/W3C-SVG-1.1/Resources/rects-expected.png: Added.
476        * svg-tests/W3C-SVG-1.1/Resources/rects_b-expected.checksum: Added.
477        * svg-tests/W3C-SVG-1.1/Resources/rects_b-expected.png: Added.
478        * svg-tests/W3C-SVG-1.1/Resources/shapes-ellipse-01-b-expected.checksum: Added.
479        * svg-tests/W3C-SVG-1.1/Resources/shapes-ellipse-01-b-expected.png: Added.
480        * svg-tests/W3C-SVG-1.1/Resources/shapes-ellipse-01-f-expected.checksum: Added.
481        * svg-tests/W3C-SVG-1.1/Resources/shapes-ellipse-01-f-expected.png: Added.
482        * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-b-expected.checksum: Added.
483        * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-b-expected.png: Added.
484        * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-f-expected.checksum: Added.
485        * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-f-expected.png: Added.
486        * svg-tests/W3C-SVG-1.1/Resources/struct-frag-01-B-expected.checksum: Added.
487        * svg-tests/W3C-SVG-1.1/Resources/struct-frag-01-B-expected.png: Added.
488        * svg-tests/W3C-SVG-1.1/Resources/text-align-01-f-expected.checksum: Added.
489        * svg-tests/W3C-SVG-1.1/Resources/text-align-01-f-expected.png: Added.
490        * svg-tests/W3C-SVG-1.1/Resources/text-align-02-f-expected.checksum: Added.
491        * svg-tests/W3C-SVG-1.1/Resources/text-align-02-f-expected.png: Added.
492        * svg-tests/W3C-SVG-1.1/Resources/text-align-03-f-expected.checksum: Added.
493        * svg-tests/W3C-SVG-1.1/Resources/text-align-03-f-expected.png: Added.
494        * svg-tests/W3C-SVG-1.1/Resources/text-altglyph-01-f-expected.checksum: Added.
495        * svg-tests/W3C-SVG-1.1/Resources/text-altglyph-01-f-expected.png: Added.
496        * svg-tests/W3C-SVG-1.1/Resources/text-extTref-BE-18-targ-expected.checksum: Added.
497        * svg-tests/W3C-SVG-1.1/Resources/text-extTref-BE-18-targ-expected.png: Added.
498        * svg-tests/W3C-SVG-1.1/Resources/text-intro-01-f-expected.checksum: Added.
499        * svg-tests/W3C-SVG-1.1/Resources/text-intro-01-f-expected.png: Added.
500        * svg-tests/W3C-SVG-1.1/Resources/text-tref-01-f-expected.checksum: Added.
501        * svg-tests/W3C-SVG-1.1/Resources/text-tref-01-f-expected.png: Added.
502        * svg-tests/W3C-SVG-1.1/Resources/text-ws-01-f-expected.checksum: Added.
503        * svg-tests/W3C-SVG-1.1/Resources/text-ws-01-f-expected.png: Added.
504        * svg-tests/W3C-SVG-1.1/Resources/toc-sv-expected.checksum: Added.
505        * svg-tests/W3C-SVG-1.1/Resources/toc-sv-expected.png: Added.
506        * svg-tests/W3C-SVG-1.1/Resources/toc-svcmp-expected.checksum: Added.
507        * svg-tests/W3C-SVG-1.1/Resources/toc-svcmp-expected.png: Added.
508        * svg-tests/W3C-SVG-1.1/animate-elem-02-t-expected.checksum: Added.
509        * svg-tests/W3C-SVG-1.1/animate-elem-02-t-expected.png: Added.
510        * svg-tests/W3C-SVG-1.1/animate-elem-03-t-expected.checksum: Added.
511        * svg-tests/W3C-SVG-1.1/animate-elem-03-t-expected.png: Added.
512        * svg-tests/W3C-SVG-1.1/animate-elem-04-t-expected.checksum: Added.
513        * svg-tests/W3C-SVG-1.1/animate-elem-04-t-expected.png: Added.
514        * svg-tests/W3C-SVG-1.1/animate-elem-05-t-expected.checksum: Added.
515        * svg-tests/W3C-SVG-1.1/animate-elem-05-t-expected.png: Added.
516        * svg-tests/W3C-SVG-1.1/animate-elem-06-t-expected.checksum: Added.
517        * svg-tests/W3C-SVG-1.1/animate-elem-06-t-expected.png: Added.
518        * svg-tests/W3C-SVG-1.1/animate-elem-07-t-expected.checksum: Added.
519        * svg-tests/W3C-SVG-1.1/animate-elem-07-t-expected.png: Added.
520        * svg-tests/W3C-SVG-1.1/animate-elem-08-t-expected.checksum: Added.
521        * svg-tests/W3C-SVG-1.1/animate-elem-08-t-expected.png: Added.
522        * svg-tests/W3C-SVG-1.1/animate-elem-09-t-expected.checksum: Added.
523        * svg-tests/W3C-SVG-1.1/animate-elem-09-t-expected.png: Added.
524        * svg-tests/W3C-SVG-1.1/animate-elem-10-t-expected.checksum: Added.
525        * svg-tests/W3C-SVG-1.1/animate-elem-10-t-expected.png: Added.
526        * svg-tests/W3C-SVG-1.1/animate-elem-11-t-expected.checksum: Added.
527        * svg-tests/W3C-SVG-1.1/animate-elem-11-t-expected.png: Added.
528        * svg-tests/W3C-SVG-1.1/animate-elem-12-t-expected.checksum: Added.
529        * svg-tests/W3C-SVG-1.1/animate-elem-12-t-expected.png: Added.
530        * svg-tests/W3C-SVG-1.1/animate-elem-13-t-expected.checksum: Added.
531        * svg-tests/W3C-SVG-1.1/animate-elem-13-t-expected.png: Added.
532        * svg-tests/W3C-SVG-1.1/animate-elem-14-t-expected.checksum: Added.
533        * svg-tests/W3C-SVG-1.1/animate-elem-14-t-expected.png: Added.
534        * svg-tests/W3C-SVG-1.1/animate-elem-15-t-expected.checksum: Added.
535        * svg-tests/W3C-SVG-1.1/animate-elem-15-t-expected.png: Added.
536        * svg-tests/W3C-SVG-1.1/animate-elem-16-t-expected.checksum: Added.
537        * svg-tests/W3C-SVG-1.1/animate-elem-16-t-expected.png: Added.
538        * svg-tests/W3C-SVG-1.1/animate-elem-17-t-expected.checksum: Added.
539        * svg-tests/W3C-SVG-1.1/animate-elem-17-t-expected.png: Added.
540        * svg-tests/W3C-SVG-1.1/animate-elem-18-t-expected.checksum: Added.
541        * svg-tests/W3C-SVG-1.1/animate-elem-18-t-expected.png: Added.
542        * svg-tests/W3C-SVG-1.1/animate-elem-19-t-expected.checksum: Added.
543        * svg-tests/W3C-SVG-1.1/animate-elem-19-t-expected.png: Added.
544        * svg-tests/W3C-SVG-1.1/animate-elem-20-t-expected.checksum: Added.
545        * svg-tests/W3C-SVG-1.1/animate-elem-20-t-expected.png: Added.
546        * svg-tests/W3C-SVG-1.1/animate-elem-21-t-expected.checksum: Added.
547        * svg-tests/W3C-SVG-1.1/animate-elem-21-t-expected.png: Added.
548        * svg-tests/W3C-SVG-1.1/animate-elem-22-b-expected.checksum: Added.
549        * svg-tests/W3C-SVG-1.1/animate-elem-22-b-expected.png: Added.
550        * svg-tests/W3C-SVG-1.1/animate-elem-23-t-expected.checksum: Added.
551        * svg-tests/W3C-SVG-1.1/animate-elem-23-t-expected.png: Added.
552        * svg-tests/W3C-SVG-1.1/animate-elem-24-t-expected.checksum: Added.
553        * svg-tests/W3C-SVG-1.1/animate-elem-24-t-expected.png: Added.
554        * svg-tests/W3C-SVG-1.1/animate-elem-25-t-expected.checksum: Added.
555        * svg-tests/W3C-SVG-1.1/animate-elem-25-t-expected.png: Added.
556        * svg-tests/W3C-SVG-1.1/animate-elem-26-t-expected.checksum: Added.
557        * svg-tests/W3C-SVG-1.1/animate-elem-26-t-expected.png: Added.
558        * svg-tests/W3C-SVG-1.1/animate-elem-27-t-expected.checksum: Added.
559        * svg-tests/W3C-SVG-1.1/animate-elem-27-t-expected.png: Added.
560        * svg-tests/W3C-SVG-1.1/animate-elem-28-t-expected.checksum: Added.
561        * svg-tests/W3C-SVG-1.1/animate-elem-28-t-expected.png: Added.
562        * svg-tests/W3C-SVG-1.1/animate-elem-29-b-expected.checksum: Added.
563        * svg-tests/W3C-SVG-1.1/animate-elem-29-b-expected.png: Added.
564        * svg-tests/W3C-SVG-1.1/color-prof-01-f-expected.checksum: Added.
565        * svg-tests/W3C-SVG-1.1/color-prof-01-f-expected.png: Added.
566        * svg-tests/W3C-SVG-1.1/color-prop-01-b-expected.checksum: Added.
567        * svg-tests/W3C-SVG-1.1/color-prop-01-b-expected.png: Added.
568        * svg-tests/W3C-SVG-1.1/color-prop-02-f-expected.checksum: Added.
569        * svg-tests/W3C-SVG-1.1/color-prop-02-f-expected.png: Added.
570        * svg-tests/W3C-SVG-1.1/color-prop-03-t-expected.checksum: Added.
571        * svg-tests/W3C-SVG-1.1/color-prop-03-t-expected.png: Added.
572        * svg-tests/W3C-SVG-1.1/coords-trans-01-b-expected.checksum: Added.
573        * svg-tests/W3C-SVG-1.1/coords-trans-01-b-expected.png: Added.
574        * svg-tests/W3C-SVG-1.1/coords-trans-02-t-expected.checksum: Added.
575        * svg-tests/W3C-SVG-1.1/coords-trans-02-t-expected.png: Added.
576        * svg-tests/W3C-SVG-1.1/coords-trans-03-t-expected.checksum: Added.
577        * svg-tests/W3C-SVG-1.1/coords-trans-03-t-expected.png: Added.
578        * svg-tests/W3C-SVG-1.1/coords-trans-04-t-expected.checksum: Added.
579        * svg-tests/W3C-SVG-1.1/coords-trans-04-t-expected.png: Added.
580        * svg-tests/W3C-SVG-1.1/coords-trans-05-t-expected.checksum: Added.
581        * svg-tests/W3C-SVG-1.1/coords-trans-05-t-expected.png: Added.
582        * svg-tests/W3C-SVG-1.1/coords-trans-06-t-expected.checksum: Added.
583        * svg-tests/W3C-SVG-1.1/coords-trans-06-t-expected.png: Added.
584        * svg-tests/W3C-SVG-1.1/coords-units-01-b-expected.checksum: Added.
585        * svg-tests/W3C-SVG-1.1/coords-units-01-b-expected.png: Added.
586        * svg-tests/W3C-SVG-1.1/coords-units-02-b-expected.checksum: Added.
587        * svg-tests/W3C-SVG-1.1/coords-units-02-b-expected.png: Added.
588        * svg-tests/W3C-SVG-1.1/coords-units-03-b-expected.checksum: Added.
589        * svg-tests/W3C-SVG-1.1/coords-units-03-b-expected.png: Added.
590        * svg-tests/W3C-SVG-1.1/coords-viewattr-01-b-expected.checksum: Added.
591        * svg-tests/W3C-SVG-1.1/coords-viewattr-01-b-expected.png: Added.
592        * svg-tests/W3C-SVG-1.1/coords-viewattr-02-b-expected.checksum: Added.
593        * svg-tests/W3C-SVG-1.1/coords-viewattr-02-b-expected.png: Added.
594        * svg-tests/W3C-SVG-1.1/extend-namespace-01-f-expected.checksum: Added.
595        * svg-tests/W3C-SVG-1.1/extend-namespace-01-f-expected.png: Added.
596        * svg-tests/W3C-SVG-1.1/filters-blend-01-b-expected.checksum: Added.
597        * svg-tests/W3C-SVG-1.1/filters-blend-01-b-expected.png: Added.
598        * svg-tests/W3C-SVG-1.1/filters-color-01-b-expected.checksum: Added.
599        * svg-tests/W3C-SVG-1.1/filters-color-01-b-expected.png: Added.
600        * svg-tests/W3C-SVG-1.1/filters-composite-02-b-expected.checksum: Added.
601        * svg-tests/W3C-SVG-1.1/filters-composite-02-b-expected.png: Added.
602        * svg-tests/W3C-SVG-1.1/filters-conv-01-f-expected.checksum: Added.
603        * svg-tests/W3C-SVG-1.1/filters-conv-01-f-expected.png: Added.
604        * svg-tests/W3C-SVG-1.1/filters-diffuse-01-f-expected.checksum: Added.
605        * svg-tests/W3C-SVG-1.1/filters-diffuse-01-f-expected.png: Added.
606        * svg-tests/W3C-SVG-1.1/filters-displace-01-f-expected.checksum: Added.
607        * svg-tests/W3C-SVG-1.1/filters-displace-01-f-expected.png: Added.
608        * svg-tests/W3C-SVG-1.1/filters-example-01-b-expected.checksum: Added.
609        * svg-tests/W3C-SVG-1.1/filters-example-01-b-expected.png: Added.
610        * svg-tests/W3C-SVG-1.1/filters-gauss-01-b-expected.checksum: Added.
611        * svg-tests/W3C-SVG-1.1/filters-gauss-01-b-expected.png: Added.
612        * svg-tests/W3C-SVG-1.1/filters-image-01-b-expected.checksum: Added.
613        * svg-tests/W3C-SVG-1.1/filters-image-01-b-expected.png: Added.
614        * svg-tests/W3C-SVG-1.1/filters-light-01-f-expected.checksum: Added.
615        * svg-tests/W3C-SVG-1.1/filters-light-01-f-expected.png: Added.
616        * svg-tests/W3C-SVG-1.1/filters-morph-01-f-expected.checksum: Added.
617        * svg-tests/W3C-SVG-1.1/filters-morph-01-f-expected.png: Added.
618        * svg-tests/W3C-SVG-1.1/filters-offset-01-b-expected.checksum: Added.
619        * svg-tests/W3C-SVG-1.1/filters-offset-01-b-expected.png: Added.
620        * svg-tests/W3C-SVG-1.1/filters-specular-01-f-expected.checksum: Added.
621        * svg-tests/W3C-SVG-1.1/filters-specular-01-f-expected.png: Added.
622        * svg-tests/W3C-SVG-1.1/filters-tile-01-b-expected.checksum: Added.
623        * svg-tests/W3C-SVG-1.1/filters-tile-01-b-expected.png: Added.
624        * svg-tests/W3C-SVG-1.1/fonts-elem-01-t-expected.checksum: Added.
625        * svg-tests/W3C-SVG-1.1/fonts-elem-01-t-expected.png: Added.
626        * svg-tests/W3C-SVG-1.1/fonts-elem-02-t-expected.checksum: Added.
627        * svg-tests/W3C-SVG-1.1/fonts-elem-02-t-expected.png: Added.
628        * svg-tests/W3C-SVG-1.1/fonts-elem-03-b-expected.checksum: Added.
629        * svg-tests/W3C-SVG-1.1/fonts-elem-03-b-expected.png: Added.
630        * svg-tests/W3C-SVG-1.1/fonts-elem-04-b-expected.checksum: Added.
631        * svg-tests/W3C-SVG-1.1/fonts-elem-04-b-expected.png: Added.
632        * svg-tests/W3C-SVG-1.1/interact-cursor-01-f-expected.checksum: Added.
633        * svg-tests/W3C-SVG-1.1/interact-cursor-01-f-expected.png: Added.
634        * svg-tests/W3C-SVG-1.1/interact-dom-01-b-expected.checksum: Added.
635        * svg-tests/W3C-SVG-1.1/interact-dom-01-b-expected.png: Added.
636        * svg-tests/W3C-SVG-1.1/interact-events-01-b-expected.checksum: Added.
637        * svg-tests/W3C-SVG-1.1/interact-events-01-b-expected.png: Added.
638        * svg-tests/W3C-SVG-1.1/interact-order-01-b-expected.checksum: Added.
639        * svg-tests/W3C-SVG-1.1/interact-order-01-b-expected.png: Added.
640        * svg-tests/W3C-SVG-1.1/interact-order-02-b-expected.checksum: Added.
641        * svg-tests/W3C-SVG-1.1/interact-order-02-b-expected.png: Added.
642        * svg-tests/W3C-SVG-1.1/interact-order-03-b-expected.checksum: Added.
643        * svg-tests/W3C-SVG-1.1/interact-order-03-b-expected.png: Added.
644        * svg-tests/W3C-SVG-1.1/interact-zoom-01-t-expected.checksum: Added.
645        * svg-tests/W3C-SVG-1.1/interact-zoom-01-t-expected.png: Added.
646        * svg-tests/W3C-SVG-1.1/linking-a-01-b-expected.checksum: Added.
647        * svg-tests/W3C-SVG-1.1/linking-a-01-b-expected.png: Added.
648        * svg-tests/W3C-SVG-1.1/linking-a-02-b-expected.checksum: Added.
649        * svg-tests/W3C-SVG-1.1/linking-a-02-b-expected.png: Added.
650        * svg-tests/W3C-SVG-1.1/linking-a-03-b-expected.checksum: Added.
651        * svg-tests/W3C-SVG-1.1/linking-a-03-b-expected.png: Added.
652        * svg-tests/W3C-SVG-1.1/linking-a-04-t-expected.checksum: Added.
653        * svg-tests/W3C-SVG-1.1/linking-a-04-t-expected.png: Added.
654        * svg-tests/W3C-SVG-1.1/linking-uri-01-b-expected.checksum: Added.
655        * svg-tests/W3C-SVG-1.1/linking-uri-01-b-expected.png: Added.
656        * svg-tests/W3C-SVG-1.1/linking-uri-02-b-expected.checksum: Added.
657        * svg-tests/W3C-SVG-1.1/linking-uri-02-b-expected.png: Added.
658        * svg-tests/W3C-SVG-1.1/linking-uri-03-t-expected.checksum: Added.
659        * svg-tests/W3C-SVG-1.1/linking-uri-03-t-expected.png: Added.
660        * svg-tests/W3C-SVG-1.1/masking-mask-01-b-expected.checksum: Added.
661        * svg-tests/W3C-SVG-1.1/masking-mask-01-b-expected.png: Added.
662        * svg-tests/W3C-SVG-1.1/masking-opacity-01-b-expected.checksum: Added.
663        * svg-tests/W3C-SVG-1.1/masking-opacity-01-b-expected.png: Added.
664        * svg-tests/W3C-SVG-1.1/masking-path-01-b-expected.checksum: Added.
665        * svg-tests/W3C-SVG-1.1/masking-path-01-b-expected.png: Added.
666        * svg-tests/W3C-SVG-1.1/masking-path-02-b-expected.checksum: Added.
667        * svg-tests/W3C-SVG-1.1/masking-path-02-b-expected.png: Added.
668        * svg-tests/W3C-SVG-1.1/masking-path-03-b-expected.checksum: Added.
669        * svg-tests/W3C-SVG-1.1/masking-path-03-b-expected.png: Added.
670        * svg-tests/W3C-SVG-1.1/masking-path-04-b-expected.checksum: Added.
671        * svg-tests/W3C-SVG-1.1/masking-path-04-b-expected.png: Added.
672        * svg-tests/W3C-SVG-1.1/masking-path-05-f-expected.checksum: Added.
673        * svg-tests/W3C-SVG-1.1/masking-path-05-f-expected.png: Added.
674        * svg-tests/W3C-SVG-1.1/metadata-example-01-b-expected.checksum: Added.
675        * svg-tests/W3C-SVG-1.1/metadata-example-01-b-expected.png: Added.
676        * svg-tests/W3C-SVG-1.1/painting-fill-01-t-expected.checksum: Added.
677        * svg-tests/W3C-SVG-1.1/painting-fill-01-t-expected.png: Added.
678        * svg-tests/W3C-SVG-1.1/painting-fill-02-t-expected.checksum: Added.
679        * svg-tests/W3C-SVG-1.1/painting-fill-02-t-expected.png: Added.
680        * svg-tests/W3C-SVG-1.1/painting-fill-03-t-expected.checksum: Added.
681        * svg-tests/W3C-SVG-1.1/painting-fill-03-t-expected.png: Added.
682        * svg-tests/W3C-SVG-1.1/painting-fill-04-t-expected.checksum: Added.
683        * svg-tests/W3C-SVG-1.1/painting-fill-04-t-expected.png: Added.
684        * svg-tests/W3C-SVG-1.1/painting-marker-01-f-expected.checksum: Added.
685        * svg-tests/W3C-SVG-1.1/painting-marker-01-f-expected.png: Added.
686        * svg-tests/W3C-SVG-1.1/painting-marker-02-f-expected.checksum: Added.
687        * svg-tests/W3C-SVG-1.1/painting-marker-02-f-expected.png: Added.
688        * svg-tests/W3C-SVG-1.1/painting-render-01-b-expected.checksum: Added.
689        * svg-tests/W3C-SVG-1.1/painting-render-01-b-expected.png: Added.
690        * svg-tests/W3C-SVG-1.1/painting-stroke-01-t-expected.checksum: Added.
691        * svg-tests/W3C-SVG-1.1/painting-stroke-01-t-expected.png: Added.
692        * svg-tests/W3C-SVG-1.1/painting-stroke-02-t-expected.checksum: Added.
693        * svg-tests/W3C-SVG-1.1/painting-stroke-02-t-expected.png: Added.
694        * svg-tests/W3C-SVG-1.1/painting-stroke-03-t-expected.checksum: Added.
695        * svg-tests/W3C-SVG-1.1/painting-stroke-03-t-expected.png: Added.
696        * svg-tests/W3C-SVG-1.1/painting-stroke-04-t-expected.checksum: Added.
697        * svg-tests/W3C-SVG-1.1/painting-stroke-04-t-expected.png: Added.
698        * svg-tests/W3C-SVG-1.1/paths-data-01-t-expected.checksum: Added.
699        * svg-tests/W3C-SVG-1.1/paths-data-01-t-expected.png: Added.
700        * svg-tests/W3C-SVG-1.1/paths-data-02-t-expected.checksum: Added.
701        * svg-tests/W3C-SVG-1.1/paths-data-02-t-expected.png: Added.
702        * svg-tests/W3C-SVG-1.1/paths-data-03-f-expected.checksum: Added.
703        * svg-tests/W3C-SVG-1.1/paths-data-03-f-expected.png: Added.
704        * svg-tests/W3C-SVG-1.1/paths-data-04-t-expected.checksum: Added.
705        * svg-tests/W3C-SVG-1.1/paths-data-04-t-expected.png: Added.
706        * svg-tests/W3C-SVG-1.1/paths-data-05-t-expected.checksum: Added.
707        * svg-tests/W3C-SVG-1.1/paths-data-05-t-expected.png: Added.
708        * svg-tests/W3C-SVG-1.1/paths-data-06-t-expected.checksum: Added.
709        * svg-tests/W3C-SVG-1.1/paths-data-06-t-expected.png: Added.
710        * svg-tests/W3C-SVG-1.1/paths-data-07-t-expected.checksum: Added.
711        * svg-tests/W3C-SVG-1.1/paths-data-07-t-expected.png: Added.
712        * svg-tests/W3C-SVG-1.1/pservers-grad-01-b-expected.checksum: Added.
713        * svg-tests/W3C-SVG-1.1/pservers-grad-01-b-expected.png: Added.
714        * svg-tests/W3C-SVG-1.1/pservers-grad-02-b-expected.checksum: Added.
715        * svg-tests/W3C-SVG-1.1/pservers-grad-02-b-expected.png: Added.
716        * svg-tests/W3C-SVG-1.1/pservers-grad-03-b-expected.checksum: Added.
717        * svg-tests/W3C-SVG-1.1/pservers-grad-03-b-expected.png: Added.
718        * svg-tests/W3C-SVG-1.1/pservers-grad-04-b-expected.checksum: Added.
719        * svg-tests/W3C-SVG-1.1/pservers-grad-04-b-expected.png: Added.
720        * svg-tests/W3C-SVG-1.1/pservers-grad-05-b-expected.checksum: Added.
721        * svg-tests/W3C-SVG-1.1/pservers-grad-05-b-expected.png: Added.
722        * svg-tests/W3C-SVG-1.1/pservers-grad-06-b-expected.checksum: Added.
723        * svg-tests/W3C-SVG-1.1/pservers-grad-06-b-expected.png: Added.
724        * svg-tests/W3C-SVG-1.1/pservers-grad-07-b-expected.checksum: Added.
725        * svg-tests/W3C-SVG-1.1/pservers-grad-07-b-expected.png: Added.
726        * svg-tests/W3C-SVG-1.1/pservers-grad-08-b-expected.checksum: Added.
727        * svg-tests/W3C-SVG-1.1/pservers-grad-08-b-expected.png: Added.
728        * svg-tests/W3C-SVG-1.1/pservers-grad-09-b-expected.checksum: Added.
729        * svg-tests/W3C-SVG-1.1/pservers-grad-09-b-expected.png: Added.
730        * svg-tests/W3C-SVG-1.1/pservers-grad-10-b-expected.checksum: Added.
731        * svg-tests/W3C-SVG-1.1/pservers-grad-10-b-expected.png: Added.
732        * svg-tests/W3C-SVG-1.1/pservers-grad-11-b-expected.checksum: Added.
733        * svg-tests/W3C-SVG-1.1/pservers-grad-11-b-expected.png: Added.
734        * svg-tests/W3C-SVG-1.1/pservers-grad-12-b-expected.checksum: Added.
735        * svg-tests/W3C-SVG-1.1/pservers-grad-12-b-expected.png: Added.
736        * svg-tests/W3C-SVG-1.1/pservers-pattern-01-b-expected.checksum: Added.
737        * svg-tests/W3C-SVG-1.1/pservers-pattern-01-b-expected.png: Added.
738        * svg-tests/W3C-SVG-1.1/render-elems-01-t-expected.checksum: Added.
739        * svg-tests/W3C-SVG-1.1/render-elems-01-t-expected.png: Added.
740        * svg-tests/W3C-SVG-1.1/render-elems-02-t-expected.checksum: Added.
741        * svg-tests/W3C-SVG-1.1/render-elems-02-t-expected.png: Added.
742        * svg-tests/W3C-SVG-1.1/render-elems-03-t-expected.checksum: Added.
743        * svg-tests/W3C-SVG-1.1/render-elems-03-t-expected.png: Added.
744        * svg-tests/W3C-SVG-1.1/render-elems-06-t-expected.checksum: Added.
745        * svg-tests/W3C-SVG-1.1/render-elems-06-t-expected.png: Added.
746        * svg-tests/W3C-SVG-1.1/render-elems-07-t-expected.checksum: Added.
747        * svg-tests/W3C-SVG-1.1/render-elems-07-t-expected.png: Added.
748        * svg-tests/W3C-SVG-1.1/render-elems-08-t-expected.checksum: Added.
749        * svg-tests/W3C-SVG-1.1/render-elems-08-t-expected.png: Added.
750        * svg-tests/W3C-SVG-1.1/render-groups-01-b-expected.checksum: Added.
751        * svg-tests/W3C-SVG-1.1/render-groups-01-b-expected.png: Added.
752        * svg-tests/W3C-SVG-1.1/render-groups-03-t-expected.checksum: Added.
753        * svg-tests/W3C-SVG-1.1/render-groups-03-t-expected.png: Added.
754        * svg-tests/W3C-SVG-1.1/script-handle-01-b-expected.checksum: Added.
755        * svg-tests/W3C-SVG-1.1/script-handle-01-b-expected.png: Added.
756        * svg-tests/W3C-SVG-1.1/script-handle-02-b-expected.checksum: Added.
757        * svg-tests/W3C-SVG-1.1/script-handle-02-b-expected.png: Added.
758        * svg-tests/W3C-SVG-1.1/script-handle-03-b-expected.checksum: Added.
759        * svg-tests/W3C-SVG-1.1/script-handle-03-b-expected.png: Added.
760        * svg-tests/W3C-SVG-1.1/script-handle-04-b-expected.checksum: Added.
761        * svg-tests/W3C-SVG-1.1/script-handle-04-b-expected.png: Added.
762        * svg-tests/W3C-SVG-1.1/shapes-circle-01-t-expected.checksum: Added.
763        * svg-tests/W3C-SVG-1.1/shapes-circle-01-t-expected.png: Added.
764        * svg-tests/W3C-SVG-1.1/shapes-ellipse-01-t-expected.checksum: Added.
765        * svg-tests/W3C-SVG-1.1/shapes-ellipse-01-t-expected.png: Added.
766        * svg-tests/W3C-SVG-1.1/shapes-line-01-t-expected.checksum: Added.
767        * svg-tests/W3C-SVG-1.1/shapes-line-01-t-expected.png: Added.
768        * svg-tests/W3C-SVG-1.1/shapes-polygon-01-t-expected.checksum: Added.
769        * svg-tests/W3C-SVG-1.1/shapes-polygon-01-t-expected.png: Added.
770        * svg-tests/W3C-SVG-1.1/shapes-polyline-01-t-expected.checksum: Added.
771        * svg-tests/W3C-SVG-1.1/shapes-polyline-01-t-expected.png: Added.
772        * svg-tests/W3C-SVG-1.1/shapes-rect-01-t-expected.checksum: Added.
773        * svg-tests/W3C-SVG-1.1/shapes-rect-01-t-expected.png: Added.
774        * svg-tests/W3C-SVG-1.1/struct-cond-01-t-expected.checksum: Added.
775        * svg-tests/W3C-SVG-1.1/struct-cond-01-t-expected.png: Added.
776        * svg-tests/W3C-SVG-1.1/struct-cond-02-t-expected.checksum: Added.
777        * svg-tests/W3C-SVG-1.1/struct-cond-02-t-expected.png: Added.
778        * svg-tests/W3C-SVG-1.1/struct-defs-01-t-expected.checksum: Added.
779        * svg-tests/W3C-SVG-1.1/struct-defs-01-t-expected.png: Added.
780        * svg-tests/W3C-SVG-1.1/struct-dom-01-b-expected.checksum: Added.
781        * svg-tests/W3C-SVG-1.1/struct-dom-01-b-expected.png: Added.
782        * svg-tests/W3C-SVG-1.1/struct-dom-02-b-expected.checksum: Added.
783        * svg-tests/W3C-SVG-1.1/struct-dom-02-b-expected.png: Added.
784        * svg-tests/W3C-SVG-1.1/struct-dom-03-b-expected.checksum: Added.
785        * svg-tests/W3C-SVG-1.1/struct-dom-03-b-expected.png: Added.
786        * svg-tests/W3C-SVG-1.1/struct-dom-04-b-expected.checksum: Added.
787        * svg-tests/W3C-SVG-1.1/struct-dom-04-b-expected.png: Added.
788        * svg-tests/W3C-SVG-1.1/struct-dom-05-b-expected.checksum: Added.
789        * svg-tests/W3C-SVG-1.1/struct-dom-05-b-expected.png: Added.
790        * svg-tests/W3C-SVG-1.1/struct-dom-06-b-expected.checksum: Added.
791        * svg-tests/W3C-SVG-1.1/struct-dom-06-b-expected.png: Added.
792        * svg-tests/W3C-SVG-1.1/struct-frag-01-t-expected.checksum: Added.
793        * svg-tests/W3C-SVG-1.1/struct-frag-01-t-expected.png: Added.
794        * svg-tests/W3C-SVG-1.1/struct-group-01-t-expected.checksum: Added.
795        * svg-tests/W3C-SVG-1.1/struct-group-01-t-expected.png: Added.
796        * svg-tests/W3C-SVG-1.1/struct-group-02-b-expected.checksum: Added.
797        * svg-tests/W3C-SVG-1.1/struct-group-02-b-expected.png: Added.
798        * svg-tests/W3C-SVG-1.1/struct-image-01-t-expected.checksum: Added.
799        * svg-tests/W3C-SVG-1.1/struct-image-01-t-expected.png: Added.
800        * svg-tests/W3C-SVG-1.1/struct-image-02-b-expected.checksum: Added.
801        * svg-tests/W3C-SVG-1.1/struct-image-02-b-expected.png: Added.
802        * svg-tests/W3C-SVG-1.1/struct-image-03-t-expected.checksum: Added.
803        * svg-tests/W3C-SVG-1.1/struct-image-03-t-expected.png: Added.
804        * svg-tests/W3C-SVG-1.1/struct-image-04-t-expected.checksum: Added.
805        * svg-tests/W3C-SVG-1.1/struct-image-04-t-expected.png: Added.
806        * svg-tests/W3C-SVG-1.1/struct-image-05-b-expected.checksum: Added.
807        * svg-tests/W3C-SVG-1.1/struct-image-05-b-expected.png: Added.
808        * svg-tests/W3C-SVG-1.1/struct-symbol-01-b-expected.checksum: Added.
809        * svg-tests/W3C-SVG-1.1/struct-symbol-01-b-expected.png: Added.
810        * svg-tests/W3C-SVG-1.1/styling-css-01-b-expected.checksum: Added.
811        * svg-tests/W3C-SVG-1.1/styling-css-01-b-expected.png: Added.
812        * svg-tests/W3C-SVG-1.1/styling-css-02-b-expected.checksum: Added.
813        * svg-tests/W3C-SVG-1.1/styling-css-02-b-expected.png: Added.
814        * svg-tests/W3C-SVG-1.1/styling-css-03-b-expected.checksum: Added.
815        * svg-tests/W3C-SVG-1.1/styling-css-03-b-expected.png: Added.
816        * svg-tests/W3C-SVG-1.1/styling-inherit-01-b-expected.checksum: Added.
817        * svg-tests/W3C-SVG-1.1/styling-inherit-01-b-expected.png: Added.
818        * svg-tests/W3C-SVG-1.1/styling-pres-01-t-expected.checksum: Added.
819        * svg-tests/W3C-SVG-1.1/styling-pres-01-t-expected.png: Added.
820        * svg-tests/W3C-SVG-1.1/text-align-01-b-expected.checksum: Added.
821        * svg-tests/W3C-SVG-1.1/text-align-01-b-expected.png: Added.
822        * svg-tests/W3C-SVG-1.1/text-align-02-b-expected.checksum: Added.
823        * svg-tests/W3C-SVG-1.1/text-align-02-b-expected.png: Added.
824        * svg-tests/W3C-SVG-1.1/text-align-03-b-expected.checksum: Added.
825        * svg-tests/W3C-SVG-1.1/text-align-03-b-expected.png: Added.
826        * svg-tests/W3C-SVG-1.1/text-align-04-b-expected.checksum: Added.
827        * svg-tests/W3C-SVG-1.1/text-align-04-b-expected.png: Added.
828        * svg-tests/W3C-SVG-1.1/text-align-05-b-expected.checksum: Added.
829        * svg-tests/W3C-SVG-1.1/text-align-05-b-expected.png: Added.
830        * svg-tests/W3C-SVG-1.1/text-align-06-b-expected.checksum: Added.
831        * svg-tests/W3C-SVG-1.1/text-align-06-b-expected.png: Added.
832        * svg-tests/W3C-SVG-1.1/text-altglyph-01-b-expected.checksum: Added.
833        * svg-tests/W3C-SVG-1.1/text-altglyph-01-b-expected.png: Added.
834        * svg-tests/W3C-SVG-1.1/text-deco-01-b-expected.checksum: Added.
835        * svg-tests/W3C-SVG-1.1/text-deco-01-b-expected.png: Added.
836        * svg-tests/W3C-SVG-1.1/text-fonts-01-t-expected.checksum: Added.
837        * svg-tests/W3C-SVG-1.1/text-fonts-01-t-expected.png: Added.
838        * svg-tests/W3C-SVG-1.1/text-fonts-02-t-expected.checksum: Added.
839        * svg-tests/W3C-SVG-1.1/text-fonts-02-t-expected.png: Added.
840        * svg-tests/W3C-SVG-1.1/text-intro-01-t-expected.checksum: Added.
841        * svg-tests/W3C-SVG-1.1/text-intro-01-t-expected.png: Added.
842        * svg-tests/W3C-SVG-1.1/text-intro-02-b-expected.checksum: Added.
843        * svg-tests/W3C-SVG-1.1/text-intro-02-b-expected.png: Added.
844        * svg-tests/W3C-SVG-1.1/text-intro-03-b-expected.checksum: Added.
845        * svg-tests/W3C-SVG-1.1/text-intro-03-b-expected.png: Added.
846        * svg-tests/W3C-SVG-1.1/text-intro-04-t-expected.checksum: Added.
847        * svg-tests/W3C-SVG-1.1/text-intro-04-t-expected.png: Added.
848        * svg-tests/W3C-SVG-1.1/text-path-01-b-expected.checksum: Added.
849        * svg-tests/W3C-SVG-1.1/text-path-01-b-expected.png: Added.
850        * svg-tests/W3C-SVG-1.1/text-spacing-01-b-expected.checksum: Added.
851        * svg-tests/W3C-SVG-1.1/text-spacing-01-b-expected.png: Added.
852        * svg-tests/W3C-SVG-1.1/text-text-01-b-expected.checksum: Added.
853        * svg-tests/W3C-SVG-1.1/text-text-01-b-expected.png: Added.
854        * svg-tests/W3C-SVG-1.1/text-text-03-b-expected.checksum: Added.
855        * svg-tests/W3C-SVG-1.1/text-text-03-b-expected.png: Added.
856        * svg-tests/W3C-SVG-1.1/text-tref-01-b-expected.checksum: Added.
857        * svg-tests/W3C-SVG-1.1/text-tref-01-b-expected.png: Added.
858        * svg-tests/W3C-SVG-1.1/text-tselect-01-b-expected.checksum: Added.
859        * svg-tests/W3C-SVG-1.1/text-tselect-01-b-expected.png: Added.
860        * svg-tests/W3C-SVG-1.1/text-tspan-01-b-expected.checksum: Added.
861        * svg-tests/W3C-SVG-1.1/text-tspan-01-b-expected.png: Added.
862        * svg-tests/W3C-SVG-1.1/text-ws-01-t-expected.checksum: Added.
863        * svg-tests/W3C-SVG-1.1/text-ws-01-t-expected.png: Added.
864        * svg-tests/W3C-SVG-1.1/text-ws-02-t-expected.checksum: Added.
865        * svg-tests/W3C-SVG-1.1/text-ws-02-t-expected.png: Added.
866        Add pixel test results for SVG.
867
8682005-08-17  Maciej Stachowiak  <mjs@apple.com>
869
870        Reviewed by Darin.
871
872        * layout-tests/fast/css/acid2.html: Replaced nonexistent remote URL that takes
873	a very long time to time out, with a nonexistent local URL.
874
875        * kwq/KWQRenderTreeDebug.cpp:
876        (externalRepresentation): Remove hack to turn off scrollbars.
877
878	- Updated many test results now that the layout tests properly do scrollbars when
879	appropriate
880	
881        * layout-tests/css1/basic/comments-expected.txt:
882        * layout-tests/css1/basic/containment-expected.txt:
883        * layout-tests/css1/basic/id_as_selector-expected.txt:
884        * layout-tests/css1/basic/inheritance-expected.txt:
885        * layout-tests/css1/box_properties/border-expected.txt:
886        * layout-tests/css1/box_properties/border_bottom-expected.txt:
887        * layout-tests/css1/box_properties/border_bottom_width-expected.txt:
888        * layout-tests/css1/box_properties/border_left-expected.txt:
889        * layout-tests/css1/box_properties/border_left_width-expected.txt:
890        * layout-tests/css1/box_properties/border_right_inline-expected.txt:
891        * layout-tests/css1/box_properties/border_right_width-expected.txt:
892        * layout-tests/css1/box_properties/border_style-expected.txt:
893        * layout-tests/css1/box_properties/border_top-expected.txt:
894        * layout-tests/css1/box_properties/border_top_width-expected.txt:
895        * layout-tests/css1/box_properties/border_width-expected.txt:
896        * layout-tests/css1/box_properties/clear-expected.txt:
897        * layout-tests/css1/box_properties/clear_float-expected.txt:
898        * layout-tests/css1/box_properties/float_elements_in_series-expected.txt:
899        * layout-tests/css1/box_properties/float_margin-expected.txt:
900        * layout-tests/css1/box_properties/float_on_text_elements-expected.txt:
901        * layout-tests/css1/box_properties/height-expected.txt:
902        * layout-tests/css1/box_properties/margin-expected.txt:
903        * layout-tests/css1/box_properties/margin_bottom-expected.txt:
904        * layout-tests/css1/box_properties/margin_inline-expected.txt:
905        * layout-tests/css1/box_properties/margin_left-expected.txt:
906        * layout-tests/css1/box_properties/margin_right-expected.txt:
907        * layout-tests/css1/box_properties/margin_top-expected.txt:
908        * layout-tests/css1/box_properties/padding-expected.txt:
909        * layout-tests/css1/box_properties/padding_bottom-expected.txt:
910        * layout-tests/css1/box_properties/padding_inline-expected.txt:
911        * layout-tests/css1/box_properties/padding_left-expected.txt:
912        * layout-tests/css1/box_properties/padding_right-expected.txt:
913        * layout-tests/css1/box_properties/padding_top-expected.txt:
914        * layout-tests/css1/box_properties/width-expected.txt:
915        * layout-tests/css1/cascade/cascade_order-expected.txt:
916        * layout-tests/css1/classification/display-expected.txt:
917        * layout-tests/css1/classification/list_style_type-expected.txt:
918        * layout-tests/css1/classification/white_space-expected.txt:
919        * layout-tests/css1/color_and_background/background-expected.txt:
920        * layout-tests/css1/color_and_background/background_attachment-expected.txt:
921        * layout-tests/css1/color_and_background/background_position-expected.txt:
922        * layout-tests/css1/color_and_background/background_repeat-expected.txt:
923        * layout-tests/css1/conformance/forward_compatible_parsing-expected.txt:
924        * layout-tests/css1/font_properties/font-expected.txt:
925        * layout-tests/css1/font_properties/font_family-expected.txt:
926        * layout-tests/css1/font_properties/font_size-expected.txt:
927        * layout-tests/css1/font_properties/font_weight-expected.txt:
928        * layout-tests/css1/formatting_model/floating_elements-expected.txt:
929        * layout-tests/css1/formatting_model/height_of_lines-expected.txt:
930        * layout-tests/css1/formatting_model/horizontal_formatting-expected.txt:
931        * layout-tests/css1/formatting_model/inline_elements-expected.txt:
932        * layout-tests/css1/formatting_model/replaced_elements-expected.txt:
933        * layout-tests/css1/formatting_model/vertical_formatting-expected.txt:
934        * layout-tests/css1/pseudo/anchor-expected.txt:
935        * layout-tests/css1/pseudo/firstletter-expected.txt:
936        * layout-tests/css1/pseudo/firstline-expected.txt:
937        * layout-tests/css1/pseudo/multiple_pseudo_elements-expected.txt:
938        * layout-tests/css1/text_properties/letter_spacing-expected.txt:
939        * layout-tests/css1/text_properties/line_height-expected.txt:
940        * layout-tests/css1/text_properties/text-transCapitalize-expected.txt:
941        * layout-tests/css1/text_properties/text_decoration-expected.txt:
942        * layout-tests/css1/text_properties/text_indent-expected.txt:
943        * layout-tests/css1/text_properties/text_transform-expected.txt:
944        * layout-tests/css1/text_properties/vertical_align-expected.txt:
945        * layout-tests/css1/text_properties/word_spacing-expected.txt:
946        * layout-tests/css1/units/color_units-expected.txt:
947        * layout-tests/css1/units/length_units-expected.txt:
948        * layout-tests/dom/html/level2/html/HTMLBaseElement02-expected.txt:
949        * layout-tests/editing/inserting/insert-div-023-expected.txt:
950        * layout-tests/editing/selection/select-all-001-expected.txt:
951        * layout-tests/editing/selection/select-all-002-expected.txt:
952        * layout-tests/editing/selection/select-all-003-expected.txt:
953        * layout-tests/editing/selection/select-all-004-expected.txt:
954        * layout-tests/editing/selection/unrendered-001-expected.txt:
955        * layout-tests/editing/selection/unrendered-002-expected.txt:
956        * layout-tests/editing/selection/unrendered-003-expected.txt:
957        * layout-tests/editing/selection/unrendered-004-expected.txt:
958        * layout-tests/editing/selection/unrendered-005-expected.txt:
959        * layout-tests/fast/block/basic/013-expected.txt:
960        * layout-tests/fast/block/basic/016-expected.txt:
961        * layout-tests/fast/block/float/008-expected.txt:
962        * layout-tests/fast/block/float/013-expected.txt:
963        * layout-tests/fast/block/float/019-expected.txt:
964        * layout-tests/fast/block/float/021-expected.txt:
965        * layout-tests/fast/block/float/025-expected.txt:
966        * layout-tests/fast/block/float/026-expected.txt:
967        * layout-tests/fast/block/float/027-expected.txt:
968        * layout-tests/fast/block/float/028-expected.txt:
969        * layout-tests/fast/block/float/032-expected.txt:
970        * layout-tests/fast/block/float/033-expected.txt:
971        * layout-tests/fast/block/margin-collapse/103-expected.txt:
972        * layout-tests/fast/block/positioning/047-expected.txt:
973        * layout-tests/fast/block/positioning/051-expected.txt:
974        * layout-tests/fast/block/positioning/055-expected.txt:
975        * layout-tests/fast/block/positioning/auto/007-expected.txt:
976        * layout-tests/fast/css/005-expected.txt:
977        * layout-tests/fast/css/MarqueeLayoutTest-expected.txt:
978        * layout-tests/fast/css/word-space-extra-expected.txt:
979        * layout-tests/fast/dom/attr_dead_doc-expected.txt:
980        * layout-tests/fast/dom/features-expected.txt:
981        * layout-tests/fast/dynamic/008-expected.txt:
982        * layout-tests/fast/dynamic/flash-replacement-test-expected.txt:
983        * layout-tests/fast/encoding/utf-16-big-endian-expected.txt:
984        * layout-tests/fast/encoding/utf-16-little-endian-expected.txt:
985        * layout-tests/fast/flexbox/016-expected.txt:
986        * layout-tests/fast/forms/form-element-geometry-expected.txt:
987        * layout-tests/fast/frames/001-expected.txt:
988        * layout-tests/fast/frames/002-expected.txt:
989        * layout-tests/fast/frames/contentWindow_Frame-expected.txt:
990        * layout-tests/fast/frames/contentWindow_iFrame-expected.txt:
991        * layout-tests/fast/frames/empty-frame-src-expected.txt:
992        * layout-tests/fast/frames/frameElement-frame-expected.txt:
993        * layout-tests/fast/frames/frameElement-iframe-expected.txt:
994        * layout-tests/fast/frames/invalid-expected.txt:
995        * layout-tests/fast/frames/valid-expected.txt:
996        * layout-tests/fast/inline-block/003-expected.txt:
997        * layout-tests/fast/js/window-object-cross-frame-calls-expected.txt:
998        * layout-tests/fast/lists/008-expected.txt:
999        * layout-tests/fast/replaced/005-expected.txt:
1000        * layout-tests/fast/replaced/007-expected.txt:
1001        * layout-tests/fast/selectors/166-expected.txt:
1002        * layout-tests/fast/table/023-expected.txt:
1003        * layout-tests/fast/table/034-expected.txt:
1004        * layout-tests/fast/table/040-expected.txt:
1005        * layout-tests/fast/table/border-collapsing/004-expected.txt:
1006        * layout-tests/fast/table/height-percent-test-expected.txt:
1007        * layout-tests/fast/table/wide-colspan-expected.txt:
1008        * layout-tests/fast/table/wide-column-expected.txt:
1009        * layout-tests/fast/text/whitespace/024-expected.txt:
1010        * layout-tests/fast/tokenizer/004-expected.txt:
1011        * layout-tests/traversal/tree-walker-004-expected.txt:
1012
10132005-08-17  Beth Dakin  <bdakin@apple.com>
1014
1015        Reviewed by Maciej
1016
1017        Test cases added: (NONE)
1018	
1019	This is a fix for http://bugs.webkit.org/show_bug.cgi?id=4499
1020	which describes a memory leak that happens on bugzilla after
1021	searching for all open WebKit bugs.	
1022
1023        * kwq/KWQArrayImpl.mm: 
1024        (KWQArrayImpl::resize): When resizing to 0, free the old data after setting it
1025				to NULL.
1026
10272005-08-17  Justin Garcia  <justin.garcia@apple.com>
1028
1029        Reviewed by darin, adele
1030        
1031        Fixes <rdar://problem/4219869> REGRESSION (OC): First frame never draws if it's delayed
1032            A recent change uncovered a bug where on early returns from KHTMLView::layout(), layoutSchedulingEnabled 
1033            was not reset to true, preventing later layouts from occuring. 
1034
1035        * khtml/khtmlview.cpp:
1036        (KHTMLView::layout):
1037
10382005-08-17  Curt Arnold  <curt.arnold@mac.com>
1039
1040        Reviewed and landed by Darin.
1041
1042        - fixed http://bugs.webkit.org/show_bug.cgi?id=4491
1043          DOM L2 Events tests using addEventListener broken
1044
1045        * layout-tests/dom/html/level2/events/dispatchEvent08.js: Updated.
1046        * layout-tests/dom/html/level2/events/dispatchEvent09.js: Ditto.
1047        * layout-tests/dom/html/level2/events/dispatchEvent10.js: Ditto.
1048        * layout-tests/dom/html/level2/events/dispatchEvent11.js: Ditto.
1049        * layout-tests/dom/html/level2/events/dispatchEvent12.js: Ditto.
1050        * layout-tests/dom/html/level2/events/dispatchEvent13.js: Ditto.
1051
1052        * layout-tests/dom/html/level2/events/dispatchEvent11-expected.txt: Now succeeds.
1053        * layout-tests/dom/html/level2/events/dispatchEvent12-expected.txt: Now fails.
1054        * layout-tests/dom/html/level2/events/dispatchEvent13-expected.txt: Now succeeds.
1055
10562005-08-17  Justin Garcia  <justin.garcia@apple.com>
1057
1058        Reviewed by rjw
1059        
1060        Addresses <rdar://problem/4192534> new frame load delegate SPI needed for Dashboard
1061            Call handledOnloadEvents bridge method after load events are dispatched in a frame
1062
1063        * khtml/xml/dom_docimpl.cpp:
1064        (DocumentImpl::implicitClose):
1065        * kwq/KWQKHTMLPart.h:
1066        * kwq/KWQKHTMLPart.mm:
1067        (KWQKHTMLPart::handledOnloadEvents):
1068        * kwq/WebCoreBridge.h:
1069
10702005-08-17  Vicki Murley  <vicki@apple.com>
1071
1072        Reviewed by Maciej.
1073 
1074        - fix <rdar://problem/4175734> Crash trying to retrieve data with
1075        XMLHttpRequest with Content-Type: empty
1076
1077        Test cases added: 
1078	* manual-tests/xmlhttprequest-contenttype-empty.html: Added.
1079
1080	* khtml/ecma/xmlhttprequest.cpp:
1081	(KJS::XMLHttpRequest::getValueProperty): allow empty entries when splitting to
1082	create the mime type string, otherwise we access a garbage pointer when stripping
1083	whitespace
1084
10852005-08-16  Darin Adler  <darin@apple.com>
1086
1087        Reviewed by Maciej.
1088
1089        - fixed bug that was causing a crash when running layout tests
1090
1091        * khtml/ecma/kjs_binding.h: Remove unused deleteDOMObject.
1092        * khtml/ecma/kjs_binding.cpp:
1093        (KJS::ScriptInterpreter::forgetDOMObject): Move code in here from forgetDOMObject.
1094        (KJS::ScriptInterpreter::getDOMNodeForDocument): For the null-document case, use the general
1095        DOM objects map rather than a per-document map.
1096        (KJS::ScriptInterpreter::forgetDOMNodeForDocument): Ditto.
1097        (KJS::ScriptInterpreter::putDOMNodeForDocument): Ditto.
1098        (KJS::ScriptInterpreter::forgetAllDOMNodesForDocument): Assert that document is not null.
1099
11002005-08-16  Darin Adler  <darin@apple.com>
1101
1102        Reviewed by Geoff.
1103
1104        - changed main_thread_malloc so we don't have two conflicting versions of the same function
1105          This fixes a crash I was seeing running the WebKit tests.
1106
1107        * khtml/misc/main_thread_malloc.h: Took out all the ifdefs from this header.
1108        * khtml/misc/main_thread_malloc.cpp: Added non-NDEBUG versions of the functions that just call
1109        the system malloc, and put the NDEBUG versions in an #else.
1110
1111        * WebCore-tests.exp: Export the new stuff so the tests still work.
1112
11132005-08-15  Maciej Stachowiak  <mjs@apple.com>
1114
1115        Reviewed by John.
1116
1117	- fixed leak of HTML collection info - this can build up to
1118	hundreds of leaks pretty quickly
1119
1120	http://bugs.webkit.org/show_bug.cgi?id=4450
1121	
1122        * khtml/html/html_miscimpl.cpp:
1123        (DOM::HTMLCollectionImpl::HTMLCollectionImpl): Initialize new
1124	m_ownsInfo member.
1125        (DOM::HTMLCollectionImpl::~HTMLCollectionImpl): Delete info if
1126	owned.
1127        (DOM::HTMLCollectionImpl::resetCollectionInfo): When creating new
1128	info, indicate that it's owned.
1129        * khtml/html/html_miscimpl.h: Declare new member.
1130
11312005-08-16  David Harrison  <harrison@apple.com>
1132
1133        <rdar://problem/4119646> assertion failure in DOM::Position::upstream at babelfish.com
1134        <rdar://problem/4125949> Assertion failure clicking outside of textarea in page containing only textarea
1135
1136        Removed asserts that did not account for iterating from a nested node to its parent.
1137
1138        Test cases added: n/a for assert removal
1139
1140        * khtml/xml/dom_position.cpp:
1141        (DOM::Position::upstream):
1142        (DOM::Position::downstream):
1143
11442005-08-16  Darin Adler  <darin@apple.com>
1145
1146        Reviewed by Beth Dakin.
1147
1148        - removed Panther-only code that was not being compiled and was
1149          simply "bit-rotting"
1150
1151        * WebCorePrefix.h:
1152        * khtml/misc/loader.cpp:
1153        (CachedImage::CachedImage):
1154        * khtml/rendering/render_canvasimage.cpp:
1155        * kwq/KWQAccObject.mm:
1156        (-[KWQAccObject roleDescription]):
1157        (-[KWQAccObject accessibilityAttributeNames]):
1158        (-[KWQAccObject accessibilityActionDescription:]):
1159        (-[KWQAccObject accessibilityAttributeValue:]):
1160        (-[KWQAccObject accessibilityIsAttributeSettable:]):
1161        * kwq/KWQComboBox.mm:
1162        (QComboBox::QComboBox):
1163        * kwq/KWQFoundationExtras.h:
1164        (KWQCFAutorelease):
1165        * kwq/KWQPixmap.mm:
1166        (QPixmap::QPixmap):
1167        (QPixmap::receivedData):
1168        * kwq/KWQString.h:
1169        (QChar::direction):
1170        * kwq/KWQTextArea.mm:
1171        (-[KWQTextArea tile]):
1172        * kwq/KWQTextEdit.mm:
1173        (QTextEdit::setScrollBarModes):
1174        * kwq/KWQTextField.mm:
1175        (-[KWQTextFieldController string]):
1176        * kwq/KWQTextUtilities.mm:
1177        (currentTextBreakLocaleID):
1178        * kwq/WebCoreScrollView.m:
1179
11802005-08-16  Darin Adler  <darin@apple.com>
1181
1182        Reviewed by Beth Dakin.
1183
1184        - removed some unnecessary code
1185
1186        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::imageFromRect): Remove code to call
1187        setAdditionalPatternPhase since that is no longer needed.
1188
1189        * kwq/WebCoreGraphicsBridge.h: Remove unused setAdditionalPatternPhase,
1190        createRGBColorSpace, createGrayColorSpace, and createCMYKColorSpace methods.
1191        * kwq/WebCoreGraphicsBridge.m: Ditto.
1192
11932005-08-16  Eric Seidel  <eseidel@apple.com>
1194        Fix by Tobias Lidskog <tobiaslidskog@mac.com>
1195
1196        Reviewed by eseidel.
1197
1198        * kcanvas/KCanvasItem.cpp:
1199        (KCanvasItem::bbox):
1200        (KCanvasItem::invalidate):
1201        Now caches both stroke and fill bboxes for better performance.
1202        http://bugs.webkit.org/show_bug.cgi?id=4445
1203
12042005-08-16  Eric Seidel  <eseidel@apple.com>
1205        Fix from Tobias Lidskog <tobiaslidskog@mac.com>
1206
1207        Reviewed by eseidel.
1208
1209        * kcanvas/KCanvasContainer.cpp:
1210        (KCanvasContainer::needsTemporaryBuffer):
1211        * kcanvas/device/KRenderingPaintServerSolid.cpp:
1212        (KRenderingPaintServerSolid::opacity):
1213        * kcanvas/device/KRenderingPaintServerSolid.h:
1214        * kcanvas/device/KRenderingStyle.cpp:
1215        (KRenderingStyle::Private::Private):
1216        (KRenderingStyle::opacity):
1217        (KRenderingStyle::setOpacity):
1218        * kcanvas/device/KRenderingStyle.h:
1219        * kcanvas/device/quartz/KCanvasResourcesQuartz.mm:
1220        (KCanvasContainerQuartz::draw):
1221        * kcanvas/device/quartz/KRenderingPaintServerQuartz.mm:
1222        (KRenderingPaintServerSolidQuartz::draw):
1223        (KRenderingPaintServerPatternQuartz::draw):
1224        * kcanvas/device/quartz/QuartzSupport.mm:
1225        (applyStyleToContext):
1226        * ksvg2/core/KCanvasRenderingStyle.cpp:
1227        (KCanvasRenderingStyle::opacity):
1228        (KCanvasRenderingStyle::setOpacity):
1229        * ksvg2/core/KCanvasRenderingStyle.h:
1230        Change all references to Opacity to use floats.
1231        http://bugs.webkit.org/show_bug.cgi?id=4431
1232
12332005-08-16  Eric Seidel  <eseidel@apple.com>
1234
1235        Reviewed by mjs.
1236
1237        * WebCore.xcodeproj/project.pbxproj: bison cleanup.
1238        * kdom/ecma/DOMLookup.h: now uses throwError
1239        * kdom/ecma/Ecma.cpp: 
1240        (Ecma::~Ecma): now uses clearProperties
1241        * kdom/ecma/GlobalObject.cpp: now uses throwError
1242        (GlobalObject::clear): now uses clearProperties
1243        (GlobalObjectFunc::callAsFunction): now uses throwError
1244        Fixes necessary for WebCore+SVG after 4437.
1245        http://bugs.webkit.org/show_bug.cgi?id=4453
1246
12472005-08-15  Vicki Murley  <vicki@apple.com>
1248
1249        Reviewed by Maciej.
1250 
1251	- fixed <rdar://problem/4094363> Can't re-open a window at capripalace.com website because 
1252	"close" fails on already-closed window
1253
1254        Test cases added: 
1255        * manual-tests/close-on-closedWindow.html: Added.
1256
1257        * khtml/ecma/kjs_window.cpp:
1258        (KJS::Window::getOwnPropertySlot): allow close calls on windows that have already been closed
1259
12602005-08-15  Darin Adler  <darin@apple.com>
1261
1262        Reviewed by Geoff.
1263
1264        - fixed http://bugs.webkit.org/show_bug.cgi?id=4437
1265          clean up error creation with new throwError function
1266
1267        * khtml/css/cssstyleselector.cpp:
1268        (khtml::CSSStyleSelector::CSSStyleSelector):
1269        (khtml::parseUASheet):
1270        (khtml::CSSStyleSelector::initElementAndPseudoState):
1271        (khtml::checkPseudoState):
1272        (khtml::CSSStyleSelector::locateCousinList):
1273        (khtml::CSSStyleSelector::locateSharedStyle):
1274        (khtml::CSSStyleSelector::adjustRenderStyle):
1275        (khtml::CSSStyleSelector::checkOneSelector):
1276        (khtml::CSSRuleSet::addToRuleSet):
1277        (khtml::colorForCSSValue):
1278        (khtml::CSSStyleSelector::applyProperty):
1279        (khtml::CSSStyleSelector::mapBackgroundAttachment):
1280        (khtml::CSSStyleSelector::mapBackgroundImage):
1281        (khtml::CSSStyleSelector::mapBackgroundRepeat):
1282        (khtml::CSSStyleSelector::mapBackgroundXPosition):
1283        (khtml::CSSStyleSelector::mapBackgroundYPosition):
1284        (khtml::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
1285        * khtml/ecma/domparser.cpp:
1286        (KJS::DOMParserProtoFunc::callAsFunction):
1287        * khtml/ecma/kjs_binding.cpp:
1288        (KJS::ScriptInterpreter::putDOMObject):
1289        (KJS::ScriptInterpreter::putDOMNodeForDocument):
1290        (KJS::setDOMException):
1291        * khtml/ecma/kjs_css.cpp:
1292        (KJS::DOMCSSStyleDeclarationProtoFunc::callAsFunction):
1293        (KJS::DOMStyleSheetListFunc::callAsFunction):
1294        (KJS::KJS::DOMMediaListProtoFunc::callAsFunction):
1295        (KJS::DOMCSSStyleSheetProtoFunc::callAsFunction):
1296        (KJS::DOMCSSRuleListFunc::callAsFunction):
1297        (KJS::DOMCSSRuleFunc::callAsFunction):
1298        (KJS::DOMCSSPrimitiveValueProtoFunc::callAsFunction):
1299        (KJS::DOMCSSValueListFunc::callAsFunction):
1300        * khtml/ecma/kjs_dom.cpp:
1301        (KJS::DOMNodeProtoFunc::callAsFunction):
1302        (KJS::DOMNodeListFunc::callAsFunction):
1303        (KJS::DOMDocumentProtoFunc::callAsFunction):
1304        (KJS::DOMElementProtoFunc::callAsFunction):
1305        (KJS::DOMDOMImplementationProtoFunc::callAsFunction):
1306        (KJS::DOMNamedNodeMapProtoFunc::callAsFunction):
1307        (KJS::DOMCharacterDataProtoFunc::callAsFunction):
1308        (KJS::DOMTextProtoFunc::callAsFunction):
1309        * khtml/ecma/kjs_events.cpp:
1310        (KJS::DOMEventProtoFunc::callAsFunction):
1311        (KJS::DOMUIEventProtoFunc::callAsFunction):
1312        (KJS::DOMMouseEventProtoFunc::callAsFunction):
1313        (KJS::DOMKeyboardEventProtoFunc::callAsFunction):
1314        (KJS::DOMMutationEventProtoFunc::callAsFunction):
1315        (KJS::DOMWheelEventProtoFunc::callAsFunction):
1316        (KJS::ClipboardProtoFunc::callAsFunction):
1317        * khtml/ecma/kjs_html.cpp:
1318        (KJS::KJS::HTMLDocFunction::callAsFunction):
1319        (KJS::KJS::HTMLElementFunction::callAsFunction):
1320        (KJS::KJS::HTMLCollectionProtoFunc::callAsFunction):
1321        (KJS::KJS::Context2DFunction::callAsFunction):
1322        (KJS::Context2D::putValueProperty):
1323        (KJS::GradientFunction::callAsFunction):
1324        * khtml/ecma/kjs_navigator.cpp:
1325        (KJS::NavigatorFunc::callAsFunction):
1326        * khtml/ecma/kjs_range.cpp:
1327        (KJS::DOMRangeProtoFunc::callAsFunction):
1328        * khtml/ecma/kjs_traversal.cpp:
1329        (KJS::DOMNodeIteratorProtoFunc::callAsFunction):
1330        (KJS::DOMNodeFilterProtoFunc::callAsFunction):
1331        (KJS::DOMTreeWalkerProtoFunc::callAsFunction):
1332        * khtml/ecma/kjs_views.cpp:
1333        (KJS::DOMAbstractViewFunc::callAsFunction):
1334        * khtml/ecma/kjs_window.cpp:
1335        (KJS::Window::interpreter):
1336        (KJS::Window::retrieveWindow):
1337        (KJS::Window::retrieveActive):
1338        (KJS::Window::isSafeScript):
1339        (KJS::Window::clear):
1340        (KJS::WindowFunc::callAsFunction):
1341        (KJS::ScheduledAction::execute):
1342        (KJS::WindowQObject::pauseTimeouts):
1343        (KJS::LocationFunc::callAsFunction):
1344        (KJS::Selection::toString):
1345        (KJS::SelectionFunc::callAsFunction):
1346        (KJS::HistoryFunc::callAsFunction):
1347        * khtml/ecma/xmlhttprequest.cpp:
1348        (KJS::XMLHttpRequestProtoFunc::callAsFunction):
1349        * khtml/ecma/xmlserializer.cpp:
1350        (KJS::XMLSerializerProtoFunc::callAsFunction):
1351
13522005-08-15  David Harrison  <harrison@apple.com>
1353
1354        Reviewed by Darin.
1355
1356        <rdar://problem/4202641> Line breaks do not happen inside whitespace:pre; word-wrap: break-word
1357        
1358        Test cases added: fast/text/whitespace/tab-character-basics.html
1359
1360        Refined Dave's earlier patch for this bug to handle whitespace:pre that is not at the beginning of a line.
1361        
1362        * khtml/rendering/bidi.cpp:
1363        (khtml::RenderBlock::findNextLineBreak):
1364        * layout-tests/fast/text/whitespace/tab-character-basics-expected.txt: Added.
1365        * layout-tests/fast/text/whitespace/tab-character-basics.html: Added.
1366
13672005-08-15  Darin Adler  <darin@apple.com>
1368
1369        Reviewed by Justin.
1370
1371        - fixed http://bugs.webkit.org/show_bug.cgi?id=4324
1372          WebCore build does a slow "nmedit -s" step that's unnecessary
1373
1374        * WebCore.xcodeproj/project.pbxproj: Stop using EXPORTED_SYMBOLS_FILE, since it does an
1375        unneccessary nmedit step that is particularly slow for WebCore. Instead, define
1376        WEBCORE_EXPORTED_SYMBOLS_FILE and put a flag into OTHER_LDFLAGS.
1377
13782005-08-14  Andrew Wellington  <proton@wiretapped.net>
1379
1380        Reviewed and landed by Darin.
1381
1382        - fixed http://bugs.webkit.org/show_bug.cgi?id=3429
1383          Text transformed with text-transform does not copy with transform applied
1384
1385        Test cases added:
1386        * layout-tests/editing/pasteboard/paste-text-019-expected.txt: Added.
1387        * layout-tests/editing/pasteboard/paste-text-019.html: Added.
1388
1389        * khtml/editing/visible_text.cpp:
1390        (khtml::TextIterator::handleTextNode): Use the DOMString from the RenderText, not the DOM text node.
1391        (khtml::TextIterator::handleTextBox): Ditto.
1392
13932005-08-14  Darin Adler  <darin@apple.com>
1394
1395        - fixed build of some unit tests
1396
1397        * khtml/misc/main_thread_malloc.h: We use functions from <stdlib.h> here in
1398        debug mode, so #include <stdlib.h>.
1399
14002005-08-14  Darin Adler  <darin@apple.com>
1401
1402        Reviewed by Maciej.
1403
1404        - fixed http://bugs.webkit.org/show_bug.cgi?id=4422
1405          QFont has mistake where it caches computed pitch value incorrectly
1406
1407        * kwq/KWQFont.mm:
1408        (QFont::setFamily): Set _pitch to Unknown when setting _NSFont to nil.
1409        (QFont::setFirstFamily): Ditto.
1410        (QFont::setPixelSize): Ditto. Might be unneeded; it would be bad to have the same font
1411        with different pitch settings at different sizes. But better to be safe.
1412        (QFont::setWeight): Ditto. Same caveat.
1413        (QFont::setItalic): Ditto. Ditto.
1414
14152005-08-14  Oliver Hunt  <ojh16@student.canterbury.ac.nz>
1416
1417        Reviewed and landed by Darin.
1418
1419        - fixed http://bugs.webkit.org/show_bug.cgi?id=3692
1420          Word-spacing doesn't work as expected
1421
1422        Test cases added:
1423        * layout-tests/fast/css/word-space-extra-expected.txt: Added.
1424        * layout-tests/fast/css/word-space-extra.html: Added.
1425
1426        * khtml/rendering/bidi.cpp:
1427        (khtml::RenderBlock::constructLine):
1428        (khtml::RenderBlock::computeHorizontalPositionsForLine):
1429        (khtml::RenderBlock::findNextLineBreak):
1430        * khtml/rendering/font.cpp:
1431        (Font::drawText):
1432        * khtml/rendering/font.h:
1433        (khtml::Font::getWordSpacing):
1434        * khtml/rendering/render_line.cpp:
1435        (khtml::InlineFlowBox::placeBoxesHorizontally):
1436        * khtml/rendering/render_line.h:
1437        * khtml/rendering/render_text.cpp:
1438        (RenderText::widthFromCache):
1439        (RenderText::trimmedMinMaxWidth):
1440        (RenderText::calcMinMaxWidth):
1441        * khtml/rendering/render_text.h:
1442        (khtml::InlineTextBox::setStart):
1443        (khtml::InlineTextBox::setLen):
1444
14452005-08-14  Maciej Stachowiak  <mjs@apple.com>
1446
1447        - updated test cases for new editing delegate output
1448
1449        * layout-tests/editing/deleting/collapse-whitespace-3587601-fix-expected.txt:
1450        * layout-tests/editing/deleting/delete-3608430-fix-expected.txt:
1451        * layout-tests/editing/deleting/delete-3608445-fix-expected.txt:
1452        * layout-tests/editing/deleting/delete-3608462-fix-expected.txt:
1453        * layout-tests/editing/deleting/delete-3775172-fix-expected.txt:
1454        * layout-tests/editing/deleting/delete-3800834-fix-expected.txt:
1455        * layout-tests/editing/deleting/delete-3857753-fix-expected.txt:
1456        * layout-tests/editing/deleting/delete-3865854-fix-expected.txt:
1457        * layout-tests/editing/deleting/delete-3928305-fix-expected.txt:
1458        * layout-tests/editing/deleting/delete-3959464-fix-expected.txt:
1459        * layout-tests/editing/deleting/delete-4038408-fix-expected.txt:
1460        * layout-tests/editing/deleting/delete-4083333-fix-expected.txt:
1461        * layout-tests/editing/deleting/delete-after-span-ws-001-expected.txt:
1462        * layout-tests/editing/deleting/delete-after-span-ws-002-expected.txt:
1463        * layout-tests/editing/deleting/delete-after-span-ws-003-expected.txt:
1464        * layout-tests/editing/deleting/delete-and-undo-expected.txt:
1465        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-001-expected.txt:
1466        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-002-expected.txt:
1467        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-003-expected.txt:
1468        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
1469        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-005-expected.txt:
1470        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-006-expected.txt:
1471        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-007-expected.txt:
1472        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-008-expected.txt:
1473        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-009-expected.txt:
1474        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-010-expected.txt:
1475        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-011-expected.txt:
1476        * layout-tests/editing/deleting/delete-block-contents-001-expected.txt:
1477        * layout-tests/editing/deleting/delete-block-contents-002-expected.txt:
1478        * layout-tests/editing/deleting/delete-block-contents-003-expected.txt:
1479        * layout-tests/editing/deleting/delete-block-merge-contents-001-expected.txt:
1480        * layout-tests/editing/deleting/delete-block-merge-contents-002-expected.txt:
1481        * layout-tests/editing/deleting/delete-block-merge-contents-003-expected.txt:
1482        * layout-tests/editing/deleting/delete-block-merge-contents-004-expected.txt:
1483        * layout-tests/editing/deleting/delete-block-merge-contents-005-expected.txt:
1484        * layout-tests/editing/deleting/delete-block-merge-contents-006-expected.txt:
1485        * layout-tests/editing/deleting/delete-block-merge-contents-007-expected.txt:
1486        * layout-tests/editing/deleting/delete-block-merge-contents-008-expected.txt:
1487        * layout-tests/editing/deleting/delete-block-merge-contents-009-expected.txt:
1488        * layout-tests/editing/deleting/delete-block-merge-contents-010-expected.txt:
1489        * layout-tests/editing/deleting/delete-block-merge-contents-012-expected.txt:
1490        * layout-tests/editing/deleting/delete-block-merge-contents-013-expected.txt:
1491        * layout-tests/editing/deleting/delete-block-merge-contents-014-expected.txt:
1492        * layout-tests/editing/deleting/delete-block-merge-contents-015-expected.txt:
1493        * layout-tests/editing/deleting/delete-block-merge-contents-016-expected.txt:
1494        * layout-tests/editing/deleting/delete-block-merge-contents-017-expected.txt:
1495        * layout-tests/editing/deleting/delete-block-merge-contents-018-expected.txt:
1496        * layout-tests/editing/deleting/delete-block-merge-contents-019-expected.txt:
1497        * layout-tests/editing/deleting/delete-block-merge-contents-020-expected.txt:
1498        * layout-tests/editing/deleting/delete-block-merge-contents-021-expected.txt:
1499        * layout-tests/editing/deleting/delete-br-001-expected.txt:
1500        * layout-tests/editing/deleting/delete-br-002-expected.txt:
1501        * layout-tests/editing/deleting/delete-br-003-expected.txt:
1502        * layout-tests/editing/deleting/delete-br-004-expected.txt:
1503        * layout-tests/editing/deleting/delete-br-005-expected.txt:
1504        * layout-tests/editing/deleting/delete-br-006-expected.txt:
1505        * layout-tests/editing/deleting/delete-br-007-expected.txt:
1506        * layout-tests/editing/deleting/delete-br-008-expected.txt:
1507        * layout-tests/editing/deleting/delete-br-009-expected.txt:
1508        * layout-tests/editing/deleting/delete-br-010-expected.txt:
1509        * layout-tests/editing/deleting/delete-br-011-expected.txt:
1510        * layout-tests/editing/deleting/delete-character-001-expected.txt:
1511        * layout-tests/editing/deleting/delete-contiguous-ws-001-expected.txt:
1512        * layout-tests/editing/deleting/delete-image-001-expected.txt:
1513        * layout-tests/editing/deleting/delete-image-002-expected.txt:
1514        * layout-tests/editing/deleting/delete-image-003-expected.txt:
1515        * layout-tests/editing/deleting/delete-image-004-expected.txt:
1516        * layout-tests/editing/deleting/delete-leading-ws-001-expected.txt:
1517        * layout-tests/editing/deleting/delete-line-001-expected.txt:
1518        * layout-tests/editing/deleting/delete-line-002-expected.txt:
1519        * layout-tests/editing/deleting/delete-line-003-expected.txt:
1520        * layout-tests/editing/deleting/delete-line-004-expected.txt:
1521        * layout-tests/editing/deleting/delete-line-005-expected.txt:
1522        * layout-tests/editing/deleting/delete-line-006-expected.txt:
1523        * layout-tests/editing/deleting/delete-line-007-expected.txt:
1524        * layout-tests/editing/deleting/delete-line-008-expected.txt:
1525        * layout-tests/editing/deleting/delete-line-009-expected.txt:
1526        * layout-tests/editing/deleting/delete-line-010-expected.txt:
1527        * layout-tests/editing/deleting/delete-line-011-expected.txt:
1528        * layout-tests/editing/deleting/delete-line-012-expected.txt:
1529        * layout-tests/editing/deleting/delete-line-013-expected.txt:
1530        * layout-tests/editing/deleting/delete-line-014-expected.txt:
1531        * layout-tests/editing/deleting/delete-line-015-expected.txt:
1532        * layout-tests/editing/deleting/delete-line-016-expected.txt:
1533        * layout-tests/editing/deleting/delete-line-017-expected.txt:
1534        * layout-tests/editing/deleting/delete-line-end-ws-001-expected.txt:
1535        * layout-tests/editing/deleting/delete-line-end-ws-002-expected.txt:
1536        * layout-tests/editing/deleting/delete-select-all-001-expected.txt:
1537        * layout-tests/editing/deleting/delete-select-all-002-expected.txt:
1538        * layout-tests/editing/deleting/delete-select-all-003-expected.txt:
1539        * layout-tests/editing/deleting/delete-selection-001-expected.txt:
1540        * layout-tests/editing/deleting/delete-tab-001-expected.txt:
1541        * layout-tests/editing/deleting/delete-tab-002-expected.txt:
1542        * layout-tests/editing/deleting/delete-tab-003-expected.txt:
1543        * layout-tests/editing/deleting/delete-tab-004-expected.txt:
1544        * layout-tests/editing/deleting/delete-trailing-ws-001-expected.txt:
1545        * layout-tests/editing/deleting/delete-trailing-ws-002-expected.txt:
1546        * layout-tests/editing/deleting/delete-ws-fixup-001-expected.txt:
1547        * layout-tests/editing/deleting/delete-ws-fixup-002-expected.txt:
1548        * layout-tests/editing/deleting/delete-ws-fixup-003-expected.txt:
1549        * layout-tests/editing/deleting/delete-ws-fixup-004-expected.txt:
1550        * layout-tests/editing/deleting/forward-delete-expected.txt:
1551        * layout-tests/editing/deleting/smart-delete-001-expected.txt:
1552        * layout-tests/editing/deleting/smart-delete-002-expected.txt:
1553        * layout-tests/editing/execCommand/boldSelection-expected.txt:
1554        * layout-tests/editing/execCommand/italicizeByCharacter-expected.txt:
1555        * layout-tests/editing/execCommand/modifyForeColorByCharacter-expected.txt:
1556        * layout-tests/editing/execCommand/selectAll-expected.txt:
1557        * layout-tests/editing/inserting/insert-3654864-fix-expected.txt:
1558        * layout-tests/editing/inserting/insert-3659587-fix-expected.txt:
1559        * layout-tests/editing/inserting/insert-3775316-fix-expected.txt:
1560        * layout-tests/editing/inserting/insert-3778059-fix-expected.txt:
1561        * layout-tests/editing/inserting/insert-3786362-fix-expected.txt:
1562        * layout-tests/editing/inserting/insert-3800346-fix-expected.txt:
1563        * layout-tests/editing/inserting/insert-3851164-fix-expected.txt:
1564        * layout-tests/editing/inserting/insert-3907422-fix-expected.txt:
1565        * layout-tests/editing/inserting/insert-after-delete-001-expected.txt:
1566        * layout-tests/editing/inserting/insert-br-001-expected.txt:
1567        * layout-tests/editing/inserting/insert-br-002-expected.txt:
1568        * layout-tests/editing/inserting/insert-br-003-expected.txt:
1569        * layout-tests/editing/inserting/insert-br-004-expected.txt:
1570        * layout-tests/editing/inserting/insert-br-005-expected.txt:
1571        * layout-tests/editing/inserting/insert-br-006-expected.txt:
1572        * layout-tests/editing/inserting/insert-br-007-expected.txt:
1573        * layout-tests/editing/inserting/insert-br-008-expected.txt:
1574        * layout-tests/editing/inserting/insert-div-001-expected.txt:
1575        * layout-tests/editing/inserting/insert-div-002-expected.txt:
1576        * layout-tests/editing/inserting/insert-div-003-expected.txt:
1577        * layout-tests/editing/inserting/insert-div-004-expected.txt:
1578        * layout-tests/editing/inserting/insert-div-005-expected.txt:
1579        * layout-tests/editing/inserting/insert-div-006-expected.txt:
1580        * layout-tests/editing/inserting/insert-div-007-expected.txt:
1581        * layout-tests/editing/inserting/insert-div-008-expected.txt:
1582        * layout-tests/editing/inserting/insert-div-009-expected.txt:
1583        * layout-tests/editing/inserting/insert-div-010-expected.txt:
1584        * layout-tests/editing/inserting/insert-div-011-expected.txt:
1585        * layout-tests/editing/inserting/insert-div-012-expected.txt:
1586        * layout-tests/editing/inserting/insert-div-013-expected.txt:
1587        * layout-tests/editing/inserting/insert-div-014-expected.txt:
1588        * layout-tests/editing/inserting/insert-div-015-expected.txt:
1589        * layout-tests/editing/inserting/insert-div-016-expected.txt:
1590        * layout-tests/editing/inserting/insert-div-017-expected.txt:
1591        * layout-tests/editing/inserting/insert-div-018-expected.txt:
1592        * layout-tests/editing/inserting/insert-div-019-expected.txt:
1593        * layout-tests/editing/inserting/insert-div-020-expected.txt:
1594        * layout-tests/editing/inserting/insert-div-021-expected.txt:
1595        * layout-tests/editing/inserting/insert-div-022-expected.txt:
1596        * layout-tests/editing/inserting/insert-div-023-expected.txt:
1597        * layout-tests/editing/inserting/insert-div-024-expected.txt:
1598        * layout-tests/editing/inserting/insert-div-025-expected.txt:
1599        * layout-tests/editing/inserting/insert-div-026-expected.txt:
1600        * layout-tests/editing/inserting/insert-div-027-expected.txt:
1601        * layout-tests/editing/inserting/insert-space-in-empty-doc-expected.txt:
1602        * layout-tests/editing/inserting/insert-tab-001-expected.txt:
1603        * layout-tests/editing/inserting/insert-tab-002-expected.txt:
1604        * layout-tests/editing/inserting/insert-tab-003-expected.txt:
1605        * layout-tests/editing/inserting/insert-tab-004-expected.txt:
1606        * layout-tests/editing/inserting/insert-text-with-newlines-expected.txt:
1607        * layout-tests/editing/inserting/return-key-with-selection-001-expected.txt:
1608        * layout-tests/editing/inserting/return-key-with-selection-002-expected.txt:
1609        * layout-tests/editing/inserting/return-key-with-selection-003-expected.txt:
1610        * layout-tests/editing/inserting/typing-001-expected.txt:
1611        * layout-tests/editing/inserting/typing-002-expected.txt:
1612        * layout-tests/editing/inserting/typing-003-expected.txt:
1613        * layout-tests/editing/inserting/typing-around-br-001-expected.txt:
1614        * layout-tests/editing/inserting/typing-around-image-001-expected.txt:
1615        * layout-tests/editing/pasteboard/cut-text-001-expected.txt:
1616        * layout-tests/editing/pasteboard/paste-4035648-fix-expected.txt:
1617        * layout-tests/editing/pasteboard/paste-4038267-fix-expected.txt:
1618        * layout-tests/editing/pasteboard/paste-line-endings-001-expected.txt:
1619        * layout-tests/editing/pasteboard/paste-line-endings-002-expected.txt:
1620        * layout-tests/editing/pasteboard/paste-line-endings-003-expected.txt:
1621        * layout-tests/editing/pasteboard/paste-line-endings-004-expected.txt:
1622        * layout-tests/editing/pasteboard/paste-line-endings-005-expected.txt:
1623        * layout-tests/editing/pasteboard/paste-line-endings-006-expected.txt:
1624        * layout-tests/editing/pasteboard/paste-line-endings-007-expected.txt:
1625        * layout-tests/editing/pasteboard/paste-line-endings-008-expected.txt:
1626        * layout-tests/editing/pasteboard/paste-line-endings-009-expected.txt:
1627        * layout-tests/editing/pasteboard/paste-line-endings-010-expected.txt:
1628        * layout-tests/editing/pasteboard/paste-match-style-001-expected.txt:
1629        * layout-tests/editing/pasteboard/paste-match-style-002-expected.txt:
1630        * layout-tests/editing/pasteboard/paste-pre-001-expected.txt:
1631        * layout-tests/editing/pasteboard/paste-text-001-expected.txt:
1632        * layout-tests/editing/pasteboard/paste-text-002-expected.txt:
1633        * layout-tests/editing/pasteboard/paste-text-003-expected.txt:
1634        * layout-tests/editing/pasteboard/paste-text-004-expected.txt:
1635        * layout-tests/editing/pasteboard/paste-text-005-expected.txt:
1636        * layout-tests/editing/pasteboard/paste-text-006-expected.txt:
1637        * layout-tests/editing/pasteboard/paste-text-007-expected.txt:
1638        * layout-tests/editing/pasteboard/paste-text-008-expected.txt:
1639        * layout-tests/editing/pasteboard/paste-text-009-expected.txt:
1640        * layout-tests/editing/pasteboard/paste-text-010-expected.txt:
1641        * layout-tests/editing/pasteboard/paste-text-011-expected.txt:
1642        * layout-tests/editing/pasteboard/paste-text-012-expected.txt:
1643        * layout-tests/editing/pasteboard/paste-text-013-expected.txt:
1644        * layout-tests/editing/pasteboard/paste-text-014-expected.txt:
1645        * layout-tests/editing/pasteboard/paste-text-015-expected.txt:
1646        * layout-tests/editing/pasteboard/paste-text-016-expected.txt:
1647        * layout-tests/editing/pasteboard/paste-text-017-expected.txt:
1648        * layout-tests/editing/pasteboard/paste-text-018-expected.txt:
1649        * layout-tests/editing/pasteboard/smart-paste-001-expected.txt:
1650        * layout-tests/editing/pasteboard/smart-paste-002-expected.txt:
1651        * layout-tests/editing/pasteboard/smart-paste-003-expected.txt:
1652        * layout-tests/editing/pasteboard/smart-paste-004-expected.txt:
1653        * layout-tests/editing/pasteboard/smart-paste-005-expected.txt:
1654        * layout-tests/editing/pasteboard/smart-paste-006-expected.txt:
1655        * layout-tests/editing/pasteboard/smart-paste-007-expected.txt:
1656        * layout-tests/editing/selection/move-between-blocks-no-001-expected.txt:
1657        * layout-tests/editing/selection/select-all-001-expected.txt:
1658        * layout-tests/editing/selection/select-all-002-expected.txt:
1659        * layout-tests/editing/selection/select-all-003-expected.txt:
1660        * layout-tests/editing/selection/select-all-004-expected.txt:
1661        * layout-tests/editing/style/block-style-001-expected.txt:
1662        * layout-tests/editing/style/block-style-002-expected.txt:
1663        * layout-tests/editing/style/block-style-003-expected.txt:
1664        * layout-tests/editing/style/block-style-004-expected.txt:
1665        * layout-tests/editing/style/block-style-005-expected.txt:
1666        * layout-tests/editing/style/block-style-006-expected.txt:
1667        * layout-tests/editing/style/block-styles-007-expected.txt:
1668        * layout-tests/editing/style/create-block-for-style-001-expected.txt:
1669        * layout-tests/editing/style/create-block-for-style-002-expected.txt:
1670        * layout-tests/editing/style/create-block-for-style-003-expected.txt:
1671        * layout-tests/editing/style/create-block-for-style-004-expected.txt:
1672        * layout-tests/editing/style/create-block-for-style-005-expected.txt:
1673        * layout-tests/editing/style/create-block-for-style-006-expected.txt:
1674        * layout-tests/editing/style/create-block-for-style-007-expected.txt:
1675        * layout-tests/editing/style/create-block-for-style-008-expected.txt:
1676        * layout-tests/editing/style/create-block-for-style-009-expected.txt:
1677        * layout-tests/editing/style/create-block-for-style-010-expected.txt:
1678        * layout-tests/editing/style/create-block-for-style-011-expected.txt:
1679        * layout-tests/editing/style/create-block-for-style-012-expected.txt:
1680        * layout-tests/editing/style/create-block-for-style-013-expected.txt:
1681        * layout-tests/editing/style/relative-font-size-change-001-expected.txt:
1682        * layout-tests/editing/style/relative-font-size-change-002-expected.txt:
1683        * layout-tests/editing/style/relative-font-size-change-003-expected.txt:
1684        * layout-tests/editing/style/relative-font-size-change-004-expected.txt:
1685        * layout-tests/editing/style/remove-underline-across-paragraph-expected.txt:
1686        * layout-tests/editing/style/remove-underline-across-paragraph-in-bold-expected.txt:
1687        * layout-tests/editing/style/remove-underline-after-paragraph-expected.txt:
1688        * layout-tests/editing/style/remove-underline-after-paragraph-in-bold-expected.txt:
1689        * layout-tests/editing/style/remove-underline-expected.txt:
1690        * layout-tests/editing/style/remove-underline-from-stylesheet-expected.txt:
1691        * layout-tests/editing/style/remove-underline-in-bold-expected.txt:
1692        * layout-tests/editing/style/smoosh-styles-001-expected.txt:
1693        * layout-tests/editing/style/smoosh-styles-002-expected.txt:
1694        * layout-tests/editing/style/smoosh-styles-003-expected.txt:
1695        * layout-tests/editing/style/style-3681552-fix-001-expected.txt:
1696        * layout-tests/editing/style/style-3681552-fix-002-expected.txt:
1697        * layout-tests/editing/style/style-3690704-fix-expected.txt:
1698        * layout-tests/editing/style/style-3998892-fix-expected.txt:
1699        * layout-tests/editing/style/style-boundary-001-expected.txt:
1700        * layout-tests/editing/style/style-boundary-002-expected.txt:
1701        * layout-tests/editing/style/style-boundary-003-expected.txt:
1702        * layout-tests/editing/style/style-boundary-004-expected.txt:
1703        * layout-tests/editing/style/typing-style-001-expected.txt:
1704        * layout-tests/editing/style/typing-style-002-expected.txt:
1705        * layout-tests/editing/style/typing-style-003-expected.txt:
1706        * layout-tests/editing/style/unbold-in-bold-expected.txt:
1707        * layout-tests/editing/style/underline-expected.txt:
1708        * layout-tests/editing/undo/redo-typing-001-expected.txt:
1709        * layout-tests/editing/undo/undo-typing-001-expected.txt:
1710        * layout-tests/editing/unsupported-content/list-delete-001-expected.txt:
1711        * layout-tests/editing/unsupported-content/list-delete-002-expected.txt:
1712        * layout-tests/editing/unsupported-content/list-delete-003-expected.txt:
1713        * layout-tests/editing/unsupported-content/list-type-after-expected.txt:
1714        * layout-tests/editing/unsupported-content/list-type-before-expected.txt:
1715        * layout-tests/editing/unsupported-content/table-delete-001-expected.txt:
1716        * layout-tests/editing/unsupported-content/table-delete-002-expected.txt:
1717        * layout-tests/editing/unsupported-content/table-delete-003-expected.txt:
1718        * layout-tests/editing/unsupported-content/table-type-after-expected.txt:
1719        * layout-tests/editing/unsupported-content/table-type-before-expected.txt:
1720        * layout-tests/fast/selectors/159-expected.txt:
1721        * layout-tests/fast/selectors/177a-expected.txt:
1722
17232005-08-14  Darin Adler  <darin@apple.com>
1724
1725        Reviewed by Maciej.
1726
1727        - fixed http://bugs.webkit.org/show_bug.cgi?id=4420
1728          make border drawing faster by removing code to alloc/dealloc NSBezierPath
1729
1730        * kwq/KWQPainter.h: Remove unused drawLineSegments, drawPolyline, and drawPolygon.
1731        * kwq/KWQPainter.mm:
1732        (QPainter::drawConvexPolygon): Move the body of _drawPoints into here, and remove the
1733        various unused code paths. Use CoreGraphics calls instead of NSBezierPath.
1734
17352005-08-14  Maciej Stachowiak  <mjs@apple.com>
1736
1737        Reviewed by Darin.
1738
1739        - apply a tasty candy shell of inlining and main_thread_malloc for a 1% speedup on HTML iBench
1740	http://bugs.webkit.org/show_bug.cgi?id=4425
1741	
1742        * kwq/KWQArrayImpl.h:
1743        (KWQArrayImpl::size):
1744        * kwq/KWQArrayImpl.mm:
1745        * kwq/KWQMapImpl.h:
1746        * kwq/KWQMapImpl.mm:
1747        * kwq/KWQRefPtr.h:
1748        (::KWQRefPtr):
1749        (::operator):
1750        (::ref):
1751        (::unref):
1752        * kwq/KWQValueListImpl.h:
1753        (KWQValueListIteratorImpl::KWQValueListIteratorImpl):
1754        (KWQValueListIteratorImpl::operator==):
1755        (KWQValueListIteratorImpl::operator!=):
1756        (KWQValueListIteratorImpl::node):
1757        (KWQValueListIteratorImpl::operator++):
1758        (KWQValueListIteratorImpl::operator--):
1759        (KWQValueListNodeImpl::KWQValueListNodeImpl):
1760        * kwq/KWQValueListImpl.mm:
1761        (KWQValueListImpl::KWQValueListPrivate::KWQValueListPrivate):
1762        (KWQValueListImpl::KWQValueListPrivate::~KWQValueListPrivate):
1763
17642005-08-14  Duncan Wilcox  <duncan@mclink.it>
1765
1766        Reviewed and landed by Darin.
1767
1768        WebCore part of fix for <http://bugs.webkit.org/show_bug.cgi?id=4011>:
1769        "Editing delegate selection methods not called when using mouse"
1770
1771        Clicking on editable content would move the cursor or alter the selection without
1772        calling the appropriate editing delegate method
1773        (webView:shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:). The
1774        core of the patch is in the KHTMLPart::hadnleMousePressEvent* methods, the rest
1775        is glue needed to drill through all the layers.
1776
1777        * khtml/khtml_part.cpp:
1778        * khtml/khtml_part.cpp:
1779        (KHTMLPart::shouldChangeSelection): Glue to call editing delegate.
1780        (KHTMLPart::findTextNext): Call editing delegate before changing selection.
1781        (KHTMLPart::selectClosestWordFromMouseEvent): Ditto.
1782        (KHTMLPart::handleMousePressEventTripleClick): Ditto.
1783        (KHTMLPart::handleMousePressEventSingleClick): Ditto.
1784        (KHTMLPart::handleMouseMoveEventSelection): Ditto.
1785        (KHTMLPart::khtmlMouseReleaseEvent): Ditto.
1786        (KHTMLPart::selectAll): Ditto.
1787        (KHTMLPart::appliedEditing): Ditto.
1788        (KHTMLPart::unappliedEditing): Ditto.
1789        (KHTMLPart::reappliedEditing): Ditto.
1790        (KHTMLPart::selectFrameElementInParentIfFullySelected): Ditto.
1791
1792        * khtml/khtml_part.h: Added shouldChangeSelection glue method.
1793        * kwq/KWQKHTMLPart.h: Ditto.
1794
1795        * kwq/KWQKHTMLPart.mm:
1796        (KWQKHTMLPart::shouldChangeSelection): Glue to call editing delegate.
1797
1798        * kwq/WebCoreBridge.h: Added shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting: glue method.
1799
18002005-08-14  Darin Adler  <darin@apple.com>
1801
1802        Fixed by Alexey Proskuryakov <ap@nypop.com>.
1803        Reviewed and landed by Darin.
1804
1805        - fixed http://bugs.webkit.org/show_bug.cgi?id=3590
1806          should allow <meta> tags for encoding even after </head>
1807
1808        Test cases added:
1809        * layout-tests/fast/encoding/mispositioned-meta-expected.txt: Added.
1810        * layout-tests/fast/encoding/mispositioned-meta.html: Added.
1811
1812        * khtml/misc/decoder.cpp: (Decoder::decode): Don't stop scanning when seeing </head>.
1813
18142005-08-14  Anders Carlsson  <andersca@mac.com>
1815
1816        Reviewed and landed by Darin.
1817
1818        Test cases added: 	
1819        * layout-tests/dom/html/level2/events/dispatchEvent08-expected.txt:
1820        * layout-tests/dom/html/level2/events/dispatchEvent10-expected.txt:
1821        * layout-tests/dom/html/level2/events/dispatchEvent12-expected.txt:
1822	These pass now.
1823	
1824        * layout-tests/dom/html/level2/events/dispatchEvent11-expected.txt:
1825        * layout-tests/dom/html/level2/events/dispatchEvent13-expected.txt:
1826	These fail someplace else now.
1827	
1828        * khtml/ecma/kjs_events.cpp:
1829        (KJS::JSAbstractEventListener::handleEvent):
1830	Check if the listener has a "handleEvent" function property and
1831	call that.
1832	
1833        * khtml/xml/dom_nodeimpl.cpp:
1834        (DOM::NodeImpl::dispatchGenericEvent):
1835	A capturing event listener should not be triggered if an event is
1836	dispatched directly to the node to which the listener has been added.
1837
18382005-08-14  Anders Carlsson  <andersca@mac.com>
1839
1840        Reviewed and landed by Darin.
1841
1842        Test cases added: 
1843        * layout-tests/dom/html/level2/core/hc_nodedocumentfragmentnormalize2-expected.txt:
1844	This passes now.
1845	
1846        * khtml/xml/dom_nodeimpl.cpp:
1847        (DOM::NodeImpl::normalize):
1848	If there's a single empty text child, remove it.
1849	
18502005-08-14  Anders Carlsson  <andersca@mac.com>
1851
1852        Reviewed and landed by Darin.
1853
1854        Test cases added:
1855        * layout-tests/dom/html/level2/html/HTMLSelectElement20-expected.txt:
1856	This passes now.
1857
1858        * khtml/ecma/kjs_html.cpp:
1859        (KJS::KJS::HTMLElementFunction::callAsFunction):
1860        (KJS::KJS::HTMLSelectCollection::put):
1861	Handle exceptions.
1862
1863        * khtml/html/html_formimpl.cpp:
1864        (DOM::HTMLSelectElementImpl::add):
1865        * khtml/html/html_formimpl.h:
1866	Make ::add raise an exception if before isn't a descendant
1867	of the select element.
1868
1869        * kwq/DOMHTML.mm:
1870        (-[DOMHTMLSelectElement add::]):
1871	Handle the exception.
1872
18732005-08-12  Geoffrey Garen  <ggaren@apple.com>
1874
1875        Reviewed by adele.
1876
1877        * manual-tests/liveconnect-security-exception.html:
1878            - fixed wrong codebase path
1879            - added instruction to disable popup blocking
1880
18812005-08-11  Adele Peterson  <adele@apple.com>
1882
1883        Reviewed by Darin.
1884
1885        Test cases added: (NONE)
1886
1887        -fixed <rdar://problem/4166839> CSS font-family and font-size ignored on <select> element with size > 1
1888
1889        Changed KWQListBox to get the font from the widget.
1890
1891        * kwq/KWQListBox.h: added setFont method
1892        * kwq/KWQListBox.mm:
1893        (QListBox::setFont): Added.
1894        (QListBox::sizeForNumberOfLines): if the new font is the same as the system font, use the old system for cacheing the text renderer.
1895        Otherwise, create a text renderer based on the new font, and a bold version of the new font.
1896        (-[KWQTableView drawRow:clipRect:]): ditto.
1897        (-[KWQTableView initWithListBox:]): moved setRowHeight call to fontChanged, so the height will reflect the new font.
1898        (-[KWQTableView fontChanged]): Added.
1899
19002005-08-11  David Hyatt  <hyatt@apple.com>
1901
1902	Refine the baseline alignment rule for inline blocks to cover for a hole in the spec.  The spec doesnt say what to do
1903	for overflow cases, e.g., when the last line is clipped, when the overflow box is scrolled, or even when overflow is
1904	visible but the last line is outside your content box.  We just revert to the old behavior in those cases.  Hopefully
1905	the spec will be clarified to explain what the right behavior is.
1906	
1907        Reviewed by beth
1908
1909        Test cases added: fast/inline-block/tricky-baseline.html
1910
1911        * khtml/rendering/render_block.cpp:
1912        (khtml::RenderBlock::baselinePosition):
1913
19142005-08-11  Eric Seidel  <eseidel@apple.com>
1915
1916        Reviewed by darin.
1917
1918        * WebCore+SVG/DrawView.mm:
1919        (-[DrawViewPrivate drawRect:]): added additional NULL check.
1920        * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
1921        (KCanvasFilterQuartz::applyFilter): removed NSLog.
1922        * kcanvas/device/quartz/KRenderingPaintServerQuartz.mm:
1923        (KRenderingPaintServerPatternQuartz::draw): removed NSLog.
1924        Removed debugging logs, and fixed crasher for empty SVGs.
1925        http://bugs.webkit.org/show_bug.cgi?id=4384
1926
19272005-08-11  Geoffrey Garen  <ggaren@apple.com>
1928
1929        * layout-tests/fast/js/date-big-setdate.html: fixed title
1930
19312005-08-11  Eric Seidel  <eseidel@apple.com>
1932
1933        No review needed, copyright update in comments.
1934        All kdom, ksvg2, and kcanvas files affected.
1935        http://bugs.webkit.org/show_bug.cgi?id=4382
1936
19372005-08-10  Maciej Stachowiak  <mjs@apple.com>
1938
1939        Reviewed by Geoff.
1940
1941        Test cases added:
1942
1943        * layout-tests/fast/js/assign.html: Added. Test case for assignment to make sure
1944	I didn't break anything.
1945        * layout-tests/fast/js/code-serialize-paren.html: Added, test case for a minor bug
1946	I fixed where parens were not getting serialized at all when turning a function
1947	into a string.
1948
19492005-08-11  Maciej Stachowiak  <mjs@apple.com>
1950
1951        At Least Rougly Glanced At by Anders.
1952
1953	- fix change with totally breaks the layout tests.
1954
1955	Changed all the tests below to avoid dumping more than once -
1956	since this now prints more than one separator, it totally throws
1957	off the layout test driver so it needs to be avoided.
1958	
1959        * layout-tests/dom/html/level2/html/HTMLFormElement10-expected.txt:
1960        * layout-tests/dom/html/level2/html/HTMLFormElement10.html:
1961        * layout-tests/dom/html/level2/html/HTMLFormElement10.js:
1962        * layout-tests/fast/events/onunload-expected.txt:
1963        * layout-tests/fast/events/onunload.html:
1964        * layout-tests/fast/js/location-assign-expected.txt:
1965        * layout-tests/fast/js/location-assign.html:
1966
19672005-08-10  Geoffrey Garen  <ggaren@apple.com>
1968
1969        -added layout test for fix to <rdar://problem/4151132> REGRESSION: Some applet 
1970        liveconnect calls throws privilege exception.
1971        
1972        (See JavaScriptCore Changelog for fix details.)
1973
1974        * manual-tests/liveconnect-security-exception.html: Added.
1975        * manual-tests/resources/TestApplet.class: Added.
1976        * manual-tests/resources/TestApplet.java: Added.
1977        (TestApplet):
1978        (TestApplet.init):
1979        (TestApplet.method):
1980        * manual-tests/resources/liveconnect-security-exception-popup.html: Added.
1981
19822005-08-10  Vicki Murley  <vicki@apple.com>
1983
1984	Changes from Curt Arnold, reviewed by Vicki.
1985
1986	Fix http://bugs.webkit.org/show_bug.cgi?id=4174 (DOM layout tests involving two 
1987	documents fail due to test framework problem), and update expected results for tests
1988	affected by this change.
1989	
1990        * layout-tests/dom/html/level1/core/hc_attrappendchild5-expected.txt:
1991        * layout-tests/dom/html/level1/core/hc_attrinsertbefore6-expected.txt:
1992        * layout-tests/dom/html/level1/core/hc_elementwrongdocumenterr-expected.txt:
1993        * layout-tests/dom/html/level1/core/hc_namednodemapwrongdocumenterr-expected.txt:
1994        * layout-tests/dom/html/level1/core/hc_nodeappendchildnewchilddiffdocument-expected.txt:
1995        * layout-tests/dom/html/level1/core/hc_nodeinsertbeforenewchilddiffdocument-expected.txt:
1996        * layout-tests/dom/html/level1/core/hc_nodereplacechildnewchilddiffdocument-expected.txt:
1997        * layout-tests/dom/html/level1/core/selfhtml.js:
1998        * layout-tests/dom/html/level2/core/selfhtml.js:
1999        * layout-tests/dom/html/level2/events/selfhtml.js:
2000        * layout-tests/dom/html/level2/html/selfhtml.js:
2001
20022005-08-10  Eric Seidel  <eseidel@apple.com>
2003
2004        Reviewed by darin.
2005
2006        Test cases:
2007        * svg-tests/W3C-SVG-1.1/script-handle-03-b-expected.txt: Added.
2008        * svg-tests/W3C-SVG-1.1/script-handle-03-b.svg: Added.
2009        * svg-tests/W3C-SVG-1.1/script-handle-03-b.svg-disabled: Removed.
2010        * svg-tests/W3C-SVG-1.1/script-handle-04-b-expected.txt: Added.
2011        * svg-tests/W3C-SVG-1.1/script-handle-04-b.svg: Added.
2012        * svg-tests/W3C-SVG-1.1/script-handle-04-b.svg-disabled: Removed.
2013        * svg-tests/W3C-SVG-1.1/struct-dom-01-b-expected.txt: Added.
2014        * svg-tests/W3C-SVG-1.1/struct-dom-01-b.svg: Added.
2015        * svg-tests/W3C-SVG-1.1/struct-dom-01-b.svg-disabled: Removed.
2016        * svg-tests/W3C-SVG-1.1/struct-dom-02-b-expected.txt: Added.
2017        * svg-tests/W3C-SVG-1.1/struct-dom-02-b.svg: Added.
2018        * svg-tests/W3C-SVG-1.1/struct-dom-02-b.svg-disabled: Removed.
2019        * svg-tests/W3C-SVG-1.1/struct-dom-03-b-expected.txt: Added.
2020        * svg-tests/W3C-SVG-1.1/struct-dom-03-b.svg: Added.
2021        * svg-tests/W3C-SVG-1.1/struct-dom-03-b.svg-disabled: Removed.
2022        * svg-tests/W3C-SVG-1.1/struct-dom-04-b-expected.txt: Added.
2023        * svg-tests/W3C-SVG-1.1/struct-dom-04-b.svg: Added.
2024        * svg-tests/W3C-SVG-1.1/struct-dom-04-b.svg-disabled: Removed.
2025        * svg-tests/W3C-SVG-1.1/struct-dom-05-b-expected.txt: Added.
2026        * svg-tests/W3C-SVG-1.1/struct-dom-05-b.svg: Added.
2027        * svg-tests/W3C-SVG-1.1/struct-dom-05-b.svg-disabled: Removed.
2028        * svg-tests/W3C-SVG-1.1/struct-dom-06-b-expected.txt: Added.
2029        * svg-tests/W3C-SVG-1.1/struct-dom-06-b.svg: Added.
2030        * svg-tests/W3C-SVG-1.1/struct-dom-06-b.svg-disabled: Removed.
2031        Re-enabled previously crashing SVG test cases:
2032        http://bugs.webkit.org/show_bug.cgi?id=4338
2033
20342005-08-10  Vicki Murley  <vicki@apple.com>
2035
2036        Reviewed by John.
2037 
2038	- attempted fix for <rdar://problem/4070895> 8A428: Unrepro Safari crash on 
2039	friendster.com (XMLHttpRequest::changeState) 
2040
2041        Test cases added: None - there are no known reproducible cases of this crash
2042
2043        * khtml/ecma/xmlhttprequest.cpp:
2044        (KJS::XMLHttpRequest::changeState): add checks for NULL document
2045
20462005-08-10  Adele Peterson  <adele@apple.com>
2047
2048        Bumping version to 420+
2049
2050        * Info.plist:
2051
20522005-08-09  David Harrison  <harrison@apple.com>
2053
2054        Reviewed by Dave Hyatt.
2055
2056        <rdar://problem/4210906> Word selection wrong with tabs
2057
2058        Test cases added: selection/extend-by-word-001-html
2059
2060        * khtml/editing/visible_text.cpp:
2061        (khtml::TextIterator::handleTextNode):
2062        * layout-tests/editing/selection/extend-by-word-001-html: Added.
2063        * layout-tests/editing/selection/extend-by-word-001-expected.txt: Added.
2064
20652005-08-09  Justin Garcia  <justin.garcia@apple.com>
2066
2067        Patch by Anders Carlsson  <andersca@mac.com>
2068
2069        Fixes <http://bugs.webkit.org/show_bug.cgi?id=3837>
2070            Page nearly loads but then returned to default page by javascript issue
2071
2072        Reviewed by darin
2073
2074        Test cases added:
2075        * layout-tests/fast/tokenizer/script-after-frameset-expected.txt: Added.
2076        * layout-tests/fast/tokenizer/script-after-frameset.html: Added.
2077
2078        * khtml/html/htmltokenizer.cpp:
2079        (khtml::HTMLTokenizer::scriptHandler):
2080
20812005-08-09  Justin Garcia  <justin.garcia@apple.com>
2082
2083        Patch by Anders Carlsson <andersca@mac.com>
2084        
2085        Fixes <http://bugs.webkit.org/show_bug.cgi?id=4330>
2086            hasFeature('xhtml', ...) should return true
2087
2088        Reviewed by darin
2089
2090        Test cases updated:
2091        * layout-tests/dom/html/level2/html/HTMLBodyElement09-expected.txt:
2092        * layout-tests/dom/html/level2/html/HTMLBodyElement10-expected.txt:
2093        * layout-tests/dom/html/level2/html/HTMLDocument24-expected.txt:
2094        * layout-tests/dom/html/level2/html/HTMLDocument25-expected.txt:
2095        * layout-tests/dom/html/level2/html/hasFeature03-expected.txt:
2096        * layout-tests/dom/html/level2/html/hasFeature04-expected.txt:
2097        These are successful now.
2098        
2099        * khtml/xml/dom_docimpl.cpp:
2100        (DOMImplementationImpl::hasFeature):
2101        Support "xhtml".
2102
21032005-08-09  Justin Garcia  <justin.garcia@apple.com>
2104
2105        Patch by Anders Carlsson <andersca@mac.com>
2106
2107        Fixes <http://bugs.webkit.org/show_bug.cgi?id=4322> 
2108	       date-big-setdate.html testcase fails if the timezone isn't UTC-8
2109	
2110        Reviewed by darin
2111        
2112        Test cases added:
2113        * layout-tests/fast/js/date-big-setdate-expected.txt:
2114        * layout-tests/fast/js/date-big-setdate.html:
2115        Compare the millisecond value of the dates to see if they're
2116        sequential instead of simply printing the dates.
2117
21182005-08-09  Justin Garcia  <justin.garcia@apple.com>
2119
2120        Patch by Anders Carlsson <andersca@mac.com
2121
2122        Reviewed by darin
2123        
2124        Fixes <http://bugs.webkit.org/show_bug.cgi?id=4331> dispatchEvent should raise an exception
2125        
2126        Test cases added:
2127        * layout-tests/dom/html/level2/events/createEvent01-expected.txt:
2128        * layout-tests/dom/html/level2/events/dispatchEvent01-expected.txt:
2129        * layout-tests/dom/html/level2/events/dispatchEvent02-expected.txt:
2130        * layout-tests/dom/html/level2/events/dispatchEvent03-expected.txt:
2131        * layout-tests/dom/html/level2/events/dispatchEvent04-expected.txt:
2132        * layout-tests/dom/html/level2/events/dispatchEvent05-expected.txt:
2133        * layout-tests/dom/html/level2/events/dispatchEvent06-expected.txt:
2134        * layout-tests/dom/html/level2/events/dispatchEvent07-expected.txt:
2135        * layout-tests/dom/html/level2/events/dispatchEvent09-expected.txt:
2136        * layout-tests/dom/html/level2/events/dispatchEvent11-expected.txt:
2137        * layout-tests/dom/html/level2/events/initEvent01-expected.txt:
2138        * layout-tests/dom/html/level2/events/initEvent02-expected.txt:
2139        * layout-tests/dom/html/level2/events/initEvent03-expected.txt:
2140        These tests pass now.
2141	
2142        * layout-tests/dom/html/level2/events/dispatchEvent08-expected.txt:
2143        * layout-tests/dom/html/level2/events/dispatchEvent10-expected.txt:
2144        * layout-tests/dom/html/level2/events/dispatchEvent12-expected.txt:
2145        * layout-tests/dom/html/level2/events/dispatchEvent13-expected.txt:
2146        These tests fail somplace else now.
2147
2148        * khtml/dom/dom2_events.h:
2149        (DOM::EventException::):
2150        Add _EXCEPTION_OFFSET and _EXCEPTION_MAX.
2151	
2152        * khtml/ecma/kjs_binding.cpp:
2153        (KJS::setDOMException):
2154        Handle EventExceptions.
2155	
2156        * khtml/xml/dom_docimpl.cpp:
2157        (DocumentImpl::createEvent):
2158        Allow "Events" as event type.
2159	
2160        * khtml/xml/dom_nodeimpl.cpp:
2161        (DOM::NodeImpl::dispatchEvent):
2162        Raise exception if event is NULL, uninitialized, or if its name is the empty string.
2163        	
2164        * kwq/DOMInternal.mm:
2165        (raiseDOMException):
2166        Handle EventExceptions.
2167
21682005-08-09  David Hyatt  <hyatt@apple.com>
2169
2170	Implement baseline alignment support for inline blocks.  Inline blocks are supposed to use
2171	the baseline of the last line in the block as their baseline.  For marquees we still
2172	bottom align, since marquees really have no discernible baseline in many cases (and this
2173	retains compatibility with WinIE).
2174	
2175        Reviewed by cblu
2176
2177        Test cases added: 006.html in fast/inline-block
2178
2179        * khtml/rendering/render_block.cpp:
2180        (khtml::RenderBlock::baselinePosition):
2181        (khtml::RenderBlock::getBaselineOfLastLineBox):
2182        * khtml/rendering/render_block.h:
2183        * khtml/rendering/render_object.h:
2184        (khtml::RenderObject::getBaselineOfLastLineBox):
2185        * layout-tests/css1/box_properties/acid_test-expected.txt:
2186        * layout-tests/fast/css/MarqueeLayoutTest-expected.txt:
2187        * layout-tests/fast/forms/007-expected.txt:
2188        * layout-tests/fast/inline-block/001-expected.txt:
2189        * layout-tests/fast/inline-block/001.html:
2190        * layout-tests/fast/inline-block/006-expected.txt: Added.
2191        * layout-tests/fast/inline-block/006.html: Added.
2192        * layout-tests/fast/selectors/064-expected.txt:
2193
21942005-08-09  Vicki Murley  <vicki@apple.com>
2195
2196        Fixed by Anders Carlsson, Reviewed by Maciej.
2197
2198	- fixed <rdar://problem/4071417> add XMLSerializer object to WebCore's JavaScript support (4046)
2199 
2200        Test cases added: 
2201        * layout-tests/fast/dom/XMLSerializer-expected.txt: Added.
2202        * layout-tests/fast/dom/XMLSerializer.html: Added.
2203
2204        * khtml/ecma/xmlserializer.cpp:
2205        (KJS::XMLSerializerProtoFunc::callAsFunction): allow any node to be serialized, not just documents
2206
22072005-08-09  Adele Peterson  <adele@apple.com>
2208
2209        Reviewed by Darin.
2210        
2211        - fixed <rdar://problem/4056369> XML parsing hits disk to turn URL incorrectly passed as relative path name into absolute (prevents idle sleep)
2212
2213        * khtml/xml/xml_tokenizer.cpp:
2214        (khtml::createQStringParser): removed last parameter, since we are no longer passing the url to xmlCreatePushParserCtxt
2215        (khtml::XMLTokenizer::finish): removed last parameter from createQStringParser
2216
22172005-08-08  David Hyatt  <hyatt@apple.com>
2218
2219	Fix for radar bug #4202641, make sure line breaks happen inside
2220	white-space:pre if word-wrap:break-word is set.
2221	
2222        Reviewed by darin
2223
2224        Test cases added: fast/text/whitespace/pre-break-word.html
2225
2226        * khtml/rendering/bidi.cpp:
2227        (khtml::RenderBlock::findNextLineBreak):
2228
22292005-08-08  Darin Adler  <darin@apple.com>
2230
2231        Reviewed by John.
2232
2233        - fixed http://bugs.webkit.org/show_bug.cgi?id=4298
2234          JS crash with DOM2 mouse event with incorrect view
2235
2236        Test cases added:
2237        * layout-tests/fast/events/init-event-null-view-expected.txt: Added.
2238        * layout-tests/fast/events/init-event-null-view.html: Added.
2239
2240        * khtml/xml/dom2_eventsimpl.cpp: (MouseRelatedEventImpl::computeLayerPos): Added nil check.
2241
22422005-08-08  David Hyatt  <hyatt@apple.com>
2243
2244	This patch implements support for <input type=radio> in the engine and removes the NSView-based
2245	control.
2246	
2247	Reviewed by: John Sullivan
2248	
2249        * ForwardingHeaders/qradiobutton.h: Removed.
2250        * WebCore.xcodeproj/project.pbxproj:
2251        Removing the old QRadioButton from the project.
2252	
2253	* khtml/css/html4.css:
2254        Add the CSS rule to give radio buttons the correct appearance.
2255	
2256	* khtml/html/html_formimpl.cpp:
2257        (DOM::HTMLInputElementImpl::click):
2258        Now that radio button has no corresponding QWidget, move its click handling case down to match
2259	the other widget-less controls.
2260	
2261	(DOM::HTMLInputElementImpl::createRenderer):
2262	The special renderer doesn't have to be made any more.  Radio now behaves like checkbox and just
2263	makes a renderer based off the specified display type in CSS.
2264	
2265        (DOM::HTMLInputElementImpl::setChecked):
2266        Fix a regression that prevented unnamed checkboxes from functioning properly.  Make sure to
2267	only disallow the selecting of unnamed radio buttons.
2268	
2269	(DOM::HTMLInputElementImpl::valueWithDefault):
2270	Fix some mis-indented ifdefs.
2271	
2272        (DOM::HTMLInputElementImpl::preDispatchEventHandler):
2273        Added a new event handler method that is called prior to the dispatch of the event into the DOM.
2274	This function is necessary because checkboxes and radio buttons need to check/uncheck *prior* to
2275	the onclick actually being sent into the DOM.
2276	
2277	(DOM::HTMLInputElementImpl::defaultEventHandler):
2278        Remove the code that attempted to check/uncheck checkboxes from this function, since it was called
2279	*after* onclick was handled in the DOM, and this was too late.  The code has moved into 
2280	preDispatchEventHandler instead.
2281	
2282	* khtml/html/html_formimpl.h:
2283        * khtml/rendering/render_form.cpp:
2284        * khtml/rendering/render_form.h:
2285        Removed RenderRadioButton, the custom renderer that used to wrap QRadioButton.
2286	
2287	* khtml/rendering/render_theme.cpp:
2288        (khtml::RenderTheme::adjustStyle):
2289        (khtml::RenderTheme::paint):
2290	Add the radio button case to these methods.
2291	
2292        (khtml::RenderTheme::adjustCheckboxStyle):
2293        (khtml::RenderTheme::adjustRadioStyle):
2294        Rework these methods to move all of the control size selection based off font into the
2295	derived class.  These methods stay in the base class and call a virtual setCheckbox/RadioSize
2296	method to get the size set up properly.
2297	
2298	* khtml/rendering/render_theme.h:
2299        (khtml::RenderTheme::setCheckboxSize):
2300        (khtml::RenderTheme::setRadioSize):
2301        The two new virtual methods that a derived class can override to set initial sizes.
2302	
2303	* khtml/rendering/render_theme_mac.h:
2304        * khtml/rendering/render_theme_mac.mm:
2305        (khtml::RenderThemeMac::inflateRect):
2306        (khtml::RenderThemeMac::setControlSize):
2307        (khtml::RenderThemeMac::sizeForFont):
2308        (khtml::RenderThemeMac::setSizeFromFont):
2309        (khtml::RenderThemeMac::checkboxSizes):
2310        (khtml::RenderThemeMac::setCheckboxCellState):
2311        (khtml::RenderThemeMac::setCheckboxSize):
2312        Patched all of these methods to deal with QSizes instead of ints, since radio buttons are not
2313	square.
2314	
2315	(khtml::RenderThemeMac::paintRadio):
2316        (khtml::RenderThemeMac::radioSizes):
2317        (khtml::RenderThemeMac::radioMargins):
2318        (khtml::RenderThemeMac::setRadioCellState):
2319        (khtml::RenderThemeMac::setRadioSize):
2320        The implementation of radio buttons.  Virtually identical to checkbox.
2321	
2322	* khtml/xml/dom_nodeimpl.cpp:
2323        (DOM::NodeImpl::dispatchGenericEvent):
2324        Add the invocation of preDispatchEventHandler prior to the dispatch of the event.
2325	
2326	* khtml/xml/dom_nodeimpl.h:
2327        (DOM::NodeImpl::preDispatchEventHandler):
2328        The stubbed out empty virtual function in the base class.  Overridden in HTMLInputElementImpl
2329	to check/uncheck radio buttons and checkboxes prior to the click event being sent into the DOM.
2330	
2331	* kwq/KWQAccObject.mm:
2332        (-[KWQAccObject actionElement]):
2333        (-[KWQAccObject role]):
2334        (-[KWQAccObject roleDescription]):
2335        (-[KWQAccObject value]):
2336        (-[KWQAccObject accessibilityIsAttributeSettable:]):
2337        The implementation of radio button accessibility.  Identical to checkbox (just a different role).
2338	
2339	* kwq/KWQRadioButton.h: Removed.
2340        * kwq/KWQRadioButton.mm: Removed.
2341	Removed the old radio button files for QRadioButton.
2342	
23432005-08-08  Eric Seidel  <eseidel@apple.com>
2344
2345        Reviewed by darin.
2346
2347        The rest of the changes necessary for darin's Object/Value removal.
2348        These fixes are for kdom/ksvg2 and allow WebCore+SVG to compile.
2349        http://bugs.webkit.org/show_bug.cgi?id=4332
2350        * kdom/Attr.cpp:
2351        (Attr::getValueProperty):
2352        (Attr::putValueProperty):
2353        * kdom/Attr.h:
2354        * kdom/CharacterData.cpp:
2355        (CharacterData::getValueProperty):
2356        (CharacterData::putValueProperty):
2357        (CharacterDataProtoFunc::callAsFunction):
2358        * kdom/CharacterData.h:
2359        * kdom/DOMConfiguration.cpp:
2360        (DOMConfiguration::getValueProperty):
2361        (DOMConfigurationProtoFunc::callAsFunction):
2362        * kdom/DOMConfiguration.h:
2363        * kdom/DOMError.cpp:
2364        (DOMError::getValueProperty):
2365        * kdom/DOMError.h:
2366        * kdom/DOMErrorHandler.cpp:
2367        (DOMErrorHandler::getValueProperty):
2368        (DOMErrorHandlerProtoFunc::callAsFunction):
2369        * kdom/DOMErrorHandler.h:
2370        * kdom/DOMException.cpp:
2371        (DOMException::getValueProperty):
2372        * kdom/DOMException.h:
2373        * kdom/DOMImplementation.cpp:
2374        (DOMImplementation::getValueProperty):
2375        (DOMImplementationProtoFunc::callAsFunction):
2376        * kdom/DOMImplementation.h:
2377        * kdom/DOMLocator.cpp:
2378        (DOMLocator::getValueProperty):
2379        * kdom/DOMLocator.h:
2380        * kdom/DOMStringList.cpp:
2381        (DOMStringList::getValueProperty):
2382        (DOMStringListProtoFunc::callAsFunction):
2383        * kdom/DOMStringList.h:
2384        * kdom/DOMUserData.cpp:
2385        (DOMUserData::getValueProperty):
2386        * kdom/DOMUserData.h:
2387        * kdom/Document.cpp:
2388        (KDOM::Document::getValueProperty):
2389        (KDOM::Document::putValueProperty):
2390        (KDOM::DocumentProtoFunc::callAsFunction):
2391        * kdom/Document.h:
2392        * kdom/DocumentType.cpp:
2393        (DocumentType::getValueProperty):
2394        * kdom/DocumentType.h:
2395        * kdom/Element.cpp:
2396        (Element::getValueProperty):
2397        (ElementProtoFunc::callAsFunction):
2398        * kdom/Element.h:
2399        * kdom/Entity.cpp:
2400        (Entity::getValueProperty):
2401        * kdom/Entity.h:
2402        * kdom/NamedNodeMap.cpp:
2403        (NamedNodeMap::getValueProperty):
2404        (NamedNodeMapProtoFunc::callAsFunction):
2405        * kdom/NamedNodeMap.h:
2406        * kdom/Node.cpp:
2407        (Node::getValueProperty):
2408        (Node::putValueProperty):
2409        (NodeProtoFunc::callAsFunction):
2410        * kdom/Node.h:
2411        * kdom/NodeList.cpp:
2412        (NodeList::getValueProperty):
2413        (NodeListProtoFunc::callAsFunction):
2414        * kdom/NodeList.h:
2415        * kdom/Notation.cpp:
2416        (Notation::getValueProperty):
2417        * kdom/Notation.h:
2418        * kdom/ProcessingInstruction.cpp:
2419        (ProcessingInstruction::getValueProperty):
2420        (ProcessingInstruction::putValueProperty):
2421        * kdom/ProcessingInstruction.h:
2422        * kdom/Text.cpp:
2423        (Text::getValueProperty):
2424        (TextProtoFunc::callAsFunction):
2425        * kdom/Text.h:
2426        * kdom/TypeInfo.cpp:
2427        (TypeInfo::getValueProperty):
2428        (TypeInfoProtoFunc::callAsFunction):
2429        * kdom/TypeInfo.h:
2430        * kdom/css/CSSCharsetRule.cpp:
2431        (CSSCharsetRule::getValueProperty):
2432        (CSSCharsetRule::putValueProperty):
2433        * kdom/css/CSSCharsetRule.h:
2434        * kdom/css/CSSFontFaceRule.cpp:
2435        (CSSFontFaceRule::getValueProperty):
2436        * kdom/css/CSSFontFaceRule.h:
2437        * kdom/css/CSSImportRule.cpp:
2438        (CSSImportRule::getValueProperty):
2439        * kdom/css/CSSImportRule.h:
2440        * kdom/css/CSSMediaRule.cpp:
2441        (CSSMediaRule::getValueProperty):
2442        (CSSMediaRuleProtoFunc::callAsFunction):
2443        * kdom/css/CSSMediaRule.h:
2444        * kdom/css/CSSPageRule.cpp:
2445        (CSSPageRule::getValueProperty):
2446        (CSSPageRule::putValueProperty):
2447        * kdom/css/CSSPageRule.h:
2448        * kdom/css/CSSPrimitiveValue.cpp:
2449        (KDOM::CSSPrimitiveValue::getValueProperty):
2450        (KDOM::CSSPrimitiveValueProtoFunc::callAsFunction):
2451        * kdom/css/CSSPrimitiveValue.h:
2452        * kdom/css/CSSRule.cpp:
2453        (CSSRule::getValueProperty):
2454        (CSSRule::putValueProperty):
2455        * kdom/css/CSSRule.h:
2456        * kdom/css/CSSRuleList.cpp:
2457        (CSSRuleList::getValueProperty):
2458        (CSSRuleListProtoFunc::callAsFunction):
2459        * kdom/css/CSSRuleList.h:
2460        * kdom/css/CSSStyleDeclaration.cpp:
2461        (CSSStyleDeclaration::getValueProperty):
2462        (CSSStyleDeclaration::putValueProperty):
2463        (CSSStyleDeclarationProtoFunc::callAsFunction):
2464        * kdom/css/CSSStyleDeclaration.h:
2465        * kdom/css/CSSStyleRule.cpp:
2466        (CSSStyleRule::getValueProperty):
2467        (CSSStyleRule::putValueProperty):
2468        * kdom/css/CSSStyleRule.h:
2469        * kdom/css/CSSStyleSheet.cpp:
2470        (CSSStyleSheet::getValueProperty):
2471        (CSSStyleSheetProtoFunc::callAsFunction):
2472        * kdom/css/CSSStyleSheet.h:
2473        * kdom/css/CSSValue.cpp:
2474        (CSSValue::getValueProperty):
2475        (CSSValue::putValueProperty):
2476        * kdom/css/CSSValue.h:
2477        * kdom/css/CSSValueList.cpp:
2478        (CSSValueList::getValueProperty):
2479        (CSSValueListProtoFunc::callAsFunction):
2480        * kdom/css/CSSValueList.h:
2481        * kdom/css/Counter.cpp:
2482        (Counter::getValueProperty):
2483        * kdom/css/Counter.h:
2484        * kdom/css/DocumentStyle.cpp:
2485        (DocumentStyle::getValueProperty):
2486        * kdom/css/DocumentStyle.h:
2487        * kdom/css/MediaList.cpp:
2488        (MediaList::getValueProperty):
2489        (MediaList::putValueProperty):
2490        (MediaListProtoFunc::callAsFunction):
2491        * kdom/css/MediaList.h:
2492        * kdom/css/RGBColor.cpp:
2493        (KDOM::RGBColor::getValueProperty):
2494        * kdom/css/RGBColor.h:
2495        * kdom/css/Rect.cpp:
2496        (KDOM::Rect::getValueProperty):
2497        * kdom/css/Rect.h:
2498        * kdom/css/StyleSheet.cpp:
2499        (StyleSheet::getValueProperty):
2500        (StyleSheet::putValueProperty):
2501        * kdom/css/StyleSheet.h:
2502        * kdom/css/StyleSheetList.cpp:
2503        (StyleSheetList::getValueProperty):
2504        (StyleSheetListProtoFunc::callAsFunction):
2505        * kdom/css/StyleSheetList.h:
2506        * kdom/data/generateddata.cpp:
2507        (AbstractView::get):
2508        (AbstractView::getInParents):
2509        (AbstractView::prototype):
2510        (AbstractView::cache):
2511        (Attr::get):
2512        (Attr::getInParents):
2513        (Attr::prototype):
2514        (Attr::cache):
2515        (CSSCharsetRule::get):
2516        (CSSCharsetRule::getInParents):
2517        (CSSCharsetRule::prototype):
2518        (CSSCharsetRule::cache):
2519        (CSSFontFaceRule::get):
2520        (CSSFontFaceRule::getInParents):
2521        (CSSFontFaceRule::prototype):
2522        (CSSFontFaceRule::cache):
2523        (CSSImportRule::get):
2524        (CSSImportRule::getInParents):
2525        (CSSImportRule::prototype):
2526        (CSSImportRule::cache):
2527        (CSSMediaRule::hasProperty):
2528        (CSSMediaRule::get):
2529        (CSSMediaRule::getInParents):
2530        (CSSMediaRule::prototype):
2531        (CSSMediaRule::cache):
2532        (CSSPageRule::get):
2533        (CSSPageRule::getInParents):
2534        (CSSPageRule::prototype):
2535        (CSSPageRule::cache):
2536        (CSSPrimitiveValue::hasProperty):
2537        (CSSPrimitiveValue::get):
2538        (CSSPrimitiveValue::getInParents):
2539        (CSSPrimitiveValue::prototype):
2540        (CSSPrimitiveValue::cache):
2541        (CSSRule::get):
2542        (CSSRule::getInParents):
2543        (CSSRule::prototype):
2544        (CSSRule::cache):
2545        (CSSRuleList::hasProperty):
2546        (CSSRuleList::get):
2547        (CSSRuleList::getInParents):
2548        (CSSRuleList::prototype):
2549        (CSSRuleList::cache):
2550        (CSSStyleDeclaration::hasProperty):
2551        (CSSStyleDeclaration::get):
2552        (CSSStyleDeclaration::getInParents):
2553        (CSSStyleDeclaration::prototype):
2554        (CSSStyleDeclaration::cache):
2555        (CSSStyleRule::get):
2556        (CSSStyleRule::getInParents):
2557        (CSSStyleRule::prototype):
2558        (CSSStyleRule::cache):
2559        (CSSStyleSheet::hasProperty):
2560        (CSSStyleSheet::get):
2561        (CSSStyleSheet::getInParents):
2562        (CSSStyleSheet::prototype):
2563        (CSSStyleSheet::cache):
2564        (CSSValue::get):
2565        (CSSValue::getInParents):
2566        (CSSValue::prototype):
2567        (CSSValue::cache):
2568        (CSSValueList::hasProperty):
2569        (CSSValueList::get):
2570        (CSSValueList::getInParents):
2571        (CSSValueList::prototype):
2572        (CSSValueList::cache):
2573        (CharacterData::hasProperty):
2574        (CharacterData::get):
2575        (CharacterData::getInParents):
2576        (CharacterData::prototype):
2577        (CharacterData::cache):
2578        (Counter::get):
2579        (Counter::getInParents):
2580        (Counter::prototype):
2581        (Counter::cache):
2582        (DOMConfiguration::hasProperty):
2583        (DOMConfiguration::get):
2584        (DOMConfiguration::getInParents):
2585        (DOMConfiguration::prototype):
2586        (DOMConfiguration::cache):
2587        (DOMError::get):
2588        (DOMError::getInParents):
2589        (DOMError::prototype):
2590        (DOMError::cache):
2591        (DOMErrorHandler::hasProperty):
2592        (DOMErrorHandler::get):
2593        (DOMErrorHandler::getInParents):
2594        (DOMErrorHandler::prototype):
2595        (DOMErrorHandler::cache):
2596        (DOMException::get):
2597        (DOMException::getInParents):
2598        (DOMException::prototype):
2599        (DOMException::cache):
2600        (DOMImplementation::hasProperty):
2601        (DOMImplementation::get):
2602        (DOMImplementation::getInParents):
2603        (DOMImplementation::prototype):
2604        (DOMImplementation::cache):
2605        (DOMLocator::get):
2606        (DOMLocator::getInParents):
2607        (DOMLocator::prototype):
2608        (DOMLocator::cache):
2609        (DOMStringList::hasProperty):
2610        (DOMStringList::get):
2611        (DOMStringList::getInParents):
2612        (DOMStringList::prototype):
2613        (DOMStringList::cache):
2614        (DOMUserData::get):
2615        (DOMUserData::getInParents):
2616        (DOMUserData::prototype):
2617        (DOMUserData::cache):
2618        (Document::hasProperty):
2619        (Document::get):
2620        (Document::getInParents):
2621        (Document::prototype):
2622        (Document::cache):
2623        (DocumentEvent::hasProperty):
2624        (DocumentEvent::get):
2625        (DocumentEvent::getInParents):
2626        (DocumentEvent::prototype):
2627        (DocumentEvent::cache):
2628        (DocumentRange::hasProperty):
2629        (DocumentRange::get):
2630        (DocumentRange::getInParents):
2631        (DocumentRange::prototype):
2632        (DocumentRange::cache):
2633        (DocumentStyle::get):
2634        (DocumentStyle::getInParents):
2635        (DocumentStyle::prototype):
2636        (DocumentStyle::cache):
2637        (DocumentTraversal::hasProperty):
2638        (DocumentTraversal::get):
2639        (DocumentTraversal::getInParents):
2640        (DocumentTraversal::prototype):
2641        (DocumentTraversal::cache):
2642        (DocumentType::get):
2643        (DocumentType::getInParents):
2644        (DocumentType::prototype):
2645        (DocumentType::cache):
2646        (DocumentView::get):
2647        (DocumentView::getInParents):
2648        (DocumentView::prototype):
2649        (DocumentView::cache):
2650        (Element::hasProperty):
2651        (Element::get):
2652        (Element::getInParents):
2653        (Element::prototype):
2654        (Element::cache):
2655        (Entity::get):
2656        (Entity::getInParents):
2657        (Entity::prototype):
2658        (Entity::cache):
2659        (Event::hasProperty):
2660        (Event::get):
2661        (Event::getInParents):
2662        (Event::prototype):
2663        (Event::cache):
2664        (EventException::get):
2665        (EventException::getInParents):
2666        (EventException::prototype):
2667        (EventException::cache):
2668        (EventTarget::hasProperty):
2669        (EventTarget::get):
2670        (EventTarget::getInParents):
2671        (EventTarget::prototype):
2672        (EventTarget::cache):
2673        (KeyboardEvent::hasProperty):
2674        (KeyboardEvent::get):
2675        (KeyboardEvent::getInParents):
2676        (KeyboardEvent::prototype):
2677        (KeyboardEvent::cache):
2678        (LSException::get):
2679        (LSException::getInParents):
2680        (LSException::prototype):
2681        (LSException::cache):
2682        (LSInput::get):
2683        (LSInput::getInParents):
2684        (LSInput::prototype):
2685        (LSInput::cache):
2686        (LSOutput::get):
2687        (LSOutput::getInParents):
2688        (LSOutput::prototype):
2689        (LSOutput::cache):
2690        (LSParser::hasProperty):
2691        (LSParser::get):
2692        (LSParser::getInParents):
2693        (LSParser::prototype):
2694        (LSParser::cache):
2695        (LSParserFilter::hasProperty):
2696        (LSParserFilter::get):
2697        (LSParserFilter::getInParents):
2698        (LSParserFilter::prototype):
2699        (LSParserFilter::cache):
2700        (LSResourceResolver::hasProperty):
2701        (LSResourceResolver::get):
2702        (LSResourceResolver::getInParents):
2703        (LSResourceResolver::prototype):
2704        (LSResourceResolver::cache):
2705        (LSSerializer::hasProperty):
2706        (LSSerializer::get):
2707        (LSSerializer::getInParents):
2708        (LSSerializer::prototype):
2709        (LSSerializer::cache):
2710        (LSSerializerFilter::get):
2711        (LSSerializerFilter::getInParents):
2712        (LSSerializerFilter::prototype):
2713        (LSSerializerFilter::cache):
2714        (MediaList::hasProperty):
2715        (MediaList::get):
2716        (MediaList::getInParents):
2717        (MediaList::prototype):
2718        (MediaList::cache):
2719        (MouseEvent::hasProperty):
2720        (MouseEvent::get):
2721        (MouseEvent::getInParents):
2722        (MouseEvent::prototype):
2723        (MouseEvent::cache):
2724        (MutationEvent::hasProperty):
2725        (MutationEvent::get):
2726        (MutationEvent::getInParents):
2727        (MutationEvent::prototype):
2728        (MutationEvent::cache):
2729        (NamedNodeMap::hasProperty):
2730        (NamedNodeMap::get):
2731        (NamedNodeMap::getInParents):
2732        (NamedNodeMap::prototype):
2733        (NamedNodeMap::cache):
2734        (Node::hasProperty):
2735        (Node::get):
2736        (Node::getInParents):
2737        (Node::prototype):
2738        (Node::cache):
2739        (NodeIterator::hasProperty):
2740        (NodeIterator::get):
2741        (NodeIterator::getInParents):
2742        (NodeIterator::prototype):
2743        (NodeIterator::cache):
2744        (NodeList::hasProperty):
2745        (NodeList::get):
2746        (NodeList::getInParents):
2747        (NodeList::prototype):
2748        (NodeList::cache):
2749        (Notation::get):
2750        (Notation::getInParents):
2751        (Notation::prototype):
2752        (Notation::cache):
2753        (ProcessingInstruction::get):
2754        (ProcessingInstruction::getInParents):
2755        (ProcessingInstruction::prototype):
2756        (ProcessingInstruction::cache):
2757        (KDOM::RGBColor::get):
2758        (KDOM::RGBColor::getInParents):
2759        (KDOM::RGBColor::prototype):
2760        (KDOM::RGBColor::cache):
2761        (Range::hasProperty):
2762        (Range::get):
2763        (Range::getInParents):
2764        (Range::prototype):
2765        (Range::cache):
2766        (RangeException::get):
2767        (RangeException::getInParents):
2768        (RangeException::prototype):
2769        (RangeException::cache):
2770        (KDOM::Rect::get):
2771        (KDOM::Rect::getInParents):
2772        (KDOM::Rect::prototype):
2773        (KDOM::Rect::cache):
2774        (StyleSheet::get):
2775        (StyleSheet::getInParents):
2776        (StyleSheet::prototype):
2777        (StyleSheet::cache):
2778        (StyleSheetList::hasProperty):
2779        (StyleSheetList::get):
2780        (StyleSheetList::getInParents):
2781        (StyleSheetList::prototype):
2782        (StyleSheetList::cache):
2783        (Text::hasProperty):
2784        (Text::get):
2785        (Text::getInParents):
2786        (Text::prototype):
2787        (Text::cache):
2788        (TreeWalker::hasProperty):
2789        (TreeWalker::get):
2790        (TreeWalker::getInParents):
2791        (TreeWalker::prototype):
2792        (TreeWalker::cache):
2793        (TypeInfo::hasProperty):
2794        (TypeInfo::get):
2795        (TypeInfo::getInParents):
2796        (TypeInfo::prototype):
2797        (TypeInfo::cache):
2798        (UIEvent::hasProperty):
2799        (UIEvent::get):
2800        (UIEvent::getInParents):
2801        (UIEvent::prototype):
2802        (UIEvent::cache):
2803        (XPathEvaluator::hasProperty):
2804        (XPathEvaluator::get):
2805        (XPathEvaluator::getInParents):
2806        (XPathEvaluator::prototype):
2807        (XPathEvaluator::cache):
2808        (XPathException::get):
2809        (XPathException::getInParents):
2810        (XPathException::prototype):
2811        (XPathException::cache):
2812        (XPathExpression::hasProperty):
2813        (XPathExpression::get):
2814        (XPathExpression::getInParents):
2815        (XPathExpression::prototype):
2816        (XPathExpression::cache):
2817        (XPathNSResolver::hasProperty):
2818        (XPathNSResolver::get):
2819        (XPathNSResolver::getInParents):
2820        (XPathNSResolver::prototype):
2821        (XPathNSResolver::cache):
2822        (XPathNamespace::get):
2823        (XPathNamespace::getInParents):
2824        (XPathNamespace::prototype):
2825        (XPathNamespace::cache):
2826        (XPathResult::hasProperty):
2827        (XPathResult::get):
2828        (XPathResult::getInParents):
2829        (XPathResult::prototype):
2830        (XPathResult::cache):
2831        * kdom/ecma/DOMBridge.h:
2832        (KDOM::DOMBridge::get):
2833        (KDOM::DOMRWBridge::put):
2834        (KDOM::DOMBridgeCtor::get):
2835        * kdom/ecma/DOMLookup.h:
2836        (KDOM::lookupGet):
2837        (KDOM::lookupGetValue):
2838        (KDOM::lookupPut):
2839        * kdom/ecma/Ecma.cpp:
2840        (Ecma::setup):
2841        (Ecma::evaluate):
2842        (Ecma::globalObject):
2843        (Ecma::ecmaListenerToObject):
2844        (Ecma::findEventListener):
2845        (Ecma::createEventListener):
2846        (KDOM::getDOMNode):
2847        (KDOM::getDOMEvent):
2848        (KDOM::getDOMCSSRule):
2849        (KDOM::getDOMCSSValue):
2850        (KDOM::toDOMString):
2851        (KDOM::getDOMString):
2852        (KDOM::toVariant):
2853        * kdom/ecma/Ecma.h:
2854        (KDOM::ecma_cast):
2855        (KDOM::safe_cache):
2856        * kdom/ecma/GlobalObject.cpp:
2857        (GlobalObject::retrieveActive):
2858        (GlobalObject::get):
2859        (GlobalObject::put):
2860        (GlobalObjectFunc::callAsFunction):
2861        (ScheduledAction::ScheduledAction):
2862        (ScheduledAction::execute):
2863        (GlobalQObject::installTimeout):
2864        * kdom/ecma/GlobalObject.h:
2865        * kdom/ecma/ScriptInterpreter.cpp:
2866        (ScriptInterpreter::ScriptInterpreter):
2867        * kdom/ecma/ScriptInterpreter.h:
2868        (KDOM::cacheDOMObject):
2869        (KDOM::cacheGlobalBridge):
2870        * kdom/events/DocumentEvent.cpp:
2871        (DocumentEvent::getValueProperty):
2872        (DocumentEventProtoFunc::callAsFunction):
2873        * kdom/events/DocumentEvent.h:
2874        * kdom/events/Event.cpp:
2875        (Event::getValueProperty):
2876        (EventProtoFunc::callAsFunction):
2877        * kdom/events/Event.h:
2878        * kdom/events/EventException.cpp:
2879        (EventException::getValueProperty):
2880        * kdom/events/EventException.h:
2881        * kdom/events/EventTarget.cpp:
2882        (EventTarget::getValueProperty):
2883        (EventTargetProtoFunc::callAsFunction):
2884        * kdom/events/EventTarget.h:
2885        * kdom/events/KeyboardEvent.cpp:
2886        (KeyboardEvent::getValueProperty):
2887        (KeyboardEventProtoFunc::callAsFunction):
2888        * kdom/events/KeyboardEvent.h:
2889        * kdom/events/MouseEvent.cpp:
2890        (MouseEvent::getValueProperty):
2891        (MouseEventProtoFunc::callAsFunction):
2892        * kdom/events/MouseEvent.h:
2893        * kdom/events/MutationEvent.cpp:
2894        (MutationEvent::getValueProperty):
2895        (MutationEventProtoFunc::callAsFunction):
2896        * kdom/events/MutationEvent.h:
2897        * kdom/events/UIEvent.cpp:
2898        (UIEvent::getValueProperty):
2899        (UIEventProtoFunc::callAsFunction):
2900        * kdom/events/UIEvent.h:
2901        * kdom/events/impl/EventListenerImpl.cpp:
2902        (EventListenerImpl::EventListenerImpl):
2903        (EventListenerImpl::~EventListenerImpl):
2904        (EventListenerImpl::handleEvent):
2905        (EventListenerImpl::ecmaListener):
2906        (EventListenerImpl::initListener):
2907        * kdom/events/impl/EventListenerImpl.h:
2908        * kdom/impl/DOMUserDataImpl.h:
2909        (KDOM::):
2910        * kdom/ls/LSException.cpp:
2911        (LSException::getValueProperty):
2912        * kdom/ls/LSException.h:
2913        * kdom/ls/LSInput.cpp:
2914        (LSInput::getValueProperty):
2915        (LSInput::putValueProperty):
2916        * kdom/ls/LSInput.h:
2917        * kdom/ls/LSOutput.cpp:
2918        (LSOutput::getValueProperty):
2919        (LSOutput::putValueProperty):
2920        * kdom/ls/LSOutput.h:
2921        * kdom/ls/LSParser.cpp:
2922        (LSParser::getValueProperty):
2923        (LSParser::putValueProperty):
2924        (LSParserProtoFunc::callAsFunction):
2925        * kdom/ls/LSParser.h:
2926        * kdom/ls/LSParserFilter.cpp:
2927        (LSParserFilter::getValueProperty):
2928        (LSParserFilterProtoFunc::callAsFunction):
2929        * kdom/ls/LSParserFilter.h:
2930        * kdom/ls/LSResourceResolver.cpp:
2931        (LSResourceResolver::getValueProperty):
2932        (LSResourceResolverProtoFunc::callAsFunction):
2933        * kdom/ls/LSResourceResolver.h:
2934        * kdom/ls/LSSerializer.cpp:
2935        (LSSerializer::getValueProperty):
2936        (LSSerializer::putValueProperty):
2937        (LSSerializerProtoFunc::callAsFunction):
2938        * kdom/ls/LSSerializer.h:
2939        * kdom/ls/LSSerializerFilter.cpp:
2940        (LSSerializerFilter::getValueProperty):
2941        * kdom/ls/LSSerializerFilter.h:
2942        * kdom/range/DocumentRange.cpp:
2943        (DocumentRange::getValueProperty):
2944        (DocumentRangeProtoFunc::callAsFunction):
2945        * kdom/range/DocumentRange.h:
2946        * kdom/range/Range.cpp:
2947        (Range::getValueProperty):
2948        (RangeProtoFunc::callAsFunction):
2949        * kdom/range/Range.h:
2950        * kdom/range/RangeException.cpp:
2951        (RangeException::getValueProperty):
2952        * kdom/range/RangeException.h:
2953        * kdom/traversal/DocumentTraversal.cpp:
2954        (DocumentTraversal::getValueProperty):
2955        (DocumentTraversalProtoFunc::callAsFunction):
2956        * kdom/traversal/DocumentTraversal.h:
2957        * kdom/traversal/NodeIterator.cpp:
2958        (NodeIterator::getValueProperty):
2959        (NodeIteratorProtoFunc::callAsFunction):
2960        * kdom/traversal/NodeIterator.h:
2961        * kdom/traversal/TreeWalker.cpp:
2962        (TreeWalker::getValueProperty):
2963        (TreeWalker::putValueProperty):
2964        (TreeWalkerProtoFunc::callAsFunction):
2965        * kdom/traversal/TreeWalker.h:
2966        * kdom/views/AbstractView.cpp:
2967        (AbstractView::getValueProperty):
2968        * kdom/views/AbstractView.h:
2969        * kdom/views/DocumentView.cpp:
2970        (DocumentView::getValueProperty):
2971        * kdom/views/DocumentView.h:
2972        * kdom/xpath/XPathEvaluator.cpp:
2973        (XPathEvaluator::getValueProperty):
2974        (XPathEvaluatorProtoFunc::callAsFunction):
2975        * kdom/xpath/XPathEvaluator.h:
2976        * kdom/xpath/XPathException.cpp:
2977        (XPathException::getValueProperty):
2978        * kdom/xpath/XPathException.h:
2979        * kdom/xpath/XPathExpression.cpp:
2980        (XPathExpression::getValueProperty):
2981        (XPathExpressionProtoFunc::callAsFunction):
2982        * kdom/xpath/XPathExpression.h:
2983        * kdom/xpath/XPathNSResolver.cpp:
2984        (XPathNSResolver::getValueProperty):
2985        (XPathNSResolverProtoFunc::callAsFunction):
2986        * kdom/xpath/XPathNSResolver.h:
2987        * kdom/xpath/XPathNamespace.cpp:
2988        (XPathNamespace::getValueProperty):
2989        * kdom/xpath/XPathNamespace.h:
2990        * kdom/xpath/XPathResult.cpp:
2991        (XPathResult::getValueProperty):
2992        (XPathResultProtoFunc::callAsFunction):
2993        * kdom/xpath/XPathResult.h:
2994        * ksvg2/KSVGFactory.cpp:
2995        (KSVGFactory::createPartObject):
2996        * ksvg2/data/SVGConstants.h:
2997        (KSVG::SVGNumberConstants::):
2998        * ksvg2/data/generateddata.cpp:
2999        (SVGAElement::get):
3000        (SVGAElement::getInParents):
3001        (SVGAElement::prototype):
3002        (SVGAElement::cache):
3003        (SVGAngle::hasProperty):
3004        (SVGAngle::get):
3005        (SVGAngle::getInParents):
3006        (SVGAngle::prototype):
3007        (SVGAngle::cache):
3008        (SVGAnimateColorElement::get):
3009        (SVGAnimateColorElement::getInParents):
3010        (SVGAnimateColorElement::prototype):
3011        (SVGAnimateColorElement::cache):
3012        (SVGAnimateElement::get):
3013        (SVGAnimateElement::getInParents):
3014        (SVGAnimateElement::prototype):
3015        (SVGAnimateElement::cache):
3016        (SVGAnimateTransformElement::get):
3017        (SVGAnimateTransformElement::getInParents):
3018        (SVGAnimateTransformElement::prototype):
3019        (SVGAnimateTransformElement::cache):
3020        (SVGAnimatedAngle::get):
3021        (SVGAnimatedAngle::getInParents):
3022        (SVGAnimatedAngle::prototype):
3023        (SVGAnimatedAngle::cache):
3024        (SVGAnimatedBoolean::get):
3025        (SVGAnimatedBoolean::getInParents):
3026        (SVGAnimatedBoolean::prototype):
3027        (SVGAnimatedBoolean::cache):
3028        (SVGAnimatedEnumeration::get):
3029        (SVGAnimatedEnumeration::getInParents):
3030        (SVGAnimatedEnumeration::prototype):
3031        (SVGAnimatedEnumeration::cache):
3032        (SVGAnimatedInteger::get):
3033        (SVGAnimatedInteger::getInParents):
3034        (SVGAnimatedInteger::prototype):
3035        (SVGAnimatedInteger::cache):
3036        (SVGAnimatedLength::get):
3037        (SVGAnimatedLength::getInParents):
3038        (SVGAnimatedLength::prototype):
3039        (SVGAnimatedLength::cache):
3040        (SVGAnimatedLengthList::get):
3041        (SVGAnimatedLengthList::getInParents):
3042        (SVGAnimatedLengthList::prototype):
3043        (SVGAnimatedLengthList::cache):
3044        (SVGAnimatedNumber::get):
3045        (SVGAnimatedNumber::getInParents):
3046        (SVGAnimatedNumber::prototype):
3047        (SVGAnimatedNumber::cache):
3048        (SVGAnimatedNumberList::get):
3049        (SVGAnimatedNumberList::getInParents):
3050        (SVGAnimatedNumberList::prototype):
3051        (SVGAnimatedNumberList::cache):
3052        (SVGAnimatedPathData::get):
3053        (SVGAnimatedPathData::getInParents):
3054        (SVGAnimatedPathData::prototype):
3055        (SVGAnimatedPathData::cache):
3056        (SVGAnimatedPoints::get):
3057        (SVGAnimatedPoints::getInParents):
3058        (SVGAnimatedPoints::prototype):
3059        (SVGAnimatedPoints::cache):
3060        (SVGAnimatedPreserveAspectRatio::get):
3061        (SVGAnimatedPreserveAspectRatio::getInParents):
3062        (SVGAnimatedPreserveAspectRatio::prototype):
3063        (SVGAnimatedPreserveAspectRatio::cache):
3064        (SVGAnimatedRect::get):
3065        (SVGAnimatedRect::getInParents):
3066        (SVGAnimatedRect::prototype):
3067        (SVGAnimatedRect::cache):
3068        (SVGAnimatedString::get):
3069        (SVGAnimatedString::getInParents):
3070        (SVGAnimatedString::prototype):
3071        (SVGAnimatedString::cache):
3072        (SVGAnimatedTransformList::get):
3073        (SVGAnimatedTransformList::getInParents):
3074        (SVGAnimatedTransformList::prototype):
3075        (SVGAnimatedTransformList::cache):
3076        (SVGAnimationElement::hasProperty):
3077        (SVGAnimationElement::get):
3078        (SVGAnimationElement::getInParents):
3079        (SVGAnimationElement::prototype):
3080        (SVGAnimationElement::cache):
3081        (SVGCircleElement::get):
3082        (SVGCircleElement::getInParents):
3083        (SVGCircleElement::prototype):
3084        (SVGCircleElement::cache):
3085        (SVGClipPathElement::get):
3086        (SVGClipPathElement::getInParents):
3087        (SVGClipPathElement::prototype):
3088        (SVGClipPathElement::cache):
3089        (SVGColor::hasProperty):
3090        (SVGColor::get):
3091        (SVGColor::getInParents):
3092        (SVGColor::prototype):
3093        (SVGColor::cache):
3094        (SVGComponentTransferFunctionElement::get):
3095        (SVGComponentTransferFunctionElement::getInParents):
3096        (SVGComponentTransferFunctionElement::prototype):
3097        (SVGComponentTransferFunctionElement::cache):
3098        (SVGDefsElement::get):
3099        (SVGDefsElement::getInParents):
3100        (SVGDefsElement::prototype):
3101        (SVGDefsElement::cache):
3102        (SVGDescElement::get):
3103        (SVGDescElement::getInParents):
3104        (SVGDescElement::prototype):
3105        (SVGDescElement::cache):
3106        (SVGDocument::get):
3107        (SVGDocument::getInParents):
3108        (SVGDocument::prototype):
3109        (SVGDocument::cache):
3110        (SVGElement::get):
3111        (SVGElement::getInParents):
3112        (SVGElement::prototype):
3113        (SVGElement::cache):
3114        (SVGElementInstance::get):
3115        (SVGElementInstance::getInParents):
3116        (SVGElementInstance::prototype):
3117        (SVGElementInstance::cache):
3118        (SVGElementInstanceList::hasProperty):
3119        (SVGElementInstanceList::get):
3120        (SVGElementInstanceList::getInParents):
3121        (SVGElementInstanceList::prototype):
3122        (SVGElementInstanceList::cache):
3123        (SVGEllipseElement::get):
3124        (SVGEllipseElement::getInParents):
3125        (SVGEllipseElement::prototype):
3126        (SVGEllipseElement::cache):
3127        (SVGEvent::get):
3128        (SVGEvent::getInParents):
3129        (SVGEvent::prototype):
3130        (SVGEvent::cache):
3131        (SVGException::get):
3132        (SVGException::getInParents):
3133        (SVGException::prototype):
3134        (SVGException::cache):
3135        (SVGExternalResourcesRequired::get):
3136        (SVGExternalResourcesRequired::getInParents):
3137        (SVGExternalResourcesRequired::prototype):
3138        (SVGExternalResourcesRequired::cache):
3139        (SVGFEBlendElement::get):
3140        (SVGFEBlendElement::getInParents):
3141        (SVGFEBlendElement::prototype):
3142        (SVGFEBlendElement::cache):
3143        (SVGFEColorMatrixElement::get):
3144        (SVGFEColorMatrixElement::getInParents):
3145        (SVGFEColorMatrixElement::prototype):
3146        (SVGFEColorMatrixElement::cache):
3147        (SVGFEComponentTransferElement::get):
3148        (SVGFEComponentTransferElement::getInParents):
3149        (SVGFEComponentTransferElement::prototype):
3150        (SVGFEComponentTransferElement::cache):
3151        (SVGFECompositeElement::get):
3152        (SVGFECompositeElement::getInParents):
3153        (SVGFECompositeElement::prototype):
3154        (SVGFECompositeElement::cache):
3155        (SVGFEFloodElement::get):
3156        (SVGFEFloodElement::getInParents):
3157        (SVGFEFloodElement::prototype):
3158        (SVGFEFloodElement::cache):
3159        (SVGFEGaussianBlurElement::hasProperty):
3160        (SVGFEGaussianBlurElement::get):
3161        (SVGFEGaussianBlurElement::getInParents):
3162        (SVGFEGaussianBlurElement::prototype):
3163        (SVGFEGaussianBlurElement::cache):
3164        (SVGFEImageElement::get):
3165        (SVGFEImageElement::getInParents):
3166        (SVGFEImageElement::prototype):
3167        (SVGFEImageElement::cache):
3168        (SVGFEMergeElement::get):
3169        (SVGFEMergeElement::getInParents):
3170        (SVGFEMergeElement::prototype):
3171        (SVGFEMergeElement::cache):
3172        (SVGFEMergeNodeElement::get):
3173        (SVGFEMergeNodeElement::getInParents):
3174        (SVGFEMergeNodeElement::prototype):
3175        (SVGFEMergeNodeElement::cache):
3176        (SVGFEOffsetElement::get):
3177        (SVGFEOffsetElement::getInParents):
3178        (SVGFEOffsetElement::prototype):
3179        (SVGFEOffsetElement::cache):
3180        (SVGFETileElement::get):
3181        (SVGFETileElement::getInParents):
3182        (SVGFETileElement::prototype):
3183        (SVGFETileElement::cache):
3184        (SVGFETurbulenceElement::get):
3185        (SVGFETurbulenceElement::getInParents):
3186        (SVGFETurbulenceElement::prototype):
3187        (SVGFETurbulenceElement::cache):
3188        (SVGFilterElement::hasProperty):
3189        (SVGFilterElement::get):
3190        (SVGFilterElement::getInParents):
3191        (SVGFilterElement::prototype):
3192        (SVGFilterElement::cache):
3193        (SVGFilterPrimitiveStandardAttributes::get):
3194        (SVGFilterPrimitiveStandardAttributes::getInParents):
3195        (SVGFilterPrimitiveStandardAttributes::prototype):
3196        (SVGFilterPrimitiveStandardAttributes::cache):
3197        (SVGFitToViewBox::get):
3198        (SVGFitToViewBox::getInParents):
3199        (SVGFitToViewBox::prototype):
3200        (SVGFitToViewBox::cache):
3201        (SVGGElement::get):
3202        (SVGGElement::getInParents):
3203        (SVGGElement::prototype):
3204        (SVGGElement::cache):
3205        (SVGGradientElement::get):
3206        (SVGGradientElement::getInParents):
3207        (SVGGradientElement::prototype):
3208        (SVGGradientElement::cache):
3209        (SVGImageElement::get):
3210        (SVGImageElement::getInParents):
3211        (SVGImageElement::prototype):
3212        (SVGImageElement::cache):
3213        (SVGLangSpace::get):
3214        (SVGLangSpace::getInParents):
3215        (SVGLangSpace::prototype):
3216        (SVGLangSpace::cache):
3217        (SVGLength::hasProperty):
3218        (SVGLength::get):
3219        (SVGLength::getInParents):
3220        (SVGLength::prototype):
3221        (SVGLength::cache):
3222        (SVGLengthList::hasProperty):
3223        (SVGLengthList::get):
3224        (SVGLengthList::getInParents):
3225        (SVGLengthList::prototype):
3226        (SVGLengthList::cache):
3227        (SVGLineElement::get):
3228        (SVGLineElement::getInParents):
3229        (SVGLineElement::prototype):
3230        (SVGLineElement::cache):
3231        (SVGLinearGradientElement::get):
3232        (SVGLinearGradientElement::getInParents):
3233        (SVGLinearGradientElement::prototype):
3234        (SVGLinearGradientElement::cache):
3235        (SVGLocatable::hasProperty):
3236        (SVGLocatable::get):
3237        (SVGLocatable::getInParents):
3238        (SVGLocatable::prototype):
3239        (SVGLocatable::cache):
3240        (SVGMarkerElement::hasProperty):
3241        (SVGMarkerElement::get):
3242        (SVGMarkerElement::getInParents):
3243        (SVGMarkerElement::prototype):
3244        (SVGMarkerElement::cache):
3245        (SVGMatrix::hasProperty):
3246        (SVGMatrix::get):
3247        (SVGMatrix::getInParents):
3248        (SVGMatrix::prototype):
3249        (SVGMatrix::cache):
3250        (SVGNumber::get):
3251        (SVGNumber::getInParents):
3252        (SVGNumber::prototype):
3253        (SVGNumber::cache):
3254        (SVGNumberList::hasProperty):
3255        (SVGNumberList::get):
3256        (SVGNumberList::getInParents):
3257        (SVGNumberList::prototype):
3258        (SVGNumberList::cache):
3259        (SVGPaint::hasProperty):
3260        (SVGPaint::get):
3261        (SVGPaint::getInParents):
3262        (SVGPaint::prototype):
3263        (SVGPaint::cache):
3264        (SVGPathElement::hasProperty):
3265        (SVGPathElement::get):
3266        (SVGPathElement::getInParents):
3267        (SVGPathElement::prototype):
3268        (SVGPathElement::cache):
3269        (SVGPathSeg::get):
3270        (SVGPathSeg::getInParents):
3271        (SVGPathSeg::prototype):
3272        (SVGPathSeg::cache):
3273        (SVGPathSegArcAbs::get):
3274        (SVGPathSegArcAbs::getInParents):
3275        (SVGPathSegArcAbs::prototype):
3276        (SVGPathSegArcAbs::cache):
3277        (SVGPathSegArcRel::get):
3278        (SVGPathSegArcRel::getInParents):
3279        (SVGPathSegArcRel::prototype):
3280        (SVGPathSegArcRel::cache):
3281        (SVGPathSegCurvetoCubicAbs::get):
3282        (SVGPathSegCurvetoCubicAbs::getInParents):
3283        (SVGPathSegCurvetoCubicAbs::prototype):
3284        (SVGPathSegCurvetoCubicAbs::cache):
3285        (SVGPathSegCurvetoCubicRel::get):
3286        (SVGPathSegCurvetoCubicRel::getInParents):
3287        (SVGPathSegCurvetoCubicRel::prototype):
3288        (SVGPathSegCurvetoCubicRel::cache):
3289        (SVGPathSegCurvetoCubicSmoothAbs::get):
3290        (SVGPathSegCurvetoCubicSmoothAbs::getInParents):
3291        (SVGPathSegCurvetoCubicSmoothAbs::prototype):
3292        (SVGPathSegCurvetoCubicSmoothAbs::cache):
3293        (SVGPathSegCurvetoCubicSmoothRel::get):
3294        (SVGPathSegCurvetoCubicSmoothRel::getInParents):
3295        (SVGPathSegCurvetoCubicSmoothRel::prototype):
3296        (SVGPathSegCurvetoCubicSmoothRel::cache):
3297        (SVGPathSegCurvetoQuadraticAbs::get):
3298        (SVGPathSegCurvetoQuadraticAbs::getInParents):
3299        (SVGPathSegCurvetoQuadraticAbs::prototype):
3300        (SVGPathSegCurvetoQuadraticAbs::cache):
3301        (SVGPathSegCurvetoQuadraticRel::get):
3302        (SVGPathSegCurvetoQuadraticRel::getInParents):
3303        (SVGPathSegCurvetoQuadraticRel::prototype):
3304        (SVGPathSegCurvetoQuadraticRel::cache):
3305        (SVGPathSegCurvetoQuadraticSmoothAbs::get):
3306        (SVGPathSegCurvetoQuadraticSmoothAbs::getInParents):
3307        (SVGPathSegCurvetoQuadraticSmoothAbs::prototype):
3308        (SVGPathSegCurvetoQuadraticSmoothAbs::cache):
3309        (SVGPathSegCurvetoQuadraticSmoothRel::get):
3310        (SVGPathSegCurvetoQuadraticSmoothRel::getInParents):
3311        (SVGPathSegCurvetoQuadraticSmoothRel::prototype):
3312        (SVGPathSegCurvetoQuadraticSmoothRel::cache):
3313        (SVGPathSegLinetoAbs::get):
3314        (SVGPathSegLinetoAbs::getInParents):
3315        (SVGPathSegLinetoAbs::prototype):
3316        (SVGPathSegLinetoAbs::cache):
3317        (SVGPathSegLinetoHorizontalAbs::get):
3318        (SVGPathSegLinetoHorizontalAbs::getInParents):
3319        (SVGPathSegLinetoHorizontalAbs::prototype):
3320        (SVGPathSegLinetoHorizontalAbs::cache):
3321        (SVGPathSegLinetoHorizontalRel::get):
3322        (SVGPathSegLinetoHorizontalRel::getInParents):
3323        (SVGPathSegLinetoHorizontalRel::prototype):
3324        (SVGPathSegLinetoHorizontalRel::cache):
3325        (SVGPathSegLinetoRel::get):
3326        (SVGPathSegLinetoRel::getInParents):
3327        (SVGPathSegLinetoRel::prototype):
3328        (SVGPathSegLinetoRel::cache):
3329        (SVGPathSegLinetoVerticalAbs::get):
3330        (SVGPathSegLinetoVerticalAbs::getInParents):
3331        (SVGPathSegLinetoVerticalAbs::prototype):
3332        (SVGPathSegLinetoVerticalAbs::cache):
3333        (SVGPathSegLinetoVerticalRel::get):
3334        (SVGPathSegLinetoVerticalRel::getInParents):
3335        (SVGPathSegLinetoVerticalRel::prototype):
3336        (SVGPathSegLinetoVerticalRel::cache):
3337        (SVGPathSegList::hasProperty):
3338        (SVGPathSegList::get):
3339        (SVGPathSegList::getInParents):
3340        (SVGPathSegList::prototype):
3341        (SVGPathSegList::cache):
3342        (SVGPathSegMovetoAbs::get):
3343        (SVGPathSegMovetoAbs::getInParents):
3344        (SVGPathSegMovetoAbs::prototype):
3345        (SVGPathSegMovetoAbs::cache):
3346        (SVGPathSegMovetoRel::get):
3347        (SVGPathSegMovetoRel::getInParents):
3348        (SVGPathSegMovetoRel::prototype):
3349        (SVGPathSegMovetoRel::cache):
3350        (SVGPatternElement::get):
3351        (SVGPatternElement::getInParents):
3352        (SVGPatternElement::prototype):
3353        (SVGPatternElement::cache):
3354        (SVGPoint::hasProperty):
3355        (SVGPoint::get):
3356        (SVGPoint::getInParents):
3357        (SVGPoint::prototype):
3358        (SVGPoint::cache):
3359        (SVGPointList::hasProperty):
3360        (SVGPointList::get):
3361        (SVGPointList::getInParents):
3362        (SVGPointList::prototype):
3363        (SVGPointList::cache):
3364        (SVGPolygonElement::get):
3365        (SVGPolygonElement::getInParents):
3366        (SVGPolygonElement::prototype):
3367        (SVGPolygonElement::cache):
3368        (SVGPolylineElement::get):
3369        (SVGPolylineElement::getInParents):
3370        (SVGPolylineElement::prototype):
3371        (SVGPolylineElement::cache):
3372        (SVGPreserveAspectRatio::get):
3373        (SVGPreserveAspectRatio::getInParents):
3374        (SVGPreserveAspectRatio::prototype):
3375        (SVGPreserveAspectRatio::cache):
3376        (SVGRadialGradientElement::get):
3377        (SVGRadialGradientElement::getInParents):
3378        (SVGRadialGradientElement::prototype):
3379        (SVGRadialGradientElement::cache):
3380        (SVGRect::get):
3381        (SVGRect::getInParents):
3382        (SVGRect::prototype):
3383        (SVGRect::cache):
3384        (SVGRectElement::get):
3385        (SVGRectElement::getInParents):
3386        (SVGRectElement::prototype):
3387        (SVGRectElement::cache):
3388        (SVGSVGElement::hasProperty):
3389        (SVGSVGElement::get):
3390        (SVGSVGElement::getInParents):
3391        (SVGSVGElement::prototype):
3392        (SVGSVGElement::cache):
3393        (SVGScriptElement::get):
3394        (SVGScriptElement::getInParents):
3395        (SVGScriptElement::prototype):
3396        (SVGScriptElement::cache):
3397        (SVGSetElement::get):
3398        (SVGSetElement::getInParents):
3399        (SVGSetElement::prototype):
3400        (SVGSetElement::cache):
3401        (SVGStopElement::get):
3402        (SVGStopElement::getInParents):
3403        (SVGStopElement::prototype):
3404        (SVGStopElement::cache):
3405        (SVGStringList::hasProperty):
3406        (SVGStringList::get):
3407        (SVGStringList::getInParents):
3408        (SVGStringList::prototype):
3409        (SVGStringList::cache):
3410        (SVGStylable::hasProperty):
3411        (SVGStylable::get):
3412        (SVGStylable::getInParents):
3413        (SVGStylable::prototype):
3414        (SVGStylable::cache):
3415        (SVGStyleElement::get):
3416        (SVGStyleElement::getInParents):
3417        (SVGStyleElement::prototype):
3418        (SVGStyleElement::cache):
3419        (SVGSwitchElement::get):
3420        (SVGSwitchElement::getInParents):
3421        (SVGSwitchElement::prototype):
3422        (SVGSwitchElement::cache):
3423        (SVGSymbolElement::get):
3424        (SVGSymbolElement::getInParents):
3425        (SVGSymbolElement::prototype):
3426        (SVGSymbolElement::cache):
3427        (SVGTSpanElement::get):
3428        (SVGTSpanElement::getInParents):
3429        (SVGTSpanElement::prototype):
3430        (SVGTSpanElement::cache):
3431        (SVGTests::hasProperty):
3432        (SVGTests::get):
3433        (SVGTests::getInParents):
3434        (SVGTests::prototype):
3435        (SVGTests::cache):
3436        (SVGTextContentElement::hasProperty):
3437        (SVGTextContentElement::get):
3438        (SVGTextContentElement::getInParents):
3439        (SVGTextContentElement::prototype):
3440        (SVGTextContentElement::cache):
3441        (SVGTextElement::get):
3442        (SVGTextElement::getInParents):
3443        (SVGTextElement::prototype):
3444        (SVGTextElement::cache):
3445        (SVGTextPositioningElement::get):
3446        (SVGTextPositioningElement::getInParents):
3447        (SVGTextPositioningElement::prototype):
3448        (SVGTextPositioningElement::cache):
3449        (SVGTitleElement::get):
3450        (SVGTitleElement::getInParents):
3451        (SVGTitleElement::prototype):
3452        (SVGTitleElement::cache):
3453        (SVGTransform::hasProperty):
3454        (SVGTransform::get):
3455        (SVGTransform::getInParents):
3456        (SVGTransform::prototype):
3457        (SVGTransform::cache):
3458        (SVGTransformList::hasProperty):
3459        (SVGTransformList::get):
3460        (SVGTransformList::getInParents):
3461        (SVGTransformList::prototype):
3462        (SVGTransformList::cache):
3463        (SVGTransformable::get):
3464        (SVGTransformable::getInParents):
3465        (SVGTransformable::prototype):
3466        (SVGTransformable::cache):
3467        (SVGURIReference::get):
3468        (SVGURIReference::getInParents):
3469        (SVGURIReference::prototype):
3470        (SVGURIReference::cache):
3471        (SVGUseElement::get):
3472        (SVGUseElement::getInParents):
3473        (SVGUseElement::prototype):
3474        (SVGUseElement::cache):
3475        (SVGViewElement::get):
3476        (SVGViewElement::getInParents):
3477        (SVGViewElement::prototype):
3478        (SVGViewElement::cache):
3479        (SVGZoomAndPan::get):
3480        (SVGZoomAndPan::getInParents):
3481        (SVGZoomAndPan::prototype):
3482        (SVGZoomAndPan::cache):
3483        (SVGZoomEvent::get):
3484        (SVGZoomEvent::getInParents):
3485        (SVGZoomEvent::prototype):
3486        (SVGZoomEvent::cache):
3487        * ksvg2/dom/SVGAElement.cpp:
3488        (SVGAElement::getValueProperty):
3489        * ksvg2/dom/SVGAElement.h:
3490        * ksvg2/dom/SVGAngle.cpp:
3491        (SVGAngle::getValueProperty):
3492        (SVGAngle::putValueProperty):
3493        (SVGAngleProtoFunc::callAsFunction):
3494        * ksvg2/dom/SVGAngle.h:
3495        * ksvg2/dom/SVGAnimateColorElement.cpp:
3496        (SVGAnimateColorElement::getValueProperty):
3497        * ksvg2/dom/SVGAnimateColorElement.h:
3498        * ksvg2/dom/SVGAnimateElement.cpp:
3499        (SVGAnimateElement::getValueProperty):
3500        * ksvg2/dom/SVGAnimateElement.h:
3501        * ksvg2/dom/SVGAnimateTransformElement.cpp:
3502        (SVGAnimateTransformElement::getValueProperty):
3503        * ksvg2/dom/SVGAnimateTransformElement.h:
3504        * ksvg2/dom/SVGAnimatedAngle.cpp:
3505        (SVGAnimatedAngle::getValueProperty):
3506        * ksvg2/dom/SVGAnimatedAngle.h:
3507        * ksvg2/dom/SVGAnimatedBoolean.cpp:
3508        (SVGAnimatedBoolean::getValueProperty):
3509        (SVGAnimatedBoolean::putValueProperty):
3510        * ksvg2/dom/SVGAnimatedBoolean.h:
3511        * ksvg2/dom/SVGAnimatedEnumeration.cpp:
3512        (SVGAnimatedEnumeration::getValueProperty):
3513        (SVGAnimatedEnumeration::putValueProperty):
3514        * ksvg2/dom/SVGAnimatedEnumeration.h:
3515        * ksvg2/dom/SVGAnimatedInteger.cpp:
3516        (SVGAnimatedInteger::getValueProperty):
3517        (SVGAnimatedInteger::putValueProperty):
3518        * ksvg2/dom/SVGAnimatedInteger.h:
3519        * ksvg2/dom/SVGAnimatedLength.cpp:
3520        (SVGAnimatedLength::getValueProperty):
3521        * ksvg2/dom/SVGAnimatedLength.h:
3522        * ksvg2/dom/SVGAnimatedLengthList.cpp:
3523        (SVGAnimatedLengthList::getValueProperty):
3524        * ksvg2/dom/SVGAnimatedLengthList.h:
3525        * ksvg2/dom/SVGAnimatedNumber.cpp:
3526        (SVGAnimatedNumber::getValueProperty):
3527        (SVGAnimatedNumber::putValueProperty):
3528        * ksvg2/dom/SVGAnimatedNumber.h:
3529        * ksvg2/dom/SVGAnimatedNumberList.cpp:
3530        (SVGAnimatedNumberList::getValueProperty):
3531        * ksvg2/dom/SVGAnimatedNumberList.h:
3532        * ksvg2/dom/SVGAnimatedPathData.cpp:
3533        (SVGAnimatedPathData::getValueProperty):
3534        * ksvg2/dom/SVGAnimatedPathData.h:
3535        * ksvg2/dom/SVGAnimatedPoints.cpp:
3536        (SVGAnimatedPoints::getValueProperty):
3537        * ksvg2/dom/SVGAnimatedPoints.h:
3538        * ksvg2/dom/SVGAnimatedPreserveAspectRatio.cpp:
3539        (SVGAnimatedPreserveAspectRatio::getValueProperty):
3540        * ksvg2/dom/SVGAnimatedPreserveAspectRatio.h:
3541        * ksvg2/dom/SVGAnimatedRect.cpp:
3542        (SVGAnimatedRect::getValueProperty):
3543        * ksvg2/dom/SVGAnimatedRect.h:
3544        * ksvg2/dom/SVGAnimatedString.cpp:
3545        (SVGAnimatedString::getValueProperty):
3546        (SVGAnimatedString::putValueProperty):
3547        * ksvg2/dom/SVGAnimatedString.h:
3548        * ksvg2/dom/SVGAnimatedTransformList.cpp:
3549        (SVGAnimatedTransformList::getValueProperty):
3550        * ksvg2/dom/SVGAnimatedTransformList.h:
3551        * ksvg2/dom/SVGAnimationElement.cpp:
3552        (SVGAnimationElement::getValueProperty):
3553        (SVGAnimationElementProtoFunc::callAsFunction):
3554        * ksvg2/dom/SVGAnimationElement.h:
3555        * ksvg2/dom/SVGCircleElement.cpp:
3556        (SVGCircleElement::getValueProperty):
3557        * ksvg2/dom/SVGCircleElement.h:
3558        * ksvg2/dom/SVGClipPathElement.cpp:
3559        (SVGClipPathElement::getValueProperty):
3560        * ksvg2/dom/SVGClipPathElement.h:
3561        * ksvg2/dom/SVGColor.cpp:
3562        (SVGColor::getValueProperty):
3563        (SVGColorProtoFunc::callAsFunction):
3564        * ksvg2/dom/SVGColor.h:
3565        * ksvg2/dom/SVGComponentTransferFunctionElement.cpp:
3566        (SVGComponentTransferFunctionElement::getValueProperty):
3567        * ksvg2/dom/SVGComponentTransferFunctionElement.h:
3568        * ksvg2/dom/SVGDefsElement.cpp:
3569        (SVGDefsElement::getValueProperty):
3570        * ksvg2/dom/SVGDefsElement.h:
3571        * ksvg2/dom/SVGDescElement.cpp:
3572        (SVGDescElement::getValueProperty):
3573        * ksvg2/dom/SVGDescElement.h:
3574        * ksvg2/dom/SVGDocument.cpp:
3575        (SVGDocument::getValueProperty):
3576        * ksvg2/dom/SVGDocument.h:
3577        * ksvg2/dom/SVGElement.cpp:
3578        (SVGElement::getValueProperty):
3579        (SVGElement::putValueProperty):
3580        * ksvg2/dom/SVGElement.h:
3581        * ksvg2/dom/SVGElementInstance.cpp:
3582        (SVGElementInstance::getValueProperty):
3583        * ksvg2/dom/SVGElementInstance.h:
3584        * ksvg2/dom/SVGElementInstanceList.cpp:
3585        (SVGElementInstanceList::getValueProperty):
3586        (SVGElementInstanceListProtoFunc::callAsFunction):
3587        * ksvg2/dom/SVGElementInstanceList.h:
3588        * ksvg2/dom/SVGEllipseElement.cpp:
3589        (SVGEllipseElement::getValueProperty):
3590        * ksvg2/dom/SVGEllipseElement.h:
3591        * ksvg2/dom/SVGException.cpp:
3592        (SVGException::getValueProperty):
3593        * ksvg2/dom/SVGException.h:
3594        * ksvg2/dom/SVGExternalResourcesRequired.cpp:
3595        (SVGExternalResourcesRequired::getValueProperty):
3596        * ksvg2/dom/SVGExternalResourcesRequired.h:
3597        * ksvg2/dom/SVGFEBlendElement.cpp:
3598        (SVGFEBlendElement::getValueProperty):
3599        * ksvg2/dom/SVGFEBlendElement.h:
3600        * ksvg2/dom/SVGFEColorMatrixElement.cpp:
3601        (SVGFEColorMatrixElement::getValueProperty):
3602        * ksvg2/dom/SVGFEColorMatrixElement.h:
3603        * ksvg2/dom/SVGFEComponentTransferElement.cpp:
3604        (SVGFEComponentTransferElement::getValueProperty):
3605        * ksvg2/dom/SVGFEComponentTransferElement.h:
3606        * ksvg2/dom/SVGFECompositeElement.cpp:
3607        (SVGFECompositeElement::getValueProperty):
3608        * ksvg2/dom/SVGFECompositeElement.h:
3609        * ksvg2/dom/SVGFEFloodElement.cpp:
3610        (SVGFEFloodElement::getValueProperty):
3611        * ksvg2/dom/SVGFEFloodElement.h:
3612        * ksvg2/dom/SVGFEGaussianBlurElement.cpp:
3613        (SVGFEGaussianBlurElement::getValueProperty):
3614        (SVGFEGaussianBlurElementProtoFunc::callAsFunction):
3615        * ksvg2/dom/SVGFEGaussianBlurElement.h:
3616        * ksvg2/dom/SVGFEImageElement.cpp:
3617        (SVGFEImageElement::getValueProperty):
3618        * ksvg2/dom/SVGFEImageElement.h:
3619        * ksvg2/dom/SVGFEMergeElement.cpp:
3620        (SVGFEMergeElement::getValueProperty):
3621        * ksvg2/dom/SVGFEMergeElement.h:
3622        * ksvg2/dom/SVGFEMergeNodeElement.cpp:
3623        (SVGFEMergeNodeElement::getValueProperty):
3624        * ksvg2/dom/SVGFEMergeNodeElement.h:
3625        * ksvg2/dom/SVGFEOffsetElement.cpp:
3626        (SVGFEOffsetElement::getValueProperty):
3627        * ksvg2/dom/SVGFEOffsetElement.h:
3628        * ksvg2/dom/SVGFETileElement.cpp:
3629        (SVGFETileElement::getValueProperty):
3630        * ksvg2/dom/SVGFETileElement.h:
3631        * ksvg2/dom/SVGFETurbulenceElement.cpp:
3632        (SVGFETurbulenceElement::getValueProperty):
3633        * ksvg2/dom/SVGFETurbulenceElement.h:
3634        * ksvg2/dom/SVGFilterElement.cpp:
3635        (SVGFilterElement::getValueProperty):
3636        (SVGFilterElementProtoFunc::callAsFunction):
3637        * ksvg2/dom/SVGFilterElement.h:
3638        * ksvg2/dom/SVGFilterPrimitiveStandardAttributes.cpp:
3639        (SVGFilterPrimitiveStandardAttributes::getValueProperty):
3640        * ksvg2/dom/SVGFilterPrimitiveStandardAttributes.h:
3641        * ksvg2/dom/SVGFitToViewBox.cpp:
3642        (SVGFitToViewBox::getValueProperty):
3643        * ksvg2/dom/SVGFitToViewBox.h:
3644        * ksvg2/dom/SVGGElement.cpp:
3645        (SVGGElement::getValueProperty):
3646        * ksvg2/dom/SVGGElement.h:
3647        * ksvg2/dom/SVGGradientElement.cpp:
3648        (SVGGradientElement::getValueProperty):
3649        * ksvg2/dom/SVGGradientElement.h:
3650        * ksvg2/dom/SVGImageElement.cpp:
3651        (SVGImageElement::getValueProperty):
3652        * ksvg2/dom/SVGImageElement.h:
3653        * ksvg2/dom/SVGLangSpace.cpp:
3654        (SVGLangSpace::getValueProperty):
3655        (SVGLangSpace::putValueProperty):
3656        * ksvg2/dom/SVGLangSpace.h:
3657        * ksvg2/dom/SVGLength.cpp:
3658        (SVGLength::getValueProperty):
3659        (SVGLength::putValueProperty):
3660        (SVGLengthProtoFunc::callAsFunction):
3661        * ksvg2/dom/SVGLength.h:
3662        * ksvg2/dom/SVGLengthList.cpp:
3663        (SVGLengthList::getValueProperty):
3664        (SVGLengthListProtoFunc::callAsFunction):
3665        * ksvg2/dom/SVGLengthList.h:
3666        * ksvg2/dom/SVGLineElement.cpp:
3667        (SVGLineElement::getValueProperty):
3668        * ksvg2/dom/SVGLineElement.h:
3669        * ksvg2/dom/SVGLinearGradientElement.cpp:
3670        (SVGLinearGradientElement::getValueProperty):
3671        * ksvg2/dom/SVGLinearGradientElement.h:
3672        * ksvg2/dom/SVGLocatable.cpp:
3673        (SVGLocatable::getValueProperty):
3674        (SVGLocatableProtoFunc::callAsFunction):
3675        * ksvg2/dom/SVGLocatable.h:
3676        * ksvg2/dom/SVGMarkerElement.cpp:
3677        (SVGMarkerElement::getValueProperty):
3678        (SVGMarkerElementProtoFunc::callAsFunction):
3679        * ksvg2/dom/SVGMarkerElement.h:
3680        * ksvg2/dom/SVGMatrix.cpp:
3681        (SVGMatrix::getValueProperty):
3682        (SVGMatrix::putValueProperty):
3683        (SVGMatrixProtoFunc::callAsFunction):
3684        * ksvg2/dom/SVGMatrix.h:
3685        * ksvg2/dom/SVGNumber.cpp:
3686        (SVGNumber::getValueProperty):
3687        (SVGNumber::putValueProperty):
3688        * ksvg2/dom/SVGNumber.h:
3689        * ksvg2/dom/SVGNumberList.cpp:
3690        (SVGNumberList::getValueProperty):
3691        (SVGNumberListProtoFunc::callAsFunction):
3692        * ksvg2/dom/SVGNumberList.h:
3693        * ksvg2/dom/SVGPaint.cpp:
3694        (SVGPaint::getValueProperty):
3695        (SVGPaintProtoFunc::callAsFunction):
3696        * ksvg2/dom/SVGPaint.h:
3697        * ksvg2/dom/SVGPathElement.cpp:
3698        (SVGPathElement::getValueProperty):
3699        (SVGPathElementProtoFunc::callAsFunction):
3700        * ksvg2/dom/SVGPathElement.h:
3701        * ksvg2/dom/SVGPathSeg.cpp:
3702        (SVGPathSeg::getValueProperty):
3703        * ksvg2/dom/SVGPathSeg.h:
3704        * ksvg2/dom/SVGPathSegArc.cpp:
3705        (SVGPathSegArcAbs::getValueProperty):
3706        (SVGPathSegArcAbs::putValueProperty):
3707        (SVGPathSegArcRel::getValueProperty):
3708        (SVGPathSegArcRel::putValueProperty):
3709        * ksvg2/dom/SVGPathSegArc.h:
3710        * ksvg2/dom/SVGPathSegCurvetoCubic.cpp:
3711        (SVGPathSegCurvetoCubicAbs::getValueProperty):
3712        (SVGPathSegCurvetoCubicAbs::putValueProperty):
3713        (SVGPathSegCurvetoCubicRel::getValueProperty):
3714        (SVGPathSegCurvetoCubicRel::putValueProperty):
3715        * ksvg2/dom/SVGPathSegCurvetoCubic.h:
3716        * ksvg2/dom/SVGPathSegCurvetoCubicSmooth.cpp:
3717        (SVGPathSegCurvetoCubicSmoothAbs::getValueProperty):
3718        (SVGPathSegCurvetoCubicSmoothAbs::putValueProperty):
3719        (SVGPathSegCurvetoCubicSmoothRel::getValueProperty):
3720        (SVGPathSegCurvetoCubicSmoothRel::putValueProperty):
3721        * ksvg2/dom/SVGPathSegCurvetoCubicSmooth.h:
3722        * ksvg2/dom/SVGPathSegCurvetoQuadratic.cpp:
3723        (SVGPathSegCurvetoQuadraticAbs::getValueProperty):
3724        (SVGPathSegCurvetoQuadraticAbs::putValueProperty):
3725        (SVGPathSegCurvetoQuadraticRel::getValueProperty):
3726        (SVGPathSegCurvetoQuadraticRel::putValueProperty):
3727        * ksvg2/dom/SVGPathSegCurvetoQuadratic.h:
3728        * ksvg2/dom/SVGPathSegCurvetoQuadraticSmooth.cpp:
3729        (SVGPathSegCurvetoQuadraticSmoothAbs::getValueProperty):
3730        (SVGPathSegCurvetoQuadraticSmoothAbs::putValueProperty):
3731        (SVGPathSegCurvetoQuadraticSmoothRel::getValueProperty):
3732        (SVGPathSegCurvetoQuadraticSmoothRel::putValueProperty):
3733        * ksvg2/dom/SVGPathSegCurvetoQuadraticSmooth.h:
3734        * ksvg2/dom/SVGPathSegLineto.cpp:
3735        (SVGPathSegLinetoAbs::getValueProperty):
3736        (SVGPathSegLinetoAbs::putValueProperty):
3737        (SVGPathSegLinetoRel::getValueProperty):
3738        (SVGPathSegLinetoRel::putValueProperty):
3739        * ksvg2/dom/SVGPathSegLineto.h:
3740        * ksvg2/dom/SVGPathSegLinetoHorizontal.cpp:
3741        (SVGPathSegLinetoHorizontalAbs::getValueProperty):
3742        (SVGPathSegLinetoHorizontalAbs::putValueProperty):
3743        (SVGPathSegLinetoHorizontalRel::getValueProperty):
3744        (SVGPathSegLinetoHorizontalRel::putValueProperty):
3745        * ksvg2/dom/SVGPathSegLinetoHorizontal.h:
3746        * ksvg2/dom/SVGPathSegLinetoVertical.cpp:
3747        (SVGPathSegLinetoVerticalAbs::getValueProperty):
3748        (SVGPathSegLinetoVerticalAbs::putValueProperty):
3749        (SVGPathSegLinetoVerticalRel::getValueProperty):
3750        (SVGPathSegLinetoVerticalRel::putValueProperty):
3751        * ksvg2/dom/SVGPathSegLinetoVertical.h:
3752        * ksvg2/dom/SVGPathSegList.cpp:
3753        (SVGPathSegList::getValueProperty):
3754        (SVGPathSegListProtoFunc::callAsFunction):
3755        * ksvg2/dom/SVGPathSegList.h:
3756        * ksvg2/dom/SVGPathSegMoveto.cpp:
3757        (SVGPathSegMovetoAbs::getValueProperty):
3758        (SVGPathSegMovetoAbs::putValueProperty):
3759        (SVGPathSegMovetoRel::getValueProperty):
3760        (SVGPathSegMovetoRel::putValueProperty):
3761        * ksvg2/dom/SVGPathSegMoveto.h:
3762        * ksvg2/dom/SVGPatternElement.cpp:
3763        (SVGPatternElement::getValueProperty):
3764        * ksvg2/dom/SVGPatternElement.h:
3765        * ksvg2/dom/SVGPoint.cpp:
3766        (SVGPoint::getValueProperty):
3767        (SVGPoint::putValueProperty):
3768        (SVGPointProtoFunc::callAsFunction):
3769        * ksvg2/dom/SVGPoint.h:
3770        * ksvg2/dom/SVGPointList.cpp:
3771        (SVGPointList::getValueProperty):
3772        (SVGPointListProtoFunc::callAsFunction):
3773        * ksvg2/dom/SVGPointList.h:
3774        * ksvg2/dom/SVGPolygonElement.cpp:
3775        (SVGPolygonElement::getValueProperty):
3776        * ksvg2/dom/SVGPolygonElement.h:
3777        * ksvg2/dom/SVGPolylineElement.cpp:
3778        (SVGPolylineElement::getValueProperty):
3779        * ksvg2/dom/SVGPolylineElement.h:
3780        * ksvg2/dom/SVGPreserveAspectRatio.cpp:
3781        (SVGPreserveAspectRatio::getValueProperty):
3782        (SVGPreserveAspectRatio::putValueProperty):
3783        * ksvg2/dom/SVGPreserveAspectRatio.h:
3784        * ksvg2/dom/SVGRadialGradientElement.cpp:
3785        (SVGRadialGradientElement::getValueProperty):
3786        * ksvg2/dom/SVGRadialGradientElement.h:
3787        * ksvg2/dom/SVGRect.cpp:
3788        (SVGRect::getValueProperty):
3789        (SVGRect::putValueProperty):
3790        * ksvg2/dom/SVGRect.h:
3791        * ksvg2/dom/SVGRectElement.cpp:
3792        (SVGRectElement::getValueProperty):
3793        * ksvg2/dom/SVGRectElement.h:
3794        * ksvg2/dom/SVGSVGElement.cpp:
3795        (SVGSVGElement::getValueProperty):
3796        (SVGSVGElement::putValueProperty):
3797        (SVGSVGElementProtoFunc::callAsFunction):
3798        * ksvg2/dom/SVGSVGElement.h:
3799        * ksvg2/dom/SVGScriptElement.cpp:
3800        (SVGScriptElement::getValueProperty):
3801        (SVGScriptElement::putValueProperty):
3802        * ksvg2/dom/SVGScriptElement.h:
3803        * ksvg2/dom/SVGSetElement.cpp:
3804        (SVGSetElement::getValueProperty):
3805        * ksvg2/dom/SVGSetElement.h:
3806        * ksvg2/dom/SVGStopElement.cpp:
3807        (SVGStopElement::getValueProperty):
3808        * ksvg2/dom/SVGStopElement.h:
3809        * ksvg2/dom/SVGStringList.cpp:
3810        (SVGStringList::getValueProperty):
3811        (SVGStringListProtoFunc::callAsFunction):
3812        * ksvg2/dom/SVGStringList.h:
3813        * ksvg2/dom/SVGStylable.cpp:
3814        (SVGStylable::getValueProperty):
3815        (SVGStylableProtoFunc::callAsFunction):
3816        * ksvg2/dom/SVGStylable.h:
3817        * ksvg2/dom/SVGStyleElement.cpp:
3818        (SVGStyleElement::getValueProperty):
3819        (SVGStyleElement::putValueProperty):
3820        * ksvg2/dom/SVGStyleElement.h:
3821        * ksvg2/dom/SVGSwitchElement.cpp:
3822        (SVGSwitchElement::getValueProperty):
3823        * ksvg2/dom/SVGSwitchElement.h:
3824        * ksvg2/dom/SVGSymbolElement.cpp:
3825        (SVGSymbolElement::getValueProperty):
3826        * ksvg2/dom/SVGSymbolElement.h:
3827        * ksvg2/dom/SVGTSpanElement.cpp:
3828        (SVGTSpanElement::getValueProperty):
3829        * ksvg2/dom/SVGTSpanElement.h:
3830        * ksvg2/dom/SVGTests.cpp:
3831        (SVGTests::getValueProperty):
3832        (SVGTestsProtoFunc::callAsFunction):
3833        * ksvg2/dom/SVGTests.h:
3834        * ksvg2/dom/SVGTextContentElement.cpp:
3835        (SVGTextContentElement::getValueProperty):
3836        (SVGTextContentElementProtoFunc::callAsFunction):
3837        * ksvg2/dom/SVGTextContentElement.h:
3838        * ksvg2/dom/SVGTextElement.cpp:
3839        (SVGTextElement::getValueProperty):
3840        * ksvg2/dom/SVGTextElement.h:
3841        * ksvg2/dom/SVGTextPositioningElement.cpp:
3842        (SVGTextPositioningElement::getValueProperty):
3843        * ksvg2/dom/SVGTextPositioningElement.h:
3844        * ksvg2/dom/SVGTitleElement.cpp:
3845        (SVGTitleElement::getValueProperty):
3846        * ksvg2/dom/SVGTitleElement.h:
3847        * ksvg2/dom/SVGTransform.cpp:
3848        (SVGTransform::getValueProperty):
3849        (SVGTransformProtoFunc::callAsFunction):
3850        * ksvg2/dom/SVGTransform.h:
3851        * ksvg2/dom/SVGTransformList.cpp:
3852        (SVGTransformList::getValueProperty):
3853        (SVGTransformListProtoFunc::callAsFunction):
3854        * ksvg2/dom/SVGTransformList.h:
3855        * ksvg2/dom/SVGTransformable.cpp:
3856        (SVGTransformable::getValueProperty):
3857        * ksvg2/dom/SVGTransformable.h:
3858        * ksvg2/dom/SVGURIReference.cpp:
3859        (SVGURIReference::getValueProperty):
3860        * ksvg2/dom/SVGURIReference.h:
3861        * ksvg2/dom/SVGUseElement.cpp:
3862        (SVGUseElement::getValueProperty):
3863        * ksvg2/dom/SVGUseElement.h:
3864        * ksvg2/dom/SVGViewElement.cpp:
3865        (SVGViewElement::getValueProperty):
3866        * ksvg2/dom/SVGViewElement.h:
3867        * ksvg2/dom/SVGZoomAndPan.cpp:
3868        (SVGZoomAndPan::getValueProperty):
3869        (SVGZoomAndPan::putValueProperty):
3870        * ksvg2/dom/SVGZoomAndPan.h:
3871        * ksvg2/ecma/Ecma.cpp:
3872        (KSVG::getSVGPathSeg):
3873        * ksvg2/ecma/Ecma.h:
3874        * ksvg2/ecma/GlobalObject.cpp:
3875        (GlobalObject::get):
3876        * ksvg2/ecma/GlobalObject.h:
3877        * ksvg2/events/SVGEvent.cpp:
3878        (SVGEvent::getValueProperty):
3879        * ksvg2/events/SVGEvent.h:
3880        * ksvg2/events/SVGZoomEvent.cpp:
3881        (SVGZoomEvent::getValueProperty):
3882        * ksvg2/events/SVGZoomEvent.h:
3883        * ksvg2/impl/SVGScriptElementImpl.cpp:
3884        (SVGScriptElementImpl::executeScript):
3885
38862005-08-07  Darin Adler  <darin@apple.com>
3887
3888        Rubber stamped by Maciej.
3889
3890        - fixed http://bugs.webkit.org/show_bug.cgi?id=4313
3891          eliminate KJS::Value and KJS::Object smart pointer wrappers (for simplicity and speed)
3892
3893        * khtml/ecma/domparser.cpp:
3894        (KJS::DOMParserConstructorImp::construct):
3895        (KJS::DOMParserProtoFunc::callAsFunction):
3896        * khtml/ecma/domparser.h:
3897        * khtml/ecma/kjs_binding.cpp:
3898        (KJS::ScriptInterpreter::ScriptInterpreter):
3899        (KJS::ScriptInterpreter::isGlobalObject):
3900        (KJS::ScriptInterpreter::createLanguageInstanceForValue):
3901        (KJS::getStringOrNull):
3902        (KJS::ValueToVariant):
3903        (KJS::setDOMException):
3904        * khtml/ecma/kjs_binding.h:
3905        (KJS::DOMFunction::toPrimitive):
3906        (KJS::cacheDOMObject):
3907        * khtml/ecma/kjs_css.cpp:
3908        (KJS::DOMCSSStyleDeclaration::indexGetter):
3909        (KJS::DOMCSSStyleDeclaration::cssPropertyGetter):
3910        (KJS::DOMCSSStyleDeclaration::getValueProperty):
3911        (KJS::DOMCSSStyleDeclaration::put):
3912        (KJS::DOMCSSStyleDeclarationProtoFunc::callAsFunction):
3913        (KJS::DOMStyleSheet::getValueProperty):
3914        (KJS::DOMStyleSheet::put):
3915        (KJS::DOMStyleSheetList::getValueProperty):
3916        (KJS::DOMStyleSheetList::indexGetter):
3917        (KJS::DOMStyleSheetList::nameGetter):
3918        (KJS::DOMStyleSheetListFunc::callAsFunction):
3919        (KJS::DOMMediaList::getValueProperty):
3920        (KJS::DOMMediaList::indexGetter):
3921        (KJS::DOMMediaList::put):
3922        (KJS::KJS::DOMMediaListProtoFunc::callAsFunction):
3923        (KJS::DOMCSSStyleSheet::getValueProperty):
3924        (KJS::DOMCSSStyleSheetProtoFunc::callAsFunction):
3925        (KJS::DOMCSSRuleList::getValueProperty):
3926        (KJS::DOMCSSRuleList::indexGetter):
3927        (KJS::DOMCSSRuleListFunc::callAsFunction):
3928        (KJS::DOMCSSRule::getValueProperty):
3929        (KJS::DOMCSSRule::put):
3930        (KJS::DOMCSSRule::putValueProperty):
3931        (KJS::DOMCSSRuleFunc::callAsFunction):
3932        (KJS::CSSRuleConstructor::getValueProperty):
3933        (KJS::getCSSRuleConstructor):
3934        (KJS::DOMCSSValue::getValueProperty):
3935        (KJS::DOMCSSValue::put):
3936        (KJS::getDOMCSSValue):
3937        (KJS::CSSValueConstructor::getValueProperty):
3938        (KJS::getCSSValueConstructor):
3939        (KJS::DOMCSSPrimitiveValue::getValueProperty):
3940        (KJS::DOMCSSPrimitiveValueProtoFunc::callAsFunction):
3941        (KJS::CSSPrimitiveValueConstructor::getValueProperty):
3942        (KJS::getCSSPrimitiveValueConstructor):
3943        (KJS::DOMCSSValueList::getValueProperty):
3944        (KJS::DOMCSSValueList::indexGetter):
3945        (KJS::DOMCSSValueListFunc::callAsFunction):
3946        (KJS::DOMRGBColor::getValueProperty):
3947        (KJS::DOMRect::getValueProperty):
3948        (KJS::DOMCounter::getValueProperty):
3949        * khtml/ecma/kjs_css.h:
3950        * khtml/ecma/kjs_dom.cpp:
3951        (KJS::DOMNode::getValueProperty):
3952        (KJS::DOMNode::put):
3953        (KJS::DOMNode::putValueProperty):
3954        (KJS::DOMNode::toPrimitive):
3955        (KJS::DOMNode::getListener):
3956        (KJS::DOMNodeProtoFunc::callAsFunction):
3957        (KJS::DOMNodeList::toPrimitive):
3958        (KJS::DOMNodeList::getValueProperty):
3959        (KJS::DOMNodeList::indexGetter):
3960        (KJS::DOMNodeList::nameGetter):
3961        (KJS::DOMNodeList::callAsFunction):
3962        (KJS::DOMNodeListFunc::DOMNodeListFunc):
3963        (KJS::DOMNodeListFunc::callAsFunction):
3964        (KJS::DOMAttr::getValueProperty):
3965        (KJS::DOMAttr::put):
3966        (KJS::DOMAttr::putValueProperty):
3967        (KJS::DOMDocument::getValueProperty):
3968        (KJS::DOMDocument::put):
3969        (KJS::DOMDocument::putValueProperty):
3970        (KJS::DOMDocumentProtoFunc::callAsFunction):
3971        (KJS::DOMElement::getValueProperty):
3972        (KJS::DOMElement::attributeGetter):
3973        (KJS::DOMElement::getOwnPropertySlot):
3974        (KJS::DOMElementProtoFunc::callAsFunction):
3975        (KJS::DOMDOMImplementationProtoFunc::callAsFunction):
3976        (KJS::DOMDocumentType::getValueProperty):
3977        (KJS::DOMNamedNodeMap::lengthGetter):
3978        (KJS::DOMNamedNodeMap::indexGetter):
3979        (KJS::DOMNamedNodeMapProtoFunc::callAsFunction):
3980        (KJS::DOMProcessingInstruction::getValueProperty):
3981        (KJS::DOMProcessingInstruction::put):
3982        (KJS::DOMNotation::getValueProperty):
3983        (KJS::DOMEntity::getValueProperty):
3984        (KJS::NodeConstructor::getValueProperty):
3985        (KJS::DOMExceptionConstructor::getValueProperty):
3986        (KJS::DOMNamedNodesCollection::lengthGetter):
3987        (KJS::DOMNamedNodesCollection::indexGetter):
3988        (KJS::DOMCharacterData::getValueProperty):
3989        (KJS::DOMCharacterData::put):
3990        (KJS::DOMCharacterDataProtoFunc::callAsFunction):
3991        (KJS::DOMTextProtoFunc::callAsFunction):
3992        * khtml/ecma/kjs_dom.h:
3993        * khtml/ecma/kjs_events.cpp:
3994        (KJS::JSAbstractEventListener::handleEvent):
3995        (KJS::JSUnprotectedEventListener::JSUnprotectedEventListener):
3996        (KJS::JSUnprotectedEventListener::~JSUnprotectedEventListener):
3997        (KJS::JSUnprotectedEventListener::listenerObj):
3998        (KJS::JSUnprotectedEventListener::windowObj):
3999        (KJS::JSUnprotectedEventListener::mark):
4000        (KJS::JSEventListener::JSEventListener):
4001        (KJS::JSEventListener::~JSEventListener):
4002        (KJS::JSEventListener::listenerObj):
4003        (KJS::JSEventListener::windowObj):
4004        (KJS::JSLazyEventListener::JSLazyEventListener):
4005        (KJS::JSLazyEventListener::handleEvent):
4006        (KJS::JSLazyEventListener::listenerObj):
4007        (KJS::JSLazyEventListener::parseCode):
4008        (KJS::getNodeEventListener):
4009        (KJS::EventConstructor::getValueProperty):
4010        (KJS::getEventConstructor):
4011        (KJS::DOMEvent::getValueProperty):
4012        (KJS::DOMEvent::put):
4013        (KJS::DOMEvent::putValueProperty):
4014        (KJS::DOMEventProtoFunc::callAsFunction):
4015        (KJS::getDOMEvent):
4016        (KJS::EventExceptionConstructor::getValueProperty):
4017        (KJS::getEventExceptionConstructor):
4018        (KJS::DOMUIEvent::getValueProperty):
4019        (KJS::DOMUIEventProtoFunc::callAsFunction):
4020        (KJS::DOMMouseEvent::getValueProperty):
4021        (KJS::DOMMouseEventProtoFunc::callAsFunction):
4022        (KJS::DOMKeyboardEvent::getValueProperty):
4023        (KJS::DOMKeyboardEventProtoFunc::callAsFunction):
4024        (KJS::MutationEventConstructor::getValueProperty):
4025        (KJS::getMutationEventConstructor):
4026        (KJS::DOMMutationEvent::getValueProperty):
4027        (KJS::DOMMutationEventProtoFunc::callAsFunction):
4028        (KJS::DOMWheelEvent::getValueProperty):
4029        (KJS::DOMWheelEventProtoFunc::callAsFunction):
4030        (KJS::stringOrUndefined):
4031        (KJS::Clipboard::getValueProperty):
4032        (KJS::Clipboard::put):
4033        (KJS::Clipboard::putValueProperty):
4034        (KJS::ClipboardProtoFunc::callAsFunction):
4035        * khtml/ecma/kjs_events.h:
4036        (KJS::JSAbstractEventListener::listenerObjImp):
4037        * khtml/ecma/kjs_html.cpp:
4038        (KJS::KJS::HTMLDocFunction::callAsFunction):
4039        (KJS::HTMLDocument::namedItemGetter):
4040        (KJS::HTMLDocument::getValueProperty):
4041        (KJS::KJS::HTMLDocument::put):
4042        (KJS::KJS::HTMLDocument::putValueProperty):
4043        (KJS::HTMLElement::formIndexGetter):
4044        (KJS::HTMLElement::formNameGetter):
4045        (KJS::HTMLElement::selectIndexGetter):
4046        (KJS::HTMLElement::framesetNameGetter):
4047        (KJS::HTMLElement::frameWindowPropertyGetter):
4048        (KJS::HTMLElement::runtimeObjectGetter):
4049        (KJS::HTMLElement::runtimeObjectPropertyGetter):
4050        (KJS::HTMLElement::getOwnPropertySlot):
4051        (KJS::KJS::HTMLElement::implementsCall):
4052        (KJS::KJS::HTMLElement::callAsFunction):
4053        (KJS::HTMLElement::htmlGetter):
4054        (KJS::HTMLElement::headGetter):
4055        (KJS::HTMLElement::linkGetter):
4056        (KJS::HTMLElement::titleGetter):
4057        (KJS::HTMLElement::metaGetter):
4058        (KJS::HTMLElement::baseGetter):
4059        (KJS::HTMLElement::isIndexGetter):
4060        (KJS::HTMLElement::styleGetter):
4061        (KJS::HTMLElement::bodyGetter):
4062        (KJS::HTMLElement::formGetter):
4063        (KJS::HTMLElement::selectGetter):
4064        (KJS::HTMLElement::optGroupGetter):
4065        (KJS::HTMLElement::optionGetter):
4066        (KJS::getInputSelectionStart):
4067        (KJS::getInputSelectionEnd):
4068        (KJS::HTMLElement::inputGetter):
4069        (KJS::HTMLElement::textAreaGetter):
4070        (KJS::HTMLElement::buttonGetter):
4071        (KJS::HTMLElement::labelGetter):
4072        (KJS::HTMLElement::fieldSetGetter):
4073        (KJS::HTMLElement::legendGetter):
4074        (KJS::HTMLElement::uListGetter):
4075        (KJS::HTMLElement::oListGetter):
4076        (KJS::HTMLElement::dListGetter):
4077        (KJS::HTMLElement::dirGetter):
4078        (KJS::HTMLElement::menuGetter):
4079        (KJS::HTMLElement::liGetter):
4080        (KJS::HTMLElement::divGetter):
4081        (KJS::HTMLElement::paragraphGetter):
4082        (KJS::HTMLElement::headingGetter):
4083        (KJS::HTMLElement::blockQuoteGetter):
4084        (KJS::HTMLElement::quoteGetter):
4085        (KJS::HTMLElement::preGetter):
4086        (KJS::HTMLElement::brGetter):
4087        (KJS::HTMLElement::baseFontGetter):
4088        (KJS::HTMLElement::fontGetter):
4089        (KJS::HTMLElement::hrGetter):
4090        (KJS::HTMLElement::modGetter):
4091        (KJS::HTMLElement::anchorGetter):
4092        (KJS::HTMLElement::imageGetter):
4093        (KJS::HTMLElement::objectGetter):
4094        (KJS::HTMLElement::paramGetter):
4095        (KJS::HTMLElement::appletGetter):
4096        (KJS::HTMLElement::mapGetter):
4097        (KJS::HTMLElement::areaGetter):
4098        (KJS::HTMLElement::scriptGetter):
4099        (KJS::HTMLElement::tableGetter):
4100        (KJS::HTMLElement::tableCaptionGetter):
4101        (KJS::HTMLElement::tableColGetter):
4102        (KJS::HTMLElement::tableSectionGetter):
4103        (KJS::HTMLElement::tableRowGetter):
4104        (KJS::HTMLElement::tableCellGetter):
4105        (KJS::HTMLElement::frameSetGetter):
4106        (KJS::HTMLElement::frameGetter):
4107        (KJS::HTMLElement::iFrameGetter):
4108        (KJS::HTMLElement::marqueeGetter):
4109        (KJS::HTMLElement::getValueProperty):
4110        (KJS::HTMLElementFunction::HTMLElementFunction):
4111        (KJS::KJS::HTMLElementFunction::callAsFunction):
4112        (KJS::KJS::HTMLElement::put):
4113        (KJS::HTMLElement::htmlSetter):
4114        (KJS::HTMLElement::headSetter):
4115        (KJS::HTMLElement::linkSetter):
4116        (KJS::HTMLElement::titleSetter):
4117        (KJS::HTMLElement::metaSetter):
4118        (KJS::HTMLElement::baseSetter):
4119        (KJS::HTMLElement::isIndexSetter):
4120        (KJS::HTMLElement::styleSetter):
4121        (KJS::HTMLElement::bodySetter):
4122        (KJS::HTMLElement::formSetter):
4123        (KJS::HTMLElement::selectSetter):
4124        (KJS::HTMLElement::optGroupSetter):
4125        (KJS::HTMLElement::optionSetter):
4126        (KJS::HTMLElement::inputSetter):
4127        (KJS::HTMLElement::textAreaSetter):
4128        (KJS::HTMLElement::buttonSetter):
4129        (KJS::HTMLElement::labelSetter):
4130        (KJS::HTMLElement::fieldSetSetter):
4131        (KJS::HTMLElement::legendSetter):
4132        (KJS::HTMLElement::uListSetter):
4133        (KJS::HTMLElement::oListSetter):
4134        (KJS::HTMLElement::dListSetter):
4135        (KJS::HTMLElement::dirSetter):
4136        (KJS::HTMLElement::menuSetter):
4137        (KJS::HTMLElement::liSetter):
4138        (KJS::HTMLElement::divSetter):
4139        (KJS::HTMLElement::paragraphSetter):
4140        (KJS::HTMLElement::headingSetter):
4141        (KJS::HTMLElement::blockQuoteSetter):
4142        (KJS::HTMLElement::quoteSetter):
4143        (KJS::HTMLElement::preSetter):
4144        (KJS::HTMLElement::brSetter):
4145        (KJS::HTMLElement::baseFontSetter):
4146        (KJS::HTMLElement::fontSetter):
4147        (KJS::HTMLElement::hrSetter):
4148        (KJS::HTMLElement::modSetter):
4149        (KJS::HTMLElement::anchorSetter):
4150        (KJS::HTMLElement::imageSetter):
4151        (KJS::HTMLElement::objectSetter):
4152        (KJS::HTMLElement::paramSetter):
4153        (KJS::HTMLElement::appletSetter):
4154        (KJS::HTMLElement::mapSetter):
4155        (KJS::HTMLElement::areaSetter):
4156        (KJS::HTMLElement::scriptSetter):
4157        (KJS::HTMLElement::tableSetter):
4158        (KJS::HTMLElement::tableCaptionSetter):
4159        (KJS::HTMLElement::tableColSetter):
4160        (KJS::HTMLElement::tableSectionSetter):
4161        (KJS::HTMLElement::tableRowSetter):
4162        (KJS::HTMLElement::tableCellSetter):
4163        (KJS::HTMLElement::frameSetSetter):
4164        (KJS::HTMLElement::frameSetter):
4165        (KJS::HTMLElement::iFrameSetter):
4166        (KJS::HTMLElement::marqueeSetter):
4167        (KJS::HTMLElement::putValueProperty):
4168        (KJS::HTMLCollection::lengthGetter):
4169        (KJS::HTMLCollection::indexGetter):
4170        (KJS::HTMLCollection::nameGetter):
4171        (KJS::HTMLCollection::getOwnPropertySlot):
4172        (KJS::KJS::HTMLCollection::callAsFunction):
4173        (KJS::KJS::HTMLCollection::getNamedItems):
4174        (KJS::KJS::HTMLCollectionProtoFunc::callAsFunction):
4175        (KJS::HTMLSelectCollection::selectedIndexGetter):
4176        (KJS::KJS::HTMLSelectCollection::put):
4177        (KJS::OptionConstructorImp::construct):
4178        (KJS::ImageConstructorImp::construct):
4179        (KJS::Image::getValueProperty):
4180        (KJS::Image::put):
4181        (KJS::Image::putValueProperty):
4182        (KJS::isGradient):
4183        (KJS::isImagePattern):
4184        (KJS::KJS::Context2DFunction::callAsFunction):
4185        (KJS::Context2D::getValueProperty):
4186        (KJS::Context2D::put):
4187        (KJS::colorRefFromValue):
4188        (KJS::colorFromValue):
4189        (KJS::Context2D::setShadow):
4190        (KJS::Context2D::updateFillImagePattern):
4191        (KJS::Context2D::updateStrokeImagePattern):
4192        (KJS::Context2D::putValueProperty):
4193        (KJS::Context2D::Context2D):
4194        (KJS::Context2D::mark):
4195        (KJS::GradientFunction::callAsFunction):
4196        (KJS::Gradient::getValueProperty):
4197        (KJS::Gradient::put):
4198        (KJS::Gradient::putValueProperty):
4199        (KJS::ImagePattern::getValueProperty):
4200        (KJS::ImagePattern::put):
4201        (KJS::ImagePattern::putValueProperty):
4202        * khtml/ecma/kjs_html.h:
4203        * khtml/ecma/kjs_navigator.cpp:
4204        (KJS::Navigator::getValueProperty):
4205        (KJS::Plugins::getValueProperty):
4206        (KJS::Plugins::indexGetter):
4207        (KJS::Plugins::nameGetter):
4208        (KJS::MimeTypes::getValueProperty):
4209        (KJS::MimeTypes::indexGetter):
4210        (KJS::MimeTypes::nameGetter):
4211        (KJS::Plugin::getValueProperty):
4212        (KJS::Plugin::indexGetter):
4213        (KJS::Plugin::nameGetter):
4214        (KJS::MimeType::getValueProperty):
4215        (KJS::PluginsFunc::callAsFunction):
4216        (KJS::NavigatorFunc::callAsFunction):
4217        * khtml/ecma/kjs_navigator.h:
4218        * khtml/ecma/kjs_proxy.cpp:
4219        (KJSProxyImpl::evaluate):
4220        (TestFunctionImp::callAsFunction):
4221        (KJSProxyImpl::initScript):
4222        (KJSProxy::proxy):
4223        * khtml/ecma/kjs_range.cpp:
4224        (KJS::DOMRange::getValueProperty):
4225        (KJS::DOMRangeProtoFunc::callAsFunction):
4226        (KJS::RangeConstructor::getValueProperty):
4227        * khtml/ecma/kjs_range.h:
4228        * khtml/ecma/kjs_traversal.cpp:
4229        (KJS::DOMNodeIterator::getValueProperty):
4230        (KJS::DOMNodeIteratorProtoFunc::callAsFunction):
4231        (KJS::NodeFilterConstructor::getValueProperty):
4232        (KJS::getNodeFilterConstructor):
4233        (KJS::DOMNodeFilterProtoFunc::callAsFunction):
4234        (KJS::DOMTreeWalker::getValueProperty):
4235        (KJS::DOMTreeWalker::put):
4236        (KJS::DOMTreeWalkerProtoFunc::callAsFunction):
4237        (KJS::JSNodeFilterCondition::JSNodeFilterCondition):
4238        (KJS::JSNodeFilterCondition::acceptNode):
4239        * khtml/ecma/kjs_traversal.h:
4240        * khtml/ecma/kjs_views.cpp:
4241        (KJS::DOMAbstractView::getValueProperty):
4242        (KJS::DOMAbstractViewFunc::callAsFunction):
4243        * khtml/ecma/kjs_views.h:
4244        * khtml/ecma/kjs_window.cpp:
4245        (KJS::Screen::getValueProperty):
4246        (KJS::Window::retrieveWindow):
4247        (KJS::Window::retrieveActive):
4248        (KJS::Window::retrieve):
4249        (KJS::parseFeatures):
4250        (KJS::showModalDialog):
4251        (KJS::Window::getValueProperty):
4252        (KJS::Window::childFrameGetter):
4253        (KJS::Window::namedFrameGetter):
4254        (KJS::Window::indexGetter):
4255        (KJS::Window::namedItemGetter):
4256        (KJS::Window::put):
4257        (KJS::Window::installTimeout):
4258        (KJS::Window::setListener):
4259        (KJS::Window::getListener):
4260        (KJS::Window::getJSEventListener):
4261        (KJS::Window::getJSUnprotectedEventListener):
4262        (KJS::Window::getJSLazyEventListener):
4263        (KJS::WindowFunc::callAsFunction):
4264        (KJS::ScheduledAction::ScheduledAction):
4265        (KJS::ScheduledAction::execute):
4266        (KJS::WindowQObject::installTimeout):
4267        (KJS::FrameArray::getValueProperty):
4268        (KJS::FrameArray::indexGetter):
4269        (KJS::FrameArray::nameGetter):
4270        (KJS::Location::getValueProperty):
4271        (KJS::Location::put):
4272        (KJS::Location::toPrimitive):
4273        (KJS::LocationFunc::callAsFunction):
4274        (KJS::Selection::getValueProperty):
4275        (KJS::Selection::toPrimitive):
4276        (KJS::SelectionFunc::callAsFunction):
4277        (KJS::BarInfo::getValueProperty):
4278        (KJS::History::getValueProperty):
4279        (KJS::HistoryFunc::callAsFunction):
4280        (KJS::Konqueror::get):
4281        (KJS::KonquerorFunc::callAsFunction):
4282        * khtml/ecma/kjs_window.h:
4283        * khtml/ecma/xmlhttprequest.cpp:
4284        (KJS::XMLHttpRequestConstructorImp::construct):
4285        (KJS::XMLHttpRequest::getValueProperty):
4286        (KJS::XMLHttpRequest::put):
4287        (KJS::XMLHttpRequest::putValueProperty):
4288        (KJS::XMLHttpRequest::getAllResponseHeaders):
4289        (KJS::XMLHttpRequest::getResponseHeader):
4290        (KJS::XMLHttpRequest::getStatus):
4291        (KJS::XMLHttpRequest::getStatusText):
4292        (KJS::XMLHttpRequestProtoFunc::callAsFunction):
4293        * khtml/ecma/xmlhttprequest.h:
4294        * khtml/ecma/xmlserializer.cpp:
4295        (KJS::XMLSerializerConstructorImp::construct):
4296        (KJS::XMLSerializerProtoFunc::callAsFunction):
4297        * khtml/ecma/xmlserializer.h:
4298        * kwq/DOMUtility.mm:
4299        (KJS::ScriptInterpreter::createObjcInstanceForValue):
4300        * kwq/KWQKHTMLPart.mm:
4301        (KWQKHTMLPart::bindingRootObject):
4302        (KWQKHTMLPart::windowScriptObject):
4303        (KWQKHTMLPart::windowScriptNPObject):
4304        * kwq/WebCoreBridge.mm:
4305        (-[WebCoreBridge executionContextForView:]):
4306        * kwq/WebCoreScriptDebugger.mm:
4307        (WebCoreScriptDebuggerImp::callEvent):
4308        (WebCoreScriptDebuggerImp::returnEvent):
4309        (-[WebCoreScriptDebugger finalize]):
4310        (-[WebCoreScriptCallFrame _convertValueToObjcValue:]):
4311        (-[WebCoreScriptCallFrame scopeChain]):
4312        (-[WebCoreScriptCallFrame evaluateWebScript:]):
4313
43142005-08-07  Eric Seidel  <eseidel@apple.com>
4315
4316        Reviewed by darin.
4317
4318        * kcanvas/KCanvasTreeDebug.cpp:
4319        (operator<<):
4320        Added support for printing many additional style values.
4321        Added the W3C SVG test suite as layout tests.
4322        http://bugs.webkit.org/show_bug.cgi?id=4303
4323
4324        Test cases added:
4325        * svg-tests/W3C-SVG-1.1/Resources/DisplaceChecker.png: Added.
4326        * svg-tests/W3C-SVG-1.1/Resources/SVG-1.1-monolithic-fixed.dtd: Added.
4327        * svg-tests/W3C-SVG-1.1/Resources/animation-add-BE-09-expected.txt: Added.
4328        * svg-tests/W3C-SVG-1.1/Resources/animation-add-BE-09.svg: Added.
4329        * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image1-expected.txt: Added.
4330        * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image1.svg: Added.
4331        * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image2-expected.txt: Added.
4332        * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image2.svg: Added.
4333        * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image3-expected.txt: Added.
4334        * svg-tests/W3C-SVG-1.1/Resources/animation-extRef-image3.svg: Added.
4335        * svg-tests/W3C-SVG-1.1/Resources/bluesquidj.png: Added.
4336        * svg-tests/W3C-SVG-1.1/Resources/bullet-small.png: Added.
4337        * svg-tests/W3C-SVG-1.1/Resources/bullet-white.png: Added.
4338        * svg-tests/W3C-SVG-1.1/Resources/bullet.png: Added.
4339        * svg-tests/W3C-SVG-1.1/Resources/bumpMap.png: Added.
4340        * svg-tests/W3C-SVG-1.1/Resources/bumpMap2.png: Added.
4341        * svg-tests/W3C-SVG-1.1/Resources/changeColor.ICM: Added.
4342        * svg-tests/W3C-SVG-1.1/Resources/colorprof.png: Added.
4343        * svg-tests/W3C-SVG-1.1/Resources/convolveImage.png: Added.
4344        * svg-tests/W3C-SVG-1.1/Resources/coords-units-01-f-expected.txt: Added.
4345        * svg-tests/W3C-SVG-1.1/Resources/coords-units-01-f.png: Added.
4346        * svg-tests/W3C-SVG-1.1/Resources/coords-units-01-f.svg: Added.
4347        * svg-tests/W3C-SVG-1.1/Resources/copyright-documents-19990405.html: Added.
4348        * svg-tests/W3C-SVG-1.1/Resources/diagarrow.png: Added.
4349        * svg-tests/W3C-SVG-1.1/Resources/ext-TestComic-expected.txt: Added.
4350        * svg-tests/W3C-SVG-1.1/Resources/ext-TestComic.svg: Added.
4351        * svg-tests/W3C-SVG-1.1/Resources/fillChangeColor.ICM: Added.
4352        * svg-tests/W3C-SVG-1.1/Resources/filters-blend-01-f-expected.txt: Added.
4353        * svg-tests/W3C-SVG-1.1/Resources/filters-blend-01-f.svg: Added.
4354        * svg-tests/W3C-SVG-1.1/Resources/filters-color-01-f-expected.txt: Added.
4355        * svg-tests/W3C-SVG-1.1/Resources/filters-color-01-f.svg: Added.
4356        * svg-tests/W3C-SVG-1.1/Resources/filters-composite-01-f-expected.txt: Added.
4357        * svg-tests/W3C-SVG-1.1/Resources/filters-composite-01-f.svg: Added.
4358        * svg-tests/W3C-SVG-1.1/Resources/filters-comptran-01-f.svg-disabled: Added.
4359        * svg-tests/W3C-SVG-1.1/Resources/filters-conv-01-f-expected.txt: Added.
4360        * svg-tests/W3C-SVG-1.1/Resources/filters-conv-01-f.includeimage.png: Added.
4361        * svg-tests/W3C-SVG-1.1/Resources/filters-conv-01-f.svg: Added.
4362        * svg-tests/W3C-SVG-1.1/Resources/filters-diffuse-01-f-expected.txt: Added.
4363        * svg-tests/W3C-SVG-1.1/Resources/filters-diffuse-01-f.svg: Added.
4364        * svg-tests/W3C-SVG-1.1/Resources/filters-example-01-f-expected.txt: Added.
4365        * svg-tests/W3C-SVG-1.1/Resources/filters-example-01-f.svg: Added.
4366        * svg-tests/W3C-SVG-1.1/Resources/gam030.png: Added.
4367        * svg-tests/W3C-SVG-1.1/Resources/gam030b.png: Added.
4368        * svg-tests/W3C-SVG-1.1/Resources/gam045.png: Added.
4369        * svg-tests/W3C-SVG-1.1/Resources/gam045b.png: Added.
4370        * svg-tests/W3C-SVG-1.1/Resources/gam056.png: Added.
4371        * svg-tests/W3C-SVG-1.1/Resources/gam056b.png: Added.
4372        * svg-tests/W3C-SVG-1.1/Resources/gam100.png: Added.
4373        * svg-tests/W3C-SVG-1.1/Resources/gam100b.png: Added.
4374        * svg-tests/W3C-SVG-1.1/Resources/gam200.png: Added.
4375        * svg-tests/W3C-SVG-1.1/Resources/gam200b.png: Added.
4376        * svg-tests/W3C-SVG-1.1/Resources/greentopbutton.jpg: Added.
4377        * svg-tests/W3C-SVG-1.1/Resources/image.png: Added.
4378        * svg-tests/W3C-SVG-1.1/Resources/image1.jpg: Added.
4379        * svg-tests/W3C-SVG-1.1/Resources/image1.png: Added.
4380        * svg-tests/W3C-SVG-1.1/Resources/image1_b.png: Added.
4381        * svg-tests/W3C-SVG-1.1/Resources/image2_b.jpg: Added.
4382        * svg-tests/W3C-SVG-1.1/Resources/image2_b.png: Added.
4383        * svg-tests/W3C-SVG-1.1/Resources/interact-dom-01-f-expected.txt: Added.
4384        * svg-tests/W3C-SVG-1.1/Resources/interact-dom-01-f.svg: Added.
4385        * svg-tests/W3C-SVG-1.1/Resources/interact-order-02-b-targ-expected.txt: Added.
4386        * svg-tests/W3C-SVG-1.1/Resources/interact-order-02-b-targ.svg: Added.
4387        * svg-tests/W3C-SVG-1.1/Resources/interact-order-03-b-targ-expected.txt: Added.
4388        * svg-tests/W3C-SVG-1.1/Resources/interact-order-03-b-targ.svg: Added.
4389        * svg-tests/W3C-SVG-1.1/Resources/leftarrow.png: Added.
4390        * svg-tests/W3C-SVG-1.1/Resources/linking-uri-01-b-expected.txt: Added.
4391        * svg-tests/W3C-SVG-1.1/Resources/linking-uri-01-b.svg: Added.
4392        * svg-tests/W3C-SVG-1.1/Resources/linking-uri-01-f-1st.png: Added.
4393        * svg-tests/W3C-SVG-1.1/Resources/linking-uri-01-f-2nd.png: Added.
4394        * svg-tests/W3C-SVG-1.1/Resources/linking-uri-01-f-3rd.png: Added.
4395        * svg-tests/W3C-SVG-1.1/Resources/linking-uri-01-f-4th.png: Added.
4396        * svg-tests/W3C-SVG-1.1/Resources/linking-uri-01-f-start.png: Added.
4397        * svg-tests/W3C-SVG-1.1/Resources/linking-uri-03-f-1st.png: Added.
4398        * svg-tests/W3C-SVG-1.1/Resources/linking-uri-03-f-start.png: Added.
4399        * svg-tests/W3C-SVG-1.1/Resources/linkingCircle-f-expected.txt: Added.
4400        * svg-tests/W3C-SVG-1.1/Resources/linkingCircle-f.svg: Added.
4401        * svg-tests/W3C-SVG-1.1/Resources/linkingToc-t-expected.txt: Added.
4402        * svg-tests/W3C-SVG-1.1/Resources/linkingToc-t.svg: Added.
4403        * svg-tests/W3C-SVG-1.1/Resources/magnify.png: Added.
4404        * svg-tests/W3C-SVG-1.1/Resources/myimage.jpg: Added.
4405        * svg-tests/W3C-SVG-1.1/Resources/nav_bullet.png: Added.
4406        * svg-tests/W3C-SVG-1.1/Resources/nav_down.png: Added.
4407        * svg-tests/W3C-SVG-1.1/Resources/nav_downleft.png: Added.
4408        * svg-tests/W3C-SVG-1.1/Resources/nav_downright.png: Added.
4409        * svg-tests/W3C-SVG-1.1/Resources/nav_frame.png: Added.
4410        * svg-tests/W3C-SVG-1.1/Resources/nav_left.png: Added.
4411        * svg-tests/W3C-SVG-1.1/Resources/nav_noframe.png: Added.
4412        * svg-tests/W3C-SVG-1.1/Resources/nav_right.png: Added.
4413        * svg-tests/W3C-SVG-1.1/Resources/nav_svg.png: Added.
4414        * svg-tests/W3C-SVG-1.1/Resources/nav_up.png: Added.
4415        * svg-tests/W3C-SVG-1.1/Resources/nav_upleft.png: Added.
4416        * svg-tests/W3C-SVG-1.1/Resources/nav_upright.png: Added.
4417        * svg-tests/W3C-SVG-1.1/Resources/old-name-2-new-name1.html: Added.
4418        * svg-tests/W3C-SVG-1.1/Resources/paths-data-01-f-expected.txt: Added.
4419        * svg-tests/W3C-SVG-1.1/Resources/paths-data-01-f.png: Added.
4420        * svg-tests/W3C-SVG-1.1/Resources/paths-data-01-f.svg: Added.
4421        * svg-tests/W3C-SVG-1.1/Resources/paths-data-02-f-expected.txt: Added.
4422        * svg-tests/W3C-SVG-1.1/Resources/paths-data-02-f.png: Added.
4423        * svg-tests/W3C-SVG-1.1/Resources/paths-data-02-f.svg: Added.
4424        * svg-tests/W3C-SVG-1.1/Resources/paths-data-03-f-expected.txt: Added.
4425        * svg-tests/W3C-SVG-1.1/Resources/paths-data-03-f.png: Added.
4426        * svg-tests/W3C-SVG-1.1/Resources/paths-data-03-f.svg: Added.
4427        * svg-tests/W3C-SVG-1.1/Resources/paths-data-04-f-expected.txt: Added.
4428        * svg-tests/W3C-SVG-1.1/Resources/paths-data-04-f.png: Added.
4429        * svg-tests/W3C-SVG-1.1/Resources/paths-data-04-f.svg: Added.
4430        * svg-tests/W3C-SVG-1.1/Resources/rects-expected.txt: Added.
4431        * svg-tests/W3C-SVG-1.1/Resources/rects.svg: Added.
4432        * svg-tests/W3C-SVG-1.1/Resources/rects_b-expected.txt: Added.
4433        * svg-tests/W3C-SVG-1.1/Resources/rects_b.svg: Added.
4434        * svg-tests/W3C-SVG-1.1/Resources/rightarrow.png: Added.
4435        * svg-tests/W3C-SVG-1.1/Resources/rotate20.png: Added.
4436        * svg-tests/W3C-SVG-1.1/Resources/shapes-ellipse-01-b-expected.txt: Added.
4437        * svg-tests/W3C-SVG-1.1/Resources/shapes-ellipse-01-b.svg: Added.
4438        * svg-tests/W3C-SVG-1.1/Resources/shapes-ellipse-01-f-expected.txt: Added.
4439        * svg-tests/W3C-SVG-1.1/Resources/shapes-ellipse-01-f.png: Added.
4440        * svg-tests/W3C-SVG-1.1/Resources/shapes-ellipse-01-f.svg: Added.
4441        * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-b-expected.txt: Added.
4442        * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-b.svg: Added.
4443        * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-f-expected.txt: Added.
4444        * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-f.png: Added.
4445        * svg-tests/W3C-SVG-1.1/Resources/shapes-rect-01-f.svg: Added.
4446        * svg-tests/W3C-SVG-1.1/Resources/sign.png: Added.
4447        * svg-tests/W3C-SVG-1.1/Resources/sphere.png: Added.
4448        * svg-tests/W3C-SVG-1.1/Resources/struct-frag-01-B-expected.txt: Added.
4449        * svg-tests/W3C-SVG-1.1/Resources/struct-frag-01-B.svg: Added.
4450        * svg-tests/W3C-SVG-1.1/Resources/struct-image-01.jpg: Added.
4451        * svg-tests/W3C-SVG-1.1/Resources/struct-image-01.png: Added.
4452        * svg-tests/W3C-SVG-1.1/Resources/struct-image-02.jpg: Added.
4453        * svg-tests/W3C-SVG-1.1/Resources/struct-image-02.png: Added.
4454        * svg-tests/W3C-SVG-1.1/Resources/struct-symbol-01.png: Added.
4455        * svg-tests/W3C-SVG-1.1/Resources/text-align-01-f-expected.txt: Added.
4456        * svg-tests/W3C-SVG-1.1/Resources/text-align-01-f.svg: Added.
4457        * svg-tests/W3C-SVG-1.1/Resources/text-align-02-f-expected.txt: Added.
4458        * svg-tests/W3C-SVG-1.1/Resources/text-align-02-f.svg: Added.
4459        * svg-tests/W3C-SVG-1.1/Resources/text-align-03-f-expected.txt: Added.
4460        * svg-tests/W3C-SVG-1.1/Resources/text-align-03-f.svg: Added.
4461        * svg-tests/W3C-SVG-1.1/Resources/text-altglyph-01-f-expected.txt: Added.
4462        * svg-tests/W3C-SVG-1.1/Resources/text-altglyph-01-f.svg: Added.
4463        * svg-tests/W3C-SVG-1.1/Resources/text-extTref-BE-18-targ-expected.txt: Added.
4464        * svg-tests/W3C-SVG-1.1/Resources/text-extTref-BE-18-targ.svg: Added.
4465        * svg-tests/W3C-SVG-1.1/Resources/text-intro-01-f-expected.txt: Added.
4466        * svg-tests/W3C-SVG-1.1/Resources/text-intro-01-f.svg: Added.
4467        * svg-tests/W3C-SVG-1.1/Resources/text-tref-01-f-expected.txt: Added.
4468        * svg-tests/W3C-SVG-1.1/Resources/text-tref-01-f.svg: Added.
4469        * svg-tests/W3C-SVG-1.1/Resources/text-ws-01-f-expected.txt: Added.
4470        * svg-tests/W3C-SVG-1.1/Resources/text-ws-01-f.svg: Added.
4471        * svg-tests/W3C-SVG-1.1/Resources/toc-sv-expected.txt: Added.
4472        * svg-tests/W3C-SVG-1.1/Resources/toc-sv.svg: Added.
4473        * svg-tests/W3C-SVG-1.1/Resources/toc-svcmp-expected.txt: Added.
4474        * svg-tests/W3C-SVG-1.1/Resources/toc-svcmp.svg: Added.
4475        * svg-tests/W3C-SVG-1.1/Resources/uparrow.png: Added.
4476        * svg-tests/W3C-SVG-1.1/animate-elem-02-t-expected.txt: Added.
4477        * svg-tests/W3C-SVG-1.1/animate-elem-02-t-w3c.png: Added.
4478        * svg-tests/W3C-SVG-1.1/animate-elem-02-t.svg: Added.
4479        * svg-tests/W3C-SVG-1.1/animate-elem-03-t-expected.txt: Added.
4480        * svg-tests/W3C-SVG-1.1/animate-elem-03-t-w3c.png: Added.
4481        * svg-tests/W3C-SVG-1.1/animate-elem-03-t.svg: Added.
4482        * svg-tests/W3C-SVG-1.1/animate-elem-04-t-expected.txt: Added.
4483        * svg-tests/W3C-SVG-1.1/animate-elem-04-t-w3c.png: Added.
4484        * svg-tests/W3C-SVG-1.1/animate-elem-04-t.svg: Added.
4485        * svg-tests/W3C-SVG-1.1/animate-elem-05-t-expected.txt: Added.
4486        * svg-tests/W3C-SVG-1.1/animate-elem-05-t-w3c.png: Added.
4487        * svg-tests/W3C-SVG-1.1/animate-elem-05-t.svg: Added.
4488        * svg-tests/W3C-SVG-1.1/animate-elem-06-t-expected.txt: Added.
4489        * svg-tests/W3C-SVG-1.1/animate-elem-06-t-w3c.png: Added.
4490        * svg-tests/W3C-SVG-1.1/animate-elem-06-t.svg: Added.
4491        * svg-tests/W3C-SVG-1.1/animate-elem-07-t-expected.txt: Added.
4492        * svg-tests/W3C-SVG-1.1/animate-elem-07-t-w3c.png: Added.
4493        * svg-tests/W3C-SVG-1.1/animate-elem-07-t.svg: Added.
4494        * svg-tests/W3C-SVG-1.1/animate-elem-08-t-expected.txt: Added.
4495        * svg-tests/W3C-SVG-1.1/animate-elem-08-t-w3c.png: Added.
4496        * svg-tests/W3C-SVG-1.1/animate-elem-08-t.svg: Added.
4497        * svg-tests/W3C-SVG-1.1/animate-elem-09-t-expected.txt: Added.
4498        * svg-tests/W3C-SVG-1.1/animate-elem-09-t-w3c.png: Added.
4499        * svg-tests/W3C-SVG-1.1/animate-elem-09-t.svg: Added.
4500        * svg-tests/W3C-SVG-1.1/animate-elem-10-t-expected.txt: Added.
4501        * svg-tests/W3C-SVG-1.1/animate-elem-10-t-w3c.png: Added.
4502        * svg-tests/W3C-SVG-1.1/animate-elem-10-t.svg: Added.
4503        * svg-tests/W3C-SVG-1.1/animate-elem-11-t-expected.txt: Added.
4504        * svg-tests/W3C-SVG-1.1/animate-elem-11-t-w3c.png: Added.
4505        * svg-tests/W3C-SVG-1.1/animate-elem-11-t.svg: Added.
4506        * svg-tests/W3C-SVG-1.1/animate-elem-12-t-expected.txt: Added.
4507        * svg-tests/W3C-SVG-1.1/animate-elem-12-t-w3c.png: Added.
4508        * svg-tests/W3C-SVG-1.1/animate-elem-12-t.svg: Added.
4509        * svg-tests/W3C-SVG-1.1/animate-elem-13-t-expected.txt: Added.
4510        * svg-tests/W3C-SVG-1.1/animate-elem-13-t-w3c.png: Added.
4511        * svg-tests/W3C-SVG-1.1/animate-elem-13-t.svg: Added.
4512        * svg-tests/W3C-SVG-1.1/animate-elem-14-t-expected.txt: Added.
4513        * svg-tests/W3C-SVG-1.1/animate-elem-14-t-w3c.png: Added.
4514        * svg-tests/W3C-SVG-1.1/animate-elem-14-t.svg: Added.
4515        * svg-tests/W3C-SVG-1.1/animate-elem-15-t-expected.txt: Added.
4516        * svg-tests/W3C-SVG-1.1/animate-elem-15-t-w3c.png: Added.
4517        * svg-tests/W3C-SVG-1.1/animate-elem-15-t.svg: Added.
4518        * svg-tests/W3C-SVG-1.1/animate-elem-16-t-expected.txt: Added.
4519        * svg-tests/W3C-SVG-1.1/animate-elem-16-t-w3c.png: Added.
4520        * svg-tests/W3C-SVG-1.1/animate-elem-16-t.svg: Added.
4521        * svg-tests/W3C-SVG-1.1/animate-elem-17-t-expected.txt: Added.
4522        * svg-tests/W3C-SVG-1.1/animate-elem-17-t-w3c.png: Added.
4523        * svg-tests/W3C-SVG-1.1/animate-elem-17-t.svg: Added.
4524        * svg-tests/W3C-SVG-1.1/animate-elem-18-t-expected.txt: Added.
4525        * svg-tests/W3C-SVG-1.1/animate-elem-18-t-w3c.png: Added.
4526        * svg-tests/W3C-SVG-1.1/animate-elem-18-t.svg: Added.
4527        * svg-tests/W3C-SVG-1.1/animate-elem-19-t-expected.txt: Added.
4528        * svg-tests/W3C-SVG-1.1/animate-elem-19-t-w3c.png: Added.
4529        * svg-tests/W3C-SVG-1.1/animate-elem-19-t.svg: Added.
4530        * svg-tests/W3C-SVG-1.1/animate-elem-20-t-expected.txt: Added.
4531        * svg-tests/W3C-SVG-1.1/animate-elem-20-t-w3c.png: Added.
4532        * svg-tests/W3C-SVG-1.1/animate-elem-20-t.svg: Added.
4533        * svg-tests/W3C-SVG-1.1/animate-elem-21-t-expected.txt: Added.
4534        * svg-tests/W3C-SVG-1.1/animate-elem-21-t-w3c.png: Added.
4535        * svg-tests/W3C-SVG-1.1/animate-elem-21-t.svg: Added.
4536        * svg-tests/W3C-SVG-1.1/animate-elem-22-b-expected.txt: Added.
4537        * svg-tests/W3C-SVG-1.1/animate-elem-22-b-w3c.png: Added.
4538        * svg-tests/W3C-SVG-1.1/animate-elem-22-b.svg: Added.
4539        * svg-tests/W3C-SVG-1.1/animate-elem-23-t-expected.txt: Added.
4540        * svg-tests/W3C-SVG-1.1/animate-elem-23-t-w3c.png: Added.
4541        * svg-tests/W3C-SVG-1.1/animate-elem-23-t.svg: Added.
4542        * svg-tests/W3C-SVG-1.1/animate-elem-24-t-expected.txt: Added.
4543        * svg-tests/W3C-SVG-1.1/animate-elem-24-t-w3c.png: Added.
4544        * svg-tests/W3C-SVG-1.1/animate-elem-24-t.svg: Added.
4545        * svg-tests/W3C-SVG-1.1/animate-elem-25-t-expected.txt: Added.
4546        * svg-tests/W3C-SVG-1.1/animate-elem-25-t-w3c.png: Added.
4547        * svg-tests/W3C-SVG-1.1/animate-elem-25-t.svg: Added.
4548        * svg-tests/W3C-SVG-1.1/animate-elem-26-t-expected.txt: Added.
4549        * svg-tests/W3C-SVG-1.1/animate-elem-26-t-w3c.png: Added.
4550        * svg-tests/W3C-SVG-1.1/animate-elem-26-t.svg: Added.
4551        * svg-tests/W3C-SVG-1.1/animate-elem-27-t-expected.txt: Added.
4552        * svg-tests/W3C-SVG-1.1/animate-elem-27-t-w3c.png: Added.
4553        * svg-tests/W3C-SVG-1.1/animate-elem-27-t.svg: Added.
4554        * svg-tests/W3C-SVG-1.1/animate-elem-28-t-expected.txt: Added.
4555        * svg-tests/W3C-SVG-1.1/animate-elem-28-t-w3c.png: Added.
4556        * svg-tests/W3C-SVG-1.1/animate-elem-28-t.svg: Added.
4557        * svg-tests/W3C-SVG-1.1/animate-elem-29-b-expected.txt: Added.
4558        * svg-tests/W3C-SVG-1.1/animate-elem-29-b-w3c.png: Added.
4559        * svg-tests/W3C-SVG-1.1/animate-elem-29-b.svg: Added.
4560        * svg-tests/W3C-SVG-1.1/color-prof-01-f-expected.txt: Added.
4561        * svg-tests/W3C-SVG-1.1/color-prof-01-f-w3c.png: Added.
4562        * svg-tests/W3C-SVG-1.1/color-prof-01-f.svg: Added.
4563        * svg-tests/W3C-SVG-1.1/color-prop-01-b-expected.txt: Added.
4564        * svg-tests/W3C-SVG-1.1/color-prop-01-b-w3c.png: Added.
4565        * svg-tests/W3C-SVG-1.1/color-prop-01-b.svg: Added.
4566        * svg-tests/W3C-SVG-1.1/color-prop-02-f-expected.txt: Added.
4567        * svg-tests/W3C-SVG-1.1/color-prop-02-f-w3c.png: Added.
4568        * svg-tests/W3C-SVG-1.1/color-prop-02-f.svg: Added.
4569        * svg-tests/W3C-SVG-1.1/color-prop-03-t-expected.txt: Added.
4570        * svg-tests/W3C-SVG-1.1/color-prop-03-t-w3c.png: Added.
4571        * svg-tests/W3C-SVG-1.1/color-prop-03-t.svg: Added.
4572        * svg-tests/W3C-SVG-1.1/coords-trans-01-b-expected.txt: Added.
4573        * svg-tests/W3C-SVG-1.1/coords-trans-01-b-w3c.png: Added.
4574        * svg-tests/W3C-SVG-1.1/coords-trans-01-b.svg: Added.
4575        * svg-tests/W3C-SVG-1.1/coords-trans-02-t-expected.txt: Added.
4576        * svg-tests/W3C-SVG-1.1/coords-trans-02-t-w3c.png: Added.
4577        * svg-tests/W3C-SVG-1.1/coords-trans-02-t.svg: Added.
4578        * svg-tests/W3C-SVG-1.1/coords-trans-03-t-expected.txt: Added.
4579        * svg-tests/W3C-SVG-1.1/coords-trans-03-t-w3c.png: Added.
4580        * svg-tests/W3C-SVG-1.1/coords-trans-03-t.svg: Added.
4581        * svg-tests/W3C-SVG-1.1/coords-trans-04-t-expected.txt: Added.
4582        * svg-tests/W3C-SVG-1.1/coords-trans-04-t-w3c.png: Added.
4583        * svg-tests/W3C-SVG-1.1/coords-trans-04-t.svg: Added.
4584        * svg-tests/W3C-SVG-1.1/coords-trans-05-t-expected.txt: Added.
4585        * svg-tests/W3C-SVG-1.1/coords-trans-05-t-w3c.png: Added.
4586        * svg-tests/W3C-SVG-1.1/coords-trans-05-t.svg: Added.
4587        * svg-tests/W3C-SVG-1.1/coords-trans-06-t-expected.txt: Added.
4588        * svg-tests/W3C-SVG-1.1/coords-trans-06-t-w3c.png: Added.
4589        * svg-tests/W3C-SVG-1.1/coords-trans-06-t.svg: Added.
4590        * svg-tests/W3C-SVG-1.1/coords-units-01-b-expected.txt: Added.
4591        * svg-tests/W3C-SVG-1.1/coords-units-01-b-w3c.png: Added.
4592        * svg-tests/W3C-SVG-1.1/coords-units-01-b.svg: Added.
4593        * svg-tests/W3C-SVG-1.1/coords-units-02-b-expected.txt: Added.
4594        * svg-tests/W3C-SVG-1.1/coords-units-02-b-w3c.png: Added.
4595        * svg-tests/W3C-SVG-1.1/coords-units-02-b.svg: Added.
4596        * svg-tests/W3C-SVG-1.1/coords-units-03-b-expected.txt: Added.
4597        * svg-tests/W3C-SVG-1.1/coords-units-03-b-w3c.png: Added.
4598        * svg-tests/W3C-SVG-1.1/coords-units-03-b.svg: Added.
4599        * svg-tests/W3C-SVG-1.1/coords-viewattr-01-b-expected.txt: Added.
4600        * svg-tests/W3C-SVG-1.1/coords-viewattr-01-b-w3c.png: Added.
4601        * svg-tests/W3C-SVG-1.1/coords-viewattr-01-b.svg: Added.
4602        * svg-tests/W3C-SVG-1.1/coords-viewattr-02-b-expected.txt: Added.
4603        * svg-tests/W3C-SVG-1.1/coords-viewattr-02-b-w3c.png: Added.
4604        * svg-tests/W3C-SVG-1.1/coords-viewattr-02-b.svg: Added.
4605        * svg-tests/W3C-SVG-1.1/extend-namespace-01-f-expected.txt: Added.
4606        * svg-tests/W3C-SVG-1.1/extend-namespace-01-f-w3c.png: Added.
4607        * svg-tests/W3C-SVG-1.1/extend-namespace-01-f.svg: Added.
4608        * svg-tests/W3C-SVG-1.1/filters-blend-01-b-expected.txt: Added.
4609        * svg-tests/W3C-SVG-1.1/filters-blend-01-b-w3c.png: Added.
4610        * svg-tests/W3C-SVG-1.1/filters-blend-01-b.svg: Added.
4611        * svg-tests/W3C-SVG-1.1/filters-color-01-b-expected.txt: Added.
4612        * svg-tests/W3C-SVG-1.1/filters-color-01-b-w3c.png: Added.
4613        * svg-tests/W3C-SVG-1.1/filters-color-01-b.svg: Added.
4614        * svg-tests/W3C-SVG-1.1/filters-composite-02-b-expected.txt: Added.
4615        * svg-tests/W3C-SVG-1.1/filters-composite-02-b-w3c.png: Added.
4616        * svg-tests/W3C-SVG-1.1/filters-composite-02-b.svg: Added.
4617        * svg-tests/W3C-SVG-1.1/filters-comptran-01-b-w3c.png: Added.
4618        * svg-tests/W3C-SVG-1.1/filters-comptran-01-b.svg-disabled: Added.
4619        * svg-tests/W3C-SVG-1.1/filters-conv-01-f-expected.txt: Added.
4620        * svg-tests/W3C-SVG-1.1/filters-conv-01-f-w3c.png: Added.
4621        * svg-tests/W3C-SVG-1.1/filters-conv-01-f.svg: Added.
4622        * svg-tests/W3C-SVG-1.1/filters-diffuse-01-f-expected.txt: Added.
4623        * svg-tests/W3C-SVG-1.1/filters-diffuse-01-f-w3c.png: Added.
4624        * svg-tests/W3C-SVG-1.1/filters-diffuse-01-f.svg: Added.
4625        * svg-tests/W3C-SVG-1.1/filters-displace-01-f-expected.txt: Added.
4626        * svg-tests/W3C-SVG-1.1/filters-displace-01-f-w3c.png: Added.
4627        * svg-tests/W3C-SVG-1.1/filters-displace-01-f.svg: Added.
4628        * svg-tests/W3C-SVG-1.1/filters-example-01-b-expected.txt: Added.
4629        * svg-tests/W3C-SVG-1.1/filters-example-01-b-w3c.png: Added.
4630        * svg-tests/W3C-SVG-1.1/filters-example-01-b.svg: Added.
4631        * svg-tests/W3C-SVG-1.1/filters-gauss-01-b-expected.txt: Added.
4632        * svg-tests/W3C-SVG-1.1/filters-gauss-01-b-w3c.png: Added.
4633        * svg-tests/W3C-SVG-1.1/filters-gauss-01-b.svg: Added.
4634        * svg-tests/W3C-SVG-1.1/filters-image-01-b-expected.txt: Added.
4635        * svg-tests/W3C-SVG-1.1/filters-image-01-b-w3c.png: Added.
4636        * svg-tests/W3C-SVG-1.1/filters-image-01-b.svg: Added.
4637        * svg-tests/W3C-SVG-1.1/filters-light-01-f-expected.txt: Added.
4638        * svg-tests/W3C-SVG-1.1/filters-light-01-f-w3c.png: Added.
4639        * svg-tests/W3C-SVG-1.1/filters-light-01-f.svg: Added.
4640        * svg-tests/W3C-SVG-1.1/filters-morph-01-f-expected.txt: Added.
4641        * svg-tests/W3C-SVG-1.1/filters-morph-01-f-w3c.png: Added.
4642        * svg-tests/W3C-SVG-1.1/filters-morph-01-f.svg: Added.
4643        * svg-tests/W3C-SVG-1.1/filters-offset-01-b-expected.txt: Added.
4644        * svg-tests/W3C-SVG-1.1/filters-offset-01-b-w3c.png: Added.
4645        * svg-tests/W3C-SVG-1.1/filters-offset-01-b.svg: Added.
4646        * svg-tests/W3C-SVG-1.1/filters-specular-01-f-expected.txt: Added.
4647        * svg-tests/W3C-SVG-1.1/filters-specular-01-f-w3c.png: Added.
4648        * svg-tests/W3C-SVG-1.1/filters-specular-01-f.svg: Added.
4649        * svg-tests/W3C-SVG-1.1/filters-tile-01-b-expected.txt: Added.
4650        * svg-tests/W3C-SVG-1.1/filters-tile-01-b-w3c.png: Added.
4651        * svg-tests/W3C-SVG-1.1/filters-tile-01-b.svg: Added.
4652        * svg-tests/W3C-SVG-1.1/filters-turb-01-f-w3c.png: Added.
4653        * svg-tests/W3C-SVG-1.1/filters-turb-01-f.svg-disabled: Added.
4654        * svg-tests/W3C-SVG-1.1/fonts-elem-01-t-expected.txt: Added.
4655        * svg-tests/W3C-SVG-1.1/fonts-elem-01-t-w3c.png: Added.
4656        * svg-tests/W3C-SVG-1.1/fonts-elem-01-t.svg: Added.
4657        * svg-tests/W3C-SVG-1.1/fonts-elem-02-t-expected.txt: Added.
4658        * svg-tests/W3C-SVG-1.1/fonts-elem-02-t-w3c.png: Added.
4659        * svg-tests/W3C-SVG-1.1/fonts-elem-02-t.svg: Added.
4660        * svg-tests/W3C-SVG-1.1/fonts-elem-03-b-expected.txt: Added.
4661        * svg-tests/W3C-SVG-1.1/fonts-elem-03-b-w3c.png: Added.
4662        * svg-tests/W3C-SVG-1.1/fonts-elem-03-b.svg: Added.
4663        * svg-tests/W3C-SVG-1.1/fonts-elem-04-b-expected.txt: Added.
4664        * svg-tests/W3C-SVG-1.1/fonts-elem-04-b-w3c.png: Added.
4665        * svg-tests/W3C-SVG-1.1/fonts-elem-04-b.svg: Added.
4666        * svg-tests/W3C-SVG-1.1/interact-cursor-01-f-expected.txt: Added.
4667        * svg-tests/W3C-SVG-1.1/interact-cursor-01-f-w3c.png: Added.
4668        * svg-tests/W3C-SVG-1.1/interact-cursor-01-f.svg: Added.
4669        * svg-tests/W3C-SVG-1.1/interact-dom-01-b-expected.txt: Added.
4670        * svg-tests/W3C-SVG-1.1/interact-dom-01-b-w3c.png: Added.
4671        * svg-tests/W3C-SVG-1.1/interact-dom-01-b.svg: Added.
4672        * svg-tests/W3C-SVG-1.1/interact-events-01-b-expected.txt: Added.
4673        * svg-tests/W3C-SVG-1.1/interact-events-01-b-w3c.png: Added.
4674        * svg-tests/W3C-SVG-1.1/interact-events-01-b.svg: Added.
4675        * svg-tests/W3C-SVG-1.1/interact-order-01-b-expected.txt: Added.
4676        * svg-tests/W3C-SVG-1.1/interact-order-01-b-w3c.png: Added.
4677        * svg-tests/W3C-SVG-1.1/interact-order-01-b.svg: Added.
4678        * svg-tests/W3C-SVG-1.1/interact-order-02-b-expected.txt: Added.
4679        * svg-tests/W3C-SVG-1.1/interact-order-02-b-w3c.png: Added.
4680        * svg-tests/W3C-SVG-1.1/interact-order-02-b.svg: Added.
4681        * svg-tests/W3C-SVG-1.1/interact-order-03-b-expected.txt: Added.
4682        * svg-tests/W3C-SVG-1.1/interact-order-03-b-w3c.png: Added.
4683        * svg-tests/W3C-SVG-1.1/interact-order-03-b.svg: Added.
4684        * svg-tests/W3C-SVG-1.1/interact-zoom-01-t-expected.txt: Added.
4685        * svg-tests/W3C-SVG-1.1/interact-zoom-01-t-w3c.png: Added.
4686        * svg-tests/W3C-SVG-1.1/interact-zoom-01-t.svg: Added.
4687        * svg-tests/W3C-SVG-1.1/linking-a-01-b-expected.txt: Added.
4688        * svg-tests/W3C-SVG-1.1/linking-a-01-b-w3c.png: Added.
4689        * svg-tests/W3C-SVG-1.1/linking-a-01-b.svg: Added.
4690        * svg-tests/W3C-SVG-1.1/linking-a-02-b-expected.txt: Added.
4691        * svg-tests/W3C-SVG-1.1/linking-a-02-b-w3c.png: Added.
4692        * svg-tests/W3C-SVG-1.1/linking-a-02-b.svg: Added.
4693        * svg-tests/W3C-SVG-1.1/linking-a-03-b-expected.txt: Added.
4694        * svg-tests/W3C-SVG-1.1/linking-a-03-b-w3c.png: Added.
4695        * svg-tests/W3C-SVG-1.1/linking-a-03-b.svg: Added.
4696        * svg-tests/W3C-SVG-1.1/linking-a-04-t-expected.txt: Added.
4697        * svg-tests/W3C-SVG-1.1/linking-a-04-t-w3c.png: Added.
4698        * svg-tests/W3C-SVG-1.1/linking-a-04-t.svg: Added.
4699        * svg-tests/W3C-SVG-1.1/linking-uri-01-b-expected.txt: Added.
4700        * svg-tests/W3C-SVG-1.1/linking-uri-01-b-w3c.png: Added.
4701        * svg-tests/W3C-SVG-1.1/linking-uri-01-b.svg: Added.
4702        * svg-tests/W3C-SVG-1.1/linking-uri-02-b-expected.txt: Added.
4703        * svg-tests/W3C-SVG-1.1/linking-uri-02-b-w3c.png: Added.
4704        * svg-tests/W3C-SVG-1.1/linking-uri-02-b.svg: Added.
4705        * svg-tests/W3C-SVG-1.1/linking-uri-03-t-expected.txt: Added.
4706        * svg-tests/W3C-SVG-1.1/linking-uri-03-t-w3c.png: Added.
4707        * svg-tests/W3C-SVG-1.1/linking-uri-03-t.svg: Added.
4708        * svg-tests/W3C-SVG-1.1/masking-mask-01-b-expected.txt: Added.
4709        * svg-tests/W3C-SVG-1.1/masking-mask-01-b-w3c.png: Added.
4710        * svg-tests/W3C-SVG-1.1/masking-mask-01-b.svg: Added.
4711        * svg-tests/W3C-SVG-1.1/masking-opacity-01-b-expected.txt: Added.
4712        * svg-tests/W3C-SVG-1.1/masking-opacity-01-b-w3c.png: Added.
4713        * svg-tests/W3C-SVG-1.1/masking-opacity-01-b.svg: Added.
4714        * svg-tests/W3C-SVG-1.1/masking-path-01-b-expected.txt: Added.
4715        * svg-tests/W3C-SVG-1.1/masking-path-01-b-w3c.png: Added.
4716        * svg-tests/W3C-SVG-1.1/masking-path-01-b.svg: Added.
4717        * svg-tests/W3C-SVG-1.1/masking-path-02-b-expected.txt: Added.
4718        * svg-tests/W3C-SVG-1.1/masking-path-02-b-w3c.png: Added.
4719        * svg-tests/W3C-SVG-1.1/masking-path-02-b.svg: Added.
4720        * svg-tests/W3C-SVG-1.1/masking-path-03-b-expected.txt: Added.
4721        * svg-tests/W3C-SVG-1.1/masking-path-03-b-w3c.png: Added.
4722        * svg-tests/W3C-SVG-1.1/masking-path-03-b.svg: Added.
4723        * svg-tests/W3C-SVG-1.1/masking-path-04-b-expected.txt: Added.
4724        * svg-tests/W3C-SVG-1.1/masking-path-04-b-w3c.png: Added.
4725        * svg-tests/W3C-SVG-1.1/masking-path-04-b.svg: Added.
4726        * svg-tests/W3C-SVG-1.1/masking-path-05-f-expected.txt: Added.
4727        * svg-tests/W3C-SVG-1.1/masking-path-05-f-w3c.png: Added.
4728        * svg-tests/W3C-SVG-1.1/masking-path-05-f.svg: Added.
4729        * svg-tests/W3C-SVG-1.1/metadata-example-01-b-expected.txt: Added.
4730        * svg-tests/W3C-SVG-1.1/metadata-example-01-b-w3c.png: Added.
4731        * svg-tests/W3C-SVG-1.1/metadata-example-01-b.svg: Added.
4732        * svg-tests/W3C-SVG-1.1/painting-fill-01-t-expected.txt: Added.
4733        * svg-tests/W3C-SVG-1.1/painting-fill-01-t-w3c.png: Added.
4734        * svg-tests/W3C-SVG-1.1/painting-fill-01-t.svg: Added.
4735        * svg-tests/W3C-SVG-1.1/painting-fill-02-t-expected.txt: Added.
4736        * svg-tests/W3C-SVG-1.1/painting-fill-02-t-w3c.png: Added.
4737        * svg-tests/W3C-SVG-1.1/painting-fill-02-t.svg: Added.
4738        * svg-tests/W3C-SVG-1.1/painting-fill-03-t-expected.txt: Added.
4739        * svg-tests/W3C-SVG-1.1/painting-fill-03-t-w3c.png: Added.
4740        * svg-tests/W3C-SVG-1.1/painting-fill-03-t.svg: Added.
4741        * svg-tests/W3C-SVG-1.1/painting-fill-04-t-expected.txt: Added.
4742        * svg-tests/W3C-SVG-1.1/painting-fill-04-t-w3c.png: Added.
4743        * svg-tests/W3C-SVG-1.1/painting-fill-04-t.svg: Added.
4744        * svg-tests/W3C-SVG-1.1/painting-marker-01-f-expected.txt: Added.
4745        * svg-tests/W3C-SVG-1.1/painting-marker-01-f-w3c.png: Added.
4746        * svg-tests/W3C-SVG-1.1/painting-marker-01-f.svg: Added.
4747        * svg-tests/W3C-SVG-1.1/painting-marker-02-f-expected.txt: Added.
4748        * svg-tests/W3C-SVG-1.1/painting-marker-02-f-w3c.png: Added.
4749        * svg-tests/W3C-SVG-1.1/painting-marker-02-f.svg: Added.
4750        * svg-tests/W3C-SVG-1.1/painting-render-01-b-expected.txt: Added.
4751        * svg-tests/W3C-SVG-1.1/painting-render-01-b-w3c.png: Added.
4752        * svg-tests/W3C-SVG-1.1/painting-render-01-b.svg: Added.
4753        * svg-tests/W3C-SVG-1.1/painting-stroke-01-t-expected.txt: Added.
4754        * svg-tests/W3C-SVG-1.1/painting-stroke-01-t-w3c.png: Added.
4755        * svg-tests/W3C-SVG-1.1/painting-stroke-01-t.svg: Added.
4756        * svg-tests/W3C-SVG-1.1/painting-stroke-02-t-expected.txt: Added.
4757        * svg-tests/W3C-SVG-1.1/painting-stroke-02-t-w3c.png: Added.
4758        * svg-tests/W3C-SVG-1.1/painting-stroke-02-t.svg: Added.
4759        * svg-tests/W3C-SVG-1.1/painting-stroke-03-t-expected.txt: Added.
4760        * svg-tests/W3C-SVG-1.1/painting-stroke-03-t-w3c.png: Added.
4761        * svg-tests/W3C-SVG-1.1/painting-stroke-03-t.svg: Added.
4762        * svg-tests/W3C-SVG-1.1/painting-stroke-04-t-expected.txt: Added.
4763        * svg-tests/W3C-SVG-1.1/painting-stroke-04-t-w3c.png: Added.
4764        * svg-tests/W3C-SVG-1.1/painting-stroke-04-t.svg: Added.
4765        * svg-tests/W3C-SVG-1.1/paths-data-01-t-expected.txt: Added.
4766        * svg-tests/W3C-SVG-1.1/paths-data-01-t-w3c.png: Added.
4767        * svg-tests/W3C-SVG-1.1/paths-data-01-t.svg: Added.
4768        * svg-tests/W3C-SVG-1.1/paths-data-02-t-expected.txt: Added.
4769        * svg-tests/W3C-SVG-1.1/paths-data-02-t-w3c.png: Added.
4770        * svg-tests/W3C-SVG-1.1/paths-data-02-t.svg: Added.
4771        * svg-tests/W3C-SVG-1.1/paths-data-03-f-expected.txt: Added.
4772        * svg-tests/W3C-SVG-1.1/paths-data-03-f-w3c.png: Added.
4773        * svg-tests/W3C-SVG-1.1/paths-data-03-f.svg: Added.
4774        * svg-tests/W3C-SVG-1.1/paths-data-04-t-expected.txt: Added.
4775        * svg-tests/W3C-SVG-1.1/paths-data-04-t-w3c.png: Added.
4776        * svg-tests/W3C-SVG-1.1/paths-data-04-t.svg: Added.
4777        * svg-tests/W3C-SVG-1.1/paths-data-05-t-expected.txt: Added.
4778        * svg-tests/W3C-SVG-1.1/paths-data-05-t-w3c.png: Added.
4779        * svg-tests/W3C-SVG-1.1/paths-data-05-t.svg: Added.
4780        * svg-tests/W3C-SVG-1.1/paths-data-06-t-expected.txt: Added.
4781        * svg-tests/W3C-SVG-1.1/paths-data-06-t-w3c.png: Added.
4782        * svg-tests/W3C-SVG-1.1/paths-data-06-t.svg: Added.
4783        * svg-tests/W3C-SVG-1.1/paths-data-07-t-expected.txt: Added.
4784        * svg-tests/W3C-SVG-1.1/paths-data-07-t-w3c.png: Added.
4785        * svg-tests/W3C-SVG-1.1/paths-data-07-t.svg: Added.
4786        * svg-tests/W3C-SVG-1.1/pservers-grad-01-b-expected.txt: Added.
4787        * svg-tests/W3C-SVG-1.1/pservers-grad-01-b-w3c.png: Added.
4788        * svg-tests/W3C-SVG-1.1/pservers-grad-01-b.svg: Added.
4789        * svg-tests/W3C-SVG-1.1/pservers-grad-02-b-expected.txt: Added.
4790        * svg-tests/W3C-SVG-1.1/pservers-grad-02-b-w3c.png: Added.
4791        * svg-tests/W3C-SVG-1.1/pservers-grad-02-b.svg: Added.
4792        * svg-tests/W3C-SVG-1.1/pservers-grad-03-b-expected.txt: Added.
4793        * svg-tests/W3C-SVG-1.1/pservers-grad-03-b-w3c.png: Added.
4794        * svg-tests/W3C-SVG-1.1/pservers-grad-03-b.svg: Added.
4795        * svg-tests/W3C-SVG-1.1/pservers-grad-04-b-expected.txt: Added.
4796        * svg-tests/W3C-SVG-1.1/pservers-grad-04-b-w3c.png: Added.
4797        * svg-tests/W3C-SVG-1.1/pservers-grad-04-b.svg: Added.
4798        * svg-tests/W3C-SVG-1.1/pservers-grad-05-b-expected.txt: Added.
4799        * svg-tests/W3C-SVG-1.1/pservers-grad-05-b-w3c.png: Added.
4800        * svg-tests/W3C-SVG-1.1/pservers-grad-05-b.svg: Added.
4801        * svg-tests/W3C-SVG-1.1/pservers-grad-06-b-expected.txt: Added.
4802        * svg-tests/W3C-SVG-1.1/pservers-grad-06-b-w3c.png: Added.
4803        * svg-tests/W3C-SVG-1.1/pservers-grad-06-b.svg: Added.
4804        * svg-tests/W3C-SVG-1.1/pservers-grad-07-b-expected.txt: Added.
4805        * svg-tests/W3C-SVG-1.1/pservers-grad-07-b-w3c.png: Added.
4806        * svg-tests/W3C-SVG-1.1/pservers-grad-07-b.svg: Added.
4807        * svg-tests/W3C-SVG-1.1/pservers-grad-08-b-expected.txt: Added.
4808        * svg-tests/W3C-SVG-1.1/pservers-grad-08-b-w3c.png: Added.
4809        * svg-tests/W3C-SVG-1.1/pservers-grad-08-b.svg: Added.
4810        * svg-tests/W3C-SVG-1.1/pservers-grad-09-b-expected.txt: Added.
4811        * svg-tests/W3C-SVG-1.1/pservers-grad-09-b-w3c.png: Added.
4812        * svg-tests/W3C-SVG-1.1/pservers-grad-09-b.svg: Added.
4813        * svg-tests/W3C-SVG-1.1/pservers-grad-10-b-expected.txt: Added.
4814        * svg-tests/W3C-SVG-1.1/pservers-grad-10-b-w3c.png: Added.
4815        * svg-tests/W3C-SVG-1.1/pservers-grad-10-b.svg: Added.
4816        * svg-tests/W3C-SVG-1.1/pservers-grad-11-b-expected.txt: Added.
4817        * svg-tests/W3C-SVG-1.1/pservers-grad-11-b-w3c.png: Added.
4818        * svg-tests/W3C-SVG-1.1/pservers-grad-11-b.svg: Added.
4819        * svg-tests/W3C-SVG-1.1/pservers-grad-12-b-expected.txt: Added.
4820        * svg-tests/W3C-SVG-1.1/pservers-grad-12-b-w3c.png: Added.
4821        * svg-tests/W3C-SVG-1.1/pservers-grad-12-b.svg: Added.
4822        * svg-tests/W3C-SVG-1.1/pservers-pattern-01-b-expected.txt: Added.
4823        * svg-tests/W3C-SVG-1.1/pservers-pattern-01-b-w3c.png: Added.
4824        * svg-tests/W3C-SVG-1.1/pservers-pattern-01-b.svg: Added.
4825        * svg-tests/W3C-SVG-1.1/render-elems-01-t-expected.txt: Added.
4826        * svg-tests/W3C-SVG-1.1/render-elems-01-t-w3c.png: Added.
4827        * svg-tests/W3C-SVG-1.1/render-elems-01-t.svg: Added.
4828        * svg-tests/W3C-SVG-1.1/render-elems-02-t-expected.txt: Added.
4829        * svg-tests/W3C-SVG-1.1/render-elems-02-t-w3c.png: Added.
4830        * svg-tests/W3C-SVG-1.1/render-elems-02-t.svg: Added.
4831        * svg-tests/W3C-SVG-1.1/render-elems-03-t-expected.txt: Added.
4832        * svg-tests/W3C-SVG-1.1/render-elems-03-t-w3c.png: Added.
4833        * svg-tests/W3C-SVG-1.1/render-elems-03-t.svg: Added.
4834        * svg-tests/W3C-SVG-1.1/render-elems-06-t-expected.txt: Added.
4835        * svg-tests/W3C-SVG-1.1/render-elems-06-t-w3c.png: Added.
4836        * svg-tests/W3C-SVG-1.1/render-elems-06-t.svg: Added.
4837        * svg-tests/W3C-SVG-1.1/render-elems-07-t-expected.txt: Added.
4838        * svg-tests/W3C-SVG-1.1/render-elems-07-t-w3c.png: Added.
4839        * svg-tests/W3C-SVG-1.1/render-elems-07-t.svg: Added.
4840        * svg-tests/W3C-SVG-1.1/render-elems-08-t-expected.txt: Added.
4841        * svg-tests/W3C-SVG-1.1/render-elems-08-t-w3c.png: Added.
4842        * svg-tests/W3C-SVG-1.1/render-elems-08-t.svg: Added.
4843        * svg-tests/W3C-SVG-1.1/render-groups-01-b-expected.txt: Added.
4844        * svg-tests/W3C-SVG-1.1/render-groups-01-b-w3c.png: Added.
4845        * svg-tests/W3C-SVG-1.1/render-groups-01-b.svg: Added.
4846        * svg-tests/W3C-SVG-1.1/render-groups-03-t-expected.txt: Added.
4847        * svg-tests/W3C-SVG-1.1/render-groups-03-t-w3c.png: Added.
4848        * svg-tests/W3C-SVG-1.1/render-groups-03-t.svg: Added.
4849        * svg-tests/W3C-SVG-1.1/script-handle-01-b-expected.txt: Added.
4850        * svg-tests/W3C-SVG-1.1/script-handle-01-b-w3c.png: Added.
4851        * svg-tests/W3C-SVG-1.1/script-handle-01-b.svg: Added.
4852        * svg-tests/W3C-SVG-1.1/script-handle-02-b-expected.txt: Added.
4853        * svg-tests/W3C-SVG-1.1/script-handle-02-b-w3c.png: Added.
4854        * svg-tests/W3C-SVG-1.1/script-handle-02-b.svg: Added.
4855        * svg-tests/W3C-SVG-1.1/script-handle-03-b-w3c.png: Added.
4856        * svg-tests/W3C-SVG-1.1/script-handle-03-b.svg-disabled: Added.
4857        * svg-tests/W3C-SVG-1.1/script-handle-04-b-w3c.png: Added.
4858        * svg-tests/W3C-SVG-1.1/script-handle-04-b.svg-disabled: Added.
4859        * svg-tests/W3C-SVG-1.1/shapes-circle-01-t-expected.txt: Added.
4860        * svg-tests/W3C-SVG-1.1/shapes-circle-01-t-w3c.png: Added.
4861        * svg-tests/W3C-SVG-1.1/shapes-circle-01-t.svg: Added.
4862        * svg-tests/W3C-SVG-1.1/shapes-ellipse-01-t-expected.txt: Added.
4863        * svg-tests/W3C-SVG-1.1/shapes-ellipse-01-t-w3c.png: Added.
4864        * svg-tests/W3C-SVG-1.1/shapes-ellipse-01-t.svg: Added.
4865        * svg-tests/W3C-SVG-1.1/shapes-line-01-t-expected.txt: Added.
4866        * svg-tests/W3C-SVG-1.1/shapes-line-01-t-w3c.png: Added.
4867        * svg-tests/W3C-SVG-1.1/shapes-line-01-t.svg: Added.
4868        * svg-tests/W3C-SVG-1.1/shapes-polygon-01-t-expected.txt: Added.
4869        * svg-tests/W3C-SVG-1.1/shapes-polygon-01-t-w3c.png: Added.
4870        * svg-tests/W3C-SVG-1.1/shapes-polygon-01-t.svg: Added.
4871        * svg-tests/W3C-SVG-1.1/shapes-polyline-01-t-expected.txt: Added.
4872        * svg-tests/W3C-SVG-1.1/shapes-polyline-01-t-w3c.png: Added.
4873        * svg-tests/W3C-SVG-1.1/shapes-polyline-01-t.svg: Added.
4874        * svg-tests/W3C-SVG-1.1/shapes-rect-01-t-expected.txt: Added.
4875        * svg-tests/W3C-SVG-1.1/shapes-rect-01-t-w3c.png: Added.
4876        * svg-tests/W3C-SVG-1.1/shapes-rect-01-t.svg: Added.
4877        * svg-tests/W3C-SVG-1.1/struct-cond-01-t-expected.txt: Added.
4878        * svg-tests/W3C-SVG-1.1/struct-cond-01-t-w3c.png: Added.
4879        * svg-tests/W3C-SVG-1.1/struct-cond-01-t.svg: Added.
4880        * svg-tests/W3C-SVG-1.1/struct-cond-02-t-expected.txt: Added.
4881        * svg-tests/W3C-SVG-1.1/struct-cond-02-t-w3c.png: Added.
4882        * svg-tests/W3C-SVG-1.1/struct-cond-02-t.svg: Added.
4883        * svg-tests/W3C-SVG-1.1/struct-defs-01-t-expected.txt: Added.
4884        * svg-tests/W3C-SVG-1.1/struct-defs-01-t-w3c.png: Added.
4885        * svg-tests/W3C-SVG-1.1/struct-defs-01-t.svg: Added.
4886        * svg-tests/W3C-SVG-1.1/struct-dom-01-b-w3c.png: Added.
4887        * svg-tests/W3C-SVG-1.1/struct-dom-01-b.svg-disabled: Added.
4888        * svg-tests/W3C-SVG-1.1/struct-dom-02-b-w3c.png: Added.
4889        * svg-tests/W3C-SVG-1.1/struct-dom-02-b.svg-disabled: Added.
4890        * svg-tests/W3C-SVG-1.1/struct-dom-03-b-w3c.png: Added.
4891        * svg-tests/W3C-SVG-1.1/struct-dom-03-b.svg-disabled: Added.
4892        * svg-tests/W3C-SVG-1.1/struct-dom-04-b-w3c.png: Added.
4893        * svg-tests/W3C-SVG-1.1/struct-dom-04-b.svg-disabled: Added.
4894        * svg-tests/W3C-SVG-1.1/struct-dom-05-b-w3c.png: Added.
4895        * svg-tests/W3C-SVG-1.1/struct-dom-05-b.svg-disabled: Added.
4896        * svg-tests/W3C-SVG-1.1/struct-dom-06-b-w3c.png: Added.
4897        * svg-tests/W3C-SVG-1.1/struct-dom-06-b.svg-disabled: Added.
4898        * svg-tests/W3C-SVG-1.1/struct-frag-01-t-expected.txt: Added.
4899        * svg-tests/W3C-SVG-1.1/struct-frag-01-t-w3c.png: Added.
4900        * svg-tests/W3C-SVG-1.1/struct-frag-01-t.svg: Added.
4901        * svg-tests/W3C-SVG-1.1/struct-group-01-t-expected.txt: Added.
4902        * svg-tests/W3C-SVG-1.1/struct-group-01-t-w3c.png: Added.
4903        * svg-tests/W3C-SVG-1.1/struct-group-01-t.svg: Added.
4904        * svg-tests/W3C-SVG-1.1/struct-group-02-b-expected.txt: Added.
4905        * svg-tests/W3C-SVG-1.1/struct-group-02-b-w3c.png: Added.
4906        * svg-tests/W3C-SVG-1.1/struct-group-02-b.svg: Added.
4907        * svg-tests/W3C-SVG-1.1/struct-image-01-t-expected.txt: Added.
4908        * svg-tests/W3C-SVG-1.1/struct-image-01-t-w3c.png: Added.
4909        * svg-tests/W3C-SVG-1.1/struct-image-01-t.svg: Added.
4910        * svg-tests/W3C-SVG-1.1/struct-image-02-b-expected.txt: Added.
4911        * svg-tests/W3C-SVG-1.1/struct-image-02-b-w3c.png: Added.
4912        * svg-tests/W3C-SVG-1.1/struct-image-02-b.svg: Added.
4913        * svg-tests/W3C-SVG-1.1/struct-image-03-t-expected.txt: Added.
4914        * svg-tests/W3C-SVG-1.1/struct-image-03-t-w3c.png: Added.
4915        * svg-tests/W3C-SVG-1.1/struct-image-03-t.svg: Added.
4916        * svg-tests/W3C-SVG-1.1/struct-image-04-t-expected.txt: Added.
4917        * svg-tests/W3C-SVG-1.1/struct-image-04-t-w3c.png: Added.
4918        * svg-tests/W3C-SVG-1.1/struct-image-04-t.svg: Added.
4919        * svg-tests/W3C-SVG-1.1/struct-image-05-b-expected.txt: Added.
4920        * svg-tests/W3C-SVG-1.1/struct-image-05-b-w3c.png: Added.
4921        * svg-tests/W3C-SVG-1.1/struct-image-05-b.svg: Added.
4922        * svg-tests/W3C-SVG-1.1/struct-symbol-01-b-expected.txt: Added.
4923        * svg-tests/W3C-SVG-1.1/struct-symbol-01-b-w3c.png: Added.
4924        * svg-tests/W3C-SVG-1.1/struct-symbol-01-b.svg: Added.
4925        * svg-tests/W3C-SVG-1.1/styling-css-01-b-expected.txt: Added.
4926        * svg-tests/W3C-SVG-1.1/styling-css-01-b-w3c.png: Added.
4927        * svg-tests/W3C-SVG-1.1/styling-css-01-b.svg: Added.
4928        * svg-tests/W3C-SVG-1.1/styling-css-02-b-expected.txt: Added.
4929        * svg-tests/W3C-SVG-1.1/styling-css-02-b-w3c.png: Added.
4930        * svg-tests/W3C-SVG-1.1/styling-css-02-b.svg: Added.
4931        * svg-tests/W3C-SVG-1.1/styling-css-03-b-expected.txt: Added.
4932        * svg-tests/W3C-SVG-1.1/styling-css-03-b-w3c.png: Added.
4933        * svg-tests/W3C-SVG-1.1/styling-css-03-b.svg: Added.
4934        * svg-tests/W3C-SVG-1.1/styling-inherit-01-b-expected.txt: Added.
4935        * svg-tests/W3C-SVG-1.1/styling-inherit-01-b-w3c.png: Added.
4936        * svg-tests/W3C-SVG-1.1/styling-inherit-01-b.svg: Added.
4937        * svg-tests/W3C-SVG-1.1/styling-pres-01-t-expected.txt: Added.
4938        * svg-tests/W3C-SVG-1.1/styling-pres-01-t-w3c.png: Added.
4939        * svg-tests/W3C-SVG-1.1/styling-pres-01-t.svg: Added.
4940        * svg-tests/W3C-SVG-1.1/text-align-01-b-expected.txt: Added.
4941        * svg-tests/W3C-SVG-1.1/text-align-01-b-w3c.png: Added.
4942        * svg-tests/W3C-SVG-1.1/text-align-01-b.svg: Added.
4943        * svg-tests/W3C-SVG-1.1/text-align-02-b-expected.txt: Added.
4944        * svg-tests/W3C-SVG-1.1/text-align-02-b-w3c.png: Added.
4945        * svg-tests/W3C-SVG-1.1/text-align-02-b.svg: Added.
4946        * svg-tests/W3C-SVG-1.1/text-align-03-b-expected.txt: Added.
4947        * svg-tests/W3C-SVG-1.1/text-align-03-b-w3c.png: Added.
4948        * svg-tests/W3C-SVG-1.1/text-align-03-b.svg: Added.
4949        * svg-tests/W3C-SVG-1.1/text-align-04-b-expected.txt: Added.
4950        * svg-tests/W3C-SVG-1.1/text-align-04-b-w3c.png: Added.
4951        * svg-tests/W3C-SVG-1.1/text-align-04-b.svg: Added.
4952        * svg-tests/W3C-SVG-1.1/text-align-05-b-expected.txt: Added.
4953        * svg-tests/W3C-SVG-1.1/text-align-05-b-w3c.png: Added.
4954        * svg-tests/W3C-SVG-1.1/text-align-05-b.svg: Added.
4955        * svg-tests/W3C-SVG-1.1/text-align-06-b-expected.txt: Added.
4956        * svg-tests/W3C-SVG-1.1/text-align-06-b-w3c.png: Added.
4957        * svg-tests/W3C-SVG-1.1/text-align-06-b.svg: Added.
4958        * svg-tests/W3C-SVG-1.1/text-altglyph-01-b-expected.txt: Added.
4959        * svg-tests/W3C-SVG-1.1/text-altglyph-01-b-w3c.png: Added.
4960        * svg-tests/W3C-SVG-1.1/text-altglyph-01-b.svg: Added.
4961        * svg-tests/W3C-SVG-1.1/text-deco-01-b-expected.txt: Added.
4962        * svg-tests/W3C-SVG-1.1/text-deco-01-b-w3c.png: Added.
4963        * svg-tests/W3C-SVG-1.1/text-deco-01-b.svg: Added.
4964        * svg-tests/W3C-SVG-1.1/text-fonts-01-t-expected.txt: Added.
4965        * svg-tests/W3C-SVG-1.1/text-fonts-01-t-w3c.png: Added.
4966        * svg-tests/W3C-SVG-1.1/text-fonts-01-t.svg: Added.
4967        * svg-tests/W3C-SVG-1.1/text-fonts-02-t-expected.txt: Added.
4968        * svg-tests/W3C-SVG-1.1/text-fonts-02-t-w3c.png: Added.
4969        * svg-tests/W3C-SVG-1.1/text-fonts-02-t.svg: Added.
4970        * svg-tests/W3C-SVG-1.1/text-intro-01-t-expected.txt: Added.
4971        * svg-tests/W3C-SVG-1.1/text-intro-01-t-w3c.png: Added.
4972        * svg-tests/W3C-SVG-1.1/text-intro-01-t.svg: Added.
4973        * svg-tests/W3C-SVG-1.1/text-intro-02-b-expected.txt: Added.
4974        * svg-tests/W3C-SVG-1.1/text-intro-02-b-w3c.png: Added.
4975        * svg-tests/W3C-SVG-1.1/text-intro-02-b.svg: Added.
4976        * svg-tests/W3C-SVG-1.1/text-intro-03-b-expected.txt: Added.
4977        * svg-tests/W3C-SVG-1.1/text-intro-03-b-w3c.png: Added.
4978        * svg-tests/W3C-SVG-1.1/text-intro-03-b.svg: Added.
4979        * svg-tests/W3C-SVG-1.1/text-intro-04-t-expected.txt: Added.
4980        * svg-tests/W3C-SVG-1.1/text-intro-04-t-w3c.png: Added.
4981        * svg-tests/W3C-SVG-1.1/text-intro-04-t.svg: Added.
4982        * svg-tests/W3C-SVG-1.1/text-path-01-b-expected.txt: Added.
4983        * svg-tests/W3C-SVG-1.1/text-path-01-b-w3c.png: Added.
4984        * svg-tests/W3C-SVG-1.1/text-path-01-b.svg: Added.
4985        * svg-tests/W3C-SVG-1.1/text-spacing-01-b-expected.txt: Added.
4986        * svg-tests/W3C-SVG-1.1/text-spacing-01-b-w3c.png: Added.
4987        * svg-tests/W3C-SVG-1.1/text-spacing-01-b.svg: Added.
4988        * svg-tests/W3C-SVG-1.1/text-text-01-b-expected.txt: Added.
4989        * svg-tests/W3C-SVG-1.1/text-text-01-b-w3c.png: Added.
4990        * svg-tests/W3C-SVG-1.1/text-text-01-b.svg: Added.
4991        * svg-tests/W3C-SVG-1.1/text-text-03-b-expected.txt: Added.
4992        * svg-tests/W3C-SVG-1.1/text-text-03-b-w3c.png: Added.
4993        * svg-tests/W3C-SVG-1.1/text-text-03-b.svg: Added.
4994        * svg-tests/W3C-SVG-1.1/text-tref-01-b-expected.txt: Added.
4995        * svg-tests/W3C-SVG-1.1/text-tref-01-b-w3c.png: Added.
4996        * svg-tests/W3C-SVG-1.1/text-tref-01-b.svg: Added.
4997        * svg-tests/W3C-SVG-1.1/text-tselect-01-b-expected.txt: Added.
4998        * svg-tests/W3C-SVG-1.1/text-tselect-01-b-w3c.png: Added.
4999        * svg-tests/W3C-SVG-1.1/text-tselect-01-b.svg: Added.
5000        * svg-tests/W3C-SVG-1.1/text-tspan-01-b-expected.txt: Added.
5001        * svg-tests/W3C-SVG-1.1/text-tspan-01-b-w3c.png: Added.
5002        * svg-tests/W3C-SVG-1.1/text-tspan-01-b.svg: Added.
5003        * svg-tests/W3C-SVG-1.1/text-ws-01-t-expected.txt: Added.
5004        * svg-tests/W3C-SVG-1.1/text-ws-01-t-w3c.png: Added.
5005        * svg-tests/W3C-SVG-1.1/text-ws-01-t.svg: Added.
5006        * svg-tests/W3C-SVG-1.1/text-ws-02-t-expected.txt: Added.
5007        * svg-tests/W3C-SVG-1.1/text-ws-02-t-w3c.png: Added.
5008        * svg-tests/W3C-SVG-1.1/text-ws-02-t.svg: Added.
5009
50102005-08-07  Anders Carlsson  <andersca@mac.com>
5011
5012        Reviewed by darin.
5013
5014        * khtml/ecma/kjs_dom.cpp:
5015        * khtml/ecma/kjs_dom.h:
5016        (KJS::DOMNodeList::):
5017	Add Length and Item to DOMNodeList.
5018	
5019        * khtml/ecma/kjs_navigator.cpp:
5020        (KJS::Plugins::getValueProperty):
5021        (KJS::MimeTypes::getValueProperty):
5022	Fix capitalization.
5023	
50242005-08-04  Maciej Stachowiak  <mjs@apple.com>
5025
5026        Reviewed by Darin.
5027
5028	Change over to the new PropertySlot mechanism for property
5029	lookup. This allows the elimination of hasOwnProperty methods. I
5030	also did a bunch of code cleanup and regularization of the various
5031	property lookup methods.
5032	
5033        Test cases added: Added a test case for a bug I found along the way.
5034        * layout-tests/fast/js/string-index-overflow.html:
5035	* layout-tests/fast/js/string-index-overflow-expected.txt:
5036	
5037        * khtml/ecma/kjs_binding.cpp:
5038        (KJS::ScriptInterpreter::createLanguageInstanceForValue):
5039        * khtml/ecma/kjs_binding.h:
5040        * khtml/ecma/kjs_css.cpp:
5041        (KJS::DOMCSSStyleDeclaration::indexGetter):
5042        (KJS::DOMCSSStyleDeclaration::cssPropertyGetter):
5043        (KJS::DOMCSSStyleDeclaration::getOwnPropertySlot):
5044        (KJS::DOMCSSStyleDeclaration::getValueProperty):
5045        (KJS::DOMStyleSheet::getOwnPropertySlot):
5046        (KJS::DOMStyleSheetList::getValueProperty):
5047        (KJS::DOMStyleSheetList::indexGetter):
5048        (KJS::DOMStyleSheetList::nameGetter):
5049        (KJS::DOMStyleSheetList::getOwnPropertySlot):
5050        (KJS::DOMMediaList::getValueProperty):
5051        (KJS::DOMMediaList::indexGetter):
5052        (KJS::DOMMediaList::getOwnPropertySlot):
5053        (KJS::DOMCSSStyleSheet::getValueProperty):
5054        (KJS::DOMCSSStyleSheet::getOwnPropertySlot):
5055        (KJS::DOMCSSRuleList::getValueProperty):
5056        (KJS::DOMCSSRuleList::indexGetter):
5057        (KJS::DOMCSSRuleList::getOwnPropertySlot):
5058        (KJS::DOMCSSRule::getOwnPropertySlot):
5059        (KJS::CSSRuleConstructor::getOwnPropertySlot):
5060        (KJS::DOMCSSValue::getValueProperty):
5061        (KJS::DOMCSSValue::getOwnPropertySlot):
5062        (KJS::CSSValueConstructor::getOwnPropertySlot):
5063        (KJS::DOMCSSPrimitiveValue::getValueProperty):
5064        (KJS::DOMCSSPrimitiveValue::getOwnPropertySlot):
5065        (KJS::CSSPrimitiveValueConstructor::getOwnPropertySlot):
5066        (KJS::DOMCSSValueList::getValueProperty):
5067        (KJS::DOMCSSValueList::indexGetter):
5068        (KJS::DOMCSSValueList::getOwnPropertySlot):
5069        (KJS::DOMRGBColor::getOwnPropertySlot):
5070        (KJS::DOMRect::getOwnPropertySlot):
5071        (KJS::DOMCounter::getOwnPropertySlot):
5072        * khtml/ecma/kjs_css.h:
5073        (KJS::DOMCSSStyleDeclaration::):
5074        (KJS::DOMCSSStyleSheet::):
5075        (KJS::DOMCSSRule::):
5076        (KJS::DOMCSSValueList::):
5077        * khtml/ecma/kjs_dom.cpp:
5078        (KJS::DOMNode::getOwnPropertySlot):
5079        (KJS::):
5080        (KJS::DOMNodeList::getValueProperty):
5081        (KJS::DOMNodeList::indexGetter):
5082        (KJS::DOMNodeList::nameGetter):
5083        (KJS::DOMNodeList::getOwnPropertySlot):
5084        (KJS::DOMNodeList::call):
5085        (KJS::DOMAttr::getOwnPropertySlot):
5086        (KJS::DOMDocument::getOwnPropertySlot):
5087        (KJS::DOMElement::getValueProperty):
5088        (KJS::DOMElement::attributeGetter):
5089        (KJS::DOMElement::getOwnPropertySlot):
5090        (KJS::DOMDocumentType::getOwnPropertySlot):
5091        (KJS::DOMNamedNodeMap::lengthGetter):
5092        (KJS::DOMNamedNodeMap::indexGetter):
5093        (KJS::DOMNamedNodeMap::getOwnPropertySlot):
5094        (KJS::DOMProcessingInstruction::getOwnPropertySlot):
5095        (KJS::DOMNotation::getOwnPropertySlot):
5096        (KJS::DOMEntity::getOwnPropertySlot):
5097        (KJS::NodeConstructor::getOwnPropertySlot):
5098        (KJS::DOMExceptionConstructor::getOwnPropertySlot):
5099        (KJS::DOMNamedNodesCollection::lengthGetter):
5100        (KJS::DOMNamedNodesCollection::indexGetter):
5101        (KJS::DOMNamedNodesCollection::getOwnPropertySlot):
5102        (KJS::DOMCharacterData::getOwnPropertySlot):
5103        * khtml/ecma/kjs_dom.h:
5104        * khtml/ecma/kjs_events.cpp:
5105        (KJS::EventConstructor::getOwnPropertySlot):
5106        (KJS::DOMEvent::getOwnPropertySlot):
5107        (KJS::EventExceptionConstructor::getOwnPropertySlot):
5108        (KJS::DOMUIEvent::getOwnPropertySlot):
5109        (KJS::DOMMouseEvent::getOwnPropertySlot):
5110        (KJS::DOMKeyboardEvent::getOwnPropertySlot):
5111        (KJS::MutationEventConstructor::getOwnPropertySlot):
5112        (KJS::DOMMutationEvent::getOwnPropertySlot):
5113        (KJS::DOMWheelEvent::getOwnPropertySlot):
5114        (KJS::Clipboard::getOwnPropertySlot):
5115        * khtml/ecma/kjs_events.h:
5116        * khtml/ecma/kjs_html.cpp:
5117        (KJS::HTMLDocument::namedItemGetter):
5118        (KJS::HTMLDocument::getValueProperty):
5119        (KJS::HTMLDocument::getOwnPropertySlot):
5120        (KJS::HTMLElement::formIndexGetter):
5121        (KJS::HTMLElement::formNameGetter):
5122        (KJS::HTMLElement::selectIndexGetter):
5123        (KJS::HTMLElement::framesetNameGetter):
5124        (KJS::HTMLElement::frameWindowPropertyGetter):
5125        (KJS::HTMLElement::runtimeObjectGetter):
5126        (KJS::HTMLElement::runtimeObjectPropertyGetter):
5127        (KJS::HTMLElement::getOwnPropertySlot):
5128        (KJS::HTMLCollection::lengthGetter):
5129        (KJS::HTMLCollection::indexGetter):
5130        (KJS::HTMLCollection::nameGetter):
5131        (KJS::HTMLCollection::getOwnPropertySlot):
5132        (KJS::HTMLSelectCollection::selectedIndexGetter):
5133        (KJS::HTMLSelectCollection::getOwnPropertySlot):
5134        (KJS::Image::getOwnPropertySlot):
5135        (KJS::Context2D::getOwnPropertySlot):
5136        (KJS::Gradient::getOwnPropertySlot):
5137        (KJS::ImagePattern::getOwnPropertySlot):
5138        * khtml/ecma/kjs_html.h:
5139        (KJS::HTMLCollection::toBoolean):
5140        * khtml/ecma/kjs_navigator.cpp:
5141        (KJS::Plugins::):
5142        (KJS::MimeTypes::):
5143        (KJS::Plugin::):
5144        (KJS::MimeType::):
5145        (KJS::):
5146        (KJS::Navigator::getOwnPropertySlot):
5147        (KJS::Plugins::getValueProperty):
5148        (KJS::Plugins::indexGetter):
5149        (KJS::Plugins::nameGetter):
5150        (KJS::Plugins::getOwnPropertySlot):
5151        (KJS::MimeTypes::getValueProperty):
5152        (KJS::MimeTypes::indexGetter):
5153        (KJS::MimeTypes::nameGetter):
5154        (KJS::MimeTypes::getOwnPropertySlot):
5155        (KJS::Plugin::getValueProperty):
5156        (KJS::Plugin::indexGetter):
5157        (KJS::Plugin::nameGetter):
5158        (KJS::Plugin::getOwnPropertySlot):
5159        (KJS::MimeType::getValueProperty):
5160        (KJS::MimeType::getOwnPropertySlot):
5161        * khtml/ecma/kjs_navigator.h:
5162        * khtml/ecma/kjs_range.cpp:
5163        (KJS::DOMRange::getOwnPropertySlot):
5164        (KJS::RangeConstructor::getOwnPropertySlot):
5165        * khtml/ecma/kjs_range.h:
5166        * khtml/ecma/kjs_traversal.cpp:
5167        (KJS::DOMNodeIterator::getOwnPropertySlot):
5168        (KJS::NodeFilterConstructor::getOwnPropertySlot):
5169        (KJS::DOMTreeWalker::getOwnPropertySlot):
5170        * khtml/ecma/kjs_traversal.h:
5171        * khtml/ecma/kjs_views.cpp:
5172        (KJS::DOMAbstractView::~DOMAbstractView):
5173        (KJS::DOMAbstractView::getValueProperty):
5174        (KJS::DOMAbstractView::getOwnPropertySlot):
5175        * khtml/ecma/kjs_views.h:
5176        * khtml/ecma/kjs_window.cpp:
5177        (KJS::FrameArray::):
5178        (KJS::FrameArray::classInfo):
5179        (KJS::Screen::getOwnPropertySlot):
5180        (KJS::Window::getValueProperty):
5181        (KJS::Window::childFrameGetter):
5182        (KJS::Window::namedFrameGetter):
5183        (KJS::Window::indexGetter):
5184        (KJS::Window::namedItemGetter):
5185        (KJS::Window::getOwnPropertySlot):
5186        (KJS::):
5187        (KJS::FrameArray::getValueProperty):
5188        (KJS::FrameArray::indexGetter):
5189        (KJS::FrameArray::nameGetter):
5190        (KJS::FrameArray::getOwnPropertySlot):
5191        (KJS::Location::getValueProperty):
5192        (KJS::Location::getOwnPropertySlot):
5193        (KJS::Selection::getValueProperty):
5194        (KJS::Selection::getOwnPropertySlot):
5195        (KJS::BarInfo::getValueProperty):
5196        (KJS::BarInfo::getOwnPropertySlot):
5197        (KJS::History::getOwnPropertySlot):
5198        * khtml/ecma/kjs_window.h:
5199        * khtml/ecma/xmlhttprequest.cpp:
5200        (KJS::XMLHttpRequest::getOwnPropertySlot):
5201        * khtml/ecma/xmlhttprequest.h:
5202
52032005-08-06  Eric Seidel  <eseidel@apple.com>
5204
5205        Reviewed by darin.
5206
5207        * WebCore+SVG/DrawDocument.mm: DumpKCanvasTree support
5208        (-[DrawDocument renderTreeAsExternalRepresentation]):
5209        * WebCore+SVG/DrawDocumentPrivate.h:
5210        * WebCore.xcodeproj/project.pbxproj: fixed bison + zsh issue
5211        * kcanvas/KCanvas.cpp:
5212        (KCanvas::Private::~Private): device is now a singleton
5213        * kcanvas/KCanvasContainer.cpp:
5214        (KCanvasContainer::first): needed for DumpKCanvasTree
5215        (KCanvasContainer::last): needed for DumpKCanvasTree
5216        * kcanvas/KCanvasContainer.h:
5217        * kcanvas/KCanvasTreeDebug.cpp: Added.
5218        * kcanvas/KCanvasTreeDebug.h: Added.
5219        * kwq/KWQTextStream.mm:
5220        (QTextStream::operator<<): added missing float and double versions
5221        This adds all the changes necessary to support DumpKCanvasTree.
5222        Most noteable: operator<<(float) and double were missing from
5223        KWQTextStream, also added KCanvasTreeDebug, modeled after
5224        KWQRenderTreeDebug.  Most of KCanvasTreeDebug will be removed
5225        if the render trees finally merge.
5226        http://bugs.webkit.org/show_bug.cgi?id=3917
5227
52282005-08-06  Darin Adler  <darin@apple.com>
5229
5230        Reviewed by Dave Hyatt.
5231
5232        * khtml/css/css_valueimpl.cpp: (DOM::CSSMutableStyleDeclarationImpl::setChanged): Small tweak.
5233
52342005-08-06  Darin Adler  <darin@apple.com>
5235
5236        Reviewed by Dave Hyatt.
5237
5238        - fixed crash in one of the W3C DOM tests
5239
5240        * khtml/xml/dom_nodeimpl.cpp: (DOM::NodeImpl::dispatchEvent): Check for NULL which means
5241        the passed object is not an event. Return without raising an exception because that's
5242        what Gecko does despite the fact that the DOM test expects a (platform-specific) exception.
5243
5244        * layout-tests/dom/html/level2/events/dispatchEvent01-expected.txt: Added.
5245        * layout-tests/dom/html/level2/events/dispatchEvent01.html: Added.
5246        * layout-tests/dom/html/level2/events/dispatchEvent01.html-disabled: Removed.
5247
52482005-08-06  Darin Adler  <darin@apple.com>
5249
5250        Reviewed by Dave Hyatt.
5251
5252        - added a "set" operation to HashMap for cases where you want to either insert or
5253          modify an existing map entry; the "set" name is based on symmetry with get, and also on
5254          the naming used for similar operations in CFDictionary.
5255
5256        * khtml/misc/hashmap.h: Small tweak to insert and added set.
5257
52582005-08-06  Darin Adler  <darin@apple.com>
5259
5260        Reviewed by Dave Hyatt.
5261
5262        - made a small improvement to how Windows Latin-1 characters are handled in the tokenizer
5263
5264        * khtml/html/htmltokenizer.cpp:
5265        (khtml::fixUpChar): Changed to use an array and a quick check to determine if a character
5266        is one of the ones that needs to be mapped. This retains most of the speedup gained from
5267        not doing anything when the character doesn't need to be fixed up.
5268        (khtml::HTMLTokenizer::parseSpecial): Get rid of the local check since the check in fixUpChar
5269        is sufficient not.
5270        (khtml::HTMLTokenizer::parseText): Ditto.
5271        (khtml::HTMLTokenizer::parseEntity): Ditto.
5272        (khtml::HTMLTokenizer::parseTag): Ditto.
5273        (khtml::HTMLTokenizer::write): Ditto.
5274
52752005-08-06  Eric Seidel  <eseidel@apple.com>
5276
5277        Reviewed by darin.
5278
5279        * WebCore+SVG/DrawView.mm:
5280        (+[DrawView setFilterSupportEnabled:]): Moved from DrawViewPrivate
5281        (+[DrawView isFilterSupportEnabled]): Moved from DrawViewPrivate
5282        One half of fix for toggling filter support.
5283        http://bugs.webkit.org/show_bug.cgi?id=4252
5284
52852005-08-05  Adele Peterson  <adele@apple.com>
5286
5287        Reviewed by Darin.
5288
5289        * WebCore.xcodeproj/project.pbxproj: Unchecked 'statics are thread safe' option.
5290
52912005-08-05  Geoffrey Garen  <ggaren@apple.com>
5292
5293        -added layout test for fix to: <rdar://problem/4161606> JavaScript regular
5294        expressions with certain ranges of Unicode characters cause a crash
5295
5296        Test cases added:
5297
5298        * layout-tests/fast/js/regexp-big-unicode-ranges-expected.txt: Added.
5299        * layout-tests/fast/js/regexp-big-unicode-ranges.html: Added.
5300
53012005-08-05  David Hyatt  <hyatt@apple.com>
5302
5303	Make sure that <wbr> and <nobr> are included as residual style tags.
5304	
5305        Reviewed by john
5306
5307        Test cases added: fast/invalid/wbrlink.html
5308
5309        * khtml/css/html4.css:
5310        * khtml/html/htmlparser.cpp:
5311        (HTMLParser::isResidualStyleTag):
5312
53132005-08-05  David Hyatt  <hyatt@apple.com>
5314
5315	Fix for bugzilla bug 4289, a regression from the QualifiedName landing.  Make sure getNamedItemNS and
5316	removeNamedItemNS are case-insensitive in HTML documents.
5317	
5318        Reviewed by darin
5319
5320        * khtml/xml/dom_elementimpl.cpp:
5321        (NamedAttrMapImpl::getNamedItemNS):
5322        (NamedAttrMapImpl::removeNamedItemNS):
5323        * khtml/xml/dom_elementimpl.h:
5324        * khtml/xml/dom_nodeimpl.cpp:
5325        * khtml/xml/dom_nodeimpl.h:
5326        (DOM::NamedNodeMapImpl::NamedNodeMapImpl):
5327        (DOM::NamedNodeMapImpl::~NamedNodeMapImpl):
5328
53292005-08-04  Justin Garcia  <justin.garcia@apple.com>
5330
5331        Reviewed by kocienda
5332        
5333        Fix for: 
5334        - <rdar://problem/4132360> HIM-8A428:Space key works like Return key in Mail application.
5335        - <rdar://problem/4122708> Mail: when composing new mail with a Korean input method, the first space doesn't work
5336
5337        If the user terminates marked text with a space, a string including marked characters and a normal, 
5338        breaking space, is passed to WebCore in order to replace the previous marked sequence.  The fix ensures
5339        that the space becomes a non breaking space if necessary.
5340
5341        Test cases added:
5342        * manual-tests/korean-input-space.html
5343
5344        * khtml/editing/insert_text_command.cpp:
5345        (khtml::InsertTextCommand::input):
5346
53472005-08-03  David Hyatt  <hyatt@apple.com>
5348
5349	This patch significantly improves the performance of radio button groups and enables consistent tabbing
5350	behavior in radio groups with both OS X and Internet Explorer for Windows.  It also adds support for
5351	arrow key navigation between the radio buttons in a group.
5352
5353	In addition elements can now be shifted between forms using DOM operations and they will properly be
5354	adopted by the form into which they are inserted.  This movement works even when the forms themselves
5355	are not currently in the document by introducing a new set of notifications when an object is connected
5356	and removed from a tree of nodes (where that tree may or may not be the main document's tree).
5357	
5358        Test cases added: formmove.html, formmove2.html in fast/forms
5359
5360        * khtml/html/html_formimpl.cpp:
5361        (DOM::HTMLFormElementImpl::HTMLFormElementImpl):
5362        (DOM::HTMLFormElementImpl::~HTMLFormElementImpl):
5363	Updated to init/delete a new selectedRadioButtons member variable that is a hash tracking the current
5364	checked button in each radio group owned by the form.
5365	
5366        (DOM::HTMLFormElementImpl::radioButtonChecked):
5367        A notification that is called when a radio button becomes checked.
5368	
5369	(DOM::HTMLFormElementImpl::checkedRadioButtonForGroup):
5370        Returns the current checked radio button for a given named group.
5371	
5372	(DOM::HTMLFormElementImpl::removeRadioButtonForGroup):
5373        Clears out the checked radio button for a given named group.
5374	
5375	(DOM::HTMLFormElementImpl::registerFormElement):
5376        (DOM::HTMLFormElementImpl::removeFormElement):
5377        The registration and removal functions have been patched to deal with radio buttons and to remove
5378	the "dormant form control" concept, which is no longer needed now that controls can actually move
5379	between forms.
5380	
5381	(DOM::HTMLGenericFormElementImpl::HTMLGenericFormElementImpl):
5382        Remove the dormant bit from form controls.
5383	
5384	(DOM::HTMLGenericFormElementImpl::attach):
5385	Remove the code that attempted to register a form element in attached.  We use new notifications now
5386	for dynamically inserted controls via JS.
5387	
5388        (DOM::HTMLGenericFormElementImpl::insertedIntoTree):
5389        (DOM::HTMLGenericFormElementImpl::removedFromTree):
5390        These are the new notifications that are called whenever a form control is connected to or removed from
5391	a tree.  This tree may or may not be the document tree.  The form control can then "seek out" a form
5392	to latch on to, thus keeping its current status regarding what form it belongs to current across DOM
5393	operations.
5394
5395	(DOM::HTMLInputElementImpl::isKeyboardFocusable):
5396        Overridden to deal with radio buttons.  Unnamed radio buttons can't be focused.  Radio buttons can't be
5397	focused if another member of their group is already currently focused.  Unchecked radio buttons can
5398	only be focused if no button within the group is checked.
5399	
5400	(DOM::HTMLInputElementImpl::setInputType):
5401	Make sure to remove a checked radio button from the form's radio button hash if the type is changed
5402	to something else, e.g., checkbox.
5403	
5404        (DOM::HTMLInputElementImpl::setChecked):
5405        Revised to update the form's hash when a radio button gets checked and to also prevent unnamed radio
5406	buttons from changing state (matches WinIE).
5407	
5408	(DOM::HTMLInputElementImpl::defaultEventHandler):
5409        Add support for arrow key navigation through radio button groups.  Fix space behavior so that an unselected
5410	radio can become checked but not unchecked on space.  Fix enter behavior so that the form is not submitted
5411	on enter.  (Matches WinIE.)
5412	
5413	* khtml/html/html_formimpl.h:
5414        Adds the new member variable to track the current radio buttons in the various groups and the notifications
5415	for updating form controls when they switch forms.
5416	
5417	* khtml/xml/dom_nodeimpl.cpp:
5418        (DOM::NodeImpl::insertedIntoDocument):
5419        (DOM::NodeImpl::removedFromDocument):
5420        Patch insertedIntoDocument and removedFromDocument to also send the insertedIntoTree and removedFromTree
5421	notifications.
5422	
5423	(DOM::ContainerNodeImpl::removeChild):
5424        Call removedFromTree in the case where the removal of a child happens on a tree that is not in the 
5425	document.
5426	
5427	(DOM::ContainerNodeImpl::insertedIntoTree):
5428        (DOM::ContainerNodeImpl::removedFromTree):
5429        The new notifications.  The container node can optionally crawl into children invoking their notifications.
5430	
5431	(DOM::ContainerNodeImpl::dispatchChildInsertedEvents):
5432        Patched to call insertedIntoTree in the case where the insertion happened on a tree that is not in the
5433	document.
5434	
5435	* khtml/xml/dom_nodeimpl.h:
5436        (DOM::NodeImpl::insertedIntoTree):
5437        (DOM::NodeImpl::removedFromTree):
5438	Added the new notifications to NodeImpl for use by the form controls.
5439
54402005-08-04  Darin Adler  <darin@apple.com>
5441
5442        Reviewed by John Sullivan.
5443
5444        - fixed Objective-C binding for getOverrideStyle
5445
5446        * kwq/DOM.mm: ([DOMDocument getOverrideStyle::]): Change to call the DOM
5447        getOverrideStyle. It was not correct to call getComputedStyle just because
5448        getOverrideStyle is not yet implemented in our DOM.
5449
54502005-08-04  Adele Peterson  <adele@apple.com>
5451
5452        Reviewed by John.
5453
5454        - fixed <rdar://problem/4204496> REGRESSION(denver): repro crash in KHTMLParser::finished() downloading attachment at webmail.mac.com
5455        This regression was introduced by the fix for <rdar://problem/4084029>.  It was just missing a nil check.
5456
5457        * khtml/html/htmlparser.cpp: (KHTMLParser::finished): added nil check for current.
5458
54592005-08-04  Geoffrey Garen  <ggaren@apple.com>
5460
5461        - fixed <rdar://problem/4199495> REGRESSION: Safari Crashes on Window Closing Event
5462
5463        Reviewed by darin.
5464
5465        * khtml/ecma/kjs_binding.cpp:
5466        (KJS::ScriptInterpreter::updateDOMNodeDocument): inserting a node wrapper into a new
5467        document set now removes the node wrapper from its old document set.
5468
54692005-08-03  Vicki Murley  <vicki@apple.com>
5470
5471        Reviewed by Beth and Hyatt.
5472 
5473	<rdar://problem/4196646> target returns text node when it should return the parent node
5474
5475        Test cases added: manual-tests/mouseevents-on-textnodes.html
5476
5477        * khtml/khtmlview.cpp:
5478        (KHTMLView::dispatchMouseEvent): if the targetNode is a text node, set the 
5479	targetNode to the parent node
5480
54812005-08-02  Bruce DiBello  <bdibello@apple.com>
5482
5483        Reviewed by Geoffrey Garen.
5484
5485        Test cases added: getting and setting button.value
5486
5487        * layout-tests/fast/dom/HTMLButtonElement/value/getset-expected.txt: Added.
5488        * layout-tests/fast/dom/HTMLButtonElement/value/getset.html: Added.
5489
54902005-08-01  Geoffrey Garen  <ggaren@apple.com>
5491
5492        - landed layout tests for fix to <rdar://problem/3572585> 
5493        window.open fails if name param = the name of a window just 
5494        closed in same function
5495
5496        Fix reviewed by darin.
5497
5498        Test cases added:
5499
5500        * manual-tests/open-after-close.html: Added.
5501        * manual-tests/resources/open-after-close-popup.html: Added.
5502
55032005-08-01  David Hyatt  <hyatt@apple.com>
5504
5505	Reviewed by cblu, kocienda, darin
5506
5507	This patch removes the old KWQCheckbox from the tree and enables the new
5508	checkbox handled by the engine.
5509	
5510        * ForwardingHeaders/qcheckbox.h: Removed.
5511        Removed the old header for the Qt checkbox class.
5512	
5513	* WebCore.xcodeproj/project.pbxproj:
5514        Removed the references to KWQCheckBox from the project.
5515	
5516	* khtml/css/html4.css:
5517        Turn on the -khtml-appearance property for checkboxes so that they have
5518	the native OS X look by default.
5519	
5520	* khtml/html/html_formimpl.cpp:
5521        (DOM::HTMLInputElementImpl::setType):
5522        (DOM::HTMLInputElementImpl::setInputType):
5523        Change the setting of the type property in the DOM to simply update the
5524	corresponding attribute.  setType is the "public" API now and
5525	setInputType is the one called internally, e.g., when the attribute is
5526	changed.
5527	
5528	(DOM::HTMLInputElementImpl::click):
5529        Remove the hack for checkboxes now that the new ones are turned on.
5530	
5531	(DOM::HTMLInputElementImpl::parseMappedAttribute):
5532	Make the attribute parsing code call the internal setInputType now.
5533	
5534        (DOM::HTMLInputElementImpl::createRenderer):
5535        (DOM::HTMLInputElementImpl::attach):
5536        Remove the hack for making the old renderer and let only the new one
5537	get made now.
5538	
5539	(DOM::HTMLInputElementImpl::defaultEventHandler):
5540        Remove the hack for still doing the old event handling now that the
5541	new checkbox is on.
5542	
5543	* khtml/html/html_formimpl.h:
5544        Added the setInputType method (see above).
5545
5546	* khtml/rendering/render_form.cpp:
5547        * khtml/rendering/render_form.h:
5548	Removed RenderCheckBox from these files.
5549	
5550        * kwq/KWQButton.mm:
5551        Removed an include of qcheckbox.h.
5552	
5553	* kwq/KWQCheckBox.h: Removed.
5554        * kwq/KWQCheckBox.mm: Removed.
5555        Removed from the tree.
5556	
5557	* kwq/KWQSlot.mm:
5558        (KWQSlot::KWQSlot):
5559        (KWQSlot::call):
5560        Deleted the stateChanged signal/slot stuff, since it's no longer
5561	used by checkboxes.
5562	
5563	* layout-tests/fast/forms/001-expected.txt:
5564        * layout-tests/fast/forms/check-box-enter-key-expected.txt:
5565        * layout-tests/fast/forms/form-element-geometry-expected.txt:
5566        * layout-tests/fast/forms/input-value-expected.txt:
5567	Updated the layout tests to reflect the new checkboxes.  In the case
5568	of the last test, it has also had bugs corrected from making the type
5569	property actually set the attribute instead.
5570
55712005-08-01  David Hyatt  <hyatt@apple.com>
5572
5573	Fix bugzilla bug 4219, crash because we tried to do the fake paint
5574	when layout was not updated yet.
5575
5576	Also landing accessibility for checkboxes.
5577	
5578        Reviewed by darin/mjs (accessibility), kocienda(crash)
5579
5580        * ChangeLog:
5581        * khtml/rendering/render_theme.h:
5582        (khtml::RenderTheme::supportsControlTints):
5583        * kwq/KWQAccObject.mm:
5584        (-[KWQAccObject actionElement]):
5585        (-[KWQAccObject role]):
5586        (-[KWQAccObject roleDescription]):
5587        (-[KWQAccObject value]):
5588        (boundingBoxRect):
5589        (-[KWQAccObject accessibilityIsIgnored]):
5590        (-[KWQAccObject accessibilityAttributeValue:]):
5591        (-[KWQAccObject accessibilityIsAttributeSettable:]):
5592        * kwq/KWQKHTMLPart.mm:
5593        (KWQKHTMLPart::setDisplaysWithFocusAttributes):
5594
55952005-08-01  John Sullivan  <sullivan@apple.com>
5596
5597        Reviewed by Beth Dakin.
5598
5599        Test cases added: none, this only affects Safari forms autofill
5600        
5601        Moved the recently-added isTextField method out of the public DOMExtensions.h
5602        and into the private DOMPrivate.h for now, and renamed it with a leading
5603        underscore. We want to make some sort of public API that covers this, but not
5604        necessarily this exact method, so we'll leave it out of the public API until we've
5605        thought about this more.
5606
5607        * kwq/DOMExtensions.h:
5608        remove isTextField
5609        * kwq/DOMPrivate.h:
5610        add _isTextField. Also added some #imports that make this file more standalone.
5611        * kwq/DOMHTML.mm:
5612        (-[DOMHTMLInputElement _isTextField]):
5613        moved this method and added leading underscore.
5614
56152005-08-01  Eric Seidel  <eseidel@apple.com>
5616
5617        Reviewed by darin.
5618
5619        * kcanvas/device/quartz/KCanvasItemQuartz.mm:
5620        (getSharedContext): moved from QPainter -> CG
5621        * kcanvas/device/quartz/KRenderingPaintServerGradientQuartz.mm:
5622        (CGShadingRefForLinearGradient): removed comment
5623        (CGShadingRefForRadialGradient): removed comment
5624        * khtml/ecma/kjs_html.cpp:
5625        (KJS::KJS::Context2DFunction::call): moved from QPainter -> CG
5626        (KJS::colorRefFromValue): moved from QPainter -> CG
5627        (KJS::Gradient::getShading): moved from QPainter -> CG
5628        * khtml/rendering/render_canvasimage.cpp:
5629        (RenderCanvasImage::createDrawingContext):moved from QPainter -> CG
5630        * kwq/KWQColor.mm:
5631        (CGColorFromNSColor): moved from QPainter -> CG
5632        * kwq/KWQPainter.h: removed colorspace calls
5633        * kwq/KWQPainter.mm: removed colorspace calls
5634        (QPainter::clearFocusRing): moved from QPainter -> CG
5635        Removed use of WebKitGraphicsBridge Colorspace SPIs, as well
5636        as corresponding QPainter colorspace "choke-point" methods.
5637        This fixes colors for WebCore+SVG (since it wasn't linking in
5638        webkit).  WebKit code removal in separate commit.
5639        http://bugs.webkit.org/show_bug.cgi?id=4211
5640
56412005-07-31  Darin Adler  <darin@apple.com>
5642
5643        Reviewed by Maciej.
5644
5645        - remove uses of Mac-OS-X-specific MAX macro in non-Mac-OS-X-specific code
5646
5647        * khtml/misc/arena.cpp: (ArenaAllocate): Use std::max instead of MAX.
5648        * khtml/misc/loader.cpp: (Cache::setSize): Use kMax instead of MAX.
5649        * khtml/rendering/render_form.cpp:
5650        (RenderLineEdit::setSelectionStart): Ditto.
5651        (RenderLineEdit::setSelectionEnd): Ditto.
5652        (RenderLineEdit::setSelectionRange): Ditto.
5653
56542005-07-31  David Hyatt  <hyatt@apple.com>
5655
5656	Implement support for checkbox accessibility for VoiceOver.
5657	
5658        Reviewed by mjs
5659
5660        * kwq/KWQAccObject.mm:
5661        (-[KWQAccObject actionElement]):
5662        (-[KWQAccObject role]):
5663        (-[KWQAccObject roleDescription]):
5664        (-[KWQAccObject value]):
5665        (boundingBoxRect):
5666        (-[KWQAccObject accessibilityIsIgnored]):
5667        (-[KWQAccObject accessibilityAttributeValue:]):
5668        (-[KWQAccObject accessibilityIsAttributeSettable:]):
5669
56702005-07-31  David Hyatt  <hyatt@apple.com>
5671
5672	Make node lists more refined in their invalidation when children are added/removed
5673	in the DOM or attributes are changed.  This is sort of a band-aid fix.  The
5674	architecture of node list notifications (as well as how they are stored) should
5675	be revisited.
5676	
5677        Reviewed by darin
5678
5679        * khtml/xml/dom_nodeimpl.cpp:
5680        (DOM::NodeImpl::notifyLocalNodeListsAttributeChanged):
5681        (DOM::NodeImpl::notifyNodeListsAttributeChanged):
5682        (DOM::NodeImpl::notifyLocalNodeListsChildrenChanged):
5683        (DOM::NodeImpl::notifyNodeListsChildrenChanged):
5684        (DOM::NodeImpl::dispatchSubtreeModifiedEvent):
5685        (DOM::NodeListImpl::rootNodeChildrenChanged):
5686        * khtml/xml/dom_nodeimpl.h:
5687        (DOM::NodeListImpl::rootNodeAttributeChanged):
5688        (DOM::NameNodeListImpl::rootNodeChildrenChanged):
5689        (DOM::NameNodeListImpl::rootNodeAttributeChanged):
5690
56912005-07-31  Justin Garcia  <justin.garcia@apple.com>
5692
5693        Reviewed by mjs
5694        
5695        Fixes <http://bugs.webkit.org/show_bug.cgi?id=3359> Crash on hover with certain styles on the text applied
5696        
5697        If a zero length render object (such as a text node that has been set to "") occured at the 
5698        end of a line, it was previously given a non-zero sized run.  Iteration over such a node would cause
5699        a crash.
5700
5701        Test cases added:
5702        * layout-tests/traversal/size-zero-run-expected.txt: Added.
5703        * layout-tests/traversal/size-zero-run.html: Added.
5704        
5705        * khtml/rendering/bidi.cpp:
5706        (khtml::appendRun):
5707
57082005-07-31  Eric Seidel  <eseidel@apple.com>
5709
5710        Reviewed by hyatt.
5711
5712        * WebCore-svg.exp: Added.
5713        * WebCore.xcodeproj/project.pbxproj: Uses WebCore+SVG.exp
5714        * kcanvas/device/quartz/KCanvasFilterQuartz.mm: 
5715        (KCanvasFEFloodQuartz::getCIFilter): Fixed longjmp warning.
5716        * kdom/css/impl/CSSStyleSelector.cpp:
5717        (CSSStyleSelector::applyRule): Fixed "un-initialized" warning.
5718        * kdom/ecma/DOMLookup.h: Removed <iostream>
5719        * ksvg2/impl/svgpathparser.cpp: Removed <iostream>
5720        Several fixes required to make Deployment style builds
5721        compile correctly.  Also WebCore-svg.exp symbols were added
5722        both when generating WebCore-combined.exp as well as for
5723        generating a new WebCore+SVG.exp export file for the Deployment
5724        style builds, allowing DrawTest to link properly.
5725        A few other small warnings were caught and fixed.
5726        http://bugs.webkit.org/show_bug.cgi?id=4234
5727
57282005-07-29  David Hyatt  <hyatt@apple.com>
5729
5730	This patch makes simulated clicks actually go into active state briefly.  Spacebar
5731	on the new checkboxes results in a pressed look.
5732	
5733        Reviewed by darin
5734
5735        * khtml/html/html_elementimpl.cpp:
5736        (HTMLElementImpl::click):
5737        * khtml/rendering/render_theme.cpp:
5738        (khtml::RenderTheme::stateChanged):
5739        * khtml/rendering/render_theme.h:
5740        * khtml/xml/dom_nodeimpl.cpp:
5741        (DOM::ContainerNodeImpl::setActive):
5742        * khtml/xml/dom_nodeimpl.h:
5743        (DOM::NodeImpl::setActive):
5744        * kwq/KWQScrollView.mm:
5745        (QScrollView::updateContents):
5746
57472005-07-30  Anders Carlsson  <andersca@mac.com>
5748
5749        Reviewed and landed by Darin Adler.
5750
5751	- Fixes <http://bugs.webkit.org/show_bug.cgi?id=3893>
5752	
5753        Test cases added: 
5754	* layout-tests/fast/dom/css-dom-read-2.html: Added.
5755	* layout-tests/fast/dom/css-dom-read-2-expected.txt: Added.
5756	
5757        * khtml/css/css_computedstyle.cpp:
5758        (DOM::CSSComputedStyleDeclarationImpl::cssText):
5759	Implement.
5760	
5761        (DOM::CSSComputedStyleDeclarationImpl::item):
5762	Return the item name, not its value.
5763	
5764        * khtml/css/css_ruleimpl.cpp:
5765        (CSSImportRuleImpl::cssText):
5766        (CSSMediaRuleImpl::cssText):
5767        (CSSStyleRuleImpl::cssText):
5768        * khtml/css/css_ruleimpl.h:
5769	Implement.
5770	
5771        * khtml/css/css_stylesheetimpl.cpp:
5772        (MediaListImpl::mediaText):
5773	Don't put a trailing comma after lists.
5774
57752005-07-30  Darin Adler  <darin@apple.com>
5776
5777        - rolled back a test that has been failing since we rolled back the <script/> quirk
5778
5779        * layout-tests/fast/tokenizer/script_extra_close-expected.txt: Updated.
5780
57812005-07-30  Darin Adler  <darin@apple.com>
5782
5783        Reviewed by me, change by Dave Hyatt.
5784
5785        - fixed http://bugs.webkit.org/show_bug.cgi?id=4221
5786          REGRESSION: Elements act as if in :hover meta-class during page load although they aren't
5787
5788        * khtml/xml/dom_nodeimpl.cpp: (DOM::NodeImpl::NodeImpl): Initialize m_hovered to false.
5789
57902005-07-30  Maciej Stachowiak  <mjs@apple.com>
5791
5792        Missing bits of last checkin...
5793
5794        * WebCore.exp:
5795        * WebCore.xcodeproj/project.pbxproj:
5796
57972005-07-29  Maciej Stachowiak  <mjs@apple.com>
5798
5799        Changes by Michael Kahl, reviewed by me.
5800
5801        Test cases added: No tests, this code only affects debugging.
5802
5803	- fixed <rdar://problem/4164112> MASTER: JavaScript debugging support
5804	
5805        * kwq/WebCoreScriptDebugger.h: Added.
5806        * kwq/WebCoreScriptDebugger.mm: Added.
5807        (toNSString):
5808        (WebCoreScriptDebuggerImp::WebCoreScriptDebuggerImp):
5809        (WebCoreScriptDebuggerImp::sourceParsed):
5810        (WebCoreScriptDebuggerImp::callEvent):
5811        (WebCoreScriptDebuggerImp::atStatement):
5812        (WebCoreScriptDebuggerImp::returnEvent):
5813        (-[WebCoreScriptDebugger initWithDelegate:]):
5814        (-[WebCoreScriptDebugger dealloc]):
5815        (-[WebCoreScriptDebugger delegate]):
5816        (-[WebCoreScriptCallFrame _initWithGlobalObject:caller:state:]):
5817        (-[WebCoreScriptCallFrame _setWrapper:]):
5818        (-[WebCoreScriptCallFrame _convertValueToObjcValue:]):
5819        (-[WebCoreScriptCallFrame dealloc]):
5820        (-[WebCoreScriptCallFrame wrapper]):
5821        (-[WebCoreScriptCallFrame caller]):
5822        (-[WebCoreScriptCallFrame scopeChain]):
5823        (-[WebCoreScriptCallFrame functionName]):
5824        (-[WebCoreScriptCallFrame exception]):
5825        (-[WebCoreScriptCallFrame evaluateWebScript:]):
5826
58272005-07-29  Maciej Stachowiak  <mjs@apple.com>
5828
5829        Reviewed by hyatt (concept and a few manual parts), large part
5830	done by script and not really reviewed in detail.
5831
5832        - changed how HTML tags and attributes are referred to in the code for better readability.
5833
5834        * khtml/css/cssstyleselector.cpp:
5835        (khtml::checkPseudoState):
5836        (khtml::CSSStyleSelector::canShareStyleWithElement):
5837        (khtml::CSSStyleSelector::adjustRenderStyle):
5838        (khtml::CSSStyleSelector::checkOneSelector):
5839        * khtml/css/parser.y:
5840        * khtml/ecma/kjs_css.cpp:
5841        (KJS::DOMStyleSheetList::getOwnProperty):
5842        * khtml/ecma/kjs_dom.cpp:
5843        (KJS::getRuntimeObject):
5844        (KJS::DOMNamedNodesCollection::getOwnProperty):
5845        * khtml/ecma/kjs_html.cpp:
5846        (KJS::HTMLDocument::getOwnProperty):
5847        (KJS::KJS::HTMLDocument::putValueProperty):
5848        (KJS::KJS::HTMLElement::classInfo):
5849        (KJS::HTMLElement::getSetInfo):
5850        (KJS::KJS::HTMLElement::getOwnProperty):
5851        (KJS::KJS::HTMLElement::implementsCall):
5852        (KJS::KJS::HTMLElement::call):
5853        (KJS::KJS::HTMLElement::hasOwnProperty):
5854        (KJS::KJS::HTMLElement::toString):
5855        (KJS::getForm):
5856        (KJS::KJS::HTMLElement::pushEventHandlerScope):
5857        (KJS::KJS::HTMLElementFunction::call):
5858        (KJS::KJS::HTMLElement::put):
5859        (KJS::toHTMLTableCaptionElement):
5860        (KJS::toHTMLTableSectionElement):
5861        (KJS::KJS::HTMLCollection::getOwnProperty):
5862        (KJS::KJS::HTMLSelectCollection::put):
5863        * khtml/editing/apply_style_command.cpp:
5864        (khtml::isStyleSpan):
5865        (khtml::isEmptyStyleSpan):
5866        (khtml::isEmptyFontTag):
5867        (khtml::createFontElement):
5868        (khtml::createStyleSpanElement):
5869        (khtml::ApplyStyleCommand::applyRelativeFontStyleChange):
5870        (khtml::ApplyStyleCommand::applyInlineStyle):
5871        (khtml::ApplyStyleCommand::isHTMLStyleNode):
5872        (khtml::ApplyStyleCommand::removeHTMLFontStyle):
5873        (khtml::ApplyStyleCommand::applyTextDecorationStyle):
5874        (khtml::ApplyStyleCommand::mergeEndWithNextIfIdentical):
5875        (khtml::ApplyStyleCommand::addBlockStyleIfNeeded):
5876        (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
5877        * khtml/editing/break_blockquote_command.cpp:
5878        (khtml::BreakBlockquoteCommand::doApply):
5879        * khtml/editing/composite_edit_command.cpp:
5880        (khtml::CompositeEditCommand::insertNodeBefore):
5881        (khtml::CompositeEditCommand::insertNodeAfter):
5882        (khtml::CompositeEditCommand::findBlockPlaceholder):
5883        (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
5884        (khtml::createBlockPlaceholderElement):
5885        * khtml/editing/delete_selection_command.cpp:
5886        (khtml::isListStructureNode):
5887        (khtml::DeleteSelectionCommand::handleSpecialCaseBRDelete):
5888        (khtml::DeleteSelectionCommand::handleGeneralDelete):
5889        (khtml::DeleteSelectionCommand::moveNodesAfterNode):
5890        * khtml/editing/htmlediting.cpp:
5891        (khtml::isSpecialElement):
5892        (khtml::createDefaultParagraphElement):
5893        (khtml::createBreakElement):
5894        (khtml::isMailBlockquote):
5895        * khtml/editing/insert_line_break_command.cpp:
5896        (khtml::InsertLineBreakCommand::doApply):
5897        * khtml/editing/insert_paragraph_separator_command.cpp:
5898        (khtml::InsertParagraphSeparatorCommand::doApply):
5899        * khtml/editing/markup.cpp:
5900        (khtml::startMarkup):
5901        (khtml::createMarkup):
5902        (khtml::createFragmentFromText):
5903        * khtml/editing/replace_selection_command.cpp:
5904        (khtml::isProbablyBlock):
5905        (khtml::isProbablyTableStructureNode):
5906        (khtml::ReplacementFragment::isInterchangeNewlineNode):
5907        (khtml::ReplacementFragment::isInterchangeConvertedSpaceSpan):
5908        (khtml::ReplacementFragment::removeStyleNodes):
5909        (khtml::ReplaceSelectionCommand::doApply):
5910        * khtml/editing/visible_position.cpp:
5911        (khtml::VisiblePosition::init):
5912        (khtml::VisiblePosition::isCandidate):
5913        (khtml::VisiblePosition::isAtomicNode):
5914        * khtml/editing/visible_text.cpp:
5915        (khtml::TextIterator::handleNonTextNode):
5916        (khtml::TextIterator::exitNode):
5917        (khtml::SimplifiedBackwardsTextIterator::handleNonTextNode):
5918        * khtml/editing/visible_units.cpp:
5919        (khtml::endOfLine):
5920        * khtml/html/html_baseimpl.cpp:
5921        (HTMLBodyElementImpl::HTMLBodyElementImpl):
5922        (HTMLBodyElementImpl::mapToEntry):
5923        (HTMLBodyElementImpl::parseMappedAttribute):
5924        (HTMLBodyElementImpl::insertedIntoDocument):
5925        (HTMLBodyElementImpl::isURLAttribute):
5926        (HTMLBodyElementImpl::aLink):
5927        (HTMLBodyElementImpl::setALink):
5928        (HTMLBodyElementImpl::background):
5929        (HTMLBodyElementImpl::setBackground):
5930        (HTMLBodyElementImpl::bgColor):
5931        (HTMLBodyElementImpl::setBgColor):
5932        (HTMLBodyElementImpl::link):
5933        (HTMLBodyElementImpl::setLink):
5934        (HTMLBodyElementImpl::text):
5935        (HTMLBodyElementImpl::setText):
5936        (HTMLBodyElementImpl::vLink):
5937        (HTMLBodyElementImpl::setVLink):
5938        (HTMLFrameElementImpl::HTMLFrameElementImpl):
5939        (HTMLFrameElementImpl::parseMappedAttribute):
5940        (HTMLFrameElementImpl::attach):
5941        (HTMLFrameElementImpl::isURLAttribute):
5942        (HTMLFrameElementImpl::frameBorder):
5943        (HTMLFrameElementImpl::setFrameBorder):
5944        (HTMLFrameElementImpl::longDesc):
5945        (HTMLFrameElementImpl::setLongDesc):
5946        (HTMLFrameElementImpl::marginHeight):
5947        (HTMLFrameElementImpl::setMarginHeight):
5948        (HTMLFrameElementImpl::marginWidth):
5949        (HTMLFrameElementImpl::setMarginWidth):
5950        (HTMLFrameElementImpl::name):
5951        (HTMLFrameElementImpl::setName):
5952        (HTMLFrameElementImpl::setNoResize):
5953        (HTMLFrameElementImpl::scrolling):
5954        (HTMLFrameElementImpl::setScrolling):
5955        (HTMLFrameElementImpl::src):
5956        (HTMLFrameElementImpl::setSrc):
5957        (HTMLFrameSetElementImpl::HTMLFrameSetElementImpl):
5958        (HTMLFrameSetElementImpl::checkDTD):
5959        (HTMLFrameSetElementImpl::parseMappedAttribute):
5960        (HTMLFrameSetElementImpl::attach):
5961        (HTMLFrameSetElementImpl::cols):
5962        (HTMLFrameSetElementImpl::setCols):
5963        (HTMLFrameSetElementImpl::rows):
5964        (HTMLFrameSetElementImpl::setRows):
5965        (HTMLHeadElementImpl::HTMLHeadElementImpl):
5966        (HTMLHeadElementImpl::profile):
5967        (HTMLHeadElementImpl::setProfile):
5968        (HTMLHeadElementImpl::checkDTD):
5969        (HTMLHtmlElementImpl::HTMLHtmlElementImpl):
5970        (HTMLHtmlElementImpl::version):
5971        (HTMLHtmlElementImpl::setVersion):
5972        (HTMLHtmlElementImpl::checkDTD):
5973        (HTMLIFrameElementImpl::HTMLIFrameElementImpl):
5974        (HTMLIFrameElementImpl::mapToEntry):
5975        (HTMLIFrameElementImpl::parseMappedAttribute):
5976        (HTMLIFrameElementImpl::attach):
5977        (HTMLIFrameElementImpl::isURLAttribute):
5978        (HTMLIFrameElementImpl::align):
5979        (HTMLIFrameElementImpl::setAlign):
5980        (HTMLIFrameElementImpl::height):
5981        (HTMLIFrameElementImpl::setHeight):
5982        (HTMLIFrameElementImpl::src):
5983        (HTMLIFrameElementImpl::width):
5984        (HTMLIFrameElementImpl::setWidth):
5985        * khtml/html/html_blockimpl.cpp:
5986        (HTMLBlockquoteElementImpl::HTMLBlockquoteElementImpl):
5987        (HTMLBlockquoteElementImpl::cite):
5988        (HTMLBlockquoteElementImpl::setCite):
5989        (HTMLDivElementImpl::HTMLDivElementImpl):
5990        (HTMLDivElementImpl::mapToEntry):
5991        (HTMLDivElementImpl::parseMappedAttribute):
5992        (HTMLDivElementImpl::align):
5993        (HTMLDivElementImpl::setAlign):
5994        (HTMLHRElementImpl::HTMLHRElementImpl):
5995        (HTMLHRElementImpl::mapToEntry):
5996        (HTMLHRElementImpl::parseMappedAttribute):
5997        (HTMLHRElementImpl::align):
5998        (HTMLHRElementImpl::setAlign):
5999        (HTMLHRElementImpl::noShade):
6000        (HTMLHRElementImpl::setNoShade):
6001        (HTMLHRElementImpl::size):
6002        (HTMLHRElementImpl::setSize):
6003        (HTMLHRElementImpl::width):
6004        (HTMLHRElementImpl::setWidth):
6005        (HTMLHeadingElementImpl::checkDTD):
6006        (HTMLHeadingElementImpl::align):
6007        (HTMLHeadingElementImpl::setAlign):
6008        (HTMLParagraphElementImpl::HTMLParagraphElementImpl):
6009        (HTMLParagraphElementImpl::checkDTD):
6010        (HTMLParagraphElementImpl::mapToEntry):
6011        (HTMLParagraphElementImpl::parseMappedAttribute):
6012        (HTMLParagraphElementImpl::align):
6013        (HTMLParagraphElementImpl::setAlign):
6014        (HTMLPreElementImpl::width):
6015        (HTMLPreElementImpl::setWidth):
6016        (HTMLMarqueeElementImpl::HTMLMarqueeElementImpl):
6017        (HTMLMarqueeElementImpl::mapToEntry):
6018        (HTMLMarqueeElementImpl::parseMappedAttribute):
6019        * khtml/html/html_canvasimpl.cpp:
6020        (HTMLCanvasElementImpl::HTMLCanvasElementImpl):
6021        (HTMLCanvasElementImpl::mapToEntry):
6022        (HTMLCanvasElementImpl::parseMappedAttribute):
6023        (HTMLCanvasElementImpl::isURLAttribute):
6024        * khtml/html/html_documentimpl.cpp:
6025        (DOM::HTMLDocumentImpl::childAllowed):
6026        * khtml/html/html_elementimpl.cpp:
6027        (HTMLElementImpl::endTagRequirement):
6028        (HTMLElementImpl::tagPriority):
6029        (HTMLElementImpl::mapToEntry):
6030        (HTMLElementImpl::parseMappedAttribute):
6031        (HTMLElementImpl::createContextualFragment):
6032        (HTMLElementImpl::setInnerText):
6033        (HTMLElementImpl::setOuterText):
6034        (HTMLElementImpl::setContentEditable):
6035        (HTMLElementImpl::id):
6036        (HTMLElementImpl::setId):
6037        (HTMLElementImpl::title):
6038        (HTMLElementImpl::setTitle):
6039        (HTMLElementImpl::lang):
6040        (HTMLElementImpl::setLang):
6041        (HTMLElementImpl::dir):
6042        (HTMLElementImpl::setDir):
6043        (HTMLElementImpl::className):
6044        (HTMLElementImpl::setClassName):
6045        (HTMLElementImpl::isRecognizedTagName):
6046        (inlineTagList):
6047        (blockTagList):
6048        (HTMLElementImpl::checkDTD):
6049        * khtml/html/html_formimpl.cpp:
6050        (DOM::HTMLFormElementImpl::HTMLFormElementImpl):
6051        (DOM::HTMLFormElementImpl::submitClick):
6052        (DOM::HTMLFormElementImpl::formData):
6053        (DOM::HTMLFormElementImpl::submit):
6054        (DOM::HTMLFormElementImpl::parseMappedAttribute):
6055        (DOM::HTMLFormElementImpl::radioClicked):
6056        (DOM::HTMLFormElementImpl::isURLAttribute):
6057        (DOM::HTMLFormElementImpl::name):
6058        (DOM::HTMLFormElementImpl::setName):
6059        (DOM::HTMLFormElementImpl::acceptCharset):
6060        (DOM::HTMLFormElementImpl::setAcceptCharset):
6061        (DOM::HTMLFormElementImpl::action):
6062        (DOM::HTMLFormElementImpl::setAction):
6063        (DOM::HTMLFormElementImpl::setEnctype):
6064        (DOM::HTMLFormElementImpl::method):
6065        (DOM::HTMLFormElementImpl::setMethod):
6066        (DOM::HTMLFormElementImpl::target):
6067        (DOM::HTMLFormElementImpl::setTarget):
6068        (DOM::HTMLGenericFormElementImpl::parseMappedAttribute):
6069        (DOM::HTMLGenericFormElementImpl::getForm):
6070        (DOM::HTMLGenericFormElementImpl::name):
6071        (DOM::HTMLGenericFormElementImpl::setName):
6072        (DOM::HTMLGenericFormElementImpl::setDisabled):
6073        (DOM::HTMLGenericFormElementImpl::setReadOnly):
6074        (DOM::HTMLGenericFormElementImpl::tabIndex):
6075        (DOM::HTMLGenericFormElementImpl::setTabIndex):
6076        (DOM::HTMLButtonElementImpl::HTMLButtonElementImpl):
6077        (DOM::HTMLButtonElementImpl::type):
6078        (DOM::HTMLButtonElementImpl::parseMappedAttribute):
6079        (DOM::HTMLButtonElementImpl::accessKey):
6080        (DOM::HTMLButtonElementImpl::setAccessKey):
6081        (DOM::HTMLButtonElementImpl::value):
6082        (DOM::HTMLButtonElementImpl::setValue):
6083        (DOM::HTMLFieldSetElementImpl::HTMLFieldSetElementImpl):
6084        (DOM::HTMLFieldSetElementImpl::checkDTD):
6085        (DOM::HTMLInputElementImpl::HTMLInputElementImpl):
6086        (DOM::HTMLInputElementImpl::setType):
6087        (DOM::HTMLInputElementImpl::mapToEntry):
6088        (DOM::HTMLInputElementImpl::parseMappedAttribute):
6089        (DOM::HTMLInputElementImpl::attach):
6090        (DOM::HTMLInputElementImpl::altText):
6091        (DOM::HTMLInputElementImpl::value):
6092        (DOM::HTMLInputElementImpl::setValue):
6093        (DOM::HTMLInputElementImpl::isURLAttribute):
6094        (DOM::HTMLInputElementImpl::defaultValue):
6095        (DOM::HTMLInputElementImpl::setDefaultValue):
6096        (DOM::HTMLInputElementImpl::defaultChecked):
6097        (DOM::HTMLInputElementImpl::setDefaultChecked):
6098        (DOM::HTMLInputElementImpl::accept):
6099        (DOM::HTMLInputElementImpl::setAccept):
6100        (DOM::HTMLInputElementImpl::accessKey):
6101        (DOM::HTMLInputElementImpl::setAccessKey):
6102        (DOM::HTMLInputElementImpl::align):
6103        (DOM::HTMLInputElementImpl::setAlign):
6104        (DOM::HTMLInputElementImpl::alt):
6105        (DOM::HTMLInputElementImpl::setAlt):
6106        (DOM::HTMLInputElementImpl::setMaxLength):
6107        (DOM::HTMLInputElementImpl::setSize):
6108        (DOM::HTMLInputElementImpl::src):
6109        (DOM::HTMLInputElementImpl::setSrc):
6110        (DOM::HTMLInputElementImpl::useMap):
6111        (DOM::HTMLInputElementImpl::setUseMap):
6112        (DOM::HTMLLabelElementImpl::HTMLLabelElementImpl):
6113        (DOM::HTMLLabelElementImpl::parseMappedAttribute):
6114        (DOM::HTMLLabelElementImpl::formElement):
6115        (DOM::HTMLLabelElementImpl::form):
6116        (DOM::HTMLLabelElementImpl::accessKey):
6117        (DOM::HTMLLabelElementImpl::setAccessKey):
6118        (DOM::HTMLLabelElementImpl::htmlFor):
6119        (DOM::HTMLLabelElementImpl::setHtmlFor):
6120        (DOM::HTMLLegendElementImpl::HTMLLegendElementImpl):
6121        (DOM::HTMLLegendElementImpl::accessKey):
6122        (DOM::HTMLLegendElementImpl::setAccessKey):
6123        (DOM::HTMLLegendElementImpl::align):
6124        (DOM::HTMLLegendElementImpl::setAlign):
6125        (DOM::HTMLLegendElementImpl::formElement):
6126        (DOM::HTMLSelectElementImpl::HTMLSelectElementImpl):
6127        (DOM::HTMLSelectElementImpl::checkDTD):
6128        (DOM::HTMLSelectElementImpl::selectedIndex):
6129        (DOM::HTMLSelectElementImpl::setSelectedIndex):
6130        (DOM::HTMLSelectElementImpl::length):
6131        (DOM::HTMLSelectElementImpl::add):
6132        (DOM::HTMLSelectElementImpl::value):
6133        (DOM::HTMLSelectElementImpl::setValue):
6134        (DOM::HTMLSelectElementImpl::state):
6135        (DOM::HTMLSelectElementImpl::restoreState):
6136        (DOM::HTMLSelectElementImpl::parseMappedAttribute):
6137        (DOM::HTMLSelectElementImpl::appendFormData):
6138        (DOM::HTMLSelectElementImpl::optionToListIndex):
6139        (DOM::HTMLSelectElementImpl::listToOptionIndex):
6140        (DOM::HTMLSelectElementImpl::recalcListItems):
6141        (DOM::HTMLSelectElementImpl::reset):
6142        (DOM::HTMLSelectElementImpl::notifyOptionSelected):
6143        (DOM::HTMLSelectElementImpl::setMultiple):
6144        (DOM::HTMLSelectElementImpl::setSize):
6145        (DOM::HTMLKeygenElementImpl::HTMLKeygenElementImpl):
6146        (DOM::HTMLKeygenElementImpl::parseMappedAttribute):
6147        (DOM::HTMLOptGroupElementImpl::HTMLOptGroupElementImpl):
6148        (DOM::HTMLOptGroupElementImpl::recalcSelectOptions):
6149        (DOM::HTMLOptGroupElementImpl::label):
6150        (DOM::HTMLOptGroupElementImpl::setLabel):
6151        (DOM::HTMLOptionElementImpl::HTMLOptionElementImpl):
6152        (DOM::HTMLOptionElementImpl::text):
6153        (DOM::HTMLOptionElementImpl::index):
6154        (DOM::HTMLOptionElementImpl::parseMappedAttribute):
6155        (DOM::HTMLOptionElementImpl::setValue):
6156        (DOM::HTMLOptionElementImpl::getSelect):
6157        (DOM::HTMLOptionElementImpl::defaultSelected):
6158        (DOM::HTMLOptionElementImpl::setDefaultSelected):
6159        (DOM::HTMLOptionElementImpl::label):
6160        (DOM::HTMLOptionElementImpl::setLabel):
6161        (DOM::HTMLTextAreaElementImpl::HTMLTextAreaElementImpl):
6162        (DOM::HTMLTextAreaElementImpl::parseMappedAttribute):
6163        (DOM::HTMLTextAreaElementImpl::accessKey):
6164        (DOM::HTMLTextAreaElementImpl::setAccessKey):
6165        (DOM::HTMLTextAreaElementImpl::setCols):
6166        (DOM::HTMLTextAreaElementImpl::setRows):
6167        (DOM::HTMLIsIndexElementImpl::HTMLIsIndexElementImpl):
6168        (DOM::HTMLIsIndexElementImpl::parseMappedAttribute):
6169        (DOM::HTMLIsIndexElementImpl::prompt):
6170        (DOM::HTMLIsIndexElementImpl::setPrompt):
6171        * khtml/html/html_formimpl.h:
6172        (DOM::HTMLOptGroupElementImpl::checkDTD):
6173        * khtml/html/html_headimpl.cpp:
6174        (HTMLBaseElementImpl::HTMLBaseElementImpl):
6175        (HTMLBaseElementImpl::parseMappedAttribute):
6176        (HTMLBaseElementImpl::setHref):
6177        (HTMLBaseElementImpl::setTarget):
6178        (HTMLLinkElementImpl::HTMLLinkElementImpl):
6179        (HTMLLinkElementImpl::parseMappedAttribute):
6180        (HTMLLinkElementImpl::process):
6181        (HTMLLinkElementImpl::isURLAttribute):
6182        (HTMLLinkElementImpl::disabled):
6183        (HTMLLinkElementImpl::setDisabled):
6184        (HTMLLinkElementImpl::charset):
6185        (HTMLLinkElementImpl::setCharset):
6186        (HTMLLinkElementImpl::href):
6187        (HTMLLinkElementImpl::setHref):
6188        (HTMLLinkElementImpl::hreflang):
6189        (HTMLLinkElementImpl::setHreflang):
6190        (HTMLLinkElementImpl::media):
6191        (HTMLLinkElementImpl::setMedia):
6192        (HTMLLinkElementImpl::rel):
6193        (HTMLLinkElementImpl::setRel):
6194        (HTMLLinkElementImpl::rev):
6195        (HTMLLinkElementImpl::setRev):
6196        (HTMLLinkElementImpl::target):
6197        (HTMLLinkElementImpl::setTarget):
6198        (HTMLLinkElementImpl::type):
6199        (HTMLLinkElementImpl::setType):
6200        (HTMLMetaElementImpl::HTMLMetaElementImpl):
6201        (HTMLMetaElementImpl::parseMappedAttribute):
6202        (HTMLMetaElementImpl::content):
6203        (HTMLMetaElementImpl::setContent):
6204        (HTMLMetaElementImpl::httpEquiv):
6205        (HTMLMetaElementImpl::setHttpEquiv):
6206        (HTMLMetaElementImpl::name):
6207        (HTMLMetaElementImpl::setName):
6208        (HTMLMetaElementImpl::scheme):
6209        (HTMLMetaElementImpl::setScheme):
6210        (HTMLScriptElementImpl::HTMLScriptElementImpl):
6211        (HTMLScriptElementImpl::isURLAttribute):
6212        (HTMLScriptElementImpl::insertedIntoDocument):
6213        (HTMLScriptElementImpl::charset):
6214        (HTMLScriptElementImpl::setCharset):
6215        (HTMLScriptElementImpl::defer):
6216        (HTMLScriptElementImpl::setDefer):
6217        (HTMLScriptElementImpl::src):
6218        (HTMLScriptElementImpl::setSrc):
6219        (HTMLScriptElementImpl::type):
6220        (HTMLScriptElementImpl::setType):
6221        (HTMLStyleElementImpl::HTMLStyleElementImpl):
6222        (HTMLStyleElementImpl::parseMappedAttribute):
6223        (HTMLStyleElementImpl::disabled):
6224        (HTMLStyleElementImpl::setDisabled):
6225        (HTMLStyleElementImpl::media):
6226        (HTMLStyleElementImpl::setMedia):
6227        (HTMLStyleElementImpl::type):
6228        (HTMLStyleElementImpl::setType):
6229        (HTMLTitleElementImpl::HTMLTitleElementImpl):
6230        * khtml/html/html_imageimpl.cpp:
6231        (HTMLImageLoader::updateFromElement):
6232        (HTMLImageElementImpl::HTMLImageElementImpl):
6233        (HTMLImageElementImpl::mapToEntry):
6234        (HTMLImageElementImpl::parseMappedAttribute):
6235        (HTMLImageElementImpl::altText):
6236        (HTMLImageElementImpl::width):
6237        (HTMLImageElementImpl::height):
6238        (HTMLImageElementImpl::isURLAttribute):
6239        (HTMLImageElementImpl::name):
6240        (HTMLImageElementImpl::setName):
6241        (HTMLImageElementImpl::align):
6242        (HTMLImageElementImpl::setAlign):
6243        (HTMLImageElementImpl::alt):
6244        (HTMLImageElementImpl::setAlt):
6245        (HTMLImageElementImpl::border):
6246        (HTMLImageElementImpl::setBorder):
6247        (HTMLImageElementImpl::setHeight):
6248        (HTMLImageElementImpl::hspace):
6249        (HTMLImageElementImpl::setHspace):
6250        (HTMLImageElementImpl::isMap):
6251        (HTMLImageElementImpl::setIsMap):
6252        (HTMLImageElementImpl::longDesc):
6253        (HTMLImageElementImpl::setLongDesc):
6254        (HTMLImageElementImpl::src):
6255        (HTMLImageElementImpl::setSrc):
6256        (HTMLImageElementImpl::useMap):
6257        (HTMLImageElementImpl::setUseMap):
6258        (HTMLImageElementImpl::vspace):
6259        (HTMLImageElementImpl::setVspace):
6260        (HTMLImageElementImpl::setWidth):
6261        (HTMLMapElementImpl::HTMLMapElementImpl):
6262        (HTMLMapElementImpl::checkDTD):
6263        (HTMLMapElementImpl::mapMouseEvent):
6264        (HTMLMapElementImpl::parseMappedAttribute):
6265        (HTMLMapElementImpl::name):
6266        (HTMLMapElementImpl::setName):
6267        (HTMLAreaElementImpl::HTMLAreaElementImpl):
6268        (HTMLAreaElementImpl::parseMappedAttribute):
6269        (HTMLAreaElementImpl::accessKey):
6270        (HTMLAreaElementImpl::setAccessKey):
6271        (HTMLAreaElementImpl::alt):
6272        (HTMLAreaElementImpl::setAlt):
6273        (HTMLAreaElementImpl::coords):
6274        (HTMLAreaElementImpl::setCoords):
6275        (HTMLAreaElementImpl::href):
6276        (HTMLAreaElementImpl::setHref):
6277        (HTMLAreaElementImpl::noHref):
6278        (HTMLAreaElementImpl::setNoHref):
6279        (HTMLAreaElementImpl::shape):
6280        (HTMLAreaElementImpl::setShape):
6281        (HTMLAreaElementImpl::tabIndex):
6282        (HTMLAreaElementImpl::setTabIndex):
6283        (HTMLAreaElementImpl::target):
6284        (HTMLAreaElementImpl::setTarget):
6285        * khtml/html/html_inlineimpl.cpp:
6286        (DOM::HTMLAnchorElementImpl::HTMLAnchorElementImpl):
6287        (DOM::HTMLAnchorElementImpl::defaultEventHandler):
6288        (DOM::HTMLAnchorElementImpl::parseMappedAttribute):
6289        (DOM::HTMLAnchorElementImpl::isURLAttribute):
6290        (DOM::HTMLAnchorElementImpl::accessKey):
6291        (DOM::HTMLAnchorElementImpl::setAccessKey):
6292        (DOM::HTMLAnchorElementImpl::charset):
6293        (DOM::HTMLAnchorElementImpl::setCharset):
6294        (DOM::HTMLAnchorElementImpl::coords):
6295        (DOM::HTMLAnchorElementImpl::setCoords):
6296        (DOM::HTMLAnchorElementImpl::href):
6297        (DOM::HTMLAnchorElementImpl::setHref):
6298        (DOM::HTMLAnchorElementImpl::hreflang):
6299        (DOM::HTMLAnchorElementImpl::setHreflang):
6300        (DOM::HTMLAnchorElementImpl::name):
6301        (DOM::HTMLAnchorElementImpl::setName):
6302        (DOM::HTMLAnchorElementImpl::rel):
6303        (DOM::HTMLAnchorElementImpl::setRel):
6304        (DOM::HTMLAnchorElementImpl::rev):
6305        (DOM::HTMLAnchorElementImpl::setRev):
6306        (DOM::HTMLAnchorElementImpl::shape):
6307        (DOM::HTMLAnchorElementImpl::setShape):
6308        (DOM::HTMLAnchorElementImpl::tabIndex):
6309        (DOM::HTMLAnchorElementImpl::setTabIndex):
6310        (DOM::HTMLAnchorElementImpl::target):
6311        (DOM::HTMLAnchorElementImpl::setTarget):
6312        (DOM::HTMLAnchorElementImpl::type):
6313        (DOM::HTMLAnchorElementImpl::setType):
6314        (DOM::HTMLBRElementImpl::HTMLBRElementImpl):
6315        (DOM::HTMLBRElementImpl::mapToEntry):
6316        (DOM::HTMLBRElementImpl::parseMappedAttribute):
6317        (DOM::HTMLBRElementImpl::clear):
6318        (DOM::HTMLBRElementImpl::setClear):
6319        (DOM::HTMLFontElementImpl::HTMLFontElementImpl):
6320        (DOM::HTMLFontElementImpl::mapToEntry):
6321        (DOM::HTMLFontElementImpl::parseMappedAttribute):
6322        (DOM::HTMLFontElementImpl::color):
6323        (DOM::HTMLFontElementImpl::setColor):
6324        (DOM::HTMLFontElementImpl::face):
6325        (DOM::HTMLFontElementImpl::setFace):
6326        (DOM::HTMLFontElementImpl::size):
6327        (DOM::HTMLFontElementImpl::setSize):
6328        (DOM::HTMLModElementImpl::cite):
6329        (DOM::HTMLModElementImpl::setCite):
6330        (DOM::HTMLModElementImpl::dateTime):
6331        (DOM::HTMLModElementImpl::setDateTime):
6332        (DOM::HTMLQuoteElementImpl::HTMLQuoteElementImpl):
6333        (DOM::HTMLQuoteElementImpl::cite):
6334        (DOM::HTMLQuoteElementImpl::setCite):
6335        * khtml/html/html_listimpl.cpp:
6336        (DOM::HTMLUListElementImpl::mapToEntry):
6337        (DOM::HTMLUListElementImpl::parseMappedAttribute):
6338        (DOM::HTMLUListElementImpl::compact):
6339        (DOM::HTMLUListElementImpl::setCompact):
6340        (DOM::HTMLUListElementImpl::type):
6341        (DOM::HTMLUListElementImpl::setType):
6342        (DOM::HTMLDirectoryElementImpl::compact):
6343        (DOM::HTMLDirectoryElementImpl::setCompact):
6344        (DOM::HTMLMenuElementImpl::compact):
6345        (DOM::HTMLMenuElementImpl::setCompact):
6346        (DOM::HTMLOListElementImpl::mapToEntry):
6347        (DOM::HTMLOListElementImpl::parseMappedAttribute):
6348        (DOM::HTMLOListElementImpl::compact):
6349        (DOM::HTMLOListElementImpl::setCompact):
6350        (DOM::HTMLOListElementImpl::setStart):
6351        (DOM::HTMLOListElementImpl::type):
6352        (DOM::HTMLOListElementImpl::setType):
6353        (DOM::HTMLLIElementImpl::mapToEntry):
6354        (DOM::HTMLLIElementImpl::parseMappedAttribute):
6355        (DOM::HTMLLIElementImpl::attach):
6356        (DOM::HTMLLIElementImpl::type):
6357        (DOM::HTMLLIElementImpl::setType):
6358        (DOM::HTMLLIElementImpl::value):
6359        (DOM::HTMLLIElementImpl::setValue):
6360        (DOM::HTMLDListElementImpl::compact):
6361        (DOM::HTMLDListElementImpl::setCompact):
6362        * khtml/html/html_listimpl.h:
6363        (DOM::HTMLUListElementImpl::HTMLUListElementImpl):
6364        (DOM::HTMLDirectoryElementImpl::HTMLDirectoryElementImpl):
6365        (DOM::HTMLMenuElementImpl::HTMLMenuElementImpl):
6366        (DOM::HTMLOListElementImpl::HTMLOListElementImpl):
6367        (DOM::HTMLLIElementImpl::HTMLLIElementImpl):
6368        (DOM::HTMLDListElementImpl::HTMLDListElementImpl):
6369        * khtml/html/html_miscimpl.cpp:
6370        (DOM::HTMLBaseFontElementImpl::HTMLBaseFontElementImpl):
6371        (DOM::HTMLBaseFontElementImpl::color):
6372        (DOM::HTMLBaseFontElementImpl::setColor):
6373        (DOM::HTMLBaseFontElementImpl::face):
6374        (DOM::HTMLBaseFontElementImpl::setFace):
6375        (DOM::HTMLBaseFontElementImpl::size):
6376        (DOM::HTMLBaseFontElementImpl::setSize):
6377        (DOM::HTMLCollectionImpl::traverseNextItem):
6378        (DOM::HTMLCollectionImpl::checkForNameMatch):
6379        (DOM::HTMLNameCollectionImpl::traverseNextItem):
6380        (DOM::HTMLCollectionImpl::updateNameCache):
6381        (DOM::HTMLFormCollectionImpl::getNamedFormItem):
6382        (DOM::HTMLFormCollectionImpl::nextNamedItemInternal):
6383        (DOM::HTMLFormCollectionImpl::namedItem):
6384        (DOM::HTMLFormCollectionImpl::nextNamedItem):
6385        (DOM::HTMLFormCollectionImpl::updateNameCache):
6386        * khtml/html/html_objectimpl.cpp:
6387        (DOM::HTMLAppletElementImpl::HTMLAppletElementImpl):
6388        (DOM::HTMLAppletElementImpl::checkDTD):
6389        (DOM::HTMLAppletElementImpl::mapToEntry):
6390        (DOM::HTMLAppletElementImpl::parseMappedAttribute):
6391        (DOM::HTMLAppletElementImpl::rendererIsNeeded):
6392        (DOM::HTMLAppletElementImpl::createRenderer):
6393        (DOM::HTMLAppletElementImpl::align):
6394        (DOM::HTMLAppletElementImpl::setAlign):
6395        (DOM::HTMLAppletElementImpl::alt):
6396        (DOM::HTMLAppletElementImpl::setAlt):
6397        (DOM::HTMLAppletElementImpl::archive):
6398        (DOM::HTMLAppletElementImpl::setArchive):
6399        (DOM::HTMLAppletElementImpl::code):
6400        (DOM::HTMLAppletElementImpl::setCode):
6401        (DOM::HTMLAppletElementImpl::codeBase):
6402        (DOM::HTMLAppletElementImpl::setCodeBase):
6403        (DOM::HTMLAppletElementImpl::height):
6404        (DOM::HTMLAppletElementImpl::setHeight):
6405        (DOM::HTMLAppletElementImpl::hspace):
6406        (DOM::HTMLAppletElementImpl::setHspace):
6407        (DOM::HTMLAppletElementImpl::name):
6408        (DOM::HTMLAppletElementImpl::setName):
6409        (DOM::HTMLAppletElementImpl::object):
6410        (DOM::HTMLAppletElementImpl::setObject):
6411        (DOM::HTMLAppletElementImpl::vspace):
6412        (DOM::HTMLAppletElementImpl::setVspace):
6413        (DOM::HTMLAppletElementImpl::width):
6414        (DOM::HTMLAppletElementImpl::setWidth):
6415        (DOM::HTMLEmbedElementImpl::HTMLEmbedElementImpl):
6416        (DOM::HTMLEmbedElementImpl::checkDTD):
6417        (DOM::HTMLEmbedElementImpl::mapToEntry):
6418        (DOM::HTMLEmbedElementImpl::parseMappedAttribute):
6419        (DOM::HTMLEmbedElementImpl::rendererIsNeeded):
6420        (DOM::HTMLEmbedElementImpl::isURLAttribute):
6421        (DOM::HTMLObjectElementImpl::HTMLObjectElementImpl):
6422        (DOM::HTMLObjectElementImpl::checkDTD):
6423        (DOM::HTMLObjectElementImpl::form):
6424        (DOM::HTMLObjectElementImpl::mapToEntry):
6425        (DOM::HTMLObjectElementImpl::parseMappedAttribute):
6426        (DOM::HTMLObjectElementImpl::isURLAttribute):
6427        (DOM::HTMLObjectElementImpl::code):
6428        (DOM::HTMLObjectElementImpl::setCode):
6429        (DOM::HTMLObjectElementImpl::align):
6430        (DOM::HTMLObjectElementImpl::setAlign):
6431        (DOM::HTMLObjectElementImpl::archive):
6432        (DOM::HTMLObjectElementImpl::setArchive):
6433        (DOM::HTMLObjectElementImpl::border):
6434        (DOM::HTMLObjectElementImpl::setBorder):
6435        (DOM::HTMLObjectElementImpl::codeBase):
6436        (DOM::HTMLObjectElementImpl::setCodeBase):
6437        (DOM::HTMLObjectElementImpl::codeType):
6438        (DOM::HTMLObjectElementImpl::setCodeType):
6439        (DOM::HTMLObjectElementImpl::data):
6440        (DOM::HTMLObjectElementImpl::setData):
6441        (DOM::HTMLObjectElementImpl::declare):
6442        (DOM::HTMLObjectElementImpl::setDeclare):
6443        (DOM::HTMLObjectElementImpl::height):
6444        (DOM::HTMLObjectElementImpl::setHeight):
6445        (DOM::HTMLObjectElementImpl::hspace):
6446        (DOM::HTMLObjectElementImpl::setHspace):
6447        (DOM::HTMLObjectElementImpl::name):
6448        (DOM::HTMLObjectElementImpl::setName):
6449        (DOM::HTMLObjectElementImpl::standby):
6450        (DOM::HTMLObjectElementImpl::setStandby):
6451        (DOM::HTMLObjectElementImpl::tabIndex):
6452        (DOM::HTMLObjectElementImpl::setTabIndex):
6453        (DOM::HTMLObjectElementImpl::type):
6454        (DOM::HTMLObjectElementImpl::setType):
6455        (DOM::HTMLObjectElementImpl::useMap):
6456        (DOM::HTMLObjectElementImpl::setUseMap):
6457        (DOM::HTMLObjectElementImpl::vspace):
6458        (DOM::HTMLObjectElementImpl::setVspace):
6459        (DOM::HTMLObjectElementImpl::width):
6460        (DOM::HTMLObjectElementImpl::setWidth):
6461        (DOM::HTMLParamElementImpl::HTMLParamElementImpl):
6462        (DOM::HTMLParamElementImpl::parseMappedAttribute):
6463        (DOM::HTMLParamElementImpl::isURLAttribute):
6464        (DOM::HTMLParamElementImpl::setName):
6465        (DOM::HTMLParamElementImpl::type):
6466        (DOM::HTMLParamElementImpl::setType):
6467        (DOM::HTMLParamElementImpl::setValue):
6468        (DOM::HTMLParamElementImpl::valueType):
6469        (DOM::HTMLParamElementImpl::setValueType):
6470        * khtml/html/html_tableimpl.cpp:
6471        (DOM::HTMLTableElementImpl::HTMLTableElementImpl):
6472        (DOM::HTMLTableElementImpl::checkDTD):
6473        (DOM::HTMLTableElementImpl::createTHead):
6474        (DOM::HTMLTableElementImpl::createTFoot):
6475        (DOM::HTMLTableElementImpl::insertRow):
6476        (DOM::HTMLTableElementImpl::deleteRow):
6477        (DOM::HTMLTableElementImpl::addChild):
6478        (DOM::HTMLTableElementImpl::mapToEntry):
6479        (DOM::HTMLTableElementImpl::parseMappedAttribute):
6480        (DOM::HTMLTableElementImpl::additionalAttributeStyleDecl):
6481        (DOM::HTMLTableElementImpl::getSharedCellDecl):
6482        (DOM::HTMLTableElementImpl::isURLAttribute):
6483        (DOM::HTMLTableElementImpl::align):
6484        (DOM::HTMLTableElementImpl::setAlign):
6485        (DOM::HTMLTableElementImpl::bgColor):
6486        (DOM::HTMLTableElementImpl::setBgColor):
6487        (DOM::HTMLTableElementImpl::border):
6488        (DOM::HTMLTableElementImpl::setBorder):
6489        (DOM::HTMLTableElementImpl::cellPadding):
6490        (DOM::HTMLTableElementImpl::setCellPadding):
6491        (DOM::HTMLTableElementImpl::cellSpacing):
6492        (DOM::HTMLTableElementImpl::setCellSpacing):
6493        (DOM::HTMLTableElementImpl::frame):
6494        (DOM::HTMLTableElementImpl::setFrame):
6495        (DOM::HTMLTableElementImpl::rules):
6496        (DOM::HTMLTableElementImpl::setRules):
6497        (DOM::HTMLTableElementImpl::summary):
6498        (DOM::HTMLTableElementImpl::setSummary):
6499        (DOM::HTMLTableElementImpl::width):
6500        (DOM::HTMLTableElementImpl::setWidth):
6501        (DOM::HTMLTablePartElementImpl::mapToEntry):
6502        (DOM::HTMLTablePartElementImpl::parseMappedAttribute):
6503        (DOM::HTMLTableSectionElementImpl::checkDTD):
6504        (DOM::HTMLTableSectionElementImpl::addChild):
6505        (DOM::HTMLTableSectionElementImpl::numRows):
6506        (DOM::HTMLTableSectionElementImpl::align):
6507        (DOM::HTMLTableSectionElementImpl::setAlign):
6508        (DOM::HTMLTableSectionElementImpl::ch):
6509        (DOM::HTMLTableSectionElementImpl::setCh):
6510        (DOM::HTMLTableSectionElementImpl::chOff):
6511        (DOM::HTMLTableSectionElementImpl::setChOff):
6512        (DOM::HTMLTableSectionElementImpl::vAlign):
6513        (DOM::HTMLTableSectionElementImpl::setVAlign):
6514        (DOM::HTMLTableRowElementImpl::checkDTD):
6515        (DOM::HTMLTableRowElementImpl::addChild):
6516        (DOM::HTMLTableRowElementImpl::rowIndex):
6517        (DOM::HTMLTableRowElementImpl::sectionRowIndex):
6518        (DOM::HTMLTableRowElementImpl::insertCell):
6519        (DOM::HTMLTableRowElementImpl::align):
6520        (DOM::HTMLTableRowElementImpl::setAlign):
6521        (DOM::HTMLTableRowElementImpl::bgColor):
6522        (DOM::HTMLTableRowElementImpl::setBgColor):
6523        (DOM::HTMLTableRowElementImpl::ch):
6524        (DOM::HTMLTableRowElementImpl::setCh):
6525        (DOM::HTMLTableRowElementImpl::chOff):
6526        (DOM::HTMLTableRowElementImpl::setChOff):
6527        (DOM::HTMLTableRowElementImpl::vAlign):
6528        (DOM::HTMLTableRowElementImpl::setVAlign):
6529        (DOM::HTMLTableCellElementImpl::cellIndex):
6530        (DOM::HTMLTableCellElementImpl::mapToEntry):
6531        (DOM::HTMLTableCellElementImpl::parseMappedAttribute):
6532        (DOM::HTMLTableCellElementImpl::additionalAttributeStyleDecl):
6533        (DOM::HTMLTableCellElementImpl::isURLAttribute):
6534        (DOM::HTMLTableCellElementImpl::abbr):
6535        (DOM::HTMLTableCellElementImpl::setAbbr):
6536        (DOM::HTMLTableCellElementImpl::align):
6537        (DOM::HTMLTableCellElementImpl::setAlign):
6538        (DOM::HTMLTableCellElementImpl::axis):
6539        (DOM::HTMLTableCellElementImpl::setAxis):
6540        (DOM::HTMLTableCellElementImpl::bgColor):
6541        (DOM::HTMLTableCellElementImpl::setBgColor):
6542        (DOM::HTMLTableCellElementImpl::ch):
6543        (DOM::HTMLTableCellElementImpl::setCh):
6544        (DOM::HTMLTableCellElementImpl::chOff):
6545        (DOM::HTMLTableCellElementImpl::setChOff):
6546        (DOM::HTMLTableCellElementImpl::setColSpan):
6547        (DOM::HTMLTableCellElementImpl::headers):
6548        (DOM::HTMLTableCellElementImpl::setHeaders):
6549        (DOM::HTMLTableCellElementImpl::height):
6550        (DOM::HTMLTableCellElementImpl::setHeight):
6551        (DOM::HTMLTableCellElementImpl::noWrap):
6552        (DOM::HTMLTableCellElementImpl::setNoWrap):
6553        (DOM::HTMLTableCellElementImpl::setRowSpan):
6554        (DOM::HTMLTableCellElementImpl::scope):
6555        (DOM::HTMLTableCellElementImpl::setScope):
6556        (DOM::HTMLTableCellElementImpl::vAlign):
6557        (DOM::HTMLTableCellElementImpl::setVAlign):
6558        (DOM::HTMLTableCellElementImpl::width):
6559        (DOM::HTMLTableCellElementImpl::setWidth):
6560        (DOM::HTMLTableColElementImpl::HTMLTableColElementImpl):
6561        (DOM::HTMLTableColElementImpl::mapToEntry):
6562        (DOM::HTMLTableColElementImpl::parseMappedAttribute):
6563        (DOM::HTMLTableColElementImpl::align):
6564        (DOM::HTMLTableColElementImpl::setAlign):
6565        (DOM::HTMLTableColElementImpl::ch):
6566        (DOM::HTMLTableColElementImpl::setCh):
6567        (DOM::HTMLTableColElementImpl::chOff):
6568        (DOM::HTMLTableColElementImpl::setChOff):
6569        (DOM::HTMLTableColElementImpl::setSpan):
6570        (DOM::HTMLTableColElementImpl::vAlign):
6571        (DOM::HTMLTableColElementImpl::setVAlign):
6572        (DOM::HTMLTableColElementImpl::width):
6573        (DOM::HTMLTableColElementImpl::setWidth):
6574        (DOM::HTMLTableCaptionElementImpl::mapToEntry):
6575        (DOM::HTMLTableCaptionElementImpl::parseMappedAttribute):
6576        (DOM::HTMLTableCaptionElementImpl::align):
6577        (DOM::HTMLTableCaptionElementImpl::setAlign):
6578        * khtml/html/html_tableimpl.h:
6579        (DOM::HTMLTableRowElementImpl::HTMLTableRowElementImpl):
6580        (DOM::HTMLTableColElementImpl::endTagRequirement):
6581        (DOM::HTMLTableColElementImpl::tagPriority):
6582        (DOM::HTMLTableColElementImpl::checkDTD):
6583        (DOM::HTMLTableCaptionElementImpl::HTMLTableCaptionElementImpl):
6584        * khtml/html/htmlfactory.cpp:
6585        (DOM::headingConstructor):
6586        (DOM::preConstructor):
6587        (DOM::modConstructor):
6588        (DOM::tableColConstructor):
6589        (DOM::tableCellConstructor):
6590        (DOM::tableSectionConstructor):
6591        (DOM::HTMLElementFactory::createHTMLElement):
6592        * khtml/html/htmlnames.cpp:
6593        (HTMLNames::initHTMLNames):
6594        * khtml/html/htmlnames.h:
6595        * khtml/html/htmlparser.cpp:
6596        (HTMLParser::parseToken):
6597        (isTableSection):
6598        (isTablePart):
6599        (isTableRelated):
6600        (HTMLParser::handleError):
6601        (HTMLParser::headCreateErrorCheck):
6602        (HTMLParser::bodyCreateErrorCheck):
6603        (HTMLParser::framesetCreateErrorCheck):
6604        (HTMLParser::iframeCreateErrorCheck):
6605        (HTMLParser::ddCreateErrorCheck):
6606        (HTMLParser::dtCreateErrorCheck):
6607        (HTMLParser::tableCellCreateErrorCheck):
6608        (HTMLParser::tableSectionCreateErrorCheck):
6609        (HTMLParser::noembedCreateErrorCheck):
6610        (HTMLParser::noframesCreateErrorCheck):
6611        (HTMLParser::noscriptCreateErrorCheck):
6612        (HTMLParser::getNode):
6613        (HTMLParser::processCloseTag):
6614        (HTMLParser::isHeaderTag):
6615        (HTMLParser::isInline):
6616        (HTMLParser::isResidualStyleTag):
6617        (HTMLParser::isAffectedByResidualStyle):
6618        (HTMLParser::popBlock):
6619        (HTMLParser::handleIsindex):
6620        * khtml/html/htmltokenizer.cpp:
6621        (khtml::HTMLTokenizer::parseSpecial):
6622        (khtml::HTMLTokenizer::scriptHandler):
6623        (khtml::HTMLTokenizer::parseTag):
6624        * khtml/khtml_part.cpp:
6625        (KHTMLPart::init):
6626        (KHTMLPart::backgroundURL):
6627        (KHTMLPart::updateActions):
6628        (KHTMLPart::handleMouseMoveEventDrag):
6629        (KHTMLPart::selectionComputedStyle):
6630        (KHTMLPart::applyEditingStyleToElement):
6631        (KHTMLPart::removeEditingStyleFromElement):
6632        * khtml/khtmlview.cpp:
6633        (KHTMLView::layout):
6634        (isSubmitImage):
6635        * khtml/misc/decoder.cpp:
6636        (Decoder::decode):
6637        * khtml/misc/hashtable.h:
6638        (khtml::::lookup):
6639        * khtml/rendering/render_applet.cpp:
6640        (RenderApplet::createWidgetIfNecessary):
6641        * khtml/rendering/render_block.cpp:
6642        (khtml::RenderBlock::layoutBlock):
6643        * khtml/rendering/render_box.cpp:
6644        (RenderBox::paintRootBoxDecorations):
6645        (RenderBox::paintBackgroundExtended):
6646        * khtml/rendering/render_canvasimage.cpp:
6647        (RenderCanvasImage::paint):
6648        * khtml/rendering/render_flow.cpp:
6649        (RenderFlow::addFocusRingRects):
6650        * khtml/rendering/render_form.cpp:
6651        (RenderLineEdit::updateFromElement):
6652        (RenderFieldset::findLegend):
6653        (RenderSelect::updateFromElement):
6654        (RenderSelect::layout):
6655        (RenderSelect::slotSelected):
6656        (RenderSelect::slotSelectionChanged):
6657        (RenderSelect::updateSelection):
6658        (RenderSlider::updateFromElement):
6659        (RenderSlider::slotSliderValueChanged):
6660        * khtml/rendering/render_frames.cpp:
6661        (RenderPartObject::updateWidget):
6662        (RenderPartObject::slotViewCleared):
6663        * khtml/rendering/render_image.cpp:
6664        (RenderImage::paint):
6665        (RenderImage::imageMap):
6666        (RenderImage::updateAltText):
6667        * khtml/rendering/render_layer.cpp:
6668        (Marquee::marqueeSpeed):
6669        * khtml/rendering/render_list.cpp:
6670        (getParentOfFirstLineBox):
6671        * khtml/rendering/render_object.cpp:
6672        (RenderObject::isBody):
6673        (RenderObject::isHR):
6674        (RenderObject::isHTMLMarquee):
6675        (RenderObject::sizesToMaxWidth):
6676        (RenderObject::setStyle):
6677        (RenderObject::getTextDecorationColors):
6678        (RenderObject::setPixmap):
6679        * khtml/rendering/render_table.cpp:
6680        (RenderTable::addChild):
6681        (RenderTable::layout):
6682        (RenderTableSection::addChild):
6683        (RenderTableRow::addChild):
6684        (RenderTableCell::updateFromElement):
6685        (RenderTableCell::calcMinMaxWidth):
6686        (RenderTableCol::updateFromElement):
6687        * khtml/rendering/render_theme.cpp:
6688        (khtml::RenderTheme::isControlContainer):
6689        (khtml::RenderTheme::isChecked):
6690        (khtml::RenderTheme::isEnabled):
6691        * khtml/xml/dom_docimpl.cpp:
6692        (DocumentImpl::createElementNS):
6693        (DocumentImpl::getElementById):
6694        (DocumentImpl::getElementByAccessKey):
6695        (DocumentImpl::body):
6696        (DocumentImpl::shouldScheduleLayout):
6697        (DocumentImpl::prepareMouseEvent):
6698        (DocumentImpl::recalcStyleSelector):
6699        * khtml/xml/dom_elementimpl.cpp:
6700        (ElementImpl::getAttribute):
6701        (ElementImpl::setAttribute):
6702        (ElementImpl::setAttributeMap):
6703        (ElementImpl::insertedIntoDocument):
6704        (ElementImpl::removedFromDocument):
6705        (ElementImpl::formatForDebugger):
6706        (NamedAttrMapImpl::setNamedItem):
6707        (NamedAttrMapImpl::removeNamedItem):
6708        (NamedAttrMapImpl::operator=):
6709        (StyledElementImpl::updateStyleAttributeIfNeeded):
6710        (StyledElementImpl::mapToEntry):
6711        (StyledElementImpl::parseMappedAttribute):
6712        * khtml/xml/dom_nodeimpl.cpp:
6713        (DOM::NodeImpl::maxDeepOffset):
6714        (DOM::NodeImpl::enclosingBlockFlowOrTableElement):
6715        (DOM::NodeImpl::enclosingBlockFlowElement):
6716        (DOM::NodeImpl::enclosingInlineElement):
6717        (DOM::NodeImpl::rootEditableElement):
6718        (DOM::NodeImpl::showNode):
6719        (DOM::NodeImpl::showTreeAndMark):
6720        (DOM::NameNodeListImpl::nodeMatches):
6721        * khtml/xml/dom_position.cpp:
6722        (DOM::Position::downstream):
6723        (DOM::Position::rendersInDifferentPosition):
6724        (DOM::Position::leadingWhitespacePosition):
6725        (DOM::Position::trailingWhitespacePosition):
6726        * khtml/xml/xml_tokenizer.cpp:
6727        (khtml::XMLTokenizer::startElement):
6728        (khtml::XMLTokenizer::insertErrorMessageBlock):
6729        (khtml::XMLTokenizer::addScripts):
6730        (khtml::XMLTokenizer::executeScripts):
6731        * kwq/DOM.mm:
6732        (+[DOMNode _nodeWithImpl:]):
6733        * kwq/DOMHTML.mm:
6734        (-[DOMHTMLElement idName]):
6735        (-[DOMHTMLElement setIdName:]):
6736        (-[DOMHTMLLinkElement media]):
6737        (-[DOMHTMLLinkElement setMedia:]):
6738        (-[DOMHTMLLinkElement rel]):
6739        (-[DOMHTMLLinkElement setRel:]):
6740        (-[DOMHTMLLinkElement rev]):
6741        (-[DOMHTMLLinkElement setRev:]):
6742        (-[DOMHTMLLinkElement target]):
6743        (-[DOMHTMLLinkElement setTarget:]):
6744        (-[DOMHTMLLinkElement type]):
6745        (-[DOMHTMLLinkElement setType:]):
6746        (-[DOMHTMLTitleElement text]):
6747        (-[DOMHTMLTitleElement setText:]):
6748        (-[DOMHTMLMetaElement content]):
6749        (-[DOMHTMLMetaElement setContent:]):
6750        (-[DOMHTMLMetaElement httpEquiv]):
6751        (-[DOMHTMLMetaElement setHttpEquiv:]):
6752        (-[DOMHTMLMetaElement name]):
6753        (-[DOMHTMLMetaElement setName:]):
6754        (-[DOMHTMLMetaElement scheme]):
6755        (-[DOMHTMLMetaElement setScheme:]):
6756        (-[DOMHTMLBaseElement setHref:]):
6757        (-[DOMHTMLBaseElement target]):
6758        (-[DOMHTMLBaseElement setTarget:]):
6759        (-[DOMHTMLStyleElement disabled]):
6760        (-[DOMHTMLStyleElement setDisabled:]):
6761        (-[DOMHTMLStyleElement media]):
6762        (-[DOMHTMLStyleElement setMedia:]):
6763        (-[DOMHTMLStyleElement type]):
6764        (-[DOMHTMLStyleElement setType:]):
6765        (-[DOMHTMLBodyElement aLink]):
6766        (-[DOMHTMLBodyElement setALink:]):
6767        (-[DOMHTMLBodyElement background]):
6768        (-[DOMHTMLBodyElement setBackground:]):
6769        (-[DOMHTMLBodyElement bgColor]):
6770        (-[DOMHTMLBodyElement setBgColor:]):
6771        (-[DOMHTMLBodyElement link]):
6772        (-[DOMHTMLBodyElement setLink:]):
6773        (-[DOMHTMLBodyElement text]):
6774        (-[DOMHTMLBodyElement setText:]):
6775        (-[DOMHTMLBodyElement vLink]):
6776        (-[DOMHTMLBodyElement setVLink:]):
6777        (-[DOMHTMLFormElement name]):
6778        (-[DOMHTMLFormElement setName:]):
6779        (-[DOMHTMLFormElement acceptCharset]):
6780        (-[DOMHTMLFormElement setAcceptCharset:]):
6781        (-[DOMHTMLFormElement action]):
6782        (-[DOMHTMLFormElement setAction:]):
6783        (-[DOMHTMLFormElement enctype]):
6784        (-[DOMHTMLFormElement setEnctype:]):
6785        (-[DOMHTMLFormElement method]):
6786        (-[DOMHTMLFormElement setMethod:]):
6787        (-[DOMHTMLFormElement target]):
6788        (-[DOMHTMLFormElement setTarget:]):
6789        (-[DOMHTMLTextAreaElement accessKey]):
6790        (-[DOMHTMLTextAreaElement setAccessKey:]):
6791        (-[DOMHTMLTextAreaElement cols]):
6792        (-[DOMHTMLTextAreaElement setCols:]):
6793        (-[DOMHTMLTextAreaElement disabled]):
6794        (-[DOMHTMLTextAreaElement setDisabled:]):
6795        (-[DOMHTMLTextAreaElement readOnly]):
6796        (-[DOMHTMLTextAreaElement setReadOnly:]):
6797        (-[DOMHTMLTextAreaElement rows]):
6798        (-[DOMHTMLTextAreaElement setRows:]):
6799        (-[DOMHTMLButtonElement accessKey]):
6800        (-[DOMHTMLButtonElement setAccessKey:]):
6801        (-[DOMHTMLButtonElement disabled]):
6802        (-[DOMHTMLButtonElement setDisabled:]):
6803        (-[DOMHTMLButtonElement value]):
6804        (-[DOMHTMLButtonElement setValue:]):
6805        (-[DOMHTMLLabelElement accessKey]):
6806        (-[DOMHTMLLabelElement setAccessKey:]):
6807        (-[DOMHTMLLabelElement htmlFor]):
6808        (-[DOMHTMLLabelElement setHtmlFor:]):
6809        (-[DOMHTMLLegendElement accessKey]):
6810        (-[DOMHTMLLegendElement setAccessKey:]):
6811        (-[DOMHTMLLegendElement align]):
6812        (-[DOMHTMLLegendElement setAlign:]):
6813        (-[DOMHTMLUListElement compact]):
6814        (-[DOMHTMLUListElement setCompact:]):
6815        (-[DOMHTMLUListElement type]):
6816        (-[DOMHTMLUListElement setType:]):
6817        (-[DOMHTMLOListElement start]):
6818        (-[DOMHTMLOListElement setStart:]):
6819        (-[DOMHTMLOListElement type]):
6820        (-[DOMHTMLOListElement setType:]):
6821        (-[DOMHTMLDListElement compact]):
6822        (-[DOMHTMLDListElement setCompact:]):
6823        (-[DOMHTMLDirectoryElement compact]):
6824        (-[DOMHTMLDirectoryElement setCompact:]):
6825        (-[DOMHTMLMenuElement compact]):
6826        (-[DOMHTMLMenuElement setCompact:]):
6827        (-[DOMHTMLQuoteElement cite]):
6828        (-[DOMHTMLQuoteElement setCite:]):
6829        (-[DOMHTMLDivElement align]):
6830        (-[DOMHTMLDivElement setAlign:]):
6831        (-[DOMHTMLParagraphElement align]):
6832        (-[DOMHTMLParagraphElement setAlign:]):
6833        (-[DOMHTMLHeadingElement align]):
6834        (-[DOMHTMLHeadingElement setAlign:]):
6835        (-[DOMHTMLPreElement width]):
6836        (-[DOMHTMLPreElement setWidth:]):
6837        (-[DOMHTMLBRElement clear]):
6838        (-[DOMHTMLBRElement setClear:]):
6839        (-[DOMHTMLBaseFontElement color]):
6840        (-[DOMHTMLBaseFontElement setColor:]):
6841        (-[DOMHTMLBaseFontElement face]):
6842        (-[DOMHTMLBaseFontElement setFace:]):
6843        (-[DOMHTMLBaseFontElement size]):
6844        (-[DOMHTMLBaseFontElement setSize:]):
6845        (-[DOMHTMLFontElement color]):
6846        (-[DOMHTMLFontElement setColor:]):
6847        (-[DOMHTMLFontElement face]):
6848        (-[DOMHTMLFontElement setFace:]):
6849        (-[DOMHTMLFontElement size]):
6850        (-[DOMHTMLFontElement setSize:]):
6851        (-[DOMHTMLHRElement align]):
6852        (-[DOMHTMLHRElement setAlign:]):
6853        (-[DOMHTMLHRElement noShade]):
6854        (-[DOMHTMLHRElement setNoShade:]):
6855        (-[DOMHTMLHRElement size]):
6856        (-[DOMHTMLHRElement setSize:]):
6857        (-[DOMHTMLHRElement width]):
6858        (-[DOMHTMLHRElement setWidth:]):
6859        (-[DOMHTMLModElement cite]):
6860        (-[DOMHTMLModElement setCite:]):
6861        (-[DOMHTMLModElement dateTime]):
6862        (-[DOMHTMLModElement setDateTime:]):
6863        (-[DOMHTMLAnchorElement accessKey]):
6864        (-[DOMHTMLAnchorElement setAccessKey:]):
6865        (-[DOMHTMLAnchorElement charset]):
6866        (-[DOMHTMLAnchorElement setCharset:]):
6867        (-[DOMHTMLAnchorElement coords]):
6868        (-[DOMHTMLAnchorElement setCoords:]):
6869        (-[DOMHTMLAnchorElement setHref:]):
6870        (-[DOMHTMLAnchorElement target]):
6871        (-[DOMHTMLAnchorElement setTarget:]):
6872        (-[DOMHTMLAnchorElement type]):
6873        (-[DOMHTMLAnchorElement setType:]):
6874        (-[DOMHTMLImageElement name]):
6875        (-[DOMHTMLImageElement setName:]):
6876        (-[DOMHTMLImageElement align]):
6877        (-[DOMHTMLImageElement setAlign:]):
6878        (-[DOMHTMLImageElement alt]):
6879        (-[DOMHTMLImageElement setAlt:]):
6880        (-[DOMHTMLImageElement border]):
6881        (-[DOMHTMLImageElement setBorder:]):
6882        (-[DOMHTMLImageElement height]):
6883        (-[DOMHTMLImageElement setHeight:]):
6884        (-[DOMHTMLImageElement hspace]):
6885        (-[DOMHTMLImageElement setHspace:]):
6886        (-[DOMHTMLImageElement isMap]):
6887        (-[DOMHTMLImageElement setIsMap:]):
6888        (-[DOMHTMLImageElement longDesc]):
6889        (-[DOMHTMLImageElement setLongDesc:]):
6890        (-[DOMHTMLImageElement setSrc:]):
6891        (-[DOMHTMLImageElement useMap]):
6892        (-[DOMHTMLImageElement setUseMap:]):
6893        (-[DOMHTMLImageElement vspace]):
6894        (-[DOMHTMLImageElement setVspace:]):
6895        (-[DOMHTMLImageElement width]):
6896        (-[DOMHTMLImageElement setWidth:]):
6897        (-[DOMHTMLObjectElement code]):
6898        (-[DOMHTMLObjectElement setCode:]):
6899        (-[DOMHTMLObjectElement align]):
6900        (-[DOMHTMLObjectElement setAlign:]):
6901        (-[DOMHTMLObjectElement archive]):
6902        (-[DOMHTMLObjectElement setArchive:]):
6903        (-[DOMHTMLObjectElement border]):
6904        (-[DOMHTMLObjectElement setBorder:]):
6905        (-[DOMHTMLObjectElement codeBase]):
6906        (-[DOMHTMLObjectElement setCodeBase:]):
6907        (-[DOMHTMLObjectElement codeType]):
6908        (-[DOMHTMLObjectElement setCodeType:]):
6909        (-[DOMHTMLObjectElement data]):
6910        (-[DOMHTMLObjectElement setData:]):
6911        (-[DOMHTMLObjectElement declare]):
6912        (-[DOMHTMLObjectElement setDeclare:]):
6913        (-[DOMHTMLObjectElement height]):
6914        (-[DOMHTMLObjectElement setHeight:]):
6915        (-[DOMHTMLObjectElement hspace]):
6916        (-[DOMHTMLObjectElement setHspace:]):
6917        (-[DOMHTMLObjectElement name]):
6918        (-[DOMHTMLObjectElement setName:]):
6919        (-[DOMHTMLObjectElement standby]):
6920        (-[DOMHTMLObjectElement setStandby:]):
6921        (-[DOMHTMLObjectElement tabIndex]):
6922        (-[DOMHTMLObjectElement setTabIndex:]):
6923        (-[DOMHTMLObjectElement type]):
6924        (-[DOMHTMLObjectElement setType:]):
6925        (-[DOMHTMLObjectElement useMap]):
6926        (-[DOMHTMLObjectElement setUseMap:]):
6927        (-[DOMHTMLObjectElement vspace]):
6928        (-[DOMHTMLObjectElement setVspace:]):
6929        (-[DOMHTMLObjectElement width]):
6930        (-[DOMHTMLObjectElement setWidth:]):
6931        (-[DOMHTMLParamElement name]):
6932        (-[DOMHTMLParamElement setName:]):
6933        (-[DOMHTMLParamElement type]):
6934        (-[DOMHTMLParamElement setType:]):
6935        (-[DOMHTMLParamElement value]):
6936        (-[DOMHTMLParamElement setValue:]):
6937        (-[DOMHTMLParamElement valueType]):
6938        (-[DOMHTMLParamElement setValueType:]):
6939        (-[DOMHTMLAppletElement align]):
6940        (-[DOMHTMLAppletElement setAlign:]):
6941        (-[DOMHTMLAppletElement alt]):
6942        (-[DOMHTMLAppletElement setAlt:]):
6943        (-[DOMHTMLAppletElement archive]):
6944        (-[DOMHTMLAppletElement setArchive:]):
6945        (-[DOMHTMLAppletElement code]):
6946        (-[DOMHTMLAppletElement setCode:]):
6947        (-[DOMHTMLAppletElement codeBase]):
6948        (-[DOMHTMLAppletElement setCodeBase:]):
6949        (-[DOMHTMLAppletElement height]):
6950        (-[DOMHTMLAppletElement setHeight:]):
6951        (-[DOMHTMLAppletElement hspace]):
6952        (-[DOMHTMLAppletElement setHspace:]):
6953        (-[DOMHTMLAppletElement name]):
6954        (-[DOMHTMLAppletElement setName:]):
6955        (-[DOMHTMLAppletElement object]):
6956        (-[DOMHTMLAppletElement setObject:]):
6957        (-[DOMHTMLAppletElement vspace]):
6958        (-[DOMHTMLAppletElement setVspace:]):
6959        (-[DOMHTMLAppletElement width]):
6960        (-[DOMHTMLAppletElement setWidth:]):
6961        (-[DOMHTMLMapElement name]):
6962        (-[DOMHTMLMapElement setName:]):
6963        (-[DOMHTMLAreaElement accessKey]):
6964        (-[DOMHTMLAreaElement setAccessKey:]):
6965        (-[DOMHTMLAreaElement alt]):
6966        (-[DOMHTMLAreaElement setAlt:]):
6967        (-[DOMHTMLAreaElement coords]):
6968        (-[DOMHTMLAreaElement setCoords:]):
6969        (-[DOMHTMLAreaElement setHref:]):
6970        (-[DOMHTMLAreaElement noHref]):
6971        (-[DOMHTMLAreaElement setNoHref:]):
6972        (-[DOMHTMLAreaElement shape]):
6973        (-[DOMHTMLAreaElement setShape:]):
6974        (-[DOMHTMLAreaElement tabIndex]):
6975        (-[DOMHTMLAreaElement setTabIndex:]):
6976        (-[DOMHTMLAreaElement target]):
6977        (-[DOMHTMLAreaElement setTarget:]):
6978        (-[DOMHTMLScriptElement text]):
6979        (-[DOMHTMLScriptElement setText:]):
6980        (-[DOMHTMLScriptElement charset]):
6981        (-[DOMHTMLScriptElement setCharset:]):
6982        (-[DOMHTMLScriptElement defer]):
6983        (-[DOMHTMLScriptElement setDefer:]):
6984        (-[DOMHTMLScriptElement src]):
6985        (-[DOMHTMLScriptElement setSrc:]):
6986        (-[DOMHTMLScriptElement type]):
6987        (-[DOMHTMLScriptElement setType:]):
6988        (-[DOMHTMLTableCaptionElement align]):
6989        (-[DOMHTMLTableCaptionElement setAlign:]):
6990        (-[DOMHTMLTableSectionElement align]):
6991        (-[DOMHTMLTableSectionElement setAlign:]):
6992        (-[DOMHTMLTableSectionElement ch]):
6993        (-[DOMHTMLTableSectionElement setCh:]):
6994        (-[DOMHTMLTableSectionElement chOff]):
6995        (-[DOMHTMLTableSectionElement setChOff:]):
6996        (-[DOMHTMLTableSectionElement vAlign]):
6997        (-[DOMHTMLTableSectionElement setVAlign:]):
6998        (-[DOMHTMLTableElement align]):
6999        (-[DOMHTMLTableElement setAlign:]):
7000        (-[DOMHTMLTableElement bgColor]):
7001        (-[DOMHTMLTableElement setBgColor:]):
7002        (-[DOMHTMLTableElement border]):
7003        (-[DOMHTMLTableElement setBorder:]):
7004        (-[DOMHTMLTableElement cellPadding]):
7005        (-[DOMHTMLTableElement setCellPadding:]):
7006        (-[DOMHTMLTableElement cellSpacing]):
7007        (-[DOMHTMLTableElement setCellSpacing:]):
7008        (-[DOMHTMLTableElement frameBorders]):
7009        (-[DOMHTMLTableElement setFrameBorders:]):
7010        (-[DOMHTMLTableElement rules]):
7011        (-[DOMHTMLTableElement setRules:]):
7012        (-[DOMHTMLTableElement summary]):
7013        (-[DOMHTMLTableElement setSummary:]):
7014        (-[DOMHTMLTableElement width]):
7015        (-[DOMHTMLTableElement setWidth:]):
7016        (-[DOMHTMLTableColElement align]):
7017        (-[DOMHTMLTableColElement setAlign:]):
7018        (-[DOMHTMLTableColElement ch]):
7019        (-[DOMHTMLTableColElement setCh:]):
7020        (-[DOMHTMLTableColElement chOff]):
7021        (-[DOMHTMLTableColElement setChOff:]):
7022        (-[DOMHTMLTableColElement span]):
7023        (-[DOMHTMLTableColElement setSpan:]):
7024        (-[DOMHTMLTableColElement vAlign]):
7025        (-[DOMHTMLTableColElement setVAlign:]):
7026        (-[DOMHTMLTableColElement width]):
7027        (-[DOMHTMLTableColElement setWidth:]):
7028        (-[DOMHTMLTableRowElement align]):
7029        (-[DOMHTMLTableRowElement setAlign:]):
7030        (-[DOMHTMLTableRowElement bgColor]):
7031        (-[DOMHTMLTableRowElement setBgColor:]):
7032        (-[DOMHTMLTableRowElement ch]):
7033        (-[DOMHTMLTableRowElement setCh:]):
7034        (-[DOMHTMLTableRowElement chOff]):
7035        (-[DOMHTMLTableRowElement setChOff:]):
7036        (-[DOMHTMLTableRowElement vAlign]):
7037        (-[DOMHTMLTableRowElement setVAlign:]):
7038        (-[DOMHTMLTableCellElement abbr]):
7039        (-[DOMHTMLTableCellElement setAbbr:]):
7040        (-[DOMHTMLTableCellElement align]):
7041        (-[DOMHTMLTableCellElement setAlign:]):
7042        (-[DOMHTMLTableCellElement axis]):
7043        (-[DOMHTMLTableCellElement setAxis:]):
7044        (-[DOMHTMLTableCellElement bgColor]):
7045        (-[DOMHTMLTableCellElement setBgColor:]):
7046        (-[DOMHTMLTableCellElement ch]):
7047        (-[DOMHTMLTableCellElement setCh:]):
7048        (-[DOMHTMLTableCellElement chOff]):
7049        (-[DOMHTMLTableCellElement setChOff:]):
7050        (-[DOMHTMLTableCellElement colSpan]):
7051        (-[DOMHTMLTableCellElement setColSpan:]):
7052        (-[DOMHTMLTableCellElement headers]):
7053        (-[DOMHTMLTableCellElement setHeaders:]):
7054        (-[DOMHTMLTableCellElement height]):
7055        (-[DOMHTMLTableCellElement setHeight:]):
7056        (-[DOMHTMLTableCellElement noWrap]):
7057        (-[DOMHTMLTableCellElement setNoWrap:]):
7058        (-[DOMHTMLTableCellElement rowSpan]):
7059        (-[DOMHTMLTableCellElement setRowSpan:]):
7060        (-[DOMHTMLTableCellElement scope]):
7061        (-[DOMHTMLTableCellElement setScope:]):
7062        (-[DOMHTMLTableCellElement vAlign]):
7063        (-[DOMHTMLTableCellElement setVAlign:]):
7064        (-[DOMHTMLTableCellElement width]):
7065        (-[DOMHTMLTableCellElement setWidth:]):
7066        (-[DOMHTMLFrameSetElement rows]):
7067        (-[DOMHTMLFrameSetElement setRows:]):
7068        (-[DOMHTMLFrameSetElement cols]):
7069        (-[DOMHTMLFrameSetElement setCols:]):
7070        (-[DOMHTMLFrameElement frameBorder]):
7071        (-[DOMHTMLFrameElement setFrameBorder:]):
7072        (-[DOMHTMLFrameElement longDesc]):
7073        (-[DOMHTMLFrameElement setLongDesc:]):
7074        (-[DOMHTMLFrameElement marginHeight]):
7075        (-[DOMHTMLFrameElement setMarginHeight:]):
7076        (-[DOMHTMLFrameElement marginWidth]):
7077        (-[DOMHTMLFrameElement setMarginWidth:]):
7078        (-[DOMHTMLFrameElement name]):
7079        (-[DOMHTMLFrameElement setName:]):
7080        (-[DOMHTMLFrameElement noResize]):
7081        (-[DOMHTMLFrameElement setNoResize:]):
7082        (-[DOMHTMLFrameElement scrolling]):
7083        (-[DOMHTMLFrameElement setScrolling:]):
7084        (-[DOMHTMLFrameElement src]):
7085        (-[DOMHTMLFrameElement setSrc:]):
7086        (-[DOMHTMLIFrameElement align]):
7087        (-[DOMHTMLIFrameElement setAlign:]):
7088        (-[DOMHTMLIFrameElement frameBorder]):
7089        (-[DOMHTMLIFrameElement setFrameBorder:]):
7090        (-[DOMHTMLIFrameElement height]):
7091        (-[DOMHTMLIFrameElement setHeight:]):
7092        (-[DOMHTMLIFrameElement longDesc]):
7093        (-[DOMHTMLIFrameElement setLongDesc:]):
7094        (-[DOMHTMLIFrameElement marginHeight]):
7095        (-[DOMHTMLIFrameElement setMarginHeight:]):
7096        (-[DOMHTMLIFrameElement marginWidth]):
7097        (-[DOMHTMLIFrameElement setMarginWidth:]):
7098        (-[DOMHTMLIFrameElement name]):
7099        (-[DOMHTMLIFrameElement setName:]):
7100        (-[DOMHTMLIFrameElement noResize]):
7101        (-[DOMHTMLIFrameElement setNoResize:]):
7102        (-[DOMHTMLIFrameElement scrolling]):
7103        (-[DOMHTMLIFrameElement setScrolling:]):
7104        (-[DOMHTMLIFrameElement src]):
7105        (-[DOMHTMLIFrameElement setSrc:]):
7106        (-[DOMHTMLIFrameElement width]):
7107        (-[DOMHTMLIFrameElement setWidth:]):
7108        (-[DOMHTMLEmbedElement align]):
7109        (-[DOMHTMLEmbedElement setAlign:]):
7110        (-[DOMHTMLEmbedElement height]):
7111        (-[DOMHTMLEmbedElement setHeight:]):
7112        (-[DOMHTMLEmbedElement name]):
7113        (-[DOMHTMLEmbedElement setName:]):
7114        (-[DOMHTMLEmbedElement src]):
7115        (-[DOMHTMLEmbedElement setSrc:]):
7116        (-[DOMHTMLEmbedElement type]):
7117        (-[DOMHTMLEmbedElement setType:]):
7118        (-[DOMHTMLEmbedElement width]):
7119        (-[DOMHTMLEmbedElement setWidth:]):
7120        * kwq/KWQAccObject.mm:
7121        (-[KWQAccObject role]):
7122        (-[KWQAccObject helpText]):
7123        (-[KWQAccObject title]):
7124        (-[KWQAccObject accessibilityDescription]):
7125        (-[KWQAccObject accessibilityIsIgnored]):
7126        (-[KWQAccObject accessibilityAttributeValue:]):
7127        * kwq/KWQKHTMLPart.cpp:
7128        (KWQKHTMLPart::isFrameSet):
7129        * kwq/KWQKHTMLPart.mm:
7130        (scanForForm):
7131        (KWQKHTMLPart::currentForm):
7132        (KWQKHTMLPart::searchForLabelsBeforeElement):
7133        (KWQKHTMLPart::matchLabelsAgainstElement):
7134        (KWQKHTMLPart::fileWrapperForElement):
7135        (listParent):
7136        (isTextFirstInListItem):
7137        (KWQKHTMLPart::attributedString):
7138        (KWQKHTMLPart::styleForSelectionStart):
7139        (KWQKHTMLPart::setSelectionFromNone):
7140        * kwq/WebCoreBridge.mm:
7141        (inputElementFromDOMElement):
7142        (formElementFromDOMElement):
7143        (-[WebCoreBridge elementAtPoint:]):
7144
71452005-07-29  David Harrison  <harrison@apple.com>
7146
7147        Test cases added: n/a
7148
7149        Update layout tests for my previous change.
7150        
7151        * layout-tests/fast/dom/quadraticCurveTo-expected.txt:
7152        * layout-tests/fast/table/border-collapsing/004-expected.txt:
7153
71542005-07-29  David Harrison  <harrison@apple.com>
7155
7156        Reviewed by Dave Hyatt (rendering) and Maciej (editing and performance improvements).
7157
7158        Test cases added: Existing tab-related basic editing tests were updated.  More complex tests are coming soon.
7159
7160        <rdar://problem/3792529> REGRESSION (Mail): Tabs do not work the way they did in Panther (especially useful in plain text mail)
7161        
7162        Basic strategy is to put tabs into spans with white-space:pre style, and
7163        render them with tabs stops every 8th space, where the space width and
7164        the left margin are those of the enclosing block.
7165
7166        * khtml/editing/apply_style_command.cpp:
7167        (khtml::ApplyStyleCommand::removeCSSStyle):
7168        (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
7169        * khtml/editing/delete_selection_command.cpp:
7170        (khtml::DeleteSelectionCommand::saveTypingStyleState):
7171        * khtml/editing/edit_command.cpp:
7172        (khtml::EditCommand::styleAtPosition):
7173        * khtml/editing/html_interchange.h:
7174        * khtml/editing/htmlediting.cpp:
7175        (khtml::isSpecialElement):
7176        (khtml::isTabSpanNode):
7177        (khtml::isTabSpanTextNode):
7178        (khtml::positionBeforeTabSpan):
7179        (khtml::createTabSpanElement):
7180        * khtml/editing/htmlediting.h:
7181        * khtml/editing/insert_text_command.cpp:
7182        (khtml::InsertTextCommand::prepareForTextInsertion):
7183        (khtml::InsertTextCommand::input):
7184        (khtml::InsertTextCommand::insertTab):
7185        * khtml/editing/insert_text_command.h:
7186        * khtml/editing/markup.cpp:
7187        (khtml::createParagraphContentsFromString):
7188        (khtml::createFragmentFromText):
7189        * khtml/editing/replace_selection_command.cpp:
7190        (khtml::ReplacementFragment::removeStyleNodes):
7191        * khtml/html/htmltokenizer.cpp:
7192        (khtml::HTMLTokenizer::begin):
7193        (khtml::HTMLTokenizer::processListing):
7194        (khtml::HTMLTokenizer::parseSpecial):
7195        (khtml::HTMLTokenizer::parseText):
7196        (khtml::HTMLTokenizer::parseEntity):
7197        (khtml::HTMLTokenizer::parseTag):
7198        (khtml::HTMLTokenizer::addPending):
7199        (khtml::HTMLTokenizer::write):
7200        * khtml/html/htmltokenizer.h:
7201        (khtml::HTMLTokenizer::):
7202        * khtml/rendering/bidi.cpp:
7203        (khtml::addRun):
7204        (khtml::RenderBlock::tabWidth):
7205        (khtml::RenderBlock::computeHorizontalPositionsForLine):
7206        (khtml::RenderBlock::layoutInlineChildren):
7207        (khtml::RenderBlock::skipWhitespace):
7208        (khtml::RenderBlock::findNextLineBreak):
7209        (khtml::RenderBlock::checkLinesForTextOverflow):
7210        * khtml/rendering/break_lines.cpp:
7211        (khtml::isBreakable):
7212        * khtml/rendering/font.cpp:
7213        (Font::drawHighlightForText):
7214        (Font::drawText):
7215        (Font::floatWidth):
7216        (Font::floatCharacterWidths):
7217        (Font::checkSelectionPoint):
7218        (Font::width):
7219        * khtml/rendering/font.h:
7220        * khtml/rendering/render_block.cpp:
7221        (khtml:::RenderFlow):
7222        (khtml::RenderBlock::setStyle):
7223        (khtml::stripTrailingSpace):
7224        (khtml::RenderBlock::calcInlineMinMaxWidth):
7225        * khtml/rendering/render_block.h:
7226        * khtml/rendering/render_br.h:
7227        (khtml::RenderBR::width):
7228        * khtml/rendering/render_flexbox.cpp:
7229        (khtml::RenderFlexibleBox::layoutVerticalBox):
7230        * khtml/rendering/render_image.cpp:
7231        (RenderImage::setPixmap):
7232        (RenderImage::paint):
7233        * khtml/rendering/render_line.cpp:
7234        (khtml::EllipsisBox::paint):
7235        * khtml/rendering/render_line.h:
7236        (khtml::InlineBox::width):
7237        (khtml::InlineBox::xPos):
7238        (khtml::InlineBox::yPos):
7239        (khtml::InlineBox::height):
7240        (khtml::InlineBox::baseline):
7241        * khtml/rendering/render_list.cpp:
7242        (RenderListMarker::paint):
7243        (RenderListMarker::calcMinMaxWidth):
7244        * khtml/rendering/render_object.cpp:
7245        (RenderObject::tabWidth):
7246        (RenderObject::recalcMinMaxWidths):
7247        * khtml/rendering/render_object.h:
7248        * khtml/rendering/render_replaced.cpp:
7249        * khtml/rendering/render_text.cpp:
7250        (InlineTextBox::selectionRect):
7251        (InlineTextBox::paint):
7252        (InlineTextBox::paintSelection):
7253        (InlineTextBox::paintMarkedTextBackground):
7254        (InlineTextBox::textPos):
7255        (InlineTextBox::offsetForPosition):
7256        (InlineTextBox::positionForOffset):
7257        (RenderText::cacheWidths):
7258        (RenderText::widthFromCache):
7259        (RenderText::trimmedMinMaxWidth):
7260        (RenderText::calcMinMaxWidth):
7261        (RenderText::containsOnlyWhitespace):
7262        (RenderText::width):
7263        * khtml/rendering/render_text.h:
7264        * kwq/KWQFontMetrics.h:
7265        * kwq/KWQFontMetrics.mm:
7266        (QFontMetrics::width):
7267        (QFontMetrics::charWidth):
7268        (QFontMetrics::floatWidth):
7269        (QFontMetrics::floatCharacterWidths):
7270        (QFontMetrics::checkSelectionPoint):
7271        (QFontMetrics::boundingRect):
7272        (QFontMetrics::size):
7273        * kwq/KWQPainter.h:
7274        * kwq/KWQPainter.mm:
7275        (QPainter::drawRect):
7276        (QPainter::drawLine):
7277        (QPainter::drawText):
7278        (QPainter::drawHighlightForText):
7279        (_fillRectXX):
7280        (QPainter::fillRect):
7281        * kwq/WebCoreTextRenderer.h:
7282        * kwq/WebCoreTextRendererFactory.mm:
7283        (WebCoreInitializeEmptyTextStyle):
7284        * layout-tests/editing/deleting/delete-tab-001-expected.txt:
7285        * layout-tests/editing/deleting/delete-tab-001.html:
7286        * layout-tests/editing/deleting/delete-tab-002-expected.txt:
7287        * layout-tests/editing/deleting/delete-tab-002.html:
7288        * layout-tests/editing/deleting/delete-tab-003-expected.txt:
7289        * layout-tests/editing/deleting/delete-tab-003.html:
7290        * layout-tests/editing/deleting/delete-tab-004-expected.txt:
7291        * layout-tests/editing/deleting/delete-tab-004.html:
7292        * layout-tests/editing/inserting/insert-tab-001-expected.txt:
7293        * layout-tests/editing/inserting/insert-tab-002-expected.txt:
7294        * layout-tests/editing/inserting/insert-tab-003-expected.txt:
7295        * layout-tests/editing/inserting/insert-tab-004-expected.txt:
7296        * layout-tests/fast/js/string-replace-2-expected.txt:
7297        * layout-tests/fast/table/039-expected.txt:
7298        * layout-tests/fast/table/border-collapsing/004-expected.txt:
7299        * layout-tests/fast/tokenizer/script_extra_close-expected.txt:
7300
73012005-07-29  David Hyatt  <hyatt@apple.com>
7302
7303	(1) Fixes khtml-user-select: none to have the following additional behavior (that matches Firefox's implementation of the property as well)
7304	(a) If you mouse down (or click, double click, triple click) inside a "none" region, the selection should not be cleared or changed
7305        (b) If you drag from within a "none" region out to a selectable region, so what, no selection should be changed or started.
7306
7307	(2) Adds a new value to khtml-user-select called "element" that is used for any object that should have the behavior of (a) and (b) above (but that is selectable aside from that).  This includes images, links, buttons, and so on.  html4.css is patched to add support for these objects.
7308	    This feature fixes the big contenteditable issue and selection is no longer cleared now when you click on these controls (or on links).  This behavior matches other browsers.
7309
7310	(3) :active and :hover have been substantially reworked.
7311	    (a) If you mouse down on a selectable region, then the behavior is unchanged.  :hover/:active is completely frozen, and they aren't updated at all.
7312	    (b) If you mouse down on a non-selectable region and start moving, then the behavior has changed.  Instead of not updating at all, we mark the chain at the time the mouse goes down, and we restrict :hover/:active updates to only apply to elements that are in that chain.  This yields perfect hover/active control behavior, even when :active has been applied hierarchically.
7313	    (c) :hover has moved onto the node and is no longer on the renderobject (allowing them to be consistent).
7314	
7315        Reviewed by john
7316
7317        * khtml/css/cssparser.cpp:
7318        (CSSParser::parseValue):
7319        * khtml/css/cssstyleselector.cpp:
7320        (khtml::CSSStyleSelector::canShareStyleWithElement):
7321        (khtml::CSSStyleSelector::checkOneSelector):
7322        (khtml::CSSStyleSelector::applyProperty):
7323        * khtml/css/html4.css:
7324        * khtml/khtml_part.cpp:
7325        (KHTMLPart::setSelection):
7326        (KHTMLPart::selectClosestWordFromMouseEvent):
7327        (KHTMLPart::handleMousePressEventTripleClick):
7328        (KHTMLPart::handleMousePressEventSingleClick):
7329        (KHTMLPart::handleMouseMoveEventSelection):
7330        (KHTMLPart::khtmlMouseReleaseEvent):
7331        * khtml/khtml_part.h:
7332        (KHTMLPart::mouseDownMayStartSelect):
7333        * khtml/khtmlview.cpp:
7334        (KHTMLView::viewportMouseMoveEvent):
7335        * khtml/rendering/render_layer.cpp:
7336        (RenderLayer::hitTest):
7337        (RenderLayer::updateHoverActiveState):
7338        * khtml/rendering/render_object.cpp:
7339        (RenderObject::RenderObject):
7340        (RenderObject::information):
7341        * khtml/rendering/render_object.h:
7342        (khtml::RenderObject::isRunIn):
7343        (khtml::RenderObject::setInline):
7344        (khtml::RenderObject::NodeInfo::NodeInfo):
7345        (khtml::RenderObject::NodeInfo::mouseMove):
7346        * khtml/rendering/render_style.h:
7347        (khtml::):
7348        * khtml/xml/dom_docimpl.cpp:
7349        (DocumentImpl::DocumentImpl):
7350        (DocumentImpl::~DocumentImpl):
7351        (DocumentImpl::prepareMouseEvent):
7352        (DocumentImpl::setActiveNode):
7353        * khtml/xml/dom_docimpl.h:
7354        (DOM::DocumentImpl::activeNode):
7355        * khtml/xml/dom_nodeimpl.cpp:
7356        (DOM::ContainerNodeImpl::setHovered):
7357        * khtml/xml/dom_nodeimpl.h:
7358        (DOM::NodeImpl::inActiveChain):
7359        (DOM::NodeImpl::hovered):
7360        (DOM::NodeImpl::setInActiveChain):
7361        (DOM::NodeImpl::setHovered):
7362        * kwq/KWQKHTMLPart.h:
7363        (KWQKHTMLPart::mouseDownMayStartSelect):
7364        * kwq/KWQKHTMLPart.mm:
7365        (KWQKHTMLPart::canMouseDownStartSelect):
7366        (KWQKHTMLPart::khtmlMousePressEvent):
7367
73682005-07-29  Justin Garcia  <justin.garcia@apple.com>
7369
7370        Reviewed by geoff
7371        
7372        Fixed problem with patch that I just backed out:
7373        Fix for <rdar://problems/4038408&4154187&4125381&4125087> 
7374            Mail: Editing at the bottom of a quoted block makes the text blue in certain cases
7375
7376        Test cases added:
7377        * layout-tests/editing/deleting/delete-4038408-fix-expected.txt: Added.
7378        * layout-tests/editing/deleting/delete-4038408-fix.html: Added.
7379        
7380        * khtml/editing/delete_selection_command.cpp:
7381        (khtml::DeleteSelectionCommand::DeleteSelectionCommand):
7382        (khtml::DeleteSelectionCommand::saveTypingStyleState):
7383        (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
7384        (khtml::DeleteSelectionCommand::clearTransientState):
7385        * khtml/editing/delete_selection_command.h:        
7386
73872005-07-29  Geoffrey Garen  <ggaren@apple.com>
7388
7389        - Oops. Last checkin omitted the actual test for:
7390        <rdar://problem/3461547> can't use document.writeln() on windows opened via window.open("about:blank") in same function
7391
7392        * manual-tests/write-after-open.html: Added.
7393
73942005-07-29  Eric Seidel  <eseidel@apple.com>
7395
7396        No review necessary
7397
7398        * kdom/xpath/impl/parser/xpath.ypp:
7399        Turned off "verbose errors" which was generating a warning
7400        during compile (Bison 1.28 bug).  This is unused code in kdom
7401        xpath support, thus I didn't ask for review.
7402
74032005-07-29  Geoffrey Garen  <ggaren@apple.com>
7404        
7405        - fixed:
7406        <rdar://problem/3461547> can't use document.writeln() on windows opened via window.open("about:blank") in same function
7407        <rdar://problem/3725977> A_WINDOW.document.write() content overwritten when first parameter to window.open is provided
7408        <rdar://problem/4101498> SAP: window.write in same call chain as window.open fails to write if URL parameter is provided
7409        <rdar://problem/4179028> document.write in same function as window.open fails to write new content (4056)
7410        http://bugs.webkit.org/show_bug.cgi?id=4056 document.write in same function as window.open fails to write new content
7411
7412        Reviewed by darin.
7413
7414        Test cases added:
7415        * manual-tests/resources/write-after-open-popup.html: Added.
7416
7417        * khtml/khtml_part.cpp:
7418        (KHTMLPart::didExplicitOpen): now cancels any pending redirection
7419
74202005-07-29  John Sullivan  <sullivan@apple.com>
7421
7422        Reviewed by Dave Hyatt.
7423
7424        Test cases added: none, this only affects Safari forms autofill
7425
7426        - WebCore part of <rdar://problem/4187404> Redo form SPI so that it doesn't rely on NSViews
7427
7428        * khtml/html/html_formimpl.cpp:
7429        added a FIXME about a bug I ran into while doing this autofill stuff
7430        
7431        * kwq/DOMHTML.mm:
7432        (viewForElement):
7433        Moved this function here (was in WebCoreBridge), and simplified it a little. This will go
7434        away when we have non-NSView ways of implementing all the methods below.
7435        (-[DOMHTMLInputElement _displayedValue]):
7436        moved here from Safari
7437        (-[DOMHTMLInputElement _setDisplayedValue:]):
7438        ditto
7439        (-[DOMHTMLInputElement _rectOnScreen]):
7440        ditto
7441        (-[DOMHTMLInputElement _replaceCharactersInRange:withString:selectingFromIndex:]):
7442        ditto
7443        (-[DOMHTMLInputElement _selectedRange]):
7444        ditto
7445        (-[DOMHTMLInputElement _setBackgroundColor:]):
7446        ditto
7447        (-[DOMHTMLSelectElement _activateItemAtIndex:]):
7448        ditto
7449        (-[DOMHTMLSelectElement _optionLabels]):
7450        ditto
7451
7452        * kwq/DOMPrivate.h:
7453        moved DOMHTMLInputElement and DOMHTMLSelectElement categories here from Safari
7454        
7455        * kwq/WebCoreBridge.h:
7456        * kwq/WebCoreBridge.mm:
7457        removed viewForElement:, which had been added as a temporary measure while I did this conversion.
7458
74592005-07-29  Eric Seidel  <eseidel@apple.com>
7460
7461        Reviewed by sullivan.
7462
7463        * WebCore+SVG/DrawCanvasItem.h: Added.
7464        * WebCore+SVG/DrawCanvasItem.mm: Added.
7465        * WebCore+SVG/DrawCanvasItemPrivate.h: Added.
7466        * WebCore+SVG/DrawDocument.h: Added.
7467        * WebCore+SVG/DrawDocument.mm: Added.
7468        * WebCore+SVG/DrawDocumentPrivate.h: Added.
7469        * WebCore+SVG/DrawView.h: Added.
7470        * WebCore+SVG/DrawView.mm: Added.
7471        * WebCore+SVG/DrawViewPrivate.h: Added.
7472        * WebCore+SVG/NSSVGImageRep.h: Added.
7473        * WebCore+SVG/NSSVGImageRep.m: Added.
7474        Temporary SPI to make it possible to write Obj-C test applications.
7475        http://bugs.webkit.org/show_bug.cgi?id=4155
7476
74772005-07-29  Justin Garcia  <justin.garcia@apple.com>
7478
7479        Reviewed by harrison
7480        
7481        Backing out my recent change as it causes a layout test failure in Deployment mode
7482
7483        * khtml/editing/delete_selection_command.cpp:
7484        (khtml::DeleteSelectionCommand::saveTypingStyleState):
7485        (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
7486        (khtml::DeleteSelectionCommand::clearTransientState):
7487        * khtml/editing/delete_selection_command.h:
7488        * layout-tests/editing/deleting/delete-4038408-fix-expected.txt: Removed.
7489        * layout-tests/editing/deleting/delete-4038408-fix.html: Removed.
7490
74912005-07-28  Eric Seidel  <eseidel@apple.com>
7492
7493        Reviewed by darin, eseidel
7494        Submitted by Ben La Monica <ben.lamonica@gmail.com>
7495
7496        * kdom/css/impl/kdomparsercss.y: commented out %destructor %verbose
7497        * kdom/xpath/impl/parser/xpath.ypp: added missing definitions
7498        Fixes kdom to build with bison 1.28
7499        http://bugs.webkit.org/show_bug.cgi?id=3936
7500
75012005-07-28  Eric Seidel  <eseidel@apple.com>
7502
7503        Reviewed by mjs.
7504
7505        * WebCore.xcodeproj/project.pbxproj: Added SVG files back.
7506        * kdom/css/CSSCharsetRule.cpp:
7507        * kdom/css/CSSFontFaceRule.cpp:
7508        * kdom/css/CSSImportRule.cpp:
7509        * kdom/css/CSSMediaRule.cpp:
7510        * kdom/css/CSSPageRule.cpp:
7511        * kdom/css/CSSPrimitiveValue.cpp:
7512        * kdom/css/CSSRule.cpp:
7513        * kdom/css/CSSRuleList.cpp:
7514        * kdom/css/CSSStyleDeclaration.cpp:
7515        * kdom/css/CSSStyleRule.cpp:
7516        * kdom/css/CSSStyleSheet.cpp:
7517        * kdom/css/CSSValue.cpp:
7518        * kdom/css/CSSValueList.cpp:
7519        * kdom/css/Counter.cpp:
7520        * kdom/css/DocumentStyle.cpp:
7521        * kdom/css/MediaList.cpp:
7522        * kdom/css/RGBColor.cpp:
7523        * kdom/css/Rect.cpp:
7524        * kdom/css/StyleSheet.cpp:
7525        * kdom/css/StyleSheetList.cpp:
7526        * kdom/ecma/DOMLookup.h: Hacked around mjs's latest JSC change.
7527        Fixed #include statements to build under Xcode 2.1.
7528        http://bugs.webkit.org/show_bug.cgi?id=4154
7529
75302005-07-28  David Hyatt  <hyatt@apple.com>
7531
7532	Give the theme a shot at deciding when to repaint when various control states change.
7533	Remove buggy code that was resigning first responder in next/previous key view (tested
7534	extensively and found this code to not be needed).
7535
7536        Reviewed by darin and chris
7537
7538        * khtml/html/html_formimpl.cpp:
7539        (DOM::HTMLGenericFormElementImpl::parseMappedAttribute):
7540        (DOM::HTMLInputElementImpl::setChecked):
7541        * khtml/rendering/render_layer.cpp:
7542        (RenderLayer::updateHoverActiveState):
7543        * khtml/rendering/render_theme.cpp:
7544        (khtml::RenderTheme::stateChanged):
7545        * khtml/rendering/render_theme.h:
7546        (khtml::):
7547        * khtml/xml/dom_nodeimpl.cpp:
7548        (DOM::ContainerNodeImpl::setActive):
7549        * kwq/KWQButton.mm:
7550        (-[KWQButton nextKeyView]):
7551        (-[KWQButton previousKeyView]):
7552        * kwq/KWQKHTMLPart.mm:
7553        (KWQKHTMLPart::setDisplaysWithFocusAttributes):
7554
75552005-07-28  David Hyatt  <hyatt@apple.com>
7556
7557	Implement support for the :checked, :enabled and :disabled pseudo-classes.
7558	
7559        Reviewed by john
7560
7561        * khtml/css/css_base.cpp:
7562        (CSSSelector::extractPseudoType):
7563        * khtml/css/css_base.h:
7564        (DOM::CSSSelector::):
7565        * khtml/css/cssstyleselector.cpp:
7566        (khtml::CSSStyleSelector::checkOneSelector):
7567        * khtml/html/html_formimpl.h:
7568        (DOM::HTMLGenericFormElementImpl::isControl):
7569        (DOM::HTMLGenericFormElementImpl::isEnabled):
7570        (DOM::HTMLInputElementImpl::isChecked):
7571        * khtml/rendering/render_theme.cpp:
7572        (khtml::RenderTheme::isChecked):
7573        (khtml::RenderTheme::isEnabled):
7574        * khtml/xml/dom_nodeimpl.h:
7575        (DOM::NodeImpl::isControl):
7576        (DOM::NodeImpl::isEnabled):
7577        (DOM::NodeImpl::isChecked):
7578
75792005-07-28  Beth Dakin  <bdakin@apple.com>
7580
7581	This is a fix for <rdar://problem/4190684>. Hyatt and I
7582	(okay, mostly Hyatt) wrote this for Cayenne so that they
7583	can change the value of a style of a rule and have everything
7584	update dynamically without causing a crash.         
7585
7586	Reviewed by Hyatt
7587
7588        Test cases added: (NONE)
7589
7590        * khtml/css/css_valueimpl.cpp:
7591        (DOM::CSSMutableStyleDeclarationImpl::setChanged):
7592
75932005-07-28  Chris Blumenberg  <cblu@apple.com>
7594
7595	Moved non-AppKit related code from RenderThemeMac to RenderTheme so potentially other RenderTheme subclasses can inherit more behavior.
7596
7597        Reviewed by hyatt.
7598
7599        * khtml/rendering/render_theme.cpp:
7600        (khtml::RenderTheme::baselinePosition):
7601        (khtml::RenderTheme::isControlContainer):
7602        (khtml::RenderTheme::sizeForFont):
7603        (khtml::RenderTheme::setSizeFromFont):
7604        (khtml::RenderTheme::setCheckboxSize):
7605        (khtml::RenderTheme::adjustCheckboxStyle):
7606        * khtml/rendering/render_theme.h:
7607        * khtml/rendering/render_theme_mac.h:
7608        * khtml/rendering/render_theme_mac.mm:
7609        (khtml::RenderThemeMac::sizeForFont):
7610
76112005-07-28  David Hyatt  <hyatt@apple.com>
7612
7613	Make sure :focus is not matched when the window is not key.
7614	This involved adding a check to the style selector and also
7615	removing the hack from the painter that turned off outline:auto
7616	drawing when the window wasn't key.
7617
7618	Added support for control tinting when the window resigns/becomes
7619	key.
7620	
7621        Reviewed by john
7622
7623        * khtml/css/cssstyleselector.cpp:
7624        (khtml::CSSStyleSelector::checkOneSelector):
7625        * khtml/khtml_part.h:
7626        (KHTMLPart::displaysWithFocusAttributes):
7627        * khtml/rendering/render_theme.cpp:
7628        (khtml::RenderTheme::paint):
7629        (khtml::RenderTheme::isChecked):
7630        (khtml::RenderTheme::isEnabled):
7631        (khtml::RenderTheme::isFocused):
7632        (khtml::RenderTheme::isPressed):
7633        * khtml/rendering/render_theme.h:
7634        (khtml::RenderTheme::controlSupportsTints):
7635        * khtml/rendering/render_theme_mac.h:
7636        * khtml/rendering/render_theme_mac.mm:
7637        (khtml::RenderThemeMac::controlSupportsTints):
7638        * kwq/KWQKHTMLPart.mm:
7639        (KWQKHTMLPart::setDisplaysWithFocusAttributes):
7640        * kwq/KWQPainter.h:
7641        (QPainter::updatingControlTints):
7642        (QPainter::setUpdatingControlTints):
7643        * kwq/KWQPainter.mm:
7644        (QPainter::QPainter):
7645        (QPainter::initFocusRing):
7646        (QPainter::addFocusRingRect):
7647        (QPainter::drawFocusRing):
7648        * kwq/WebCoreBridge.mm:
7649        (-[WebCoreBridge drawRect:]):
7650
76512005-07-27  Justin Garcia  <justin.garcia@apple.com>
7652
7653        Reviewed by ken
7654        
7655        Fix for <rdar://problems/4038408&4154187&4125381&4125087> 
7656            Mail: Editing at the bottom of a quoted block makes the text blue in certain cases
7657
7658        Test cases added:
7659        * layout-tests/editing/deleting/delete-4038408-fix-expected.txt: Added.
7660        * layout-tests/editing/deleting/delete-4038408-fix.html: Added.
7661
7662        * khtml/editing/delete_selection_command.cpp:
7663        (khtml::DeleteSelectionCommand::saveTypingStyleState):
7664        (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
7665        (khtml::DeleteSelectionCommand::clearTransientState):
7666        * khtml/editing/delete_selection_command.h:
7667
76682005-07-27  Geoffrey Garen  <ggaren@apple.com>
7669
7670        - added test case for http://bugs.webkit.org/show_bug.cgi?id=4147
7671        Array.toString() and toLocaleString() improvements from KDE KJS
7672        
7673        Test cases added:
7674
7675        * layout-tests/fast/js/toString-overrides-expected.txt: Added.
7676        * layout-tests/fast/js/toString-overrides.html: Added.
7677
76782005-07-27  Beth Dakin  <bdakin@apple.com>
7679	Fix submitted by: Andrew Wellington <proton@wiretapped.net>
7680        Reviewed by Beth Dakin.
7681
7682	This is a fix for http://bugs.webkit.org/show_bug.cgi?id=3406 and 
7683	<rdar://problem/3204011>. It does not solve all of the problems with
7684	text-transform: capitalize, but it does fix some of the more notable 
7685	problems regarding apostrophes (like on amazon.com), and does not cause 
7686	any regressions (i.e., some things about text-transform are still wrong and some
7687	of those things are wrong in different ways than they were wrong before, but 
7688	the patch does not seem to cause anything that was right to be newly
7689	wrong.
7690
7691        Test cases added: another text-transform test, see below
7692
7693        * khtml/xml/dom_stringimpl.cpp: Here is the fix.
7694        (DOM::DOMStringImpl::capitalize):
7695        * layout-tests/css1/text_properties/text-transCapitalize-expected.txt: Added. New test case.
7696        * layout-tests/css1/text_properties/text-transCapitalize.html: Added. New test case.
7697        * layout-tests/css1/text_properties/text_transform-expected.txt: New expected results...
7698				here are some instances where things were wrong before but are
7699				wrong in new ways now.
7700
77012005-07-27  Geoffrey Garen  <ggaren@apple.com>
7702
7703        Test cases added:
7704
7705        * layout-tests/fast/js/date-big-setdate-expected.txt: Added.
7706        * layout-tests/fast/js/date-big-setdate.html: Added.
7707
77082005-07-27  David Hyatt  <hyatt@apple.com>
7709
7710	Remove the "enforce a square size" rule for checkboxes. WinIE
7711	doesn't do this, and I'm not sure where I came up with it.
7712
7713	Fix a bug in isFocusable that was causing disabled form
7714	controls with no corresponding widget to still get focus!
7715	(This bug affected my new checkbox but also <input type=image>
7716	and the HTML4 button!)
7717
7718        Reviewed by ggaren
7719
7720        * khtml/html/html_formimpl.cpp:
7721        * khtml/rendering/render_theme_mac.mm:
7722
77232005-07-27  Geoffrey Garen  <ggaren@apple.com>
7724        -added testcase for http://bugs.webkit.org/show_bug.cgi?id=3759
7725        Date object enhancements
7726        
7727        Reviewed by darin.
7728
7729        Test cases added:
7730
7731        * layout-tests/fast/js/date-preserve-milliseconds-expected.txt: Added.
7732        * layout-tests/fast/js/date-preserve-milliseconds.html: Added.
7733
77342005-07-26  Justin Garcia  <justin.garcia@apple.com>
7735
7736        Patch by Trey Matteson <trey@usa.net>
7737        
7738        Reviewed by hyatt.
7739    
7740        Fixed <rdar://problem/4083496> some elements draw selection when printing
7741        Also listed as <http://bugs.webkit.org/show_bug.cgi?id=3992>
7742        
7743        Simply added tests to prevent selection drawing when printing.
7744        
7745        * khtml/rendering/render_block.cpp:
7746        (khtml::RenderBlock::paintObject):
7747        * khtml/rendering/render_canvasimage.cpp:
7748        (RenderCanvasImage::paint):
7749        * khtml/rendering/render_image.cpp:
7750        (RenderImage::paint):
7751        * khtml/rendering/render_replaced.cpp:
7752        (RenderWidget::paint):
7753
77542005-07-26  Justin Garcia  <justin.garcia@apple.com>
7755
7756        Reviewed by darin
7757        
7758        Added forward declarations to fix new gcc4 errors
7759        
7760        * khtml/ecma/kjs_window.h:
7761        * khtml/xml/dom_elementimpl.h:
7762        * kwq/KWQMapImpl.h:
7763
77642005-07-26  David Hyatt  <hyatt@apple.com>
7765
7766	Land current checkbox work.  The checkbox can now check/uncheck,
7767	supports looking pressed, and can dynamically enable/disable.
7768
7769	Entire patch reviewed by darin, portions reviewed by
7770	sullivan as well.
7771
7772        * khtml/css/cssstyleselector.cpp:
7773        (khtml::CSSStyleSelector::adjustRenderStyle):
7774        * khtml/html/html_formimpl.cpp:
7775        (DOM::HTMLGenericFormElementImpl::parseMappedAttribute):
7776        (DOM::HTMLInputElementImpl::click):
7777        (DOM::HTMLInputElementImpl::setChecked):
7778        (DOM::HTMLInputElementImpl::defaultEventHandler):
7779        * khtml/rendering/render_block.cpp:
7780        (khtml::RenderBlock::baselinePosition):
7781        * khtml/rendering/render_box.cpp:
7782        (RenderBox::paintBoxDecorations):
7783        (RenderBox::getAbsoluteRepaintRect):
7784        * khtml/rendering/render_object.cpp:
7785        (RenderObject::paintOutline):
7786        (RenderObject::setStyle):
7787        * khtml/rendering/render_style.h:
7788        (khtml::RenderStyle::hasAppearance):
7789        (khtml::RenderStyle::resetBorder):
7790        * khtml/rendering/render_theme.cpp:
7791        (khtml::RenderTheme::baselinePosition):
7792        (khtml::RenderTheme::isChecked):
7793        (khtml::RenderTheme::isEnabled):
7794        (khtml::RenderTheme::isFocused):
7795        (khtml::RenderTheme::isPressed):
7796        * khtml/rendering/render_theme.h:
7797        (khtml::RenderTheme::RenderTheme):
7798        (khtml::RenderTheme::~RenderTheme):
7799        (khtml::RenderTheme::isControlContainer):
7800        (khtml::RenderTheme::adjustRepaintRect):
7801        * khtml/rendering/render_theme_mac.h:
7802        (khtml::RenderThemeMac::~RenderThemeMac):
7803        * khtml/rendering/render_theme_mac.mm:
7804        (khtml::RenderThemeMac::RenderThemeMac):
7805        (khtml::RenderThemeMac::adjustRepaintRect):
7806        (khtml::RenderThemeMac::inflateRect):
7807        (khtml::RenderThemeMac::updateCheckedState):
7808        (khtml::RenderThemeMac::updateEnabledState):
7809        (khtml::RenderThemeMac::updateFocusedState):
7810        (khtml::RenderThemeMac::updatePressedState):
7811        (khtml::RenderThemeMac::baselinePosition):
7812        (khtml::RenderThemeMac::isControlContainer):
7813        (khtml::RenderThemeMac::controlSizeForFont):
7814        (khtml::RenderThemeMac::setSizeFromFont):
7815        (khtml::RenderThemeMac::setControlSize):
7816        (khtml::RenderThemeMac::adjustCheckboxStyle):
7817        (khtml::RenderThemeMac::paintCheckbox):
7818        (khtml::RenderThemeMac::checkboxSizes):
7819        (khtml::RenderThemeMac::checkboxMargins):
7820        (khtml::RenderThemeMac::setCheckboxSize):
7821        (khtml::RenderThemeMac::setCheckboxCellState):
7822        * khtml/xml/dom_nodeimpl.cpp:
7823        (DOM::ContainerNodeImpl::setFocus):
7824        (DOM::ContainerNodeImpl::setActive):
7825
78262005-07-26  Eric Seidel  <eseidel@apple.com>
7827
7828        Reviewed by darin.
7829
7830        * WebCore.xcodeproj/project.pbxproj: Removed unused C++ DOM
7831        * khtml/dom/css_rule.cpp: Removed.
7832        * khtml/dom/css_stylesheet.cpp: Removed.
7833        * khtml/dom/css_value.cpp: Removed.
7834        * khtml/dom/dom2_range.cpp: Removed.
7835        * khtml/dom/dom2_views.cpp: Removed.
7836        * khtml/dom/dom2_views.h: Removed.
7837        * khtml/dom/dom_core.h: Removed.
7838        * khtml/dom/dom_doc.cpp: Removed.
7839        * khtml/dom/dom_doc.h: Removed.
7840        * khtml/dom/dom_element.cpp: Removed.
7841        * khtml/dom/dom_element.h: Removed.
7842        * khtml/dom/dom_html.h: Removed.
7843        * khtml/dom/dom_node.cpp: Removed.
7844        * khtml/dom/dom_text.cpp: Removed.
7845        * khtml/dom/dom_text.h: Removed.
7846        * khtml/dom/dom_xml.cpp: Removed.
7847        * khtml/dom/dom_xml.h: Removed.
7848        * khtml/dom/html_base.cpp: Removed.
7849        * khtml/dom/html_base.h: Removed.
7850        * khtml/dom/html_block.cpp: Removed.
7851        * khtml/dom/html_block.h: Removed.
7852        * khtml/dom/html_document.cpp: Removed.
7853        * khtml/dom/html_document.h: Removed.
7854        * khtml/dom/html_element.cpp: Removed.
7855        * khtml/dom/html_element.h: Removed.
7856        * khtml/dom/html_form.cpp: Removed.
7857        * khtml/dom/html_form.h: Removed.
7858        * khtml/dom/html_head.cpp: Removed.
7859        * khtml/dom/html_head.h: Removed.
7860        * khtml/dom/html_image.cpp: Removed.
7861        * khtml/dom/html_image.h: Removed.
7862        * khtml/dom/html_inline.cpp: Removed.
7863        * khtml/dom/html_inline.h: Removed.
7864        * khtml/dom/html_list.cpp: Removed.
7865        * khtml/dom/html_list.h: Removed.
7866        * khtml/dom/html_misc.cpp: Removed.
7867        * khtml/dom/html_misc.h: Removed.
7868        * khtml/dom/html_object.cpp: Removed.
7869        * khtml/dom/html_object.h: Removed.
7870        * khtml/dom/html_table.cpp: Removed.
7871        * khtml/dom/html_table.h: Removed.
7872        This removes unused C++ DOM files from both the project and
7873        the repository.  There are a few left (css_, dom_) which will
7874        need to be cleaned over time.
7875
78762005-07-26  John Sullivan  <sullivan@apple.com>
7877
7878        Reviewed by Chris Blumenberg.
7879
7880        Test cases added: none, only affects Safari autofill
7881        
7882        - more work to wean form-related SPI from NSView. All that's left (but this is a big "all")
7883        is viewForElement: and elementForView:
7884
7885        * kwq/WebCoreBridge.h:
7886        Rename control:textView:doCommandBySelector: to textField:doCommandBySelector:, and changed
7887        to take DOMHTMLInputElement* rather than NSControl* and NSTextView*
7888
7889        * kwq/KWQTextField.mm:
7890        (-[KWQTextFieldController control:textView:doCommandBySelector:]):
7891        call renamed bridge method, passing DOMElement* instead of NSView*
7892
78932005-07-26  John Sullivan  <sullivan@apple.com>
7894
7895        Reviewed by Darin Adler.
7896
7897        Test cases added: none, only affects Safari autofill
7898        
7899        - big hunk of weaning form-related SPI from NSView; autofill continues to
7900        work (but only on tip of tree Safari)        
7901
7902        * kwq/KWQTextArea.mm:
7903        (-[KWQTextArea textDidChange:]):
7904        call renamed bridge method, passing DOMElement* instead of NSView*
7905        
7906        * kwq/KWQTextField.mm:
7907        (-[KWQTextFieldController controlTextDidBeginEditing:]):
7908        call renamed bridge method, passing DOMElement* instead of NSView*
7909        (-[KWQTextFieldController controlTextDidEndEditing:]):
7910        ditto
7911        (-[KWQTextFieldController controlTextDidChange:]):
7912        ditto
7913        (-[KWQTextFieldController control:textShouldBeginEditing:]):
7914        don't call through to bridge form-delegate-related method; I deleted it because it was
7915        not being used
7916        (-[KWQTextFieldController control:textShouldEndEditing:]):
7917        ditto
7918        (-[KWQTextFieldController textView:shouldHandleEvent:]):
7919        call renamed bridge method, passing DOMElement* instead of NSView*
7920        
7921        * kwq/WebCoreBridge.h:
7922        Remove textShouldBeginEditing and textShouldEndEditing methods since they weren't being used.
7923        Rename other methods and made them take DOMElement* instead of NSView*
7924
79252005-07-26  Maciej Stachowiak  <mjs@apple.com>
7926
7927        - imported much of the w3c DOM test suite:
7928
7929	DOM Level 1 Core (html version)
7930	DOM Level 2 Core (html version)
7931	DOM Level 2 Events (html version)
7932	DOM Level 2 HTML (html version)
7933
7934	For now I left out the XHTML versions.
7935
7936        * layout-tests/dom/html/level1/core/*
7937	* layout-tests/dom/html/level2/core/*
7938        * layout-tests/dom/html/level2/events/*
7939        * layout-tests/dom/html/level2/html/*
7940	
79412005-07-25  Vicki Murley  <vicki@apple.com>
7942
7943        Reviewed by Beth Dakin.
7944
7945	- fixed <rdar://problem/4011544> selecting an item from a <select> menu with 
7946	the mouse doesn't place the focus on the menu
7947        
7948	Test cases added: 
7949        * manual-tests/focus-select-when-clicked.html: Added.
7950
7951        * kwq/KWQComboBox.mm:
7952        (-[KWQPopUpButton needsPanelToBecomeKey]): override this NSView method to return YES
7953
79542005-07-24  Maciej Stachowiak  <mjs@apple.com>
7955
7956        Reviewed by Darin.
7957
7958	- http://bugs.webkit.org/show_bug.cgi?id=4124
7959	(change JavaScript property access to avoid double lookup)
7960
7961	- 10% speedup on JavaScript iBench
7962	- 5% speedup on 24fun BenchJS benchmark
7963
7964	Changed all get methods to getOwnProperty - they are no longer responsible for
7965	prototype lookup, and determine if the property was found as a side efect.
7966
7967	Also miscellaneous code cleanup.
7968	
7969        * khtml/ecma/kjs_css.cpp:
7970        (KJS::DOMCSSStyleDeclaration::getOwnProperty):
7971        (KJS::DOMStyleSheet::getOwnProperty):
7972        (KJS::DOMStyleSheetList::getOwnProperty):
7973        (KJS::DOMMediaList::getOwnProperty):
7974        (KJS::DOMCSSStyleSheet::getOwnProperty):
7975        (KJS::DOMCSSRuleList::getOwnProperty):
7976        (KJS::DOMCSSRule::getOwnProperty):
7977        (KJS::DOMCSSRule::getValueProperty):
7978        (KJS::CSSRuleConstructor::getOwnProperty):
7979        (KJS::DOMCSSValue::getOwnProperty):
7980        (KJS::CSSValueConstructor::getOwnProperty):
7981        (KJS::DOMCSSPrimitiveValue::getOwnProperty):
7982        (KJS::CSSPrimitiveValueConstructor::getOwnProperty):
7983        (KJS::DOMCSSValueList::getOwnProperty):
7984        (KJS::DOMRGBColor::getOwnProperty):
7985        (KJS::DOMRect::getOwnProperty):
7986        (KJS::DOMCounter::getOwnProperty):
7987        * khtml/ecma/kjs_css.h:
7988        * khtml/ecma/kjs_dom.cpp:
7989        (KJS::DOMNode::getOwnProperty):
7990        (KJS::DOMNodeList::getOwnProperty):
7991        (KJS::DOMAttr::getOwnProperty):
7992        (KJS::DOMDocument::getOwnProperty):
7993        (KJS::DOMElement::getOwnProperty):
7994        (KJS::DOMDocumentType::getOwnProperty):
7995        (KJS::DOMNamedNodeMap::getOwnProperty):
7996        (KJS::DOMProcessingInstruction::getOwnProperty):
7997        (KJS::DOMNotation::getOwnProperty):
7998        (KJS::DOMEntity::getOwnProperty):
7999        (KJS::NodeConstructor::getOwnProperty):
8000        (KJS::DOMExceptionConstructor::getOwnProperty):
8001        (KJS::DOMNamedNodesCollection::getOwnProperty):
8002        (KJS::DOMCharacterData::getOwnProperty):
8003        * khtml/ecma/kjs_dom.h:
8004        * khtml/ecma/kjs_events.cpp:
8005        (KJS::EventConstructor::getOwnProperty):
8006        (KJS::DOMEvent::getOwnProperty):
8007        (KJS::EventExceptionConstructor::getOwnProperty):
8008        (KJS::DOMUIEvent::getOwnProperty):
8009        (KJS::DOMMouseEvent::getOwnProperty):
8010        (KJS::DOMKeyboardEvent::getOwnProperty):
8011        (KJS::MutationEventConstructor::getOwnProperty):
8012        (KJS::DOMMutationEvent::getOwnProperty):
8013        (KJS::DOMWheelEvent::getOwnProperty):
8014        (KJS::Clipboard::getOwnProperty):
8015        * khtml/ecma/kjs_events.h:
8016        * khtml/ecma/kjs_html.cpp:
8017        (KJS::HTMLDocument::getOwnProperty):
8018        (KJS::KJS::HTMLElement::getOwnProperty):
8019        (KJS::KJS::HTMLCollection::getOwnProperty):
8020        (KJS::KJS::HTMLSelectCollection::getOwnProperty):
8021        (KJS::Image::getOwnProperty):
8022        (KJS::Context2D::getOwnProperty):
8023        (KJS::Gradient::getOwnProperty):
8024        (KJS::ImagePattern::getOwnProperty):
8025        * khtml/ecma/kjs_html.h:
8026        * khtml/ecma/kjs_navigator.cpp:
8027        (KJS::Plugin::Plugin):
8028        (KJS::Navigator::getOwnProperty):
8029        (KJS::Plugins::getOwnProperty):
8030        (KJS::MimeTypes::getOwnProperty):
8031        (KJS::Plugin::getOwnProperty):
8032        (KJS::MimeType::getOwnProperty):
8033        * khtml/ecma/kjs_navigator.h:
8034        * khtml/ecma/kjs_range.cpp:
8035        (KJS::DOMRange::getOwnProperty):
8036        (KJS::RangeConstructor::getOwnProperty):
8037        * khtml/ecma/kjs_range.h:
8038        * khtml/ecma/kjs_traversal.cpp:
8039        (KJS::DOMNodeIterator::getOwnProperty):
8040        (KJS::NodeFilterConstructor::getOwnProperty):
8041        (KJS::DOMTreeWalker::getOwnProperty):
8042        * khtml/ecma/kjs_traversal.h:
8043        * khtml/ecma/kjs_views.cpp:
8044        (KJS::DOMAbstractView::getOwnProperty):
8045        * khtml/ecma/kjs_views.h:
8046        * khtml/ecma/kjs_window.cpp:
8047        (KJS::Screen::getOwnProperty):
8048        (KJS::Window::~Window):
8049        (KJS::Window::getOwnProperty):
8050        (KJS::Window::put):
8051        (KJS::FrameArray::getOwnProperty):
8052        (KJS::Location::Location):
8053        (KJS::Location::getOwnProperty):
8054        (KJS::Location::put):
8055        (KJS::Selection::Selection):
8056        (KJS::Selection::getOwnProperty):
8057        (KJS::BarInfo::getOwnProperty):
8058        (KJS::History::getOwnProperty):
8059        * khtml/ecma/kjs_window.h:
8060        * khtml/ecma/xmlhttprequest.cpp:
8061        (KJS::XMLHttpRequest::getOwnProperty):
8062        * khtml/ecma/xmlhttprequest.h:
8063
80642005-07-25  Justin Garcia  <justin.garcia@apple.com>
8065
8066        Reviewed by hyatt
8067        
8068        Backing out a change that made the caret invisible in Mail in certain situations.
8069
8070        * khtml/rendering/render_block.cpp:
8071        (khtml::RenderBlock::paintObject):
8072
80732005-07-25  Justin Garcia  <justin.garcia@apple.com>
8074        
8075        Added a manual test for a recent change to WebKit
8076
8077        Test cases added:
8078        * manual-tests/deleteToEndOfLine.html: Added.
8079
80802005-07-24  Justin Garcia  <justin.garcia@apple.com>
8081
8082        Patch by Anders Carlsson <andersca@mac.com>
8083
8084        Reviewed by hyatt
8085        
8086        - <http://bugs.webkit.org/show_bug.cgi?id=3615> canvas transform matrix does not apply to patterns
8087        Fill and stroke patterns are created in the respective fill and stroke functions using the current CTM.
8088
8089        * khtml/ecma/kjs_html.cpp:
8090        (KJS::KJS::Context2DFunction::call):
8091        (KJS::Context2D::updateFillImagePattern):
8092        (KJS::Context2D::updateStrokeImagePattern):
8093        (KJS::Context2D::putValueProperty):
8094        (KJS::Context2D::Context2D):
8095        (KJS::_rh):
8096        (KJS::ImagePattern::createPattern):
8097        * khtml/ecma/kjs_html.h:
8098
80992005-07-24  Justin Garcia  <justin.garcia@apple.com>
8100
8101        Reviewed by kevin.
8102
8103        Fixes make clean problem introduced in xcode2.1 transition
8104
8105        * Makefile.am:
8106
81072005-07-23  Justin Garcia  <justin.garcia@apple.com>
8108
8109        Adding a manual test for <http://bugs.webkit.org/show_bug.cgi?id=3862>
8110
8111        Test cases added:
8112        * manual-tests/bidi-visible-control-characters.html: Added.
8113
81142005-07-22  David Hyatt  <hyatt@apple.com>
8115
8116	Put back in the <script src="foo"/> self-closing tag quirk in HTML.  Unfortunately
8117	Dashboard widgets are dependent on this quirk.
8118
8119        Reviewed by mjs
8120
8121        * khtml/html/htmltokenizer.cpp:
8122        (khtml::HTMLTokenizer::parseTag):
8123
81242005-07-22  John Sullivan  <sullivan@apple.com>
8125
8126        Reviewed by Chris Blumenberg.
8127        
8128        Test cases added: none, this only affects Safari autocomplete; it doesn't affect any
8129        web pages.
8130
8131        - some changes in the direction of weaning all the form-related SPI from NSView
8132
8133        * kwq/DOMExtensions.h:
8134        added -[DOMHTMLInputElement isTextField]
8135        * kwq/DOMHTML.mm:
8136        (-[DOMHTMLInputElement isTextField]):
8137        new method that returns YES if this element is one of the types that's represented
8138        by a text field (as opposed to a button, slider, etc.). I could have put this method
8139        in Safari, but it seems useful for other WebKit clients.
8140
8141        * kwq/WebCoreBridge.h:
8142        * kwq/WebCoreBridge.mm:
8143        (-[WebCoreBridge viewForElement:]):
8144        added viewForElement: as a stopgap measure. This allowed me to convert controlsInForm:
8145        to return DOMElements rather than NSViews, while keeping autocomplete working in
8146        Safari tip of tree. When I finish the SPI conversion I'll delete this method. Note that
8147        from this point on, autocomplete will not work in Tiger Safari with tip of tree WebKit
8148        (it will always fail to find anything to autocomplete)
8149        (-[WebCoreBridge controlsInForm:]):
8150        now returns an array of DOMElement* rather than an array of NSView*
8151
81522005-07-21  Geoffrey Garen  <ggaren@apple.com>
8153
8154        * WebCore.pbproj/project.pbxproj: Removed.
8155
81562005-07-21  Geoffrey Garen  <ggaren@apple.com>
8157
8158        * WebCore.xcodeproj/.cvsignore: Added.
8159
81602005-07-21  Geoffrey Garen  <ggaren@apple.com>
8161
8162        * WebCore.xcodeproj/project.pbxproj: Added.
8163
81642005-07-21  Geoffrey Garen  <ggaren@apple.com>
8165
8166        * Makefile.am:
8167
81682005-07-21  Beth Dakin  <bdakin@apple.com>
8169
8170        Reviewed by Hyatt.
8171	
8172	-fix for <rdar://problem/4169069> Also fixes the behavior of generated content
8173	when it is specified within a list element.
8174
8175        Test cases added: (NONE)
8176
8177        * khtml/rendering/render_block.cpp:
8178        (khtml::RenderBlock::setStyle): Added loop to skip over list elements hen updating 
8179					generatedcontent.
8180        (khtml::RenderBlock::updateFirstLetter): Added clause so that the function updates the 
8181						first letter instead of just creating it.
8182        * khtml/rendering/render_inline.cpp:
8183        (RenderInline::setStyle): Added loop to skip over list elements when updating generated
8184				content.
8185
81862005-07-20  Maciej Stachowiak  <mjs@apple.com>
8187
8188        Reviewed by Geoff.
8189
8190	- fix handling of special properties of the HTML document object. Now we
8191	completely match IE.
8192
8193        Test cases added:
8194	* layout-tests/fast/dom/HTMLDocument/document-special-properties.html:
8195	Added; new exhaustive test case.
8196        * layout-tests/fast/dom/HTMLDocument/document-special-properties-expected.txt: Added.
8197
8198        * khtml/ecma/kjs_html.cpp:
8199        (KJS::HTMLDocument::hasOwnProperty): Check for named and doc extra named
8200	items.
8201        (KJS::HTMLDocument::get): Return the appropriate element, window or collection
8202	by name; give such named items precedence over built-in and custom properties.
8203        * khtml/ecma/kjs_window.cpp:
8204        (KJS::Window::get): Replace quirky &* idiom with call to get().
8205        * khtml/html/html_baseimpl.cpp:
8206        (HTMLIFrameElementImpl::parseMappedAttribute): Track by name as a doc
8207	extra named item.
8208        (HTMLIFrameElementImpl::insertedIntoDocument): ditto
8209        (HTMLIFrameElementImpl::removedFromDocument): ditto
8210        * khtml/html/html_baseimpl.h:
8211        * khtml/html/html_documentimpl.cpp:
8212        (DOM::addItemToMap): Factored out from addNamedItem
8213        (DOM::removeItemFromMap): Factored out from removeNamedItem
8214        (DOM::HTMLDocumentImpl::addNamedItem): refactored
8215        (DOM::HTMLDocumentImpl::removeNamedItem): refactored
8216        (DOM::HTMLDocumentImpl::addDocExtraNamedItem): new method - maintains
8217	a hashtable of the "extra" named items for a document, which are
8218	iframes by name and applets and embeds by id.
8219        (DOM::HTMLDocumentImpl::removeDocExtraNamedItem): ditto
8220        (DOM::HTMLDocumentImpl::hasDocExtraNamedItem): ditto
8221        * khtml/html/html_documentimpl.h:
8222        * khtml/html/html_miscimpl.cpp:
8223        (DOM::HTMLCollectionImpl::traverseNextItem): Remove support for
8224	DOC_NAMEABLE_ITEMS collection - no longer needed.
8225        (DOM::HTMLNameCollectionImpl::traverseNextItem): Add support for
8226	DOCUMENT_NAMED_ITEMS, implementing the correct document rule.
8227        * khtml/html/html_miscimpl.h:
8228        (DOM::HTMLCollectionImpl::):
8229        * khtml/html/html_objectimpl.cpp:
8230        (DOM::HTMLAppletElementImpl::parseMappedAttribute): Track by id
8231	as doc extra named item
8232        (DOM::HTMLAppletElementImpl::insertedIntoDocument): ditto
8233        (DOM::HTMLAppletElementImpl::removedFromDocument): ditto
8234        (DOM::HTMLObjectElementImpl::parseMappedAttribute): ditto
8235        (DOM::HTMLObjectElementImpl::insertedIntoDocument): ditto
8236        (DOM::HTMLObjectElementImpl::removedFromDocument): ditto
8237        * khtml/html/html_objectimpl.h:
8238        * khtml/xml/dom_docimpl.cpp:
8239        (DocumentImpl::nameableItems): removed - no longer used
8240        (DocumentImpl::documentNamedItems): added
8241        * khtml/xml/dom_docimpl.h:
8242
82432005-07-20  John Sullivan  <sullivan@apple.com>
8244
8245        Reviewed by Vicki Murley.
8246        
8247        - removed some form-related methods that weren't being used anywhere, in preparation
8248        for weaning WebKit's WebFormDelegate protocol from NSView.
8249
8250        Test cases added: none, no behavior change
8251
8252        * kwq/KWQTextField.mm:
8253        * kwq/WebCoreBridge.h:
8254        removed these methods:
8255        -control:didFailToFormatString:errorDescription:
8256        -control:didFailToValidatePartialString:errorDescription:
8257        -control:isValidObject:
8258
82592005-07-20  Adele Peterson  <adele@apple.com>
8260
8261        Rolling fix for <rdar://problem/4046602> back in.
8262
8263    2005-03-11  David Harrison  <harrison@apple.com>
8264        
8265        Reviewed by Darin.
8266        
8267        <rdar://problem/4046602> WebCore invokes undefined behavior when the spell checker isn't running
8268
8269        * kwq/KWQKHTMLPart.mm:
8270        (KWQKHTMLPart::advanceToNextMisspelling):
8271        (KWQKHTMLPart::markMisspellings):
8272        Nil check checker.
8273
82742005-07-20  Adele Peterson  <adele@apple.com>
8275
8276        Reviewed by Darin.
8277
8278        - fixed <rdar://problem/4181058> 8C45: Safari repro crash with document.write (DOM::NodeImpl::dispatchEvent)
8279
8280        Test cases added:
8281        * manual-tests/textfield-onblur.html: Added.
8282        
8283        * kwq/KWQTextField.mm: (-[KWQTextFieldController setHasFocus:]): added nil check for widget, since it can get deleted during an event.
8284
82852005-07-20  Maciej Stachowiak  <mjs@apple.com>
8286
8287        Patch from Trey Matteson <trey@usa.net>, reviewed by me.
8288
8289	- fixed http://bugs.webkit.org/show_bug.cgi?id=3956
8290	some of WebKit builds with symbols, some doesn't
8291	
8292        * WebCore.pbproj/project.pbxproj: Generate symbols even for
8293	Deployment.
8294
82952005-07-19  Maciej Stachowiak  <mjs@apple.com>
8296
8297        Reviewed by Kevin.
8298
8299	- fixed some mistakes in my previous checkin
8300
8301        * khtml/html/html_objectimpl.cpp:
8302        (DOM::HTMLAppletElementImpl::parseMappedAttribute): Take name attribute out
8303	of the "do nothing" case (duh).
8304        * layout-tests/fast/dom/Window/window-special-properties-expected.txt: Update
8305	for change to the text at the top.
8306
83072005-07-18  Maciej Stachowiak  <mjs@apple.com>
8308
8309        Reviewed by Darin.
8310
8311	- fix handling of special properties of the Window object. now we
8312	almost completely match Win IE.
8313	
8314        Test cases added: 
8315        * layout-tests/fast/dom/Window/window-special-properties-expected.txt: Added.
8316        * layout-tests/fast/dom/Window/window-special-properties.html: Added.
8317
8318        * khtml/ecma/kjs_html.cpp:
8319        (KJS::HTMLDocument::hasOwnProperty):
8320        (KJS::HTMLDocument::tryGet):
8321        * khtml/ecma/kjs_window.cpp:
8322        (KJS::Window::get):
8323        (KJS::Window::hasOwnProperty):
8324        * khtml/html/html_documentimpl.cpp:
8325        (DOM::HTMLDocumentImpl::addNamedItem):
8326        (DOM::HTMLDocumentImpl::removeNamedItem):
8327        (DOM::HTMLDocumentImpl::hasNamedItem):
8328        * khtml/html/html_documentimpl.h:
8329        * khtml/html/html_formimpl.cpp:
8330        (DOM::HTMLFormElementImpl::attach):
8331        (DOM::HTMLFormElementImpl::insertedIntoDocument):
8332        (DOM::HTMLFormElementImpl::removedFromDocument):
8333        (DOM::HTMLFormElementImpl::parseMappedAttribute):
8334        * khtml/html/html_formimpl.h:
8335        * khtml/html/html_imageimpl.cpp:
8336        (HTMLImageElementImpl::parseMappedAttribute):
8337        (HTMLImageElementImpl::attach):
8338        (HTMLImageElementImpl::insertedIntoDocument):
8339        (HTMLImageElementImpl::removedFromDocument):
8340        * khtml/html/html_imageimpl.h:
8341        * khtml/html/html_miscimpl.cpp:
8342        (DOM::HTMLCollectionImpl::HTMLCollectionImpl):
8343        (DOM::HTMLCollectionImpl::traverseNextItem):
8344        (DOM::HTMLCollectionImpl::namedItem):
8345        (DOM::HTMLNameCollectionImpl::HTMLNameCollectionImpl):
8346        (DOM::HTMLNameCollectionImpl::traverseNextItem):
8347        (DOM::HTMLFormCollectionImpl::getNamedFormItem):
8348        (DOM::HTMLFormCollectionImpl::nextNamedItem):
8349        * khtml/html/html_miscimpl.h:
8350        (DOM::HTMLCollectionImpl::):
8351        * khtml/html/html_objectimpl.cpp:
8352        (DOM::HTMLAppletElementImpl::parseMappedAttribute):
8353        (DOM::HTMLAppletElementImpl::insertedIntoDocument):
8354        (DOM::HTMLAppletElementImpl::removedFromDocument):
8355        (DOM::HTMLEmbedElementImpl::parseMappedAttribute):
8356        (DOM::HTMLEmbedElementImpl::attach):
8357        (DOM::HTMLEmbedElementImpl::insertedIntoDocument):
8358        (DOM::HTMLEmbedElementImpl::removedFromDocument):
8359        (DOM::HTMLObjectElementImpl::parseMappedAttribute):
8360        (DOM::HTMLObjectElementImpl::detach):
8361        (DOM::HTMLObjectElementImpl::insertedIntoDocument):
8362        (DOM::HTMLObjectElementImpl::removedFromDocument):
8363        * khtml/html/html_objectimpl.h:
8364        * khtml/xml/dom_docimpl.cpp:
8365        (DocumentImpl::windowNamedItems):
8366        * khtml/xml/dom_docimpl.h:
8367
83682005-07-19  Geoffrey Garen  <ggaren@apple.com>
8369
8370        -rolled in patch by Anders Carlsson <andersca@mac.com> for
8371        http://bugs.webkit.org/show_bug.cgi?id=3751
8372        REGRESSION: affects Blogger, GMail & Wikipedia: empty textarea's which should have content
8373        
8374        Reviewed by mjs.
8375
8376        * khtml/html/html_formimpl.cpp:
8377        (DOM::HTMLTextAreaElementImpl::defaultValue):
8378        (DOM::HTMLTextAreaElementImpl::attach):
8379        * khtml/html/html_formimpl.h:
8380
8381        Test cases added:
8382        * manual-tests/textarea-after-stylesheet-link.html: Added.
8383        Test is manual because the result doesn't show up in DumpRenderTree
8384
83852005-07-19  Justin Garcia  <justin.garcia@apple.com>
8386        
8387        Added a virtual deconstructor to fix gcc4 build warning
8388
8389        * khtml/rendering/render_theme.h:
8390        (khtml::RenderTheme::~RenderTheme):
8391
83922005-07-19  David Hyatt  <hyatt@apple.com>
8393
8394	Adding support for the "checkbox" appearance value.  This is not yet implemented, but the
8395	methods are now stubbed out and will get called.
8396
8397	Reviewed by mjs
8398
8399        * WebCore.pbproj/project.pbxproj:
8400        * khtml/css/cssstyleselector.cpp:
8401        (khtml::CSSStyleSelector::adjustRenderStyle):
8402        (khtml::CSSStyleSelector::applyProperty):
8403        * khtml/css/html4.css:
8404        * khtml/html/html_formimpl.cpp:
8405        (DOM::HTMLInputElementImpl::createRenderer):
8406        * khtml/rendering/render_box.cpp:
8407        (RenderBox::paintBoxDecorations):
8408        * khtml/rendering/render_theme.cpp: Added.
8409        (khtml::RenderTheme::adjustStyle):
8410        (khtml::RenderTheme::paint):
8411        * khtml/rendering/render_theme.h: Added.
8412        * khtml/rendering/render_theme_mac.h: Added.
8413        * khtml/rendering/render_theme_mac.mm: Added.
8414        (khtml::theme):
8415        (khtml::RenderThemeMac::adjustCheckboxStyle):
8416        (khtml::RenderThemeMac::paintCheckbox):
8417
84182005-07-19  David Hyatt  <hyatt@apple.com>
8419
8420	Fix performance regressions from attribute QName landing.
8421	
8422        Reviewed by mjs
8423
8424        * khtml/html/htmltokenizer.cpp:
8425        (khtml::Token::addAttribute):
8426        (khtml::HTMLTokenizer::write):
8427
8428	Make sure attributes have a faster constructor that can avoid the copy of QualifiedNames.
8429
8430	Make sure to grab the part from the document outside the loop, so that it is not fetched
8431	over and over again for every character in the source.
8432	
8433        * khtml/rendering/render_block.cpp:
8434        (khtml::RenderBlock::paintObject):
8435
8436	Only call paintCaret if the block is actually editable.
8437	
8438        * khtml/xml/dom_atomicstring.h:
8439        (DOM::operator!=):
8440        * khtml/xml/dom_elementimpl.h:
8441        (DOM::AttributeImpl::AttributeImpl):
8442        (DOM::AttributeImpl::~AttributeImpl):
8443        (DOM::MappedAttributeImpl::MappedAttributeImpl):
8444
8445	Add != comparison operator with a char* to speed up the / check for attribute invalidity.
8446	
84472005-07-19  Vicki Murley  <vicki@apple.com>
8448
8449        Reviewed by Maciej.
8450
8451	- fixed <rdar://problem/3471901> support scrollIntoView method for DOM elements (3474)
8452 
8453        Test cases added: 
8454        * manual-tests/scrollIntoView-horizontal.html: Added.
8455        * manual-tests/scrollIntoView-vertical.html: Added.
8456
8457        * khtml/xml/dom_elementimpl.h:        
8458        * khtml/xml/dom_elementimpl.cpp:
8459        (ElementImpl::scrollIntoView): Added.
8460        * khtml/ecma/kjs_dom.h:
8461        (KJS::DOMNode::):
8462        (KJS::DOMElement::):
8463        * khtml/ecma/kjs_dom.cpp:
8464        (KJS::DOMElementProtoFunc::tryCall): glue for new scrollIntoView function
8465
84662005-07-19  Geoffrey Garen  <ggaren@apple.com>
8467
8468        - rolled in patch by opendarwin.org@mitzpettel.com for
8469        http://bugs.webkit.org/show_bug.cgi?id=3838
8470        Text runs unnecessarily split at EN L boundaries
8471        
8472        Reviewed by hyatt.
8473
8474        * khtml/rendering/bidi.cpp:
8475        (khtml::RenderBlock::bidiReorderLine):
8476
8477        Lots of new test case results because previous results had inappropriately
8478        split text runs.
8479
8480        * layout-tests/css1/basic/containment-expected.txt:
8481        * layout-tests/css1/box_properties/border-expected.txt:
8482        * layout-tests/css1/box_properties/border_bottom-expected.txt:
8483        * layout-tests/css1/box_properties/border_bottom_inline-expected.txt:
8484        * layout-tests/css1/box_properties/border_bottom_width-expected.txt:
8485        * layout-tests/css1/box_properties/border_bottom_width_inline-expected.txt:
8486        * layout-tests/css1/box_properties/border_inline-expected.txt:
8487        * layout-tests/css1/box_properties/border_left-expected.txt:
8488        * layout-tests/css1/box_properties/border_left_inline-expected.txt:
8489        * layout-tests/css1/box_properties/border_left_width-expected.txt:
8490        * layout-tests/css1/box_properties/border_left_width_inline-expected.txt:
8491        * layout-tests/css1/box_properties/border_right-expected.txt:
8492        * layout-tests/css1/box_properties/border_right_inline-expected.txt:
8493        * layout-tests/css1/box_properties/border_right_width-expected.txt:
8494        * layout-tests/css1/box_properties/border_right_width_inline-expected.txt:
8495        * layout-tests/css1/box_properties/border_top-expected.txt:
8496        * layout-tests/css1/box_properties/border_top_inline-expected.txt:
8497        * layout-tests/css1/box_properties/border_top_width-expected.txt:
8498        * layout-tests/css1/box_properties/border_top_width_inline-expected.txt:
8499        * layout-tests/css1/box_properties/border_width-expected.txt:
8500        * layout-tests/css1/box_properties/border_width_inline-expected.txt:
8501        * layout-tests/css1/box_properties/clear_float-expected.txt:
8502        * layout-tests/css1/box_properties/float_elements_in_series-expected.txt:
8503        * layout-tests/css1/box_properties/float_margin-expected.txt:
8504        * layout-tests/css1/box_properties/float_on_text_elements-expected.txt:
8505        * layout-tests/css1/box_properties/height-expected.txt:
8506        * layout-tests/css1/box_properties/margin-expected.txt:
8507        * layout-tests/css1/box_properties/margin_bottom-expected.txt:
8508        * layout-tests/css1/box_properties/margin_bottom_inline-expected.txt:
8509        * layout-tests/css1/box_properties/margin_inline-expected.txt:
8510        * layout-tests/css1/box_properties/margin_left-expected.txt:
8511        * layout-tests/css1/box_properties/margin_left_inline-expected.txt:
8512        * layout-tests/css1/box_properties/margin_right-expected.txt:
8513        * layout-tests/css1/box_properties/margin_right_inline-expected.txt:
8514        * layout-tests/css1/box_properties/margin_top-expected.txt:
8515        * layout-tests/css1/box_properties/margin_top_inline-expected.txt:
8516        * layout-tests/css1/box_properties/padding-expected.txt:
8517        * layout-tests/css1/box_properties/padding_bottom-expected.txt:
8518        * layout-tests/css1/box_properties/padding_bottom_inline-expected.txt:
8519        * layout-tests/css1/box_properties/padding_inline-expected.txt:
8520        * layout-tests/css1/box_properties/padding_left-expected.txt:
8521        * layout-tests/css1/box_properties/padding_left_inline-expected.txt:
8522        * layout-tests/css1/box_properties/padding_right-expected.txt:
8523        * layout-tests/css1/box_properties/padding_right_inline-expected.txt:
8524        * layout-tests/css1/box_properties/padding_top-expected.txt:
8525        * layout-tests/css1/box_properties/padding_top_inline-expected.txt:
8526        * layout-tests/css1/box_properties/width-expected.txt:
8527        * layout-tests/css1/classification/display-expected.txt:
8528        * layout-tests/css1/color_and_background/background_position-expected.txt:
8529        * layout-tests/css1/conformance/forward_compatible_parsing-expected.txt:
8530        * layout-tests/css1/font_properties/font-expected.txt:
8531        * layout-tests/css1/font_properties/font_size-expected.txt:
8532        * layout-tests/css1/formatting_model/canvas-expected.txt:
8533        * layout-tests/css1/formatting_model/floating_elements-expected.txt:
8534        * layout-tests/css1/formatting_model/height_of_lines-expected.txt:
8535        * layout-tests/css1/formatting_model/inline_elements-expected.txt:
8536        * layout-tests/css1/formatting_model/replaced_elements-expected.txt:
8537        * layout-tests/css1/formatting_model/vertical_formatting-expected.txt:
8538        * layout-tests/css1/pseudo/anchor-expected.txt:
8539        * layout-tests/css1/text_properties/letter_spacing-expected.txt:
8540        * layout-tests/css1/text_properties/line_height-expected.txt:
8541        * layout-tests/css1/text_properties/text_indent-expected.txt:
8542        * layout-tests/css1/text_properties/vertical_align-expected.txt:
8543        * layout-tests/css1/text_properties/word_spacing-expected.txt:
8544        * layout-tests/css1/units/length_units-expected.txt:
8545        * layout-tests/editing/style/relative-font-size-change-001-expected.txt:
8546        * layout-tests/editing/style/relative-font-size-change-002-expected.txt:
8547        * layout-tests/editing/style/relative-font-size-change-003-expected.txt:
8548        * layout-tests/editing/style/relative-font-size-change-004-expected.txt:
8549        * layout-tests/editing/style/smoosh-styles-003-expected.txt:
8550        * layout-tests/fast/block/basic/018-expected.txt:
8551        * layout-tests/fast/block/float/002-expected.txt:
8552        * layout-tests/fast/block/float/021-expected.txt:
8553        * layout-tests/fast/block/float/023-expected.txt:
8554        * layout-tests/fast/block/float/024-expected.txt:
8555        * layout-tests/fast/block/float/029-expected.txt:
8556        * layout-tests/fast/block/float/030-expected.txt:
8557        * layout-tests/fast/block/margin-collapse/043-expected.txt:
8558        * layout-tests/fast/block/margin-collapse/101-expected.txt:
8559        * layout-tests/fast/block/positioning/060-expected.txt:
8560        * layout-tests/fast/block/positioning/auto/001-expected.txt:
8561        * layout-tests/fast/block/positioning/auto/002-expected.txt:
8562        * layout-tests/fast/block/positioning/auto/003-expected.txt:
8563        * layout-tests/fast/block/positioning/auto/004-expected.txt:
8564        * layout-tests/fast/block/positioning/auto/005-expected.txt:
8565        * layout-tests/fast/block/positioning/auto/006-expected.txt:
8566        * layout-tests/fast/clip/001-expected.txt:
8567        * layout-tests/fast/clip/002-expected.txt:
8568        * layout-tests/fast/clip/003-expected.txt:
8569        * layout-tests/fast/clip/004-expected.txt:
8570        * layout-tests/fast/clip/005-expected.txt:
8571        * layout-tests/fast/clip/006-expected.txt:
8572        * layout-tests/fast/clip/007-expected.txt:
8573        * layout-tests/fast/clip/008-expected.txt:
8574        * layout-tests/fast/clip/009-expected.txt:
8575        * layout-tests/fast/clip/010-expected.txt:
8576        * layout-tests/fast/clip/011-expected.txt:
8577        * layout-tests/fast/clip/012-expected.txt:
8578        * layout-tests/fast/clip/013-expected.txt:
8579        * layout-tests/fast/clip/014-expected.txt:
8580        * layout-tests/fast/clip/015-expected.txt:
8581        * layout-tests/fast/clip/016-expected.txt:
8582        * layout-tests/fast/css-generated-content/012-expected.txt:
8583        * layout-tests/fast/css/008-expected.txt:
8584        * layout-tests/fast/css/MarqueeLayoutTest-expected.txt:
8585        * layout-tests/fast/css/apple-prefix-expected.txt:
8586        * layout-tests/fast/dom/quadraticCurveTo-expected.txt:
8587        * layout-tests/fast/dynamic/noninlinebadness-expected.txt:
8588        * layout-tests/fast/encoding/utf-16-big-endian-expected.txt:
8589        * layout-tests/fast/encoding/utf-16-little-endian-expected.txt:
8590        * layout-tests/fast/flexbox/001-expected.txt:
8591        * layout-tests/fast/flexbox/004-expected.txt:
8592        * layout-tests/fast/flexbox/007-expected.txt:
8593        * layout-tests/fast/flexbox/008-expected.txt:
8594        * layout-tests/fast/flexbox/009-expected.txt:
8595        * layout-tests/fast/flexbox/010-expected.txt:
8596        * layout-tests/fast/flexbox/012-expected.txt:
8597        * layout-tests/fast/flexbox/013-expected.txt:
8598        * layout-tests/fast/flexbox/014-expected.txt:
8599        * layout-tests/fast/flexbox/015-expected.txt:
8600        * layout-tests/fast/flexbox/018-expected.txt:
8601        * layout-tests/fast/flexbox/019-expected.txt:
8602        * layout-tests/fast/flexbox/020-expected.txt:
8603        * layout-tests/fast/flexbox/021-expected.txt:
8604        * layout-tests/fast/flexbox/022-expected.txt:
8605        * layout-tests/fast/flexbox/023-expected.txt:
8606        * layout-tests/fast/flexbox/024-expected.txt:
8607        * layout-tests/fast/invalid/012-expected.txt:
8608        * layout-tests/fast/invalid/016-expected.txt:
8609        * layout-tests/fast/invalid/nestedh3s-expected.txt:
8610        * layout-tests/fast/lists/003-expected.txt:
8611        * layout-tests/fast/replaced/004-expected.txt:
8612        * layout-tests/fast/selectors/166-expected.txt:
8613        * layout-tests/fast/table/032-expected.txt:
8614        * layout-tests/fast/table/border-collapsing/004-expected.txt:
8615        * layout-tests/fast/text/basic/003-expected.txt:
8616        * layout-tests/fast/text/basic/004-expected.txt:
8617        * layout-tests/fast/text/basic/005-expected.txt:
8618        * layout-tests/fast/text/basic/009-expected.txt:
8619
86202005-07-19  Darin Adler  <darin@apple.com>
8621
8622        Reviewed by Geoff Garen.
8623
8624        Test cases added: None. Structural change only.
8625
8626        - eliminated try wrappers for get/put/call since we don't use C++ exceptions any more
8627
8628        * khtml/ecma/kjs_binding.cpp: Removed DOMObject::get, DOMObject::set, DOMFunction::get,
8629        and DOMFunction::call.
8630        * khtml/ecma/kjs_binding.h: Removed get, set, tryGet, trySet, call, tryCall from DOMObject
8631        and DOMFunction. Removed DOMObjectLookupGet, DOMObjectLookupGetValue, and DOMObjectLookupPut.
8632        We can just do things the normal way now.
8633
8634        The rest of the changes are just renames and removal of a couple stray tryCall wrappers.
8635
8636            tryGet -> get
8637            tryPut -> put
8638            tryCall -> call
8639            putValue -> putValueProperty
8640            DOMObjectLookupGet -> lookupGet
8641            DOMObjectLookupGetValue -> lookupGetValue
8642            DOMObjectLookupPut -> lookupPut
8643
8644        * khtml/ecma/domparser.cpp:
8645        (KJS::DOMParserProtoFunc::call):
8646        * khtml/ecma/kjs_css.cpp:
8647        (KJS::DOMCSSStyleDeclaration::get):
8648        (KJS::DOMCSSStyleDeclaration::put):
8649        (KJS::DOMCSSStyleDeclarationProtoFunc::call):
8650        (KJS::DOMStyleSheet::get):
8651        (KJS::DOMStyleSheet::put):
8652        (KJS::DOMStyleSheetList::get):
8653        (KJS::DOMStyleSheetListFunc::call):
8654        (KJS::DOMMediaList::get):
8655        (KJS::DOMMediaList::put):
8656        (KJS::KJS::DOMMediaListProtoFunc::call):
8657        (KJS::DOMCSSStyleSheet::get):
8658        (KJS::DOMCSSStyleSheetProtoFunc::call):
8659        (KJS::DOMCSSRuleList::get):
8660        (KJS::DOMCSSRuleListFunc::call):
8661        (KJS::DOMCSSRule::get):
8662        (KJS::DOMCSSRule::put):
8663        (KJS::DOMCSSRule::putValueProperty):
8664        (KJS::DOMCSSRuleFunc::call):
8665        (KJS::CSSRuleConstructor::get):
8666        (KJS::DOMCSSValue::get):
8667        (KJS::DOMCSSValue::put):
8668        (KJS::CSSValueConstructor::get):
8669        (KJS::DOMCSSPrimitiveValue::get):
8670        (KJS::DOMCSSPrimitiveValueProtoFunc::call):
8671        (KJS::CSSPrimitiveValueConstructor::get):
8672        (KJS::DOMCSSValueList::get):
8673        (KJS::DOMCSSValueListFunc::call):
8674        (KJS::DOMRGBColor::get):
8675        (KJS::DOMRect::get):
8676        (KJS::DOMCounter::get):
8677        * khtml/ecma/kjs_css.h:
8678        * khtml/ecma/kjs_dom.cpp:
8679        (KJS::DOMNode::get):
8680        (KJS::DOMNode::put):
8681        (KJS::DOMNode::putValueProperty):
8682        (KJS::DOMNodeProtoFunc::call):
8683        (KJS::DOMNodeList::get):
8684        (KJS::DOMNodeList::call):
8685        (KJS::DOMNodeListFunc::call):
8686        (KJS::DOMAttr::get):
8687        (KJS::DOMAttr::put):
8688        (KJS::DOMAttr::putValueProperty):
8689        (KJS::DOMDocument::get):
8690        (KJS::DOMDocument::put):
8691        (KJS::DOMDocument::putValueProperty):
8692        (KJS::DOMDocumentProtoFunc::call):
8693        (KJS::DOMElement::get):
8694        (KJS::DOMElementProtoFunc::call):
8695        (KJS::DOMDOMImplementationProtoFunc::call):
8696        (KJS::DOMDocumentType::get):
8697        (KJS::DOMNamedNodeMap::get):
8698        (KJS::DOMNamedNodeMapProtoFunc::call):
8699        (KJS::DOMProcessingInstruction::get):
8700        (KJS::DOMProcessingInstruction::put):
8701        (KJS::DOMNotation::get):
8702        (KJS::DOMEntity::get):
8703        (KJS::NodeConstructor::get):
8704        (KJS::DOMExceptionConstructor::get):
8705        (KJS::DOMNamedNodesCollection::get):
8706        (KJS::DOMCharacterData::get):
8707        (KJS::DOMCharacterData::put):
8708        (KJS::DOMCharacterDataProtoFunc::call):
8709        (KJS::DOMText::get):
8710        (KJS::DOMTextProtoFunc::call):
8711        * khtml/ecma/kjs_dom.h:
8712        * khtml/ecma/kjs_events.cpp:
8713        (KJS::EventConstructor::get):
8714        (KJS::DOMEvent::get):
8715        (KJS::DOMEvent::put):
8716        (KJS::DOMEvent::putValueProperty):
8717        (KJS::DOMEventProtoFunc::call):
8718        (KJS::EventExceptionConstructor::get):
8719        (KJS::DOMUIEvent::get):
8720        (KJS::DOMUIEventProtoFunc::call):
8721        (KJS::DOMMouseEvent::get):
8722        (KJS::DOMMouseEventProtoFunc::call):
8723        (KJS::DOMKeyboardEvent::get):
8724        (KJS::DOMKeyboardEventProtoFunc::call):
8725        (KJS::MutationEventConstructor::get):
8726        (KJS::DOMMutationEvent::get):
8727        (KJS::DOMMutationEventProtoFunc::call):
8728        (KJS::DOMWheelEvent::get):
8729        (KJS::DOMWheelEventProtoFunc::call):
8730        (KJS::Clipboard::get):
8731        (KJS::Clipboard::put):
8732        (KJS::Clipboard::putValueProperty):
8733        (KJS::ClipboardProtoFunc::call):
8734        * khtml/ecma/kjs_events.h:
8735        * khtml/ecma/kjs_html.cpp:
8736        (KJS::KJS::HTMLDocFunction::call):
8737        (KJS::HTMLDocument::get):
8738        (KJS::KJS::HTMLDocument::put):
8739        (KJS::KJS::HTMLDocument::putValueProperty):
8740        (KJS::KJS::HTMLElement::get):
8741        (KJS::KJS::HTMLElementFunction::call):
8742        (KJS::KJS::HTMLElement::put):
8743        (KJS::HTMLElement::putValueProperty):
8744        (KJS::KJS::HTMLCollection::get):
8745        (KJS::KJS::HTMLCollection::call):
8746        (KJS::KJS::HTMLCollectionProtoFunc::call):
8747        (KJS::KJS::HTMLSelectCollection::get):
8748        (KJS::KJS::HTMLSelectCollection::put):
8749        (KJS::Image::get):
8750        (KJS::Image::put):
8751        (KJS::Image::putValueProperty):
8752        (KJS::KJS::Context2DFunction::call):
8753        (KJS::Context2D::get):
8754        (KJS::Context2D::put):
8755        (KJS::Context2D::putValueProperty):
8756        (KJS::GradientFunction::call):
8757        (KJS::Gradient::get):
8758        (KJS::Gradient::put):
8759        (KJS::Gradient::putValueProperty):
8760        (KJS::ImagePattern::get):
8761        (KJS::ImagePattern::put):
8762        (KJS::ImagePattern::putValueProperty):
8763        * khtml/ecma/kjs_html.h:
8764        * khtml/ecma/kjs_navigator.cpp:
8765        (KJS::PluginsFunc::call):
8766        (KJS::NavigatorFunc::call):
8767        * khtml/ecma/kjs_range.cpp:
8768        (KJS::DOMRange::get):
8769        (KJS::DOMRangeProtoFunc::call):
8770        (KJS::RangeConstructor::get):
8771        * khtml/ecma/kjs_range.h:
8772        * khtml/ecma/kjs_traversal.cpp:
8773        (KJS::DOMNodeIterator::get):
8774        (KJS::DOMNodeIteratorProtoFunc::call):
8775        (KJS::NodeFilterConstructor::get):
8776        (KJS::DOMNodeFilterProtoFunc::call):
8777        (KJS::DOMTreeWalker::get):
8778        (KJS::DOMTreeWalker::put):
8779        (KJS::DOMTreeWalkerProtoFunc::call):
8780        * khtml/ecma/kjs_traversal.h:
8781        * khtml/ecma/kjs_views.cpp:
8782        (KJS::DOMAbstractView::get):
8783        (KJS::DOMAbstractViewFunc::call):
8784        * khtml/ecma/kjs_views.h:
8785        * khtml/ecma/kjs_window.cpp:
8786        (KJS::WindowFunc::call):
8787        (KJS::LocationFunc::call):
8788        (KJS::SelectionFunc::call):
8789        (KJS::HistoryFunc::call):
8790        (KJS::KonquerorFunc::call):
8791        * khtml/ecma/xmlhttprequest.cpp:
8792        (KJS::XMLHttpRequest::get):
8793        (KJS::XMLHttpRequest::put):
8794        (KJS::XMLHttpRequest::putValueProperty):
8795        (KJS::XMLHttpRequestProtoFunc::call):
8796        * khtml/ecma/xmlhttprequest.h:
8797        * khtml/ecma/xmlserializer.cpp:
8798        (KJS::XMLSerializerProtoFunc::call):
8799
88002005-07-19  Darin Adler  <darin@apple.com>
8801
8802        Reviewed by Dave Hyatt.
8803
8804        - fixed broken bi-di layout tests: the "dir" attribute was broken
8805
8806        * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::parseMappedAttribute):
8807        Fix one case that said "direction" where it should say "dir".
8808
88092005-07-19  Darin Adler  <darin@apple.com>
8810
8811        - updated results of two tests that reflect properly-preserved namespace prefixes for attributes
8812
8813        * layout-tests/fast/dom/dom-parse-serialize-display-expected.txt:
8814        * layout-tests/fast/dom/dom-parse-serialize-expected.txt:
8815
88162005-07-18  David Hyatt  <hyatt@apple.com>
8817
8818	Add support for -khtml-appearance in preparation for
8819	the addition of RenderTheme to the tree for form controls.
8820
8821	Make clean is required after this check-in, since there is
8822	some sort of bizarre bug with XCode dependencies on the
8823	property generation script.
8824	
8825        Reviewed by darin
8826
8827        * khtml/css/cssparser.cpp:
8828        (CSSParser::parseValue):
8829        * khtml/css/cssproperties.in:
8830        * khtml/css/cssstyleselector.cpp:
8831        (khtml::CSSStyleSelector::applyProperty):
8832        * khtml/css/cssvalues.in:
8833        * khtml/rendering/render_style.cpp:
8834        (m_appearance):
8835        (StyleCSS3NonInheritedData::operator==):
8836        (RenderStyle::diff):
8837        * khtml/rendering/render_style.h:
8838        (khtml::):
8839        (khtml::RenderStyle::appearance):
8840        (khtml::RenderStyle::setAppearance):
8841        (khtml::RenderStyle::initialAppearance):
8842
88432005-07-18  David Harrison  <harrison@apple.com>
8844
8845        Reviewed by Justin.
8846
8847        Test cases added: None.  Existing tests were failing.
8848
8849        Fix crash caused by my changes in revision 1.6 of khtml/editing/delete_selection_command.cpp.
8850        
8851        * khtml/editing/delete_selection_command.cpp:
8852        (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
8853        Remove workaround that was added for missing typing style.
8854        
8855        (khtml::DeleteSelectionCommand::doApply):
8856        Make sure to call saveTypingStyleState() before handleSpecialCaseBRDelete().
8857
88582005-07-18  David Hyatt  <hyatt@apple.com>
8859
8860	Rename HTMLNames -> HTMLTags.  Purely mechanical (done in XCode)
8861	so no review needed.
8862
8863        * khtml/css/cssstyleselector.cpp:
8864        (khtml::CSSStyleSelector::adjustRenderStyle):
8865        (khtml::CSSStyleSelector::checkOneSelector):
8866        * khtml/dom/css_stylesheet.cpp:
8867        (LinkStyle::operator = ):
8868        (LinkStyle::sheet):
8869        * khtml/dom/html_base.cpp:
8870        (HTMLBodyElement::operator = ):
8871        (HTMLFrameElement::operator = ):
8872        (HTMLIFrameElement::operator = ):
8873        (HTMLFrameSetElement::operator = ):
8874        (HTMLHeadElement::operator = ):
8875        (HTMLHtmlElement::operator = ):
8876        * khtml/dom/html_block.cpp:
8877        (HTMLBlockquoteElement::operator = ):
8878        (HTMLDivElement::operator = ):
8879        (HTMLHRElement::operator = ):
8880        (HTMLHeadingElement::operator = ):
8881        (HTMLParagraphElement::operator = ):
8882        (HTMLPreElement::operator = ):
8883        * khtml/dom/html_form.cpp:
8884        (HTMLButtonElement::operator = ):
8885        (HTMLFieldSetElement::operator = ):
8886        (HTMLFormElement::operator = ):
8887        (HTMLInputElement::operator = ):
8888        (HTMLLabelElement::operator = ):
8889        (HTMLLegendElement::operator = ):
8890        (HTMLOptGroupElement::operator = ):
8891        (HTMLSelectElement::operator = ):
8892        (HTMLTextAreaElement::operator = ):
8893        (HTMLOptionElement::operator = ):
8894        (HTMLIsIndexElement::operator = ):
8895        * khtml/dom/html_head.cpp:
8896        (HTMLBaseElement::operator = ):
8897        (HTMLLinkElement::operator = ):
8898        (HTMLMetaElement::operator = ):
8899        (HTMLScriptElement::operator = ):
8900        (HTMLStyleElement::operator = ):
8901        (HTMLTitleElement::operator = ):
8902        * khtml/dom/html_image.cpp:
8903        (HTMLAreaElement::operator = ):
8904        (HTMLImageElement::operator = ):
8905        (HTMLMapElement::operator = ):
8906        * khtml/dom/html_inline.cpp:
8907        (HTMLAnchorElement::operator = ):
8908        (HTMLBRElement::operator = ):
8909        (HTMLFontElement::operator = ):
8910        (HTMLModElement::HTMLModElement):
8911        (HTMLModElement::operator = ):
8912        (HTMLQuoteElement::operator = ):
8913        * khtml/dom/html_list.cpp:
8914        (HTMLDListElement::operator = ):
8915        (HTMLDirectoryElement::operator = ):
8916        (HTMLLIElement::operator = ):
8917        (HTMLMenuElement::operator = ):
8918        (HTMLOListElement::operator = ):
8919        (HTMLUListElement::operator = ):
8920        * khtml/dom/html_misc.cpp:
8921        (HTMLBaseFontElement::operator = ):
8922        * khtml/dom/html_object.cpp:
8923        (DOM::HTMLAppletElement::operator = ):
8924        (DOM::HTMLObjectElement::operator = ):
8925        (DOM::HTMLParamElement::operator = ):
8926        * khtml/dom/html_table.cpp:
8927        (HTMLTableCaptionElement::operator = ):
8928        (HTMLTableCellElement::operator = ):
8929        (HTMLTableColElement::operator = ):
8930        (HTMLTableElement::operator = ):
8931        (HTMLTableRowElement::operator = ):
8932        (HTMLTableSectionElement::operator = ):
8933        * khtml/ecma/kjs_css.cpp:
8934        (KJS::DOMStyleSheetList::tryGet):
8935        * khtml/ecma/kjs_dom.cpp:
8936        (KJS::getRuntimeObject):
8937        * khtml/ecma/kjs_html.cpp:
8938        (KJS::HTMLDocument::tryGet):
8939        (KJS::KJS::HTMLDocument::putValue):
8940        (KJS::KJS::HTMLElement::classInfo):
8941        (KJS::HTMLElement::getSetInfo):
8942        (KJS::KJS::HTMLElement::tryGet):
8943        (KJS::KJS::HTMLElement::implementsCall):
8944        (KJS::KJS::HTMLElement::call):
8945        (KJS::KJS::HTMLElement::hasOwnProperty):
8946        (KJS::KJS::HTMLElement::toString):
8947        (KJS::getForm):
8948        (KJS::KJS::HTMLElement::pushEventHandlerScope):
8949        (KJS::KJS::HTMLElementFunction::tryCall):
8950        (KJS::KJS::HTMLElement::tryPut):
8951        (KJS::toHTMLTableCaptionElement):
8952        (KJS::toHTMLTableSectionElement):
8953        (KJS::KJS::HTMLCollection::tryGet):
8954        (KJS::KJS::HTMLSelectCollection::tryPut):
8955        * khtml/editing/apply_style_command.cpp:
8956        (khtml::isEmptyStyleSpan):
8957        (khtml::isEmptyFontTag):
8958        (khtml::createFontElement):
8959        (khtml::createStyleSpanElement):
8960        (khtml::ApplyStyleCommand::applyInlineStyle):
8961        (khtml::ApplyStyleCommand::isHTMLStyleNode):
8962        (khtml::ApplyStyleCommand::removeHTMLFontStyle):
8963        (khtml::ApplyStyleCommand::mergeEndWithNextIfIdentical):
8964        (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
8965        * khtml/editing/break_blockquote_command.cpp:
8966        (khtml::BreakBlockquoteCommand::doApply):
8967        * khtml/editing/composite_edit_command.cpp:
8968        (khtml::CompositeEditCommand::insertNodeBefore):
8969        (khtml::CompositeEditCommand::insertNodeAfter):
8970        (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
8971        (khtml::createBlockPlaceholderElement):
8972        * khtml/editing/delete_selection_command.cpp:
8973        (khtml::isListStructureNode):
8974        (khtml::DeleteSelectionCommand::handleSpecialCaseBRDelete):
8975        (khtml::DeleteSelectionCommand::handleGeneralDelete):
8976        (khtml::DeleteSelectionCommand::moveNodesAfterNode):
8977        * khtml/editing/htmlediting.cpp:
8978        (khtml::isSpecialElement):
8979        (khtml::createDefaultParagraphElement):
8980        (khtml::createBreakElement):
8981        (khtml::isMailBlockquote):
8982        * khtml/editing/insert_line_break_command.cpp:
8983        (khtml::InsertLineBreakCommand::doApply):
8984        * khtml/editing/insert_paragraph_separator_command.cpp:
8985        (khtml::InsertParagraphSeparatorCommand::doApply):
8986        * khtml/editing/markup.cpp:
8987        (khtml::startMarkup):
8988        (khtml::createMarkup):
8989        (khtml::createFragmentFromText):
8990        * khtml/editing/replace_selection_command.cpp:
8991        (khtml::isProbablyBlock):
8992        (khtml::isProbablyTableStructureNode):
8993        (khtml::ReplacementFragment::isInterchangeNewlineNode):
8994        (khtml::ReplacementFragment::removeStyleNodes):
8995        (khtml::ReplaceSelectionCommand::doApply):
8996        * khtml/editing/visible_position.cpp:
8997        (khtml::VisiblePosition::init):
8998        (khtml::VisiblePosition::isCandidate):
8999        (khtml::VisiblePosition::isAtomicNode):
9000        * khtml/editing/visible_text.cpp:
9001        (khtml::TextIterator::handleNonTextNode):
9002        (khtml::TextIterator::exitNode):
9003        (khtml::SimplifiedBackwardsTextIterator::handleNonTextNode):
9004        * khtml/editing/visible_units.cpp:
9005        (khtml::endOfLine):
9006        * khtml/html/html_baseimpl.cpp:
9007        (HTMLBodyElementImpl::HTMLBodyElementImpl):
9008        (HTMLFrameElementImpl::HTMLFrameElementImpl):
9009        (HTMLFrameElementImpl::attach):
9010        (HTMLFrameSetElementImpl::HTMLFrameSetElementImpl):
9011        (HTMLFrameSetElementImpl::checkDTD):
9012        (HTMLFrameSetElementImpl::attach):
9013        (HTMLHeadElementImpl::HTMLHeadElementImpl):
9014        (HTMLHeadElementImpl::checkDTD):
9015        (HTMLHtmlElementImpl::HTMLHtmlElementImpl):
9016        (HTMLHtmlElementImpl::checkDTD):
9017        (HTMLIFrameElementImpl::HTMLIFrameElementImpl):
9018        * khtml/html/html_blockimpl.cpp:
9019        (HTMLBlockquoteElementImpl::HTMLBlockquoteElementImpl):
9020        (HTMLDivElementImpl::HTMLDivElementImpl):
9021        (HTMLHRElementImpl::HTMLHRElementImpl):
9022        (HTMLHeadingElementImpl::checkDTD):
9023        (HTMLParagraphElementImpl::HTMLParagraphElementImpl):
9024        (HTMLParagraphElementImpl::checkDTD):
9025        (HTMLMarqueeElementImpl::HTMLMarqueeElementImpl):
9026        * khtml/html/html_canvasimpl.cpp:
9027        (HTMLCanvasElementImpl::HTMLCanvasElementImpl):
9028        * khtml/html/html_documentimpl.cpp:
9029        (DOM::HTMLDocumentImpl::childAllowed):
9030        * khtml/html/html_elementimpl.cpp:
9031        (HTMLElementImpl::endTagRequirement):
9032        (HTMLElementImpl::tagPriority):
9033        (HTMLElementImpl::createContextualFragment):
9034        (HTMLElementImpl::setInnerText):
9035        (HTMLElementImpl::setOuterText):
9036        (HTMLElementImpl::isRecognizedTagName):
9037        (inlineTagList):
9038        (blockTagList):
9039        (HTMLElementImpl::checkDTD):
9040        * khtml/html/html_formimpl.cpp:
9041        (DOM::HTMLFormElementImpl::HTMLFormElementImpl):
9042        (DOM::HTMLFormElementImpl::submitClick):
9043        (DOM::HTMLFormElementImpl::formData):
9044        (DOM::HTMLFormElementImpl::submit):
9045        (DOM::HTMLFormElementImpl::radioClicked):
9046        (DOM::HTMLGenericFormElementImpl::getForm):
9047        (DOM::HTMLButtonElementImpl::HTMLButtonElementImpl):
9048        (DOM::HTMLFieldSetElementImpl::HTMLFieldSetElementImpl):
9049        (DOM::HTMLFieldSetElementImpl::checkDTD):
9050        (DOM::HTMLInputElementImpl::HTMLInputElementImpl):
9051        (DOM::HTMLLabelElementImpl::HTMLLabelElementImpl):
9052        (DOM::HTMLLabelElementImpl::form):
9053        (DOM::HTMLLegendElementImpl::HTMLLegendElementImpl):
9054        (DOM::HTMLLegendElementImpl::formElement):
9055        (DOM::HTMLSelectElementImpl::HTMLSelectElementImpl):
9056        (DOM::HTMLSelectElementImpl::checkDTD):
9057        (DOM::HTMLSelectElementImpl::selectedIndex):
9058        (DOM::HTMLSelectElementImpl::setSelectedIndex):
9059        (DOM::HTMLSelectElementImpl::length):
9060        (DOM::HTMLSelectElementImpl::add):
9061        (DOM::HTMLSelectElementImpl::value):
9062        (DOM::HTMLSelectElementImpl::setValue):
9063        (DOM::HTMLSelectElementImpl::state):
9064        (DOM::HTMLSelectElementImpl::restoreState):
9065        (DOM::HTMLSelectElementImpl::appendFormData):
9066        (DOM::HTMLSelectElementImpl::optionToListIndex):
9067        (DOM::HTMLSelectElementImpl::listToOptionIndex):
9068        (DOM::HTMLSelectElementImpl::recalcListItems):
9069        (DOM::HTMLSelectElementImpl::reset):
9070        (DOM::HTMLSelectElementImpl::notifyOptionSelected):
9071        (DOM::HTMLKeygenElementImpl::HTMLKeygenElementImpl):
9072        (DOM::HTMLOptGroupElementImpl::HTMLOptGroupElementImpl):
9073        (DOM::HTMLOptGroupElementImpl::recalcSelectOptions):
9074        (DOM::HTMLOptionElementImpl::HTMLOptionElementImpl):
9075        (DOM::HTMLOptionElementImpl::index):
9076        (DOM::HTMLOptionElementImpl::getSelect):
9077        (DOM::HTMLTextAreaElementImpl::HTMLTextAreaElementImpl):
9078        (DOM::HTMLIsIndexElementImpl::HTMLIsIndexElementImpl):
9079        * khtml/html/html_formimpl.h:
9080        (DOM::HTMLOptGroupElementImpl::checkDTD):
9081        * khtml/html/html_headimpl.cpp:
9082        (HTMLBaseElementImpl::HTMLBaseElementImpl):
9083        (HTMLLinkElementImpl::HTMLLinkElementImpl):
9084        (HTMLMetaElementImpl::HTMLMetaElementImpl):
9085        (HTMLScriptElementImpl::HTMLScriptElementImpl):
9086        (HTMLStyleElementImpl::HTMLStyleElementImpl):
9087        (HTMLTitleElementImpl::HTMLTitleElementImpl):
9088        * khtml/html/html_imageimpl.cpp:
9089        (HTMLImageLoader::updateFromElement):
9090        (HTMLImageElementImpl::HTMLImageElementImpl):
9091        (HTMLMapElementImpl::HTMLMapElementImpl):
9092        (HTMLMapElementImpl::checkDTD):
9093        (HTMLMapElementImpl::mapMouseEvent):
9094        (HTMLAreaElementImpl::HTMLAreaElementImpl):
9095        * khtml/html/html_inlineimpl.cpp:
9096        (DOM::HTMLAnchorElementImpl::HTMLAnchorElementImpl):
9097        (DOM::HTMLAnchorElementImpl::defaultEventHandler):
9098        (DOM::HTMLBRElementImpl::HTMLBRElementImpl):
9099        (DOM::HTMLFontElementImpl::HTMLFontElementImpl):
9100        (DOM::HTMLQuoteElementImpl::HTMLQuoteElementImpl):
9101        * khtml/html/html_listimpl.cpp:
9102        (DOM::HTMLLIElementImpl::attach):
9103        * khtml/html/html_listimpl.h:
9104        (DOM::HTMLUListElementImpl::HTMLUListElementImpl):
9105        (DOM::HTMLDirectoryElementImpl::HTMLDirectoryElementImpl):
9106        (DOM::HTMLMenuElementImpl::HTMLMenuElementImpl):
9107        (DOM::HTMLOListElementImpl::HTMLOListElementImpl):
9108        (DOM::HTMLLIElementImpl::HTMLLIElementImpl):
9109        (DOM::HTMLDListElementImpl::HTMLDListElementImpl):
9110        * khtml/html/html_miscimpl.cpp:
9111        (DOM::HTMLBaseFontElementImpl::HTMLBaseFontElementImpl):
9112        (DOM::HTMLCollectionImpl::traverseNextItem):
9113        (DOM::HTMLCollectionImpl::checkForNameMatch):
9114        (DOM::HTMLCollectionImpl::updateNameCache):
9115        (DOM::HTMLFormCollectionImpl::getNamedFormItem):
9116        (DOM::HTMLFormCollectionImpl::updateNameCache):
9117        * khtml/html/html_objectimpl.cpp:
9118        (DOM::HTMLAppletElementImpl::HTMLAppletElementImpl):
9119        (DOM::HTMLAppletElementImpl::checkDTD):
9120        (DOM::HTMLEmbedElementImpl::HTMLEmbedElementImpl):
9121        (DOM::HTMLEmbedElementImpl::checkDTD):
9122        (DOM::HTMLEmbedElementImpl::rendererIsNeeded):
9123        (DOM::HTMLObjectElementImpl::HTMLObjectElementImpl):
9124        (DOM::HTMLObjectElementImpl::checkDTD):
9125        (DOM::HTMLObjectElementImpl::form):
9126        (DOM::HTMLParamElementImpl::HTMLParamElementImpl):
9127        * khtml/html/html_tableimpl.cpp:
9128        (DOM::HTMLTableElementImpl::HTMLTableElementImpl):
9129        (DOM::HTMLTableElementImpl::checkDTD):
9130        (DOM::HTMLTableElementImpl::createTHead):
9131        (DOM::HTMLTableElementImpl::createTFoot):
9132        (DOM::HTMLTableElementImpl::insertRow):
9133        (DOM::HTMLTableElementImpl::deleteRow):
9134        (DOM::HTMLTableElementImpl::addChild):
9135        (DOM::HTMLTableSectionElementImpl::checkDTD):
9136        (DOM::HTMLTableSectionElementImpl::addChild):
9137        (DOM::HTMLTableSectionElementImpl::numRows):
9138        (DOM::HTMLTableRowElementImpl::checkDTD):
9139        (DOM::HTMLTableRowElementImpl::addChild):
9140        (DOM::HTMLTableRowElementImpl::rowIndex):
9141        (DOM::HTMLTableRowElementImpl::sectionRowIndex):
9142        (DOM::HTMLTableRowElementImpl::insertCell):
9143        (DOM::HTMLTableCellElementImpl::cellIndex):
9144        (DOM::HTMLTableCellElementImpl::additionalAttributeStyleDecl):
9145        (DOM::HTMLTableColElementImpl::HTMLTableColElementImpl):
9146        * khtml/html/html_tableimpl.h:
9147        (DOM::HTMLTableRowElementImpl::HTMLTableRowElementImpl):
9148        (DOM::HTMLTableColElementImpl::endTagRequirement):
9149        (DOM::HTMLTableColElementImpl::tagPriority):
9150        (DOM::HTMLTableColElementImpl::checkDTD):
9151        (DOM::HTMLTableCaptionElementImpl::HTMLTableCaptionElementImpl):
9152        * khtml/html/htmlfactory.cpp:
9153        (DOM::headingConstructor):
9154        (DOM::preConstructor):
9155        (DOM::modConstructor):
9156        (DOM::tableColConstructor):
9157        (DOM::tableCellConstructor):
9158        (DOM::tableSectionConstructor):
9159        (DOM::HTMLElementFactory::createHTMLElement):
9160        * khtml/html/htmlnames.cpp:
9161        (DOM::HTMLTags::init):
9162        * khtml/html/htmlnames.h:
9163        * khtml/html/htmlparser.cpp:
9164        (HTMLParser::parseToken):
9165        (isTableSection):
9166        (isTablePart):
9167        (isTableRelated):
9168        (HTMLParser::handleError):
9169        (HTMLParser::headCreateErrorCheck):
9170        (HTMLParser::bodyCreateErrorCheck):
9171        (HTMLParser::framesetCreateErrorCheck):
9172        (HTMLParser::iframeCreateErrorCheck):
9173        (HTMLParser::ddCreateErrorCheck):
9174        (HTMLParser::dtCreateErrorCheck):
9175        (HTMLParser::tableCellCreateErrorCheck):
9176        (HTMLParser::tableSectionCreateErrorCheck):
9177        (HTMLParser::noembedCreateErrorCheck):
9178        (HTMLParser::noframesCreateErrorCheck):
9179        (HTMLParser::noscriptCreateErrorCheck):
9180        (HTMLParser::getNode):
9181        (HTMLParser::processCloseTag):
9182        (HTMLParser::isHeaderTag):
9183        (HTMLParser::isInline):
9184        (HTMLParser::isResidualStyleTag):
9185        (HTMLParser::isAffectedByResidualStyle):
9186        (HTMLParser::popBlock):
9187        * khtml/html/htmltokenizer.cpp:
9188        (khtml::HTMLTokenizer::parseSpecial):
9189        (khtml::HTMLTokenizer::scriptHandler):
9190        (khtml::HTMLTokenizer::parseTag):
9191        * khtml/khtml_part.cpp:
9192        (KHTMLPart::init):
9193        (KHTMLPart::selectionComputedStyle):
9194        * khtml/khtmlview.cpp:
9195        (KHTMLView::layout):
9196        (isSubmitImage):
9197        * khtml/misc/decoder.cpp:
9198        (Decoder::decode):
9199        * khtml/rendering/render_applet.cpp:
9200        (RenderApplet::createWidgetIfNecessary):
9201        * khtml/rendering/render_block.cpp:
9202        (khtml::RenderBlock::layoutBlock):
9203        * khtml/rendering/render_box.cpp:
9204        (RenderBox::paintRootBoxDecorations):
9205        (RenderBox::paintBackgroundExtended):
9206        * khtml/rendering/render_canvasimage.cpp:
9207        (RenderCanvasImage::paint):
9208        * khtml/rendering/render_flow.cpp:
9209        (RenderFlow::addFocusRingRects):
9210        * khtml/rendering/render_form.cpp:
9211        (RenderFieldset::findLegend):
9212        (RenderSelect::updateFromElement):
9213        (RenderSelect::layout):
9214        (RenderSelect::slotSelected):
9215        (RenderSelect::slotSelectionChanged):
9216        (RenderSelect::updateSelection):
9217        * khtml/rendering/render_frames.cpp:
9218        (RenderPartObject::updateWidget):
9219        (RenderPartObject::slotViewCleared):
9220        * khtml/rendering/render_image.cpp:
9221        (RenderImage::paint):
9222        (RenderImage::imageMap):
9223        (RenderImage::updateAltText):
9224        * khtml/rendering/render_layer.cpp:
9225        (Marquee::marqueeSpeed):
9226        * khtml/rendering/render_list.cpp:
9227        (getParentOfFirstLineBox):
9228        * khtml/rendering/render_object.cpp:
9229        (RenderObject::isBody):
9230        (RenderObject::isHR):
9231        (RenderObject::isHTMLMarquee):
9232        (RenderObject::sizesToMaxWidth):
9233        (RenderObject::setStyle):
9234        (RenderObject::getTextDecorationColors):
9235        (RenderObject::setPixmap):
9236        * khtml/rendering/render_table.cpp:
9237        (RenderTable::addChild):
9238        (RenderTable::layout):
9239        (RenderTableSection::addChild):
9240        (RenderTableRow::addChild):
9241        (RenderTableCell::updateFromElement):
9242        (RenderTableCol::updateFromElement):
9243        * khtml/xml/dom_docimpl.cpp:
9244        (DocumentImpl::createElementNS):
9245        (DocumentImpl::body):
9246        (DocumentImpl::shouldScheduleLayout):
9247        (DocumentImpl::recalcStyleSelector):
9248        * khtml/xml/dom_nodeimpl.cpp:
9249        (DOM::NodeImpl::maxDeepOffset):
9250        (DOM::NodeImpl::enclosingBlockFlowOrTableElement):
9251        (DOM::NodeImpl::enclosingBlockFlowElement):
9252        (DOM::NodeImpl::enclosingInlineElement):
9253        (DOM::NodeImpl::rootEditableElement):
9254        (DOM::NodeImpl::showTreeAndMark):
9255        * khtml/xml/dom_position.cpp:
9256        (DOM::Position::downstream):
9257        (DOM::Position::rendersInDifferentPosition):
9258        (DOM::Position::leadingWhitespacePosition):
9259        (DOM::Position::trailingWhitespacePosition):
9260        * khtml/xml/xml_tokenizer.cpp:
9261        (khtml::XMLTokenizer::startElement):
9262        (khtml::XMLTokenizer::insertErrorMessageBlock):
9263        (khtml::XMLTokenizer::addScripts):
9264        * kwq/DOM.mm:
9265        (+[DOMNode _nodeWithImpl:]):
9266        * kwq/DOMHTML.mm:
9267        * kwq/KWQAccObject.mm:
9268        (-[KWQAccObject role]):
9269        (-[KWQAccObject title]):
9270        (-[KWQAccObject accessibilityIsIgnored]):
9271        * kwq/KWQKHTMLPart.cpp:
9272        (KWQKHTMLPart::isFrameSet):
9273        * kwq/KWQKHTMLPart.mm:
9274        (scanForForm):
9275        (KWQKHTMLPart::currentForm):
9276        (KWQKHTMLPart::searchForLabelsBeforeElement):
9277        (listParent):
9278        (isTextFirstInListItem):
9279        (KWQKHTMLPart::attributedString):
9280        (KWQKHTMLPart::styleForSelectionStart):
9281        (KWQKHTMLPart::setSelectionFromNone):
9282        * kwq/WebCoreBridge.mm:
9283        (inputElementFromDOMElement):
9284        (formElementFromDOMElement):
9285        (-[WebCoreBridge elementAtPoint:]):
9286
92872005-07-18  David Hyatt  <hyatt@apple.com>
9288
9289	Fix for bugzilla bug 3927.  Convert attributes to use QualifiedName.
9290	
9291        Reviewed by mjs
9292
9293        * WebCore.pbproj/project.pbxproj:
9294        * khtml/css/css_base.cpp:
9295        (CSSSelector::print):
9296        (CSSSelector::selectorText):
9297        * khtml/css/css_base.h:
9298        (DOM::CSSSelector::CSSSelector):
9299        (DOM::CSSSelector::hasTag):
9300        (DOM::CSSSelector::hasAttribute):
9301        * khtml/css/css_stylesheetimpl.cpp:
9302        (CSSStyleSheetImpl::determineNamespace):
9303        * khtml/css/cssparser.cpp:
9304        (CSSParser::parseContent):
9305        * khtml/css/cssstyleselector.cpp:
9306        (khtml::checkPseudoState):
9307        (khtml::CSSStyleSelector::canShareStyleWithElement):
9308        (khtml::CSSStyleSelector::checkOneSelector):
9309        (khtml::CSSStyleSelector::applyProperty):
9310        * khtml/css/parser.y:
9311        * khtml/dom/css_stylesheet.cpp:
9312        * khtml/dom/html_base.cpp:
9313        * khtml/dom/html_block.cpp:
9314        * khtml/dom/html_document.cpp:
9315        * khtml/dom/html_element.cpp:
9316        * khtml/dom/html_form.cpp:
9317        * khtml/dom/html_head.cpp:
9318        * khtml/dom/html_image.cpp:
9319        * khtml/dom/html_inline.cpp:
9320        * khtml/dom/html_list.cpp:
9321        * khtml/dom/html_misc.cpp:
9322        * khtml/dom/html_object.cpp:
9323        * khtml/dom/html_table.cpp:
9324        * khtml/ecma/kjs_html.cpp:
9325        (KJS::HTMLElement::inputGetter):
9326        (KJS::HTMLElement::inputSetter):
9327        * khtml/editing/apply_style_command.cpp:
9328        (khtml::isStyleSpan):
9329        (khtml::isEmptyStyleSpan):
9330        (khtml::isEmptyFontTag):
9331        (khtml::createFontElement):
9332        (khtml::createStyleSpanElement):
9333        (khtml::ApplyStyleCommand::applyRelativeFontStyleChange):
9334        (khtml::ApplyStyleCommand::removeHTMLFontStyle):
9335        (khtml::ApplyStyleCommand::applyTextDecorationStyle):
9336        (khtml::areIdenticalElements):
9337        (khtml::ApplyStyleCommand::addBlockStyleIfNeeded):
9338        (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
9339        * khtml/editing/composite_edit_command.cpp:
9340        (khtml::CompositeEditCommand::removeNodeAttribute):
9341        (khtml::CompositeEditCommand::setNodeAttribute):
9342        (khtml::CompositeEditCommand::findBlockPlaceholder):
9343        (khtml::createBlockPlaceholderElement):
9344        * khtml/editing/composite_edit_command.h:
9345        * khtml/editing/markup.cpp:
9346        (khtml::startMarkup):
9347        (khtml::completeURLs):
9348        (khtml::createFragmentFromText):
9349        * khtml/editing/remove_node_attribute_command.cpp:
9350        (khtml::RemoveNodeAttributeCommand::RemoveNodeAttributeCommand):
9351        * khtml/editing/remove_node_attribute_command.h:
9352        (khtml::RemoveNodeAttributeCommand::attribute):
9353        * khtml/editing/replace_selection_command.cpp:
9354        (khtml::ReplacementFragment::isInterchangeNewlineNode):
9355        (khtml::ReplacementFragment::isInterchangeConvertedSpaceSpan):
9356        * khtml/editing/set_node_attribute_command.cpp:
9357        (khtml::SetNodeAttributeCommand::SetNodeAttributeCommand):
9358        * khtml/editing/set_node_attribute_command.h:
9359        (khtml::SetNodeAttributeCommand::attribute):
9360        * khtml/html/html_baseimpl.cpp:
9361        (HTMLBodyElementImpl::mapToEntry):
9362        (HTMLBodyElementImpl::parseMappedAttribute):
9363        (HTMLBodyElementImpl::insertedIntoDocument):
9364        (HTMLBodyElementImpl::isURLAttribute):
9365        (HTMLBodyElementImpl::aLink):
9366        (HTMLBodyElementImpl::setALink):
9367        (HTMLBodyElementImpl::background):
9368        (HTMLBodyElementImpl::setBackground):
9369        (HTMLBodyElementImpl::bgColor):
9370        (HTMLBodyElementImpl::setBgColor):
9371        (HTMLBodyElementImpl::link):
9372        (HTMLBodyElementImpl::setLink):
9373        (HTMLBodyElementImpl::text):
9374        (HTMLBodyElementImpl::setText):
9375        (HTMLBodyElementImpl::vLink):
9376        (HTMLBodyElementImpl::setVLink):
9377        (HTMLFrameElementImpl::parseMappedAttribute):
9378        (HTMLFrameElementImpl::attach):
9379        (HTMLFrameElementImpl::isURLAttribute):
9380        (HTMLFrameElementImpl::frameBorder):
9381        (HTMLFrameElementImpl::setFrameBorder):
9382        (HTMLFrameElementImpl::longDesc):
9383        (HTMLFrameElementImpl::setLongDesc):
9384        (HTMLFrameElementImpl::marginHeight):
9385        (HTMLFrameElementImpl::setMarginHeight):
9386        (HTMLFrameElementImpl::marginWidth):
9387        (HTMLFrameElementImpl::setMarginWidth):
9388        (HTMLFrameElementImpl::name):
9389        (HTMLFrameElementImpl::setName):
9390        (HTMLFrameElementImpl::setNoResize):
9391        (HTMLFrameElementImpl::scrolling):
9392        (HTMLFrameElementImpl::setScrolling):
9393        (HTMLFrameElementImpl::src):
9394        (HTMLFrameElementImpl::setSrc):
9395        (HTMLFrameSetElementImpl::parseMappedAttribute):
9396        (HTMLFrameSetElementImpl::cols):
9397        (HTMLFrameSetElementImpl::setCols):
9398        (HTMLFrameSetElementImpl::rows):
9399        (HTMLFrameSetElementImpl::setRows):
9400        (HTMLHeadElementImpl::profile):
9401        (HTMLHeadElementImpl::setProfile):
9402        (HTMLHtmlElementImpl::version):
9403        (HTMLHtmlElementImpl::setVersion):
9404        (HTMLIFrameElementImpl::mapToEntry):
9405        (HTMLIFrameElementImpl::parseMappedAttribute):
9406        (HTMLIFrameElementImpl::attach):
9407        (HTMLIFrameElementImpl::isURLAttribute):
9408        (HTMLIFrameElementImpl::align):
9409        (HTMLIFrameElementImpl::setAlign):
9410        (HTMLIFrameElementImpl::height):
9411        (HTMLIFrameElementImpl::setHeight):
9412        (HTMLIFrameElementImpl::src):
9413        (HTMLIFrameElementImpl::width):
9414        (HTMLIFrameElementImpl::setWidth):
9415        * khtml/html/html_baseimpl.h:
9416        * khtml/html/html_blockimpl.cpp:
9417        (HTMLBlockquoteElementImpl::cite):
9418        (HTMLBlockquoteElementImpl::setCite):
9419        (HTMLDivElementImpl::mapToEntry):
9420        (HTMLDivElementImpl::parseMappedAttribute):
9421        (HTMLDivElementImpl::align):
9422        (HTMLDivElementImpl::setAlign):
9423        (HTMLHRElementImpl::mapToEntry):
9424        (HTMLHRElementImpl::parseMappedAttribute):
9425        (HTMLHRElementImpl::align):
9426        (HTMLHRElementImpl::setAlign):
9427        (HTMLHRElementImpl::noShade):
9428        (HTMLHRElementImpl::setNoShade):
9429        (HTMLHRElementImpl::size):
9430        (HTMLHRElementImpl::setSize):
9431        (HTMLHRElementImpl::width):
9432        (HTMLHRElementImpl::setWidth):
9433        (HTMLHeadingElementImpl::align):
9434        (HTMLHeadingElementImpl::setAlign):
9435        (HTMLParagraphElementImpl::mapToEntry):
9436        (HTMLParagraphElementImpl::parseMappedAttribute):
9437        (HTMLParagraphElementImpl::align):
9438        (HTMLParagraphElementImpl::setAlign):
9439        (HTMLPreElementImpl::width):
9440        (HTMLPreElementImpl::setWidth):
9441        (HTMLMarqueeElementImpl::mapToEntry):
9442        (HTMLMarqueeElementImpl::parseMappedAttribute):
9443        * khtml/html/html_blockimpl.h:
9444        * khtml/html/html_canvasimpl.cpp:
9445        (HTMLCanvasElementImpl::mapToEntry):
9446        (HTMLCanvasElementImpl::parseMappedAttribute):
9447        (HTMLCanvasElementImpl::isURLAttribute):
9448        * khtml/html/html_canvasimpl.h:
9449        * khtml/html/html_documentimpl.cpp:
9450        * khtml/html/html_elementimpl.cpp:
9451        (HTMLElementImpl::mapToEntry):
9452        (HTMLElementImpl::parseMappedAttribute):
9453        (HTMLElementImpl::setContentEditable):
9454        (HTMLElementImpl::id):
9455        (HTMLElementImpl::setId):
9456        (HTMLElementImpl::title):
9457        (HTMLElementImpl::setTitle):
9458        (HTMLElementImpl::lang):
9459        (HTMLElementImpl::setLang):
9460        (HTMLElementImpl::dir):
9461        (HTMLElementImpl::setDir):
9462        (HTMLElementImpl::className):
9463        (HTMLElementImpl::setClassName):
9464        * khtml/html/html_elementimpl.h:
9465        * khtml/html/html_formimpl.cpp:
9466        (DOM::HTMLFormElementImpl::parseMappedAttribute):
9467        (DOM::HTMLFormElementImpl::isURLAttribute):
9468        (DOM::HTMLFormElementImpl::name):
9469        (DOM::HTMLFormElementImpl::setName):
9470        (DOM::HTMLFormElementImpl::acceptCharset):
9471        (DOM::HTMLFormElementImpl::setAcceptCharset):
9472        (DOM::HTMLFormElementImpl::action):
9473        (DOM::HTMLFormElementImpl::setAction):
9474        (DOM::HTMLFormElementImpl::setEnctype):
9475        (DOM::HTMLFormElementImpl::method):
9476        (DOM::HTMLFormElementImpl::setMethod):
9477        (DOM::HTMLFormElementImpl::target):
9478        (DOM::HTMLFormElementImpl::setTarget):
9479        (DOM::HTMLGenericFormElementImpl::parseMappedAttribute):
9480        (DOM::HTMLGenericFormElementImpl::name):
9481        (DOM::HTMLGenericFormElementImpl::setName):
9482        (DOM::HTMLGenericFormElementImpl::setDisabled):
9483        (DOM::HTMLGenericFormElementImpl::setReadOnly):
9484        (DOM::HTMLGenericFormElementImpl::tabIndex):
9485        (DOM::HTMLGenericFormElementImpl::setTabIndex):
9486        (DOM::HTMLButtonElementImpl::type):
9487        (DOM::HTMLButtonElementImpl::parseMappedAttribute):
9488        (DOM::HTMLButtonElementImpl::accessKey):
9489        (DOM::HTMLButtonElementImpl::setAccessKey):
9490        (DOM::HTMLButtonElementImpl::value):
9491        (DOM::HTMLButtonElementImpl::setValue):
9492        (DOM::HTMLInputElementImpl::setType):
9493        (DOM::HTMLInputElementImpl::mapToEntry):
9494        (DOM::HTMLInputElementImpl::parseMappedAttribute):
9495        (DOM::HTMLInputElementImpl::attach):
9496        (DOM::HTMLInputElementImpl::altText):
9497        (DOM::HTMLInputElementImpl::value):
9498        (DOM::HTMLInputElementImpl::setValue):
9499        (DOM::HTMLInputElementImpl::isURLAttribute):
9500        (DOM::HTMLInputElementImpl::defaultValue):
9501        (DOM::HTMLInputElementImpl::setDefaultValue):
9502        (DOM::HTMLInputElementImpl::defaultChecked):
9503        (DOM::HTMLInputElementImpl::setDefaultChecked):
9504        (DOM::HTMLInputElementImpl::accept):
9505        (DOM::HTMLInputElementImpl::setAccept):
9506        (DOM::HTMLInputElementImpl::accessKey):
9507        (DOM::HTMLInputElementImpl::setAccessKey):
9508        (DOM::HTMLInputElementImpl::align):
9509        (DOM::HTMLInputElementImpl::setAlign):
9510        (DOM::HTMLInputElementImpl::alt):
9511        (DOM::HTMLInputElementImpl::setAlt):
9512        (DOM::HTMLInputElementImpl::setMaxLength):
9513        (DOM::HTMLInputElementImpl::setSize):
9514        (DOM::HTMLInputElementImpl::src):
9515        (DOM::HTMLInputElementImpl::setSrc):
9516        (DOM::HTMLInputElementImpl::useMap):
9517        (DOM::HTMLInputElementImpl::setUseMap):
9518        (DOM::HTMLLabelElementImpl::parseMappedAttribute):
9519        (DOM::HTMLLabelElementImpl::formElement):
9520        (DOM::HTMLLabelElementImpl::accessKey):
9521        (DOM::HTMLLabelElementImpl::setAccessKey):
9522        (DOM::HTMLLabelElementImpl::htmlFor):
9523        (DOM::HTMLLabelElementImpl::setHtmlFor):
9524        (DOM::HTMLLegendElementImpl::accessKey):
9525        (DOM::HTMLLegendElementImpl::setAccessKey):
9526        (DOM::HTMLLegendElementImpl::align):
9527        (DOM::HTMLLegendElementImpl::setAlign):
9528        (DOM::HTMLSelectElementImpl::parseMappedAttribute):
9529        (DOM::HTMLSelectElementImpl::reset):
9530        (DOM::HTMLSelectElementImpl::setMultiple):
9531        (DOM::HTMLSelectElementImpl::setSize):
9532        (DOM::HTMLKeygenElementImpl::parseMappedAttribute):
9533        (DOM::HTMLOptGroupElementImpl::label):
9534        (DOM::HTMLOptGroupElementImpl::setLabel):
9535        (DOM::HTMLOptionElementImpl::text):
9536        (DOM::HTMLOptionElementImpl::parseMappedAttribute):
9537        (DOM::HTMLOptionElementImpl::setValue):
9538        (DOM::HTMLOptionElementImpl::defaultSelected):
9539        (DOM::HTMLOptionElementImpl::setDefaultSelected):
9540        (DOM::HTMLOptionElementImpl::label):
9541        (DOM::HTMLOptionElementImpl::setLabel):
9542        (DOM::HTMLTextAreaElementImpl::parseMappedAttribute):
9543        (DOM::HTMLTextAreaElementImpl::accessKey):
9544        (DOM::HTMLTextAreaElementImpl::setAccessKey):
9545        (DOM::HTMLTextAreaElementImpl::setCols):
9546        (DOM::HTMLTextAreaElementImpl::setRows):
9547        (DOM::HTMLIsIndexElementImpl::parseMappedAttribute):
9548        (DOM::HTMLIsIndexElementImpl::prompt):
9549        (DOM::HTMLIsIndexElementImpl::setPrompt):
9550        * khtml/html/html_formimpl.h:
9551        * khtml/html/html_headimpl.cpp:
9552        (HTMLBaseElementImpl::parseMappedAttribute):
9553        (HTMLBaseElementImpl::setHref):
9554        (HTMLBaseElementImpl::setTarget):
9555        (HTMLLinkElementImpl::parseMappedAttribute):
9556        (HTMLLinkElementImpl::process):
9557        (HTMLLinkElementImpl::isURLAttribute):
9558        (HTMLLinkElementImpl::disabled):
9559        (HTMLLinkElementImpl::setDisabled):
9560        (HTMLLinkElementImpl::charset):
9561        (HTMLLinkElementImpl::setCharset):
9562        (HTMLLinkElementImpl::href):
9563        (HTMLLinkElementImpl::setHref):
9564        (HTMLLinkElementImpl::hreflang):
9565        (HTMLLinkElementImpl::setHreflang):
9566        (HTMLLinkElementImpl::media):
9567        (HTMLLinkElementImpl::setMedia):
9568        (HTMLLinkElementImpl::rel):
9569        (HTMLLinkElementImpl::setRel):
9570        (HTMLLinkElementImpl::rev):
9571        (HTMLLinkElementImpl::setRev):
9572        (HTMLLinkElementImpl::target):
9573        (HTMLLinkElementImpl::setTarget):
9574        (HTMLLinkElementImpl::type):
9575        (HTMLLinkElementImpl::setType):
9576        (HTMLMetaElementImpl::parseMappedAttribute):
9577        (HTMLMetaElementImpl::content):
9578        (HTMLMetaElementImpl::setContent):
9579        (HTMLMetaElementImpl::httpEquiv):
9580        (HTMLMetaElementImpl::setHttpEquiv):
9581        (HTMLMetaElementImpl::name):
9582        (HTMLMetaElementImpl::setName):
9583        (HTMLMetaElementImpl::scheme):
9584        (HTMLMetaElementImpl::setScheme):
9585        (HTMLScriptElementImpl::isURLAttribute):
9586        (HTMLScriptElementImpl::insertedIntoDocument):
9587        (HTMLScriptElementImpl::charset):
9588        (HTMLScriptElementImpl::setCharset):
9589        (HTMLScriptElementImpl::defer):
9590        (HTMLScriptElementImpl::setDefer):
9591        (HTMLScriptElementImpl::src):
9592        (HTMLScriptElementImpl::setSrc):
9593        (HTMLScriptElementImpl::type):
9594        (HTMLScriptElementImpl::setType):
9595        (HTMLStyleElementImpl::parseMappedAttribute):
9596        (HTMLStyleElementImpl::disabled):
9597        (HTMLStyleElementImpl::setDisabled):
9598        (HTMLStyleElementImpl::media):
9599        (HTMLStyleElementImpl::setMedia):
9600        (HTMLStyleElementImpl::type):
9601        (HTMLStyleElementImpl::setType):
9602        * khtml/html/html_imageimpl.cpp:
9603        (HTMLImageLoader::updateFromElement):
9604        (HTMLImageElementImpl::mapToEntry):
9605        (HTMLImageElementImpl::parseMappedAttribute):
9606        (HTMLImageElementImpl::altText):
9607        (HTMLImageElementImpl::width):
9608        (HTMLImageElementImpl::height):
9609        (HTMLImageElementImpl::isURLAttribute):
9610        (HTMLImageElementImpl::name):
9611        (HTMLImageElementImpl::setName):
9612        (HTMLImageElementImpl::align):
9613        (HTMLImageElementImpl::setAlign):
9614        (HTMLImageElementImpl::alt):
9615        (HTMLImageElementImpl::setAlt):
9616        (HTMLImageElementImpl::border):
9617        (HTMLImageElementImpl::setBorder):
9618        (HTMLImageElementImpl::setHeight):
9619        (HTMLImageElementImpl::hspace):
9620        (HTMLImageElementImpl::setHspace):
9621        (HTMLImageElementImpl::isMap):
9622        (HTMLImageElementImpl::setIsMap):
9623        (HTMLImageElementImpl::longDesc):
9624        (HTMLImageElementImpl::setLongDesc):
9625        (HTMLImageElementImpl::src):
9626        (HTMLImageElementImpl::setSrc):
9627        (HTMLImageElementImpl::useMap):
9628        (HTMLImageElementImpl::setUseMap):
9629        (HTMLImageElementImpl::vspace):
9630        (HTMLImageElementImpl::setVspace):
9631        (HTMLImageElementImpl::setWidth):
9632        (HTMLMapElementImpl::parseMappedAttribute):
9633        (HTMLMapElementImpl::name):
9634        (HTMLMapElementImpl::setName):
9635        (HTMLAreaElementImpl::parseMappedAttribute):
9636        (HTMLAreaElementImpl::accessKey):
9637        (HTMLAreaElementImpl::setAccessKey):
9638        (HTMLAreaElementImpl::alt):
9639        (HTMLAreaElementImpl::setAlt):
9640        (HTMLAreaElementImpl::coords):
9641        (HTMLAreaElementImpl::setCoords):
9642        (HTMLAreaElementImpl::href):
9643        (HTMLAreaElementImpl::setHref):
9644        (HTMLAreaElementImpl::noHref):
9645        (HTMLAreaElementImpl::setNoHref):
9646        (HTMLAreaElementImpl::shape):
9647        (HTMLAreaElementImpl::setShape):
9648        (HTMLAreaElementImpl::tabIndex):
9649        (HTMLAreaElementImpl::setTabIndex):
9650        (HTMLAreaElementImpl::target):
9651        (HTMLAreaElementImpl::setTarget):
9652        * khtml/html/html_imageimpl.h:
9653        * khtml/html/html_inlineimpl.cpp:
9654        (DOM::HTMLAnchorElementImpl::defaultEventHandler):
9655        (DOM::HTMLAnchorElementImpl::parseMappedAttribute):
9656        (DOM::HTMLAnchorElementImpl::isURLAttribute):
9657        (DOM::HTMLAnchorElementImpl::accessKey):
9658        (DOM::HTMLAnchorElementImpl::setAccessKey):
9659        (DOM::HTMLAnchorElementImpl::charset):
9660        (DOM::HTMLAnchorElementImpl::setCharset):
9661        (DOM::HTMLAnchorElementImpl::coords):
9662        (DOM::HTMLAnchorElementImpl::setCoords):
9663        (DOM::HTMLAnchorElementImpl::href):
9664        (DOM::HTMLAnchorElementImpl::setHref):
9665        (DOM::HTMLAnchorElementImpl::hreflang):
9666        (DOM::HTMLAnchorElementImpl::setHreflang):
9667        (DOM::HTMLAnchorElementImpl::name):
9668        (DOM::HTMLAnchorElementImpl::setName):
9669        (DOM::HTMLAnchorElementImpl::rel):
9670        (DOM::HTMLAnchorElementImpl::setRel):
9671        (DOM::HTMLAnchorElementImpl::rev):
9672        (DOM::HTMLAnchorElementImpl::setRev):
9673        (DOM::HTMLAnchorElementImpl::shape):
9674        (DOM::HTMLAnchorElementImpl::setShape):
9675        (DOM::HTMLAnchorElementImpl::tabIndex):
9676        (DOM::HTMLAnchorElementImpl::setTabIndex):
9677        (DOM::HTMLAnchorElementImpl::target):
9678        (DOM::HTMLAnchorElementImpl::setTarget):
9679        (DOM::HTMLAnchorElementImpl::type):
9680        (DOM::HTMLAnchorElementImpl::setType):
9681        (DOM::HTMLBRElementImpl::mapToEntry):
9682        (DOM::HTMLBRElementImpl::parseMappedAttribute):
9683        (DOM::HTMLBRElementImpl::clear):
9684        (DOM::HTMLBRElementImpl::setClear):
9685        (DOM::HTMLFontElementImpl::mapToEntry):
9686        (DOM::HTMLFontElementImpl::parseMappedAttribute):
9687        (DOM::HTMLFontElementImpl::color):
9688        (DOM::HTMLFontElementImpl::setColor):
9689        (DOM::HTMLFontElementImpl::face):
9690        (DOM::HTMLFontElementImpl::setFace):
9691        (DOM::HTMLFontElementImpl::size):
9692        (DOM::HTMLFontElementImpl::setSize):
9693        (DOM::HTMLModElementImpl::cite):
9694        (DOM::HTMLModElementImpl::setCite):
9695        (DOM::HTMLModElementImpl::dateTime):
9696        (DOM::HTMLModElementImpl::setDateTime):
9697        (DOM::HTMLQuoteElementImpl::cite):
9698        (DOM::HTMLQuoteElementImpl::setCite):
9699        * khtml/html/html_inlineimpl.h:
9700        * khtml/html/html_listimpl.cpp:
9701        (DOM::HTMLUListElementImpl::mapToEntry):
9702        (DOM::HTMLUListElementImpl::parseMappedAttribute):
9703        (DOM::HTMLUListElementImpl::compact):
9704        (DOM::HTMLUListElementImpl::setCompact):
9705        (DOM::HTMLUListElementImpl::type):
9706        (DOM::HTMLUListElementImpl::setType):
9707        (DOM::HTMLDirectoryElementImpl::compact):
9708        (DOM::HTMLDirectoryElementImpl::setCompact):
9709        (DOM::HTMLMenuElementImpl::compact):
9710        (DOM::HTMLMenuElementImpl::setCompact):
9711        (DOM::HTMLOListElementImpl::mapToEntry):
9712        (DOM::HTMLOListElementImpl::parseMappedAttribute):
9713        (DOM::HTMLOListElementImpl::compact):
9714        (DOM::HTMLOListElementImpl::setCompact):
9715        (DOM::HTMLOListElementImpl::setStart):
9716        (DOM::HTMLOListElementImpl::type):
9717        (DOM::HTMLOListElementImpl::setType):
9718        (DOM::HTMLLIElementImpl::mapToEntry):
9719        (DOM::HTMLLIElementImpl::parseMappedAttribute):
9720        (DOM::HTMLLIElementImpl::type):
9721        (DOM::HTMLLIElementImpl::setType):
9722        (DOM::HTMLLIElementImpl::value):
9723        (DOM::HTMLLIElementImpl::setValue):
9724        (DOM::HTMLDListElementImpl::compact):
9725        (DOM::HTMLDListElementImpl::setCompact):
9726        * khtml/html/html_listimpl.h:
9727        * khtml/html/html_miscimpl.cpp:
9728        (DOM::HTMLBaseFontElementImpl::color):
9729        (DOM::HTMLBaseFontElementImpl::setColor):
9730        (DOM::HTMLBaseFontElementImpl::face):
9731        (DOM::HTMLBaseFontElementImpl::setFace):
9732        (DOM::HTMLBaseFontElementImpl::size):
9733        (DOM::HTMLBaseFontElementImpl::setSize):
9734        (DOM::HTMLCollectionImpl::traverseNextItem):
9735        (DOM::HTMLCollectionImpl::checkForNameMatch):
9736        (DOM::HTMLCollectionImpl::updateNameCache):
9737        (DOM::HTMLFormCollectionImpl::getNamedItem):
9738        (DOM::HTMLFormCollectionImpl::getNamedFormItem):
9739        (DOM::HTMLFormCollectionImpl::nextNamedItemInternal):
9740        (DOM::HTMLFormCollectionImpl::namedItem):
9741        (DOM::HTMLFormCollectionImpl::nextNamedItem):
9742        (DOM::HTMLFormCollectionImpl::updateNameCache):
9743        * khtml/html/html_miscimpl.h:
9744        * khtml/html/html_objectimpl.cpp:
9745        (DOM::HTMLAppletElementImpl::mapToEntry):
9746        (DOM::HTMLAppletElementImpl::parseMappedAttribute):
9747        (DOM::HTMLAppletElementImpl::rendererIsNeeded):
9748        (DOM::HTMLAppletElementImpl::createRenderer):
9749        (DOM::HTMLAppletElementImpl::align):
9750        (DOM::HTMLAppletElementImpl::setAlign):
9751        (DOM::HTMLAppletElementImpl::alt):
9752        (DOM::HTMLAppletElementImpl::setAlt):
9753        (DOM::HTMLAppletElementImpl::archive):
9754        (DOM::HTMLAppletElementImpl::setArchive):
9755        (DOM::HTMLAppletElementImpl::code):
9756        (DOM::HTMLAppletElementImpl::setCode):
9757        (DOM::HTMLAppletElementImpl::codeBase):
9758        (DOM::HTMLAppletElementImpl::setCodeBase):
9759        (DOM::HTMLAppletElementImpl::height):
9760        (DOM::HTMLAppletElementImpl::setHeight):
9761        (DOM::HTMLAppletElementImpl::hspace):
9762        (DOM::HTMLAppletElementImpl::setHspace):
9763        (DOM::HTMLAppletElementImpl::name):
9764        (DOM::HTMLAppletElementImpl::setName):
9765        (DOM::HTMLAppletElementImpl::object):
9766        (DOM::HTMLAppletElementImpl::setObject):
9767        (DOM::HTMLAppletElementImpl::vspace):
9768        (DOM::HTMLAppletElementImpl::setVspace):
9769        (DOM::HTMLAppletElementImpl::width):
9770        (DOM::HTMLAppletElementImpl::setWidth):
9771        (DOM::HTMLEmbedElementImpl::mapToEntry):
9772        (DOM::HTMLEmbedElementImpl::parseMappedAttribute):
9773        (DOM::HTMLEmbedElementImpl::isURLAttribute):
9774        (DOM::HTMLObjectElementImpl::mapToEntry):
9775        (DOM::HTMLObjectElementImpl::parseMappedAttribute):
9776        (DOM::HTMLObjectElementImpl::isURLAttribute):
9777        (DOM::HTMLObjectElementImpl::code):
9778        (DOM::HTMLObjectElementImpl::setCode):
9779        (DOM::HTMLObjectElementImpl::align):
9780        (DOM::HTMLObjectElementImpl::setAlign):
9781        (DOM::HTMLObjectElementImpl::archive):
9782        (DOM::HTMLObjectElementImpl::setArchive):
9783        (DOM::HTMLObjectElementImpl::border):
9784        (DOM::HTMLObjectElementImpl::setBorder):
9785        (DOM::HTMLObjectElementImpl::codeBase):
9786        (DOM::HTMLObjectElementImpl::setCodeBase):
9787        (DOM::HTMLObjectElementImpl::codeType):
9788        (DOM::HTMLObjectElementImpl::setCodeType):
9789        (DOM::HTMLObjectElementImpl::data):
9790        (DOM::HTMLObjectElementImpl::setData):
9791        (DOM::HTMLObjectElementImpl::declare):
9792        (DOM::HTMLObjectElementImpl::setDeclare):
9793        (DOM::HTMLObjectElementImpl::height):
9794        (DOM::HTMLObjectElementImpl::setHeight):
9795        (DOM::HTMLObjectElementImpl::hspace):
9796        (DOM::HTMLObjectElementImpl::setHspace):
9797        (DOM::HTMLObjectElementImpl::name):
9798        (DOM::HTMLObjectElementImpl::setName):
9799        (DOM::HTMLObjectElementImpl::standby):
9800        (DOM::HTMLObjectElementImpl::setStandby):
9801        (DOM::HTMLObjectElementImpl::tabIndex):
9802        (DOM::HTMLObjectElementImpl::setTabIndex):
9803        (DOM::HTMLObjectElementImpl::type):
9804        (DOM::HTMLObjectElementImpl::setType):
9805        (DOM::HTMLObjectElementImpl::useMap):
9806        (DOM::HTMLObjectElementImpl::setUseMap):
9807        (DOM::HTMLObjectElementImpl::vspace):
9808        (DOM::HTMLObjectElementImpl::setVspace):
9809        (DOM::HTMLObjectElementImpl::width):
9810        (DOM::HTMLObjectElementImpl::setWidth):
9811        (DOM::HTMLParamElementImpl::parseMappedAttribute):
9812        (DOM::HTMLParamElementImpl::isURLAttribute):
9813        (DOM::HTMLParamElementImpl::setName):
9814        (DOM::HTMLParamElementImpl::type):
9815        (DOM::HTMLParamElementImpl::setType):
9816        (DOM::HTMLParamElementImpl::setValue):
9817        (DOM::HTMLParamElementImpl::valueType):
9818        (DOM::HTMLParamElementImpl::setValueType):
9819        * khtml/html/html_objectimpl.h:
9820        * khtml/html/html_tableimpl.cpp:
9821        (DOM::HTMLTableElementImpl::mapToEntry):
9822        (DOM::HTMLTableElementImpl::parseMappedAttribute):
9823        (DOM::HTMLTableElementImpl::additionalAttributeStyleDecl):
9824        (DOM::HTMLTableElementImpl::getSharedCellDecl):
9825        (DOM::HTMLTableElementImpl::isURLAttribute):
9826        (DOM::HTMLTableElementImpl::align):
9827        (DOM::HTMLTableElementImpl::setAlign):
9828        (DOM::HTMLTableElementImpl::bgColor):
9829        (DOM::HTMLTableElementImpl::setBgColor):
9830        (DOM::HTMLTableElementImpl::border):
9831        (DOM::HTMLTableElementImpl::setBorder):
9832        (DOM::HTMLTableElementImpl::cellPadding):
9833        (DOM::HTMLTableElementImpl::setCellPadding):
9834        (DOM::HTMLTableElementImpl::cellSpacing):
9835        (DOM::HTMLTableElementImpl::setCellSpacing):
9836        (DOM::HTMLTableElementImpl::frame):
9837        (DOM::HTMLTableElementImpl::setFrame):
9838        (DOM::HTMLTableElementImpl::rules):
9839        (DOM::HTMLTableElementImpl::setRules):
9840        (DOM::HTMLTableElementImpl::summary):
9841        (DOM::HTMLTableElementImpl::setSummary):
9842        (DOM::HTMLTableElementImpl::width):
9843        (DOM::HTMLTableElementImpl::setWidth):
9844        (DOM::HTMLTablePartElementImpl::mapToEntry):
9845        (DOM::HTMLTablePartElementImpl::parseMappedAttribute):
9846        (DOM::HTMLTableSectionElementImpl::align):
9847        (DOM::HTMLTableSectionElementImpl::setAlign):
9848        (DOM::HTMLTableSectionElementImpl::ch):
9849        (DOM::HTMLTableSectionElementImpl::setCh):
9850        (DOM::HTMLTableSectionElementImpl::chOff):
9851        (DOM::HTMLTableSectionElementImpl::setChOff):
9852        (DOM::HTMLTableSectionElementImpl::vAlign):
9853        (DOM::HTMLTableSectionElementImpl::setVAlign):
9854        (DOM::HTMLTableRowElementImpl::align):
9855        (DOM::HTMLTableRowElementImpl::setAlign):
9856        (DOM::HTMLTableRowElementImpl::bgColor):
9857        (DOM::HTMLTableRowElementImpl::setBgColor):
9858        (DOM::HTMLTableRowElementImpl::ch):
9859        (DOM::HTMLTableRowElementImpl::setCh):
9860        (DOM::HTMLTableRowElementImpl::chOff):
9861        (DOM::HTMLTableRowElementImpl::setChOff):
9862        (DOM::HTMLTableRowElementImpl::vAlign):
9863        (DOM::HTMLTableRowElementImpl::setVAlign):
9864        (DOM::HTMLTableCellElementImpl::mapToEntry):
9865        (DOM::HTMLTableCellElementImpl::parseMappedAttribute):
9866        (DOM::HTMLTableCellElementImpl::isURLAttribute):
9867        (DOM::HTMLTableCellElementImpl::abbr):
9868        (DOM::HTMLTableCellElementImpl::setAbbr):
9869        (DOM::HTMLTableCellElementImpl::align):
9870        (DOM::HTMLTableCellElementImpl::setAlign):
9871        (DOM::HTMLTableCellElementImpl::axis):
9872        (DOM::HTMLTableCellElementImpl::setAxis):
9873        (DOM::HTMLTableCellElementImpl::bgColor):
9874        (DOM::HTMLTableCellElementImpl::setBgColor):
9875        (DOM::HTMLTableCellElementImpl::ch):
9876        (DOM::HTMLTableCellElementImpl::setCh):
9877        (DOM::HTMLTableCellElementImpl::chOff):
9878        (DOM::HTMLTableCellElementImpl::setChOff):
9879        (DOM::HTMLTableCellElementImpl::setColSpan):
9880        (DOM::HTMLTableCellElementImpl::headers):
9881        (DOM::HTMLTableCellElementImpl::setHeaders):
9882        (DOM::HTMLTableCellElementImpl::height):
9883        (DOM::HTMLTableCellElementImpl::setHeight):
9884        (DOM::HTMLTableCellElementImpl::noWrap):
9885        (DOM::HTMLTableCellElementImpl::setNoWrap):
9886        (DOM::HTMLTableCellElementImpl::setRowSpan):
9887        (DOM::HTMLTableCellElementImpl::scope):
9888        (DOM::HTMLTableCellElementImpl::setScope):
9889        (DOM::HTMLTableCellElementImpl::vAlign):
9890        (DOM::HTMLTableCellElementImpl::setVAlign):
9891        (DOM::HTMLTableCellElementImpl::width):
9892        (DOM::HTMLTableCellElementImpl::setWidth):
9893        (DOM::HTMLTableColElementImpl::mapToEntry):
9894        (DOM::HTMLTableColElementImpl::parseMappedAttribute):
9895        (DOM::HTMLTableColElementImpl::align):
9896        (DOM::HTMLTableColElementImpl::setAlign):
9897        (DOM::HTMLTableColElementImpl::ch):
9898        (DOM::HTMLTableColElementImpl::setCh):
9899        (DOM::HTMLTableColElementImpl::chOff):
9900        (DOM::HTMLTableColElementImpl::setChOff):
9901        (DOM::HTMLTableColElementImpl::setSpan):
9902        (DOM::HTMLTableColElementImpl::vAlign):
9903        (DOM::HTMLTableColElementImpl::setVAlign):
9904        (DOM::HTMLTableColElementImpl::width):
9905        (DOM::HTMLTableColElementImpl::setWidth):
9906        (DOM::HTMLTableCaptionElementImpl::mapToEntry):
9907        (DOM::HTMLTableCaptionElementImpl::parseMappedAttribute):
9908        (DOM::HTMLTableCaptionElementImpl::align):
9909        (DOM::HTMLTableCaptionElementImpl::setAlign):
9910        * khtml/html/html_tableimpl.h:
9911        * khtml/html/htmlnames.cpp:
9912        (DOM::HTMLNames::init):
9913        (DOM::HTMLAttributes::init):
9914        * khtml/html/htmlnames.h:
9915        * khtml/html/htmlparser.cpp:
9916        (HTMLParser::handleError):
9917        (HTMLParser::framesetCreateErrorCheck):
9918        (HTMLParser::handleIsindex):
9919        * khtml/html/htmltokenizer.cpp:
9920        (khtml::Token::addAttribute):
9921        (khtml::HTMLTokenizer::HTMLTokenizer):
9922        (khtml::HTMLTokenizer::parseTag):
9923        (khtml::HTMLTokenizer::processToken):
9924        * khtml/html/htmltokenizer.h:
9925        * khtml/khtml_part.cpp:
9926        (KHTMLPart::init):
9927        (KHTMLPart::backgroundURL):
9928        (KHTMLPart::updateActions):
9929        (KHTMLPart::handleMouseMoveEventDrag):
9930        (KHTMLPart::selectionComputedStyle):
9931        (KHTMLPart::applyEditingStyleToElement):
9932        (KHTMLPart::removeEditingStyleFromElement):
9933        * khtml/khtmlview.cpp:
9934        * khtml/misc/decoder.cpp:
9935        * khtml/misc/htmlattrs.in: Removed.
9936        * khtml/misc/htmlhashes.cpp: Removed.
9937        * khtml/misc/htmlhashes.h: Removed.
9938        * khtml/misc/htmltags.in: Removed.
9939        * khtml/misc/makeattrs: Removed.
9940        * khtml/misc/maketags: Removed.
9941        * khtml/rendering/render_box.cpp:
9942        * khtml/rendering/render_form.cpp:
9943        (RenderLineEdit::updateFromElement):
9944        (RenderSelect::updateFromElement):
9945        (RenderSlider::updateFromElement):
9946        (RenderSlider::slotSliderValueChanged):
9947        * khtml/rendering/render_frames.cpp:
9948        (RenderPartObject::updateWidget):
9949        * khtml/rendering/render_object.cpp:
9950        * khtml/rendering/render_table.cpp:
9951        (RenderTableCell::calcMinMaxWidth):
9952        * khtml/xml/dom_docimpl.cpp:
9953        (DocumentImpl::createElement):
9954        (DocumentImpl::importNode):
9955        (DocumentImpl::createElementNS):
9956        (DocumentImpl::getElementById):
9957        (DocumentImpl::getElementByAccessKey):
9958        (DocumentImpl::prepareMouseEvent):
9959        (DocumentImpl::recalcStyleSelector):
9960        (DocumentImpl::createAttributeNS):
9961        * khtml/xml/dom_docimpl.h:
9962        * khtml/xml/dom_elementimpl.cpp:
9963        (AttributeImpl::clone):
9964        (AttributeImpl::allocateImpl):
9965        (AttrImpl::AttrImpl):
9966        (AttrImpl::~AttrImpl):
9967        (AttrImpl::nodeName):
9968        (AttrImpl::name):
9969        (ElementImpl::removeAttribute):
9970        (ElementImpl::setAttribute):
9971        (ElementImpl::getAttribute):
9972        (ElementImpl::getAttributeNS):
9973        (ElementImpl::createAttribute):
9974        (ElementImpl::setAttributeMap):
9975        (ElementImpl::nodeName):
9976        (ElementImpl::insertedIntoDocument):
9977        (ElementImpl::removedFromDocument):
9978        (ElementImpl::openTagStartToString):
9979        (ElementImpl::dump):
9980        (ElementImpl::formatForDebugger):
9981        (ElementImpl::removeAttributeNode):
9982        (ElementImpl::setAttributeNS):
9983        (ElementImpl::removeAttributeNS):
9984        (ElementImpl::getAttributeNodeNS):
9985        (ElementImpl::hasAttributeNS):
9986        (NamedAttrMapImpl::getNamedItem):
9987        (NamedAttrMapImpl::setNamedItem):
9988        (NamedAttrMapImpl::removeNamedItem):
9989        (NamedAttrMapImpl::getAttributeItem):
9990        (NamedAttrMapImpl::clearAttributes):
9991        (NamedAttrMapImpl::operator=):
9992        (NamedAttrMapImpl::addAttribute):
9993        (NamedAttrMapImpl::removeAttribute):
9994        (StyledElementImpl::getMappedAttributeDecl):
9995        (StyledElementImpl::setMappedAttributeDecl):
9996        (StyledElementImpl::removeMappedAttributeDecl):
9997        (StyledElementImpl::updateStyleAttributeIfNeeded):
9998        (MappedAttributeImpl::clone):
9999        (NamedMappedAttrMapImpl::mapsEquivalent):
10000        (StyledElementImpl::createAttribute):
10001        (StyledElementImpl::attributeChanged):
10002        (StyledElementImpl::mapToEntry):
10003        (StyledElementImpl::parseMappedAttribute):
10004        * khtml/xml/dom_elementimpl.h:
10005        (DOM::AttributeImpl::AttributeImpl):
10006        (DOM::AttributeImpl::value):
10007        (DOM::AttributeImpl::prefix):
10008        (DOM::AttributeImpl::localName):
10009        (DOM::AttributeImpl::namespaceURI):
10010        (DOM::AttributeImpl::name):
10011        (DOM::AttributeImpl::attrImpl):
10012        (DOM::AttributeImpl::isNull):
10013        (DOM::AttributeImpl::isEmpty):
10014        (DOM::AttributeImpl::setValue):
10015        (DOM::AttributeImpl::setPrefix):
10016        (DOM::NamedAttrMapImpl::insertAttribute):
10017        (DOM::CSSMappedAttributeDeclarationImpl::CSSMappedAttributeDeclarationImpl):
10018        (DOM::CSSMappedAttributeDeclarationImpl::setMappedState):
10019        (DOM::MappedAttributeImpl::MappedAttributeImpl):
10020        (DOM::StyledElementImpl::isMappedAttribute):
10021        * khtml/xml/dom_nodeimpl.cpp:
10022        (DOM::NodeImpl::namespaceURI):
10023        (DOM::appendAttributeDesc):
10024        (DOM::NodeImpl::showNode):
10025        (DOM::NameNodeListImpl::nodeMatches):
10026        (DOM::NamedNodeMapImpl::getNamedItemNS):
10027        (DOM::NamedNodeMapImpl::removeNamedItemNS):
10028        * khtml/xml/dom_nodeimpl.h:
10029        * khtml/xml/dom_qname.cpp:
10030        (DOM::QualifiedName::toString):
10031        (DOM::QualifiedName::init):
10032        * khtml/xml/dom_qname.h:
10033        (DOM::anyQName):
10034        * khtml/xml/dom_textimpl.cpp:
10035        * khtml/xml/xml_tokenizer.cpp:
10036        (khtml::XMLTokenizer::startElement):
10037        (khtml::XMLTokenizer::insertErrorMessageBlock):
10038        (khtml::XMLTokenizer::executeScripts):
10039        * kwq/DOMHTML.h:
10040        * kwq/DOMHTML.mm:
10041        (-[DOMHTMLElement idName]):
10042        (-[DOMHTMLElement setIdName:]):
10043        (-[DOMHTMLElement title]):
10044        (-[DOMHTMLElement setTitle:]):
10045        (-[DOMHTMLElement lang]):
10046        (-[DOMHTMLElement setLang:]):
10047        (-[DOMHTMLElement dir]):
10048        (-[DOMHTMLElement setDir:]):
10049        (-[DOMHTMLElement className]):
10050        (-[DOMHTMLElement setClassName:]):
10051        (-[DOMHTMLHtmlElement version]):
10052        (-[DOMHTMLHtmlElement setVersion:]):
10053        (-[DOMHTMLHeadElement profile]):
10054        (-[DOMHTMLHeadElement setProfile:]):
10055        (-[DOMHTMLLinkElement disabled]):
10056        (-[DOMHTMLLinkElement setDisabled:]):
10057        (-[DOMHTMLLinkElement charset]):
10058        (-[DOMHTMLLinkElement setCharset:]):
10059        (-[DOMHTMLLinkElement setHref:]):
10060        (-[DOMHTMLLinkElement hreflang]):
10061        (-[DOMHTMLLinkElement setHreflang:]):
10062        (-[DOMHTMLLinkElement media]):
10063        (-[DOMHTMLLinkElement setMedia:]):
10064        (-[DOMHTMLLinkElement rel]):
10065        (-[DOMHTMLLinkElement setRel:]):
10066        (-[DOMHTMLLinkElement rev]):
10067        (-[DOMHTMLLinkElement setRev:]):
10068        (-[DOMHTMLLinkElement target]):
10069        (-[DOMHTMLLinkElement setTarget:]):
10070        (-[DOMHTMLLinkElement type]):
10071        (-[DOMHTMLLinkElement setType:]):
10072        (-[DOMHTMLTitleElement text]):
10073        (-[DOMHTMLTitleElement setText:]):
10074        (-[DOMHTMLMetaElement content]):
10075        (-[DOMHTMLMetaElement setContent:]):
10076        (-[DOMHTMLMetaElement httpEquiv]):
10077        (-[DOMHTMLMetaElement setHttpEquiv:]):
10078        (-[DOMHTMLMetaElement name]):
10079        (-[DOMHTMLMetaElement setName:]):
10080        (-[DOMHTMLMetaElement scheme]):
10081        (-[DOMHTMLMetaElement setScheme:]):
10082        (-[DOMHTMLBaseElement setHref:]):
10083        (-[DOMHTMLBaseElement target]):
10084        (-[DOMHTMLBaseElement setTarget:]):
10085        (-[DOMHTMLStyleElement disabled]):
10086        (-[DOMHTMLStyleElement setDisabled:]):
10087        (-[DOMHTMLStyleElement media]):
10088        (-[DOMHTMLStyleElement setMedia:]):
10089        (-[DOMHTMLStyleElement type]):
10090        (-[DOMHTMLStyleElement setType:]):
10091        (-[DOMHTMLBodyElement aLink]):
10092        (-[DOMHTMLBodyElement setALink:]):
10093        (-[DOMHTMLBodyElement background]):
10094        (-[DOMHTMLBodyElement setBackground:]):
10095        (-[DOMHTMLBodyElement bgColor]):
10096        (-[DOMHTMLBodyElement setBgColor:]):
10097        (-[DOMHTMLBodyElement link]):
10098        (-[DOMHTMLBodyElement setLink:]):
10099        (-[DOMHTMLBodyElement text]):
10100        (-[DOMHTMLBodyElement setText:]):
10101        (-[DOMHTMLBodyElement vLink]):
10102        (-[DOMHTMLBodyElement setVLink:]):
10103        (-[DOMHTMLFormElement name]):
10104        (-[DOMHTMLFormElement setName:]):
10105        (-[DOMHTMLFormElement acceptCharset]):
10106        (-[DOMHTMLFormElement setAcceptCharset:]):
10107        (-[DOMHTMLFormElement action]):
10108        (-[DOMHTMLFormElement setAction:]):
10109        (-[DOMHTMLFormElement enctype]):
10110        (-[DOMHTMLFormElement setEnctype:]):
10111        (-[DOMHTMLFormElement method]):
10112        (-[DOMHTMLFormElement setMethod:]):
10113        (-[DOMHTMLFormElement target]):
10114        (-[DOMHTMLFormElement setTarget:]):
10115        (-[DOMHTMLIsIndexElement prompt]):
10116        (-[DOMHTMLIsIndexElement setPrompt:]):
10117        (-[DOMHTMLSelectElement disabled]):
10118        (-[DOMHTMLSelectElement setDisabled:]):
10119        (-[DOMHTMLSelectElement multiple]):
10120        (-[DOMHTMLSelectElement setMultiple:]):
10121        (-[DOMHTMLSelectElement size]):
10122        (-[DOMHTMLSelectElement setSize:]):
10123        (-[DOMHTMLOptGroupElement disabled]):
10124        (-[DOMHTMLOptGroupElement setDisabled:]):
10125        (-[DOMHTMLOptGroupElement label]):
10126        (-[DOMHTMLOptGroupElement setLabel:]):
10127        (-[DOMHTMLOptionElement defaultSelected]):
10128        (-[DOMHTMLOptionElement setDefaultSelected:]):
10129        (-[DOMHTMLOptionElement disabled]):
10130        (-[DOMHTMLOptionElement setDisabled:]):
10131        (-[DOMHTMLOptionElement label]):
10132        (-[DOMHTMLOptionElement setLabel:]):
10133        (-[DOMHTMLInputElement defaultValue]):
10134        (-[DOMHTMLInputElement setDefaultValue:]):
10135        (-[DOMHTMLInputElement defaultChecked]):
10136        (-[DOMHTMLInputElement setDefaultChecked:]):
10137        (-[DOMHTMLInputElement accept]):
10138        (-[DOMHTMLInputElement setAccept:]):
10139        (-[DOMHTMLInputElement accessKey]):
10140        (-[DOMHTMLInputElement setAccessKey:]):
10141        (-[DOMHTMLInputElement align]):
10142        (-[DOMHTMLInputElement setAlign:]):
10143        (-[DOMHTMLInputElement alt]):
10144        (-[DOMHTMLInputElement setAlt:]):
10145        (-[DOMHTMLInputElement disabled]):
10146        (-[DOMHTMLInputElement setDisabled:]):
10147        (-[DOMHTMLInputElement maxLength]):
10148        (-[DOMHTMLInputElement setMaxLength:]):
10149        (-[DOMHTMLInputElement readOnly]):
10150        (-[DOMHTMLInputElement setReadOnly:]):
10151        (-[DOMHTMLInputElement size]):
10152        (-[DOMHTMLInputElement setSize:]):
10153        (-[DOMHTMLInputElement setSrc:]):
10154        (-[DOMHTMLInputElement useMap]):
10155        (-[DOMHTMLInputElement setUseMap:]):
10156        (-[DOMHTMLTextAreaElement accessKey]):
10157        (-[DOMHTMLTextAreaElement setAccessKey:]):
10158        (-[DOMHTMLTextAreaElement cols]):
10159        (-[DOMHTMLTextAreaElement setCols:]):
10160        (-[DOMHTMLTextAreaElement disabled]):
10161        (-[DOMHTMLTextAreaElement setDisabled:]):
10162        (-[DOMHTMLTextAreaElement readOnly]):
10163        (-[DOMHTMLTextAreaElement setReadOnly:]):
10164        (-[DOMHTMLTextAreaElement rows]):
10165        (-[DOMHTMLTextAreaElement setRows:]):
10166        (-[DOMHTMLButtonElement accessKey]):
10167        (-[DOMHTMLButtonElement setAccessKey:]):
10168        (-[DOMHTMLButtonElement disabled]):
10169        (-[DOMHTMLButtonElement setDisabled:]):
10170        (-[DOMHTMLButtonElement value]):
10171        (-[DOMHTMLButtonElement setValue:]):
10172        (-[DOMHTMLLabelElement accessKey]):
10173        (-[DOMHTMLLabelElement setAccessKey:]):
10174        (-[DOMHTMLLabelElement htmlFor]):
10175        (-[DOMHTMLLabelElement setHtmlFor:]):
10176        (-[DOMHTMLLegendElement accessKey]):
10177        (-[DOMHTMLLegendElement setAccessKey:]):
10178        (-[DOMHTMLLegendElement align]):
10179        (-[DOMHTMLLegendElement setAlign:]):
10180        (-[DOMHTMLUListElement compact]):
10181        (-[DOMHTMLUListElement setCompact:]):
10182        (-[DOMHTMLUListElement type]):
10183        (-[DOMHTMLUListElement setType:]):
10184        (-[DOMHTMLOListElement compact]):
10185        (-[DOMHTMLOListElement setCompact:]):
10186        (-[DOMHTMLOListElement start]):
10187        (-[DOMHTMLOListElement setStart:]):
10188        (-[DOMHTMLOListElement type]):
10189        (-[DOMHTMLOListElement setType:]):
10190        (-[DOMHTMLDListElement compact]):
10191        (-[DOMHTMLDListElement setCompact:]):
10192        (-[DOMHTMLDirectoryElement compact]):
10193        (-[DOMHTMLDirectoryElement setCompact:]):
10194        (-[DOMHTMLMenuElement compact]):
10195        (-[DOMHTMLMenuElement setCompact:]):
10196        (-[DOMHTMLLIElement type]):
10197        (-[DOMHTMLLIElement setType:]):
10198        (-[DOMHTMLLIElement value]):
10199        (-[DOMHTMLLIElement setValue:]):
10200        (-[DOMHTMLQuoteElement cite]):
10201        (-[DOMHTMLQuoteElement setCite:]):
10202        (-[DOMHTMLDivElement align]):
10203        (-[DOMHTMLDivElement setAlign:]):
10204        (-[DOMHTMLParagraphElement align]):
10205        (-[DOMHTMLParagraphElement setAlign:]):
10206        (-[DOMHTMLHeadingElement align]):
10207        (-[DOMHTMLHeadingElement setAlign:]):
10208        (-[DOMHTMLPreElement width]):
10209        (-[DOMHTMLPreElement setWidth:]):
10210        (-[DOMHTMLBRElement clear]):
10211        (-[DOMHTMLBRElement setClear:]):
10212        (-[DOMHTMLBaseFontElement color]):
10213        (-[DOMHTMLBaseFontElement setColor:]):
10214        (-[DOMHTMLBaseFontElement face]):
10215        (-[DOMHTMLBaseFontElement setFace:]):
10216        (-[DOMHTMLBaseFontElement size]):
10217        (-[DOMHTMLBaseFontElement setSize:]):
10218        (-[DOMHTMLFontElement color]):
10219        (-[DOMHTMLFontElement setColor:]):
10220        (-[DOMHTMLFontElement face]):
10221        (-[DOMHTMLFontElement setFace:]):
10222        (-[DOMHTMLFontElement size]):
10223        (-[DOMHTMLFontElement setSize:]):
10224        (-[DOMHTMLHRElement align]):
10225        (-[DOMHTMLHRElement setAlign:]):
10226        (-[DOMHTMLHRElement noShade]):
10227        (-[DOMHTMLHRElement setNoShade:]):
10228        (-[DOMHTMLHRElement size]):
10229        (-[DOMHTMLHRElement setSize:]):
10230        (-[DOMHTMLHRElement width]):
10231        (-[DOMHTMLHRElement setWidth:]):
10232        (-[DOMHTMLModElement cite]):
10233        (-[DOMHTMLModElement setCite:]):
10234        (-[DOMHTMLModElement dateTime]):
10235        (-[DOMHTMLModElement setDateTime:]):
10236        (-[DOMHTMLAnchorElement accessKey]):
10237        (-[DOMHTMLAnchorElement setAccessKey:]):
10238        (-[DOMHTMLAnchorElement charset]):
10239        (-[DOMHTMLAnchorElement setCharset:]):
10240        (-[DOMHTMLAnchorElement coords]):
10241        (-[DOMHTMLAnchorElement setCoords:]):
10242        (-[DOMHTMLAnchorElement setHref:]):
10243        (-[DOMHTMLAnchorElement hreflang]):
10244        (-[DOMHTMLAnchorElement setHreflang:]):
10245        (-[DOMHTMLAnchorElement name]):
10246        (-[DOMHTMLAnchorElement setName:]):
10247        (-[DOMHTMLAnchorElement rel]):
10248        (-[DOMHTMLAnchorElement setRel:]):
10249        (-[DOMHTMLAnchorElement rev]):
10250        (-[DOMHTMLAnchorElement setRev:]):
10251        (-[DOMHTMLAnchorElement shape]):
10252        (-[DOMHTMLAnchorElement setShape:]):
10253        (-[DOMHTMLAnchorElement tabIndex]):
10254        (-[DOMHTMLAnchorElement setTabIndex:]):
10255        (-[DOMHTMLAnchorElement target]):
10256        (-[DOMHTMLAnchorElement setTarget:]):
10257        (-[DOMHTMLAnchorElement type]):
10258        (-[DOMHTMLAnchorElement setType:]):
10259        (-[DOMHTMLImageElement name]):
10260        (-[DOMHTMLImageElement setName:]):
10261        (-[DOMHTMLImageElement align]):
10262        (-[DOMHTMLImageElement setAlign:]):
10263        (-[DOMHTMLImageElement alt]):
10264        (-[DOMHTMLImageElement setAlt:]):
10265        (-[DOMHTMLImageElement border]):
10266        (-[DOMHTMLImageElement setBorder:]):
10267        (-[DOMHTMLImageElement height]):
10268        (-[DOMHTMLImageElement setHeight:]):
10269        (-[DOMHTMLImageElement hspace]):
10270        (-[DOMHTMLImageElement setHspace:]):
10271        (-[DOMHTMLImageElement isMap]):
10272        (-[DOMHTMLImageElement setIsMap:]):
10273        (-[DOMHTMLImageElement longDesc]):
10274        (-[DOMHTMLImageElement setLongDesc:]):
10275        (-[DOMHTMLImageElement setSrc:]):
10276        (-[DOMHTMLImageElement useMap]):
10277        (-[DOMHTMLImageElement setUseMap:]):
10278        (-[DOMHTMLImageElement vspace]):
10279        (-[DOMHTMLImageElement setVspace:]):
10280        (-[DOMHTMLImageElement width]):
10281        (-[DOMHTMLImageElement setWidth:]):
10282        (-[DOMHTMLObjectElement code]):
10283        (-[DOMHTMLObjectElement setCode:]):
10284        (-[DOMHTMLObjectElement align]):
10285        (-[DOMHTMLObjectElement setAlign:]):
10286        (-[DOMHTMLObjectElement archive]):
10287        (-[DOMHTMLObjectElement setArchive:]):
10288        (-[DOMHTMLObjectElement border]):
10289        (-[DOMHTMLObjectElement setBorder:]):
10290        (-[DOMHTMLObjectElement codeBase]):
10291        (-[DOMHTMLObjectElement setCodeBase:]):
10292        (-[DOMHTMLObjectElement codeType]):
10293        (-[DOMHTMLObjectElement setCodeType:]):
10294        (-[DOMHTMLObjectElement data]):
10295        (-[DOMHTMLObjectElement setData:]):
10296        (-[DOMHTMLObjectElement declare]):
10297        (-[DOMHTMLObjectElement setDeclare:]):
10298        (-[DOMHTMLObjectElement height]):
10299        (-[DOMHTMLObjectElement setHeight:]):
10300        (-[DOMHTMLObjectElement hspace]):
10301        (-[DOMHTMLObjectElement setHspace:]):
10302        (-[DOMHTMLObjectElement name]):
10303        (-[DOMHTMLObjectElement setName:]):
10304        (-[DOMHTMLObjectElement standby]):
10305        (-[DOMHTMLObjectElement setStandby:]):
10306        (-[DOMHTMLObjectElement tabIndex]):
10307        (-[DOMHTMLObjectElement setTabIndex:]):
10308        (-[DOMHTMLObjectElement type]):
10309        (-[DOMHTMLObjectElement setType:]):
10310        (-[DOMHTMLObjectElement useMap]):
10311        (-[DOMHTMLObjectElement setUseMap:]):
10312        (-[DOMHTMLObjectElement vspace]):
10313        (-[DOMHTMLObjectElement setVspace:]):
10314        (-[DOMHTMLObjectElement width]):
10315        (-[DOMHTMLObjectElement setWidth:]):
10316        (-[DOMHTMLParamElement name]):
10317        (-[DOMHTMLParamElement setName:]):
10318        (-[DOMHTMLParamElement type]):
10319        (-[DOMHTMLParamElement setType:]):
10320        (-[DOMHTMLParamElement value]):
10321        (-[DOMHTMLParamElement setValue:]):
10322        (-[DOMHTMLParamElement valueType]):
10323        (-[DOMHTMLParamElement setValueType:]):
10324        (-[DOMHTMLAppletElement align]):
10325        (-[DOMHTMLAppletElement setAlign:]):
10326        (-[DOMHTMLAppletElement alt]):
10327        (-[DOMHTMLAppletElement setAlt:]):
10328        (-[DOMHTMLAppletElement archive]):
10329        (-[DOMHTMLAppletElement setArchive:]):
10330        (-[DOMHTMLAppletElement code]):
10331        (-[DOMHTMLAppletElement setCode:]):
10332        (-[DOMHTMLAppletElement codeBase]):
10333        (-[DOMHTMLAppletElement setCodeBase:]):
10334        (-[DOMHTMLAppletElement height]):
10335        (-[DOMHTMLAppletElement setHeight:]):
10336        (-[DOMHTMLAppletElement hspace]):
10337        (-[DOMHTMLAppletElement setHspace:]):
10338        (-[DOMHTMLAppletElement name]):
10339        (-[DOMHTMLAppletElement setName:]):
10340        (-[DOMHTMLAppletElement object]):
10341        (-[DOMHTMLAppletElement setObject:]):
10342        (-[DOMHTMLAppletElement vspace]):
10343        (-[DOMHTMLAppletElement setVspace:]):
10344        (-[DOMHTMLAppletElement width]):
10345        (-[DOMHTMLAppletElement setWidth:]):
10346        (-[DOMHTMLMapElement name]):
10347        (-[DOMHTMLMapElement setName:]):
10348        (-[DOMHTMLAreaElement accessKey]):
10349        (-[DOMHTMLAreaElement setAccessKey:]):
10350        (-[DOMHTMLAreaElement alt]):
10351        (-[DOMHTMLAreaElement setAlt:]):
10352        (-[DOMHTMLAreaElement coords]):
10353        (-[DOMHTMLAreaElement setCoords:]):
10354        (-[DOMHTMLAreaElement setHref:]):
10355        (-[DOMHTMLAreaElement noHref]):
10356        (-[DOMHTMLAreaElement setNoHref:]):
10357        (-[DOMHTMLAreaElement shape]):
10358        (-[DOMHTMLAreaElement setShape:]):
10359        (-[DOMHTMLAreaElement tabIndex]):
10360        (-[DOMHTMLAreaElement setTabIndex:]):
10361        (-[DOMHTMLAreaElement target]):
10362        (-[DOMHTMLAreaElement setTarget:]):
10363        (-[DOMHTMLScriptElement text]):
10364        (-[DOMHTMLScriptElement setText:]):
10365        (-[DOMHTMLScriptElement charset]):
10366        (-[DOMHTMLScriptElement setCharset:]):
10367        (-[DOMHTMLScriptElement defer]):
10368        (-[DOMHTMLScriptElement setDefer:]):
10369        (-[DOMHTMLScriptElement src]):
10370        (-[DOMHTMLScriptElement setSrc:]):
10371        (-[DOMHTMLScriptElement type]):
10372        (-[DOMHTMLScriptElement setType:]):
10373        (-[DOMHTMLTableCaptionElement align]):
10374        (-[DOMHTMLTableCaptionElement setAlign:]):
10375        (-[DOMHTMLTableSectionElement align]):
10376        (-[DOMHTMLTableSectionElement setAlign:]):
10377        (-[DOMHTMLTableSectionElement ch]):
10378        (-[DOMHTMLTableSectionElement setCh:]):
10379        (-[DOMHTMLTableSectionElement chOff]):
10380        (-[DOMHTMLTableSectionElement setChOff:]):
10381        (-[DOMHTMLTableSectionElement vAlign]):
10382        (-[DOMHTMLTableSectionElement setVAlign:]):
10383        (-[DOMHTMLTableElement align]):
10384        (-[DOMHTMLTableElement setAlign:]):
10385        (-[DOMHTMLTableElement bgColor]):
10386        (-[DOMHTMLTableElement setBgColor:]):
10387        (-[DOMHTMLTableElement border]):
10388        (-[DOMHTMLTableElement setBorder:]):
10389        (-[DOMHTMLTableElement cellPadding]):
10390        (-[DOMHTMLTableElement setCellPadding:]):
10391        (-[DOMHTMLTableElement cellSpacing]):
10392        (-[DOMHTMLTableElement setCellSpacing:]):
10393        (-[DOMHTMLTableElement frameBorders]):
10394        (-[DOMHTMLTableElement setFrameBorders:]):
10395        (-[DOMHTMLTableElement rules]):
10396        (-[DOMHTMLTableElement setRules:]):
10397        (-[DOMHTMLTableElement summary]):
10398        (-[DOMHTMLTableElement setSummary:]):
10399        (-[DOMHTMLTableElement width]):
10400        (-[DOMHTMLTableElement setWidth:]):
10401        (-[DOMHTMLTableColElement align]):
10402        (-[DOMHTMLTableColElement setAlign:]):
10403        (-[DOMHTMLTableColElement ch]):
10404        (-[DOMHTMLTableColElement setCh:]):
10405        (-[DOMHTMLTableColElement chOff]):
10406        (-[DOMHTMLTableColElement setChOff:]):
10407        (-[DOMHTMLTableColElement span]):
10408        (-[DOMHTMLTableColElement setSpan:]):
10409        (-[DOMHTMLTableColElement vAlign]):
10410        (-[DOMHTMLTableColElement setVAlign:]):
10411        (-[DOMHTMLTableColElement width]):
10412        (-[DOMHTMLTableColElement setWidth:]):
10413        (-[DOMHTMLTableRowElement align]):
10414        (-[DOMHTMLTableRowElement setAlign:]):
10415        (-[DOMHTMLTableRowElement bgColor]):
10416        (-[DOMHTMLTableRowElement setBgColor:]):
10417        (-[DOMHTMLTableRowElement ch]):
10418        (-[DOMHTMLTableRowElement setCh:]):
10419        (-[DOMHTMLTableRowElement chOff]):
10420        (-[DOMHTMLTableRowElement setChOff:]):
10421        (-[DOMHTMLTableRowElement vAlign]):
10422        (-[DOMHTMLTableRowElement setVAlign:]):
10423        (-[DOMHTMLTableCellElement abbr]):
10424        (-[DOMHTMLTableCellElement setAbbr:]):
10425        (-[DOMHTMLTableCellElement align]):
10426        (-[DOMHTMLTableCellElement setAlign:]):
10427        (-[DOMHTMLTableCellElement axis]):
10428        (-[DOMHTMLTableCellElement setAxis:]):
10429        (-[DOMHTMLTableCellElement bgColor]):
10430        (-[DOMHTMLTableCellElement setBgColor:]):
10431        (-[DOMHTMLTableCellElement ch]):
10432        (-[DOMHTMLTableCellElement setCh:]):
10433        (-[DOMHTMLTableCellElement chOff]):
10434        (-[DOMHTMLTableCellElement setChOff:]):
10435        (-[DOMHTMLTableCellElement colSpan]):
10436        (-[DOMHTMLTableCellElement setColSpan:]):
10437        (-[DOMHTMLTableCellElement headers]):
10438        (-[DOMHTMLTableCellElement setHeaders:]):
10439        (-[DOMHTMLTableCellElement height]):
10440        (-[DOMHTMLTableCellElement setHeight:]):
10441        (-[DOMHTMLTableCellElement noWrap]):
10442        (-[DOMHTMLTableCellElement setNoWrap:]):
10443        (-[DOMHTMLTableCellElement rowSpan]):
10444        (-[DOMHTMLTableCellElement setRowSpan:]):
10445        (-[DOMHTMLTableCellElement scope]):
10446        (-[DOMHTMLTableCellElement setScope:]):
10447        (-[DOMHTMLTableCellElement vAlign]):
10448        (-[DOMHTMLTableCellElement setVAlign:]):
10449        (-[DOMHTMLTableCellElement width]):
10450        (-[DOMHTMLTableCellElement setWidth:]):
10451        (-[DOMHTMLFrameSetElement rows]):
10452        (-[DOMHTMLFrameSetElement setRows:]):
10453        (-[DOMHTMLFrameSetElement cols]):
10454        (-[DOMHTMLFrameSetElement setCols:]):
10455        (-[DOMHTMLFrameElement frameBorder]):
10456        (-[DOMHTMLFrameElement setFrameBorder:]):
10457        (-[DOMHTMLFrameElement longDesc]):
10458        (-[DOMHTMLFrameElement setLongDesc:]):
10459        (-[DOMHTMLFrameElement marginHeight]):
10460        (-[DOMHTMLFrameElement setMarginHeight:]):
10461        (-[DOMHTMLFrameElement marginWidth]):
10462        (-[DOMHTMLFrameElement setMarginWidth:]):
10463        (-[DOMHTMLFrameElement name]):
10464        (-[DOMHTMLFrameElement setName:]):
10465        (-[DOMHTMLFrameElement noResize]):
10466        (-[DOMHTMLFrameElement setNoResize:]):
10467        (-[DOMHTMLFrameElement scrolling]):
10468        (-[DOMHTMLFrameElement setScrolling:]):
10469        (-[DOMHTMLFrameElement src]):
10470        (-[DOMHTMLFrameElement setSrc:]):
10471        (-[DOMHTMLIFrameElement align]):
10472        (-[DOMHTMLIFrameElement setAlign:]):
10473        (-[DOMHTMLIFrameElement frameBorder]):
10474        (-[DOMHTMLIFrameElement setFrameBorder:]):
10475        (-[DOMHTMLIFrameElement height]):
10476        (-[DOMHTMLIFrameElement setHeight:]):
10477        (-[DOMHTMLIFrameElement longDesc]):
10478        (-[DOMHTMLIFrameElement setLongDesc:]):
10479        (-[DOMHTMLIFrameElement marginHeight]):
10480        (-[DOMHTMLIFrameElement setMarginHeight:]):
10481        (-[DOMHTMLIFrameElement marginWidth]):
10482        (-[DOMHTMLIFrameElement setMarginWidth:]):
10483        (-[DOMHTMLIFrameElement name]):
10484        (-[DOMHTMLIFrameElement setName:]):
10485        (-[DOMHTMLIFrameElement noResize]):
10486        (-[DOMHTMLIFrameElement setNoResize:]):
10487        (-[DOMHTMLIFrameElement scrolling]):
10488        (-[DOMHTMLIFrameElement setScrolling:]):
10489        (-[DOMHTMLIFrameElement src]):
10490        (-[DOMHTMLIFrameElement setSrc:]):
10491        (-[DOMHTMLIFrameElement width]):
10492        (-[DOMHTMLIFrameElement setWidth:]):
10493        (-[DOMHTMLEmbedElement align]):
10494        (-[DOMHTMLEmbedElement setAlign:]):
10495        (-[DOMHTMLEmbedElement height]):
10496        (-[DOMHTMLEmbedElement setHeight:]):
10497        (-[DOMHTMLEmbedElement name]):
10498        (-[DOMHTMLEmbedElement setName:]):
10499        (-[DOMHTMLEmbedElement src]):
10500        (-[DOMHTMLEmbedElement setSrc:]):
10501        (-[DOMHTMLEmbedElement type]):
10502        (-[DOMHTMLEmbedElement setType:]):
10503        (-[DOMHTMLEmbedElement width]):
10504        (-[DOMHTMLEmbedElement setWidth:]):
10505        * kwq/KWQAccObject.mm:
10506        (-[KWQAccObject helpText]):
10507        (-[KWQAccObject accessibilityDescription]):
10508        (-[KWQAccObject accessibilityAttributeValue:]):
10509        * kwq/KWQKHTMLPart.mm:
10510        (KWQKHTMLPart::matchLabelsAgainstElement):
10511        (KWQKHTMLPart::fileWrapperForElement):
10512        (KWQKHTMLPart::attributedString):
10513        (KWQKHTMLPart::styleForSelectionStart):
10514        * kwq/WebCoreBridge.mm:
10515        (-[WebCoreBridge elementAtPoint:]):
10516
105172005-07-18  David Harrison  <harrison@apple.com>
10518
10519        Reviewed by Justin.
10520
10521        <rdar://problem/4065343> Mail: Deleting a line sometimes makes the insertion point jump to the top of the message
10522        
10523        Test cases added: delete-br-011.html
10524
10525        * khtml/editing/delete_selection_command.cpp:
10526        (khtml::DeleteSelectionCommand::handleSpecialCaseBRDelete):
10527        Make sure m_endingSelection is usable.
10528        
10529        (khtml::DeleteSelectionCommand::doApply):
10530        Skip general delete related code when just doing handleSpecialCaseBRDelete().
10531        
10532        * layout-tests/editing/deleting/delete-br-011-expected.txt: Added.
10533        * layout-tests/editing/deleting/delete-br-011.html: Added.
10534        Mimics composing a Mail.app reply, clicking past the end of the content, and hitting delete key.
10535
105362005-07-15  Adele Peterson  <adele@apple.com>
10537
10538        Written by Anders Carlsson  <andersca@mac.com>
10539        Reviewed by Dave Hyatt.
10540
10541	- Fixes <http://bugs.webkit.org/show_bug.cgi?id=3653>
10542	
10543        Test cases added:
10544	layout-tests/fast/dom/createDocumentType.html: Added
10545	layout-tests/fast/dom/createDocumentType-expected.txt: Added
10546
10547        * khtml/xml/dom_nodeimpl.cpp: (DocumentPtr::nullDocumentPtr):
10548        * khtml/xml/dom_nodeimpl.h:
10549	Add nullDocumentPtr() function which returns a shared DocumentPtr
10550	object whose document always is 0.
10551	
10552        * khtml/xml/dom_docimpl.cpp: (DOMImplementationImpl::createDocumentType):
10553	Pass nullDocumentPtr as the document type's document.
10554
105552005-07-15  Adele Peterson  <adele@apple.com>
10556
10557        Written by Anders Carlsson  <andersca@mac.com>
10558        Reviewed by Maciej Stachowiak.
10559
10560	- Fixes <http://bugs.webkit.org/show_bug.cgi?id=3808>
10561
10562        Test cases added:
10563	* layout-tests/fast/js/location-assign.html: Added.
10564	* layout-tests/fast/js/location-assign-expected.txt: Added.
10565	* layout-tests/fast/js/resources/new-location.html: Added.
10566
10567        * khtml/ecma/kjs_window.cpp:
10568        (KJS::Location::get):
10569        (KJS::LocationFunc::tryCall):
10570        * khtml/ecma/kjs_window.h: (KJS::Location::): Implement location.assign.
10571
105722005-07-15  Adele Peterson  <adele@apple.com>
10573
10574        Updated layout tests for formatting changes from change for
10575        http://bugs.webkit.org/show_bug.cgi?id=3601
10576
10577        * layout-tests/fast/dom/outerText-no-element-expected.txt:
10578        * layout-tests/fast/dynamic/outerHTML-no-element-expected.txt:
10579        * layout-tests/fast/js/array-every-expected.txt:
10580        * layout-tests/fast/js/array-foreach-expected.txt:
10581        * layout-tests/fast/js/array-some-expected.txt:
10582        * layout-tests/fast/js/toString-stack-overflow-expected.txt:
10583
105842005-07-15  Kevin Decker  <kdecker@apple.com>
10585
10586        Reviewed by Adele
10587
10588	Fixed: http://bugs.webkit.org/show_bug.cgi?id=4009
10589        Test cases added: none, doesn't affect layout
10590
10591        * khtml/khtml_part.cpp:
10592        (KHTMLPart::scheduleLocationChange): Corrected an earlier mistake of testing an always non-zero constant. 
10593
105942005-07-14  John Sullivan  <sullivan@apple.com>
10595
10596        Reviewed by Ken Kocienda (setFocusNode) and Dave Hyatt (everything).
10597
10598        - WebCore part of fix for: 
10599        <rdar://problem/4181227> webpages incorrectly use standard instead of secondary highlighting in certain cases
10600
10601        Test cases added: none, doesn't affect layout
10602        
10603        There were two different problems leading to the same symptom, both of which needed to be fixed.
10604        The first problem was that ancient and unneeded code in setFocusNode(0) was setting the focus 
10605        to the enclosing WebHTMLView. The second problem was that the WebHTMLView didn't learn about
10606        form controls resigning first-responder-hood, and so didn't update the displayed focus state.
10607
10608        * khtml/xml/dom_docimpl.cpp:
10609        (DocumentImpl::setFocusNode):
10610        Removed a line of code that was setting the focus on the WebHTMLView whenever a form control
10611        lost focus. This doesn't make sense in a world where the focus might be moving to something
10612        outside of the web page entirely. This line of code was added ages ago to fix Radar 3037974,
10613        which is not reproducible anymore with this line of code removed.
10614        
10615        * kwq/WebCoreBridge.h:
10616        New bridge method -formControlIsResigningFirstResponder:, used to inform WebKit that a form
10617        control is losing first-responder-hood.
10618
10619        * kwq/KWQButton.mm:
10620        (-[KWQButton resignFirstResponder]):
10621        call formControlIsResigningFirstResponder:
10622
10623        * kwq/KWQComboBox.mm:
10624        (-[KWQPopUpButton resignFirstResponder]):
10625        ditto
10626        
10627        * kwq/KWQListBox.mm:
10628        (-[KWQTableView resignFirstResponder]):
10629        ditto
10630        
10631        * kwq/KWQSlider.mm:
10632        (-[KWQSlider resignFirstResponder]):
10633        ditto
10634        
10635        * kwq/KWQTextArea.mm:
10636        (-[KWQTextAreaTextView resignFirstResponder]):
10637        ditto
10638        
10639        * kwq/KWQTextField.mm:
10640        (-[KWQTextFieldController setHasFocus:]):
10641        ditto
10642
106432005-07-14  John Sullivan  <sullivan@apple.com>
10644
10645        Reviewed by Ken Kocienda.
10646        
10647        - fixed <rdar://problem/4181227> webpages incorrectly use standard instead of secondary highlighting in certain cases
10648
10649        Test cases added: none, doesn't affect layout
10650
10651        * khtml/xml/dom_docimpl.cpp:
10652        (DocumentImpl::setFocusNode):
10653        Removed a line of code that was setting the focus on the WebHTMLView whenever a form control
10654        lost focus. This doesn't make sense in a world where the focus might be moving to something
10655        outside of the web page entirely. This line of code was added ages ago to fix Radar 3037974,
10656        which is not reproducible anymore with this line of code removed.
10657
106582005-07-12  Justin Garcia  <justin.garcia@apple.com>
10659
10660        Reviewed by mjs
10661
10662        - Fixes <rdar://problem/4124326> [RTL] Lines in messages with Hebrew text and numbers are truncated by Tiger Mail 
10663        
10664        Mail sends plaintext when a message doesn't have any formatting, plaintext depends on 
10665        innertext, which depends on TextIterators.  A TextIterator iterates over text boxes 
10666        in render order, but assumes logical order, which was causing the problems.
10667
10668        Test cases added:
10669        * layout-tests/fast/text/international/bidi-innertext-expected.txt: Added.
10670        * layout-tests/fast/text/international/bidi-innertext.html: Added.
10671
10672        * khtml/editing/visible_text.cpp:
10673        (khtml::TextIterator::handleTextNode):
10674            If the text node contains reversed text, sort the text boxes (m_sortedTextBoxes).  
10675            Not all reversed text will be out of logical order, but this simple check is less expensive 
10676            than doing an exhaustive one.  Most text is LTR and an exhaustive check might hurt performance.
10677        (khtml::TextIterator::handleTextBox):
10678            Iterates over sorted text boxes when necessary
10679        * khtml/editing/visible_text.h:
10680        * khtml/rendering/render_text.cpp:
10681        (RenderText::RenderText):
10682        (RenderText::position):
10683            If asked to position a text box with reversed text, modify m_containsReversedText
10684        * khtml/rendering/render_text.h:
10685        (khtml::InlineTextBox::operator ==): Added to facilitate sorting
10686        (khtml::InlineTextBox::operator <): Ditto
10687        (khtml::RenderText::containsReversedText):
10688        
10689
106902005-07-14  Justin Garcia  <justin.garcia@apple.com>
10691
10692        Patch by Anders Carlsson and justin
10693
10694        Reviewed by mjs
10695        
10696        Fixes the following related bugs: 
10697        <http://bugs.webkit.org/show_bug.cgi?id=3298> insertRow generates DOM Exception if TABLE does not possess a TBODY
10698        <rdar://problem/4045213> insertRow fails on a <table> that has no <tbody> but does have other children in the DOM
10699        <rdar://problem/3609576> insertRow() on table object containing any characters but no TR & TD elements fails (3476)
10700        
10701        Does a better job of maintaining the firstBody variable so that it's not invalidated on .innerHTML = ""
10702        Better check for when to add an implicit tbody to hold the inserted row.
10703
10704        Test cases added: (NONE)
10705        * layout-tests/fast/dom/HTMLTableElement/insert-row-expected.txt: Added.
10706        * layout-tests/fast/dom/HTMLTableElement/insert-row.html: Added.
10707
10708        * khtml/html/html_tableimpl.cpp:
10709        (DOM::HTMLTableElementImpl::~HTMLTableElementImpl):
10710        (DOM::HTMLTableElementImpl::setTBody):
10711        (DOM::HTMLTableElementImpl::insertRow):
10712        (DOM::HTMLTableElementImpl::addChild):
10713        (DOM::HTMLTableElementImpl::childrenChanged):
10714        * khtml/html/html_tableimpl.h:
10715
10716
107172005-07-14  Vicki Murley  <vicki@apple.com>
10718
10719        Reviewed by hyatt, patch from Carsten Guenther.
10720
10721	- fix for http://bugs.webkit.org/show_bug.cgi?id=3855
10722
10723        Test cases added:
10724        * manual-tests/bugzilla-3855.html: Added.
10725
10726        * kwq/KWQKHTMLPart.mm: 
10727        (KWQKHTMLPart::searchForLabelsAboveCell): check for the existence of the cell renderer
10728
107292005-07-14  Vicki Murley  <vicki@apple.com>
10730
10731	- added manual tests for <rdar://problem/4172380> [GENENTECH] window.opener not available 
10732	when child opened via target="_new"
10733        
10734	Test cases added: 
10735        * manual-tests/target_new-1.html: Added.
10736        * manual-tests/target_new.html: Added.
10737
107382005-07-14  Geoffrey Garen  <ggaren@apple.com>
10739
10740        - landed fix for <http://bugs.webkit.org/show_bug.cgi?id=3677>
10741        Safari fail to access a second time an element whose content was dynamically modified.
10742        
10743        - patch by Anders Carlsson <andersca@mac.com>.
10744
10745        Reviewed by mjs + darin.
10746
10747        Test cases added:
10748        * layout-tests/fast/dom/ids/duplicate-ids-expected.txt: Added.
10749        * layout-tests/fast/dom/ids/duplicate-ids.html: Added.
10750        
10751        * khtml/xml/dom_docimpl.cpp:
10752        (DocumentImpl::getElementById):
10753        If no element in the id dict can be found and we know that there's
10754        at least one other element with the same id around, then traverse the document
10755        and insert the new element in the id table.
10756        
10757        (DocumentImpl::addElementById):
10758        (DocumentImpl::removeElementById):
10759        Increment and decrement the id count accordingly.
10760        
10761        * khtml/xml/dom_docimpl.h:
10762        Add QDict for id counts. Make element QDict mutable.
10763
107642005-07-14  Geoffrey Garen  <ggaren@apple.com>
10765
10766        -landed layout test for http://bugs.webkit.org/show_bug.cgi?id=3412
10767        Object.prototype is missing toLocaleString
10768
10769        Reviewed by mjs.
10770
10771        Test cases added:
10772        * layout-tests/fast/js/object-prototype-toLocaleString-expected.txt: Added.
10773        * layout-tests/fast/js/object-prototype-toLocaleString.html: Added.
10774
107752005-07-14  Vicki Murley  <vicki@apple.com>
10776
10777        Reviewed by Kocienda.
10778
10779        - WebCore part of fix for  <rdar://problem/4172380> [GENENTECH] window.opener 
10780        not available when child opened via target="_new"
10781
10782        Add a setOpener function to the WebCore bridge, and call this function when opening
10783        new windows through Web Kit.
10784
10785        * kwq/WebCoreBridge.h:
10786        * kwq/WebCoreBridge.mm:
10787
107882005-07-12  Maciej Stachowiak  <mjs@apple.com>
10789
10790        Reviewed by Kevin.
10791
10792        - convert some more things to use the new hashtable
10793
10794        * khtml/ecma/kjs_binding.cpp:
10795        (KJS::domObjects):
10796        (KJS::domNodesPerDocument):
10797        (KJS::ScriptInterpreter::getDOMObject):
10798        (KJS::ScriptInterpreter::putDOMObject):
10799        (KJS::ScriptInterpreter::deleteDOMObject):
10800        (KJS::ScriptInterpreter::forgetDOMObject):
10801        (KJS::ScriptInterpreter::getDOMNodeForDocument):
10802        (KJS::ScriptInterpreter::forgetDOMNodeForDocument):
10803        (KJS::ScriptInterpreter::putDOMNodeForDocument):
10804        (KJS::ScriptInterpreter::forgetAllDOMNodesForDocument):
10805        (KJS::ScriptInterpreter::mark):
10806        (KJS::ScriptInterpreter::updateDOMNodeDocument):
10807        * khtml/ecma/kjs_binding.h:
10808        * khtml/ecma/kjs_window.h: Include QPtrDict header
10809        * khtml/ecma/xmlhttprequest.h: ditto
10810
10811	- fix a bug with remove of a nonexistent key - it used to trash
10812	the table
10813	
10814        * khtml/misc/hashtable.h:
10815        (khtml::::remove):
10816
108172005-07-13  Justin Garcia  <justin.garcia@apple.com>
10818
10819        Reviewed by mjs
10820
10821        Rolled in workarounds necessary to build with a gcc 4.0 regression introduced in build 5208:
10822        <rdar://problem/4175534> Regression in gcc-5208 "comparison of distinct Objective-C types lacks a cast" warning
10823        Problems overloading methods that take Objective-C typed arguments
10824            
10825        * kwq/KWQCursor.h:
10826        * kwq/KWQCursor.mm:
10827        (QCursor::makeWithNSCursor):
10828        * kwq/KWQKCursor.mm:
10829        (KCursor::crossCursor):
10830        (KCursor::handCursor):
10831        (KCursor::sizeAllCursor):
10832        (KCursor::ibeamCursor):
10833        (KCursor::waitCursor):
10834        (KCursor::whatsThisCursor):
10835        (KCursor::eastResizeCursor):
10836        (KCursor::northResizeCursor):
10837        (KCursor::northEastResizeCursor):
10838        (KCursor::northWestResizeCursor):
10839        (KCursor::southResizeCursor):
10840        (KCursor::southEastResizeCursor):
10841        (KCursor::southWestResizeCursor):
10842        (KCursor::westResizeCursor):
10843        * kwq/KWQKJobClasses.mm:
10844        (KIO::TransferJob::emitResult):
10845        (KIO::TransferJob::emitReceivedResponse):
10846        * kwq/KWQSignal.h:
10847        * kwq/KWQSignal.mm:
10848        (KWQSignal::callWithData):
10849        (KWQSignal::callWithResponse):
10850        * kwq/KWQSlot.h:
10851        * kwq/KWQSlot.mm:
10852        (KWQSlot::callWithData):
10853        (KWQSlot::callWithResponse):
10854        * kwq/KWQWidget.mm:
10855        (QWidget::cursor):
10856
108572005-07-13  Justin Garcia  <justin.garcia@apple.com>
10858
10859        Reviewed by mjs
10860
10861        Rolling in changes necessary to build with newer versions of gcc 4.0
10862
10863        * kwq/DOM-CSS.mm:
10864        (+[DOMCSSPrimitiveValue _valueWithImpl:]):
10865        * kwq/DOMEvents.h:
10866        * kwq/DOMInternal.h:
10867        (addDOMWrapper):
10868        * kwq/KWQButton.mm:
10869        (QButton::setWritingDirection):
10870        * kwq/KWQClipboard.mm:
10871        (KWQClipboard::dragNSImage):
10872        * kwq/KWQComboBox.mm:
10873        (QComboBox::setWritingDirection):
10874        (QComboBox::populateMenu):
10875        * kwq/KWQKHTMLPart.mm:
10876        (regExpForLabels):
10877        (KWQKHTMLPart::passWidgetMouseDownEventToWidget):
10878        (KWQKHTMLPart::fileWrapperForElement):
10879        * kwq/KWQLineEdit.mm:
10880        (QLineEdit::QLineEdit):
10881        * kwq/KWQListBox.mm:
10882        (QListBox::~QListBox):
10883        (QListBox::setSelectionMode):
10884        (QListBox::doneAppendingItems):
10885        (QListBox::setSelected):
10886        (QListBox::isSelected):
10887        (QListBox::setEnabled):
10888        (QListBox::sizeForNumberOfLines):
10889        (QListBox::setWritingDirection):
10890        * kwq/KWQScrollView.mm:
10891        (QScrollView::contentsX):
10892        (QScrollView::contentsY):
10893        * kwq/KWQTextArea.mm:
10894        (-[KWQTextArea _trackResizeFromMouseDown:]):
10895        (-[KWQTextAreaTextView _enclosingTextArea]):
10896        (-[KWQTextAreaTextView _resizeCornerRect]):
10897        * kwq/KWQTextEdit.mm:
10898        (QTextEdit::setAlignment):
10899        (QTextEdit::setWritingDirection):
10900        (QTextEdit::sizeWithColumnsAndRows):
10901        (QTextEdit::setPalette):
10902        * kwq/KWQWidget.mm:
10903        (QWidget::hasFocus):
10904        * kwq/WebCoreBridge.mm:
10905        (-[WebCoreBridge elementAtPoint:]):
10906
109072005-07-13  John Sullivan  <sullivan@apple.com>
10908
10909        Reviewed by Maciej Stachowiak.
10910        
10911        - cleaned up Find-related experimental code that I checked in a while back
10912
10913        * kwq/KWQKHTMLPart.h:
10914        remove findInSelection flag from findString()
10915        * kwq/KWQKHTMLPart.mm:
10916        (KWQKHTMLPart::findString):
10917        remove findInSelection flag. Always search the selection first, but if the found range is
10918        the same as the selection range, then search again from beyond the selection.
10919        
10920        * kwq/WebCoreBridge.h:
10921        * kwq/WebCoreBridge.mm:
10922        (-[WebCoreBridge searchFor:direction:caseSensitive:wrap:]):
10923        remove findInSelection flag
10924
109252005-07-13  Adele Peterson  <adele@apple.com>
10926
10927        Reviewed by John.
10928
10929        Fixed <rdar://problem/4170963> Focusing a field unnecessarily horizontally scrolls
10930
10931        Horizontal scrolling while tabbing through forms can be surprising, and distracting.  This 
10932        change will minimize that scrolling if we're not explicitly trying to center a rectangle in
10933        _KWQ_scrollRectToVisible.
10934
10935        Test cases added: None.  This test case involves tabbing to form controls and scrolling.
10936
10937        * kwq/KWQNSViewExtras.m: (-[NSClipView _KWQ_scrollRectToVisible:inView:forceCentering:]):
10938
109392005-07-12  Kevin Decker  <kdecker@apple.com>
10940
10941         Reviewed by cblu.
10942
10943	Fixed: 
10944	  http://bugs.webkit.org/show_bug.cgi?id=3968
10945	 <rdar://problem/4172645> REGRESSION: top frame only loads at banking site - http://www.skandiabanken.no
10946
10947        Test cases added: None; This fixes a race condition that is not reproducible locally.
10948
10949        * khtml/khtml_part.cpp:
10950        (KHTMLPart::scheduleLocationChange): If a redirect was scheduled during a load, then stop the current load. Otherwise when the current load transitions from a provisional to a committed state, pending redirects may be cancelled. 
10951
109522005-07-12  Beth Dakin  <bdakin@apple.com>
10953
10954	Fix for http://bugs.webkit.org/show_bug.cgi?id=3942 and marquee problems in Radar bug 
10955	4172312. Vertical marquees default to 200px, and horizontal marquees do not allow text to be 
10956	truncated by a too-small height attribute. 
10957
10958        Reviewed by Hyatt.
10959
10960        Test cases added: (NONE)
10961
10962        * khtml/html/html_blockimpl.cpp: deleted former changes to make marquee height work correctly.
10963        (HTMLMarqueeElementImpl::mapToEntry):
10964        (HTMLMarqueeElementImpl::parseMappedAttribute):
10965        * khtml/rendering/render_layer.cpp: this is where the height issues are now addressed
10966        (Marquee::updateMarqueeStyle):
10967        * khtml/rendering/render_layer.h: 
10968        (khtml::):
10969        * khtml/rendering/render_style.h: added function fontSize() 
10970        (khtml::RenderStyle::fontSize):
10971        * khtml/xml/dom_elementimpl.h: deleted addition of EMarquee hash key
10972        (DOM::):
10973        * layout-tests/fast/css/MarqueeLayoutTest-expected.txt: 
10974        * layout-tests/fast/css/MarqueeLayoutTest.html: added vertical marquees to test.
10975
109762005-07-12  Geoffrey Garen  <ggaren@apple.com>
10977
10978        Test cases modified:
10979        * layout-tests/fast/frames/iframe-name-and-id.html:
10980        now tests dynamically creating frames[x].name
10981
109822005-07-12  Geoffrey Garen  <ggaren@apple.com>
10983
10984        Added layout test for 
10985        http://bugs.webkit.org/show_bug.cgi?id=3435
10986        Parentheses are backwards in Hebrew text (no bidi mirroring?)
10987
10988        Test is manual because results only reflect visually -
10989        the layout is the same either way.
10990        
10991        Test cases added:
10992        * manual-tests/bidi-parens.html: Added.
10993
109942005-07-12  Ken Kocienda  <kocienda@apple.com>
10995
10996        Reviewed by me
10997
10998        Test cases added: (NONE)
10999
11000        * kwq/KWQTextCodec.mm: Fix build breakage. /me is a real genius.
11001
110022005-07-12  Ken Kocienda  <kocienda@apple.com>
11003
11004        Reviewed by Chris Blumenberg
11005
11006        Test cases added: (NONE)
11007
11008        Switched over from TEC to ICU for unicode text conversion. TEC support has now been
11009        removed from KWQTextCodec. I just added this dual support yesterday, and while Maciej 
11010        and I agreed that it was good to land in the tree in case we run into problems in the
11011        near future, we also agreed that cutting over to using ICU full time right now is 
11012        probably the best way to find bugs.
11013        
11014        * kwq/KWQTextCodec.mm: Removed TEC support.
11015        (QTextCodec::fromUnicode): Ditto.
11016        (KWQTextDecoder::KWQTextDecoder): Ditto.
11017        (KWQTextDecoder::~KWQTextDecoder): Ditto.
11018        (KWQTextDecoder::convert): Ditto.
11019        * kwq/WebCoreBridge.h: Removed some glue that allowed the converters to
11020        be changed at runtime.
11021        * kwq/WebCoreTextConversionMethod.h: Removed. This also was glue for the runtime switch.
11022        * WebCore.pbproj/project.pbxproj: Removed WebCoreTextConversionMethod.h file.
11023
110242005-07-12  Eric Seidel  <eseidel@apple.com>
11025
11026        Reviewed by hyatt.
11027
11028        * icu/unicode/ucnv.h: Added.
11029        * icu/unicode/ucnv_err.h: Added.
11030        Fixes build break for externals caused by KWQTextCodec.mm changes.
11031        http://bugs.webkit.org/show_bug.cgi?id=3961
11032
110332005-07-11  Eric Seidel  <eseidel@apple.com>
11034
11035        Reviewed by Adele.
11036
11037        * kdom/Namespace.h: Merged in XPath 2.0 namespace def from KDE.
11038        * kdom/Shared.h: Merged in comments from KDE.
11039        * kdom/kdom.h: Changed local // to use #ifndef APPLE_CHANGES
11040        (KDOM::operator<<):
11041        A tiny batch of changes I wished to commit before moving
11042        WebCore/kdom to SVGSupport/kdom.
11043        http://bugs.webkit.org/show_bug.cgi?id=3959
11044
110452005-07-11  Geoffrey Garen  <ggaren@apple.com>
11046
11047	-fixed rdar://problem/4170960 
11048	http://bugs.webkit.org/show_bug.cgi?id=3952 
11049	iFrame name and id information incorrectly returned
11050        
11051	Reviewed by mjs.
11052
11053        Test cases added: (NONE)
11054        * layout-tests/fast/frames/iframe-name-and-id-expected.txt: Added.
11055        * layout-tests/fast/frames/iframe-name-and-id.html: Added.
11056
11057        * ChangeLog:
11058        * khtml/html/html_baseimpl.cpp:
11059        (HTMLFrameElementImpl::attach): removed misleading comment
11060        (HTMLIFrameElementImpl::attach): copied FrameElementImpl behavior
11061	for initializing m_name
11062
110632005-07-11  Ken Kocienda  <kocienda@apple.com>
11064
11065        Reviewed by Richard
11066
11067        Test cases added: (NONE)
11068
11069        * WebCore.pbproj/project.pbxproj:
11070        * kwq/KWQLogging.h: Added constant for logging text conversions.
11071        * kwq/KWQLogging.m: Ditto.
11072        * kwq/KWQTextCodec.mm: Added support for using the ICU library for unicode text conversion.
11073        (KWQTextDecoder::KWQTextDecoder): Check for conversion method to use.
11074        (KWQTextDecoder::~KWQTextDecoder): Release ICU converter if needed.
11075        (KWQTextDecoder::convertUTF16): Use constant rather in place of hard-coded buffer size.
11076        (KWQTextDecoder::createTECConverter): Name change: qualify converter names with TEC suffix.
11077        (KWQTextDecoder::createICUConverter): New function to create an ICU converter.
11078        (KWQTextDecoder::convertOneChunkUsingTEC): Name change: qualify converter names with TEC suffix.
11079        (KWQTextDecoder::convertUsingTEC): Ditto. Also, use constant rather in place of hard-coded buffer size.
11080        (KWQTextDecoder::convertUsingICU): New function to convert text using ICU.
11081        (KWQTextDecoder::convert): Now switches on converters, picking either TEC or ICU.
11082        * kwq/WebCoreBridge.h: Add -textConversionMethod accessor so KWQTextDecoder can pick the right converter.
11083        * kwq/WebCoreTextConversionMethod.h: Added.
11084
110852005-07-11  Ken Kocienda  <kocienda@apple.com>
11086
11087        Reviewed by me
11088
11089        Test cases added: (NONE)
11090
11091        * WebCore.pbproj/project.pbxproj: Fix project file.
11092
110932005-07-11  Ken Kocienda  <kocienda@apple.com>
11094
11095        Reviewed by me
11096
11097        Test cases added: (NONE)
11098
11099        * ChangeLog: Fixed two typos I found while reading the ChangeLog.
11100
111012005-07-10  Maciej Stachowiak  <mjs@apple.com>
11102
11103        Reviewed by John.
11104
11105        * khtml/html/htmltokenizer.cpp:
11106        (khtml::HTMLTokenizer::parseTag): Don't allow !doctype as a tag name, this screws up
11107	parsing and makes !doctype elements and extra text nodes get added to the DOM.
11108        * khtml/xml/dom_atomicstring.cpp:
11109        (DOM::AtomicString::equal): Add some nil checks, now that the equal this calls
11110	no longer checks for nil.
11111
111122005-07-10  Eric Seidel  <eseidel@apple.com>
11113
11114        Reviewed by mjs.
11115
11116        * ksvg2/core/KCanvasRenderingStyle.cc: Added.
11117        * ksvg2/core/KCanvasRenderingStyle.h: Added.
11118        * ksvg2/core/KSVGDocumentBuilder.cc: Added.
11119        * ksvg2/core/KSVGDocumentBuilder.h: Added.
11120        * ksvg2/core/KSVGTimeScheduler.cc: Added.
11121        * ksvg2/core/KSVGTimeScheduler.h: Added.
11122        * ksvg2/core/KSVGTimeScheduler.moc: Added.
11123        Added directory previously ignored by global cvsignore rules.
11124        http://bugs.webkit.org/show_bug.cgi?id=3939
11125
111262005-07-10  Eric Seidel  <eseidel@apple.com>
11127
11128        Reviewed by mjs.
11129
11130        * WebCore.pbproj/project.pbxproj:
11131        added htmlfactory.* to WebCore+SVG
11132        Also fixed /sw/bin/bison absolute path.
11133        http://bugs.webkit.org/show_bug.cgi?id=3938
11134
111352005-07-09  Timothy Hatcher  <timothy@colloquy.info>
11136
11137        Reviewed and landed by Maciej.
11138
11139	Fixed a build error with GCC4 and the use of _M_type.
11140
11141        * khtml/misc/hashtraits.h:
11142        Test for GCC4 and use the new __value enum from _M_type.
11143
111442005-07-09  David Hyatt  <hyatt@apple.com>
11145
11146	Make sure to keep eLastEntry at the end of the list, since it is used for the dynamic portion of the
11147	hash.
11148	
11149        Reviewed by mjs
11150
111512005-07-09  Maciej Stachowiak  <mjs@apple.com>
11152
11153        Reviewed by Eric Seidel.
11154
11155        - removed unused files
11156
11157        * kdom/impl/NodeKeeper.cc: Removed.
11158        * kdom/impl/NodeKeeper.h: Removed.
11159        * WebCore.pbproj/project.pbxproj: Remove from +SVG build.
11160
111612005-07-09  David Hyatt  <hyatt@apple.com>
11162
11163	Fix for bugzilla bug 3405, replace NodeImpl::Id with a new class,
11164	QualifiedName, to represent tag names (for DOM elements and CSS
11165	selectors).
11166	
11167        Reviewed by mjs
11168
11169        * WebCore.pbproj/project.pbxproj:
11170        * khtml/css/css_base.cpp:
11171        (CSSSelector::anyTagName):
11172        (CSSSelector::print):
11173        (CSSSelector::specificity):
11174        (CSSSelector::selectorText):
11175        * khtml/css/css_base.h:
11176        (DOM::CSSNamespace::uri):
11177        (DOM::CSSNamespace::prefix):
11178        (DOM::CSSNamespace::namespaceForPrefix):
11179        (DOM::CSSSelector::CSSSelector):
11180        (DOM::CSSSelector::hasTag):
11181        * khtml/css/css_ruleimpl.cpp:
11182        * khtml/css/css_ruleimpl.h:
11183        * khtml/css/css_stylesheetimpl.cpp:
11184        (CSSStyleSheetImpl::addNamespace):
11185        (CSSStyleSheetImpl::determineNamespace):
11186        * khtml/css/css_stylesheetimpl.h:
11187        * khtml/css/cssparser.cpp:
11188        (CSSParser::CSSParser):
11189        (CSSParser::parseSheet):
11190        * khtml/css/cssparser.h:
11191        * khtml/css/cssstyleselector.cpp:
11192        (khtml::CSSStyleSelector::matchRules):
11193        (khtml::CSSStyleSelector::matchRulesForList):
11194        (khtml::CSSStyleSelector::canShareStyleWithElement):
11195        (khtml::CSSStyleSelector::adjustRenderStyle):
11196        (khtml::CSSStyleSelector::checkSelector):
11197        (khtml::CSSStyleSelector::checkOneSelector):
11198        (khtml::CSSRuleSet::addRule):
11199        * khtml/css/cssstyleselector.h:
11200        (khtml::CSSRuleSet::getTagRules):
11201        * khtml/css/parser.y:
11202        * khtml/dom/css_stylesheet.cpp:
11203        (LinkStyle::operator = ):
11204        (LinkStyle::sheet):
11205        * khtml/dom/dom_element.cpp:
11206        (Element::tagName):
11207        * khtml/dom/dom_node.cpp:
11208        (Node::namespaceURI):
11209        (Node::setPrefix):
11210        * khtml/dom/dom_node.h:
11211        * khtml/dom/html_base.cpp:
11212        (HTMLBodyElement::operator = ):
11213        (HTMLFrameElement::operator = ):
11214        (HTMLIFrameElement::operator = ):
11215        (HTMLFrameSetElement::operator = ):
11216        (HTMLHeadElement::operator = ):
11217        (HTMLHtmlElement::operator = ):
11218        * khtml/dom/html_block.cpp:
11219        (HTMLBlockquoteElement::operator = ):
11220        (HTMLDivElement::operator = ):
11221        (HTMLHRElement::operator = ):
11222        (HTMLHeadingElement::operator = ):
11223        (HTMLParagraphElement::operator = ):
11224        (HTMLPreElement::operator = ):
11225        * khtml/dom/html_element.cpp:
11226        (HTMLElement::assignOther):
11227        * khtml/dom/html_element.h:
11228        * khtml/dom/html_form.cpp:
11229        (HTMLButtonElement::operator = ):
11230        (HTMLFieldSetElement::operator = ):
11231        (HTMLFormElement::operator = ):
11232        (HTMLInputElement::operator = ):
11233        (HTMLLabelElement::operator = ):
11234        (HTMLLegendElement::operator = ):
11235        (HTMLOptGroupElement::operator = ):
11236        (HTMLSelectElement::operator = ):
11237        (HTMLTextAreaElement::operator = ):
11238        (HTMLOptionElement::operator = ):
11239        (HTMLIsIndexElement::operator = ):
11240        * khtml/dom/html_head.cpp:
11241        (HTMLBaseElement::operator = ):
11242        (HTMLLinkElement::operator = ):
11243        (HTMLMetaElement::operator = ):
11244        (HTMLScriptElement::operator = ):
11245        (HTMLStyleElement::operator = ):
11246        (HTMLTitleElement::operator = ):
11247        * khtml/dom/html_image.cpp:
11248        (HTMLAreaElement::operator = ):
11249        (HTMLImageElement::operator = ):
11250        (HTMLMapElement::operator = ):
11251        * khtml/dom/html_inline.cpp:
11252        (HTMLAnchorElement::operator = ):
11253        (HTMLBRElement::operator = ):
11254        (HTMLFontElement::operator = ):
11255        (HTMLModElement::HTMLModElement):
11256        (HTMLModElement::operator = ):
11257        (HTMLQuoteElement::HTMLQuoteElement):
11258        (HTMLQuoteElement::operator = ):
11259        * khtml/dom/html_inline.h:
11260        * khtml/dom/html_list.cpp:
11261        (HTMLDListElement::operator = ):
11262        (HTMLDirectoryElement::operator = ):
11263        (HTMLLIElement::operator = ):
11264        (HTMLMenuElement::operator = ):
11265        (HTMLOListElement::operator = ):
11266        (HTMLUListElement::operator = ):
11267        * khtml/dom/html_misc.cpp:
11268        (HTMLBaseFontElement::operator = ):
11269        * khtml/dom/html_object.cpp:
11270        (DOM::HTMLAppletElement::operator = ):
11271        (DOM::HTMLObjectElement::operator = ):
11272        (DOM::HTMLParamElement::operator = ):
11273        * khtml/dom/html_table.cpp:
11274        (HTMLTableCaptionElement::operator = ):
11275        (HTMLTableCellElement::operator = ):
11276        (HTMLTableColElement::operator = ):
11277        (HTMLTableElement::operator = ):
11278        (HTMLTableRowElement::operator = ):
11279        (HTMLTableSectionElement::operator = ):
11280        * khtml/ecma/kjs_css.cpp:
11281        (KJS::DOMStyleSheetList::tryGet):
11282        * khtml/ecma/kjs_dom.cpp:
11283        (KJS::DOMNode::putValue):
11284        (KJS::DOMElement::tryGet):
11285        (KJS::getRuntimeObject):
11286        * khtml/ecma/kjs_html.cpp:
11287        (KJS::HTMLDocument::tryGet):
11288        (KJS::KJS::HTMLDocument::putValue):
11289        (KJS::KJS::HTMLElement::classInfo):
11290        (KJS::):
11291        (KJS::HTMLElement::getSetInfo):
11292        (KJS::KJS::HTMLElement::tryGet):
11293        (KJS::KJS::HTMLElement::implementsCall):
11294        (KJS::KJS::HTMLElement::call):
11295        (KJS::HTMLElement::htmlGetter):
11296        (KJS::HTMLElement::headGetter):
11297        (KJS::HTMLElement::linkGetter):
11298        (KJS::HTMLElement::titleGetter):
11299        (KJS::HTMLElement::metaGetter):
11300        (KJS::HTMLElement::baseGetter):
11301        (KJS::HTMLElement::isIndexGetter):
11302        (KJS::HTMLElement::styleGetter):
11303        (KJS::HTMLElement::bodyGetter):
11304        (KJS::HTMLElement::formGetter):
11305        (KJS::HTMLElement::selectGetter):
11306        (KJS::HTMLElement::optGroupGetter):
11307        (KJS::HTMLElement::optionGetter):
11308        (KJS::getInputSelectionStart):
11309        (KJS::getInputSelectionEnd):
11310        (KJS::HTMLElement::inputGetter):
11311        (KJS::HTMLElement::textAreaGetter):
11312        (KJS::HTMLElement::buttonGetter):
11313        (KJS::HTMLElement::labelGetter):
11314        (KJS::HTMLElement::fieldSetGetter):
11315        (KJS::HTMLElement::legendGetter):
11316        (KJS::HTMLElement::uListGetter):
11317        (KJS::HTMLElement::oListGetter):
11318        (KJS::HTMLElement::dListGetter):
11319        (KJS::HTMLElement::dirGetter):
11320        (KJS::HTMLElement::menuGetter):
11321        (KJS::HTMLElement::liGetter):
11322        (KJS::HTMLElement::divGetter):
11323        (KJS::HTMLElement::paragraphGetter):
11324        (KJS::HTMLElement::headingGetter):
11325        (KJS::HTMLElement::blockQuoteGetter):
11326        (KJS::HTMLElement::quoteGetter):
11327        (KJS::HTMLElement::preGetter):
11328        (KJS::HTMLElement::brGetter):
11329        (KJS::HTMLElement::baseFontGetter):
11330        (KJS::HTMLElement::fontGetter):
11331        (KJS::HTMLElement::hrGetter):
11332        (KJS::HTMLElement::modGetter):
11333        (KJS::HTMLElement::anchorGetter):
11334        (KJS::HTMLElement::imageGetter):
11335        (KJS::HTMLElement::objectGetter):
11336        (KJS::HTMLElement::paramGetter):
11337        (KJS::HTMLElement::appletGetter):
11338        (KJS::HTMLElement::mapGetter):
11339        (KJS::HTMLElement::areaGetter):
11340        (KJS::HTMLElement::scriptGetter):
11341        (KJS::HTMLElement::tableGetter):
11342        (KJS::HTMLElement::tableCaptionGetter):
11343        (KJS::HTMLElement::tableColGetter):
11344        (KJS::HTMLElement::tableSectionGetter):
11345        (KJS::HTMLElement::tableRowGetter):
11346        (KJS::HTMLElement::tableCellGetter):
11347        (KJS::HTMLElement::frameSetGetter):
11348        (KJS::HTMLElement::frameGetter):
11349        (KJS::HTMLElement::iFrameGetter):
11350        (KJS::HTMLElement::marqueeGetter):
11351        (KJS::HTMLElement::getValueProperty):
11352        (KJS::KJS::HTMLElement::hasOwnProperty):
11353        (KJS::KJS::HTMLElement::toString):
11354        (KJS::getForm):
11355        (KJS::KJS::HTMLElement::pushEventHandlerScope):
11356        (KJS::KJS::HTMLElementFunction::tryCall):
11357        (KJS::KJS::HTMLElement::tryPut):
11358        (KJS::HTMLElement::htmlSetter):
11359        (KJS::HTMLElement::headSetter):
11360        (KJS::HTMLElement::linkSetter):
11361        (KJS::HTMLElement::titleSetter):
11362        (KJS::HTMLElement::metaSetter):
11363        (KJS::HTMLElement::baseSetter):
11364        (KJS::HTMLElement::isIndexSetter):
11365        (KJS::HTMLElement::styleSetter):
11366        (KJS::HTMLElement::bodySetter):
11367        (KJS::HTMLElement::formSetter):
11368        (KJS::HTMLElement::selectSetter):
11369        (KJS::HTMLElement::optGroupSetter):
11370        (KJS::HTMLElement::optionSetter):
11371        (KJS::HTMLElement::inputSetter):
11372        (KJS::HTMLElement::textAreaSetter):
11373        (KJS::HTMLElement::buttonSetter):
11374        (KJS::HTMLElement::labelSetter):
11375        (KJS::HTMLElement::fieldSetSetter):
11376        (KJS::HTMLElement::legendSetter):
11377        (KJS::HTMLElement::uListSetter):
11378        (KJS::HTMLElement::oListSetter):
11379        (KJS::HTMLElement::dListSetter):
11380        (KJS::HTMLElement::dirSetter):
11381        (KJS::HTMLElement::menuSetter):
11382        (KJS::HTMLElement::liSetter):
11383        (KJS::HTMLElement::divSetter):
11384        (KJS::HTMLElement::paragraphSetter):
11385        (KJS::HTMLElement::headingSetter):
11386        (KJS::HTMLElement::blockQuoteSetter):
11387        (KJS::HTMLElement::quoteSetter):
11388        (KJS::HTMLElement::preSetter):
11389        (KJS::HTMLElement::brSetter):
11390        (KJS::HTMLElement::baseFontSetter):
11391        (KJS::HTMLElement::fontSetter):
11392        (KJS::HTMLElement::hrSetter):
11393        (KJS::HTMLElement::modSetter):
11394        (KJS::HTMLElement::anchorSetter):
11395        (KJS::HTMLElement::imageSetter):
11396        (KJS::HTMLElement::objectSetter):
11397        (KJS::HTMLElement::paramSetter):
11398        (KJS::HTMLElement::appletSetter):
11399        (KJS::HTMLElement::mapSetter):
11400        (KJS::HTMLElement::areaSetter):
11401        (KJS::HTMLElement::scriptSetter):
11402        (KJS::HTMLElement::tableSetter):
11403        (KJS::HTMLElement::tableCaptionSetter):
11404        (KJS::HTMLElement::tableColSetter):
11405        (KJS::HTMLElement::tableSectionSetter):
11406        (KJS::HTMLElement::tableRowSetter):
11407        (KJS::HTMLElement::tableCellSetter):
11408        (KJS::HTMLElement::frameSetSetter):
11409        (KJS::HTMLElement::frameSetter):
11410        (KJS::HTMLElement::iFrameSetter):
11411        (KJS::HTMLElement::marqueeSetter):
11412        (KJS::HTMLElement::putValue):
11413        (KJS::toHTMLTableCaptionElement):
11414        (KJS::toHTMLTableSectionElement):
11415        (KJS::KJS::HTMLCollection::tryGet):
11416        (KJS::KJS::HTMLSelectCollection::tryPut):
11417        * khtml/ecma/kjs_html.h:
11418        * khtml/ecma/kjs_window.cpp:
11419        * khtml/editing/apply_style_command.cpp:
11420        (khtml::isStyleSpan):
11421        (khtml::isEmptyStyleSpan):
11422        (khtml::isEmptyFontTag):
11423        (khtml::createFontElement):
11424        (khtml::createStyleSpanElement):
11425        (khtml::ApplyStyleCommand::applyInlineStyle):
11426        (khtml::ApplyStyleCommand::isHTMLStyleNode):
11427        (khtml::ApplyStyleCommand::removeHTMLFontStyle):
11428        (khtml::areIdenticalElements):
11429        (khtml::ApplyStyleCommand::mergeEndWithNextIfIdentical):
11430        (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
11431        * khtml/editing/break_blockquote_command.cpp:
11432        (khtml::BreakBlockquoteCommand::doApply):
11433        * khtml/editing/composite_edit_command.cpp:
11434        (khtml::CompositeEditCommand::insertNodeBefore):
11435        (khtml::CompositeEditCommand::insertNodeAfter):
11436        (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
11437        (khtml::createBlockPlaceholderElement):
11438        * khtml/editing/delete_selection_command.cpp:
11439        (khtml::isListStructureNode):
11440        (khtml::DeleteSelectionCommand::handleSpecialCaseBRDelete):
11441        (khtml::DeleteSelectionCommand::handleGeneralDelete):
11442        (khtml::DeleteSelectionCommand::moveNodesAfterNode):
11443        * khtml/editing/htmlediting.cpp:
11444        (khtml::isSpecialElement):
11445        (khtml::createDefaultParagraphElement):
11446        (khtml::createBreakElement):
11447        (khtml::isMailBlockquote):
11448        * khtml/editing/insert_line_break_command.cpp:
11449        (khtml::InsertLineBreakCommand::doApply):
11450        * khtml/editing/insert_paragraph_separator_command.cpp:
11451        (khtml::InsertParagraphSeparatorCommand::doApply):
11452        * khtml/editing/markup.cpp:
11453        (khtml::startMarkup):
11454        (khtml::endMarkup):
11455        (khtml::markup):
11456        (khtml::createMarkup):
11457        (khtml::createFragmentFromText):
11458        * khtml/editing/replace_selection_command.cpp:
11459        (khtml::isProbablyBlock):
11460        (khtml::isProbablyTableStructureNode):
11461        (khtml::ReplacementFragment::isInterchangeNewlineNode):
11462        (khtml::ReplacementFragment::removeStyleNodes):
11463        (khtml::ReplaceSelectionCommand::doApply):
11464        (khtml::ReplaceSelectionCommand::updateNodesInserted):
11465        * khtml/editing/selection.cpp:
11466        (khtml::Selection::debugRenderer):
11467        * khtml/editing/visible_position.cpp:
11468        (khtml::VisiblePosition::init):
11469        (khtml::VisiblePosition::isCandidate):
11470        (khtml::VisiblePosition::isAtomicNode):
11471        * khtml/editing/visible_text.cpp:
11472        (khtml::TextIterator::handleNonTextNode):
11473        (khtml::TextIterator::exitNode):
11474        (khtml::SimplifiedBackwardsTextIterator::handleNonTextNode):
11475        * khtml/editing/visible_units.cpp:
11476        (khtml::endOfLine):
11477        * khtml/html/dtd.cpp: Removed.
11478        * khtml/html/dtd.h: Removed.
11479        * khtml/html/html_baseimpl.cpp:
11480        (HTMLBodyElementImpl::HTMLBodyElementImpl):
11481        (HTMLFrameElementImpl::HTMLFrameElementImpl):
11482        (HTMLFrameElementImpl::init):
11483        (HTMLFrameElementImpl::attach):
11484        (HTMLFrameSetElementImpl::HTMLFrameSetElementImpl):
11485        (HTMLFrameSetElementImpl::checkDTD):
11486        (HTMLFrameSetElementImpl::attach):
11487        (HTMLHeadElementImpl::HTMLHeadElementImpl):
11488        (HTMLHeadElementImpl::checkDTD):
11489        (HTMLHtmlElementImpl::HTMLHtmlElementImpl):
11490        (HTMLHtmlElementImpl::checkDTD):
11491        (HTMLIFrameElementImpl::HTMLIFrameElementImpl):
11492        * khtml/html/html_baseimpl.h:
11493        (DOM::HTMLBodyElementImpl::endTagRequirement):
11494        (DOM::HTMLBodyElementImpl::tagPriority):
11495        (DOM::HTMLFrameElementImpl::endTagRequirement):
11496        (DOM::HTMLFrameElementImpl::tagPriority):
11497        (DOM::HTMLFrameSetElementImpl::endTagRequirement):
11498        (DOM::HTMLFrameSetElementImpl::tagPriority):
11499        (DOM::HTMLHeadElementImpl::endTagRequirement):
11500        (DOM::HTMLHeadElementImpl::tagPriority):
11501        (DOM::HTMLHtmlElementImpl::endTagRequirement):
11502        (DOM::HTMLHtmlElementImpl::tagPriority):
11503        (DOM::HTMLIFrameElementImpl::endTagRequirement):
11504        (DOM::HTMLIFrameElementImpl::tagPriority):
11505        * khtml/html/html_blockimpl.cpp:
11506        (HTMLBlockquoteElementImpl::HTMLBlockquoteElementImpl):
11507        (HTMLDivElementImpl::HTMLDivElementImpl):
11508        (HTMLHRElementImpl::HTMLHRElementImpl):
11509        (HTMLHeadingElementImpl::HTMLHeadingElementImpl):
11510        (HTMLHeadingElementImpl::checkDTD):
11511        (HTMLParagraphElementImpl::HTMLParagraphElementImpl):
11512        (HTMLParagraphElementImpl::checkDTD):
11513        (HTMLPreElementImpl::HTMLPreElementImpl):
11514        (HTMLMarqueeElementImpl::HTMLMarqueeElementImpl):
11515        (HTMLMarqueeElementImpl::parseMappedAttribute):
11516        * khtml/html/html_blockimpl.h:
11517        (DOM::HTMLBlockquoteElementImpl::endTagRequirement):
11518        (DOM::HTMLBlockquoteElementImpl::tagPriority):
11519        (DOM::HTMLDivElementImpl::endTagRequirement):
11520        (DOM::HTMLDivElementImpl::tagPriority):
11521        (DOM::HTMLHRElementImpl::endTagRequirement):
11522        (DOM::HTMLHRElementImpl::tagPriority):
11523        (DOM::HTMLHeadingElementImpl::endTagRequirement):
11524        (DOM::HTMLHeadingElementImpl::tagPriority):
11525        (DOM::HTMLParagraphElementImpl::endTagRequirement):
11526        (DOM::HTMLParagraphElementImpl::tagPriority):
11527        (DOM::HTMLPreElementImpl::endTagRequirement):
11528        (DOM::HTMLPreElementImpl::tagPriority):
11529        (DOM::HTMLMarqueeElementImpl::endTagRequirement):
11530        (DOM::HTMLMarqueeElementImpl::tagPriority):
11531        * khtml/html/html_canvasimpl.cpp:
11532        (HTMLCanvasElementImpl::HTMLCanvasElementImpl):
11533        * khtml/html/html_canvasimpl.h:
11534        * khtml/html/html_documentimpl.cpp:
11535        (DOM::HTMLDocumentImpl::childAllowed):
11536        (DOM::HTMLDocumentImpl::createElement):
11537        * khtml/html/html_documentimpl.h:
11538        * khtml/html/html_elementimpl.cpp:
11539        (HTMLElementImpl::HTMLElementImpl):
11540        (HTMLElementImpl::nodeName):
11541        (HTMLElementImpl::endTagRequirement):
11542        (HTMLElementImpl::tagPriority):
11543        (HTMLElementImpl::cloneNode):
11544        (HTMLElementImpl::createContextualFragment):
11545        (HTMLElementImpl::setInnerHTML):
11546        (HTMLElementImpl::setOuterHTML):
11547        (HTMLElementImpl::setInnerText):
11548        (HTMLElementImpl::setOuterText):
11549        (HTMLElementImpl::toString):
11550        (HTMLElementImpl::id):
11551        (HTMLElementImpl::childAllowed):
11552        (HTMLElementImpl::isRecognizedTagName):
11553        (inlineTagList):
11554        (blockTagList):
11555        (HTMLElementImpl::inEitherTagList):
11556        (HTMLElementImpl::inInlineTagList):
11557        (HTMLElementImpl::inBlockTagList):
11558        (HTMLElementImpl::checkDTD):
11559        * khtml/html/html_elementimpl.h:
11560        (DOM::):
11561        * khtml/html/html_formimpl.cpp:
11562        (DOM::HTMLFormElementImpl::HTMLFormElementImpl):
11563        (DOM::HTMLFormElementImpl::submitClick):
11564        (DOM::HTMLFormElementImpl::formData):
11565        (DOM::HTMLFormElementImpl::submit):
11566        (DOM::HTMLFormElementImpl::radioClicked):
11567        (DOM::HTMLGenericFormElementImpl::HTMLGenericFormElementImpl):
11568        (DOM::HTMLGenericFormElementImpl::getForm):
11569        (DOM::HTMLButtonElementImpl::HTMLButtonElementImpl):
11570        (DOM::HTMLFieldSetElementImpl::HTMLFieldSetElementImpl):
11571        (DOM::HTMLFieldSetElementImpl::checkDTD):
11572        (DOM::HTMLFieldSetElementImpl::isFocusable):
11573        (DOM::HTMLInputElementImpl::HTMLInputElementImpl):
11574        (DOM::HTMLInputElementImpl::init):
11575        (DOM::HTMLLabelElementImpl::HTMLLabelElementImpl):
11576        (DOM::HTMLLabelElementImpl::form):
11577        (DOM::HTMLLegendElementImpl::HTMLLegendElementImpl):
11578        (DOM::HTMLLegendElementImpl::formElement):
11579        (DOM::HTMLSelectElementImpl::HTMLSelectElementImpl):
11580        (DOM::HTMLSelectElementImpl::init):
11581        (DOM::HTMLSelectElementImpl::checkDTD):
11582        (DOM::HTMLSelectElementImpl::selectedIndex):
11583        (DOM::HTMLSelectElementImpl::setSelectedIndex):
11584        (DOM::HTMLSelectElementImpl::length):
11585        (DOM::HTMLSelectElementImpl::add):
11586        (DOM::HTMLSelectElementImpl::value):
11587        (DOM::HTMLSelectElementImpl::setValue):
11588        (DOM::HTMLSelectElementImpl::state):
11589        (DOM::HTMLSelectElementImpl::restoreState):
11590        (DOM::HTMLSelectElementImpl::appendFormData):
11591        (DOM::HTMLSelectElementImpl::optionToListIndex):
11592        (DOM::HTMLSelectElementImpl::listToOptionIndex):
11593        (DOM::HTMLSelectElementImpl::recalcListItems):
11594        (DOM::HTMLSelectElementImpl::reset):
11595        (DOM::HTMLSelectElementImpl::notifyOptionSelected):
11596        (DOM::HTMLKeygenElementImpl::HTMLKeygenElementImpl):
11597        (DOM::HTMLOptGroupElementImpl::HTMLOptGroupElementImpl):
11598        (DOM::HTMLOptGroupElementImpl::recalcSelectOptions):
11599        (DOM::HTMLOptionElementImpl::HTMLOptionElementImpl):
11600        (DOM::HTMLOptionElementImpl::index):
11601        (DOM::HTMLOptionElementImpl::getSelect):
11602        (DOM::HTMLTextAreaElementImpl::HTMLTextAreaElementImpl):
11603        (DOM::HTMLIsIndexElementImpl::HTMLIsIndexElementImpl):
11604        * khtml/html/html_formimpl.h:
11605        (DOM::HTMLFormElementImpl::endTagRequirement):
11606        (DOM::HTMLFormElementImpl::tagPriority):
11607        (DOM::HTMLGenericFormElementImpl::endTagRequirement):
11608        (DOM::HTMLGenericFormElementImpl::tagPriority):
11609        (DOM::HTMLFieldSetElementImpl::tagPriority):
11610        (DOM::HTMLInputElementImpl::endTagRequirement):
11611        (DOM::HTMLInputElementImpl::tagPriority):
11612        (DOM::HTMLLabelElementImpl::tagPriority):
11613        (DOM::HTMLSelectElementImpl::tagPriority):
11614        (DOM::HTMLKeygenElementImpl::tagPriority):
11615        (DOM::HTMLOptGroupElementImpl::checkDTD):
11616        (DOM::HTMLOptionElementImpl::endTagRequirement):
11617        (DOM::HTMLOptionElementImpl::tagPriority):
11618        (DOM::HTMLOptionElementImpl::checkDTD):
11619        (DOM::HTMLTextAreaElementImpl::checkDTD):
11620        (DOM::HTMLTextAreaElementImpl::cols):
11621        (DOM::HTMLIsIndexElementImpl::endTagRequirement):
11622        (DOM::HTMLIsIndexElementImpl::tagPriority):
11623        * khtml/html/html_headimpl.cpp:
11624        (HTMLBaseElementImpl::HTMLBaseElementImpl):
11625        (HTMLLinkElementImpl::HTMLLinkElementImpl):
11626        (HTMLMetaElementImpl::HTMLMetaElementImpl):
11627        (HTMLScriptElementImpl::HTMLScriptElementImpl):
11628        (HTMLStyleElementImpl::HTMLStyleElementImpl):
11629        (HTMLTitleElementImpl::HTMLTitleElementImpl):
11630        * khtml/html/html_headimpl.h:
11631        (DOM::HTMLBaseElementImpl::endTagRequirement):
11632        (DOM::HTMLBaseElementImpl::tagPriority):
11633        (DOM::HTMLLinkElementImpl::endTagRequirement):
11634        (DOM::HTMLLinkElementImpl::tagPriority):
11635        (DOM::HTMLMetaElementImpl::endTagRequirement):
11636        (DOM::HTMLMetaElementImpl::tagPriority):
11637        (DOM::HTMLScriptElementImpl::endTagRequirement):
11638        (DOM::HTMLScriptElementImpl::tagPriority):
11639        (DOM::HTMLScriptElementImpl::checkDTD):
11640        (DOM::HTMLStyleElementImpl::endTagRequirement):
11641        (DOM::HTMLStyleElementImpl::tagPriority):
11642        (DOM::HTMLStyleElementImpl::checkDTD):
11643        (DOM::HTMLTitleElementImpl::checkDTD):
11644        * khtml/html/html_imageimpl.cpp:
11645        (HTMLImageLoader::updateFromElement):
11646        (HTMLImageElementImpl::HTMLImageElementImpl):
11647        (HTMLImageElementImpl::~HTMLImageElementImpl):
11648        (HTMLMapElementImpl::HTMLMapElementImpl):
11649        (HTMLMapElementImpl::checkDTD):
11650        (HTMLMapElementImpl::mapMouseEvent):
11651        (HTMLAreaElementImpl::HTMLAreaElementImpl):
11652        * khtml/html/html_imageimpl.h:
11653        (DOM::HTMLImageElementImpl::endTagRequirement):
11654        (DOM::HTMLImageElementImpl::tagPriority):
11655        (DOM::HTMLAreaElementImpl::endTagRequirement):
11656        (DOM::HTMLAreaElementImpl::tagPriority):
11657        (DOM::HTMLMapElementImpl::endTagRequirement):
11658        (DOM::HTMLMapElementImpl::tagPriority):
11659        * khtml/html/html_inlineimpl.cpp:
11660        (DOM::HTMLAnchorElementImpl::HTMLAnchorElementImpl):
11661        (DOM::HTMLAnchorElementImpl::defaultEventHandler):
11662        (DOM::HTMLBRElementImpl::HTMLBRElementImpl):
11663        (DOM::HTMLFontElementImpl::HTMLFontElementImpl):
11664        (DOM::HTMLModElementImpl::HTMLModElementImpl):
11665        (DOM::HTMLQuoteElementImpl::HTMLQuoteElementImpl):
11666        * khtml/html/html_inlineimpl.h:
11667        (DOM::HTMLAnchorElementImpl::endTagRequirement):
11668        (DOM::HTMLAnchorElementImpl::tagPriority):
11669        (DOM::HTMLBRElementImpl::endTagRequirement):
11670        (DOM::HTMLBRElementImpl::tagPriority):
11671        (DOM::HTMLFontElementImpl::endTagRequirement):
11672        (DOM::HTMLFontElementImpl::tagPriority):
11673        (DOM::HTMLModElementImpl::endTagRequirement):
11674        (DOM::HTMLModElementImpl::tagPriority):
11675        (DOM::HTMLQuoteElementImpl::endTagRequirement):
11676        (DOM::HTMLQuoteElementImpl::tagPriority):
11677        * khtml/html/html_listimpl.cpp:
11678        (DOM::HTMLOListElementImpl::parseMappedAttribute):
11679        (DOM::HTMLLIElementImpl::attach):
11680        (DOM::HTMLLIElementImpl::setValue):
11681        * khtml/html/html_listimpl.h:
11682        (DOM::HTMLUListElementImpl::HTMLUListElementImpl):
11683        (DOM::HTMLUListElementImpl::endTagRequirement):
11684        (DOM::HTMLUListElementImpl::tagPriority):
11685        (DOM::HTMLDirectoryElementImpl::HTMLDirectoryElementImpl):
11686        (DOM::HTMLDirectoryElementImpl::endTagRequirement):
11687        (DOM::HTMLDirectoryElementImpl::tagPriority):
11688        (DOM::HTMLMenuElementImpl::HTMLMenuElementImpl):
11689        (DOM::HTMLMenuElementImpl::endTagRequirement):
11690        (DOM::HTMLMenuElementImpl::tagPriority):
11691        (DOM::HTMLOListElementImpl::HTMLOListElementImpl):
11692        (DOM::HTMLOListElementImpl::endTagRequirement):
11693        (DOM::HTMLOListElementImpl::tagPriority):
11694        (DOM::HTMLLIElementImpl::HTMLLIElementImpl):
11695        (DOM::HTMLLIElementImpl::endTagRequirement):
11696        (DOM::HTMLLIElementImpl::tagPriority):
11697        (DOM::HTMLDListElementImpl::HTMLDListElementImpl):
11698        (DOM::HTMLDListElementImpl::endTagRequirement):
11699        (DOM::HTMLDListElementImpl::tagPriority):
11700        * khtml/html/html_miscimpl.cpp:
11701        (DOM::HTMLBaseFontElementImpl::HTMLBaseFontElementImpl):
11702        (DOM::HTMLCollectionImpl::traverseNextItem):
11703        (DOM::HTMLCollectionImpl::checkForNameMatch):
11704        (DOM::HTMLCollectionImpl::updateNameCache):
11705        (DOM::HTMLFormCollectionImpl::getNamedFormItem):
11706        (DOM::HTMLFormCollectionImpl::updateNameCache):
11707        * khtml/html/html_miscimpl.h:
11708        (DOM::HTMLBaseFontElementImpl::endTagRequirement):
11709        (DOM::HTMLBaseFontElementImpl::tagPriority):
11710        * khtml/html/html_objectimpl.cpp:
11711        (DOM::HTMLAppletElementImpl::HTMLAppletElementImpl):
11712        (DOM::HTMLAppletElementImpl::checkDTD):
11713        (DOM::HTMLEmbedElementImpl::HTMLEmbedElementImpl):
11714        (DOM::HTMLEmbedElementImpl::checkDTD):
11715        (DOM::HTMLEmbedElementImpl::rendererIsNeeded):
11716        (DOM::HTMLObjectElementImpl::HTMLObjectElementImpl):
11717        (DOM::HTMLObjectElementImpl::checkDTD):
11718        (DOM::HTMLObjectElementImpl::form):
11719        (DOM::HTMLParamElementImpl::HTMLParamElementImpl):
11720        * khtml/html/html_objectimpl.h:
11721        (DOM::HTMLAppletElementImpl::endTagRequirement):
11722        (DOM::HTMLAppletElementImpl::tagPriority):
11723        (DOM::HTMLEmbedElementImpl::endTagRequirement):
11724        (DOM::HTMLEmbedElementImpl::tagPriority):
11725        (DOM::HTMLObjectElementImpl::endTagRequirement):
11726        (DOM::HTMLObjectElementImpl::tagPriority):
11727        (DOM::HTMLParamElementImpl::endTagRequirement):
11728        (DOM::HTMLParamElementImpl::tagPriority):
11729        * khtml/html/html_tableimpl.cpp:
11730        (DOM::HTMLTableElementImpl::HTMLTableElementImpl):
11731        (DOM::HTMLTableElementImpl::checkDTD):
11732        (DOM::HTMLTableElementImpl::createTHead):
11733        (DOM::HTMLTableElementImpl::createTFoot):
11734        (DOM::HTMLTableElementImpl::insertRow):
11735        (DOM::HTMLTableElementImpl::deleteRow):
11736        (DOM::HTMLTableElementImpl::addChild):
11737        (DOM::HTMLTableSectionElementImpl::HTMLTableSectionElementImpl):
11738        (DOM::HTMLTableSectionElementImpl::checkDTD):
11739        (DOM::HTMLTableSectionElementImpl::addChild):
11740        (DOM::HTMLTableSectionElementImpl::numRows):
11741        (DOM::HTMLTableRowElementImpl::checkDTD):
11742        (DOM::HTMLTableRowElementImpl::addChild):
11743        (DOM::HTMLTableRowElementImpl::rowIndex):
11744        (DOM::HTMLTableRowElementImpl::sectionRowIndex):
11745        (DOM::HTMLTableRowElementImpl::insertCell):
11746        (DOM::HTMLTableCellElementImpl::HTMLTableCellElementImpl):
11747        (DOM::HTMLTableCellElementImpl::cellIndex):
11748        (DOM::HTMLTableCellElementImpl::additionalAttributeStyleDecl):
11749        (DOM::HTMLTableColElementImpl::HTMLTableColElementImpl):
11750        * khtml/html/html_tableimpl.h:
11751        (DOM::HTMLTableElementImpl::endTagRequirement):
11752        (DOM::HTMLTableElementImpl::tagPriority):
11753        (DOM::HTMLTablePartElementImpl::HTMLTablePartElementImpl):
11754        (DOM::HTMLTableSectionElementImpl::endTagRequirement):
11755        (DOM::HTMLTableSectionElementImpl::tagPriority):
11756        (DOM::HTMLTableRowElementImpl::HTMLTableRowElementImpl):
11757        (DOM::HTMLTableRowElementImpl::endTagRequirement):
11758        (DOM::HTMLTableRowElementImpl::tagPriority):
11759        (DOM::HTMLTableCellElementImpl::endTagRequirement):
11760        (DOM::HTMLTableCellElementImpl::tagPriority):
11761        (DOM::HTMLTableColElementImpl::endTagRequirement):
11762        (DOM::HTMLTableColElementImpl::tagPriority):
11763        (DOM::HTMLTableColElementImpl::checkDTD):
11764        (DOM::HTMLTableCaptionElementImpl::HTMLTableCaptionElementImpl):
11765        (DOM::HTMLTableCaptionElementImpl::endTagRequirement):
11766        (DOM::HTMLTableCaptionElementImpl::tagPriority):
11767        * khtml/html/htmlfactory.cpp: Added.
11768        (DOM::htmlConstructor):
11769        (DOM::headConstructor):
11770        (DOM::bodyConstructor):
11771        (DOM::baseConstructor):
11772        (DOM::linkConstructor):
11773        (DOM::metaConstructor):
11774        (DOM::styleConstructor):
11775        (DOM::titleConstructor):
11776        (DOM::frameConstructor):
11777        (DOM::framesetConstructor):
11778        (DOM::iframeConstructor):
11779        (DOM::formConstructor):
11780        (DOM::buttonConstructor):
11781        (DOM::inputConstructor):
11782        (DOM::isindexConstructor):
11783        (DOM::fieldsetConstructor):
11784        (DOM::labelConstructor):
11785        (DOM::legendConstructor):
11786        (DOM::optgroupConstructor):
11787        (DOM::optionConstructor):
11788        (DOM::selectConstructor):
11789        (DOM::textareaConstructor):
11790        (DOM::dlConstructor):
11791        (DOM::ulConstructor):
11792        (DOM::olConstructor):
11793        (DOM::dirConstructor):
11794        (DOM::menuConstructor):
11795        (DOM::liConstructor):
11796        (DOM::blockquoteConstructor):
11797        (DOM::divConstructor):
11798        (DOM::headingConstructor):
11799        (DOM::hrConstructor):
11800        (DOM::paragraphConstructor):
11801        (DOM::preConstructor):
11802        (DOM::basefontConstructor):
11803        (DOM::fontConstructor):
11804        (DOM::modConstructor):
11805        (DOM::anchorConstructor):
11806        (DOM::imageConstructor):
11807        (DOM::mapConstructor):
11808        (DOM::areaConstructor):
11809        (DOM::canvasConstructor):
11810        (DOM::appletConstructor):
11811        (DOM::embedConstructor):
11812        (DOM::objectConstructor):
11813        (DOM::paramConstructor):
11814        (DOM::scriptConstructor):
11815        (DOM::tableConstructor):
11816        (DOM::tableCaptionConstructor):
11817        (DOM::tableColConstructor):
11818        (DOM::tableRowConstructor):
11819        (DOM::tableCellConstructor):
11820        (DOM::tableSectionConstructor):
11821        (DOM::brConstructor):
11822        (DOM::quoteConstructor):
11823        (DOM::marqueeConstructor):
11824        (DOM::HTMLElementFactory::createHTMLElement):
11825        * khtml/html/htmlfactory.h: Added.
11826        * khtml/html/htmlnames.cpp:
11827        (DOM::HTMLNames::init):
11828        * khtml/html/htmlnames.h:
11829        (DOM::HTMLNames::xhtmlNamespaceURI):
11830        * khtml/html/htmlparser.cpp:
11831        (HTMLStackElem::HTMLStackElem):
11832        (HTMLParser::HTMLParser):
11833        (HTMLParser::~HTMLParser):
11834        (HTMLParser::reset):
11835        (HTMLParser::setCurrent):
11836        (HTMLParser::parseToken):
11837        (isTableSection):
11838        (isTablePart):
11839        (isTableRelated):
11840        (HTMLParser::insertNode):
11841        (HTMLParser::handleError):
11842        (HTMLParser::textCreateErrorCheck):
11843        (HTMLParser::commentCreateErrorCheck):
11844        (HTMLParser::headCreateErrorCheck):
11845        (HTMLParser::bodyCreateErrorCheck):
11846        (HTMLParser::framesetCreateErrorCheck):
11847        (HTMLParser::iframeCreateErrorCheck):
11848        (HTMLParser::formCreateErrorCheck):
11849        (HTMLParser::isindexCreateErrorCheck):
11850        (HTMLParser::selectCreateErrorCheck):
11851        (HTMLParser::ddCreateErrorCheck):
11852        (HTMLParser::dtCreateErrorCheck):
11853        (HTMLParser::nestedCreateErrorCheck):
11854        (HTMLParser::nestedStyleCreateErrorCheck):
11855        (HTMLParser::tableCellCreateErrorCheck):
11856        (HTMLParser::tableSectionCreateErrorCheck):
11857        (HTMLParser::noembedCreateErrorCheck):
11858        (HTMLParser::noframesCreateErrorCheck):
11859        (HTMLParser::noscriptCreateErrorCheck):
11860        (HTMLParser::nolayerCreateErrorCheck):
11861        (HTMLParser::getNode):
11862        (HTMLParser::allowNestedRedundantTag):
11863        (HTMLParser::processCloseTag):
11864        (HTMLParser::isHeaderTag):
11865        (HTMLParser::popNestedHeaderTag):
11866        (HTMLParser::isInline):
11867        (HTMLParser::isResidualStyleTag):
11868        (HTMLParser::isAffectedByResidualStyle):
11869        (HTMLParser::handleResidualStyleCloseTagAcrossBlocks):
11870        (HTMLParser::reopenResidualStyleTags):
11871        (HTMLParser::pushBlock):
11872        (HTMLParser::popBlock):
11873        (HTMLParser::popOneBlock):
11874        (HTMLParser::popInlineBlocks):
11875        (HTMLParser::freeBlock):
11876        (HTMLParser::createHead):
11877        (HTMLParser::handleIsindex):
11878        (HTMLParser::startBody):
11879        (HTMLParser::finished):
11880        * khtml/html/htmlparser.h:
11881        (HTMLParser::skipMode):
11882        (HTMLParser::setSkipMode):
11883        (HTMLParser::popBlock):
11884        * khtml/html/htmltokenizer.cpp:
11885        (khtml::HTMLTokenizer::HTMLTokenizer):
11886        (khtml::HTMLTokenizer::parseSpecial):
11887        (khtml::HTMLTokenizer::scriptHandler):
11888        (khtml::HTMLTokenizer::parseComment):
11889        (khtml::HTMLTokenizer::parseTag):
11890        (khtml::HTMLTokenizer::processToken):
11891        * khtml/html/htmltokenizer.h:
11892        (khtml::Token::Token):
11893        (khtml::Token::~Token):
11894        (khtml::Token::addAttribute):
11895        (khtml::Token::isOpenTag):
11896        (khtml::Token::isCloseTag):
11897        (khtml::Token::reset):
11898        * khtml/khtml_part.cpp:
11899        (KHTMLPart::init):
11900        (KHTMLPart::selectionComputedStyle):
11901        * khtml/khtmlview.cpp:
11902        (KHTMLView::layout):
11903        (isSubmitImage):
11904        * khtml/misc/decoder.cpp:
11905        (Decoder::decode):
11906        * khtml/misc/hashmap.h:
11907        (khtml::::size):
11908        (khtml::::isEmpty):
11909        (khtml::::begin):
11910        (khtml::::end):
11911        (khtml::::get):
11912        * khtml/misc/hashset.h:
11913        (khtml::::size):
11914        (khtml::::isEmpty):
11915        (khtml::::begin):
11916        (khtml::::end):
11917        (khtml::::contains):
11918        * khtml/misc/hashtable.h:
11919        (khtml::HashTableIterator::skipEmptyBuckets):
11920        (khtml::::lookup):
11921        (khtml::::find):
11922        (khtml::::contains):
11923        (khtml::::remove):
11924        * khtml/misc/htmlhashes.cpp:
11925        (khtml::getAttrID):
11926        * khtml/misc/htmlhashes.h:
11927        * khtml/rendering/bidi.cpp:
11928        (khtml::BidiIterator::direction):
11929        * khtml/rendering/break_lines.cpp:
11930        (khtml::isBreakable):
11931        * khtml/rendering/render_applet.cpp:
11932        (RenderApplet::createWidgetIfNecessary):
11933        * khtml/rendering/render_block.cpp:
11934        (khtml::RenderBlock::layoutBlock):
11935        * khtml/rendering/render_box.cpp:
11936        (RenderBox::paintRootBoxDecorations):
11937        (RenderBox::paintBackgroundExtended):
11938        * khtml/rendering/render_canvasimage.cpp:
11939        (RenderCanvasImage::paint):
11940        * khtml/rendering/render_canvasimage.h:
11941        * khtml/rendering/render_container.cpp:
11942        (RenderContainer::updatePseudoChild):
11943        * khtml/rendering/render_flow.cpp:
11944        (RenderFlow::addFocusRingRects):
11945        * khtml/rendering/render_form.cpp:
11946        (RenderFieldset::findLegend):
11947        (RenderSelect::updateFromElement):
11948        (RenderSelect::layout):
11949        (RenderSelect::slotSelected):
11950        (RenderSelect::slotSelectionChanged):
11951        (RenderSelect::updateSelection):
11952        * khtml/rendering/render_frames.cpp:
11953        (RenderPartObject::updateWidget):
11954        (RenderPartObject::slotViewCleared):
11955        * khtml/rendering/render_image.cpp:
11956        (RenderImage::paint):
11957        (RenderImage::imageMap):
11958        (RenderImage::updateAltText):
11959        * khtml/rendering/render_image.h:
11960        * khtml/rendering/render_layer.cpp:
11961        (Marquee::marqueeSpeed):
11962        * khtml/rendering/render_line.cpp:
11963        * khtml/rendering/render_list.cpp:
11964        (getParentOfFirstLineBox):
11965        * khtml/rendering/render_object.cpp:
11966        (RenderObject::isBody):
11967        (RenderObject::isHR):
11968        (RenderObject::isHTMLMarquee):
11969        (RenderObject::sizesToMaxWidth):
11970        (RenderObject::information):
11971        (RenderObject::setStyle):
11972        (RenderObject::getTextDecorationColors):
11973        (RenderObject::setPixmap):
11974        * khtml/rendering/render_style.cpp:
11975        (RenderStyle::getPseudoStyle):
11976        * khtml/rendering/render_style.h:
11977        * khtml/rendering/render_table.cpp:
11978        (RenderTable::addChild):
11979        (RenderTable::layout):
11980        (RenderTableSection::addChild):
11981        (RenderTableRow::addChild):
11982        (RenderTableCell::updateFromElement):
11983        (RenderTableCol::updateFromElement):
11984        * khtml/xml/dom2_rangeimpl.cpp:
11985        * khtml/xml/dom2_traversalimpl.cpp:
11986        * khtml/xml/dom_atomicstring.cpp:
11987        (DOM::equal):
11988        (DOM::AtomicString::init):
11989        * khtml/xml/dom_atomicstring.h:
11990        * khtml/xml/dom_docimpl.cpp:
11991        (DocumentImpl::createElement):
11992        (DocumentImpl::importNode):
11993        (DocumentImpl::createElementNS):
11994        (DocumentImpl::body):
11995        (DocumentImpl::shouldScheduleLayout):
11996        (DocumentImpl::attrId):
11997        (DocumentImpl::recalcStyleSelector):
11998        * khtml/xml/dom_docimpl.h:
11999        * khtml/xml/dom_elementimpl.cpp:
12000        (AttrImpl::prefix):
12001        (AttrImpl::setPrefix):
12002        (ElementImpl::ElementImpl):
12003        (ElementImpl::~ElementImpl):
12004        (ElementImpl::cloneNode):
12005        (ElementImpl::hasAttributes):
12006        (ElementImpl::nodeName):
12007        (ElementImpl::setPrefix):
12008        (ElementImpl::openTagStartToString):
12009        (ElementImpl::toString):
12010        (StyledElementImpl::StyledElementImpl):
12011        * khtml/xml/dom_elementimpl.h:
12012        (DOM::ElementImpl::tagName):
12013        (DOM::ElementImpl::hasTagName):
12014        (DOM::ElementImpl::hasLocalName):
12015        (DOM::ElementImpl::localName):
12016        (DOM::ElementImpl::prefix):
12017        (DOM::ElementImpl::namespaceURI):
12018        (DOM::ElementImpl::mouseEventHandler):
12019        * khtml/xml/dom_nodeimpl.cpp:
12020        (DOM::NodeImpl::lastDescendant):
12021        (DOM::NodeImpl::prefix):
12022        (DOM::NodeImpl::setPrefix):
12023        (DOM::NodeImpl::localName):
12024        (DOM::NodeImpl::namespaceURI):
12025        (DOM::NodeImpl::checkSetPrefix):
12026        (DOM::NodeImpl::isAtomicNode):
12027        (DOM::NodeImpl::maxDeepOffset):
12028        (DOM::NodeImpl::enclosingBlockFlowOrTableElement):
12029        (DOM::NodeImpl::enclosingBlockFlowElement):
12030        (DOM::NodeImpl::enclosingInlineElement):
12031        (DOM::NodeImpl::rootEditableElement):
12032        (DOM::NodeImpl::getElementsByTagNameNS):
12033        (DOM::NodeImpl::showTreeAndMark):
12034        (DOM::ContainerNodeImpl::addChild):
12035        (DOM::TagNodeListImpl::TagNodeListImpl):
12036        (DOM::TagNodeListImpl::item):
12037        (DOM::TagNodeListImpl::nodeMatches):
12038        * khtml/xml/dom_nodeimpl.h:
12039        (DOM::NodeImpl::hasTagName):
12040        (DOM::NodeImpl::isCommentNode):
12041        (DOM::NodeImpl::isDocumentNode):
12042        (DOM::NodeImpl::closeRenderer):
12043        (DOM::NodeImpl::getElementsByTagName):
12044        * khtml/xml/dom_position.cpp:
12045        (DOM::Position::downstream):
12046        (DOM::Position::rendersInDifferentPosition):
12047        (DOM::Position::leadingWhitespacePosition):
12048        (DOM::Position::trailingWhitespacePosition):
12049        * khtml/xml/dom_qname.cpp:
12050        (DOM::hashComponents):
12051        (DOM::QNameHash::hash):
12052        (DOM::QNameHash::equal):
12053        (DOM::equalComponents):
12054        (DOM::convertComponents):
12055        (DOM::QualifiedName::QualifiedName):
12056        (DOM::QualifiedName::deref):
12057        (DOM::QualifiedName::setPrefix):
12058        * khtml/xml/dom_qname.h:
12059        (DOM::QualifiedName::hasPrefix):
12060        (DOM::operator==):
12061        * khtml/xml/dom_textimpl.cpp:
12062        (CommentImpl::localName):
12063        (CommentImpl::nodeName):
12064        (TextImpl::localName):
12065        (TextImpl::nodeName):
12066        * khtml/xml/dom_textimpl.h:
12067        (DOM::CommentImpl::isCommentNode):
12068        (DOM::TextImpl::isTextNode):
12069        * khtml/xml/xml_tokenizer.cpp:
12070        (khtml::XMLTokenizer::startElement):
12071        (khtml::XMLTokenizer::insertErrorMessageBlock):
12072        (khtml::XMLTokenizer::addScripts):
12073        * kwq/DOM.mm:
12074        (-[DOMNode setPrefix:]):
12075        (+[DOMNode _nodeWithImpl:]):
12076        (-[DOMElement tagName]):
12077        * kwq/DOMHTML.mm:
12078        (-[DOMHTMLQuoteElement _quoteElementImpl]):
12079        * kwq/KWQAccObject.mm:
12080        (-[KWQAccObject role]):
12081        (-[KWQAccObject title]):
12082        (-[KWQAccObject accessibilityIsIgnored]):
12083        * kwq/KWQDOMNode.cpp: Removed.
12084        * kwq/KWQDOMNode.h: Removed.
12085        * kwq/KWQFont.h:
12086        (QFont::):
12087        (QFont::isFixedPitch):
12088        * kwq/KWQFont.mm:
12089        (QFont::QFont):
12090        (QFont::operator=):
12091        (QFont::determinePitch):
12092        (QFont::operator==):
12093        * kwq/KWQKHTMLPart.cpp:
12094        (KWQKHTMLPart::isFrameSet):
12095        * kwq/KWQKHTMLPart.mm:
12096        (scanForForm):
12097        (KWQKHTMLPart::currentForm):
12098        (KWQKHTMLPart::searchForLabelsAboveCell):
12099        (KWQKHTMLPart::searchForLabelsBeforeElement):
12100        (listParent):
12101        (isTextFirstInListItem):
12102        (KWQKHTMLPart::attributedString):
12103        (KWQKHTMLPart::styleForSelectionStart):
12104        (KWQKHTMLPart::setSelectionFromNone):
12105        * kwq/KWQRenderTreeDebug.cpp:
12106        (getTagName):
12107        * kwq/WebCoreBridge.mm:
12108        (inputElementFromDOMElement):
12109        (formElementFromDOMElement):
12110        (-[WebCoreBridge elementAtPoint:]):
12111        * layout-tests/fast/dom/css-dom-read-expected.txt:
12112        * layout-tests/fast/overflow/003-expected.txt:
12113        * layout-tests/fast/tokenizer/002-expected.txt:
12114        * layout-tests/fast/tokenizer/external-script-document-write-expected.txt:
12115        * layout-tests/fast/tokenizer/script_extra_close-expected.txt:
12116        * layout-tests/fast/tokenizer/script_quirk-expected.txt: Removed.
12117        * layout-tests/fast/tokenizer/script_quirk.html: Removed.
12118
121192005-07-08  Eric Seidel  <eseidel@apple.com>
12120
12121        Reviewed by mjs/hyatt (just approved the changelog).
12122
12123        * ForwardingHeaders/kdom/css/impl/cssproperties.h: Added.
12124        * ForwardingHeaders/kdom/css/impl/cssvalues.h: Added.
12125        * ForwardingHeaders/ksvg2/KSVGPart.h: Added.
12126        * ForwardingHeaders/ksvg2/KSVGView.h: Added.
12127        * ForwardingHeaders/ksvg2/css/impl/cssproperties.h: Added.
12128        * ForwardingHeaders/ksvg2/css/impl/cssvalues.h: Added.
12129        * ForwardingHeaders/ksvg2/data/Constructors.lut.h: Added.
12130        * ForwardingHeaders/ksvg2/data/GlobalObject.lut.h: Added.
12131        * WebCore.pbproj/project.pbxproj:  Added WebCore+SVG Target.
12132        * kcanvas/DESIGN: Added.
12133        * kcanvas/KCanvas.cc: Added.
12134        * kcanvas/KCanvas.h: Added.
12135        * kcanvas/KCanvasContainer.cc: Added.
12136        * kcanvas/KCanvasContainer.h: Added.
12137        * kcanvas/KCanvasCreator.cc: Added.
12138        * kcanvas/KCanvasCreator.h: Added.
12139        * kcanvas/KCanvasFilters.cc: Added.
12140        * kcanvas/KCanvasFilters.h: Added.
12141        * kcanvas/KCanvasImage.cc: Added.
12142        * kcanvas/KCanvasImage.h: Added.
12143        * kcanvas/KCanvasItem.cc: Added.
12144        * kcanvas/KCanvasItem.h: Added.
12145        * kcanvas/KCanvasMatrix.cc: Added.
12146        * kcanvas/KCanvasMatrix.h: Added.
12147        * kcanvas/KCanvasPath.h: Added.
12148        * kcanvas/KCanvasRegistry.cc: Added.
12149        * kcanvas/KCanvasRegistry.h: Added.
12150        * kcanvas/KCanvasResourceListener.h: Added.
12151        * kcanvas/KCanvasResources.cc: Added.
12152        * kcanvas/KCanvasResources.h: Added.
12153        * kcanvas/KCanvasTypes.h: Added.
12154        * kcanvas/KCanvasView.cc: Added.
12155        * kcanvas/KCanvasView.h: Added.
12156        * kcanvas/KCanvasView.moc: Added.
12157        * kcanvas/device/KRenderingDevice.cc: Added.
12158        * kcanvas/device/KRenderingDevice.h: Added.
12159        * kcanvas/device/KRenderingDevice.moc: Added.
12160        * kcanvas/device/KRenderingDeviceFactory.cc: Added.
12161        * kcanvas/device/KRenderingDeviceFactory.h: Added.
12162        * kcanvas/device/KRenderingFillPainter.cc: Added.
12163        * kcanvas/device/KRenderingFillPainter.h: Added.
12164        * kcanvas/device/KRenderingPaintServer.h: Added.
12165        * kcanvas/device/KRenderingPaintServerGradient.cc: Added.
12166        * kcanvas/device/KRenderingPaintServerGradient.h: Added.
12167        * kcanvas/device/KRenderingPaintServerImage.cc: Added.
12168        * kcanvas/device/KRenderingPaintServerImage.h: Added.
12169        * kcanvas/device/KRenderingPaintServerPattern.cc: Added.
12170        * kcanvas/device/KRenderingPaintServerPattern.h: Added.
12171        * kcanvas/device/KRenderingPaintServerSolid.cc: Added.
12172        * kcanvas/device/KRenderingPaintServerSolid.h: Added.
12173        * kcanvas/device/KRenderingStrokePainter.cc: Added.
12174        * kcanvas/device/KRenderingStrokePainter.h: Added.
12175        * kcanvas/device/KRenderingStyle.cc: Added.
12176        * kcanvas/device/KRenderingStyle.h: Added.
12177        * kcanvas/device/quartz/KCanvasFilterQuartz.h: Added.
12178        * kcanvas/device/quartz/KCanvasFilterQuartz.mm: Added.
12179        * kcanvas/device/quartz/KCanvasItemQuartz.h: Added.
12180        * kcanvas/device/quartz/KCanvasItemQuartz.mm: Added.
12181        * kcanvas/device/quartz/KCanvasResourcesQuartz.h: Added.
12182        * kcanvas/device/quartz/KCanvasResourcesQuartz.mm: Added.
12183        * kcanvas/device/quartz/KCanvasViewQuartz.h: Added.
12184        * kcanvas/device/quartz/KCanvasViewQuartz.mm: Added.
12185        * kcanvas/device/quartz/KRenderingDeviceQuartz.h: Added.
12186        * kcanvas/device/quartz/KRenderingDeviceQuartz.mm: Added.
12187        * kcanvas/device/quartz/KRenderingPaintServerGradientQuartz.mm: Added.
12188        * kcanvas/device/quartz/KRenderingPaintServerQuartz.h: Added.
12189        * kcanvas/device/quartz/KRenderingPaintServerQuartz.mm: Added.
12190        * kcanvas/device/quartz/QuartzSupport.h: Added.
12191        * kcanvas/device/quartz/QuartzSupport.mm: Added.
12192        * kdom/AUTHORS: Added.
12193        * kdom/Attr.cc: Added.
12194        * kdom/Attr.h: Added.
12195        * kdom/CDATASection.cc: Added.
12196        * kdom/CDATASection.h: Added.
12197        * kdom/CharacterData.cc: Added.
12198        * kdom/CharacterData.h: Added.
12199        * kdom/Comment.cc: Added.
12200        * kdom/Comment.h: Added.
12201        * kdom/DOMConfiguration.cc: Added.
12202        * kdom/DOMConfiguration.h: Added.
12203        * kdom/DOMError.cc: Added.
12204        * kdom/DOMError.h: Added.
12205        * kdom/DOMErrorHandler.cc: Added.
12206        * kdom/DOMErrorHandler.h: Added.
12207        * kdom/DOMException.cc: Added.
12208        * kdom/DOMException.h: Added.
12209        * kdom/DOMImplementation.cc: Added.
12210        * kdom/DOMImplementation.h: Added.
12211        * kdom/DOMLocator.cc: Added.
12212        * kdom/DOMLocator.h: Added.
12213        * kdom/DOMObject.cc: Added.
12214        * kdom/DOMObject.h: Added.
12215        * kdom/DOMString.cc: Added.
12216        * kdom/DOMString.h: Added.
12217        * kdom/DOMStringList.cc: Added.
12218        * kdom/DOMStringList.h: Added.
12219        * kdom/DOMUserData.cc: Added.
12220        * kdom/DOMUserData.h: Added.
12221        * kdom/Document.cc: Added.
12222        * kdom/Document.h: Added.
12223        * kdom/DocumentFragment.cc: Added.
12224        * kdom/DocumentFragment.h: Added.
12225        * kdom/DocumentType.cc: Added.
12226        * kdom/DocumentType.h: Added.
12227        * kdom/Element.cc: Added.
12228        * kdom/Element.h: Added.
12229        * kdom/Entity.cc: Added.
12230        * kdom/Entity.h: Added.
12231        * kdom/EntityReference.cc: Added.
12232        * kdom/EntityReference.h: Added.
12233        * kdom/Helper.cc: Added.
12234        * kdom/Helper.h: Added.
12235        * kdom/KDOMPart.cc: Added.
12236        * kdom/KDOMPart.h: Added.
12237        * kdom/KDOMSettings.cc: Added.
12238        * kdom/KDOMSettings.h: Added.
12239        * kdom/KDOMView.cc: Added.
12240        * kdom/KDOMView.h: Added.
12241        * kdom/NOTES: Added.
12242        * kdom/NamedNodeMap.cc: Added.
12243        * kdom/NamedNodeMap.h: Added.
12244        * kdom/Namespace.h: Added.
12245        * kdom/Node.cc: Added.
12246        * kdom/Node.h: Added.
12247        * kdom/NodeList.cc: Added.
12248        * kdom/NodeList.h: Added.
12249        * kdom/Notation.cc: Added.
12250        * kdom/Notation.h: Added.
12251        * kdom/ProcessingInstruction.cc: Added.
12252        * kdom/ProcessingInstruction.h: Added.
12253        * kdom/Shared.cc: Added.
12254        * kdom/Shared.h: Added.
12255        * kdom/Text.cc: Added.
12256        * kdom/Text.h: Added.
12257        * kdom/TreeShared.h: Added.
12258        * kdom/TypeInfo.cc: Added.
12259        * kdom/TypeInfo.h: Added.
12260        * kdom/backends/libxml/LibXMLParser.cc: Added.
12261        * kdom/backends/libxml/LibXMLParser.h: Added.
12262        * kdom/backends/libxml/LibXMLParser.moc: Added.
12263        * kdom/cache/IconData.h: Added.
12264        * kdom/cache/ImageSource.cc: Added.
12265        * kdom/cache/ImageSource.h: Added.
12266        * kdom/cache/KDOMCache.cc: Added.
12267        * kdom/cache/KDOMCache.h: Added.
12268        * kdom/cache/KDOMCacheHelper.h: Added.
12269        * kdom/cache/KDOMCachedDocument.cc: Added.
12270        * kdom/cache/KDOMCachedDocument.h: Added.
12271        * kdom/cache/KDOMCachedImage.cc: Added.
12272        * kdom/cache/KDOMCachedImage.h: Added.
12273        * kdom/cache/KDOMCachedImage.moc: Added.
12274        * kdom/cache/KDOMCachedObject.cc: Added.
12275        * kdom/cache/KDOMCachedObject.h: Added.
12276        * kdom/cache/KDOMCachedObjectClient.h: Added.
12277        * kdom/cache/KDOMCachedScript.cc: Added.
12278        * kdom/cache/KDOMCachedScript.h: Added.
12279        * kdom/cache/KDOMCachedStyleSheet.cc: Added.
12280        * kdom/cache/KDOMCachedStyleSheet.h: Added.
12281        * kdom/cache/KDOMLoader.cc: Added.
12282        * kdom/cache/KDOMLoader.h: Added.
12283        * kdom/cache/KDOMLoader.moc: Added.
12284        * kdom/css/CSSCharsetRule.cc: Added.
12285        * kdom/css/CSSCharsetRule.h: Added.
12286        * kdom/css/CSSFontFaceRule.cc: Added.
12287        * kdom/css/CSSFontFaceRule.h: Added.
12288        * kdom/css/CSSHelper.h: Added.
12289        * kdom/css/CSSImportRule.cc: Added.
12290        * kdom/css/CSSImportRule.h: Added.
12291        * kdom/css/CSSMediaRule.cc: Added.
12292        * kdom/css/CSSMediaRule.h: Added.
12293        * kdom/css/CSSPageRule.cc: Added.
12294        * kdom/css/CSSPageRule.h: Added.
12295        * kdom/css/CSSPrimitiveValue.cc: Added.
12296        * kdom/css/CSSPrimitiveValue.h: Added.
12297        * kdom/css/CSSRule.cc: Added.
12298        * kdom/css/CSSRule.h: Added.
12299        * kdom/css/CSSRuleList.cc: Added.
12300        * kdom/css/CSSRuleList.h: Added.
12301        * kdom/css/CSSStyleDeclaration.cc: Added.
12302        * kdom/css/CSSStyleDeclaration.h: Added.
12303        * kdom/css/CSSStyleRule.cc: Added.
12304        * kdom/css/CSSStyleRule.h: Added.
12305        * kdom/css/CSSStyleSheet.cc: Added.
12306        * kdom/css/CSSStyleSheet.h: Added.
12307        * kdom/css/CSSUnknownRule.cc: Added.
12308        * kdom/css/CSSUnknownRule.h: Added.
12309        * kdom/css/CSSValue.cc: Added.
12310        * kdom/css/CSSValue.h: Added.
12311        * kdom/css/CSSValueList.cc: Added.
12312        * kdom/css/CSSValueList.h: Added.
12313        * kdom/css/Counter.cc: Added.
12314        * kdom/css/Counter.h: Added.
12315        * kdom/css/DOMImplementationCSS.cc: Added.
12316        * kdom/css/DOMImplementationCSS.h: Added.
12317        * kdom/css/DocumentCSS.cc: Added.
12318        * kdom/css/DocumentCSS.h: Added.
12319        * kdom/css/DocumentStyle.cc: Added.
12320        * kdom/css/DocumentStyle.h: Added.
12321        * kdom/css/LinkStyle.cc: Added.
12322        * kdom/css/LinkStyle.h: Added.
12323        * kdom/css/MediaList.cc: Added.
12324        * kdom/css/MediaList.h: Added.
12325        * kdom/css/RGBColor.cc: Added.
12326        * kdom/css/RGBColor.h: Added.
12327        * kdom/css/Rect.cc: Added.
12328        * kdom/css/Rect.h: Added.
12329        * kdom/css/StyleSheet.cc: Added.
12330        * kdom/css/StyleSheet.h: Added.
12331        * kdom/css/StyleSheetList.cc: Added.
12332        * kdom/css/StyleSheetList.h: Added.
12333        * kdom/css/ViewCSS.cc: Added.
12334        * kdom/css/ViewCSS.h: Added.
12335        * kdom/css/impl/CSSCharsetRuleImpl.cc: Added.
12336        * kdom/css/impl/CSSCharsetRuleImpl.h: Added.
12337        * kdom/css/impl/CSSFontFaceRuleImpl.cc: Added.
12338        * kdom/css/impl/CSSFontFaceRuleImpl.h: Added.
12339        * kdom/css/impl/CSSImageValueImpl.cc: Added.
12340        * kdom/css/impl/CSSImageValueImpl.h: Added.
12341        * kdom/css/impl/CSSImportRuleImpl.cc: Added.
12342        * kdom/css/impl/CSSImportRuleImpl.h: Added.
12343        * kdom/css/impl/CSSMediaRuleImpl.cc: Added.
12344        * kdom/css/impl/CSSMediaRuleImpl.h: Added.
12345        * kdom/css/impl/CSSPageRuleImpl.cc: Added.
12346        * kdom/css/impl/CSSPageRuleImpl.h: Added.
12347        * kdom/css/impl/CSSPrimitiveValueImpl.cc: Added.
12348        * kdom/css/impl/CSSPrimitiveValueImpl.h: Added.
12349        * kdom/css/impl/CSSRuleImpl.cc: Added.
12350        * kdom/css/impl/CSSRuleImpl.h: Added.
12351        * kdom/css/impl/CSSRuleListImpl.cc: Added.
12352        * kdom/css/impl/CSSRuleListImpl.h: Added.
12353        * kdom/css/impl/CSSStyleDeclarationImpl.cc: Added.
12354        * kdom/css/impl/CSSStyleDeclarationImpl.h: Added.
12355        * kdom/css/impl/CSSStyleRuleImpl.cc: Added.
12356        * kdom/css/impl/CSSStyleRuleImpl.h: Added.
12357        * kdom/css/impl/CSSStyleSelector.cc: Added.
12358        * kdom/css/impl/CSSStyleSelector.h: Added.
12359        * kdom/css/impl/CSSStyleSheetImpl.cc: Added.
12360        * kdom/css/impl/CSSStyleSheetImpl.h: Added.
12361        * kdom/css/impl/CSSUnknownRuleImpl.cc: Added.
12362        * kdom/css/impl/CSSUnknownRuleImpl.h: Added.
12363        * kdom/css/impl/CSSValueImpl.cc: Added.
12364        * kdom/css/impl/CSSValueImpl.h: Added.
12365        * kdom/css/impl/CSSValueListImpl.cc: Added.
12366        * kdom/css/impl/CSSValueListImpl.h: Added.
12367        * kdom/css/impl/CounterImpl.cc: Added.
12368        * kdom/css/impl/CounterImpl.h: Added.
12369        * kdom/css/impl/DocumentStyleImpl.cc: Added.
12370        * kdom/css/impl/DocumentStyleImpl.h: Added.
12371        * kdom/css/impl/Font.cc: Added.
12372        * kdom/css/impl/Font.h: Added.
12373        * kdom/css/impl/KDOMCSSParser.cc: Added.
12374        * kdom/css/impl/KDOMCSSParser.h: Added.
12375        * kdom/css/impl/MediaListImpl.cc: Added.
12376        * kdom/css/impl/MediaListImpl.h: Added.
12377        * kdom/css/impl/RGBColorImpl.cc: Added.
12378        * kdom/css/impl/RGBColorImpl.h: Added.
12379        * kdom/css/impl/RectImpl.cc: Added.
12380        * kdom/css/impl/RectImpl.h: Added.
12381        * kdom/css/impl/RenderStyle.cc: Added.
12382        * kdom/css/impl/RenderStyle.h: Added.
12383        * kdom/css/impl/RenderStyleDefs.cc: Added.
12384        * kdom/css/impl/RenderStyleDefs.h: Added.
12385        * kdom/css/impl/StyleBaseImpl.cc: Added.
12386        * kdom/css/impl/StyleBaseImpl.h: Added.
12387        * kdom/css/impl/StyleSheetImpl.cc: Added.
12388        * kdom/css/impl/StyleSheetImpl.h: Added.
12389        * kdom/css/impl/StyleSheetListImpl.cc: Added.
12390        * kdom/css/impl/StyleSheetListImpl.h: Added.
12391        * kdom/css/impl/cssproperties.in: Added.
12392        * kdom/css/impl/cssvalues.in: Added.
12393        * kdom/css/impl/kdomparsercss.y: Added.
12394        * kdom/css/impl/tokenizer.cpp: Added.
12395        * kdom/css/kdomcss.h: Added.
12396        * kdom/data/CSSConstants.h: Added.
12397        * kdom/data/DOMConstants.h: Added.
12398        * kdom/data/EcmaConstants.h: Added.
12399        * kdom/data/EventsConstants.h: Added.
12400        * kdom/data/LSConstants.h: Added.
12401        * kdom/data/RangeConstants.h: Added.
12402        * kdom/data/TraversalConstants.h: Added.
12403        * kdom/data/ViewConstants.h: Added.
12404        * kdom/data/XPathConstants.h: Added.
12405        * kdom/data/generateddata.cc: Added.
12406        * kdom/ecma/Constructors.cc: Added.
12407        * kdom/ecma/Constructors.h: Added.
12408        * kdom/ecma/DOMBridge.h: Added.
12409        * kdom/ecma/DOMLookup.h: Added.
12410        * kdom/ecma/Ecma.cc: Added.
12411        * kdom/ecma/Ecma.h: Added.
12412        * kdom/ecma/EcmaInterface.h: Added.
12413        * kdom/ecma/GlobalObject.cc: Added.
12414        * kdom/ecma/GlobalObject.h: Added.
12415        * kdom/ecma/GlobalObject.moc: Added.
12416        * kdom/ecma/Helper.cc: Added.
12417        * kdom/ecma/ScriptInterpreter.cc: Added.
12418        * kdom/ecma/ScriptInterpreter.h: Added.
12419        * kdom/events/DocumentEvent.cc: Added.
12420        * kdom/events/DocumentEvent.h: Added.
12421        * kdom/events/Event.cc: Added.
12422        * kdom/events/Event.h: Added.
12423        * kdom/events/EventException.cc: Added.
12424        * kdom/events/EventException.h: Added.
12425        * kdom/events/EventListener.cc: Added.
12426        * kdom/events/EventListener.h: Added.
12427        * kdom/events/EventTarget.cc: Added.
12428        * kdom/events/EventTarget.h: Added.
12429        * kdom/events/KeyboardEvent.cc: Added.
12430        * kdom/events/KeyboardEvent.h: Added.
12431        * kdom/events/MouseEvent.cc: Added.
12432        * kdom/events/MouseEvent.h: Added.
12433        * kdom/events/MutationEvent.cc: Added.
12434        * kdom/events/MutationEvent.h: Added.
12435        * kdom/events/UIEvent.cc: Added.
12436        * kdom/events/UIEvent.h: Added.
12437        * kdom/events/impl/DocumentEventImpl.cc: Added.
12438        * kdom/events/impl/DocumentEventImpl.h: Added.
12439        * kdom/events/impl/EventExceptionImpl.cc: Added.
12440        * kdom/events/impl/EventExceptionImpl.h: Added.
12441        * kdom/events/impl/EventImpl.cc: Added.
12442        * kdom/events/impl/EventImpl.h: Added.
12443        * kdom/events/impl/EventListenerImpl.cc: Added.
12444        * kdom/events/impl/EventListenerImpl.h: Added.
12445        * kdom/events/impl/EventTargetImpl.cc: Added.
12446        * kdom/events/impl/EventTargetImpl.h: Added.
12447        * kdom/events/impl/KeyboardEventImpl.cc: Added.
12448        * kdom/events/impl/KeyboardEventImpl.h: Added.
12449        * kdom/events/impl/MouseEventImpl.cc: Added.
12450        * kdom/events/impl/MouseEventImpl.h: Added.
12451        * kdom/events/impl/MutationEventImpl.cc: Added.
12452        * kdom/events/impl/MutationEventImpl.h: Added.
12453        * kdom/events/impl/RegisteredEventListener.cc: Added.
12454        * kdom/events/impl/RegisteredEventListener.h: Added.
12455        * kdom/events/impl/UIEventImpl.cc: Added.
12456        * kdom/events/impl/UIEventImpl.h: Added.
12457        * kdom/events/kdomevents.h: Added.
12458        * kdom/impl/AttrImpl.cc: Added.
12459        * kdom/impl/AttrImpl.h: Added.
12460        * kdom/impl/CDATASectionImpl.cc: Added.
12461        * kdom/impl/CDATASectionImpl.h: Added.
12462        * kdom/impl/CDFInterface.cc: Added.
12463        * kdom/impl/CDFInterface.h: Added.
12464        * kdom/impl/CharacterDataImpl.cc: Added.
12465        * kdom/impl/CharacterDataImpl.h: Added.
12466        * kdom/impl/CommentImpl.cc: Added.
12467        * kdom/impl/CommentImpl.h: Added.
12468        * kdom/impl/DOMConfigurationImpl.cc: Added.
12469        * kdom/impl/DOMConfigurationImpl.h: Added.
12470        * kdom/impl/DOMErrorHandlerImpl.cc: Added.
12471        * kdom/impl/DOMErrorHandlerImpl.h: Added.
12472        * kdom/impl/DOMErrorImpl.cc: Added.
12473        * kdom/impl/DOMErrorImpl.h: Added.
12474        * kdom/impl/DOMExceptionImpl.cc: Added.
12475        * kdom/impl/DOMExceptionImpl.h: Added.
12476        * kdom/impl/DOMImplementationImpl.cc: Added.
12477        * kdom/impl/DOMImplementationImpl.h: Added.
12478        * kdom/impl/DOMList.h: Added.
12479        * kdom/impl/DOMLocatorImpl.cc: Added.
12480        * kdom/impl/DOMLocatorImpl.h: Added.
12481        * kdom/impl/DOMStringImpl.cc: Added.
12482        * kdom/impl/DOMStringImpl.h: Added.
12483        * kdom/impl/DOMStringListImpl.cc: Added.
12484        * kdom/impl/DOMStringListImpl.h: Added.
12485        * kdom/impl/DOMUserDataImpl.cc: Added.
12486        * kdom/impl/DOMUserDataImpl.h: Added.
12487        * kdom/impl/DocumentFragmentImpl.cc: Added.
12488        * kdom/impl/DocumentFragmentImpl.h: Added.
12489        * kdom/impl/DocumentImpl.cc: Added.
12490        * kdom/impl/DocumentImpl.h: Added.
12491        * kdom/impl/DocumentTypeImpl.cc: Added.
12492        * kdom/impl/DocumentTypeImpl.h: Added.
12493        * kdom/impl/ElementImpl.cc: Added.
12494        * kdom/impl/ElementImpl.h: Added.
12495        * kdom/impl/EntityImpl.cc: Added.
12496        * kdom/impl/EntityImpl.h: Added.
12497        * kdom/impl/EntityReferenceImpl.cc: Added.
12498        * kdom/impl/EntityReferenceImpl.h: Added.
12499        * kdom/impl/NamedAttrMapImpl.cc: Added.
12500        * kdom/impl/NamedAttrMapImpl.h: Added.
12501        * kdom/impl/NamedNodeMapImpl.cc: Added.
12502        * kdom/impl/NamedNodeMapImpl.h: Added.
12503        * kdom/impl/NodeImpl.cc: Added.
12504        * kdom/impl/NodeImpl.h: Added.
12505        * kdom/impl/NodeKeeper.cc: Added.
12506        * kdom/impl/NodeKeeper.h: Added.
12507        * kdom/impl/NodeListImpl.cc: Added.
12508        * kdom/impl/NodeListImpl.h: Added.
12509        * kdom/impl/NotationImpl.cc: Added.
12510        * kdom/impl/NotationImpl.h: Added.
12511        * kdom/impl/ProcessingInstructionImpl.cc: Added.
12512        * kdom/impl/ProcessingInstructionImpl.h: Added.
12513        * kdom/impl/TagNodeListImpl.cc: Added.
12514        * kdom/impl/TagNodeListImpl.h: Added.
12515        * kdom/impl/TextImpl.cc: Added.
12516        * kdom/impl/TextImpl.h: Added.
12517        * kdom/impl/TypeInfoImpl.cc: Added.
12518        * kdom/impl/TypeInfoImpl.h: Added.
12519        * kdom/impl/XMLElementImpl.cc: Added.
12520        * kdom/impl/XMLElementImpl.h: Added.
12521        * kdom/impl/domattrs.c: Added.
12522        * kdom/impl/domattrs.h: Added.
12523        * kdom/impl/domattrs.in: Added.
12524        * kdom/kdom.h: Added.
12525        * kdom/ls/DOMImplementationLS.cc: Added.
12526        * kdom/ls/DOMImplementationLS.h: Added.
12527        * kdom/ls/LSException.cc: Added.
12528        * kdom/ls/LSException.h: Added.
12529        * kdom/ls/LSInput.cc: Added.
12530        * kdom/ls/LSInput.h: Added.
12531        * kdom/ls/LSOutput.cc: Added.
12532        * kdom/ls/LSOutput.h: Added.
12533        * kdom/ls/LSParser.cc: Added.
12534        * kdom/ls/LSParser.h: Added.
12535        * kdom/ls/LSParserFilter.cc: Added.
12536        * kdom/ls/LSParserFilter.h: Added.
12537        * kdom/ls/LSResourceResolver.cc: Added.
12538        * kdom/ls/LSResourceResolver.h: Added.
12539        * kdom/ls/LSSerializer.cc: Added.
12540        * kdom/ls/LSSerializer.h: Added.
12541        * kdom/ls/LSSerializerFilter.cc: Added.
12542        * kdom/ls/LSSerializerFilter.h: Added.
12543        * kdom/ls/impl/LSExceptionImpl.cc: Added.
12544        * kdom/ls/impl/LSExceptionImpl.h: Added.
12545        * kdom/ls/impl/LSInputImpl.cc: Added.
12546        * kdom/ls/impl/LSInputImpl.h: Added.
12547        * kdom/ls/impl/LSOutputImpl.cc: Added.
12548        * kdom/ls/impl/LSOutputImpl.h: Added.
12549        * kdom/ls/impl/LSParserFilterImpl.cc: Added.
12550        * kdom/ls/impl/LSParserFilterImpl.h: Added.
12551        * kdom/ls/impl/LSParserImpl.cc: Added.
12552        * kdom/ls/impl/LSParserImpl.h: Added.
12553        * kdom/ls/impl/LSResourceResolverImpl.cc: Added.
12554        * kdom/ls/impl/LSResourceResolverImpl.h: Added.
12555        * kdom/ls/impl/LSSerializerFilterImpl.cc: Added.
12556        * kdom/ls/impl/LSSerializerFilterImpl.h: Added.
12557        * kdom/ls/impl/LSSerializerImpl.cc: Added.
12558        * kdom/ls/impl/LSSerializerImpl.h: Added.
12559        * kdom/ls/kdomls.h: Added.
12560        * kdom/parser/KDOMDataSlave.moc: Added.
12561        * kdom/parser/KDOMDocumentBuilder.cc: Added.
12562        * kdom/parser/KDOMDocumentBuilder.h: Added.
12563        * kdom/parser/KDOMParser.cc: Added.
12564        * kdom/parser/KDOMParser.h: Added.
12565        * kdom/parser/KDOMParser.moc: Added.
12566        * kdom/range/DocumentRange.cc: Added.
12567        * kdom/range/DocumentRange.h: Added.
12568        * kdom/range/Range.cc: Added.
12569        * kdom/range/Range.h: Added.
12570        * kdom/range/RangeException.cc: Added.
12571        * kdom/range/RangeException.h: Added.
12572        * kdom/range/impl/DocumentRangeImpl.cc: Added.
12573        * kdom/range/impl/DocumentRangeImpl.h: Added.
12574        * kdom/range/impl/RangeExceptionImpl.cc: Added.
12575        * kdom/range/impl/RangeExceptionImpl.h: Added.
12576        * kdom/range/impl/RangeImpl.cc: Added.
12577        * kdom/range/impl/RangeImpl.h: Added.
12578        * kdom/range/kdomrange.h: Added.
12579        * kdom/scripts/OVERVIEW: Added.
12580        * kdom/scripts/constants.pl: Added.
12581        * kdom/scripts/css.idl: Added.
12582        * kdom/scripts/cssmakeprops: Added.
12583        * kdom/scripts/cssmakevalues: Added.
12584        * kdom/scripts/dom2-core.idl: Added.
12585        * kdom/scripts/dom2-events.idl: Added.
12586        * kdom/scripts/dom2-range.idl: Added.
12587        * kdom/scripts/dom2-traversal.idl: Added.
12588        * kdom/scripts/dom2-views.idl: Added.
12589        * kdom/scripts/dommakeattrs: Added.
12590        * kdom/scripts/generate.pl: Added.
12591        * kdom/scripts/kalyptusKDOMEcma.pm: Added.
12592        * kdom/scripts/stylesheets.idl: Added.
12593        * kdom/traversal/DocumentTraversal.cc: Added.
12594        * kdom/traversal/DocumentTraversal.h: Added.
12595        * kdom/traversal/NodeFilter.cc: Added.
12596        * kdom/traversal/NodeFilter.h: Added.
12597        * kdom/traversal/NodeIterator.cc: Added.
12598        * kdom/traversal/NodeIterator.h: Added.
12599        * kdom/traversal/TreeWalker.cc: Added.
12600        * kdom/traversal/TreeWalker.h: Added.
12601        * kdom/traversal/impl/DocumentTraversalImpl.cc: Added.
12602        * kdom/traversal/impl/DocumentTraversalImpl.h: Added.
12603        * kdom/traversal/impl/NodeFilterImpl.cc: Added.
12604        * kdom/traversal/impl/NodeFilterImpl.h: Added.
12605        * kdom/traversal/impl/NodeIteratorImpl.cc: Added.
12606        * kdom/traversal/impl/NodeIteratorImpl.h: Added.
12607        * kdom/traversal/impl/TraversalImpl.cc: Added.
12608        * kdom/traversal/impl/TraversalImpl.h: Added.
12609        * kdom/traversal/impl/TreeWalkerImpl.cc: Added.
12610        * kdom/traversal/impl/TreeWalkerImpl.h: Added.
12611        * kdom/traversal/kdomtraversal.h: Added.
12612        * kdom/views/AbstractView.cc: Added.
12613        * kdom/views/AbstractView.h: Added.
12614        * kdom/views/DocumentView.cc: Added.
12615        * kdom/views/DocumentView.h: Added.
12616        * kdom/views/impl/AbstractViewImpl.cc: Added.
12617        * kdom/views/impl/AbstractViewImpl.h: Added.
12618        * kdom/views/impl/DocumentViewImpl.cc: Added.
12619        * kdom/views/impl/DocumentViewImpl.h: Added.
12620        * kdom/xpath/XPathEvaluator.cc: Added.
12621        * kdom/xpath/XPathEvaluator.h: Added.
12622        * kdom/xpath/XPathException.cc: Added.
12623        * kdom/xpath/XPathException.h: Added.
12624        * kdom/xpath/XPathExpression.cc: Added.
12625        * kdom/xpath/XPathExpression.h: Added.
12626        * kdom/xpath/XPathNSResolver.cc: Added.
12627        * kdom/xpath/XPathNSResolver.h: Added.
12628        * kdom/xpath/XPathNamespace.cc: Added.
12629        * kdom/xpath/XPathNamespace.h: Added.
12630        * kdom/xpath/XPathResult.cc: Added.
12631        * kdom/xpath/XPathResult.h: Added.
12632        * kdom/xpath/impl/AxisImpl.cc: Added.
12633        * kdom/xpath/impl/AxisImpl.h: Added.
12634        * kdom/xpath/impl/ContextImpl.cc: Added.
12635        * kdom/xpath/impl/ContextImpl.h: Added.
12636        * kdom/xpath/impl/ExprNodeImpl.cc: Added.
12637        * kdom/xpath/impl/ExprNodeImpl.h: Added.
12638        * kdom/xpath/impl/FILES: Added.
12639        * kdom/xpath/impl/LiteralImpl.cc: Added.
12640        * kdom/xpath/impl/LiteralImpl.h: Added.
12641        * kdom/xpath/impl/OperatorImpl.cc: Added.
12642        * kdom/xpath/impl/OperatorImpl.h: Added.
12643        * kdom/xpath/impl/ScopeImpl.cc: Added.
12644        * kdom/xpath/impl/ScopeImpl.h: Added.
12645        * kdom/xpath/impl/StepImpl.cc: Added.
12646        * kdom/xpath/impl/StepImpl.h: Added.
12647        * kdom/xpath/impl/VariableRefImpl.cc: Added.
12648        * kdom/xpath/impl/VariableRefImpl.h: Added.
12649        * kdom/xpath/impl/XPathCustomExceptionImpl.cc: Added.
12650        * kdom/xpath/impl/XPathCustomExceptionImpl.h: Added.
12651        * kdom/xpath/impl/XPathEvaluatorImpl.cc: Added.
12652        * kdom/xpath/impl/XPathEvaluatorImpl.h: Added.
12653        * kdom/xpath/impl/XPathExceptionImpl.cc: Added.
12654        * kdom/xpath/impl/XPathExceptionImpl.h: Added.
12655        * kdom/xpath/impl/XPathExpressionFilterImpl.cc: Added.
12656        * kdom/xpath/impl/XPathExpressionFilterImpl.h: Added.
12657        * kdom/xpath/impl/XPathExpressionImpl.cc: Added.
12658        * kdom/xpath/impl/XPathExpressionImpl.h: Added.
12659        * kdom/xpath/impl/XPathFactory1Impl.cc: Added.
12660        * kdom/xpath/impl/XPathFactory1Impl.h: Added.
12661        * kdom/xpath/impl/XPathFactoryBaseImpl.cc: Added.
12662        * kdom/xpath/impl/XPathFactoryBaseImpl.h: Added.
12663        * kdom/xpath/impl/XPathHelper.cc: Added.
12664        * kdom/xpath/impl/XPathHelper.h: Added.
12665        * kdom/xpath/impl/XPathNSResolverImpl.cc: Added.
12666        * kdom/xpath/impl/XPathNSResolverImpl.h: Added.
12667        * kdom/xpath/impl/XPathNamespaceImpl.cc: Added.
12668        * kdom/xpath/impl/XPathNamespaceImpl.h: Added.
12669        * kdom/xpath/impl/XPathResultImpl.cc: Added.
12670        * kdom/xpath/impl/XPathResultImpl.h: Added.
12671        * kdom/xpath/impl/data/BooleanImpl.cc: Added.
12672        * kdom/xpath/impl/data/BooleanImpl.h: Added.
12673        * kdom/xpath/impl/data/NodeSetImpl.cc: Added.
12674        * kdom/xpath/impl/data/NodeSetImpl.h: Added.
12675        * kdom/xpath/impl/data/NumberImpl.cc: Added.
12676        * kdom/xpath/impl/data/NumberImpl.h: Added.
12677        * kdom/xpath/impl/data/StringImpl.cc: Added.
12678        * kdom/xpath/impl/data/StringImpl.h: Added.
12679        * kdom/xpath/impl/data/ValueImpl.cc: Added.
12680        * kdom/xpath/impl/data/ValueImpl.h: Added.
12681        * kdom/xpath/impl/functions1/FunctionCallImpl.cc: Added.
12682        * kdom/xpath/impl/functions1/FunctionCallImpl.h: Added.
12683        * kdom/xpath/impl/functions1/README: Added.
12684        * kdom/xpath/impl/functions1/boolean_fnxp1.cc: Added.
12685        * kdom/xpath/impl/functions1/boolean_fnxp1.h: Added.
12686        * kdom/xpath/impl/functions1/ceiling_fnxp1.cc: Added.
12687        * kdom/xpath/impl/functions1/ceiling_fnxp1.h: Added.
12688        * kdom/xpath/impl/functions1/concat_fnxp1.cc: Added.
12689        * kdom/xpath/impl/functions1/concat_fnxp1.h: Added.
12690        * kdom/xpath/impl/functions1/contains_fnxp1.cc: Added.
12691        * kdom/xpath/impl/functions1/contains_fnxp1.h: Added.
12692        * kdom/xpath/impl/functions1/false_fnxp1.cc: Added.
12693        * kdom/xpath/impl/functions1/false_fnxp1.h: Added.
12694        * kdom/xpath/impl/functions1/floor_fnxp1.cc: Added.
12695        * kdom/xpath/impl/functions1/floor_fnxp1.h: Added.
12696        * kdom/xpath/impl/functions1/normalize-space_fnxp1.cc: Added.
12697        * kdom/xpath/impl/functions1/normalize-space_fnxp1.h: Added.
12698        * kdom/xpath/impl/functions1/not_fnxp1.cc: Added.
12699        * kdom/xpath/impl/functions1/not_fnxp1.h: Added.
12700        * kdom/xpath/impl/functions1/number_fnxp1.cc: Added.
12701        * kdom/xpath/impl/functions1/number_fnxp1.h: Added.
12702        * kdom/xpath/impl/functions1/round_fnxp1.cc: Added.
12703        * kdom/xpath/impl/functions1/round_fnxp1.h: Added.
12704        * kdom/xpath/impl/functions1/starts-with_fnxp1.cc: Added.
12705        * kdom/xpath/impl/functions1/starts-with_fnxp1.h: Added.
12706        * kdom/xpath/impl/functions1/string-length_fnxp1.cc: Added.
12707        * kdom/xpath/impl/functions1/string-length_fnxp1.h: Added.
12708        * kdom/xpath/impl/functions1/string_fnxp1.cc: Added.
12709        * kdom/xpath/impl/functions1/string_fnxp1.h: Added.
12710        * kdom/xpath/impl/functions1/substring-after_fnxp1.cc: Added.
12711        * kdom/xpath/impl/functions1/substring-after_fnxp1.h: Added.
12712        * kdom/xpath/impl/functions1/substring-before_fnxp1.cc: Added.
12713        * kdom/xpath/impl/functions1/substring-before_fnxp1.h: Added.
12714        * kdom/xpath/impl/functions1/substring_fnxp1.cc: Added.
12715        * kdom/xpath/impl/functions1/substring_fnxp1.h: Added.
12716        * kdom/xpath/impl/functions1/true_fnxp1.cc: Added.
12717        * kdom/xpath/impl/functions1/true_fnxp1.h: Added.
12718        * kdom/xpath/impl/parser/Lexer.cc: Added.
12719        * kdom/xpath/impl/parser/Lexer.h: Added.
12720        * kdom/xpath/impl/parser/Lexer.l: Added.
12721        * kdom/xpath/impl/parser/ParserState.cc: Added.
12722        * kdom/xpath/impl/parser/ParserState.h: Added.
12723        * kdom/xpath/impl/parser/xpath.ypp: Added.
12724        * kdom/xpath/impl/utils/QNameImpl.cc: Added.
12725        * kdom/xpath/impl/utils/QNameImpl.h: Added.
12726        * kdom/xpath/kdomxpath.h: Added.
12727        * kdom/xpointer/XPointerEvaluator.cc: Added.
12728        * kdom/xpointer/XPointerEvaluator.h: Added.
12729        * kdom/xpointer/XPointerException.cc: Added.
12730        * kdom/xpointer/XPointerException.h: Added.
12731        * kdom/xpointer/XPointerExpression.cc: Added.
12732        * kdom/xpointer/XPointerExpression.h: Added.
12733        * kdom/xpointer/XPointerHelper.cc: Added.
12734        * kdom/xpointer/XPointerHelper.h: Added.
12735        * kdom/xpointer/XPointerResult.cc: Added.
12736        * kdom/xpointer/XPointerResult.h: Added.
12737        * kdom/xpointer/impl/ElementSchemeImpl.cc: Added.
12738        * kdom/xpointer/impl/ElementSchemeImpl.h: Added.
12739        * kdom/xpointer/impl/NBCImpl.cc: Added.
12740        * kdom/xpointer/impl/NBCImpl.h: Added.
12741        * kdom/xpointer/impl/PointerPartImpl.cc: Added.
12742        * kdom/xpointer/impl/PointerPartImpl.h: Added.
12743        * kdom/xpointer/impl/ShortHandImpl.cc: Added.
12744        * kdom/xpointer/impl/ShortHandImpl.h: Added.
12745        * kdom/xpointer/impl/XMLNSSchemeImpl.cc: Added.
12746        * kdom/xpointer/impl/XMLNSSchemeImpl.h: Added.
12747        * kdom/xpointer/impl/XPath1SchemeImpl.cc: Added.
12748        * kdom/xpointer/impl/XPath1SchemeImpl.h: Added.
12749        * kdom/xpointer/impl/XPointerEvaluatorImpl.cc: Added.
12750        * kdom/xpointer/impl/XPointerEvaluatorImpl.h: Added.
12751        * kdom/xpointer/impl/XPointerExceptionImpl.cc: Added.
12752        * kdom/xpointer/impl/XPointerExceptionImpl.h: Added.
12753        * kdom/xpointer/impl/XPointerExpressionImpl.cc: Added.
12754        * kdom/xpointer/impl/XPointerExpressionImpl.h: Added.
12755        * kdom/xpointer/impl/XPointerResultImpl.cc: Added.
12756        * kdom/xpointer/impl/XPointerResultImpl.h: Added.
12757        * kdom/xpointer/impl/XPointerSchemeImpl.cc: Added.
12758        * kdom/xpointer/impl/XPointerSchemeImpl.h: Added.
12759        * kdom/xpointer/kdomxpointer.h: Added.
12760        * ksvg2/KSVGFactory.cc: Added.
12761        * ksvg2/KSVGFactory.h: Added.
12762        * ksvg2/KSVGSettings.cc: Added.
12763        * ksvg2/KSVGSettings.h: Added.
12764        * ksvg2/KSVGSlotStubs.h: Added.
12765        * ksvg2/KWQKSVGPart.h: Added.
12766        * ksvg2/KWQKSVGPart.mm: Added.
12767        * ksvg2/KWQKSVGView.h: Added.
12768        * ksvg2/KWQKSVGView.mm: Added.
12769        * ksvg2/css/impl/KSVGCSSParser.cc: Added.
12770        * ksvg2/css/impl/KSVGCSSParser.h: Added.
12771        * ksvg2/css/impl/SVGCSSStyleDeclarationImpl.cc: Added.
12772        * ksvg2/css/impl/SVGCSSStyleDeclarationImpl.h: Added.
12773        * ksvg2/css/impl/SVGCSSStyleSelector.cc: Added.
12774        * ksvg2/css/impl/SVGCSSStyleSelector.h: Added.
12775        * ksvg2/css/impl/SVGCSSStyleSheetImpl.cc: Added.
12776        * ksvg2/css/impl/SVGCSSStyleSheetImpl.h: Added.
12777        * ksvg2/css/impl/SVGRenderStyle.cc: Added.
12778        * ksvg2/css/impl/SVGRenderStyle.h: Added.
12779        * ksvg2/css/impl/SVGRenderStyleDefs.cc: Added.
12780        * ksvg2/css/impl/SVGRenderStyleDefs.h: Added.
12781        * ksvg2/css/impl/cssproperties.in: Added.
12782        * ksvg2/css/impl/cssvalues.in: Added.
12783        * ksvg2/css/impl/svg.css: Added.
12784        * ksvg2/data/CSSConstants.h: Added.
12785        * ksvg2/data/EcmaConstants.h: Added.
12786        * ksvg2/data/EventsConstants.h: Added.
12787        * ksvg2/data/SVGConstants.h: Added.
12788        * ksvg2/data/generateddata.cc: Added.
12789        * ksvg2/dom/SVGAElement.cc: Added.
12790        * ksvg2/dom/SVGAElement.h: Added.
12791        * ksvg2/dom/SVGAngle.cc: Added.
12792        * ksvg2/dom/SVGAngle.h: Added.
12793        * ksvg2/dom/SVGAnimateColorElement.cc: Added.
12794        * ksvg2/dom/SVGAnimateColorElement.h: Added.
12795        * ksvg2/dom/SVGAnimateElement.cc: Added.
12796        * ksvg2/dom/SVGAnimateElement.h: Added.
12797        * ksvg2/dom/SVGAnimateTransformElement.cc: Added.
12798        * ksvg2/dom/SVGAnimateTransformElement.h: Added.
12799        * ksvg2/dom/SVGAnimatedAngle.cc: Added.
12800        * ksvg2/dom/SVGAnimatedAngle.h: Added.
12801        * ksvg2/dom/SVGAnimatedBoolean.cc: Added.
12802        * ksvg2/dom/SVGAnimatedBoolean.h: Added.
12803        * ksvg2/dom/SVGAnimatedEnumeration.cc: Added.
12804        * ksvg2/dom/SVGAnimatedEnumeration.h: Added.
12805        * ksvg2/dom/SVGAnimatedInteger.cc: Added.
12806        * ksvg2/dom/SVGAnimatedInteger.h: Added.
12807        * ksvg2/dom/SVGAnimatedLength.cc: Added.
12808        * ksvg2/dom/SVGAnimatedLength.h: Added.
12809        * ksvg2/dom/SVGAnimatedLengthList.cc: Added.
12810        * ksvg2/dom/SVGAnimatedLengthList.h: Added.
12811        * ksvg2/dom/SVGAnimatedNumber.cc: Added.
12812        * ksvg2/dom/SVGAnimatedNumber.h: Added.
12813        * ksvg2/dom/SVGAnimatedNumberList.cc: Added.
12814        * ksvg2/dom/SVGAnimatedNumberList.h: Added.
12815        * ksvg2/dom/SVGAnimatedPathData.cc: Added.
12816        * ksvg2/dom/SVGAnimatedPathData.h: Added.
12817        * ksvg2/dom/SVGAnimatedPoints.cc: Added.
12818        * ksvg2/dom/SVGAnimatedPoints.h: Added.
12819        * ksvg2/dom/SVGAnimatedPreserveAspectRatio.cc: Added.
12820        * ksvg2/dom/SVGAnimatedPreserveAspectRatio.h: Added.
12821        * ksvg2/dom/SVGAnimatedRect.cc: Added.
12822        * ksvg2/dom/SVGAnimatedRect.h: Added.
12823        * ksvg2/dom/SVGAnimatedString.cc: Added.
12824        * ksvg2/dom/SVGAnimatedString.h: Added.
12825        * ksvg2/dom/SVGAnimatedTransformList.cc: Added.
12826        * ksvg2/dom/SVGAnimatedTransformList.h: Added.
12827        * ksvg2/dom/SVGAnimationElement.cc: Added.
12828        * ksvg2/dom/SVGAnimationElement.h: Added.
12829        * ksvg2/dom/SVGCircleElement.cc: Added.
12830        * ksvg2/dom/SVGCircleElement.h: Added.
12831        * ksvg2/dom/SVGClipPathElement.cc: Added.
12832        * ksvg2/dom/SVGClipPathElement.h: Added.
12833        * ksvg2/dom/SVGColor.cc: Added.
12834        * ksvg2/dom/SVGColor.h: Added.
12835        * ksvg2/dom/SVGComponentTransferFunctionElement.cc: Added.
12836        * ksvg2/dom/SVGComponentTransferFunctionElement.h: Added.
12837        * ksvg2/dom/SVGDOMImplementation.cc: Added.
12838        * ksvg2/dom/SVGDOMImplementation.h: Added.
12839        * ksvg2/dom/SVGDefsElement.cc: Added.
12840        * ksvg2/dom/SVGDefsElement.h: Added.
12841        * ksvg2/dom/SVGDescElement.cc: Added.
12842        * ksvg2/dom/SVGDescElement.h: Added.
12843        * ksvg2/dom/SVGDocument.cc: Added.
12844        * ksvg2/dom/SVGDocument.h: Added.
12845        * ksvg2/dom/SVGElement.cc: Added.
12846        * ksvg2/dom/SVGElement.h: Added.
12847        * ksvg2/dom/SVGElementInstance.cc: Added.
12848        * ksvg2/dom/SVGElementInstance.h: Added.
12849        * ksvg2/dom/SVGElementInstanceList.cc: Added.
12850        * ksvg2/dom/SVGElementInstanceList.h: Added.
12851        * ksvg2/dom/SVGEllipseElement.cc: Added.
12852        * ksvg2/dom/SVGEllipseElement.h: Added.
12853        * ksvg2/dom/SVGException.cc: Added.
12854        * ksvg2/dom/SVGException.h: Added.
12855        * ksvg2/dom/SVGExternalResourcesRequired.cc: Added.
12856        * ksvg2/dom/SVGExternalResourcesRequired.h: Added.
12857        * ksvg2/dom/SVGFEBlendElement.cc: Added.
12858        * ksvg2/dom/SVGFEBlendElement.h: Added.
12859        * ksvg2/dom/SVGFEColorMatrixElement.cc: Added.
12860        * ksvg2/dom/SVGFEColorMatrixElement.h: Added.
12861        * ksvg2/dom/SVGFEComponentTransferElement.cc: Added.
12862        * ksvg2/dom/SVGFEComponentTransferElement.h: Added.
12863        * ksvg2/dom/SVGFECompositeElement.cc: Added.
12864        * ksvg2/dom/SVGFECompositeElement.h: Added.
12865        * ksvg2/dom/SVGFEFloodElement.cc: Added.
12866        * ksvg2/dom/SVGFEFloodElement.h: Added.
12867        * ksvg2/dom/SVGFEFuncAElement.cc: Added.
12868        * ksvg2/dom/SVGFEFuncAElement.h: Added.
12869        * ksvg2/dom/SVGFEFuncBElement.cc: Added.
12870        * ksvg2/dom/SVGFEFuncBElement.h: Added.
12871        * ksvg2/dom/SVGFEFuncGElement.cc: Added.
12872        * ksvg2/dom/SVGFEFuncGElement.h: Added.
12873        * ksvg2/dom/SVGFEFuncRElement.cc: Added.
12874        * ksvg2/dom/SVGFEFuncRElement.h: Added.
12875        * ksvg2/dom/SVGFEGaussianBlurElement.cc: Added.
12876        * ksvg2/dom/SVGFEGaussianBlurElement.h: Added.
12877        * ksvg2/dom/SVGFEImageElement.cc: Added.
12878        * ksvg2/dom/SVGFEImageElement.h: Added.
12879        * ksvg2/dom/SVGFEMergeElement.cc: Added.
12880        * ksvg2/dom/SVGFEMergeElement.h: Added.
12881        * ksvg2/dom/SVGFEMergeNodeElement.cc: Added.
12882        * ksvg2/dom/SVGFEMergeNodeElement.h: Added.
12883        * ksvg2/dom/SVGFEOffsetElement.cc: Added.
12884        * ksvg2/dom/SVGFEOffsetElement.h: Added.
12885        * ksvg2/dom/SVGFETileElement.cc: Added.
12886        * ksvg2/dom/SVGFETileElement.h: Added.
12887        * ksvg2/dom/SVGFETurbulenceElement.cc: Added.
12888        * ksvg2/dom/SVGFETurbulenceElement.h: Added.
12889        * ksvg2/dom/SVGFilterElement.cc: Added.
12890        * ksvg2/dom/SVGFilterElement.h: Added.
12891        * ksvg2/dom/SVGFilterPrimitiveStandardAttributes.cc: Added.
12892        * ksvg2/dom/SVGFilterPrimitiveStandardAttributes.h: Added.
12893        * ksvg2/dom/SVGFitToViewBox.cc: Added.
12894        * ksvg2/dom/SVGFitToViewBox.h: Added.
12895        * ksvg2/dom/SVGGElement.cc: Added.
12896        * ksvg2/dom/SVGGElement.h: Added.
12897        * ksvg2/dom/SVGGradientElement.cc: Added.
12898        * ksvg2/dom/SVGGradientElement.h: Added.
12899        * ksvg2/dom/SVGImageElement.cc: Added.
12900        * ksvg2/dom/SVGImageElement.h: Added.
12901        * ksvg2/dom/SVGLangSpace.cc: Added.
12902        * ksvg2/dom/SVGLangSpace.h: Added.
12903        * ksvg2/dom/SVGLength.cc: Added.
12904        * ksvg2/dom/SVGLength.h: Added.
12905        * ksvg2/dom/SVGLengthList.cc: Added.
12906        * ksvg2/dom/SVGLengthList.h: Added.
12907        * ksvg2/dom/SVGLineElement.cc: Added.
12908        * ksvg2/dom/SVGLineElement.h: Added.
12909        * ksvg2/dom/SVGLinearGradientElement.cc: Added.
12910        * ksvg2/dom/SVGLinearGradientElement.h: Added.
12911        * ksvg2/dom/SVGLocatable.cc: Added.
12912        * ksvg2/dom/SVGLocatable.h: Added.
12913        * ksvg2/dom/SVGMarkerElement.cc: Added.
12914        * ksvg2/dom/SVGMarkerElement.h: Added.
12915        * ksvg2/dom/SVGMatrix.cc: Added.
12916        * ksvg2/dom/SVGMatrix.h: Added.
12917        * ksvg2/dom/SVGNumber.cc: Added.
12918        * ksvg2/dom/SVGNumber.h: Added.
12919        * ksvg2/dom/SVGNumberList.cc: Added.
12920        * ksvg2/dom/SVGNumberList.h: Added.
12921        * ksvg2/dom/SVGPaint.cc: Added.
12922        * ksvg2/dom/SVGPaint.h: Added.
12923        * ksvg2/dom/SVGPathElement.cc: Added.
12924        * ksvg2/dom/SVGPathElement.h: Added.
12925        * ksvg2/dom/SVGPathSeg.cc: Added.
12926        * ksvg2/dom/SVGPathSeg.h: Added.
12927        * ksvg2/dom/SVGPathSegArc.cc: Added.
12928        * ksvg2/dom/SVGPathSegArc.h: Added.
12929        * ksvg2/dom/SVGPathSegClosePath.cc: Added.
12930        * ksvg2/dom/SVGPathSegClosePath.h: Added.
12931        * ksvg2/dom/SVGPathSegCurvetoCubic.cc: Added.
12932        * ksvg2/dom/SVGPathSegCurvetoCubic.h: Added.
12933        * ksvg2/dom/SVGPathSegCurvetoCubicSmooth.cc: Added.
12934        * ksvg2/dom/SVGPathSegCurvetoCubicSmooth.h: Added.
12935        * ksvg2/dom/SVGPathSegCurvetoQuadratic.cc: Added.
12936        * ksvg2/dom/SVGPathSegCurvetoQuadratic.h: Added.
12937        * ksvg2/dom/SVGPathSegCurvetoQuadraticSmooth.cc: Added.
12938        * ksvg2/dom/SVGPathSegCurvetoQuadraticSmooth.h: Added.
12939        * ksvg2/dom/SVGPathSegLineto.cc: Added.
12940        * ksvg2/dom/SVGPathSegLineto.h: Added.
12941        * ksvg2/dom/SVGPathSegLinetoHorizontal.cc: Added.
12942        * ksvg2/dom/SVGPathSegLinetoHorizontal.h: Added.
12943        * ksvg2/dom/SVGPathSegLinetoVertical.cc: Added.
12944        * ksvg2/dom/SVGPathSegLinetoVertical.h: Added.
12945        * ksvg2/dom/SVGPathSegList.cc: Added.
12946        * ksvg2/dom/SVGPathSegList.h: Added.
12947        * ksvg2/dom/SVGPathSegMoveto.cc: Added.
12948        * ksvg2/dom/SVGPathSegMoveto.h: Added.
12949        * ksvg2/dom/SVGPatternElement.cc: Added.
12950        * ksvg2/dom/SVGPatternElement.h: Added.
12951        * ksvg2/dom/SVGPoint.cc: Added.
12952        * ksvg2/dom/SVGPoint.h: Added.
12953        * ksvg2/dom/SVGPointList.cc: Added.
12954        * ksvg2/dom/SVGPointList.h: Added.
12955        * ksvg2/dom/SVGPolygonElement.cc: Added.
12956        * ksvg2/dom/SVGPolygonElement.h: Added.
12957        * ksvg2/dom/SVGPolylineElement.cc: Added.
12958        * ksvg2/dom/SVGPolylineElement.h: Added.
12959        * ksvg2/dom/SVGPreserveAspectRatio.cc: Added.
12960        * ksvg2/dom/SVGPreserveAspectRatio.h: Added.
12961        * ksvg2/dom/SVGRadialGradientElement.cc: Added.
12962        * ksvg2/dom/SVGRadialGradientElement.h: Added.
12963        * ksvg2/dom/SVGRect.cc: Added.
12964        * ksvg2/dom/SVGRect.h: Added.
12965        * ksvg2/dom/SVGRectElement.cc: Added.
12966        * ksvg2/dom/SVGRectElement.h: Added.
12967        * ksvg2/dom/SVGSVGElement.cc: Added.
12968        * ksvg2/dom/SVGSVGElement.h: Added.
12969        * ksvg2/dom/SVGScriptElement.cc: Added.
12970        * ksvg2/dom/SVGScriptElement.h: Added.
12971        * ksvg2/dom/SVGSetElement.cc: Added.
12972        * ksvg2/dom/SVGSetElement.h: Added.
12973        * ksvg2/dom/SVGStopElement.cc: Added.
12974        * ksvg2/dom/SVGStopElement.h: Added.
12975        * ksvg2/dom/SVGStringList.cc: Added.
12976        * ksvg2/dom/SVGStringList.h: Added.
12977        * ksvg2/dom/SVGStylable.cc: Added.
12978        * ksvg2/dom/SVGStylable.h: Added.
12979        * ksvg2/dom/SVGStyleElement.cc: Added.
12980        * ksvg2/dom/SVGStyleElement.h: Added.
12981        * ksvg2/dom/SVGSwitchElement.cc: Added.
12982        * ksvg2/dom/SVGSwitchElement.h: Added.
12983        * ksvg2/dom/SVGSymbolElement.cc: Added.
12984        * ksvg2/dom/SVGSymbolElement.h: Added.
12985        * ksvg2/dom/SVGTSpanElement.cc: Added.
12986        * ksvg2/dom/SVGTSpanElement.h: Added.
12987        * ksvg2/dom/SVGTests.cc: Added.
12988        * ksvg2/dom/SVGTests.h: Added.
12989        * ksvg2/dom/SVGTextContentElement.cc: Added.
12990        * ksvg2/dom/SVGTextContentElement.h: Added.
12991        * ksvg2/dom/SVGTextElement.cc: Added.
12992        * ksvg2/dom/SVGTextElement.h: Added.
12993        * ksvg2/dom/SVGTextPositioningElement.cc: Added.
12994        * ksvg2/dom/SVGTextPositioningElement.h: Added.
12995        * ksvg2/dom/SVGTitleElement.cc: Added.
12996        * ksvg2/dom/SVGTitleElement.h: Added.
12997        * ksvg2/dom/SVGTransform.cc: Added.
12998        * ksvg2/dom/SVGTransform.h: Added.
12999        * ksvg2/dom/SVGTransformList.cc: Added.
13000        * ksvg2/dom/SVGTransformList.h: Added.
13001        * ksvg2/dom/SVGTransformable.cc: Added.
13002        * ksvg2/dom/SVGTransformable.h: Added.
13003        * ksvg2/dom/SVGURIReference.cc: Added.
13004        * ksvg2/dom/SVGURIReference.h: Added.
13005        * ksvg2/dom/SVGUseElement.cc: Added.
13006        * ksvg2/dom/SVGUseElement.h: Added.
13007        * ksvg2/dom/SVGViewElement.cc: Added.
13008        * ksvg2/dom/SVGViewElement.h: Added.
13009        * ksvg2/dom/SVGZoomAndPan.cc: Added.
13010        * ksvg2/dom/SVGZoomAndPan.h: Added.
13011        * ksvg2/ecma/Constructors.cc: Added.
13012        * ksvg2/ecma/Constructors.h: Added.
13013        * ksvg2/ecma/Ecma.cc: Added.
13014        * ksvg2/ecma/Ecma.h: Added.
13015        * ksvg2/ecma/EcmaInterface.h: Added.
13016        * ksvg2/ecma/GlobalObject.cc: Added.
13017        * ksvg2/ecma/GlobalObject.h: Added.
13018        * ksvg2/ecma/SVGLookup.h: Added.
13019        * ksvg2/events/SVGEvent.cc: Added.
13020        * ksvg2/events/SVGEvent.h: Added.
13021        * ksvg2/events/SVGZoomEvent.cc: Added.
13022        * ksvg2/events/SVGZoomEvent.h: Added.
13023        * ksvg2/events/impl/SVGEventImpl.cc: Added.
13024        * ksvg2/events/impl/SVGEventImpl.h: Added.
13025        * ksvg2/events/impl/SVGZoomEventImpl.cc: Added.
13026        * ksvg2/events/impl/SVGZoomEventImpl.h: Added.
13027        * ksvg2/events/ksvgevents.h: Added.
13028        * ksvg2/impl/CDFInterface.cc: Added.
13029        * ksvg2/impl/CDFInterface.h: Added.
13030        * ksvg2/impl/SVGAElementImpl.cc: Added.
13031        * ksvg2/impl/SVGAElementImpl.h: Added.
13032        * ksvg2/impl/SVGAngleImpl.cc: Added.
13033        * ksvg2/impl/SVGAngleImpl.h: Added.
13034        * ksvg2/impl/SVGAnimateColorElementImpl.cc: Added.
13035        * ksvg2/impl/SVGAnimateColorElementImpl.h: Added.
13036        * ksvg2/impl/SVGAnimateElementImpl.cc: Added.
13037        * ksvg2/impl/SVGAnimateElementImpl.h: Added.
13038        * ksvg2/impl/SVGAnimateTransformElementImpl.cc: Added.
13039        * ksvg2/impl/SVGAnimateTransformElementImpl.h: Added.
13040        * ksvg2/impl/SVGAnimatedAngleImpl.cc: Added.
13041        * ksvg2/impl/SVGAnimatedAngleImpl.h: Added.
13042        * ksvg2/impl/SVGAnimatedBooleanImpl.cc: Added.
13043        * ksvg2/impl/SVGAnimatedBooleanImpl.h: Added.
13044        * ksvg2/impl/SVGAnimatedEnumerationImpl.cc: Added.
13045        * ksvg2/impl/SVGAnimatedEnumerationImpl.h: Added.
13046        * ksvg2/impl/SVGAnimatedIntegerImpl.cc: Added.
13047        * ksvg2/impl/SVGAnimatedIntegerImpl.h: Added.
13048        * ksvg2/impl/SVGAnimatedLengthImpl.cc: Added.
13049        * ksvg2/impl/SVGAnimatedLengthImpl.h: Added.
13050        * ksvg2/impl/SVGAnimatedLengthListImpl.cc: Added.
13051        * ksvg2/impl/SVGAnimatedLengthListImpl.h: Added.
13052        * ksvg2/impl/SVGAnimatedNumberImpl.cc: Added.
13053        * ksvg2/impl/SVGAnimatedNumberImpl.h: Added.
13054        * ksvg2/impl/SVGAnimatedNumberListImpl.cc: Added.
13055        * ksvg2/impl/SVGAnimatedNumberListImpl.h: Added.
13056        * ksvg2/impl/SVGAnimatedPathDataImpl.cc: Added.
13057        * ksvg2/impl/SVGAnimatedPathDataImpl.h: Added.
13058        * ksvg2/impl/SVGAnimatedPointsImpl.cc: Added.
13059        * ksvg2/impl/SVGAnimatedPointsImpl.h: Added.
13060        * ksvg2/impl/SVGAnimatedPreserveAspectRatioImpl.cc: Added.
13061        * ksvg2/impl/SVGAnimatedPreserveAspectRatioImpl.h: Added.
13062        * ksvg2/impl/SVGAnimatedRectImpl.cc: Added.
13063        * ksvg2/impl/SVGAnimatedRectImpl.h: Added.
13064        * ksvg2/impl/SVGAnimatedStringImpl.cc: Added.
13065        * ksvg2/impl/SVGAnimatedStringImpl.h: Added.
13066        * ksvg2/impl/SVGAnimatedTemplate.h: Added.
13067        * ksvg2/impl/SVGAnimatedTransformListImpl.cc: Added.
13068        * ksvg2/impl/SVGAnimatedTransformListImpl.h: Added.
13069        * ksvg2/impl/SVGAnimationElementImpl.cc: Added.
13070        * ksvg2/impl/SVGAnimationElementImpl.h: Added.
13071        * ksvg2/impl/SVGCircleElementImpl.cc: Added.
13072        * ksvg2/impl/SVGCircleElementImpl.h: Added.
13073        * ksvg2/impl/SVGClipPathElementImpl.cc: Added.
13074        * ksvg2/impl/SVGClipPathElementImpl.h: Added.
13075        * ksvg2/impl/SVGColorImpl.cc: Added.
13076        * ksvg2/impl/SVGColorImpl.h: Added.
13077        * ksvg2/impl/SVGComponentTransferFunctionElementImpl.cc: Added.
13078        * ksvg2/impl/SVGComponentTransferFunctionElementImpl.h: Added.
13079        * ksvg2/impl/SVGDOMImplementationImpl.cc: Added.
13080        * ksvg2/impl/SVGDOMImplementationImpl.h: Added.
13081        * ksvg2/impl/SVGDefsElementImpl.cc: Added.
13082        * ksvg2/impl/SVGDefsElementImpl.h: Added.
13083        * ksvg2/impl/SVGDescElementImpl.cc: Added.
13084        * ksvg2/impl/SVGDescElementImpl.h: Added.
13085        * ksvg2/impl/SVGDocumentImpl.cc: Added.
13086        * ksvg2/impl/SVGDocumentImpl.h: Added.
13087        * ksvg2/impl/SVGElementImpl.cc: Added.
13088        * ksvg2/impl/SVGElementImpl.h: Added.
13089        * ksvg2/impl/SVGElementInstanceImpl.cc: Added.
13090        * ksvg2/impl/SVGElementInstanceImpl.h: Added.
13091        * ksvg2/impl/SVGElementInstanceListImpl.cc: Added.
13092        * ksvg2/impl/SVGElementInstanceListImpl.h: Added.
13093        * ksvg2/impl/SVGEllipseElementImpl.cc: Added.
13094        * ksvg2/impl/SVGEllipseElementImpl.h: Added.
13095        * ksvg2/impl/SVGExceptionImpl.cc: Added.
13096        * ksvg2/impl/SVGExceptionImpl.h: Added.
13097        * ksvg2/impl/SVGExternalResourcesRequiredImpl.cc: Added.
13098        * ksvg2/impl/SVGExternalResourcesRequiredImpl.h: Added.
13099        * ksvg2/impl/SVGFEBlendElementImpl.cc: Added.
13100        * ksvg2/impl/SVGFEBlendElementImpl.h: Added.
13101        * ksvg2/impl/SVGFEColorMatrixElementImpl.cc: Added.
13102        * ksvg2/impl/SVGFEColorMatrixElementImpl.h: Added.
13103        * ksvg2/impl/SVGFEComponentTransferElementImpl.cc: Added.
13104        * ksvg2/impl/SVGFEComponentTransferElementImpl.h: Added.
13105        * ksvg2/impl/SVGFECompositeElementImpl.cc: Added.
13106        * ksvg2/impl/SVGFECompositeElementImpl.h: Added.
13107        * ksvg2/impl/SVGFEFloodElementImpl.cc: Added.
13108        * ksvg2/impl/SVGFEFloodElementImpl.h: Added.
13109        * ksvg2/impl/SVGFEFuncAElementImpl.cc: Added.
13110        * ksvg2/impl/SVGFEFuncAElementImpl.h: Added.
13111        * ksvg2/impl/SVGFEFuncBElementImpl.cc: Added.
13112        * ksvg2/impl/SVGFEFuncBElementImpl.h: Added.
13113        * ksvg2/impl/SVGFEFuncGElementImpl.cc: Added.
13114        * ksvg2/impl/SVGFEFuncGElementImpl.h: Added.
13115        * ksvg2/impl/SVGFEFuncRElementImpl.cc: Added.
13116        * ksvg2/impl/SVGFEFuncRElementImpl.h: Added.
13117        * ksvg2/impl/SVGFEGaussianBlurElementImpl.cc: Added.
13118        * ksvg2/impl/SVGFEGaussianBlurElementImpl.h: Added.
13119        * ksvg2/impl/SVGFEImageElementImpl.cc: Added.
13120        * ksvg2/impl/SVGFEImageElementImpl.h: Added.
13121        * ksvg2/impl/SVGFEMergeElementImpl.cc: Added.
13122        * ksvg2/impl/SVGFEMergeElementImpl.h: Added.
13123        * ksvg2/impl/SVGFEMergeNodeElementImpl.cc: Added.
13124        * ksvg2/impl/SVGFEMergeNodeElementImpl.h: Added.
13125        * ksvg2/impl/SVGFEOffsetElementImpl.cc: Added.
13126        * ksvg2/impl/SVGFEOffsetElementImpl.h: Added.
13127        * ksvg2/impl/SVGFETileElementImpl.cc: Added.
13128        * ksvg2/impl/SVGFETileElementImpl.h: Added.
13129        * ksvg2/impl/SVGFETurbulenceElementImpl.cc: Added.
13130        * ksvg2/impl/SVGFETurbulenceElementImpl.h: Added.
13131        * ksvg2/impl/SVGFilterElementImpl.cc: Added.
13132        * ksvg2/impl/SVGFilterElementImpl.h: Added.
13133        * ksvg2/impl/SVGFilterPrimitiveStandardAttributesImpl.cc: Added.
13134        * ksvg2/impl/SVGFilterPrimitiveStandardAttributesImpl.h: Added.
13135        * ksvg2/impl/SVGFitToViewBoxImpl.cc: Added.
13136        * ksvg2/impl/SVGFitToViewBoxImpl.h: Added.
13137        * ksvg2/impl/SVGGElementImpl.cc: Added.
13138        * ksvg2/impl/SVGGElementImpl.h: Added.
13139        * ksvg2/impl/SVGGradientElementImpl.cc: Added.
13140        * ksvg2/impl/SVGGradientElementImpl.h: Added.
13141        * ksvg2/impl/SVGHelper.cc: Added.
13142        * ksvg2/impl/SVGHelper.h: Added.
13143        * ksvg2/impl/SVGImageElementImpl.cc: Added.
13144        * ksvg2/impl/SVGImageElementImpl.h: Added.
13145        * ksvg2/impl/SVGLangSpaceImpl.cc: Added.
13146        * ksvg2/impl/SVGLangSpaceImpl.h: Added.
13147        * ksvg2/impl/SVGLengthImpl.cc: Added.
13148        * ksvg2/impl/SVGLengthImpl.h: Added.
13149        * ksvg2/impl/SVGLengthListImpl.cc: Added.
13150        * ksvg2/impl/SVGLengthListImpl.h: Added.
13151        * ksvg2/impl/SVGLineElementImpl.cc: Added.
13152        * ksvg2/impl/SVGLineElementImpl.h: Added.
13153        * ksvg2/impl/SVGLinearGradientElementImpl.cc: Added.
13154        * ksvg2/impl/SVGLinearGradientElementImpl.h: Added.
13155        * ksvg2/impl/SVGList.h: Added.
13156        * ksvg2/impl/SVGLocatableImpl.cc: Added.
13157        * ksvg2/impl/SVGLocatableImpl.h: Added.
13158        * ksvg2/impl/SVGMarkerElementImpl.cc: Added.
13159        * ksvg2/impl/SVGMarkerElementImpl.h: Added.
13160        * ksvg2/impl/SVGMatrixImpl.cc: Added.
13161        * ksvg2/impl/SVGMatrixImpl.h: Added.
13162        * ksvg2/impl/SVGNumberImpl.cc: Added.
13163        * ksvg2/impl/SVGNumberImpl.h: Added.
13164        * ksvg2/impl/SVGNumberListImpl.cc: Added.
13165        * ksvg2/impl/SVGNumberListImpl.h: Added.
13166        * ksvg2/impl/SVGPaintImpl.cc: Added.
13167        * ksvg2/impl/SVGPaintImpl.h: Added.
13168        * ksvg2/impl/SVGPathElementImpl.cc: Added.
13169        * ksvg2/impl/SVGPathElementImpl.h: Added.
13170        * ksvg2/impl/SVGPathSegArcImpl.cc: Added.
13171        * ksvg2/impl/SVGPathSegArcImpl.h: Added.
13172        * ksvg2/impl/SVGPathSegClosePathImpl.cc: Added.
13173        * ksvg2/impl/SVGPathSegClosePathImpl.h: Added.
13174        * ksvg2/impl/SVGPathSegCurvetoCubicImpl.cc: Added.
13175        * ksvg2/impl/SVGPathSegCurvetoCubicImpl.h: Added.
13176        * ksvg2/impl/SVGPathSegCurvetoCubicSmoothImpl.cc: Added.
13177        * ksvg2/impl/SVGPathSegCurvetoCubicSmoothImpl.h: Added.
13178        * ksvg2/impl/SVGPathSegCurvetoQuadraticImpl.cc: Added.
13179        * ksvg2/impl/SVGPathSegCurvetoQuadraticImpl.h: Added.
13180        * ksvg2/impl/SVGPathSegCurvetoQuadraticSmoothImpl.cc: Added.
13181        * ksvg2/impl/SVGPathSegCurvetoQuadraticSmoothImpl.h: Added.
13182        * ksvg2/impl/SVGPathSegImpl.cc: Added.
13183        * ksvg2/impl/SVGPathSegImpl.h: Added.
13184        * ksvg2/impl/SVGPathSegLinetoHorizontalImpl.cc: Added.
13185        * ksvg2/impl/SVGPathSegLinetoHorizontalImpl.h: Added.
13186        * ksvg2/impl/SVGPathSegLinetoImpl.cc: Added.
13187        * ksvg2/impl/SVGPathSegLinetoImpl.h: Added.
13188        * ksvg2/impl/SVGPathSegLinetoVerticalImpl.cc: Added.
13189        * ksvg2/impl/SVGPathSegLinetoVerticalImpl.h: Added.
13190        * ksvg2/impl/SVGPathSegListImpl.cc: Added.
13191        * ksvg2/impl/SVGPathSegListImpl.h: Added.
13192        * ksvg2/impl/SVGPathSegMovetoImpl.cc: Added.
13193        * ksvg2/impl/SVGPathSegMovetoImpl.h: Added.
13194        * ksvg2/impl/SVGPatternElementImpl.cc: Added.
13195        * ksvg2/impl/SVGPatternElementImpl.h: Added.
13196        * ksvg2/impl/SVGPointImpl.cc: Added.
13197        * ksvg2/impl/SVGPointImpl.h: Added.
13198        * ksvg2/impl/SVGPointListImpl.cc: Added.
13199        * ksvg2/impl/SVGPointListImpl.h: Added.
13200        * ksvg2/impl/SVGPolyElementImpl.cc: Added.
13201        * ksvg2/impl/SVGPolyElementImpl.h: Added.
13202        * ksvg2/impl/SVGPolygonElementImpl.cc: Added.
13203        * ksvg2/impl/SVGPolygonElementImpl.h: Added.
13204        * ksvg2/impl/SVGPolylineElementImpl.cc: Added.
13205        * ksvg2/impl/SVGPolylineElementImpl.h: Added.
13206        * ksvg2/impl/SVGPreserveAspectRatioImpl.cc: Added.
13207        * ksvg2/impl/SVGPreserveAspectRatioImpl.h: Added.
13208        * ksvg2/impl/SVGRadialGradientElementImpl.cc: Added.
13209        * ksvg2/impl/SVGRadialGradientElementImpl.h: Added.
13210        * ksvg2/impl/SVGRectElementImpl.cc: Added.
13211        * ksvg2/impl/SVGRectElementImpl.h: Added.
13212        * ksvg2/impl/SVGRectImpl.cc: Added.
13213        * ksvg2/impl/SVGRectImpl.h: Added.
13214        * ksvg2/impl/SVGSVGElementImpl.cc: Added.
13215        * ksvg2/impl/SVGSVGElementImpl.h: Added.
13216        * ksvg2/impl/SVGScriptElementImpl.cc: Added.
13217        * ksvg2/impl/SVGScriptElementImpl.h: Added.
13218        * ksvg2/impl/SVGSetElementImpl.cc: Added.
13219        * ksvg2/impl/SVGSetElementImpl.h: Added.
13220        * ksvg2/impl/SVGStopElementImpl.cc: Added.
13221        * ksvg2/impl/SVGStopElementImpl.h: Added.
13222        * ksvg2/impl/SVGStringListImpl.cc: Added.
13223        * ksvg2/impl/SVGStringListImpl.h: Added.
13224        * ksvg2/impl/SVGStylableImpl.cc: Added.
13225        * ksvg2/impl/SVGStylableImpl.h: Added.
13226        * ksvg2/impl/SVGStyleElementImpl.cc: Added.
13227        * ksvg2/impl/SVGStyleElementImpl.h: Added.
13228        * ksvg2/impl/SVGStyledElementImpl.cc: Added.
13229        * ksvg2/impl/SVGStyledElementImpl.h: Added.
13230        * ksvg2/impl/SVGSwitchElementImpl.cc: Added.
13231        * ksvg2/impl/SVGSwitchElementImpl.h: Added.
13232        * ksvg2/impl/SVGSymbolElementImpl.cc: Added.
13233        * ksvg2/impl/SVGSymbolElementImpl.h: Added.
13234        * ksvg2/impl/SVGTSpanElementImpl.cc: Added.
13235        * ksvg2/impl/SVGTSpanElementImpl.h: Added.
13236        * ksvg2/impl/SVGTestsImpl.cc: Added.
13237        * ksvg2/impl/SVGTestsImpl.h: Added.
13238        * ksvg2/impl/SVGTextContentElementImpl.cc: Added.
13239        * ksvg2/impl/SVGTextContentElementImpl.h: Added.
13240        * ksvg2/impl/SVGTextElementImpl.cc: Added.
13241        * ksvg2/impl/SVGTextElementImpl.h: Added.
13242        * ksvg2/impl/SVGTextPositioningElementImpl.cc: Added.
13243        * ksvg2/impl/SVGTextPositioningElementImpl.h: Added.
13244        * ksvg2/impl/SVGTitleElementImpl.cc: Added.
13245        * ksvg2/impl/SVGTitleElementImpl.h: Added.
13246        * ksvg2/impl/SVGTransformImpl.cc: Added.
13247        * ksvg2/impl/SVGTransformImpl.h: Added.
13248        * ksvg2/impl/SVGTransformListImpl.cc: Added.
13249        * ksvg2/impl/SVGTransformListImpl.h: Added.
13250        * ksvg2/impl/SVGTransformableImpl.cc: Added.
13251        * ksvg2/impl/SVGTransformableImpl.h: Added.
13252        * ksvg2/impl/SVGURIReferenceImpl.cc: Added.
13253        * ksvg2/impl/SVGURIReferenceImpl.h: Added.
13254        * ksvg2/impl/SVGUseElementImpl.cc: Added.
13255        * ksvg2/impl/SVGUseElementImpl.h: Added.
13256        * ksvg2/impl/SVGViewElementImpl.cc: Added.
13257        * ksvg2/impl/SVGViewElementImpl.h: Added.
13258        * ksvg2/impl/SVGZoomAndPanImpl.cc: Added.
13259        * ksvg2/impl/SVGZoomAndPanImpl.h: Added.
13260        * ksvg2/impl/svgattrs.c: Added.
13261        * ksvg2/impl/svgattrs.h: Added.
13262        * ksvg2/impl/svgattrs.in: Added.
13263        * ksvg2/impl/svgpathparser.cc: Added.
13264        * ksvg2/impl/svgpathparser.h: Added.
13265        * ksvg2/impl/svgtags.c: Added.
13266        * ksvg2/impl/svgtags.h: Added.
13267        * ksvg2/impl/svgtags.in: Added.
13268        * ksvg2/ksvg.h: Added.
13269        * ksvg2/scripts/generate.pl: Added.
13270        * ksvg2/scripts/kalyptusKDOMEcma.pm: Added.
13271        * ksvg2/scripts/ksvgstatus.xsl: Added.
13272        * ksvg2/scripts/regressiontest.sh: Added.
13273        * ksvg2/scripts/regressiontestsetup.sh: Added.
13274        * ksvg2/scripts/svg.idl: Added.
13275        Several things to mention here:
13276        1.  Function names were stripped out of the ChangeLog for brevity.
13277        2.  Several files (like the c++ DOM) are only in here temporarily.
13278        3.  Several files (like kdom/catalog) were left out of CVS as they
13279        do not currently work in our kdom port.  Those may or may not be
13280        added in the future.
13281        4.  Notes re: the WebCore+SVG target
13282          - APPLE_COMPILE_HACK is a temporary addition for compiling
13283          - None of the SVG or KDOM files are compiled in "WebCore" by default.
13284          - Compiling WebCore+SVG requires compiling JavaScriptCore+SVG
13285            to enable RTTI support in JavaScriptCore.
13286
132872005-07-08  Eric Seidel  <eseidel@apple.com>
13288
13289        Reviewed by mjs.
13290
13291        * kwq/KWQRegExp.h: Added cap() support.
13292        * kwq/KWQRegExp.mm: Added cap() support.
13293        (QRegExp::match): Changes necessary for cap()
13294        (QRegExp::cap): based off of JSC's pcre support.
13295        http://bugs.webkit.org/show_bug.cgi?id=3847
13296
132972005-07-08  Geoffrey Garen  <ggaren@apple.com>
13298
13299        Rolled in layout test for fix to 
13300        http://bugs.webkit.org/show_bug.cgi?id=3818
13301        Fallback font doesn't have requested weight in ATSUI-rendered text
13302
13303        Reviewed by mjs.
13304
13305        Test cases added:
13306        * layout-tests/fast/text/international/bidi-fallback-font-weight-expected.txt: Added.
13307        * layout-tests/fast/text/international/bidi-fallback-font-weight.html: Added.
13308
133092005-07-08  Beth Dakin  <bdakin@apple.com>
13310
13311        Reviewed by John.
13312
13313	This is a fix for half of <rdar://problem/4172312>
13314	Because marquee is a WinIE element, we are honoring their treatment of the height attribute by making sure it is overriden when its value is given to be smaller than the font height.
13315
13316        Test cases added: fast/css/MarqueeLayoutTest.html
13317
13318        * khtml/html/html_blockimpl.cpp:
13319        (HTMLMarqueeElementImpl::mapToEntry): set result to eMarquee instead of eUniversal for height attribute
13320        (HTMLMarqueeElementImpl::parseMappedAttribute): changed to minheight instead of just height
13321        * khtml/xml/dom_elementimpl.h: added eMarquee hash key
13322	(QScrollView::suppressScrollBars):
13323        * layout-tests/fast/css/MarqueeLayoutTest-expected.txt: Added.
13324        * layout-tests/fast/css/MarqueeLayoutTest.html: Added.
13325       
133262005-07-08  Vicki Murley  <vicki@apple.com>
13327
13328	Fix from Carsten Guenther, reviewed by Maciej
13329
13330	- update test cases for JavaScriptCore fix 
13331        http://bugs.webkit.org/show_bug.cgi?id=3644 
13332
13333        * layout-tests/fast/dom/outerText-no-element-expected.txt:
13334        * layout-tests/fast/dynamic/outerHTML-no-element-expected.txt:
13335        * layout-tests/fast/js/array-every-expected.txt:
13336        * layout-tests/fast/js/array-foreach-expected.txt:
13337        * layout-tests/fast/js/array-some-expected.txt:
13338        * layout-tests/fast/js/toString-stack-overflow-expected.txt:
13339
133402005-07-08  Vicki Murley <vicki@apple.com>
13341
13342	- fixed by Trey Matteson <trey@usa.net>, reviewed by Maciej.
13343
13344	Test cases added: (NONE)
13345
13346	<rdar://problem/4109893> REGRESSION: back/forward broken at wsj.com, worked in v185
13347	Also written as http://bugs.webkit.org/show_bug.cgi?id=3901
13348 
13349	Broken by security fix for 4005575: Arbitrary file disclosure vulnerability due to ability to load local html from remote content
13350 
13351	The root of this bug is that URLs for subframes of a page are sometimes added to the back/forward list.  This happens a lot at
13352	wsj.com, and I believe it would happen for many or all sites that use JS to cons up a URL for an iframe and then load it.
13353 
13354	The security fix changed the code path to go through openURLRequest, but only openURL had the logic to guess if
13355	the current navigation was done in response to a user gesture.  openURLRequest always assumed it was a user gesture,
13356	and thus all uses of this code path would place an item in the b/f list.
13357
13358	* kwq/KWQKHTMLPart.h:
13359	* kwq/KWQKHTMLPart.mm:
13360	(KWQKHTMLPart::userGestureHint):  Factored code from openURL.
13361	(KWQKHTMLPart::openURL):  Call newly factored code.
13362	(KWQKHTMLPart::openURLRequest):  Newly call newly factored code.
13363
133642005-07-07  Maciej Stachowiak  <mjs@apple.com>
13365
13366        - oops, accidentally committed stat dumping enabled
13367
13368        * khtml/misc/hashtable.h:
13369
133702005-07-07  Maciej Stachowiak  <mjs@apple.com>
13371
13372        Reviewed by hyatt.
13373
13374        - sped up DOMStringImpl * equality comparisons.
13375
13376        * khtml/misc/hashfunctions.h:
13377        (khtml::):
13378        * khtml/misc/hashtable.h:
13379        * khtml/xml/dom_atomicstring.cpp:
13380        (DOM::equal):
13381
133822005-07-07  Adele Peterson  <adele@apple.com>
13383
13384        change by Maciej, reviewed by me.
13385
13386        fix for <rdar://problem/4168001> Cambridge 8C45: Safari crashes in Webcore (DOM::NodeImpl::removeAllEventListeners() + 32)
13387
13388        No test cases added.  There are some edge cases in which removeAllDisconnectedNodeEventListeners can get 
13389        called twice for the same document, and this can cause some nodes to unnecessarily remain in the 
13390        m_disconnectedNodesWithEventListeners list.  This fix just clears the m_disconnectedNodesWithEventListeners 
13391        list after removing all event listeners for the disconnected nodes.
13392
13393        * khtml/xml/dom_docimpl.cpp: (DocumentImpl::removeAllDisconnectedNodeEventListeners):
13394
133952005-07-07  Geoffrey Garen  <ggaren@apple.com>
13396
13397        Reviewed by sullivan.
13398
13399        Test cases added: (NONE)
13400
13401        * kwq/KWQDef.h: added #include <cmath> to fix build failure
13402        introduced by last checkin
13403
134042005-07-07  Eric Seidel  <eseidel@apple.com>
13405
13406        Reviewed by mjs.
13407
13408        * kwq/DOM-CSS.mm:
13409        (-[DOMRGBColor _color]): changed to nsColor()
13410        * kwq/KWQAccObject.mm:
13411        (AXAttributeStringSetStyle): changed to nsColor()
13412        * kwq/KWQColor.h: Added defs for KDOM.
13413        * kwq/KWQColor.mm: 
13414        (qRed): like qAlpha, kcanvas required.
13415        (qGreen): like qAlpha, kcanvas required.
13416        (qBlue): like qAlpha, kcanvas required.
13417        (parseHexColor): copied from khtml/css/cssparser.h
13418        (QColor::QColor): QColor(QString), will lookup by hex code.
13419        (nsColor): now plain function, instead of member function. (mjs)
13420        (CGColorFromNSColor): stolen from QPalette.mm
13421        (cgColor): added to support CGColor, like nsColor()
13422        (QColor::getRgbaF): new, for KCanvas, from Qt 4.
13423        * kwq/KWQKHTMLPart.mm:
13424        (KWQKHTMLPart::attributedString): changed to nsColor()
13425        (KWQKHTMLPart::fontAttributesForSelectionStart): nsColor()
13426        (KWQKHTMLPart::bodyBackgroundColor): changed to nsColor()
13427        * kwq/KWQLineEdit.mm:
13428        (QLineEdit::setPalette): changed to nsColor()
13429        * kwq/KWQPainter.mm:
13430        (QPainter::_setColorFromBrush): changed to nsColor()
13431        (QPainter::_setColorFromPen): changed to nsColor()
13432        (QPainter::drawText): changed to nsColor()
13433        (QPainter::drawHighlightForText): changed to nsColor()
13434        (QPainter::drawLineForText): changed to nsColor()
13435        (QPainter::_fillRect): changed to nsColor()
13436        (QPainter::setShadow): changed to cgColor()
13437        (QPainter::drawFocusRing): changed to nsColor()
13438        * kwq/KWQTextEdit.mm:
13439        (QTextEdit::setPalette): changed to nsColor()
13440        * kwq/WebCoreBridge.mm:
13441        (-[WebCoreBridge selectionColor]): changed to nsColor()
13442        This patch ended up larger than intended after discussing
13443        with mjs about adding getCGColor() and getCIColor()
13444        We decided that having separate nsColor(), cgColor() and 
13445        ciColor() defined elsewhere, was cleanest.
13446        The rest of the patch is QColor additions for kdom/ksvg/kcanvas.
13447        http://bugs.webkit.org/show_bug.cgi?id=3829
13448
134492005-07-07  Eric Seidel  <eseidel@apple.com>
13450
13451        Reviewed by mjs.
13452
13453        * kwq/KWQPtrDict.h: Additions for KDOM
13454        (QPtrDictIterator::operator()): essentially post-increment.
13455        http://bugs.webkit.org/show_bug.cgi?id=3849
13456
134572005-07-07  Eric Seidel  <eseidel@apple.com>
13458
13459        Reviewed by mjs.
13460
13461        * khtml/css/parser.y: removed #define YYMAXDEPTH 0
13462        Bison 2.x compatibility
13463        http://bugs.webkit.org/show_bug.cgi?id=3882
13464
134652005-07-07  Eric Seidel  <eseidel@apple.com>
13466
13467        Reviewed by mjs.
13468
13469        * khtml/rendering/render_canvasimage.cpp: <cmath.h>
13470        * khtml/rendering/render_image.cpp: <cmath.h> instead of <math.h>
13471        * kwq/KWQDef.h: 64bit support for KDOM
13472        (qRound): inline mapping to lround.
13473        Newer patch, now gcc 3.3 compatible.
13474        Thanks to ggaren for the 3.3 fix.
13475        http://bugs.webkit.org/show_bug.cgi?id=3826
13476
134772005-07-06  Eric Seidel  <eseidel@apple.com>
13478
13479        Reviewed by mjs.
13480
13481        * ForwardingHeaders/qvaluevector.h: Added.
13482        * kwq/KWQValueVector.h: Added.
13483        Added QValueVector stub for KDOM.
13484        http://bugs.webkit.org/show_bug.cgi?id=3860
13485
134862005-07-06  Eric Seidel  <eseidel@apple.com>
13487
13488        Reviewed by mjs.
13489
13490        * kwq/KWQPoint.mm:
13491        (QPoint::operator CGPoint): Added.
13492        (operator*): Added.
13493        (operator<<): Added.
13494        * kwq/KWQPointArray.h: Added.
13495        (QPoint::setX): Added.
13496        (QPoint::setY): Added.
13497        (QPoint::isNull): Added.
13498        (QPoint::operator -=): Added.
13499        * kwq/KWQPointArray.mm: Added.
13500        (QPointArray::QPointArray): Added.
13501        (QPointArray::copy): Added.
13502        (QPointArray::boundingRect): Added.
13503        (QPointArray::point): Added.
13504        Necessary additions for KDOM/KSVG/KCanvas
13505        http://bugs.webkit.org/show_bug.cgi?id=3674
13506
135072005-07-06  Maciej Stachowiak  <mjs@apple.com>
13508
13509        Reviewed by hyatt.
13510
13511        - fixed size() and contains() methods on HashSet (they would not compile before)
13512
13513        * khtml/misc/hashset.h:
13514        (khtml::::size):
13515        * khtml/misc/hashtable.h:
13516        (khtml::::contains):
13517
135182005-07-06  Eric Seidel  <eseidel@apple.com>
13519
13520        Reviewed by mjs.
13521
13522        * ForwardingHeaders/kjs/ustring.h: Added.
13523        Used by kdom/Helper.cc
13524        http://bugs.webkit.org/show_bug.cgi?id=3859
13525
135262005-07-06  Geoffrey Garen  <ggaren@apple.com>
13527
13528        Reviewed by adele.
13529
13530        Modified layout tests to match rollout of changes for <rdar://problem/3792529> 
13531        REGRESSION (Mail): Tabs do not work the way they did in Panther
13532
13533        Tests modified:
13534        * layout-tests/editing/deleting/delete-tab-001-expected.txt:
13535        * layout-tests/editing/deleting/delete-tab-002-expected.txt:
13536        * layout-tests/editing/deleting/delete-tab-003-expected.txt:
13537        * layout-tests/editing/deleting/delete-tab-004-expected.txt:
13538        * layout-tests/editing/inserting/insert-tab-001-expected.txt:
13539        * layout-tests/editing/inserting/insert-tab-002-expected.txt:
13540        * layout-tests/editing/inserting/insert-tab-003-expected.txt:
13541        * layout-tests/editing/inserting/insert-tab-004-expected.txt:
13542        * layout-tests/fast/dom/quadraticCurveTo-expected.txt:
13543        * layout-tests/fast/js/string-replace-2-expected.txt:
13544        * layout-tests/fast/table/039-expected.txt:
13545        * layout-tests/fast/table/border-collapsing/004-expected.txt:
13546        * layout-tests/fast/tokenizer/script_extra_close-expected.txt:
13547
135482005-07-06  Maciej Stachowiak  <mjs@apple.com>
13549
13550        Even yet still more gcc4 build fixes.
13551	
13552        * khtml/misc/hashset.h:
13553        (khtml::convertAdapter):
13554        (khtml::::insert):
13555
135562005-07-06  Maciej Stachowiak  <mjs@apple.com>
13557
13558        More ggc-4-only build fixage.
13559	
13560        * khtml/misc/hashtraits.h:
13561
135622005-07-06  Maciej Stachowiak  <mjs@apple.com>
13563
13564        Fix additional gcc-4-only build breakage.
13565
13566        * khtml/misc/pointerhash.h:
13567        (khtml::PointerHashConstIteratorAdapter::operator*):
13568
135692005-07-05  Maciej Stachowiak  <mjs@apple.com>
13570
13571        Forgot to commit a file. Fix for build breakage.
13572
13573        * ForwardingHeaders/misc/pointerhash.h: Added.
13574
135752005-07-05  Maciej Stachowiak  <mjs@apple.com>
13576
13577	- remove stat dumping (accidentally left enabled in last patch)
13578
13579	Unreviewed since this was a mistake in the last checkin.
13580
13581        * khtml/misc/hashtable.h:
13582
135832005-07-04  Maciej Stachowiak  <mjs@apple.com>
13584
13585        Reviewed by hyatt.
13586
13587        Numerous hash code improvements:
13588
13589	- added HashMap and the required support for it in HashTable
13590	- convert to using deleted sentinels and double hashing instead of linear 
13591	probing and reinsert on delete
13592	- add support for traits so that empty and deleted values can be customized 
13593	per type
13594	- make insert return a pair of an iterator and a bool even at the API level
13595	- converted some code to use HashMap
13596	- added standard hash and equal functions for some types, plus case insensitive ones
13597	- lots of assorted code cleanup
13598	- pass hash functions as classes with two static functions instead of as functions
13599
13600        * khtml/css/cssstyleselector.cpp:
13601        (khtml::CSSRuleSet::CSSRuleSet): Use HashMap instead of QPtrDict.
13602        (khtml::CSSRuleSet::~CSSRuleSet): ditto
13603        (khtml::CSSRuleSet::addToRuleSet): ditto
13604        (khtml::CSSRuleSet::addRule): ditto
13605        * khtml/css/cssstyleselector.h:
13606        (khtml::CSSRuleSet::getIDRules): ditto
13607        (khtml::CSSRuleSet::getClassRules): ditto
13608        (khtml::CSSRuleSet::getTagRules): ditto
13609        * khtml/editing/jsediting.cpp:
13610        (DOM::DocumentImpl::commandImp): ditto
13611        * khtml/misc/hashfunctions.h: Added. Standard hash functions.
13612        (khtml::defaultEqual):
13613        (khtml::pointerHash<4>):
13614        (khtml::pointerHash<8>):
13615        (khtml::defaultHash<void *>):
13616        (khtml::defaultHash<DOM::DOMStringImpl *>):
13617        (khtml::caseInsensitiveHash):
13618        (khtml::caseInsensitiveEqual):
13619        * WebCore.pbproj/project.pbxproj:
13620        * khtml/misc/hashmap.h: Added.
13621        (khtml::HashMap::HashMap):
13622        (khtml::HashMap::size):
13623        (khtml::HashMap::capacity):
13624        (khtml::HashMap::isEmpty):
13625        (khtml::HashMap::begin):
13626        (khtml::HashMap::end):
13627        (khtml::HashMap::find):
13628        (khtml::HashMap::contains):
13629        (khtml::HashMap::insert):
13630        (khtml::HashMap::get):
13631        (khtml::HashMap::remove):
13632        (khtml::HashMap::clear):
13633        (khtml::HashMap::extractKey):
13634        * khtml/misc/hashset.h:
13635        (khtml::identityExtract):
13636        (khtml::::size):
13637        (khtml::::capacity):
13638        (khtml::::isEmpty):
13639        (khtml::::begin):
13640        (khtml::::end):
13641        (khtml::::find):
13642        (khtml::::contains):
13643        (khtml::::insert):
13644        (khtml::::remove):
13645        (khtml::::clear):
13646        (khtml::::convertAdapter):
13647        * khtml/misc/hashtable.cpp:
13648        (khtml::HashTableStats::~HashTableStats):
13649        * khtml/misc/hashtable.h:
13650        (khtml::HashTableIterator::HashTableIterator):
13651        (khtml::HashTableIterator::skipEmptyBuckets):
13652        (khtml::HashTableConstIterator::HashTableConstIterator):
13653        (khtml::HashTableConstIterator::skipEmptyBuckets):
13654        (khtml::HashTable::HashTable):
13655        (khtml::HashTable::insert):
13656        (khtml::HashTable::isEmptyBucket):
13657        (khtml::HashTable::isDeletedBucket):
13658        (khtml::HashTable::isEmptyOrDeletedBucket):
13659        (khtml::HashTable::identityConvert):
13660        (khtml::HashTable::extractKey):
13661        (khtml::HashTable::lookup):
13662        (khtml::HashTable::shouldExpand):
13663        (khtml::HashTable::mustRehashInPlace):
13664        (khtml::HashTable::clearBucket):
13665        (khtml::HashTable::deleteBucket):
13666        (khtml::HashTable::makeLookupResult):
13667        (khtml::HashTable::makeIterator):
13668        (khtml::HashTable::makeConstIterator):
13669        (khtml::::lookup):
13670        (khtml::::insert):
13671        (khtml::::reinsert):
13672        (khtml::::find):
13673        (khtml::::contains):
13674        (khtml::::remove):
13675        (khtml::::allocateTable):
13676        (khtml::::expand):
13677        (khtml::::rehash):
13678        (khtml::::clear):
13679        (khtml::::HashTable):
13680        (khtml::::swap):
13681        (khtml::::operator):
13682        (khtml::::checkConsistency):
13683        (khtml::::checkConsistencyExceptSize):
13684        * khtml/misc/hashtraits.h: Added.
13685        (khtml::HashTraits::emptyValue):
13686        (khtml::):
13687        (khtml::PairHashTraits::emptyValue):
13688        (khtml::PairHashTraits::deletedValue):
13689        * ForwardingHeaders/misc/hashmap.h: Added.
13690        * ForwardingHeaders/misc/hashset.h: Added.
13691        * WebCore.pbproj/project.pbxproj: Added new files.
13692        * khtml/misc/pointerhash.h: Added.
13693        (khtml::PointerHashIteratorAdapter::PointerHashIteratorAdapter):
13694        (khtml::PointerHashIteratorAdapter::operator*):
13695        (khtml::PointerHashIteratorAdapter::operator->):
13696        (khtml::PointerHashIteratorAdapter::operator++):
13697        (khtml::PointerHashIteratorAdapter::operator==):
13698        (khtml::PointerHashIteratorAdapter::operator!=):
13699        (khtml::PointerHashConstIteratorAdapter::PointerHashConstIteratorAdapter):
13700        (khtml::PointerHashConstIteratorAdapter::operator*):
13701        (khtml::PointerHashConstIteratorAdapter::operator->):
13702        (khtml::PointerHashConstIteratorAdapter::operator++):
13703        (khtml::PointerHashConstIteratorAdapter::operator==):
13704        (khtml::PointerHashConstIteratorAdapter::operator!=):
13705        (khtml::):
13706
137072005-07-05  Geoffrey Garen  <ggaren@apple.com>
13708
13709        Rolled in patch by opendarwin.org@mitzpettel.com
13710
13711        -fixes http://bugs.webkit.org/show_bug.cgi?id=3733
13712        Incorrect bidi layout of ETs, ANs, and ENs in some contexts
13713        
13714        Reviewed by hyatt.
13715
13716        * khtml/rendering/bidi.cpp:
13717        (khtml::appendRun):
13718        (khtml::RenderBlock::bidiReorderLine):
13719        (khtml::RenderBlock::layoutInlineChildren):
13720
13721        Modified test results to account for run splitting.
13722        This is a known bug that we need to fix separately:
13723        http://bugs.webkit.org/show_bug.cgi?id=3838
13724        
13725        * layout-tests/css1/basic/containment-expected.txt:
13726        * layout-tests/css1/box_properties/float_on_text_elements-expected.txt:
13727        * layout-tests/css1/font_properties/font-expected.txt:
13728        * layout-tests/css1/formatting_model/inline_elements-expected.txt:
13729        * layout-tests/css1/pseudo/anchor-expected.txt:
13730        * layout-tests/editing/deleting/delete-tab-001-expected.txt:
13731        * layout-tests/editing/deleting/delete-tab-002-expected.txt:
13732        * layout-tests/editing/deleting/delete-tab-003-expected.txt:
13733        * layout-tests/editing/deleting/delete-tab-004-expected.txt:
13734        * layout-tests/editing/inserting/insert-tab-001-expected.txt:
13735        * layout-tests/editing/inserting/insert-tab-002-expected.txt:
13736        * layout-tests/editing/inserting/insert-tab-003-expected.txt:
13737        * layout-tests/editing/inserting/insert-tab-004-expected.txt:
13738        * layout-tests/editing/style/relative-font-size-change-001-expected.txt:
13739        * layout-tests/editing/style/relative-font-size-change-004-expected.txt:
13740        * layout-tests/fast/block/basic/018-expected.txt:
13741        * layout-tests/fast/dom/quadraticCurveTo-expected.txt:
13742        * layout-tests/fast/invalid/nestedh3s-expected.txt:
13743        * layout-tests/fast/js/string-replace-2-expected.txt:
13744        * layout-tests/fast/lists/003-expected.txt:
13745        * layout-tests/fast/selectors/166-expected.txt:
13746        * layout-tests/fast/table/039-expected.txt:
13747        * layout-tests/fast/table/border-collapsing/004-expected.txt:
13748        * layout-tests/fast/text/basic/004-expected.txt:
13749        * layout-tests/fast/tokenizer/script_extra_close-expected.txt:
13750
137512005-07-05  Adele Peterson  <adele@apple.com>
13752
13753       Rolling out changes for <rdar://problem/3792529> REGRESSION (Mail): Tabs do not work the way they did in Panther (especially useful in plain text mail)
13754       since it caused a 2% performance regression.
13755
13756        * khtml/editing/apply_style_command.cpp:
13757        (khtml::createStyleSpanElement):
13758        (khtml::ApplyStyleCommand::removeCSSStyle):
13759        (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
13760        * khtml/editing/delete_selection_command.cpp:
13761        (khtml::DeleteSelectionCommand::saveTypingStyleState):
13762        * khtml/editing/edit_command.cpp:
13763        (khtml::EditCommand::styleAtPosition):
13764        * khtml/editing/html_interchange.h:
13765        * khtml/editing/htmlediting.cpp:
13766        (khtml::isSpecialElement):
13767        * khtml/editing/htmlediting.h:
13768        * khtml/editing/insert_text_command.cpp:
13769        (khtml::InsertTextCommand::prepareForTextInsertion):
13770        (khtml::InsertTextCommand::input):
13771        * khtml/editing/insert_text_command.h:
13772        * khtml/editing/markup.cpp:
13773        (khtml::createFragmentFromText):
13774        * khtml/editing/replace_selection_command.cpp:
13775        (khtml::ReplacementFragment::removeStyleNodes):
13776        * khtml/html/htmltokenizer.cpp:
13777        (khtml::HTMLTokenizer::begin):
13778        (khtml::HTMLTokenizer::processListing):
13779        (khtml::HTMLTokenizer::parseEntity):
13780        (khtml::HTMLTokenizer::parseTag):
13781        (khtml::HTMLTokenizer::addPending):
13782        (khtml::HTMLTokenizer::write):
13783        * khtml/html/htmltokenizer.h:
13784        (khtml::HTMLTokenizer::):
13785        * khtml/rendering/bidi.cpp:
13786        (khtml::addRun):
13787        (khtml::RenderBlock::computeHorizontalPositionsForLine):
13788        (khtml::RenderBlock::skipWhitespace):
13789        (khtml::RenderBlock::findNextLineBreak):
13790        (khtml::RenderBlock::checkLinesForTextOverflow):
13791        * khtml/rendering/break_lines.cpp:
13792        (khtml::isBreakable):
13793        * khtml/rendering/font.cpp:
13794        (Font::drawHighlightForText):
13795        (Font::drawText):
13796        (Font::floatWidth):
13797        (Font::floatCharacterWidths):
13798        (Font::checkSelectionPoint):
13799        (Font::width):
13800        * khtml/rendering/font.h:
13801        * khtml/rendering/render_block.cpp:
13802        (khtml::stripTrailingSpace):
13803        (khtml::RenderBlock::calcInlineMinMaxWidth):
13804        * khtml/rendering/render_block.h:
13805        * khtml/rendering/render_br.h:
13806        (khtml::RenderBR::width):
13807        * khtml/rendering/render_flexbox.cpp:
13808        (khtml::RenderFlexibleBox::layoutVerticalBox):
13809        * khtml/rendering/render_image.cpp:
13810        (RenderImage::setPixmap):
13811        (RenderImage::paint):
13812        * khtml/rendering/render_line.cpp:
13813        (khtml::EllipsisBox::paint):
13814        * khtml/rendering/render_line.h:
13815        (khtml::InlineBox::width):
13816        (khtml::InlineBox::xPos):
13817        (khtml::InlineBox::yPos):
13818        (khtml::InlineBox::height):
13819        (khtml::InlineBox::baseline):
13820        * khtml/rendering/render_list.cpp:
13821        (RenderListMarker::paint):
13822        (RenderListMarker::calcMinMaxWidth):
13823        * khtml/rendering/render_object.cpp:
13824        (RenderObject::recalcMinMaxWidths):
13825        * khtml/rendering/render_object.h:
13826        * khtml/rendering/render_replaced.cpp:
13827        * khtml/rendering/render_text.cpp:
13828        (InlineTextBox::selectionRect):
13829        (InlineTextBox::paint):
13830        (InlineTextBox::paintSelection):
13831        (InlineTextBox::paintMarkedTextBackground):
13832        (InlineTextBox::offsetForPosition):
13833        (InlineTextBox::positionForOffset):
13834        (RenderText::cacheWidths):
13835        (RenderText::widthFromCache):
13836        (RenderText::trimmedMinMaxWidth):
13837        (RenderText::calcMinMaxWidth):
13838        (RenderText::containsOnlyWhitespace):
13839        (RenderText::width):
13840        * khtml/rendering/render_text.h:
13841        * kwq/KWQFontMetrics.h:
13842        * kwq/KWQFontMetrics.mm:
13843        (QFontMetrics::width):
13844        (QFontMetrics::charWidth):
13845        (QFontMetrics::floatWidth):
13846        (QFontMetrics::floatCharacterWidths):
13847        (QFontMetrics::checkSelectionPoint):
13848        (QFontMetrics::boundingRect):
13849        (QFontMetrics::size):
13850        * kwq/KWQPainter.h:
13851        * kwq/KWQPainter.mm:
13852        (QPainter::drawText):
13853        (QPainter::drawHighlightForText):
13854        * kwq/WebCoreTextRenderer.h:
13855        * kwq/WebCoreTextRendererFactory.mm:
13856        (WebCoreInitializeEmptyTextStyle):
13857        * layout-tests/editing/deleting/delete-tab-001-expected.txt:
13858        * layout-tests/editing/deleting/delete-tab-001.html:
13859        * layout-tests/editing/deleting/delete-tab-002-expected.txt:
13860        * layout-tests/editing/deleting/delete-tab-002.html:
13861        * layout-tests/editing/deleting/delete-tab-003-expected.txt:
13862        * layout-tests/editing/deleting/delete-tab-003.html:
13863        * layout-tests/editing/deleting/delete-tab-004-expected.txt:
13864        * layout-tests/editing/deleting/delete-tab-004.html:
13865        * layout-tests/editing/inserting/insert-tab-001-expected.txt:
13866        * layout-tests/editing/inserting/insert-tab-002-expected.txt:
13867        * layout-tests/editing/inserting/insert-tab-003-expected.txt:
13868        * layout-tests/editing/inserting/insert-tab-004-expected.txt:
13869        * layout-tests/fast/dom/quadraticCurveTo-expected.txt:
13870        * layout-tests/fast/js/string-replace-2-expected.txt:
13871        * layout-tests/fast/table/039-expected.txt:
13872        * layout-tests/fast/table/border-collapsing/004-expected.txt:
13873        * layout-tests/fast/tokenizer/script_extra_close-expected.txt:
13874
138752005-07-05  Beth Dakin  <bdakin@apple.com>
13876
13877	Adding colspan test for HTMLTableElement and bdo test for HTMLElement.
13878
13879        Reviewed by Adele.
13880
13881        Test cases added: (NONE)
13882
13883        * ChangeLog:
13884        * layout-tests/fast/dom/HTMLElement/bdo-expected.txt: Added.
13885        * layout-tests/fast/dom/HTMLElement/bdo.html: Added.
13886        * layout-tests/fast/dom/HTMLTableElement/colSpan-expected.txt: Added.
13887        * layout-tests/fast/dom/HTMLTableElement/colSpan.html: Added.
13888
138892005-07-05  Geoffrey Garen  <ggaren@apple.com>
13890
13891        -rolled out patch for 
13892        http://bugs.webkit.org/show_bug.cgi?id=3826
13893        because it fails to build w/gcc3.3 (previous fix didn't completely work)
13894
13895        * kwq/KWQDef.h:
13896
138972005-07-05  Geoffrey Garen  <ggaren@apple.com>
13898
13899        -fixed failed build introduced by fix to
13900        http://bugs.webkit.org/show_bug.cgi?id=3826
13901
13902        Reviewed by sullivan.
13903
13904        * kwq/KWQDef.h: changed 64 bit typedef to match def in sys/types.h
13905
139062005-07-05  Eric Seidel  <eseidel@apple.com>
13907
13908        Reviewed by mjs.
13909
13910        * kwq/KWQPalette.h:
13911        (QColorGroup::): Enum values added for KDOM.
13912        (QPalette::): Enum values added for KDOM.
13913        * kwq/KWQPalette.mm: Added.
13914        (QPalette::setColor): Added (only supports "active").
13915        Many of these enum values (particularly ColorGroup)
13916        may be removed as KDOM gets better integrated with our tree.
13917        http://bugs.webkit.org/show_bug.cgi?id=3851
13918
139192005-07-05  Eric Seidel  <eseidel@apple.com>
13920
13921        Reviewed by mjs.
13922
13923        * ForwardingHeaders/kinstance.h: Added.
13924        * ForwardingHeaders/kio/netaccess.h: Added.
13925        * ForwardingHeaders/kjs/scope_chain.h: Added.
13926        * ForwardingHeaders/qdir.h: Added.
13927        * ForwardingHeaders/qglobal.h: Added.
13928        For KDOM.
13929        http://bugs.webkit.org/show_bug.cgi?id=3822
13930  
139312005-07-05  Eric Seidel  <eseidel@apple.com>
13932
13933        Reviewed by mjs.
13934
13935        * kwq/KWQDef.h: 64bit types added
13936        (qRound): For kdom
13937        http://bugs.webkit.org/show_bug.cgi?id=3826
13938
139392005-07-05  Eric Seidel  <eseidel@apple.com>
13940
13941        Reviewed by mjs.
13942
13943        * kwq/KWQDateTime.h: Necessary KDOM additions.
13944        (QTime::currentTime): Added.
13945        * kwq/KWQDateTime.mm:
13946        (QTime::addMSecs): Added.
13947        http://bugs.webkit.org/show_bug.cgi?id=3828
13948
139492005-07-05  Eric Seidel  <eseidel@apple.com>
13950
13951        Reviewed by mjs.
13952
13953        * ForwardingHeaders/qwmatrix.h: Added.
13954        * WebCore.pbproj/project.pbxproj: Added KWQMatrix.*
13955        * khtml/rendering/render_image.cpp: Now includes qwmatrix.h
13956        * kwq/KWQPixmap.h: Removed QWMatrix stub.
13957        * kwq/KWQWMatrix.h: Added.
13958        (QWMatrix::m11): simple accessors.
13959        (QWMatrix::m12):
13960        (QWMatrix::m21):
13961        (QWMatrix::m22):
13962        (QWMatrix::dx):
13963        (QWMatrix::dy):
13964        * kwq/KWQWMatrix.mm: Added.
13965        (QWMatrix::QWMatrix): All are standard Qt functions.
13966        (QWMatrix::setMatrix):
13967        (QWMatrix::map):
13968        (QWMatrix::isIdentity):
13969        (QWMatrix::reset):
13970        (QWMatrix::scale):
13971        (QWMatrix::rotate):
13972        (QWMatrix::translate):
13973        (QWMatrix::shear):
13974        (QWMatrix::det):
13975        (QWMatrix::isInvertible):
13976        (QWMatrix::invert):
13977        (QWMatrix::operator CGAffineTransform):
13978        (QWMatrix::operator== ):
13979        (QWMatrix::operator*= ):
13980        Simple white-room QWMatrix implementation entirely 
13981        based on CGAffineTransform.
13982        http://bugs.webkit.org/show_bug.cgi?id=3821
13983
139842005-07-05  Eric Seidel  <eseidel@apple.com>
13985
13986        Reviewed by mjs.
13987
13988        * kwq/KWQPtrList.h: additions necessary for kdom.
13989        (QPtrList::findRef): added.
13990        (QPtrList::begin): added.
13991        (QPtrList::end): added.
13992        (QPtrListIterator::operator*): added.
13993        http://bugs.webkit.org/show_bug.cgi?id=3850
13994
139952005-07-04  Maciej Stachowiak  <mjs@apple.com
13996
13997        Expected results for layout tests from last patch.
13998	
13999        * layout-tests/fast/js/eval-var-decl-expected.txt: Added.
14000        * layout-tests/fast/js/has-own-property-expected.txt: Added.
14001
140022005-07-03  Maciej Stachowiak  <mjs@apple.com>
14003
14004	Original patch from Mark Rowe <opendarwin.org@bdash.net.nz>, reviewed by me.
14005	Fixes to patch by me, reviewed by John Sullivan.
14006
14007	- fixed http://bugs.webkit.org/show_bug.cgi?id=3293
14008
14009        Test cases added:
14010        * layout-tests/fast/js/has-own-property.html: Added - tests this change.
14011        * layout-tests/fast/js/eval-var-decl.html: Added - test depends on this change.
14012
14013        * khtml/ecma/kjs_css.cpp:
14014        (KJS::DOMCSSStyleDeclaration::hasOwnProperty):
14015        * khtml/ecma/kjs_css.h:
14016        * khtml/ecma/kjs_dom.cpp:
14017        (KJS::DOMNodeList::hasOwnProperty):
14018        (KJS::DOMElement::tryGet):
14019        (KJS::DOMNamedNodeMap::hasOwnProperty):
14020        * khtml/ecma/kjs_dom.h:
14021        * khtml/ecma/kjs_html.cpp:
14022        (KJS::HTMLDocument::hasOwnProperty):
14023        (KJS::HTMLDocument::tryGet):
14024        (KJS::KJS::HTMLElement::hasOwnProperty):
14025        (KJS::KJS::HTMLCollection::hasOwnProperty):
14026        * khtml/ecma/kjs_html.h:
14027        * khtml/ecma/kjs_window.cpp:
14028        (KJS::Window::hasOwnProperty):
14029        (KJS::Konqueror::hasOwnProperty):
14030        * khtml/ecma/kjs_window.h:
14031
140322005-07-03  Eric Seidel  <eseidel@apple.com>
14033
14034        Reviewed by mjs.
14035
14036        * kwq/KWQTimer.h:
14037        * kwq/KWQTimer.mm:
14038        (QTimer::QTimer): added parent pointer (and warning)
14039        http://bugs.webkit.org/show_bug.cgi?id=3825
14040 
140412005-07-03  Eric Seidel  <eseidel@apple.com>
14042
14043        Reviewed by mjs.
14044
14045        * khtml/xml/dom_docimpl.cpp: 
14046        (DocumentImpl::setDocumentChanged): fixed to use new API
14047        * kwq/KWQKStaticDeleter.h: 
14048        (KStaticDeleter::setObject): fixed to take 3rd argument
14049        http://bugs.webkit.org/show_bug.cgi?id=3823
14050
140512005-07-03  Eric Seidel  <eseidel@apple.com>
14052
14053        Reviewed by mjs.
14054
14055        * kwq/KWQValueList.h:
14056        (QValueList::find): KDOM support
14057        (QValueList::constBegin): KDE compatibility
14058        (QValueList::constEnd): KDE compatibility
14059        * kwq/KWQValueListImpl.h:
14060        * kwq/KWQValueListImpl.mm:
14061        (KWQValueListImpl::findEqualNode): KDOM support
14062        http://bugs.webkit.org/show_bug.cgi?id=3832
14063
140642005-07-03  Eric Seidel  <eseidel@apple.com>
14065
14066        Reviewed by mjs.
14067
14068        * kwq/KWQFontMetrics.h:
14069        * kwq/KWQFontMetrics.mm:
14070        (QFontMetrics::boundingRect): added boundingRect(QChar)
14071        http://bugs.webkit.org/show_bug.cgi?id=3827
14072  
140732005-07-03  Eric Seidel  <eseidel@apple.com>
14074
14075        Reviewed by mjs.
14076
14077        * kwq/KWQListImpl.h:
14078        * kwq/KWQListImpl.mm:
14079        (KWQListImpl::findRef): Added to support 
14080        KDOM::NodeImpl::compareDocumentPosition(NodeImpl *other)
14081  
140822005-07-03  Eric Seidel  <eseidel@apple.com>
14083
14084        Reviewed by mjs.
14085
14086        * ForwardingHeaders/qintdict.h: maps to KWQIntDict.h
14087        * kwq/KWQIntDict.h: copy of KWQPtrDict.h replacing T * with int.
14088
140892005-07-03  Eric Seidel  <eseidel@apple.com>
14090
14091        * kwq/KWQPair.h: added newline, per mjs's request.
14092
140932005-07-03  Eric Seidel  <eseidel@apple.com>
14094
14095        Reviewed by mjs.
14096
14097        * ForwardingHeaders/qpair.h: Added.
14098        * kwq/KWQPair.h: Added.
14099	Qt compatible QPair, built on std::pair
14100	http://bugs.webkit.org/show_bug.cgi?id=3824
14101
141022005-07-01  Beth Dakin  <bdakin@apple.com>
14103
14104        Adding createCaption test for HTMLTableElement.
14105
14106        Reviewed by Adele (sort of).
14107
14108        Test cases added:
14109
14110        * layout-tests/fast/dom/HTMLTableElement/createCaption-expected.txt: Added.
14111        * layout-tests/fast/dom/HTMLTableElement/createCaption.html: Added.
14112
141132005-07-01  Geoffrey Garen  <ggaren@apple.com>
14114
14115        Moving dom tests around to conform to new directory structure
14116        specified in today's meeting.
14117
14118        Reviewed by justing.
14119
14120        Test cases added: 
14121
14122        * layout-tests/fast/dom/HTMLDocument/title-get-expected.txt: Added.
14123        * layout-tests/fast/dom/HTMLDocument/title-get.html: Added.
14124        * layout-tests/fast/dom/HTMLDocument/title-set-expected.txt: Added.
14125        * layout-tests/fast/dom/HTMLDocument/title-set.html: Added.
14126        * layout-tests/fast/dom/HTMLDocument/title/get-expected.txt: Removed.
14127        * layout-tests/fast/dom/HTMLDocument/title/get.html: Removed.
14128        * layout-tests/fast/dom/HTMLDocument/title/set-expected.txt: Removed.
14129        * layout-tests/fast/dom/HTMLDocument/title/set.html: Removed.
14130        * layout-tests/fast/dom/HTMLDocument/url-getset-expected.txt: Added.
14131        * layout-tests/fast/dom/HTMLDocument/url-getset.html: Added.
14132        * layout-tests/fast/dom/HTMLDocument/url/getset-expected.txt: Removed.
14133        * layout-tests/fast/dom/HTMLDocument/url/getset.html: Removed.
14134        * layout-tests/fast/dom/HTMLDocument/write-call-expected.txt: Added.
14135        * layout-tests/fast/dom/HTMLDocument/write-call.html: Added.
14136        * layout-tests/fast/dom/HTMLDocument/write-multiple-calls-expected.txt: Added.
14137        * layout-tests/fast/dom/HTMLDocument/write-multiple-calls.html: Added.
14138        * layout-tests/fast/dom/HTMLDocument/write/call-expected.txt: Removed.
14139        * layout-tests/fast/dom/HTMLDocument/write/call.html: Removed.
14140        * layout-tests/fast/dom/HTMLDocument/write/multiple-calls-expected.txt: Removed.
14141        * layout-tests/fast/dom/HTMLDocument/write/multiple-calls.html: Removed.
14142        * layout-tests/fast/dom/HTMLDocument/writeln-call-expected.txt: Added.
14143        * layout-tests/fast/dom/HTMLDocument/writeln-call.html: Added.
14144        * layout-tests/fast/dom/HTMLDocument/writeln-multiple-calls-expected.txt: Added.
14145        * layout-tests/fast/dom/HTMLDocument/writeln-multiple-calls.html: Added.
14146        * layout-tests/fast/dom/HTMLDocument/writeln/call-expected.txt: Removed.
14147        * layout-tests/fast/dom/HTMLDocument/writeln/call.html: Removed.
14148        * layout-tests/fast/dom/HTMLDocument/writeln/multiple-calls-expected.txt: Removed.
14149        * layout-tests/fast/dom/HTMLDocument/writeln/multiple-calls.html: Removed.
14150
141512005-07-01  Geoffrey Garen  <ggaren@apple.com>
14152
14153        -landed patch by Eric Seidel <eric@webkit.org>
14154        
14155        -for http://bugs.webkit.org/show_bug.cgi?id=3657
14156        GroundWork:  Moving some functions from khtml->jsc following kjs TOT
14157        
14158        - no layout test necessary yet - only groundwork
14159
14160        Reviewed by darin.
14161
14162        * ForwardingHeaders/qintdict.h:
14163        * khtml/ecma/kjs_binding.h:
14164
141652005-07-01  Geoffrey Garen  <ggaren@apple.com>
14166
14167        -landed patch by Carsten Guenther <cguenther@gmail.com>
14168        http://bugs.webkit.org/show_bug.cgi?id=3477
14169
14170        -corrects errors in date layout test
14171
14172        Reviewed by darin.
14173
14174        Test cases modified:
14175        * layout-tests/fast/js/date-parse-test.html:
14176
141772005-07-01  Eric Seidel  <eseidel@apple.com>
14178
14179        Reviewed by darin.
14180
14181        * kwq/KWQSize.h:
14182        * kwq/KWQSize.mm:
14183        (QSize::operator CGSize): adding CGSize conversion support
14184	http://bugs.webkit.org/show_bug.cgi?id=3669
14185
141862005-06-30  Bruce DiBello  <bdibello@apple.com>
14187
14188        Reviewed by Geoff Garen.
14189
14190        Test cases added: getting and setting div.align
14191
14192        * layout-tests/fast/dom/HTMLDivElement/align/getset-expected.txt: Added.
14193        * layout-tests/fast/dom/HTMLDivElement/align/getset.html: Added.
14194
141952005-06-29  Anders Carlsson  <andersca@mac.com>
14196
14197        Reviewed and landed by Darin Adler.
14198
14199        - Fix <http://bugs.webkit.org/show_bug.cgi?id=3274>
14200        document() not supported
14201
14202        Test cases added:
14203        * layout-tests/fast/xsl/document-function-expected.txt: Added.
14204        * layout-tests/fast/xsl/document-function.xml: Added.
14205        * layout-tests/fast/xsl/document-function.xsl: Added.
14206        * layout-tests/fast/xsl/resources/document-function-source.xml: Added.
14207        
14208        * khtml/xsl/xslt_processorimpl.cpp:
14209        (DOM::parseErrorFunc):
14210        Stub to prevent errors from getting written to the console.
14211        
14212        (DOM::stylesheetLoadFunc):
14213        Fetch and parse documents.
14214        
14215        (DOM::XSLTProcessorImpl::transformDocument):
14216        Use the processor as the global variable instead of the 
14217        style sheet.
14218        
14219        * khtml/xsl/xslt_processorimpl.h:
14220        (DOM::XSLTProcessorImpl::stylesheet):
14221        (DOM::XSLTProcessorImpl::sourceDocument):
14222        Add accessors for source document and stylesheet.
14223
142242005-06-29  Maciej Stachowiak  <mjs@apple.com>
14225
14226        Unreviewed - fixing build breakage with gcc 4.
14227
14228        * khtml/misc/hashtable.h: Don't use a typedef when declaring a class friend.
14229
142302005-06-29  David Harrison  <harrison@apple.com>
14231
14232        Temporarily enable tab coalescing ahead of white-space:pre-wrap
14233        change because of problems with keeping the tabs separate.  Will
14234        revert when problems are fixed or remove if I do pre-wrap
14235        first.
14236
14237        * khtml/editing/insert_text_command.cpp:
14238        (khtml::InsertTextCommand::prepareForTextInsertion):
14239        (khtml::InsertTextCommand::insertTab):
14240        * khtml/editing/markup.cpp:
14241        (khtml::createParagraphContentsFromString):
14242
142432005-06-29  David Harrison  <harrison@apple.com>
14244
14245        Reviewed by Dave Hyatt (rendering) and Maciej (editing).
14246
14247        Test cases added:  Coming soon.  Will include with next round of changes for this bug.
14248
14249        This is the first checkin for...
14250        
14251        <rdar://problem/3792529> REGRESSION (Mail): Tabs do not work the way they did in Panther (especially useful in plain text mail)
14252        
14253        Basic strategy is to put tabs into spans with white-space:pre style, and
14254        render them with tabs stops every 8th space, where the space width and
14255        the left margin are those of the enclosing block.
14256        
14257        What's left is to switch to implement white-space:pre-wrap so
14258        that we can coalesce consecutive tabs while maintaining proper
14259        line breaking.  That will keep the markup smaller.
14260
14261        * khtml/editing/apply_style_command.cpp:
14262        (khtml::createStyleSpanElement):
14263        (khtml::ApplyStyleCommand::removeCSSStyle):
14264        (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
14265        * khtml/editing/delete_selection_command.cpp:
14266        (khtml::DeleteSelectionCommand::saveTypingStyleState):
14267        * khtml/editing/edit_command.cpp:
14268        (khtml::EditCommand::styleAtPosition):
14269        * khtml/editing/html_interchange.h:
14270        * khtml/editing/htmlediting.cpp:
14271        (khtml::isSpecialElement):
14272        (khtml::isTabSpanNode):
14273        (khtml::isTabSpanTextNode):
14274        (khtml::positionBeforeTabSpan):
14275        (khtml::createTabSpanElement):
14276        * khtml/editing/htmlediting.h:
14277        * khtml/editing/insert_text_command.cpp:
14278        (khtml::InsertTextCommand::prepareForTextInsertion):
14279        (khtml::InsertTextCommand::input):
14280        (khtml::InsertTextCommand::insertTab):
14281        * khtml/editing/insert_text_command.h:
14282        * khtml/editing/markup.cpp:
14283        (khtml::createParagraphContentsFromString):
14284        (khtml::createFragmentFromText):
14285        * khtml/editing/replace_selection_command.cpp:
14286        (khtml::ReplacementFragment::removeStyleNodes):
14287        * khtml/html/htmltokenizer.cpp:
14288        (khtml::HTMLTokenizer::begin):
14289        (khtml::HTMLTokenizer::processListing):
14290        (khtml::HTMLTokenizer::parseEntity):
14291        (khtml::HTMLTokenizer::parseTag):
14292        (khtml::HTMLTokenizer::addPending):
14293        (khtml::HTMLTokenizer::write):
14294        * khtml/html/htmltokenizer.h:
14295        (khtml::HTMLTokenizer::):
14296        * khtml/rendering/bidi.cpp:
14297        (khtml::addRun):
14298        (khtml::RenderBlock::tabWidth):
14299        (khtml::RenderBlock::computeHorizontalPositionsForLine):
14300        (khtml::RenderBlock::skipWhitespace):
14301        (khtml::RenderBlock::findNextLineBreak):
14302        (khtml::RenderBlock::checkLinesForTextOverflow):
14303        * khtml/rendering/break_lines.cpp:
14304        (khtml::isBreakable):
14305        * khtml/rendering/font.cpp:
14306        (Font::drawHighlightForText):
14307        (Font::drawText):
14308        (Font::floatWidth):
14309        (Font::floatCharacterWidths):
14310        (Font::checkSelectionPoint):
14311        (Font::width):
14312        * khtml/rendering/font.h:
14313        * khtml/rendering/render_block.cpp:
14314        (khtml::stripTrailingSpace):
14315        (khtml::RenderBlock::calcInlineMinMaxWidth):
14316        * khtml/rendering/render_block.h:
14317        * khtml/rendering/render_br.h:
14318        (khtml::RenderBR::width):
14319        * khtml/rendering/render_flexbox.cpp:
14320        (khtml::RenderFlexibleBox::layoutVerticalBox):
14321        * khtml/rendering/render_image.cpp:
14322        (RenderImage::setPixmap):
14323        (RenderImage::paint):
14324        * khtml/rendering/render_line.cpp:
14325        (khtml::EllipsisBox::paint):
14326        * khtml/rendering/render_line.h:
14327        (khtml::InlineBox::width):
14328        (khtml::InlineBox::xPos):
14329        (khtml::InlineBox::yPos):
14330        (khtml::InlineBox::height):
14331        (khtml::InlineBox::baseline):
14332        * khtml/rendering/render_list.cpp:
14333        (RenderListMarker::paint):
14334        (RenderListMarker::calcMinMaxWidth):
14335        * khtml/rendering/render_object.cpp:
14336        (RenderObject::tabWidth):
14337        (RenderObject::recalcMinMaxWidths):
14338        * khtml/rendering/render_object.h:
14339        * khtml/rendering/render_replaced.cpp:
14340        * khtml/rendering/render_text.cpp:
14341        (InlineTextBox::selectionRect):
14342        (InlineTextBox::paint):
14343        (InlineTextBox::paintSelection):
14344        (InlineTextBox::paintMarkedTextBackground):
14345        (InlineTextBox::textPos):
14346        (InlineTextBox::offsetForPosition):
14347        (InlineTextBox::positionForOffset):
14348        (RenderText::cacheWidths):
14349        (RenderText::widthFromCache):
14350        (RenderText::trimmedMinMaxWidth):
14351        (RenderText::calcMinMaxWidth):
14352        (RenderText::containsOnlyWhitespace):
14353        (RenderText::width):
14354        * khtml/rendering/render_text.h:
14355        * kwq/KWQFontMetrics.h:
14356        * kwq/KWQFontMetrics.mm:
14357        (QFontMetrics::width):
14358        (QFontMetrics::charWidth):
14359        (QFontMetrics::floatWidth):
14360        (QFontMetrics::floatCharacterWidths):
14361        (QFontMetrics::checkSelectionPoint):
14362        (QFontMetrics::boundingRect):
14363        (QFontMetrics::size):
14364        * kwq/KWQPainter.h:
14365        * kwq/KWQPainter.mm:
14366        (QPainter::drawText):
14367        (QPainter::drawHighlightForText):
14368        * kwq/WebCoreTextRenderer.h:
14369        * kwq/WebCoreTextRendererFactory.mm:
14370        (WebCoreInitializeEmptyTextStyle):
14371        * layout-tests/editing/deleting/delete-tab-001-expected.txt:
14372        * layout-tests/editing/deleting/delete-tab-001.html:
14373        * layout-tests/editing/deleting/delete-tab-002-expected.txt:
14374        * layout-tests/editing/deleting/delete-tab-002.html:
14375        * layout-tests/editing/deleting/delete-tab-003-expected.txt:
14376        * layout-tests/editing/deleting/delete-tab-003.html:
14377        * layout-tests/editing/deleting/delete-tab-004-expected.txt:
14378        * layout-tests/editing/deleting/delete-tab-004.html:
14379        * layout-tests/editing/inserting/insert-tab-001-expected.txt:
14380        * layout-tests/editing/inserting/insert-tab-002-expected.txt:
14381        * layout-tests/editing/inserting/insert-tab-003-expected.txt:
14382        * layout-tests/editing/inserting/insert-tab-004-expected.txt:
14383        * layout-tests/fast/dom/quadraticCurveTo-expected.txt:
14384        * layout-tests/fast/js/string-replace-2-expected.txt:
14385        * layout-tests/fast/table/039-expected.txt:
14386        * layout-tests/fast/table/border-collapsing/004-expected.txt:
14387        * layout-tests/fast/tokenizer/script_extra_close-expected.txt:
14388
143892005-06-29  Geoffrey Garen  <ggaren@apple.com>
14390
14391        Contributed by Francisco Tolmasky <tolmasky@gmail.com>
14392
14393        -test cases for fix to http://bugs.webkit.org/show_bug.cgi?id=3667
14394        Core JavaScript 1.5 Reference:Objects:Array:forEach
14395
14396        See JavaScriptCore Changelog for details on the patch.
14397
14398        Reviewed by darin.
14399
14400        Test cases added:
14401        * layout-tests/fast/js/array-every-expected.txt: Added.
14402        * layout-tests/fast/js/array-every.html: Added.
14403        * layout-tests/fast/js/array-foreach-expected.txt: Added.
14404        * layout-tests/fast/js/array-foreach.html: Added.
14405        * layout-tests/fast/js/array-some-expected.txt: Added.
14406        * layout-tests/fast/js/array-some.html: Added.
14407
144082005-06-29  Bruce DiBello  <bdibello@apple.com>
14409
14410        Reviewed by Geoff Garen
14411
14412        Test cases added: added expected results for previous check in
14413
14414        * layout-tests/fast/dom/HTMLDocument/url/getset-expected.txt: Added.
14415
144162005-06-29  Geoffrey Garen  <ggaren@apple.com>
14417
14418        DOM compatibility tests for HTMLDocument::writeln
14419
14420        Reviewed by justing.
14421
14422        Test cases added: 
14423
14424        * layout-tests/fast/dom/HTMLDocument/writeln/call-expected.txt: Added.
14425        * layout-tests/fast/dom/HTMLDocument/writeln/call.html: Added.
14426        * layout-tests/fast/dom/HTMLDocument/writeln/multiple-calls-expected.txt: Added.
14427        * layout-tests/fast/dom/HTMLDocument/writeln/multiple-calls.html: Added.
14428
144292005-06-29  Bruce DiBello  <bdibello@apple.com>
14430
14431        Reviewed by Geoff Garen.
14432
14433        Test cases added: added DOM test for document.URL
14434
14435        * layout-tests/fast/dom/HTMLDocument/url/getset.html: Added.
14436
144372005-06-29  Geoffrey Garen  <ggaren@apple.com>
14438
14439        DOM compatibility tests for HTMLDocument::write
14440
14441        Reviewed by justing.
14442
14443        Test cases added: 
14444        * layout-tests/fast/dom/HTMLDocument/write/call-expected.txt: Added.
14445        * layout-tests/fast/dom/HTMLDocument/write/call.html: Added.
14446        * layout-tests/fast/dom/HTMLDocument/write/multiple-calls-expected.txt: Added.
14447        * layout-tests/fast/dom/HTMLDocument/write/multiple-calls.html: Added.
14448
144492005-06-29  Geoffrey Garen  <ggaren@apple.com>
14450
14451        DOM compatibility tests for HTMLDocument::title
14452
14453        Reviewed by justing.
14454
14455        Test cases added: 
14456        * layout-tests/fast/dom/HTMLDocument/title/get-expected.txt: Added.
14457        * layout-tests/fast/dom/HTMLDocument/title/get.html: Added.
14458        * layout-tests/fast/dom/HTMLDocument/title/set-expected.txt: Added.
14459        * layout-tests/fast/dom/HTMLDocument/title/set.html: Added.
14460
144612005-06-28  Maciej Stachowiak  <mjs@apple.com>
14462
14463        Reviewed by Darin.
14464
14465        Added iterator support to new hashtable class, the HashSet API is
14466        now essentially complete.
14467
14468        Added support for consistency check mode.
14469
14470        * khtml/misc/hashset.h:
14471        (khtml::HashSet::capacity): Added
14472        (khtml::HashSet::begin): Added (both const and non-const)
14473        (khtml::HashSet::end): Added (both const and non-const)
14474        (khtml::HashSet::insert): Made both versions return an iterator
14475        (khtml::HashSet::find): Added (both const and on-const, returning appropriate iterator)
14476        (khtml::HashSet::contains): Added
14477        (khtml::HashSet::remove): Added version that takes an iterator argument
14478        (khtml::HashSet::clear): Added
14479        * khtml/misc/hashtable.h:
14480        (khtml::HashTableIterator): New class with all the obvious iterator stuff.
14481        (khtml::HashTableConstIterator::HashTableConstIterator): New class with all the obvious
14482        const iterator stuff.
14483        (khtml::HashTable::begin): Added (both const and non-consts)
14484        (khtml::HashTable::end): Added (both const and non-consts)
14485        (khtml::HashTable::capacity): Added
14486        (khtml::HashTable::insert): Implement non-template method in terms
14487        of template method.
14488        (khtml::HashTable::contains): Added (implemented in terms of find)
14489        (khtml::HashTable::remove): Implemented key remove in terms of find and 
14490        iterator remove.
14491        (khtml::HashTable::hash): Made static
14492        (khtml::HashTable::equal): Made static
14493        (khtml::HashTable::identityConvert): Added - no-op convert method so template insert
14494        method can be implemented in terms of non-template
14495        (khtml::HashTable::insert): Changed to return iterator
14496        (khtml::HashTable::reinsert): Recoded to be more like the other functions
14497        (khtml::HashTable::find): Added
14498        (khtml::HashTable::remove): Added iterator version
14499        (khtml::HashTable::clear): Added
14500        * khtml/xml/dom_atomicstring.cpp:
14501        (DOM::AtomicString::add): Updated to deal with the fact that insert returns an iterator
14502        (khtml::HashTable::shouldExpand): New helper.
14503        (khtml::HashTable::shouldShrink): ditto
14504        (khtml::HashTable::makeIterator): ditto
14505        (khtml::HashTable::makeConstIterator): ditto
14506        (khtml::HashTable::checkConsistency): consistency check method
14507        (khtml::HashTable::checkConsistencyExceptSize): consistency check method
14508
145092005-06-29  Geoffrey Garen  <ggaren@apple.com>
14510
14511        -added test case for fix to http://bugs.webkit.org/show_bug.cgi?id=3743
14512        Incorrect error message given for certain calls
14513
14514        See JavaScriptCore Changelog for details about the patch.
14515
14516        Reviewed by me.
14517
14518        Test cases added: 
14519        * layout-tests/fast/js/toString-stack-overflow-expected.txt: Added.
14520        * layout-tests/fast/js/toString-stack-overflow.html: Added.
14521
145222005-06-29  Justin Garcia  <justin.garcia@apple.com>
14523
14524        - Fixes <http://bugs.webkit.org/show_bug.cgi?id=3714>
14525        HTMLLabelElement's form property isn't implemented
14526
14527        Patch by Anders Carlsson <andersca@mac.com>
14528
14529        Reviewed by Darin
14530
14531        Test cases added:
14532        * layout-tests/fast/dom/HTMLLabelElement/properties/form-expected.txt: Added.
14533        * layout-tests/fast/dom/HTMLLabelElement/properties/form.html: Added.
14534        
14535        * khtml/html/html_formimpl.cpp:
14536        (DOM::HTMLLabelElementImpl::form):
14537        Traverse upwards looking for a form element.
14538
145392005-06-29  Geoffrey Garen  <ggaren@apple.com>
14540
14541        Patch by Joost de Valk <webkit@joostdevalk.nl>
14542
14543        - http://bugs.webkit.org/show_bug.cgi?id=3732
14544        Testcase for accesskeys that will run with run-webkit-tests.
14545
14546        Reviewed by Darin.
14547
14548        Test cases added: 
14549        * layout-tests/fast/forms/access-key-expected.txt: Added.
14550        * layout-tests/fast/forms/access-key.html: Added.
14551
145522005-06-29  Justin Garcia  <justin.garcia@apple.com>
14553
14554        Patch by Anders Carlsson  <andersca@mac.com>
14555
14556        - Fixes <http://bugs.webkit.org/show_bug.cgi?id=3715>
14557        An HTMLObjectElement's form property was always null.
14558
14559        Reviewed by Darin
14560
14561        Test cases added:
14562        * layout-tests/fast/dom/htmlobject-form-expected.txt: Added.
14563        * layout-tests/fast/dom/htmlobject-form.html: Added.
14564
14565        * khtml/html/html_objectimpl.cpp:
14566        (DOM::HTMLObjectElementImpl::form):
14567        Implement this function by traversing the parent nodes looking
14568        for a form element.
14569
145702005-06-29  Geoffrey Garen  <ggaren@apple.com>
14571
14572        Patch by Antoine Quint <ml@graougraou.com>
14573
14574        -fixes http://bugs.webkit.org/show_bug.cgi?id=3648
14575        quadraticCurveTo() method in <canvas> APIs JS bindings does not exist
14576
14577        Reviewed by Darin.
14578
14579        Test cases added: 
14580        * layout-tests/fast/dom/quadraticCurveTo-expected.txt: Added.
14581        * layout-tests/fast/dom/quadraticCurveTo.xml: Added.
14582
14583        * khtml/ecma/kjs_html.cpp:
14584
145852005-06-29  Geoffrey Garen  <ggaren@apple.com>
14586
14587	Patch by Hanspeter Schaub <Hanspeterschaub@mac.com>
14588
14589	-fixes http://bugs.webkit.org/show_bug.cgi?id=3317
14590	REGRESSION: CSS2: outline is applied to both <li> element 
14591	and its enclosing text with context dependent selector
14592
14593        Reviewed by Hyatt.
14594
14595        Test cases added: 
14596        * layout-tests/fast/css/list-outline-expected.txt: Added.
14597        * layout-tests/fast/css/list-outline.html: Added.
14598
14599        * khtml/rendering/render_line.cpp:
14600        (khtml::InlineFlowBox::paint):
14601
146022005-06-28  Vicki Murley  <vicki@apple.com>
14603
14604        Reviewed by Maciej.
14605 
14606	- fix our part of <rdar://problem/4122332> extra HTTP GET when iframe requests file 
14607	already fetched by parent that should have been cached. Setting location via javascript
14608	should not signal a full reload of the destination page and all its subresources.
14609
14610        * khtml/khtml_part.cpp:
14611        (KHTMLPart::changeLocation): remove code that sets the reload flag
14612
146132005-06-28  Justin Garcia  <justin.garcia@apple.com>
14614
14615        Patch by Kevin Ballard <kevin@sb.org>
14616
14617        Reviewed by Darin
14618        
14619        - Fixes <http://bugs.webkit.org/show_bug.cgi?id=3654> 
14620        Updating the value of a textarea wasn't saving the cursor position 
14621        in a line ending-agnostic fashion.
14622
14623        Test cases added:
14624        * layout-tests/fast/forms/cursor-position-expected.txt: Added.
14625        * layout-tests/fast/forms/cursor-position.html: Added.
14626
14627        * kwq/KWQTextArea.mm:
14628        (-[KWQTextArea getCursorPositionAsIndex:inParagraph:]):
14629        (RangeOfParagraph):
14630        (-[KWQTextArea setCursorPositionToIndex:inParagraph:]):
14631
146322005-06-28  Justin Garcia  <justin.garcia@apple.com>
14633
14634        Patch by Alexey Proskuryakov <ap@nypop.com>
14635        
14636        - <http://bugs.webkit.org/show_bug.cgi?id=3727>
14637        When a DECODE_DEBUG preprocessor symbol is defined in khtml/misc/decoder.cpp, 
14638        compilation fails because a non-existent variable "force" is used.
14639
14640        Reviewed by Darin
14641
14642        Test cases added: None required
14643
14644        * khtml/misc/decoder.cpp:
14645        (Decoder::setEncoding):
14646
146472005-06-28  David Harrison  <harrison@apple.com>
14648
14649        Reviewed by Chris Blumenberg.
14650
14651        Test cases added: (NONE)
14652        
14653        (continued) <rdar://problem/4140688> assertion failure double-clicking text to select
14654        Fixed my checkin from yesterday.
14655
14656        * khtml/rendering/render_text.cpp:
14657        (InlineTextBox::paintMarkedTextBackground):
14658        (InlineTextBox::positionForOffset):
14659        Changed tabs to spaces.
14660        
14661        (RenderText::positionForCoordinates):
14662        Make sure affinity is downstream when in mid-line.
14663        Changed tabs to spaces.
14664
14665        (RenderText::caretRect):
14666        (RenderText::cacheWidths):
14667        (RenderText::trimmedMinMaxWidth):
14668        (RenderText::minXPos):
14669        (RenderText::width):
14670        (RenderText::caretMaxOffset):
14671        Changed tabs to spaces.
14672
14673        * layout-tests/editing/style/create-block-for-style-004-expected.txt:
14674        Expected ending selection affinity is downstream.
14675
146762005-06-27  Maciej Stachowiak  <mjs@apple.com>
14677
14678	Remove accidentally committed code that breaks the build. Oops!
14679
14680        * khtml/xml/dom_atomicstring.cpp:
14681        (DOM::AtomicString::expand):
14682        (DOM::AtomicString::shrink):
14683
146842005-06-26  Maciej Stachowiak  <mjs@apple.com>
14685
14686        Reviewed by Darin.
14687
14688	- replaced all our hash functions with the state of the art in hashing
14689	- ~1% speedup on cvs-base
14690	
14691        No test cases added, perf effects only.
14692
14693        * khtml/xml/dom_atomicstring.cpp:
14694        (DOM::AtomicStringStatisticsExitLogger::~AtomicStringStatisticsExitLogger):
14695	Improved stats gathering to track collisions in more detail and count reinserts
14696	on remove.
14697        (DOM::addToCollisionCount): ditto
14698        (DOM::AtomicString::add): ditto
14699        (DOM::AtomicString::insert): ditto
14700        (DOM::AtomicString::remove): ditto
14701        * khtml/xml/dom_stringimpl.cpp:
14702        (DOM::DOMStringImpl::computeHash): Replace with SuperFastHash algorithm.
14703        * kwq/KWQCharsets.mm:
14704        (encodingNameHash): Clean up mistaken shift in the wrong direction.
14705        * kwq/KWQString.h: Removed unused hashing code.
14706        * kwq/KWQString.mm: ditto
14707        * kwq/KWQTextCodec.mm:
14708        (QTextCodec::hash): Use a variant of the SuperFastHash algorithm.
14709
147102005-06-27  David Harrison  <harrison@apple.com>
14711
14712        Reviewed by Ken.
14713
14714        Test cases added: None because this relies on mouse clicking.
14715
14716        <rdar://problem/4140688> assertion failure double-clicking text to select
14717
14718        * khtml/rendering/render_text.cpp:
14719        (RenderText::positionForCoordinates):
14720        Use setAffinityUsingLinePosition.
14721
147222005-06-25  Darin Adler  <darin@apple.com>
14723
14724        - updated a layout test so that it doesn't depend on a remote resource via http
14725
14726        * layout-tests/fast/backgrounds/001.html: Change image URL to be relative.
14727        * layout-tests/fast/backgrounds/resources/bg_position_larger.gif: Added.
14728
147292005-06-24  Darin Adler  <darin@apple.com>
14730
14731        Changes by Mitz Pettel.
14732        Reviewed by me.
14733
14734        Test cases added:
14735        * layout-tests/fast/text/international/bidi-explicit-embedding-expected.txt: Added.
14736        * layout-tests/fast/text/international/bidi-explicit-embedding.html: Added.
14737
14738        - fixed <http://bugs.webkit.org/show_bug.cgi?id=3599>
14739          Incorrect layout of explicit embedding levels
14740
14741        * khtml/rendering/bidi.cpp:
14742        (khtml::embed): Set up the new run correctly following an embed/pop.
14743        (khtml::RenderBlock::bidiReorderLine): Close the "dangling" run when we see an explicit
14744        embedding character (or PDF).
14745
147462005-06-24  Darin Adler  <darin@apple.com>
14747
14748        Changes by Mitz Pettel.
14749        Reviewed by me.
14750
14751        Test cases added:
14752        * layout-tests/fast/text/international/bidi-CS-after-AN-expected.txt: Added.
14753        * layout-tests/fast/text/international/bidi-CS-after-AN.html: Added.
14754
14755        - fixed <http://bugs.webkit.org/show_bug.cgi?id=3693>
14756          Bug_72578 in KHTML: bidi algorithm misbehaves with CS after AN
14757
14758        * khtml/rendering/bidi.cpp: (khtml::RenderBlock::bidiReorderLine): Rolled in the
14759        patch from the KDE tree.
14760
147612005-06-24  Justin Garcia  <justin.garcia@apple.com>
14762
14763        - <http://bugs.webkit.org/show_bug.cgi?id=3673> 
14764            Adds QBuffer::setBuffer(QByteArray) support to KWQBuffer, and adds a QBuffer(QByteArray) constructor.
14765
14766        Reviewed by Darin
14767
14768        Test cases added: Non required
14769
14770        * kwq/KWQBuffer.h:
14771        (QBuffer::QBuffer):
14772        * kwq/KWQBuffer.mm:
14773        (QBuffer::setBuffer):
14774
147752005-06-24  Justin Garcia  <justin.garcia@apple.com>
14776
14777        - <http://bugs.webkit.org/show_bug.cgi?id=3672> KWQRect -- CGRect and other small additions
14778        - <http://bugs.webkit.org/show_bug.cgi?id=3670> Add remove and byteOrderMark support to KWQString for kdom
14779
14780        Reviewed by Darin
14781
14782        Test cases added: None required
14783
14784        * kwq/KWQRect.h:
14785        (QRect::contains):
14786        * kwq/KWQRect.mm:
14787        (QRect::QRect):
14788        (QRect::topRight):
14789        (QRect::bottomLeft):
14790        (QRect::normalize):
14791        (QRect::operator CGRect):
14792        * kwq/KWQString.h:
14793        (QChar::):
14794        (QString::remove):
14795
147962005-06-24  Darin Adler  <darin@apple.com>
14797
14798        Reviewed by Justin Garcia.
14799
14800        - fixed <rdar://problem/4151619> Safari changes "\" characters to "/" in the query part of links that start with "?"
14801
14802        Test cases added:
14803        * layout-tests/fast/dom/anchor-backslash-expected.txt: Added.
14804        * layout-tests/fast/dom/anchor-backslash.html: Added.
14805
14806        * kwq/KWQKURL.mm: (substituteBackslashes): Fix error where we'd ignore
14807        "?" and "#" characters if they were the first character in the string.
14808
148092005-06-23  Darin Adler  <darin@apple.com>
14810
14811        * khtml/html/html_formimpl.cpp: (DOM::HTMLTextAreaElementImpl::setValue):
14812        Took out an unneeded type cast (meant to do that before committing).
14813
148142005-06-23  Kevin Ballard  <kevin@sb.org>
14815
14816        Reviewed and landed by Darin Adler.
14817
14818        Test cases added:
14819        * layout-tests/fast/forms/selection-functions-expected.txt: Added.
14820        * layout-tests/fast/forms/selection-functions.html: Added.
14821        * layout-tests/fast/forms/textarea-crlf-expected.txt: Added.
14822        * layout-tests/fast/forms/textarea-crlf.html: Added.
14823
14824        - Fixes bug <http://bugs.webkit.org/show_bug.cgi?id=3401>.
14825          Also fixes issue where setting text of a textarea in code and then
14826          retrieving it would leave the \r\n sequences in the text, despite
14827          the textarea translating to \n in all other cases.
14828
14829        * khtml/ecma/kjs_html.h:
14830        * khtml/ecma/kjs_html.cpp:
14831        (KJS::getInputSelectionStart):
14832        (KJS::getInputSelectionEnd):
14833        (KJS::KJS::HTMLElement::getValueProperty):
14834        (KJS::KJS::HTMLElement::hasProperty):
14835        (KJS::KJS::HTMLElementFunction::tryCall):
14836        (KJS::HTMLElement::putValue):
14837        * khtml/html/html_formimpl.cpp:
14838        (DOM::HTMLInputElementImpl::canHaveSelection):
14839        (DOM::HTMLInputElementImpl::selectionStart):
14840        (DOM::HTMLInputElementImpl::selectionEnd):
14841        (DOM::HTMLInputElementImpl::setSelectionStart):
14842        (DOM::HTMLInputElementImpl::setSelectionEnd):
14843        (DOM::HTMLInputElementImpl::setSelectionRange):
14844        (DOM::HTMLInputElementImpl::setValue):
14845        (DOM::HTMLTextAreaElementImpl::selectionStart):
14846        (DOM::HTMLTextAreaElementImpl::selectionEnd):
14847        (DOM::HTMLTextAreaElementImpl::setSelectionStart):
14848        (DOM::HTMLTextAreaElementImpl::setSelectionEnd):
14849        (DOM::HTMLTextAreaElementImpl::setSelectionRange):
14850        (DOM::HTMLTextAreaElementImpl::setValue):
14851        * khtml/html/html_formimpl.h:
14852        * khtml/rendering/render_form.cpp:
14853        (RenderLineEdit::selectionStart):
14854        (RenderLineEdit::selectionEnd):
14855        (RenderLineEdit::setSelectionStart):
14856        (RenderLineEdit::setSelectionEnd):
14857        (RenderLineEdit::setSelectionRange):
14858        (RenderTextArea::selectionStart):
14859        (RenderTextArea::selectionEnd):
14860        (RenderTextArea::setSelectionStart):
14861        (RenderTextArea::setSelectionEnd):
14862        (RenderTextArea::select):
14863        (RenderTextArea::setSelectionRange):
14864        * khtml/rendering/render_form.h:
14865        * kwq/KWQLineEdit.h:
14866        * kwq/KWQLineEdit.mm:
14867        (QLineEdit::setCursorPosition):
14868        (QLineEdit::cursorPosition):
14869        (QLineEdit::selectAll):
14870        (QLineEdit::selectionStart):
14871        (QLineEdit::selectedText):
14872        (QLineEdit::setSelection):
14873        * kwq/KWQTextArea.h:
14874        * kwq/KWQTextArea.mm:
14875        (-[KWQTextArea setSelectedRange:]):
14876        (-[KWQTextArea selectedRange]):
14877        (-[KWQTextArea getCursorPositionAsIndex:inParagraph:]):
14878        (RangeOfParagraph):
14879        * kwq/KWQTextEdit.h:
14880        * kwq/KWQTextEdit.mm:
14881        (QTextEdit::getCursorPosition):
14882        (QTextEdit::selectionStart):
14883        (QTextEdit::selectionEnd):
14884        (QTextEdit::setSelectionStart):
14885        (QTextEdit::setSelectionEnd):
14886        (QTextEdit::selectAll):
14887        (QTextEdit::setSelectionRange):
14888        * kwq/KWQTextField.h:
14889        * kwq/KWQTextField.mm:
14890        (-[KWQTextFieldController selectedRange]):
14891        (-[KWQTextFieldController setSelectedRange:]):
14892
148932005-06-23  Justin Garcia  <justin.garcia@apple.com>
14894
14895        Patch by Eric Seidel <eric@webkit.org>
14896
14897        Adds QTextIStream, QTextOStream to KWQ
14898
14899        Reviewed by Darin
14900
14901        Test cases added: None required
14902
14903        * kwq/KWQTextStream.h:
14904        (QTextIStream::QTextIStream):
14905        (QTextOStream::QTextOStream):
14906
149072005-06-23  Justin Garcia  <justin.garcia@apple.com>
14908
14909        Patch by Eric Seidel <eric@webkit.org>
14910
14911        This patch contains several small additions to KWQ
14912
14913        Reviewed by Darin
14914
14915        Test cases added: None required
14916
14917        * kwq/KWQApplication.h:
14918        (QApplication::palette):
14919        * kwq/KWQDateTime.h:
14920        (QDateTime::time):
14921        * kwq/KWQDict.h:
14922        (QDict::operator[]):
14923        (QDictIterator::operator*):
14924        * kwq/KWQKDebug.h:
14925        (kdbgstream::operator<<):
14926        * kwq/KWQMemArray.h:
14927        (QMemArray::duplicate):
14928
149292005-06-23  David Harrison  <harrison@apple.com>
14930
14931        Test cases added: None needed for this debug-only utility code.
14932
14933        - Make showTree() const.
14934        - Add showTree() for InlineBox.
14935        - Add showTree() for RenderObject.
14936
14937        * khtml/editing/selection.cpp:
14938        (khtml::Selection::showTree):
14939        * khtml/editing/selection.h:
14940        * khtml/editing/visible_position.cpp:
14941        (khtml::VisiblePosition::showTree):
14942        * khtml/editing/visible_position.h:
14943        Make showTree() const.
14944        
14945        * khtml/rendering/render_line.cpp:
14946        (khtml::InlineBox::showTree):
14947        * khtml/rendering/render_line.h:
14948        Add showTree() for InlineBox.
14949        
14950        * khtml/rendering/render_object.cpp:
14951        (RenderObject::showTree):
14952        * khtml/rendering/render_object.h:
14953        Add showTree() for RenderObject.
14954        
14955        * khtml/xml/dom_nodeimpl.cpp:
14956        (appendAttributeDesc):
14957        (NodeImpl::showNode):
14958        (NodeImpl::showTree):
14959        (NodeImpl::showTreeAndMark):
14960        * khtml/xml/dom_nodeimpl.h:
14961        Make showTree() const.
14962
149632005-06-23  Vicki Murley  <vicki@apple.com>
14964
14965	- added template to be used when writing manual tests
14966
14967        * manual-tests/template.html: Added.
14968
149692005-06-22  Darin Adler  <darin@apple.com>
14970
14971        - added forwarding headers as needed for Eric Seidel's KDOM work
14972          see <http://bugs.webkit.org/show_bug.cgi?id=3655>
14973
14974        * ForwardingHeaders/kjs/value.h: Added.
14975        * ForwardingHeaders/qintdict.h: Added an include.
14976        * ForwardingHeaders/qptrcollection.h: Added.
14977        * ForwardingHeaders/qsize.h: Added.
14978        * kwq/KWQIntDict.h: Added. Empty file.
14979
149802005-06-22  Darin Adler  <darin@apple.com>
14981
14982        Reviewed by Vicki.
14983
14984        Test cases added:
14985        * layout-tests/fast/css/apple-prefix-expected.txt: Added.
14986        * layout-tests/fast/css/apple-prefix.html: Added.
14987
14988        - fixed <rdar://problem/4141650> REGRESSION: Safari RSS slider broken with TOT WebCore
14989
14990        * khtml/css/parser.y:
14991        (getPropertyID): Fix lifetime problem on the QString. Also construct the QString
14992        using length, since the passed-in char * is not necessarily null-terminated. Also do
14993        the mapping only if it's a "-apple-" prefix -- the old code would do it for, e.g.,
14994        "-applex-" too. The old code would not successfully map the "apple" in "appleLineClamp"
14995        to "khtml", and Dave changed things so that the internal name of all CSS attributes
14996        is "khtml" back in his 2005-05-03 check-in, breaking the use of appleLineClamp in RSS.
14997        (getValueID): Ditto.
14998
149992005-06-22  Anders Carlsson  <andersca@mac.com>
15000
15001        Reviewed and landed by Darin Adler.
15002
15003        Test cases added: 
15004        * layout-tests/fast/dom/title-text-property-expected.txt: Added
15005        * layout-tests/fast/dom/title-text-property.html: Added
15006        * layout-tests/fast/dom/title-text-property-expected-2.txt: Added
15007        * layout-tests/fast/dom/title-text-property-2.html: Added
15008
15009        - fixed <rdar://problem/3831364> getting or setting text for a <title> element doesn't work
15010        - fixed <rdar://problem/4091225> REGRESSION (1.2.4-1.3): many titles with non-ASCII characters do not display properly (XHTML strict only)
15011        - fixed <http://bugs.webkit.org/show_bug.cgi?id=3586>
15012          Setting and getting title's text attribute does not work
15013
15014        * khtml/dom/html_head.cpp:
15015        (HTMLTitleElement::text):
15016        (HTMLTitleElement::setText):
15017        Call HTMLTitleElementImpl::text() and ::setText().
15018
15019        * khtml/html/html_headimpl.cpp:
15020        (HTMLTitleElementImpl::HTMLTitleElementImpl):
15021        (HTMLTitleElementImpl::insertedIntoDocument):
15022        (HTMLTitleElementImpl::removedFromDocument):
15023        (HTMLTitleElementImpl::childrenChanged):
15024        Pass the current title node to DocumentImpl::setTitle
15025        and ::removeTitle.
15026
15027        (HTMLTitleElementImpl::text):
15028        Return the title.
15029
15030        (HTMLTitleElementImpl::setText):
15031        Set the new title.
15032
15033        * khtml/xml/dom_docimpl.cpp:
15034        (DocumentImpl::DocumentImpl):
15035        (DocumentImpl::~DocumentImpl):
15036        (DocumentImpl::updateTitle):
15037        (DocumentImpl::setTitle):
15038        (DocumentImpl::removeTitle):
15039        * khtml/xml/dom_docimpl.h:
15040        Only update the title if it's done by setting document.title
15041        or by changing the child nodes of the title element.
15042
150432005-06-22  Darin Adler  <darin@apple.com>
15044
15045        Changes by Mitz Pettel.
15046        Reviewed by me.
15047
15048        - fixed <http://bugs.webkit.org/show_bug.cgi?id=3633>
15049          Layout order of bidi level runs is incorrect
15050
15051        Test cases added:
15052        * layout-tests/fast/text/international/bidi-L2-run-reordering-expected.txt: Added.
15053        * layout-tests/fast/text/international/bidi-L2-run-reordering.html: Added.
15054
15055        * khtml/rendering/bidi.cpp: (khtml::RenderBlock::bidiReorderLine): Fixed mistake
15056        where we'd advance too far after reversing a run.
15057
150582005-06-22  Darin Adler  <darin@apple.com>
15059
15060        - added test case for JavaScriptCore fix
15061
15062        * layout-tests/fast/js/string-replace-2-expected.txt: Added.
15063        * layout-tests/fast/js/string-replace-2.html: Added.
15064
150652005-06-22  Darin Adler  <darin@apple.com>
15066
15067        Reviewed by John Sullivan.
15068
15069        Test cases added:
15070        * layout-tests/fast/dom/css-set-property-exception-expected.txt: Added.
15071        * layout-tests/fast/dom/css-set-property-exception.html: Added.
15072
15073        - fixed <http://bugs.webkit.org/show_bug.cgi?id=3616>
15074          RSS search field, Dashboard widgets failing due to CSS exception
15075
15076        * khtml/ecma/kjs_css.cpp: (KJS::DOMCSSStyleDeclaration::tryPut):
15077        Ignore exceptions when setting properties.
15078
15079        * layout-tests/fast/js/exception-linenums.html: Changed test case that
15080        involved setting style to one that involved setting another property that
15081        raises an exception when you try to set it (setting prefix on a text node).
15082
150832005-06-22  Darin Adler  <darin@apple.com>
15084
15085        Change proposed by Eric Seidel.
15086
15087        * WebCore.pbproj/project.pbxproj: Fix build rule to match the one in JavaScriptCore.
15088        The one here accidentally had hard-coded paths in it and also had the $() vs. ${}
15089        issue that broke building on Xcode 2.1 for no good reason (it didn't need $() or ${}).
15090
150912005-06-21  Maciej Stachowiak  <mjs@apple.com>
15092
15093        Patch from KevinBallard <kevin@sb.org>, reviewed by me.
15094
15095        - fix build for Xcode 2.1, use ${} for INPUT_FILE_BASE to fix build with Xcode 2.1
15096
15097        * WebCore.pbproj/project.pbxproj:
15098
150992005-06-21  Justin Garcia  <justin.garcia@apple.com>
15100
15101        - Fixes <rdar://problem/4114192>.
15102        - Fixes a crash in TOT Mail/Blot if you Edit -> Add Hyperlink on a Selection 
15103           that ends at the end of the document
15104        - Fixes a problem in TOT Mail/Blot where Edit -> Add Hyperlink creates 
15105           a link one character beyond what is expected.
15106        
15107        In replacement, during insertion, some special case code was being called inappropriately.
15108        
15109        Reviewed by Harrison
15110
15111        Test cases added: None, requires manual interaction
15112
15113        * khtml/editing/replace_selection_command.cpp:
15114        (khtml::ReplaceSelectionCommand::doApply): In "step 2" of a replacement, we should 
15115        only next() the insertion point if the special pre-insertion-merge actually occured.
15116        mergeStart used to be the correct check for the occurence of a pre-insertion-merge, but
15117        a bug fix made this not the case.  A non-null m_lastNodeInserted correctly signals 
15118        that some pre-insertion merging occured.
15119
151202005-06-21  Darin Adler  <darin@apple.com>
15121
15122        * WebCore.pbproj/project.pbxproj: Switched to a build rule rather than a build phase for the
15123        .y files -- this gets rid of the problem where modifying the .y file would not cause sufficient
15124        compilation.
15125
15126        * khtml/css/parser_wrapper.cpp: Removed.
15127
151282005-06-21  Adele Peterson  <adele@apple.com>
15129
15130        Test cases for:
15131        <http://bugs.webkit.org/show_bug.cgi?id=3450>
15132        <rdar://problem/3881901> String.replace() method not working when regex pattern contains {n, m}
15133
15134        * layout-tests/fast/js/string_replace-expected.txt: Added.
15135        * layout-tests/fast/js/string_replace.html: Added.
15136
151372005-06-21  Geoffrey Garen  <ggaren@apple.com>
15138
15139        Patch contributed by Niels Leenheer <niels.leenheer@gmail.com>
15140
15141        - fixed http://bugs.webkit.org/show_bug.cgi?id=3370
15142        (Safari can't handle strange frame dimensions)
15143
15144        Reviewed by Darin.
15145
15146        * khtml/dom/dom_string.cpp:
15147        (DOM::DOMString::toCoordsArray):
15148        * khtml/dom/dom_string.h:
15149        * khtml/html/html_imageimpl.cpp:
15150        (HTMLAreaElementImpl::parseMappedAttribute):
15151        * khtml/xml/dom_atomicstring.h:
15152        (DOM::AtomicString::toCoordsArray):
15153        * khtml/xml/dom_stringimpl.cpp:
15154        (DOM::parseLength):
15155        (DOM::DOMStringImpl::toCoordsArray):
15156        (DOM::DOMStringImpl::toLengthArray):
15157        * khtml/xml/dom_stringimpl.h:
15158
15159        Test cases added: 
15160        * layout-tests/fast/frames/invalid-expected.txt: Added.
15161        * layout-tests/fast/frames/invalid.html: Added.
15162        * layout-tests/fast/frames/valid-expected.txt: Added.
15163        * layout-tests/fast/frames/valid.html: Added.
15164
151652005-06-21  Geoffrey Garen  <ggaren@apple.com>
15166
15167        - fixed <rdar://problem/4155049> javascript function named as "opener" doesn't get called because of window.opener property
15168
15169        Test cases only, fix is in JavaScriptCore
15170
15171        Reviewed by cblu.
15172
15173        Test cases added: 
15174
15175        * layout-tests/fast/js/global-opener-function-expected.txt: Added.
15176        * layout-tests/fast/js/global-opener-function.html: Added.
15177
151782005-06-21  David Harrison  <harrison@apple.com>
15179
15180        Reviewed by Justin.
15181        
15182        - show class and style attributes for element nodes
15183        - nil check the node being showTree'd
15184        - add Position::showTree()
15185
15186        Test cases added: None needed for this debug-only utility code.
15187
15188        * khtml/editing/selection.cpp:
15189        (khtml::Selection::showTree):
15190        - nil check the node
15191        * khtml/editing/visible_position.cpp:
15192        (khtml::VisiblePosition::previousVisiblePosition):
15193        - comments
15194        (khtml::VisiblePosition::showTree):
15195        - nil check the node
15196        * khtml/xml/dom_nodeimpl.cpp:
15197        (appendAttributeDesc):
15198        (NodeImpl::showNode):
15199        - show class and style attributes for element nodes
15200        * khtml/xml/dom_position.cpp:
15201        (DOM::Position::showTree):
15202        * khtml/xml/dom_position.h:
15203        - add Position::showTree()
15204
152052005-06-20  Maciej Stachowiak  <mjs@apple.com>
15206
15207        Reviewed by Darin(first pass) and Hyatt.
15208
15209        - fixed http://bugs.webkit.org/show_bug.cgi?id=3576
15210        (roll in support for "const" keyword from KDE tree)
15211        - make processVarDecls handle deletability of variables declared
15212        in an eval block the same as evaluate would
15213        - make eval() call processVarDecls - needed to match mozilla and
15214        to make the second change testable
15215
15216        Test cases only, fix is in JavaScriptCore
15217        
15218        Test cases added:
15219        * layout-tests/fast/js/const-expected.txt: Added.
15220        * layout-tests/fast/js/const.html: Added.
15221        * layout-tests/fast/js/eval-var-decl-expected.txt: Added.
15222        * layout-tests/fast/js/eval-var-decl.html: Added.
15223
152242005-06-20  Maciej Stachowiak  <mjs@apple.com>
15225
15226        Patch from Mark Rowe <opendarwin.org@bdash.net.nz>, reviewed by me.
15227
15228        - fixed http://bugs.webkit.org/attachment.cgi?id=2483
15229        
15230        Test cases added: 
15231        * layout-tests/fast/js/hasOwnProperty-expected.txt: Added.
15232        * layout-tests/fast/js/hasOwnProperty.html: Added.
15233        - also fixed two mozilla JS tests
15234	
15235        * khtml/ecma/kjs_binding.h:
15236        * khtml/ecma/kjs_css.cpp:
15237        (KJS::DOMCSSStyleDeclaration::hasOwnProperty):
15238        * khtml/ecma/kjs_css.h:
15239        * khtml/ecma/kjs_dom.cpp:
15240        (KJS::DOMNodeList::hasOwnProperty):
15241        (KJS::DOMNamedNodeMap::hasOwnProperty):
15242        * khtml/ecma/kjs_dom.h:
15243        * khtml/ecma/kjs_html.cpp:
15244        (KJS::HTMLDocument::hasOwnProperty):
15245        (KJS::KJS::HTMLElement::hasOwnProperty):
15246        (KJS::KJS::HTMLCollection::hasOwnProperty):
15247        * khtml/ecma/kjs_html.h:
15248        * khtml/ecma/kjs_window.cpp:
15249        (KJS::Window::hasOwnProperty):
15250        (KJS::Konqueror::hasOwnProperty):
15251        * khtml/ecma/kjs_window.h:
15252
152532005-06-20  Geoffrey Garen  <ggaren@apple.com>
15254
15255        Changes by Darin. Layout tests by me. Reviewed by me.
15256
15257	Fixed <rdar://problem/4152454> crash in KJS::ExprStatementNode::execute(KJS::ExecState*) in World Clock widget with TOT.
15258
15259        Test cases added: 
15260        * layout-tests/fast/dom/gc-4-expected.txt: Added.
15261        * layout-tests/fast/dom/gc-4.html: Added.
15262
15263        * khtml/ecma/kjs_html.cpp: 
15264        (KJS::Context2D::mark): mark now (1) checks for NULL pointers and (2) 
15265	calls mark on its parent class (DOMObject::mark).
15266
152672005-06-19  Darin Adler  <darin@apple.com>
15268
15269        Changes by both Anders Carlsson and me.
15270        Reviewed by Maciej and me.
15271
15272        Test cases added:
15273        * layout-tests/fast/forms/element-order-expected.txt: Added.
15274        * layout-tests/fast/forms/element-order.html: Added.
15275
15276        - fixed <http://bugs.webkit.org/show_bug.cgi?id=3503>
15277          form.elements[] not order-preserving when elements added via DOM
15278
15279        * khtml/html/html_formimpl.h: Added formElementIndex.
15280        * khtml/html/html_formimpl.cpp:
15281        (DOM::insertIntoVector): Added.
15282        (DOM::HTMLFormElementImpl::formElementIndex): Added. Computes an appropriate
15283        index for a form element, given the document position relative to the other elements.
15284        (DOM::HTMLFormElementImpl::registerFormElement): Use formElementIndex to determine
15285        where to insert the element in the formElements array.
15286
152872005-06-19  Darin Adler  <darin@apple.com>
15288
15289        Changes by Anders Carlsson and me.
15290        Reviewed by Maciej and me.
15291
15292        Test cases added: None. Could not figure out how to automate a test without
15293        making enhancements to DumpRenderTree.
15294
15295        - fixed <rdar://problem/4141141> Onselect event is ignored with TEXTAREA and INPUT
15296          also <http://bugs.webkit.org/show_bug.cgi?id=3256>
15297
15298        * khtml/html/html_formimpl.cpp: (DOM::HTMLTextAreaElementImpl::select):
15299        Remove unneeded explicit call to onSelect() here -- now handled by the renderer.
15300
15301        * khtml/rendering/render_form.h: Added declarations as needed below.
15302        * khtml/rendering/render_form.cpp:
15303        (RenderFormElement::slotSelectionChanged): Add base class implementation that does nothing.
15304        (RenderLineEdit::RenderLineEdit): Connect the selection changed signal to our slot.
15305        (RenderLineEdit::slotSelectionChanged): Call onSelect when selection changes to something
15306        that's a selection (not a caret).
15307        (RenderTextArea::RenderTextArea): Connect as above.
15308        (RenderTextArea::slotSelectionChanged): Call as above.
15309
15310        * kwq/KWQLineEdit.h: Added declarations as needed below.
15311        * kwq/KWQLineEdit.mm:
15312        (QLineEdit::QLineEdit): Added selectionChanged signal.
15313        (QLineEdit::hasSelectedText): Added.
15314
15315        * kwq/KWQSlot.mm:
15316        (KWQSlot::KWQSlot): Make selectionChanged work on any form element.
15317        (KWQSlot::call): ditto.
15318
15319        * kwq/KWQTextArea.h: Added hasSelection method.
15320        * kwq/KWQTextArea.mm:
15321        (-[KWQTextArea textViewDidChangeSelection:]): Added. Sends selectionChanged signal, except if
15322        we're in the middle of gaining or losing first responder.
15323        (-[KWQTextArea hasSelection]): Added.
15324        (-[KWQTextAreaTextView becomeFirstResponder]): Added. Sets flag to tell us we're in a responder
15325        change (using a count to avoid trouble if we reenter).
15326        (-[KWQTextAreaTextView resignFirstResponder]): Ditto.
15327        (-[KWQTextAreaTextView inResponderChange]): Added.
15328
15329        * kwq/KWQTextEdit.h: Added declarations as needed below.
15330        * kwq/KWQTextEdit.mm:
15331        (QTextEdit::QTextEdit): Added selectionChanged signal.
15332        (QTextEdit::hasSelectedText): Added.
15333
15334        * kwq/KWQTextField.h: Added declarations as needed below.
15335        * kwq/KWQTextField.mm:
15336        (-[KWQTextFieldController initWithTextField:QLineEdit:]): Fixed up to do the right
15337        thing with the result of the init function we call.
15338        (-[KWQTextFieldController controlTextDidEndEditing:]): Removed call to setHasFocus:NO
15339        since it's a little too late by the time the control is called; now handled by the
15340        text view delegate methods below.
15341        (-[KWQTextFieldController hasSelection]): Added.
15342        (-[KWQTextFieldController setHasFocus:]): Sets the new hasFocusAndSelectionSet after
15343        new focus and selection are both set up.
15344        (-[KWQTextFieldController textViewDidChangeSelection:]): Added. Sends the selection
15345        changed signal.
15346        (-[KWQTextField initWithQLineEdit:]): Fixed up to do the right thing with the result
15347        of the init function we call.
15348        (-[KWQTextField textViewDidChangeSelection:]): Added. Calls super and then calls the
15349        controller.
15350        (-[KWQTextField textDidEndEditing:]): Added. Calls setHasFocus:NO and then calls super.
15351        (-[KWQSecureTextField initWithQLineEdit:]): Same as above, but for secure text fields.
15352        (-[KWQSecureTextField textViewDidChangeSelection:]): Ditto.
15353        (-[KWQSecureTextField textDidEndEditing:]): Ditto.
15354        (-[KWQSearchField initWithQLineEdit:]): Same as above, but for search fields.
15355        (-[KWQSearchField textViewDidChangeSelection:]): Ditto.
15356        (-[KWQSearchField textDidEndEditing:]): Ditto.
15357        (-[KWQTextFieldFormatter init]): Fixed up to do the right thing with the result of
15358        the init function we call.
15359
153602005-06-18  Darin Adler  <darin@apple.com>
15361
15362        Changes by Anders Carlsson.
15363        Reviewed by me.
15364
15365        Test cases added:
15366        * layout-tests/fast/dom/css-dom-read-expected.txt: Added.
15367        * layout-tests/fast/dom/css-dom-read.html: Added.
15368
15369        - fixed <http://bugs.webkit.org/show_bug.cgi?id=3534>
15370          CSSMutableStyleDeclarationImpl::item is unimplemented
15371
15372        * khtml/css/css_valueimpl.cpp: (DOM::CSSMutableStyleDeclarationImpl::item):
15373        Get the style from the m_values list.
15374
153752005-06-18  Darin Adler  <darin@apple.com>
15376
15377        - undid a last minute change I made that broke a patch I landed
15378          (layout tests caught the mistake, all should work again now)
15379
15380        * khtml/html/html_formimpl.cpp:
15381        (DOM::HTMLLabelElementImpl::formElement): Don't include this when iterating.
15382        (DOM::HTMLLegendElementImpl::formElement): Ditto.
15383
153842005-06-18  Darin Adler  <darin@apple.com>
15385
15386        - removing the applet tests, since they are causing other tests to fail
15387
15388        * layout-tests/fast/replaced/applet-hspace-expected.txt: Removed.
15389        * layout-tests/fast/replaced/applet-hspace.html: Removed.
15390        * layout-tests/fast/replaced/applet-vspace-expected.txt: Removed.
15391        * layout-tests/fast/replaced/applet-vspace.html: Removed.
15392        * layout-tests/fast/replaced/resources/applet.class: Removed.
15393        * layout-tests/fast/replaced/resources/applet.java: Removed.
15394
153952005-06-18  Darin Adler  <darin@apple.com>
15396
15397        Changes by Anders Carlsson.
15398        Reviewed by me.
15399
15400        Test cases added:
15401        * layout-tests/fast/dom/resources/script3.js: Added.
15402        * layout-tests/fast/dom/resources/script4.js: Added.
15403        * layout-tests/fast/dom/resources/script5.js: Added.
15404        * layout-tests/fast/dom/script-add-expected.txt: Added.
15405        * layout-tests/fast/dom/script-add.html: Added.
15406
15407        - fixed <http://bugs.webkit.org/show_bug.cgi?id=3526>
15408          improve support for dynamically added <script> elements
15409
15410        * khtml/html/html_headimpl.h: Added override of childrenChanged, new evaluateScript
15411        function, and m_evaluated boolean.
15412        * khtml/html/html_headimpl.cpp:
15413        (HTMLScriptElementImpl::HTMLScriptElementImpl): Init m_evaluated to false.
15414        (HTMLScriptElementImpl::childrenChanged): Added code to evaluate the script the first
15415        time a child is added (except for nodes created by parsing).
15416        (HTMLScriptElementImpl::insertedIntoDocument): Refactored to use the new text and
15417        evaluateScript functions. Also changed to not try to evaluate the script if the element
15418        is entirely empty. This allows you to declare an empty <script> element and fill the
15419        content in later using DHTML.
15420        (HTMLScriptElementImpl::notifyFinished): Refactored to use the new evaluateScript function.
15421        (HTMLScriptElementImpl::evaluateScript): Added. Checks and sets a new m_evaluated boolean
15422        to implement the "evaluate each script only once" rule.
15423        (HTMLScriptElementImpl::text): Replaced bogus implementation with one that works.
15424        (HTMLScriptElementImpl::setText): Ditto.
15425
15426        * khtml/dom/html_head.cpp:
15427        (HTMLScriptElement::text): Replaced bogus implementation with one that calls through to
15428        the implementation class. This change doesn't really matter since we don't compile this file.
15429        (HTMLScriptElement::setText): Ditto.
15430
154312005-06-18  Darin Adler  <darin@apple.com>
15432
15433        * khtml/html/html_formimpl.cpp: (DOM::HTMLLabelElementImpl::formElement):
15434        Oops, checked in a version that didn't even compile! Fixed now.
15435
154362005-06-18  Darin Adler  <darin@apple.com>
15437
15438        Changes by Anders Carlsson.
15439        Reviewed by me.
15440
15441        Test cases added:
15442        * layout-tests/fast/forms/focus-expected.txt: Added.
15443        * layout-tests/fast/forms/focus.html: Added.
15444        * layout-tests/fast/forms/legend-access-key-expected.txt: Added.
15445        * layout-tests/fast/forms/legend-access-key.html: Added.
15446
15447        - fixed <rdar://problem/3481846> HTML4: accesskey not supported by HTML legend elements
15448          also <http://bugs.webkit.org/show_bug.cgi?id=3407>
15449        - added focus methods for <label> and <legend> elements
15450        - fixed crash when using JavaScript-created events that prevented tests from running
15451
15452        * khtml/ecma/kjs_html.h: Added focus methods.
15453        * khtml/ecma/kjs_html.cpp: (KJS::KJS::HTMLElementFunction::tryCall): Added bindings for
15454        focus for <label> and <legend>. (Sorry about the merging, Dave.)
15455
15456        * khtml/html/html_formimpl.h: Added new functions.
15457        * khtml/html/html_formimpl.cpp:
15458        (DOM::HTMLLabelElementImpl::focus): Added.
15459        (DOM::HTMLLegendElementImpl::formElement): Added.
15460        (DOM::HTMLLegendElementImpl::focus): Added.
15461        (DOM::HTMLLegendElementImpl::accessKeyAction): Added.
15462
15463        * khtml/xml/dom_docimpl.cpp: (DocumentImpl::defaultEventHandler): If there's no QKeyEvent,
15464        then get the key name from keyIdentifier() instead of the QKeyEvent's unmodifiedText().
15465        The old code would just do a nil-deref.
15466
154672005-06-18  Darin Adler  <darin@apple.com>
15468
15469        Change by Niels Leenheer (also done by Dave Hyatt on stage at WWDC).
15470        Reviewed by me.
15471
15472        Test cases added:
15473        * layout-tests/fast/replaced/object-align-hspace-vspace-expected.txt: Added.
15474        * layout-tests/fast/replaced/object-align-hspace-vspace.html: Added.
15475        * layout-tests/fast/replaced/resources/webkit-background.png: Added.
15476
15477        * khtml/html/html_objectimpl.cpp:
15478        (DOM::HTMLObjectElementImpl::mapToEntry): Add cases for ATTR_ALIGN, ATTR_VSPACE and ATTR_HSPACE.
15479        (DOM::HTMLObjectElementImpl::parseMappedAttribute): Ditto.
15480
154812005-06-18  Darin Adler  <darin@apple.com>
15482
15483        Change by Niels Leenheer (also done by Dave Hyatt on stage at WWDC).
15484        Reviewed by me.
15485
15486        Test cases added:
15487        * layout-tests/fast/replaced/applet-hspace-expected.txt: Added.
15488        * layout-tests/fast/replaced/applet-hspace.html: Added.
15489        * layout-tests/fast/replaced/applet-vspace-expected.txt: Added.
15490        * layout-tests/fast/replaced/applet-vspace.html: Added.
15491        * layout-tests/fast/replaced/resources/applet.class: Added.
15492        * layout-tests/fast/replaced/resources/applet.java: Added.
15493
15494        - fixed <http://bugs.webkit.org/show_bug.cgi?id=3246>
15495          HSPACE and VSPACE attributes are ignored in APPLET element
15496
15497        * khtml/html/html_objectimpl.cpp:
15498        (DOM::HTMLAppletElementImpl::mapToEntry): Add cases for ATTR_VSPACE and ATTR_HSPACE.
15499        (DOM::HTMLAppletElementImpl::parseMappedAttribute): Ditto.
15500
155012005-06-18  Darin Adler  <darin@apple.com>
15502
15503        - removed some unused code from one of the KWQ headers
15504
15505        * kwq/KWQKHTMLPartBrowserExtension.h:
15506
15507        - added a layout test for a bug that's already fixed
15508
15509        * layout-tests/fast/forms/element-by-name-expected.txt: Added.
15510        * layout-tests/fast/forms/element-by-name.html: Added.
15511
155122005-06-17  Vicki Murley  <vicki@apple.com>
15513
15514        Reviewed by Maciej. 
15515
15516        Test cases added: None, since this test requires manual interaction.
15517
15518	- fixed <rdar://problem/4086793> Selects wrapped by Span or Label elements 
15519	do not resize when options are added via javascript
15520        
15521	* khtml/rendering/render_form.cpp:
15522        (RenderSelect::layout): Remove call setting setNeedsLayout to true. setNeedsLayout
15523	is already true at this point, and this additional call has the negative effect of 
15524	marking m_normalChildNeedsLayout on the element's parent, which keeps layout from 
15525	propagating all the way up to the root later on.
15526
155272005-06-17  Justin Garcia  <justin.garcia@apple.com>
15528
15529	Fix for rdar://3756860, (also listed as) http://bugs.webkit.org/show_bug.cgi?id=3295
15530	The cellIndex property for HTMLTableCellElement was always zero because the method to support it was just a stub.
15531        KHTML fix was to simply call nodeIndex(), but this is incorrect because a table row can have as children <script>s
15532        and <form>s (and perhaps others).
15533	
15534        Reviewed by hyatt and john
15535
15536        Test cases added:
15537	* layout-tests/fast/table/cellindex.html: Added.  Illustrates the fix.
15538
15539        * khtml/html/html_tableimpl.cpp:
15540        (DOM::HTMLTableCellElementImpl::cellIndex): Iterate through siblings only counting <th> and <td> elements
15541        * khtml/html/html_tableimpl.h:
15542
155432005-06-17  Adele Peterson  <adele@apple.com>
15544
15545        Reviewed by Maciej.
15546
15547        - fixed http://bugs.webkit.org/show_bug.cgi?id=3419
15548        <rdar://problem/4111752> REGRESSION (125-312/412): Safari doesn't display edmunds.com pages first time through
15549
15550        * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseTag): set 'script' flag when 
15551          parsing <script src="foo" /> case.  In this case, parseTag calls the scriptHandler function which expects 
15552          that flag to be set, and sets it back to false at the appropriate time.
15553
15554        Test cases added: These still don't test the cached script cases, but they're good regression 
15555        tests for the tokenizer.  We'll have to come up with a good way to test the cached cases later.
15556
15557        * layout-tests/fast/tokenizer/external-script-document-write_2-expected.txt: Added.
15558        * layout-tests/fast/tokenizer/external-script-document-write_2.html: Added.
15559        * layout-tests/fast/tokenizer/resources/empty_script.js: Added.
15560        * layout-tests/fast/tokenizer/script_extra_close-expected.txt: Added.
15561        * layout-tests/fast/tokenizer/script_extra_close.html: Added.
15562        * layout-tests/fast/tokenizer/script_quirk-expected.txt: Added.
15563        * layout-tests/fast/tokenizer/script_quirk.html: Added.
15564
155652005-06-17  Justin Garcia  <justin.garcia@apple.com>
15566
15567	Fixed fprintf problem in gcc4.0
15568	
15569        Reviewed by Darin
15570
15571        Test cases added: See previous ChangeLog entry
15572
15573        * khtml/xml/dom_nodeimpl.cpp:
15574        (NodeImpl::showTreeAndMark): Fixed fprintf warning in gcc4
15575
155762005-06-17  Geoffrey Garen  <ggaren@apple.com>
15577
15578	Patch contributed by Anders Carlsson<andersca@mac.com>.
15579
15580	Fixes: http://bugs.webkit.org/show_bug.cgi?id=3408	
15581
15582        Reviewed by Darin.
15583
15584        Test cases added: None. Test requires manual interaction.
15585	Manual test available at: http://bugs.webkit.org/attachment.cgi?id=2207
15586
15587        * khtml/html/html_formimpl.cpp: Eliminated HTMLButtonElementImpl::click. HTMLButtonElementImpl now inherits HTMLElementImpl::click. 
15588        * khtml/html/html_formimpl.h: Ditto.
15589
155902005-06-17  Darin Adler  <darin@apple.com>
15591
15592        Reviewed by John.
15593
15594        - fixed http://bugs.webkit.org/show_bug.cgi?id=3556
15595          black diamond question mark shown for invalid UTF-8 sequences
15596
15597        Test cases added:
15598        * layout-tests/fast/encoding/invalid-UTF-8-expected.txt: Added.
15599        * layout-tests/fast/encoding/invalid-UTF-8.html: Added.
15600
15601        * kwq/KWQTextCodec.mm:
15602        (unwanted): Added. Returns true for BOM, replacement, and null characters.
15603        (KWQTextDecoder::appendOmittingUnwanted): Renamed from appendOmittingNullsAndBOMs and
15604        changed to use the new "unwanted" function, which causes it to omit replacement characters.
15605        (KWQTextDecoder::convertUsingTEC): Call append function by its new name.
15606
156072005-06-16  Justin Garcia  <justin.garcia@apple.com>
15608
15609	Added a few debugging methods to highlight Selections, VisiblePositions and Nodes in the DOM tree.
15610	
15611        Reviewed by Dave Harrison
15612
15613        Test cases added: None, changes are only to aid debugging
15614
15615        * khtml/editing/selection.cpp:
15616        (khtml::Selection::showTree):
15617        * khtml/editing/selection.h:
15618        * khtml/editing/visible_position.cpp:
15619        (khtml::VisiblePosition::showTree):
15620        * khtml/editing/visible_position.h:
15621        * khtml/xml/dom_nodeimpl.cpp:
15622        (NodeImpl::showNode):
15623        (NodeImpl::showTree):
15624        (NodeImpl::showTreeAndMark): 
15625        * khtml/xml/dom_nodeimpl.h:
15626
156272005-06-14  David Hyatt  <hyatt@apple.com>
15628
15629        Add an initial implementation of QualifiedName and HTMLNames.  These classes are not used by anyone yet.
15630	Progress being recorded in bugzilla bug 3405.
15631	
15632        Reviewed by mjs
15633
15634        Test cases added: (None, does not affect build yet)
15635
15636        * WebCore.pbproj/project.pbxproj:
15637        * khtml/xml/dom_qname.h,.cpp
15638        * khtml/html/htmlnames.h,.cpp
15639
156402005-06-14  David Hyatt  <hyatt@apple.com>
15641
15642	The behavior of <pre> is broken so that the newline
15643	is not always properly being eaten after the open of the tag.  In addition we were eating the first newline
15644	after all other tags.  This patch stops eating newlines after other tags and refines the behavior for pre
15645	to catch all cases.
15646	
15647        Reviewed by sullivan
15648
15649        Test cases added: fast/text/whitespace/030.html
15650
15651        * khtml/html/htmltokenizer.cpp:
15652        (khtml::HTMLTokenizer::parseTag):
15653        (khtml::HTMLTokenizer::write):
15654
156552005-06-13  Vicki Murley  <vicki@apple.com>
15656
15657        Reviewed by Darin.
15658
15659	No test cases added since the steps to reproduce require use of showModalDialog.
15660
15661	- fix for <rdar://problem/4145910> parameters not working in showModalDialog 
15662	test page (dialogWidth, dialogHeight, etc.)
15663
15664        * khtml/ecma/kjs_window.cpp:
15665        (KJS::parseFeatures): add a check for colon character in the feature string
15666
156672005-06-13  Maciej Stachowiak  <mjs@apple.com>
15668
15669        Reviewed by Chris Blumenberg and Adele.
15670
15671	- better fix for <rdar://problem/4142247> REGRESSION: List to browse widgets at Apple website failed. Closing tab afterwards caused Safari crash
15672	http://bugs.webkit.org/show_bug.cgi?id=3445
15673
15674	With this change and the matching WebKit change we'll still stop loading the moment you click
15675	a download link, but the unload event and detaching of event handlers will not happen early any more.
15676	
15677        * khtml/khtml_part.cpp:
15678        (KHTMLPart::stopLoading): Factored out from closeURL, make firing of unload
15679	and detaching of event handlers optional.
15680        (KHTMLPart::closeURL): call stopLoading(true)
15681        * khtml/khtml_part.h:
15682        * kwq/WebCoreBridge.h:
15683        * kwq/WebCoreBridge.mm:
15684        (-[WebCoreBridge stopLoading]): Call stopLoading(false).
15685
156862005-06-13  Maciej Stachowiak  <mjs@apple.com>
15687
15688	Patch from Andrew Wellington <proton@wiretapped.net>
15689        Reviewed by me.
15690
15691	- fixed http://bugs.webkit.org/show_bug.cgi?id=3302
15692	(Safari crashes when going to acid2 test page once it's in cache)
15693	
15694        No test cases addded since the repro steps require use of tabbed browsing.
15695
15696        * khtml/khtml_part.cpp:
15697        (KHTMLPart::handleFallbackContent): check for nil
15698
156992005-06-12  Darin Adler  <darin@apple.com>
15700
15701        - added expected test results for new tests
15702
15703        * layout-tests/fast/selectors/159-expected.txt: Added.
15704        * layout-tests/fast/selectors/177a-expected.txt: Added.
15705        * layout-tests/fast/selectors/177b-expected.txt: Added.
15706
157072005-06-11  Maciej Stachowiak  <mjs@apple.com>
15708
15709        Patch from Nicholas Shanks <contact@nickshanks.com>, reviewed by me.
15710
15711	- Distinguish between pseudo-elements and pseudo-classes in CSS parsing.
15712	http://bugs.webkit.org/show_bug.cgi?id=3375
15713
15714	Merge of svn log -v -r 399829 svn://anonsvn.kde.org/home/kde
15715	
15716        Test cases added: Added the following from CSS selector test suite,
15717	unfortunately 159 and 117a do not show any difference with and without the
15718	patch since layout tests do not dump selection style (yet).
15719	
15720        * layout-tests/fast/selectors/159.html: Added.
15721        * layout-tests/fast/selectors/177a.html: Added.
15722        * layout-tests/fast/selectors/177b.html: Added.
15723
15724        * khtml/css/css_base.cpp:
15725        (CSSSelector::specificity):
15726        (CSSSelector::extractPseudoType):
15727        (CSSSelector::selectorText):
15728        * khtml/css/css_base.h:
15729        (DOM::CSSSelector::):
15730        (DOM::CSSSelector::pseudoType):
15731        * khtml/css/cssstyleselector.cpp:
15732        (khtml::CSSStyleSelector::checkSelector):
15733        (khtml::CSSStyleSelector::checkOneSelector):
15734        * khtml/css/parser.y:
15735
157362005-06-11  Maciej Stachowiak  <mjs@apple.com>
15737
15738        Patch from Timothy Hatcher  <timothy@colloquy.info>, reviewed by me.
15739
15740        Test cases added:
15741        * layout-tests/fast/dom/children-nodes-expected.txt: Added.
15742        * layout-tests/fast/dom/children-nodes.html: Added.
15743
15744        * khtml/html/html_miscimpl.cpp:
15745        (DOM::HTMLCollectionImpl::traverseNextItem): For "children"
15746	collection, use nextSibling() instead of traverseNextNext() to avoid
15747	doing deep traversal.
15748
157492005-06-11  Maciej Stachowiak  <mjs@apple.com>
15750
15751        Added missing expected results from the background image patch.
15752
15753        * layout-tests/fast/backgrounds/001-expected.txt: Added.
15754
157552005-06-10  David Hyatt  <hyatt@apple.com>
15756
15757	Fix for bugzilla bug 3335, add support for the CSS3 indirect adjacent sibling selector.  Patch merge
15758	from KHTML tree by Nick Shanks.
15759	
15760        Reviewed by hyatt
15761
15762        Test cases added: fast/selectors/046.html
15763
15764        * khtml/css/css_base.cpp:
15765        (CSSSelector::selectorText):
15766        * khtml/css/css_base.h:
15767        (DOM::CSSSelector::):
15768        * khtml/css/cssstyleselector.cpp:
15769        (khtml::CSSStyleSelector::checkSelector):
15770        * khtml/css/parser.y:
15771        * layout-tests/fast/selectors/046-expected.txt: Added.
15772        * layout-tests/fast/selectors/046.html: Added.
15773
157742005-06-10  David Hyatt  <hyatt@apple.com>
15775
15776	Fix for 3237, background image repeats when it shouldn't.  The Radar bug is 4005553.  Patch from
15777	Nate Cook.
15778	
15779        Reviewed by darin and hyatt
15780
15781        Test cases added: fast/backgrounds/001.html
15782
15783        * khtml/rendering/render_box.cpp:
15784        (RenderBox::paintBackgroundExtended):
15785        * layout-tests/fast/backgrounds/001.html: Added.
15786
157872005-06-10  David Hyatt  <hyatt@apple.com>
15788
15789	Merge Allan Jensen's fix for 3236.
15790	
15791        Reviewed by hyatt
15792
15793        Test cases added: None, test case already added for the bug.
15794
15795        * khtml/css/cssstyleselector.cpp:
15796        (khtml::CSSStyleSelector::applyProperty):
15797        * khtml/rendering/render_style.cpp:
15798        (RenderStyle::setContent):
15799
158002005-06-10  Darin Adler  <darin@apple.com>
15801
15802        Change by Mark Rowe <opendarwin.org@bdash.net.nz>.
15803        Refined and reviewed by me.
15804
15805        - test for exception file/line number fix
15806          http://bugs.webkit.org/show_bug.cgi?id=3327
15807
15808        * layout-tests/fast/js/exception-linenums-expected.txt: Added.
15809        * layout-tests/fast/js/exception-linenums.html: Added.
15810
158112005-06-09  David Hyatt  <hyatt@apple.com>
15812
15813	Fix from Carston Guenther for bugzilla bug 3236.
15814
15815	attr(x) should work even if x is not present on the element.
15816
15817	This is Radar bug #3584466
15818	
15819        Reviewed by hyatt
15820
15821        Test cases added: fast/css-generated-content/013.html
15822
15823        * khtml/css/cssstyleselector.cpp:
15824        (khtml::CSSStyleSelector::applyProperty):
15825        * layout-tests/fast/css-generated-content/013-expected.txt: Added.
15826        * layout-tests/fast/css-generated-content/013.html: Added.
15827
158282005-06-09  Darin Adler  <darin@apple.com>
15829
15830        Tested by Mark Rowe.
15831
15832        * layout-tests/fast/js/date-parse-test.html: Updated this test to use a time zone offset
15833        for one of the test cases that's time zone dependent; was working in CA, US, failing in NZ.
15834
158352005-06-08  Anders Carlsson  <andersca@mac.com>
15836
15837	Reviewed and committed by Maciej.
15838
15839	- fixed http://bugs.webkit.org/show_bug.cgi?id=3337
15840	(Support the Mozilla DOMParser and XMLSerializer objects)
15841
15842	<rdar://problem/3533735> implement Mozilla "DOMParser" extension for use with XMLHTTPRequest
15843
15844        Test cases added:
15845        * layout-tests/fast/dom/dom-parse-serialize-display-expected.txt: Added.
15846        * layout-tests/fast/dom/dom-parse-serialize-display.html: Added.
15847        * layout-tests/fast/dom/dom-parse-serialize-expected.txt: Added.
15848        * layout-tests/fast/dom/dom-parse-serialize.html: Added.
15849
15850	* khtml/ecma/domparser.h:
15851	* khtml/ecma/domparser.cpp:
15852	Add files implementing the DOMParser object.
15853
15854	* khtml/ecma/kjs_window.h:
15855	* khtml/ecma/kjs_window.cpp:
15856	Expose DOMParser object.
15857	
158582005-06-07  David Hyatt  <hyatt@apple.com>
15859
15860	Patch from Brian Campbell.  Make sure the min and max values of slider properly update.
15861	Fixes bugilla bug 3323, internal Radar # is 4098892.
15862	
15863        Reviewed by hyatt
15864
15865        Test cases added: (Not testable with a layout test)
15866
15867        * kwq/KWQSlider.mm:
15868        (QSlider::setMinValue):
15869        (QSlider::setMaxValue):
15870
158712005-06-07  Adele Peterson  <adele@apple.com>
15872
15873        Change by Darin, reviewed by Maciej and me.
15874
15875        - fixed <rdar://problem/4139800> REGRESSION: Safari crashes at bebe.com
15876
15877        There were cases where the DOMNode mark function would end up not even
15878        marking the node that it was called on. The old code tried to skip any
15879        subtrees that were already marked, but that code was wrong.
15880
15881        * khtml/ecma/kjs_dom.cpp: (KJS::DOMNode::mark): Changed three things:
15882          1) Instead of a boolean, keep a set of trees that we are marking, that
15883             prevents problems if we mark things that have references between
15884             separate trees of DOM nodes.
15885          2) Don't do the "outermost node with a wrapper" check, just start marking
15886             at the root of the entire tree, because there's no way to have an
15887             unreachable node pointing to a reachable node.
15888          3) Handle the unusual case where the document's wrapper dictionary is
15889             gone by marking just this node explicitly.
15890        This passes the layout tests, still fixes the Dashboard memory leak from
15891        bug 4125222, and makes bebe.com work again.
15892
158932005-06-07  Darin Adler  <darin@apple.com>
15894
15895        Change by Toby Peterson <toby@opendarwin.org>.
15896        Reviewed by me.
15897
15898        * WebCore.pbproj/project.pbxproj: Allow bison 2.0, which generates the file
15899        with a different name.
15900
159012005-06-07  Darin Adler  <darin@apple.com>
15902
15903        Change by Mark Rowe <opendarwin.org@bdash.net.nz>.
15904        Reviewed by me.
15905
15906        - fixed the WebCore half of build failure with spaces in the path
15907          http://bugs.webkit.org/show_bug.cgi?id=3291
15908
15909        * WebCore.pbproj/project.pbxproj: Add quotes to make LIBRARY_SEARCH_PATHS work even when
15910        the path has a space in it.
15911
159122005-06-07  David Hyatt  <hyatt@apple.com>
15913
15914	Patch from Mark Rowe to fix a minor memory leak in WebCoreSettings.
15915	
15916        Reviewed by hyatt
15917
15918        * kwq/WebCoreSettings.mm:
15919        (-[WebCoreSettings dealloc]):
15920
159212005-06-04  Darin Adler  <darin@apple.com>
15922
15923        Reviewed by Maciej.
15924
15925        - import icu headers into project
15926
15927        * WebCore.pbproj/project.pbxproj: Added icu directory to header search path.
15928
15929        * icu/README: Added.
15930        * icu/unicode/parseerr.h: Added.
15931        * icu/unicode/platform.h: Added.
15932        * icu/unicode/putil.h: Added.
15933        * icu/unicode/ubrk.h: Added.
15934        * icu/unicode/uchar.h: Added.
15935        * icu/unicode/uconfig.h: Added.
15936        * icu/unicode/uenum.h: Added.
15937        * icu/unicode/uidna.h: Added.
15938        * icu/unicode/uiter.h: Added.
15939        * icu/unicode/uloc.h: Added.
15940        * icu/unicode/umachine.h: Added.
15941        * icu/unicode/urename.h: Added.
15942        * icu/unicode/ustring.h: Added.
15943        * icu/unicode/utf.h: Added.
15944        * icu/unicode/utf16.h: Added.
15945        * icu/unicode/utf8.h: Added.
15946        * icu/unicode/utf_old.h: Added.
15947        * icu/unicode/utypes.h: Added.
15948        * icu/unicode/uversion.h: Added.
15949
159502005-06-01  Darin Adler  <darin@apple.com>
15951
15952        Reviewed by John Sullivan.
15953        No layout tests added because showModalDialog won't work in DumpRenderTree at the moment.
15954
15955        - WebKit part of fix for <rdar://problem/3166090> add IE JavaScript extension window.showModalDialog
15956
15957        * khtml/ecma/kjs_window.cpp:
15958        (KJS::allowPopUp): Added. Used by showModalDialog now and should be used by window.open later.
15959        (KJS::parseFeatures): Ditto.
15960        (KJS::boolFeature): Ditto.
15961        (KJS::intFeature): Ditto.
15962        (KJS::createNewWindow): Ditto.
15963        (KJS::canShowModalDialog): Added.
15964        (KJS::canShowModalDialogNow): Added.
15965        (KJS::showModalDialog): Added.
15966        (KJS::Window::get): Return the showModalDialog function object if the extension can run modal.
15967        (KJS::Window::clear): Add code to store the return value for the case where the window is a modal dialog.
15968        (KJS::WindowFunc::tryCall): Add the call to the showModalDialog function.
15969
15970        * khtml/ecma/kjs_window.h: Add setReturnValueSlot function so showModalDialog can get the return
15971        value from the dialog it creates. Also add a data member to keep track of the pointer and a constant
15972        for the ShowModalDialog method.
15973
15974        * khtml/khtml_part.h: Added new changeLocation member function. Made setOpener, openedByJS, and
15975        setOpenedByJS public.
15976
15977        * khtml/khtml_part.cpp:
15978        (KHTMLPart::changeLocation): Broke out the part of slotRedirect that actually does the location change
15979        into a separate function so it can be called when needed. The case using it now is to load the content
15980        of a new window in KJS::createNewWindow.
15981        (KHTMLPart::slotRedirect): Call changeLocation to do most of the work.
15982        (KHTMLPart::urlSelected): Fixed a broken case where the "lack of referrer" in a new window would cause
15983        the referrer passed in by JavaScript to be ignored when opening a new window -- match logic elsewhere
15984        that leaves the referrer in the args alone if one is not set in the window.
15985
15986        * khtml/khtmlpart_p.h: Initialize m_bCleared to true to avoid an unnecessary clear before loading the
15987        first URL in a new window. This change is needed to avoid blowing away the "dialogArguments" value in
15988        a modal dialog window, but it also avoid unnecessary work for each new window.
15989
15990        * kwq/KWQApplication.h: Add availableGeometry function for QDesktopWidget. Used by the showModalDialog
15991        function inside kjs_window.cpp (and should be used elsewhere eventually too). Matches a Qt function that
15992        we just didn't have implemented before.
15993        * kwq/KWQApplication.mm: (QDesktopWidget::availableGeometry): Added.
15994
15995        * kwq/KWQKHTMLPartBrowserExtension.h: Added new canRunModal, canRunModalNow, and runModal functions.
15996        * kwq/KWQKHTMLPartBrowserExtension.mm:
15997        (KHTMLPartBrowserExtension::createNewWindow): Call createModalDialogWithURL on the bridge if the
15998        new window is a dialog. Also fixed the early return case for when the bridge returns nil.
15999        (KHTMLPartBrowserExtension::canRunModal): Added. Calls bridge.
16000        (KHTMLPartBrowserExtension::canRunModalNow): Ditto.
16001        (KHTMLPartBrowserExtension::runModal): Ditto.
16002
16003        * kwq/KWQKPartsBrowserExtension.h:
16004        (KParts::URLArgs::URLArgs): Initialize m_lockHistory to false.
16005        (KParts::WindowArgs::WindowArgs): Add a dialog boolean.
16006
16007        * kwq/WebCoreBridge.h: Declared canRunModal, canRunModalNow, createModalDialogWithURL, and runModal methods.
16008
160092005-06-01  Adele Peterson  <adele@apple.com>
16010
16011        fix for <rdar://problem/4135705> REGRESSION (412-TOT) crash in TV Tracker widget - KJS::XMLHttpRequest::removeFromRequestsByDocument()
16012
16013        Reviewed by Darin.
16014
16015        Synchronous loads don't get added to our requestsByDocument dictionary, so we should try to remove the request in this case. 
16016
16017        * khtml/ecma/xmlhttprequest.cpp: (KJS::XMLHttpRequest::removeFromRequestsByDocument): added checks to make sure request exists before trying to remove it.
16018
160192005-05-30  Darin Adler  <darin@apple.com>
16020
16021        Reviewed by John (fix for Radar bug) and Vicki (all the rest).
16022
16023        - fixed <rdar://problem/4105097> REGRESSION (138-139): Hitting Enter on a checkbox toggles check mark instead of submitting form
16024        - fixed other problems discovered while trying to make a layout test to test this work:
16025            - added newer DOM 3 event type constants
16026            - fixed prototype setup bug preventing event initialization functions from being called
16027            - fixed bug where any function taking an event parameter would crash with a nil-deref
16028            - fixed incorrect ref/deref bug in MutationEventImpl that would cause a crash crash
16029
16030        Test cases added:
16031        * layout-tests/fast/forms/check-box-enter-key-expected.txt: Added.
16032        * layout-tests/fast/forms/check-box-enter-key.html: Added.
16033        * layout-tests/fast/events/event-creation-expected.txt: Added.
16034        * layout-tests/fast/events/event-creation.html: Added.
16035
16036        * khtml/html/html_formimpl.cpp: (DOM::HTMLInputElementImpl::defaultEventHandler): Separate the checks for
16037        the space bar and the Enter key and make Enter submit the form on a check box or radio button.
16038
16039        * khtml/ecma/kjs_events.cpp:
16040        (KJS::toEvent): Fixed bug where this was checking for DOMNode rather than DOMEvent, so always returning 0.
16041        Without this, both test cases above will crash.
16042        (KJS::DOMUIEvent::DOMUIEvent): Set prototype; without this, the event-creation test case will fail.
16043        (KJS::DOMMouseEvent::DOMMouseEvent): Set prototype; without this, the event-creation test case will fail.
16044        (KJS::DOMKeyboardEvent::DOMKeyboardEvent): Set prototype; without this, both test cases above will fail.
16045        (KJS::DOMMutationEvent::DOMMutationEvent): Set prototype; without this, both test cases above will fail.
16046
16047        * khtml/xml/dom2_eventsimpl.cpp:
16048        (MutationEventImpl::MutationEventImpl): Fix typo where the wrong object was ref'd.
16049        (MutationEventImpl::initMutationEvent): Ditto. This was causing the layout tests to crash with the new tests above.
16050
16051        * khtml/xml/dom_docimpl.cpp: (DocumentImpl::createEvent): Added new event types to match the current DOM
16052        Level 3 specification. The test above tests both the new event types and the old ones.
16053
160542005-05-30  Darin Adler  <darin@apple.com>
16055
16056        Reviewed by John.
16057        No test case added because our layout test system doesn't allow us to do inline input.
16058
16059        - fixed <rdar://problem/4094066> REGRESSION (1.2.5-1.3): unconfirmed inline input is ignored in <textarea>, lost when form is submitted
16060
16061        * kwq/KWQTextArea.mm: (-[KWQTextArea _createTextView]): Call setWantsNotificationForMarkedText:YES.
16062
160632005-05-30  Maciej Stachowiak  <mjs@apple.com>
16064
16065        Reviewed by Darin.
16066
16067	- fixed <rdar://problem/4125222> Dashboard heap size grows over time (leak caused by JavaScript DOM node wrappers?)
16068
16069	- changed per-document DOMObject caching to work with DOMNodes, since that is all it was used for anyway.
16070	
16071        Test cases added: (these tests actually ensure that DOM wrappers
16072	are sufficiently protected from GC to match other browsers, they
16073	do not verify that the leak is fixed since there's no way to test
16074	that with layout tests).
16075
16076        * layout-tests/fast/dom/gc-1-expected.txt: Added.
16077        * layout-tests/fast/dom/gc-1.html: Added.
16078        * layout-tests/fast/dom/gc-2-expected.txt: Added.
16079        * layout-tests/fast/dom/gc-2.html: Added.
16080        * layout-tests/fast/dom/gc-3-expected.txt: Added.
16081        * layout-tests/fast/dom/gc-3.html: Added.
16082
16083        * khtml/ecma/kjs_binding.cpp:
16084        (KJS::ScriptInterpreter::forgetDOMObjectForDocument): New function - allows nodes
16085	that get removed from the document to go away from the cache if not referenced.
16086        (KJS::ScriptInterpreter::mark): Don't mark nodes that aren't in the document,
16087	they can stay in the cache but only if they have another source of life.
16088        (KJS::ScriptInterpreter::domNodesPerDocument): Renamed and changed parameter types.
16089        (KJS::ScriptInterpreter::getDOMNodeForDocument): Renamed and changed parameter types.
16090        (KJS::ScriptInterpreter::forgetDOMNodeForDocument): Renamed and changed parameter types.
16091        (KJS::ScriptInterpreter::putDOMNodeForDocument): Renamed and changed parameter types.
16092        (KJS::ScriptInterpreter::forgetAllDOMNodesForDocument): Renamed and changed parameter types.
16093        (KJS::ScriptInterpreter::updateDOMNodeDocument): Renamed and changed parameter types.
16094        * khtml/ecma/kjs_binding.h:
16095        * khtml/ecma/kjs_dom.cpp: 
16096        (KJS::DOMNode::~DOMNode): call forgetDOMObjectForDocument.
16097        (KJS::DOMNode::mark): If the node is not in the document, make sure to mark
16098	all wrappers in its detached piece of the tree.
16099        (KJS::getDOMNode): Updated for renames
16100        * khtml/ecma/kjs_dom.h:
16101        * khtml/xml/dom_docimpl.cpp:
16102        (DocumentImpl::~DocumentImpl): Updated for renames.
16103        * khtml/xml/dom_nodeimpl.cpp:
16104        (NodeImpl::checkAddChild): Updated for renames.
16105
161062005-05-30  Darin Adler  <darin@apple.com>
16107
16108        Reviewed by John.
16109        Could not figure out how to make an <object> fallback, so for now, no layout test.
16110
16111        - fixed <rdar://problem/4134124> REGRESSION (tip of tree): crash in QWidget::getView handling onunload event (yahoo.com)
16112
16113        * khtml/html/html_objectimpl.cpp: (DOM::HTMLObjectElementImpl::getObjectInstance):
16114        Check type of RenderObject to be sure it is a RenderWidget before calling widget() on it.
16115
161162005-05-27  Adele Peterson  <adele@apple.com>
16117
16118        Change by Darin, reviewed by me.
16119
16120        fix for <rdar://problem/4067761> 8A425: reload stock widget over and over and crash in XMLHttpRequest::changeState
16121
16122        * khtml/khtml_part.cpp: (KHTMLPart::closeURL): now cancels XMLHttpRequests
16123        * khtml/ecma/xmlhttprequest.h: Added cancelRequests, addToRequestsByDocument, and RemoveFromRequestsByDocument methods. Added requestsByDocument dictionary.
16124        * khtml/ecma/xmlhttprequest.cpp:
16125        (KJS::XMLHttpRequest::send): calls addToRequestsByDocument
16126        (KJS::XMLHttpRequest::abort): calls removeFromRequestsByDocument
16127        (KJS::XMLHttpRequest::slotFinished): calls removeFromRequestsByDocument
16128        (KJS::XMLHttpRequest::requestsByDocument):  creates dictionary to manage requests.
16129        (KJS::XMLHttpRequest::addToRequestsByDocument): adds this request to dict.
16130        (KJS::XMLHttpRequest::removeFromRequestsByDocument): removes this request from dict.
16131        (KJS::XMLHttpRequest::cancelRequests): goes and cancels requests in the doc
16132
161332005-05-27  Adele Peterson  <adele@apple.com>
16134
16135        Reviewed by me, done by Darin.
16136
16137        - Darin fixed a regression I found from Darin's recent DOM change that broke GMail
16138
16139        * khtml/ecma/kjs_window.cpp:
16140        (KJS::Window::get): Added nil check for document.
16141        (KJS::Window::hasProperty): Ditto.
16142
16143        Test cases added: None (Darin should write one).
16144
161452005-05-27  Adele Peterson  <adele@apple.com>
16146
16147        Reviewed by Darin.
16148
16149        fix for <rdar://problem/4121747> Cannot log into Cingular.com account page (load event delivered while still processing incoming data)
16150       
16151        * khtml/misc/loader.cpp:
16152        (DocLoader::DocLoader): Initialized m_loadInProgress to false.
16153        (DocLoader::setLoadInProgress): Added.
16154        (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.
16155        (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.
16156        * khtml/misc/loader.h: (khtml::DocLoader::loadInProgress): Added.
16157
16158        Test cases added: 
16159        * layout-tests/fast/loader/loadInProgress.html: Added
16160        * layout-tests/fast/loader/loadInProgress-expected.html: Added
16161
161622005-05-27  Darin Adler  <darin@apple.com>
16163
16164        Reviewed by Vicki.
16165
16166        - fixed <rdar://problem/4125212> form submission delayed until you are on the next page on XML/XSL page (security hole)
16167
16168        * khtml/xsl/xslt_processorimpl.cpp: (DOM::XSLTProcessorImpl::documentFromXMLDocPtr):
16169        Call setParsing(false) explicitly here. It's really annoying that setParsing(true) is done
16170        inside DOM::DocumentImpl and setParsing(false) is done by KHTMLPart, so that should be fixed
16171        some day, but for now this is the way to do it.
16172
16173        Test cases added:
16174        * layout-tests/fast/events/xsl-onload-expected.txt: Added.
16175        * layout-tests/fast/events/xsl-onload.xhtml: Added.
16176        * layout-tests/fast/events/xsl-onload.xsl: Added.
16177
161782005-05-27  John Sullivan  <sullivan@apple.com>
16179
16180        Reviewed by Darin
16181
16182        * WebCore-tests.exp:
16183        took out symbol __ZNK5QChar7isPunctEv; it was obsolete and causing build trouble
16184
161852005-05-27  Darin Adler  <darin@apple.com>
16186
16187        Reviewed by Adele.
16188
16189        - remove HAVE_ICU_LIBRARY ifdefs
16190
16191        * khtml/rendering/render_text.cpp: Just use ICU all the time; no ifdef.
16192        * kwq/KWQKURL.mm: Ditto.
16193
161942005-05-26  Darin Adler  <darin@apple.com>
16195
16196        Reviewed by me, patch by Mitz Pettel.
16197
16198        - fixed <rdar://problem/4106907> bidi algorithm bug fixed for KHTML should be fixed in WebCore too
16199
16200        * khtml/rendering/bidi.cpp: (khtml::RenderBlock::bidiReorderLine): Integrated the patch that Mitz did
16201        for the KDE bug, details at <http://www.mitzpettel.com/software/WebCorePatch2.html>.
16202
16203        Test cases added:
16204        * layout-tests/fast/text/international/bidi-neutral-directionality-paragraph-start-expected.txt: Added.
16205        * layout-tests/fast/text/international/bidi-neutral-directionality-paragraph-start.html: Added.
16206
162072005-05-26  Darin Adler  <darin@apple.com>
16208
16209        Reviewed by Richard and Dave Harrison.
16210        No new test cases needed for this change.
16211
16212        - eliminate WebCoreUnicode and use ICU directly instead
16213        - fixed compiling with gcc 4.0 (was broken for Development only)
16214
16215        * WebCore.exp: Removed the WebCoreXXXFunction exports.
16216        * WebCore-tests.exp: Removed some QChar functions that are now inlines.
16217        Removed some typeinfo exports that are no longer appropriate since we use -fno-rtti.
16218
16219        * kwq/KWQString.h:
16220        (QChar::isDigit): Changed to call u_isdigit when non-ASCII. We should probably phase
16221        this out since it's only used in places where we don't want to handle non-ASCII decimal digits.
16222        (QChar::isLetter): Changed to call u_isalpha when non-ASCII.
16223        (QChar::isNumber): Changed to call u_isdigit when non-ASCII. This probably should be removed, since
16224        we always want to call isDigit instead.
16225        (QChar::isLetterOrNumber): Changed to call u_isalnum when non-ASCII.
16226        (QChar::isPunct): Changed to call u_ispunct when non-ASCII.
16227        (QChar::digitValue): Changed to call u_charDigitValue when not '0'-'9'. We should probably phase
16228        this out since it's only used in places where we don't want to handle non-ASCII decimal digits.
16229        (QChar::lower): Changed to call u_tolower when non-ASCII.
16230        (QChar::upper): Changed to call u_toupper when non-ASCII.
16231        (QChar::direction): Made inline. Calls u_charDirection.
16232        (QChar::mirrored): Made inline. Calls u_isMirrored.
16233        (QChar::mirroredChar): Made inline. Calls u_charMirror.
16234
16235        * kwq/KWQChar.mm: Removed.
16236        * kwq/WebCoreUnicode.cpp: Removed.
16237        * kwq/WebCoreUnicode.h: Removed.
16238
16239        * WebCore.pbproj/project.pbxproj: Removed files.
16240
162412005-05-26  David Harrison  <harrison@apple.com>
16242
16243        Reviewed by John.
16244
16245        <rdar://problem/4120518> Mail: control-T in an empty message crashes mail
16246        
16247        * kwq/WebCoreBridge.mm:
16248        (-[WebCoreBridge rangeOfCharactersAroundCaret]):
16249        Nil-check result of VisiblePosition previous() and next().
16250
16251        * khtml/editing/visible_position.cpp:
16252        (khtml::VisiblePosition::previous):
16253        (khtml::VisiblePosition::previousVisiblePosition):
16254        Make sure previous() does not return the original position.  Also, simplified.
16255        Commented odd, but required, behavior in previousVisiblePosition().
16256
16257        * khtml/editing/visible_units.cpp:
16258        (khtml::startOfEditableContent):
16259        (khtml::endOfEditableContent):
16260        Removed redundant check for isEditableContent().
16261        
16262        * khtml/editing/jsediting.cpp:
16263        * khtml/khtml_part.cpp:
16264        (KHTMLPart::transpose):
16265        * khtml/khtml_part.h:
16266        * kwq/KWQKHTMLPart.h:
16267        * kwq/KWQKHTMLPart.mm:
16268        (KWQKHTMLPart::issueTransposeCommand):
16269        * layout-tests/editing/editing.js:
16270        * kwq/WebCoreBridge.h:
16271        Add support for transpose command in JavaScript and therefore layout tests.
16272        
16273        * layout-tests/editing/deleting/transpose-empty-expected.txt: Added.
16274        * layout-tests/editing/deleting/transpose-empty.html: Added.
16275        New test for this bug.
16276        
162772005-05-24  Richard Williamson   <rjw@apple.com>
16278
16279	Fixed <rdar://problem/4127061> <canvas> backing store should be zero filled
16280
16281	Use calloc instead of malloc to ensure zero filled backing store.
16282
16283        Reviewed by Darin.
16284
16285        * khtml/rendering/render_canvasimage.cpp:
16286        (RenderCanvasImage::createDrawingContext):
16287
162882005-05-24  John Sullivan  <sullivan@apple.com>
16289
16290        Reviewed by Dave Hyatt.
16291        
16292        - fixed these bugs:
16293        <rdar://problem/4118510> Textareas with a vertical scroll bar should have their resize corner under the scroll bar
16294        <rdar://problem/4118523> Resize image in textareas is drawn repeatedly when scrolling vertically with scrollbar
16295
16296        Test cases added: none; doesn't affect page layout
16297
16298        * kwq/KWQTextArea.h:
16299        added inInitWithFrame ivar
16300        * kwq/KWQTextArea.mm:
16301        (+[KWQTextArea _resizeCornerImage]):
16302        moved here from KWQTextAreaTextView; now it's a class method so we only look up the image once.
16303        (-[KWQTextArea initWithFrame:]):
16304        set and clear inInitWithFrame ivar, used by -tile
16305        (-[KWQTextArea _isResizableByUser]):
16306        renamed with an underscore for consistency
16307        (-[KWQTextArea _textViewShouldHandleResizing]):
16308        new method, returns YES if the textarea is user-resizable and the enclosed textview is responsible for drawing
16309        and tracking the resize corner.
16310        (-[KWQTextArea tile]):
16311        shrink the vertical scroller if appropriate to account for the resize corner
16312        (-[KWQTextArea _resizeCornerRect]):
16313        new method, returns the bottom-right corner rect, where the resize image goes
16314        (-[KWQTextArea _trackResizeFromMouseDown:]):
16315        moved here from KWQTextAreaTextView. The only changes were to move the [NSCursor set] call inside here (was in
16316        the caller), and to use self where it was using [self _enclosingTextArea], and to move a comment in here that
16317        was in the caller
16318        (-[KWQTextArea mouseDown:]):
16319        track resizing if appropriate
16320        (-[KWQTextArea drawRect:]):
16321        draw the resize corner if appropriate
16322        (-[KWQTextAreaTextView _resizeCornerRect]):
16323        get the resize image from KWQTextArea
16324        (-[KWQTextAreaTextView resetCursorRects]):
16325        check _textViewShouldHandleResizing
16326        (-[KWQTextAreaTextView drawRect:]):
16327        ditto
16328        (-[KWQTextAreaTextView mouseDown:]):
16329        ditto; also, make the textarea handle the resize tracking now
16330
163312005-05-24  Darin Adler  <darin@apple.com>
16332
16333        - another gcc 4.0 fix
16334
16335        No new test cases needed.
16336
16337        * khtml/dom/dom2_events.cpp: Moved constants out of the KHTML_NO_CPLUSPLUS_DOM #if.
16338
163392005-05-24  Darin Adler  <darin@apple.com>
16340
16341        Reviewed by Vicki.
16342
16343        - fixed <rdar://problem/4128727> many DOM classes not exported (can't add categories or do other things that require class name linking)
16344
16345        No new test cases needed.
16346
16347        * WebCore.exp: Added exports for many classes in the public DOM headers that were omitted before.
16348        Also removed one symbol that was listed twice.
16349
163502005-05-24  Maciej Stachowiak  <mjs@apple.com>
16351
16352        Reviewed by John.
16353
16354	- fixed <rdar://problem/3598589> onunload handler doesn't fire when a window is closed
16355
16356        Test cases added: 
16357        * layout-tests/fast/events/onunload-expected.txt: Added.
16358        * layout-tests/fast/events/onunload.html: Added.
16359
16360        * khtml/xml/dom_docimpl.cpp:
16361        (DocumentImpl::detach): Don't remove all event handlers from the document here...
16362        * khtml/khtml_part.cpp:
16363        (KHTMLPart::closeURL): ...instead do it here, after firing the unload event, but only
16364	if the document is not in the back/forward cache...
16365        * kwq/KWQPageState.mm:
16366        (-[KWQPageState finalize]): ...and take care of the back/forward cache case here.
16367
163682005-05-24  John Sullivan  <sullivan@apple.com>
16369
16370        Reviewed by Kevin.
16371        
16372        - WebCore part of <rdar://problem/4125783> WebKit needs a way to control whether textareas are resizable
16373
16374        * kwq/KWQKHTMLSettings.h:
16375        (KHTMLSettings::textAreasAreResizable):
16376        new getter
16377        (KHTMLSettings::setTextAreasAreResizable):
16378        new setter
16379        
16380        * kwq/KWQTextArea.h:
16381        * kwq/KWQTextArea.mm:
16382        eliminated ALLOW_RESIZING_TEXT_AREAS #define in favor of using runtime setting
16383        (-[KWQTextArea isResizableByUser]):
16384        get value from settings, and cache it in KWQTextArea instance
16385        (-[KWQTextAreaTextView _enclosingTextArea]):
16386        new convenience method, extracted from _trackResizeFromMouseDown:
16387        (-[KWQTextAreaTextView _trackResizeFromMouseDown:]):
16388        now uses extracted method
16389        
16390        (-[KWQTextAreaTextView drawRect:]):
16391        now checks isResizableByUser
16392        (-[KWQTextAreaTextView mouseDown:]):
16393        ditto
16394        
16395        * kwq/WebCoreSettings.h:
16396        * kwq/WebCoreSettings.mm:
16397        (-[WebCoreSettings setTextAreasAreResizable:]):
16398        new setter
16399        (-[WebCoreSettings textAreasAreResizable]):
16400        new getter
16401
164022005-05-23  Maciej Stachowiak  <mjs@apple.com>
16403
16404        Reviewed by John.
16405
16406	- split remaining editing command classes out of htmlediting.cpp
16407	- rename InsertParagraphSeparatorInQuotedContentCommand to BreakBlockquoteCommand
16408
16409	No layout tests needed - this is a pure refactoring change.
16410	
16411        * WebCore.pbproj/project.pbxproj:
16412        * khtml/editing/apply_style_command.cpp:
16413        * khtml/editing/break_blockquote_command.cpp: Added.
16414        * khtml/editing/break_blockquote_command.h: Added.
16415        * khtml/editing/composite_edit_command.cpp:
16416        * khtml/editing/delete_selection_command.cpp:
16417        * khtml/editing/edit_command.cpp:
16418        * khtml/editing/htmlediting.cpp:
16419        * khtml/editing/htmlediting.h:
16420        * khtml/editing/insert_line_break_command.cpp: Added.
16421        * khtml/editing/insert_line_break_command.h: Added.
16422        * khtml/editing/insert_paragraph_separator_command.cpp: Added.
16423        * khtml/editing/insert_paragraph_separator_command.h: Added.
16424        * khtml/editing/insert_text_command.cpp: Added.
16425        * khtml/editing/insert_text_command.h: Added.
16426        * khtml/editing/join_text_nodes_command.cpp: Added.
16427        * khtml/editing/join_text_nodes_command.h: Added.
16428        * khtml/editing/merge_identical_elements_command.cpp: Added.
16429        * khtml/editing/merge_identical_elements_command.h: Added.
16430        * khtml/editing/move_selection_command.cpp: Added.
16431        * khtml/editing/move_selection_command.h: Added.
16432        * khtml/editing/rebalance_whitespace_command.cpp: Added.
16433        * khtml/editing/rebalance_whitespace_command.h: Added.
16434        * khtml/editing/remove_css_property_command.cpp: Added.
16435        * khtml/editing/remove_css_property_command.h: Added.
16436        * khtml/editing/remove_node_attribute_command.cpp: Added.
16437        * khtml/editing/remove_node_attribute_command.h: Added.
16438        * khtml/editing/remove_node_command.cpp: Added.
16439        * khtml/editing/remove_node_command.h: Added.
16440        * khtml/editing/remove_node_preserving_children_command.cpp: Added.
16441        * khtml/editing/remove_node_preserving_children_command.h: Added.
16442        * khtml/editing/replace_selection_command.cpp: Added.
16443        * khtml/editing/replace_selection_command.h: Added.
16444        * khtml/editing/set_node_attribute_command.cpp: Added.
16445        * khtml/editing/set_node_attribute_command.h: Added.
16446        * khtml/editing/split_element_command.cpp: Added.
16447        * khtml/editing/split_element_command.h: Added.
16448        * khtml/editing/split_text_node_command.cpp: Added.
16449        * khtml/editing/split_text_node_command.h: Added.
16450        * khtml/editing/split_text_node_containing_element_command.h: Added.
16451        * khtml/editing/typing_command.cpp: Added.
16452        * khtml/editing/typing_command.h: Added.
16453        * khtml/editing/wrap_contents_in_dummy_span_command.cpp: Added.
16454        * khtml/editing/wrap_contents_in_dummy_span_command.h: Added.
16455
164562005-05-23  Darin Adler  <darin@apple.com>
16457
16458        * WebCore.exp: Sorted file for more readable diffs.
16459
164602005-05-23  Adele Peterson  <adele@apple.com>
16461
16462        Reviewed by Darin.
16463
16464        fix for <rdar://problem/4122661> Regression: 10.3.8-10.3.9: Next lesson doesn't work on Dale Carnegie Action Systems page
16465
16466        * 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.
16467
164682005-05-23  David Harrison  <harrison@apple.com>
16469
16470        Reviewed by Darin.
16471
16472        Prevent crash when going from no selection to selection with mispelling checks enabled.
16473		
16474        * kwq/KWQKHTMLPart.mm:
16475        (KWQKHTMLPart::markMisspellings):
16476        Repair check for null searchRange.  Was inadvertently broken in recent checkin.
16477
164782005-05-23  John Sullivan  <sullivan@apple.com>
16479
16480        Reviewed by Dave Hyatt.
16481        
16482        - fixed <rdar://problem/4123592> Can't resize textareas that have a width specified by a style
16483
16484        * kwq/KWQTextArea.mm:
16485        (-[KWQTextArea getNumColumns:andNumRows:forSize:]):
16486        removed this method, which I had added earlier to set cols and rows correctly
16487        (-[KWQTextAreaTextView _trackResizeFromMouseDown:]):
16488        set width and height instead of cols and rows; handle the intrinsic margin that sometimes appears
16489        on form elements
16490
164912005-05-22  Adele Peterson  <adele@apple.com>
16492
16493        Reviewed by Maciej.
16494
16495        fix for <rdar://problem/4127101> REGRESSION(412-TOT) crash when creating Option element
16496
16497        * khtml/ecma/kjs_html.cpp: (KJS::OptionConstructorImp::construct):
16498        Changed ElementImpl pointer to a SharedPtr because it was getting destroyed before we were done with it.  
16499
165002005-05-20  John Sullivan  <sullivan@apple.com>
16501
16502        Reviewed by Chris.
16503        
16504        - fixed <rdar://problem/4126160> Crash sending mouse-exited event after reloading 
16505        page with resizable textarea
16506
16507        * kwq/KWQTextArea.mm:
16508        (-[KWQTextAreaTextView resetCursorRects]):
16509        This was some side effect of tracking rect code used for resizable textareas. I discovered
16510        that I didn't need the tracking rect code at all (at least to achieve the level of only-somewhat-working
16511        cursor behavior that I already had). Removing it caused the bug to vanish.
16512
165132005-05-19  Darin Adler  <darin@apple.com>
16514
16515        Reviewed by Maciej.
16516        
16517        - turned off exceptions and RTTI; seems to cut WebCore code size by about 35%
16518
16519        * WebCore.pbproj/project.pbxproj: Turn off exceptions and RTTI for the framework.
16520
165212005-05-19  Darin Adler  <darin@apple.com>
16522
16523        Reviewed by Chris Petersen.
16524
16525        - fixed a mistake I introduced in my previous check-in that caused a Deployment build failure
16526
16527        * kwq/DOM.mm: (-[DOMDocument createTreeWalker::::]): Initialize cppFilter to 0, which fixes both
16528        the build failure and a potential bug!
16529
165302005-05-17  Darin Adler  <darin@apple.com>
16531
16532        Reviewed by Maciej.
16533        No new layout tests required.
16534
16535        - remove all dependencies on exceptions and RTTI (but don't turn them off yet, that will be in a later patch)
16536
16537        * WebCore.pbproj/project.pbxproj: Set a new KHTML_NO_CPLUSPLUS_DOM define.
16538        Removed all C++ DOM wrapper files that we don't need to compile any more.
16539
16540        * khtml/dom/css_stylesheet.h: Added more KHTML_NO_CPLUSPLUS_DOM checks so we don't include any
16541        headers when including this file.
16542
16543        * khtml/dom/dom2_events.h: Fixed up KHTML_NO_CPLUSPLUS_DOM checks so that everything but EventListener
16544        is turned off when that's on. Also moved the public so that the constants from KeyboardEvent are public.
16545        * khtml/dom/dom2_events.cpp: Put everything except for EventListener inside KHTML_NO_CPLUSPLUS_DOM.
16546
16547        * khtml/dom/dom2_range.h: Added KHTML_NO_CPLUSPLUS_DOM checks so that only the constants are defined,
16548        no classes.
16549
16550        * khtml/dom/dom2_traversal.cpp: Put everything except for NodeFilterCondition inside KHTML_NO_CPLUSPLUS_DOM.
16551
16552        * khtml/dom/dom_node.h: Added more KHTML_NO_CPLUSPLUS_DOM checks so we don't include any
16553        headers when including this file.
16554
16555        * khtml/ecma/kjs_binding.cpp:
16556        (KJS::DOMObject::get): Removed exception-handling code. Now we can eliminate tryGet altogether.
16557        (KJS::DOMObject::put): Ditto.
16558        (KJS::DOMFunction::get): Ditto.
16559        (KJS::DOMFunction::call): Ditto.
16560
16561        * khtml/editing/visible_text.h: Added an include of <qstring.h>.
16562
16563        * khtml/misc/loader.h: Added isKHTMLLoader.
16564        * khtml/misc/loader.cpp: (Loader::isKHTMLLoader): Added. Poor-man's replacement for dynamic_cast.
16565
16566        * khtml/rendering/render_form.h:
16567        * khtml/rendering/render_form.cpp: (RenderFormElement::slotTextChanged): Added. Hack to make KWQSlot work
16568        for this function.
16569
16570        * khtml/xml/dom2_rangeimpl.h: Added a forward declaration of class DOMString, needed now that the C++
16571        DOM wrappers aren't defining it.
16572
16573        * khtml/xml/dom_docimpl.cpp:
16574        (DocumentImpl::defaultEventHandler): Changed to call handleEventImpl so we don't have to make the
16575        C++ DOM wrapper for the event.
16576        * khtml/xml/dom_nodeimpl.cpp:
16577        (NodeImpl::handleLocalEvents): Ditto.
16578        (ContainerNodeImpl::insertBefore): Used SharedPtr<NodeImpl> rather than Node to protect the child node.
16579        (ContainerNodeImpl::replaceChild): Ditto.
16580        (ContainerNodeImpl::appendChild): Ditto.
16581        (ContainerNodeImpl::addChild): Ditto.
16582
16583        * kwq/DOM.mm:
16584        (ObjCNodeFilterCondition::acceptNode): Update to add a KHTML_NO_CPLUSPLUS_DOM check since FilterCondition
16585        has a different API depending on the state.
16586        (-[DOMDocument createNodeIterator::::]): Rewrote to use NodeFilterImpl instead of NodeFilter.
16587        (-[DOMDocument createTreeWalker::::]): Ditto.
16588
16589        * kwq/KWQAccObject.mm:
16590        (-[KWQAccObject role]): Use identifier instead of casting to Node and using elementId.
16591        (-[KWQAccObject title]): Ditto.
16592        (-[KWQAccObject accessibilityIsIgnored]): Ditto.
16593        (-[KWQAccObject rendererForView:]): Ditto.
16594
16595        * kwq/KWQFrame.mm: (QFrame::setFrameStyle): Use isKHTMLView instead of dynamic_cast.
16596
16597        * kwq/KWQKHTMLPart.mm:
16598        (KWQKHTMLPart::currentForm): Use focusNode instead of activeNode.
16599        (KWQKHTMLPart::nextKeyViewInFrame): Use isWidget instead of dynamic_cast.
16600        (KWQKHTMLPart::currentEventIsMouseDownInWidget): Use KHTMLView's nodeUnderMouse instead of our public one
16601        that uses a DOM C++ wrapper.
16602        (KWQKHTMLPart::partForWidget): Use isKHTMLView instead of dynamic_cast.
16603        (KWQKHTMLPart::passSubframeEventToSubframe): Use isWidget instead of dynamic_cast.
16604
16605        * kwq/KWQObject.h: Made isXXX functions all public since we use them in a few more places now.
16606        Also added isKHTMLLoader.
16607        * kwq/KWQObject.mm: (QObject::isKHTMLLoader): Added. Returns false by default.
16608
16609        * kwq/KWQSlot.mm: Removed all uses of dynamic_cast.
16610
16611        * kwq/WebCoreBridge.mm:
16612        (-[WebCoreBridge stringForRange:]): Used plainText instead of text.
16613        (-[WebCoreBridge copyRenderNode:copier:]): Used isWidget instead of dynamic_cast.
16614
166152005-05-16  Darin Adler  <darin@apple.com>
16616
16617        - attempt to get things building under "Saffron" development tools
16618
16619        * WebCore.pbproj/project.pbxproj: Use BUILT_PRODUCTS_DIR instead of SYMROOT.
16620
166212005-05-16  Adele Peterson  <adele@apple.com>
16622
16623        Changes by Darin. Reviewed by myself.
16624
16625        Changed the Render Tree debug code to write out an indication that the affinity is upstream
16626        when writing out caret position. Updated the one layout test with output affected by the change.
16627        Also updated one test to use the new dumpAsText method in dumpRenderTree.
16628
16629        * kwq/KWQRenderTreeDebug.cpp: (writeSelection): writes out affinity if it's upstream in the caret case
16630        * layout-tests/editing/style/create-block-for-style-004-expected.txt: new results that contain the affinity
16631        * layout-tests/fast/js/char-at.html: now calls layoutController.dumpAsText()
16632        * layout-tests/fast/js/char-at-expected.txt: plain text result (replaces old render tree result)
16633
166342005-05-16  Darin Adler  <darin@apple.com>
16635
16636        Reviewed by Adele.
16637
16638        - fixed issues preventing us from compiling with newer versions of gcc 4.0
16639
16640        * khtml/dom/dom2_events.cpp: Add definitions of some static data member constants, as required
16641        by the C++ standard and the gcc 4.0 compiler.
16642
16643        * khtml/editing/selection.h: Specified KHTMLPart friend class as ::KHTMLPart, since if it's
16644        not explicitly qualified, it means DOM::KHTMLPart.
16645
16646        * khtml/dom/dom_string.cpp:
16647        (DOM::strcasecmp): Removed redundant and illegal DOM:: prefix.
16648        (DOM::operator==): Ditto.
16649        * khtml/ecma/kjs_binding.cpp:
16650        (KJS::getStringOrNull): Removed redundant and illegal KJS:: prefix.
16651        (KJS::ValueToVariant): Ditto.
16652        * khtml/ecma/kjs_css.cpp:
16653        (KJS::getCSSRuleConstructor): Ditto.
16654        (KJS::getCSSValueConstructor): Ditto.
16655        (KJS::getCSSPrimitiveValueConstructor): Ditto.
16656        * khtml/ecma/kjs_events.cpp:
16657        (KJS::getEventConstructor): Ditto.
16658        (KJS::getEventExceptionConstructor): Ditto.
16659        (KJS::getMutationEventConstructor): Ditto.
16660        * khtml/ecma/kjs_traversal.cpp:
16661        (KJS::getNodeFilterConstructor): Ditto.
16662
16663        * khtml/misc/loader_client.h: Added an empty virtual destructor to CachedObjectClient
16664        to quiet the compiler. This doesn't really do any good, but also does no harm.
16665        * khtml/misc/loader.cpp: (CachedObjectClient::~CachedObjectClient): Added.
16666
16667        * khtml/rendering/render_block.cpp: (khtml::RenderBlock::fillBlockSelectionGaps):
16668        Initialize a couple of variables that should have been initialized to 0.
16669        Not just about making the compiler happy -- warning found a real bug!
16670
16671        * kwq/KWQTextArea.mm: (RangeOfParagraph): Change else structure to work around compiler
16672        warning bug.
16673
166742005-05-13  John Sullivan  <sullivan@apple.com>
16675
16676        * kwq/KWQTextArea.mm:
16677        (-[KWQTextAreaTextView _trackResizeFromMouseDown:]):
16678        added Radar numbers to FIXMEs about resizable textareas
16679        (-[KWQTextAreaTextView resetCursorRects]):
16680        ditto
16681        (-[KWQTextAreaTextView mouseDown:]):
16682        ditto
16683
166842005-05-12  Darin Adler  <darin@apple.com>
16685
16686        Reviewed by Chris Blumenberg.
16687
16688        - more "getting off the C++ DOM wrappers" changes
16689          This pass involves replacing uses of DOM::Range with use of DOM::RangeImpl
16690          plus some more use of DOM::DocumentImpl instead of DOM::Document.
16691
16692        * khtml/dom/dom2_range.cpp:
16693        * khtml/dom/dom2_range.h:
16694        * khtml/ecma/kjs_window.cpp:
16695        (KJS::Window::get):
16696        (KJS::WindowFunc::tryCall):
16697        (KJS::Window::updateLayout):
16698        (KJS::ScheduledAction::execute):
16699        (KJS::Selection::toString):
16700        * khtml/ecma/xmlhttprequest.cpp:
16701        (KJS::XMLHttpRequestProtoFunc::tryCall):
16702        * khtml/editing/htmlediting.cpp:
16703        (khtml::InsertLineBreakCommand::doApply):
16704        * khtml/editing/selection.cpp:
16705        (khtml::Selection::Selection):
16706        (khtml::Selection::moveTo):
16707        (khtml::Selection::toRange):
16708        * khtml/editing/selection.h:
16709        * khtml/editing/visible_position.cpp:
16710        (khtml::makeRange):
16711        (khtml::startVisiblePosition):
16712        (khtml::endVisiblePosition):
16713        (khtml::setStart):
16714        (khtml::setEnd):
16715        * khtml/editing/visible_position.h:
16716        * khtml/editing/visible_range.h:
16717        * khtml/editing/visible_text.cpp:
16718        (khtml::TextIterator::TextIterator):
16719        (khtml::TextIterator::range):
16720        (khtml::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
16721        (khtml::SimplifiedBackwardsTextIterator::range):
16722        (khtml::CharacterIterator::CharacterIterator):
16723        (khtml::CharacterIterator::range):
16724        (khtml::WordAwareIterator::WordAwareIterator):
16725        (khtml::WordAwareIterator::advance):
16726        (khtml::TextIterator::rangeLength):
16727        (khtml::TextIterator::rangeFromLocationAndLength):
16728        (khtml::plainText):
16729        (khtml::findPlainText):
16730        * khtml/editing/visible_text.h:
16731        (khtml::WordAwareIterator::range):
16732        * khtml/editing/visible_units.cpp:
16733        (khtml::previousBoundary):
16734        (khtml::nextBoundary):
16735        * khtml/html/html_elementimpl.cpp:
16736        (HTMLElementImpl::innerText):
16737        * khtml/html/htmltokenizer.cpp:
16738        (khtml::HTMLTokenizer::scriptExecution):
16739        * khtml/khtml_part.cpp:
16740        (KHTMLPart::text):
16741        (KHTMLPart::selectedText):
16742        (KHTMLPart::shouldBeginEditing):
16743        (KHTMLPart::shouldEndEditing):
16744        (KHTMLPart::selectionComputedStyle):
16745        * khtml/khtml_part.h:
16746        * khtml/khtmlview.h:
16747        * khtml/rendering/render_text.cpp:
16748        (InlineTextBox::paint):
16749        * khtml/xml/dom2_rangeimpl.cpp:
16750        (DOM::operator==):
16751        (DOM::rangeOfContents):
16752        * khtml/xml/dom2_rangeimpl.h:
16753        (DOM::operator!=):
16754        * khtml/xml/dom_docimpl.cpp:
16755        (DocumentImpl::relinquishesEditingFocus):
16756        (DocumentImpl::acceptsEditingFocus):
16757        (DocumentImpl::addMarker):
16758        (DocumentImpl::removeMarker):
16759        * khtml/xml/dom_docimpl.h:
16760        * khtml/xml/dom_position.cpp:
16761        (DOM::startPosition):
16762        * khtml/xml/dom_position.h:
16763        * kwq/DOMHTML.mm:
16764        (-[DOMHTMLLinkElement href]):
16765        (-[DOMHTMLBaseElement href]):
16766        (-[DOMHTMLInputElement src]):
16767        (-[DOMHTMLAnchorElement href]):
16768        (-[DOMHTMLImageElement src]):
16769        (-[DOMHTMLAreaElement href]):
16770        * kwq/KWQAccObject.mm:
16771        (-[KWQAccObject textUnderElement]):
16772        (-[KWQAccObject value]):
16773        (-[KWQAccObject doAXStringForTextMarkerRange:]):
16774        (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
16775        * kwq/KWQKHTMLPart.h:
16776        (KWQKHTMLPart::markedTextRange):
16777        * kwq/KWQKHTMLPart.mm:
16778        (KWQKHTMLPart::findString):
16779        (KWQKHTMLPart::advanceToNextMisspelling):
16780        (KWQKHTMLPart::fontForSelection):
16781        (KWQKHTMLPart::markMisspellings):
16782        (KWQKHTMLPart::respondToChangedSelection):
16783        (KWQKHTMLPart::shouldBeginEditing):
16784        (KWQKHTMLPart::shouldEndEditing):
16785        (convertAttributesToUnderlines):
16786        (KWQKHTMLPart::setMarkedTextRange):
16787        * kwq/WebCoreBridge.mm:
16788        (-[WebCoreBridge elementAtPoint:]):
16789        (-[WebCoreBridge rangeByExpandingSelectionWithGranularity:]):
16790        (-[WebCoreBridge rangeByAlteringCurrentSelection:direction:granularity:]):
16791        (-[WebCoreBridge rangeByAlteringCurrentSelection:verticalDistance:]):
16792        (-[WebCoreBridge selectedDOMRange]):
16793        (-[WebCoreBridge convertToNSRange:DOM::]):
16794        (-[WebCoreBridge convertToDOMRange:]):
16795        (-[WebCoreBridge convertToObjCDOMRange:]):
16796        (-[WebCoreBridge selectNSRange:]):
16797        (-[WebCoreBridge selectedNSRange]):
16798        (-[WebCoreBridge markDOMRange]):
16799        (-[WebCoreBridge markedTextDOMRange]):
16800        (-[WebCoreBridge markedTextNSRange]):
16801        (-[WebCoreBridge replaceMarkedTextWithText:]):
16802        (-[WebCoreBridge smartDeleteRangeForProposedRange:]):
16803        (-[WebCoreBridge dragCaretDOMRange]):
16804        (-[WebCoreBridge editableDOMRangeForPoint:]):
16805        (-[WebCoreBridge rangeOfCharactersAroundCaret]):
16806
168072005-05-13  Maciej Stachowiak  <mjs@apple.com>
16808
16809        Reviewed by Dave.
16810
16811	- more splitting up of htmlediting.cpp
16812
16813        * WebCore.pbproj/project.pbxproj:
16814        * khtml/editing/composite_edit_command.cpp:
16815        * khtml/editing/delete_from_text_node_command.cpp: Added.
16816        * khtml/editing/delete_from_text_node_command.h: Added.
16817        * khtml/editing/delete_selection_command.cpp: Added.
16818        * khtml/editing/delete_selection_command.h: Added.
16819        * khtml/editing/htmlediting.cpp:
16820        * khtml/editing/htmlediting.h:
16821        * khtml/editing/insert_into_text_node_command.cpp: Added.
16822        * khtml/editing/insert_into_text_node_command.h: Added.
16823        * khtml/editing/insert_node_before_command.cpp: Added.
16824        * khtml/editing/insert_node_before_command.h: Added.
16825
168262005-05-12  Adele Peterson  <adele@apple.com>
16827
16828        Reviewed by Maciej.
16829
16830        fix for  <rdar://problem/4117656> deleting an input element in its onBlur handler crashes Safari
16831
16832        * khtml/rendering/render_form.cpp: (RenderLineEdit::handleFocusOut): added nil check for element
16833
168342005-05-12  John Sullivan  <sullivan@apple.com>
16835
16836        Reviewed by Kevin.
16837        
16838        - rolled in changes from experimental-ui-branch to support resizable textareas
16839        and find-as-you-type. The files/functions modified are listed just below. After
16840        that are the ChangeLog comments from the branch.
16841
16842        * Resources/textAreaResizeCorner.tiff: Added.
16843        * WebCore.pbproj/project.pbxproj:
16844        * kwq/KWQKHTMLPart.h:
16845        * kwq/KWQKHTMLPart.mm:
16846        (KWQKHTMLPart::findString):
16847        * kwq/KWQTextArea.mm:
16848        (-[KWQTextArea textDidChange:]):
16849        (-[KWQTextAreaTextView _resizeCornerImage]):
16850        (-[KWQTextAreaTextView _resizeCornerRect]):
16851        (-[KWQTextAreaTextView resetCursorRects]):
16852        (-[KWQTextAreaTextView drawRect:]):
16853        (-[KWQTextAreaTextView mouseDown:]):
16854        * kwq/WebCoreBridge.h:
16855        * kwq/WebCoreBridge.mm:
16856        (-[WebCoreBridge searchFor:direction:caseSensitive:wrap:findInSelection:]):
16857
16858        2005-05-05  John Sullivan  <sullivan@apple.com>
16859
16860                Reviewed by Chris.
16861
16862                * kwq/KWQTextArea.mm:
16863                (-[KWQTextAreaTextView _resizeCornerRect]):
16864                Get corner rect from enclosing clipView, rather than using visibleRect.
16865                VisibleRect would return the wrong result when the textarea was clipped
16866                by the bottom of the window, leading to redraw schmutz among other things.
16867
16868        2005-05-02  John Sullivan  <sullivan@apple.com>
16869
16870                Reviewed by Chris.
16871                
16872                Improvements to resizable textarea experiment:
16873                - resize image is now drawn in the resize corner
16874                - cursor sometimes tracks to arrow when over resize corner (but usually not)
16875                - cursor changes to arrow on mouse down in any case
16876
16877                * Resources/textAreaResizeCorner.tiff: Added.
16878                * WebCore.pbproj/project.pbxproj:
16879                updated for added image file
16880                
16881                * kwq/KWQTextArea.mm:
16882                (-[KWQTextAreaTextView _resizeCornerImage]):
16883                new method, reads resize image once and caches it
16884                (-[KWQTextAreaTextView _resizeCornerRect]):
16885                new method, computes rect from image
16886                (-[KWQTextAreaTextView resetCursorRects]):
16887                overridden to attempt to make the cursor change to an arrow when over this
16888                corner. Only works sometimes, as explained in comments.
16889                (-[KWQTextAreaTextView drawRect:]):
16890                overridden to draw resize image
16891                (-[KWQTextAreaTextView mouseDown:]):
16892                now uses _resizeCornerRect, and sets cursor to arrow when pressed in resize corner
16893
16894        2005-04-18  John Sullivan  <sullivan@apple.com>
16895
16896                WebCore support for notifying a form delegate when a
16897                textarea's contents have changed (as opposed to a 
16898                textfield, which was already handled).
16899
16900                Reviewed by Maciej.
16901
16902                * kwq/WebCoreBridge.h:
16903                add textDidChange: method
16904
16905                * kwq/KWQTextArea.mm:
16906                (-[KWQTextArea textDidChange:]):
16907                call through to bridge
16908
16909        2005-04-07  John Sullivan  <sullivan@apple.com>
16910
16911                WebCore support for find-as-you-type; needed an additional parameter
16912                to findString and searchFor:...
16913
16914                Reviewed by Dave Hyatt.
16915
16916                * kwq/KWQKHTMLPart.h:
16917                * kwq/KWQKHTMLPart.mm:
16918                (KWQKHTMLPart::findString):
16919                new findInSelection parameter; if true, start from the beginning of the selection
16920                when searching forward, or the end of the selection when searching backward
16921                
16922                * kwq/WebCoreBridge.h:
16923                * kwq/WebCoreBridge.mm:
16924                (-[WebCoreBridge searchFor:direction:caseSensitive:wrap:findInSelection:]):
16925                new findInSelection parameter; passed through to findString
16926
169272005-05-12  Darin Adler  <darin@apple.com>
16928
16929        Reviewed by Maciej (except for some parts outside the ECMA directory).
16930
16931        - switch KJS wrappers over to using the DOM impl. classes rather than using
16932          the DOM wrappers; will allow us to not even compile the DOM wrappers and
16933          make the code smaller
16934
16935        * khtml/css/css_valueimpl.h: Added CSSStyleDeclarationImpl::isPropertyName,
16936        removed CSSStyleDeclarationImpl::propertyID.
16937        * khtml/css/css_valueimpl.cpp:
16938        (DOM::propertyID): Added. Gets property ID given a DOM string. Replaces the
16939        previous version that had hacks that we want to leave in the JS wrapper for now.
16940        (DOM::CSSStyleDeclarationImpl::isPropertyName): Added.
16941
16942        * khtml/css/cssproperties.in: Fixed up comments.
16943
16944        * khtml/css/makeprop: Added new maxCSSPropertyNameLength constant, used for
16945        buffer size in the propertyID function.
16946
16947        * khtml/dom/dom2_events.h: Added handleEventImpl, making it easier to call
16948        handleEvent in a way that works either with or without the C++ DOM wrappers.
16949        * khtml/dom/dom2_events.cpp: (EventListener::handleEventImpl): Added.
16950
16951        * khtml/dom/dom2_views.cpp: Added now-needed include.
16952        * khtml/dom/dom_doc.cpp: Added now-needed include.
16953        * khtml/dom/dom_element.cpp: Tweaked includes.
16954
16955        * khtml/editing/htmlediting.cpp: Removed now-unneeded include.
16956        * khtml/html/html_baseimpl.cpp: Ditto.
16957        * khtml/html/html_formimpl.h: Ditto.
16958        * khtml/rendering/render_form.h: Ditto.
16959        * khtml/rendering/render_style.h: Ditto.
16960        * khtml/xml/dom2_eventsimpl.cpp: Ditto.
16961        * khtml/xml/dom2_viewsimpl.h: Ditto.
16962        * khtml/xml/dom_elementimpl.h: Ditto.
16963        * khtml/xml/dom_stringimpl.h: Ditto.
16964        * kwq/DOM.mm: Ditto.
16965        * kwq/DOMHTML.mm: Ditto.
16966
16967        * khtml/khtml_part.cpp: Tweaked incluudes.
16968        * khtml/khtmlpart_p.h: Ditto.
16969
16970        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::canCachePage): Change to use DOM impl. rather
16971        than C++ DOM.
16972
16973        * khtml/xml/dom_docimpl.cpp:
16974        (DOMImplementationImpl::createDocumentType): Disabled the calls to the not-implemented
16975        name checks in the C++ DOM wrappers. If we add name changes, we'll want them inside the
16976        impl, not in the wrappers.
16977        (DOMImplementationImpl::createDocument): Ditto.
16978        * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::checkSetPrefix): Ditto.
16979
16980        * khtml/ecma/kjs_binding.cpp:
16981        (KJS::ScriptInterpreter::wasRunByUserGesture):
16982        (KJS::KJS::ValueToVariant):
16983        (KJS::setDOMException):
16984        * khtml/ecma/kjs_binding.h:
16985        (KJS::ScriptInterpreter::setCurrentEvent):
16986        (KJS::ScriptInterpreter::getCurrentEvent):
16987        (KJS::cacheDOMObject):
16988        (KJS::DOMExceptionTranslator::DOMExceptionTranslator):
16989        (KJS::DOMExceptionTranslator::~DOMExceptionTranslator):
16990        (KJS::DOMExceptionTranslator::operator int &):
16991        (KJS::cacheGlobalObject):
16992        * khtml/ecma/kjs_css.cpp:
16993        (KJS::cssPropertyName):
16994        (KJS::isCSSPropertyName):
16995        (KJS::DOMCSSStyleDeclaration::DOMCSSStyleDeclaration):
16996        (KJS::DOMCSSStyleDeclaration::~DOMCSSStyleDeclaration):
16997        (KJS::DOMCSSStyleDeclaration::hasProperty):
16998        (KJS::DOMCSSStyleDeclaration::tryGet):
16999        (KJS::DOMCSSStyleDeclaration::tryPut):
17000        (KJS::DOMCSSStyleDeclarationProtoFunc::tryCall):
17001        (KJS::getDOMCSSStyleDeclaration):
17002        (KJS::DOMStyleSheet::~DOMStyleSheet):
17003        (KJS::DOMStyleSheet::getValueProperty):
17004        (KJS::DOMStyleSheet::tryPut):
17005        (KJS::getDOMStyleSheet):
17006        (KJS::DOMStyleSheetList::~DOMStyleSheetList):
17007        (KJS::DOMStyleSheetList::tryGet):
17008        (KJS::getDOMStyleSheetList):
17009        (KJS::DOMStyleSheetListFunc::tryCall):
17010        (KJS::DOMMediaList::DOMMediaList):
17011        (KJS::DOMMediaList::~DOMMediaList):
17012        (KJS::DOMMediaList::tryGet):
17013        (KJS::DOMMediaList::tryPut):
17014        (KJS::getDOMMediaList):
17015        (KJS::KJS::DOMMediaListProtoFunc::tryCall):
17016        (KJS::DOMCSSStyleSheet::DOMCSSStyleSheet):
17017        (KJS::DOMCSSStyleSheet::tryGet):
17018        (KJS::DOMCSSStyleSheetProtoFunc::tryCall):
17019        (KJS::DOMCSSRuleList::~DOMCSSRuleList):
17020        (KJS::DOMCSSRuleList::tryGet):
17021        (KJS::DOMCSSRuleListFunc::tryCall):
17022        (KJS::getDOMCSSRuleList):
17023        (KJS::DOMCSSRule::~DOMCSSRule):
17024        (KJS::DOMCSSRule::classInfo):
17025        (KJS::DOMCSSRule::tryGet):
17026        (KJS::DOMCSSRule::getValueProperty):
17027        (KJS::DOMCSSRule::putValue):
17028        (KJS::DOMCSSRuleFunc::tryCall):
17029        (KJS::getDOMCSSRule):
17030        (KJS::DOMCSSValue::~DOMCSSValue):
17031        (KJS::DOMCSSValue::tryGet):
17032        (KJS::DOMCSSValue::tryPut):
17033        (KJS::getDOMCSSValue):
17034        (KJS::DOMCSSPrimitiveValue::DOMCSSPrimitiveValue):
17035        (KJS::DOMCSSPrimitiveValue::tryGet):
17036        (KJS::DOMCSSPrimitiveValueProtoFunc::tryCall):
17037        (KJS::DOMCSSValueList::DOMCSSValueList):
17038        (KJS::DOMCSSValueList::tryGet):
17039        (KJS::DOMCSSValueListFunc::tryCall):
17040        (KJS::DOMRGBColor::getValueProperty):
17041        (KJS::getDOMRGBColor):
17042        (KJS::DOMRect::~DOMRect):
17043        (KJS::DOMRect::getValueProperty):
17044        (KJS::getDOMRect):
17045        (KJS::DOMCounter::~DOMCounter):
17046        (KJS::DOMCounter::getValueProperty):
17047        (KJS::getDOMCounter):
17048        * khtml/ecma/kjs_css.h:
17049        (KJS::DOMCSSStyleDeclaration::impl):
17050        (KJS::DOMStyleSheet::DOMStyleSheet):
17051        (KJS::DOMStyleSheet::impl):
17052        (KJS::DOMStyleSheetList::DOMStyleSheetList):
17053        (KJS::DOMStyleSheetList::impl):
17054        (KJS::DOMMediaList::impl):
17055        (KJS::DOMCSSStyleSheet::):
17056        (KJS::DOMCSSRuleList::DOMCSSRuleList):
17057        (KJS::DOMCSSRuleList::impl):
17058        (KJS::DOMCSSRule::DOMCSSRule):
17059        (KJS::DOMCSSRule::impl):
17060        (KJS::DOMCSSValue::DOMCSSValue):
17061        (KJS::DOMCSSValue::impl):
17062        (KJS::DOMCSSValueList::):
17063        (KJS::DOMRGBColor::DOMRGBColor):
17064        (KJS::DOMRect::DOMRect):
17065        (KJS::DOMCounter::DOMCounter):
17066        * khtml/ecma/kjs_dom.cpp:
17067        (KJS::DOMNodeListFunc::):
17068        (KJS::DOMNode::DOMNode):
17069        (KJS::DOMNode::toBoolean):
17070        (KJS::DOMNode::getValueProperty):
17071        (KJS::DOMNode::putValue):
17072        (KJS::DOMNode::toPrimitive):
17073        (KJS::DOMNode::toString):
17074        (KJS::DOMNode::setListener):
17075        (KJS::DOMNode::getListener):
17076        (KJS::DOMNodeProtoFunc::tryCall):
17077        (KJS::toNode):
17078        (KJS::DOMNodeList::~DOMNodeList):
17079        (KJS::DOMNodeList::toPrimitive):
17080        (KJS::DOMNodeList::tryGet):
17081        (KJS::DOMNodeList::tryCall):
17082        (KJS::DOMNodeListFunc::tryCall):
17083        (KJS::DOMAttr::DOMAttr):
17084        (KJS::DOMAttr::getValueProperty):
17085        (KJS::DOMAttr::putValue):
17086        (KJS::toAttr):
17087        (KJS::DOMDocument::DOMDocument):
17088        (KJS::DOMDocument::~DOMDocument):
17089        (KJS::DOMDocument::getValueProperty):
17090        (KJS::DOMDocument::putValue):
17091        (KJS::DOMDocumentProtoFunc::tryCall):
17092        (KJS::DOMElement::DOMElement):
17093        (KJS::DOMElement::tryGet):
17094        (KJS::DOMElementProtoFunc::tryCall):
17095        (KJS::toElement):
17096        (KJS::DOMDOMImplementation::DOMDOMImplementation):
17097        (KJS::DOMDOMImplementation::~DOMDOMImplementation):
17098        (KJS::DOMDOMImplementationProtoFunc::tryCall):
17099        (KJS::DOMDocumentType::DOMDocumentType):
17100        (KJS::DOMDocumentType::getValueProperty):
17101        (KJS::toDocumentType):
17102        (KJS::DOMNamedNodeMap::DOMNamedNodeMap):
17103        (KJS::DOMNamedNodeMap::~DOMNamedNodeMap):
17104        (KJS::DOMNamedNodeMap::tryGet):
17105        (KJS::DOMNamedNodeMapProtoFunc::tryCall):
17106        (KJS::DOMProcessingInstruction::DOMProcessingInstruction):
17107        (KJS::DOMProcessingInstruction::getValueProperty):
17108        (KJS::DOMProcessingInstruction::tryPut):
17109        (KJS::DOMNotation::DOMNotation):
17110        (KJS::DOMNotation::getValueProperty):
17111        (KJS::DOMEntity::DOMEntity):
17112        (KJS::DOMEntity::getValueProperty):
17113        (KJS::getDOMDocumentNode):
17114        (KJS::checkNodeSecurity):
17115        (KJS::getDOMNode):
17116        (KJS::getDOMNamedNodeMap):
17117        (KJS::getRuntimeObject):
17118        (KJS::getDOMNodeList):
17119        (KJS::getDOMDOMImplementation):
17120        (KJS::getNodeConstructor):
17121        (KJS::getDOMExceptionConstructor):
17122        (KJS::DOMNamedNodesCollection::DOMNamedNodesCollection):
17123        (KJS::DOMNamedNodesCollection::tryGet):
17124        (KJS::DOMCharacterData::DOMCharacterData):
17125        (KJS::DOMCharacterData::getValueProperty):
17126        (KJS::DOMCharacterData::tryPut):
17127        (KJS::DOMCharacterDataProtoFunc::tryCall):
17128        (KJS::DOMText::DOMText):
17129        (KJS::DOMTextProtoFunc::tryCall):
17130        * khtml/ecma/kjs_dom.h:
17131        (KJS::DOMNode::impl):
17132        (KJS::DOMNodeList::DOMNodeList):
17133        (KJS::DOMNodeList::impl):
17134        (KJS::DOMDOMImplementation::impl):
17135        (KJS::DOMNamedNodeMap::impl):
17136        * khtml/ecma/kjs_events.cpp:
17137        (KJS::JSAbstractEventListener::handleEvent):
17138        (KJS::JSLazyEventListener::handleEvent):
17139        (KJS::getNodeEventListener):
17140        (KJS::DOMEvent::DOMEvent):
17141        (KJS::DOMEvent::~DOMEvent):
17142        (KJS::DOMEvent::getValueProperty):
17143        (KJS::DOMEvent::putValue):
17144        (KJS::DOMEventProtoFunc::tryCall):
17145        (KJS::getDOMEvent):
17146        (KJS::toEvent):
17147        (KJS::DOMUIEvent::DOMUIEvent):
17148        (KJS::DOMUIEvent::getValueProperty):
17149        (KJS::DOMUIEventProtoFunc::tryCall):
17150        (KJS::DOMMouseEvent::DOMMouseEvent):
17151        (KJS::DOMMouseEvent::getValueProperty):
17152        (KJS::DOMMouseEventProtoFunc::tryCall):
17153        (KJS::DOMKeyboardEvent::DOMKeyboardEvent):
17154        (KJS::DOMKeyboardEvent::getValueProperty):
17155        (KJS::DOMKeyboardEventProtoFunc::tryCall):
17156        (KJS::DOMMutationEvent::DOMMutationEvent):
17157        (KJS::DOMMutationEvent::getValueProperty):
17158        (KJS::DOMMutationEventProtoFunc::tryCall):
17159        (KJS::DOMWheelEvent::DOMWheelEvent):
17160        (KJS::DOMWheelEvent::getValueProperty):
17161        (KJS::ClipboardProtoFunc::tryCall):
17162        * khtml/ecma/kjs_events.h:
17163        (KJS::DOMEvent::impl):
17164        (KJS::DOMUIEvent::):
17165        (KJS::DOMMouseEvent::):
17166        (KJS::DOMKeyboardEvent::):
17167        (KJS::DOMMutationEvent::):
17168        * khtml/ecma/kjs_html.cpp:
17169        (KJS::KJS::HTMLDocFunction::tryCall):
17170        (KJS::HTMLDocument::HTMLDocument):
17171        (KJS::HTMLDocument::hasProperty):
17172        (KJS::HTMLDocument::tryGet):
17173        (KJS::KJS::HTMLDocument::putValue):
17174        (KJS::KJS::HTMLElement::classInfo):
17175        (KJS::HTMLElement::HTMLElement):
17176        (KJS::KJS::HTMLElement::tryGet):
17177        (KJS::KJS::HTMLElement::implementsCall):
17178        (KJS::KJS::HTMLElement::call):
17179        (KJS::KJS::HTMLElement::getValueProperty):
17180        (KJS::KJS::HTMLElement::hasProperty):
17181        (KJS::KJS::HTMLElement::toString):
17182        (KJS::getForm):
17183        (KJS::KJS::HTMLElement::pushEventHandlerScope):
17184        (KJS::KJS::HTMLElementFunction::tryCall):
17185        (KJS::KJS::HTMLElement::tryPut):
17186        (KJS::HTMLElement::putValue):
17187        (KJS::toHTMLElement):
17188        (KJS::toHTMLTableCaptionElement):
17189        (KJS::toHTMLTableSectionElement):
17190        (KJS::HTMLCollection::HTMLCollection):
17191        (KJS::HTMLCollection::~HTMLCollection):
17192        (KJS::KJS::HTMLCollection::tryGet):
17193        (KJS::KJS::HTMLCollection::tryCall):
17194        (KJS::KJS::HTMLCollection::getNamedItems):
17195        (KJS::KJS::HTMLCollectionProtoFunc::tryCall):
17196        (KJS::HTMLSelectCollection::HTMLSelectCollection):
17197        (KJS::KJS::HTMLSelectCollection::tryGet):
17198        (KJS::KJS::HTMLSelectCollection::tryPut):
17199        (KJS::OptionConstructorImp::OptionConstructorImp):
17200        (KJS::OptionConstructorImp::construct):
17201        (KJS::ImageConstructorImp::ImageConstructorImp):
17202        (KJS::ImageConstructorImp::construct):
17203        (KJS::Image::notifyFinished):
17204        (KJS::Image::Image):
17205        (KJS::KJS::Context2DFunction::tryCall):
17206        (KJS::):
17207        (KJS::colorRefFromValue):
17208        (KJS::colorFromValue):
17209        (KJS::Context2D::putValue):
17210        (KJS::Context2D::Context2D):
17211        (KJS::Context2D::mark):
17212        (KJS::GradientFunction::tryCall):
17213        (KJS::ImagePattern::tryGet):
17214        (KJS::getHTMLCollection):
17215        (KJS::getSelectHTMLCollection):
17216        * khtml/ecma/kjs_html.h:
17217        (KJS::HTMLDocument::):
17218        (KJS::HTMLElement::):
17219        (KJS::HTMLCollection::impl):
17220        * khtml/ecma/kjs_navigator.cpp:
17221        * khtml/ecma/kjs_proxy.cpp:
17222        (KJSProxyImpl::evaluate):
17223        (KJSProxyImpl::finishedWithEvent):
17224        * khtml/ecma/kjs_proxy.h:
17225        * khtml/ecma/kjs_range.cpp:
17226        (KJS::DOMRange::DOMRange):
17227        (KJS::DOMRange::~DOMRange):
17228        (KJS::DOMRange::tryGet):
17229        (KJS::DOMRange::getValueProperty):
17230        (KJS::DOMRangeProtoFunc::tryCall):
17231        (KJS::getDOMRange):
17232        (KJS::RangeConstructor::tryGet):
17233        (KJS::getRangeConstructor):
17234        (KJS::toRange):
17235        * khtml/ecma/kjs_range.h:
17236        (KJS::DOMRange::impl):
17237        * khtml/ecma/kjs_traversal.cpp:
17238        (KJS::DOMNodeIterator::DOMNodeIterator):
17239        (KJS::DOMNodeIterator::~DOMNodeIterator):
17240        (KJS::DOMNodeIterator::getValueProperty):
17241        (KJS::DOMNodeIteratorProtoFunc::tryCall):
17242        (KJS::getDOMNodeIterator):
17243        (KJS::DOMNodeFilter::DOMNodeFilter):
17244        (KJS::DOMNodeFilter::~DOMNodeFilter):
17245        (KJS::DOMNodeFilterProtoFunc::tryCall):
17246        (KJS::getDOMNodeFilter):
17247        (KJS::toNodeFilter):
17248        (KJS::DOMTreeWalker::DOMTreeWalker):
17249        (KJS::DOMTreeWalker::~DOMTreeWalker):
17250        (KJS::DOMTreeWalker::getValueProperty):
17251        (KJS::DOMTreeWalker::tryPut):
17252        (KJS::DOMTreeWalkerProtoFunc::tryCall):
17253        (KJS::getDOMTreeWalker):
17254        (KJS::JSNodeFilterCondition::acceptNode):
17255        * khtml/ecma/kjs_traversal.h:
17256        (KJS::DOMNodeIterator::impl):
17257        (KJS::DOMNodeFilter::impl):
17258        (KJS::DOMTreeWalker::impl):
17259        * khtml/ecma/kjs_views.cpp:
17260        (KJS::DOMAbstractView::~DOMAbstractView):
17261        (KJS::DOMAbstractView::tryGet):
17262        (KJS::DOMAbstractViewFunc::tryCall):
17263        (KJS::getDOMAbstractView):
17264        (KJS::toAbstractView):
17265        * khtml/ecma/kjs_views.h:
17266        (KJS::DOMAbstractView::DOMAbstractView):
17267        (KJS::DOMAbstractView::impl):
17268        * khtml/ecma/kjs_window.cpp:
17269        (KJS::Window::get):
17270        (KJS::Window::hasProperty):
17271        (KJS::Window::put):
17272        (KJS::Window::setListener):
17273        (KJS::Window::getListener):
17274        (KJS::Window::setCurrentEvent):
17275        (KJS::WindowFunc::tryCall):
17276        (KJS::Location::put):
17277        (KJS::LocationFunc::tryCall):
17278        (KJS::Selection::get):
17279        (KJS::SelectionFunc::tryCall):
17280        * khtml/ecma/kjs_window.h:
17281        * khtml/ecma/xmlhttprequest.cpp:
17282        (KJS::XMLHttpRequestConstructorImp::XMLHttpRequestConstructorImp):
17283        (KJS::XMLHttpRequestConstructorImp::~XMLHttpRequestConstructorImp):
17284        (KJS::XMLHttpRequestConstructorImp::construct):
17285        (KJS::XMLHttpRequest::getValueProperty):
17286        (KJS::XMLHttpRequest::XMLHttpRequest):
17287        (KJS::XMLHttpRequest::changeState):
17288        (KJS::XMLHttpRequest::open):
17289        (KJS::XMLHttpRequestProtoFunc::tryCall):
17290        * khtml/ecma/xmlhttprequest.h:
17291        * khtml/ecma/xmlserializer.cpp:
17292        (KJS::XMLSerializerProtoFunc::tryCall):
17293        * khtml/ecma/xmlserializer.h:
17294        * kwq/DOMInternal.mm:
17295        (-[WebScriptObject _initializeScriptDOMNodeImp]):
17296        * kwq/DOMUtility.mm:
17297        (KJS::ScriptInterpreter::createObjcInstanceForValue):
17298
172992005-05-11  David Hyatt  <hyatt@apple.com>
17300
17301	Improve the display of apple.com.  innerWidth and innerHeight refer to the size of the visible view and
17302	so they do not need to do a layout in order to yield correct values from JS.  Removing this stops an
17303	early layout and paint before the apple.com images are typically loaded.
17304
17305	This is an improvement of the fix for wired.com's FOUC.  For that bug I eliminated the need to ignore pending
17306	stylesheets, but now I'm going further and just eliminating the layout all together.  This means that the old
17307	updateLayout function can be reverted to how it was before the wired.com fix.
17308	
17309        Reviewed by john
17310
17311        * khtml/ecma/kjs_window.cpp:
17312        (Window::get):
17313        (Window::updateLayout):
17314        * khtml/ecma/kjs_window.h:
17315
173162005-05-11  Maciej Stachowiak  <mjs@apple.com>
17317
17318        Reviewed by Kevin.
17319
17320	- split some more individual classes out of htmlediting.cpp
17321	(CompositeEditcommand, AppendnodeCommand, ApplyStyleCommand)
17322
17323	Also moves StyleChange directly into ApplyStyleCommand
17324	implementation file, it doesn't need to be in a header at all.
17325	
17326        * WebCore.pbproj/project.pbxproj:
17327        * khtml/editing/append_node_command.cpp: Added.
17328        * khtml/editing/append_node_command.h: Added.
17329        * khtml/editing/apply_style_command.cpp: Added.
17330        * khtml/editing/apply_style_command.h: Added.
17331        * khtml/editing/composite_edit_command.cpp: Added.
17332        * khtml/editing/composite_edit_command.h: Added.
17333        * khtml/editing/edit_command.cpp: Minor clean-ups.
17334        * khtml/editing/edit_command.h:
17335        * khtml/editing/htmlediting.cpp:
17336        * khtml/editing/htmlediting.h:
17337
173382005-05-11  Adele Peterson  <adele@apple.com>
17339
17340        Reviewed by Darin.
17341
17342        fix for <rdar://problem/4061979> crash in DOM::ElementImpl::setAttribute at www.nitto-kohki.co.jp
17343
17344        * khtml/html/html_imageimpl.cpp: (HTMLImageLoader::updateFromElement): added a nil check for the document
17345        * 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.
17346 
17347        * layout-tests/fast/events/onload-re-entry.html: removed alert.
17348        * layout-tests/fast/events/onload-re-entry-expected.txt: updated.
17349        * layout-tests/fast/dom/attr_dead_doc-expected.txt: Added.
17350        * layout-tests/fast/dom/attr_dead_doc.html: Added.
17351        * layout-tests/fast/dom/resources/apple.gif: Added.
17352        * layout-tests/fast/dom/resources/mozilla.gif: Added.
17353        * layout-tests/fast/dom/resources/top.html: Added.
17354
173552005-05-10  Maciej Stachowiak  <mjs@apple.com>
17356
17357        Reviewed by Kevin.
17358
17359	- start on splitting htmlediting.cpp into smaller files - pull
17360	EditCommand and EditCommandPtr out.
17361
17362        * WebCore.pbproj/project.pbxproj:
17363        * khtml/editing/edit_command.cpp: Added.
17364        * khtml/editing/edit_command.h: Added.
17365        * khtml/editing/htmlediting.cpp: Took EditCommand and EditCommandPtr out.
17366        * khtml/editing/htmlediting.h: Ditto.
17367
173682005-05-10  David Hyatt  <hyatt@apple.com>
17369
17370	Refactor the DOM so that the concept of class/style/id is no longer unique to HTML elements.  This paves the way
17371	for SVG and MathML elements to also support these capabilities.  In addition the concept of presentational
17372	attributes has also been factored out.
17373	
17374        Reviewed by mjs
17375
17376        * khtml/css/css_ruleimpl.cpp:
17377        (CSSStyleRuleImpl::setDeclaration):
17378        * khtml/css/cssstyleselector.cpp:
17379        (khtml::parseUASheet):
17380        (khtml::CSSStyleSelector::loadDefaultStyle):
17381        (khtml::CSSStyleSelector::initElementAndPseudoState):
17382        (khtml::CSSStyleSelector::canShareStyleWithElement):
17383        (khtml::CSSStyleSelector::locateSharedStyle):
17384        (khtml::CSSStyleSelector::styleForElement):
17385        (khtml::CSSStyleSelector::checkOneSelector):
17386        * khtml/css/cssstyleselector.h:
17387        * khtml/html/html_baseimpl.cpp:
17388        (HTMLBodyElementImpl::parseMappedAttribute):
17389        (HTMLFrameElementImpl::parseMappedAttribute):
17390        (HTMLFrameSetElementImpl::parseMappedAttribute):
17391        (HTMLIFrameElementImpl::parseMappedAttribute):
17392        * khtml/html/html_baseimpl.h:
17393        * khtml/html/html_blockimpl.cpp:
17394        (HTMLDivElementImpl::parseMappedAttribute):
17395        (HTMLHRElementImpl::parseMappedAttribute):
17396        (HTMLParagraphElementImpl::parseMappedAttribute):
17397        (HTMLMarqueeElementImpl::parseMappedAttribute):
17398        * khtml/html/html_blockimpl.h:
17399        * khtml/html/html_canvasimpl.cpp:
17400        (HTMLCanvasElementImpl::parseMappedAttribute):
17401        * khtml/html/html_canvasimpl.h:
17402        * khtml/html/html_elementimpl.cpp:
17403        (HTMLElementImpl::HTMLElementImpl):
17404        (HTMLElementImpl::~HTMLElementImpl):
17405        (HTMLElementImpl::mapToEntry):
17406        (HTMLElementImpl::parseMappedAttribute):
17407        (HTMLElementImpl::addHTMLAlignment):
17408        (HTMLElementImpl::setContentEditable):
17409        (HTMLElementImpl::toString):
17410        * khtml/html/html_elementimpl.h:
17411        * khtml/html/html_formimpl.cpp:
17412        (DOM::HTMLFormElementImpl::parseMappedAttribute):
17413        (DOM::HTMLGenericFormElementImpl::parseMappedAttribute):
17414        (DOM::HTMLButtonElementImpl::parseMappedAttribute):
17415        (DOM::HTMLInputElementImpl::setType):
17416        (DOM::HTMLInputElementImpl::parseMappedAttribute):
17417        (DOM::HTMLLabelElementImpl::parseMappedAttribute):
17418        (DOM::HTMLSelectElementImpl::parseMappedAttribute):
17419        (DOM::HTMLKeygenElementImpl::parseMappedAttribute):
17420        (DOM::HTMLOptGroupElementImpl::parseMappedAttribute):
17421        (DOM::HTMLOptionElementImpl::parseMappedAttribute):
17422        (DOM::HTMLTextAreaElementImpl::parseMappedAttribute):
17423        (DOM::HTMLIsIndexElementImpl::parseMappedAttribute):
17424        * khtml/html/html_formimpl.h:
17425        * khtml/html/html_headimpl.cpp:
17426        (HTMLBaseElementImpl::parseMappedAttribute):
17427        (HTMLLinkElementImpl::parseMappedAttribute):
17428        (HTMLMetaElementImpl::parseMappedAttribute):
17429        (HTMLStyleElementImpl::parseMappedAttribute):
17430        * khtml/html/html_headimpl.h:
17431        * khtml/html/html_imageimpl.cpp:
17432        (HTMLImageElementImpl::parseMappedAttribute):
17433        (HTMLMapElementImpl::parseMappedAttribute):
17434        (HTMLAreaElementImpl::parseMappedAttribute):
17435        * khtml/html/html_imageimpl.h:
17436        * khtml/html/html_inlineimpl.cpp:
17437        (DOM::HTMLAnchorElementImpl::parseMappedAttribute):
17438        (DOM::HTMLBRElementImpl::parseMappedAttribute):
17439        (DOM::HTMLFontElementImpl::parseMappedAttribute):
17440        * khtml/html/html_inlineimpl.h:
17441        * khtml/html/html_listimpl.cpp:
17442        (DOM::HTMLUListElementImpl::parseMappedAttribute):
17443        (DOM::HTMLOListElementImpl::parseMappedAttribute):
17444        (DOM::HTMLLIElementImpl::parseMappedAttribute):
17445        * khtml/html/html_listimpl.h:
17446        * khtml/html/html_objectimpl.cpp:
17447        (DOM::HTMLAppletElementImpl::parseMappedAttribute):
17448        (DOM::HTMLEmbedElementImpl::parseMappedAttribute):
17449        (DOM::HTMLObjectElementImpl::parseMappedAttribute):
17450        (DOM::HTMLParamElementImpl::parseMappedAttribute):
17451        * khtml/html/html_objectimpl.h:
17452        * khtml/html/html_tableimpl.cpp:
17453        (DOM::HTMLTableElementImpl::parseMappedAttribute):
17454        (DOM::HTMLTableElementImpl::additionalAttributeStyleDecl):
17455        (DOM::HTMLTableElementImpl::getSharedCellDecl):
17456        (DOM::HTMLTablePartElementImpl::parseMappedAttribute):
17457        (DOM::HTMLTableCellElementImpl::parseMappedAttribute):
17458        (DOM::HTMLTableColElementImpl::parseMappedAttribute):
17459        (DOM::HTMLTableCaptionElementImpl::parseMappedAttribute):
17460        * khtml/html/html_tableimpl.h:
17461        * khtml/html/htmltokenizer.h:
17462        (khtml::Token::addAttribute):
17463        * khtml/misc/htmlattrs.in:
17464        * khtml/misc/htmltags.in:
17465        * khtml/xml/dom_docimpl.cpp:
17466        (DocumentImpl::createAttribute):
17467        (DocumentImpl::createElementNS):
17468        (DocumentImpl::createHTMLElement):
17469        * khtml/xml/dom_elementimpl.cpp:
17470        (XMLElementImpl::cloneNode):
17471        (NamedAttrMapImpl::isMappedAttributeMap):
17472        (CSSMappedAttributeDeclarationImpl::~CSSMappedAttributeDeclarationImpl):
17473        (StyledElementImpl::getMappedAttributeDecl):
17474        (StyledElementImpl::setMappedAttributeDecl):
17475        (StyledElementImpl::removeMappedAttributeDecl):
17476        (StyledElementImpl::invalidateStyleAttribute):
17477        (StyledElementImpl::updateStyleAttributeIfNeeded):
17478        (MappedAttributeImpl::~MappedAttributeImpl):
17479        (MappedAttributeImpl::clone):
17480        (m_mappedAttributeCount):
17481        (NamedMappedAttrMapImpl::clearAttributes):
17482        (NamedMappedAttrMapImpl::isMappedAttributeMap):
17483        (NamedMappedAttrMapImpl::declCount):
17484        (NamedMappedAttrMapImpl::mapsEquivalent):
17485        (NamedMappedAttrMapImpl::parseClassAttribute):
17486        (StyledElementImpl::StyledElementImpl):
17487        (StyledElementImpl::~StyledElementImpl):
17488        (StyledElementImpl::createAttribute):
17489        (StyledElementImpl::createInlineStyleDecl):
17490        (StyledElementImpl::destroyInlineStyleDecl):
17491        (StyledElementImpl::attributeChanged):
17492        (StyledElementImpl::mapToEntry):
17493        (StyledElementImpl::parseMappedAttribute):
17494        (StyledElementImpl::createAttributeMap):
17495        (StyledElementImpl::getInlineStyleDecl):
17496        (StyledElementImpl::style):
17497        (StyledElementImpl::additionalAttributeStyleDecl):
17498        (StyledElementImpl::getClassList):
17499        (isHexDigit):
17500        (toHex):
17501        (StyledElementImpl::addCSSProperty):
17502        (StyledElementImpl::addCSSStringProperty):
17503        (StyledElementImpl::addCSSImageProperty):
17504        (StyledElementImpl::addCSSLength):
17505        (StyledElementImpl::addCSSColor):
17506        (StyledElementImpl::createMappedDecl):
17507        * khtml/xml/dom_elementimpl.h:
17508        (DOM::):
17509        (DOM::CSSMappedAttributeDeclarationImpl::CSSMappedAttributeDeclarationImpl):
17510        (DOM::CSSMappedAttributeDeclarationImpl::setMappedState):
17511        (DOM::MappedAttributeImpl::MappedAttributeImpl):
17512        (DOM::MappedAttributeImpl::decl):
17513        (DOM::MappedAttributeImpl::setDecl):
17514        (DOM::NamedMappedAttrMapImpl::getClassList):
17515        (DOM::NamedMappedAttrMapImpl::hasMappedAttributes):
17516        (DOM::NamedMappedAttrMapImpl::declRemoved):
17517        (DOM::NamedMappedAttrMapImpl::declAdded):
17518        (DOM::NamedMappedAttrMapImpl::attributeItem):
17519        (DOM::StyledElementImpl::isStyledElement):
17520        (DOM::StyledElementImpl::hasMappedAttributes):
17521        (DOM::StyledElementImpl::mappedAttributes):
17522        (DOM::StyledElementImpl::isMappedAttribute):
17523        (DOM::StyledElementImpl::inlineStyleDecl):
17524        * khtml/xml/dom_nodeimpl.h:
17525        (DOM::NodeImpl::isStyledElement):
17526
175272005-05-10  Darin Adler  <darin@apple.com>
17528
17529        Reviewed by Dave Hyatt.
17530        No new layout tests needed.
17531
17532        - remove all remaining uses of QMIN/QMAX and KMIN/KMAX.
17533
17534        * kwq/KWQDef.h: Remove the macros.
17535
17536        Remove all use of the macros (and fix a few compile errors by changing the types of
17537        some integer and floating point constants).
17538
17539        * khtml/css/cssparser.cpp:
17540        (CSSParser::parseColorFromValue):
17541        * khtml/css/cssstyleselector.cpp:
17542        (khtml::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
17543        * khtml/html/html_elementimpl.cpp:
17544        (HTMLElementImpl::addHTMLColor):
17545        * khtml/html/html_formimpl.cpp:
17546        (DOM::HTMLSelectElementImpl::parseHTMLAttribute):
17547        * khtml/html/htmltokenizer.cpp:
17548        (khtml::HTMLTokenizer::parseComment):
17549        * khtml/rendering/render_block.cpp:
17550        (khtml::RenderBlock::nearestFloatBottom):
17551        (khtml::RenderBlock::calcMinMaxWidth):
17552        * khtml/rendering/render_flow.cpp:
17553        (RenderFlow::paintOutlineForLine):
17554        * khtml/rendering/render_form.cpp:
17555        (RenderLineEdit::calcMinMaxWidth):
17556        (RenderFieldset::layoutLegend):
17557        (RenderFileButton::calcMinMaxWidth):
17558        (RenderSelect::layout):
17559        (RenderTextArea::calcMinMaxWidth):
17560        * khtml/rendering/render_object.cpp:
17561        (RenderObject::drawBorder):
17562        * khtml/rendering/render_replaced.cpp:
17563        (RenderWidget::resizeWidget):
17564        * khtml/rendering/render_table.cpp:
17565        (RenderTableSection::layoutRows):
17566        * khtml/rendering/table_layout.cpp:
17567        (AutoTableLayout::recalcColumn):
17568        (AutoTableLayout::calcEffectiveWidth):
17569
175702005-05-10  Darin Adler  <darin@apple.com>
17571
17572        Reviewed by Chris Blumenberg.
17573
17574        - next pass of moving code from C++ DOM wrappers into the DOM impl. classes
17575          (this step adds still more member functions missing from the DOM impl. and
17576           changes some of the C++ and Objective-C DOM to call the new ones; also
17577           changes various places that use the C++ DOM to use the DOM impl. instead)
17578
17579        * khtml/css/css_computedstyle.cpp:
17580        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
17581        * khtml/css/css_computedstyle.h:
17582        * khtml/css/css_stylesheetimpl.cpp:
17583        (CSSStyleSheetImpl::cssRules):
17584        * khtml/css/css_stylesheetimpl.h:
17585        * khtml/css/css_valueimpl.cpp:
17586        (DOM::CSSStyleDeclarationImpl::getPropertyCSSValue):
17587        (DOM::CSSStyleDeclarationImpl::getPropertyValue):
17588        (DOM::CSSStyleDeclarationImpl::getPropertyPriority):
17589        (DOM::CSSStyleDeclarationImpl::setProperty):
17590        (DOM::CSSStyleDeclarationImpl::removeProperty):
17591        (DOM::CSSMutableStyleDeclarationImpl::getPropertyValue):
17592        (DOM::CSSPrimitiveValueImpl::CSSPrimitiveValueImpl):
17593        (DOM::operator==):
17594        (DOM::CSSStyleDeclarationImpl::propertyID):
17595        * khtml/css/css_valueimpl.h:
17596        (DOM::CSSValueImpl::setCssText):
17597        (DOM::CSSPrimitiveValueImpl::getDashboardRegionValue):
17598        * khtml/dom/css_rule.cpp:
17599        * khtml/dom/css_rule.h:
17600        * khtml/dom/css_stylesheet.h:
17601        (DOM::CSSException::):
17602        * khtml/dom/css_value.cpp:
17603        (DOM::CSSStyleDeclaration::getPropertyValue):
17604        (DOM::CSSStyleDeclaration::getPropertyCSSValue):
17605        (DOM::CSSStyleDeclaration::removeProperty):
17606        (DOM::CSSStyleDeclaration::getPropertyPriority):
17607        (DOM::CSSStyleDeclaration::setProperty):
17608        * khtml/dom/css_value.h:
17609        * khtml/dom/dom2_events.cpp:
17610        (EventListener::handleEvent):
17611        * khtml/dom/dom2_events.h:
17612        * khtml/dom/dom2_traversal.h:
17613        * khtml/dom/dom_doc.cpp:
17614        (DOM::DOMImplementation::createHTMLDocument):
17615        (DOM::DOMImplementation::createCSSStyleSheet):
17616        (DOM::Document::doctype):
17617        (DOM::Document::createAttribute):
17618        (DOM::Document::createAttributeNS):
17619        (DOM::Document::queryCommandValue):
17620        (DOM::Document::handle):
17621        * khtml/dom/dom_doc.h:
17622        * khtml/dom/dom_element.cpp:
17623        (Attr::name):
17624        (Attr::value):
17625        (Element::getAttribute):
17626        (Element::setAttribute):
17627        (Element::removeAttribute):
17628        (Element::getAttributeNode):
17629        (Element::setAttributeNode):
17630        (Element::removeAttributeNode):
17631        (Element::getElementsByTagName):
17632        (Element::getElementsByTagNameNS):
17633        (Element::getAttributeNS):
17634        (Element::setAttributeNS):
17635        (Element::removeAttributeNS):
17636        (Element::getAttributeNodeNS):
17637        (Element::setAttributeNodeNS):
17638        (Element::hasAttribute):
17639        (Element::hasAttributeNS):
17640        (Element::style):
17641        * khtml/dom/dom_exception.h:
17642        * khtml/dom/dom_misc.cpp:
17643        (DOM::DomShared::deleteMe):
17644        * khtml/dom/dom_misc.h:
17645        (DOM::DomShared::deleteMe):
17646        * khtml/dom/dom_node.cpp:
17647        (NamedNodeMap::getNamedItemNS):
17648        (NamedNodeMap::setNamedItemNS):
17649        (NamedNodeMap::removeNamedItemNS):
17650        (Node::ownerDocument):
17651        (Node::hasAttributes):
17652        (Node::isSupported):
17653        (Node::addEventListener):
17654        (Node::removeEventListener):
17655        * khtml/dom/dom_node.h:
17656        * khtml/dom/html_document.cpp:
17657        (HTMLDocument::setTitle):
17658        (HTMLDocument::completeURL):
17659        (HTMLDocument::getElementsByName):
17660        * khtml/dom/html_element.cpp:
17661        (HTMLElement::setInnerHTML):
17662        (HTMLElement::setInnerText):
17663        (HTMLElement::setOuterHTML):
17664        (HTMLElement::setOuterText):
17665        * khtml/dom/html_form.cpp:
17666        (HTMLLabelElement::form):
17667        (HTMLSelectElement::setValue):
17668        (HTMLSelectElement::options):
17669        (HTMLOptionElement::setValue):
17670        * khtml/dom/html_inline.cpp:
17671        (HTMLAnchorElement::accessKey):
17672        (HTMLAnchorElement::setAccessKey):
17673        (HTMLAnchorElement::charset):
17674        (HTMLAnchorElement::setCharset):
17675        (HTMLAnchorElement::coords):
17676        (HTMLAnchorElement::setCoords):
17677        (HTMLAnchorElement::href):
17678        (HTMLAnchorElement::setHref):
17679        (HTMLAnchorElement::hreflang):
17680        (HTMLAnchorElement::setHreflang):
17681        (HTMLAnchorElement::name):
17682        (HTMLAnchorElement::setName):
17683        (HTMLAnchorElement::rel):
17684        (HTMLAnchorElement::setRel):
17685        (HTMLAnchorElement::rev):
17686        (HTMLAnchorElement::setRev):
17687        (HTMLAnchorElement::shape):
17688        (HTMLAnchorElement::setShape):
17689        (HTMLAnchorElement::tabIndex):
17690        (HTMLAnchorElement::setTabIndex):
17691        (HTMLAnchorElement::target):
17692        (HTMLAnchorElement::setTarget):
17693        (HTMLAnchorElement::type):
17694        (HTMLAnchorElement::setType):
17695        (HTMLAnchorElement::blur):
17696        (HTMLAnchorElement::focus):
17697        (HTMLBRElement::clear):
17698        (HTMLBRElement::setClear):
17699        (HTMLFontElement::color):
17700        (HTMLFontElement::setColor):
17701        (HTMLFontElement::face):
17702        (HTMLFontElement::setFace):
17703        (HTMLFontElement::size):
17704        (HTMLFontElement::setSize):
17705        (HTMLModElement::cite):
17706        (HTMLModElement::setCite):
17707        (HTMLModElement::dateTime):
17708        (HTMLModElement::setDateTime):
17709        (HTMLQuoteElement::cite):
17710        (HTMLQuoteElement::setCite):
17711        * khtml/dom/html_misc.cpp:
17712        (HTMLCollection::HTMLCollection):
17713        (HTMLCollection::base):
17714        (HTMLCollection::namedItems):
17715        * khtml/dom/html_misc.h:
17716        * khtml/editing/htmlediting.cpp:
17717        * khtml/editing/selection.cpp:
17718        * khtml/html/html_documentimpl.cpp:
17719        (DOM::HTMLDocumentImpl::determineParseMode):
17720        (DOM::HTMLDocumentImpl::doctype):
17721        * khtml/html/html_documentimpl.h:
17722        * khtml/html/html_elementimpl.cpp:
17723        (HTMLElementImpl::setInnerHTML):
17724        (HTMLElementImpl::setOuterHTML):
17725        (HTMLElementImpl::setInnerText):
17726        (HTMLElementImpl::setOuterText):
17727        (HTMLElementImpl::style):
17728        (HTMLElementImpl::idDOM):
17729        (HTMLElementImpl::setId):
17730        (HTMLElementImpl::title):
17731        (HTMLElementImpl::setTitle):
17732        (HTMLElementImpl::lang):
17733        (HTMLElementImpl::setLang):
17734        (HTMLElementImpl::dir):
17735        (HTMLElementImpl::setDir):
17736        (HTMLElementImpl::className):
17737        (HTMLElementImpl::setClassName):
17738        (HTMLElementImpl::children):
17739        (HTMLGenericElementImpl::HTMLGenericElementImpl):
17740        (HTMLGenericElementImpl::id):
17741        * khtml/html/html_elementimpl.h:
17742        (DOM::HTMLElementImpl::isGenericFormElement):
17743        * khtml/html/html_formimpl.cpp:
17744        (DOM::HTMLFormElementImpl::parseEnctype):
17745        (DOM::HTMLFormElementImpl::parseHTMLAttribute):
17746        (DOM::HTMLFormElementImpl::elements):
17747        (DOM::HTMLFormElementImpl::name):
17748        (DOM::HTMLFormElementImpl::setName):
17749        (DOM::HTMLFormElementImpl::acceptCharset):
17750        (DOM::HTMLFormElementImpl::setAcceptCharset):
17751        (DOM::HTMLFormElementImpl::action):
17752        (DOM::HTMLFormElementImpl::setAction):
17753        (DOM::HTMLFormElementImpl::setEnctype):
17754        (DOM::HTMLFormElementImpl::method):
17755        (DOM::HTMLFormElementImpl::setMethod):
17756        (DOM::HTMLFormElementImpl::target):
17757        (DOM::HTMLFormElementImpl::setTarget):
17758        (DOM::HTMLGenericFormElementImpl::HTMLGenericFormElementImpl):
17759        (DOM::HTMLGenericFormElementImpl::~HTMLGenericFormElementImpl):
17760        (DOM::HTMLGenericFormElementImpl::parseHTMLAttribute):
17761        (DOM::HTMLGenericFormElementImpl::name):
17762        (DOM::HTMLGenericFormElementImpl::setName):
17763        (DOM::HTMLGenericFormElementImpl::setOverrideName):
17764        (DOM::HTMLGenericFormElementImpl::setDisabled):
17765        (DOM::HTMLGenericFormElementImpl::setReadOnly):
17766        (DOM::HTMLGenericFormElementImpl::tabIndex):
17767        (DOM::HTMLGenericFormElementImpl::setTabIndex):
17768        (DOM::HTMLButtonElementImpl::accessKey):
17769        (DOM::HTMLButtonElementImpl::setAccessKey):
17770        (DOM::HTMLButtonElementImpl::value):
17771        (DOM::HTMLButtonElementImpl::setValue):
17772        (DOM::HTMLInputElementImpl::HTMLInputElementImpl):
17773        (DOM::HTMLInputElementImpl::parseHTMLAttribute):
17774        (DOM::HTMLInputElementImpl::defaultValue):
17775        (DOM::HTMLInputElementImpl::setDefaultValue):
17776        (DOM::HTMLInputElementImpl::defaultChecked):
17777        (DOM::HTMLInputElementImpl::setDefaultChecked):
17778        (DOM::HTMLInputElementImpl::accept):
17779        (DOM::HTMLInputElementImpl::setAccept):
17780        (DOM::HTMLInputElementImpl::accessKey):
17781        (DOM::HTMLInputElementImpl::setAccessKey):
17782        (DOM::HTMLInputElementImpl::align):
17783        (DOM::HTMLInputElementImpl::setAlign):
17784        (DOM::HTMLInputElementImpl::alt):
17785        (DOM::HTMLInputElementImpl::setAlt):
17786        (DOM::HTMLInputElementImpl::setMaxLength):
17787        (DOM::HTMLInputElementImpl::sizeDOM):
17788        (DOM::HTMLInputElementImpl::setSize):
17789        (DOM::HTMLInputElementImpl::src):
17790        (DOM::HTMLInputElementImpl::setSrc):
17791        (DOM::HTMLInputElementImpl::useMap):
17792        (DOM::HTMLInputElementImpl::setUseMap):
17793        (DOM::HTMLLabelElementImpl::form):
17794        (DOM::HTMLLabelElementImpl::accessKey):
17795        (DOM::HTMLLabelElementImpl::setAccessKey):
17796        (DOM::HTMLLabelElementImpl::htmlFor):
17797        (DOM::HTMLLabelElementImpl::setHtmlFor):
17798        (DOM::HTMLLegendElementImpl::accessKey):
17799        (DOM::HTMLLegendElementImpl::setAccessKey):
17800        (DOM::HTMLLegendElementImpl::align):
17801        (DOM::HTMLLegendElementImpl::setAlign):
17802        (DOM::HTMLSelectElementImpl::setValue):
17803        (DOM::HTMLSelectElementImpl::optionsHTMLCollection):
17804        (DOM::HTMLSelectElementImpl::setMultiple):
17805        (DOM::HTMLSelectElementImpl::setSize):
17806        (DOM::HTMLOptGroupElementImpl::label):
17807        (DOM::HTMLOptGroupElementImpl::setLabel):
17808        (DOM::HTMLOptionElementImpl::setText):
17809        (DOM::HTMLOptionElementImpl::setIndex):
17810        (DOM::HTMLOptionElementImpl::setValue):
17811        (DOM::HTMLOptionElementImpl::defaultSelected):
17812        (DOM::HTMLOptionElementImpl::setDefaultSelected):
17813        (DOM::HTMLOptionElementImpl::label):
17814        (DOM::HTMLOptionElementImpl::setLabel):
17815        (DOM::HTMLTextAreaElementImpl::accessKey):
17816        (DOM::HTMLTextAreaElementImpl::setAccessKey):
17817        (DOM::HTMLTextAreaElementImpl::setCols):
17818        (DOM::HTMLTextAreaElementImpl::setRows):
17819        (DOM::HTMLIsIndexElementImpl::HTMLIsIndexElementImpl):
17820        (DOM::HTMLIsIndexElementImpl::parseHTMLAttribute):
17821        (DOM::HTMLIsIndexElementImpl::prompt):
17822        (DOM::HTMLIsIndexElementImpl::setPrompt):
17823        * khtml/html/html_formimpl.h:
17824        * khtml/html/html_headimpl.cpp:
17825        (HTMLBaseElementImpl::setHref):
17826        (HTMLBaseElementImpl::setTarget):
17827        (HTMLLinkElementImpl::disabled):
17828        (HTMLLinkElementImpl::setDisabled):
17829        (HTMLLinkElementImpl::charset):
17830        (HTMLLinkElementImpl::setCharset):
17831        (HTMLLinkElementImpl::href):
17832        (HTMLLinkElementImpl::setHref):
17833        (HTMLLinkElementImpl::hreflang):
17834        (HTMLLinkElementImpl::setHreflang):
17835        (HTMLLinkElementImpl::media):
17836        (HTMLLinkElementImpl::setMedia):
17837        (HTMLLinkElementImpl::rel):
17838        (HTMLLinkElementImpl::setRel):
17839        (HTMLLinkElementImpl::rev):
17840        (HTMLLinkElementImpl::setRev):
17841        (HTMLLinkElementImpl::target):
17842        (HTMLLinkElementImpl::setTarget):
17843        (HTMLLinkElementImpl::type):
17844        (HTMLLinkElementImpl::setType):
17845        (HTMLMetaElementImpl::content):
17846        (HTMLMetaElementImpl::setContent):
17847        (HTMLMetaElementImpl::httpEquiv):
17848        (HTMLMetaElementImpl::setHttpEquiv):
17849        (HTMLMetaElementImpl::name):
17850        (HTMLMetaElementImpl::setName):
17851        (HTMLMetaElementImpl::scheme):
17852        (HTMLMetaElementImpl::setScheme):
17853        (HTMLScriptElementImpl::id):
17854        (HTMLScriptElementImpl::isURLAttribute):
17855        (HTMLScriptElementImpl::insertedIntoDocument):
17856        (HTMLScriptElementImpl::notifyFinished):
17857        (HTMLScriptElementImpl::text):
17858        (HTMLScriptElementImpl::setText):
17859        (HTMLScriptElementImpl::htmlFor):
17860        (HTMLScriptElementImpl::setHtmlFor):
17861        (HTMLScriptElementImpl::event):
17862        (HTMLScriptElementImpl::setEvent):
17863        (HTMLScriptElementImpl::charset):
17864        (HTMLScriptElementImpl::setCharset):
17865        (HTMLScriptElementImpl::defer):
17866        (HTMLScriptElementImpl::setDefer):
17867        (HTMLScriptElementImpl::src):
17868        (HTMLScriptElementImpl::setSrc):
17869        (HTMLScriptElementImpl::type):
17870        (HTMLScriptElementImpl::setType):
17871        (HTMLStyleElementImpl::disabled):
17872        (HTMLStyleElementImpl::setDisabled):
17873        (HTMLStyleElementImpl::media):
17874        (HTMLStyleElementImpl::setMedia):
17875        (HTMLStyleElementImpl::type):
17876        (HTMLStyleElementImpl::setType):
17877        (HTMLTitleElementImpl::insertedIntoDocument):
17878        (HTMLTitleElementImpl::childrenChanged):
17879        (HTMLTitleElementImpl::text):
17880        (HTMLTitleElementImpl::setText):
17881        * khtml/html/html_headimpl.h:
17882        * khtml/html/html_miscimpl.cpp:
17883        (DOM::HTMLBaseFontElementImpl::id):
17884        (DOM::HTMLBaseFontElementImpl::color):
17885        (DOM::HTMLBaseFontElementImpl::setColor):
17886        (DOM::HTMLBaseFontElementImpl::face):
17887        (DOM::HTMLBaseFontElementImpl::setFace):
17888        (DOM::HTMLBaseFontElementImpl::size):
17889        (DOM::HTMLBaseFontElementImpl::setSize):
17890        (DOM::HTMLCollectionImpl::HTMLCollectionImpl):
17891        (DOM::HTMLCollectionImpl::~HTMLCollectionImpl):
17892        (DOM::HTMLCollectionImpl::resetCollectionInfo):
17893        (DOM::HTMLCollectionImpl::traverseNextItem):
17894        (DOM::HTMLCollectionImpl::calcLength):
17895        (DOM::HTMLCollectionImpl::item):
17896        (DOM::HTMLCollectionImpl::namedItem):
17897        (DOM::HTMLCollectionImpl::updateNameCache):
17898        (DOM::HTMLCollectionImpl::namedItems):
17899        (DOM::HTMLCollectionImpl::nextNamedItem):
17900        (DOM::HTMLFormCollectionImpl::HTMLFormCollectionImpl):
17901        (DOM::HTMLFormCollectionImpl::calcLength):
17902        (DOM::HTMLFormCollectionImpl::item):
17903        (DOM::HTMLFormCollectionImpl::getNamedFormItem):
17904        (DOM::HTMLFormCollectionImpl::nextNamedItemInternal):
17905        (DOM::HTMLFormCollectionImpl::namedItem):
17906        (DOM::HTMLFormCollectionImpl::updateNameCache):
17907        * khtml/html/html_miscimpl.h:
17908        (DOM::HTMLCollectionImpl::base):
17909        * khtml/html/htmlparser.cpp:
17910        (KHTMLParser::parseToken):
17911        (KHTMLParser::insertNode):
17912        * khtml/html/htmltokenizer.cpp:
17913        (khtml::HTMLTokenizer::scriptExecution):
17914        * khtml/khtml_events.cpp:
17915        (khtml::MouseEvent::MouseEvent):
17916        (khtml::MouseEvent::offset):
17917        * khtml/khtml_events.h:
17918        (khtml::MouseEvent::innerNode):
17919        (khtml::MousePressEvent::MousePressEvent):
17920        (khtml::MouseDoubleClickEvent::MouseDoubleClickEvent):
17921        (khtml::MouseMoveEvent::MouseMoveEvent):
17922        (khtml::MouseReleaseEvent::MouseReleaseEvent):
17923        * khtml/khtml_part.cpp:
17924        (KHTMLPart::closeURL):
17925        (KHTMLPart::executeScript):
17926        (KHTMLPart::scheduleScript):
17927        (KHTMLPart::executeScheduledScript):
17928        (KHTMLPart::clear):
17929        (KHTMLPart::selectClosestWordFromMouseEvent):
17930        (KHTMLPart::handleMousePressEventDoubleClick):
17931        (KHTMLPart::handleMousePressEventTripleClick):
17932        (KHTMLPart::handleMousePressEventSingleClick):
17933        (KHTMLPart::khtmlMousePressEvent):
17934        (KHTMLPart::handleMouseMoveEventDrag):
17935        (KHTMLPart::handleMouseMoveEventOver):
17936        (KHTMLPart::handleMouseMoveEventSelection):
17937        (KHTMLPart::khtmlMouseReleaseEvent):
17938        (KHTMLPart::selectionHasStyle):
17939        (KHTMLPart::selectionStartHasStyle):
17940        * khtml/khtml_part.h:
17941        * khtml/khtmlpart_p.h:
17942        * khtml/khtmlview.cpp:
17943        (KHTMLViewPrivate::reset):
17944        (KHTMLView::viewportMousePressEvent):
17945        (KHTMLView::viewportMouseDoubleClickEvent):
17946        (KHTMLView::contentsContextMenuEvent):
17947        (KHTMLView::updateDragAndDrop):
17948        (KHTMLView::cancelDragAndDrop):
17949        (KHTMLView::performDragAndDrop):
17950        (KHTMLView::focusNextPrevNode):
17951        * kwq/DOM-CSS.mm:
17952        (-[DOMCSSStyleSheet cssRules]):
17953        (-[DOMCSSStyleDeclaration getPropertyValue:]):
17954        (-[DOMCSSStyleDeclaration getPropertyCSSValue:]):
17955        (-[DOMCSSStyleDeclaration removeProperty:]):
17956        (-[DOMCSSStyleDeclaration getPropertyPriority:]):
17957        (-[DOMCSSStyleDeclaration setProperty:::]):
17958        (-[DOMCSSValue setCssText:]):
17959        * kwq/DOMCSS.h:
17960        * kwq/DOMHTML.mm:
17961        (-[DOMHTMLElement setInnerHTML:]):
17962        (-[DOMHTMLElement setOuterHTML:]):
17963        (-[DOMHTMLElement setInnerText:]):
17964        (-[DOMHTMLElement setOuterText:]):
17965        (-[DOMHTMLSelectElement setLength:]):
17966        (-[DOMHTMLTableSectionElement insertRow:]):
17967        * kwq/DOMInternal.h:
17968        * kwq/DOMInternal.mm:
17969        (raiseDOMException):
17970        (-[WebScriptObject _initializeScriptDOMNodeImp]):
17971        * kwq/DOMUtility.mm:
17972        (KJS::ScriptInterpreter::createObjcInstanceForValue):
17973        * kwq/KWQAccObject.mm:
17974        (-[KWQAccObject accessibilityAttributeValue:]):
17975        * kwq/KWQKHTMLPart.h:
17976        * kwq/KWQKHTMLPart.mm:
17977        (KWQKHTMLPart::KWQKHTMLPart):
17978        (KWQKHTMLPart::advanceToNextMisspelling):
17979        (KWQKHTMLPart::scrollOverflow):
17980        (KWQKHTMLPart::paint):
17981        (KWQKHTMLPart::openURLFromPageCache):
17982        (KWQKHTMLPart::khtmlMousePressEvent):
17983        (KWQKHTMLPart::passWidgetMouseDownEventToWidget):
17984        (KWQKHTMLPart::dispatchDragSrcEvent):
17985        (KWQKHTMLPart::eventMayStartDrag):
17986        (KWQKHTMLPart::khtmlMouseMoveEvent):
17987        (KWQKHTMLPart::dragSourceEndedAt):
17988        (KWQKHTMLPart::mouseDown):
17989        (KWQKHTMLPart::sendContextMenuEvent):
17990        (listParent):
17991        (isTextFirstInListItem):
17992        (KWQKHTMLPart::attributedString):
17993        (KWQKHTMLPart::snapshotDragImage):
17994        (KWQKHTMLPart::mousePressNode):
17995        * kwq/WebCoreBridge.mm:
17996        (updateRenderingForBindings):
17997        (-[WebCoreBridge _documentTypeString]):
17998
179992005-05-10  Maciej Stachowiak  <mjs@apple.com>
18000
18001        Reviewed by John.
18002
18003	- rename hasAnchor method to isLink
18004
18005        * khtml/css/cssstyleselector.cpp:
18006        (khtml::checkPseudoState):
18007        (khtml::CSSStyleSelector::canShareStyleWithElement):
18008        (khtml::CSSStyleSelector::styleForElement):
18009        (khtml::CSSStyleSelector::checkOneSelector):
18010        * khtml/editing/htmlediting.cpp:
18011        (khtml::isSpecialElement):
18012        * khtml/html/html_imageimpl.cpp:
18013        (HTMLImageElementImpl::parseHTMLAttribute):
18014        * khtml/html/html_inlineimpl.cpp:
18015        (DOM::HTMLAnchorElementImpl::isFocusable):
18016        (DOM::HTMLAnchorElementImpl::defaultEventHandler):
18017        (DOM::HTMLAnchorElementImpl::parseHTMLAttribute):
18018        * khtml/rendering/render_flexbox.cpp:
18019        (khtml::RenderFlexibleBox::layoutVerticalBox):
18020        * khtml/rendering/render_layer.cpp:
18021        (RenderLayer::hitTest):
18022        * khtml/rendering/render_object.cpp:
18023        (RenderObject::information):
18024        * khtml/xml/dom_nodeimpl.cpp:
18025        (NodeImpl::NodeImpl):
18026        * khtml/xml/dom_nodeimpl.h:
18027        (DOM::NodeImpl::isLink):
18028        * kwq/KWQAccObject.mm:
18029        (-[KWQAccObject anchorElement]):
18030        (-[KWQAccObject addChildrenToArray:]):
18031        (-[KWQAccObject role]):
18032        (-[KWQAccObject title]):
18033        (-[KWQAccObject accessibilityIsIgnored]):
18034        (-[KWQAccObject accessibilityAttributeNames]):
18035        (-[KWQAccObject accessibilityAttributeValue:]):
18036        * kwq/KWQKHTMLPart.mm:
18037        (KWQKHTMLPart::khtmlMouseMoveEvent):
18038
180392005-05-09  Maciej Stachowiak  <mjs@apple.com>
18040
18041        Reviewed by John.
18042
18043	- remove init hint argument from VisiblePosition 
18044
18045        * khtml/editing/visible_position.cpp:
18046        (khtml::VisiblePosition::VisiblePosition):
18047        (khtml::VisiblePosition::init):
18048        * khtml/editing/visible_position.h:
18049        * khtml/editing/visible_units.cpp:
18050        (khtml::previousBoundary):
18051        (khtml::nextBoundary):
18052        * khtml/xml/dom_docimpl.cpp:
18053        (DocumentImpl::updateSelection):
18054        * kwq/KWQKHTMLPart.mm:
18055        (KWQKHTMLPart::styleForSelectionStart):
18056        * kwq/WebCoreBridge.mm:
18057        (-[WebCoreBridge setSelectedDOMRange:affinity:closeTyping:]):
18058
180592005-05-10  Darin Adler  <darin@apple.com>
18060
18061        Reviewed by David Harrison.
18062
18063        - next pass of moving code from C++ DOM wrappers into the DOM impl. classes
18064          (this step adds more member functions missing from the DOM impl. and
18065           changes some of the Objective-C DOM to call the new ones; also changes some
18066           parameter types in the DOM impl.)
18067
18068        * khtml/dom/dom2_events.cpp:
18069        (UIEvent::initUIEvent):
18070        (MouseEvent::initMouseEvent):
18071        (MutationEvent::initMutationEvent):
18072        (KeyboardEvent::initKeyboardEvent):
18073        * khtml/dom/dom_doc.cpp:
18074        (DOM::DOMImplementation::createDocument):
18075        (DOM::Document::getElementsByTagName):
18076        (DOM::Document::getElementsByTagNameNS):
18077        * khtml/dom/dom_element.cpp:
18078        (Element::removeAttributeNode):
18079        (Element::getElementsByTagName):
18080        (Element::getElementsByTagNameNS):
18081        (Element::setAttributeNodeNS):
18082        * khtml/dom/dom_node.cpp:
18083        (NamedNodeMap::setNamedItemNS):
18084        (NamedNodeMap::removeNamedItemNS):
18085        * khtml/ecma/kjs_binding.cpp:
18086        * khtml/ecma/kjs_events.cpp:
18087        (ClipboardProtoFunc::tryCall):
18088        * khtml/editing/jsediting.cpp:
18089        * khtml/khtml_part.cpp:
18090        (KHTMLPart::applyEditingStyleToBodyElement):
18091        (KHTMLPart::removeEditingStyleFromBodyElement):
18092        * khtml/khtmlview.cpp:
18093        (KHTMLView::viewportMousePressEvent):
18094        (KHTMLView::viewportMouseDoubleClickEvent):
18095        (KHTMLView::viewportMouseMoveEvent):
18096        (KHTMLView::viewportMouseReleaseEvent):
18097        (KHTMLView::updateDragAndDrop):
18098        (KHTMLView::dispatchMouseEvent):
18099        * khtml/misc/shared.h:
18100        (khtml::SharedPtr::reset):
18101        (khtml::::operator):
18102        (khtml::static_pointer_cast):
18103        (khtml::const_pointer_cast):
18104        * khtml/xml/dom2_eventsimpl.cpp:
18105        (UIEventImpl::initUIEvent):
18106        (UIEventImpl::keyCode):
18107        (UIEventImpl::charCode):
18108        (UIEventImpl::layerX):
18109        (UIEventImpl::layerY):
18110        (UIEventImpl::pageX):
18111        (UIEventImpl::pageY):
18112        (UIEventImpl::which):
18113        (MouseRelatedEventImpl::pageX):
18114        (MouseRelatedEventImpl::pageY):
18115        (MouseEventImpl::initMouseEvent):
18116        (MouseEventImpl::which):
18117        (KeyboardEventImpl::initKeyboardEvent):
18118        (KeyboardEventImpl::which):
18119        (MutationEventImpl::MutationEventImpl):
18120        (MutationEventImpl::initMutationEvent):
18121        * khtml/xml/dom2_eventsimpl.h:
18122        (DOM::MutationEventImpl::relatedNode):
18123        * khtml/xml/dom2_rangeimpl.h:
18124        * khtml/xml/dom2_traversalimpl.cpp:
18125        (DOM::NodeFilterImpl::acceptNode):
18126        * khtml/xml/dom2_traversalimpl.h:
18127        * khtml/xml/dom_docimpl.cpp:
18128        (DOMImplementationImpl::createDocument):
18129        (DOMImplementationImpl::createCSSStyleSheet):
18130        (DOMImplementationImpl::createHTMLDocument):
18131        (DocumentImpl::createAttribute):
18132        (DocumentImpl::createHTMLElement):
18133        (DocumentImpl::getOverrideStyle):
18134        (DocumentImpl::defaultEventHandler):
18135        (DocumentImpl::completeURL):
18136        (DocumentImpl::topDocument):
18137        (DocumentImpl::createAttributeNS):
18138        (DocumentImpl::images):
18139        (DocumentImpl::applets):
18140        (DocumentImpl::embeds):
18141        (DocumentImpl::objects):
18142        (DocumentImpl::links):
18143        (DocumentImpl::forms):
18144        (DocumentImpl::anchors):
18145        (DocumentImpl::all):
18146        (DocumentImpl::nameableItems):
18147        (DocumentImpl::getElementsByName):
18148        * khtml/xml/dom_docimpl.h:
18149        (DOM::DocumentImpl::realDocType):
18150        (DOM::DocumentImpl::createAttribute):
18151        * khtml/xml/dom_elementimpl.cpp:
18152        (AttrImpl::nodeName):
18153        (AttrImpl::nodeValue):
18154        (AttrImpl::name):
18155        (AttrImpl::value):
18156        (ElementImpl::attributes):
18157        (ElementImpl::isURLAttribute):
18158        (ElementImpl::setAttributeNode):
18159        (ElementImpl::removeAttributeNode):
18160        (ElementImpl::setAttributeNS):
18161        (ElementImpl::removeAttributeNS):
18162        (ElementImpl::getAttributeNodeNS):
18163        (ElementImpl::hasAttributeNS):
18164        (ElementImpl::style):
18165        (XMLElementImpl::cloneNode):
18166        (NamedAttrMapImpl::setNamedItem):
18167        (NamedAttrMapImpl::removeNamedItem):
18168        * khtml/xml/dom_elementimpl.h:
18169        (DOM::ElementImpl::hasAttribute):
18170        (DOM::ElementImpl::getAttribute):
18171        (DOM::ElementImpl::setAttribute):
18172        (DOM::ElementImpl::removeAttribute):
18173        (DOM::ElementImpl::getAttributeNode):
18174        (DOM::ElementImpl::setAttributeNodeNS):
18175        * khtml/xml/dom_nodeimpl.cpp:
18176        (NodeImpl::handleLocalEvents):
18177        (NodeImpl::isAncestor):
18178        (NodeImpl::addEventListener):
18179        (NodeImpl::removeEventListener):
18180        (NodeImpl::getElementsByTagNameNS):
18181        (NodeImpl::isSupported):
18182        (NodeImpl::ownerDocument):
18183        (NodeImpl::hasAttributes):
18184        (NodeImpl::attributes):
18185        (ContainerNodeImpl::removeChildren):
18186        (NamedNodeMapImpl::~NamedNodeMapImpl):
18187        (NamedNodeMapImpl::getNamedItemNS):
18188        (NamedNodeMapImpl::removeNamedItemNS):
18189        * khtml/xml/dom_nodeimpl.h:
18190        (DOM::NodeImpl::getElementsByTagName):
18191        (DOM::NamedNodeMapImpl::NamedNodeMapImpl):
18192        (DOM::NamedNodeMapImpl::getNamedItem):
18193        (DOM::NamedNodeMapImpl::removeNamedItem):
18194        (DOM::NamedNodeMapImpl::setNamedItemNS):
18195        (DOM::NamedNodeMapImpl::isReadOnly):
18196        * khtml/xml/dom_textimpl.h:
18197        * khtml/xml/dom_xmlimpl.h:
18198        * kwq/DOM.mm:
18199        (-[DOMNode isSupported::]):
18200        (-[DOMNode namespaceURI]):
18201        (-[DOMNode hasAttributes]):
18202        (-[DOMNamedNodeMap getNamedItem:]):
18203        (-[DOMNamedNodeMap setNamedItem:]):
18204        (-[DOMNamedNodeMap removeNamedItem:]):
18205        (-[DOMNamedNodeMap getNamedItemNS::]):
18206        (-[DOMNamedNodeMap setNamedItemNS:]):
18207        (-[DOMNamedNodeMap removeNamedItemNS::]):
18208        (-[DOMImplementation createDocument:::]):
18209        (-[DOMImplementation createCSSStyleSheet::]):
18210        (-[DOMDocument createAttribute:]):
18211        (-[DOMDocument getElementsByTagName:]):
18212        (-[DOMDocument createAttributeNS::]):
18213        (-[DOMDocument getElementsByTagNameNS::]):
18214        (-[DOMElement setAttribute::]):
18215        (-[DOMElement removeAttribute:]):
18216        (-[DOMElement getAttributeNode:]):
18217        (-[DOMElement setAttributeNode:]):
18218        (-[DOMElement removeAttributeNode:]):
18219        (-[DOMElement getElementsByTagName:]):
18220        (-[DOMElement getAttributeNS::]):
18221        (-[DOMElement setAttributeNS:::]):
18222        (-[DOMElement removeAttributeNS::]):
18223        (-[DOMElement getAttributeNodeNS::]):
18224        (-[DOMElement setAttributeNodeNS:]):
18225        (-[DOMElement getElementsByTagNameNS::]):
18226        (-[DOMElement hasAttribute:]):
18227        (-[DOMElement hasAttributeNS::]):
18228        (-[DOMElement style]):
18229        (-[DOMDocumentType _documentTypeImpl]):
18230        (ObjCNodeFilterCondition::acceptNode):
18231        * kwq/DOMEvents.mm:
18232        (-[DOMMutationEvent relatedNode]):
18233        * kwq/KWQClipboard.h:
18234        * kwq/KWQClipboard.mm:
18235        (KWQClipboard::KWQClipboard):
18236        (KWQClipboard::setDragImage):
18237        (KWQClipboard::dragImageElement):
18238        (KWQClipboard::setDragImageElement):
18239        (KWQClipboard::dragNSImage):
18240        * kwq/KWQKHTMLPart.mm:
18241        (KWQKHTMLPart::khtmlMouseMoveEvent):
18242        (KWQKHTMLPart::passSubframeEventToSubframe):
18243        (KWQKHTMLPart::sendContextMenuEvent):
18244
182452005-05-10  Darin Adler  <darin@apple.com>
18246
18247        Reviewed by David Harrison.
18248
18249        - first pass of moving code from C++ DOM wrappers into the DOM impl. classes
18250          (this step mostly adds member functions missing from the DOM impl.; later steps
18251           will change the C++, JavaScript, and ObjC wrappers to call these functions)
18252
18253        * khtml/css/parser.y:
18254        * khtml/css/css_ruleimpl.cpp:
18255        (CSSRuleListImpl::CSSRuleListImpl):
18256        * khtml/css/css_ruleimpl.h:
18257        (DOM::CSSRuleListImpl::CSSRuleListImpl):
18258        * khtml/html/html_baseimpl.cpp:
18259        (HTMLBodyElementImpl::aLink):
18260        (HTMLBodyElementImpl::setALink):
18261        (HTMLBodyElementImpl::background):
18262        (HTMLBodyElementImpl::setBackground):
18263        (HTMLBodyElementImpl::bgColor):
18264        (HTMLBodyElementImpl::setBgColor):
18265        (HTMLBodyElementImpl::link):
18266        (HTMLBodyElementImpl::setLink):
18267        (HTMLBodyElementImpl::text):
18268        (HTMLBodyElementImpl::setText):
18269        (HTMLBodyElementImpl::vLink):
18270        (HTMLBodyElementImpl::setVLink):
18271        (HTMLFrameElementImpl::HTMLFrameElementImpl):
18272        (HTMLFrameElementImpl::updateForNewURL):
18273        (HTMLFrameElementImpl::openURL):
18274        (HTMLFrameElementImpl::parseHTMLAttribute):
18275        (HTMLFrameElementImpl::rendererIsNeeded):
18276        (HTMLFrameElementImpl::attach):
18277        (HTMLFrameElementImpl::detach):
18278        (HTMLFrameElementImpl::setLocation):
18279        (HTMLFrameElementImpl::contentPart):
18280        (HTMLFrameElementImpl::frameBorder):
18281        (HTMLFrameElementImpl::setFrameBorder):
18282        (HTMLFrameElementImpl::longDesc):
18283        (HTMLFrameElementImpl::setLongDesc):
18284        (HTMLFrameElementImpl::marginHeight):
18285        (HTMLFrameElementImpl::setMarginHeight):
18286        (HTMLFrameElementImpl::marginWidth):
18287        (HTMLFrameElementImpl::setMarginWidth):
18288        (HTMLFrameElementImpl::name):
18289        (HTMLFrameElementImpl::setName):
18290        (HTMLFrameElementImpl::setNoResize):
18291        (HTMLFrameElementImpl::scrolling):
18292        (HTMLFrameElementImpl::setScrolling):
18293        (HTMLFrameElementImpl::src):
18294        (HTMLFrameElementImpl::setSrc):
18295        (HTMLFrameSetElementImpl::parseHTMLAttribute):
18296        (HTMLFrameSetElementImpl::cols):
18297        (HTMLFrameSetElementImpl::setCols):
18298        (HTMLFrameSetElementImpl::rows):
18299        (HTMLFrameSetElementImpl::setRows):
18300        (HTMLHeadElementImpl::profile):
18301        (HTMLHeadElementImpl::setProfile):
18302        (HTMLHtmlElementImpl::version):
18303        (HTMLHtmlElementImpl::setVersion):
18304        (HTMLIFrameElementImpl::HTMLIFrameElementImpl):
18305        (HTMLIFrameElementImpl::rendererIsNeeded):
18306        (HTMLIFrameElementImpl::attach):
18307        (HTMLIFrameElementImpl::isURLAttribute):
18308        (HTMLIFrameElementImpl::align):
18309        (HTMLIFrameElementImpl::setAlign):
18310        (HTMLIFrameElementImpl::height):
18311        (HTMLIFrameElementImpl::setHeight):
18312        (HTMLIFrameElementImpl::src):
18313        (HTMLIFrameElementImpl::width):
18314        (HTMLIFrameElementImpl::setWidth):
18315        * khtml/html/html_baseimpl.h:
18316        (DOM::HTMLFrameElementImpl::noResize):
18317        (DOM::HTMLFrameElementImpl::scrollingMode):
18318        (DOM::HTMLFrameElementImpl::getMarginWidth):
18319        (DOM::HTMLFrameElementImpl::getMarginHeight):
18320        * khtml/html/html_blockimpl.cpp:
18321        (HTMLBlockquoteElementImpl::cite):
18322        (HTMLBlockquoteElementImpl::setCite):
18323        (HTMLDivElementImpl::align):
18324        (HTMLDivElementImpl::setAlign):
18325        (HTMLHRElementImpl::align):
18326        (HTMLHRElementImpl::setAlign):
18327        (HTMLHRElementImpl::noShade):
18328        (HTMLHRElementImpl::setNoShade):
18329        (HTMLHRElementImpl::size):
18330        (HTMLHRElementImpl::setSize):
18331        (HTMLHRElementImpl::width):
18332        (HTMLHRElementImpl::setWidth):
18333        (HTMLHeadingElementImpl::align):
18334        (HTMLHeadingElementImpl::setAlign):
18335        (HTMLParagraphElementImpl::align):
18336        (HTMLParagraphElementImpl::setAlign):
18337        (HTMLPreElementImpl::width):
18338        (HTMLPreElementImpl::setWidth):
18339        * khtml/html/html_blockimpl.h:
18340        * khtml/html/html_imageimpl.cpp:
18341        (HTMLImageElementImpl::name):
18342        (HTMLImageElementImpl::setName):
18343        (HTMLImageElementImpl::align):
18344        (HTMLImageElementImpl::setAlign):
18345        (HTMLImageElementImpl::alt):
18346        (HTMLImageElementImpl::setAlt):
18347        (HTMLImageElementImpl::border):
18348        (HTMLImageElementImpl::setBorder):
18349        (HTMLImageElementImpl::setHeight):
18350        (HTMLImageElementImpl::hspace):
18351        (HTMLImageElementImpl::setHspace):
18352        (HTMLImageElementImpl::isMap):
18353        (HTMLImageElementImpl::setIsMap):
18354        (HTMLImageElementImpl::longDesc):
18355        (HTMLImageElementImpl::setLongDesc):
18356        (HTMLImageElementImpl::src):
18357        (HTMLImageElementImpl::setSrc):
18358        (HTMLImageElementImpl::useMap):
18359        (HTMLImageElementImpl::setUseMap):
18360        (HTMLImageElementImpl::vspace):
18361        (HTMLImageElementImpl::setVspace):
18362        (HTMLImageElementImpl::setWidth):
18363        (HTMLImageElementImpl::x):
18364        (HTMLImageElementImpl::y):
18365        (HTMLMapElementImpl::parseHTMLAttribute):
18366        (HTMLMapElementImpl::areas):
18367        (HTMLMapElementImpl::name):
18368        (HTMLMapElementImpl::setName):
18369        (HTMLAreaElementImpl::HTMLAreaElementImpl):
18370        (HTMLAreaElementImpl::parseHTMLAttribute):
18371        (HTMLAreaElementImpl::getRegion):
18372        (HTMLAreaElementImpl::accessKey):
18373        (HTMLAreaElementImpl::setAccessKey):
18374        (HTMLAreaElementImpl::alt):
18375        (HTMLAreaElementImpl::setAlt):
18376        (HTMLAreaElementImpl::coords):
18377        (HTMLAreaElementImpl::setCoords):
18378        (HTMLAreaElementImpl::href):
18379        (HTMLAreaElementImpl::setHref):
18380        (HTMLAreaElementImpl::noHref):
18381        (HTMLAreaElementImpl::setNoHref):
18382        (HTMLAreaElementImpl::shape):
18383        (HTMLAreaElementImpl::setShape):
18384        (HTMLAreaElementImpl::tabIndex):
18385        (HTMLAreaElementImpl::setTabIndex):
18386        (HTMLAreaElementImpl::target):
18387        (HTMLAreaElementImpl::setTarget):
18388        * khtml/html/html_imageimpl.h:
18389        (DOM::HTMLImageElementImpl::pixmap):
18390        (DOM::HTMLAreaElementImpl::isDefault):
18391        (DOM::HTMLMapElementImpl::getName):
18392        * khtml/html/html_inlineimpl.cpp:
18393        (DOM::HTMLAnchorElementImpl::accessKey):
18394        (DOM::HTMLAnchorElementImpl::setAccessKey):
18395        (DOM::HTMLAnchorElementImpl::charset):
18396        (DOM::HTMLAnchorElementImpl::setCharset):
18397        (DOM::HTMLAnchorElementImpl::coords):
18398        (DOM::HTMLAnchorElementImpl::setCoords):
18399        (DOM::HTMLAnchorElementImpl::href):
18400        (DOM::HTMLAnchorElementImpl::setHref):
18401        (DOM::HTMLAnchorElementImpl::hreflang):
18402        (DOM::HTMLAnchorElementImpl::setHreflang):
18403        (DOM::HTMLAnchorElementImpl::name):
18404        (DOM::HTMLAnchorElementImpl::setName):
18405        (DOM::HTMLAnchorElementImpl::rel):
18406        (DOM::HTMLAnchorElementImpl::setRel):
18407        (DOM::HTMLAnchorElementImpl::rev):
18408        (DOM::HTMLAnchorElementImpl::setRev):
18409        (DOM::HTMLAnchorElementImpl::shape):
18410        (DOM::HTMLAnchorElementImpl::setShape):
18411        (DOM::HTMLAnchorElementImpl::tabIndex):
18412        (DOM::HTMLAnchorElementImpl::setTabIndex):
18413        (DOM::HTMLAnchorElementImpl::target):
18414        (DOM::HTMLAnchorElementImpl::setTarget):
18415        (DOM::HTMLAnchorElementImpl::type):
18416        (DOM::HTMLAnchorElementImpl::setType):
18417        (DOM::HTMLAnchorElementImpl::blur):
18418        (DOM::HTMLAnchorElementImpl::focus):
18419        (DOM::HTMLBRElementImpl::clear):
18420        (DOM::HTMLBRElementImpl::setClear):
18421        (DOM::HTMLFontElementImpl::parseHTMLAttribute):
18422        (DOM::HTMLFontElementImpl::color):
18423        (DOM::HTMLFontElementImpl::setColor):
18424        (DOM::HTMLFontElementImpl::face):
18425        (DOM::HTMLFontElementImpl::setFace):
18426        (DOM::HTMLFontElementImpl::size):
18427        (DOM::HTMLFontElementImpl::setSize):
18428        (DOM::HTMLModElementImpl::HTMLModElementImpl):
18429        (DOM::HTMLModElementImpl::cite):
18430        (DOM::HTMLModElementImpl::setCite):
18431        (DOM::HTMLModElementImpl::dateTime):
18432        (DOM::HTMLModElementImpl::setDateTime):
18433        (DOM::HTMLQuoteElementImpl::HTMLQuoteElementImpl):
18434        (DOM::HTMLQuoteElementImpl::id):
18435        (DOM::HTMLQuoteElementImpl::cite):
18436        (DOM::HTMLQuoteElementImpl::setCite):
18437        * khtml/html/html_inlineimpl.h:
18438        * khtml/html/html_listimpl.cpp:
18439        (DOM::HTMLUListElementImpl::compact):
18440        (DOM::HTMLUListElementImpl::setCompact):
18441        (DOM::HTMLUListElementImpl::type):
18442        (DOM::HTMLUListElementImpl::setType):
18443        (DOM::HTMLDirectoryElementImpl::compact):
18444        (DOM::HTMLDirectoryElementImpl::setCompact):
18445        (DOM::HTMLMenuElementImpl::compact):
18446        (DOM::HTMLMenuElementImpl::setCompact):
18447        (DOM::HTMLOListElementImpl::compact):
18448        (DOM::HTMLOListElementImpl::setCompact):
18449        (DOM::HTMLOListElementImpl::setStart):
18450        (DOM::HTMLOListElementImpl::type):
18451        (DOM::HTMLOListElementImpl::setType):
18452        (DOM::HTMLLIElementImpl::type):
18453        (DOM::HTMLLIElementImpl::setType):
18454        (DOM::HTMLLIElementImpl::value):
18455        (DOM::HTMLLIElementImpl::setValue):
18456        (DOM::HTMLDListElementImpl::compact):
18457        (DOM::HTMLDListElementImpl::setCompact):
18458        * khtml/html/html_listimpl.h:
18459        (DOM::HTMLUListElementImpl::start):
18460        (DOM::HTMLDirectoryElementImpl::HTMLDirectoryElementImpl):
18461        (DOM::HTMLMenuElementImpl::HTMLMenuElementImpl):
18462        (DOM::HTMLOListElementImpl::HTMLOListElementImpl):
18463        (DOM::HTMLOListElementImpl::start):
18464        * khtml/html/html_objectimpl.cpp:
18465        (DOM::HTMLAppletElementImpl::align):
18466        (DOM::HTMLAppletElementImpl::setAlign):
18467        (DOM::HTMLAppletElementImpl::alt):
18468        (DOM::HTMLAppletElementImpl::setAlt):
18469        (DOM::HTMLAppletElementImpl::archive):
18470        (DOM::HTMLAppletElementImpl::setArchive):
18471        (DOM::HTMLAppletElementImpl::code):
18472        (DOM::HTMLAppletElementImpl::setCode):
18473        (DOM::HTMLAppletElementImpl::codeBase):
18474        (DOM::HTMLAppletElementImpl::setCodeBase):
18475        (DOM::HTMLAppletElementImpl::height):
18476        (DOM::HTMLAppletElementImpl::setHeight):
18477        (DOM::HTMLAppletElementImpl::hspace):
18478        (DOM::HTMLAppletElementImpl::setHspace):
18479        (DOM::HTMLAppletElementImpl::name):
18480        (DOM::HTMLAppletElementImpl::setName):
18481        (DOM::HTMLAppletElementImpl::object):
18482        (DOM::HTMLAppletElementImpl::setObject):
18483        (DOM::HTMLAppletElementImpl::vspace):
18484        (DOM::HTMLAppletElementImpl::setVspace):
18485        (DOM::HTMLAppletElementImpl::width):
18486        (DOM::HTMLAppletElementImpl::setWidth):
18487        (DOM::HTMLObjectElementImpl::code):
18488        (DOM::HTMLObjectElementImpl::setCode):
18489        (DOM::HTMLObjectElementImpl::align):
18490        (DOM::HTMLObjectElementImpl::setAlign):
18491        (DOM::HTMLObjectElementImpl::archive):
18492        (DOM::HTMLObjectElementImpl::setArchive):
18493        (DOM::HTMLObjectElementImpl::border):
18494        (DOM::HTMLObjectElementImpl::setBorder):
18495        (DOM::HTMLObjectElementImpl::codeBase):
18496        (DOM::HTMLObjectElementImpl::setCodeBase):
18497        (DOM::HTMLObjectElementImpl::codeType):
18498        (DOM::HTMLObjectElementImpl::setCodeType):
18499        (DOM::HTMLObjectElementImpl::data):
18500        (DOM::HTMLObjectElementImpl::setData):
18501        (DOM::HTMLObjectElementImpl::declare):
18502        (DOM::HTMLObjectElementImpl::setDeclare):
18503        (DOM::HTMLObjectElementImpl::height):
18504        (DOM::HTMLObjectElementImpl::setHeight):
18505        (DOM::HTMLObjectElementImpl::hspace):
18506        (DOM::HTMLObjectElementImpl::setHspace):
18507        (DOM::HTMLObjectElementImpl::name):
18508        (DOM::HTMLObjectElementImpl::setName):
18509        (DOM::HTMLObjectElementImpl::standby):
18510        (DOM::HTMLObjectElementImpl::setStandby):
18511        (DOM::HTMLObjectElementImpl::tabIndex):
18512        (DOM::HTMLObjectElementImpl::setTabIndex):
18513        (DOM::HTMLObjectElementImpl::type):
18514        (DOM::HTMLObjectElementImpl::setType):
18515        (DOM::HTMLObjectElementImpl::useMap):
18516        (DOM::HTMLObjectElementImpl::setUseMap):
18517        (DOM::HTMLObjectElementImpl::vspace):
18518        (DOM::HTMLObjectElementImpl::setVspace):
18519        (DOM::HTMLObjectElementImpl::width):
18520        (DOM::HTMLObjectElementImpl::setWidth):
18521        (DOM::HTMLParamElementImpl::isURLAttribute):
18522        (DOM::HTMLParamElementImpl::setName):
18523        (DOM::HTMLParamElementImpl::type):
18524        (DOM::HTMLParamElementImpl::setType):
18525        (DOM::HTMLParamElementImpl::setValue):
18526        (DOM::HTMLParamElementImpl::valueType):
18527        (DOM::HTMLParamElementImpl::setValueType):
18528        * khtml/html/html_objectimpl.h:
18529        (DOM::HTMLParamElementImpl::name):
18530        (DOM::HTMLParamElementImpl::value):
18531        * khtml/html/html_tableimpl.cpp:
18532        (DOM::HTMLTableElementImpl::rows):
18533        (DOM::HTMLTableElementImpl::tBodies):
18534        (DOM::HTMLTableElementImpl::align):
18535        (DOM::HTMLTableElementImpl::setAlign):
18536        (DOM::HTMLTableElementImpl::bgColor):
18537        (DOM::HTMLTableElementImpl::setBgColor):
18538        (DOM::HTMLTableElementImpl::border):
18539        (DOM::HTMLTableElementImpl::setBorder):
18540        (DOM::HTMLTableElementImpl::cellPadding):
18541        (DOM::HTMLTableElementImpl::setCellPadding):
18542        (DOM::HTMLTableElementImpl::cellSpacing):
18543        (DOM::HTMLTableElementImpl::setCellSpacing):
18544        (DOM::HTMLTableElementImpl::frame):
18545        (DOM::HTMLTableElementImpl::setFrame):
18546        (DOM::HTMLTableElementImpl::rules):
18547        (DOM::HTMLTableElementImpl::setRules):
18548        (DOM::HTMLTableElementImpl::summary):
18549        (DOM::HTMLTableElementImpl::setSummary):
18550        (DOM::HTMLTableElementImpl::width):
18551        (DOM::HTMLTableElementImpl::setWidth):
18552        (DOM::HTMLTableSectionElementImpl::align):
18553        (DOM::HTMLTableSectionElementImpl::setAlign):
18554        (DOM::HTMLTableSectionElementImpl::ch):
18555        (DOM::HTMLTableSectionElementImpl::setCh):
18556        (DOM::HTMLTableSectionElementImpl::chOff):
18557        (DOM::HTMLTableSectionElementImpl::setChOff):
18558        (DOM::HTMLTableSectionElementImpl::vAlign):
18559        (DOM::HTMLTableSectionElementImpl::setVAlign):
18560        (DOM::HTMLTableSectionElementImpl::rows):
18561        (DOM::HTMLTableRowElementImpl::cells):
18562        (DOM::HTMLTableRowElementImpl::setCells):
18563        (DOM::HTMLTableRowElementImpl::align):
18564        (DOM::HTMLTableRowElementImpl::setAlign):
18565        (DOM::HTMLTableRowElementImpl::bgColor):
18566        (DOM::HTMLTableRowElementImpl::setBgColor):
18567        (DOM::HTMLTableRowElementImpl::ch):
18568        (DOM::HTMLTableRowElementImpl::setCh):
18569        (DOM::HTMLTableRowElementImpl::chOff):
18570        (DOM::HTMLTableRowElementImpl::setChOff):
18571        (DOM::HTMLTableRowElementImpl::vAlign):
18572        (DOM::HTMLTableRowElementImpl::setVAlign):
18573        (DOM::HTMLTableCellElementImpl::abbr):
18574        (DOM::HTMLTableCellElementImpl::setAbbr):
18575        (DOM::HTMLTableCellElementImpl::align):
18576        (DOM::HTMLTableCellElementImpl::setAlign):
18577        (DOM::HTMLTableCellElementImpl::axis):
18578        (DOM::HTMLTableCellElementImpl::setAxis):
18579        (DOM::HTMLTableCellElementImpl::bgColor):
18580        (DOM::HTMLTableCellElementImpl::setBgColor):
18581        (DOM::HTMLTableCellElementImpl::ch):
18582        (DOM::HTMLTableCellElementImpl::setCh):
18583        (DOM::HTMLTableCellElementImpl::chOff):
18584        (DOM::HTMLTableCellElementImpl::setChOff):
18585        (DOM::HTMLTableCellElementImpl::setColSpan):
18586        (DOM::HTMLTableCellElementImpl::headers):
18587        (DOM::HTMLTableCellElementImpl::setHeaders):
18588        (DOM::HTMLTableCellElementImpl::height):
18589        (DOM::HTMLTableCellElementImpl::setHeight):
18590        (DOM::HTMLTableCellElementImpl::noWrap):
18591        (DOM::HTMLTableCellElementImpl::setNoWrap):
18592        (DOM::HTMLTableCellElementImpl::setRowSpan):
18593        (DOM::HTMLTableCellElementImpl::scope):
18594        (DOM::HTMLTableCellElementImpl::setScope):
18595        (DOM::HTMLTableCellElementImpl::vAlign):
18596        (DOM::HTMLTableCellElementImpl::setVAlign):
18597        (DOM::HTMLTableCellElementImpl::width):
18598        (DOM::HTMLTableCellElementImpl::setWidth):
18599        (DOM::HTMLTableColElementImpl::align):
18600        (DOM::HTMLTableColElementImpl::setAlign):
18601        (DOM::HTMLTableColElementImpl::ch):
18602        (DOM::HTMLTableColElementImpl::setCh):
18603        (DOM::HTMLTableColElementImpl::chOff):
18604        (DOM::HTMLTableColElementImpl::setChOff):
18605        (DOM::HTMLTableColElementImpl::setSpan):
18606        (DOM::HTMLTableColElementImpl::vAlign):
18607        (DOM::HTMLTableColElementImpl::setVAlign):
18608        (DOM::HTMLTableColElementImpl::width):
18609        (DOM::HTMLTableColElementImpl::setWidth):
18610        (DOM::HTMLTableCaptionElementImpl::parseHTMLAttribute):
18611        (DOM::HTMLTableCaptionElementImpl::align):
18612        (DOM::HTMLTableCaptionElementImpl::setAlign):
18613        * khtml/html/html_tableimpl.h:
18614        (DOM::HTMLTableColElementImpl::span):
18615        * khtml/rendering/render_applet.cpp:
18616        (RenderApplet::createWidgetIfNecessary):
18617        * khtml/rendering/render_frames.cpp:
18618        (RenderFrame::slotViewCleared):
18619        (RenderPartObject::updateWidget):
18620        (RenderPartObject::slotViewCleared):
18621        * khtml/xml/dom_docimpl.cpp:
18622        (DocumentImpl::completeURL):
18623        * khtml/xml/dom_docimpl.h:
18624
186252005-05-09  Maciej Stachowiak  <mjs@apple.com>
18626
18627        Reviewed by Kevin.
18628
18629	- remove more isFirst/isLast functions and use isStart/isEnd verions instead
18630
18631        * khtml/editing/htmlediting.cpp:
18632        (khtml::DeleteSelectionCommand::initializePositionData):
18633        (khtml::InsertParagraphSeparatorCommand::calculateStyleBeforeInsertion):
18634        (khtml::InsertTextCommand::input):
18635        (khtml::ReplaceSelectionCommand::doApply):
18636        (khtml::ReplaceSelectionCommand::removeLinePlaceholderIfNeeded):
18637        * khtml/editing/visible_position.cpp:
18638        (khtml::VisiblePosition::previous):
18639        (khtml::setAffinityUsingLinePosition):
18640        (khtml::isFirstVisiblePositionInNode):
18641        * khtml/editing/visible_position.h:
18642        * khtml/editing/visible_units.cpp:
18643        (khtml::endOfLine):
18644        (khtml::previousLinePosition):
18645        * khtml/xml/dom_position.cpp:
18646        (DOM::Position::previousCharacterPosition):
18647        (DOM::Position::nextCharacterPosition):
18648        * kwq/WebCoreBridge.mm:
18649        (-[WebCoreBridge smartInsertForString:replacingRange:beforeString:afterString:]):
18650
186512005-05-09  Maciej Stachowiak  <mjs@apple.com>
18652
18653        Reviewed by Kevin.
18654
18655	- remove isFirstVisiblePositionInBlock and isLastVisiblePositionInBlock, in favor of isStartOfBlock and isEndOfBlock
18656
18657	It turned out that both isEndOfBlock and isLastVisiblePositionInBlock had (different) bugs,
18658	and there was code relying on the bugs of each. So in addition I fixed isEndOfBlock and fixed 
18659	the parts of the code relying on buggy behavior.
18660
18661	I also removed the includeEndOfLine parameter to endOfBlock since no one used it and it's not
18662	clear if it would ever be useful.
18663	
18664        * khtml/editing/htmlediting.cpp:
18665        (khtml::InsertLineBreakCommand::doApply): Use new calls.
18666        (khtml::InsertParagraphSeparatorCommand::calculateStyleBeforeInsertion): Don't gratuitously make
18667	an UPSTREAM VisiblePosition, as this will cause trouble comparing it to end of block.
18668        (khtml::InsertParagraphSeparatorCommand::doApply): Use new calls.
18669        (khtml::ReplaceSelectionCommand::doApply): Use new calls. Also, don't make a position <BR,0> and test
18670	if it is the end of a block, that can never be true, although the buggy code in 
18671	isLastVisiblePositionInBlock would say it is. Make <BR,1> instead.
18672        * khtml/editing/markup.cpp:
18673        (khtml::createMarkup): Instead of checking isEndOfBlock on the start position, check if the start's
18674	next is in a different block, to avoid relying on the buggy old isEndOfBlock behavior.
18675        * khtml/editing/visible_position.cpp:
18676        (khtml::isFirstVisiblePositionInParagraph): Use isStartOfBlock.
18677        (khtml::isLastVisiblePositionInParagraph): Use isEndOfBlock.
18678        * khtml/editing/visible_position.h:
18679        * khtml/editing/visible_units.cpp:
18680        (khtml::endOfBlock): Greatly simplify, and no longer consider the start of a descendant
18681	block to be the end of the block. That's inconsistent with how startOfBlock works. Also
18682	remove include end of line parameter.
18683        (khtml::isEndOfBlock): Don't pass unneeded parameter.
18684        * khtml/editing/visible_units.h:
18685
186862005-05-09  Adele Peterson  <adele@apple.com>
18687
18688        fix for <rdar://problem/4110775> Crash will occur when double-clicking outerHTML link on W3 DOM test
18689
18690        Reviewed by Darin.
18691
18692        * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::setOuterHTML): added nil check.  
18693        This was causing a crash when you tried to set the outerHTML on an element that was no longer in the DOM tree.
18694
18695        * layout-tests/fast/dom/outerText-no-element.html: Added. Tests case where you try to set outerText on an element no longer in the DOM tree.
18696        * layout-tests/fast/dom/outerText-no-element-expected.txt: Added.
18697        * layout-tests/fast/dynamic/outerHTML-doc.html: Added.  Tests case where someone tries to set outerHTML on the document.
18698        * layout-tests/fast/dynamic/outerHTML-doc-expected.txt: Added..
18699        * layout-tests/fast/dynamic/outerHTML-no-element.html: Added. Tests case where you try to set outerHTML on an element no longer in the DOM tree.
18700        * layout-tests/fast/dynamic/outerHTML-no-element-expected.txt: Added.
18701        * layout-tests/fast/dynamic/outerHTML-img.html: moved images to resources directory
18702        * layout-tests/fast/dynamic/resources/apple.gif: Added.
18703        * layout-tests/fast/dynamic/resources/mozilla.gif: Added.
18704
187052005-05-09  Maciej Stachowiak  <mjs@apple.com>
18706
18707        Reviewed by Kevin.
18708
18709	- remove code for DoNotStayInBlock variant of upstream/downstream and make
18710	the methods take no parameters
18711
18712        * khtml/editing/htmlediting.cpp:
18713        (khtml::CompositeEditCommand::deleteInsignificantTextDownstream):
18714        (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
18715        (khtml::ApplyStyleCommand::applyRelativeFontStyleChange):
18716        (khtml::ApplyStyleCommand::applyInlineStyle):
18717        (khtml::ApplyStyleCommand::removeInlineStyle):
18718        (khtml::ApplyStyleCommand::nodeFullySelected):
18719        (khtml::ApplyStyleCommand::nodeFullyUnselected):
18720        (khtml::DeleteSelectionCommand::initializePositionData):
18721        (khtml::DeleteSelectionCommand::fixupWhitespace):
18722        (khtml::InsertLineBreakCommand::insertNodeAfterPosition):
18723        (khtml::InsertLineBreakCommand::insertNodeBeforePosition):
18724        (khtml::InsertLineBreakCommand::doApply):
18725        (khtml::InsertParagraphSeparatorCommand::doApply):
18726        (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
18727        (khtml::InsertTextCommand::prepareForTextInsertion):
18728        (khtml::InsertTextCommand::input):
18729        (khtml::InsertTextCommand::insertSpace):
18730        (khtml::ReplaceSelectionCommand::doApply):
18731        * khtml/editing/selection.cpp:
18732        (khtml::Selection::toRange):
18733        (khtml::Selection::validate):
18734        * khtml/editing/visible_position.cpp:
18735        (khtml::VisiblePosition::previousVisiblePosition):
18736        (khtml::VisiblePosition::nextVisiblePosition):
18737        (khtml::VisiblePosition::downstreamDeepEquivalent):
18738        (khtml::isFirstVisiblePositionInParagraph):
18739        (khtml::isFirstVisiblePositionInBlock):
18740        (khtml::isLastVisiblePositionInParagraph):
18741        * khtml/xml/dom2_rangeimpl.cpp:
18742        (DOM::RangeImpl::editingStartPosition):
18743        * khtml/xml/dom_position.cpp:
18744        (DOM::isStreamer):
18745        (DOM::Position::upstream):
18746        (DOM::Position::downstream):
18747        (DOM::Position::leadingWhitespacePosition):
18748        (DOM::Position::trailingWhitespacePosition):
18749        * khtml/xml/dom_position.h:
18750        * kwq/WebCoreBridge.mm:
18751        (-[WebCoreBridge smartDeleteRangeForProposedRange:]):
18752
187532005-05-08  Maciej Stachowiak  <mjs@apple.com>
18754
18755        Reviewed by Dave Harrison.
18756
18757	- remove remaining uses of upstream/downstream DoNotStayInBlock
18758	
18759        * khtml/editing/htmlediting.cpp:
18760        (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
18761        (khtml::ApplyStyleCommand::nodeFullySelected):
18762        (khtml::ApplyStyleCommand::nodeFullyUnselected):
18763        (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent):
18764        (khtml::InsertParagraphSeparatorCommand::doApply):
18765        (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
18766        (khtml::InsertTextCommand::insertSpace):
18767        (khtml::ReplaceSelectionCommand::doApply):
18768	
18769        * khtml/editing/visible_position.cpp:
18770        (khtml::enclosingBlockFlowElement): New helper function.
18771	* khtml/editing/visible_position.h:
18772
18773        * khtml/editing/visible_units.cpp:
18774        (khtml::inSameBlock): Check enclosing block flows instead of comparing
18775	visible block starts. Two nested blocks may have the same visible start but
18776	different visible ends, so the old check would give false positives.
18777
187782005-05-09  David Harrison  <harrison@apple.com>
18779
18780        Add layout test for <rdar://problem/4110366>.
18781
18782        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-011-expected.txt: Added.
18783        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-011.html: Added.
18784
187852005-05-09  Darin Adler  <darin@apple.com>
18786
18787        - checked in a result for the Flash replacement test that Dave added
18788
18789        * layout-tests/fast/dynamic/flash-replacement-test-expected.txt: Added.
18790        Hope it's right! If not, Dave can update it.
18791
187922005-05-09  Darin Adler  <darin@apple.com>
18793
18794        * Makefile.am: Don't set up PBXIntermediatesDirectory explicitly;
18795        Not needed to make builds work, spews undesirable error messages too.
18796
18797        * WebCore.pbproj/project.pbxproj: Remove unneeded $(DSTROOT) in framework paths.
18798
187992005-05-07  Maciej Stachowiak  <mjs@apple.com>
18800
18801        Reviewed by Kevin.
18802
18803	- remove some of the uses of upstream/downstream DoNotStayInBlock
18804	
18805        * khtml/editing/markup.cpp:
18806	(khtml::createMarkup): Instead of using upstream to decide if a	line break should be 
18807	added at the end, use inSameParagraph.
18808        * khtml/editing/selection.cpp:
18809        (khtml::Selection::debugPosition): Remove the code to print upstream and downstream,
18810	the selection endpoints themselves are adequate for debugging and are what we use for
18811	layout tests.
18812        * khtml/xml/dom2_rangeimpl.cpp:
18813        (DOM::RangeImpl::editingStartPosition): Skip a possible paragraph break at the start
18814	of the selection in a more explicit way to avoid DoNotStayInBlock.
18815
188162005-05-07  David Harrison  <harrison@apple.com>
18817
18818        Reviewed by John.
18819
18820        <rdar://problem/4110366> Deleting text at the end of email moves insertion point to the top of the document
18821        
18822        * khtml/editing/htmlediting.cpp:
18823        (khtml::DeleteSelectionCommand::handleGeneralDelete):
18824        Update m_upstreamStart when deleting m_downstreamEnd.node() if the former is no longer in the document.
18825        Better to update here than trying to recover later in calculateEndingPosition().
18826
188272005-05-07  David Harrison  <harrison@apple.com>
18828        
18829        Remove workaround for <rdar://problem/4103339>.
18830        
18831        * khtml/editing/htmlediting.cpp:
18832        (khtml::DeleteSelectionCommand::initializePositionData):
18833
188342005-05-06  Maciej Stachowiak  <mjs@apple.com>
18835
18836        Reviewed by Dave Harrison.
18837
18838	- make StayInBlock vs DoNotStayInBlock explicit in all calls to
18839	upstream/downstream, in preparation for phasing out the
18840	DoNotStayInBlock variant.
18841
18842        * khtml/editing/htmlediting.cpp:
18843        (khtml::ApplyStyleCommand::nodeFullySelected):
18844        (khtml::ApplyStyleCommand::nodeFullyUnselected):
18845        (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent):
18846        (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
18847        (khtml::InsertTextCommand::insertSpace):
18848        (khtml::ReplaceSelectionCommand::doApply):
18849        * khtml/editing/markup.cpp:
18850        (khtml::createMarkup):
18851        * khtml/editing/selection.cpp:
18852        (khtml::Selection::debugPosition):
18853        * khtml/xml/dom_position.h:
18854
188552005-05-06  David Harrison  <harrison@apple.com>
18856
18857        Reviewed by Maciej, Darin.
18858
18859        <rdar://problem/4103339> VisiblePosition and PositionIterator iterators do not return positions in order
18860
18861        * WebCore.pbproj/project.pbxproj:
18862        Removed dom_positioniterator.h and dom_positioniterator.cpp.
18863        
18864        * khtml/editing/htmlediting.cpp:
18865        Removed unused include of dom_positioniterator.h and "using" of PositionIterator.
18866        
18867        * khtml/editing/selection.cpp:
18868        Removed unused include of dom_positioniterator.h.
18869
18870        * khtml/editing/visible_position.h:
18871        * khtml/editing/visible_position.cpp:
18872        (khtml::VisiblePosition::previousVisiblePosition):
18873        (khtml::VisiblePosition::nextVisiblePosition):
18874        (khtml::VisiblePosition::downstreamDeepEquivalent):
18875        Use Position::next(), Position::previous(), Position::atStart(), Position::atEnd() instead of duplicated code.
18876        
18877        * khtml/xml/dom_nodeimpl.h:
18878        * khtml/xml/dom_nodeimpl.cpp:
18879        (NodeImpl::maxDeepOffset):
18880        Added to support Position::next(), Position::previous(), Position::atStart(), Position::atEnd()
18881        
18882        * khtml/xml/dom_position.h:
18883        * khtml/xml/dom_position.cpp:
18884        (DOM::Position::previous):
18885        (DOM::Position::next):
18886        (DOM::Position::atStart):
18887        (DOM::Position::atEnd):
18888        Moved here, replacing VisiblePosition's duplicate and PositionIterator.  Fixed to
18889        return positions in order and not skip positions.
18890        
18891        (DOM::Position::previousCharacterPosition):
18892        (DOM::Position::nextCharacterPosition):
18893        Use Position::next(), Position::previous(), Position::atStart(), Position::atEnd() instead of PositionIterator.
18894
18895        (DOM::isStreamer):
18896        (DOM::Position::upstream):
18897        (DOM::Position::downstream):
18898        Use Position::next(), Position::previous(), Position::atStart(), Position::atEnd() instead of PositionIterator.
18899
18900        * khtml/xml/dom_positioniterator.cpp: Removed.
18901        * khtml/xml/dom_positioniterator.h: Removed.
18902        Removed in favor of Position::next(), Position::previous(), Position::atStart(), Position::atEnd()
18903
189042005-05-05  Maciej Stachowiak  <mjs@apple.com>
18905
18906        Reviewed by Darin.
18907
18908	<rdar://problem/4058167> Unit Converter and Weather widgets crashed in KJS::Collector::markCurrentThreadConservatively
18909        
18910	Avoid possibly allocating new prototype objects as parameters to
18911	superclass constructors - there may be an allocated but
18912	uninitilized object so this is a bad time to allocate. Instead,
18913	set the prototype in the constructor body, since the object is
18914	happily allocated by then.
18915
18916	* khtml/ecma/kjs_binding.h:
18917        * khtml/ecma/kjs_css.cpp:
18918        (DOMCSSStyleDeclaration::DOMCSSStyleDeclaration):
18919        (DOMMediaList::DOMMediaList):
18920        (DOMCSSStyleSheet::DOMCSSStyleSheet):
18921        (DOMCSSPrimitiveValue::DOMCSSPrimitiveValue):
18922        (DOMCSSValueList::DOMCSSValueList):
18923        * khtml/ecma/kjs_css.h:
18924        (KJS::DOMStyleSheet::DOMStyleSheet):
18925        (KJS::DOMCSSValue::DOMCSSValue):
18926        * khtml/ecma/kjs_dom.cpp:
18927        (DOMNode::DOMNode):
18928        (DOMDocument::DOMDocument):
18929        (DOMElement::DOMElement):
18930        (DOMDOMImplementation::DOMDOMImplementation):
18931        (DOMNamedNodeMap::DOMNamedNodeMap):
18932        (DOMNamedNodesCollection::DOMNamedNodesCollection):
18933        (DOMCharacterData::DOMCharacterData):
18934        (DOMText::DOMText):
18935        * khtml/ecma/kjs_dom.h:
18936        (KJS::NodeConstructor::NodeConstructor):
18937        (KJS::DOMExceptionConstructor::DOMExceptionConstructor):
18938        * khtml/ecma/kjs_events.cpp:
18939        (DOMEvent::DOMEvent):
18940        (Clipboard::Clipboard):
18941        * khtml/ecma/kjs_html.cpp:
18942        (HTMLCollection::HTMLCollection):
18943        * khtml/ecma/kjs_range.cpp:
18944        (DOMRange::DOMRange):
18945        * khtml/ecma/kjs_traversal.cpp:
18946        (DOMNodeIterator::DOMNodeIterator):
18947        (DOMNodeFilter::DOMNodeFilter):
18948        (DOMTreeWalker::DOMTreeWalker):
18949        * khtml/ecma/xmlhttprequest.cpp:
18950        (KJS::XMLHttpRequest::XMLHttpRequest):
18951        * khtml/ecma/xmlserializer.cpp:
18952        (KJS::XMLSerializer::XMLSerializer):
18953
189542005-05-06  Darin Adler  <darin@apple.com>
18955
18956        Reviewed by Maciej.
18957
18958        - make building multiple trees with make work better
18959
18960        * Makefile.am: Set up Xcode build directory before invoking xcodebuild.
18961
189622005-05-05  David Hyatt  <hyatt@apple.com>
18963
18964	Eliminate the FOUCS on wired.com.  innerWidth and innerHeight on window should not do a layout that ignores
18965	pending stylesheets, since even if stylesheets are loading the correct window dimensions can be determined with
18966	a normal layout.
18967
18968	The radar # is 4109888.
18969	
18970        Reviewed by rjw
18971
18972        * khtml/ecma/kjs_window.cpp:
18973        (Window::get):
18974        (Window::updateLayout):
18975        * khtml/ecma/kjs_window.h:
18976
189772005-05-05  David Hyatt  <hyatt@apple.com>
18978
18979	Fix for 4109667, sIFR flash replacement technique often malfunctions.  This bug occurs when the plugin
18980	widget update causes the onload for the document to fire.  Because you can be in the middle of a style
18981	recalc when doing an attach (in response to a stylesheet load), the onload fires in the middle of the attach
18982	process when the tree is in a bogus state.
18983
18984	The fix is to add a bit to the document that tells style recalc that the implicitClose() method was invoked
18985	during the style recalc process and the code has been patched so that when this situation occurs, the close is
18986	deferred until after the style recalc has finished.
18987	
18988        Reviewed by John Sullivan
18989
18990        * khtml/xml/dom_docimpl.cpp:
18991        (DocumentImpl::DocumentImpl):
18992        (DocumentImpl::recalcStyle):
18993        (DocumentImpl::implicitClose):
18994        * khtml/xml/dom_docimpl.h:
18995        * layout-tests/fast/dynamic/flash-replacement-test.html: Added.
18996
189972005-05-05  Darin Adler  <darin@apple.com>
18998
18999        Reviewed by Dave Hyatt.
19000
19001        - fixed <rdar://problem/4109564> REGRESSION (Atlanta): maps.google.com doesn't always center California correctly
19002
19003        * khtml/ecma/kjs_events.cpp: (offsetFromTarget): Fix two places that said X where they should say Y.
19004
190052005-05-05  David Harrison  <harrison@apple.com>
19006
19007        Restore fixed setEndingSelection.  Fixed method was ifdef'd out
19008        because change was at end of Tiger development, but method is
19009        unused.  You just can never be _too_ safe.
19010        
19011        * khtml/editing/htmlediting.cpp:
19012        (khtml::EditCommandPtr::setEndingSelection):
19013
190142005-05-02  Maciej Stachowiak  <mjs@apple.com>
19015
19016        Reviewed by Vicki.
19017
19018	- renamed NodeBaseImpl to ContainerNodeImpl
19019
19020        * khtml/ecma/kjs_dom.cpp:
19021	(DOMNodeProtoFunc::tryCall): Avoid use of NodeBaseImpl and avoid
19022	use of obsolete checkNoOwner call, use isAncestor instead.
19023        * khtml/html/html_elementimpl.cpp:
19024        (HTMLElementImpl::setOuterText): Avoid gratuitous use of
19025	NodeBaseImpl.
19026	* khtml/xml/dom_nodeimpl.cpp:
19027        (NodeBaseImpl::checkNoOwner): Removed.
19028	
19029	Ther rest is all just simple renaming.
19030        
19031	* khtml/xml/dom_docimpl.cpp:
19032        (DocumentImpl::DocumentImpl):
19033        (DocumentImpl::attach):
19034        (DocumentImpl::detach):
19035        (DocumentFragmentImpl::DocumentFragmentImpl):
19036        * khtml/xml/dom_docimpl.h:
19037        * khtml/xml/dom_elementimpl.cpp:
19038        (AttrImpl::AttrImpl):
19039        (ElementImpl::ElementImpl):
19040        (ElementImpl::insertedIntoDocument):
19041        (ElementImpl::removedFromDocument):
19042        (ElementImpl::attach):
19043        (ElementImpl::dump):
19044        * khtml/xml/dom_elementimpl.h:
19045        * khtml/xml/dom_nodeimpl.cpp:
19046        (ContainerNodeImpl::ContainerNodeImpl):
19047        (ContainerNodeImpl::~ContainerNodeImpl):
19048        (ContainerNodeImpl::firstChild):
19049        (ContainerNodeImpl::lastChild):
19050        (ContainerNodeImpl::insertBefore):
19051        (ContainerNodeImpl::replaceChild):
19052        (ContainerNodeImpl::removeChild):
19053        (ContainerNodeImpl::removeChildren):
19054        (ContainerNodeImpl::appendChild):
19055        (ContainerNodeImpl::hasChildNodes):
19056        (ContainerNodeImpl::setFirstChild):
19057        (ContainerNodeImpl::setLastChild):
19058        (ContainerNodeImpl::checkSameDocument):
19059        (ContainerNodeImpl::checkIsChild):
19060        (ContainerNodeImpl::addChild):
19061        (ContainerNodeImpl::attach):
19062        (ContainerNodeImpl::detach):
19063        (ContainerNodeImpl::insertedIntoDocument):
19064        (ContainerNodeImpl::removedFromDocument):
19065        (ContainerNodeImpl::cloneChildNodes):
19066        (ContainerNodeImpl::getElementsByTagNameNS):
19067        (ContainerNodeImpl::getUpperLeftCorner):
19068        (ContainerNodeImpl::getLowerRightCorner):
19069        (ContainerNodeImpl::getRect):
19070        (ContainerNodeImpl::setFocus):
19071        (ContainerNodeImpl::setActive):
19072        (ContainerNodeImpl::childNodeCount):
19073        (ContainerNodeImpl::childNode):
19074        (ContainerNodeImpl::dispatchChildInsertedEvents):
19075        (ContainerNodeImpl::dispatchChildRemovalEvents):
19076        * khtml/xml/dom_nodeimpl.h:
19077        * khtml/xml/dom_xmlimpl.cpp:
19078        (DOM::EntityImpl::EntityImpl):
19079        (DOM::EntityReferenceImpl::EntityReferenceImpl):
19080        (DOM::NotationImpl::NotationImpl):
19081        (DOM::ProcessingInstructionImpl::ProcessingInstructionImpl):
19082        * khtml/xml/dom_xmlimpl.h:
19083
190842005-05-04  Vicki Murley  <vicki@apple.com>
19085
19086        Reviewed by Darin.
19087
19088	- fix mismatched parentheses in one of the ifdefs
19089 
19090        * khtml/html/html_headimpl.cpp:
19091        (HTMLTitleElementImpl::childrenChanged):
19092
190932005-05-04  Darin Adler  <darin@apple.com>
19094
19095        Reviewed by Dave Hyatt.
19096
19097        - fixed build rules to match other projects
19098
19099        * WebCore.pbproj/project.pbxproj: Set deployment target to 10.3 in the build styles.
19100        When built without a build style (by Apple B&I) we want to get the target from the
19101        environment. But when built with a build style (by Safari engineers and others), we want
19102        to use 10.3.
19103
19104        * Makefile.am: Took out extra parameters that make command-line building different from
19105        Xcode building. Now that this is fixed, you should not get a full rebuild if you switch
19106        from command line to Xcode or back.
19107
191082005-05-04  Vicki Murley  <vicki@apple.com>
19109
19110        Reviewed by darin.
19111
19112	- fixed <rdar://problem/3986228> Not able to load additional script blocks dynamically
19113
19114	Run scripts when they're inserted into the document. Use createdByParser bit to make sure
19115	that scripts aren't run twice, once while parsing and again when inserting.
19116
19117        * khtml/html/html_headimpl.cpp:
19118        (HTMLScriptElementImpl::HTMLScriptElementImpl):
19119        (HTMLScriptElementImpl::~HTMLScriptElementImpl):
19120        (HTMLScriptElementImpl::insertedIntoDocument): 
19121        (HTMLScriptElementImpl::removedFromDocument): 
19122        (HTMLScriptElementImpl::notifyFinished): 
19123        * khtml/html/html_headimpl.h:
19124        (DOM::HTMLScriptElementImpl::setCreatedByParser):
19125        * khtml/html/htmlparser.cpp:
19126        (KHTMLParser::getElement): 
19127        * khtml/xml/xml_tokenizer.cpp:
19128        (khtml::XMLTokenizer::startElement): 
19129
191302005-05-03  David Hyatt  <hyatt@apple.com>
19131
19132	Normalize all our custom properties in our implementation to be -khtml (remove all the -apple).
19133
19134	Make sure that -apple, -khtml, and -moz are all able to be used.  -apple and -moz just map to -khtml.
19135
19136	Add support for automatically converting -khtml-opacity to opacity (for legacy Safari 1.1 compat).
19137	
19138        Reviewed by darin
19139
19140        * khtml/css/css_computedstyle.cpp:
19141        (DOM::):
19142        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
19143        * khtml/css/cssparser.cpp:
19144        (CSSParser::parseValue):
19145        * khtml/css/cssproperties.in:
19146        * khtml/css/cssstyleselector.cpp:
19147        (khtml::CSSStyleSelector::applyDeclarations):
19148        (khtml::CSSStyleSelector::applyProperty):
19149        * khtml/css/parser.y:
19150        * khtml/ecma/kjs_css.cpp:
19151        (cssPropertyName):
19152
191532005-05-03  Darin Adler  <darin@apple.com>
19154
19155        - fix the build
19156
19157        * WebCore.pbproj/project.pbxproj: Fix some SYMROOTS that should have been SYMROOT.
19158
191592005-05-03  David Hyatt  <hyatt@apple.com>
19160
19161	Fix for 4098281, news.com missing a bunch of content.  Make sure not to apply strict SGML parsing
19162	when stripping comments out of scripts.
19163
19164	New test is comments-in-script.html
19165	
19166        * khtml/html/htmltokenizer.cpp:
19167        (khtml::HTMLTokenizer::parseComment):
19168
191692005-05-03  David Hyatt  <hyatt@apple.com>
19170
19171	Remove unused notification to avoid ERROR messages spewing on the acid2 test.
19172	
19173        Reviewed by darin
19174
19175        * khtml/khtml_part.cpp:
19176        (KHTMLPart::processObjectRequest):
19177        * khtml/rendering/render_frames.cpp:
19178        (RenderPartObject::updateWidget):
19179        * khtml/rendering/render_frames.h:
19180
191812005-05-03  Darin Adler  <darin@apple.com>
19182
19183        Reviewed by Dave Hyatt.
19184        No new layout tests needed.
19185
19186        - eliminated the bogus kMin/kMax macros that we had in addition to inline functions
19187          of the same name
19188
19189        * kwq/KWQKGlobal.h: Remove the kMin/kMax macros.
19190
19191        * khtml/css/cssstyleselector.cpp:
19192        (khtml::CSSStyleSelector::applyProperty): Change type of constant so both sides
19193        of kMin calls match.
19194        (khtml::CSSStyleSelector::fontSizeForKeyword): Ditto.
19195        * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseEntity): Ditto.
19196
19197        - remove unused parameter to dirtyLinesFromChangedChild for clarity
19198
19199        * khtml/rendering/render_object.h: Don't take the parameter.
19200        * khtml/rendering/render_object.cpp: (RenderObject::dirtyLinesFromChangedChild): Ditto.
19201
19202        * khtml/rendering/render_flow.h: Don't take the parameter.
19203        * khtml/rendering/render_flow.cpp:
19204        (RenderFlow::detach): Don't pass the parameter.
19205        (RenderFlow::dirtyLinesFromChangedChild): Don't take the parameter.
19206
19207        * khtml/rendering/render_text.cpp: (RenderText::detach): Don't pass the parameter.
19208
19209        - convert DOM::NodeImpl into an abstract base class by making a couple of functions
19210          pure virtual for clarity
19211
19212        * khtml/xml/dom_nodeimpl.h: Made nodeName and nodeType pure virtual.
19213        * khtml/xml/dom_nodeimpl.cpp: Remove bodies of nodeName and nodeType.
19214
192152005-05-03  David Hyatt  <hyatt@apple.com>
19216
19217	Fix for object element to support fallback content.  WIth this change Safari passes the Acid2 test.
19218	
19219        Reviewed by Maciej
19220
19221        * khtml/css/html4.css:
19222        * khtml/html/html_objectimpl.cpp:
19223        (HTMLObjectElementImpl::HTMLObjectElementImpl):
19224        (HTMLObjectElementImpl::parseHTMLAttribute):
19225        (HTMLObjectElementImpl::rendererIsNeeded):
19226        (HTMLObjectElementImpl::createRenderer):
19227        (HTMLObjectElementImpl::attach):
19228        (HTMLObjectElementImpl::detach):
19229        (HTMLObjectElementImpl::recalcStyle):
19230        (HTMLObjectElementImpl::childrenChanged):
19231        (HTMLObjectElementImpl::isURLAttribute):
19232        (HTMLObjectElementImpl::isImageType):
19233        (HTMLObjectElementImpl::renderFallbackContent):
19234        * khtml/html/html_objectimpl.h:
19235        * khtml/khtml_part.cpp:
19236        (KHTMLPart::requestObject):
19237        (KHTMLPart::selectFrameElementInParentIfFullySelected):
19238        (KHTMLPart::handleFallbackContent):
19239        * khtml/khtml_part.h:
19240        * khtml/khtmlpart_p.h:
19241        (khtml::ChildFrame::ChildFrame):
19242        * khtml/rendering/render_frames.cpp:
19243        (RenderPartObject::RenderPartObject):
19244        (RenderPartObject::updateWidget):
19245        * khtml/rendering/render_frames.h:
19246        (khtml::RenderPart::hasFallbackContent):
19247        * khtml/rendering/render_replaced.cpp:
19248        (RenderReplaced::RenderReplaced):
19249        * kwq/KWQKHTMLPart.mm:
19250        (KWQKHTMLPart::createPart):
19251        * kwq/WebCoreBridge.h:
19252        * kwq/WebCoreBridge.mm:
19253        (-[WebCoreBridge mainResourceError]):
19254
192552005-05-01  Darin Adler  <darin@apple.com>
19256
19257        - move to Xcode native targets and stop checking in generated files
19258
19259        * WebCore.pbproj/project.pbxproj: Updated to use native targets and generate all the generated
19260        files, so we don't have to check them in any more.
19261        * Info.plist: Added. Native targets use a separate file for this.
19262
19263        * Makefile.am: Removed rule to generate WebCore-combined.exp since this is now handled by the
19264        Xcode project. Removed the code to remove the embedded copy of the framework since we don't
19265        do that any more. Removed timestamp cleaning rules since we don't use those any more.
19266
19267        * WebCore-tests.exp: Removed symbols that aren't really needed. The native target gives an
19268        error when you mention a nonexistent symbol, so we can't have them any more.
19269
19270        * khtml/css/parser_wrapper.cpp: Added. Shell used to compile parser.cpp since we can't add
19271        a generated file easily to the list of files to be compiled.
19272
19273        * .cvsignore: Removed various timestamp files.
19274
19275        * WebCore-combined.exp: Removed.
19276        * force-clean-timestamp: Removed.
19277        * force-js-clean-timestamp: Removed.
19278        * khtml/.cvsignore: Removed.
19279        * khtml/Makefile.am: Removed.
19280        * khtml/css/.cvsignore: Removed.
19281        * khtml/css/Makefile.am: Removed.
19282        * khtml/css/cssproperties.c: Removed.
19283        * khtml/css/cssproperties.h: Removed.
19284        * khtml/css/cssvalues.c: Removed.
19285        * khtml/css/cssvalues.h: Removed.
19286        * khtml/css/parser.cpp: Removed.
19287        * khtml/css/parser.h: Removed.
19288        * khtml/css/tokenizer.cpp: Removed.
19289        * khtml/ecma/.cvsignore: Removed.
19290        * khtml/ecma/Makefile.am: Removed.
19291        * khtml/ecma/kjs_css.lut.h: Removed.
19292        * khtml/ecma/kjs_dom.lut.h: Removed.
19293        * khtml/ecma/kjs_events.lut.h: Removed.
19294        * khtml/ecma/kjs_html.lut.h: Removed.
19295        * khtml/ecma/kjs_navigator.lut.h: Removed.
19296        * khtml/ecma/kjs_range.lut.h: Removed.
19297        * khtml/ecma/kjs_traversal.lut.h: Removed.
19298        * khtml/ecma/kjs_views.lut.h: Removed.
19299        * khtml/ecma/kjs_window.lut.h: Removed.
19300        * khtml/ecma/xmlhttprequest.lut.h: Removed.
19301        * khtml/ecma/xmlserializer.lut.h: Removed.
19302        * khtml/html/.cvsignore: Removed.
19303        * khtml/html/Makefile.am: Removed.
19304        * khtml/html/doctypes.cpp: Removed.
19305        * khtml/html/kentities.c: Removed.
19306        * khtml/misc/.cvsignore: Removed.
19307        * khtml/misc/Makefile.am: Removed.
19308        * khtml/misc/htmlattrs.c: Removed.
19309        * khtml/misc/htmlattrs.h: Removed.
19310        * khtml/misc/htmltags.c: Removed.
19311        * khtml/misc/htmltags.h: Removed.
19312        * kwq/.cvsignore: Removed.
19313        * kwq/KWQCharsetData.c: Removed.
19314        * kwq/KWQColorData.c: Removed.
19315        * kwq/Makefile.am: Removed.
19316
193172005-05-02  Darin Adler  <darin@apple.com>
19318
19319        Reviewed by Vicki.
19320        Added two layout tests for regression testing.
19321
19322        - redid frameElement (fix for 4091082 below)
19323
19324        The first version lacked a security check, and was also broken.
19325
19326        * khtml/ecma/kjs_window.cpp:
19327        (frameElement): Refactored into separate function; added isSafeScript check.
19328        (Window::get): Call the new frameElement function.
19329
19330        * layout-tests/fast/frames/frameElement-frame.html: Added.
19331        * layout-tests/fast/frames/frameElement-frame-expected.txt: Added.
19332        * layout-tests/fast/frames/frameElement-iframe.html: Added.
19333        * layout-tests/fast/frames/frameElement-iframe-expected.txt: Added.
19334        * layout-tests/fast/frames/resources/frameElement-contents.html: Added.
19335
193362005-05-02  David Harrison  <harrison@apple.com>
19337
19338        Reviewed by Vicki.
19339
19340        Fix isStartOfEditableContent and isEndOfEditableContent to return actual, rather than inverted, answers.
19341        No Radar.  Found this when trying to use isEndOfEditableContent() in some new code.
19342        
19343        * khtml/editing/visible_units.cpp:
19344        (khtml::isStartOfEditableContent):
19345        (khtml::isEndOfEditableContent):
19346        Flip expressions.
19347
193482005-04-29  Darin Adler  <darin@apple.com>
19349
19350        Reviewed by David Harrison.
19351
19352        * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::displayNode): Turn newlines into \n for better dumping.
19353
193542005-04-29  David Harrison  <harrison@apple.com>
19355
19356        Reviewed by Darin.
19357
19358        <rdar://problem/4083333> When deleting link at end of sentence, entire sentence gets deleted
19359        
19360        * khtml/editing/htmlediting.cpp:
19361        (khtml::DeleteSelectionCommand::initializePositionData):
19362        Work around bug #4103339 (whose real fix is somewhat risky), so this fix can get into a software update.
19363        
19364        (khtml::DeleteSelectionCommand::handleGeneralDelete):
19365        Add isAncestor check when comparing m_downstreamEnd.node() and m_startNode.
19366
19367        * layout-tests/editing/deleting/delete-4083333-fix-expected.txt: Added.
19368        * layout-tests/editing/deleting/delete-4083333-fix.html: Added.
19369
193702005-04-29  Darin Adler  <darin@apple.com>
19371
19372        Reviewed by Dave Harrison.
19373
19374        - changed layout tests to dump more minimal information about caret and selection
19375
19376        * kwq/KWQRenderTreeDebug.cpp:
19377        (nodePosition): Changed name; now does position relative to document.
19378        (writeSelection): Removed upstream/downstream code and changed format slightly.
19379
19380        * layout-tests/editing/*-expected.txt: Regenerated in new format.
19381
193822005-04-29  Darin Adler  <darin@apple.com>
19383
19384        Reviewed by Chris Blumenberg.
19385        Added two layout tests for regression testing.
19386
19387        - fixed <rdar://problem/4097849> REGRESSION (162-163): importNode creates non-HTML elements, thus style attributes (and some others) don't work
19388
19389        * khtml/xml/dom_docimpl.cpp:
19390        (DocumentImpl::importNode): Reorganized and partly rewrote this. The change that fixes the bug at
19391        hand is to explicitly use XHTML_NAMESPACE for HTML elements, since the old way of getting the namespace
19392        will return the null string for HTML elements, and createElementNS will not create an HTML element
19393        if passed a null string for the namespace.
19394        (DocumentImpl::processHttpEquiv): Removed some bogus getDocument() calls -- no need to call getDocument()
19395        in a document object.
19396        (DocumentImpl::attrName): Ditto.
19397        (DocumentImpl::tagName): Ditto.
19398        (DocumentImpl::setFocusNode): Ditto.
19399
19400        * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::cloneNode): Moved the actual cloning here
19401        from ElementImpl::cloneNode, because XMLElementImpl already had its own version, and in here
19402        we can use createHTMLElement, which will work properly even in an XML document, and is also slightly
19403        more efficient.
19404
19405        * khtml/xml/dom_nodeimpl.h: Added a namespaceURI method function to go along with localName.
19406        * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::namespaceURI): Added. Returns null string to be consistent
19407        with localName (only works on certain types of elements as documented).
19408        * khtml/xml/dom_elementimpl.h: Removed ElementImpl::cloneNode (see above). Added an override of
19409        namespaceURI for XMLElementImpl.
19410        * khtml/xml/dom_elementimpl.cpp: (XMLElementImpl::namespaceURI): Added. Returns the namespace
19411        (consistent with localName).
19412
19413        * layout-tests/fast/dom/importNodeHTML.html: Added. Tests both importNode and cloneNode (for comparison).
19414        * layout-tests/fast/dom/importNodeHTML-expected.txt: Added.
19415        * layout-tests/fast/dom/importNodeXML.xhtml: Added. XML version of the same test as above. Tests a different
19416        code path, so useful to have.
19417        * layout-tests/fast/dom/importNodeXML-expected.txt: Added.
19418
194192005-04-28  Darin Adler  <darin@apple.com>
19420
19421        Reviewed by Dave Harrison.
19422
19423        - fixed problems preventing us from compiling with gcc 4.0
19424
19425        * WebCore.pbproj/project.pbxproj: Removed -fobjc-exceptions because I can't figure out an easy
19426        way to pass it only when compiling Objective-C/C++. Removed -Wmissing-prototypes from
19427        WARNING_CPLUSPLUSFLAGS since it's now a C-only warning.
19428
19429        * khtml/css/parser.y: Changed some rules that were using a float to pass around an enum to use an
19430        int instead to avoid a warning.
19431        * khtml/css/parser.cpp: Regenerated.
19432        * khtml/css/parser.h: Regenerated.
19433
19434        * khtml/ecma/kjs_dom.cpp: (DOMTextProtoFunc::tryCall): Rearranged a return statement to avoid an incorrect
19435        warning.
19436        * khtml/ecma/kjs_html.cpp: (KJS::Context2DFunction::tryCall): Initialized a couple of variables to avoid
19437        an incorrect warning.
19438        * khtml/ecma/kjs_proxy.cpp: (KJSProxyImpl::evaluate): Rearranged how we exit from the function to avoid
19439        an incorret warning.
19440        * khtml/editing/selection.cpp: (khtml::Selection::debugPosition): Changed some %d to %ld where the
19441        parameters where long ints.
19442        * khtml/editing/visible_position.cpp: (khtml::VisiblePosition::debugPosition): Ditto.
19443        * khtml/xml/dom_position.cpp: (DOM::Position::debugPosition): Ditto.
19444        * kwq/DOMEvents.mm: (-[DOMMouseEvent initMouseEvent:::::::::::::::]): Rearranged code to avoid a cast
19445        that was causing an incorrect warning.
19446        * kwq/DOMUtility.mm:
19447        (createObjCDOMNode): Broke out as a separate function.
19448        (KJS::ScriptInterpreter::createObjcInstanceForValue): Rearranged code to avoid a namespace collision with
19449        KJS::DOMNode and the Objective-C DOMNode class.
19450        * kwq/KWQFileButton.mm: Made fields of KWQFileButtonAdapter public to avoid an error, new to gcc 4.0,
19451        about accessing protected Objective-C fields.
19452        * kwq/KWQKHTMLPart.mm:
19453        (KWQKHTMLPart::matchLabelsAgainstElement): Rearranged a return statement to avoid an incorrect warning.
19454        (KWQKHTMLPart::imageFromRect): Rearranged how this function does its exception handling to avoid a
19455        "may be clobbered" warning.
19456        * kwq/KWQKJavaAppletWidget.mm: Fixed incorrect import that said "KHTMLView.h" instead of "khtmlview.h".
19457        * kwq/KWQObject.mm: Made fields of KWQObjectTimerTarget public to avoid an error, new to gcc 4.0,
19458        about accessing protected Objective-C fields.
19459        * kwq/WebCoreBridge.mm: (partHasSelection): Used [bridge part] instead of getting directly at instance
19460        variable to avoid an error, new to gcc 4.0, about accessing protected Objective-C fields.
19461
19462        * WebCore-combined.exp: Regenerated.
19463        * WebCore-tests.exp: Added some additional symbols needed by the tests under gcc 4.0.
19464
194652005-04-28  Darin Adler  <darin@apple.com>
19466
19467        * WebCore.pbproj/project.pbxproj: Add back the main_thread_malloc files, rolled out by accident.
19468
194692005-04-27 Adele Peterson  <adele@apple.com>
19470
19471        Rolling out fix for <rdar://problem/4097849> because the following layout tests were failing:
19472
19473        fast/css/namespaces/001
19474        fast/css/namespaces/002
19475        fast/css/namespaces/004
19476        fast/css/namespaces/005
19477        fast/css/namespaces/006
19478        fast/overflow/003
19479        
19480
19481        * khtml/html/html_documentimpl.cpp:
19482        * khtml/html/html_documentimpl.h:
19483        * khtml/html/html_elementimpl.cpp:
19484        (HTMLElementImpl::namespaceURI):
19485        * khtml/xml/dom_docimpl.cpp:
19486        (DocumentImpl::importNode):
19487        (DocumentImpl::createElementNS):
19488        (DocumentImpl::createHTMLElement):
19489        (DocumentImpl::attrId):
19490        (DocumentImpl::tagId):
19491        * khtml/xml/dom_docimpl.h:
19492
194932005-04-27  John Sullivan  <sullivan@apple.com>
19494
19495        Reviewed by Darin.
19496        
19497        Experimental prototype of user-resizable textareas. All the new code is guarded by
19498        #if ALLOW_RESIZING_TEXTAREAS, which is false unless you remove a comment and rebuild.
19499        
19500        This code allows you to press near the bottom-right corner of any textarea and drag
19501        to resize the textarea on the page. It works correctly with textareas in left-aligned
19502        or centered blocks, but is weird in right-aligned blocks. It also does something
19503        sensible if the width is specified as a % (in that case, you can resize vertically only).
19504        The user-created-size survives resizing the window and survives the back/forward cache.
19505        It does not survive reloading the page.
19506        
19507        This complete-lack-of-affordance UI is obviously not shippable, but this proof of concept
19508        code could lead to a real user feature.
19509
19510        * kwq/KWQTextArea.mm:
19511        (-[KWQTextArea getNumColumns:andNumRows:forSize:]):
19512        new method that determines cols and rows for a given textarea frame size
19513        (-[KWQTextAreaTextView _trackResizeFromMouseDown:]):
19514        new method that tracks a drag and does a live resize-and-relayout
19515        (-[KWQTextAreaTextView mouseDown:]):
19516        if the mouse down is in the bottom-right corner, call _trackResizeFromMouseDown:
19517
195182005-04-27  John Sullivan  <sullivan@apple.com>
19519
19520        Reviewed by Adele.
19521
19522        - fixed problem with mouse wheel patch where alt and shift keys were switched
19523
19524        * khtml/xml/dom2_eventsimpl.h:
19525        use the order cntl, alt, shift, meta in KeyboardEventImpl constructors to match
19526        superclass. This isn't necessary to fix the bug, but is better for clarity.
19527        
19528        * khtml/xml/dom2_eventsimpl.cpp:
19529        (KeyboardEventImpl::KeyboardEventImpl):
19530        switch parameter order to match superclass. Then pass the parameters to superclass's
19531        constructor in the right order.
19532        (KeyboardEventImpl::initKeyboardEvent):
19533        Pass parameters to superclass's constructor in the right order.
19534
195352005-04-26  Adele Peterson  <adele@apple.com>
19536
19537        Fixed by Darin, reviewed by me.
19538
19539        Fix for <rdar://problem/4084029> designMode doesn't allow editing when iframe src = "" or = about:blank
19540        
19541        This change will add an HTML element for empty documents.  Now that there will be an HTMLDocument in this case, 
19542        a body will also be created (see rdar://problem/3758785). This was preventing frames with empty documents from 
19543        being editable.
19544
19545        * khtml/html/htmlparser.cpp: (KHTMLParser::finished):
19546
19547        Updated these tests to expect the HTML and BODY elements
19548        * layout-tests/fast/flexbox/016-expected.txt:
19549        * layout-tests/fast/frames/001-expected.txt:
19550        * layout-tests/fast/frames/002-expected.txt:
19551        * layout-tests/fast/frames/contentWindow_Frame-expected.txt:
19552        * layout-tests/fast/frames/contentWindow_iFrame-expected.txt:
19553        * layout-tests/fast/frames/empty-frame-src-expected.txt:
19554
195552005-04-26  Maciej Stachowiak  <mjs@apple.com>
19556
19557        New test case for <rdar://problem/4092136> reproducible crash in KJS::kjs_fast_realloc loading maps.google.com
19558
19559        * layout-tests/fast/js/string-from-char-code-expected.txt: Added.
19560        * layout-tests/fast/js/string-from-char-code.html: Added.
19561
195622005-04-26  Darin Adler  <darin@apple.com>
19563
19564        Reviewed by John.
19565
19566        - fixed <rdar://problem/3655817> please add support for mouse wheel events and the onmousewheel handler
19567
19568        Loose ends:
19569
19570            - need to test behavior of Windows IE with horizontal scroll wheeling; we currently send a distinct event
19571              for that relatively obscure case, which means the event handlers won't fire at all; might be incorrect
19572            - overflow scrolling is done after all DOM event handling, but ideally should be done in the overflowing
19573              element's default event handler; not important in practice
19574            - frame scrolling is done after all DOM event handling, but probably should be done in a default event handler;
19575              not sure about this, but it's probably not important in practice and definitely not required
19576
19577        - JavaScript
19578
19579        * khtml/ecma/kjs_events.h: Added DOMWheelEvent.
19580        * khtml/ecma/kjs_events.cpp:
19581        (KJS::getDOMEvent): Added a case for wheel event. To be forward looking, I use the event's impl pointer
19582        instead of a C++ DOM wrapper. Eventually it will all work this way.
19583        (offsetFromTarget): Added. Factored out code to compute offsetX/Y for an event.
19584        (DOMMouseEvent::getValueProperty): Changed to call offsetFromTarget for offsetX/Y.
19585        (DOMWheelEvent::DOMWheelEvent): Added.
19586        (DOMWheelEvent::tryGet): Added.
19587        (DOMWheelEvent::getValueProperty): Added.
19588        (DOMWheelEventProtoFunc::tryCall): Added. Nothing at the moment, but might get contents later.
19589
19590        * khtml/ecma/kjs_dom.h: Added OnMouseWheel to the enum with the list of properties.
19591        * khtml/ecma/kjs_dom.cpp: Added onmousewheel as a property of DOM nodes.
19592        (DOMNode::getValueProperty): Return the mouse wheel event handler.
19593        (DOMNode::putValue): Set the mouse wheel event handler.
19594
19595        * khtml/ecma/kjs_window.cpp: Added onmousewheel as a property of the window.
19596        (Window::get): Return the mouse wheel event handler.
19597        (Window::put): Set the mouse wheel event handler.
19598
19599        * khtml/ecma/kjs_window.h: Added OnWindowMouseWheel to the enum with the list of properties.
19600        (Other properties distinguish the window handler by lower-casing the initial letter, way too subtle,
19601        so I did this one a good way.)
19602
19603        * khtml/dom/dom2_events.h: Made the constructors for Event and UIEvent public. There's no good reason
19604        for them to be private, and I had to use the UIEvent one in the JavaScript implementation.
19605
19606        - DOM
19607        
19608        * khtml/xml/dom2_eventsimpl.h: Added events for mouse wheel and horizontal mouse wheel.
19609        Added isWheelEvent function to EventImpl.
19610        (DOM::UIEventWithKeyStateImpl): Added. Base class shared by mouse, wheel, and keyboard events.
19611        (DOM::MouseRelatedEventImpl): Added. Base class shared by mouse and wheel events.
19612        (DOM::WheelEventImpl): Added.
19613
19614        * khtml/xml/dom2_eventsimpl.cpp: Added "mousewheel" to list of event names and a placeholder for
19615        the horizontal mouse wheel.
19616        (EventImpl::isWheelEvent): Added. Returns false.
19617        (MouseRelatedEventImpl::MouseRelatedEventImpl): Added. Factored out what's shared between mouse
19618        events and wheel events to avoid duplicated code.
19619        (MouseRelatedEventImpl::computeLayerPos): Moved to MouseRelatedWheelEventImpl.
19620        (MouseEventImpl::MouseEventImpl): Changed since MouseRelatedWheelEventImpl is now the base class
19621        so we can share more code with wheel events.
19622        (KeyboardEventImpl::KeyboardEventImpl): Changed since UIEventWithKeyStateImpl is now the base class
19623        so we can share more code with mouse and wheel events.
19624        (WheelEventImpl::WheelEventImpl): Added.
19625        (WheelEventImpl::isWheelEvent): Added. Returns true.
19626
19627        * khtml/misc/htmlattrs.in: Added "onmousewheel" attribute name.
19628        * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::parseHTMLAttribute): Added parsing of the
19629        "onmousewheel" atribute, consistent with other event handler attributes.
19630
19631        - event handling
19632
19633        * kwq/WebCoreBridge.h: Renamed scrollOverflowWithScrollWheelEvent to sendScrollWheelEvent.
19634        * kwq/WebCoreBridge.mm: (-[WebCoreBridge sendScrollWheelEvent:]): Renamed.
19635
19636        * kwq/KWQEvent.h: Added Wheel as an event type value.
19637        (QWheelEvent::QWheelEvent): Added.
19638        * kwq/KWQEvent.mm:
19639        (positionForEvent): Updated to know that wheel events have valid positions in them.
19640        (orientationForEvent): Added.
19641        (deltaForEvent): Added.
19642        (QWheelEvent::QWheelEvent): Added.
19643
19644        * kwq/KWQKHTMLPart.h: Renamed scrollOverflowWithScrollWheelEvent to wheelEvent.
19645        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::wheelEvent): Renamed and added code to construct a QWheelEvent
19646        and send it along to KHTMLView::viewportWheelEvent, consistent with how mouse events work.
19647
19648        * khtml/khtmlview.cpp: (KHTMLView::viewportWheelEvent): Do a hit test to figure out which node to
19649        send the event to, and then call dispatchWheelEvent.
19650
19651        * khtml/xml/dom_nodeimpl.h: Added dispatchWheelEvent.
19652        * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::dispatchWheelEvent): Added.
19653
19654        - generated files
19655
19656        * khtml/ecma/kjs_dom.lut.h: Regenerated.
19657        * khtml/ecma/kjs_events.lut.h: Regenerated.
19658        * khtml/ecma/kjs_window.lut.h: Regenerated.
19659        * khtml/misc/htmlattrs.c: Regenerated.
19660        * khtml/misc/htmlattrs.h: Regenerated.
19661
196622005-04-26  David Harrison  <harrison@apple.com>
19663
19664        Reviewed by Darin, Maciej.
19665
19666        <rdar://problem/4075576> Deleting text in new message borks content
19667        
19668        Fixed by removing the methods that attempted to preserve the position.  The idea
19669        of preserving position is a very recent one, and turned out to not actually address
19670        the problem it was intended to fix (see below).  Further, is unclear how the position
19671        could be preserved in a form that could be properly used later on.   Therefore,
19672        removing the code to work like before is the preferred alternative for this software
19673        update.  I've written <rdar://problem/4099839> to cover the bug that position
19674        preservation was supposed to fix (but did not).  Added layout tests for
19675        both this bug and 4099839.  Also, updated existing tests with correct expected results
19676        (delete-at-paragraph-boundaries-003 and 004).
19677
19678        * khtml/editing/htmlediting.cpp:
19679        (khtml::CompositeEditCommand::removeFullySelectedNode):
19680        (khtml::CompositeEditCommand::removeChildrenInRange):
19681        (khtml::DeleteSelectionCommand::handleGeneralDelete):
19682        * khtml/editing/htmlediting.h:
19683        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-003-expected.txt:
19684        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
19685        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-007-expected.txt: Added.
19686        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-007.html: Added.
19687        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-008-expected.txt: Added.
19688        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-008.html: Added.
19689        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-009-expected.txt: Added.
19690        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-009.html: Added.
19691        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-010-expected.txt: Added.
19692        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-010.html: Added.
19693
196942005-04-26  Darin Adler  <darin@apple.com>
19695
19696        - fixed development builds
19697
19698        * khtml/misc/main_thread_malloc.h: Use inlines instead of macros for allocation functions.
19699
197002005-04-25  David Hyatt  <hyatt@apple.com>
19701
19702	Fix for 4097842, changing 1st line of a url that wraps doesn't update the second line.  Make sure to
19703	update line break info for the last dirty line so that when a clean line tries to figure out where it
19704	started, it will get an accurate position taking into account the updated string.  By doing this, the code
19705	will be able to properly distinguish between the old and new positions and not accidentally assume they are
19706	the same.
19707	
19708        Reviewed by darin
19709
19710        * khtml/rendering/render_text.cpp:
19711        (RenderText::setTextWithOffset):
19712
197132005-04-26  Darin Adler  <darin@apple.com>
19714
19715        Reviewed by Maciej.
19716
19717        - fixed <rdar://problem/4098826> Bezier curves broken in new Safari canvas object (last two parameters parsed incorrectly)
19718
19719        * khtml/ecma/kjs_html.cpp: (KJS::Context2DFunction::tryCall): Fixed incorrect argument indices.
19720        Thanks to Brian Campbell who figured out what was wrong.
19721
197222005-04-17  Maciej Stachowiak  <mjs@apple.com>
19723
19724        Reviewed by Darin.
19725
19726	- use single-threaded malloc in places where malloc is hot for an
19727	8% speed improvement on cvs-base
19728
19729        * ForwardingHeaders/misc/fast_malloc.h: Added.
19730        * WebCore.pbproj/project.pbxproj:
19731        * khtml/css/css_base.h:
19732        * khtml/css/css_ruleimpl.h:
19733        * khtml/css/css_valueimpl.h:
19734        * khtml/css/cssstyleselector.h:
19735        * khtml/misc/arena.cpp:
19736        (ArenaAllocate):
19737        (FreeArenaList):
19738        (ArenaFinish):
19739        * khtml/misc/main_thread_malloc.cpp: Added.
19740        * khtml/misc/main_thread_malloc.h: Added.
19741        * khtml/rendering/render_style.h:
19742        * khtml/xml/dom2_eventsimpl.h:
19743        * khtml/xml/dom2_rangeimpl.h:
19744        * khtml/xml/dom2_traversalimpl.h:
19745        * khtml/xml/dom2_viewsimpl.h:
19746        * khtml/xml/dom_docimpl.h:
19747        * khtml/xml/dom_elementimpl.cpp:
19748        (NamedAttrMapImpl::NamedAttrMapImpl):
19749        (NamedAttrMapImpl::clearAttributes):
19750        (NamedAttrMapImpl::operator=):
19751        (NamedAttrMapImpl::addAttribute):
19752        (NamedAttrMapImpl::removeAttribute):
19753        * khtml/xml/dom_elementimpl.h:
19754        * khtml/xml/dom_nodeimpl.h:
19755        * khtml/xml/dom_stringimpl.h:
19756        * kwq/KWQFontFamily.h:
19757        * kwq/KWQListImpl.mm:
19758        * kwq/KWQString.h:
19759        * kwq/KWQString.mm:
19760        (ALLOC_CHAR):
19761        (ALLOC_QCHAR):
19762        (QString::setBufferFromCFString):
19763        (allocatePageNode):
19764
197652005-04-25  John Sullivan  <sullivan@apple.com>
19766
19767        Reviewed by Dave Harrison.
19768        
19769        - fixed <rdar://problem/4098731> [DOMHTMLTextAreaElement cols] returns wrong value (usually zero)
19770
19771        * kwq/DOMHTML.mm:
19772        (-[DOMHTMLTextAreaElement cols]):
19773        use ATTR_COLS instead of ATTR_ACCESSKEY (D'oh!)
19774        (-[DOMHTMLTextAreaElement setCols:]):
19775        fixed whitespace
19776
197772005-04-25  Darin Adler  <darin@apple.com>
19778
19779        Reviewed by John.
19780
19781        - fixed <rdar://problem/4097849> REGRESSION (162-163): importNode creates non-HTML elements, thus style attributes (and some others) don't work
19782
19783        * khtml/xml/dom_docimpl.h: Add virtual functions HTMLElementNamespace and isHTMLNamespace.
19784        * khtml/xml/dom_docimpl.cpp:
19785        (DocumentImpl::importNode): Rearranged this function and fixed the following problems: 1) made sure to ref node while attributes are
19786        being set on it so it doesn't get destroyed; 2) fixed code to get namespace from the element we are importing to use the IDs from
19787        the source document, not the destination document; 3) removed unneeded getDocument() call which just returns this; 4) fixed error
19788        handling for cases where an exception happens while processing the children.
19789        (DocumentImpl::HTMLElementNamespace): Added. Returns XHTML_NAMESPACE.
19790        (DocumentImpl::isHTMLNamespace): Added. Returns true for any namespace that matches XHTML_NAMESPACE (case insensitive).
19791        (DocumentImpl::createElementNS): Changed to call isHTMLNamespace, which will cause it to accept the null namespace in an HTML document.
19792        This is the change that fixes the bug. Also fixed the code path to do a little less wasteful work in the non-XHTML case.
19793        (DocumentImpl::createHTMLElement): Pass in HTMLElementNamespace() rather than 0 to tagId.
19794        (DocumentImpl::attrId): Use isHTMLNamespace instead of allowing the null namespace explicitly.
19795        (DocumentImpl::tagId): Ditto.
19796
19797        * khtml/html/html_documentimpl.h: Add overrides for HTMLElementNamespace and isHTMLNamespace.
19798        * khtml/html/html_documentimpl.cpp:
19799        (HTMLDocumentImpl::HTMLElementNamespace): Added. Returns 0 so we use the null string for HTML elements inside HTML documents (as before).
19800        (HTMLDocumentImpl::isHTMLNamespace): Added. Allows 0, and then calls base class to check for the actual XHTML namespace. Thus, we allow
19801        both no namespace at all and the XHTML namespace inside HTML documents.
19802
19803        * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::namespaceURI): Changed to call HTMLElementNamespace rather than checking
19804        isHTMLDocument. Same result as before, but better division of responsibilities.
19805
198062005-04-25  Darin Adler  <darin@apple.com>
19807
19808        Reviewed by John.
19809
19810        - fixed <rdar://problem/4091956> JavaScript drop handlers don't receive more than one dropped item
19811
19812        * kwq/KWQClipboard.mm:
19813        (cocoaTypeFromMIMEType): Remove some use of compare -- less efficient than a simpler "==" check.
19814        Fixed non-GC-safe code to use KWQCFAutorelease instead.
19815        (MIMETypeFromCocoaType): Use fromCFString instead of fromNSString to avoid a cast.
19816        (KWQClipboard::getData): Rearrange so that we'll use filenames if both filenames and a URL are present, since
19817        filenames can accomodate multiple items. Fix bug where we'd return multiple filenames when the type requested
19818        is "URL". Fixed loop that computed the count over and over again for the loop termination condition. Check
19819        that the data for NSFilenamesPboardType is an NSArray instead of assuming it is.
19820        (KWQClipboard::setData): Use isEqualToString: instead of == when comparing types.
19821
198222005-04-22  David Hyatt  <hyatt@apple.com>
19823
19824	Fix for 4096878, drop shadow effect not displayed correctly on tbray.org/ongoing/.  Block minmaxwidth was
19825	broken when negative margins were used and did not properly decrease the max width.
19826	
19827        Reviewed by Maciej
19828
19829        * khtml/rendering/render_block.cpp:
19830        (khtml::RenderBlock::calcBlockMinMaxWidth):
19831        * layout-tests/fast/block/float/034-expected.txt: Added.
19832        * layout-tests/fast/block/float/034.html: Added.
19833        * layout-tests/fast/block/float/035-expected.txt: Added.
19834	* layout-tests/fast/block/float/035.html: Added.
19835	
198362005-04-22  David Hyatt  <hyatt@apple.com>
19837
19838        Remove some dead code from css_valueimpl.  It wasn't used at all.
19839
19840        * khtml/css/css_valueimpl.cpp:
19841        * khtml/css/css_valueimpl.h:
19842
198432005-04-22  Darin Adler  <darin@apple.com>
19844
19845        * khtml/ecma/kjs_html.h: Removed unnecessary bogus class name qualifiers.
19846
198472005-04-22  David Hyatt  <hyatt@apple.com>
19848
19849	Fix for 4096681, fix regression in how the list-style property is parsed.  It no longer parses when it hits
19850	a url in the property value list now, because the list pointer did not get advanced.  This fixes alistapart.com.
19851	
19852        Reviewed by john
19853
19854        * khtml/css/cssparser.cpp:
19855        (CSSParser::parseValue):
19856        * layout-tests/fast/lists/009-expected.txt: Added.
19857        * layout-tests/fast/lists/009.html: Added.
19858        * layout-tests/fast/lists/resources/listmark.gif: Added.
19859
198602005-04-22  Darin Adler  <darin@apple.com>
19861
19862        Reviewed by John.
19863
19864        - fixed <rdar://problem/4091082> Google Suggest no longer works due to lack of "frameElement"
19865
19866        * khtml/ecma/kjs_window.h: Added FrameElement.
19867        * khtml/ecma/kjs_window.cpp: (Window::get): Added "frameElement".
19868        * khtml/ecma/kjs_window.lut.h: Regenerated.
19869
198702005-04-22  Darin Adler  <darin@apple.com>
19871
19872        Reviewed by John.
19873
19874        - a small editing-related code cleanup
19875
19876        * khtml/rendering/render_text.h: Added positionForOffset and made offsetForPosition const.
19877        * khtml/rendering/render_text.cpp:
19878        (InlineTextBox::offsetForPosition): Made const.
19879        (InlineTextBox::positionForOffset): Added. Moved code here from caretRect.
19880        (RenderText::caretRect): Call positionForOffset instead of doing the work here.
19881
198822005-04-21  David Hyatt  <hyatt@apple.com>
19883
19884	Fix for 4095839, wrong background image used on flechtwerk.de.  Make sure that the global mapped
19885	attribute cache hashed background attributes into per-document buckets.
19886
19887        * khtml/html/html_baseimpl.cpp:
19888        (HTMLBodyElementImpl::mapToEntry):
19889        * khtml/html/html_elementimpl.h:
19890        (DOM::):
19891        * khtml/html/html_tableimpl.cpp:
19892        (HTMLTableElementImpl::mapToEntry):
19893        (HTMLTablePartElementImpl::mapToEntry):
19894        * khtml/xml/dom_docimpl.cpp:
19895        (DocumentImpl::DocumentImpl):
19896        * khtml/xml/dom_docimpl.h:
19897        (DOM::DocumentImpl::docID):
19898
198992005-04-21  Vicki Murley  <vicki@apple.com>
19900
19901	- layout test for 4065447, outerHTML on images
19902
19903        * layout-tests/fast/dynamic/outerHTML-img-expected.txt: Added.
19904        * layout-tests/fast/dynamic/outerHTML-img.html: Added.
19905
199062005-04-20  Vicki Murley  <vicki@apple.com>
19907
19908        Reviewed by hyatt.
19909
19910	- fixed <rdar://problem/4065447> support outerHTML on IMG elements
19911
19912        * khtml/html/html_elementimpl.cpp:
19913        (HTMLElementImpl::setOuterHTML):
19914
199152005-04-18  David Hyatt  <hyatt@apple.com>
19916
19917	Fix min-height so that when it resolves to auto it does not use the box's intrinsic height.
19918	
19919        * khtml/rendering/render_box.cpp:
19920        (RenderBox::calcHeight):
19921        (RenderBox::calcHeightUsing):
19922
199232005-04-18  David Hyatt  <hyatt@apple.com>
19924
19925        Back out fix for 4032346, since it is causing garbled image content on many sites.
19926
19927	The bug tracking the fix is 4069093.
19928	
19929        (khtml::RenderBlock::matchedEndLine):
19930
199312005-04-18  David Hyatt  <hyatt@apple.com>
19932
19933	Fix the smile in the Acid2 test.  Floats should not grow to contain other floats unless height is auto.  Otherwise
19934	the float should use the specified height.
19935
19936	Also fix row 14 of the Acid2 test.  Although ambiguous, just modify the table cell baseline alignment code to align
19937	to the bottom of the cell's content height if no suitable baseline could be found.
19938	
19939        * khtml/rendering/render_block.cpp:
19940        (khtml::RenderBlock::layoutBlock):
19941        * khtml/rendering/render_block.h:
19942        (khtml::RenderBlock::firstRootBox):
19943        (khtml::RenderBlock::lastRootBox):
19944        * khtml/rendering/render_table.cpp:
19945        (RenderTableSection::calcRowHeight):
19946        (RenderTableCell::baselinePosition):
19947        
199482005-04-15  David Hyatt  <hyatt@apple.com>
19949
19950	Make sure empty tables honor CSS-specified heights when they have no rows or sections.  This is done only
19951	in strict mode, since it is not compatible with WinIE.
19952
19953        * khtml/rendering/render_table.cpp:
19954        (RenderTable::layout):
19955
199562005-04-15  David Hyatt  <hyatt@apple.com>
19957
19958	Fix for row 13 of the Acid2 test.  Change HTML comment parsing in strict mode to do proper SGML parsing,
19959	checking for pairs of -- and only being willing to close the comment if every -- is paired up.
19960	
19961        * khtml/html/htmltokenizer.cpp:
19962        (khtml::HTMLTokenizer::parseComment):
19963
199642005-04-12  Maciej Stachowiak  <mjs@apple.com>
19965
19966        Reviewed by Richard.
19967
19968	- use custom single-threaded malloc for all non-GC JavaScriptCore
19969	allocations, for a 9.1% speedup on JavaScript iBench
19970	 
19971	* khtml/ecma/kjs_binding.cpp:
19972        (UString::UString):
19973        * khtml/ecma/kjs_proxy.cpp:
19974        (KJSProxyImpl::evaluate):
19975
199762005-04-15  David Hyatt  <hyatt@apple.com>
19977
19978	Fix the six pixel gap between rows nine and ten of the Acid2 test.  Make sure that percentage heights that
19979	resolve to auto are properly treated as though they have auto height by the self-collapsing block check (as per
19980	section 8.3.1, paragraph 7 of the CSS2.1 spec).
19981	
19982        * khtml/rendering/render_block.cpp:
19983        (khtml::RenderBlock::isSelfCollapsingBlock):
19984
199852005-04-15  David Hyatt  <hyatt@apple.com>
19986
19987	The Acid2 test and the reference rendering both make use of overflow:hidden on the <html> element.  Turns out
19988	the CSS2.1 wording for this behavior has been revised (based off WinIE/Mozilla behavior).  Change our behavior
19989	to match and make <html> overflow apply to the viewport.
19990	
19991        * khtml/khtmlview.cpp:
19992        (KHTMLView::applyOverflowToViewport):
19993        (KHTMLView::layout):
19994        * khtml/khtmlview.h:
19995        * khtml/rendering/render_box.cpp:
19996        (RenderBox::setStyle):
19997
199982005-04-14  David Hyatt  <hyatt@apple.com>
19999
20000	3258403 and 3258402 can now be fixed.  min/max-width/height support is now complete.  This patch makes them
20001	work for positioned elements and enables us to pass row one of the Acid2 test.
20002	
20003        * khtml/rendering/render_box.cpp:
20004        (RenderBox::calcAbsoluteHorizontal):
20005        (RenderBox::calcAbsoluteHorizontalValues):
20006        (RenderBox::calcAbsoluteVertical):
20007        (RenderBox::calcAbsoluteVerticalValues):
20008        * khtml/rendering/render_box.h:
20009
200102005-04-12  David Hyatt  <hyatt@apple.com>
20011
20012	Working on the Acid2 test, Row 1.
20013
20014	Improve checkChild for the DTD so that it knows what mode a document is in.  This allows it to adhere more
20015	strictly to the actual DTD in strict mode and almost strict mode.
20016
20017	Change the <table>-inside-<p> check so that <table> is disallowed inside <p> in 
20018	strict mode and almost strict mode.  This matches Firefox behavior, which allows <table>
20019	inside <p> only in quirks mode.
20020
20021        * khtml/html/dtd.cpp:
20022        (DOM::checkChild):
20023        * khtml/html/dtd.h:
20024        * khtml/html/htmlparser.cpp:
20025        (KHTMLParser::insertNode):
20026        * khtml/html/htmltokenizer.cpp:
20027        (khtml::HTMLTokenizer::parseTag):
20028        * khtml/xml/dom_elementimpl.cpp:
20029        (ElementImpl::childAllowed):
20030
200312005-04-12  Vicki Murley  <vicki@apple.com>
20032
20033        Reviewed by Maciej. 
20034
20035	- fixed <rdar://problem/3760895> Request for including an implementation of the elementFromPoint function
20036 
20037        * khtml/dom/dom_doc.cpp:
20038        (DOM::Document::elementFromPoint):
20039        * khtml/dom/dom_doc.h:
20040        * khtml/ecma/kjs_dom.cpp:
20041        (DOMDocumentProtoFunc::tryCall):
20042        * khtml/ecma/kjs_dom.h:
20043        (KJS::DOMDocument::):
20044        * khtml/ecma/kjs_dom.lut.h:
20045        (KJS::):
20046        * khtml/xml/dom_docimpl.cpp:
20047        (DocumentImpl::elementFromPoint):
20048        * khtml/xml/dom_docimpl.h:
20049
200502005-04-12  David Hyatt  <hyatt@apple.com>
20051
20052	Beginning of work to support the Acid2 CSS test put forward by the Web Standards Project.  Fix
20053	our handling of the rel attribute on <link> elements to do a proper tokenization so that stylesheets
20054	can be recognized even when other keywords are present in the rel attribute.
20055
20056        * khtml/html/html_headimpl.cpp:
20057        (HTMLLinkElementImpl::HTMLLinkElementImpl):
20058        (HTMLLinkElementImpl::parseHTMLAttribute):
20059        (HTMLLinkElementImpl::tokenizeRelAttribute):
20060        (HTMLLinkElementImpl::process):
20061        * khtml/html/html_headimpl.h:
20062
200632005-04-12  John Sullivan  <sullivan@apple.com>
20064
20065        - fixed these two bugs (I also fixed these on the experimental-ui-branch)
20066        <rdar://problem/3154293> Find Next should not scroll page if the next target is already visible
20067        <rdar://problem/3121828> scrollToVisible on find cuts off the left part of the view due to needless horiz. scroll
20068
20069        Reviewed by Chris.
20070
20071        * kwq/KWQKHTMLPart.mm:
20072        (KWQKHTMLPart::jumpToSelection):
20073        Trey had written code to address these issues, but left it commented out due to other
20074        problems. The other problems no longer occur, so I uncommented Trey's code, and then
20075        discovered that I could make it behave more like TextEdit with many fewer lines of
20076        code.
20077
200782005-04-08  David Harrison  <harrison@apple.com>
20079
20080        Reviewed by Dave Hyatt.
20081
20082        <rdar://problem/4084106> Remove NSAccessibilityForegroundColorTextAttributeWrapper
20083
20084        * kwq/KWQAccObject.mm:
20085        (AXAttributeStringSetStyle):
20086        Use NSAccessibilityForegroundColorTextAttribute directly.
20087
200882005-04-05  David Hyatt  <hyatt@apple.com>
20089
20090	Fix for 4077106, make sure that mouse wheeling in overflow sections uses 40 rather than 10 as the base line
20091	step.
20092	
20093        Reviewed by darin
20094
20095        * khtml/rendering/render_layer.cpp:
20096        (RenderLayer::positionScrollbars):
20097        * kwq/KWQScrollBar.mm:
20098        (QScrollBar::scroll):
20099
201002005-04-04  Vicki Murley  <vicki@apple.com>
20101
20102        Reviewed by Maciej.
20103
20104	- fixed <rdar://problem/3871669> no focus or blur methods on HTML button elements
20105
20106        * khtml/dom/html_form.cpp:
20107        (HTMLButtonElement::focus): 
20108        (HTMLButtonElement::blur): 
20109        * khtml/dom/html_form.h: 
20110        * khtml/ecma/kjs_html.cpp:
20111        (KJS::HTMLElementFunction::tryCall):
20112        * khtml/ecma/kjs_html.h:
20113        (KJS::HTMLElement::):
20114        * khtml/ecma/kjs_html.lut.h:
20115        (KJS::):
20116        * khtml/html/html_formimpl.cpp:
20117        (DOM::HTMLButtonElementImpl::blur):
20118        (DOM::HTMLButtonElementImpl::focus):
20119        * khtml/html/html_formimpl.h:
20120
20121=== WebCore-415 ===
20122
201232005-03-28  David Harrison  <harrison@apple.com>
20124
20125        Reviewed by Darin.
20126        
20127        <rdar://problem/4069161> REGRESSION (8A416-8A419): Safari crash bringing up context menu for non-HTML content in a frame
20128
20129        * kwq/KWQAccObject.mm:
20130        (-[KWQAccObject rendererForView:]):
20131        Nil-check node variable instead of rechecking document variable.
20132
20133=== WebCore-413 ===
20134
201352005-03-27  Darin Adler  <darin@apple.com>
20136
20137        Reviewed by me, fix by Kida-san.
20138
20139        - fixed <rdar://problem/4067474> 8A424: Safari immediately quit by Cmd+Ctrll+'D'
20140
20141        * kwq/WebCoreBridge.mm: (-[WebCoreBridge convertToNSRange:DOM::]):
20142        Added nil check.
20143
20144=== Safari-412 ===
20145
201462005-03-24  Richard Williamson   <rjw@apple.com>
20147
20148	Fixed <rdar://problem/4052683> After adding/removing stocks from Stocks Widget, stock areas went blank
20149
20150	The request was being collected before firing it's load handler.
20151	We now gc protect the request while it's loading.
20152
20153        Reviewed by Maciej.
20154
20155        * khtml/ecma/xmlhttprequest.cpp:
20156        (KJS::XMLHttpRequest::send):
20157        (KJS::XMLHttpRequest::abort):
20158        (KJS::XMLHttpRequest::slotFinished):
20159        (KJS::XMLHttpRequestProtoFunc::tryCall):
20160
20161=== Safari-411 ===
20162
201632005-03-23  Darin Adler   <darin@apple.com>
20164
20165	Further fix for 4053515.
20166
20167	Covered cases where text position doesn't lie inside a
20168	text node.	
20169
20170        Reviewed by Richard.
20171
20172        * khtml/editing/visible_text.cpp:
20173        (khtml::TextIterator::setRangeFromLocationAndLength):
20174
201752005-03-23  Richard Williamson   <rjw@apple.com>
20176
20177	Fixed <rdar://problem/4053515> REGRESSION (Mail): Kotoeri input method reconversion does not work in WebViews
20178
20179	We now use actual document NSRanges to represent both marked text
20180	ranges and selection ranges.
20181
20182        Reviewed by Ken.
20183
20184        * khtml/editing/visible_text.cpp:
20185        (khtml::TextIterator::rangeLength):
20186        (khtml::TextIterator::setRangeFromLocationAndLength):
20187        * khtml/editing/visible_text.h:
20188        * kwq/WebCoreBridge.h:
20189        * kwq/WebCoreBridge.mm:
20190        (-[WebCoreBridge convertToNSRange:DOM::]):
20191        (-[WebCoreBridge DOM::convertToDOMRange:]):
20192        (-[WebCoreBridge selectNSRange:]):
20193        (-[WebCoreBridge markedTextDOMRange]):
20194        (-[WebCoreBridge markedTextNSRange]):
20195
201962005-03-22  Kevin Decker  <kdecker@apple.com>
20197
20198        Reviewed by Vicki.
20199
20200	Fixed <rdar://problem/4062336> REGRESSION (406-407): HTML submenus not working at hrweb.apple.com after going back
20201
20202	Rolled out the fix for <rdar://problem/4041374> REGRESSION (185-186): unload handlers (at least those added with addEventListener) are broken
20203
20204	We clearly need a better solution to 4041374. We can't indiscriminately remove event listeners in closeURL() after-all. Since event listeners are registered in a <script> tag, which is evaluated and executed at page load time, this becomes a problem since we don't reevaluate a page's <script> that is in the back/forward cache.  Thus once you leave the page, the listeners are gone for good.  This is the problem.
20205
20206        * khtml/khtml_part.cpp:
20207        (KHTMLPart::closeURL):
20208        * khtml/xml/dom_docimpl.cpp:
20209        (DocumentImpl::detach): 
20210
20211=== Safari-410 ===
20212
202132005-03-22  Vicki Murley  <vicki@apple.com>
20214
20215        - roll the fix for <rdar://problem/4060266> back in, since its 
20216	now approved by CCC
20217
20218        * khtml/editing/visible_text.cpp:
20219        (khtml::TextIterator::handleTextBox):
20220
202212005-03-22  Vicki Murley  <vicki@apple.com>
20222
20223	- roll out the fix for <rdar://problem/4060266> since it was denied by CCC
20224
20225        * khtml/editing/visible_text.cpp:
20226        (khtml::TextIterator::handleTextBox):
20227
202282005-03-22  David Harrison  <harrison@apple.com>
20229
20230        Reviewed by Darin.
20231        
20232        <rdar://problem/4060266> Double-clicking in Dictionary.app doesn't work for some words (coming just after style change)
20233
20234        * khtml/editing/visible_text.cpp:
20235        (khtml::TextIterator::handleTextBox):
20236        Complete the check of whether to emit space for collapsed space.
20237
202382005-03-22  David Harrison  <harrison@apple.com>
20239
20240        Reviewed by John.
20241        
20242        <rdar://problem/4061443> REGRESSION (8A420-8A421): Pasting in the Stickies widget is broken again
20243
20244        * khtml/editing/htmlediting.cpp:
20245        (khtml::positionBeforeContainingSpecialElement):
20246        (khtml::positionAfterContainingSpecialElement):
20247        Return unchanged Position rather than a null or non-editable one.
20248
20249=== Safari-409 ===
20250
202512005-03-20  Ken Kocienda  <kocienda@apple.com>
20252
20253        Reviewed by me
20254
20255        I made an error in this test earlier. It was not testing what I intended. Fixed.
20256
20257        * layout-tests/editing/unsupported-content/list-delete-001-expected.txt
20258        * layout-tests/editing/unsupported-content/list-delete-001.html
20259        
20260        New tests:
20261
20262        * layout-tests/editing/unsupported-content/table-delete-001-expected.txt: Added.
20263        * layout-tests/editing/unsupported-content/table-delete-001.html: Added.
20264        * layout-tests/editing/unsupported-content/table-delete-002-expected.txt: Added.
20265        * layout-tests/editing/unsupported-content/table-delete-002.html: Added.
20266        * layout-tests/editing/unsupported-content/table-delete-003-expected.txt: Added.
20267        * layout-tests/editing/unsupported-content/table-delete-003.html: Added.
20268        * layout-tests/editing/unsupported-content/table-type-after-expected.txt: Added.
20269        * layout-tests/editing/unsupported-content/table-type-after.html: Added.
20270        * layout-tests/editing/unsupported-content/table-type-before-expected.txt: Added.
20271        * layout-tests/editing/unsupported-content/table-type-before.html: Added.
20272
202732005-03-20  Darin Adler  <darin@apple.com>
20274
20275        Reviewed by Maciej.
20276
20277        - fixed <rdar://problem/3923903> REGRESSION (164-165): Repro Safari crash in khtml::RenderLayer::scrollToOffset
20278
20279        * khtml/rendering/render_layer.cpp: (RenderLayer::scrollToOffset): Check canvas for nil.
20280
202812005-03-20  David Harrison  <harrison@apple.com>
20282
20283        Reviewed by Darin.
20284        
20285        <rdar://problem/4055127> Dictionary pop-up panel misplaced at beginning of text blocks (breaks double-clicking in Dictionary.app)
20286
20287        SimplifiedBackwardsTextIterator::advance() needed to not limit to textnodes
20288        when checking whether moving back across block boundaries
20289
20290        VisibleUnits previousBoundary() needed to INIT_DOWN when creating result VisiblePosition
20291
20292        All editing tests pass.
20293
20294        * khtml/editing/visible_text.cpp:
20295        (khtml::SimplifiedBackwardsTextIterator::advance):
20296        * khtml/editing/visible_units.cpp:
20297        (khtml::previousBoundary):
20298
202992005-03-20  Darin Adler  <darin@apple.com>
20300
20301        Reviewed by Harrison.
20302
20303        - fixed <rdar://problem/4059914> when you select all of a frame's content, need to select the frame in the parent document so it can be easily deleted
20304
20305        * khtml/khtml_part.h: Added selectFrameElementInParentIfFullySelected.
20306        * khtml/khtml_part.cpp:
20307        (isFrame): Added.
20308        (KHTMLPart::setFocusNodeIfNeeded): Changed to not set focus to a frame; was not what this function was
20309        intended to do, and caused trouble when trying to select a frame element.
20310        (KHTMLPart::khtmlMouseReleaseEvent): Call selectFrameElementInParentIfFullySelected.
20311        (KHTMLPart::selectAll): Call selectFrameElementInParentIfFullySelected.
20312        (KHTMLPart::selectFrameElementInParentIfFullySelected): Added. Selects the frame element in the parent
20313        if a frame is entirely selected, which makes it easier to delete or replace the frame and is consistent
20314        with the changes Maciej made recently for other elements.
20315
20316        * kwq/WebCoreBridge.mm:
20317        (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Call selectFrameElementInParentIfFullySelected.
20318        (-[WebCoreBridge alterCurrentSelection:verticalDistance:]): Call selectFrameElementInParentIfFullySelected.
20319
203202005-03-20  Darin Adler  <darin@apple.com>
20321
20322        Reviewed by me, code change by Ken.
20323
20324        - fixed <rdar://problem/4059852> Deleting from first element of list makes content jump to wrong place
20325
20326        * khtml/editing/htmlediting.cpp:
20327        (khtml::isListStructureNode): Added.
20328        (khtml::DeleteSelectionCommand::moveNodesAfterNode): Check for list nodes as well as table nodes.
20329
203302005-03-20  Ken Kocienda  <kocienda@apple.com>
20331
20332        Reviewed by me
20333        
20334        Added tests to cover new "unsupported content" editing code.
20335
20336        * layout-tests/editing/unsupported-content/list-delete-001-expected.txt: Added.
20337        * layout-tests/editing/unsupported-content/list-delete-001.html: Added.
20338        * layout-tests/editing/unsupported-content/list-delete-002-expected.txt: Added.
20339        * layout-tests/editing/unsupported-content/list-delete-002.html: Added.
20340        * layout-tests/editing/unsupported-content/list-delete-003-expected.txt: Added.
20341        * layout-tests/editing/unsupported-content/list-delete-003.html: Added.
20342        * layout-tests/editing/unsupported-content/list-type-after-expected.txt: Added.
20343        * layout-tests/editing/unsupported-content/list-type-after.html: Added.
20344        * layout-tests/editing/unsupported-content/list-type-before-expected.txt: Added.
20345        * layout-tests/editing/unsupported-content/list-type-before.html: Added.
20346
203472005-03-20  Ken Kocienda  <kocienda@apple.com>
20348
20349        Reviewed by Maciej
20350        
20351        Fix for this bug:
20352        
20353        <rdar://problem/4059578> Entire list deleted, and caret disappears, when delete key hit at end of list
20354
20355        The problem is that a new case in the delete code did not consider when the
20356        downstream end node of the selection might be an ancestor of the upstream start
20357        node. That is the case in this bug. The downstream end is the body element, and
20358        this line of code would delete all the children of the downstream end:
20359            removeChildrenInRangePreservingPosition(m_downstreamEnd.node(), 0, 
20360                m_downstreamEnd.offset(), m_upstreamStart);
20361
20362        The fix is to check for this "is ancestor" case, and do some tree logic to find
20363        the right offset of the downstream end node for the call to
20364        removeChildrenInRangePreservingPosition().
20365
20366        * khtml/editing/htmlediting.cpp:
20367        (khtml::DeleteSelectionCommand::handleGeneralDelete): Fixed as described.
20368
203692005-03-19  Ken Kocienda  <kocienda@apple.com>
20370
20371        Reviewed by Maciej
20372
20373        Fix for this bug:
20374       
20375        <rdar://problem/4059384> Cannot place insertion point correctly in editable text that avoids floating elements
20376
20377        Note: I strongly suspect this bug blocks a complete solution to this other Tiger/P2:
20378        <rdar://problem/4055748> AX: Dictionary pop-up panel shows at wrong place on specific parts of particular pages
20379
20380        * khtml/rendering/render_text.cpp:
20381        (RenderText::caretRect): Change the y-coordinate used to calculate the available width for a line. Height is wrong.
20382        Top of the box containing the text where the click is done is correct. Also, add in the x-offset for the start
20383        of the text box when calculating the available width. If this text box is avoiding a float at the y-coordinate
20384        for the relevant box, failure to add in the amount of float-avoidance will make the text at the coordinates
20385        greater than end-of-line minus float-avoidance ineligible for caret placement.
20386
203872005-03-19  Darin Adler  <darin@apple.com>
20388
20389        Reviewed by Ken.
20390
20391        - fixed <rdar://problem/4057594> REGRESSION (125-406): Unrepro crash in HTMLTokenizer::allDataProcessed after hitting Back button
20392
20393        * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::allDataProcessed):
20394        To get the part safely after calling end, save a guarded pointer to the view.
20395        The old way could end trying to call a virtual function a part that was destroyed.
20396
203972005-03-19  Maciej Stachowiak  <mjs@apple.com>
20398
20399        Reviewed by Darin.
20400
20401	<rdar://problem/4053506> Pasting Tables and Cells in Mail does not allow editing before or after
20402	<rdar://problem/4005954> REGRESSION (Mail): After copy/paste of content containing list element cannot go back to entering text at left side of page
20403	
20404        * khtml/editing/htmlediting.cpp:
20405        (khtml::maxDeepOffset):
20406        (khtml::CompositeEditCommand::removeFullySelectedNodePreservingPosition):
20407        (khtml::CompositeEditCommand::removeChildrenInRangePreservingPosition):
20408        (khtml::CompositeEditCommand::removeNodePreservingPosition):
20409        (khtml::CompositeEditCommand::insertBlockPlaceholder):
20410        (khtml::CompositeEditCommand::appendBlockPlaceholder):
20411        (khtml::CompositeEditCommand::forceBlockPlaceholder):
20412        (khtml::CompositeEditCommand::addBlockPlaceholderIfNeeded):
20413        (khtml::isSpecialElement):
20414        (khtml::isFirstVisiblePositionInSpecialElementInFragment):
20415        (khtml::positionBeforePossibleContainingSpecialElement):
20416        (khtml::positionAfterPossibleContainingSpecialElement):
20417        (khtml::ApplyStyleCommand::applyInlineStyle):
20418        (khtml::DeleteSelectionCommand::initializePositionData):
20419        (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent):
20420        (khtml::DeleteSelectionCommand::handleGeneralDelete):
20421        (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
20422        (khtml::DeleteSelectionCommand::doApply):
20423        (khtml::InsertParagraphSeparatorCommand::doApply):
20424        (khtml::ReplacementFragment::ReplacementFragment):
20425        (khtml::ReplaceSelectionCommand::doApply):
20426        * khtml/editing/htmlediting.h:
20427        * khtml/editing/visible_position.cpp:
20428        (khtml::isRenderedBR):
20429        (khtml::VisiblePosition::initDownstream):
20430        (khtml::isLastVisiblePositionInBlock):
20431        * khtml/rendering/render_line.cpp:
20432        (khtml::RootInlineBox::closestLeafChildForXPos):
20433        * khtml/xml/dom_nodeimpl.cpp:
20434        (NodeImpl::isBlockFlowOrTable):
20435        (NodeImpl::isEditableBlock):
20436        (NodeImpl::enclosingBlockFlowOrTableElement):
20437        * khtml/xml/dom_nodeimpl.h:
20438        * khtml/xml/dom_position.cpp:
20439        (DOM::Position::upstream):
20440        (DOM::Position::downstream):
20441        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-003-expected.txt:
20442        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
20443        * layout-tests/editing/deleting/delete-select-all-001-expected.txt:
20444        * layout-tests/editing/deleting/delete-select-all-003-expected.txt:
20445        * layout-tests/editing/inserting/insert-3786362-fix-expected.txt:
20446
204472005-03-19  John Sullivan  <sullivan@apple.com>
20448
20449        Reviewed by Darin.
20450        
20451        - fixed <rdar://problem/4058740> Crash (nil-deref) editing Mail reply 
20452        message in KWQKHTMLPart::fontForSelection (MailViewer-723)
20453
20454        * kwq/KWQKHTMLPart.mm:
20455        (KWQKHTMLPart::fontForSelection):
20456        Add nil check to loop. It shouldn't be necessary, but this crash trace seems to be
20457        running into it. We're not completely certain, but the check is harmless at worst.
20458
20459=== Safari-408 ===
20460
204612005-03-18  David Harrison  <harrison@apple.com>
20462
20463        Reviewed by Darin.
20464        
20465        <rdar://problem/3584942> AX: Safari Accessibility parent-child mismatch
20466        
20467        Also changed WebKit.
20468
20469        * kwq/KWQAccObject.mm:
20470        (-[KWQAccObject rendererForView:]):
20471        New to cover both the WebCore and WebKit NSViews.
20472        
20473        (-[KWQAccObject _accessibilityParentForSubview:]):
20474        Use rendererForView.
20475        
20476        * kwq/WebCoreFrameView.h:
20477        Add WebCoreBridgeHolder protocol to get access to WebKit NSViews.
20478
204792005-03-18  David Harrison  <harrison@apple.com>
20480
20481        Reviewed by Darin, Ken.
20482
20483        <rdar://problem/3735625> AX: add AXPress action if an element has an onclick handler
20484
20485        * khtml/dom/html_form.cpp:
20486        (HTMLInputElement::click):
20487        * khtml/html/html_elementimpl.cpp:
20488        (HTMLElementImpl::click):
20489        (HTMLElementImpl::accessKeyAction):
20490        * khtml/html/html_elementimpl.h:
20491        * khtml/html/html_formimpl.cpp:
20492        (DOM::HTMLFormElementImpl::submitClick):
20493        (DOM::HTMLButtonElementImpl::click):
20494        (DOM::HTMLButtonElementImpl::accessKeyAction):
20495        (DOM::HTMLInputElementImpl::click):
20496        (DOM::HTMLInputElementImpl::accessKeyAction):
20497        (DOM::HTMLInputElementImpl::defaultEventHandler):
20498        (DOM::HTMLLabelElementImpl::accessKeyAction):
20499        (DOM::HTMLSelectElementImpl::accessKeyAction):
20500        (DOM::HTMLTextAreaElementImpl::accessKeyAction):
20501        * khtml/html/html_formimpl.h:
20502        * khtml/html/html_inlineimpl.cpp:
20503        (HTMLAnchorElementImpl::defaultEventHandler):
20504        (HTMLAnchorElementImpl::accessKeyAction):
20505        * khtml/html/html_inlineimpl.h:
20506        * khtml/rendering/render_form.cpp:
20507        (RenderFileButton::click):
20508        * khtml/rendering/render_form.h:
20509        * khtml/xml/dom_docimpl.cpp:
20510        (DocumentImpl::defaultEventHandler):
20511        * khtml/xml/dom_elementimpl.h:
20512        (DOM::ElementImpl::accessKeyAction):
20513        * kwq/DOMHTML.mm:
20514        (-[DOMHTMLInputElement click]):
20515        * kwq/KWQButton.h:
20516        * kwq/KWQButton.mm:
20517        (QButton::click):
20518        * kwq/KWQFileButton.h:
20519        * kwq/KWQFileButton.mm:
20520        (KWQFileButton::click):
20521        
20522        Add accessKeyAction parameter about whether to limit to HTMLElementImpl subclasses that JavaScript wants, or to apply to others as well.
20523        
20524        Add click() parameter about whether to send the mousedown and mouseup events in addition to the click event.
20525        
20526        * kwq/KWQAccObject.mm:
20527        (-[KWQAccObject mouseButtonListener]):
20528        Locate a mousedown, mouseup, or click handler in the current element and its ancestors.
20529        
20530        (-[KWQAccObject actionElement]):
20531        (-[KWQAccObject accessibilityIsIgnored]):
20532        (-[KWQAccObject accessibilityPerformAction:]):
20533        Consider mouseButtonListener.
20534
205352005-03-18  John Sullivan  <sullivan@apple.com>
20536
20537        Reviewed by Darin.
20538        
20539        - fixed <rdar://problem/4002164> maps that include start and end 
20540        location don't print right from maps.google.com
20541
20542	I thought I checked this in yesterday but a ChangeLog conflict aborted my checkin
20543	without me noticing.
20544
20545        * khtml/rendering/render_style.cpp:
20546        (RenderStyle::diff):
20547        flag name changed from _should_correct_text_color to _force_backgrounds_to_white
20548        
20549        * khtml/rendering/render_style.h:
20550        (khtml::RenderStyle::InheritedFlags::operator==):
20551        flag name changed from _should_correct_text_color to _force_backgrounds_to_white
20552        (khtml::RenderStyle::setBitDefaults):
20553        ditto
20554        (khtml::RenderStyle::forceBackgroundsToWhite):
20555        ditto, and method name changed too
20556        (khtml::RenderStyle::setForceBackgroundsToWhite):
20557        ditto
20558        
20559        * khtml/rendering/render_text.cpp:
20560        (InlineTextBox::paint):
20561        updated for name change; also, compare text against white instead of current bg color
20562        because we no longer actually modify the bg color (previously we would always set
20563        the bg color to white, so the result is the same)
20564        
20565        * khtml/xml/dom_docimpl.cpp:
20566        (DocumentImpl::recalcStyle):
20567        updated for name change
20568        
20569        * kwq/WebCoreBridge.mm:
20570        (-[WebCoreBridge styleSheetForPrinting]):
20571        removed this method
20572        (-[WebCoreBridge reapplyStylesForDeviceType:]):
20573        removed the code that called styleSheetForPrinting; we no longer use a stylesheet
20574        for this behavior.
20575
20576        * khtml/rendering/render_box.cpp:
20577        (RenderBox::paintBackgroundExtended):
20578        If forceBackgroundsToWhite flag is set, convert background images and
20579        background colors to white background color with no background image.
20580        
205812005-03-18  Ken Kocienda  <kocienda@apple.com>
20582
20583        Reviewed by John
20584
20585        Fix for this bug:
20586        
20587        <rdar://problem/4056718> Pasting quotes the entire message
20588
20589        * khtml/editing/htmlediting.cpp:
20590        (khtml::ReplaceSelectionCommand::doApply): After pasting, nodes are moved to the block containing
20591        the end of the pasted content in certain cases. This move logic used to stop once it moved all the
20592        siblings of the node following the last node of the pasted-in content. This means that block elements
20593        could get moved, and if the pasted-in content included a mail blockquote, this could result in
20594        one quote level getting added. The fix is to stop the move of nodes once a <br>, block element, or
20595        <table> is seen. This only affected one of the many test cases we have for such scenarios, and 
20596        the change to that result makes sense given the code change.
20597        * layout-tests/editing/pasteboard/paste-text-003-expected.txt: This test result changed in a way that
20598        adequately tests the behavior change, so I did not add a new test.
20599
206002005-03-17  Ken Kocienda  <kocienda@apple.com>
20601
20602        Reviewed by Harrison
20603
20604        Fix for this bug:
20605        
20606        <rdar://problem/4051809> 8A413: Cursor-up in a mail message sometimes gets stuck (with specific reproducible case)
20607
20608        * khtml/rendering/render_text.cpp:
20609        (RenderText::positionForCoordinates): Consider two lines: line-above and line-below. If the caret position in line-below
20610        was at an x coordinate between half way through the x coordinate of the last character on the line-above and the
20611        end of that same character, this bug would happen since the positioning code would assume that it could create a 
20612        VisiblePosition with a DOWNSTREAM affinity. Now, I check to see if the character position on the line-above is the 
20613        last character on that line, and if it is, I use UPSTREAM as the affinity.
20614
20615=== Safari-407 ===
20616
206172005-03-17  David Harrison  <harrison@apple.com>
20618
20619        Reviewed by Darin, Ken.
20620
20621        * khtml/editing/htmlediting.cpp:
20622        (khtml::EditCommandPtr::setEndingSelection):
20623        Fixed typo so that it calls setEndingSelection rather than setStartingSelection.
20624        Commented out this unused method, tho, since this is late in Tiger.  Proved unused by successful build after temporarily removing method declaration or implemenation.
20625
206262005-03-16  Kevin Decker  <kdecker@apple.com>
20627
20628        Reviewed by mjs.
20629
20630	Fixed <rdar://problem/4046665> REGRESSION (403-405): mypage.apple.com login does not work (hits assertion in Development build)
20631
20632        * kwq/WebCoreBridge.mm:
20633        (-[WebCoreBridge canLoadURL:fromReferrer:hideReferrer:]): Check always came back false when callers would send a nil NSURL to this method. Now we allow the empty url cases, eg., <frame src="">
20634
206352005-03-16  Darin Adler  <darin@apple.com>
20636
20637        Reviewed by Maciej.
20638
20639        - fixed <rdar://problem/4045203> REGRESSION (125-188): Redundant JS imports crash Safari
20640
20641        * khtml/html/htmltokenizer.h: Take inWRite bool out of NDEBUG ifdef.
20642        * khtml/html/htmltokenizer.cpp:
20643        (khtml::HTMLTokenizer::HTMLTokenizer): Take inWrite bool management code out of NDEBUG ifdef.
20644        (khtml::HTMLTokenizer::write): Ditto. Don't call end if inWrite is true, since it will be called
20645        when you return to the body of the outer write() call.
20646        (khtml::HTMLTokenizer::allDataProcessed): Don't call end() if inWrite is true for the same reason.
20647        (khtml::HTMLTokenizer::finish): Ditto.
20648
20649        * kwq/KWQWidget.mm: (QWidget::getOuterView): Removed bogus assertion that has been vexing us of late.
20650
206512005-03-16  David Harrison  <harrison@apple.com>
20652
20653        Reviewed by me (written by Patti Yeh).
20654
20655        * kwq/KWQAccObject.mm:
20656        (-[KWQAccObject doAXNextWordEndTextMarkerForTextMarker:]):
20657        Use LeftWordIfOnBoundary instead of RightWordIfOnBoundary.
20658
20659        (-[KWQAccObject doAXPreviousWordStartTextMarkerForTextMarker:]):
20660        Use RightWordIfOnBoundary instead of LeftWordIfOnBoundary.
20661
206622005-03-16  David Harrison  <harrison@apple.com>
20663
20664        Reviewed by Maciej.
20665
20666        <rdar://problem/4054590> AX: Dictionary panel does not work when page is scrolled on Safari
20667
20668        * kwq/KWQAccObject.mm:
20669        (-[KWQAccObject doAXTextMarkerForPosition:]):
20670        Add in the view's contentsX and contentsY to the point.
20671
206722005-03-16  David Harrison  <harrison@apple.com>
20673
20674        Reviewed by Maciej.
20675
20676        <rdar://problem/4048506> Deleting from beginning of editable div deletes other document elements
20677        
20678        Also changed WebKit.
20679        
20680        * khtml/editing/visible_units.h:
20681        * khtml/editing/visible_units.cpp:
20682        (khtml::startOfEditableContent):
20683        (khtml::endOfEditableContent):
20684        (khtml::inSameEditableContent):
20685        (khtml::isStartOfEditableContent):
20686        (khtml::isEndOfEditableContent):
20687        New.
20688        
20689        * kwq/WebCoreBridge.h:
20690        * kwq/WebCoreBridge.mm:
20691        (-[WebCoreBridge canDeleteRange:]):
20692        New.
20693
206942005-03-16  Ken Kocienda  <kocienda@apple.com>
20695
20696        Reviewed by Darin
20697
20698        Fix for this bug:
20699        
20700        <rdar://problem/4042935> undo doesn't work properly during inline input
20701
20702        * kwq/WebCoreBridge.h: Declare new method below.
20703        * kwq/WebCoreBridge.mm:
20704        (-[WebCoreBridge replaceMarkedTextWithText:]): New method. Wraps calls to TypingCommand::deleteKeyPressed and
20705        TypingCommand::insertText to map the way that international text input works onto the typing undo system.
20706
207072005-03-16  David Harrison  <harrison@apple.com>
20708
20709        Reviewed by Darin.
20710
20711        <rdar://problem/4044336> REGRESSION (8A398-8A409): Option-Delete also deletes space to left of deleted word
20712
20713        * khtml/editing/htmlediting.cpp:
20714        (khtml::DeleteSelectionCommand::initializePositionData):
20715        - skip smart delete if the selection to delete already starts or ends with whitespace
20716        
20717        * khtml/khtml_part.cpp:
20718        (KHTMLPart::handleMousePressEventDoubleClick):
20719        - preserve selection on double-click when range is already selected
20720        
20721        * khtml/xml/dom_position.cpp:
20722        (DOM::Position::leadingWhitespacePosition):
20723        (DOM::Position::trailingWhitespacePosition):
20724        - fix considerNonCollapsibleWhitespace action (logic was reversed)
20725        - add non-breaking space to the non-collapsable ones
20726        
20727        * kwq/WebCoreBridge.mm:
20728        (-[WebCoreBridge rangeByExpandingSelectionWithGranularity:]):
20729        (-[WebCoreBridge rangeByAlteringCurrentSelection:direction:granularity:]):
20730        - these methods do not set the selection, so remove calls to setSelectionGranularity
20731          
20732        (-[WebCoreBridge alterCurrentSelection:direction:granularity:]):
20733        (-[WebCoreBridge alterCurrentSelection:verticalDistance:]):
20734        - set the granularity back to character
20735        - the one exception is that we need to keep word granularity
20736          to preserve smart delete behavior when extending by word
20737
207382005-03-15  Maciej Stachowiak  <mjs@apple.com>
20739
20740        Reviewed by John.
20741
20742	<rdar://problem/4053266> Pressing return a few times right after a link makes the new blank lines part of the link
20743	
20744        * khtml/editing/htmlediting.cpp:
20745	(khtml::InsertLineBreakCommand::doApply): Use
20746	positionOutsideContainingSpecialElement in the right two places.
20747        (khtml::InsertParagraphSeparatorCommand::doApply): Ditto.
20748
20749	- move all these helper functions higher in the file
20750	
20751        * khtml/editing/htmlediting.cpp:
20752        (khtml::isSpecialElement):
20753        (khtml::isFirstVisiblePositionInSpecialElement):
20754        (khtml::positionBeforeNode):
20755        (khtml::positionBeforeContainingSpecialElement):
20756        (khtml::maxRangeOffset):
20757        (khtml::isLastVisiblePositionInSpecialElement):
20758        (khtml::positionAfterNode):
20759        (khtml::positionAfterContainingSpecialElement):
20760        (khtml::positionOutsideContainingSpecialElement):
20761
207622005-03-14  Maciej Stachowiak  <mjs@apple.com>
20763
20764        Reviewed by Ken.
20765
20766	<rdar://problem/4049925> Pasting right after a link makes pasted content part of the link (without visible style change)
20767        
20768        * khtml/editing/htmlediting.cpp:
20769        (khtml::positionOutsideContainingSpecialElement): made a helper
20770	function that computes a position outside the outermost containing
20771	special element if the passed in position is right at the start or
20772	end of it
20773        (khtml::InsertTextCommand::prepareForTextInsertion): use new helper here
20774        (khtml::ReplaceSelectionCommand::doApply): use it here too: this is the fix
20775        (khtml::positionBeforeNode): made static
20776        (khtml::positionBeforeContainingSpecialElement): made static
20777        (khtml::positionAfterNode): made static
20778        (khtml::positionAfterContainingSpecialElement): made static
20779
207802005-03-15  Richard Williamson   <rjw@apple.com>
20781
20782	Fixed <rdar://problem/4053658> Crash getting direction at maps.google.com
20783
20784	Add non nil style() check.
20785
20786        Reviewed by Dave Harrison.
20787
20788        * khtml/rendering/render_table.cpp:
20789        (RenderTableCell::collapsedRightBorder):
20790
207912005-03-15  Kevin Decker  <kdecker@apple.com>
20792
20793        Reviewed by John
20794	
20795	Fixed: <rdar://problem/4041374> REGRESSION (185-186): unload handlers (at least those added with addEventListener) are broken
20796
20797	The reason why UNLOAD_EVENT wouldn't dispatch was because the code would delete all event listeners at the detach() phase which is prior to closeURL(). 
20798
20799	This fixes a recent regression from:
20800
20801 <rdar://problem/3977973> pages on ebay leak referenced JavaScript objects -- over time browsing becomes super-slow
20802
20803        * khtml/khtml_part.cpp:
20804        (KHTMLPart::closeURL): After dispatching event handlers, go ahead and remove them from the DOM. 
20805        * khtml/xml/dom_docimpl.cpp:
20806        (DocumentImpl::detach): Took out the call to removeAllEventListenersFromAllNodes(). If we remove all event listeners here then when KHTMLPart::closeURL() checks for even listeners, it will never have any because they'll already be gone. 
20807
208082005-03-15  Ken Kocienda  <kocienda@apple.com>
20809
20810        Reviewed by Vicki
20811
20812        Fox for this bug:
20813        
20814        <rdar://problem/4052642> Each delete keystroke is in its own undo group; not included in undo group with other typing
20815
20816        Calling -[WebCore setSelectedDOMRange:range affinity:] had the result of "closing" any active set of typing
20817        keystrokes grouped together in a single undo operation. A change on 27 Jan in WebKit to change the way delete
20818        keystrokes are handled made this feature regress. Previous to that change, the backwards delete
20819        key went through separate code that is no longer in the tree that did not set the selection in the way
20820        it is done now.
20821        
20822        The solution is to add an extra argument to the set-selection call. The WebCoreBridge now offers this method:
20823        -[WebCore setSelectedDOMRange:range affinity:closeTyping:]. Now, callers must indicate whether setting the 
20824        selection will act to close typing or not.
20825
20826        * kwq/WebCoreBridge.h: Changed header accordingly to change method shown below.
20827        * kwq/WebCoreBridge.mm:
20828        (-[WebCoreBridge setSelectedDOMRange:affinity:closeTyping:]): Added closeTyping argument to this method.
20829
208302005-03-15  John Sullivan  <sullivan@apple.com>
20831
20832        Reviewed by Vicki.
20833        
20834        - fixed <rdar://problem/4052246> crash in KWQKHTMLPart::createPart() trying to display local file in frame
20835
20836        * kwq/KWQKHTMLPart.mm:
20837        (KWQKHTMLPart::createPart):
20838        Check part for nil before trying to ref. This was probably a longstanding code flaw revealed by
20839        the recent security fix.
20840
208412005-03-15  Kevin Decker  <kdecker@apple.com>
20842
20843        Reviewed by Ken and Maciej.
20844
20845	New fix for <rdar://problem/3667701> crash in KHTMLPart::jScriptEnabled()
20846	
20847	The tokenizer has buffers which mean parsing can continue even after loading is supposed to be stopped. If the loading process was aborted, the tokenizer should abort, too.
20848
20849        * khtml/html/htmltokenizer.cpp:
20850        (khtml::HTMLTokenizer::HTMLTokenizer): Initialize loadStopped to false.
20851        (khtml::HTMLTokenizer::write): Go ahead and bail out if loadStopped is true. 
20852        (khtml::HTMLTokenizer::processToken):
20853        * khtml/html/htmltokenizer.h: Added loadStopped flag. Changed the view pointer from a standard pointer to a QGuardedPtr.  This fixes the crash.  Now the tokenizer's handle to the view will now automatically nil-out and never dangle.
20854        * khtml/khtml_part.cpp:
20855        (KHTMLPart::closeURL): Notify the tokenizer to stop parsing. 
20856        * khtml/xml/xml_tokenizer.cpp:
20857        (khtml::XMLTokenizer::XMLTokenizer): Initialize loadStopped to false.
20858        * khtml/xml/xml_tokenizer.h:
20859        (khtml::Tokenizer::stopParsing): Added. 
20860
208612005-03-14  David Harrison  <harrison@apple.com>
20862
20863        Reviewed by Darin, Maciej.
20864
20865        <rdar://problem/4046103> REGRESSION (Mail): clicking after style change sets insertion point incorrectly
20866        
20867        Also fixes crash by adding nil check.
20868
20869        * khtml/editing/htmlediting.cpp:
20870        (khtml::MoveSelectionCommand::doApply):
20871        Check the node for nil.
20872        
20873        * khtml/khtml_part.cpp:
20874        (KHTMLPart::khtmlMouseReleaseEvent):
20875        Use the node from the event rather than from the selection.
20876
208772005-03-14  Darin Adler  <darin@apple.com>
20878
20879        Reviewed by Harrison.
20880
20881        - fixed <rdar://problem/4049776> Seed: Mail: Disable spellcheck leaves red artifacts
20882
20883        * khtml/xml/dom_docimpl.cpp:
20884        (DocumentImpl::DocumentImpl): Set markers list to be "auto-delete" so they don't all leak.
20885        (DocumentImpl::removeMarker): Remove markers list for a node when the last marker is removed
20886        for that node. Otherwise, we can have empty marker lists for each node forever until the
20887        document goes away.
20888        (DocumentImpl::removeAllMarkers): Added code to dirty the markers.
20889        (DocumentImpl::shiftMarkers): Remove unneeded empty check.
20890
20891        * kwq/WebCoreBridge.h: Added unmarkAllMisspellings for WebKit.
20892        * kwq/WebCoreBridge.mm: (-[WebCoreBridge unmarkAllMisspellings]): Added. Calls removeAllMarkers.
20893
208942005-03-14  Richard Williamson   <rjw@apple.com>
20895
20896	Fixed <rdar://problem/4027928> Tiger_8A394:Acrobat crashes while tried to remove the subscription errors by clicking on "Would you like to remove the subscription" from Tracker details view pane
20897
20898	A document may be deleted as a consequence of handling an event,
20899	as was the case with Acrobat.app.  Ensure that the document is still valid
20900	before passing the event on for further handling.
20901
20902        * khtml/xml/dom_nodeimpl.cpp:
20903        (NodeImpl::dispatchUIEvent):
20904
209052005-03-14  Ken Kocienda  <kocienda@apple.com>
20906
20907        Reviewed by me
20908
20909        Added a couple of comments about setChanged() to this code based on my experiences with 4047028.
20910
20911        * khtml/css/css_valueimpl.cpp:
20912        (DOM::CSSMutableStyleDeclarationImpl::addParsedProperties)
20913        (DOM::CSSMutableStyleDeclarationImpl::merge)
20914
209152005-03-14  Ken Kocienda  <kocienda@apple.com>
20916
20917        Reviewed by John
20918
20919        Fix for this bug:
20920        
20921        <rdar://problem/4047028> Changing quote levels on stylized text causes it to be sent as colored (Blue). Tiger8A410
20922
20923        * khtml/css/css_valueimpl.cpp:
20924        (DOM::CSSMutableStyleDeclarationImpl::removePropertiesInSet): This function now calls setChanged() at the 
20925        end of its loop if any properties were removed. This makes the style system update correctly in response
20926        to changes made by this function. The code to paste removes style from the pasted content in a 
20927        preliminary step, and the fact that the style system did not update properly left unwanted color
20928        declarations in the document.
20929
209302005-03-14  Vicki Murley  <vicki@apple.com>
20931
20932	- roll out this change for now, since it was denied by CCC
20933
20934    2005-03-11  David Harrison  <harrison@apple.com>
20935        
20936        Reviewed by Darin.
20937        
20938        <rdar://problem/4046602> WebCore invokes undefined behavior when the spell checker isn't running
20939
20940        * kwq/KWQKHTMLPart.mm:
20941        (KWQKHTMLPart::advanceToNextMisspelling):
20942        (KWQKHTMLPart::markMisspellings):
20943        Nil check checker.
20944
209452005-03-14  Ken Kocienda  <kocienda@apple.com>
20946
20947        Reviewed by John
20948
20949        Fix for this bug:
20950        
20951        <rdar://problem/4050403> Mail crashes after pasting and deleting the content of one Excel cell
20952
20953        * khtml/editing/htmlediting.cpp:
20954        (khtml::DeleteSelectionCommand::handleGeneralDelete): Add some null checks to the code. This fixes the crash, although
20955        following the steps described in the bug by John Sullivan on 3/14/05 at 10:49 AM will leave us with a "blank line" in 
20956        the document that cannot be removed (this is actually an empty table). This is undesirable, however, work Maciej is
20957        doing to fix the general-case problem of trying to edit constructs we do not handle well in editing should fix this
20958        particular case, making the deletion of this "blank line" possible. Maciej is doing this work as part of this bug:
20959        <rdar://problem/4036051> Hard to select (and thus delete) an IFRAME in an editable WebView
20960
209612005-03-14  Ken Kocienda  <kocienda@apple.com>
20962
20963        Reviewed by Darin
20964
20965        Fix for this bug:
20966        
20967        <rdar://problem/4029632> Mail crashes in DOM::NodeImpl::isBlockFlow() after pasting text with alignment style and BR element from Safari
20968        
20969        The problem is that removeInlineStyle() can remove nodes, and if either the start or end node of the
20970        selection at the time of the call to removeInlineStyle() was in a node that got removed, bad things
20971        would happen. The fix is described below.
20972
20973        * khtml/editing/htmlediting.cpp:
20974        (khtml::maxRangeOffset): Moved this static function to a different place in the file so the code below can use it.
20975        (khtml::ApplyStyleCommand::applyInlineStyle): Calling removeInlineStyle() now has the side effect of 
20976        setting the command's ending selection. Now resets start and end using the ending selection after the call to
20977        removeInlineStyle() as it is done elsewhere in this function.
20978        (khtml::ApplyStyleCommand::removeInlineStyle): Track the removal of the start or end node based on
20979        the positions passed in. If either the start or the end node is removed as part of style removal, 
20980        set an appropriate replacement start or end that is still in the document.
20981
20982=== Safari-406 ===
20983
209842005-03-14  Ken Kocienda  <kocienda@apple.com>
20985
20986        Reviewed by Darin
20987
20988        I need to roll out Kevin's change to fix 3667701. It breaks contextual fragments, and hence breaks
20989        paste in editing (among other things).
20990
20991        * khtml/html/htmltokenizer.cpp: Roll out recent change.
20992        (khtml::HTMLTokenizer::write) 
20993        * khtml/html/htmltokenizer.h: Ditto.
20994
209952005-03-13  Darin Adler  <darin@apple.com>
20996
20997        Reviewed by Ken and Maciej.
20998
20999        - fixed <rdar://problem/4049040> REGRESSION (403-405): security check prevents user stylesheet from loading (Dictionary.app doesn't work at all!)
21000
21001        * kwq/WebCoreBridge.mm: (-[WebCoreBridge canLoadURL:fromReferrer:hideReferrer:]): Changed to give "applewebdata:"
21002        documents the same privileges to open local files that "file:" documents have.
21003
210042005-03-13  Kevin Decker  <kdecker@apple.com>
21005
21006        Reviewed by mjs.
21007        
21008        Fixed: <rdar://problem/3667701> crash in KHTMLPart::jScriptEnabled()
21009        
21010        The problem here was that the tokenizer would continue to receive chunks of data from the loader already
21011        after the view and part had been destroyed.  Situations like this could arise when clicking on another link 
21012        while still loading the current view, or during self test where we rapidly open, load, and close browser
21013        windows very fast. 
21014
21015        * khtml/html/htmltokenizer.cpp: 
21016        (khtml::HTMLTokenizer::write): Simple nil check against the view. 
21017        * khtml/html/htmltokenizer.h: Changed the view pointer from a standard pointer to a QGuardedPtr.  The tokenizer's
21018        handle to the view will now automatically nil-out and never dangle.
21019
210202005-03-13  Darin Adler  <darin@apple.com>
21021
21022        Reviewed by John and Ken.
21023
21024        - fixed <rdar://problem/4044347> REGRESSION (Mail): Control-K in particular message moves insertion point to previous line
21025
21026        Tweaked the deleting code, and added three new deleting layout tests to confirm the new code works.
21027
21028        * khtml/editing/htmlediting.cpp:
21029        (khtml::DeleteSelectionCommand::handleSpecialCaseBRDelete): Removed special case with comment that said it was
21030        for the case where a "selection contains only a BR right after a block ended". This code was being triggered in
21031        more cases than just that one, and in all the cases I tested, the general delete code works fine.
21032        (khtml::DeleteSelectionCommand::handleGeneralDelete): Changed the code that decides whether to delete an entire
21033        block to understand the case where the end block is outside the start block, but contains the start block.
21034        In that case, we want to delete the entire block. Not deleting the block was causing us to delete just the <br>,
21035        and not the enclosing <div> in the case in the bug.
21036
21037        * layout-tests/editing/deleting/delete-line-015-expected.txt: Added.
21038        * layout-tests/editing/deleting/delete-line-015.html: Added.
21039        * layout-tests/editing/deleting/delete-line-016-expected.txt: Added.
21040        * layout-tests/editing/deleting/delete-line-016.html: Added.
21041        * layout-tests/editing/deleting/delete-line-017-expected.txt: Added.
21042        * layout-tests/editing/deleting/delete-line-017.html: Added.
21043        * layout-tests/editing/style/smoosh-styles-002-expected.txt: Updated to improved results. With the code change, the deletion
21044        now deletes more than it used to. The old results had an empty text node and <h1> element that were both 0-sized, and now
21045        we delete both of those.
21046
210472005-03-13  Darin Adler  <darin@apple.com>
21048
21049        - fixed <rdar://problem/4049172> REGRESSION (403-405): Gmail: text box in "Invite a friend" section overlaps other sections
21050
21051        Rolled out fix for <rdar://problem/3952698> Function buttons do not display properly with Telia Webmail
21052
21053        * khtml/rendering/render_replaced.cpp: (RenderReplaced::calcMinMaxWidth): Back to previous version of this file.
21054
210552005-03-12  Maciej Stachowiak  <mjs@apple.com>
21056
21057        Reviewed by Adele.
21058
21059	<rdar://problem/4046144> RSS pages leave a hole in local file security policy (need to revert feed: exemption)
21060        
21061	* kwq/WebCoreBridge.mm:
21062        (-[WebCoreBridge canLoadURL:fromReferrer:hideReferrer:]): Revert
21063	emergency workaround for Safari RSS, now that a new Syndication
21064	has been submitted.
21065
210662005-03-11  Maciej Stachowiak  <mjs@apple.com>
21067
21068        Reviewed by Kevin.
21069
21070	<rdar://problem/4026787> text typed after a link (pasted or Mail Link to this Page) is part of the link, underlined and colored blue
21071        
21072	The concept of this change is every time you type at the very
21073	start or very end of a link (even if nested in further inner
21074	elements), the typed text goes outside the link instead of inside.
21075	
21076	* khtml/editing/htmlediting.cpp:
21077        (khtml::InsertTextCommand::prepareForTextInsertion): Check whether
21078	we are at the first visible position or last visible position of a
21079	special element. For now this only includes HTML A elements that
21080	are links (i.e. they have an href).
21081	(khtml::isSpecialElement): Helper function that identifies special
21082	elements (for now only links).
21083        (khtml::isFirstVisiblePositionInSpecialElement): Checks if a given DOM
21084	position is equivalent to the first visible position in some containing 
21085	editable special element.
21086        (khtml::positionBeforeNode): Returns the DOM position immediately
21087	before a node.
21088        (khtml::positionBeforeContainingSpecialElement): Gives a DOM
21089	position immediately before the outermost editable containing
21090	special element where the passed-in position is equivalent to the
21091	first visible position.
21092        (khtml::maxRangeOffset): Helper to get the maximum allowed
21093	range/position offset for a node, does the right thing based on
21094	whether the node would use a character offset or child offset.
21095        (khtml::isLastVisiblePositionInSpecialElement): Similar to above,
21096	but for end of node instead of start.
21097        (khtml::positionAfterNode): Ditto.
21098        (khtml::positionAfterContainingSpecialElement): Ditto.
21099
21100	Some layout tests changed - I looked over all the diffs and found
21101	that the only changes were "junk nodes" like empty spans and text
21102	nodes moving from one spot in the tree to another. These changes
21103	are all harmless and do not affect layout or future editing.
21104
21105        * layout-tests/editing/inserting/typing-003-expected.txt:
21106        * layout-tests/editing/style/remove-underline-across-paragraph-expected.txt:
21107        * layout-tests/editing/style/remove-underline-across-paragraph-in-bold-expected.txt:
21108        * layout-tests/editing/style/remove-underline-after-paragraph-expected.txt:
21109        * layout-tests/editing/style/remove-underline-after-paragraph-in-bold-expected.txt:
21110        * layout-tests/editing/style/remove-underline-expected.txt:
21111        * layout-tests/editing/style/remove-underline-from-stylesheet-expected.txt:
21112        * layout-tests/editing/style/remove-underline-in-bold-expected.txt:
21113        * layout-tests/editing/style/typing-style-003-expected.txt:
21114        * layout-tests/editing/style/unbold-in-bold-expected.txt:
21115        * layout-tests/editing/style/underline-expected.txt:
21116
211172005-03-11  Adele Amchan  <adele@apple.com>
21118
21119        backing out fix for <rdar://problem/4021711> REGRESSION (125-188): blank pages when browsing forum at cooperativeresearch.org - cached external script problem
21120
21121        This caused the following regressions (that we know of): 
21122        <rdar://problem/4047445> REGRESSION (Safari-400-403?): Some or all page contents sometimes don't appear (macworld.com)
21123        <rdar://problem/4046153> 8a409: Problem loading Citibank page in Safari 2 (403)
21124        <rdar://problem/4047801> REGRESSION (402-403): .Mac homepage links don't work
21125
21126        * khtml/html/htmltokenizer.cpp:
21127        (khtml::HTMLTokenizer::scriptHandler):
21128
211292005-03-11  David Harrison  <harrison@apple.com>
21130
21131        Reviewed by Darin.
21132
21133        <rdar://problem/4046602> WebCore invokes undefined behavior when the spell checker isn't running
21134
21135        * kwq/KWQKHTMLPart.mm:
21136        (KWQKHTMLPart::advanceToNextMisspelling):
21137        (KWQKHTMLPart::markMisspellings):
21138        Nil check checker.
21139
211402005-03-11  Ken Kocienda  <kocienda@apple.com>
21141
21142        Reviewed by me
21143
21144        * ForwardingHeaders/editing/visible_units.h: Added.
21145
211462005-03-11  Ken Kocienda  <kocienda@apple.com>
21147
21148        Reviewed by John
21149
21150        Fix for this bug:
21151        
21152        <rdar://problem/4045521> Hitting return key with full line selected does not add blank line as it should
21153
21154        * khtml/editing/htmlediting.cpp:
21155        (khtml::InsertParagraphSeparatorCommand::doApply): Removed some "special-case" code from this 
21156        function that would look for a selection that started and ended in a different block, and would
21157        then bail right after the deletion of the selection without inserting a paragraph separator.
21158        This was just wrong. So, the code change is removal only. When the general-case code runs instead
21159        of the erroneous special-case code, the bug goes away.
21160        
21161        New tests:
21162        
21163        * layout-tests/editing/inserting/return-key-with-selection-001-expected.txt: Added.
21164        * layout-tests/editing/inserting/return-key-with-selection-001.html: Added.
21165        * layout-tests/editing/inserting/return-key-with-selection-002-expected.txt: Added.
21166        * layout-tests/editing/inserting/return-key-with-selection-002.html: Added.
21167        * layout-tests/editing/inserting/return-key-with-selection-003-expected.txt: Added.
21168        * layout-tests/editing/inserting/return-key-with-selection-003.html: Added.
21169
211702005-03-11  David Harrison  <harrison@apple.com>
21171
21172        Reviewed by Darin.
21173
21174        <rdar://problem/4009446> AX: kAXTextMarkerForPositionParameterizedAttribute not working correctly (required for Dictionary pop-up)
21175
21176        * kwq/KWQAccObject.mm:
21177        (-[KWQAccObject accessibilityAttributeValue:]):
21178        Comment changes.
21179        
21180        (-[KWQAccObject doAXTextMarkerForPosition:]):
21181        Dig into widgets.
21182        
21183        (-[KWQAccObject doAXBoundsForTextMarkerRange:]):
21184        Use the selection's document instead of the top document, to accommodate frames, etc.
21185        
21186        (-[KWQAccObject accessibilityAttributeValue:forParameter:]):
21187        Fixed parameter processing to look for NSValue instead of AXValue.
21188
211892005-03-11  Ken Kocienda  <kocienda@apple.com>
21190
21191        Reviewed by Harrison
21192
21193        Fix for this bug:
21194        
21195        <rdar://problem/3972665> 8A360: HTML message partially truncated on left hand side, text-indent from Script Editor
21196        
21197        This was fixed, then regressed with Harrison's fix for this bug:
21198        
21199        <rdar://problem/3948453> Can't type accented chars as first character in Stickies widget
21200
21201        * khtml/editing/htmlediting.cpp:
21202        (khtml::ReplaceSelectionCommand::doApply): My now addresses both problems in a way that they no longer
21203        clobber each other.
21204
212052005-03-10  Ken Kocienda  <kocienda@apple.com>
21206
21207        Reviewed by John
21208
21209        Fix for these bugs:
21210        
21211        <rdar://problem/4045511> Copying and pasting end-of-paragraph selection puts insertion point in wrong place
21212        <rdar://problem/4045513> Copying and pasting selection starting at end of paragraph can incorrectly remove line break
21213
21214        The copy/paste code before this patch had no notion of a "logical newline" at the start of the selection. We have
21215        had a similar notion for "logical newline" at the end of the selection for quite some time. To fix these bugs, we
21216        need to introduce the same idea for selection starts.
21217
21218        * khtml/editing/htmlediting.cpp:
21219        (khtml::ReplacementFragment::ReplacementFragment): Process the "logical newline" at start as we write it out
21220        in markup. Set the bit we added to this object to signify we have such a newline.
21221        (khtml::ReplaceSelectionCommand::doApply): Many, many changes to introduce the new "logical newline" at start concept.
21222        I also tried to simply the code that sets the start position for inserting content to be pasted. I also improved a
21223        weakness in the smart-paste code. Now, we check before and after the paste for whether we need to add a leading or
21224        trailing space. The code previous to this patch only did a "before" check, with the result that we sometimes added
21225        a second space. In other words, the code did not realize that DOM changes done by pasting could cause formerly
21226        unrendered whitespace to become rendered. Also moved line placeholder clean up code to its own function.
21227        (khtml::ReplaceSelectionCommand::removeLinePlaceholderIfNeeded): New helper that further refines the notion
21228        of when we can remove a line placeholder. The definition is now, "If a line placeholder is at the visible start
21229        and visible end of its line, keep it; otherwise remove it".
21230        * khtml/editing/htmlediting.h: Declare new functions. Rework inlines in ReplacementFragment class to account for
21231        addition of new "logical newline" at start concept.
21232        (khtml::ReplacementFragment::hasInterchangeNewlineAtStart): New accessor.
21233        (khtml::ReplacementFragment::hasInterchangeNewlineAtEnd): Renamed from hasInterchangeNewline(), since before we
21234        only had a bit for the end, hence we did not need to distinguish it from the start.
21235        * khtml/editing/markup.cpp:
21236        (khtml::createMarkup): Added code to detect and write out markup for cases where we have a "logical newline" at start.
21237        * khtml/xml/dom2_rangeimpl.cpp:
21238        (DOM::RangeImpl::startPosition): New helper.
21239        (DOM::RangeImpl::endPosition): Ditto.
21240        * khtml/xml/dom2_rangeimpl.h: Declare new helpers.
21241        
21242        New tests:
21243        * layout-tests/editing/pasteboard/paste-line-endings-001-expected.txt: Added.
21244        * layout-tests/editing/pasteboard/paste-line-endings-001.html: Added.
21245        * layout-tests/editing/pasteboard/paste-line-endings-002-expected.txt: Added.
21246        * layout-tests/editing/pasteboard/paste-line-endings-002.html: Added.
21247        * layout-tests/editing/pasteboard/paste-line-endings-003-expected.txt: Added.
21248        * layout-tests/editing/pasteboard/paste-line-endings-003.html: Added.
21249        * layout-tests/editing/pasteboard/paste-line-endings-004-expected.txt: Added.
21250        * layout-tests/editing/pasteboard/paste-line-endings-004.html: Added.
21251        * layout-tests/editing/pasteboard/paste-line-endings-005-expected.txt: Added.
21252        * layout-tests/editing/pasteboard/paste-line-endings-005.html: Added.
21253        * layout-tests/editing/pasteboard/paste-line-endings-006-expected.txt: Added.
21254        * layout-tests/editing/pasteboard/paste-line-endings-006.html: Added.
21255        * layout-tests/editing/pasteboard/paste-line-endings-007-expected.txt: Added.
21256        * layout-tests/editing/pasteboard/paste-line-endings-007.html: Added.
21257        * layout-tests/editing/pasteboard/paste-line-endings-008-expected.txt: Added.
21258        * layout-tests/editing/pasteboard/paste-line-endings-008.html: Added.
21259        * layout-tests/editing/pasteboard/paste-line-endings-009-expected.txt: Added.
21260        * layout-tests/editing/pasteboard/paste-line-endings-009.html: Added.
21261        * layout-tests/editing/pasteboard/paste-line-endings-010-expected.txt: Added.
21262        * layout-tests/editing/pasteboard/paste-line-endings-010.html: Added.
21263
21264=== Safari-405 ===
21265
212662005-03-10  Darin Adler  <darin@apple.com>
21267
21268        Reviewed by Richard.
21269
21270        - fixed <rdar://problem/4037700> Every character typed causes stat call for /usr/share/icu/icudt32b_char.brk
21271
21272        * khtml/rendering/render_text.cpp: (getCharacterBreakIterator): Set boolean "got iterator" to true.
21273
212742005-03-10  Darin Adler  <darin@apple.com>
21275
21276        Reviewed by Ken.
21277
21278        - fixed <rdar://problem/4042867> "Bigger" changes the font size of too much text when the selection is on a style-change boundary
21279
21280        * khtml/editing/htmlediting.cpp: (khtml::ApplyStyleCommand::applyRelativeFontStyleChange):
21281        Advance out of the starting text node if we're at the end of it.
21282
212832005-03-10  Darin Adler  <darin@apple.com>
21284
21285        * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::write): Fixed assertion for nested calls to write.
21286
212872005-03-10  David Harrison  <harrison@apple.com>
21288
21289        Reviewed by Darin.
21290
21291        <rdar://problem/4032346> REGRESSION (Mail): changing 1st line of a URL that wraps to two lines doesn't always update 2nd line
21292
21293        * khtml/rendering/bidi.cpp:
21294        (khtml::RenderBlock::matchedEndLine):
21295        Look at first clean line in case line wrap implicitly dirtied it.
21296
212972005-03-10  Maciej Stachowiak  <mjs@apple.com>
21298
21299        Reviewed by Vicki.
21300
21301	<rdar://problem/4046018> REGRESSION (TOT): RSS pages don't display anything
21302        
21303	* kwq/WebCoreBridge.mm:
21304        (-[WebCoreBridge canLoadURL:fromReferrer:hideReferrer:]): Exempt
21305	feed: and feeds: pages from the local file security check.
21306
213072005-03-10  Darin Adler  <darin@apple.com>
21308
21309        Change written by Steve Peters, reviewed by me.
21310
21311        - fixed <rdar://problem/4045924> improve compareBoundaryPoints to make style changes faster
21312
21313        * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::compareBoundaryPoints):
21314        Do early outs in a couple of the loops to make things faster.
21315
213162005-03-10  Jens Alfke  <jens@apple.com>
21317
21318        Reviewed by rjw.
21319
21320	Fixes <rdar://problem/4040848> "REGR: Sun security-check demo applet does not load". My earlier fix for 3603191 deferred loading the applet until the </applet> tag is reached, so all <param>s will be available. Unfortunately that meant that if the </applet> tag was missing, the applet would never load at all. So instead, the loading needs to happen when the ID_APPLET tag is popped from the parser stack for any reason.
21321
21322	I've restored the old NodeImpl::closeRenderer() method. Except it's now virtual, with a no-op base implementation, and is overridden by HTMLAppletElementImpl, replacing its setAllParamsAvailable method that I added a few weeks ago when fixing 3603191.
21323
21324	This ensures that the applet will get loaded even if there is no explicit </applet> tag.
21325
21326	The changes to htmlparser.cpp back out my earlier change and restore the lines that were deleted on 8/3/04 when the old closeRenderer was removed.
21327
21328        * khtml/html/html_objectimpl.cpp:
21329        (HTMLAppletElementImpl::closeRenderer):
21330        * khtml/html/html_objectimpl.h:
21331        * khtml/html/htmlparser.cpp:
21332        (KHTMLParser::insertNode):
21333        (KHTMLParser::processCloseTag):
21334        (KHTMLParser::popOneBlock):
21335        * khtml/xml/dom_nodeimpl.h:
21336        (DOM::NodeImpl::closeRenderer):
21337
213382005-03-10  Ken Kocienda  <kocienda@apple.com>
21339
21340        Reviewed by John
21341
21342        Fix for this bug:
21343        
21344        <rdar://problem/4024929> REGRESSION (Mail): Pasting text with multiple reply levels removes one level instead of all
21345        
21346        The code to figure out which node to use to merge into an existing line did not drill into the first inline element
21347        as needed to make the feature work as user expect. Instead, it looked at the first node, and if it was a block, it
21348        skipped that node. This worked for some cases (including the important "paste-as-quotation" case) but obviously 
21349        doesn't work for content quoted more than once.
21350        
21351        Now, mergeStartNode() will look for the first node in pasted content that is not a block. It will now also look
21352        for nodes specially marked by Mail as a node added to make "Paste As Quotation" work. It won't skip those. 
21353        
21354        NOTE: This change will break Mail's "Paste As Quotation" feature for TOT WebKit users, but this is only a temporary 
21355        problem that will exist until we sync up with Mail's pending change to mark nodes as needed in its pasteAsQuotation:
21356        method.
21357        
21358        * khtml/editing/html_interchange.h: Add ApplePasteAsQuotation constant used to check for "marked" blockquotes.
21359        * khtml/editing/htmlediting.cpp:
21360        (khtml::ReplacementFragment::mergeStartNode): Look for first node that is either not a block or is marked as
21361        an ApplePasteAsQuotation node.
21362        (khtml::isMailPasteAsQuotationNode): New helper that looks for nodes marked with ApplePasteAsQuotation.
21363        * khtml/editing/htmlediting.h: Updated header for new function.
21364        
21365        This test result changed is an acceptable way.
21366        
21367        * layout-tests/editing/pasteboard/paste-text-013-expected.txt
21368        * layout-tests/editing/pasteboard/paste-text-013.html
21369
21370        NOTE: This change causes a regression in this layout test:
21371
21372        * layout-tests/editing/pasteboard/paste-text-013.html
21373
21374        This problem will need to be fixed separately, and this bug has been filed to track this problem:
21375        <rdar://problem/4045513> Copying and pasting selection starting at end of paragraph can incorrectly remove line break
21376
213772005-03-09  Maciej Stachowiak  <mjs@apple.com>
21378
21379        Reviewed by Richard.
21380
21381	<rdar://problem/4040776> Dashboard (Weather widget) is a memory hog
21382        
21383	Change things around so the event listeners for XMLHttpRequest
21384	mark their JS listener objects instead of holding a hard
21385	reference, to avoid an unbreakable reference cycle.
21386
21387	* khtml/ecma/kjs_events.cpp:
21388        (JSAbstractEventListener::JSAbstractEventListener):
21389        (JSAbstractEventListener::~JSAbstractEventListener):
21390        (JSAbstractEventListener::handleEvent):
21391        (JSAbstractEventListener::eventListenerType):
21392        (JSUnprotectedEventListener::JSUnprotectedEventListener):
21393        (JSUnprotectedEventListener::~JSUnprotectedEventListener):
21394        (JSUnprotectedEventListener::listenerObj):
21395        (JSUnprotectedEventListener::windowObj):
21396        (JSUnprotectedEventListener::mark):
21397        (JSEventListener::JSEventListener):
21398        (JSEventListener::~JSEventListener):
21399        (JSEventListener::listenerObj):
21400        (JSEventListener::windowObj):
21401        (JSLazyEventListener::JSLazyEventListener):
21402        * khtml/ecma/kjs_events.h:
21403        * khtml/ecma/kjs_html.h:
21404        * khtml/ecma/kjs_window.cpp:
21405        (Window::getJSEventListener):
21406        (Window::getJSUnprotectedEventListener):
21407        * khtml/ecma/kjs_window.h:
21408        * khtml/ecma/xmlhttprequest.cpp:
21409        (KJS::XMLHttpRequest::putValue):
21410        (KJS::XMLHttpRequest::mark):
21411        * khtml/ecma/xmlhttprequest.h:
21412        * khtml/khtml_part.h:
21413
214142005-03-06  Maciej Stachowiak  <mjs@apple.com>
21415
21416        Reviewed by Darin.
21417
21418	<rdar://problem/4005575> Arbitrary file disclosure vulnerability due to ability to load local html from remote content
21419        
21420        * khtml/ecma/kjs_html.cpp:
21421        (KJS::HTMLDocument::putValue):
21422        * khtml/ecma/kjs_window.cpp:
21423        (Window::put):
21424        (WindowFunc::tryCall):
21425        (Location::put):
21426        (LocationFunc::tryCall):
21427        * khtml/khtml_part.cpp:
21428        (KHTMLPart::begin):
21429        (KHTMLPart::scheduleLocationChange):
21430        (KHTMLPart::slotRedirect):
21431        (KHTMLPart::processObjectRequest):
21432        * khtml/khtml_part.h:
21433        * khtml/khtmlpart_p.h:
21434        * kwq/KWQKHTMLPart.mm:
21435        (KWQKHTMLPart::openURLRequest):
21436        (KWQKHTMLPart::urlSelected):
21437        (KWQKHTMLPart::createPart):
21438        * kwq/KWQKHTMLPartBrowserExtension.mm:
21439        (KHTMLPartBrowserExtension::createNewWindow):
21440        * kwq/WebCoreBridge.h:
21441        * kwq/WebCoreBridge.mm:
21442        (hasCaseInsensitivePrefix):
21443        (-[WebCoreBridge didNotOpenURL:pageCache:]):
21444        (-[WebCoreBridge canLoadURL:fromReferrer:hideReferrer:]):
21445
214462005-03-09  Richard Williamson   <rjw@apple.com>
21447
21448	Fixed <rdar://problem/4032938> Safari: text layout for MS P Gothic font is corrupted
21449
21450	Remove our hacked special case now we have our own cache of
21451	which fonts are fixed  pitch.
21452
21453        Reviewed by Maciej.
21454
21455        * kwq/KWQFont.mm:
21456        (QFont::isFixedPitch):
21457
214582005-03-09  David Harrison  <harrison@apple.com>
21459
21460        Reviewed by Maciej.
21461
21462        <rdar://problem/4037141> REGRESSION (Mail): Pasting deletes preceding blank lines with certain steps
21463
21464        * khtml/editing/htmlediting.cpp:
21465        (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent):
21466        Add check for anonymous text after blocks.
21467
214682005-03-08  Ken Kocienda  <kocienda@apple.com>
21469
21470        Reviewed by John
21471
21472        Fix for these bugs:
21473        
21474        <rdar://problem/4039661> crash in ApplyStyleCommand::applyBlockStyle pasting contents of webpage into Mail or Blot
21475        <rdar://problem/4039672> hang in moveParagraphContentsToNewBlockIfNecessary after pasting contents of webpage into Blot
21476
21477        * khtml/editing/htmlediting.cpp:
21478        (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): Fix for 4039672. Iteration needs to do
21479        a traverseNextSibling(), not a traverseNextNode(). The latter might iterate into a child that already got moved, and
21480        the code can infinite loop as a result.
21481        (khtml::ApplyStyleCommand::applyBlockStyle): Fix for 4039661. This function iterates over a set of nodes to apply
21482        block styles. Before, the iteration would go from the start to the end of the selection, and apply block styles
21483        as it went. However, the act of applying style could confuse the iteration. Now I iterate and store the relevant
21484        nodes in QPtrList before doing any style manipulation, and then iterate that set of nodes.
21485
214862005-03-08  Darin Adler  <darin@apple.com>
21487
21488        Change written by Hyatt, reviewed by me.
21489
21490        - fixed <rdar://problem/3952698> Function buttons do not display properly with Telia Webmail
21491
21492        * khtml/rendering/render_replaced.cpp: (RenderReplaced::calcMinMaxWidth):
21493        Only use a minWidth of 0 for images with a percentage value. Other replaced elements aren't scalable
21494        so their minWidth should be their calculated width. This has been wrong all along, but it's a relatively
21495        safe change because it only affects replaced elements' min-width.
21496
214972005-03-08  David Harrison  <harrison@apple.com>
21498
21499        Reviewed by Ken.
21500
21501        <rdar://problem/4039006> REGRESSION (Mail): Command-left-arrow goes to the start of the wrong line in particular message
21502
21503        * khtml/editing/visible_units.cpp:
21504        (khtml::startOfLine):
21505        Use firstLeafChild() instead of firstChild().
21506
215072005-03-08  Richard Williamson   <rjw@apple.com>
21508
21509	Fixed by Tom Madden.
21510
21511	Fixed <rdar://problem/4038586> 8A402: Osaka-Mono text overlaps when typing with input method
21512
21513	We weren't clearing the "all ascii" flag when setting text on
21514	RenderText.
21515
21516        Reviewed by Richard Williamson.
21517
21518        * khtml/rendering/render_text.cpp:
21519        (RenderText::setText):
21520
215212005-03-08  Darin Adler  <darin@apple.com>
21522
21523        Reviewed by Ken and Maciej.
21524
21525        - fixed <rdar://problem/3988809> REGRESSION (Mail): wide space characters are turned into plain old spaces when typed or pasted
21526
21527        Changed the few places where it matters to use a "collapsible whitespace" concept instead of
21528        the general whitespace concept. This means treating only ' ' and '\n' specially instead of
21529        including other space characters, which matches what the space-collapsing logic does in RenderText,
21530        although it really needs to behave differently based on whitespace mode.
21531
21532        * khtml/editing/visible_text.h: (khtml::isCollapsibleWhitespace): Added. This returns true only for
21533        ' ' and '\n' since they are the only characters collapsed once text is in the DOM. But really it
21534        can't do the job ignoring white-space mode, so some day it must go.
21535
21536        * khtml/editing/html_interchange.cpp: (convertHTMLTextToInterchangeFormat): Changed to use
21537        isCollapsibleWhitespace and removed unnecessary calls to latin1().
21538
21539        * khtml/editing/htmlediting.cpp:
21540        (khtml::isNBSP): Removed unnecessary creation/destruction of QChar each time this is called.
21541        (khtml::nextCharacterIsCollapsibleWhitespace): Renamed from isWS and changed to use isCollapsibleWhitespace.
21542        (khtml::DeleteSelectionCommand::fixupWhitespace): Use isCollapsibleWhitespace instead of isWS,
21543        since we only want to do our NBSP tricks for collapsible whitespace.
21544        (khtml::InsertTextCommand::input): Changed use of isTab to instead say == "\t" since that does the
21545        same thing and is arguably just as clear. Changed use of isWS to == " " since the input text can't
21546        include any "\n" characters, and really a plain old space is the only collapsible thing that can
21547        be passed in. Use isCollapsibleWhitespace instead of isWS since we want to do NBSP tricks only for
21548        collapsible whitespace, not all whitespace.
21549        (khtml::InsertTextCommand::insertSpace): Use isCollapsibleWhitespace instead of isWS since we want
21550        to do NBSP tricks only for collapsible whitespace, not all whitespace.
21551        (khtml::RebalanceWhitespaceCommand::doApply): Ditto.
21552
21553        * khtml/xml/dom_position.h: Changed treatNBSPAsWhiteSpace parameters to considerNonCollapsibleWhitespace
21554        parameters. The most common callers are only interested in collapsible whitespace, and the smart copy
21555        and paste callers want to include all whitespace, including non-breaking spaces and all the Unicode spaces.
21556        * khtml/xml/dom_position.cpp:
21557        (DOM::Position::leadingWhitespacePosition): Rename the parameter, and use either QChar::isSpace or
21558        isCollapsibleWhitespace depending on the boolean passed in.
21559        (DOM::Position::trailingWhitespacePosition): Ditto.
21560
215612005-03-07  John Sullivan  <sullivan@apple.com>
21562
21563        Reviewed by Darin.
21564        
21565        - <rdar://problem/4040868> REGRESSION (Mail, 403-403+): Drag and drop deletes text, 
21566        many other bad editing problems
21567
21568        * khtml/rendering/render_text.cpp:
21569        (RenderText::caretMaxOffset):
21570        A "-" should have been a "+" in this method that was tweaked an hour ago. Editing
21571        was completely horked.
21572
215732005-03-07  Richard Williamson   <rjw@apple.com>
21574
21575	Additional nil check from fix for 4040749.
21576
21577        * khtml/rendering/render_box.cpp:
21578        (RenderBox::setStyle):
21579
215802005-03-07  Richard Williamson   <rjw@apple.com>
21581
21582	Additional nil check from fix for 4040749.
21583
21584        * khtml/rendering/render_layer.cpp:
21585        (RenderLayer::updateLayerPosition):
21586
215872005-03-07  David Harrison  <harrison@apple.com>
21588
21589        Reviewed by Darin.
21590
21591        <rdar://problem/4033202> REGRESSION (Mail): Can't arrow up at a particular spot in a particular Mail message
21592
21593        Doublecheck that new position is really on a different line, because the VisiblePosition constructor does not.
21594        Filed <rdar://problem/4040763> for that problem.
21595
21596        * khtml/editing/visible_units.cpp:
21597        (khtml::previousLinePosition):
21598
215992005-03-07  Richard Williamson   <rjw@apple.com>
21600
21601	Fixed <rdar://problem/4040749> REGRESSION (125-178): opacity style not working, breaks fading images on okcupid.com
21602
21603	When layers are dynamically created/removed as a result of changing opacity they weren't being correctly
21604	sized and positioned.  This happens whenever opacity goes from < 1 to 1.
21605
21606        Reviewed by Darin.
21607
21608        * khtml/rendering/render_box.cpp:
21609        (RenderBox::setStyle):
21610        * khtml/rendering/render_layer.cpp:
21611        (RenderLayer::updateLayerPosition):
21612
216132005-03-07  Christy Warren  <kali@apple.com>
21614
21615        Reviewed by Darin
21616
21617        * khtml/rendering/render_text.cpp:
21618        (RenderText::caretMinOffset): modified to handle BIDI case by checking all text boxes for min offset
21619        (RenderText::caretMaxOffset): modified to handle BIDI case by checking all text boxes for max offset
21620
216212005-03-07  David Harrison  <harrison@apple.com>
21622
21623        Reviewed by Ken.
21624
21625        <rdar://problem/4029225> REGRESSION (Mail): Crash if hit return after dragging in attachment - DeleteSelectionCommand::initializePositionData
21626
21627        Work around the fact that the height() of a BR is 0 if there are no text elements on the line, even if there are replaced elements.
21628        Filed <rdar://problem/4040358> RenderBR height() is not accurate.
21629        
21630        * khtml/editing/htmlediting.cpp:
21631        (khtml::ReplaceSelectionCommand::doApply):
21632        When height is 0, double check that the placeholder is the first position on the line.
21633
21634=== Safari-403 ===
21635
216362005-03-07  Ken Kocienda  <kocienda@apple.com>
21637
21638        Reviewed by Vicki
21639    
21640        Fix for this bug:
21641        
21642        <rdar://problem/4040136> Expose SPI for WebCore's functions to create document fragments from plain text and markup strings
21643
21644        * kwq/DOMHTML.mm: Add two new SPI functions.
21645        (-[DOMHTMLDocument _createDocumentFragmentWithMarkupString:baseURLString:])
21646        (-[DOMHTMLDocument _createDocumentFragmentWithText:])
21647        * kwq/DOMPrivate.h: Declare the new SPI here, a privately-exported header, so Mail can make use of it.
21648
216492005-03-07  Ken Kocienda  <kocienda@apple.com>
21650
21651        Reviewed by John
21652
21653        Fix for this bug:
21654        
21655        <rdar://problem/4039676> REGRESSION (Mail): in reply, <cr> on pasted text (without trailing newline) is eaten when pasted above date
21656
21657        * khtml/editing/htmlediting.cpp:
21658        (khtml::ReplaceSelectionCommand::doApply): Code to "eat" a <br> element, that was creating an otherwise empty line, was running
21659        when it should not. If the content being pasted in does not end in a "logical" newline itself, then the <br> already
21660        in the content needs to be preserved. A simple one-line change now sees to this.
21661        
21662        * layout-tests/editing/pasteboard/paste-text-010-expected.txt: This test now has an extra, but harmless,
21663        <br> at the end of a paragraph. This makes sense given the code change.
21664
21665        New test:
21666        * layout-tests/editing/pasteboard/paste-text-018-expected.txt: Added.
21667        * layout-tests/editing/pasteboard/paste-text-018.html: Added.
21668
216692005-03-07  Ken Kocienda  <kocienda@apple.com>
21670
21671        Reviewed by John
21672
21673        Fix for this bug:
21674        
21675        <rdar://problem/4035648> REGRESSION (Mail): line feed in source HTML file causes bad copy/paste behavior
21676
21677        The createMarkup() function in markup.cpp iterates over the nodes in a range,
21678        and does some bookkeeping to figure out when to add close tags to the markup.
21679        Some code added at the start of the loop to prevent markup from being written
21680        for unrendered nodes short-circuited the rest of the loop, and so prevented
21681        the close-tag-writing code from running when it should.
21682
21683        This is why the "plain" text wound up inside of the bold tag in the example
21684        above. The addition of the unrendered return character caused an incorrect
21685        delay in the close tag for the bold element from being written out, with the
21686        result being that it wound up including additional content.
21687
21688        The fix is to add checks for node renderers throughout the loop at the points
21689        where markup is written out for each node. This allows the additional close
21690        tag logic to run as needed.
21691
21692        All layout tests pass with this change.
21693
21694        * khtml/editing/markup.cpp:
21695        (khtml::createMarkup)
21696
21697        New test:
21698        
21699        * layout-tests/editing/pasteboard/paste-4035648-fix-expected.txt: Added.
21700        * layout-tests/editing/pasteboard/paste-4035648-fix.html: Added.
21701
217022005-03-06  Christy Warren  <kali@appple.com>
21703
21704        Reviewed by Ken
21705
21706        * khtml/rendering/render_text.cpp:
21707        (lastRendererOnPrevLine): helper for RenderText::caretRect
21708        (RenderText::caretRect): added code to properly handle bidi ordered text boxes
21709
217102005-03-06  Christy Warren  <kali@apple.com>
21711
21712        Reviewed by Darin.
21713
21714        * khtml/editing/visible_position.cpp: Eliminated code that cuts off searching through the text boxes based on an assumption that breaks under bidi
21715        (khtml::VisiblePosition::isCandidate):
21716        * kwq/KWQFontMetrics.mm:
21717        (QFontMetrics::checkSelectionPoint): Made the initialization of the WebCoreStyle honor the reversed flag
21718
217192005-03-05  John Sullivan  <sullivan@apple.com>
21720
21721        Reviewed by Maciej.
21722        
21723        - fixed <rdar://problem/4038417> Mail crashed in StyleChange::checkForLegacyHTMLStyleChange 
21724        when composing a reply
21725
21726        * khtml/editing/htmlediting.cpp:
21727        (khtml::StyleChange::checkForLegacyHTMLStyleChange):
21728        Added missing nil check.
21729
217302005-03-05  Darin Adler  <darin@apple.com>
21731
21732        Reviewed by Don.
21733
21734        - fixed <rdar://problem/4038478> Crash in renderer viewing RSS feed at feed://wvs.topleftpixel.com/index.rdf
21735
21736        * khtml/xml/dom_docimpl.cpp: (widgetForNode): Check for nil before going from node to renderer.
21737
217382005-03-05  Darin Adler  <darin@apple.com>
21739
21740        Reviewed by Richard.
21741
21742        - fixed <rdar://problem/4037700> Every character typed causes stat call for /usr/share/icu/icudt32b_char.brk
21743
21744        * khtml/rendering/render_text.cpp:
21745        (getCharacterBreakIterator): Added. Helper that sets up an iterator for the passed-in text.
21746        Shares a single global iterator (fast, albeit not thread-safe).
21747        (RenderText::previousOffset): Changed to call getCharacterBreakIterator.
21748        (RenderText::nextOffset): Ditto.
21749
217502005-03-05  Ken Kocienda  <kocienda@apple.com>
21751
21752        Reviewed by Darin
21753
21754        Fix for this bug:
21755        
21756        <rdar://problem/4038267> REGRESSION (Mail): Crash copying and pasting end of paragraph
21757
21758        Code to handle content that has a "logical" newline at the end of the pasted content, and the code
21759        to adjust the selection at the end of the paste operation made an assumption that at least one
21760        node had been inserted by the paste command. This is not necessarily true in the case where the sole content
21761        in the pasted content is one of these "logical" newlines. Adjust some code around so that we don't deref
21762        null, but still adjust the selection correctly for this case. In each of the two functions below, some
21763        null checks have been added, and some code has been rearranged a little bit to continue on through
21764        the end of completeHTMLReplacement, even if no nodes have been inserted. The patch looks bigger and more
21765        complicated than the conceptual change.
21766
21767        * khtml/editing/htmlediting.cpp:
21768        (khtml::ReplaceSelectionCommand::doApply)
21769        (khtml::ReplaceSelectionCommand::completeHTMLReplacement)
21770        
21771        * layout-tests/editing/pasteboard/paste-4038267-fix-expected.txt: Added.
21772        * layout-tests/editing/pasteboard/paste-4038267-fix.html: Added.
21773
217742005-03-05  Darin Adler  <darin@apple.com>
21775
21776        Reviewed by John.
21777
21778        - fixed <rdar://problem/4025918> images copied from Safari with relative src URLs aren't pasted into Mail messages (KURL resolves base URLs incorrectly)
21779
21780        * kwq/KWQKURL.mm: (KURL::KURL): Add a slash at the start of the path if a relative part is adding
21781        a path onto a URL that has "pre-path" bits like host name, but no path yet. This doesn't come up
21782        for http because in that case we add a trailing "/" as part of canonicalization.
21783
217842005-03-04  John Sullivan  <sullivan@apple.com>
21785
21786        Reviewed by Kevin.
21787        
21788        - fixed <rdar://problem/4033705> REGRESSION (Mail): Copy/Paste from Excel 
21789        crashes Mail in KWQKHTMLPart::fontForSelection(bool*) const + 232
21790
21791        * kwq/KWQKHTMLPart.mm:
21792        (KWQKHTMLPart::fontForSelection):
21793        Check for nil startNode, not just nil renderer.
21794
217952005-03-04  David Harrison  <harrison@apple.com>
21796
21797        Reviewed by Ken, Richard.
21798
21799        <rdar://problem/3996383> REGRESSION (Mail): Deleting all of first line also deletes line ending
21800
21801        Problem was the placeholder check was based on 0 height block, but the block in this
21802        case is the BODY, which has other content even though the paragraph is gone.
21803        
21804        * khtml/editing/htmlediting.cpp:
21805        (khtml::CompositeEditCommand::insertBlockPlaceholder):
21806        Now does insert instead of append!
21807    
21808        (khtml::CompositeEditCommand::appendBlockPlaceholder):
21809        New.  Actually does append.
21810        
21811        (khtml::CompositeEditCommand::addBlockPlaceholderIfNeeded):
21812        Renamed from insertBlockPlaceholderIfNeeded because it can insert or append.  Also accepts "force insert" flag.
21813        
21814        (khtml::CompositeEditCommand::removeBlockPlaceholder):
21815        Renamed for succinctness from removeBlockPlaceholderIfNeeded.
21816        
21817        (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent):
21818        (khtml::DeleteSelectionCommand::moveNodesAfterNode):
21819        Use renamed methods.
21820        
21821        (khtml::DeleteSelectionCommand::doApply):
21822        Use addBlockPlaceholderIfNeeded "force insert" flag if deleting whole paragraphs did not leave an empty one.
21823        
21824        (khtml::InsertParagraphSeparatorCommand::doApply):
21825        (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
21826        (khtml::InsertTextCommand::input):
21827        Use renamed methods.
21828        
21829        * khtml/editing/htmlediting.h:
21830        Renamed and new methods per above.
21831        
21832
218332005-03-04  Chris Blumenberg  <cblu@apple.com>
21834
21835	Fixed: <rdar://problem/4032840> REGRESSION (Mail): crash in RemoveNodeCommand after pasting attachment at end of message
21836
21837        Reviewed by darin.
21838
21839        * khtml/editing/visible_units.cpp:
21840        (khtml::endOfParagraph): don't consider text nodes that have no rendered characters
21841
218422005-03-04  Richard Williamson   <rjw@apple.com>
21843
21844	Fixed <rdar://problem/4034764> REGRESSION(125-188)Viewing text/plain page and going back/forward corrupts HTML pages (google.com)
21845
21846	The parse mode wasn't be restored to the document when going
21847	back.
21848
21849        Reviewed by Hyatt.
21850
21851        * kwq/KWQKHTMLPart.mm:
21852        (KWQKHTMLPart::openURLFromPageCache):
21853        * kwq/KWQPageState.h:
21854        * kwq/KWQPageState.mm:
21855        (-[KWQPageState initWithDocument:URL:windowProperties:locationProperties:interpreterBuiltins:]):
21856
218572005-03-04  Ken Kocienda  <kocienda@apple.com>
21858
21859        Reviewed by me
21860
21861        * layout-tests/editing/style/create-block-for-style-012-expected.txt: Shame on me!
21862        I landed my last fix without running layout tests. This one changes in a subtle, but
21863        acceptable way.
21864
218652005-03-04  Ken Kocienda  <kocienda@apple.com>
21866
21867        Reviewed by Harrison
21868
21869        Fix for this bug:
21870        
21871        <rdar://problem/4032543> REGRESSION (Mail): Mail hangs when quoted text is pasted twice
21872        
21873        This code change fixes the bug in a non-obvious way. The root cause of the problem was
21874        that a VisiblePosition created using an affinity originating in Mail code caused 
21875        two VisiblePosition objects that should have been equal to differ only in their 
21876        affinities, which in turn caused us to run a code path that should not have run.
21877
21878        * khtml/editing/visible_position.cpp:
21879        (khtml::VisiblePosition::VisiblePosition): Added copy constructor.
21880        (khtml::VisiblePosition::next): Factored out inline code that used to be here into new
21881        setAffinityUsingLinePosition() function.
21882        (khtml::isEqualIgnoringAffinity): New helper to handle cases when affinity in equality check does
21883        not matter. However, we want to know about such cases where a VisiblePosition differs only by affinity, 
21884        and the code will assert in development when this happens.
21885        (khtml::isNotEqualIgnoringAffinity): Ditto, but not. :)
21886        (khtml::setAffinityUsingLinePosition): New helper function mentioned above. This will "correct"
21887        upstream affinity to downstream if the affinity does not make a difference for the position.
21888        * khtml/editing/visible_position.h:
21889        * khtml/editing/visible_range.h: Wacky bug. The operator== for this class took VisiblePosition classes!
21890        * khtml/editing/visible_units.cpp:
21891        (khtml::isStartOfParagraph): Now performs equality check without regard to affinity.
21892        (khtml::isEndOfParagraph): Ditto.
21893        (khtml::isStartOfBlock): Ditto.
21894        (khtml::isEndOfBlock): Ditto.
21895        * kwq/WebCoreBridge.mm:
21896        (-[WebCoreBridge setSelectedDOMRange:affinity:]): Adjusts the affinity using setAffinityUsingLinePosition()
21897        if necessary.
21898
218992005-03-04  Darin Adler  <darin@apple.com>
21900
21901        Reviewed by John.
21902
21903        - fixed <rdar://problem/4036817> REGRESSION: ctrl-y broken when a line + carriage return cut
21904
21905        * khtml/editing/htmlediting.h: Added insertTextRunWithoutNewlines.
21906        * khtml/editing/htmlediting.cpp:
21907        (khtml::InsertTextCommand::input): Added assertion to make sure strings with newlines don't get
21908        down to this level.
21909        (khtml::TypingCommand::insertText): Added. Takes the name of the old function, but is a new
21910        level that breaks runs into lines and inserts each one separately.
21911        (khtml::TypingCommand::insertTextRunWithoutNewlines): Renamed old insertText to this. 
21912
21913        * khtml/dom/dom_string.h: Made substring be a const member function.
21914        * khtml/dom/dom_string.cpp: (DOM::DOMString::substring): Made this const.
21915
219162005-03-04  Darin Adler  <darin@apple.com>
21917
21918        Reviewed by John.
21919
21920        - fixed <rdar://problem/4020413> REGRESSION (Mail): can't use fonts with names that start with "#" in Mail (Korean fonts)
21921
21922        * khtml/css/css_valueimpl.cpp:
21923        (DOM::isLegalIdentifier): Added. Commented out and not used.
21924        (DOM::quoteStringIfNeeded): Quotes the string if needed. For now only if it starts with "#".
21925        (DOM::CSSPrimitiveValueImpl::cssText): Call quoteStringIfNeeded when asked for cssText for an arbitrary string, since we
21926        need text you can re-parse.
21927        (DOM::FontFamilyValueImpl::cssText): Ditto.
21928
21929        * khtml/editing/markup.cpp:
21930        (khtml::startMarkup): Added comments about lack of quoting for attributes.
21931        (khtml::createMarkup): Ditto.
21932
219332005-03-04 Adele Amchan  <adele@apple.com>
21934 
21935       Reviewed by Maciej
21936
21937	Fix for <rdar://problem/4021711> REGRESSION(125-188) blank pages when browsing forum at cooperativeresearch.org - cached external script problem
21938
21939        * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::scriptHandler): set flag needToRefCachedScript so we can make sure 
21940        notifyFinished is called after pendingSrc is set up with the right data from the cached script
21941
219422005-03-04  Ken Kocienda  <kocienda@apple.com>
21943
21944        Reviewed by John
21945
21946        Fix for this bug:
21947        
21948        <rdar://problem/4029632> Tiger 8A398:- Mail crashes in DOM::NodeImpl::isBlockFlow() after pasting text with alignment style and BR element from Safari
21949
21950        * khtml/editing/htmlediting.cpp:
21951        (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): VisiblePosition constructor
21952        was failing to yield a position for a node just pasted into the document since a layout was needed
21953        for the calculation to come out right. Layout added. Crash gone.
21954
21955=== Safari-402 ===
21956
219572005-03-03  Chris Blumenberg  <cblu@apple.com>
21958
21959	Fixed: <rdar://problem/3992803> Cannot navigate through list items with the keyboard, you're stuck in the same <li> block unless you click out
21960
21961        Reviewed by harrison.
21962
21963        * khtml/rendering/render_line.cpp:
21964        (khtml::RootInlineBox::closestLeafChildForXPos): avoid returning list markers when possible. Also improved heuristic for returning the best InlineBox given the passed X position.
21965
21966
219672005-03-03  Ken Kocienda  <kocienda@apple.com>
21968
21969        Reviewed by John
21970        
21971        Fix for this bug:
21972        
21973        <rdar://problem/4035198> Pasting text with different styles does not get reproducible results
21974
21975        I had a good idea yesterday to improve the way we "fixup" styles after
21976        pasting, but i chose a poor data structure to do it, a map of
21977        nodes-to-styles. In the fixup step, I iterated over the map elements and
21978        did the fixup. However, since the order in which the items would come
21979        out of the map is indeterminate, we got unpredictable results.
21980
21981        So, the concept was good, but the implementation was flawed. I have
21982        fixed this mapping to be a list instead, so the order that nodes are
21983        evaluated in the fixup step is document order. This works nicely.
21984
21985        * khtml/editing/htmlediting.cpp:
21986        (khtml::ReplacementFragment::~ReplacementFragment): No longer need to explicity deref nodes and
21987        styles saved away for later fixup. This is now handled by the new NodeDesiredStyle class.
21988        (khtml::ReplacementFragment::computeStylesUsingTestRendering): Now calls computeAndStoreNodeDesiredStyle,
21989        function renamed from mapDesiredStyleForNode.
21990        Now accepts a QValueList<NodeDesiredStyle> in place of the old map.
21991        (khtml::NodeDesiredStyle::NodeDesiredStyle): New class that represents a node-to-style mapping.
21992        (khtml::NodeDesiredStyle::~NodeDesiredStyle): Ditto.
21993        (khtml::NodeDesiredStyle::operator=): Ditto.
21994        (khtml::ReplaceSelectionCommand::doApply): Now calls computeAndStoreNodeDesiredStyle,
21995        function renamed from mapDesiredStyleForNode.
21996        (khtml::ReplaceSelectionCommand::fixupNodeStyles): Now operates on a QValueList<NodeDesiredStyle> in 
21997        place of the old map.
21998        (khtml::computeAndStoreNodeDesiredStyle): Renamed from mapDesiredStyleForNode.  Now operates on a 
21999        QValueList<NodeDesiredStyle> in place of the old map.
22000        * khtml/editing/htmlediting.h:
22001        (khtml::NodeDesiredStyle): New class that represents a node-to-style mapping.
22002        (khtml::ReplacementFragment::desiredStyles): Now returns a QValueList<NodeDesiredStyle> in place of the old map.
22003
22004        * layout-tests/editing/style/typing-style-003-expected.txt: Results changed in an acceptable way.
22005
220062005-03-02  Darin Adler  <darin@apple.com>
22007
22008        Reviewed by Maciej.
22009
22010        - fixed <rdar://problem/4029741> REGRESSION (188-189): <input type=text> are cleared when you hide/show them
22011
22012        * khtml/html/html_formimpl.h: Added detach functions for both input and text area elements, since
22013        both have m_valueMatchesRenderer flags.
22014        * khtml/html/html_formimpl.cpp:
22015        (DOM::HTMLInputElementImpl::detach): Set m_valueMatchesRenderer to false, since the renderer is going away.
22016        (DOM::HTMLTextAreaElementImpl::detach): Ditto.
22017
220182005-03-02  Ken Kocienda  <kocienda@apple.com>
22019
22020        Reviewed by Hyatt
22021
22022        Fix for this bug:
22023        
22024        <rdar://problem/4006151> in reply, caret moves to next line after toggling bold style then typing
22025
22026        * khtml/editing/htmlediting.cpp:
22027        (khtml::ApplyStyleCommand::applyInlineStyle): Defer cleaning up empty style until the end of the
22028        function. In some situations, the render tree can get confused when we do this removal up front.
22029        I wish I understood the reasons more deeply, but this bit of code shuffling seems harmless, and 
22030        fixes the bug.
22031
220322005-03-02  Darin Adler  <darin@apple.com>
22033
22034        Reviewed by Maciej.
22035
22036        - fixed <rdar://problem/4024966> crash happened twice in [KWQTextField setHasFocus:] + 0xe8
22037
22038        Added more nil checks to the widget implementations. Anywhere a widget pointer is used, do a nil check,
22039        rather than relying on high level assumptions about which calls can and can't destroy the HTML element
22040        (and hence the widget). The case in the bug seems to be a case where scrolling destroyed the element.
22041        We can't be sure this fixes the bug, but we can be relatively sure we didn't introduce any new problems,
22042        because this just avoids nil-dereferencing.
22043
22044        * kwq/KWQButton.mm:
22045        (-[KWQButton becomeFirstResponder]):
22046        (-[KWQButton nextKeyView]):
22047        (-[KWQButton previousKeyView]):
22048        * kwq/KWQListBox.mm:
22049        (-[KWQTableView mouseDown:]):
22050        (-[KWQTableView becomeFirstResponder]):
22051        (-[KWQTableView numberOfRowsInTableView:]):
22052        (-[KWQTableView tableViewSelectionDidChange:]):
22053        (-[KWQTableView tableView:shouldSelectRow:]):
22054        (-[KWQTableView selectionShouldChangeInTableView:]):
22055        * kwq/KWQScrollBar.mm:
22056        (-[KWQScrollBar scroll:]):
22057        * kwq/KWQSlider.mm:
22058        (-[KWQSlider mouseDown:]):
22059        (-[KWQSlider slide:]):
22060        (-[KWQSlider becomeFirstResponder]):
22061        (-[KWQSlider nextKeyView]):
22062        (-[KWQSlider previousKeyView]):
22063        * kwq/KWQTextArea.mm:
22064        (-[KWQTextAreaTextView becomeFirstResponder]):
22065        (-[KWQTextAreaTextView resignFirstResponder]):
22066        (-[KWQTextAreaTextView mouseDown:]):
22067        * kwq/KWQTextField.mm:
22068        (-[KWQTextFieldController action:]):
22069        (-[KWQTextFieldController controlTextDidEndEditing:]):
22070        (-[KWQTextFieldController controlTextDidChange:]):
22071        (-[KWQTextFieldController textView:didHandleEvent:]):
22072        (-[KWQTextFieldController setHasFocus:]):
22073
220742005-03-02  Richard Williamson   <rjw@apple.com>
22075
22076	Fixed <rdar://problem/4031483> Leak (RenderObject::createInlineBox) reproducible with Stock widget
22077
22078	We were leaking inline block line boxes.  Argh!
22079
22080        Reviewed by Hyatt.
22081
22082        * khtml/rendering/render_flow.cpp:
22083        (RenderFlow::dirtyLineBoxes):
22084        * khtml/rendering/render_line.cpp:
22085        (khtml::InlineBox::deleteLine):
22086
220872005-03-02  Chris Blumenberg  <cblu@apple.com>
22088
22089	Fixed: <rdar://problem/3976872> REGRESSION (Mail): Pasted plain text doesn't get the proper style if pasted into newlines
22090
22091        Reviewed by kocienda.
22092
22093        * khtml/editing/htmlediting.cpp:
22094        (khtml::EditCommand::styleAtPosition): new, factored out from calculateStyleBeforeInsertion
22095        (khtml::InsertParagraphSeparatorCommand::calculateStyleBeforeInsertion): call styleAtPosition
22096        (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand): clear new m_insertionStyle ivar
22097        (khtml::ReplaceSelectionCommand::~ReplaceSelectionCommand): deref new m_insertionStyle  ivar
22098        (khtml::ReplaceSelectionCommand::doApply): store the style so it later be applied when matching style
22099        (khtml::ReplaceSelectionCommand::completeHTMLReplacement): apply style from m_insertionStyle when matching style
22100        * khtml/editing/htmlediting.h:
22101
221022005-03-02  Maciej Stachowiak  <mjs@apple.com>
22103
22104        Reviewed by Darin.
22105
22106	<rdar://problem/4031718> REGRESSION (401-401+): Safari reproducible crash setting up scope in JSLazyEventListener::parseCode authenticating to bugweb
22107        
22108	* khtml/ecma/kjs_events.cpp:
22109	(JSLazyEventListener::parseCode): If originalNode is NULL, don't
22110	mess with the scope chain.
22111	
22112        * khtml/html/html_baseimpl.cpp:
22113        (HTMLBodyElementImpl::parseHTMLAttribute): For handlers that are
22114	delcared on body but set on the document, pass NULL to avoid
22115	swizzling the scope chain. It turns out that this is what browsers
22116	do, and it finesses the crash.
22117
221182005-03-02  David Harrison  <harrison@apple.com>
22119
22120        Reviewed by Ken.
22121
22122        <rdar://problem/3948453> Can't type accented chars as first character in Stickies widget
22123
22124        * khtml/editing/htmlediting.cpp:
22125        (khtml::ReplaceSelectionCommand::doApply):
22126
221272005-03-02  Ken Kocienda  <kocienda@apple.com>
22128        Reviewed by John
22129
22130        Fix for this bug:
22131        
22132        <rdar://problem/4020574> REGRESSION (Mail): copy/paste first part of reply-quoted text alters downstream style
22133        
22134        The problem was that the operation to move nodes following the newly-pasted nodes did not preserve the
22135        style of these moved nodes. I have generalized some of the functions that compute and preserve styles
22136        for nodes and then apply these styles after a DOM operation.
22137
22138        * khtml/editing/htmlediting.cpp:
22139        (khtml::ReplacementFragment::~ReplacementFragment): Call new derefNodesAndStylesInMap() helper function
22140        in place of old code that had this deref'ing inline.
22141        (khtml::ReplacementFragment::computeStylesUsingTestRendering): Now calls new mapDesiredStyleForNode() helper
22142        function place of old code that had this style computation inline.
22143        (khtml::ReplacementFragment::removeStyleNodes): Updated comment for new helper name.
22144        (khtml::ReplaceSelectionCommand::doApply): Now calls new helpers in place of helpers whose names were changed,
22145        or in place of pre-refactored inline code.
22146        (khtml::ReplaceSelectionCommand::fixupNodeStyles): Renamed from applyStyleToInsertedNodes(). Now generalized
22147        to take the map of nodes to use for the fixup. This makes it possible to call this code with different maps,
22148        and that is needed to fix the bug.
22149        (khtml::mapDesiredStyleForNode): New helper function to compute the inheritable styles for a given node
22150        and map this style to the given node in the given map. This function now also includes the code that was
22151        in the removeBlockquoteColorsIfNeeded(). This latter helper has now been removed.
22152        (khtml::derefNodesAndStylesInMap): Simple helper to deref map members.
22153        * khtml/editing/htmlediting.h:
22154        (khtml::ReplacementFragment::desiredStyles): New helper to return map of nodes-to-desiredStyles.
22155
221562005-03-01  Ken Kocienda  <kocienda@apple.com>
22157
22158        Reviewed by Hyatt
22159
22160        Fix for this bug:
22161
22162        <rdar://problem/4011358> REGRESSION(Mail): after dragging text to mail message and deleting, typing or dragging new text doesn't work
22163
22164        * khtml/editing/visible_position.cpp:
22165        (khtml::VisiblePosition::isCandidate): Insertion point disappearing was due to a failed
22166        check here after deleting all the content in the body element. The special "empty block"
22167        needs to add check for DOM children. A block may have straggling anonymous render children in
22168        some cases, and so the check needs to be (!DOM-kids || !render-kids).
22169
22170        Also, I botched the last checkin trying to split these two patches in my tree. Wrong layout tests 
22171        got checked in, I checked in a conflict marker in the Changelog, etc. I fixed everything with this checkin.
22172
221732005-03-01  Ken Kocienda  <kocienda@apple.com>
22174 
22175        Reviewed by Maciej
22176
22177        Improved fix for this bug:
22178        
22179        <rdar://problem/3996605> Insert paragraph command puts new block in wrong place, creating difficult-to-handle HTML
22180
22181        Maciej and I discussed this situation at length, and we came up with a better fix than I did earlier.
22182
22183        * khtml/editing/htmlediting.cpp:
22184        (khtml::InsertParagraphSeparatorCommand::doApply): Simplify one special case so that it only handles the 
22185        "last in block" situation. Remove special case for "downstream node is in different block" and handle
22186        this case with a little bit of special code in the general insertion case.
22187
22188        Results studied to make sure there were no problems.
22189
22190        * layout-tests/editing/deleting/delete-3959464-fix-expected.txt
22191        * layout-tests/editing/inserting/insert-div-001-expected.txt
22192        * layout-tests/editing/inserting/insert-div-002-expected.txt
22193        * layout-tests/editing/inserting/insert-div-004-expected.txt
22194        * layout-tests/editing/inserting/insert-div-005-expected.txt
22195        * layout-tests/editing/inserting/insert-div-009-expected.txt
22196        * layout-tests/editing/inserting/insert-div-014-expected.txt
22197        * layout-tests/editing/inserting/insert-div-018-expected.txt
22198        * layout-tests/editing/inserting/insert-div-024-expected.txt
22199        * layout-tests/editing/pasteboard/paste-text-011-expected.txt
22200        * layout-tests/editing/pasteboard/paste-text-013-expected.txt
22201        * layout-tests/editing/pasteboard/paste-text-015-expected.txt
22202        * layout-tests/editing/style/block-style-004-expected.txt
22203        * layout-tests/editing/style/block-style-005-expected.txt
22204        * layout-tests/editing/style/block-style-006-expected.txt
22205
22206        New test:
22207        
22208        * layout-tests/editing/inserting/insert-div-027.html
22209        * layout-tests/editing/inserting/insert-div-027-expected.txt
22210
222112005-03-01  David Hyatt  <hyatt@apple.com>
22212
22213	Fix for 4030890, regression with <sup> on Google.  Fix some bogus != comparison checks in verticalPositionHint.
22214	
22215        Reviewed by John
22216
22217        (RenderObject::getVerticalPosition):
22218        
222192005-03-01  Chris Blumenberg  <cblu@apple.com>
22220
22221	Fixed: <rdar://problem/4030669> smart delete does not delete spaces from pasted content
22222
22223        Reviewed by rjw.
22224
22225        * khtml/editing/htmlediting.cpp:
22226        (khtml::DeleteSelectionCommand::initializePositionData): pass true for treatNBSPAsWhiteSpace to leadingWhitespacePosition and trailingWhitespacePosition when testing whether or not we have to delete those characters as well.
22227        * khtml/editing/jsediting.cpp: pass true for smartDelete when the selection granularity is WORD. This allows us to write smart delete layout tests.
22228        * layout-tests/editing/deleting/smart-delete-001-expected.txt: Added.
22229        * layout-tests/editing/deleting/smart-delete-001.html: Added.
22230        * layout-tests/editing/deleting/smart-delete-002-expected.txt: Added.
22231        * layout-tests/editing/deleting/smart-delete-002.html: Added.
22232
222332005-03-01  Richard Williamson   <rjw@apple.com>
22234
22235	Fixed <rdar://problem/4029772> Weather widgets use a lot of memory (more that other widgets)
22236
22237	The string objects created by KWQHeaderStringFromDictionary() leaked.
22238
22239        Reviewed by John Louch.
22240
22241        * kwq/KWQLoader.mm:
22242        (KWQHeaderStringFromDictionary):
22243
222442005-03-01  Jens Alfke  <jens@apple.com>
22245
22246        Reviewed by Darin.
22247
22248	<rdar://problem/4004531> Simple Sun Signed Applet throws exceptions; doesn't run
22249	Two fixes for the way we extract the parameter-y goodness from <object> tags.
22250
22251        * khtml/rendering/render_frames.cpp:
22252        (RenderPartObject::updateWidget):
22253
222542005-03-01  Richard Williamson   <rjw@apple.com>
22255
22256	Fixed <rdar://problem/3990258> REGRESSION (125.12-181): top of picture that spans two pages is cut off on print from Safari
22257
22258	The problem was due to incorrect "object truncation" in  RenderFlow::paintLines.  
22259	We attempt to push objects down if they don't fit on a page at
22260	paint time.  If the attempt to push object down failed we just
22261	didn't paint at all.
22262
22263        Reviewed by Hyatt.
22264
22265        * khtml/rendering/render_flow.cpp:
22266        (RenderFlow::paintLines):
22267
222682005-03-01  Chris Blumenberg  <cblu@apple.com>
22269
22270	Fixed: <rdar://problem/4030669> smart delete does not delete spaces from pasted content
22271
22272        Reviewed by rjw.
22273
22274        * khtml/editing/htmlediting.cpp:
22275        (khtml::DeleteSelectionCommand::initializePositionData): pass true for treatNBSPAsWhiteSpace to leadingWhitespacePosition and trailingWhitespacePosition when testing whether or not we have to delete those characters as well.
22276        * khtml/editing/jsediting.cpp: pass true for smartDelete when the selection granularity is WORD. This allows us to write smart delete layout tests.
22277        * layout-tests/editing/deleting/smart-delete-001-expected.txt: Added.
22278        * layout-tests/editing/deleting/smart-delete-001.html: Added.
22279        * layout-tests/editing/deleting/smart-delete-002-expected.txt: Added.
22280        * layout-tests/editing/deleting/smart-delete-002.html: Added.
22281
222822005-03-01  Ken Kocienda  <kocienda@apple.com>
22283
22284        Reviewed by Vicki
22285
22286        Fix for this bug:
22287        
22288        <rdar://problem/4030068> Trailing <return> gets eaten when pasted at the end of a document
22289
22290        * khtml/editing/htmlediting.cpp:
22291        (khtml::ReplaceSelectionCommand::doApply): Add code to handle formerly-unhandled end-of-document case.
22292
222932005-03-01  Maciej Stachowiak  <mjs@apple.com>
22294
22295        Reviewed by Vicki.
22296
22297	<rdar://problem/4003774> REGRESSION(125-181): JavaScript problems @ Yankee/Dixie quiz
22298        
22299	Reworked how scopes are set up for event handlers to match other
22300	browser. This includes the following changes:
22301
22302	- Special scope entries are set up at the time the event handler
22303	is created, not at the time it fires.
22304
22305	- Special scope is only set up for event handlers set in the html
22306	source through an html attribute, not for handlers set using
22307	addEventHandler or setting JS properties like onclick through
22308	JavaScript.
22309
22310	- Special scope is based on the DOM node on which the handler is
22311	an attribute, not the event target.
22312
22313	This fixes the regression while allowing the fix to
22314	<rdar://problem/3798453> (DIG: getting variable with same name as
22315	DOM element attribute gets attribute value instead) to keep
22316	working correctly.
22317	
22318	* khtml/ecma/kjs_events.cpp:
22319        (JSEventListener::handleEvent):
22320        (JSLazyEventListener::JSLazyEventListener):
22321        (JSLazyEventListener::parseCode):
22322        * khtml/ecma/kjs_events.h:
22323        * khtml/ecma/kjs_proxy.cpp:
22324        (KJSProxyImpl::createHTMLEventHandler):
22325        * khtml/ecma/kjs_proxy.h:
22326        * khtml/ecma/kjs_window.cpp:
22327        (Window::getJSLazyEventListener):
22328        * khtml/ecma/kjs_window.h:
22329        * khtml/html/html_baseimpl.cpp:
22330        (HTMLBodyElementImpl::parseHTMLAttribute):
22331        (HTMLFrameElementImpl::parseHTMLAttribute):
22332        (HTMLFrameSetElementImpl::parseHTMLAttribute):
22333        * khtml/html/html_elementimpl.cpp:
22334        (HTMLElementImpl::parseHTMLAttribute):
22335        * khtml/html/html_formimpl.cpp:
22336        (DOM::HTMLFormElementImpl::parseHTMLAttribute):
22337        (DOM::HTMLButtonElementImpl::parseHTMLAttribute):
22338        (DOM::HTMLInputElementImpl::parseHTMLAttribute):
22339        (DOM::HTMLLabelElementImpl::parseHTMLAttribute):
22340        (DOM::HTMLSelectElementImpl::parseHTMLAttribute):
22341        (DOM::HTMLTextAreaElementImpl::parseHTMLAttribute):
22342        * khtml/html/html_imageimpl.cpp:
22343        (HTMLImageElementImpl::parseHTMLAttribute):
22344        * khtml/html/html_objectimpl.cpp:
22345        (HTMLObjectElementImpl::parseHTMLAttribute):
22346        * khtml/khtml_part.cpp:
22347        (KHTMLPart::createHTMLEventListener):
22348        * khtml/khtml_part.h:
22349        * khtml/xml/dom_docimpl.cpp:
22350        (DocumentImpl::createHTMLEventListener):
22351        * khtml/xml/dom_docimpl.h:
22352
22353=== Safari-401 ===
22354
223552005-03-01  Chris Blumenberg  <cblu@apple.com>
22356
22357	Backed out my patch since the tree was closed.
22358
22359        * khtml/editing/htmlediting.cpp:
22360        (khtml::DeleteSelectionCommand::initializePositionData):
22361        * khtml/editing/jsediting.cpp:
22362
223632005-03-01  Chris Blumenberg  <cblu@apple.com>
22364
22365	Fixed: <rdar://problem/4030669> smart delete does not delete spaces from pasted content
22366
22367        Reviewed by rjw.
22368
22369        * khtml/editing/htmlediting.cpp:
22370        (khtml::DeleteSelectionCommand::initializePositionData): pass true for treatNBSPAsWhiteSpace to leadingWhitespacePosition and trailingWhitespacePosition when testing whether or not we have to delete those characters as well.
22371        * khtml/editing/jsediting.cpp: pass true for smartDelete when the selection granularity is WORD. This allows us to write smart delete layout tests.
22372        * layout-tests/editing/deleting/smart-delete-001-expected.txt: Added.
22373        * layout-tests/editing/deleting/smart-delete-001.html: Added.
22374        * layout-tests/editing/deleting/smart-delete-002-expected.txt: Added.
22375        * layout-tests/editing/deleting/smart-delete-002.html: Added.
22376
223772005-03-01  Ken Kocienda  <kocienda@apple.com>
22378
22379        Reviewed by Vicki
22380
22381        Fix for this bug:
22382        
22383        <rdar://problem/4030068> Trailing <return> gets eaten when pasted at the end of a document
22384
22385        * khtml/editing/htmlediting.cpp:
22386        (khtml::ReplaceSelectionCommand::doApply): Add code to handle formerly-unhandled end-of-document case.
22387
223882005-03-01  David Harrison  <harrison@apple.com>
22389
22390        Reviewed by Chris.
22391
22392        <rdar://problem/3915560> Mail would like an SPI to enable "smart" text paste/drop
22393
22394        * kwq/WebCoreBridge.h:
22395        * kwq/WebCoreBridge.mm:
22396        (-[WebCoreBridge smartDeleteRangeForProposedRange:]):
22397        (-[WebCoreBridge smartInsertForString:replacingRange:beforeString:afterString:]):
22398        New.
22399
224002005-03-01  Chris Blumenberg  <cblu@apple.com>
22401
22402	Fixed: <rdar://problem/4030404> selection granularity should be set when extending selection via JS
22403
22404        Reviewed by kocienda.
22405
22406        * khtml/ecma/kjs_window.cpp:
22407        (SelectionFunc::tryCall): set the granularity on the part. This will allow us to write smart paste layout tests.
22408        * layout-tests/editing/pasteboard/smart-paste-001-expected.txt: Added.
22409        * layout-tests/editing/pasteboard/smart-paste-001.html: Added.
22410        * layout-tests/editing/pasteboard/smart-paste-002-expected.txt: Added.
22411        * layout-tests/editing/pasteboard/smart-paste-002.html: Added.
22412        * layout-tests/editing/pasteboard/smart-paste-003-expected.txt: Added.
22413        * layout-tests/editing/pasteboard/smart-paste-003.html: Added.
22414        * layout-tests/editing/pasteboard/smart-paste-004-expected.txt: Added.
22415        * layout-tests/editing/pasteboard/smart-paste-004.html: Added.
22416        * layout-tests/editing/pasteboard/smart-paste-005-expected.txt: Added.
22417        * layout-tests/editing/pasteboard/smart-paste-005.html: Added.
22418        * layout-tests/editing/pasteboard/smart-paste-006-expected.txt: Added.
22419        * layout-tests/editing/pasteboard/smart-paste-006.html: Added.
22420        * layout-tests/editing/pasteboard/smart-paste-007-expected.txt: Added.
22421        * layout-tests/editing/pasteboard/smart-paste-007.html: Added.
22422
224232005-03-01  Chris Blumenberg  <cblu@apple.com>
22424
22425	Fixed: <rdar://problem/4029934> smart paste with plain text can add too many spaces
22426
22427        Reviewed by kocienda.
22428
22429        * khtml/editing/htmlediting.cpp:
22430        (khtml::ReplaceSelectionCommand::doApply): pass true for treatNBSPAsWhitespace to leadingWhitespacePosition and trailingWhitespacePosition
22431        * khtml/xml/dom_position.cpp:
22432        (DOM::isWS): take treatNBSPAsWhitespace param
22433        (DOM::Position::leadingWhitespacePosition): ditto
22434        (DOM::Position::trailingWhitespacePosition): ditto
22435        * khtml/xml/dom_position.h:
22436
224372005-03-01  Ken Kocienda  <kocienda@apple.com>
22438
22439        Reviewed by John
22440
22441        Fix for this bug:
22442        
22443        <rdar://problem/3996605> Insert paragraph command puts new block in wrong place, creating difficult-to-handle HTML
22444
22445        * khtml/editing/htmlediting.cpp:
22446        (khtml::InsertParagraphSeparatorCommand::doApply): Look for the upstream-most block to insert after
22447        when at the visible end of a block. This helps to avoid some undesirable sequences of markup which
22448        Dave says will be vary hard to render. Changing the command in this way avoids the "limitations"
22449        of the render tree by not asking it to render markup we do not want to make anyway.
22450        
22451        All these tests change, but either in insignificant ways, or for the better.
22452        
22453        * layout-tests/editing/deleting/delete-3959464-fix-expected.txt:
22454        * layout-tests/editing/inserting/insert-div-001-expected.txt:
22455        * layout-tests/editing/inserting/insert-div-002-expected.txt:
22456        * layout-tests/editing/inserting/insert-div-004-expected.txt:
22457        * layout-tests/editing/inserting/insert-div-005-expected.txt:
22458        * layout-tests/editing/inserting/insert-div-009-expected.txt:
22459        * layout-tests/editing/inserting/insert-div-024-expected.txt:
22460        * layout-tests/editing/pasteboard/paste-text-011-expected.txt:
22461        * layout-tests/editing/pasteboard/paste-text-013-expected.txt:
22462        * layout-tests/editing/pasteboard/paste-text-015-expected.txt:
22463        * layout-tests/editing/style/block-style-004-expected.txt:
22464        * layout-tests/editing/style/block-style-005-expected.txt:
22465        * layout-tests/editing/style/block-style-006-expected.txt:
22466        * layout-tests/editing/style/remove-underline-across-paragraph-expected.txt:
22467        * layout-tests/editing/style/remove-underline-across-paragraph-in-bold-expected.txt:
22468        * layout-tests/editing/style/remove-underline-after-paragraph-expected.txt:
22469        * layout-tests/editing/style/remove-underline-after-paragraph-in-bold-expected.txt:
22470
22471        New test to check specific problem mentioned in the bug.
22472
22473        * layout-tests/editing/inserting/insert-div-026-expected.txt: Added.
22474        * layout-tests/editing/inserting/insert-div-026.html: Added.
22475
224762005-02-28  Maciej Stachowiak  <mjs@apple.com>
22477
22478        Reviewed by Darin.
22479
22480	<rdar://problem/4002864> REGRESSION(125-146) getElementById in onload fails in a test case involving external resources
22481        
22482	Moved management of elementById hashtable from attach/detach to
22483	insertedIntoDocument/removedFromDocument, to avoid being thrown
22484	off by temporary detaches due to style recalcs.
22485	
22486        * khtml/xml/dom_elementimpl.cpp:
22487        (ElementImpl::insertedIntoDocument):
22488        (ElementImpl::removedFromDocument):
22489        (ElementImpl::attach):
22490        (ElementImpl::updateId):
22491        * khtml/xml/dom_elementimpl.h:
22492
22493	Make sure that insertedIntoDocument is called before firing any
22494	DOM events.
22495	
22496        * khtml/xml/dom_nodeimpl.cpp:
22497        (NodeBaseImpl::dispatchChildInsertedEvents): 
22498
224992005-02-28  David Hyatt  <hyatt@apple.com>
22500
22501	Fix for 4028999, safari crashes when resetting if mallocsribble is on.  Clip rects were being cleared using dead
22502	render objects.  Change the ordering.
22503	
22504        Reviewed by rjw
22505
22506        * khtml/rendering/render_box.cpp:
22507        (RenderBox::detach):
22508        * khtml/rendering/render_layer.cpp:
22509        (RenderLayer::~RenderLayer):
22510
225112005-02-28  Chris Blumenberg  <cblu@apple.com>
22512
22513	Fixed: <rdar://problem/4024786> REGRESSION (Mail): "Smart paste" plain-text word into Blot leaves insertion point misplaced
22514
22515        Reviewed by kocienda.
22516
22517        * khtml/editing/htmlediting.cpp:
22518        (khtml::ReplaceSelectionCommand::completeHTMLReplacement): Call updateLayout so caretMinOffset and caretMaxOffset return correct values.
22519
225202005-02-28  John Sullivan  <sullivan@apple.com>
22521
22522        Reviewed by Ken.
22523        
22524        - WebCore part of fix for <rdar://problem/4023490> REGRESSION (125-185): Tabbing through links 
22525        on frameset page gets stuck at end (tivofaq.com)
22526
22527        * kwq/WebCoreBridge.h:
22528        add nextValidKeyViewOutsideWebFrameViews (code is in WebKit)
22529
225302005-02-28  Ken Kocienda  <kocienda@apple.com>
22531
22532        Reviewed by John
22533
22534        Fix for this bug:
22535        
22536        <rdar://problem/3972665> 8A360: HTML message partially truncated on left hand side, text-indent from Script Editor
22537
22538        * khtml/css/css_computedstyle.cpp: inheritableProperties array now defined in css_valueimpl.cpp.
22539        * khtml/css/css_valueimpl.cpp: Define inheritableProperties array here.
22540        (DOM::CSSMutableStyleDeclarationImpl::copyBlockProperties): Use new name for blockProperties, and use the new
22541        constant for the number of items in the array.
22542        (DOM::CSSMutableStyleDeclarationImpl::removeBlockProperties): Ditto.
22543        (DOM::CSSMutableStyleDeclarationImpl::removeInheritableProperties): New function.
22544        * khtml/css/css_valueimpl.h: Declare inheritableProperties array and numInheritableProperties extern so they
22545        can be defined in css_valueimpl.cpp and used in css_computedstyle.cpp.
22546        * khtml/editing/htmlediting.cpp:
22547        (khtml::ReplacementFragment::removeStyleNodes): This code was misguided, and removed too much style from HTML
22548        elements. Now, it removes from HTML elements only the styles that we replace later with a call to applyStyle().
22549        Also, add ID_B to list of inline "style" nodes we are willing to remove. Leaving it off was an oversight.
22550
22551        * layout-tests/editing/pasteboard/paste-text-011-expected.txt: ID_B fix made this result change, without any
22552        visible change in the test.
22553        
22554        New test:
22555        
22556        * layout-tests/editing/style/smoosh-styles-003.html
22557        * layout-tests/editing/style/smoosh-styles-003-expected.txt
22558
225592005-02-28  Richard Williamson   <rjw@apple.com>
22560
22561	Fixed <rdar://problem/4026985> CrashTracer: ...14 crashes at com.apple.WebCore: -[KWQPageState invalidate] + 32
22562
22563	Added more nil checking and ASSERTS.
22564	Without a reproducible case this is hard to definitively resolve.
22565
22566        Reviewed by John Sullivan.
22567
22568        * kwq/KWQPageState.mm:
22569        (-[KWQPageState invalidate]):
22570
225712005-02-28  Richard Williamson   <rjw@apple.com>
22572
22573	Fixed <rdar://problem/4027702> 3.5% performance regression btwn Safari-188 and Safari-400
22574
22575	I inadvertently checked in some debugging code that disabled
22576	style sharing.  Backed out that change.
22577
22578        * khtml/css/cssstyleselector.cpp:
22579        (khtml::CSSStyleSelector::styleForElement):
22580
225812005-02-28  Chris Blumenberg  <cblu@apple.com>
22582
22583	Fixed: <rdar://problem/4026639> www.bmw.ca configurator does not work with Safari
22584
22585        Reviewed by john.
22586
22587        * khtml/ecma/kjs_html.cpp:
22588        (KJS::HTMLElement::tryGet): when frameset.<name of frame child> is called, return the window object of the frame child
22589
225902005-02-28  Ken Kocienda  <kocienda@apple.com>
22591
22592        Reviewed by Chris
22593
22594        Fix for this bug:
22595        
22596        <rdar://problem/4026906> Paste of HTML table content can break table structure
22597
22598        * khtml/editing/htmlediting.cpp:
22599        (khtml::ReplacementFragment::pruneEmptyNodes): Call new isProbablyTableStructureNode() function to prevent
22600        removal of empty table structure nodes.
22601        (khtml::ReplacementFragment::removeUnrenderedNodesUsingTestRendering): Ditto.
22602        (khtml::isProbablyTableStructureNode): New helper function.
22603        * khtml/editing/htmlediting.h: Declare new helper.
22604
226052005-02-28  Chris Blumenberg  <cblu@apple.com>
22606
22607	Fixed: <rdar://problem/4023566> Stickies: Crash in ReplacementFragment::insertFragmentForTestRendering on paste
22608
22609        Reviewed by kocienda.
22610
22611        * khtml/editing/htmlediting.cpp:
22612        (khtml::ApplyStyleCommand::addInlineStyleIfNeeded): ref and deref the element while it is "floating"
22613        (khtml::ReplacementFragment::insertFragmentForTestRendering): ditto
22614        (khtml::floatRefdElement): new, keeps an element alive while its ref count is 0
22615        (khtml::createDefaultParagraphElement): removed commented out code
22616        (khtml::createBlockPlaceholderElement): ref the element and return it as "floating"
22617        (khtml::createFontElement): ditto
22618        (khtml::createStyleSpanElement): ditto
22619        * khtml/editing/htmlediting.h:
22620
226212005-02-27  Maciej Stachowiak  <mjs@apple.com>
22622
22623        Reviewed by Vicki.
22624
22625	<rdar://problem/3993557> REGRESSION (125-180-ish): getElementsByTagName no longer works with namespace designations
22626        
22627	* khtml/xml/dom_nodeimpl.cpp:
22628        (NodeBaseImpl::getElementsByTagNameNS): When no namespace is specified, find elements
22629	of the specified name in any namespace to match Mozilla and earlier Safari behavior.
22630
226312005-02-25  Darin Adler  <darin@apple.com>
22632
22633        Reviewed by Adele.
22634
22635        - fixed <rdar://problem/4025618> Crash while searching at hollywoodvideo.com
22636
22637        * khtml/html/html_formimpl.h: Added valueWithDefault.
22638        * khtml/html/html_formimpl.cpp:
22639        (DOM::HTMLInputElementImpl::appendFormData): Call valueWithDefault instead of going at the render object
22640        to try to get the default value; there may be no render object if this is display:none.
22641        (DOM::HTMLInputElementImpl::valueWithDefault): Added. Knows about the defaults for "submit" and "reset"
22642        buttons; otherwise just returns the value as-is.
22643
22644        * khtml/rendering/render_form.h: Removed the defaultLabel member functions.
22645        * khtml/rendering/render_form.cpp:
22646        (RenderSubmitButton::rawText): Call valueWithDefault instead of using defaultLabel function here on
22647        the render side. The DOM needs to know how to deal with the default anyway for form submission.
22648        (RenderSubmitButton::defaultLabel): Removed.
22649        (RenderResetButton::defaultLabel): Removed.
22650        (RenderPushButton::defaultLabel): Removed.
22651
226522005-02-25  Darin Adler  <darin@apple.com>
22653
22654        Reviewed by John.
22655
22656        - fixed <rdar://problem/4025088> window onblur and onfocus don't fire when text field has focus
22657
22658        * kwq/KWQKHTMLPart.h: Added setWindowHasFocus function and m_windowHasFocus data member.
22659        * kwq/KWQKHTMLPart.mm:
22660        (KWQKHTMLPart::setDisplaysWithFocusAttributes): Took out the code that sends the focus and blur events.
22661        (KWQKHTMLPart::setWindowHasFocus): Put that code here instead.
22662
22663        * kwq/WebCoreBridge.h: Added setWindowHasFocus: method to the bridge.
22664        * kwq/WebCoreBridge.mm: (-[WebCoreBridge setWindowHasFocus:]): Added. Calls method on the part.
22665
226662005-02-25  Darin Adler  <darin@apple.com>
22667
22668        Reviewed by John.
22669
22670        - re-fixed <rdar://problem/3665430> horizontal scroll bar of text area does not show, even when text is wide in "no wrap" mode
22671
22672        * kwq/KWQTextArea.mm: (-[KWQTextArea _updateTextViewWidth]): Don't change the text view width
22673        to match the text area's width in the "wrap" case.
22674
226752005-02-25  Ken Kocienda  <kocienda@apple.com>
22676
22677        Reviewed by Hyatt
22678
22679        Fix for this bug:
22680        
22681        <rdar://problem/4021518> 8A394 Mail crashes during paste: khtml::RootInlineBox::closestLeafChildForXPos
22682
22683        * khtml/editing/visible_units.cpp:
22684        (khtml::previousLinePosition): Adding an updateLayout call at the start of the function fixes the crash, since
22685        we caught line boxes in a not-completely-updated state.
22686        (khtml::nextLinePosition): Ditto.
22687
226882005-02-25  David Hyatt  <hyatt@apple.com>
22689
22690	Fix for 4010774, make sure to avoid an O(N^2) algorithm in nextRenderer() that is triggered when large
22691	DOM subtrees are inserted into documents via one insert/append call.
22692	
22693        Reviewed by kocienda
22694
22695        * khtml/xml/dom_nodeimpl.cpp:
22696        (NodeImpl::nextRenderer):
22697
226982005-02-25  Richard Williamson   <rjw@apple.com>
22699
22700	Fixed <rdar://problem/3382926> Bidi neutrals at RTL/LTR boundaries not handled correctly.
22701
22702	Second pass at fixing 3382926 w/o causing layout regressions.  Same concept:
22703	if directionality of text's element is RTL and first character has neutral directionality
22704	then set the initial directionality to RTL.
22705
22706        Reviewed by Hyatt.
22707
22708        * khtml/rendering/bidi.cpp:
22709        (khtml::RenderBlock::bidiReorderLine):
22710        (khtml::RenderBlock::determineStartPosition):
22711
22712=== Safari-400 ===
22713
227142005-02-25  Ken Kocienda  <kocienda@apple.com>
22715
22716        Reviewed by me
22717
22718        Roll out Chris' change to fix this bug:
22719        
22720        <rdar://problem/4023566> Stickies: Crash in ReplacementFragment::insertFragmentForTestRendering on paste
22721        
22722        That code change is responsible for all these new crashers:
22723        
22724        <rdar://problem/4025177> crash copying safari.apple.com into Blot document
22725        <rdar://problem/4025184> crash in DOM::NodeImpl::parentNode copying "New!" from google.com to Blot
22726        <rdar://problem/4025214> crash in DOM::NodeImpl::getRect loading paste-match-style-001.html
22727
22728        Since we wish to close the tree for a build right now, I am rolling out rather than investigating.
22729
22730        * khtml/editing/htmlediting.cpp:
22731        (khtml::ApplyStyleCommand::addInlineStyleIfNeeded)
22732        (khtml::ReplacementFragment::insertFragmentForTestRendering)
22733        (khtml::createDefaultParagraphElement)
22734        (khtml::createBlockPlaceholderElement)
22735        (khtml::createFontElement)
22736        (khtml::createStyleSpanElement)
22737        * khtml/editing/htmlediting.h
22738
227392005-02-25  Ken Kocienda  <kocienda@apple.com>
22740
22741        Reviewed by John
22742
22743        Fix for this bug:
22744        
22745        <rdar://problem/4020108> Pasting text into message makes Mail crash reproducibly
22746
22747        Note that, even with this fix, development build will crash until this bug is fixed:
22748        <rdar://problem/4024996> Applying block styles can cause assertion failure in inline style removal
22749        
22750        This will not crash deployment builds, so I am going to land.
22751
22752        * khtml/editing/htmlediting.cpp:
22753        (khtml::ApplyStyleCommand::applyBlockStyle): Applying block styles can make the loop to reach beyondEnd
22754        fail since the structure of the document can change. Cache the next node first before operating on it,
22755        as we do elsewhere.
22756
227572005-02-25  Vicki Murley <vicki@apple.com>
22758
22759	- recommit this change, since rolling it out did NOT fix the performance regression!
22760
22761    2005-02-23  Darin Adler  <darin@apple.com>
22762
22763        Reviewed by John.
22764
22765        - fixed <rdar://problem/4011405> REGRESSION (180-181): Unconfirmed text disappears when text focus moves
22766
22767        The key was to change things around so that we don't push text from the DOM to the widget
22768        unless the DOM has actually been changed. This prevents the code path that wipes out inline input
22769        during the blur process.
22770
22771        * khtml/html/html_formimpl.cpp:
22772        (DOM::HTMLInputElementImpl::HTMLInputElementImpl): Start m_valueMatchesRenderer as false.
22773        (DOM::HTMLInputElementImpl::parseHTMLAttribute): Set m_valueMatchesRenderer to false when a
22774        new value is set here.
22775        (DOM::HTMLInputElementImpl::setValue): Set m_valueMatchesRenderer to false when a new value
22776        is set here.
22777        (DOM::HTMLInputElementImpl::setValueFromRenderer): Added. Sets m_value, sets m_valueMatchesRenderer
22778        to true, and also sends out the input event. It's better to have this here than in the renderer code.
22779        (DOM::HTMLTextAreaElementImpl::HTMLTextAreaElementImpl): Start m_valueIsValid as false (replaces
22780        m_dirtyvalue) and m_valueMatchesRenderer as false.
22781        (DOM::HTMLTextAreaElementImpl::updateValue): Added. Factored this out from the value function. Uses
22782        the new booleans and keeps them up to date, specifically setting m_valueMatchesRenderer based on
22783        where the value came from.
22784        (DOM::HTMLTextAreaElementImpl::value): Updated to call updateValue to do most of the work.
22785        (DOM::HTMLTextAreaElementImpl::setValue): Set both m_valueIsValid and m_valueMatchesRenderer.
22786        (DOM::HTMLTextAreaElementImpl::setDefaultValue): Take parameter by reference.
22787
22788        * khtml/html/html_formimpl.h: Added setValueFromRenderer, valueMatchesRenderer, setValueMatchesRenderer,
22789        and m_valueMatchesRenderer to input element. For textarea element, made some parameters pass DOMString
22790        by reference, and added invalidateValue, updateValue, valueMatchesRenderer, and setValueMatchesRenderer.
22791
22792        * khtml/rendering/render_form.cpp:
22793        (RenderLineEdit::updateFromElement): Don't re-get the value from the DOM if valueMatchesRenderer
22794        is true.
22795        (RenderLineEdit::slotTextChanged): Call setValueFromRenderer instead of manipulating the DOM
22796        directly.
22797        (RenderTextArea::detach): Call updateValue instead of calling value for its side effect.
22798        (RenderTextArea::handleFocusOut): Ditto.
22799        (RenderTextArea::updateFromElement): Call updateValue and then not re-get the value from the
22800        DOM if valueMatchesRenderer is true.
22801        (RenderTextArea::slotTextChanged): Call invalidateValue instead of directly setting m_dirtyvalue to true.
22802
228032005-02-25  Chris Blumenberg  <cblu@apple.com>
22804
22805	Fixed: <rdar://problem/4023566> Stickies: Crash in ReplacementFragment::insertFragmentForTestRendering on paste
22806
22807        Reviewed by darin.
22808
22809        * khtml/editing/htmlediting.cpp:
22810        (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
22811        (khtml::ReplacementFragment::insertFragmentForTestRendering):
22812        (khtml::floatRefdElement):
22813        (khtml::createDefaultParagraphElement):
22814        (khtml::createBlockPlaceholderElement):
22815        (khtml::createFontElement):
22816        (khtml::createStyleSpanElement):
22817        * khtml/editing/htmlediting.h:
22818
228192005-02-25  Darin Adler  <darin@apple.com>
22820
22821        * kwq/character-sets.txt: Checked in updated file. This new file has no effect, because none of the
22822        changes affect character sets that we support, but it's good to have the latest file in here, and
22823        completely safe because I checked that the generated files have not changed.
22824
228252005-02-25  Vicki Murley <vicki@apple.com>
22826
22827        Reviewed by Darin.
22828 
22829	- back out this change, since it causes a 3.5% performance regression
22830
22831    2005-02-23  Darin Adler  <darin@apple.com>
22832
22833        Reviewed by John.
22834
22835        - fixed <rdar://problem/4011405> REGRESSION (180-181): Unconfirmed text disappears when text focus moves
22836
22837        The key was to change things around so that we don't push text from the DOM to the widget
22838        unless the DOM has actually been changed. This prevents the code path that wipes out inline input
22839        during the blur process.
22840
22841        * khtml/html/html_formimpl.cpp:
22842        (DOM::HTMLInputElementImpl::HTMLInputElementImpl): Start m_valueMatchesRenderer as false.
22843        (DOM::HTMLInputElementImpl::parseHTMLAttribute): Set m_valueMatchesRenderer to false when a
22844        new value is set here.
22845        (DOM::HTMLInputElementImpl::setValue): Set m_valueMatchesRenderer to false when a new value
22846        is set here.
22847        (DOM::HTMLInputElementImpl::setValueFromRenderer): Added. Sets m_value, sets m_valueMatchesRenderer
22848        to true, and also sends out the input event. It's better to have this here than in the renderer code.
22849        (DOM::HTMLTextAreaElementImpl::HTMLTextAreaElementImpl): Start m_valueIsValid as false (replaces
22850        m_dirtyvalue) and m_valueMatchesRenderer as false.
22851        (DOM::HTMLTextAreaElementImpl::updateValue): Added. Factored this out from the value function. Uses
22852        the new booleans and keeps them up to date, specifically setting m_valueMatchesRenderer based on
22853        where the value came from.
22854        (DOM::HTMLTextAreaElementImpl::value): Updated to call updateValue to do most of the work.
22855        (DOM::HTMLTextAreaElementImpl::setValue): Set both m_valueIsValid and m_valueMatchesRenderer.
22856        (DOM::HTMLTextAreaElementImpl::setDefaultValue): Take parameter by reference.
22857
22858        * khtml/html/html_formimpl.h: Added setValueFromRenderer, valueMatchesRenderer, setValueMatchesRenderer,
22859        and m_valueMatchesRenderer to input element. For textarea element, made some parameters pass DOMString
22860        by reference, and added invalidateValue, updateValue, valueMatchesRenderer, and setValueMatchesRenderer.
22861
22862        * khtml/rendering/render_form.cpp:
22863        (RenderLineEdit::updateFromElement): Don't re-get the value from the DOM if valueMatchesRenderer
22864        is true.
22865        (RenderLineEdit::slotTextChanged): Call setValueFromRenderer instead of manipulating the DOM
22866        directly.
22867        (RenderTextArea::detach): Call updateValue instead of calling value for its side effect.
22868        (RenderTextArea::handleFocusOut): Ditto.
22869        (RenderTextArea::updateFromElement): Call updateValue and then not re-get the value from the
22870        DOM if valueMatchesRenderer is true.
22871        (RenderTextArea::slotTextChanged): Call invalidateValue instead of directly setting m_dirtyvalue to true.
22872
228732005-02-25  Darin Adler  <darin@apple.com>
22874
22875        Reviewed by Chris.
22876
22877        - fixed <rdar://problem/4024786> REGRESSION (Mail): "Smart paste" plain-text word into Blot leaves insertion point misplaced
22878
22879        * khtml/editing/htmlediting.cpp: (khtml::ReplaceSelectionCommand::doApply):
22880        Use the insertNodeAfterAndUpdateNodesInserted and insertNodeBeforeAndUpdateNodesInserted
22881        functions to add the leading and trailing spaces for smart paste.
22882
228832005-02-25  David Hyatt  <hyatt@apple.com>
22884
22885	Back out fix for 3382926, since it breaks LTR text inside RTL contexts.
22886	
22887        Reviewed by john
22888
22889        * khtml/rendering/bidi.cpp:
22890        (khtml::BidiIterator::direction):
22891
228922005-02-25  David Hyatt  <hyatt@apple.com>
22893
22894	Fix for 3975039, scrolling is slow in huge RSS views.  Optimize the calculation of clip rects for overflow:hidden
22895	layers.  Also optimize layer movement when scrolling overflow sections.
22896	
22897        Reviewed by darin
22898
22899        * khtml/rendering/render_layer.cpp:
22900        (throw):
22901        (ClipRects::operator delete):
22902        (ClipRects::detach):
22903        (RenderLayer::RenderLayer):
22904        (RenderLayer::~RenderLayer):
22905        (RenderLayer::updateLayerPosition):
22906        (RenderLayer::removeOnlyThisLayer):
22907        (RenderLayer::insertOnlyThisLayer):
22908        (RenderLayer::scrollToOffset):
22909        (RenderLayer::hitTest):
22910        (RenderLayer::calculateClipRects):
22911        (RenderLayer::calculateRects):
22912        (RenderLayer::containsPoint):
22913        (RenderLayer::clearClipRects):
22914        (RenderLayer::clearClipRect):
22915        * khtml/rendering/render_layer.h:
22916        (khtml::ClipRects::m_refCnt):
22917        (khtml::ClipRects::overflowClipRect):
22918        (khtml::ClipRects::fixedClipRect):
22919        (khtml::ClipRects::posClipRect):
22920        (khtml::ClipRects::ref):
22921        (khtml::ClipRects::deref):
22922        (khtml::RenderLayer::clipRects):
22923        * khtml/rendering/render_object.cpp:
22924        (RenderObject::setStyle):
22925
229262005-02-24  Maciej Stachowiak  <mjs@apple.com>
22927
22928        Reviewed by Darin and Dave a while ago.
22929
22930	<rdar://problem/3996685> REGRESSION: Crash in KWQVectorImpl::at loading http://maps.google.com/mapfiles/homepanel.xsl
22931        
22932	* kwq/WebCoreBridge.mm:
22933        (formElementFromDOMElement): Check for isHTMLElement() as well as
22934	id() == ID_FORM. This seems like an impossible situation, but
22935	papering over it seems more expedient for the time being.
22936
229372005-02-24  Richard Williamson   <rjw@apple.com>
22938
22939	Fixed <rdar://problem/3382926> Bidi neutrals at RTL/LTR boundaries not handled correctly.
22940
22941	Use mirror characters correctly when rendering with RTL directionality.
22942
22943        Reviewed by Hyatt.
22944
22945        * khtml/rendering/bidi.cpp:
22946        (khtml::BidiIterator::direction):
22947
229482005-02-24  Richard Williamson   <rjw@apple.com>
22949
22950	Fixed <rdar://problem/3985889> REGRESSION (125-180): setting <img> src to GIF that already animated does not animate; just shows final frame
22951	
22952        Reviewed by Hyatt.
22953
22954        * WebCore.pbproj/project.pbxproj:
22955        * khtml/html/html_imageimpl.cpp:
22956        (HTMLImageLoader::updateFromElement):
22957        * khtml/rendering/render_image.cpp:
22958        (RenderImage::resetAnimation):
22959        * khtml/rendering/render_image.h:
22960        * khtml/rendering/render_list.cpp:
22961        (RenderListMarker::setStyle):
22962        (RenderListMarker::paint):
22963        * khtml/rendering/render_list.h:
22964        * kwq/KWQPixmap.h:
22965        * kwq/KWQPixmap.mm:
22966        (QPixmap::QPixmap):
22967        (QPixmap::resetAnimation):
22968        * kwq/WebCoreImageRenderer.h:
22969
229702005-02-24  Chris Blumenberg  <cblu@apple.com>
22971
22972	Fixed: <rdar://problem/4020110> Safari crashes in setAllData while taking a www.zoomerang.com survey
22973
22974        Reviewed by rjw.
22975
22976        * kwq/KWQResourceLoader.mm:
22977        (-[KWQResourceLoader finishJobAndHandle:]): clear the job after we've deleted to avoid reentrancy
22978
229792005-02-24  Darin Adler  <darin@apple.com>
22980
22981        Reviewed by Vicki.
22982
22983        - fixed <rdar://problem/4023360> REGRESSION (186-187): image file upload is broken at pep.apple.com
22984
22985        * khtml/html/html_formimpl.cpp: (DOM::HTMLInputElementImpl::appendFormData): Return true after
22986        setting up the form data for an uploaded file. The old code would fall through to the ISINDEX
22987        case and send double form data (the filename instead of the file contents the second time).
22988
229892005-02-24  David Harrison  <harrison@apple.com>
22990
22991        Reviewed by Ken.
22992        
22993        <rdar://problem/3990849> AX: textMarkerRange for an AXUIElement within an AXWebArea
22994
22995        * kwq/KWQAccObject.mm:
22996        (-[KWQAccObject textMarkerRange]):
22997        (-[KWQAccObject accessibilityParameterizedAttributeNames]):
22998        (-[KWQAccObject doAXTextMarkerRangeForUIElement:]):
22999        (-[KWQAccObject accessibilityAttributeValue:forParameter:]):
23000        Added AXTextMarkerRangeForUIElement, or you can send textMarkerRange to the UIElement itself.
23001
230022005-02-24  David Harrison  <harrison@apple.com>
23003
23004        Reviewed by Vicki.
23005
23006        <rdar://problem/4004279> 3 AXSelectedTextChanged notifications are firing each time I type a character
23007
23008        * khtml/xml/dom_docimpl.cpp:
23009        (DocumentImpl::updateSelection):
23010        Send notification only if the selection is not null.  This safely ignores transitory selections set during editing.
23011
230122005-02-24  Darin Adler  <darin@apple.com>
23013
23014        Reviewed by John.
23015
23016        - fixed <rdar://problem/3987619> in some cases, text doesn't resize with Format->Style->Bigger/Smaller
23017
23018        * khtml/editing/htmlediting.cpp:
23019        (khtml::ApplyStyleCommand::applyRelativeFontStyleChange): Only call nodeFullySelected for non-text nodes.
23020        Text nodes are already split so they're either in the range and full selected or out of the range.
23021        And nodeFullySelected doesn't work for text nodes.
23022        (khtml::ApplyStyleCommand::nodeFullySelected): Add an assertion, since this function only works for elements,
23023        not text nodes.
23024        (khtml::ApplyStyleCommand::nodeFullyUnselected): Ditto.
23025
23026        - make big improvement in <rdar://problem/3953636> Mail hung for ~10sec changing font of 84328 characters: khtml::ApplyStyleCommand::nodeFullySelected
23027
23028        * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::compareBoundaryPoints): Improve algorithm based on suggestion
23029        from Nate Begeman.
23030
23031        - fixed <rdar://problem/4020305> REGRESSION (185-186): loading image in new window using document.write fails
23032
23033        * khtml/xml/dom_docimpl.cpp: (DocumentImpl::open): If there is no parent document, don't blow away the base URL.
23034
23035        - fixed <rdar://problem/4021701> REGRESSION (188-188+): form not submitted after pressing <return> at http://hrweb.apple.com
23036        
23037        * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::dispatchMouseEvent): Send activate event in the case where the event
23038        sent is a KHTML_CLICK_EVENT, not CLICK_EVENT.
23039
230402005-02-23  Kevin Decker  <kdecker@apple.com>
23041
23042        Reviewed by mjs  
23043        
23044        Fixed <rdar://problem/4020747> REGRESSION: stray </applet> tags crash Safari
23045
23046        * khtml/html/htmlparser.cpp:
23047        (KHTMLParser::processCloseTag):  Made a typesafe check that prevents crashes
23048        whenever there is a closing applet tag without an actual <applet> in the first place. 
23049        Now verifies the current token is ID_APPLET before casting it to an HTMLAppletElementImpl.
23050         
23051
230522005-02-23  Ken Kocienda  <kocienda@apple.com>
23053
23054        Reviewed by John
23055
23056        Fix for this bug:
23057        
23058        <rdar://problem/3977962> font loses bold style after pasting next to existing text and pressing return
23059
23060        * khtml/editing/htmlediting.cpp:
23061        (khtml::InsertParagraphSeparatorCommand::calculateStyleBeforeInsertion): Problem here was
23062        that we were doing work in cases where we should not, and content whose style would have
23063        been correct if we had done nothing was getting clobbered. It turns out that extra work
23064        to apply style to the new paragraph added in this command only needs to be done if we're 
23065        at the boundaries of a paragraph. Otherwise, content that is moved as part of the work 
23066        of the command will lend their styles to the new paragraph without any extra work needed.
23067        So, make this position check and return unless at a paragraph boundary.
23068
23069        New test:
23070
23071        * layout-tests/editing/style/block-styles-007-expected.txt
23072        * layout-tests/editing/style/block-styles-007.html
23073
230742005-02-23  Ken Kocienda  <kocienda@apple.com>
23075
23076        Reviewed by Hyatt
23077
23078        Fix for this bug:
23079        
23080        <rdar://problem/4017641> REGRESSION (Mail): you can only bold/unbold a selection starting from end of line once
23081
23082        Problem is with the way we figure out whether to add or remove a style based on
23083        the current selection. In this case, the code is looking at the end of the
23084        previous line, which is not bold, and deduces incorrectly that the operation is
23085        a "make bold". Then the style code runs to make bold, but there is nothing on
23086        the end of the previous line to embolden, so we get into a cycle where the same
23087        thing happens each time cmd-b is hit.
23088
23089        * khtml/khtml_part.cpp:
23090        (KHTMLPart::selectionComputedStyle):  Call editingStartPosition() to get the right position for the font determination.
23091        * khtml/xml/dom2_rangeimpl.cpp:
23092        (DOM::RangeImpl::editingStartPosition): New helper function that "does the right thing" based on whether the
23093        selection is a caret or a range, moving upstream for the former, and downstream for the latter.
23094        * khtml/xml/dom2_rangeimpl.h:
23095        * kwq/KWQKHTMLPart.mm:
23096        (KWQKHTMLPart::fontForSelection): Call editingStartPosition() to get the right position for the font determination.
23097
23098        New tests:
23099
23100        * layout-tests/editing/style/style-boundary-001-expected.txt
23101        * layout-tests/editing/style/style-boundary-001.html
23102        * layout-tests/editing/style/style-boundary-002-expected.txt
23103        * layout-tests/editing/style/style-boundary-002.html
23104        * layout-tests/editing/style/style-boundary-003-expected.txt
23105        * layout-tests/editing/style/style-boundary-003.html
23106        * layout-tests/editing/style/style-boundary-004-expected.txt
23107        * layout-tests/editing/style/style-boundary-004.html
23108
231092005-02-23  Richard Williamson   <rjw@apple.com>
23110
23111	Fixed <rdar://problem/3985579> 8A367: Dashboard: Stock widget not visible when click remove to remove single char ticker symbol
23112
23113	Explicitly remove scroll bar views when removing them from 
23114	the overflow.
23115
23116	Don't paint synchronously when the scroll position changes,
23117	this caused funky clip problems.
23118
23119        Reviewed by Hyatt.
23120
23121        * khtml/rendering/render_layer.cpp:
23122        (RenderLayer::scrollToOffset):
23123        (RenderLayer::setHasHorizontalScrollbar):
23124        (RenderLayer::setHasVerticalScrollbar):
23125        (RenderLayer::updateScrollInfoAfterLayout):
23126
231272005-02-23  Ken Kocienda  <kocienda@apple.com>
23128
23129        Reviewed by Hyatt
23130
23131        Fix for this bug:
23132        
23133        <rdar://problem/3959996> REGRESSION (Mail): cursor moves to beginning of document when click is past end
23134
23135        * khtml/rendering/render_block.cpp:
23136        (khtml::RenderBlock::positionForCoordinates): Skip blocks that are invisible or have no height when 
23137        looking for a child to pass off to. And save away the last visible block with a height to pass off
23138        to if there is no child at the right y-coordinate.
23139
231402005-02-23  David Harrison  <harrison@apple.com>
23141
23142        Reviewed by Darin.
23143
23144        <rdar://problem/4010059> BoundsForTextMarkerRange does not update with scrolled web area
23145
23146        * kwq/KWQAccObject.mm:
23147        (-[KWQAccObject doAXBoundsForTextMarkerRange:]):
23148        Adjust for scrolling.
23149
231502005-02-22  Maciej Stachowiak  <mjs@apple.com>
23151
23152        Reviewed by Ken.
23153
23154	<rdar://problem/3949790> hitting return after pasted styled line results in extra content getting the style
23155	
23156        * khtml/editing/htmlediting.cpp:
23157        (khtml::InsertParagraphSeparatorCommand::doApply): In the case
23158	where the start block is the root, insert the newly created DIV at
23159	the end of the root block instead of after the last sibling in the
23160	start node, since the start node could be inside other
23161	style-affecting nodes and we don't want to reparent its cousins
23162	into that.
23163
231642005-02-23  David Harrison  <harrison@apple.com>
23165
23166        Reviewed by Vicki.
23167
23168        <rdar://problem/4014691> switch to correctly spelled NSAccessibilityForegroundColorTextAttribute constant
23169        
23170        Also removed two older, now unneeded, wrappers.
23171
23172        * kwq/KWQAccObject.mm:
23173        (-[KWQAccObject visiblePositionForStartOfTextMarkerRange:]):
23174        (-[KWQAccObject visiblePositionForEndOfTextMarkerRange:]):
23175        Removed these older, now unneeded, wrappers.
23176        
23177        (NSAccessibilityForegroundColorTextAttributeWrapper):
23178        New wrapper for NSAccessibilityForegroundColorTextAttribute.
23179        
23180        (AXAttributeStringSetStyle):
23181        Use NSAccessibilityForegroundColorTextAttributeWrapper.
23182        
23183        (-[KWQAccObject doAXTextMarkerRangeForUnorderedTextMarkers:]):
23184        Remove uses of visiblePositionForStartOfTextMarkerRange and visiblePositionForEndOfTextMarkerRange.
23185
231862005-02-23  David Harrison  <harrison@apple.com>
23187
23188        Reviewed by Vicki.
23189
23190        <rdar://problem/3524784> AX hit test doesn't return info when done in empty space of content area
23191
23192        * kwq/KWQAccObject.mm:
23193        (-[KWQAccObject accessibilityHitTest:]):
23194        Return unignored object.
23195
231962005-02-23  Darin Adler  <darin@apple.com>
23197
23198        Reviewed by Ken.
23199
23200        - fixed <rdar://problem/4006509> REGRESSION (171-172): Setting CSS -khtml-user-modify property triggers crash
23201
23202        * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::applyProperty):
23203        Removed the code that changes the style of the element. This was never needed, and caused the
23204        style to be modified while we were iterating it.
23205
232062005-02-23  Ken Kocienda  <kocienda@apple.com>
23207
23208        Reviewed by John
23209
23210        Fix for this bug:
23211        
23212        <rdar://problem/3980209> Mail crashed when I pressed Cmd-Shift-[ (nil-deref in ApplyStyleCommand::addBlockStyleIfNeeded)
23213
23214        * khtml/editing/htmlediting.cpp:
23215        (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): Reordered the new block
23216        insertion so that it come before the move. The logic stays exactly the same, however, with the old
23217        ordering, the new block could want to become a child of itself come insertion time. I considered
23218        making a more complicated code change to fix this problem, but the simple reordering works just
23219        as well, and seems less risky.
23220        
23221        These all changed in an insignificant way. It seems that with the new code, some empty text nodes
23222        got reordered in the document. This has no effect on anything visible to the user.
23223        
23224        * layout-tests/editing/style/create-block-for-style-003-expected.txt
23225        * layout-tests/editing/style/create-block-for-style-004-expected.txt
23226        * layout-tests/editing/style/create-block-for-style-009-expected.txt
23227        * layout-tests/editing/style/create-block-for-style-011-expected.txt
23228        * layout-tests/editing/style/create-block-for-style-013-expected.txt
23229
232302005-02-23  Darin Adler  <darin@apple.com>
23231
23232        Reviewed by John.
23233
23234        - fixed <rdar://problem/4013986> REGRESSION (173-174): onclick event not sent when mouse click on checkbox is double-click
23235
23236        We need to send an onclick event *and* an ondblclick event when we process a double click.
23237
23238        * khtml/khtmlview.cpp: (KHTMLView::dispatchMouseEvent): In the case where we're sending a CLICK_EVENT,
23239        follow it by a KHTML_CLICK_EVENT, a KHTML_DBLCLICK_EVENT when handling a double click, and a DOMACTIVATE_EVENT.
23240        We no longer do the DOMACTIVATE_EVENT in dispatchGenericEvent.
23241        * khtml/rendering/render_form.cpp: (RenderFormElement::slotClicked): send only CLICK_EVENT here, and
23242        lets dispatchMouseEvent deal with the other subsequent events.
23243        * khtml/xml/dom_nodeimpl.cpp:
23244        (NodeImpl::dispatchGenericEvent): Remove the code that sends a DOMACTIVATE_EVENT, since there's no longer
23245        a good way to figure out if this is the last event that should be sent before it is.
23246        (NodeImpl::dispatchMouseEvent): Set the meta key modifier here (as it already is set elsewhere), and
23247        follow up a CLICK_EVENT with KHTML_CLICK_EVENT, a KHTML_DBLCLICK_EVENT, and DOMACTIVATE_EVENT as above.
23248
232492005-02-23  Darin Adler  <darin@apple.com>
23250
23251        Reviewed by John.
23252
23253        - fixed <rdar://problem/4011405> REGRESSION (180-181): Unconfirmed text disappears when text focus moves
23254
23255        The key was to change things around so that we don't push text from the DOM to the widget
23256        unless the DOM has actually been changed. This prevents the code path that wipes out inline input
23257        during the blur process.
23258
23259        * khtml/html/html_formimpl.cpp:
23260        (DOM::HTMLInputElementImpl::HTMLInputElementImpl): Start m_valueMatchesRenderer as false.
23261        (DOM::HTMLInputElementImpl::parseHTMLAttribute): Set m_valueMatchesRenderer to false when a
23262        new value is set here.
23263        (DOM::HTMLInputElementImpl::setValue): Set m_valueMatchesRenderer to false when a new value
23264        is set here.
23265        (DOM::HTMLInputElementImpl::setValueFromRenderer): Added. Sets m_value, sets m_valueMatchesRenderer
23266        to true, and also sends out the input event. It's better to have this here than in the renderer code.
23267        (DOM::HTMLTextAreaElementImpl::HTMLTextAreaElementImpl): Start m_valueIsValid as false (replaces
23268        m_dirtyvalue) and m_valueMatchesRenderer as false.
23269        (DOM::HTMLTextAreaElementImpl::updateValue): Added. Factored this out from the value function. Uses
23270        the new booleans and keeps them up to date, specifically setting m_valueMatchesRenderer based on
23271        where the value came from.
23272        (DOM::HTMLTextAreaElementImpl::value): Updated to call updateValue to do most of the work.
23273        (DOM::HTMLTextAreaElementImpl::setValue): Set both m_valueIsValid and m_valueMatchesRenderer.
23274        (DOM::HTMLTextAreaElementImpl::setDefaultValue): Take parameter by reference.
23275
23276        * khtml/html/html_formimpl.h: Added setValueFromRenderer, valueMatchesRenderer, setValueMatchesRenderer,
23277        and m_valueMatchesRenderer to input element. For textarea element, made some parameters pass DOMString
23278        by reference, and added invalidateValue, updateValue, valueMatchesRenderer, and setValueMatchesRenderer.
23279
23280        * khtml/rendering/render_form.cpp:
23281        (RenderLineEdit::updateFromElement): Don't re-get the value from the DOM if valueMatchesRenderer
23282        is true.
23283        (RenderLineEdit::slotTextChanged): Call setValueFromRenderer instead of manipulating the DOM
23284        directly.
23285        (RenderTextArea::detach): Call updateValue instead of calling value for its side effect.
23286        (RenderTextArea::handleFocusOut): Ditto.
23287        (RenderTextArea::updateFromElement): Call updateValue and then not re-get the value from the
23288        DOM if valueMatchesRenderer is true.
23289        (RenderTextArea::slotTextChanged): Call invalidateValue instead of directly setting m_dirtyvalue to true.
23290
232912005-02-22  Richard Williamson   <rjw@apple.com>
23292
23293	Fixed <rdar://problem/3937203> when a div adds a scrollbar (overflow:auto) we do not get regions
23294
23295	Just set dashboard dirty bit when overflow scrolling changes.
23296
23297	Don't do comparison of regions in before scroll regions are
23298	added, instead do it in WebKit after automatic scroll regions
23299	are added.
23300
23301        Reviewed by Maciej.
23302
23303        * khtml/css/cssparser.cpp:
23304        (CSSParser::parseDashboardRegions):  Cleaned up comments
23305        * khtml/css/cssstyleselector.cpp:
23306        (khtml::CSSStyleSelector::styleForElement): Cleaned up comments
23307
23308        * khtml/khtmlview.cpp:
23309        (KHTMLView::updateDashboardRegions):
23310        * khtml/rendering/render_layer.cpp:
23311        (RenderLayer::updateScrollInfoAfterLayout):
23312        * kwq/WebDashboardRegion.m:
23313        (-[WebDashboardRegion isEqual:]):
23314
233152005-02-22  Chris Blumenberg  <cblu@apple.com>
23316
23317	Fixed: <rdar://problem/3976872> Pasted plain text doesn't get the proper style if pasted into newlines
23318
23319        Reviewed by mjs.
23320
23321        * khtml/editing/htmlediting.cpp:
23322        (khtml::ReplaceSelectionCommand::doApply): don't clear the typing style when matching style
23323        (khtml::ReplaceSelectionCommand::completeHTMLReplacement): apply the typing style when matching style
23324        * khtml/editing/jsediting.cpp:
23325        * khtml/khtml_part.cpp:
23326        (KHTMLPart::pasteAndMatchStyle): new
23327        * khtml/khtml_part.h:
23328        * kwq/KWQKHTMLPart.h:
23329        * kwq/KWQKHTMLPart.mm:
23330        (KWQKHTMLPart::issuePasteAndMatchStyleCommand): new
23331        * kwq/WebCoreBridge.h:
23332        * layout-tests/editing/editing.js:
23333
233342005-02-22  Darin Adler  <darin@apple.com>
23335
23336        Reviewed by Adele.
23337
23338        - fixed <rdar://problem/4006596> REGRESSION (183-184): crash in DOM::DocumentImpl::setFocusNode(DOM::NodeImpl*)
23339
23340        * khtml/xml/dom_docimpl.cpp:
23341        (widgetForNode): Added helper.
23342        (DocumentImpl::setFocusNode): Re-get the widget for the node after calling updateLayout.
23343        The updateLayout can destroy the old widget, so we can't keep a stale widget pointer around.
23344
233452005-02-22  Ken Kocienda  <kocienda@apple.com>
23346
23347        Reviewed by Hyatt
23348
23349        Fix for this bug:
23350        
23351        <rdar://problem/4003463> Mail.app HTML uses inline styling markup not understood by Entourage and Eudora
23352
23353        * khtml/editing/htmlediting.cpp:
23354        (khtml::isEmptyFontTag): Helper for removing <font> tags.
23355        (khtml::StyleChange::styleModeForParseMode): Helper to map a document parse mode to a use/don't use
23356        legacy-html-styles value.
23357        (khtml::StyleChange::checkForLegacyHTMLStyleChange): Add support for colors, font faces, and font sizes.
23358        (khtml::ApplyStyleCommand::isHTMLStyleNode):
23359        (khtml::ApplyStyleCommand::removeHTMLFontStyle):
23360        (khtml::ApplyStyleCommand::applyTextDecorationStyle): Now call styleModeForParseMode to determine
23361        whether to use legacy html styles or not.
23362        (khtml::ApplyStyleCommand::removeInlineStyle): Now properly removes <font> styles.
23363        (khtml::ApplyStyleCommand::addBlockStyleIfNeeded): Ditto.
23364        (khtml::ApplyStyleCommand::addInlineStyleIfNeeded): Ditto.
23365        (khtml::createFontElement): Helper for applying <font> elements.
23366        * khtml/editing/htmlediting.h: All the following support the new bits of data we need to store.
23367        (khtml::StyleChange::applyFontColor)
23368        (khtml::StyleChange::applyFontFace)
23369        (khtml::StyleChange::applyFontSize)
23370        (khtml::StyleChange::fontColor)
23371        (khtml::StyleChange::fontFace)
23372        (khtml::StyleChange::fontSize)
23373
23374        Test results updated now that we will write out <font> tags for quirks mode documents.        
23375        
23376        * layout-tests/editing/execCommand/modifyForeColorByCharacter-expected.txt
23377        * layout-tests/editing/style/block-style-004-expected.txt
23378        * layout-tests/editing/editing/pasteboard/paste-text-011-expected.txt
23379        * layout-tests/editing/style/block-style-005-expected.txt
23380        * layout-tests/editing/style/block-style-006-expected.txt
23381        * layout-tests/editing/style/smoosh-styles-001-expected.txt
23382        * layout-tests/editing/style/smoosh-styles-002-expected.txt
23383
233842005-02-22  Maciej Stachowiak  <mjs@apple.com>
23385
23386        Reviewed by Kevin.
23387
23388	<rdar://problem/4017066> crash in KJS::ValueImp::dispatchType() every time I load www.nytimes.com/pages/automobiles
23389
23390	When creating option elements, use lowercase "option" instead of
23391	uppercase "OPTION" to create option elements, because only
23392	lowercase works for XHTML.
23393	
23394        * khtml/ecma/kjs_html.cpp:
23395        (KJS::HTMLSelectCollection::tryPut):
23396        (OptionConstructorImp::construct):
23397
233982005-02-22  Chris Blumenberg  <cblu@apple.com>
23399
23400	WebCore fix for: <rdar://problem/3918056> Mail not line breaking my <pre> formatted emails on replies
23401	
23402	Mail must 4018993 to fully address the problem.
23403
23404        Reviewed by kocienda.
23405
23406        * khtml/editing/markup.cpp:
23407        (khtml::startMarkup): don't compute style for text in PRE tags
23408        (khtml::createMarkup): include PRE if it is an ancestor of the nodes in the range
23409
234102005-02-21  Richard Williamson   <rjw@apple.com>
23411
23412	Fixed <rdar://problem/4008338> REGRESSION (125-178): opacity style not working, breaks fading images on okcupid.com
23413
23414	There was a long standing bug in cssText().  Double value were always cast int!  So,
23415	opacity values values were incorrectly converted to text, i.e. 0.75 became 0.
23416	
23417	The problem was newly triggered because we parse the css for opacity *TWICE*.  This is a result of 
23418	incorrectly "invalidating" the style attribute (from fix for 3790449).  The second parse was from
23419	the cssText() of the style.
23420
23421        Reviewed by Hyatt.
23422
23423        * khtml/css/css_valueimpl.cpp:
23424        (DOM::CSSPrimitiveValueImpl::cssText):
23425
234262005-02-21  David Hyatt  <hyatt@apple.com>
23427
23428	Fix for 4017204, apply the same fix to the base class nodeAtPoint that was already applied to RenderBlock.
23429	Skip elements with layers and inline flows.  Demoted <form>s can end up causing trouble otherwise.
23430	
23431        Reviewed by Richard Williamson
23432
23433        * khtml/rendering/render_box.cpp:
23434        (RenderBox::nodeAtPoint):
23435
234362005-02-21  David Hyatt  <hyatt@apple.com>
23437
23438	Fix for 4017033, CSS is being parsed twice.  Make sure to always validate the style attribute when it is
23439	initially parsed.  Add code to clean up decls when the style attribute is completely removed.  Add a new
23440	synchronizing boolean that avoids reparsing the style declaration when the attribute is simply
23441	being synced up to the declaration.
23442
23443        Reviewed by John
23444
23445        * khtml/css/css_valueimpl.cpp:
23446        (DOM::CSSMutableStyleDeclarationImpl::setChanged):
23447        * khtml/html/html_elementimpl.cpp:
23448        (HTMLElementImpl::invalidateStyleAttribute):
23449        (HTMLElementImpl::updateStyleAttributeIfNeeded):
23450        (HTMLElementImpl::HTMLElementImpl):
23451        (HTMLElementImpl::~HTMLElementImpl):
23452        (HTMLElementImpl::destroyInlineStyleDecl):
23453        (HTMLElementImpl::mapToEntry):
23454        (HTMLElementImpl::parseHTMLAttribute):
23455        * khtml/html/html_elementimpl.h:
23456        * khtml/xml/dom_elementimpl.cpp:
23457        (ElementImpl::ElementImpl):
23458        (ElementImpl::setAttribute):
23459        * khtml/xml/dom_elementimpl.h:
23460        (DOM::ElementImpl::updateStyleAttributeIfNeeded):
23461
23462=== Safari-188 ===
23463
234642005-02-21  Darin Adler  <darin@apple.com>
23465
23466        - fixed Panther deployment build
23467
23468        * kwq/KWQTextEdit.mm: (QTextEdit::setScrollBarModes): Put more stuff inside #if.
23469
234702005-02-21  David Harrison  <harrison@apple.com>
23471
23472        Reviewed by Darin.
23473
23474        <rdar://problem/3943090> REGRESSION (Mail): Spelling underline incompletely erased following certain steps
23475
23476        * khtml/rendering/render_text.cpp:
23477        (InlineTextBox::paintMarker):
23478        Make sure underline is placed within the text bounds.
23479        
23480        * kwq/KWQPainter.h:
23481        * kwq/KWQPainter.mm:
23482        (QPainter::misspellingLineThickness):
23483        * kwq/WebCoreTextRenderer.h:
23484        Add misspellingLineThickness for use by InlineTextBox::paintMarker.
23485
234862005-02-21  Darin Adler  <darin@apple.com>
23487
23488        Reviewed by John.
23489
23490        - fixed <rdar://problem/4012978> -[DOMRange markupString] crashes when range contains only a text node with a single space
23491
23492        * khtml/editing/markup.cpp: (khtml::createMarkup): Added updateLayout calls, and added a missing
23493        nil check.
23494
234952005-02-21  Darin Adler  <darin@apple.com>
23496
23497        Reviewed by John.
23498
23499        - fixed <rdar://problem/4005435> Safari hung while pasting text into a <textarea> (Panther-only)
23500
23501        * kwq/KWQTextEdit.mm: (QTextEdit::setScrollBarModes): Don't setAutohidesScrollers:YES on Panther.
23502
235032005-02-21  Ken Kocienda  <kocienda@apple.com>
23504
23505        Reviewed by John
23506
23507        Fix for this bug:
23508        
23509        <rdar://problem/4015499> REGRESSION (186-187): pasted quoted text starting with a blank line increases quote level of pasted text when pasted
23510
23511        * khtml/editing/markup.cpp:
23512        (khtml::markup): Changed over to ASSERT instead of assert.
23513        (khtml::createMarkup): The issue was that the code to add parents all the way back to the common ancestor
23514        block did not check for blocks whose markup had already been added, and could result in adding markup for
23515        nodes twice (hence the additional and erroneous quote level). Now there is a new check that will
23516        only add markup for those nodes before the start of the selection range. This fixes the bug.
23517        (khtml::createFragmentFromMarkup): Changed over to ASSERT instead of assert.
23518        (khtml::createFragmentFromText): Ditto.
23519
235202005-02-21  Ken Kocienda  <kocienda@apple.com>
23521
23522        Reviewed by John
23523
23524        Fix for this bug:
23525        
23526        <rdar://problem/4015494> REGRESSION (186-187) <cr> removed if quoted word is copy/pasted on line immediately above quoted text
23527
23528        * khtml/editing/htmlediting.cpp:
23529        (khtml::ReplaceSelectionCommand::doApply): Relatively new check designed to remove a <br> element when
23530        that element was on a line by itself did not do an adequate check for this condition, causing the
23531        failure described in the bug. Fixed.
23532
235332005-02-19  Ken Kocienda  <kocienda@apple.com>
23534
23535        Reviewed by Maciej
23536
23537        * khtml/editing/htmlediting.cpp:
23538        (khtml::matchNearestBlockquoteColorString): New function which abstracts away the CSS property we use
23539        for this pseudo-color.
23540        (khtml::ReplacementFragment::removeBlockquoteColorsIfNeeded): Set the new nearestBlockquoteColorString
23541        psuedo-color here, rather than removing colors as was done before.
23542        (khtml::ReplaceSelectionCommand::applyStyleToInsertedNodes): Check for the pseudo-color in the desired
23543        style, and determine the real color based on the nearest blockquote (or none) to the node.
23544        (khtml::nearestMailBlockquote): Name change from closestMailBlockquote to match new property better.
23545
23546        All the rest of this change is the mechanical coding you need to do to add a new CSS property, in this
23547        case, -khtml-match-nearest-mail-blockquote-color.
23548
23549        * khtml/css/css_computedstyle.cpp:
23550        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue)
23551        * khtml/css/cssparser.cpp:
23552        (CSSParser::parseValue):
23553        * khtml/css/cssproperties.c:
23554        (hash_prop):
23555        (findProp):
23556        * khtml/css/cssproperties.h:
23557        * khtml/css/cssproperties.in:
23558        * khtml/css/cssstyleselector.cpp:
23559        (khtml::CSSStyleSelector::applyProperty)
23560        * khtml/css/cssvalues.c:
23561        (findValue)
23562        * khtml/css/cssvalues.h:
23563        * khtml/css/cssvalues.in:
23564        * khtml/rendering/render_style.h:
23565        (khtml::RenderStyle::matchNearestMailBlockquoteColor)
23566        (khtml::RenderStyle::setMatchNearestMailBlockquoteColor)
23567        (khtml::RenderStyle::initialMatchNearestMailBlockquoteColor)
23568
235692005-02-19  Ken Kocienda  <kocienda@apple.com>
23570
23571        Reviewed by Chris
23572
23573        Fix for these bugs:
23574        
23575        <rdar://problem/4014228> REGRESSION (186-187) extra, uneditable lines inserted above and below a line of pasted quoted text
23576        <rdar://problem/4014393> REGRESSION (186-187) pasted quoted text gets extra <cr>s when pasted at top of document
23577
23578        * khtml/editing/htmlediting.cpp:
23579        (khtml::ReplacementFragment::ReplacementFragment): Part of a general refactoring of how
23580        the fragment is inserted into the document, rendered, and then tested for certain
23581        important pieces of information that are required for pasting.
23582        (khtml::ReplacementFragment::insertFragmentForTestRendering): New helper. Handles inserting
23583        the fragment nodes into the document.
23584        (khtml::ReplacementFragment::restoreTestRenderingNodesToFragment): Removes nodes from the
23585        document, and restores them to the fragment.
23586        (khtml::ReplacementFragment::computeStylesUsingTestRendering): Factored out code that
23587        did this before into its own function.
23588        (khtml::ReplacementFragment::removeUnrenderedNodesUsingTestRendering): Ditto.
23589        (khtml::ReplacementFragment::countRenderedBlocks): This is a real improvement, as it
23590        eliminates a major use of the isProbablyBlock() function. Now, the blocks that are
23591        counted are real, rendered blocks.
23592        (khtml::ReplacementFragment::removeStyleNodes): Made this function retain margin-zeroing
23593        CSS properties on paragraphs. This does two things: 1) It helps us to maintain good behavior
23594        in the short term while there are still versions of Mail out there that use <p> elements
23595        instead of <div> elements for new paragraphs; and 2) It will help to maintain the compatibility
23596        with other mail clients that use <p> elements for their paragraphs but render them themselves
23597        with no margins as the result of quirks.
23598        (khtml::ReplaceSelectionCommand::doApply): Do some work to fix up and improve the handling
23599        of blank lines, be they <p> elements or <br> elements, that can be removed after pasting. This, 
23600        coupled with the refactoring, fixes 4014393.
23601        * khtml/editing/htmlediting.h: Updated for new functions.
23602        * layout-tests/editing/pasteboard/paste-text-010-expected.txt: Updated results, actually improved with this change.
23603        * layout-tests/editing/pasteboard/paste-text-011-expected.txt: Ditto.
23604
236052005-02-19  Kevin Decker  <kdecker@apple.com>
23606
23607        Reviewed by Chris.
23608
23609	Fixed <rdar://problem/4010765> Flash player can be used to arbitrarily open popup windows without user permission
23610	
23611	Our window.open() policy is to refuse the <script>window.open(...)</script> case and allow the inline the <a href="javascript:window.open('foo')> case.  Clever advertisers at some point realized that by executing their Javascript through the Flash plugin, Safari would always treat their code as the inline case, and thus, they were able to work around our popup blocker.
23612
23613        * kwq/WebCoreBridge.h:
23614        * kwq/WebCoreBridge.mm:
23615        (-[WebCoreBridge stringByEvaluatingJavaScriptFromString:]): Changed this to invoke the new stringByEvaluatingJavaScriptFromString:forceUserGesture method below.
23616        (-[WebCoreBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]): Let the WebKit make the determination if this was a user originated gesture or not; we must no longer assume this is always the case.
23617
236182005-02-18  Chris Blumenberg  <cblu@apple.com>
23619	
23620	Fixed: <rdar://problem/3951196> REGRESSION (Mail): too many levels of reply quotes after certain steps
23621
23622        Reviewed by kocienda.
23623
23624        * khtml/editing/htmlediting.cpp:
23625        (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
23626	- If we find a new start node, update topBlockquote so we don't use too many block quotes for the contents following the new line.
23627	- Build up the list of ancestors after we've determined the actual topBlockquote.
23628	- Don't insert an extra new line if there is a new start node.
23629
236302005-02-19  Chris Blumenberg  <cblu@apple.com>
23631
23632	Fixed: <rdar://problem/3978461> smart paste is broken
23633
23634        Reviewed by kevin.
23635
23636        * khtml/editing/htmlediting.cpp:
23637        (khtml::ReplaceSelectionCommand::doApply): properly check for leading and trailing whitespace. These checks were incorrectly reversed. Also check if we're pasting at the beginning or end of a line. We should not insert spaces in either case.
23638
236392005-02-18  Adele Amchan  <adele@apple.com>
23640
23641        Reviewed by Darin.
23642
23643        Fix for <rdar://problem/3975568> REGRESSION(125-180)Australian Open pages have drawing problem
23644
23645        This patch fixes two problems caused by our added support for custom tags.  First, the layout problem at the sites mentioned in the bug
23646        was caused by custom tags within tables.  In checkChild, we needed to treat these tags as spans so they get placed correctly in the DOM tree.
23647        Also, we were indexing the tagPriority and endTag arrays with id values from the custom tags that were greater than the size of the array.  So now 
23648        we have functions to check for the custom tags, and again, treat them as spans.  To avoid confusion, we changed the names of the arrays to
23649        endTagArray and tagPriorityArray.
23650
23651        * khtml/html/dtd.h: changed all uses of the endTag array to endTagArray for our new wrapper functions
23652        (DOM::tagPriority): added function to check array bounds and to treat custom tags as spans
23653        (DOM::endTagRequirement): added function to check array bounds and to treat custom tags as spans
23654        * khtml/html/dtd.cpp: changed name of endTag and tagPriority arrays to endTagArray and tagPriorityArray
23655        (DOM::checkChild): treat custom tags as spans during this check
23656        * khtml/html/html_elementimpl.cpp: changed all uses of the endTag array to the endTagRequirement function
23657        (HTMLElementImpl::createContextualFragment):
23658        (HTMLElementImpl::setInnerText):
23659        (HTMLElementImpl::setOuterText):
23660        (HTMLElementImpl::toString):
23661        * khtml/html/htmlparser.cpp: changed all uses of the endTag array to the endTagRequirement function and all uses of the tagPriority array to the tagPriority function.
23662        (KHTMLParser::parseToken):
23663        (KHTMLParser::insertNode):
23664        * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseTag): changed all uses of the endTag array to the endTagRequirement function
23665       * khtml/editing/markup.cpp: changed all uses of the endTag array to the endTagRequirement function
23666        (khtml::endMarkup): 
23667        (khtml::markup):
23668
236692005-02-18  Jens Alfke  <jens@apple.com>
23670
23671        Reviewed by Hyatt.
23672
23673	Fixed build: Whoops, setNeedsLayout's parameter is NOT optional.
23674
23675        * khtml/html/html_objectimpl.cpp:
23676        (HTMLAppletElementImpl::setAllParamsAvailable):
23677
236782005-02-18  Jens Alfke  <jens@apple.com>
23679
23680        Reviewed by cblu, hyatt.
23681
23682	Fixes <rdar://problem/3603191> "REGRESSION: Applets not receiving all of the Applet Parameters in Java 1.4.1/1.4.2"
23683	Defer instantiation of Java applet plugin until after all of the <applet> tag's nested <param> tags have been parsed, otherwise the list of parameters passed to the applet is incomplete. The regression was introduced (says Dave) when the parser's close-tag notifications were removed in the name of performance.
23684
23685        * khtml/html/html_objectimpl.cpp:
23686        (HTMLAppletElementImpl::HTMLAppletElementImpl):
23687        (HTMLAppletElementImpl::getAppletInstance):
23688        (HTMLAppletElementImpl::setAllParamsAvailable):
23689        (HTMLAppletElementImpl::allParamsAvailable):
23690        * khtml/html/html_objectimpl.h:
23691        * khtml/html/htmlparser.cpp:
23692        (KHTMLParser::processCloseTag):
23693        * khtml/rendering/render_applet.cpp:
23694        (RenderApplet::createWidgetIfNecessary):
23695
236962005-02-18  Richard Williamson   <rjw@apple.com>
23697
23698	Fixed <rdar://problem/4006161> Tiger8A380: Widgets leak dashboard regions
23699	
23700	We were leaking the DashboardRegionImpls.
23701
23702        Reviewed by Kevin.
23703
23704        * khtml/css/css_valueimpl.cpp:
23705        (DOM::CSSPrimitiveValueImpl::cleanup):
23706
237072005-02-18  Chris Blumenberg  <cblu@apple.com>
23708
23709	Fixed: <rdar://problem/3945271> REGRESSION (Mail): pasted plain text should pick up typing style instead of being unstyled
23710
23711        Reviewed by kocienda.
23712
23713        * khtml/editing/htmlediting.cpp:
23714        (khtml::ApplyStyleCommand::addInlineStyleIfNeeded): don't set class on element returned by createStyleSpanElement since that's already done
23715        (khtml::ReplacementFragment::ReplacementFragment): take matchStyle param, don't call computeStylesAndRemoveUnrendered() if !matchStyle
23716        (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand): take matchStyle param
23717        (khtml::ReplaceSelectionCommand::doApply): if m_matchStyle, use selection.start() as the insertion position and don't call applyStyleToInsertedNodes()
23718        * khtml/editing/htmlediting.h:
23719        * kwq/WebCoreBridge.h:
23720        * kwq/WebCoreBridge.mm:
23721        (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:smartReplace:matchStyle:]): take matchStyle param and pass it
23722        (-[WebCoreBridge replaceSelectionWithNode:selectReplacement:smartReplace:]): pass NO for matchStyle
23723        (-[WebCoreBridge replaceSelectionWithMarkupString:baseURLString:selectReplacement:smartReplace:]): pass NO for matchStyle
23724        (-[WebCoreBridge replaceSelectionWithText:selectReplacement:smartReplace:]): pass YES for matchStyle
23725
237262005-02-18  Ken Kocienda  <kocienda@apple.com>
23727
23728        Reviewed by Chris
23729
23730        Fix for these bugs:
23731        
23732        <rdar://problem/4013025> Copy/Paste of quoted word results in removal of any following <cr>
23733        <rdar://problem/4013100> Copy/Paste quoted text and then decrease quote level does not change text color
23734
23735        For the most part, these bugs were caused by errors and lack of foresight on my part when
23736        I added the better paste code. Chalk these fixes up to the result of bake time.
23737
23738        * khtml/editing/htmlediting.cpp:
23739        (khtml::ReplacementFragment::ReplacementFragment): Need to move count of number of blocks in
23740        fragment after the call to remove unrendered nodes. Meant to do this before, but forgot to.
23741        (khtml::ReplacementFragment::removeStyleNodes): Need to remove inline styles from elements!
23742        Terrible omission now fixed.
23743        (khtml::ReplacementFragment::removeBlockquoteColorsIfNeeded): Remove blockquote colors for now.
23744        Code has a more extensive comment in it now to explain the difficulty, and the need for more
23745        study and changes.
23746        (khtml::ReplaceSelectionCommand::doApply): Need to call applyStyleToInsertedNodes() in the 
23747        m_fragment.hasInterchangeNewline() case. This was just missed before.
23748        * layout-tests/editing/pasteboard/paste-text-011-expected.txt: Updated results, subtly different, but OK.
23749        * layout-tests/editing/pasteboard/paste-text-017-expected.txt: Updated for <p> to <div> change in test content.
23750        * layout-tests/editing/pasteboard/paste-text-017.html: Needed to change <p> to <div> to 
23751        make this test go with the new design of using <div> tags for default paragraphs.
23752
237532005-02-18  David Hyatt  <hyatt@apple.com>
23754
23755	Fix for 3974263 (and possibly others).  Don't let fixed tables use maxint as their maxwidth when some
23756	cells have percentage values.
23757	
23758        Reviewed by kocienda
23759
23760        * khtml/misc/arena.cpp:
23761        (ArenaAllocate):
23762        * khtml/rendering/table_layout.cpp:
23763        (FixedTableLayout::calcWidthArray):
23764        (FixedTableLayout::calcMinMaxWidth):
23765        (AutoTableLayout::layout):
23766
237672005-02-17  Darin Adler  <darin@apple.com>
23768
23769        Reviewed by Kevin.
23770
23771        - fixed <rdar://problem/3998627> WebKit crashes when deleting text in a modified div
23772
23773        * khtml/khtml_part.cpp: (KHTMLPart::selectionComputedStyle): Add a ref and deref to keep
23774        the element alive until it's added to the DOM tree.
23775        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::styleForSelectionStart): Ditto.
23776
237772005-02-17  Richard Williamson   <rjw@apple.com>
23778
23779        Fixed <rdar://problem/3999467> when Osaka-Mono is specified as fixed width font, Osaka used instead
23780
23781	Fixed w/o introducing a performance regression.  Add early
23782	check for Osaka-Mono to avoid expensive call into WebKit.
23783
23784        Reviewed by Vicki.
23785
23786        * kwq/KWQFont.mm:
23787        (QFont::isFixedPitch):
23788
237892005-02-17  Darin Adler  <darin@apple.com>
23790
23791        Reviewed by Kevin.
23792
23793        - fixed <rdar://problem/4011210> REGRESSION (180-181): Maxlength property for INPUT object not working
23794
23795        * kwq/KWQTextField.mm:
23796        (-[KWQTextField textView:shouldChangeTextInRange:replacementString:]): If controller returns
23797        YES, go on to call super, since super does the text formatter handling, which we need.
23798        (-[KWQSecureTextField textView:shouldChangeTextInRange:replacementString:]): Ditto.
23799        (-[KWQSearchField textView:shouldChangeTextInRange:replacementString:]): Ditto.
23800
23801=== Safari-187 ===
23802
238032005-02-17  Ken Kocienda  <kocienda@apple.com>
23804
23805        Reviewed by Hyatt
23806
23807        Fix for this bug:
23808        
23809        <rdar://problem/4012058> Copy from quoted text and paste results in blue text
23810
23811        The relatively-new paste code tries hard to retain style of the content from the
23812        source location. However, in the case of quoted material in mail messages, we do 
23813        not want to carry the quoting color along. This fixes the problem by factoring
23814        out such colors.
23815
23816        * khtml/editing/htmlediting.cpp:
23817        (khtml::ReplacementFragment::computeStylesAndRemoveUnrendered): Now calls removeBlockquoteColorsIfNeeded()
23818        to fix bug.
23819        (khtml::ReplacementFragment::removeBlockquoteColorsIfNeeded): New function. Factors out colors that are
23820        the result of text being quoted. 
23821        (khtml::isNodeRendered): Function moved in file. No other change.
23822        (khtml::isProbablyBlock): Function moved in file. No other change.
23823        (khtml::closestMailBlockquote): New function. Helps fix bug.
23824        (khtml::isMailBlockquote): Function moved to be free-floating instead of being a 
23825        member of CompositeEditCommand. No other change.
23826        * khtml/editing/htmlediting.h: Moved around some functions. Added removeBlockquoteColorsIfNeeded().
23827        * khtml/editing/markup.cpp: Remove redundant static implementation of isMailBlockquote.
23828
238292005-02-17  Richard Williamson   <rjw@apple.com>
23830
23831	Fixed <rdar://problem/4008163> dynamic support for -apple-dashboard-region is flakey
23832
23833	Style operator== wasn't including regions.
23834
23835        Reviewed by Darin.
23836
23837        * khtml/rendering/render_style.cpp:
23838        (StyleCSS3NonInheritedData::operator==):
23839
238402005-02-17  Adele Amchan  <adele@apple.com>
23841
23842        Reviewed by Chris.
23843
23844        fix for <rdar://problem/4010028> 8A383: Safari v185 crash loading united.com multi city fare finder page.
23845
23846        * khtml/dom/dom_string.cpp: (DOM::DOMString::operator += ): prevent nil dereference when DOMString being added is nil
23847
238482005-02-17  Jens Alfke  <jens@apple.com>
23849
23850        Reviewed by Hyatt.
23851
23852	Fix for rdar://3963151 "Mail only pasted ~950 of 1407 text lines into my message!"
23853	Force tokenizer to run synchronously while parsing document fragments, so it doesn't stop halfway through and cause truncated content.
23854
23855        * khtml/html/html_elementimpl.cpp:
23856        (HTMLElementImpl::createContextualFragment):
23857        * khtml/html/htmltokenizer.cpp:
23858        (khtml::HTMLTokenizer::reset):
23859        (khtml::HTMLTokenizer::begin):
23860        (khtml::HTMLTokenizer::setForceSynchronous):
23861        (khtml::HTMLTokenizer::continueProcessing):
23862        * khtml/html/htmltokenizer.h:
23863
238642005-02-17  Ken Kocienda  <kocienda@apple.com>
23865
23866        Reviewed by Hyatt
23867
23868        Fix for this bug:
23869        
23870        <rdar://problem/3982183> Mail's HTML paragraphs appear with unintended margins in Entourage and Eudora
23871
23872        * khtml/editing/htmlediting.cpp:
23873        (khtml::createDefaultParagraphElement): Change element we make from <p> to <div>.
23874        This fixes the problem, as these other mailers show <div> elements without margins.
23875        
23876        Some test files needed to change to preserve the ability to "eyeball" the results.
23877        Many others changed just because their <p> elements changed to <div> elements.
23878        
23879        * layout-tests/editing/deleting/delete-3928305-fix-expected.txt
23880        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-002-expected.txt
23881        * layout-tests/editing/inserting/insert-div-013-expected.txt
23882        * layout-tests/editing/inserting/insert-div-013.html
23883        * layout-tests/editing/inserting/insert-div-014-expected.txt
23884        * layout-tests/editing/inserting/insert-div-014.html
23885        * layout-tests/editing/inserting/insert-div-018-expected.txt
23886        * layout-tests/editing/inserting/insert-div-018.html
23887        * layout-tests/editing/inserting/insert-div-019-expected.txt
23888        * layout-tests/editing/inserting/insert-div-019.html
23889        * layout-tests/editing/inserting/insert-div-020-expected.txt
23890        * layout-tests/editing/inserting/insert-div-020.html
23891        * layout-tests/editing/inserting/insert-div-021-expected.txt
23892        * layout-tests/editing/inserting/insert-div-021.html
23893        * layout-tests/editing/style/remove-underline-across-paragraph-expected.txt
23894        * layout-tests/editing/style/remove-underline-across-paragraph-in-bold-expected.txt
23895        * layout-tests/editing/style/remove-underline-after-paragraph-expected.txt
23896        * layout-tests/editing/style/remove-underline-after-paragraph-in-bold-expected.txt
23897
238982005-02-17  Ken Kocienda  <kocienda@apple.com>
23899
23900        Reviewed by Hyatt
23901
23902        Fix for this bug:
23903        
23904        <rdar://problem/3996737> REGRESSION (Mail): Copy/paste in Mail inserts returns
23905
23906        The root cause of the problem is that a couple of pieces of code in AppKit and Mail 
23907        insert newlines into markup as it is generated, and the paste code in WebCore was 
23908        not smart about nodes that do not render (as is the case with these added newlines). 
23909        So, the solution is to remove these unrendered nodes in the paste code in a pre-pass. 
23910        Fortunately, my recent addition of such a pass to the paste code to handle styles 
23911        gave me a convenient place to put this new logic.
23912
23913        * khtml/editing/htmlediting.cpp:
23914        (khtml::ReplacementFragment::ReplacementFragment): Use new name for function below.
23915        (khtml::ReplacementFragment::computeStylesAndRemoveUnrendered): Name change from computeStylesForNodes().
23916        Now does the additional work of removing unrendered nodes, as mentioned above.
23917        (khtml::isNodeRendered): New helper function.
23918        * khtml/editing/htmlediting.h: Updated as necessary.
23919
239202005-02-17  Ken Kocienda  <kocienda@apple.com>
23921
23922        Reviewed by Hyatt
23923
23924        Fix for this bug:
23925        
23926        <rdar://problem/3998892> REGRESSION (Mail): bolding a selection from end of line changes unselected text on starting line.
23927        
23928        The styling code did not move to the next node when the starting position was 
23929        at the last offset of a node. Instead, it styled it. Clearly wrong. Solution 
23930        is to borrow a check from the delete algorithm. Though I call caretMaxOffset(),
23931        which I consider deprecated, it is still the simplest and most strightforward
23932        way to ask the right question for this kind of problem.
23933
23934        * khtml/editing/htmlediting.cpp:
23935        (khtml::ApplyStyleCommand::applyInlineStyle): Fixed, as described above.
23936        * layout-tests/editing/style/style-3998892-fix-expected.txt: Added.
23937        * layout-tests/editing/style/style-3998892-fix.html: Added.
23938
239392005-02-16  Chris Blumenberg  <cblu@apple.com>
23940	
23941	Fixed: <rdar://problem/3954842> Forward/reply to an HTML email can result in nothing (in cases with <link> tags for CSS)
23942
23943        Reviewed by john.
23944
23945        * khtml/xml/dom_nodeimpl.cpp:
23946        (NodeBaseImpl::addChild): don't call insertedIntoDocument on the added child if "this" itself is not in the document.
23947
239482005-02-16  John Sullivan  <sullivan@apple.com>
23949
23950        Written by Darin, reviewed by Maciej and me
23951        
23952        - change required to make previous checkin work with English language RSS pages
23953
23954        * kwq/KWQKURL.h:
23955        new private method isHierarchical
23956        * kwq/KWQKURL.mm:
23957        (KURL::KURL):
23958        add hierarchical base URL check when determining whether the URL is absolute
23959        (KURL::isHierarchical):
23960        new method, returns true if this is a valid URL with a slash just past the scheme's trailing colon
23961
239622005-02-16  John Sullivan  <sullivan@apple.com>
23963
23964        Written by Darin, reviewed by me.
23965        
23966        - WebCore part of fix for <rdar://problem/4007384> 
23967        FILTER: Bookmark of RSS with Japanese search word & multiple RSS pages loses filter
23968
23969        * kwq/DOM.mm:
23970        (-[DOMElement _getURLAttribute:]):
23971        new SPI method, uses parseURL and completeURL to get valid URL from attribute value
23972
23973        * kwq/DOMPrivate.h:
23974        declare new SPI method
23975
239762005-02-15  Maciej Stachowiak  <mjs@apple.com>
23977
23978        Reviewed by Darin.
23979
23980	<rdar://problem/3942428> reproducible crash loading cbs.sportsline.com
23981	
23982	This change reverts the fix for <rdar://problem/3805311>, and
23983	re-fixes it in a different (better) way. Instead of preventing
23984	programmatic open from setting the parsing flag, instead make sure
23985	that programmatic close resets it.
23986
23987        * khtml/khtml_part.cpp:
23988        (KHTMLPart::openURL):
23989        (KHTMLPart::didExplicitOpen):
23990        (KHTMLPart::closeURL):
23991        (KHTMLPart::begin):
23992        (KHTMLPart::end):
23993        (KHTMLPart::endIfNotLoading):
23994        (KHTMLPart::slotFinishedParsing):
23995        (KHTMLPart::checkEmitLoadEvent):
23996        * khtml/khtml_part.h:
23997        * khtml/khtmlpart_p.h:
23998        (KHTMLPartPrivate::KHTMLPartPrivate):
23999        * khtml/xml/dom_docimpl.cpp:
24000        (DocumentImpl::open):
24001        (DocumentImpl::implicitOpen):
24002        (DocumentImpl::close):
24003        (DocumentImpl::implicitClose):
24004        * khtml/xml/dom_docimpl.h:
24005
240062005-02-15  David Harrison  <harrison@apple.com>
24007
24008        Reviewed by Maciej.
24009
24010        <rdar://problem/3933665> smart delete seems to delete too much after expanding selection with arrow keys
24011
24012        Fixed by updating the selection granularity.  Only byWord granularity enables smart delete, but in this
24013        case the granularity changed from byWord to byCharacter.
24014
24015        * khtml/khtml_part.cpp:
24016        (KHTMLPart::setSelectionGranularity):
24017        * khtml/khtml_part.h:
24018        * kwq/WebCoreBridge.mm:
24019        (-[WebCoreBridge rangeByExpandingSelectionWithGranularity:]):
24020        (-[WebCoreBridge rangeByAlteringCurrentSelection:direction:granularity:]):
24021        (-[WebCoreBridge alterCurrentSelection:direction:granularity:]):
24022
240232005-02-15  David Harrison  <harrison@apple.com>
24024
24025        Reviewed by Darin.
24026
24027        (continued) <rdar://problem/4004305> REGRESSION (Mail): Command-right-arrow on wrapped text goes to end of previous line
24028
24029        This was supposed have been committed yesterday with the other part of the fix, but was not.
24030        
24031        * khtml/editing/visible_units.cpp:
24032        (khtml::endOfWord):
24033
240342005-02-15  Ken Kocienda  <kocienda@apple.com>
24035
24036        Reviewed by John
24037        
24038        Fix for this bug:
24039        
24040        <rdar://problem/3951178> REGRESSION (Mail): blank line lost after pasting as quotation
24041        
24042        Problem was that the blank line after the selection was getting deleted incorrectly since the
24043        paste code thought this was an unneeded placeholder rather than a placeholder outside of the
24044        selection.
24045
24046        * khtml/editing/htmlediting.cpp:
24047        (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): Now calls findBlockPlaceholder.
24048        (khtml::CompositeEditCommand::findBlockPlaceholder): Moved finding code formerly in 
24049        removeBlockPlaceholderIfNeeded to this new helper.
24050        (khtml::ReplaceSelectionCommand::doApply): Do not delete placeholder up front. Call 
24051        findBlockPlaceholder, and delete it later if needed in the already-existing cleanup step.
24052        * khtml/editing/htmlediting.h: Add new function.
24053
24054        New layout test.
24055
24056        * layout-tests/editing/pasteboard/paste-text-017-expected.txt: Added.
24057        * layout-tests/editing/pasteboard/paste-text-017.html: Added.
24058
24059        Result changed for the better.
24060
24061        * layout-tests/editing/pasteboard/paste-text-011-expected.txt
24062
240632005-02-14  David Harrison  <harrison@apple.com>
24064
24065        Reviewed by Darin.
24066
24067        <rdar://problem/4004305> REGRESSION (Mail): Command-right-arrow on wrapped text goes to end of previous line
24068
24069        Reviewed by Darin.
24070
24071        <rdar://problem/4004305> REGRESSION (Mail): Command-right-arrow on wrapped text goes to end of previous line
24072
24073        * khtml/editing/visible_text.cpp:
24074        (khtml::SimplifiedBackwardsTextIterator::advance):
24075        Add BR in for <rdar://problem/3917929> fix only if leaving a visible text node.
24076        
24077        * khtml/editing/visible_units.cpp:
24078        (khtml::endOfWord):
24079        Do not move left over a paragraph boundary.
24080
240812005-02-14  Darin Adler  <darin@apple.com>
24082
24083        Reviewed by John.
24084
24085        - fixed <rdar://problem/3686434> Safari uses too much RAM on file upload, leading to malloc errors and crashes (HP printers)
24086
24087        * khtml/html/html_formimpl.cpp:
24088        (DOM::FormDataList::begin): Updated to use a list of FormDataListItem instead of QCString.
24089        (DOM::FormDataList::end): Ditto.
24090        (DOM::HTMLFormElementImpl::formData): Same here, and also use appendFile rather than appendData
24091        when we encounter a path name rather than data.
24092        (DOM::HTMLInputElementImpl::appendFormData): Use appendFile here rather than reading the file
24093        in; the reading now happens inside WebKit.
24094        (DOM::FormDataList::appendString): Updated for FormDataListItem.
24095        (DOM::FormDataList::appendFile): Added.
24096
24097        * ForwardingHeaders/kfileitem.h: Emptied out the file; no longer includes KWQKFileItem.h.
24098        * ForwardingHeaders/netaccess.h: Emptied out the file; no longer includes KWQKIONetAccess.h.
24099        * kwq/KWQKFileItem.h: Removed.
24100        * kwq/KWQKFileItem.mm: Removed.
24101        * kwq/KWQKIONetAccess.h: Removed.
24102        * kwq/KWQKIONetAccess.mm: Removed.
24103        * WebCore.pbproj/project.pbxproj: Removed the 4 files above.
24104
24105        - small unrelated fix (not reviewed by John)
24106
24107        * khtml/ecma/kjs_window.cpp: (Window::isSafeScript): Put some logging code outside if statements so it works all the time.
24108
241092005-02-14  David Harrison  <harrison@apple.com>
24110
24111        Reviewed by Darin.
24112
24113        <rdar://problem/4004305> REGRESSION (Mail): Command-right-arrow on wrapped text goes to end of previous line
24114
24115        Fixed nextLinePosition to calculate affinity rather than take it as a parameter.  Propagated the parameter change out to related methods.
24116
24117        * khtml/editing/htmlediting.cpp:
24118        (khtml::DeleteSelectionCommand::initializePositionData):
24119        (khtml::InsertLineBreakCommand::doApply):
24120        (khtml::InsertParagraphSeparatorCommand::doApply):
24121        (khtml::InsertTextCommand::input):
24122        (khtml::ReplaceSelectionCommand::doApply):
24123        (khtml::ReplaceSelectionCommand::applyStyleToInsertedNodes):
24124        * khtml/editing/selection.cpp:
24125        (khtml::Selection::modifyExtendingRightForward):
24126        (khtml::Selection::modifyMovingRightForward):
24127        (khtml::Selection::modifyExtendingLeftBackward):
24128        (khtml::Selection::modifyMovingLeftBackward):
24129        (khtml::Selection::modify):
24130        (khtml::Selection::validate):
24131        * khtml/editing/visible_position.cpp:
24132        (khtml::visiblePositionsOnDifferentLines):
24133        * khtml/editing/visible_units.cpp:
24134        (khtml::rootBoxForLine):
24135        (khtml::startOfLine):
24136        (khtml::endOfLine):
24137        (khtml::inSameLine):
24138        (khtml::isStartOfLine):
24139        (khtml::isEndOfLine):
24140        (khtml::previousLinePosition):
24141        (khtml::nextLinePosition):
24142        (khtml::previousSentencePosition):
24143        (khtml::nextSentencePosition):
24144        (khtml::previousParagraphPosition):
24145        (khtml::nextParagraphPosition):
24146        * khtml/editing/visible_units.h:
24147        * khtml/khtml_events.cpp:
24148        (khtml::MouseEvent::offset):
24149        * khtml/khtml_part.cpp:
24150        (KHTMLPart::isPointInsideSelection):
24151        (KHTMLPart::selectClosestWordFromMouseEvent):
24152        (KHTMLPart::handleMousePressEventTripleClick):
24153        (KHTMLPart::handleMousePressEventSingleClick):
24154        (KHTMLPart::handleMouseMoveEventSelection):
24155        (KHTMLPart::khtmlMouseReleaseEvent):
24156        * khtml/rendering/render_block.cpp:
24157        (khtml::RenderBlock::positionForCoordinates):
24158        * khtml/rendering/render_block.h:
24159        * khtml/rendering/render_br.cpp:
24160        (RenderBR::positionForCoordinates):
24161        * khtml/rendering/render_br.h:
24162        * khtml/rendering/render_container.cpp:
24163        (RenderContainer::positionForCoordinates):
24164        * khtml/rendering/render_container.h:
24165        * khtml/rendering/render_inline.cpp:
24166        (RenderInline::positionForCoordinates):
24167        * khtml/rendering/render_inline.h:
24168        * khtml/rendering/render_object.cpp:
24169        (RenderObject::caretRect):
24170        (RenderObject::positionForCoordinates):
24171        * khtml/rendering/render_object.h:
24172        * khtml/rendering/render_replaced.cpp:
24173        (RenderReplaced::positionForCoordinates):
24174        * khtml/rendering/render_replaced.h:
24175        * khtml/rendering/render_text.cpp:
24176        (RenderText::positionForCoordinates):
24177        * khtml/rendering/render_text.h:
24178        * khtml/xml/dom_position.cpp:
24179        (DOM::Position::previousCharacterPosition):
24180        (DOM::Position::nextCharacterPosition):
24181        (DOM::Position::leadingWhitespacePosition):
24182        (DOM::Position::trailingWhitespacePosition):
24183        * khtml/xml/dom_position.h:
24184        * kwq/KWQAccObject.mm:
24185        (-[KWQAccObject value]):
24186        (-[KWQAccObject accessibilityAttributeValue:]):
24187        (-[KWQAccObject doAXLineForTextMarker:]):
24188        (-[KWQAccObject doAXTextMarkerRangeForLine:]):
24189        (-[KWQAccObject doAXTextMarkerForPosition:]):
24190        (-[KWQAccObject doAXLeftLineTextMarkerRangeForTextMarker:]):
24191        (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
24192        (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
24193        (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]):
24194        * kwq/KWQKHTMLPart.mm:
24195        * kwq/WebCoreBridge.mm:
24196        (-[WebCoreBridge _visiblePositionForPoint:]):
24197
2419805-02-07  Maciej Stachowiak  <mjs@apple.com>
24199
24200        Reviewed by Ken and John.
24201
24202	Re-fixed a specific case of the following:
24203
24204	<rdar://problem/3790449> REGRESSION (Mail): underline behavior is flaky because of how CSS handles text-decoration
24205
24206	Oddly, Cmd-B, Cmd-U, type some text, return, Cmd-U, Cmd-B, type
24207	some text, worked fine. But hitting the second Cmd-B before the
24208	second Cmd-U still failed to remove underlining. The reason for
24209	this is that our code to compute the style of the current position
24210	did not work when you had a typing style and were positioned right
24211	at a <br> element. For various reasons, this did not show up for
24212	bold and italic, since those are handled through the font manager.
24213
24214	The following change fixes this - for elements that can't have
24215	children, we add the dummy span after the element of interest,
24216	rather than as a child of it.
24217	
24218        * khtml/khtml_part.cpp:
24219        (KHTMLPart::selectionComputedStyle): 
24220
242212005-02-11  David Harrison  <harrison@apple.com>
24222
24223        Reviewed by Darin.
24224
24225        <rdar://problem/3978980> Double Clicking on a line in Mail selected the entire body
24226
24227        * khtml/editing/visible_units.cpp:
24228        (khtml::startOfWord):
24229        (khtml::endOfWord):
24230        Pay attention to being at the end of a paragraph.
24231        
24232        (khtml::previousLinePosition):
24233        (khtml::nextLinePosition):
24234        (khtml::endOfParagraph):
24235        Use DOWNSTREAM per recent affinity changes.
24236
242372005-02-11  Richard Williamson   <rjw@apple.com>
24238
24239	Fixed <rdar://problem/3985118> DOM objects not being marshaled on JS->native calls
24240
24241	Re-factored how 'native' wrappers for JS objects are created.  The interpreter now
24242	creates these wrappers.  The WebCore subclass of the interpreter now overrides
24243	createLanguageInstanceForValue() and creates a DOM ObjC wrapper for DOM objects.
24244
24245        * WebCore.pbproj/project.pbxproj:
24246        * khtml/ecma/kjs_binding.cpp:
24247        (ScriptInterpreter::createLanguageInstanceForValue):
24248        * khtml/ecma/kjs_binding.h:
24249        * kwq/DOMUtility.mm: Added.
24250        (KJS::ScriptInterpreter::createObjcInstanceForValue):
24251        * kwq/KWQKHTMLPart.mm:
24252        (KWQKHTMLPart::getAppletInstanceForView):
24253        (getInstanceForView):
24254        (KWQKHTMLPart::getEmbedInstanceForView):
24255        (KWQKHTMLPart::getObjectInstanceForView):
24256
242572005-02-11  Chris Blumenberg  <cblu@apple.com>
24258
24259	Fixed: <rdar://problem/3937352> Quote level not maintained when copied and pasted within a Mail message
24260
24261        Reviewed by harrison.
24262
24263        * khtml/editing/markup.cpp:
24264        (khtml::isMailBlockquote): new 
24265        (khtml::createMarkup): retain the Mail quote level by including all ancestor mail block quotes
24266        * khtml/rendering/render_block.cpp:
24267        (khtml::RenderBlock::positionForCoordinates): default to downstream for the affinity since the affinity is only upstream when the cursor is clicked to the right of a wrapped line
24268        * khtml/rendering/render_text.cpp:
24269        (RenderText::positionForCoordinates): ditto
24270
242712005-02-11  Adele Amchan  <adele@apple.com>
24272
24273        Reviewed by Darin.
24274
24275        fix for <rdar://problem/4004004> no need to add body element for xml documents
24276
24277        In the fix for <rdar://problem/3758785> we decided to add a body element when closing a document 
24278        to ensure that the onload handler would fire.  This is unnecessary for xml documents, 
24279        so now we also check to see if we're dealing with an html document before adding the body element.
24280
24281        * khtml/xml/dom_docimpl.cpp: (DocumentImpl::close): 
24282
242832005-02-11  Adele Amchan  <adele@apple.com>
24284
24285        Reviewed by Darin.
24286
24287        * layout-tests/apple-only/base/www.excite.com/index-expected.txt: updates tests because of custom tag change.
24288        * layout-tests/apple-only/base/www.msnbc.com/index-expected.txt:
24289        * layout-tests/apple-only/base/www.time.com/index-expected.txt:
24290        * layout-tests/apple-only/base/www.travelocity.com/index-expected.txt:
24291        * layout-tests/apple-only/base/www.zdnet.com/index-expected.txt:
24292        * layout-tests/fast/overflow/003-expected.txt:
24293
24294        * layout-tests/fast/js/window-object-cross-frame-calls-expected.txt: updated test because of added Body (see rdar://problem/3758785)
24295
24296=== Safari-186 ===
24297
242982005-02-11  Darin Adler  <darin@apple.com>
24299
24300        Reviewed by John.
24301
24302        - fixed <rdar://problem/3915449> paths are relative to the old src URL after document.open, which is supposed to clear the document, including the URL
24303
24304        * khtml/xml/dom_docimpl.h: Added a new openInternal function for use by KHTMLPart.
24305        * khtml/xml/dom_docimpl.cpp:
24306        (DocumentImpl::open): Changed to do everything we did before, but also clear the URL and set the
24307        base URL based on the enclosing document. This is the basic JavaScript/DOM operation of opening a
24308        document, which is supposed to clear the document, including the URL. In the long run we might want
24309        to do even more document "resetting and clearing" in here, but this URL clearing is what's needed
24310        now to fix the most important problem.
24311        (DocumentImpl::openInternal): Moved the old open code in here, except for the "parsing" check, which
24312        is unnecessary and inappropriate in the one place we call this.
24313
24314        * khtml/khtml_part.cpp: (KHTMLPart::begin): Call openInternal instead of open.
24315
243162005-02-10  Ken Kocienda  <kocienda@apple.com>
24317
24318        Reviewed by Hyatt
24319
24320        Fix for this bug:
24321        
24322        <rdar://problem/3992092> 8A374: Mail crash while pasting - RemoveNodeCommand
24323
24324        * khtml/editing/htmlediting.cpp:
24325        (khtml::ReplaceSelectionCommand::doApply): Code tried to remove a node that was no longer in 
24326        the document. We try to do a good job of detecting all these cases, and generally do. This
24327        one was missed. Fixed.
24328
243292005-02-10  Darin Adler  <darin@apple.com>
24330
24331        Reviewed by Harrison.
24332
24333        - added support needed to fix <rdar://problem/3991225> Format->Style->Underline menu item does not get checked when selected text is underlined
24334
24335        * kwq/WebCoreBridge.h: Added selectionHasStyle: method.
24336        * kwq/WebCoreBridge.mm: (-[WebCoreBridge selectionHasStyle:]): Added. Calls selectionHasStyle on the part.
24337
243382005-02-10  Darin Adler  <darin@apple.com>
24339
24340        Reviewed by Harrison.
24341
24342        - fixed <rdar://problem/3990484> cursor changes to I-beam when moving over text in widgets, even when selection off via CSS
24343
24344        * khtml/khtmlview.cpp: (KHTMLView::viewportMouseMoveEvent): Changed code to check canSelect when deciding
24345        whether to show an I-beam cursor.
24346
24347        * khtml/rendering/render_object.h: Added canSelect.
24348        * khtml/rendering/render_object.cpp:
24349        (selectStartNode): Added. Helper function with the guts of shouldSelect.
24350        (RenderObject::canSelect): Added. Like shouldSelect, but does not call the "start selecting" event handler.
24351        (RenderObject::shouldSelect): Refactored to use selectStartNode.
24352
24353        * khtml/css/cssvalues.c: Regnerated with newer gperf.
24354
243552005-02-10  David Hyatt  <hyatt@apple.com>
24356
24357	Fix for 3867759, .mac regression where scrollers don't show up.  Make sure you can set the .width and
24358	.height properties on the Image object.
24359	
24360        Reviewed by John Sullivan
24361
24362        * khtml/ecma/kjs_html.cpp:
24363        (ImageConstructorImp::construct):
24364        (Image::getValueProperty):
24365        (Image::putValue):
24366        (Image::Image):
24367        * khtml/ecma/kjs_html.h:
24368
243692005-02-10  Ken Kocienda  <kocienda@apple.com>
24370
24371        Reviewed by Chris
24372
24373        Fix for this bug:
24374        
24375        <rdar://problem/3965158> Drag-n-drop within a rich text message sometimes changes the color of the dragged text
24376        
24377        This change fixes the bug....and much more. Now, for the first time, the paste code can do "smart merging"
24378        or "smooshing" of styles during its operation. Since this new code is actively, rather than passively
24379        working with styles, it fixes the bug, and lays the groundwork for similar work we need to do to
24380        preserve quote levels in Mail.
24381
24382        * khtml/css/css_valueimpl.cpp:
24383        (DOM::CSSMutableStyleDeclarationImpl::clear): New method.
24384        (DOM::CSSMutableStyleDeclarationImpl::removeBlockProperties): Ditto.
24385        (DOM::CSSMutableStyleDeclarationImpl::removePropertiesInSet): Ditto.
24386        (DOM::operator==): Add operator for CSSProperty.
24387        * khtml/css/css_valueimpl.h: Declare new functions.
24388        * khtml/editing/htmlediting.cpp:
24389        (khtml::isEmptyStyleSpan): Improved the test in this function, rolling together the old implementation
24390        with some code that did this work inline elsewhere. Sum of the parts is better than either test was by itself.
24391        (khtml::isStyleSpan): Check for ID_SPAN.
24392        (khtml::ApplyStyleCommand::removeCSSStyle): Call isEmptyStyleSpan. This was the place with an inline implementation before.
24393        (khtml::ReplacementFragment::ReplacementFragment): Now takes a DocumentImpl argument. No longer does a "default style"
24394        check, but rather calls functions which do a similar check to that, and much more.
24395        (khtml::ReplacementFragment::~ReplacementFragment): Deref document, and computed styles.
24396        (khtml::ReplacementFragment::styleForNode): New helper. Looks up and returns computed style for a node.
24397        (khtml::ReplacementFragment::removeNodePreservingChildren): New helper.
24398        (khtml::ReplacementFragment::computeStylesForNodes): New function which computes the "desired" style for
24399        every node in the fragment. This information is used later after paste is done as a reference for testing
24400        what styles need to be added, and which can be removed as redundant, from all the nodes inserted by the
24401        replacement code.
24402        (khtml::ReplacementFragment::removeStyleNodes): Clears out all style nodes from the fragment. They are
24403        no longer needed after the call to computeStylesForNodes(),
24404        (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand): Add a document to the call to initialize the
24405        command's ReplacementFragment.
24406        (khtml::ReplaceSelectionCommand::doApply): Call applyStyleToInsertedNodes() after inserting nodes to make
24407        styles come out right.
24408        (khtml::ReplaceSelectionCommand::applyStyleToInsertedNodes): This is the "style smooshing" function. It 
24409        computes the styles that need to be added to each node inserted, comparing the style it gets from just
24410        being inserted into its correct destination with the computed "desired style" done in the 
24411        ReplacementFragment constructor. It then adds in all the necessary styles, and will also remove redundant styles.
24412        * khtml/editing/htmlediting.h: Update declarations and member variables as needed.
24413        * khtml/editing/markup.cpp:
24414        (khtml::startMarkup): Add additional style annotations to the markup we generate, so that paste code can preserve it.
24415        (khtml::markup): Ditto.
24416        (khtml::createMarkup): Ditto.
24417        
24418        These test results are subtly better with this change. They no longer have an unneeded empty span.
24419        Visually the same as before.
24420        
24421        * layout-tests/editing/style/remove-underline-across-paragraph-expected.txt
24422        * layout-tests/editing/style/remove-underline-across-paragraph-in-bold-expected.txt
24423        * layout-tests/editing/style/remove-underline-expected.txt
24424        * layout-tests/editing/style/remove-underline-from-stylesheet-expected.txt
24425
24426        New tests:
24427
24428        * layout-tests/editing/style/smoosh-styles-001-expected.txt
24429        * layout-tests/editing/style/smoosh-styles-002-expected.txt
24430        * layout-tests/editing/style/smoosh-styles-001.html
24431        * layout-tests/editing/style/smoosh-styles-002.html
24432
244332005-02-10  Darin Adler  <darin@apple.com>
24434
24435        Reviewed by Adele.
24436
24437        - fixed <rdar://problem/3974988> WebHTMLView drops scroll wheel events when deltas are 0
24438
24439        * kwq/WebCoreScrollView.m: (-[WebCoreScrollView autoforwardsScrollWheelEvents]): Added, for Tiger only.
24440        For Tiger, removed the override of scrollWheel:, which doesn't work quite right because of how the
24441        delta attributes return all 0 for newfangled scrolling events from the new trackpads.
24442
244432005-02-10  David Harrison  <harrison@apple.com>
24444
24445        Reviewed by Darin.
24446
24447        <rdar://problem/3991532> REGRESSION (Mail): Triple-click on trailing blank line should select previous line but doesn't
24448
24449        * khtml/css/cssvalues.c:
24450        (hash_val):
24451        (findValue):
24452        * khtml/editing/selection.cpp:
24453        (khtml::Selection::validate):
24454        Do moral equiavalent of LeftWordIfOnBoundary for PARAGRAPH.
24455
244562005-02-10  David Harrison  <harrison@apple.com>
24457
24458        Reviewed by Darin.
24459
24460        <rdar://problem/3991848> Double-click on first character selects wrong item
24461
24462        * khtml/editing/selection.cpp:
24463        (khtml::Selection::validate):
24464        Honor the fact that clicking on a character positions the cursor on the left side of the character.
24465
244662005-02-10  David Hyatt  <hyatt@apple.com>
24467
24468	Fix for 3980778, repro crash in RootInlineBox::paint.  Make sure that when merging blocks we dirty them for layout
24469	up front. That way as we do the merge, we dont attempt to examine the lines in dirtyLinesForChangedChild.
24470	
24471        Reviewed by mjs
24472
24473        * khtml/rendering/render_block.cpp:
24474        (khtml::RenderBlock::removeChild):
24475
244762005-02-10  David Hyatt  <hyatt@apple.com>
24477
24478	Fix for 3987010, fix a bug that caused the self-collapsing-block-cleared-float bit to never get set correctly.
24479	
24480        Reviewed by mjs
24481
24482        * khtml/rendering/render_block.h:
24483        (khtml::RenderBlock::MarginInfo::setSelfCollapsingBlockClearedFloat):
24484
244852005-02-10  David Hyatt  <hyatt@apple.com>
24486
24487	Fix  for 3992440, text not wrapping correctly on half moon bay web site.  Refine an incorrect optimization I
24488	added to be less restrictive.
24489	
24490        Reviewed by mjs
24491
24492        * khtml/rendering/render_block.cpp:
24493        (khtml::RenderBlock::layoutBlockChildren):
24494
244952005-02-08  Maciej Stachowiak  <mjs@apple.com>
24496
24497        Reviewed by Darin.
24498
24499	<rdar://problem/3977973> pages on ebay leak referenced JavaScript objects -- over time browsing becomes super-slow
24500
24501	I fixed this by removing all event listeners for a document, it's
24502	children, and any disconnected nodes that used to be in the
24503	document at document detach time. Mozilla temporarily disables
24504	event listeners on such nodes, but re-enables them if you
24505	re-parant a node into a new document. However, in WebCore, you
24506	can't re-parent a node into another document, so there is no
24507	observable change in behavior.
24508
24509	We have to do this to break the possible reference cycles between
24510	event listeners and the dom nodes they are attached to (e.g. via
24511	scope chain, as in this case).
24512
24513        * khtml/xml/dom_docimpl.cpp:
24514        (DocumentImpl::detach):
24515        (DocumentImpl::removeAllEventListenersFromAllNodesx):
24516        (DocumentImpl::registerDisconnectedNodeWithEventListeners):
24517        (DocumentImpl::unregisterDisconnectedNodeWithEventListeners):
24518        (DocumentImpl::removeAllDisconnectedNodeEventListeners):
24519        * khtml/xml/dom_docimpl.h:
24520        * khtml/xml/dom_nodeimpl.cpp:
24521        (NodeImpl::~NodeImpl):
24522        (NodeImpl::addEventListener):
24523        (NodeImpl::removeEventListener):
24524        (NodeImpl::removeAllEventListeners):
24525        (NodeImpl::removeHTMLEventListener):
24526        (NodeImpl::insertedIntoDocument):
24527        (NodeImpl::removedFromDocument):
24528        * khtml/xml/dom_nodeimpl.h:
24529
245302005-02-09  Chris Blumenberg  <cblu@apple.com>
24531
24532	Fixed: <rdar://problem/3999213> Sometimes 2 Windows Media Player plugin instances are loaded
24533
24534        Reviewed by hyatt.
24535
24536        * khtml/html/html_objectimpl.cpp:
24537        (HTMLObjectElementImpl::attach): Set needWidgetUpdate to false before calling updateWidget because updateWidget may cause this method or another method (which also calls updateWidget) to be called.
24538        (HTMLObjectElementImpl::recalcStyle): ditto
24539
245402005-02-09  David Harrison  <harrison@apple.com>
24541
24542        Reviewed by Darin.
24543        
24544        <rdar://problem/3937447> Mail-689: Arrow key navigation in new message body stops working when a line ends with a bold word
24545        
24546        Added affinity to VisiblePosition.  Changed Selection code to use affinity more.
24547        
24548        (Partial) <rdar://problem/3982096> editing/pasteboard/paste-text-007 is failing
24549        
24550        Changed ReplaceSelectionCommand to also pay attention to the top children of the incoming fragment, not just the very last node inserted, when deciding whether to insert a paragraph for the Apple interchange newline.
24551
24552        * khtml/ecma/kjs_window.cpp:
24553        (SelectionFunc::tryCall):
24554        * khtml/editing/htmlediting.cpp:
24555        (khtml::EditCommandPtr::setStartingSelection):
24556        (khtml::EditCommandPtr::setEndingSelection):
24557        (khtml::EditCommand::setStartingSelection):
24558        (khtml::EditCommand::setEndingSelection):
24559        (khtml::CompositeEditCommand::deleteInsignificantTextDownstream):
24560        (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
24561        (khtml::ApplyStyleCommand::splitTextAtStartIfNeeded):
24562        (khtml::ApplyStyleCommand::splitTextAtEndIfNeeded):
24563        (khtml::ApplyStyleCommand::splitTextElementAtStartIfNeeded):
24564        (khtml::ApplyStyleCommand::splitTextElementAtEndIfNeeded):
24565        (khtml::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
24566        (khtml::ApplyStyleCommand::mergeEndWithNextIfIdentical):
24567        (khtml::ApplyStyleCommand::joinChildTextNodes):
24568        (khtml::DeleteSelectionCommand::initializePositionData):
24569        (khtml::DeleteSelectionCommand::handleGeneralDelete):
24570        (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
24571        (khtml::DeleteSelectionCommand::doApply):
24572        (khtml::InsertLineBreakCommand::doApply):
24573        (khtml::InsertParagraphSeparatorCommand::doApply):
24574        (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
24575        (khtml::InsertTextCommand::input):
24576        (khtml::MoveSelectionCommand::doApply):
24577        (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand):
24578        (khtml::ReplaceSelectionCommand::~ReplaceSelectionCommand):
24579        (khtml::ReplaceSelectionCommand::doApply):
24580        (khtml::ReplaceSelectionCommand::completeHTMLReplacement):
24581        (khtml::ReplaceSelectionCommand::updateNodesInserted):
24582        (khtml::TypingCommand::deleteKeyPressed):
24583        (khtml::TypingCommand::forwardDeleteKeyPressed):
24584        (khtml::TypingCommand::markMisspellingsAfterTyping):
24585        * khtml/editing/htmlediting.h:
24586        * khtml/editing/selection.cpp:
24587        (khtml::Selection::Selection):
24588        (khtml::Selection::init):
24589        (khtml::Selection::moveTo):
24590        (khtml::Selection::modifyExtendingRightForward):
24591        (khtml::Selection::modifyMovingRightForward):
24592        (khtml::Selection::modifyExtendingLeftBackward):
24593        (khtml::Selection::modifyMovingLeftBackward):
24594        (khtml::Selection::modify):
24595        (khtml::Selection::xPosForVerticalArrowNavigation):
24596        (khtml::Selection::clear):
24597        (khtml::Selection::setBase):
24598        (khtml::Selection::setExtent):
24599        (khtml::Selection::setBaseAndExtent):
24600        (khtml::Selection::layout):
24601        (khtml::Selection::validate):
24602        * khtml/editing/selection.h:
24603        (khtml::Selection::startAffinity):
24604        (khtml::Selection::endAffinity):
24605        (khtml::Selection::baseAffinity):
24606        (khtml::Selection::extentAffinity):
24607        (khtml::operator==):
24608        * khtml/editing/text_affinity.h:
24609        (khtml::):
24610        * khtml/editing/visible_position.cpp:
24611        (khtml::VisiblePosition::VisiblePosition):
24612        (khtml::VisiblePosition::init):
24613        (khtml::VisiblePosition::initUpstream):
24614        (khtml::VisiblePosition::initDownstream):
24615        (khtml::VisiblePosition::next):
24616        (khtml::VisiblePosition::previous):
24617        (khtml::startVisiblePosition):
24618        (khtml::endVisiblePosition):
24619        * khtml/editing/visible_position.h:
24620        (khtml::VisiblePosition::):
24621        (khtml::VisiblePosition::VisiblePosition):
24622        (khtml::VisiblePosition::affinity):
24623        (khtml::VisiblePosition::setAffinity):
24624        (khtml::operator==):
24625        * khtml/editing/visible_units.cpp:
24626        (khtml::previousBoundary):
24627        (khtml::nextBoundary):
24628        (khtml::startOfLine):
24629        (khtml::endOfLine):
24630        (khtml::previousLinePosition):
24631        (khtml::nextLinePosition):
24632        (khtml::startOfParagraph):
24633        (khtml::endOfParagraph):
24634        (khtml::previousParagraphPosition):
24635        (khtml::nextParagraphPosition):
24636        (khtml::startOfBlock):
24637        (khtml::endOfBlock):
24638        (khtml::startOfDocument):
24639        (khtml::endOfDocument):
24640        * khtml/editing/visible_units.h:
24641        * khtml/khtml_part.cpp:
24642        (KHTMLPart::findTextNext):
24643        (KHTMLPart::selectClosestWordFromMouseEvent):
24644        (KHTMLPart::handleMousePressEventTripleClick):
24645        (KHTMLPart::handleMousePressEventSingleClick):
24646        (KHTMLPart::handleMouseMoveEventSelection):
24647        (KHTMLPart::khtmlMouseReleaseEvent):
24648        (KHTMLPart::selectAll):
24649        (KHTMLPart::computeAndSetTypingStyle):
24650        (KHTMLPart::selectionComputedStyle):
24651        * khtml/rendering/render_br.cpp:
24652        (RenderBR::positionForCoordinates):
24653        * khtml/xml/dom_docimpl.cpp:
24654        (DocumentImpl::updateSelection):
24655        * khtml/xml/dom_nodeimpl.cpp:
24656        (NodeBaseImpl::setFocus):
24657        * khtml/xml/dom_position.cpp:
24658        (DOM::Position::previousCharacterPosition):
24659        (DOM::Position::nextCharacterPosition):
24660        * khtml/xml/dom_position.h:
24661        * kwq/KWQAccObject.mm:
24662        (-[KWQAccObject value]):
24663        (-[KWQAccObject visiblePositionForStartOfTextMarkerRange:]):
24664        (-[KWQAccObject visiblePositionForEndOfTextMarkerRange:]):
24665        (-[KWQAccObject accessibilityAttributeValue:]):
24666        (-[KWQAccObject doAXLineForTextMarker:]):
24667        (-[KWQAccObject doAXTextMarkerRangeForLine:]):
24668        (-[KWQAccObject doAXTextMarkerForPosition:]):
24669        (-[KWQAccObject doAXLeftLineTextMarkerRangeForTextMarker:]):
24670        (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
24671        (-[KWQAccObject doAXNextWordEndTextMarkerForTextMarker:]):
24672        (-[KWQAccObject doAXPreviousWordStartTextMarkerForTextMarker:]):
24673        (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
24674        (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]):
24675        (-[KWQAccObject doSetAXSelectedTextMarkerRange:]):
24676        * kwq/KWQAccObjectCache.mm:
24677        (KWQAccObjectCache::textMarkerForVisiblePosition):
24678        (KWQAccObjectCache::visiblePositionForTextMarker):
24679        * kwq/KWQKHTMLPart.mm:
24680        (KWQKHTMLPart::findString):
24681        (KWQKHTMLPart::advanceToNextMisspelling):
24682        (KWQKHTMLPart::styleForSelectionStart):
24683        (KWQKHTMLPart::baseWritingDirectionForSelectionStart):
24684        (KWQKHTMLPart::setSelectionFromNone):
24685        (KWQKHTMLPart::respondToChangedSelection):
24686        * kwq/WebCoreBridge.mm:
24687        (-[WebCoreBridge setSelectedDOMRange:affinity:]):
24688        (-[WebCoreBridge selectionAffinity]):
24689        (-[WebCoreBridge setMarkDOMRange:]):
24690        (-[WebCoreBridge _visiblePositionForPoint:]):
24691        (-[WebCoreBridge moveDragCaretToPoint:]):
24692        (-[WebCoreBridge editableDOMRangeForPoint:]):
24693        (-[WebCoreBridge ensureSelectionVisible]):
24694        (-[WebCoreBridge rangeOfCharactersAroundCaret]):
24695
246962005-02-09  Chris Blumenberg  <cblu@apple.com>
24697
24698	Fixed: <rdar://problem/3985211> Seed: Mail: Drag-and-drop destination indicator / insertion point disappears
24699
24700        Reviewed by kocienda.
24701
24702        * khtml/rendering/render_block.cpp:
24703        (khtml::RenderBlock::paintCaret): new
24704        (khtml::RenderBlock::paintObject): call paintCaret for the cursor caret and the drag caret
24705        * khtml/rendering/render_block.h:
24706
24707=== Safari-185 ===
24708
247092005-02-08  Ken Kocienda  <kocienda@apple.com>
24710
24711        Reviewed by John
24712
24713        Fix for this bug:
24714        
24715        <rdar://problem/3996344> Entire document content is deleted when only the first paragraph was supposed to be
24716
24717        Problem stems from my attempt to fix this bug: <rdar://problem/3986155> Insertion point goes 
24718        to beginning of doc after deleting.
24719        
24720        I added an "optimization" that proved to do more harm than good. So, basically, the fix is to remove code.
24721
24722        * khtml/editing/htmlediting.cpp:
24723        (khtml::DeleteSelectionCommand::handleGeneralDelete)
24724
247252005-02-07  Darin Adler  <darin@apple.com>
24726
24727        Reviewed by Kevin.
24728
24729        - fixed <rdar://problem/3890352> REGRESSION (125-170, Panther-only): pasted textarea contents disappear (exception in NSText)
24730
24731        * kwq/KWQTextArea.mm: (-[KWQTextArea tile]): Don't resize the text view immediately here.
24732        Use performWithDelay to defer it to avoid the re-entrancy that bothers the Panther version
24733        of NSTextView. On Tiger, leave the code alone.
24734
247352005-02-07  Adele Amchan  <adele@apple.com>
24736
24737        Reviewed by Darin.
24738
24739        Fix for <rdar://problem/3993628> REGRESSION (180-181): Logitelnet bank's website doesn't work
24740
24741        This fixes an oversight in the fix for <rdar://problem/3964286>.  
24742        We're now making sure there is a document before calling checkCompleted in slotLoaderRequestDone.
24743       	That function is called even when other parts finish loads of their subresources, so we could end
24744	up calling checkCompleted before we had a document. We also looked over all the other calls to
24745	checkCompleted to convince ourselves no other call sites had a similar issue.
24746
24747        * khtml/khtml_part.cpp: (KHTMLPart::slotLoaderRequestDone): Check if doc is nil before calling
24748	checkCompleted.
24749
247502005-02-07  Ken Kocienda  <kocienda@apple.com>
24751
24752        Reviewed by Darin
24753
24754        Fix for this bug:
24755        
24756        <rdar://problem/3953302> Replacing quoted text ends up with blue-colored text that is not quoted
24757
24758        * khtml/editing/htmlediting.cpp:
24759        (khtml::DeleteSelectionCommand::doApply): Removed special case delete code for select all. It was
24760        causing as many bugs as it fixed. What's more, the design concept is a bit shaky. By removing
24761        this special case, the bug goes away.
24762        * khtml/editing/htmlediting.h: Remove declaration.
24763        
24764        Test results using selectAll() updated to reflect changed behavior.
24765        
24766        * layout-tests/editing/deleting/delete-3775172-fix-expected.txt:
24767        * layout-tests/editing/deleting/delete-select-all-001-expected.txt:
24768        * layout-tests/editing/deleting/delete-select-all-003-expected.txt:
24769        * layout-tests/editing/inserting/insert-3654864-fix-expected.txt:
24770        * layout-tests/editing/inserting/insert-3775316-fix-expected.txt:
24771        * layout-tests/editing/inserting/insert-3851164-fix-expected.txt:
24772        * layout-tests/editing/inserting/insert-3907422-fix-expected.txt:
24773        * layout-tests/editing/pasteboard/paste-text-015-expected.txt:
24774
247752005-02-06  Darin Adler  <darin@apple.com>
24776
24777        Reviewed by Ken.
24778
24779        - fixed <rdar://problem/3994164> setting a new style attribute with setAttribute("style") doesn't blow away the old style
24780
24781        * khtml/css/css_valueimpl.h: Renamed parseProperty to parseDeclaration, since it's used to parse
24782        an entire style declaration, not a single property.
24783        * khtml/css/css_valueimpl.cpp: (DOM::CSSMutableStyleDeclarationImpl::parseDeclaration): Renamed,
24784        and added code to clear m_values.
24785        * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::parseHTMLAttribute): Call function by its
24786        new name, and remove some unnecessary comments.
24787
247882005-02-06  Darin Adler  <darin@apple.com>
24789
24790        Reviewed by Maciej.
24791
24792        - fixed <rdar://problem/3993722> need oncut and onpaste handlers implemented for <textarea> (needed for widgets)
24793
24794        * kwq/KWQTextArea.mm:
24795        (-[KWQTextAreaTextView dispatchHTMLEvent:]): Added.
24796        (-[KWQTextAreaTextView cut:]): Dispatch "before cut" and "cut" events.
24797        (-[KWQTextAreaTextView copy:]): Dispatch "before copy" and "copy" events.
24798        (-[KWQTextAreaTextView paste:]): Dispatch "before paste" and "paste" events.
24799        (-[KWQTextAreaTextView pasteAsPlainText:]): Ditto.
24800        (-[KWQTextAreaTextView pasteAsRichText:]): Ditto.
24801
248022005-02-06  Darin Adler  <darin@apple.com>
24803
24804        Reviewed by Maciej.
24805
24806        - fixed <rdar://problem/3943038> <input type=search> that is focused in onload handler doesn't have a visible editor
24807
24808        * khtml/xml/dom_docimpl.cpp: (DocumentImpl::setFocusNode): Always update layout before giving focus to a widget.
24809        This prevents the bad case where we give a widget focus before it has been positioned or sized, causing us to
24810        exercise edge cases AppKit doesn't handle well.
24811
24812        * kwq/KWQTextField.mm: (-[KWQTextFieldController initWithTextField:QLineEdit:]): Remove workaround code I added
24813        to fix bug 3943049. Updating the layout fixes the same problem in a cleaner, safer way, and solves another problem,
24814        with the way the clip view is set up.
24815
248162005-02-06  Darin Adler  <darin@apple.com>
24817
24818        Reviewed by Maciej.
24819
24820        - fixed <rdar://problem/3425232> textarea won't trigger onchange action when clicking to new field
24821
24822        * khtml/rendering/render_form.h: Added new m_dirty data member.
24823        * khtml/rendering/render_form.cpp:
24824        (RenderTextArea::RenderTextArea): Initialize m_dirty to false.
24825        (RenderTextArea::detach): Call value() on the DOM element to cause it to fetch the value from this object.
24826        (RenderTextArea::handleFocusOut): Ditto. Also send the onchange event based only on the m_dirty flag.
24827        (RenderTextArea::updateFromElement): Clear the m_dirty flag if the edited value is blown away by a value
24828        that comes from the DOM element. Remove code to clear the element's m_dirtyvalue flag; that's an unnecessary
24829        optimization, and ideally we'll stop having code in the render object that knows about that flag later.
24830        (RenderTextArea::slotTextChanged): Set the m_dirty flag.
24831
248322005-02-06  Darin Adler  <darin@apple.com>
24833
24834        Reviewed by Maciej.
24835
24836        - re-fixed <rdar://problem/3760910> please add support for custom tag names in HTML
24837
24838        * khtml/xml/dom_docimpl.cpp:
24839        (DocumentImpl::tagId): Use ID_LAST_TAG + 1 for the ID of the first assigned tag ID. Before we'd use ID_LAST_TAG,
24840        which resulted in the same number being used for ID_COMMENT and the first custom tag.
24841        (DocumentImpl::tagName): Use ID_LAST_TAG + 1, as above.
24842        (DocumentImpl::namespaceURI): Change a < ID_LAST_TAG to <= ID_LAST_TAG in the same spirit as above.
24843
248442005-02-06  Darin Adler  <darin@apple.com>
24845
24846        Reviewed by Maciej.
24847
24848        - fixed <rdar://problem/3986639> Crash occurs after choosing Undo Typing from the Edit menu
24849
24850        * kwq/KWQTextArea.mm: (-[KWQTextArea viewWillMoveToWindow:]): Remove actions from undo manager when the view is
24851        removed from the window. Unfortunately, to do this the code has to know that the target of NSTextView actions
24852        will be the text storage object, but given the NSText architecture, that's pretty clear.
24853
248542005-02-05  Chris Blumenberg  <cblu@apple.com>
24855
24856	Fixed: <rdar://problem/3991974> REGRESSION: www.jabra.com world location screen does not work
24857
24858        Reviewed by hyatt.
24859
24860        * kwq/KWQKJavaAppletWidget.mm:
24861        (KJavaAppletWidget::KJavaAppletWidget): fallback to the document's base URL if there is no baseURL attribute
24862        * kwq/WebCoreBridge.h:
24863        * kwq/WebCoreBridge.mm:
24864        (-[WebCoreBridge baseURL]): new
24865
248662005-02-04  David Harrison  <harrison@apple.com>
24867
24868        Reviewed by Darin.
24869
24870        Rolled out Ken's accidental checkin when committing <rdar://problem/3986155> fix yesterday.
24871        
24872        * khtml/editing/selection.cpp:
24873        (khtml::Selection::validate):
24874
248752005-02-04  Adele Amchan  <adele@apple.com>
24876
24877        Reviewed by Darin.
24878
24879        Fix for <rdar://problem/3758785> Safari no longer works at BankOfAmerica online banking for military users
24880  
24881        When closing the document, if a body doesn't exist we now create one.  This bug was preventing the onload handler from
24882        firing in cases where there wasn't a body.  In the BankOfAmerica case, the page was just a bit of script where the onload
24883        handler redirected to the correct page.
24884
24885        * khtml/xml/dom_docimpl.cpp: (DocumentImpl::close):
24886
248872005-02-03  Ken Kocienda  <kocienda@apple.com>
24888
24889        Reviewed by Chris
24890
24891        Fix for this bug:
24892        
24893        <rdar://problem/3986155> Insertion point goes to beginning of doc after deleting
24894
24895        * khtml/editing/htmlediting.cpp:
24896        (khtml::DeleteSelectionCommand::setStartNode): New convenience to handle reference counting when setting.
24897        (khtml::DeleteSelectionCommand::handleGeneralDelete): This contains the crux of the bug fix. Improve tests
24898        that detect when a selected node needs to be retained, rather than deleted, to preserve the intent of the user.
24899        This has the side effect of causing the insertion point placement code to succeed rather than fail. Before
24900        this fix, the failure of the insertion point placement code caused the insertion point to jump to the start
24901        of the document, which is the symptom that can be perceived by users when editing.
24902        * khtml/editing/htmlediting.h: Add setStartNode declaration.
24903        * khtml/editing/visible_units.cpp:
24904        (khtml::startOfBlock): This function had a stubbed-in non-tested implementation. Implement and 
24905        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-001-expected.txt: Added.
24906        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-001.html: Added.
24907        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-002-expected.txt: Added.
24908        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-002.html: Added.
24909        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-003-expected.txt: Added.
24910        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-003.html: Added.
24911        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt: Added.
24912        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-004.html: Added.
24913        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-005-expected.txt: Added.
24914        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-005.html: Added.
24915        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-006-expected.txt: Added.
24916        * layout-tests/editing/deleting/delete-at-paragraph-boundaries-006.html: Added.
24917
24918=== Safari-183 ===
24919
249202005-02-03  Richard Williamson   <rjw@apple.com>
24921
24922	Fixed <rdar://problem/3987419> Stocks and Weather leak what appears to XMLHTTPRequest results
24923
24924	XMLHTTPRequests were causing massive leaks.  _webcore_initWithHeaderString: did funky things with
24925	self replacement.  Re-wrote to use more traditional factory constructor avoiding self replacement.
24926	
24927        Reviewed by David Harrison.
24928
24929        * kwq/KWQLoader.mm:
24930        (+[NSDictionary _webcore_dictionaryWithHeaderString:]):
24931        (KWQServeRequest):
24932        (KWQServeSynchronousRequest):
24933
249342005-02-03  Chris Blumenberg  <cblu@apple.com>
24935
24936	Fixed: <rdar://problem/3938763> Cannot view Windows Media Player videos (soundtrack is played twice with delay)
24937
24938        Reviewed by hyatt.
24939
24940        * khtml/html/html_objectimpl.cpp:
24941        (HTMLObjectElementImpl::attach): set needWidgetUpdate to false right after calling updateWidget because dispatchHTMLEvent can end up calling this method again
24942        (HTMLObjectElementImpl::recalcStyle): ditto
24943
249442005-02-02  John Sullivan  <sullivan@apple.com>
24945
24946        Reviewed by Chris.
24947
24948        - WebCore part of fix for <rdar://problem/3980651> REGRESSION (125-180): Huge number of pages printed from certain page, 
24949        iFrame involved
24950        
24951        This also fixes the problems with printing from GMail, yay!
24952
24953        * khtml/rendering/render_flow.cpp:
24954        (RenderFlow::paintLines):
24955        If the current line is taller than the entire page height (e.g. tall iFrame), don't try
24956        to avoid splitting it across pages.
24957        
24958        * kwq/WebCoreBridge.mm:
24959        (-[WebCoreBridge computePageRectsWithPrintWidthScaleFactor:printHeight:]):
24960        Handle error cases in a more obvious manner; this will cause future problems like this
24961        to print a blank page and complain to the console on debug builds, rather than print a 
24962        zillionty mostly-blank pages.
24963
249642005-02-02  Chris Blumenberg  <cblu@apple.com>
24965
24966	Fixed: <rdar://problem/3960304> can't load a particular applet (at www.escape.de) unless it's the first applet to be loaded
24967
24968        Reviewed by hyatt.
24969
24970        * khtml/rendering/render_frames.cpp:
24971        (RenderPartObject::updateWidget): when getting the MIME type from the PARAM tag, make sure the MIME type is the text from the left of the semi-colon if there is one. We do this elsewhere as well.
24972
249732005-02-02  Chris Blumenberg  <cblu@apple.com>
24974
24975	Fixed: <rdar://problem/3983628> control-click on WebView is not selecting the word under the cursor (Mail, non-editable WebView)
24976
24977        Reviewed by rjw.
24978
24979        * kwq/KWQKHTMLPart.mm:
24980        (KWQKHTMLPart::sendContextMenuEvent): check if SPI to always enable selecting closest word is enabled
24981        * kwq/WebCoreBridge.h:
24982
249832005-02-02  Ken Kocienda  <kocienda@apple.com>
24984
24985        Reviewed by me
24986
24987        * khtml/editing/markup.cpp:
24988        (khtml::createMarkup): Removed debug spam I committed earlier in error.
24989
249902005-02-02  Ken Kocienda  <kocienda@apple.com>
24991
24992        Reviewed by Darin
24993
24994        Fix for this bug:
24995        
24996        <rdar://problem/3823109> WebKit should support -toggleBaseWritingDirection: (bidi editing support)
24997
24998        Since base writing direction is a paragraph-level property in AppKit, and we use the CSS direction
24999        property in WebCore, which can be applied to inline elements as well as blocks, a new notion has
25000        been added to the WebCore apply style logic. It is now possible to force all properties in a 
25001        style declaration to be applied as though they were block properties.
25002
25003        * khtml/editing/htmlediting.cpp:
25004        (khtml::ApplyStyleCommand::ApplyStyleCommand): Add an enum and a flag to this command that controls whether to force all
25005        properties in the style to be applied as block styles. Default is "no", retaining previous behavior.
25006        (khtml::ApplyStyleCommand::doApply): Switch on new flag to apply styles as before, or force all preoperties to be applied
25007        as block styles.
25008        * khtml/editing/htmlediting.h:
25009        (khtml::ApplyStyleCommand::): Add an enum and a flag, as above.
25010        * khtml/khtml_part.cpp:
25011        (KHTMLPart::applyParagraphStyle): New method to force application of all style properties as block styles.
25012        * khtml/khtml_part.h: Update header declarations.
25013        * kwq/KWQKHTMLPart.h: Update header declarations.
25014        * kwq/KWQKHTMLPart.mm:
25015        (KWQKHTMLPart::baseWritingDirectionForSelectionStart): Accessor to help WebKit do a toggle operation on 
25016        writing direction.
25017        * kwq/WebCoreBridge.h: Update header declarations.
25018        * kwq/WebCoreBridge.mm:
25019        (-[WebCoreBridge applyParagraphStyle:withUndoAction:]): New method to force application of all style properties as block styles.
25020        (-[WebCoreBridge baseWritingDirectionForSelectionStart]): Accessor to help WebKit do a toggle operation on 
25021        writing direction.
25022
25023        Fix for this bug:
25024        
25025        <rdar://problem/3985035> REGRESSION (Mail): Text copied from wrapped line contains extra character when pasted
25026
25027        * khtml/editing/markup.cpp:
25028        (khtml::renderedText): Add an enum and a flag to this command that controls whether to force all
25029        This is the result of an error in the code that computes the rendered text that is selected 
25030        when copying. Since spaces collapse at the end of lines, and these spaces need to be copied 
25031        when the selection spans line endings, code runs to compute this text. However, this code 
25032        was also running incorrectly in cases where lines wrapped. I have now added the missing 
25033        test to check that the selection does indeed extend to the end of the line.
25034
25035
250362005-02-02  Ken Kocienda  <kocienda@apple.com>
25037
25038        Reviewed by Darin
25039
25040        Fix for these bugs:
25041        
25042        <rdar://problem/3984894> REGRESSION (Mail): Command-right-arrow in reply does the wrong thing (two ways)
25043        <rdar://problem/3985130> REGRESSION (Mail): command-right-arrow in pasted RTF selects only up to tab
25044
25045        * khtml/editing/visible_units.cpp:
25046        (khtml::endOfLine): Two separate problems in this new function recently added to take the place of
25047        selectionForLine. In the first, endOfLine did not stop at BR elements, and returned the position
25048        beyond them. In the second, the VisiblePosition constructor gives the wrong answer in certain cases.
25049        Darin is going to work on a solution for that problem. In the meantime, I can fix the symptom of this
25050        bug by going down to the last leaf child of the root line box; a one line change we will roll out when
25051        Darin's fix is in.
25052
250532005-02-01  Richard Williamson   <rjw@apple.com>
25054
25055	Fixed <rdar://problem/3985535> QT Plug-in JavaScript support now fails in <embed> tag only case
25056
25057        Reviewed by Maciej.
25058
25059        * khtml/ecma/kjs_html.cpp:
25060        (KJS::HTMLDocument::tryGet):
25061
250622005-02-01  John Sullivan  <sullivan@apple.com>
25063
25064        Written by Darin, reviewed and tested by me
25065        
25066        - fixed <rdar://problem/3969684> Panther-only: extra blank lines between 
25067        pasted content from Blot
25068
25069        * kwq/KWQKHTMLPart.mm:
25070        (KWQKHTMLPart::attributedString):
25071        don't emit paragraph breaks if the margins are tiny; matches what
25072        we do for plain-text conversion
25073
25074=== Safari-182 ===
25075
250762005-02-01  Ken Kocienda  <kocienda@apple.com>
25077
25078        Reviewed by John
25079
25080        Fix for this bug:
25081        
25082        <rdar://problem/3985160> Deficiencies in pasting architecture blocking progress on other bugs
25083
25084        * khtml/editing/html_interchange.h: Move style span text used to mark element added to 
25085        add style to this header.
25086        * khtml/editing/htmlediting.cpp:
25087        (khtml::styleSpanClassString): Change to use constant moved to html_interchange.h.
25088        (khtml::isStyleSpan): New helper function. Checks if this is a span we added to apply style.
25089        (khtml::CompositeEditCommand::insertNodeBefore): Added an assert to check that the node
25090        we are inserting before is not the body.
25091        (khtml::CompositeEditCommand::insertNodeAfter): Ditto, but check is for after.
25092        (khtml::ReplacementFragment::ReplacementFragment): Added code to process the "default style"
25093        that is added by the copy code.
25094        (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand): first and last nodes inserted are
25095        now member variables instead of function locals. Initialize them here.
25096        (khtml::ReplaceSelectionCommand::~ReplaceSelectionCommand): Deref first and last nodes inserted
25097        if necessary.
25098        (khtml::ReplaceSelectionCommand::doApply): Change design to fix the bug. Major change is to
25099        separate out the code that inserts nodes into the tree so additional styling checks can
25100        be done in a centralized way. Also got rid of the notion of "merging into the end block." That
25101        concept was just wrong.
25102        (khtml::ReplaceSelectionCommand::completeHTMLReplacement): Tweak interface now that first and 
25103        last nodes inserted are member variables.
25104        (khtml::ReplaceSelectionCommand::insertNodeAfterAndUpdateNodesInserted): New helper used
25105        by replace code to do the stated DOM operation and update state internal to the command.
25106        This will also be a catch point to handle the kinds of additional style checks needed to
25107        make paste work right.
25108        (khtml::ReplaceSelectionCommand::insertNodeAtAndUpdateNodesInserted): Ditto.
25109        (khtml::ReplaceSelectionCommand::insertNodeBeforeAndUpdateNodesInserted): Ditto.
25110        (khtml::ReplaceSelectionCommand::updateNodesInserted): Ditto.
25111        * khtml/editing/htmlediting.h: Update declarations as needed.
25112        * khtml/editing/markup.cpp:
25113        (khtml::createMarkup): Adds a "default style" span to the content written to the pasteboard.
25114        This will help us to fix some of the bugs blocked by the bug above.
25115        * khtml/xml/dom_nodeimpl.cpp:
25116        (NodeImpl::lastDescendent): New helper.
25117        * khtml/xml/dom_nodeimpl.h: Ditto.
25118        * khtml/xml/dom_position.cpp:
25119        (DOM::Position::upstream): Fixed a bug which would allow the upstream position returned to be
25120        in unrendered content.
25121        (DOM::Position::downstream): Ditto.
25122
25123        * layout-tests/editing/deleting/delete-3775172-fix-expected.txt: Ending positions tweaked due to 
25124        changes in upstream() and downstream() functions.
25125        * layout-tests/editing/inserting/insert-3851164-fix-expected.txt: Ditto
25126        * layout-tests/editing/inserting/insert-3907422-fix-expected.txt: Ditto
25127        * layout-tests/editing/selection/extend-by-character-006-expected.txt: Ditto
25128
25129        * layout-tests/editing/pasteboard/paste-text-003-expected.txt: Changed what we expect, given
25130        new behavior of paste code.
25131
251322005-01-31  John Sullivan  <sullivan@apple.com>
25133
25134        Reviewed by Dave Hyatt.
25135        
25136        - fixed <rdar://problem/3983097> Tabbing on RSS pages gets stuck in search field 
25137        with "full keyboard navigation" off
25138
25139        * kwq/KWQSlider.h:
25140        * kwq/KWQSlider.mm:
25141        (QSlider::focusPolicy):
25142        Implemented this method for KWQSlider. It is needed for our widget subclasses that
25143        can become focused in some situations. I missed this when fixing 3949203 because
25144        it only comes into play when tab-to-controls is on, and because the other relevant
25145        methods are objective-C methods.
25146
251472005-01-31  David Harrison  <harrison@apple.com>
25148
25149        Reviewed by Darin.
25150
25151        <rdar://problem/3964164> AXWebArea needs to unregister on going invisible
25152
25153        * khtml/xml/dom_docimpl.cpp:
25154        (DocumentImpl::detach):
25155        Detach the AX UIElement for the AXWebArea.
25156
251572005-01-31  David Harrison  <harrison@apple.com>
25158
25159        Reviewed by Darin
25160
25161        <rdar://problem/3850876> AX: button exposed as only an AXImage at http://appleseed.apple.com/ site (<input type=image>)
25162
25163        * khtml/rendering/render_form.h:
25164        (khtml::RenderImageButton::isImageButton):
25165        New.
25166        * khtml/rendering/render_image.h:
25167        (khtml::RenderImage::isImageButton):
25168        New.
25169        * kwq/KWQAccObject.mm:
25170        (-[KWQAccObject isImageButton]):
25171        (-[KWQAccObject actionElement]):
25172        (-[KWQAccObject role]):
25173        (-[KWQAccObject accessibilityActionNames]):
25174        (-[KWQAccObject accessibilityPerformAction:]):
25175        Represent RenderImageButton elements as buttons instead of images.
25176
251772005-01-31  David Harrison  <harrison@apple.com>
25178
25179        Prevent nil dereference in debug code.
25180
25181        * khtml/xml/dom_nodeimpl.cpp:
25182        (NodeImpl::displayTree):
25183        Stop when parent is 0, too.
25184
251852005-01-31  John Sullivan  <sullivan@apple.com>
25186
25187        Reviewed by Dave Hyatt.
25188        
25189        - fixed <rdar://problem/3949203> cannot tab to, within, or out of the RSS sidebar
25190
25191        * kwq/KWQSlider.mm:
25192        (-[KWQSlider becomeFirstResponder]):
25193        (-[KWQSlider resignFirstResponder]):
25194        (-[KWQSlider nextKeyView]):
25195        (-[KWQSlider previousKeyView]):
25196        (-[KWQSlider canBecomeKeyView]):
25197        (-[KWQSlider nextValidKeyView]):
25198        (-[KWQSlider previousValidKeyView]):
25199        Copied these methods from KWQButton. The lack of special handling for first-responder-ness
25200        here was causing the focus to get "stuck" on the RSS page's slider widget. Added FIXME
25201        about how it would be nice to share more of this code rather than replicating it in each
25202        KWQ widget subclass.
25203
252042005-01-31  Darin Adler  <darin@apple.com>
25205
25206        Reviewed by Harrison.
25207
25208        - fixed <rdar://problem/3980066> Double-click on single character moves insertion point to previous line
25209
25210        * khtml/khtml_part.cpp:
25211        (KHTMLPart::selectClosestWordFromMouseEvent): Set affinity too.
25212        (KHTMLPart::handleMousePressEventTripleClick): Ditto.
25213        (KHTMLPart::handleMouseMoveEventSelection): Ditto.
25214        (KHTMLPart::khtmlMouseReleaseEvent): Ditto.
25215
25216        * khtml/editing/selection.cpp:
25217        (khtml::Selection::modifyExtendingRightForward): Use endOfLine and endOfDocument.
25218        (khtml::Selection::modifyMovingRightForward): Ditto.
25219        (khtml::Selection::modifyExtendingLeftBackward): Use startOfLine and startOfDocument.
25220        (khtml::Selection::modifyMovingLeftBackward): Ditto.
25221        (khtml::Selection::validate): Rewrote the section that handles double-click. Two main fixes: 1) use isStartOfLine to
25222        check for another case where we want to select the word to the right, and 2) use isEndOfParagraph, which seems
25223        to work correctly in cases where isLastVisiblePositionInParagraph is giving the wrong answer. Also changed the line
25224        code to use startOfLine/endOfLine and the document code to use startOfDocument/endOfDocument.
25225
252262005-01-31  Darin Adler  <darin@apple.com>
25227
25228        Reviewed by Harrison.
25229
25230        - fixed <rdar://problem/3935275> unexpected quit scrolling over link; last.fm (works in IE and Firefox)
25231
25232        * kwq/WebCoreBridge.mm: (-[WebCoreBridge elementAtPoint:]): By using the correct document, fix the crash reported here.
25233        The page still crashes when you close the browser window, but it's not trivial to fix so I'll file a new bug after that.
25234
252352005-01-31  Darin Adler  <darin@apple.com>
25236
25237        Reviewed by Ken and Harrison.
25238
25239        - fixed <rdar://problem/3947901> REGRESSION (Mail): Pasting paragraph of rich text leaves insertion point before pasted text
25240        - fixed <rdar://problem/3949790> hitting return after underlined line results in too much or too little underlined
25241        - fixed <rdar://problem/3981759> nil-deref and crash when pasting just a paragraph break
25242        - fixed a couple problems I discovered while working with bug 3949790
25243
25244        * khtml/editing/htmlediting.cpp:
25245        (khtml::ApplyStyleCommand::applyInlineStyle): Pass StayInBlock to upstream. Without this, we end up going too far
25246        upstream in the test case in bug 3949790.
25247        (khtml::ApplyStyleCommand::removeInlineStyle): Pass StayInBlock to upstream and downstream. Same reason as above.
25248        (khtml::ReplaceSelectionCommand::doApply): Update endPos if inserting a new node and endPos is using that node's
25249        parent and an offset past the node being inserted. That change fixes a problem with the position of the insertion point
25250        after pasting into the top level of a document (from test cases in 3947901 and 3949790). When setting insertionPos, use
25251        code that works when lastNodeInserted is a block rather than a text node. That change fixes a problem where a newline is
25252        not added when pasting an entire paragraph into the end of a document (from test case in 3949790). Added nil check before
25253        checking if lastNodeInserted is a <br> element, which fixes the crash when pasting just a paragraph break.
25254
25255        * khtml/editing/visible_units.h: Filled out the set of calls to add some boolean checks for lines (needed for the
25256        bug fix), and calls for blocks (not yet implemented), and documents. The document checks may need refinement to
25257        properly handle documents with a mix of editable and non-editable content, but for now they just refactor code
25258        and make things a little clearer. Also removed the "include line break" parameter from endOfSentence.
25259        * khtml/editing/visible_units.cpp:
25260        (khtml::rootBoxForLine): Added.
25261        (khtml::startOfLine): Added. Algorithm taken from selectionForLine in selection.cpp.
25262        (khtml::endOfLine): Ditto.
25263        (khtml::inSameLine): Added.
25264        (khtml::isStartOfLine): Added.
25265        (khtml::isEndOfLine): Added.
25266        (khtml::endOfSentence): Removed "include line break" parameter.
25267        (khtml::inSameParagraph): Added a null check.
25268        (khtml::isStartOfParagraph): Ditto.
25269        (khtml::isEndOfParagraph): Ditto.
25270        (khtml::startOfBlock): Added.
25271        (khtml::endOfBlock): Added.
25272        (khtml::inSameBlock): Added.
25273        (khtml::isStartOfBlock): Added.
25274        (khtml::isEndOfBlock): Added.
25275        (khtml::startOfDocument): Added.
25276        (khtml::endOfDocument): Added.
25277        (khtml::inSameDocument): Added.
25278        (khtml::isStartOfDocument): Added.
25279        (khtml::isEndOfDocument): Added.
25280
252812005-01-30  Darin Adler  <darin@apple.com>
25282
25283        Reviewed by John.
25284
25285        - fixed <rdar://problem/3977000> form data set posted for <input type="image" ...> omits name/value pair
25286
25287        * khtml/html/html_formimpl.cpp:
25288        (DOM::HTMLInputElementImpl::appendFormData): Append a name/value pair for type IMAGE in addition to the X/Y
25289        coordinates.
25290
252912005-01-30  Darin Adler  <darin@apple.com>
25292
25293        Reviewed by John.
25294
25295        - fixed <rdar://problem/3974246> REGRESSION (125-180): popup menus are missing item text on Harmony Remote web site
25296
25297        * khtml/html/html_formimpl.cpp: (DOM::HTMLOptionElementImpl::text): Change this function to traverse the entire tree
25298        and gather all the text rather than just looking at immediate children.
25299
25300        * khtml/xml/dom_nodeimpl.h: Added const.
25301        * khtml/xml/dom_nodeimpl.cpp:
25302        (NodeImpl::traverseNextNode): Added const.
25303        (NodeImpl::traverseNextSibling): Ditto.
25304        (NodeImpl::traversePreviousNodePostOrder): Ditto.
25305        (NodeImpl::detach): Add a missing nil check.
25306
253072005-01-30  Darin Adler  <darin@apple.com>
25308
25309        Reviewed by John.
25310
25311        - fixed <rdar://problem/3864536> crash copying text from other apps and pasting in a sticky in dashboard
25312
25313        * khtml/editing/markup.cpp: (khtml::createFragmentFromText): Added missing ref/deref of newly created element.
25314
253152005-01-28  Darin Adler  <darin@apple.com>
25316
25317        * khtml/css/cssproperties.c: Regenerated with newer gperf.
25318
253192005-01-28  David Harrison  <harrison@apple.com>
25320
25321        Reviewed by John Sullivan.
25322
25323        <rdar://problem/3968144> AX need to be able to focus an AXLink by setting AXFocused to true
25324        
25325        * kwq/KWQAccObject.mm:
25326        (-[KWQAccObject accessibilityPerformAction:]):
25327        (-[KWQAccObject accessibilityIsAttributeSettable:]):
25328        Add AXFocused for AXLinks.
25329
253302005-01-28  David Harrison  <harrison@apple.com>
25331
25332        Reviewed by Darin.
25333
25334        <rdar://problem/3584942> AX: Safari Accessibility parent-child mismatch
25335
25336        Use AppKit SPI _accessibilityParentForSubview to return KWQAccObject parent of AppKit AX object.
25337        
25338        * kwq/KWQAccObject.mm:
25339        (-[KWQAccObject _accessibilityParentForSubview:]):
25340        New.
25341
253422005-01-27  Adele Amchan  <adele@apple.com>
25343
25344        fixed by Darin, reviewed by me.
25345
25346        <rdar://problem/3976314> REGRESSION (180-TOT): submitting password fields fail on Panther
25347
25348        * kwq/KWQTextField.mm: (-[KWQTextFieldController string]): on panther, the secure text field's editor 
25349        does not contain the real string, so now we just call stringValue on the field in that case.
25350
253512005-01-26  Maciej Stachowiak  <mjs@apple.com>
25352
25353        Reviewed by Darin, Hyatt and Ken.
25354
25355	<rdar://problem/3790449> REGRESSION (Mail): underline behavior is flaky because of how CSS handles text-decoration
25356	
25357        * khtml/css/css_computedstyle.cpp:
25358        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Add support
25359	for -khtml-text-decorations-in-effect property. This works like text-docration
25360	but follows proper inline semantics, that is, if a parent is causing text
25361	decoration then -khtml-text-decorations-in-effect on this element will reflect that.
25362        * khtml/css/cssproperties.in: Add -khtml-text-decorations-in-effect property.
25363        * khtml/css/cssproperties.h: regenerated
25364        * khtml/css/cssvalues.c: regenerated
25365        * khtml/css/cssparser.cpp: regenerated
25366        * khtml/css/cssproperties.c: regenerated
25367
25368        * khtml/css/css_valueimpl.h: Made copyPropertiesInSet public.
25369
25370        * khtml/editing/htmlediting.cpp:
25371        (khtml::StyleChange::init): Handle -khtml-text-decorations-in-effect
25372	specially, translate to text-decoration
25373        (khtml::ApplyStyleCommand::applyInlineStyle): Fix a comment.
25374        (khtml::ApplyStyleCommand::removeInlineStyle): Add new way of pushing down
25375	text-decoration styles around the edges of the selected range.
25376        (khtml::ApplyStyleCommand::pushDownTextDecorationStyleAroundNode): Helper for this.
25377        (khtml::ApplyStyleCommand::pushDownTextDecorationStyleAtBoundaries): ditto
25378        (khtml::ApplyStyleCommand::nodeFullyUnselected): ditto
25379        (khtml::hasTextDecorationProperty): ditto
25380        (khtml::highestAncestorWithTextDecoration): ditto
25381        (khtml::ApplyStyleCommand::extractTextDecorationStyle): ditto
25382        (khtml::ApplyStyleCommand::extractAndNegateTextDecorationStyle): ditto
25383        (khtml::ApplyStyleCommand::applyTextDecorationStyle): ditto
25384        * khtml/editing/htmlediting.h: Prototype new methods.
25385        * khtml/editing/jsediting.cpp: Make underline execCommand use the new CSS property.
25386
25387	- as a necessary part of the fix, fixed the longstanding problem
25388	that mutating an element's inlineStyleDecl would not property
25389	update its style attribute. now it does.
25390	
25391        * khtml/css/css_valueimpl.cpp:
25392        (DOM::CSSMutableStyleDeclarationImpl::setChanged): If this is an inline style
25393	declaration, tell the element it's style attribute needs updating.
25394        * khtml/html/html_elementimpl.cpp:
25395        (HTMLElementImpl::invalidateStyleAttribute): New method, just calls down
25396	to the dom element.
25397        (HTMLElementImpl::updateStyleAttribute): Regenerate style attribute from
25398	inline style declaration.
25399        * khtml/html/html_elementimpl.h: Prototype new stuff.
25400        * khtml/xml/dom_elementimpl.cpp:
25401        (ElementImpl::ElementImpl): Initialize new attribute.
25402        (ElementImpl::updateStyleAttributeIfNeeded): New method to check if the style
25403	is dirty and this is an html element, and if so call the html element to
25404	regenerate the style attribute.
25405        (ElementImpl::attributes): update style if needed
25406        (ElementImpl::getAttribute): ditto
25407        (ElementImpl::hasAttributes): ditto
25408        (ElementImpl::dump): ditto
25409        (XMLElementImpl::cloneNode): ditto
25410        * khtml/xml/dom_elementimpl.h:
25411        (DOM::ElementImpl::isStyleAttributeValid): new method to manage style attr
25412	dirty bit
25413        (DOM::ElementImpl::setStyleAttributeValid): ditto
25414
25415	- added new layout tests for underlining:
25416	
25417        * layout-tests/editing/editing.js:
25418        * layout-tests/editing/style/remove-underline-across-paragraph-expected.txt: Added.
25419        * layout-tests/editing/style/remove-underline-across-paragraph-in-bold-expected.txt: Added.
25420        * layout-tests/editing/style/remove-underline-across-paragraph-in-bold.html: Added.
25421        * layout-tests/editing/style/remove-underline-across-paragraph.html: Added.
25422        * layout-tests/editing/style/remove-underline-after-paragraph-expected.txt: Added.
25423        * layout-tests/editing/style/remove-underline-after-paragraph-in-bold-expected.txt: Added.
25424        * layout-tests/editing/style/remove-underline-after-paragraph-in-bold.html: Added.
25425        * layout-tests/editing/style/remove-underline-after-paragraph.html: Added.
25426        * layout-tests/editing/style/remove-underline-expected.txt: Added.
25427        * layout-tests/editing/style/remove-underline-from-stylesheet-expected.txt: Added.
25428        * layout-tests/editing/style/remove-underline-from-stylesheet.html: Added.
25429        * layout-tests/editing/style/remove-underline-in-bold-expected.txt: Added.
25430        * layout-tests/editing/style/remove-underline-in-bold.html: Added.
25431        * layout-tests/editing/style/remove-underline.html: Added.
25432        * layout-tests/editing/style/underline-expected.txt: Added.
25433        * layout-tests/editing/style/underline.html: Added.
25434
254352005-01-27  David Hyatt  <hyatt@apple.com>
25436
25437	Fix for 3875199, search field needs to be able to  show a magnifying  glass without a dropdown menu.
25438	
25439        Reviewed by kocienda
25440
25441        * khtml/html/html_formimpl.cpp:
25442        (DOM::HTMLInputElementImpl::HTMLInputElementImpl):
25443        (DOM::HTMLInputElementImpl::parseHTMLAttribute):
25444        * kwq/KWQLineEdit.mm:
25445        (QLineEdit::setMaxResults):
25446
254472005-01-27  Ken Kocienda  <kocienda@apple.com>
25448
25449        Reviewed by Maciej
25450
25451        Fix for this bug:
25452        
25453        <rdar://problem/3973254> Deletions of ranges does not coalesce correctly with subsequent typing
25454
25455        * khtml/editing/htmlediting.cpp:
25456        (khtml::InsertTextCommand::deleteCharacter): Remove this dead code.
25457        (khtml::ReplaceSelectionCommand::editingAction): Moved this code to a better place in the file. 
25458        It was in with unrelated functions.
25459        (khtml::TypingCommand::TypingCommand): Reorganize initialization list so it is easier to read.
25460        (khtml::TypingCommand::issueCommandForDeleteKey): Remove dead code. Roll in remaining code into deleteKeyPressed.
25461        (khtml::TypingCommand::deleteKeyPressed): Add in support for carrying along smart delete flag.
25462        (khtml::TypingCommand::forwardDeleteKeyPressed): New function. Makes forward delete work like
25463        "regular" delete in terms of coalescing typing.
25464        (khtml::TypingCommand::doApply): Add case for ForwardDeleteKey.
25465        (khtml::TypingCommand::preservesTypingStyle): Ditto.
25466        * khtml/editing/htmlediting.h:
25467        (khtml::TypingCommand::): Add ForwardDeleteKey constant. Remove a couple declarations for now-dead code.
25468        (khtml::TypingCommand::smartDelete): New accessor.
25469        (khtml::TypingCommand::setSmartDelete): Ditto.
25470        * kwq/WebCoreBridge.h:
25471        * kwq/WebCoreBridge.mm:
25472        (-[WebCoreBridge deleteKeyPressedWithSmartDelete:]): Add smart delete flag.
25473        (-[WebCoreBridge forwardDeleteKeyPressedWithSmartDelete:]): New method.
25474        * khtml/editing/jsediting.cpp: Add supprt for ForwardDelete command
25475        * layout-tests/editing/editing.js: Ditto.
25476        * layout-tests/editing/deleting/delete-and-undo-expected.txt: Added.
25477        * layout-tests/editing/deleting/delete-and-undo.html: Added.
25478        * layout-tests/editing/deleting/forward-delete-expected.txt: Added.
25479        * layout-tests/editing/deleting/forward-delete.html: Added.
25480
25481=== Safari-181 ===
25482
254832005-01-27  David Harrison  <harrison@apple.com>
25484
25485        Reviewed by Ken.
25486
25487        <rdar://problem/3962214> AX: AXLeftLineTextMarkerRangeForTextMarker returns incorrect range
25488
25489        * kwq/KWQAccObject.mm:
25490        (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
25491        Allowed for selection to end of line including the linebreak.
25492        
254932005-01-27  David Harrison  <harrison@apple.com>
25494
25495        Reviewed by Darin, Ken.
25496
25497        <rdar://problem/3964470> AX: Include attachments in AXAttributedStringForTextMarkerRange
25498
25499        * kwq/KWQAccObject.mm:
25500        (-[KWQAccObject isAttachment]):
25501        (-[KWQAccObject attachmentView]):
25502        (-[KWQAccObject role]):
25503        (-[KWQAccObject subrole]):
25504        (-[KWQAccObject roleDescription]):
25505        (-[KWQAccObject value]):
25506        (-[KWQAccObject title]):
25507        (-[KWQAccObject accessibilityDescription]):
25508        (-[KWQAccObject accessibilityIsIgnored]):
25509        (-[KWQAccObject accessibilityAttributeNames]):
25510        (-[KWQAccObject accessibilityAttributeValue:]):
25511        Make attachments accessible.
25512        
25513        (CreateCGColorIfDifferent):
25514        (AXAttributeStringSetColor):
25515        (AXAttributeStringSetNumber):
25516        (AXAttributeStringSetFont):
25517        (AXAttributeStringSetStyle):
25518        (AXAttributeStringSetElement):
25519        (AXLinkElementForNode):
25520        (AXAttributedStringAppendText):
25521        (AXAttributedStringAppendReplaced):
25522        (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
25523        Add attachments and more text attributes to AXAttributedStringForTextMarkerRange.
25524
255252005-01-27  Darin Adler  <darin@apple.com>
25526
25527        Reviewed by John.
25528
25529        - fixed <rdar://problem/3807935> DOM CSS computed style line-height is wrong in two ways
25530
25531        * khtml/css/css_computedstyle.cpp: (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
25532        Use specified size rather than computed size when dealing with a percentage for line height.
25533
255342005-01-27  Darin Adler  <darin@apple.com>
25535
25536        Reviewed by John.
25537
25538        - fixed <rdar://problem/3971372> SWB: template function DOM_cast() won't compile with gcc 4.0
25539        - fixed other gcc 4.0 compiling problems Patrick Beard pointed out on the phone
25540
25541        * kwq/DOMInternal.h: (DOM_cast): Change the "failToCompile()" trick to use a dependent name.
25542        Nowadays, if a name is not dependent, it is checked at template definition time. But we want
25543        a failure only at template instantiation time.
25544
25545        * ForwardingHeaders/editing/text_granularity.h: Added. Needed but a bug in the 3.3 compiler made
25546        it compile anyway without this.
25547
25548        - other changes
25549
25550        * khtml/html/html_miscimpl.h: For clarity, mark these functions virtual too. They are automatically
25551        virtual because the base class ones are virtual, but it's ugly to leave it this way.
25552
255532005-01-26  Ken Kocienda  <kocienda@apple.com>
25554
25555        Reviewed by Hyatt
25556
25557        Fix for this bug:
25558        
25559        <rdar://problem/3971609> REGRESSION (Mail): up/down arrow navigation broken after rewrapping text by resizing window
25560        <rdar://problem/3975661> REGRESSION (Mail): left/right arrow navigation can place insertion point after last character on line
25561
25562        * khtml/editing/selection.cpp:
25563        (khtml::Selection::modifyAffinity): PARAGRAPH and LINE movements should not alter affinity. This was
25564        just a mistake before when it reset to upstream in some cases.
25565        * khtml/rendering/render_line.cpp:
25566        (khtml::RootInlineBox::closestLeafChildForXPos): Move this function down from InlineBox, and 
25567        rework the implementation. This fixes 3971609.
25568        * khtml/rendering/render_line.h:
25569        * khtml/rendering/render_text.cpp:
25570        (RenderText::caretRect): Rework the algorithm to fix 3975661. This regressed when we began placing
25571        the spaces on the end of lines in text boxes when lines wrap.
25572
255732005-01-26  Richard Williamson   <rjw@apple.com>
25574
25575	Fixed <rdar://problem/3972522> (179-180) 40% slowdown on iBench JavaScript test
25576
25577	I added a member variable to ObjectImp.  This changed it's size and consequently
25578	hampered the optimizations built into the garbage collector.  Objects no longer
25579	fit within the allocators cell size, and thus allocation fell back to a slower
25580	allocator.
25581
25582	As a result of this fix I also dramatically cleaned up how runtime objects are
25583	accessed.  The path mostly *removes* code.
25584	
25585        Reviewed by Chris.
25586
25587        * khtml/ecma/kjs_dom.cpp:
25588        (DOMDocumentProtoFunc::tryCall):
25589        (DOMElementProtoFunc::tryCall):
25590        (KJS::getRuntimeObject):
25591        * khtml/ecma/kjs_dom.h:
25592        * khtml/ecma/kjs_html.cpp:
25593        (KJS::HTMLDocument::tryGet):
25594        (KJS::HTMLElement::tryGet):
25595        (KJS::HTMLElement::implementsCall):
25596        (KJS::HTMLElement::call):
25597        (KJS::HTMLElement::tryPut):
25598        (KJS::HTMLCollection::tryGet):
25599        (KJS::HTMLCollection::getNamedItems):
25600        * khtml/ecma/kjs_html.h:
25601        * khtml/ecma/kjs_window.cpp:
25602        (Window::get):
25603
256042005-01-26  Richard Williamson   <rjw@apple.com>
25605
25606	Fixed <rdar://problem/3757712> REGRESSION (Mail): WebCore does not allow Devanagari ligature input
25607
25608	For now we are using ICU UBreakIterator to determine grapheme boundaries for
25609	cursor and deletion.  This does not match what Cocoa does exactly, but does match
25610	what Carbon does.  The areas are difference are obscure, but, according to
25611	Deborah Goldsmith, using the UBreakIterator is the reasonable approach.
25612
25613        Reviewed by Ken.
25614
25615        * khtml/rendering/render_text.cpp:
25616        (RenderText::previousOffset):
25617        (RenderText::nextOffset):
25618
256192005-01-25  David Harrison  <harrison@apple.com>
25620
25621        Reviewed by Maciej and Richard.
25622
25623        <rdar://problem/3963731> AX VO: Changing window sizes causes a crash using with Voice Over - KWQPtrDictImpl::clear
25624
25625        * khtml/html/html_miscimpl.cpp:
25626        (HTMLCollectionImpl::HTMLCollectionImpl):
25627        Ensure that isHTMLDocument before calling HTMLDocument-only method.
25628
256292005-01-25  Richard Williamson   <rjw@apple.com>
25630
25631	Part one of fix for <rdar://problem/3757712> REGRESSION (Mail): WebCore does not allow Devanagari ligature input
25632
25633	This patch changes the semantics of next() and previous() on
25634	VisiblePosition to move a grapheme (character cluster) at a
25635	time.  This means that cursor navigation with correctly move
25636	over an entire cluster.
25637
25638	However, the expected behavior for deleting a grapheme is to
25639	delete individual code points, thus decomposing the grapheme
25640	into it constituent parts.  That will be addressed in the next
25641	part of the fix.
25642
25643        Reviewed by Ken.
25644
25645        * khtml/editing/visible_position.cpp:
25646        (khtml::VisiblePosition::previousPosition):
25647        (khtml::VisiblePosition::nextPosition):
25648        * khtml/editing/visible_position.h:
25649        * khtml/rendering/render_object.cpp:
25650        (RenderObject::previousOffset):
25651        (RenderObject::nextOffset):
25652        * khtml/rendering/render_object.h:
25653        * khtml/rendering/render_text.cpp:
25654        (RenderText::previousOffset):
25655        (RenderText::nextOffset):
25656        (RenderText::findNextInlineTextBox):
25657        * khtml/rendering/render_text.h:
25658        * khtml/xml/dom_nodeimpl.cpp:
25659        (NodeImpl::previousOffset):
25660        (NodeImpl::nextOffset):
25661        * khtml/xml/dom_nodeimpl.h:
25662
256632005-01-25  David Harrison  <harrison@apple.com>
25664
25665        Reviewed by Maciej.
25666
25667        <rdar://problem/3973067> AXWebArea for http://apple.netscape.com/ has an empty AXLinkUIElements
25668
25669        * kwq/KWQAccObject.mm:
25670        (-[KWQAccObject accessibilityAttributeValue:]):
25671        Omit ignored AXLinks from AXLinkUIElements result
25672
256732005-01-25  Ken Kocienda  <kocienda@apple.com>
25674
25675        Reviewed by John
25676
25677        Fix for this bug:
25678        
25679        <rdar://problem/3972851> REGRESSION (179-180+): Repro crash in ApplyStyleCommand::cleanUpEmptyStyleSpans
25680
25681        * khtml/editing/htmlediting.cpp:
25682        (khtml::ApplyStyleCommand::cleanUpEmptyStyleSpans): Added two null checks.
25683
256842005-01-25  Ken Kocienda  <kocienda@apple.com>
25685
25686        Reviewed by John
25687
25688        Fix for this bug:
25689        
25690        <rdar://problem/3954710> Mail crashed while editing signatures - NodeImpl::isBlockFlow
25691
25692        The fix is more general than for this one bug, and may work to fix many crashers. The problem
25693        is that the ReplaceSelectionCommand never checked whether its starting selection is empty. If
25694        it is, then we need to bail before doing the work of the command, which we need to deref the
25695        start and end points of the selection in order to do its work. I think you can see the crash
25696        potential.
25697
25698        * khtml/editing/htmlediting.cpp:
25699        (khtml::ReplaceSelectionCommand::doApply): Assert selection is not empty.
25700        * kwq/WebCoreBridge.mm:
25701        (partHasSelection): New helper function to test that bridge has a part with a selection.
25702        
25703        Use new helper function to test part and selection; return from these function if this test fails.
25704        
25705        (-[WebCoreBridge rangeByExpandingSelectionWithGranularity:])
25706        (-[WebCoreBridge rangeByAlteringCurrentSelection:direction:granularity:])
25707        (-[WebCoreBridge alterCurrentSelection:direction:granularity:])
25708        (-[WebCoreBridge rangeByAlteringCurrentSelection:verticalDistance:])
25709        (-[WebCoreBridge alterCurrentSelection:verticalDistance:])
25710        (-[WebCoreBridge documentFragmentWithText:])
25711        (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:smartReplace:])
25712        (-[WebCoreBridge insertLineBreak])
25713        (-[WebCoreBridge insertParagraphSeparator])
25714        (-[WebCoreBridge insertParagraphSeparatorInQuotedContent])
25715        (-[WebCoreBridge insertText:selectInsertedText:])
25716        (-[WebCoreBridge deleteSelectionWithSmartDelete:])
25717        (-[WebCoreBridge ensureSelectionVisible])
25718
257192005-01-24  Kevin Decker  <kdecker@apple.com>
25720
25721        Reviewed by Darin.
25722
25723	Fixed <rdar://problem/3932374> REGRESSION: 'ReferenceError - Can't find variable' JavaScript error at webxpress.fidelity.com
25724
25725        * khtml/html/html_miscimpl.h: Missing virtual identifiers for namedItem() and nextNamedItem() exposed a flaw that prevented finding variables in form [HTMLFormCollectionImpl] scopes.
25726	
25727
257282005-01-24  Vicki Murley <vicki@apple.com>
25729
25730        Reviewed by kocienda.
25731
25732	- fix <rdar://problem/3810661> computed style not handled for Apple extensions
25733 
25734        * khtml/css/css_computedstyle.cpp: (DOM::):
25735        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): add -apple-line-clamp and -apple-text-size-adjust
25736
257372005-01-24  Darin Adler  <darin@apple.com>
25738
25739        Reviewed by Kevin.
25740
25741        - fixed <rdar://problem/3969884> REGRESSION (179-180): Typing password not echoed as "bullets" at paypal.com when field is first focused
25742
25743        * kwq/KWQTextField.mm: (-[KWQTextFieldController initWithTextField:QLineEdit:]):
25744        Sizing up the form editor, which fixes things for normal fields and search fields,
25745        screws things up for password fields. Eventually, I'll need to figure out why this is
25746        and file a bug so that the AppKit team fixes it. In the mean time, just check for the
25747        case of the secure text field, and don't size up in that case.
25748
257492005-01-24  Ken Kocienda  <kocienda@apple.com>
25750
25751        Reviewed by Hyatt
25752
25753        Fix for this bug:
25754        
25755        <rdar://problem/3963560> 8A354: Inserting Japanese text to the line head causes line break
25756
25757        * khtml/editing/htmlediting.cpp:
25758        (khtml::ReplaceSelectionCommand::doApply): Add one more case where we merge content into the
25759        existing line. This covers the situation see using the steps to reproduce this bug.
25760
257612005-01-21  Maciej Stachowiak  <mjs@apple.com>
25762
25763        Reviewed by Darin.
25764
25765	<rdar://problem/3967572> Editing should split elements before removing style
25766	
25767        * khtml/editing/htmlediting.cpp:
25768        (khtml::CompositeEditCommand::splitElement):
25769        (khtml::CompositeEditCommand::mergeIdenticalElements):
25770        (khtml::CompositeEditCommand::wrapContentsInDummySpan):
25771        (khtml::CompositeEditCommand::splitTextNodeContainingElement):
25772        (khtml::ApplyStyleCommand::applyInlineStyle):
25773        (khtml::ApplyStyleCommand::splitTextAtStartIfNeeded):
25774        (khtml::ApplyStyleCommand::splitTextAtEndIfNeeded):
25775        (khtml::ApplyStyleCommand::splitTextElementAtStartIfNeeded):
25776        (khtml::ApplyStyleCommand::splitTextElementAtEndIfNeeded):
25777        (khtml::areIdenticalElements):
25778        (khtml::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
25779        (khtml::ApplyStyleCommand::mergeEndWithNextIfIdentical):
25780        (khtml::ApplyStyleCommand::cleanUpEmptyStyleSpans):
25781        (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
25782        (khtml::InsertParagraphSeparatorCommand::doApply):
25783        (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
25784        (khtml::InsertTextCommand::prepareForTextInsertion):
25785        (khtml::SplitTextNodeCommand::doUnapply):
25786        (khtml::SplitElementCommand::SplitElementCommand):
25787        (khtml::SplitElementCommand::~SplitElementCommand):
25788        (khtml::SplitElementCommand::doApply):
25789        (khtml::SplitElementCommand::doUnapply):
25790        (khtml::MergeIdenticalElementsCommand::MergeIdenticalElementsCommand):
25791        (khtml::MergeIdenticalElementsCommand::~MergeIdenticalElementsCommand):
25792        (khtml::MergeIdenticalElementsCommand::doApply):
25793        (khtml::MergeIdenticalElementsCommand::doUnapply):
25794        (khtml::WrapContentsInDummySpanCommand::WrapContentsInDummySpanCommand):
25795        (khtml::WrapContentsInDummySpanCommand::~WrapContentsInDummySpanCommand):
25796        (khtml::WrapContentsInDummySpanCommand::doApply):
25797        (khtml::WrapContentsInDummySpanCommand::doUnapply):
25798        (khtml::SplitTextNodeContainingElementCommand::SplitTextNodeContainingElementCommand):
25799        (khtml::SplitTextNodeContainingElementCommand::~SplitTextNodeContainingElementCommand):
25800        (khtml::SplitTextNodeContainingElementCommand::doApply):
25801        * khtml/editing/htmlediting.h:
25802
25803	New layout test that shows the side benefit of this.
25804        
25805	* layout-tests/editing/style/unbold-in-bold-expected.txt: Added.
25806        * layout-tests/editing/style/unbold-in-bold.html: Added.
25807
258082005-01-24  Darin Adler  <darin@apple.com>
25809
25810        Reviewed by John.
25811
25812        - fixed <rdar://problem/3933435> -[DOMRange cloneContents] sometimes alters the original DOMRange
25813
25814        * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::processContents): Fixed code that was collapsing
25815        the range after processing the contents. That's right for extract and delete, but not clone.
25816
25817        - fixed <rdar://problem/3714184> inline input works incorrectly when I type Korean slowly in textfield in form on www.google.co.kr
25818        - fixed <rdar://problem/3193848> Can't enter SSN to sign up for Chase visa online account (changing focus inside key press handler)
25819        - fixed <rdar://problem/3874683> REGRESSION (161-162): Crash after typing command-Z to undo after pasting text with newline in it into a text field <input type=text>
25820
25821        * kwq/KWQLineEdit.mm:
25822        (QLineEdit::text): Changed to call a new string method on the controller instead of calling
25823        stringValue, since stringValue has a bad side effect of ending inline input.
25824        (QLineEdit::selectAll): Changed to only call selectText: when the field is already selected.
25825        When you are giving the field focus, it automatically gets all selected, and this change
25826        is required in the case where we defer the focus change.
25827
25828        * kwq/KWQTextField.h: Added a new string method to the controller.
25829        * kwq/KWQTextField.mm:
25830        (-[KWQTextFieldController setMaximumLength:]): Call the new string method instead of using stringValue.
25831        (-[KWQTextFieldController controlTextDidChange:]): Removed the code to truncate at the first CR or LF.
25832        That's now handled in the shouldChangeTextInRange method instead.
25833        (-[KWQTextFieldController textView:shouldHandleEvent:]): Add new logic to defer responder changes until
25834        after the event is handled. This makes sure the key gets into the field that's already handling it at
25835        rather than ending up in the newly-focused field if the key press handler focuses a different element.
25836        (-[KWQTextFieldController textView:didHandleEvent:]): Turn off deferral here, now that the key press
25837        has been handled.
25838        (-[KWQTextFieldController string]): Added. Calls stringValue only if there's no editor. If there is
25839        an editor, calls string on that instead.
25840        (-[KWQTextFieldController textView:shouldChangeTextInRange:replacementString:]): Added. Called by
25841        the three field subclasses. Truncates incoming strings at the first CR or LF character. This works
25842        properly with Undo, and the old technique did not.
25843        (-[KWQTextFieldController preprocessString:]): Added. Helper used for all the setStringValue methods
25844        so they all truncate at the first CR or LF as well as truncating to the appropriate length.
25845        (-[KWQTextField setStringValue:]): Changed to call the controller.
25846        (-[KWQTextField textView:shouldChangeTextInRange:replacementString:]): Added. Calls the controller.
25847        (-[KWQSecureTextField setStringValue:]): More of the same.
25848        (-[KWQSecureTextField textView:shouldChangeTextInRange:replacementString:]): Ditto.
25849        (-[KWQSearchField setStringValue:]): Ditto.
25850        (-[KWQSearchField textView:shouldChangeTextInRange:replacementString:]): Ditto.
25851
25852        * kwq/KWQWidget.h: Added the new setDeferFirstResponderChanges function.
25853        * kwq/KWQWidget.mm:
25854        (QWidget::~QWidget): Clear out the deferredFirstResponder global just in case we are destroyed
25855        while we "have the ball".
25856        (QWidget::hasFocus): If we are in the deferred mode, use the global to decide who to say is focused.
25857        (QWidget::setFocus): If we are in the deferred mode, set the global instead of making something be
25858        the first responder.
25859        (QWidget::setDeferFirstResponderChanges): Set the boolean. If the boolean is being cleared, then
25860        get the deferred first responder and call setFocus on it again, which will do the work we didn't
25861        want to do earlier.
25862
258632005-01-24  Ken Kocienda  <kocienda@apple.com>
25864
25865        Reviewed by John
25866
25867        Fix for this bug:
25868        
25869        <rdar://problem/3964350> Deleting all content and typing in a message gets one letter, then beeps
25870
25871        This is a problem with the way we turn key events, when a user starts typing, into editing commands. 
25872        Right now, that initial delete key in an empty window is turned into an editing command, and much 
25873        editing code runs that need not run. What's more, this is confusing the selection machinery. The
25874        solution is to detect the "delete in an empty window" case and don't turn this into an editing
25875        command at all.
25876
25877        * khtml/editing/htmlediting.cpp:
25878        (khtml::TypingCommand::deleteKeyPressed)
25879
258802005-01-23  Adele Amchan  <adele@apple.com>
25881
25882        Fixed <rdar://problem/3964286> REGRESSION (178-179): menus and "go to old site" link at Ameritrade's new site don't work
25883
25884        Removed check for document from checkCompleted.  In this case, WebCore never knew that a WebImageView was complete because 
25885        it fell into this document check case in checkCompleted.  
25886        Added check for document to tokenizerProcessedData (see <rdar://problem/3807144>)
25887
25888        Reviewed by Darin.
25889
25890        * khtml/khtml_part.cpp:
25891        (KHTMLPart::stop):
25892        (KHTMLPart::checkCompleted):
25893        * khtml/khtml_part.h:
25894        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::tokenizerProcessedData):
25895
258962005-01-21  Richard Williamson   <rjw@apple.com>
25897
25898	Fixed <rdar://problem/3759399> Javascript / Liveconnect problems ((event handler):Undefined value)
25899
25900	Java applets specified with <object> or <embed> weren't scriptable.  Now they are.
25901
25902        Reviewed by Chris.
25903
25904        * khtml/html/html_objectimpl.cpp:
25905        (HTMLEmbedElementImpl::getEmbedInstance):
25906        (HTMLObjectElementImpl::getObjectInstance):
25907
259082005-01-21  Ken Kocienda  <kocienda@apple.com>
25909
25910        Reviewed by John
25911
25912        Fix for this bug:
25913        
25914        <rdar://problem/3959464> REGRESSION (Mail): Insertion point goes back to beginning of document after deleting
25915
25916        * khtml/editing/htmlediting.cpp:
25917        (khtml::DeleteSelectionCommand::handleGeneralDelete): Add special case to handle retaining a fully-selected block.
25918        This fixes the bug.
25919        * layout-tests/editing/deleting/delete-3959464-fix-expected.txt: Added.
25920        * layout-tests/editing/deleting/delete-3959464-fix.html: Added.
25921
259222005-01-21  Richard Williamson   <rjw@apple.com>
25923
25924	Fixed <rdar://problem/3966998> REGRESSION(179-TOT) clicking on gmail message brings me to blank screen
25925
25926	getElementById() sometimes returns Undefined() instead of Null().
25927
25928        Reviewed by Hyatt.
25929
25930        * khtml/ecma/kjs_dom.cpp:
25931        (DOMDocumentProtoFunc::tryCall):
25932
259332005-01-21  David Hyatt  <hyatt@apple.com>
25934
25935	Fix for 3773809, make sure that overflow regions never end up at an invalid scroll offset because of a layout change.
25936	
25937        Reviewed by kocienda
25938
25939        * khtml/rendering/render_layer.cpp:
25940        (RenderLayer::updateScrollInfoAfterLayout):
25941
259422005-01-21  David Hyatt  <hyatt@apple.com>
25943
25944	Fix for 3966349, hang loading page.  Make sure that loops using popOneBlock properly check for a null
25945	blockStack to avoid an infinite loop.
25946	
25947        Reviewed by kocienda
25948
25949        * khtml/html/htmlparser.cpp:
25950        (KHTMLParser::parseToken):
25951        (KHTMLParser::insertNode):
25952        (KHTMLParser::popInlineBlocks):
25953
259542005-01-21  Ken Kocienda  <kocienda@apple.com>
25955
25956        Reviewed by John
25957
25958        Fix for this bug:
25959        
25960        <rdar://problem/3957204> Mail crashed when sending a message in ~InsertParagraphSeparatorInQuotedContentCommand
25961
25962        * khtml/editing/htmlediting.cpp:
25963        (khtml::InsertParagraphSeparatorInQuotedContentCommand::InsertParagraphSeparatorInQuotedContentCommand):
25964        InsertParagraphSeparatorInQuotedContentCommand has this member variable: DOM::ElementImpl *m_breakNode;
25965        I failed to initialize this variable to null in the constructor, and there is an uncommonly-traveled 
25966        code path which does not set this variable to something good. In the destructor, we check for null, 
25967        and deref if non-null. Obvious "BOOM" potential. Fixed.
25968
259692005-01-21  Ken Kocienda  <kocienda@apple.com>
25970
25971        Reviewed by John
25972
25973        Fix for this bug:
25974        
25975        <rdar://problem/3966311> REGRESSION (Mail): Hitting return makes space character disappear
25976
25977        * khtml/editing/htmlediting.cpp:
25978        (khtml::InsertParagraphSeparatorCommand::doApply): When writing the code to insert a block
25979        in response to the return key, I did not write code to cover the case described in the bug.
25980        Now I have.
25981        * layout-tests/editing/inserting/insert-div-025-expected.txt: Added.
25982        * layout-tests/editing/inserting/insert-div-025.html: Added.
25983
259842005-01-20  Maciej Stachowiak  <mjs@apple.com>
25985
25986        Reviewed by Ken.
25987
25988	<rdar://problem/3965196> security fix for javascript: exploit missed one case (already fixed in updates)
25989        
25990	* khtml/ecma/kjs_window.cpp:
25991        (WindowFunc::tryCall): correct mistake in earlier fix for the following bug, caught by Adele:
25992
259932005-01-20  Maciej Stachowiak  <mjs@apple.com>
25994
25995        Reviewed by Ken.
25996
25997	<rdar://problem/3965466> editing needs to insert text before applying typing style
25998	
25999        * khtml/editing/htmlediting.cpp:
26000        (khtml::ApplyStyleCommand::addInlineStyleIfNeeded): Remove a FIXME comment.
26001        (khtml::InsertLineBreakCommand::doApply): Apply style to the BR
26002	node after inserting it.
26003        (khtml::InsertTextCommand::prepareForTextInsertion): Don't try to
26004	apply style to any new nodes created before inserting.
26005        (khtml::InsertTextCommand::input): Apply style to the inserted range
26006	after doing the text insert.
26007        * khtml/editing/htmlediting.h:
26008
26009	This change leads to improved results on one of the layout tests:
26010        
26011	* layout-tests/editing/inserting/insert-div-024-expected.txt:
26012
26013=== Safari-180 ===
26014
260152005-01-20  Ken Kocienda  <kocienda@apple.com>
26016
26017        Reviewed by John
26018
26019        Fix for this bug:
26020        
26021        <rdar://problem/3964646> REGRESSION (179-180): Typing space at end of line makes following paragraph disappear
26022
26023        * khtml/editing/htmlediting.cpp:
26024        (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): Recent change to block placeholder removal code 
26025        caused this regression. The code became too aggressive in removing block placeholders, and would remove them
26026        from blocks other than the block containing the selection.
26027        * layout-tests/editing/inserting/insert-div-023-expected.txt: This file had a spurious BR element in it that
26028        I did not notice earlier.
26029        * layout-tests/editing/inserting/insert-div-024-expected.txt: Ditto.
26030
260312005-01-20  David Hyatt  <hyatt@apple.com>
26032
26033	Fix for oddness on albertsons.com.  Make sure not to crash when setting/removing style properties on a node
26034	with no document.  The bug # is 3813900.
26035	
26036        Reviewed by john
26037
260382005-01-20  David Harrison  <harrison@apple.com>
26039
26040        Reviewed by Darin.
26041
26042        PARTIAL fix for following bug.  Create attributed string with fonts and links.  Still need to add attachments.
26043        <rdar://problem/3942606> AX: Support kAXAttributedStringForTextMarkerRangeParameterizedAttribute
26044        
26045        * kwq/KWQAccObject.mm:
26046        (-[KWQAccObject textUnderElement]):
26047        Touched up previous checkin to match code review comments.
26048        
26049        (-[KWQAccObject value]):
26050        Use plainText for this one instead of obsolete attributedString.
26051        
26052        (-[KWQAccObject accessibilityParameterizedAttributeNames]):
26053        Advertise AXAttributedStringForTextMarkerRange.
26054        
26055        (AXAttributeStringAddFont):
26056        (AXAttributeStringAddElement):
26057        (-[KWQAccObject linkUIElementForNode:]):
26058        (-[KWQAccObject _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
26059        (-[KWQAccObject accessibilityAttributedStringForRange:]):
26060        New routines to support AXAttributedStringForTextMarkerRange.
26061        
26062        (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
26063        Use new routines instead of obsolete attributedString.
26064
260652005-01-20  David Harrison  <harrison@apple.com>
26066
26067        Reviewed by Darin.
26068
26069        <rdar://problem/3960196> AX Crash in DOM::Range::setStartBefore
26070
26071        * khtml/xml/dom_docimpl.cpp:
26072        (DocumentImpl::getAccObjectCache):
26073        Adjust when detecting cache in non-top level WebArea.
26074        * kwq/KWQAccObject.mm:
26075        (-[KWQAccObject textUnderElement]):
26076        (-[KWQAccObject accessibilityAttributeValue:]):
26077        Make sure the elements document is the current one for the part.
26078
260792005-01-20  Darin Adler  <darin@apple.com>
26080
26081        Reviewed by John.
26082
26083        - fixed <rdar://problem/3922980> Mail not crashing, just quitting itself suddenly in -[WebHTMLView(MailExtras) findString:options:]
26084
26085        * khtml/dom/dom2_range.cpp: (DOM::operator==): Handle null and detached ranges without raising exceptions.
26086        The uncaught exception would make the entire program terminate.
26087
26088        - fixed <rdar://problem/3885729> attempting to modify a computed style does nothing, but should raise a DOM exception
26089
26090        * kwq/DOM-CSS.mm: (-[DOMCSSStyleDeclaration setProperty:::]): Uncommented this code which I had to disable
26091        back in November because Mail was stumbling over it.
26092
26093        - fixed <rdar://problem/3943049> focus() called during onload handler results in square text field on <input type=search>        
26094
26095        * kwq/KWQLineEdit.mm: (QLineEdit::baselinePosition): Change computation so it will work even for fields
26096        that position their text in a way that depends on vertical size. In the case of a search field, the text
26097        is centered, so the old logic was broken.
26098        * kwq/KWQTextField.mm: (-[KWQTextFieldController initWithTextField:QLineEdit:]): Set the frame size to
26099        something large enough to accomodate the field editor. If we start the frame at size 0,0 we run into
26100        AppKit trouble when it insets the frame to figure out the frame for the field editor. In the case of this
26101        bug this happens because we become first responder before being sized and positioned by the HTML layout code.
26102
26103        - improved debugging output when using "po" from gdb with Objective-C DOM
26104
26105        * kwq/DOM.mm:
26106        (-[DOMNode description]): Added. Includes node name ("<tr>") and node value (e.g., string for text node).
26107        (-[DOMRange description]): Tweaked format.
26108
261092005-01-19  Richard Williamson   <rjw@apple.com>
26110
26111	After further discussion with Real we have decided to NOT include the
26112	additional CLSID for the real plugin.  See 3958601.
26113
26114        Reviewed by Darin.
26115
26116        * khtml/rendering/render_frames.cpp:
26117        (RenderPartObject::updateWidget):
26118
261192005-01-19  David Harrison  <harrison@apple.com>
26120
26121        Reviewed by Maciej.
26122
26123        <rdar://problem/3949429> AX: word marker routines returns incorrect data for empty line
26124
26125        Previous checkin for this bug was missing some of the patch.  Editing snafu with multiple changes in tree.
26126        
26127        * kwq/KWQAccObject.mm:
26128        (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
26129        (-[KWQAccObject doAXNextWordEndTextMarkerForTextMarker:]):
26130        (-[KWQAccObject doAXPreviousWordStartTextMarkerForTextMarker:]):
26131        (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
26132        (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]):
26133        (-[KWQAccObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
26134        (-[KWQAccObject doAXPreviousParagraphStartTextMarkerForTextMarker:]):
26135
261362005-01-19  Ken Kocienda  <kocienda@apple.com>
26137
26138        Reviewed by John
26139
26140        * khtml/editing/htmlediting.cpp:
26141        (khtml::InsertParagraphSeparatorCommand::applyStyleAfterInsertion): Small, cosmetic change John and I decided
26142        to do on my last checkin, but I forgot to do before landing.
26143
261442005-01-19  Ken Kocienda  <kocienda@apple.com>
26145
26146        Reviewed by John
26147
26148        Fix for this bug:
26149        
26150        <rdar://problem/3959727> REGRESSION (Mail): Style not preserved on blank lines
26151
26152        * khtml/editing/htmlediting.cpp:
26153        (khtml::CompositeEditCommand::applyStyle):
26154        (khtml::CompositeEditCommand::insertBlockPlaceholder): New function that unconditionally adds a block placeholder.
26155        (khtml::CompositeEditCommand::insertBlockPlaceholderIfNeeded): Now returns bool based on whether
26156        placeholder was added or not.
26157        (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): Now searches all the descendents of a block
26158        looking for a placeholder. The old code, which just looked at the last child of a node, started missing
26159        once block placeholders became styled (which started happening with this patch).
26160        (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete): Now handles applying typing style
26161        to a block placeholder at call time, rather than setting the typing style as a latent style that
26162        might be applied later. This is an important part of the bug fix.
26163        (khtml::DeleteSelectionCommand::doApply): Now uses bool return value from insertBlockPlaceholderIfNeeded()
26164        and passes it along to calculateStyleBeforeInsertion, so the case where a block placeholder needs to
26165        be styled can be detected.
26166        (khtml::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): Changed the way this class
26167        managed style. Before it would calculate and set typing style for the block added. This is not
26168        sufficient. Added blocks need to styled immediately. Some name changes to instance variables in 
26169        this class due to the change to accommodate this change.
26170        (khtml::InsertParagraphSeparatorCommand::~InsertParagraphSeparatorCommand): Name changes, as above.
26171        (khtml::InsertParagraphSeparatorCommand::calculateStyleBeforeInsertion): Ditto.
26172        (khtml::InsertParagraphSeparatorCommand::applyStyleAfterInsertion): Ditto.
26173        (khtml::InsertParagraphSeparatorCommand::doApply): Ditto.
26174        (khtml::ReplaceSelectionCommand::doApply): Improve check for testing when a placeholder
26175        block can be removed in its entirety after the insertion.
26176        * khtml/editing/htmlediting.h: Update header accordingly.
26177        * khtml/khtml_part.cpp:
26178        (KHTMLPart::selectionComputedStyle): Move position for computed style check downstream before
26179        doing check when the position is in an empty block (this makes sure any style on any block
26180        placeholder is accounted for).
26181
26182        New layout tests to check bug fix.
26183
26184        * layout-tests/editing/style/block-style-004-expected.txt: Added.
26185        * layout-tests/editing/style/block-style-004.html: Added.
26186        * layout-tests/editing/style/block-style-005-expected.txt: Added.
26187        * layout-tests/editing/style/block-style-005.html: Added.
26188        * layout-tests/editing/style/block-style-006-expected.txt: Added.
26189        * layout-tests/editing/style/block-style-006.html: Added.
26190
26191        Results updated to reflect new block placeholder code.
26192
26193        * layout-tests/editing/inserting/insert-div-004-expected.txt 
26194        * layout-tests/editing/inserting/insert-div-005-expected.txt
26195        * layout-tests/editing/inserting/insert-div-006-expected.txt
26196        * layout-tests/editing/inserting/insert-div-008-expected.txt
26197        * layout-tests/editing/inserting/insert-div-011-expected.txt
26198        * layout-tests/editing/inserting/insert-div-012-expected.txt
26199        * layout-tests/editing/inserting/insert-div-013-expected.txt
26200        * layout-tests/editing/inserting/insert-div-014-expected.txt
26201        * layout-tests/editing/inserting/insert-div-015-expected.txt
26202        * layout-tests/editing/inserting/insert-div-016-expected.txt
26203        * layout-tests/editing/inserting/insert-div-017-expected.txt
26204        * layout-tests/editing/inserting/insert-div-018-expected.txt
26205        * layout-tests/editing/inserting/insert-div-019-expected.txt
26206        * layout-tests/editing/inserting/insert-div-021-expected.txt
26207        * layout-tests/editing/inserting/insert-div-022-expected.txt
26208        * layout-tests/editing/inserting/insert-div-023-expected.txt
26209        * layout-tests/editing/inserting/insert-div-024-expected.txt
26210
262112005-01-19  David Hyatt  <hyatt@apple.com>
26212
26213	Dont null-check the renderer before submitting, since a script can set it to display:none and still expect the
26214	submission to occur.  Fixes bug #3477282.
26215	
26216        Reviewed by kdecker
26217
26218        (DOM::HTMLInputElementImpl::defaultEventHandler):
26219
262202005-01-18  Richard Williamson   <rjw@apple.com>
26221	
26222	Fixed several issues all arising from analysis of plugin detection code at ifilm.com:
26223
26224	Fixed <rdar://problem/3958592> can't script plug-ins if plug-in is invoked with <object> element instead of <embed>
26225	Fixed <rdar://problem/3958597> <object> elements with IDs do not show up as named properties of the document
26226	Fixed <rdar://problem/3960973> DOM objects for plugin elements are not accessible
26227	Fixed <rdar://problem/3958601> need an additional class ID in WebCore for the Real plug-in
26228
26229	We now support accessing scriptable plugin objects that are specified with <applet>, <embed>, or <object>
26230	tags.  Also, if any of these elements are named they can be accessed from the document or window objects.
26231	Finally, DOM methods are properties will be forwarded appropriately for the plugin's root scriptable object.
26232
26233        Reviewed by Chris.
26234
26235        * khtml/dom/html_document.cpp:
26236        (HTMLDocument::objects):
26237        * khtml/dom/html_document.h:
26238        * khtml/ecma/kjs_dom.cpp:
26239        (DOMDocumentProtoFunc::tryCall):
26240        (DOMElementProtoFunc::tryCall):
26241        (KJS::getRuntimeObject):
26242        * khtml/ecma/kjs_dom.h:
26243        * khtml/ecma/kjs_html.cpp:
26244        (KJS::HTMLDocument::tryGet):
26245        (KJS::HTMLElement::tryGet):
26246        (KJS::HTMLCollection::tryGet):
26247        (KJS::HTMLCollection::getNamedItems):
26248        * khtml/ecma/kjs_window.cpp:
26249        (Window::get):
26250        * khtml/html/html_miscimpl.cpp:
26251        (HTMLCollectionImpl::traverseNextItem):
26252        * khtml/html/html_miscimpl.h:
26253        (DOM::HTMLCollectionImpl::):
26254        * khtml/html/html_objectimpl.cpp:
26255        (HTMLAppletElementImpl::getAppletInstance):
26256        (HTMLObjectElementImpl::HTMLObjectElementImpl):
26257        (HTMLObjectElementImpl::getObjectInstance):
26258        * khtml/html/html_objectimpl.h:
26259        * khtml/rendering/render_frames.cpp:
26260        (RenderPartObject::updateWidget):
26261        * kwq/KWQKHTMLPart.h:
26262        * kwq/KWQKHTMLPart.mm:
26263        (KWQKHTMLPart::getObjectInstanceForView):
26264
262652005-01-18  David Hyatt  <hyatt@apple.com>
26266
26267	Fix for 3948123, rolling over link erases nearby text.  The repaint rect check for lines was wrong whenever
26268	two lines overlapped.
26269	
26270        Reviewed by kocienda
26271
26272        * khtml/rendering/render_flow.cpp:
26273        (RenderFlow::paintLines):
26274
262752005-01-18  Ken Kocienda  <kocienda@apple.com>
26276
26277        Reviewed by Hyatt
26278        
26279        Fix for this bug:
26280        
26281        <rdar://problem/3960116> Focus rings paint incorrectly for contenteditable blocks in web pages
26282
26283        * khtml/rendering/render_flow.cpp:
26284        (RenderFlow::addFocusRingRects): Fix painting of focus rings so that ring only paints around
26285        outermost contenteditable elements.
26286
262872005-01-18  David Harrison  <harrison@apple.com>
26288
26289        Reviewed by Darin.
26290
26291        <rdar://problem/3959668> accessibilityFocusedUIElement sometimes returns an ignored element; it must not
26292
26293        * kwq/KWQAccObject.mm:
26294        (-[KWQAccObject accessibilityFocusedUIElement]):
26295        Return parentObjectUnignored if focused object is ignored.
26296
262972005-01-18  Ken Kocienda  <kocienda@apple.com>
26298
26299        Reviewed by John
26300
26301        Fix for this bug:
26302        
26303        <rdar://problem/3952877> REGRESSION (Mail): Command-left/right-arrows don't work with file attachment
26304
26305        * khtml/editing/selection.cpp:
26306        (khtml::nodeForInlineBox): New helper function used in reimplementation of function below.
26307        (khtml::selectionForLine): Reimplemented using line box smarts. I originally wrote this code when
26308        I had a less than full understanding of line layout. I can do better now, and my new version no
26309        longer fails to notice attachments when doing the kind of navigation mentioned in the bug.
26310
263112005-01-17  David Harrison  <harrison@apple.com>
26312
26313        Reviewed by John Sullivan.
26314
26315        <rdar://problem/3949429> AX: word marker routines returns incorrect data for empty line
26316        <rdar://problem/3949848> AX: paragraph marker routines do not work when given a paragraph end marker
26317
26318        Also fixed sentence support in the same way.
26319        
26320        * kwq/KWQAccObject.mm:
26321        (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
26322        (-[KWQAccObject doAXNextSentenceEndTextMarkerForTextMarker:]):
26323        (-[KWQAccObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
26324        (-[KWQAccObject doAXNextParagraphEndTextMarkerForTextMarker:]):
26325        (-[KWQAccObject doAXPreviousParagraphStartTextMarkerForTextMarker:]):
26326        Move one position in desired direction before calling visible_units.cpp code.
26327
263282005-01-17  David Harrison  <harrison@apple.com>
26329
26330        Updated expected test results.
26331        
26332        <rdar://problem/3945880> line-ending space seems not to be present
26333
26334        * layout-tests/editing/deleting/delete-ws-fixup-001-expected.txt:
26335        * layout-tests/editing/deleting/delete-ws-fixup-002-expected.txt:
26336        * layout-tests/editing/inserting/insert-div-020-expected.txt:
26337        * layout-tests/editing/inserting/insert-div-021-expected.txt:
26338        * layout-tests/editing/inserting/insert-div-022-expected.txt:
26339        * layout-tests/editing/inserting/insert-div-023-expected.txt:
26340        * layout-tests/editing/inserting/insert-div-024-expected.txt:
26341
263422005-01-17  David Harrison  <harrison@apple.com>
26343
26344        Reviewed by Dave Hyatt (bidi.cpp) and Darin Adler (selection.cpp).
26345
26346        <rdar://problem/3945880> line-ending space seems not to be present
26347
26348        * khtml/editing/selection.cpp:
26349        (khtml::Selection::validate):
26350        Extend AFTER_WHITE_SPACE code to support white spac in the middle of paragraphs, not just the end.
26351        * khtml/rendering/bidi.cpp:
26352        (khtml::RenderBlock::findNextLineBreak):
26353        Pick left/rightness of word selection based on being at the end of paragraph (i.e. after a hard line break).
26354
263552005-01-17  Darin Adler  <darin@apple.com>
26356
26357        Reviewed by John Louch.
26358
26359        - fixed <rdar://problem/3958503> need screenX and screenY to use WebKit windowFrame delegate
26360
26361        * khtml/ecma/kjs_window.cpp: (Window::get): Change screenX and screenY to use frameGeometry instead
26362        of using mapToGlobal and screen in a complicated way.
26363        * kwq/KWQKHTMLView.mm: Removed unused mapToGlobal function.
26364        * kwq/KWQWindowWidget.h: Ditto.
26365        * kwq/KWQWindowWidget.mm: Ditto.
26366
263672005-01-17  David Hyatt  <hyatt@apple.com>
26368
26369	Fix a screwup in rightmost/lowets position computation.  3955207.  Make sure floats with layers are still checked.
26370
26371        Reviewed by kocienda
26372	
26373	* khtml/rendering/render_block.cpp
26374
263752005-01-17  Ken Kocienda  <kocienda@apple.com>
26376
26377        Reviewed by John
26378
26379        <rdar://problem/3953366> Problems with typing attributes in HTML compose
26380
26381        * khtml/editing/htmlediting.cpp:
26382        (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete): Remove misguided "optimization"
26383        that tried to sense when typing style could be cleared without actually doing a style diff between
26384        before-delete and after-delete positions. Removing this extra check and running the 
26385        general-purpose code fixes the bug.
26386
263872005-01-17  Richard Williamson   <rjw@apple.com>
26388
26389	Fixed <rdar://problem/3753030> Need to ensure same origin for plugin binding invocations (origin security rules)
26390
26391	Keep track of originating execution context and target execution
26392	context for native JS object wrappers, and perform appropriate
26393	security checks.
26394
26395        Reviewed by David Harrison.
26396
26397        * khtml/ecma/kjs_binding.cpp:
26398        (ScriptInterpreter::isGlobalObject):
26399        (ScriptInterpreter::isSafeScript):
26400        (ScriptInterpreter::interpreterForGlobalObject):
26401        * khtml/ecma/kjs_binding.h:
26402        * khtml/ecma/kjs_window.cpp:
26403        (Window::interpreter):
26404        (Window::isSafeScript):
26405        * khtml/ecma/kjs_window.h:
26406        * kwq/DOMInternal.mm:
26407        (-[WebScriptObject _initializeScriptDOMNodeImp]):
26408        * kwq/KWQKHTMLPart.mm:
26409        (KWQKHTMLPart::windowScriptObject):
26410        (KWQKHTMLPart::windowScriptNPObject):
26411        * kwq/WebCoreBridge.mm:
26412        (rootForView):
26413        (-[WebCoreBridge init]):
26414
264152005-01-17  Ken Kocienda  <kocienda@apple.com>
26416
26417        Reviewed by John
26418
26419        Fix for this bug:
26420        
26421        <rdar://problem/3786659> REGRESSION (Mail): editable WebViews don't work with 
26422        "size up" and "size down" NSFontManager changes
26423
26424        * khtml/css/cssparser.cpp:
26425        (CSSParser::parseValue): Add support for parsing new font size delta property.
26426        * khtml/css/cssproperties.c: Generated file.
26427        * khtml/css/cssproperties.h: Ditto.
26428        * khtml/css/cssproperties.in: Add support for parsing new font size delta property.
26429        * khtml/editing/htmlediting.cpp:
26430        (khtml::isEmptyStyleSpan): New helper function. Code existed before, but now factored out for convenient use.
26431        (khtml::CompositeEditCommand::removeNodeAttribute): Does check on value to see it exists before creating
26432        and running command to do the removal.
26433        (khtml::ApplyStyleCommand::doApply): Now calls new applyRelativeFontStyleChange() function as part of its work.
26434        (khtml::ApplyStyleCommand::applyRelativeFontStyleChange): New function that does the "heavy lifting" to handle 
26435        relative font size changes.
26436        (khtml::ApplyStyleCommand::applyInlineStyle): Range check the start and end positions to make sure the start is
26437        before or equal to the end. Swap them if not true. I ran into this problem in some similar code in 
26438        applyRelativeFontStyleChange(). Moving that goodness here too.
26439        (khtml::ApplyStyleCommand::splitTextAtEndIfNeeded): Uses a local variable to save a value used often.
26440        Code is the same, but reads better now. Function now returns bool as well, just like splitTextAtStartIfNeeded.
26441        I use the bool return value now (I obviously did not need it before).
26442        (khtml::ApplyStyleCommand::computedFontSize): New helper function.
26443        (khtml::ApplyStyleCommand::joinChildTextNodes): Ditto.
26444        (khtml::createStyleSpanElement): Ditto.
26445        * khtml/editing/htmlediting.h: Update header accordingly.
26446        * khtml/editing/jsediting.cpp: Add new command string to enable relative font size changes.
26447        * kwq/DOM-CSS.mm:
26448        (-[DOMCSSStyleDeclaration _fontSizeDelta]): New convenience.
26449        (-[DOMCSSStyleDeclaration _setFontSizeDelta:]): Ditto.
26450        * kwq/DOMPrivate.h: Declare new conveniences.
26451        * layout-tests/editing/editing.js: Add new JS to enable relative font size changes, as well as explicit font size setting.
26452        * layout-tests/editing/style/relative-font-size-change-001-expected.txt: Added.
26453        * layout-tests/editing/style/relative-font-size-change-001.html: Added.
26454        * layout-tests/editing/style/relative-font-size-change-002-expected.txt: Added.
26455        * layout-tests/editing/style/relative-font-size-change-002.html: Added.
26456        * layout-tests/editing/style/relative-font-size-change-003-expected.txt: Added.
26457        * layout-tests/editing/style/relative-font-size-change-003.html: Added.
26458        * layout-tests/editing/style/relative-font-size-change-004-expected.txt: Added.
26459        * layout-tests/editing/style/relative-font-size-change-004.html: Added.
26460
264612005-01-14  Darin Adler  <darin@apple.com>
26462
26463        * khtml/css/cssproperties.c: Regenerated with gperf 3.0.1.
26464        * khtml/css/cssvalues.c: Regenerated with gperf 3.0.1.
26465        * khtml/misc/htmlattrs.c: Regenerated with gperf 3.0.1.
26466        * khtml/misc/htmltags.c: Regenerated with gperf 3.0.1.
26467
264682005-01-14  Chris Blumenberg  <cblu@apple.com>
26469
26470	Fixed: <rdar://problem/3886415> arrow keys don't work when the user hits Back to return to RSS page
26471
26472        Reviewed by hyatt.
26473
26474        (KWQKHTMLPart::openURLFromPageCache): restore mousePressNode
26475        (KWQKHTMLPart::mousePressNode): new
26476        * kwq/KWQPageState.h:
26477        * kwq/KWQPageState.mm:
26478        (-[KWQPageState initWithDocument:URL:windowProperties:locationProperties:interpreterBuiltins:]): save the mousePressNode
26479        (-[KWQPageState clear]): clear the mousePressNode
26480        (-[KWQPageState dealloc]): deref the mousePressNode
26481        (-[KWQPageState mousePressNode]): new
26482
26483=== Safari-179 ===
26484
264852005-01-13  Vicki Murley <vicki@apple.com>
26486
26487        Reviewed by Adele.
26488
26489        - fix <rdar://problem/3946836> Safari about box lists 2004 instead of 2005
26490
26491        * WebCore.pbproj/project.pbxproj: bump "2004" to "2005"
26492
264932005-01-13  David Harrison  <harrison@apple.com>
26494
26495        Reviewed by Ken Kocienda.
26496        
26497        Better fix for 3905066.
26498        
26499        * khtml/editing/htmlediting.cpp:
26500        (khtml::InsertParagraphSeparatorCommand::doApply):
26501
265022005-01-10  Maciej Stachowiak  <mjs@apple.com>
26503
26504        Reviewed by Darin.
26505
26506	<rdar://problem/3758033> REGRESSION (Mail): Support attributes in marked text (International input)
26507        
26508        * khtml/rendering/render_text.cpp:
26509        (InlineTextBox::paint): Support painting custom underline markers for
26510	marked text in place of generic yellow.
26511        (InlineTextBox::paintMarkedTextUnderline): New method that handles this.
26512        * khtml/rendering/render_text.h:
26513        * kwq/KWQKHTMLPart.h: Declare new methods and structs.
26514        * kwq/KWQKHTMLPart.mm:
26515        (KWQKHTMLPart::clear): Clear marked test underlines.
26516        (KWQKHTMLPart::setMarkedTextRange): Takes attributes and ranges now.
26517        (convertAttributesToUnderlines): Converts NSAttributedString attributes
26518	to simplified and C++-friendly form.
26519        (KWQKHTMLPart::markedTextUsesUnderlines): New method.
26520        (KWQKHTMLPart::markedTextUnderlines): New method.
26521        * kwq/KWQPainter.mm:
26522        (QPainter::drawLineForText): Handle pen width.
26523        * kwq/WebCoreBridge.h:
26524        * kwq/WebCoreBridge.mm:
26525        (-[WebCoreBridge setMarkedTextDOMRange:customAttributes:ranges:]): Take attributes
26526	and ranges.
26527        * kwq/WebCoreTextRenderer.h:
26528
265292005-01-12  David Harrison  <harrison@apple.com>
26530
26531        Reviewed by Dave Hyatt.
26532
26533        <rdar://problem/3888973> AX: Parent AXWebArea of nested AXWebAreas is messed up
26534        
26535        * kwq/KWQAccObject.mm:
26536        (-[KWQAccObject addChildrenToArray:]):
26537        Use the widget's outer view.
26538
265392005-01-12  David Harrison  <harrison@apple.com>
26540
26541        Reviewed by Darin Adler.
26542
26543        <rdar://problem/3949908> Crash when asking for the kAXLengthForTextMarkerRangeParameterizedAttribute
26544        
26545        * khtml/xml/dom_nodeimpl.cpp:
26546        (NodeImpl::displayNode):
26547        Add quotes around text node content.
26548        (NodeBaseImpl::childNode):
26549        Add nil check to return nil rather than crash when child node not found.
26550        * kwq/KWQAccObject.mm:
26551        (-[KWQAccObject doAXStringForTextMarkerRange:]):
26552        Pass range compliant positions to TextIterator.
26553
265542005-01-12  David Hyatt  <hyatt@apple.com>
26555
26556	Fix for 3951203, CSS border style incorrectly clipped on inline elements.  Make sure the repaint rect set during
26557	line layout is smarter about including the overflow for both old states and new states.
26558	
26559        Reviewed by john
26560
26561        * khtml/rendering/bidi.cpp:
26562        (khtml::RenderBlock::layoutInlineChildren):
26563
265642005-01-12  David Hyatt  <hyatt@apple.com>
26565
26566	Fix for bug 3937608, versiontracker.com flashes and displays the right column below content.  Make sure to move
26567	tables/overflows that dont fit within a block only in strict mode.
26568
26569	Fix for bug 3931049, characters dont show up when typing.  Make sure to dirty the right lines when this specific
26570	case in editing is hit.
26571	
26572        Reviewed by darin (first one), kocienda (second one)
26573
26574        * khtml/rendering/render_block.cpp:
26575        (khtml::RenderBlock::getClearDelta):
26576        * khtml/rendering/render_flow.cpp:
26577        (RenderFlow::dirtyLinesFromChangedChild):
26578        * khtml/rendering/render_line.cpp:
26579        (khtml::InlineFlowBox::verticallyAlignBoxes):
26580
265812005-01-12  Ken Kocienda  <kocienda@apple.com>
26582
26583        Reviewed by John
26584
26585        Fix for this bug:
26586        
26587        <rdar://problem/3926142> REGRESSION (Mail): Deleting text decreases quote level
26588
26589        * khtml/editing/htmlediting.cpp:
26590        (khtml::DeleteSelectionCommand::initializePositionData): Change test that will prevent block
26591        merging. End-of-line test was just wrong. Call new start-of and end-of paragraph functions
26592        added to visible_position files.
26593        (khtml::DeleteSelectionCommand::moveNodesAfterNode): Add tests for BR elements, which makes
26594        tests to determine when to stop moving nodes more complete and correct. Also improved comments.
26595        * khtml/editing/visible_position.cpp:
26596        (khtml::isFirstVisiblePositionInParagraph): New function.
26597        (khtml::isLastVisiblePositionInParagraph): New function.
26598        * khtml/editing/visible_position.h: Update header accordingly.
26599        * layout-tests/editing/deleting/delete-block-merge-contents-002-expected.txt: New results, slightly different from former
26600        results but still correct.
26601        * layout-tests/editing/deleting/delete-block-merge-contents-007-expected.txt: Ditto.
26602        * layout-tests/editing/deleting/delete-block-merge-contents-018-expected.txt: Added.
26603        * layout-tests/editing/deleting/delete-block-merge-contents-018.html: Added.
26604        * layout-tests/editing/deleting/delete-block-merge-contents-019-expected.txt: Added.
26605        * layout-tests/editing/deleting/delete-block-merge-contents-019.html: Added.
26606        * layout-tests/editing/deleting/delete-block-merge-contents-020-expected.txt: Added.
26607        * layout-tests/editing/deleting/delete-block-merge-contents-020.html: Added.
26608        * layout-tests/editing/deleting/delete-block-merge-contents-021-expected.txt: Added.
26609        * layout-tests/editing/deleting/delete-block-merge-contents-021.html: Added.
26610        * layout-tests/editing/deleting/delete-line-014-expected.txt: These new results are actually better, and fix a bug.
26611
266122005-01-11  Richard Williamson   <rjw@apple.com>
26613
26614	Fixed 3922875.  Fall back to DOM object is EMBED element
26615	has no associated runtime object.
26616
26617        Reviewed by Chris.
26618
26619        * khtml/ecma/kjs_dom.cpp:
26620        (KJS::getRuntimeObject):
26621        * khtml/ecma/kjs_html.cpp:
26622        (KJS::HTMLDocument::tryGet):
26623        (KJS::HTMLElement::tryGet):
26624        (KJS::HTMLCollection::tryGet):
26625        (KJS::HTMLCollection::getNamedItems):
26626
266272005-01-11  David Hyatt  <hyatt@apple.com>
26628
26629        Fix for 3882299, missing content on gibson.com.  Change our handling of " and ' in certain states of the parser to match
26630	other browsers.
26631	
26632        Reviewed by Maciej
26633
26634        * khtml/html/htmltokenizer.cpp:
26635        (khtml::HTMLTokenizer::parseTag):
26636
266372005-01-11  Chris Blumenberg  <cblu@apple.com>
26638
26639	Fixed: <rdar://problem/3930733> Mail prints second page of email blank
26640
26641        Reviewed by dave.
26642
26643        * khtml/rendering/render_canvas.cpp:
26644        (RenderCanvas::paint): cache the print rect since the dirty rect can get changed during printing
26645        * khtml/rendering/render_flow.cpp:
26646        (RenderFlow::paintLines): removed null check since the print rect should never be null
26647        * khtml/rendering/render_list.cpp:
26648        (RenderListMarker::paint): ditto
26649        * kwq/KWQKHTMLPart.mm:
26650        (KWQKHTMLPart::adjustPageHeight): don't set the print rect here since this method is not called for the last page
26651
266522005-01-10  Ken Kocienda  <kocienda@apple.com>
26653
26654        Reviewed by Hyatt
26655
26656        Fix for this bug:
26657        
26658        <rdar://problem/3943648> extra line is inserted after pressing return within quoted text of reply
26659
26660        * khtml/editing/htmlediting.cpp:
26661        (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): This bug was the result of a 
26662        simple coding mistake. A local variable was erroneously redefined in a deeper scope, and so the 
26663        result calculated in that deeper scope was not available when tested.
26664
266652005-01-10  Ken Kocienda  <kocienda@apple.com>
26666
26667        Reviewed by John
26668
26669        Fix for this bug:
26670        
26671        <rdar://problem/3946852> Option-e goes to next line
26672
26673        * khtml/editing/htmlediting.cpp:
26674        (khtml::ReplaceSelectionCommand::doApply): Tweak case used to determine when merging content
26675        into the start line is done. We plan to change pretty substantially soon to better handle
26676        the problem described in <rdar://problem/3937352> Quote level not maintained when copied 
26677        and pasted within a Mail message. In the meantime, this change does no harm, and fixes the bug.
26678
266792005-01-10  Ken Kocienda  <kocienda@apple.com>
26680
26681        Reviewed by Darin
26682
26683        Fix for this bug:
26684        
26685        <rdar://problem/3907005> Applying block styles to a line of text can unexpectedly affect other lines
26686
26687        * khtml/editing/htmlediting.cpp:
26688        (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): New function which moves "paragraphs"
26689        to their own blocks if needed so that a block style can be applied.
26690        (khtml::CompositeEditCommand::isMailBlockquote): Moved this function to base class so it can be used more generally.
26691        (khtml::ApplyStyleCommand::applyBlockStyle): Pass a node instead of a block to addBlockStyleIfNeeded().
26692        (khtml::ApplyStyleCommand::addBlockStyleIfNeeded): Now accepts a node instead of a block for styling.
26693        This function also now calls moveParagraphContentsToNewBlockIfNecessary() to make sure that only the current
26694        paragraph is styled.
26695        (khtml::SetNodeAttributeCommand::doUnapply): Should not assert on undo if old value of attribute was null.
26696        Should remove attributue instead.
26697        * khtml/editing/htmlediting.h: Touch function declarations accordingly.
26698        * layout-tests/editing/style/create-block-for-style-001-expected.txt: Added.
26699        * layout-tests/editing/style/create-block-for-style-001.html: Added.
26700        * layout-tests/editing/style/create-block-for-style-002-expected.txt: Added.
26701        * layout-tests/editing/style/create-block-for-style-002.html: Added.
26702        * layout-tests/editing/style/create-block-for-style-003-expected.txt: Added.
26703        * layout-tests/editing/style/create-block-for-style-003.html: Added.
26704        * layout-tests/editing/style/create-block-for-style-004-expected.txt: Added.
26705        * layout-tests/editing/style/create-block-for-style-004.html: Added.
26706        * layout-tests/editing/style/create-block-for-style-005-expected.txt: Added.
26707        * layout-tests/editing/style/create-block-for-style-005.html: Added.
26708        * layout-tests/editing/style/create-block-for-style-006-expected.txt: Added.
26709        * layout-tests/editing/style/create-block-for-style-006.html: Added.
26710        * layout-tests/editing/style/create-block-for-style-007-expected.txt: Added.
26711        * layout-tests/editing/style/create-block-for-style-007.html: Added.
26712        * layout-tests/editing/style/create-block-for-style-008-expected.txt: Added.
26713        * layout-tests/editing/style/create-block-for-style-008.html: Added.
26714        * layout-tests/editing/style/create-block-for-style-009-expected.txt: Added.
26715        * layout-tests/editing/style/create-block-for-style-009.html: Added.
26716        * layout-tests/editing/style/create-block-for-style-010-expected.txt: Added.
26717        * layout-tests/editing/style/create-block-for-style-010.html: Added.
26718        * layout-tests/editing/style/create-block-for-style-011-expected.txt: Added.
26719        * layout-tests/editing/style/create-block-for-style-011.html: Added.
26720        * layout-tests/editing/style/create-block-for-style-012-expected.txt: Added.
26721        * layout-tests/editing/style/create-block-for-style-012.html: Added.
26722        * layout-tests/editing/style/create-block-for-style-013-expected.txt: Added.
26723        * layout-tests/editing/style/create-block-for-style-013.html: Added.
26724
26725        Unrelated updates to these expected results.
26726        * layout-tests/editing/inserting/insert-div-007-expected.txt
26727        * layout-tests/editing/pasteboard/paste-text-013-expected.txt
26728
267292005-01-10  Chris Blumenberg  <cblu@apple.com>
26730
26731	Fixed: <rdar://problem/3936844> Mail: Messages with rich text do not print
26732
26733        Reviewed by john.
26734
26735        * khtml/rendering/render_flow.cpp:
26736        (RenderFlow::paintLines): don't do pagination work if printRect is not set
26737        * khtml/rendering/render_list.cpp:
26738        (RenderListMarker::paint): ditto
26739
267402005-01-10  David Harrison  <harrison@apple.com>
26741
26742        Reviewed by Darin.
26743
26744        * kwq/KWQTextUtilities.mm:
26745        (currentTextBreakLocaleID):
26746        Return empty string (AKA root locale) if locale pref can not be canonicalized.
26747
267482005-01-10  John Sullivan  <sullivan@apple.com>
26749
26750        Fixed broken Panther build.
26751
26752        * kwq/KWQTextUtilities.mm:
26753        (currentTextBreakLocaleID):
26754        This recently-added function was using code copy/pasted from CarbonCore UnicodeUtilities.
26755        That code used a Tiger-only function, CFLocaleCreateCanonicalLanguageIdentifierFromString.
26756        To fix the build, I added a BUILDING_ON_PANTHER #ifdef that avoids the call to the Tiger
26757        function. However, the Tiger-only code was wrong; the string generated using 
26758        CFLocaleCreateCanonicalLanguageIdentifierFromString was not used at all, so I fixed that
26759        as well.
26760
267612005-01-09  David Harrison  <harrison@apple.com>
26762
26763        Reviewed by Ken Kocienda.
26764
26765        <rdar://problem/3786362> REGRESSION (Mail): pasted text loses one newline
26766        
26767        * khtml/editing/htmlediting.cpp:
26768        (khtml::ReplaceSelectionCommand::doApply):
26769        Tune check for need for insertParagraphSeparator when hasInterchangeNewline.
26770
267712005-01-09  Darin Adler  <darin@apple.com>
26772
26773        Reviewed by Harrison.
26774
26775        - fixed <rdar://problem/3939176> select() method does not work on <input type=search>
26776
26777        * khtml/html/html_formimpl.cpp: (DOM::HTMLInputElementImpl::select): Changed if statement
26778        to a switch statement. Added SEARCH to the set of types that treat the renderer as a
26779        RenderLineEdit.
26780
267812005-01-09  David Harrison  <harrison@apple.com>
26782
26783        Reviewed by Ken Kocienda.
26784
26785        <rdar://problem/3905066> REGRESSION (Mail): Hitting return key with caret in front of space causes space to become lost (resize fixes)
26786
26787        Problem was that InsertParagraphSeparatorCommand::doApply() was not collapsing
26788        whitespace to a single non-breaking space when splitting a text node.
26789
26790        * khtml/editing/htmlediting.cpp:
26791        (khtml::InsertParagraphSeparatorCommand::doApply):
26792
267932005-01-08  Kevin Decker  <kdecker@apple.com>
26794
26795        Reviewed by Ken.
26796
26797	Fixed: <rdar://problem/3924219> Calling setOuterHTML: on a DOMHTMLHtmlElement can crash a program
26798
26799        * khtml/html/html_elementimpl.cpp:
26800        (HTMLElementImpl::setOuterHTML): Added a nil check for fragments who don't have parents.
26801
268022005-01-07  Maciej Stachowiak  <mjs@apple.com>
26803
26804        Reviewed by Darin.
26805	
26806	<rdar://problem/3807144> REGRESSION (125-TOT): my bank's website doesn't work (Societe Generale, socgen.com)
26807
26808        * Khtml/khtml_part.cpp:
26809        (KHTMLPart::checkCompleted): If the document is NULL, assume this frame has
26810	not started loading yet so it could not possibly be finishing here...
26811        (KHTMLPart::stop): ...unless the part is explicitly stopped and there is still
26812	no document, in this case we must have hit an error or been loading a non-HTML
26813	frame.
26814        * khtml/khtml_part.h:
26815
268162005-01-08  David Harrison  <harrison@apple.com>
26817
26818        Reviewed by Maciej.
26819
26820        <rdar://problem/3943415> REGRESSION (Mail): double-clicking past word selects previous word instead of only blank space
26821        
26822        * khtml/editing/selection.cpp:
26823        (khtml::Selection::validate):
26824        Tune word selections left/right choice to use right if on empty last line.
26825
268262005-01-07  David Harrison  <harrison@apple.com>
26827
26828        Reviewed by Darin.
26829
26830        <rdar://problem/3942619> AX: Support sentence ax attributes
26831
26832        Needed to use the unicode utilities properly.  Twas lame before.
26833
26834        * khtml/editing/visible_units.cpp:
26835        (khtml::previousBoundary):
26836        (khtml::nextBoundary):
26837        (khtml::startOfWord):
26838        (khtml::endOfWord):
26839        (khtml::previousWordPosition):
26840        (khtml::nextWordPosition):
26841        (khtml::startOfSentence):
26842        (khtml::endOfSentence):
26843        (khtml::previousSentencePosition):
26844        (khtml::nextSentencePosition):
26845        * kwq/KWQAccObject.mm:
26846        (-[KWQAccObject accessibilityAttributeNames]):
26847        (-[KWQAccObject accessibilityAttributeValue:]):
26848        (-[KWQAccObject accessibilityParameterizedAttributeNames]):
26849        (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
26850        * kwq/KWQTextUtilities.mm:
26851        (currentTextBreakLocaleID):
26852        (KWQFindSentenceBoundary):
26853        (KWQFindNextSentenceFromIndex):
26854
268552005-01-07  Ken Kocienda  <kocienda@apple.com>
26856
26857        Reviewed by Kevin
26858
26859        Fix for these bugs:
26860        
26861        <rdar://problem/3939523> in some cases, text does not retain style info after pressing return twice
26862        <rdar://problem/3944492> after pressing return twice, text is bold when it shouldn't be
26863
26864        * khtml/editing/htmlediting.cpp:
26865        (khtml::InsertParagraphSeparatorCommand::setFullTypingStyleBeforeInsertion):
26866        Merge the typing style with the computed style for the current position. Fixes both bugs.
26867        * khtml/editing/htmlediting.h:
26868        * layout-tests/editing/inserting/insert-div-023-expected.txt: Added.
26869        * layout-tests/editing/inserting/insert-div-023.html: Added.
26870        * layout-tests/editing/inserting/insert-div-024-expected.txt: Added.
26871        * layout-tests/editing/inserting/insert-div-024.html: Added.
26872
268732005-01-07  David Hyatt  <hyatt@apple.com>
26874
26875	Fix for 3941364, make sure tables reset overflowWidth/Height when they lay out again.  Fixes the odd scrolling
26876	behavior on worldofwarcraft.com.
26877	
26878        Reviewed by kevin
26879
26880        * khtml/rendering/render_table.cpp:
26881        (RenderTable::layout):
26882
268832005-01-06  David Hyatt  <hyatt@apple.com>
26884
26885	Fix for 3932418 and 3920998, assertion failures caused by stray inline content inside tables.  Bulletproof the hit testing to
26886	ignore inline flows in this case.
26887	
26888        Reviewed by kevin
26889
26890        * khtml/rendering/render_block.cpp:
26891        (khtml::RenderBlock::nodeAtPoint):
26892
268932005-01-07  Ken Kocienda  <kocienda@apple.com>
26894
26895        Reviewed by Hyatt
26896
26897        Fix for this bug:
26898        
26899        <rdar://problem/3848412> for forwarded message, tabbing to message view scrolls to bottom of view
26900
26901        * kwq/KWQKHTMLPart.mm:
26902        (KWQKHTMLPart::nextKeyViewInFrame): Don't scroll the focus node to visible if it is not
26903        in the document, or if it is not a descendent of the document element. In the case of the bug,
26904        since the selection has not yet been set up, the focus node passed here is the HTML element, and
26905        that does not yield a rect that is useful to us here. So now, in the case the bug mentions, we do nothing.
26906
269072005-01-06  Kevin Decker  <kdecker@apple.com>
26908
26909        Reviewed by mjs.
26910
26911	Fixed: <rdar://problem/3932215> REGRESSION (125-177): iFrame example at developer.apple.com fails in Safari
26912
26913        * khtml/khtml_part.cpp:
26914        (KHTMLPart::processObjectRequest): m_bComplete was never true for frames generated by Javascript due to our synchronous loading and as a result, scheduled redirects wouldn't fire in KHTMLPart::scheduleLocationChange().  By virtue of being an empty document, a document is complete.  In this special case it's safe at this point to call checkCompleted() which sets m_bComplete true. 
26915
26916=== Safari-178 ===
26917
269182005-01-06  David Harrison  <harrison@apple.com>
26919
26920        Reviewed by Chris.
26921
26922        (addendum to previous checkin for this bug) 
26923        <rdar://problem/3776056> AX: Editable HTML should not be viewed as AXStaticText
26924
26925        Fix line navigation.  Add AXUIElementForTextMarker.
26926
26927        * kwq/KWQAccObject.mm:
26928        (-[KWQAccObject accessibilityParameterizedAttributeNames]):
26929        (-[KWQAccObject doAXUIElementForTextMarker:]):
26930        (-[KWQAccObject doAXLineForTextMarker:]):
26931        (-[KWQAccObject doAXTextMarkerRangeForLine:]):
26932        (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
26933        (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
26934        (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]):
26935        (-[KWQAccObject accessibilityAttributeValue:forParameter:]):
26936
269372005-01-06  Darin Adler  <darin@apple.com>
26938
26939        Reviewed by Ken.
26940
26941        - re-fixed <rdar://problem/3760910> Request to include support for custom tag names in HTML (they already work in XML)
26942
26943        (turns out the PLT regression was a false alarm)
26944
26945        * khtml/html/htmlparser.h: Change forbidden tag array to be allocated in the object rather than on
26946        the heap. Also use ID_LAST_TAG for the array size; the old code used ID_CLOSE_TAG which is now a
26947        much larger number.
26948        * khtml/html/htmlparser.cpp:
26949        (KHTMLParser::KHTMLParser): Remove code that creates the forbidden tag array on the heap; makes more
26950        sense to just have the array be a member so we don't have to use new and delete on it. Also needed
26951        to eliminate code that used ID_CLOSE_TAG for an array size.
26952        (KHTMLParser::~KHTMLParser): Remove code that deletes the forbidden tag array. Also changed the code
26953        that manages isindex to use deref instead of delete.
26954        (KHTMLParser::reset): Use safer sizeof for clearing the forbidden tag array. Old code had the
26955        mistake of using ID_CLOSE_TAG for the array size too.
26956        (KHTMLParser::parseToken): Removed code that checks for bogus tags; it's not clear why it was ever
26957        there and it would prevent custom tags from working. Added range check before using the forbidden
26958        tag array with the token ID since custom tags will use index values past the end of the array.
26959        (KHTMLParser::getElement): Removed most of the code that makes an element by ID; now the work is done
26960        inside the DocumentImpl createHTMLElement. Any code that needs to be different than a dynamic
26961        createElement call is still here. Last time I left out a few form element types from this switch;
26962        fixed now.
26963        * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseTag): Call the tagId function in the
26964        document if getTagID fails; this creates a unique per-document ID.
26965
26966        * khtml/misc/htmltags.c: Regenerated.
26967        * khtml/misc/htmltags.h: Regenerated.
26968
26969        * khtml/misc/maketags: Changed the generated constants to use "const unsigned short" instead of "#define".
26970        Changed ID_CLOSE_TAG to be a fixed value of 32000 rather than being just past the IDs of the HTML tags.
26971        Also rewrote getTagName to work with the new scheme.
26972
269732005-01-06  David Harrison  <harrison@apple.com>
26974        
26975        Fixed Panther build.  Also, do not advertize sentence support since it is incomplete.
26976        
26977        * kwq/KWQAccObject.mm:
26978        (-[KWQAccObject visiblePositionForEndOfTextMarkerRange:]):
26979        (-[KWQAccObject accessibilityParameterizedAttributeNames]):
26980        (-[KWQAccObject accessibilityIsAttributeSettable:]):
26981
269822005-01-06  David Harrison  <harrison@apple.com>
26983
26984        Reviewed by Dave Hyatt.
26985
26986        <rdar://problem/3776056> AX: Editable HTML should not be viewed as AXStaticText
26987        <rdar://problem/3588548> AX: tabbing does not work correctly with the screen reader and a focused link; need AXFocusedUIElement to work
26988        
26989        Many more AX attributes supported.  Numerous fixes to previous AX work.
26990        
26991        * khtml/editing/visible_units.cpp:
26992        (khtml::startSentenceBoundary):
26993        (khtml::startOfSentence):
26994        (khtml::endSentenceBoundary):
26995        (khtml::endOfSentence):
26996        (khtml::previousSentencePositionBoundary):
26997        (khtml::previousSentencePosition):
26998        (khtml::nextSentencePositionBoundary):
26999        (khtml::nextSentencePosition):
27000        * khtml/editing/visible_units.h:
27001        * khtml/khtmlview.cpp:
27002        (KHTMLView::layout):
27003        * khtml/misc/helper.cpp:
27004        (khtml::findSentenceBoundary):
27005        (khtml::nextSentenceFromIndex):
27006        * khtml/misc/helper.h:
27007        * khtml/misc/htmltags.c:
27008        (hash_tag):
27009        (findTag):
27010        * khtml/rendering/render_container.cpp:
27011        (RenderContainer::removeChildNode):
27012        (RenderContainer::appendChildNode):
27013        (RenderContainer::insertChildNode):
27014        * khtml/rendering/render_object.cpp:
27015        (RenderObject::remove):
27016        * khtml/xml/dom_docimpl.cpp:
27017        (DocumentImpl::getAccObjectCache):
27018        (DocumentImpl::updateSelection):
27019        (DocumentImpl::close):
27020        (DocumentImpl::setFocusNode):
27021        (DocumentImpl::parentDocument):
27022        (DocumentImpl::topDocument):
27023        * khtml/xml/dom_docimpl.h:
27024        * kwq/KWQAccObject.mm:
27025        (-[KWQAccObject accessibilityShouldUseUniqueId]):
27026        (-[KWQAccObject detach]):
27027        (-[KWQAccObject anchorElement]):
27028        (-[KWQAccObject firstChild]):
27029        (-[KWQAccObject lastChild]):
27030        (-[KWQAccObject previousSibling]):
27031        (-[KWQAccObject nextSibling]):
27032        (-[KWQAccObject parentObject]):
27033        (-[KWQAccObject value]):
27034        (-[KWQAccObject accessibilityAttributeNames]):
27035        (-[KWQAccObject accessibilityPerformAction:]):
27036        (-[KWQAccObject textMarkerForVisiblePosition:]):
27037        (-[KWQAccObject visiblePositionForTextMarker:]):
27038        (-[KWQAccObject textMarkerRangeFromVisiblePositions:andEndPos:]):
27039        (-[KWQAccObject topDocument]):
27040        (-[KWQAccObject topRenderer]):
27041        (-[KWQAccObject topView]):
27042        (-[KWQAccObject accessibilityAttributeValue:]):
27043        (-[KWQAccObject accessibilityParameterizedAttributeNames]):
27044        (-[KWQAccObject doAXLineForTextMarker:]):
27045        (-[KWQAccObject doAXTextMarkerRangeForLine:]):
27046        (-[KWQAccObject doAXStringForTextMarkerRange:]):
27047        (-[KWQAccObject doAXTextMarkerForPosition:]):
27048        (-[KWQAccObject doAXBoundsForTextMarkerRange:]):
27049        (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
27050        (-[KWQAccObject doAXTextMarkerRangeForUnorderedTextMarkers:]):
27051        (-[KWQAccObject doAXNextTextMarkerForTextMarker:]):
27052        (-[KWQAccObject doAXPreviousTextMarkerForTextMarker:]):
27053        (-[KWQAccObject doAXLeftWordTextMarkerRangeForTextMarker:]):
27054        (-[KWQAccObject doAXRightWordTextMarkerRangeForTextMarker:]):
27055        (-[KWQAccObject doAXLeftLineTextMarkerRangeForTextMarker:]):
27056        (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
27057        (-[KWQAccObject doAXSentenceTextMarkerRangeForTextMarker:]):
27058        (-[KWQAccObject doAXParagraphTextMarkerRangeForTextMarker:]):
27059        (-[KWQAccObject doAXNextWordEndTextMarkerForTextMarker:]):
27060        (-[KWQAccObject doAXPreviousWordStartTextMarkerForTextMarker:]):
27061        (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
27062        (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]):
27063        (-[KWQAccObject doAXNextSentenceEndTextMarkerForTextMarker:]):
27064        (-[KWQAccObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
27065        (-[KWQAccObject doAXNextParagraphEndTextMarkerForTextMarker:]):
27066        (-[KWQAccObject doAXPreviousParagraphStartTextMarkerForTextMarker:]):
27067        (-[KWQAccObject doAXLengthForTextMarkerRange:]):
27068        (-[KWQAccObject accessibilityAttributeValue:forParameter:]):
27069        (-[KWQAccObject accessibilityHitTest:]):
27070        (-[KWQAccObject accessibilityFocusedUIElement]):
27071        (-[KWQAccObject accessibilityIsAttributeSettable:]):
27072        (-[KWQAccObject doSetAXSelectedTextMarkerRange:]):
27073        (-[KWQAccObject setAccObjectID:]):
27074        (-[KWQAccObject removeAccObjectID]):
27075        * kwq/KWQAccObjectCache.h:
27076        * kwq/KWQAccObjectCache.mm:
27077        (KWQAccObjectCache::setAccObject):
27078        (KWQAccObjectCache::removeAccObject):
27079        (KWQAccObjectCache::visiblePositionForTextMarker):
27080        (KWQAccObjectCache::postNotificationToTopWebArea):
27081        (KWQAccObjectCache::postNotification):
27082        (KWQAccObjectCache::handleFocusedUIElementChanged):
27083        * kwq/KWQKHTMLPart.mm:
27084        (KWQKHTMLPart::respondToChangedContents):
27085        * kwq/KWQTextUtilities.h:
27086        * kwq/KWQTextUtilities.mm:
27087        (KWQFindNextWordFromIndex):
27088        (KWQFindSentenceBoundary):
27089        (KWQFindNextSentenceFromIndex):
27090        * kwq/WebCoreBridge.mm:
27091        (-[WebCoreBridge accessibilityTree]):
27092
270932005-01-05  Darin Adler  <darin@apple.com>
27094
27095        Reviewed by Ken.
27096
27097        - re-landing a subset of my custom tag change that does not fix the bug, but also does
27098          not introduce a performance regression
27099
27100        * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::checkOneSelector): Changed
27101        some code that used ID_LAST_TAG in a slightly wrong, but harmless, way.
27102
27103        * khtml/editing/htmlediting.cpp:
27104        (khtml::debugPosition): Use nodeName rather than getTagName, since the latter works for
27105        per-document tags and is just better all around for things like the document.
27106        (khtml::debugNode): Ditto.
27107        * khtml/editing/selection.cpp: (khtml::Selection::debugPosition): Ditto.
27108        * khtml/editing/visible_position.cpp: (khtml::VisiblePosition::debugPosition): Ditto.
27109        * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::displayNode): Ditto.
27110        * khtml/xml/dom_position.cpp: (DOM::Position::debugPosition): Ditto.
27111
27112        * khtml/html/dtd.cpp: (DOM::checkChild): Use ID_LAST_TAG rather than 1000 for the check that allows
27113        non-HTML elements to be nested as desired.
27114
27115        * khtml/misc/htmlhashes.h: Changed return types to unsigned short.
27116        * khtml/misc/htmlhashes.cpp:
27117        (khtml::getTagID): Changed return type to unsigned short.
27118        (khtml::getAttrID): Ditto.
27119
27120        * khtml/xml/dom_docimpl.h: Added overload of createHTMLElement, made it non-virtual since it's not overriden.
27121        * khtml/xml/dom_docimpl.cpp:
27122        (DocumentImpl::createHTMLElement): Refactored into two separate functions, one that takes the tag ID.
27123        Also updated for a few tags that the parser handled but this did not.
27124
27125        * kwq/KWQRenderTreeDebug.cpp:
27126        (getTagName): Added. Works for custom nodes, because it calls nodeName rather than using getTagName on
27127        the tag ID directly, which only works for standard nodes.
27128        (operator<<): Update to call getTagName.
27129        (nodePositionRelativeToRoot): Ditto.
27130        (writeSelection): Ditto.
27131
271322005-01-05  Ken Kocienda  <kocienda@apple.com>
27133
27134        Reviewed by Hyatt
27135
27136        Fix for this bug:
27137        
27138        <rdar://problem/3941203> REGRESSION (Mail): Paste inserts content in wrong place
27139
27140        * khtml/editing/htmlediting.cpp:
27141        (khtml::ReplaceSelectionCommand::doApply): Some cleanup and refinement of the concepts used to make
27142        this operation work correctly, particularly in the logic to figure out whether to merge content, and
27143        also performing merges.
27144        * khtml/editing/visible_position.cpp:
27145        (khtml::isFirstVisiblePositionInBlock): Simplification of test used to make this determination.
27146        * khtml/editing/visible_units.cpp:
27147        (khtml::isStartOfParagraph): New helper, used in khtml::ReplaceSelectionCommand::doApply().
27148        (khtml::isEndOfParagraph): Ditto.
27149        * khtml/editing/visible_units.h: Declare new functions.
27150
271512005-01-04  Ken Kocienda  <kocienda@apple.com>
27152
27153        Reviewed by John
27154
27155        Fix for this bug:
27156        
27157        <rdar://problem/3926522> Pressing return in a quoted block inserts too many newlines
27158
27159        * khtml/editing/htmlediting.cpp:
27160        (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Call to insertBlockPlaceholderIfNeeded()
27161        for the block we are adding was being done at the wrong time, which led to the placeholder remaining
27162        in the document when it was not needed. This resulted in the extra space reported in the bug.
27163
271642005-01-04  Kevin Decker  <kdecker@apple.com>
27165
27166        Reviewed by Hyatt.
27167
27168	Fixed: <rdar://problem/3936879> nil-deref, crash in InlineFlowBox::nodeAtPoint closing DHTML menus at hrweb.apple.com
27169
27170        * khtml/rendering/render_block.cpp:
27171        (khtml::RenderBlock::fillInlineSelectionGaps): Added a nil check. If there is no selection, don't try to get the selection's containing block. If we do, we'll crash. 
27172
271732005-01-04  David Hyatt  <hyatt@apple.com>
27174
27175	Fix for 3937203, force an update of the dashboard regions when scrollbars are added/removed.
27176	
27177        Reviewed by kevin
27178
27179        * khtml/rendering/render_layer.cpp:
27180        (RenderLayer::updateScrollInfoAfterLayout):
27181
271822005-01-04  Ken Kocienda  <kocienda@apple.com>
27183
27184        Reviewed by John
27185
27186        Fix for these two bugs:
27187        
27188        <rdar://problem/3938935> REGRESSION (Mail): Pasting into an empty document mangles content
27189        <rdar://problem/3939148> REGRESSION (Mail): Pasting mistakenly reverses lines
27190
27191        * khtml/editing/htmlediting.cpp:
27192        (khtml::ReplaceSelectionCommand::doApply): For 3938935, add one more case to handle an empty document; merge
27193        neither start nor end. For 3939148, improve the code which adjusts the insertion point during 
27194        the process of pasting. It formerly handled only one of the possible cases.
27195        * layout-tests/editing/pasteboard/paste-text-015-expected.txt: Added.
27196        * layout-tests/editing/pasteboard/paste-text-015.html: Added.
27197
271982005-01-04  David Hyatt  <hyatt@apple.com>
27199
27200	Fix for 3936571, placeholder attribute should work for normal inputs for Dashboard.
27201	
27202        Reviewed by john
27203
27204        * khtml/rendering/render_form.cpp:
27205        (RenderLineEdit::updateFromElement):
27206        * kwq/KWQLineEdit.mm:
27207        (QLineEdit::setPlaceholderString):
27208
272092005-01-04  David Hyatt  <hyatt@apple.com>
27210
27211	Fix for 3830936, hang on changeforamerica.com.  Make sure to ignore the style not yet available option when
27212	returning pseudo-styles.
27213	
27214        Reviewed by john
27215
27216        * khtml/css/cssstyleselector.cpp:
27217        (khtml::CSSStyleSelector::matchRulesForList):
27218        (khtml::CSSStyleSelector::pseudoStyleForElement):
27219        * khtml/rendering/render_style.cpp:
27220        (RenderStyle::addPseudoStyle):
27221
272222005-01-04  Darin Adler  <darin@apple.com>
27223
27224        - rolled out my custom tag name change again -- it caused a 1 ms PLT regression
27225
27226        * khtml/css/cssstyleselector.cpp:
27227        * khtml/editing/htmlediting.cpp:
27228        * khtml/editing/selection.cpp:
27229        * khtml/editing/visible_position.cpp:
27230        * khtml/html/dtd.cpp:
27231        * khtml/html/htmlparser.cpp:
27232        * khtml/html/htmlparser.h:
27233        * khtml/html/htmltokenizer.cpp:
27234        * khtml/misc/htmlhashes.cpp:
27235        * khtml/misc/htmlhashes.h:
27236        * khtml/misc/htmltags.c:
27237        * khtml/misc/htmltags.h:
27238        * khtml/misc/maketags:
27239        * khtml/xml/dom_docimpl.cpp:
27240        * khtml/xml/dom_docimpl.h:
27241        * khtml/xml/dom_nodeimpl.cpp:
27242        * khtml/xml/dom_position.cpp:
27243        * kwq/KWQRenderTreeDebug.cpp:
27244
272452005-01-04  Ken Kocienda  <kocienda@apple.com>
27246
27247        Reviewed by John
27248
27249        Fix for this bug:
27250        
27251        <rdar://problem/3927554> Style info applied to remainder of document after a newline is entered
27252
27253        * khtml/editing/htmlediting.cpp:
27254        (khtml::InsertParagraphSeparatorCommand::doApply): Clean up and simplification in code that inserts
27255        a paragraph separator. The bug was all about applying styles to the new paragraph that did not need
27256        to be applied. Now the code will detect when at the end of a style run and will not move and apply 
27257        that ending style to the new paragraph, though it will place that style into the typing style. This
27258        seems to match NSText behavior.
27259        * layout-tests/editing/inserting/insert-div-021-expected.txt: This test result exhibited the bug fixed 
27260        here. The only reason it was not noticed is that the erroneously copied inline was a span, and so did
27261        not have any visible effect on the document.
27262        * layout-tests/editing/inserting/insert-div-022-expected.txt: Added.
27263        * layout-tests/editing/inserting/insert-div-022.html: Added.
27264
272652005-01-04  David Hyatt  <hyatt@apple.com>
27266
27267	Fix for 3904562, make sure to clear the outline dictionary when drawing so that random focus rings dont get drawn
27268	all over the place.
27269	
27270        Reviewed by john
27271
27272        * khtml/rendering/render_flow.cpp:
27273        (RenderFlow::paintLines):
27274
272752005-01-03  David Hyatt  <hyatt@apple.com>
27276
27277	Fix for float painting regressions 3932524, 3931664, and 3933068.  Make the noPaint flag setting more
27278	robust and make it work regardless of which objects get a layout or not.
27279	
27280        Reviewed by mjs
27281
27282        * khtml/rendering/render_block.cpp:
27283        (khtml::RenderBlock::insertFloatingObject):
27284        (khtml::RenderBlock::addOverhangingFloats):
27285        (khtml::RenderBlock::addIntrudingFloats):
27286        * khtml/rendering/render_block.h:
27287        (khtml::RenderBlock::FloatingObject::FloatingObject):
27288
272892005-01-03  Maciej Stachowiak  <mjs@apple.com>
27290
27291        Reviewed by Kevin.
27292
27293	<rdar://problem/3935390> Tiger 8A341: nil deref crash in DOM::NodeImpl::traverseNextNode
27294        
27295	* khtml/html/html_miscimpl.cpp:
27296        (HTMLCollectionImpl::traverseNextItem): Assert that the starting point is not nil,
27297	it should not ever be (now).
27298        (HTMLCollectionImpl::item): When traversing items stop when we hit
27299	nil, meaning the end to avoid triggering above assert (formerly crash).
27300
273012005-01-03  Maciej Stachowiak  <mjs@apple.com>
27302
27303        Reviewed by John and Kevin.
27304
27305	<rdar://problem/3870317> REGRESSION(125.9-125.11) broken behavior at test.profoundlearning.com - used to
27306        
27307	* khtml/ecma/kjs_window.cpp:
27308        (Window::get): Look up frame names before buitin window properties
27309	to match other browsers. This regressed because we added a builtin
27310	"toolbar" property but this site had a frame with that name.
27311
273122004-12-21  Maciej Stachowiak  <mjs@apple.com>
27313
27314        Reviewed by Darin.
27315
27316	<rdar://problem/3888931> frame naming allows malicious site to bring up a window when you click on a link in another
27317        
27318	Added opener bridge method to help WebKit implement security check
27319	for named frame visibility.
27320	
27321	* khtml/khtml_part.h:
27322        * kwq/WebCoreBridge.h:
27323        * kwq/WebCoreBridge.mm:
27324        (-[WebCoreBridge opener]):
27325
273262005-01-03  Ken Kocienda  <kocienda@apple.com>
27327
27328        Reviewed by John
27329
27330        Fix for this bug:
27331        
27332        <rdar://problem/3933926> Tiger8A341: Mail crashes while forwarding embedded HTML message in -[WebCoreBridge ensureSelectionVisible]
27333
27334        * kwq/WebCoreBridge.mm:
27335        (-[WebCoreBridge ensureSelectionVisible]): Put in some null checks to prevent crash experienced in bug.
27336
273372005-01-03  David Hyatt  <hyatt@apple.com>
27338
27339	Fix for 3936881, make sure positioned objects prooperly update y-position.
27340	
27341        Reviewed by john
27342
27343        * khtml/rendering/render_block.cpp:
27344        (khtml::RenderBlock::layoutPositionedObjects):
27345
273462005-01-03  Ken Kocienda  <kocienda@apple.com>
27347
27348        Reviewed by Harrison
27349        
27350        Fix for this bug:
27351        
27352        <rdar://problem/3928250> REGRESSION (Mail): Typing style lost after hitting return key
27353
27354        * khtml/editing/htmlediting.cpp:
27355        (khtml::InsertLineBreakCommand::preservesTypingStyle): Now implemented, returning yes for this command.
27356        (khtml::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): Initialize new typing style member variable.
27357        (khtml::InsertParagraphSeparatorCommand::~InsertParagraphSeparatorCommand): Deref new typing style member variable.
27358        (khtml::InsertParagraphSeparatorCommand::preservesTypingStyle): Now implemented, returning yes for this command.
27359        (khtml::InsertParagraphSeparatorCommand::setFullTypingStyleBeforeInsertion): New function to set the typing style
27360        (khtml::InsertParagraphSeparatorCommand::calculateAndSetTypingStyleAfterInsertion): Function called after the <p>
27361        insertion is done. This function diffs the style created in setFullTypingStyleBeforeInsertion() with the style
27362        of the new <p> and only sets those styles needed to preserve the style in effect before the insertion.
27363        (khtml::InsertParagraphSeparatorCommand::doApply): Call new functions.
27364        (khtml::TypingCommand::preservesTypingStyle): Now yes for inserting line breaks and paragraphs.
27365         * khtml/editing/htmlediting.h: Declare new functions.
27366
273672004-12-25  Kevin Decker  <kdecker@apple.com>
27368
27369        Reviewed by Hyatt.
27370
27371	Fixed: <rdar://problem/3505072> hang in KHTMLParser::parseToken (consulting.soroos.net)
27372	
27373        * khtml/html/dtd.cpp: <label> needed a much higher priority such that it will close block elements.  Malformed HTML (ugh) is the only reason why we need to do this. 
27374
273752004-12-23  Darin Adler  <darin@apple.com>
27376
27377        Reviewed by Ken.
27378
27379        - re-fixed <rdar://problem/3760910> Request to include support for custom tag names in HTML (they already work in XML)
27380
27381        * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::checkOneSelector): Changed
27382        some code that used ID_LAST_TAG in a slightly wrong, but harmless, way.
27383
27384        * khtml/editing/htmlediting.cpp:
27385        (khtml::debugPosition): Use nodeName rather than getTagName, since the latter works for
27386        per-document tags and is just better all around for things like the document.
27387        (khtml::debugNode): Ditto.
27388        * khtml/editing/selection.cpp: (khtml::Selection::debugPosition): Ditto.
27389        * khtml/editing/visible_position.cpp: (khtml::VisiblePosition::debugPosition): Ditto.
27390        * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::displayNode): Ditto.
27391        * khtml/xml/dom_position.cpp: (DOM::Position::debugPosition): Ditto.
27392
27393        * khtml/html/dtd.cpp: (DOM::checkChild): Use ID_LAST_TAG rather than 1000 for the check that allows
27394        non-HTML elements to be nested as desired.
27395
27396        * khtml/html/htmlparser.h: Change forbidden tag array to be allocated in the object rather than on
27397        the heap. Also use ID_LAST_TAG for the array size; the old code used ID_CLOSE_TAG which is now a
27398        much larger number.
27399        * khtml/html/htmlparser.cpp:
27400        (KHTMLParser::KHTMLParser): Remove code that creates the forbidden tag array on the heap; makes more
27401        sense to just have the array be a member so we don't have to use new and delete on it. Also needed
27402        to eliminate code that used ID_CLOSE_TAG for an array size.
27403        (KHTMLParser::~KHTMLParser): Remove code that deletes the forbidden tag array. Also changed the code
27404        that manages isindex to use deref instead of delete.
27405        (KHTMLParser::reset): Use safer sizeof for clearing the forbidden tag array. Old code had the
27406        mistake of using ID_CLOSE_TAG for the array size too.
27407        (KHTMLParser::parseToken): Removed code that checks for bogus tags; it's not clear why it was ever
27408        there and it would prevent custom tags from working. Added range check before using the forbidden
27409        tag array with the token ID since custom tags will use index values past the end of the array.
27410        (KHTMLParser::getElement): Removed most of the code that makes an element by ID; now the work is done
27411        inside the DocumentImpl createHTMLElement. Any code that needs to be different than a dynamic
27412        createElement call is still here. Last time I left out a few form element types from this switch;
27413        fixed now.
27414        * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseTag): Call the tagId function in the
27415        document if getTagID fails; this creates a unique per-document ID.
27416
27417        * khtml/misc/htmlhashes.h: Changed return types to unsigned short.
27418        * khtml/misc/htmlhashes.cpp:
27419        (khtml::getTagID): Changed return type to unsigned short.
27420        (khtml::getAttrID): Ditto.
27421
27422        * khtml/misc/htmltags.c: Regenerated.
27423        * khtml/misc/htmltags.h: Regenerated.
27424
27425        * khtml/misc/maketags: Changed the generated constants to use "const unsigned short" instead of "#define".
27426        Changed ID_CLOSE_TAG to be a fixed value of 32000 rather than being just past the IDs of the HTML tags.
27427        Also rewrote getTagName to work with the new scheme.
27428
27429        * khtml/xml/dom_docimpl.h: Added overload of createHTMLElement, made it non-virtual since it's not overriden.
27430        * khtml/xml/dom_docimpl.cpp:
27431        (DocumentImpl::createHTMLElement): Refactored into two separate functions, one that takes the tag ID.
27432        Also updated for a few tags that the parser handled but this did not.
27433
27434        * kwq/KWQRenderTreeDebug.cpp:
27435        (getTagName): Added. Works for custom nodes, because it calls nodeName rather than using getTagName on
27436        the tag ID directly, which only works for standard nodes.
27437        (operator<<): Update to call getTagName.
27438        (nodePositionRelativeToRoot): Ditto.
27439        (writeSelection): Ditto.
27440
27441=== Safari-177 ===
27442
274432004-12-22  Darin Adler  <darin@apple.com>
27444
27445        - rolled out my custom tag name change -- it broke amazon.com
27446
27447        * khtml/css/cssstyleselector.cpp:
27448        * khtml/editing/htmlediting.cpp:
27449        * khtml/editing/selection.cpp:
27450        * khtml/editing/visible_position.cpp:
27451        * khtml/html/dtd.cpp:
27452        * khtml/html/htmlparser.cpp:
27453        * khtml/html/htmlparser.h:
27454        * khtml/html/htmltokenizer.cpp:
27455        * khtml/misc/htmlhashes.cpp:
27456        * khtml/misc/htmlhashes.h:
27457        * khtml/misc/htmltags.c:
27458        * khtml/misc/htmltags.h:
27459        * khtml/misc/maketags:
27460        * khtml/xml/dom_docimpl.cpp:
27461        * khtml/xml/dom_docimpl.h:
27462        * khtml/xml/dom_nodeimpl.cpp:
27463        * khtml/xml/dom_position.cpp:
27464        * kwq/KWQRenderTreeDebug.cpp:
27465
274662004-12-22  David Harrison  <harrison@apple.com>
27467
27468        Reviewed by Darin Adler.
27469
27470        * khtml/editing/selection.cpp:
27471        (khtml::Selection::validate):
27472        The selecting/deselecting bad behavior is because the Selection code that expands by words
27473        had an inaccurate test for being at the end of the document (where double-clicking needs
27474        to select the last word).  Fixed that check.
27475
274762004-12-22  Adele Amchan  <adele@apple.com>
27477
27478        Reviewed by Chris.
27479
27480        Fix for <rdar://problem/3911650> tabs at safeway.com stop working after a while
27481
27482        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::scrollToAnchor): removed call to cancelRedirection 
27483          so that we match Firefox and WinIE behavior.
27484
274852004-12-22  Darin Adler  <darin@apple.com>
27486
27487        Reviewed by Ken.
27488
27489        - fixed <rdar://problem/3760910> Request to include support for custom tag names in HTML (they already work in XML)
27490
27491        * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::checkOneSelector): Changed
27492        some code that used ID_LAST_TAG in a slightly wrong, but harmless, way.
27493
27494        * khtml/editing/htmlediting.cpp:
27495        (khtml::debugPosition): Use nodeName rather than getTagName, since the latter works for
27496        per-document tags and is just better all around for things like the document.
27497        (khtml::debugNode): Ditto.
27498        * khtml/editing/selection.cpp: (khtml::Selection::debugPosition): Ditto.
27499        * khtml/editing/visible_position.cpp: (khtml::VisiblePosition::debugPosition): Ditto.
27500        * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::displayNode): Ditto.
27501        * khtml/xml/dom_position.cpp: (DOM::Position::debugPosition): Ditto.
27502
27503        * khtml/html/dtd.cpp: (DOM::checkChild): Use ID_LAST_TAG rather than 1000 for the check that allows
27504        non-HTML elements to be nested as desired.
27505
27506        * khtml/html/htmlparser.h: Change forbidden tag array to be allocated in the object rather than on
27507        the heap. Also use ID_LAST_TAG for the array size; the old code used ID_CLOSE_TAG which is now a
27508        much larger number.
27509        * khtml/html/htmlparser.cpp:
27510        (KHTMLParser::KHTMLParser): Remove code that creates the forbidden tag array on the heap; makes more
27511        sense to just have the array be a member so we don't have to use new and delete on it. Also needed
27512        to eliminate code that used ID_CLOSE_TAG for an array size.
27513        (KHTMLParser::~KHTMLParser): Remove code that deletes the forbidden tag array. Also changed the code
27514        that manages isindex to use deref instead of delete.
27515        (KHTMLParser::reset): Use safer sizeof for clearing the forbidden tag array. Old code had the
27516        mistake of using ID_CLOSE_TAG for the array size too.
27517        (KHTMLParser::parseToken): Removed code that checks for bogus tags; it's not clear why it was ever
27518        there and it would prevent custom tags from working. Added range check before using the forbidden
27519        tag array with the token ID since custom tags will use index values past the end of the array.
27520        (KHTMLParser::getElement): Removed most of the code that makes an element by ID; now the work is done
27521        inside the DocumentImpl createHTMLElement. Any code that needs to be different than a dynamic
27522        createElement call is still here.
27523        * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseTag): Call the tagId function in the
27524        document if getTagID fails; this creates a unique per-document ID.
27525
27526        * khtml/misc/htmlhashes.h: Changed return types to unsigned short.
27527        * khtml/misc/htmlhashes.cpp:
27528        (khtml::getTagID): Changed return type to unsigned short.
27529        (khtml::getAttrID): Ditto.
27530
27531        * khtml/misc/htmltags.c: Regenerated.
27532        * khtml/misc/htmltags.h: Regenerated.
27533
27534        * khtml/misc/maketags: Changed the generated constants to use "const unsigned short" instead of "#define".
27535        Changed ID_CLOSE_TAG to be a fixed value of 32000 rather than being just past the IDs of the HTML tags.
27536        Also rewrote getTagName to work with the new scheme.
27537
27538        * khtml/xml/dom_docimpl.h: Added overload of createHTMLElement, made it non-virtual since it's not overriden.
27539        * khtml/xml/dom_docimpl.cpp:
27540        (DocumentImpl::createHTMLElement): Refactored into two separate functions, one that takes the tag ID.
27541        Also updated for a few tags that the parser handled but this did not.
27542
27543        * kwq/KWQRenderTreeDebug.cpp:
27544        (getTagName): Added. Works for custom nodes, because it calls nodeName rather than using getTagName on
27545        the tag ID directly, which only works for standard nodes.
27546        (operator<<): Update to call getTagName.
27547        (nodePositionRelativeToRoot): Ditto.
27548        (writeSelection): Ditto.
27549
275502004-12-21  David Harrison  <harrison@apple.com>
27551
27552        Reviewed by Ken Kocienda.
27553
27554        <rdar://problem/3924934> REGRESSION: double click at end of line selects start of next line
27555
27556        Problem was the TextIterator was not handling exitNode() from a P block properly.
27557        
27558        * khtml/editing/visible_text.cpp:
27559        (khtml::TextIterator::TextIterator):
27560        Add new param that specifies whether the iterator is for content or for searching.
27561        Search iterators do not prevent newlines at the beginning.
27562        (khtml::TextIterator::advance):
27563        Added some comments.
27564        (khtml::TextIterator::handleTextNode):
27565        Added some comments.
27566        (khtml::TextIterator::exitNode):
27567        Emit newline for P (and other) blocks with position following the block, instead of the m_lastTextNode.
27568        (khtml::TextIterator::emitCharacter):
27569        Added some comments.
27570        (khtml::TextIterator::range):
27571        Added some comments.
27572        (khtml::CharacterIterator::CharacterIterator):
27573        Specify search type TextIterator.
27574        (khtml::CharacterIterator::advance):
27575        * khtml/editing/visible_text.h:
27576        (khtml::):
27577        Add new TextIterator::TextIterator param that specifies whether the iterator is for content or for searching.
27578        * khtml/editing/visible_units.cpp:
27579        (khtml::nextWordBoundary):
27580        Specify search type TextIterator.
27581
275822004-12-21  David Harrison  <harrison@apple.com>
27583
27584        Reviewed by Ken Kocienda.
27585
27586        <rdar://problem/3924695> REGRESSION (Mail): double-clicking past end of line shows no selection, should select to EOL
27587        
27588        Problem was that RenderText::setSelectionState did not handle the SelectionStart case where start and end are the end of the line.
27589        Fixed by pretending the start == end-1 in that situation, as long as end > 0.
27590        
27591        * khtml/rendering/render_text.cpp:
27592        (RenderText::setSelectionState)
27593
275942004-12-21  Maciej Stachowiak  <mjs@apple.com>
27595
27596        Reviewed by John.
27597
27598	<rdar://problem/3929187> WebKit needs to restrict access to certain window operations by domain
27599        
27600	* khtml/ecma/kjs_window.cpp:
27601        (Window::get): Change most window functions to be restricted by
27602	XSS domain check.
27603
276042004-12-21  Ken Kocienda  <kocienda@apple.com>
27605
27606        Reviewed by John
27607
27608        Fix for this bug:
27609        
27610        <rdar://problem/3928305> selecting an entire line and typing over causes new inserted text at top of document
27611
27612        * khtml/editing/htmlediting.cpp:
27613        (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent): New function to detect case
27614        formerly undetected and unhandled. This is the crux of the bug fix.
27615        (khtml::DeleteSelectionCommand::doApply): Call insertPlaceholderForAncestorBlockContent() during
27616        execution of command.
27617        * khtml/editing/htmlediting.h: Declare new function.
27618        * layout-tests/editing/deleting/delete-3928305-fix-expected.txt: Added.
27619        * layout-tests/editing/deleting/delete-3928305-fix.html: Added.
27620
276212004-12-21  Ken Kocienda  <kocienda@apple.com>
27622
27623        Reviewed by me
27624
27625        * khtml/editing/htmlediting.cpp:
27626        (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): Note to self: Must compile code before
27627        checking in (aka must return false from function returning bool).
27628
276292004-12-21  Ken Kocienda  <kocienda@apple.com>
27630
27631        Reviewed by John
27632        
27633        Fix for this bug:
27634        
27635        <rdar://problem/3927752> Crash in khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded(DOM::NodeImpl*)
27636
27637        * khtml/editing/htmlediting.cpp:
27638        (khtml::CompositeEditCommand::insertBlockPlaceholderIfNeeded): Added some null checks.
27639        (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): Ditto.
27640
276412004-12-21  Ken Kocienda  <kocienda@apple.com>
27642
27643        Reviewed by Darin
27644
27645        * khtml/editing/htmlediting.cpp:
27646        (khtml::ReplacementFragment::mergeStartNode): Refine concept of how this node is found based on
27647        further experiements.
27648        (khtml::ReplaceSelectionCommand::doApply): Add a special case for determining merges that need to
27649        be done if the insertion point is in an empty block.
27650        * layout-tests/editing/pasteboard/paste-text-012-expected.txt: Added.
27651        * layout-tests/editing/pasteboard/paste-text-012.html: Added.
27652        * layout-tests/editing/pasteboard/paste-text-013-expected.txt: Added.
27653        * layout-tests/editing/pasteboard/paste-text-013.html: Added.
27654        * layout-tests/editing/pasteboard/paste-text-014-expected.txt: Added.
27655        * layout-tests/editing/pasteboard/paste-text-014.html: Added.
27656
276572004-12-21  Darin Adler  <darin@apple.com>
27658
27659        Reviewed by Ken.
27660
27661        - fixed <rdar://problem/3899133> text search in a Safari window takes a very long time on Tiger updates page (and some other pages)
27662
27663        * khtml/editing/visible_text.h: Add an "offset base node" parameter to emitCharacter, and also
27664        add a field to track it. Must make a few things mutable so we can update them in the range accessor.
27665        * khtml/editing/visible_text.cpp:
27666        (khtml::TextIterator::advance): Pass in base node and offsets rather than computing actual offsets
27667        using the node's index. We only compute the node index if actually asked for the range.
27668        (khtml::TextIterator::handleTextNode): Pass 0 for base node and set base node to 0 when setting
27669        up the offsets.
27670        (khtml::TextIterator::handleTextBox): Ditto.
27671        (khtml::TextIterator::handleReplacedElement): Pass base node and set base node instead of calling
27672        nodeIndex.
27673        (khtml::TextIterator::handleNonTextNode): Pass 0 for offset.
27674        (khtml::TextIterator::exitNode): More of the same.
27675        (khtml::TextIterator::emitCharacter): Ditto.
27676        (khtml::TextIterator::range): If an offset base node is stored, then get its node index, and then
27677        add that in to the offsets. Doing the work here guarantees it's done only once when doing a text search.
27678
27679        - another small fix
27680
27681        * khtml/khtml_part.cpp: Removed SPEED_DEBUG define. Not sure why it was on.
27682
27683=== Safari-176 ===
27684
276852004-12-20  Ken Kocienda  <kocienda@apple.com>
27686
27687        Reviewed by Darin
27688
27689        * khtml/editing/htmlediting.cpp:
27690        (khtml::DeleteSelectionCommand::moveNodesAfterNode): My one-liner for this bug introduced layout test
27691        regressions: <rdar://problem/3926142> REGRESSION (Mail): Deleting text decreases quote level
27692        Rolling out until I can develop a real fix.
27693
276942004-12-20  David Harrison  <harrison@apple.com>
27695
27696        Reviewed by Dave Hyatt.
27697        
27698        Initial checkin of AXTextMarkerRef support.
27699
27700        * khtml/xml/dom_docimpl.cpp:
27701        (DocumentImpl::updateSelection):
27702        (DocumentImpl::setFocusNode):
27703        * kwq/KWQAccObject.h:
27704        * kwq/KWQAccObject.mm:
27705        (-[KWQAccObject detach]):
27706        (-[KWQAccObject anchorElement]):
27707        (-[KWQAccObject addChildrenToArray:]):
27708        (-[KWQAccObject accessibilityAttributeNames]):
27709        (-[KWQAccObject accessibilityActionDescription:]):
27710        (-[KWQAccObject accessibilityPerformAction:]):
27711        (-[KWQAccObject textMarkerRangeFromMarkers:andEndMarker:]):
27712        (-[KWQAccObject textMarkerForVisiblePosition:]):
27713        (-[KWQAccObject visiblePositionForTextMarker:]):
27714        (-[KWQAccObject AXTextMarkerRangeCopyStartMarkerWrapper:]):
27715        (-[KWQAccObject AXTextMarkerRangeCopyEndMarkerWrapper:]):
27716        (-[KWQAccObject visiblePositionForStartOfTextMarkerRange:]):
27717        (-[KWQAccObject visiblePositionForEndOfTextMarkerRange:]):
27718        (-[KWQAccObject accessibilityAttributeValue:]):
27719        (-[KWQAccObject accessibilityParameterizedAttributeNames]):
27720        (-[KWQAccObject textMarkerRangeFromVisiblePositions:andEndPos:]):
27721        (-[KWQAccObject getSelectedTextMarkerRange]):
27722        (-[KWQAccObject doAXLineForTextMarker:]):
27723        (-[KWQAccObject doAXTextMarkerRangeForLine:]):
27724        (-[KWQAccObject doAXStringForTextMarkerRange:]):
27725        (-[KWQAccObject doAXNextTextMarkerForTextMarker:]):
27726        (-[KWQAccObject doAXPreviousTextMarkerForTextMarker:]):
27727        (-[KWQAccObject doAXLeftWordTextMarkerRangeForTextMarker:]):
27728        (-[KWQAccObject doAXRightWordTextMarkerRangeForTextMarker:]):
27729        (-[KWQAccObject doAXLeftLineTextMarkerRangeForTextMarker:]):
27730        (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
27731        (-[KWQAccObject accessibilityAttributeValue:forParameter:]):
27732        (-[KWQAccObject accessibilityFocusedUIElement]):
27733        (-[KWQAccObject clearChildren]):
27734        (-[KWQAccObject accObjectID]):
27735        (-[KWQAccObject setAccObjectID:]):
27736        (-[KWQAccObject removeAccObjectID]):
27737        * kwq/KWQAccObjectCache.h:
27738        * kwq/KWQAccObjectCache.mm:
27739        (KWQAccObjectCache::KWQAccObjectCache):
27740        (KWQAccObjectCache::~KWQAccObjectCache):
27741        (KWQAccObjectCache::getAccObjectID):
27742        (KWQAccObjectCache::removeAccObjectID):
27743        (KWQAccObjectCache::textMarkerForVisiblePosition):
27744        (KWQAccObjectCache::visiblePositionForTextMarker):
27745
277462004-12-19  Darin Adler  <darin@apple.com>
27747
27748        * kwq/KWQFoundationExtras.h: (KWQCFAutorelease): Added nil check.
27749
277502004-12-19  Darin Adler  <darin@apple.com>
27751
27752        Reviewed by Kevin.
27753
27754        - a garbage collection fix
27755
27756        * kwq/KWQFoundationExtras.h: (KWQCFAutorelease): Added a more-extensive comment and fixed the BUILDING_ON_PANTHER
27757        #ifndef to use #if (in practice, either is OK).
27758        * kwq/KWQKURL.mm: (KURL::getNSURL): Use KWQCFAutorelease instead of autorelease.
27759
277602004-12-17  David Hyatt  <hyatt@apple.com>
27761
27762	Fix for 3923255, specified percentage heights of divs with overflow auto inside tables not honored.
27763	
27764        Reviewed by kocienda
27765
27766        * khtml/rendering/render_box.cpp:
27767        (RenderBox::calcPercentageHeight):
27768        * khtml/rendering/render_table.cpp:
27769        (RenderTableSection::layoutRows):
27770
277712004-12-17  David Harrison  <harrison@apple.com>
27772
27773        Reviewed by Ken Kocienda.
27774
27775        <rdar://problem/3924930> REGRESSION: triple click does not select to end of line
27776        
27777        * khtml/editing/visible_units.cpp:
27778        (khtml::endOfParagraph):
27779        When includeLineBreak is true, allow traversal to next node after enclosingBlockFlowElement.
27780
277812004-12-17  Ken Kocienda  <kocienda@apple.com>
27782
27783        Reviewed by Vicki
27784
27785        * khtml/editing/htmlediting.cpp:
27786        (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Missed deleting some now-obsolete expcetion
27787        codes when I added the createBreakElement() function.
27788
277892004-12-17  Richard Williamson   <rjw@apple.com>
27790
27791	Set the floor of max cacheable object size to 40K.  This restores
27792	the long standing floor.  Lower floor deleteriously impacts the PLT.
27793        Reviewed by Hyatt.
27794
27795        * khtml/khtml_part.cpp:
27796        (KHTMLPart::checkCompleted):
27797        * khtml/misc/loader.cpp:
27798        (Cache::setSize):
27799
278002004-12-17  Ken Kocienda  <kocienda@apple.com>
27801
27802        Reviewed by Hyatt
27803
27804        Fix for this bug:
27805        
27806        <rdar://problem/3926142> REGRESSION (Mail): Deleting text decreases quote level
27807
27808        * khtml/editing/htmlediting.cpp:
27809        (khtml::DeleteSelectionCommand::moveNodesAfterNode): Stop merging nodes when a <br> is hit.
27810        Formerly checked only for block boundary.
27811
278122004-12-17  David Harrison  <harrison@apple.com>
27813
27814        Reviewed by Darin.
27815
27816		Add KWQCFAutorelease for autoreleasing CF objects.
27817        * kwq/KWQFoundationExtras.h:
27818        (KWQCFAutorelease):
27819        New.
27820
278212004-12-17  David Harrison  <harrison@apple.com>
27822
27823        Reviewed by Darin.
27824
27825		Fix GC compatibility in getNSString.
27826
27827        * kwq/KWQString.mm:
27828        (QString::getNSString):
27829		Use NSString allocator instead of CFString, so that autorelease works under GC.
27830
278312004-12-17  Ken Kocienda  <kocienda@apple.com>
27832
27833        Reviewed by Hyatt
27834
27835        Fix for this bug:
27836        
27837        <rdar://problem/3890973> REGRESSION (Mail): Deleting reorders remaining text
27838
27839        * khtml/editing/htmlediting.cpp:
27840        (khtml::DeleteSelectionCommand::moveNodesAfterNode): Added check to ensure that moving content will not
27841        move it after the <body> element.
27842
278432004-12-17  Ken Kocienda  <kocienda@apple.com>
27844
27845        Reviewed by me
27846        
27847        Added new layout tests covering cases from recent bug fixes.
27848
27849        * layout-tests/editing/inserting/insert-div-018-expected.txt: Added.
27850        * layout-tests/editing/inserting/insert-div-018.html: Added.
27851        * layout-tests/editing/inserting/insert-div-019-expected.txt: Added.
27852        * layout-tests/editing/inserting/insert-div-019.html: Added.
27853        * layout-tests/editing/inserting/insert-div-020-expected.txt: Added.
27854        * layout-tests/editing/inserting/insert-div-020.html: Added.
27855        * layout-tests/editing/inserting/insert-div-021-expected.txt: Added.
27856        * layout-tests/editing/inserting/insert-div-021.html: Added.
27857
278582004-12-17  Ken Kocienda  <kocienda@apple.com>
27859
27860        Reviewed by me
27861
27862        Changes in layout resulting from giving <p> elements no margin rather than 0.1em margin.
27863
27864        * layout-tests/editing/inserting/insert-div-013-expected.txt
27865        * layout-tests/editing/inserting/insert-div-014-expected.txt
27866
278672004-12-17  Ken Kocienda  <kocienda@apple.com>
27868
27869        Reviewed by John
27870
27871        Fix for this bug:
27872        
27873        <rdar://problem/3925317> Increase quote in email and with cursor below the quote the new line appears above the quote
27874
27875        * khtml/editing/htmlediting.cpp:
27876        (khtml::InsertParagraphSeparatorCommand::doApply):
27877        * khtml/editing/visible_position.cpp: Refine rules for whether to use the starting node or the starting
27878        block as the reference node for the insertion of the new block.
27879        (khtml::isLastVisiblePositionInBlock): Tweak rules again. Descendants of following blocks should answer true.
27880        I worked this all out on the whiteboard this time. This should be the last tweak.
27881
278822004-12-17  Kevin Decker  <kdecker@apple.com>
27883
27884        Reviewed by Ken.
27885
27886	Fixed <rdar://problem/3824438> Need a clean way for Dashboard to detect when an XML parsing error occurs
27887
27888        * khtml/xml/xml_tokenizer.cpp:
27889        (khtml::XMLTokenizer::insertErrorMessageBlock): In the xml error report, instead of a generic <div>, use <parsererror> to match Mozilla.
27890
278912004-12-16  Ken Kocienda  <kocienda@apple.com>
27892
27893        Reviewed by Chris
27894
27895        Fix for this bug:
27896        
27897        <rdar://problem/3924888> REGRESSION (Mail): Hitting return key at end of line does not insert visible newline
27898
27899        * khtml/editing/htmlediting.cpp:
27900        (khtml::InsertParagraphSeparatorCommand::doApply): Tweaked code I added just before to fix 3924486, so that
27901        it checks the downstream node for the starting position.
27902
279032004-12-16  Ken Kocienda  <kocienda@apple.com>
27904
27905        Reviewed by Chris
27906
27907        Added new createBreakElement() function that makes creating a <br> element a one-liner.
27908        Converted all the code that used to call the DocumentImpl, and dealt with the exceptionCode,
27909        over to this new helper.
27910
27911        * khtml/editing/htmlediting.cpp:
27912        (khtml::DeleteSelectionCommand::moveNodesAfterNode): Now uses new helper function.
27913        (khtml::InsertLineBreakCommand::doApply): Ditto.
27914        (khtml::InsertParagraphSeparatorCommand::doApply): Ditto.
27915        (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Ditto.
27916        (khtml::ReplaceSelectionCommand::doApply): Ditto.
27917        (khtml::createBreakElement): New helper.
27918        * khtml/editing/htmlediting.h: Ditto.
27919
279202004-12-16  David Hyatt  <hyatt@apple.com>
27921
27922	Fix a bug where vertical-align values that depended on their parent's value went crazy if the parent was
27923	vertical-align top or bottom.  The bug is 3771007, bankofamerica's ebills page.
27924	
27925        Reviewed by kocienda
27926
27927        * khtml/rendering/render_object.cpp:
27928        (RenderObject::getVerticalPosition):
27929
279302004-12-16  Ken Kocienda  <kocienda@apple.com>
27931
27932        Reviewed by John
27933
27934        Fix for these bugs:
27935        
27936        <rdar://problem/3924486> REGRESSION (Mail): Hitting return key does not insert visible newline
27937        <rdar://problem/3924579> REGRESSION (Mail): After deleting, hitting return key does not insert visible newline
27938
27939        * khtml/editing/htmlediting.cpp:
27940        (khtml::InsertParagraphSeparatorCommand::doApply): For the first bug, detect when inserting a <p> will
27941        make a visible <br> collapse. For the second bug, move the code that inserts the new <p> after
27942        a check which may move the node used as the reference node for the insertion. Also change this code to
27943        insert the <p> after the last sibling of the starting position, to move it past the nodes we're going
27944        to want to shift into the new <p>.
27945
279462004-12-16  Darin Adler  <darin@apple.com>
27947
27948        Reviewed by Ken.
27949
27950        - use <p> elements rather than <br> when pasting plain text; also use margin of 0 rather than 0.1 em
27951          after talking this over with Dave and Ken
27952
27953        * khtml/editing/htmlediting.h: Added createDefaultParagraphElement and createBlockPlaceholderElement.
27954        * khtml/editing/htmlediting.cpp:
27955        (khtml::CompositeEditCommand::insertBlockPlaceholderIfNeeded): Use new createBlockPlaceholderElement
27956        helper so this can share code with the plain-text conversion code.
27957        (khtml::InsertParagraphSeparatorCommand::createParagraphElement): Use new createDefaultParagraphElement
27958        helper so this can share code with the plain-text conversion code.
27959        (khtml::createDefaultParagraphElement): Added.
27960        (khtml::createBlockPlaceholderElement): Added.
27961
27962        * khtml/editing/markup.cpp: (khtml::createFragmentFromText): Use paragraphs rather than
27963        <br> elements for pasting plain text.
27964
27965        - regenerated these files with the newer gperf
27966
27967        * khtml/css/cssproperties.c: Regenerated.
27968        * khtml/css/cssvalues.c: Regenerated.
27969        * khtml/misc/htmlattrs.c: Regenerated.
27970        * khtml/misc/htmltags.c: Regenerated.
27971
279722004-12-16  Ken Kocienda  <kocienda@apple.com>
27973
27974        Reviewed by Hyatt
27975
27976        Fix for this bug:
27977        
27978        <rdar://problem/3924291> REGRESSION (Mail): Crash deleting content following a <p> element
27979
27980        * khtml/xml/dom_nodeimpl.cpp:
27981        (NodeImpl::enclosingInlineElement): Fixed problem in this function where recursive search for
27982        parent that is not an inline would skip past previous siblings of nodes which were blocks. Now
27983        it stops looking in this situation. This problem eventually caused the delete code to try to 
27984        merge a node under a descendent.
27985
279862004-12-16  Adele Amchan  <adele@apple.com>
27987
27988        Change by Richard, reviewed by me.
27989
27990	Fix for: <rdar://problem/3923983> background image decoding prevents page with 0Kb image from finishing to load
27991
27992        * khtml/misc/loader.cpp: (CachedImage::data): Added call to notifyFinished so the 0Kb image case finishes loading.
27993
279942004-12-16  Adele Amchan  <adele@apple.com>
27995
27996        Reviewed by Chris.
27997
27998        Fix for: <rdar://problem/3534824> VIP: some navigation links on safeway.com don't work due to a JavaScript quirk
27999
28000        Added a call to ObjectImp::get before Window::get just returns Undefined.  
28001        This was preventing us from getting the toString function from a Window object.
28002
28003        * khtml/ecma/kjs_window.cpp: (Window::get):
28004
280052004-12-16  Ken Kocienda  <kocienda@apple.com>
28006
28007        Reviewed by John
28008        
28009        Fix for this bug:
28010        
28011        <rdar://problem/3918351> REGRESSION (Mail, 173-175+): Return before first char of line leaves insertion point in wrong place
28012        
28013        * khtml/editing/htmlediting.cpp:
28014        (khtml::InsertParagraphSeparatorCommand::doApply): Basically, did a rewrite of this function
28015        to do a better job than it was doing before. Added several test cases to prove I am on a 
28016        better track.
28017        * khtml/editing/visible_position.cpp:
28018        (khtml::isFirstVisiblePositionInBlock): Tweaked the rules a bit to fix an issue very similar to the
28019        leaving-the-bar-node case problem I just fixed in a recent checkin (relevant markup: <p>foo</p>bar).
28020        This function was returning true for the first position in "bar". Wrong. Also tightened up other 
28021        rule: Should not report true when relationship between blocks cannot be determined.
28022        (khtml::isLastVisiblePositionInBlock): Tightened up rule as above: Should not report true 
28023        when relationship between blocks cannot be determined.
28024        * layout-tests/editing/inserting/insert-div-010-expected.txt: Added.
28025        * layout-tests/editing/inserting/insert-div-010.html: Added.
28026        * layout-tests/editing/inserting/insert-div-011-expected.txt: Added.
28027        * layout-tests/editing/inserting/insert-div-011.html: Added.
28028        * layout-tests/editing/inserting/insert-div-012-expected.txt: Added.
28029        * layout-tests/editing/inserting/insert-div-012.html: Added.
28030        * layout-tests/editing/inserting/insert-div-013-expected.txt: Added.
28031        * layout-tests/editing/inserting/insert-div-013.html: Added.
28032        * layout-tests/editing/inserting/insert-div-014-expected.txt: Added.
28033        * layout-tests/editing/inserting/insert-div-014.html: Added.
28034        * layout-tests/editing/inserting/insert-div-015-expected.txt: Added.
28035        * layout-tests/editing/inserting/insert-div-015.html: Added.
28036        * layout-tests/editing/inserting/insert-div-016-expected.txt: Added.
28037        * layout-tests/editing/inserting/insert-div-016.html: Added.
28038        * layout-tests/editing/inserting/insert-div-017-expected.txt: Added.
28039        * layout-tests/editing/inserting/insert-div-017.html: Added.
28040            
280412004-12-16  Ken Kocienda  <kocienda@apple.com>
28042
28043        Reviewed by me
28044        
28045        Added a layout test based on my last checkin.
28046
28047        * layout-tests/editing/selection/move-by-word-001-expected.txt: Added.
28048        * layout-tests/editing/selection/move-by-word-001.html: Added.
28049
280502004-12-16  Ken Kocienda  <kocienda@apple.com>
28051
28052        Reviewed by John
28053
28054        Fix for this bug:
28055        
28056        <rdar://problem/3917929> REGRESSION (Mail): Command-left-arrow leaves insertion point too high after specific steps
28057
28058        * khtml/editing/visible_text.cpp:
28059        (khtml::SimplifiedBackwardsTextIterator::advance): Add new check for leaving a text node and iterating
28060        backwards into a different block that is an descendent of the block containing the text node (as in leaving 
28061        the "bar" node in this example: <p>foo</p>bar).
28062        (khtml::SimplifiedBackwardsTextIterator::handleNonTextNode): Call new emitNewlineForBROrText helper.
28063        (khtml::SimplifiedBackwardsTextIterator::emitNewlineForBROrText): Factor out code from handleNonTextNode, since
28064        it is called from there, and now also from advance().
28065
280662004-12-15  Darin Adler  <darin@apple.com>
28067
28068        Reviewed by Ken.
28069        
28070        - fixed problem where plain-text would put a blank line between each <p> even when they have no margins
28071
28072        * khtml/editing/visible_text.cpp: (khtml::TextIterator::exitNode): Add more checks and only set the
28073        "add one more newline" flag if the margin is sufficient. A more complete fix would ignore the node
28074        type altogether and use the render tree instead.
28075
280762004-12-14  John Sullivan  <sullivan@apple.com>
28077
28078        Reviewed by Ken.
28079        
28080        - rest of WebCore fix for <rdar://problem/3790011> undoable operations all say "Undo" 
28081        in the menu, no specific action names
28082
28083        * khtml/editing/edit_actions.h: new header, contains EditAction enum
28084        (renamed from HTMLEditAction, formerly in htmlediting.h)
28085
28086        * ForwardingHeaders/editing/edit_actions.h: new forwarding header
28087        
28088        * khtml/editing/htmlediting.h:
28089        removed HTMLEditAction enum in favor of including edit_actions.h; added khtml::
28090        namespace to EditAction usages; added m_editingAction ivar to ApplyStyleCommand
28091
28092        * khtml/editing/htmlediting.cpp:
28093        (khtml::EditCommandPtr::editingAction):
28094        update for enum name change
28095        (khtml::EditCommand::editingAction):
28096        ditto
28097        (khtml::ApplyStyleCommand::ApplyStyleCommand):
28098        added editingAction parameter to this constructor
28099        (khtml::ApplyStyleCommand::editingAction):
28100        return new ivar
28101        (khtml::DeleteSelectionCommand::editingAction):
28102        update for enum name change
28103        (khtml::MoveSelectionCommand::editingAction):
28104        ditto
28105        (khtml::TypingCommand::editingAction):
28106        ditto
28107        (khtml::ReplaceSelectionCommand::editingAction):
28108        ditto
28109        
28110        * khtml/khtml_part.h:
28111        added EditAction parameter to applyStyle and computeAndSetTypingStyle
28112        * khtml/khtml_part.cpp:
28113        (KHTMLPart::computeAndSetTypingStyle):
28114        added EditAction parameter
28115        (KHTMLPart::applyStyle):
28116        ditto
28117
28118        * kwq/KWQKHTMLPart.mm:
28119        (KWQKHTMLPart::registerCommandForUndoOrRedo):
28120        do the cast from EditAction to WebUndoAction a different way to match other code
28121        
28122        * kwq/WebCoreBridge.h:
28123        * kwq/WebCoreBridge.mm:
28124        (-[WebCoreBridge setTypingStyle:withUndoAction:]):
28125        added WebUndoAction parameter, passed into ApplyStyleCommand constructor
28126        (-[WebCoreBridge applyStyle:withUndoAction:]):
28127        ditto
28128
28129        * WebCore.pbproj/project.pbxproj:
28130        updated for new files
28131
281322004-12-14  David Hyatt  <hyatt@apple.com>
28133
28134	Fix for 3562458, rowspan and colspan converted to ints so that large values will work for them.  Remove
28135	the ridiculous 1024 limit on the span values.
28136
28137        * khtml/html/html_tableimpl.cpp:
28138        (HTMLTableCellElementImpl::parseHTMLAttribute):
28139        * khtml/rendering/render_table.cpp:
28140        (RenderTableCell::collapsedBottomBorder):
28141        * khtml/rendering/render_table.h:
28142        (khtml::RenderTableCell::colSpan):
28143        (khtml::RenderTableCell::setColSpan):
28144        (khtml::RenderTableCell::rowSpan):
28145        (khtml::RenderTableCell::setRowSpan):
28146        (khtml::RenderTableCol::span):
28147        (khtml::RenderTableCol::setSpan):
28148
281492004-12-14  David Hyatt  <hyatt@apple.com>
28150
28151	Make sure <col> and <colgroup> can have spans updated dynamically as well.
28152	
28153        Reviewed by rjw
28154
28155        * khtml/html/html_tableimpl.cpp:
28156        (HTMLTableColElementImpl::parseHTMLAttribute):
28157        * khtml/rendering/render_table.cpp:
28158        (RenderTableCell::updateFromElement):
28159        (RenderTableCol::updateFromElement):
28160
281612004-12-14  David Hyatt  <hyatt@apple.com>
28162
28163	Fix for 3833123, setting a cell's colspan does not update rendering like it should.
28164	
28165        Reviewed by rjw
28166
28167        * khtml/html/html_tableimpl.cpp:
28168        (HTMLTableCellElementImpl::parseHTMLAttribute):
28169        * khtml/rendering/render_table.cpp:
28170        (RenderTableCell::RenderTableCell):
28171        (RenderTableCell::updateFromElement):
28172
281732004-12-14  Chris Blumenberg  <cblu@apple.com>
28174
28175	Fixed: <rdar://problem/3864536> crash copying text from other apps and pasting in a sticky in dashboard
28176
28177        Reviewed by hyatt.
28178
28179        * khtml/editing/markup.cpp:
28180        (khtml::createFragmentFromText): ref and deref the fragment since calling appendChild can completely deref it
28181
281822004-12-14  David Hyatt  <hyatt@apple.com>
28183
28184	Fix for 3785211. Make sure to do a layout with the old position before doing a layout after changing to the new position.
28185	This is actually a regression from my positioned object DHTML optimization.
28186	
28187        Reviewed by kocienda
28188
28189        * khtml/rendering/render_object.cpp:
28190        (RenderObject::setStyle):
28191
281922004-12-14  David Hyatt  <hyatt@apple.com>
28193
28194	Make sure the class attribute works when newlines are present in the attribute.
28195
28196        Reviewed by kocienda
28197
28198        * khtml/html/html_elementimpl.cpp:
28199        (HTMLNamedAttrMapImpl::parseClassAttribute):
28200
282012004-12-14  David Hyatt  <hyatt@apple.com>
28202
28203	Fix for 3724938, float element is duplicated and paints twice.  The logic for when to paint floats was
28204	actually fairly screwed up.  This patch simplifies the logic and makes addOverhangingFloats easier to
28205	read by splitting it into two separate functions.
28206	
28207        Reviewed by kocienda
28208
28209        * khtml/rendering/render_block.cpp:
28210        (khtml::RenderBlock::layoutBlockChildren):
28211        (khtml::RenderBlock::clearFloats):
28212        (khtml::RenderBlock::addOverhangingFloats):
28213        (khtml::RenderBlock::addIntrudingFloats):
28214        * khtml/rendering/render_block.h:
28215
282162004-12-14  John Sullivan  <sullivan@apple.com>
28217
28218        Reviewed by Ken.
28219        
28220        - added Undo action names for Cut, Paste, and Drag
28221
28222        * khtml/editing/htmlediting.h:
28223        * khtml/editing/htmlediting.cpp:
28224        (khtml::DeleteSelectionCommand::editingAction):
28225        overridden to return HTMLEditActionCut
28226        (khtml::MoveSelectionCommand::editingAction):
28227        overridden to return HTMLEditActionDrag
28228        (khtml::ReplaceSelectionCommand::editingAction):
28229        overridden to return HTMLEditActionPaste
28230
282312004-12-14  John Sullivan  <sullivan@apple.com>
28232
28233        Reviewed by Ken.
28234        
28235        - architecture for WebCore part of fix for <rdar://problem/3790011> undoable operations all say "Undo" in the menu, 
28236        no specific action names
28237          
28238        The remaining step is to make each EditCommand subclass override editingAction() to return an
28239        appropriate value. (Unfortunately the mapping between subclass and user-distinguishable action
28240        is not completely straightforward, so this next step isn't trivial.)
28241
28242        * khtml/editing/htmlediting.h:
28243        new enum for HTMLEditAction
28244
28245        * khtml/editing/htmlediting.cpp:
28246        (khtml::EditCommandPtr::editingAction):
28247        new method, calls through to EditCommand
28248        (khtml::EditCommand::editingAction):
28249        new method for subclasses to override, returns HTMLEditActionUnspecified at this level
28250        (khtml::TypingCommand::editingAction):
28251        proof of concept override, returns HTMLEditActionTyping
28252                
28253        * kwq/KWQKHTMLPart.h:
28254        declare new private bottleneck method registerCommandForUndoOrRedo
28255        * kwq/KWQKHTMLPart.mm:
28256        (KWQKHTMLPart::registerCommandForUndoOrRedo):
28257        new bottleneck method to reduce code duplication; now calls over the bridge
28258        to get the localized string to use for the Undo action name
28259        (KWQKHTMLPart::registerCommandForUndo):
28260        now calls new bottleneck method
28261        (KWQKHTMLPart::registerCommandForRedo):
28262        now calls new bottleneck method
28263        
28264        * kwq/WebCoreBridge.h:
28265        new enum for WebUndoAction, maps directly to HTMLEditAction.
28266        Declaration of nameForUndoAction:
28267
282682004-12-14  Darin Adler  <darin@apple.com>
28269
28270        Reviewed by John.
28271
28272        - added a bunch of missing nil checks; our old version of inherits used to work for nil (by accident)
28273
28274        * khtml/rendering/render_frames.cpp:
28275        (RenderPart::~RenderPart): Check widget for nil.
28276        (RenderPart::setWidget): Ditto.
28277        (RenderFrame::slotViewCleared): Ditto.
28278        (RenderPartObject::slotViewCleared): Ditto.
28279
282802004-12-13  Darin Adler  <darin@apple.com>
28281
28282        Reviewed by Ken.
28283
28284        - moved markup-related functions into new sources files in the editing directory
28285        - removed all of the uses of dynamic_cast, preparing to turn off RTTI to make our code smaller and slightly faster
28286
28287        * ForwardingHeaders/editing/markup.h: Added.
28288        * khtml/editing/markup.h: Added.
28289        * khtml/editing/markup.cpp: Added.
28290
28291        * WebCore.pbproj/project.pbxproj: Added markup.h/cpp.
28292
28293        * khtml/dom/dom_node.cpp: (Node::toHTML): Call createMarkup since there's no toHTML in NodeImpl any more.
28294        * khtml/html/html_elementimpl.cpp:
28295        (HTMLElementImpl::innerHTML): Changed to call createMarkup.
28296        (HTMLElementImpl::outerHTML): Ditto.
28297
28298        * khtml/ecma/kjs_window.cpp:
28299        (Window::retrieveWindow): Comment out assert that uses dynamic_cast.
28300        (Window::retrieveActive): Ditto.
28301
28302        * khtml/editing/htmlediting.h: Added forward class declaration needed now that I removed one elsewhere.
28303        * khtml/xml/dom_docimpl.h: Ditto.
28304
28305        * khtml/khtml_part.cpp:
28306        (KHTMLPart::slotDebugDOMTree): Use createMarkup instead of toHTML.
28307        (KHTMLPart::processObjectRequest): Use inherits instead of dynamic_cast.
28308
28309        * khtml/rendering/render_image.cpp: (RenderImage::paint): Add an explicit QChar conversion so this code
28310        still works even with the additional replace overloads added to QString.
28311        * kwq/KWQTextCodec.mm: (QTextCodec::fromUnicode): Ditto.
28312
28313        * khtml/rendering/render_object.h: Removed the version of arenaDelete that does not take an object
28314        base pointer, because it used dynamic_cast in its implementation. Made the other version public.
28315        * khtml/rendering/render_object.cpp: Ditto.
28316        * khtml/rendering/render_replaced.cpp: (RenderWidget::deref): Pass object base pointer to arenaDelete.
28317
28318        * khtml/xml/dom2_rangeimpl.h: Removed extra parameters from toHTML, and unneeded includes and declarations.
28319        * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::toHTML): Changed to call createMarkup, and moved all
28320        the support code into markup.cpp.
28321
28322        * khtml/xml/dom_nodeimpl.h: Moved toHTML and related functions into markup.cpp.
28323        * khtml/xml/dom_nodeimpl.cpp: Ditto.
28324
28325        * khtml/xml/dom_position.cpp:
28326        (DOM::startPosition): Implemented the version of this that takes a RangeImpl. Also added null checks
28327        so these return null positions rather than raising exceptions.
28328        (DOM::endPosition): Ditto.
28329
28330        * khtml/khtmlview.h: Added an APPLE_CHANGES function so inherits can detect this class without dynamic_cast.
28331        * kwq/KWQFrame.h: Ditto.
28332        * kwq/KWQFrame.mm: (QFrame::isQFrame): Ditto.
28333        * kwq/KWQKPartsPart.h: Ditto.
28334        * kwq/KWQKPartsPart.mm: (KParts::ReadOnlyPart::isKPartsReadOnlyPart): Ditto.
28335        * kwq/KWQScrollView.h: Ditto.
28336        * kwq/KWQScrollView.mm: (QScrollView::isQScrollView): Ditto.
28337        * kwq/KWQKHTMLPart.h: Ditto.
28338        * kwq/KWQKHTMLPart.mm:
28339        (KHTMLView::isKHTMLView): Ditto.
28340        (KWQKHTMLPart::setTitle): Added an explicit QChar conversion so this code still works even with the additional
28341        replace overloads added to QString.
28342        (KWQKHTMLPart::setStatusBarText): Ditto.
28343        (KWQKHTMLPart::runJavaScriptAlert): Ditto.
28344        (KWQKHTMLPart::runJavaScriptConfirm): Ditto.
28345        (KWQKHTMLPart::runJavaScriptPrompt): Ditto.
28346        (KWQKHTMLPart::attributedString): Ditto.
28347        (KWQKHTMLPart::isCharacterSmartReplaceExempt): Ditto.
28348        (KWQKHTMLPart::isKHTMLPart): That dynamic_cast thing (see above).
28349
28350        * kwq/KWQObject.h: Added virtual methods for the few cases where we need dynamic_cast-like behavior.
28351        * kwq/KWQObject.mm:
28352        (QObject::inherits): Changed to not use dynamic cast.
28353        (QObject::isKHTMLPart): Added. Returns false.
28354        (QObject::isKHTMLView): Ditto.
28355        (QObject::isKPartsReadOnlyPart): Ditto.
28356        (QObject::isQFrame): Ditto.
28357        (QObject::isQScrollView): Ditto.
28358
28359        * kwq/KWQRenderTreeDebug.cpp:
28360        (write): Changed to use inherits rather than dynamic_cast.
28361        (writeSelection): Ditto.
28362
28363        * kwq/KWQSlot.mm: (KWQSlot::call): Call through to the version with just a job pointer parameter rather
28364        than going straight on to the "no parameters at all" version.
28365
28366        * kwq/KWQString.h:
28367        * kwq/KWQString.mm: (QString::replace): Added overloads.
28368        * kwq/WebCoreBridge.mm:
28369        (-[WebCoreBridge markupStringFromNode:nodes:]): Changed to call functions in markup.h.
28370        (-[WebCoreBridge markupStringFromRange:nodes:]): Ditto.
28371        (-[WebCoreBridge selectedString]): Added an explicit QChar conversion so this code still works even with
28372        the additional replace overloads added to QString.
28373        (-[WebCoreBridge stringForRange:]): Ditto.
28374        (-[WebCoreBridge copyDOMNode:copier:]): Changed to call functions in markup.h.
28375        (-[WebCoreBridge elementAtPoint:]): QChar conversion.
28376        (-[WebCoreBridge documentFragmentWithMarkupString:baseURLString:]): Changed to call functions in markup.h.
28377        (-[WebCoreBridge documentFragmentWithText:]): Changed to call functions in markup.h.
28378
283792004-12-13  Ken Kocienda  <kocienda@apple.com>
28380
28381        Reviewed by John
28382
28383        Fix for this bug:
28384        
28385        <rdar://problem/3917956> REGRESSION (Mail): pasting can leave insertion point inside pasted text
28386
28387        * khtml/editing/htmlediting.cpp:
28388        (khtml::ReplaceSelectionCommand::doApply): Fix coding mistake. Calculations of bool flag based on 
28389        leading and trailing whitespace positions was reversed! I must have introduced this error recently
28390        when changing around this code.
28391
283922004-12-13  David Hyatt  <hyatt@apple.com>
28393
28394	Fix for 3915787, macobserver doesn't paint.  floatRect() needed to be const in the base class.  Also hit-testing
28395	and painting was using the wrong rect when setting up the x/y of the rect.
28396	
28397        Reviewed by mjs
28398
28399        * khtml/rendering/render_block.cpp:
28400        (khtml::RenderBlock::paint):
28401        (khtml::RenderBlock::nodeAtPoint):
28402        * khtml/rendering/render_object.h:
28403        (khtml::RenderObject::floatRect):
28404
284052004-12-13  Ken Kocienda  <kocienda@apple.com>
28406
28407        Reviewed by John
28408
28409        Fix for this bug:
28410        
28411        <rdar://problem/3917863> REGRESSION (Mail): pasting two lines of plain text copied from an RTF document results in two styles
28412
28413        Code to figuire out the end node to merge was missing the font tag in the second paragraph
28414        written out by AppKit convert-to-HTML function. I refined the algorithm to be smarter.
28415
28416        * khtml/editing/htmlediting.cpp:
28417        (khtml::ReplacementFragment::mergeEndNode): Refine algorithm used to walk through the fragment being pasted
28418        looking for the node that is the last inline in the last block of the fragment. The old algorithm was 
28419        insufficiently powerful.
28420        (khtml::ReplacementFragment::enclosingBlock): New helper function.
28421        * khtml/editing/htmlediting.h: Add declaration for new helper function.
28422        * layout-tests/editing/pasteboard/paste-text-011-expected.txt: Added.
28423        * layout-tests/editing/pasteboard/paste-text-011.html: Added.
28424
284252004-12-13  Ken Kocienda  <kocienda@apple.com>
28426
28427        Reviewed by John
28428
28429        WebCore side of fix for this bug:
28430        
28431        <rdar://problem/3768372> REGRESSION (Mail): paste of text ending in whitespace loses whitespace
28432
28433        Note that we are coordinating with Doug Davidson on the AppKit team to make a complete fix for this
28434        bug. This change involves our half of the needed changes.
28435        
28436        Note that a lot of this change has to do with changing code to use a <br> element instead of
28437        a comment node as the mechanism to annotate HTML with information used to fix the bug. In some
28438        other places, code to handle comments in markup can be removed since we do not use comments for
28439        such annotations after this change.
28440
28441        * khtml/editing/htmlediting.cpp: Remove isComment() helper; no longer needed.
28442        (khtml::ReplacementFragment::ReplacementFragment): Change m_hasInterchangeNewlineComment name to m_hasInterchangeNewline.
28443        (khtml::ReplacementFragment::isInterchangeNewlineNode): Name changed from isInterchangeNewlineComment.
28444        (khtml::ReplacementFragment::isInterchangeConvertedSpaceSpan): Local variable name convertedSpaceSpanClass changed to
28445        convertedSpaceSpanClassString to match other uses of the idiom used here.
28446        (khtml::ReplaceSelectionCommand::doApply): Change hasInterchangeNewlineComment() name to hasInterchangeNewline().
28447        * khtml/editing/htmlediting.h: Change names as noted in .cpp file. Remove isComment() helper; no longer needed.
28448        (khtml::ReplacementFragment::hasInterchangeNewline):  Change hasInterchangeNewlineComment() name to hasInterchangeNewline().
28449        * khtml/html/html_elementimpl.cpp:
28450        (HTMLElementImpl::createContextualFragment): No longer has includeCommentsInDOM flag; no longer needed as we do not
28451        annotate fragments with comments any longer.
28452        * khtml/html/html_elementimpl.h: Ditto.
28453        * khtml/xml/dom2_rangeimpl.cpp: Remove addCommentToHTMLMarkup() helper. No longer needed.
28454        (DOM::interchangeNewlineMarkupString): New helper to return <br> element markup we use to annotate content for interchange.
28455        (DOM::RangeImpl::toHTML): No longer uses addCommentToHTMLMarkup; now calls interchangeNewlineMarkupString(). Remove
28456        spurious semi-colon.
28457        * khtml/xml/dom2_rangeimpl.h: Remove obsolete addCommentToHTMLMarkup() function and EAddToMarkup enum.
28458        * kwq/WebCoreBridge.mm:
28459        (-[WebCoreBridge documentFragmentWithMarkupString:baseURLString:]): No longer pass bool to ask for including comments
28460        in DOM when calling createContextualFragment().
28461
284622004-12-10  John Sullivan  <sullivan@apple.com>
28463
28464        fixed deployment build bustage that John Louch ran into
28465
28466        * kwq/KWQTextEdit.mm:
28467        (QTextEdit::setScrollBarModes):
28468        move bool declaration inside exception-handling block to avoid obscure
28469        compiler error
28470
284712004-12-10  Maciej Stachowiak  <mjs@apple.com>
28472
28473        Reviewed by Richard.
28474
28475	<rdar://problem/3907484> REGRESSION (125-173): crash when KWQTextField is dealloc'ed while setting focus (profoundlearning.com)
28476	
28477        * kwq/KWQWidget.mm:
28478        (QWidget::setFocus): Handle the case where setting focus removed
28479	us from the superview - this can happen due to style changes on
28480	focus change.
28481
284822004-12-10  Ken Kocienda  <kocienda@apple.com>
28483
28484        Reviewed by Hyatt
28485
28486        Fix for this bug:
28487        
28488        <rdar://problem/3915008> REGRESSION (Mail): Too much white space between lines separated by carriage returns
28489
28490        There are a number of interesting things we could do to fix this bug, including SPI and involving
28491        the WebKit delegate, etc., however it seems reasonable to start with a hard-coded default that
28492        will fix the bug in the general case until such time as we can come up with more specific
28493        solutions. 
28494        
28495        So, I added a helper method to create <p> elements with an inline style that sets top and bottom margins
28496        to 0.1em.
28497
28498        * khtml/editing/htmlediting.cpp:
28499        (khtml::InsertParagraphSeparatorCommand::createParagraphElement): New factory method to create
28500        paragraph elements to insert. Also adds style information to keep the <p> from having "too-big" margins.
28501        (khtml::InsertParagraphSeparatorCommand::doApply): Call new factory method.
28502        * khtml/editing/htmlediting.h: Add createParagraphElement() declaration.
28503
285042004-12-10  Darin Adler  <darin@apple.com>
28505
28506        Reviewed by Hyatt.
28507
28508        - fixed <rdar://problem/3910419> setting style={overflow:hidden} for <textarea> does not prevent appearance of scrollbars
28509
28510        * khtml/rendering/render_form.h: Remove now-unneeded wrap parameter.
28511        * khtml/rendering/render_form.cpp:
28512        (RenderSubmitButton::rawText): Convert to QChar explicitly.
28513        (RenderLineEdit::updateFromElement): Ditto.
28514        (RenderLineEdit::slotTextChanged): Ditto.
28515        (RenderSelect::updateFromElement): Ditto.
28516        (TextAreaWidget::TextAreaWidget): Moved out most of the initialization since it's not something
28517        that requires a derived class. Now we don't use this class at all for WebCore, but they still
28518        have it for KDE.
28519        (TextAreaWidget::event): Moved out the ifdefs.
28520        (RenderTextArea::RenderTextArea): Moved setting code from TextAreaWidget here. Put a bunch that
28521        we don't need at all inside !APPLE_CHANGES, and removed the setting for scroll bars, since that's
28522        now done in setStyle.
28523        (RenderTextArea::handleFocusOut): Use type QTextEdit instead of TextAreaWidget since that's all
28524        that's needed and WebCore no longer has TextAreaWidget.
28525        (RenderTextArea::calcMinMaxWidth): Ditto.
28526        (RenderTextArea::setStyle): Add code to set scroll bar modes based on wrap setting combined with
28527        overflow style.
28528        (RenderTextArea::updateFromElement): Use type QTextEdit.
28529        (RenderTextArea::text): Ditto.
28530        (RenderTextArea::select): Ditto.
28531
28532        * kwq/KWQTextArea.mm:
28533        (-[KWQTextArea _configureTextViewForWordWrapMode]): Don't set horizontal scroller visibility here,
28534        since it's now handled by QTextEdit.
28535        (-[KWQTextArea initWithFrame:]): Don't set vertical scroller visibility or scroller auto-hiding.
28536
28537        * kwq/KWQTextEdit.h: Add setScrollBarModes function to be used instead of separate setter for
28538        the horizontal and vertical mode; needed because AppKit switches "autohide" for both at once.
28539        * kwq/KWQTextEdit.mm: (QTextEdit::setScrollBarModes): Added.
28540
285412004-12-10  Ken Kocienda  <kocienda@apple.com>
28542
28543        Reviewed by Darin
28544
28545        Fix for this bug:
28546        
28547        <rdar://problem/3915047> HItting return in empty document inserts <p> but 
28548        insertion point does not move
28549
28550        * khtml/editing/htmlediting.cpp:
28551        (khtml::InsertParagraphSeparatorCommand::doApply): The issue is that the
28552        code to insert the <p> element for the return is not detecting the fact
28553        that the document is empty. Inserting a <p> into an empty body will not
28554        "add a new line" as the user expects. With this change, we'll add a second 
28555        <p> when the root editable element has no rendered kids.
28556
285572004-12-10  Maciej Stachowiak  <mjs@apple.com>
28558
28559        Reviewed by John.
28560
28561	<rdar://problem/3912979> REGRESSION (125-173): repro crash in HTMLCollectionImpl code (www.clubtravel.ie)
28562
28563        * khtml/html/html_miscimpl.cpp:
28564        (HTMLCollectionImpl::traverseNextItem): Pass base when traversing
28565	the initial one step, otherwise we might inadvertantly step
28566	outside the collection base, thereby causing assertion failures or
28567	other badness later.
28568
285692004-12-10  Ken Kocienda  <kocienda@apple.com>
28570
28571        Reviewed by Chris
28572
28573        * khtml/editing/htmlediting.cpp:
28574        (khtml::InsertParagraphSeparatorCommand::doApply): There is a starting block which is supposed to 
28575        act as the root node for this operation. However, a loop was incorrectly coded, and a parent node
28576        search could escape this node. Also, one other piece to code to move nodes to the new <p> element
28577        should do nothing if the starting point for the selection is itself the starting block.
28578        (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Similar changes, in spirit, to the above
28579        function, though the names and concepts are slightly different.
28580
285812004-12-10  Maciej Stachowiak  <mjs@apple.com>
28582
28583        Reviewed by Ken.
28584
28585	<rdar://problem/3907705> REGRESSION (172-173): DHTML menus are broken at hrweb.apple.com
28586        
28587	* khtml/dom/html_document.cpp:
28588        (HTMLDocument::nameableItems): New method, wrapper for HTMLCollection creation.
28589        * khtml/dom/html_document.h:
28590        * khtml/ecma/kjs_html.cpp:
28591        (KJS::HTMLDocument::tryGet): use doc.nameableItems(), not doc.all()!
28592        * khtml/html/html_miscimpl.cpp:
28593        (HTMLCollectionImpl::traverseNextItem): Added new DOC_NAMEABLE_ITEMS type, this represents
28594	the items that can be accessed directly as a document propery, in particular forms, images,
28595	objects, applets and embeds.
28596        (HTMLCollectionImpl::updateNameCache): Fix some nameCache/idCache confusion.
28597        (HTMLFormCollectionImpl::updateNameCache): Ditto.
28598        * khtml/html/html_miscimpl.h:
28599        (DOM::HTMLCollectionImpl::): Added new type.
28600
286012004-12-10  Ken Kocienda  <kocienda@apple.com>
28602
28603        Reviewed by John
28604
28605        Fix for this bug:
28606        
28607        <rdar://problem/3914779> REGRESSION (Mail): Cannot arrow navigate to position before last character on text-wrapped line
28608
28609        * khtml/rendering/render_text.cpp:
28610        (RenderText::caretRect): Code was not detecting space at the end of a line correctly. Now it does.
28611
286122004-12-10  Ken Kocienda  <kocienda@apple.com>
28613
28614        Reviewed by John
28615
28616        Fix for this bug:
28617
28618        <rdar://problem/3914755> REGRESSION (Mail): Insertion point disappears after pasting paragraph
28619
28620        * khtml/editing/htmlediting.cpp:
28621        (khtml::ReplaceSelectionCommand::doApply): Selection could end up in a "placeholder" node
28622        that was removed from the document when pasting. This caused the disappearance. Now this
28623        is detected, and the selection is shifted to a node that is in the document.
28624
286252004-12-09  Richard Williamson   <rjw@apple.com>
28626
28627	Check to disable threaded decoding during
28628	layout tests wasn't invoking function, just checking address of 
28629	function, which would always return true.
28630	
28631        * kwq/WebCoreImageRendererFactory.m:
28632        (+[WebCoreImageRendererFactory shouldUseThreadedDecoding]):
28633
286342004-12-09  David Hyatt  <hyatt@apple.com>
28635
28636	Fix for 3892686, left/top overflow was not being propagated properly up to containing blocks because of a math
28637	error.
28638
28639	Also fix a bug I noticed on the same page where relative position offsets were not being added in properly for
28640	all inlines when repainting.
28641	
28642        Reviewed by rjw
28643
28644        * khtml/rendering/render_block.cpp:
28645        (khtml::RenderBlock::layoutBlockChildren):
28646        * khtml/rendering/render_flow.cpp:
28647        (RenderFlow::getAbsoluteRepaintRect):
28648
286492004-12-09  David Hyatt  <hyatt@apple.com>
28650
28651	Fix for 3867545, finance.yahoo.com lays out incorrectly.  Add a quirk that will prevent tables from moving
28652	down below floats when there is insufficient space.  Instead we will match Gecko and just spill out of the
28653	containing block to the right.  This appears to be the more common desired behavior, despite being wrong.
28654	WinIE sometimes wraps and sometimes doesn't, but it's really hard for us to match its inconsistency.
28655	
28656        Reviewed by john
28657
28658        * khtml/rendering/render_block.cpp:
28659        (khtml::RenderBlock::getClearDelta):
28660        * layout-tests/apple-only/base/www.cnn.com/index-expected.txt:
28661        * layout-tests/apple-only/base/www.ebay.com/index-expected.txt:
28662        * layout-tests/apple-only/base/www.excite.com/index-expected.txt:
28663        * layout-tests/fast/block/margin-collapse/102-expected.txt:
28664        * layout-tests/fast/block/margin-collapse/102.html:
28665
286662004-12-09  Richard Williamson   <rjw@apple.com>
28667
28668	Fixed <rdar://problem/3914078> worldclock crashing gc related
28669
28670	Use ProtectedValue for Context2D instance members.
28671
28672        Reviewed by Maciej.
28673
28674        * khtml/ecma/kjs_html.h:
28675
286762004-12-09  John Sullivan  <sullivan@apple.com>
28677
28678        Reviewed by Dave.
28679        
28680        - fixed <rdar://problem/3731099> Move AXTitle string for image elements to AXDescription
28681
28682        * kwq/KWQAccObject.mm:
28683        (-[KWQAccObject title]): moved image alt tag code out of here
28684        (-[KWQAccObject accessibilityDescription]): moved image alt tag code into this new method
28685        (-[KWQAccObject accessibilityAttributeNames]): include AXDescription in the set of attributes
28686        that ordinary elements return; this means that ordinary elements that aren't images will return
28687        a nil description, which isn't ideal, but is in keeping with the way the rest of these attributes
28688        work here.
28689        (-[KWQAccObject accessibilityAttributeValue:]):
28690        call accessibilityDescription when asked for AXDescription
28691
286922004-12-09  Ken Kocienda  <kocienda@apple.com>
28693
28694        Reviewed by Harrison
28695
28696        Fix for this bug:
28697        
28698        <rdar://problem/3910425> REGRESSION (Mail): Crash in ReplaceSelectionCommand; selection is empty, leading to null deref
28699
28700        * khtml/editing/htmlediting.cpp:
28701        (khtml::MoveSelectionCommand::doApply): The node representing the destination for the move may have
28702        been deleted. If this is the case, set the destination to the node the delete command provides in
28703        its ending selection.
28704
28705=== Safari-175 ===
28706
287072004-12-09  Ken Kocienda  <kocienda@apple.com>
28708
28709        Reviewed by John
28710        
28711        Fix for this bug:
28712        
28713        <rdar://problem/3912841> REGRESSION (173-TOT): Some images report 0x0 dimensions on layout tests, causes spurious test failures
28714
28715        The new threaded image decoding capability can throw off layout tests. The issue is that the decoding
28716        callback may not be delivered before the program asks for the dimensions of an image in order to
28717        wrote the layout dimensions. More generally, I think we need to ensure that there are no races in
28718        layout tests, so I have added a flag to the render tree debug code that we can set when debugging.
28719
28720        * kwq/KWQRenderTreeDebug.cpp:
28721        (debuggingRenderTree): New function. Returns flag which tells whether the program is debugging the render tree.
28722        (externalRepresentation): Sets debuggingRenderTree flag to true;
28723        * kwq/KWQRenderTreeDebug.h:
28724        * kwq/WebCoreImageRendererFactory.m:
28725        (+[WebCoreImageRendererFactory shouldUseThreadedDecoding]): Checks debuggingRenderTree flag and will not
28726        do threaded decoding in any case if the flag is set.
28727
287282004-12-09  Chris Blumenberg  <cblu@apple.com>
28729
28730	Fix for busting XMLHTTPRequest.
28731
28732        Reviewed by kocienda.
28733
28734        * khtml/misc/loader.cpp:
28735        (Loader::servePendingRequests): pass true for deliverAllData
28736        * kwq/KWQKJob.h:
28737        (KIO::get): take deliverAllData param
28738        (KIO::http_post): ditto
28739        * kwq/KWQKJobClasses.h:
28740        * kwq/KWQKJobClasses.mm:
28741        (KIO::TransferJob::TransferJob): if deliverAllData, create signal with data param
28742        (KIO::TransferJob::emitResult): if deliverAllData, call signal with data param
28743
287442004-12-09  Ken Kocienda  <kocienda@apple.com>
28745
28746        Reviewed by John
28747
28748        <rdar://problem/3911011> REGRESSION (Mail): Spaces at end of line causing word wrap lost when copied/pasted
28749
28750        * khtml/xml/dom_nodeimpl.cpp:
28751        (NodeImpl::renderedText): Fixed the code so that spaces at the end of lines are not skipped.
28752
287532004-12-07  Richard Williamson   <rjw@apple.com>
28754
28755	Support threaded image decoding on machines w/ > 2 CPUs.
28756
28757        Reviewed by Maciej and Chris.
28758
28759        * khtml/misc/loader.cpp:
28760        (CachedImageCallback::notifyUpdate):
28761        (CachedImageCallback::notifyFinished):
28762        (CachedImageCallback::notifyDecodingError):
28763        (CachedImageCallback::handleError):
28764        (CachedImageCallback::clear):
28765        (CachedImage::CachedImage):
28766        (CachedImage::clear):
28767        (CachedImage::data):
28768        (CachedImage::checkNotify):
28769        (Loader::servePendingRequests):
28770        (Loader::slotFinished):
28771        (Loader::numRequests):
28772        (Loader::cancelRequests):
28773        (Loader::removeBackgroundDecodingRequest):
28774        * khtml/misc/loader.h:
28775        (khtml::CachedImageCallback::CachedImageCallback):
28776        (khtml::CachedImageCallback::ref):
28777        (khtml::CachedImageCallback::deref):
28778        (khtml::CachedImage::decoderCallback):
28779        * khtml/rendering/render_object.cpp:
28780        (RenderObject::setPixmap):
28781        * kwq/KWQPixmap.h:
28782        * kwq/KWQPixmap.mm:
28783        (-[WebImageCallback initWithCallback:khtml::]):
28784        (-[WebImageCallback _commonTermination]):
28785        (-[WebImageCallback dealloc]):
28786        (-[WebImageCallback finalize]):
28787        (-[WebImageCallback notify]):
28788        (-[WebImageCallback setImageSourceStatus:]):
28789        (-[WebImageCallback status]):
28790        (QPixmap::shouldUseThreadedDecoding):
28791        (QPixmap::receivedData):
28792        * kwq/WebCoreImageRenderer.h:
28793        * kwq/WebCoreImageRendererFactory.h:
28794        * kwq/WebCoreImageRendererFactory.m:
28795        (+[WebCoreImageRendererFactory shouldUseThreadedDecoding]):
28796        (+[WebCoreImageRendererFactory setShouldUseThreadedDecoding:]):
28797
287982004-12-07  Ken Kocienda  <kocienda@apple.com>
28799
28800        Reviewed by John
28801
28802        * khtml/editing/htmlediting.cpp:
28803        (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Fix a problem with my
28804        change in thei code yesterday. Call to insertBlockPlaceholderIfNeeded() must be done
28805        after new block has been inserted, otherwise a crash can result. Shuffle down call 
28806        to insertBlockPlaceholderIfNeeded() a couple of lines (where the node is inserted), 
28807        and all is good.
28808
288092004-12-07  Ken Kocienda  <kocienda@apple.com>
28810
28811        Reviewed by John
28812
28813        Fix for this bug:
28814        
28815        <rdar://problem/3907422> REGRESSION (Mail): Pasting quoted content can place content after body element
28816
28817        * khtml/editing/htmlediting.cpp:
28818        (khtml::ReplaceSelectionCommand::doApply): Detect when the body element is the "reference block" used
28819        for determining the location for inserting content. Do not allow an insert before or after if the
28820        reference block is the body. Perform insertNodeAt(0) and appendNode, respectively, in the block-is-body case.
28821        * layout-tests/editing/inserting/insert-3907422-fix-expected.txt: Added.
28822        * layout-tests/editing/inserting/insert-3907422-fix.html: Added.
28823
288242004-12-07  Darin Adler  <darin@apple.com>
28825
28826        Reviewed by Don.
28827
28828        - fixed <rdar://problem/3908701> REGRESSION: Cursor does not change to "hand" over active links
28829
28830        * kwq/KWQEvent.mm: (positionForEvent): Add NSMouseMoved to list of events that have mouse location.
28831
288322004-12-07  Ken Kocienda  <kocienda@apple.com>
28833
28834        Reviewed by John
28835
28836        Changed name of constant from KHTMLInterchangeNewline to AppleInterchangeNewline.
28837        I discussed this with Hyatt and he agreed that going with "Apple" names was OK.
28838
28839        * khtml/editing/html_interchange.h: Name change, as described above.
28840        * khtml/editing/htmlediting.cpp:
28841        (khtml::ReplacementFragment::isInterchangeNewlineComment): Ditto.
28842        * khtml/xml/dom2_rangeimpl.cpp:
28843        (DOM::RangeImpl::toHTML): Ditto.
28844
288452004-12-07  Ken Kocienda  <kocienda@apple.com>
28846
28847        Reviewed by me
28848        
28849        Added a couple more layout tests.
28850
28851        * layout-tests/editing/deleting/delete-line-013-expected.txt: Added.
28852        * layout-tests/editing/deleting/delete-line-013.html: Added.
28853        * layout-tests/editing/deleting/delete-line-014-expected.txt: Added.
28854        * layout-tests/editing/deleting/delete-line-014.html: Added.
28855
288562004-12-06  Maciej Stachowiak  <mjs@apple.com>
28857
28858        Reviewed by Hyatt.
28859
28860	- fixed <rdar://problem/3906974> assertion failure in QWidget::beforeMouseDown clicking on <select multiple>
28861        
28862	* kwq/KWQListBox.mm:
28863        (QListBox::QListBox): Initialize KWQListBoxScrollView with this.
28864        (-[KWQListBoxScrollView initWithListBox:]): Make this class a KWQWidgetHolder.
28865        (-[KWQListBoxScrollView widget]): See above.
28866        (-[KWQTableView mouseDown:]): Pass outerView rather than self to beforeMouseDown and
28867	afterMouseDown, to avoid triggering an assertion failure.
28868
288692004-12-06  David Hyatt  <hyatt@apple.com>
28870
28871	Fix for 3615411, the linesAppended optimization was old and broken, and it's easier with the new code fixes
28872	made by me, kocienda and harrison to just remove it.
28873	
28874        Reviewed by mjs
28875
28876        * khtml/rendering/bidi.cpp:
28877        (khtml::RenderBlock::layoutInlineChildren):
28878        * khtml/rendering/render_block.cpp:
28879        (khtml:::RenderFlow):
28880        * khtml/rendering/render_block.h:
28881        * khtml/rendering/render_flow.cpp:
28882        (RenderFlow::dirtyLinesFromChangedChild):
28883
288842004-12-06  David Hyatt  <hyatt@apple.com>
28885
28886	Fix for 3787133, some web pages print with many blank pages.  Make sure to use the real page print rect and
28887	not a damage rect that can be changed when intersected with the clip regions of the web page.
28888	
28889        Reviewed by john
28890
28891        * khtml/rendering/render_canvas.h:
28892        (khtml::RenderCanvas::printRect):
28893        (khtml::RenderCanvas::setPrintRect):
28894        * khtml/rendering/render_flow.cpp:
28895        (RenderFlow::paintLines):
28896        * khtml/rendering/render_list.cpp:
28897        (RenderListMarker::paint):
28898        * kwq/KWQKHTMLPart.mm:
28899        (KWQKHTMLPart::adjustPageHeight):
28900
289012004-12-06  David Harrison  <harrison@apple.com>
28902
28903        Reviewed by Ken Kocienda and Dave Hyatt (OOPS!).
28904
28905		<rdar://problem/3849947> Typing after pasting line does not appear until after window resize.
28906		
28907		
28908        * khtml/rendering/render_flow.cpp:
28909        (RenderFlow::dirtyLinesFromChangedChild):
28910		Dirty the line above because new child can inval the cached line break position of previous line.
28911
289122004-12-06  David Hyatt  <hyatt@apple.com>
28913
28914	Fix for 3254464, radio buttons do not work for quiz on netscape.com.  Left/top overflow needed to be implemented.
28915	This also fixes 3106907, link hover color only partially set on rollover and the more general architecture bug
28916	3126929, handle top/left overflow.
28917
28918	This patch also fixes 3902891, scroll bar of position:fixed content moves when a page is scrolled.
28919
28920	Finally, the Emerson regression 3869718 (error involving computing the rightmost/lowest position of overflow:auto
28921	regions and web pages) has been fixed.
28922	
28923        Reviewed by mjs
28924
28925        * khtml/rendering/bidi.cpp:
28926        (khtml::RenderBlock::computeHorizontalPositionsForLine):
28927        (khtml::RenderBlock::checkLinesForOverflow):
28928        * khtml/rendering/render_block.cpp:
28929        (khtml:::RenderFlow):
28930        (khtml::RenderBlock::overflowHeight):
28931        (khtml::RenderBlock::overflowWidth):
28932        (khtml::RenderBlock::overflowLeft):
28933        (khtml::RenderBlock::overflowTop):
28934        (khtml::RenderBlock::overflowRect):
28935        (khtml::RenderBlock::layoutBlock):
28936        (khtml::RenderBlock::layoutBlockChildren):
28937        (khtml::RenderBlock::paint):
28938        (khtml::RenderBlock::floatRect):
28939        (khtml::RenderBlock::lowestPosition):
28940        (khtml::RenderBlock::rightmostPosition):
28941        (khtml::RenderBlock::leftmostPosition):
28942        (khtml::RenderBlock::nodeAtPoint):
28943        * khtml/rendering/render_block.h:
28944        * khtml/rendering/render_box.h:
28945        (khtml::RenderBox::borderBox):
28946        (khtml::RenderBox::borderTopExtra):
28947        (khtml::RenderBox::borderBottomExtra):
28948        * khtml/rendering/render_layer.cpp:
28949        (RenderLayer::paintScrollbars):
28950        (mustExamineRenderer):
28951        (RenderLayer::intersectsDamageRect):
28952        (RenderLayer::containsPoint):
28953        * khtml/rendering/render_line.cpp:
28954        (khtml::InlineFlowBox::placeBoxesHorizontally):
28955        (khtml::InlineFlowBox::verticallyAlignBoxes):
28956        * khtml/rendering/render_line.h:
28957        (khtml::InlineBox::leftOverflow):
28958        (khtml::InlineBox::rightOverflow):
28959        (khtml::InlineFlowBox::setVerticalOverflowPositions):
28960        (khtml::RootInlineBox::RootInlineBox):
28961        (khtml::RootInlineBox::leftOverflow):
28962        (khtml::RootInlineBox::rightOverflow):
28963        (khtml::RootInlineBox::setVerticalOverflowPositions):
28964        (khtml::RootInlineBox::setHorizontalOverflowPositions):
28965        * khtml/rendering/render_object.h:
28966        (khtml::RenderObject::borderBox):
28967        (khtml::RenderObject::overflowLeft):
28968        (khtml::RenderObject::overflowTop):
28969        (khtml::RenderObject::overflowRect):
28970        (khtml::RenderObject::floatRect):
28971        * khtml/rendering/render_table.cpp:
28972        (RenderTable::layout):
28973        (RenderTable::paint):
28974        (RenderTable::paintBoxDecorations):
28975        (RenderTable::calcMinMaxWidth):
28976        * khtml/rendering/render_table.h:
28977        (khtml::RenderTableCell::borderTopExtra):
28978        (khtml::RenderTableCell::borderBottomExtra):
28979        * kwq/KWQRect.h:
28980        * kwq/KWQRect.mm:
28981        (QRect::inflate):
28982
289832004-12-06  Maciej Stachowiak  <mjs@apple.com>
28984
28985        Reviewed by John.
28986
28987	- fixed <rdar://problem/3903797> scripts can cause other frames/windows to execute arbitrary script using javascript: URLs
28988        
28989	I changed all unprotected places that can navigate a different
28990	window or frame from script to check for a javascript: URL, and if
28991	found, to check for safety using cross-site-script rules. 
28992
28993	I considered a few other possible exploits and made no change:
28994
28995	- document.location is already protected because the document
28996	object itself is protected
28997
28998	- frame.src, frame.location, iframe.src and targetted links are
28999	all safe because setting the URL of a frame to a javascript: URL
29000	executes the script in the context of the parent
29001
29002	* khtml/ecma/kjs_window.cpp:
29003        (WindowFunc::tryCall):
29004        (Location::put):
29005        (LocationFunc::tryCall):
29006
290072004-12-06  Ken Kocienda  <kocienda@apple.com>
29008
29009        Reviewed by Maciej
29010
29011        Fix for this bug:
29012        
29013        <rdar://problem/3890955> 8A314: Forward delete sometimes fails to delete the selected quoted text
29014
29015        * khtml/editing/htmlediting.cpp:
29016        (khtml::DeleteSelectionCommand::handleSpecialCaseBRDelete): Fixed bonehead coding mistake in the
29017        check for one of the special cases being checked for in this function. The specific case 
29018        intends to check for a selection that is only a <br> after a block ends (as in </div><br>). If it
29019        sees such markup, it deletes only the <br> and bails. However, this code would run in *any*
29020        case where a selection ended in a <br> after a block and would not delete any part of the
29021        selection preceding the <br>. Bad. I have tightened the check to see that only a <br> is
29022        selected.
29023
29024        Fixing the bug above was accomplished with an additional call to DOM::Position::downstream. This
29025        new use of the function exposed this bug:
29026        
29027        <rdar://problem/3907666> Incorrectly coded loop in Position::downstream can lead to infinite loop
29028
29029        * khtml/xml/dom_position.cpp:
29030        (DOM::Position::downstream): I am ashamed of my first cut at this. Rewrote the loop so it does 
29031        not have this fatal flaw. It is a much better design as well.
29032        
29033        * layout-tests/editing/deleting/delete-3800834-fix-expected.txt: Changes made this test
29034        have what I consider to be a better result. Going with it.
29035
290362004-12-06  Chris Blumenberg  <cblu@apple.com>
29037
29038	Fixed: <rdar://problem/3871718> REGRESSION (125-168): text marked bold with font that does not have bold variant copies as non-bold
29039
29040        Reviewed by hyatt.
29041
29042        * kwq/DOM.mm:
29043        (-[DOMElement _font]): new SPI for AppKit
29044        * kwq/DOMPrivate.h:
29045
290462004-12-06  Darin Adler  <darin@apple.com>
29047
29048        Reviewed by Maciej.
29049
29050        - fixed <rdar://problem/3906327> Select All of a large document is slow (>15 secs on my machine for attached specimen)
29051
29052        * kwq/KWQScrollView.mm: (QScrollView::updateContents): Intersect with visibleRect before calling through
29053        to NSView to dirty; NSView could also be more efficient in this case (I filed 3906343).
29054
290552004-12-06  John Sullivan  <sullivan@apple.com>
29056
29057        Darin found what appears to be the real leak that we were falsely blaming
29058        on the 'leaks' tool (3880245). I made the change, and ran layout tests and PLT to make
29059        sure nothing barfed.
29060
29061        * khtml/css/cssparser.cpp:
29062        (CSSParser::parseValue):
29063        call clearProperties() instead of just setting numParsedProperties to 0
29064        (CSSParser::parseDeclaration):
29065        ditto
29066        (CSSParser::createStyleDeclaration):
29067        ditto
29068
290692004-12-06  Ken Kocienda  <kocienda@apple.com>
29070
29071        Reviewed by me
29072        
29073        New layout tests.
29074
29075        * layout-tests/editing/inserting/insert-div-001-expected.txt: Added.
29076        * layout-tests/editing/inserting/insert-div-001.html: Added.
29077        * layout-tests/editing/inserting/insert-div-002-expected.txt: Added.
29078        * layout-tests/editing/inserting/insert-div-002.html: Added.
29079        * layout-tests/editing/inserting/insert-div-003-expected.txt: Added.
29080        * layout-tests/editing/inserting/insert-div-003.html: Added.
29081        * layout-tests/editing/inserting/insert-div-004-expected.txt: Added.
29082        * layout-tests/editing/inserting/insert-div-004.html: Added.
29083        * layout-tests/editing/inserting/insert-div-005-expected.txt: Added.
29084        * layout-tests/editing/inserting/insert-div-005.html: Added.
29085        * layout-tests/editing/inserting/insert-div-006-expected.txt: Added.
29086        * layout-tests/editing/inserting/insert-div-006.html: Added.
29087        * layout-tests/editing/inserting/insert-div-007-expected.txt: Added.
29088        * layout-tests/editing/inserting/insert-div-007.html: Added.
29089        * layout-tests/editing/inserting/insert-div-008-expected.txt: Added.
29090        * layout-tests/editing/inserting/insert-div-008.html: Added.
29091        * layout-tests/editing/inserting/insert-div-009-expected.txt: Added.
29092        * layout-tests/editing/inserting/insert-div-009.html: Added.
29093
290942004-12-06  Ken Kocienda  <kocienda@apple.com>
29095
29096        Reviewed by Harrison
29097
29098        Fix for this bug:
29099        
29100        <rdar://problem/3906948> REGRESSION (Mail): Insert paragraph code can make the insertion point "stick" in place.
29101
29102        * khtml/editing/htmlediting.cpp:
29103        (khtml::InsertParagraphSeparatorCommand::doApply): Call insertBlockPlaceholderIfNeeded(), passing block
29104        being added to this function. This ensures that the added block has a height.
29105        (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Ditto.
29106
291072004-12-06  Ken Kocienda  <kocienda@apple.com>
29108 
29109        Reviewed by John
29110        
29111        * khtml/dom/dom_string.cpp:
29112        (DOM::DOMString::substring): Expose method already on DOMStrimgImpl.
29113        * khtml/dom/dom_string.h: Ditto.
29114        * khtml/editing/htmlediting.cpp:
29115        (khtml::CompositeEditCommand::rebalanceWhitespace): New helper to create and execute a
29116        RebalanceWhitespaceCommand instance.
29117        (khtml::DeleteSelectionCommand::doApply): Call rebalanceWhitespace() after running command.
29118        (khtml::InsertLineBreakCommand::doApply): Ditto.
29119        (khtml::InsertParagraphSeparatorCommand::doApply): Ditto.
29120        (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Ditto.
29121        (khtml::InsertTextCommand::input): Ditto.
29122        (khtml::RebalanceWhitespaceCommand::RebalanceWhitespaceCommand): New command.
29123        (khtml::RebalanceWhitespaceCommand::~RebalanceWhitespaceCommand): Ditto.
29124        (khtml::RebalanceWhitespaceCommand::doApply): Ditto.
29125        (khtml::RebalanceWhitespaceCommand::doUnapply): Ditto.
29126        (khtml::RebalanceWhitespaceCommand::preservesTypingStyle): Ditto.
29127        (khtml::ReplaceSelectionCommand::completeHTMLReplacement): Ditto.
29128        * khtml/editing/htmlediting.h: Ditto.
29129        (khtml::RebalanceWhitespaceCommand::): Ditto.
29130
291312004-12-05  Darin Adler  <darin@apple.com>
29132
29133        - fixed small problem in my check-in from yesterday
29134
29135        * kwq/KWQEvent.mm:
29136        (positionForEvent): Get location from event without raising exception if it's the wrong type.
29137        (clickCountForEvent): Same, for clickCount.
29138        (QMouseEvent::QMouseEvent): Use the new helper functions so this can be constructed even with
29139        the wrong type of NSEvent. Required for cases where a keyboard event causes a "click" and we need
29140        to synthesize a QMouseEvent for KHTML internal use, using the key down NSEvent.
29141
291422004-12-04  Darin Adler  <darin@apple.com>
29143
29144        Reviewed by John.
29145
29146        - fixed <rdar://problem/3878329> REGRESSION (169-170): colors are wrong for my.yahoo.com due to CSS background parsing changes
29147
29148        * khtml/css/cssparser.cpp: (CSSParser::parseBackgroundShorthand): Changed function so it doesn't rely on the position
29149        attribute being at the end of the array and then moved position attribute before color attribute so it takes precedence.
29150        Since "0" can be both the X coordinate of a position and a legal color (meaning black), we need to do position first.
29151
29152        - fixed <rdar://problem/3760869> click events for input type=button or type=checkbox don't have flags like shiftKey set
29153
29154        * khtml/rendering/render_form.h: Remove unused RenderFormElement fields.
29155        * khtml/rendering/render_form.cpp:
29156        (RenderFormElement::RenderFormElement): Take out code to set a bunch of unused fields.
29157        (RenderFormElement::slotClicked): Change to create the QMouseEvent from the actual mouse event rather than
29158        creating it with all the flags set to 0, using the new QMouseEvent constructor that does so.
29159
29160        * kwq/KWQEvent.h: Added constructor that takes no parameters which uses the current event from AppKit.
29161        Made the click count getter const and added an isDoubleClick that matches the logic used elsewhere.
29162        Added a fixState helper method so the constructors can save code.
29163        * kwq/KWQEvent.mm:
29164        (QMouseEvent::QMouseEvent): Factored out the state-fixing code that was in the two existing constructors
29165        and added a third constructor that uses the "current event" from AppKit (used above).
29166        (QMouseEvent::fixState): Compute state and click count based on event type.
29167
29168        - fixed first symptom of <rdar://problem/3830936> REGRESSION (125-165): crash due to null font family, hang at changeforamerica.com
29169
29170        * kwq/KWQFontFamily.mm: (KWQFontFamily::getNSFamily): Handle empty strings specially so we don't run into trouble when
29171        the family name is a null string. This prevents the crash, but there are still other problems that may have the same
29172        underlying cause in CSS.
29173
29174        - fixed <rdar://problem/3829808> Safari crashes when adding a DOM node that was removed from an XMLHTTP request result
29175
29176        * khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::insertedIntoDocument):
29177        Added nil check before calling scheduleRelayout. This is new code so the nil-dereference is a recent regression.
29178
291792004-12-03  Chris Blumenberg  <cblu@apple.com>
29180
29181	New fixes for:
29182	<rdar://problem/3685766> WebDataSource is missing subresources when they use cached WebCore data
29183	<rdar://problem/3722434> REGRESSION?: Assertion failure trying to drag image in iframe (itapema.sc.gov.br)
29184	<rdar://problem/3903173> REGRESSION (172-TOT): assertion failure and crash in slotAllData logging into hotmail account
29185	<rdar://problem/3902749> REGRESSION (Tiger): missing image symbol does not appear
29186
29187        Reviewed by darin, rjw, kocienda.
29188
29189        * khtml/misc/loader.cpp:
29190        (CachedObject::~CachedObject):
29191        (CachedCSSStyleSheet::checkNotify):
29192        (Loader::servePendingRequests):
29193        (Loader::slotFinished):
29194        (Loader::slotReceivedResponse):
29195        (Cache::requestImage):
29196        (Cache::requestScript):
29197        * khtml/misc/loader.h:
29198        (khtml::CachedObject::CachedObject):
29199        (khtml::CachedObject::response):
29200        (khtml::CachedObject::allData):
29201        * kwq/KWQKJobClasses.h:
29202        * kwq/KWQKJobClasses.mm:
29203        (KIO::TransferJobPrivate::TransferJobPrivate):
29204        (KIO::TransferJobPrivate::~TransferJobPrivate):
29205        (KIO::TransferJob::TransferJob):
29206        (KIO::TransferJob::assembleResponseHeaders):
29207        (KIO::TransferJob::retrieveCharset):
29208        (KIO::TransferJob::emitResult):
29209        (KIO::TransferJob::emitReceivedResponse):
29210        * kwq/KWQLoader.h:
29211        * kwq/KWQLoader.mm:
29212        (KWQHeaderStringFromDictionary):
29213        (KWQCheckCacheObjectStatus):
29214        (KWQIsResponseURLEqualToURL):
29215        (KWQResponseURL):
29216        (KWQResponseMIMEType):
29217        (KWQCacheObjectExpiresTime):
29218        (khtml::CachedObject::setResponse):
29219        (khtml::CachedObject::setAllData):
29220        * kwq/KWQPixmap.h:
29221        * kwq/KWQPixmap.mm:
29222        (QPixmap::QPixmap):
29223        * kwq/KWQResourceLoader.mm:
29224        (-[KWQResourceLoader finishJobAndHandle:]):
29225        (-[KWQResourceLoader cancel]):
29226        (-[KWQResourceLoader reportError]):
29227        (-[KWQResourceLoader finishWithData:]):
29228        * kwq/KWQSignal.h:
29229        * kwq/KWQSignal.mm:
29230        (KWQSignal::call):
29231        * kwq/KWQSlot.h:
29232        * kwq/KWQSlot.mm:
29233        (KWQSlot::KWQSlot):
29234        (KWQSlot::call):
29235        * kwq/WebCoreBridge.h:
29236        * kwq/WebCoreResourceLoader.h:
29237
292382004-12-04  Darin Adler  <darin@apple.com>
29239
29240        Reviewed by John.
29241
29242        - fixed <rdar://problem/3876093> REGRESSION (166-167): Setting slider control's value from JavaScript has no effect (breaks RSS)
29243
29244        * khtml/rendering/render_form.cpp:
29245        (RenderSlider::updateFromElement): Call setValue to update the value of the DOM element rather than
29246        modifying the m_value data member directly. We don't use m_value at all for sliders now, and in fact
29247        the code relies on the fact that m_value is null. Setting m_value to a non-null value was causing the bug.
29248        (RenderSlider::slotSliderValueChanged): Ditto.
29249
292502004-12-03  John Sullivan  <sullivan@apple.com>
29251
29252        Reviewed by Ken.
29253        
29254        - fixed <rdar://problem/3889411> REGRESSION (125-172): repro crash in 
29255        khtml::BackgroundLayer::cullEmptyLayers
29256
29257        * khtml/rendering/render_style.cpp:
29258        (BackgroundLayer::cullEmptyLayers):
29259        added missing nil check
29260
29261=== Safari-173 ===
29262
292632004-12-03  Ken Kocienda  <kocienda@apple.com>
29264
29265        Reviewed by me
29266
29267        Roll out some recent changes by Chris that caused a performance regression.
29268        Fix is in hand, but it is a little risky this close to a submission. So,
29269        we have decided to roll back the change with the regression and roll in
29270        the new code after we submit.
29271
29272        * khtml/css/cssproperties.c:
29273        (hash_prop):
29274        (findProp):
29275        * khtml/css/cssvalues.c:
29276        (hash_val):
29277        (findValue):
29278        * khtml/misc/htmlattrs.c:
29279        (hash_attr):
29280        (findAttr):
29281        * khtml/misc/htmltags.c:
29282        (hash_tag):
29283        (findTag):
29284        * khtml/misc/loader.cpp:
29285        (CachedObject::~CachedObject):
29286        (CachedObject::setResponse):
29287        (CachedCSSStyleSheet::checkNotify):
29288        (Loader::servePendingRequests):
29289        (Loader::slotFinished):
29290        (Loader::slotReceivedResponse):
29291        (Cache::requestImage):
29292        (Cache::requestScript):
29293        * khtml/misc/loader.h:
29294        (khtml::CachedObject::CachedObject):
29295        (khtml::CachedObject::response):
29296        * kwq/KWQKJobClasses.h:
29297        * kwq/KWQKJobClasses.mm:
29298        (KIO::TransferJobPrivate::TransferJobPrivate):
29299        (KIO::TransferJobPrivate::~TransferJobPrivate):
29300        (KIO::TransferJob::TransferJob):
29301        (KIO::TransferJob::assembleResponseHeaders):
29302        (KIO::TransferJob::retrieveCharset):
29303        (KIO::TransferJob::emitResult):
29304        (KIO::TransferJob::emitReceivedResponse):
29305        * kwq/KWQLoader.h:
29306        * kwq/KWQLoader.mm:
29307        (KWQHeaderStringFromDictionary):
29308        (KWQCheckCacheObjectStatus):
29309        (KWQRetainResponse):
29310        (KWQReleaseResponse):
29311        (KWQIsResponseURLEqualToURL):
29312        (KWQResponseURL):
29313        (KWQResponseMIMEType):
29314        (KWQResponseTextEncodingName):
29315        (KWQResponseHeaderString):
29316        (KWQCacheObjectExpiresTime):
29317        (KWQLoader::KWQLoader):
29318        * kwq/KWQPixmap.h:
29319        * kwq/KWQPixmap.mm:
29320        (QPixmap::QPixmap):
29321        * kwq/KWQResourceLoader.mm:
29322        (-[KWQResourceLoader finishJobAndHandle]):
29323        (-[KWQResourceLoader cancel]):
29324        (-[KWQResourceLoader reportError]):
29325        (-[KWQResourceLoader finish]):
29326        * kwq/KWQSignal.h:
29327        * kwq/KWQSignal.mm:
29328        (KWQSignal::call):
29329        * kwq/KWQSlot.h:
29330        * kwq/KWQSlot.mm:
29331        (KWQSlot::KWQSlot):
29332        (KWQSlot::call):
29333        * kwq/WebCoreBridge.h:
29334        * kwq/WebCoreResourceLoader.h:
29335
293362004-12-03  John Sullivan  <sullivan@apple.com>
29337
29338        Reviewed by Chris.
29339        
29340        - fixed <rdar://problem/3903990> can't tab to all items on www.google.com any more (other pages too?)
29341
29342        * kwq/KWQKHTMLPart.mm:
29343        (KWQKHTMLPart::nextKeyViewInFrameHierarchy):
29344        when checking whether we moved the focus to another view, make sure we didn't "move" it to
29345        our documentView, because that's no move at all.
29346
293472004-12-03  Darin Adler  <darin@apple.com>
29348
29349        Reviewed by Vicki.
29350
29351        - fixed <rdar://problem/3901109> REGRESSION (171-172): repro crash in DOM::NodeImpl::setChanged at chick-fil-a.com
29352
29353        * khtml/css/css_valueimpl.cpp: (DOM::CSSMutableStyleDeclarationImpl::CSSMutableStyleDeclarationImpl):
29354        Added missing initialization for base class and node pointer.
29355
29356        - fixed a few places that could leave dangling node pointers
29357
29358        * khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::~HTMLBodyElementImpl):
29359        Clear out the node pointer when the node is destroyed.
29360        * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::~HTMLElementImpl): Ditto.
29361
293622004-12-03  Chris Blumenberg  <cblu@apple.com>
29363
29364	Fix for performance regression. My original patch added a signal for passing the data of a resource to its WebCore cache object. This patch passes the data with the preexisting "finished" symbol so we make less calls. 
29365	Fixed: <rdar://problem/3903173> REGRESSION (172-TOT): assertion failure and crash in slotAllData logging into hotmail account
29366
29367        Reviewed by rjw.
29368
29369        * khtml/misc/loader.cpp:
29370        (Loader::servePendingRequests): pass data param to slotFinished, removed allData signal
29371        (Loader::slotFinished): take data param
29372        * khtml/misc/loader.h:
29373        * kwq/KWQKJobClasses.h:
29374        * kwq/KWQKJobClasses.mm:
29375        (KIO::TransferJob::TransferJob): have m_result take a data param, removed m_allData
29376        (KIO::TransferJob::emitResult): take data param and pass it
29377        * kwq/KWQResourceLoader.mm:
29378        (-[KWQResourceLoader finishJobAndHandle:]): take data param and pass it
29379        (-[KWQResourceLoader cancel]): pass nil for data
29380        (-[KWQResourceLoader reportError]): ditto
29381        (-[KWQResourceLoader finishWithData:]): pass data
29382        * kwq/KWQSlot.mm:
29383        (KWQSlot::KWQSlot): pass data param to slotFinished
29384        (KWQSlot::call): added support for slotFinished_Loader, removed slotAllData
29385
293862004-12-03  Ken Kocienda  <kocienda@apple.com>
29387
29388        Reviewed by John
29389
29390        Did some clean up in the Position class as a result of trying to write some new layout
29391        tests and discovering a bug along the way.
29392
29393        I removed these three functions from the Position class:
29394        
29395        1. bool isFirstRenderedPositionOnLine() const;
29396        2. bool isLastRenderedPositionOnLine() const;
29397        3. static bool renderersOnDifferentLine(RenderObject *r1, long o1, RenderObject *r2, long o2);
29398        4. bool inFirstEditableInRootEditableElement() const;
29399
29400        The first two have replacements in the VisiblePosition class, and some code has been
29401        moved to use these new variants. The third function was a helper used only by these
29402        first two function, and can be removed as well. The fourth function was not used by anyone.
29403
29404        * khtml/editing/htmlediting.cpp:
29405        (khtml::InsertTextCommand::input): Change over to use VisiblePosition isFirstVisiblePositionOnLine().
29406        * khtml/editing/visible_position.cpp:
29407        (khtml::visiblePositionsOnDifferentLines): Added an additional check for blocks to this function.
29408        Incorrect results were being returned when asking about positions at the starts of blocks.
29409        * khtml/xml/dom_position.cpp:
29410        (DOM::Position::previousCharacterPosition): Change over to use VisiblePosition isFirstVisiblePositionOnLine().
29411        (DOM::Position::nextCharacterPosition): Change over to use VisiblePosition isLastVisiblePositionOnLine().
29412        (DOM::Position::rendersInDifferentPosition): Removed use of #3 helper in a log message. We can live without it.
29413        * khtml/xml/dom_position.h: Update header for deletions.
29414
294152004-12-03  Ken Kocienda  <kocienda@apple.com>
29416
29417        Reviewed by John
29418
29419        Terminology change in execCommand command identifiers. Specifically, the name of 
29420        "InsertNewline" command has been changed to "InsertLineBreak". This matches the 
29421        terminology used by AppKit. It is also more accurate, since the insertion of a
29422        "br" element is what the command does. The inspiration for this change is so the 
29423        -insertNewline AppKit method can be mapped to insert a new "div" element in 
29424        a document and avoid ambiguity with what the javascript editing command does.
29425        
29426        * khtml/editing/jsediting.cpp
29427        * layout-tests/editing/deleting/delete-tab-004.html
29428        * layout-tests/editing/editing.js
29429        * layout-tests/editing/inserting/insert-3654864-fix.html
29430        * layout-tests/editing/inserting/insert-3659587-fix.html
29431        * layout-tests/editing/inserting/insert-3775316-fix.html
29432        * layout-tests/editing/inserting/insert-3800346-fix.html
29433        * layout-tests/editing/inserting/insert-br-001.html
29434        * layout-tests/editing/inserting/insert-br-002.html
29435        * layout-tests/editing/inserting/insert-br-003.html
29436        * layout-tests/editing/inserting/insert-br-004.html
29437        * layout-tests/editing/inserting/insert-br-005.html
29438        * layout-tests/editing/inserting/insert-br-006.html
29439        * layout-tests/editing/inserting/insert-br-007.html
29440        * layout-tests/editing/inserting/insert-br-008.html
29441        * layout-tests/editing/inserting/insert-tab-004.html
29442        * layout-tests/editing/inserting/insert-text-with-newlines.html
29443        * layout-tests/editing/pasteboard/paste-text-010.html
29444
294452004-12-02  Ken Kocienda  <kocienda@apple.com>
29446
29447        Reviewed by John
29448
29449        Fix for this bug:
29450        
29451        <rdar://problem/3786362> REGRESSION (Mail): pasted text loses one newline
29452
29453        * khtml/editing/htmlediting.cpp:
29454        (khtml::InsertLineBreakCommand::doApply): Added check for strict mode before adding an extra br element
29455        at the end of a block. This is only necessary in quirks mode. Also, lower-case "br" used to make element.
29456        (khtml::ReplaceSelectionCommand::doApply): If the replacement adds a br element as the last element
29457        in a block and the document is in quirks mode, add an additional br to make the one in the 
29458        replacement content show up. This turns out to be much the same logic as is done in InsertLineBreakCommand.
29459        * layout-tests/editing/inserting/insert-3786362-fix-expected.txt: Added.
29460        * layout-tests/editing/inserting/insert-3786362-fix.html: Added.
29461
294622004-12-02  Richard Williamson   <rjw@apple.com>
29463
29464	Fixed <rdar://problem/3841332> REGRESSION (125.9-167u): repro crash in -[KWQPageState invalidate] involving .Mac images
29465
29466	Ensure that the document is cleared when leaving a non-HTML page.  This ensures that
29467	the b/f cache won't incorrectly trash the previous state when restoring.
29468
29469        Reviewed by John.
29470
29471        * kwq/WebCoreBridge.h:
29472        * kwq/WebCoreBridge.mm:
29473        (-[WebCoreBridge openURL:reload:contentType:refresh:lastModified:pageCache:]):
29474        (-[WebCoreBridge canCachePage]):
29475        (-[WebCoreBridge clear]):
29476
294772004-12-02  Ken Kocienda  <kocienda@apple.com>
29478
29479        Reviewed by Richard
29480
29481        Fix for this bug:
29482        
29483        <rdar://problem/3857775> 8A293: Mail.app crashes converting copy-pasted text into plain text
29484
29485        * khtml/xml/dom2_rangeimpl.cpp:
29486        (DOM::RangeImpl::commonAncestorContainer): Return the document element if no common ancestor container
29487        was found. This can happen in cases where the DOM was built from malformed markup (as in the case
29488        of this bug where there is content after the body tag). Did a little code clean up as well.
29489        (DOM::RangeImpl::compareBoundaryPoints): Made code more robust by adding some null checks.
29490
294912004-12-02  Ken Kocienda  <kocienda@apple.com>
29492
29493        Reviewed by Chris
29494
29495        Fix for this bug:
29496        
29497        <rdar://problem/3668157> REGRESSION (Mail): shift-click deselects when selection was created right-to-left
29498
29499        * khtml/khtml_part.cpp:
29500        (KHTMLPart::handleMousePressEventSingleClick): Use RangeImpl::compareBoundaryPoints
29501        to figure out which end of the selection to extend.
29502
295032004-12-02  David Harrison  <harrison@apple.com>
29504
29505        Reviewed by Ken Kocienda.
29506
29507		<rdar://problem/3834917> REGRESSION (Mail): double-clicking blank line selects end of previous line
29508		Fixed originally reported bug plus the case of double-clicking whitespace at the beginning of a line, which has a similar result.
29509
29510        * khtml/editing/visible_text.cpp:
29511        (khtml::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
29512        (khtml::SimplifiedBackwardsTextIterator::handleTextNode):
29513        (khtml::SimplifiedBackwardsTextIterator::handleReplacedElement):
29514        (khtml::SimplifiedBackwardsTextIterator::handleNonTextNode):
29515        (khtml::SimplifiedBackwardsTextIterator::emitCharacter):
29516        Distinguish BR from whitespace.
29517        * khtml/editing/visible_text.h:
29518        Distinguish BR from whitespace.
29519        * khtml/editing/visible_units.cpp:
29520        (khtml::previousWordBoundary):
29521        Use UPSTREAM visible position now that SimplifiedBackwardsTextIterator distinguishes BR from whitespace.  Otherwise, double-clicking at end of line would result in caret selection at start of next line. 
29522
295232004-12-02  Ken Kocienda  <kocienda@apple.com>
29524
29525        Reviewed by John
29526
29527        Fix for this bug:
29528        
29529        <rdar://problem/3900996> Crash dragging past end of contentEditable DIV, at DOM::RangeImpl::pastEndNode() const + 24
29530
29531        * khtml/xml/dom_position.cpp:
29532        (DOM::Position::equivalentRangeCompliantPosition): Fixed this function so that it constrains the offset
29533        of the position to be >= 0 and <= number of kids of its node. Not doing this constraining led to a DOM
29534        exception trying to use a Position returned from this function to set the boundary point of a Range (which
29535        eventually led to the crash). Since this crash happened, it seems like this function was failing in its
29536        contract to return a range-compliant position, hence the need for this fix.
29537
295382004-12-01  Ken Kocienda  <kocienda@apple.com>
29539
29540        Reviewed by me
29541
29542        Moving code only.
29543
29544        * khtml/editing/htmlediting.cpp: Move ReplaceSelectionCommand into alphabetical order with
29545        regard to other editing commands. The class had a name change ages ago, and it was never
29546        moved.
29547        * khtml/editing/htmlediting.h: Ditto.
29548
295492004-12-01  Ken Kocienda  <kocienda@apple.com>
29550
29551        Reviewed by Hyatt
29552        
29553        Some improvements for paste, including some new code to annotate
29554        whitespace when writing to the pasteboard to ensure that the meaning
29555        of the markup on the pasteboard is unambiguous.
29556        
29557        There is also new code for reading this annotated markup from the pasteboard,
29558        removing the nodes that were added only to prevent ambiguity.
29559
29560        * WebCore.pbproj/project.pbxproj: Added html_interchange.h and html_interchange.cpp files.
29561        The header should have been added earlier, but I did not do so.
29562        * khtml/editing/html_interchange.cpp: Added.
29563        (convertHTMLTextToInterchangeFormat):
29564        * khtml/editing/html_interchange.h: Added some new constants for use with whitespace annotations.
29565        * khtml/editing/htmlediting.cpp:
29566        (khtml::ReplacementFragment::ReplacementFragment): Now looks for and removes annotations added for whitespace.
29567        Also fixed a bug in the code that counts blocks in a fragment.
29568        (khtml::ReplacementFragment::isInterchangeConvertedSpaceSpan): New helper. Recognizes annotation spans.
29569        (khtml::ReplacementFragment::insertNodeBefore): New helper.
29570        (khtml::ReplaceSelectionCommand::doApply): Fixed a bug in the code that sets the start position
29571        for the replacement after deleting. This was causing a bug when pasting at the end of a block.
29572        * khtml/editing/htmlediting.h: Add some new declarations.
29573        * khtml/xml/dom2_rangeimpl.cpp:
29574        (DOM::RangeImpl::toHTML): Calls to startMarkup now pass true for the new annotate flag.
29575        * khtml/xml/dom_nodeimpl.cpp:
29576        (NodeImpl::stringValueForRange): New helper.
29577        (NodeImpl::renderedText): New helper to return only the rendered text in a node.
29578        (NodeImpl::startMarkup): Now takes an additional flag to control whether interchange annotations
29579        should be added. Called by the paste code.
29580        * khtml/xml/dom_nodeimpl.h: Added and modified function declarations.
29581
29582        New test to check the khtml::ReplaceSelectionCommand::doApply fix.
29583        * layout-tests/editing/pasteboard/paste-text-010-expected.txt: Added.
29584        * layout-tests/editing/pasteboard/paste-text-010.html: Added.
29585
295862004-11-30  Chris Blumenberg  <cblu@apple.com>
29587
29588        * ChangeLog: removed conflict marker
29589
295902004-11-30  Chris Blumenberg  <cblu@apple.com>
29591
29592	Fixed:
29593	<rdar://problem/3685766> WebDataSource is missing subresources when they use cached WebCore data
29594	<rdar://problem/3722434> REGRESSION?: Assertion failure trying to drag image in iframe (itapema.sc.gov.br)
29595
29596        Reviewed by darin.
29597
29598        * khtml/misc/loader.cpp:
29599        (CachedObject::~CachedObject): release m_allData
29600        (CachedObject::setAllData): new
29601        (Loader::servePendingRequests): connect slotAllData
29602        (Loader::slotAllData): new
29603        (Cache::requestImage): tweak
29604        * khtml/misc/loader.h:
29605        (khtml::CachedObject::CachedObject): set allData to 0
29606        (khtml::CachedObject::allData): new
29607        * kwq/KWQKJobClasses.h:
29608        * kwq/KWQKJobClasses.mm:
29609        (KIO::TransferJob::TransferJob): set m_allData
29610        (KIO::TransferJob::emitAllData): new
29611        * kwq/KWQLoader.mm:
29612        (KWQCheckCacheObjectStatus): pass WebKit the data instead of the length of the resource
29613        * kwq/KWQResourceLoader.mm:
29614        (-[KWQResourceLoader finishWithData:]): renamed to pass all data for the resource
29615        * kwq/KWQSlot.mm:
29616        (KWQSlot::KWQSlot): support for slotAllData
29617        (KWQSlot::call):
29618        * kwq/WebCoreBridge.h:
29619        * kwq/WebCoreResourceLoader.h:
29620
296212004-11-30  Maciej Stachowiak  <mjs@apple.com>
29622
29623        Reviewed by John.
29624
296252004-11-30  Maciej Stachowiak  <mjs@apple.com>
29626
29627        Reviewed by John.
29628
29629	<rdar://problem/3805311> REGRESSION (159-163): onload in dynamically written document not called (causes blank search page at Japanese EPP site, many others)
29630
29631        * khtml/khtml_part.cpp:
29632	(KHTMLPart::begin): call setParsing on document here after opening
29633	- from now on we'll only set parsing to true for a document open
29634	caused by page loading, not a programmatic one.
29635	* khtml/xml/dom_docimpl.cpp:
29636        (DocumentImpl::open): don't setParsing to true here any more.
29637
296382004-11-30  Maciej Stachowiak  <mjs@apple.com>
29639
29640        Reviewed by John.
29641
29642	- fix recent regression from collection perf fixes.
29643	
29644        * khtml/html/html_miscimpl.cpp:
29645        (HTMLFormCollectionImpl::updateNameCache): Look up the name
29646	attribute in the name cache, not the id cache (d'oh!)
29647
296482004-11-30  Darin Adler  <darin@apple.com>
29649
29650        Reviewed by Ken.
29651
29652        - rolled in a KDE fix for a problem that may underlie a number of crashes
29653
29654        * khtml/xml/dom2_rangeimpl.cpp: (RangeImpl::compareBoundaryPoints): Rolled in a change from
29655        the KDE guys to fix a subtle problem. Code said "n = n =".
29656
29657        - rolled in a KDE fix for a containingBlock crash
29658
29659        * khtml/rendering/render_object.cpp: Roll in a change from KDE that adds frameset to the list of
29660        elements that can not be a containingBlock. They said this fixes a crash, although I did not look
29661        into that further.
29662
29663        - fixed <rdar://problem/3884660> 8A305: Repro crash in QScrollBar::setValue (affects Safari RSS)
29664
29665        * kwq/KWQButton.mm:
29666        (-[KWQButton initWithQButton:]): Set up target and action here instead of in caller.
29667        (-[KWQButton detachQButton]): Added.
29668        (-[KWQButton sendConsumedMouseUpIfNeeded]): Check button for nil instead of checking target.
29669        (-[KWQButton mouseDown:]): Add calls to QWidget::beforeMouseDown/afterMouseDown.
29670        (-[KWQButton widget]): Added.
29671        (-[KWQButton becomeFirstResponder]): Added check to handle when button is 0.
29672        (-[KWQButton resignFirstResponder]): Ditto.
29673        (-[KWQButton canBecomeKeyView]): Ditto.
29674        (QButton::QButton): Remove target and action setup; handled in KWQButton now.
29675        (QButton::~QButton): Call detachQButton instead of setTarget:nil.
29676
29677        * kwq/KWQComboBox.mm:
29678        (QComboBox::~QComboBox): Call detachQComboBox.
29679        (-[KWQPopUpButtonCell detachQComboBox]): Added.
29680        (-[KWQPopUpButtonCell trackMouse:inRect:ofView:untilMouseUp:]): Handle case where box is 0.
29681        (-[KWQPopUpButtonCell setHighlighted:]): Ditto.
29682        (-[KWQPopUpButton action:]): Ditto.
29683        (-[KWQPopUpButton widget]): Tweaked.
29684        (-[KWQPopUpButton mouseDown:]): Added. Calls QWidget::beforeMouseDown/afterMouseDown.
29685        (-[KWQPopUpButton becomeFirstResponder]): Handle case where widget is 0.
29686        (-[KWQPopUpButton resignFirstResponder]): Ditto.
29687        (-[KWQPopUpButton canBecomeKeyView]): Ditto.
29688
29689        * kwq/KWQLineEdit.mm: (QLineEdit::~QLineEdit): Updated to use new detachQLineEdit name.
29690
29691        * kwq/KWQListBox.mm:
29692        (-[KWQTableView mouseDown:]): Added. Calls QWidget::beforeMouseDown/afterMouseDown.
29693
29694        * kwq/KWQScrollBar.h: Removed m_scroller field.
29695        * kwq/KWQScrollBar.mm:
29696        (-[KWQScrollBar initWithQScrollBar:]): Rearranged a little bit.
29697        (-[KWQScrollBar detachQScrollBar]): Added.
29698        (-[KWQScrollBar widget]): Added.
29699        (-[KWQScrollBar mouseDown:]): Added.  Calls QWidget::beforeMouseDown and afterMouseDown.
29700        (QScrollBar::QScrollBar): Changed to no longer set m_scroller.
29701        (QScrollBar::~QScrollBar): Changed to call detachQScrollBar. No longer calls removeFromSuperview.
29702        (QScrollBar::setValue): Chagned to use getView instad of m_scrollBar.
29703        (QScrollBar::setKnobProportion): Ditto.
29704        (QScrollBar::scrollbarHit): Ditto.
29705
29706        * kwq/KWQScrollView.mm:
29707        (QScrollView::addChild): Changed to call QWidget to add to superview to accomodate the
29708        hack where we don't remove right away when doing mouse tracking.
29709        (QScrollView::removeChild): Changed to call QWidget to remove from superview to accomodate
29710        the hack where we don't add right away when doing mouse tracking.
29711
29712        * kwq/KWQSlider.h: Added destructor.
29713        * kwq/KWQSlider.mm:
29714        (-[KWQSlider initWithQSlider:]): Tweaked a little.
29715        (-[KWQSlider detachQSlider]): Added.
29716        (-[KWQSlider mouseDown:]): Added call to QWidget::beforeMouseDown/afterMouseDown.
29717        (-[KWQSlider widget]): Added.
29718        (QSlider::~QSlider): Added. Calls detachQSlider.
29719
29720        * kwq/KWQTextArea.h: Added detachQTextEdit method.
29721        * kwq/KWQTextArea.mm:
29722        (-[KWQTextArea detachQTextEdit]): Added.
29723        (-[KWQTextArea textDidChange:]): Added check for widget of 0.
29724        (-[KWQTextArea becomeFirstResponder]): Ditto.
29725        (-[KWQTextArea nextKeyView]): Ditto.
29726        (-[KWQTextArea previousKeyView]): Ditto.
29727        (-[KWQTextArea drawRect:]): Ditto.
29728        (-[KWQTextAreaTextView insertTab:]): Ditto.
29729        (-[KWQTextAreaTextView insertBacktab:]): Ditto.
29730        (-[KWQTextAreaTextView shouldDrawInsertionPoint]): Ditto.
29731        (-[KWQTextAreaTextView selectedTextAttributes]): Ditto.
29732        (-[KWQTextAreaTextView mouseDown:]): Ditto.
29733        (-[KWQTextAreaTextView keyDown:]): Ditto.
29734        (-[KWQTextAreaTextView keyUp:]): Ditto.
29735
29736        * kwq/KWQTextEdit.h: Added ~QTextEdit.
29737        * kwq/KWQTextEdit.mm: (QTextEdit::~QTextEdit): Added. Calls detachQTextEdit.
29738
29739        * kwq/KWQTextField.h: Changed invalidate to detachQLineEdit.
29740        * kwq/KWQTextField.mm: (-[KWQTextFieldController detachQLineEdit]): Changed.
29741
29742        * kwq/KWQWidget.h: Added addToSuperview/removeFromSuperview for use from QScrollView.
29743        Added beforeMouseDown and afterMouseDown for use in widget implementations.
29744        Removed unused hasMouseTracking function.
29745        * kwq/KWQWidget.mm:
29746        (QWidget::QWidget): Initialize two new fields.
29747        (QWidget::~QWidget): Added code to remove view when widget is destroyed.
29748        (QWidget::getOuterView): Remove unneeded exception blocking since we're just caling superview.
29749        (QWidget::addToSuperview): Added.
29750        (QWidget::removeFromSuperview): Added.
29751        (QWidget::beforeMouseDown): Added.
29752        (QWidget::afterMouseDown): Added.
29753
29754        * khtml/rendering/render_layer.cpp:
29755        (RenderLayer::setHasHorizontalScrollbar): Remove parent parameter; let addChild call addSubview:.
29756        (RenderLayer::setHasVerticalScrollbar): Ditto.
29757
297582004-11-30  Ken Kocienda  <kocienda@apple.com>
29759
29760        Reviewed by John
29761
29762        Fix for this bug:
29763        
29764        <rdar://problem/3863031> REGRESSION (Mail): caret continues flashing while mouse is down
29765
29766        * khtml/khtml_part.cpp:
29767        (KHTMLPart::timerEvent): Add a check for whether the mouse is down. Keep the caret drawn
29768        with no blink if it is.
29769
297702004-11-30  Ken Kocienda  <kocienda@apple.com>
29771
29772        Reviewed by John
29773
29774        Fix for this bug:
29775        
29776        <rdar://problem/3861602> cursor gets lost trying to backspace to delete a form control
29777
29778        * khtml/khtml_part.cpp:
29779        (KHTMLPart::setFocusNodeIfNeeded): This function would clear the selection if a <button>
29780        or <input type=image> was checked for focus since these elements are keyboard-focusable,
29781        but not mouse focusable. Also, this function did not work hard enough to set the focused
29782        node, and was content to clear it if the first element checked failed the test, rather
29783        than looking more at parents. This would have the effect of clearing, then resetting the
29784        focus on a DIV containing a button or image with content on either side of it in the
29785        process of arrowing over such content.
29786
297872004-11-30  Ken Kocienda  <kocienda@apple.com>
29788
29789        Reviewed by John
29790
29791        * khtml/editing/htmlediting.cpp:
29792        (khtml::ReplaceSelectionCommand::doApply): Fix smart replace, which I (knowingly) broke with yesterday's checkin.
29793        Also, call updateLayout() in one more place to prevent stale information being returned from caretMaxOffset().
29794        * khtml/khtml_part.cpp:
29795        (KHTMLPart::isCharacterSmartReplaceExempt): Make this virtual and always return true. This gets rid of an
29796        ugly APPLE_CHANGES block and use of KWQ(part) in ReplaceSelectionCommand.
29797        * khtml/khtml_part.h: To help out with the isCharacterSmartReplaceExempt cleanup, add declaration.
29798        * kwq/KWQKHTMLPart.h: To help out with the isCharacterSmartReplaceExempt cleanup, make 
29799        isCharacterSmartReplaceExempt virtual.
29800
298012004-11-30  Ken Kocienda  <kocienda@apple.com>
29802
29803        Reviewed by me
29804
29805        * khtml/editing/htmlediting.cpp:
29806        (khtml::ReplacementFragment::mergeEndNode): Fixed one-line coding mistake that created an endless loop.
29807        Seemed simple enough to land without review.
29808
298092004-11-29  Ken Kocienda  <kocienda@apple.com>
29810
29811        Reviewed by Chris
29812    
29813        Rewrite of paste code (specifically the ReplaceSelectionCommand class). Many more cases
29814        are handled correctly now, including selections that span multiple blocks, and cases
29815        where content on the pasteboard ends in newlines (or what appear to be newlines to a
29816        user, really block ends or BRs). I also made one small, but important change in the 
29817        copy code to annotate the markup written to the pasteboard to support these selections 
29818        ending in newlines.
29819
29820        New header that defines a couple of constants used in copying and pasting.
29821
29822        * ForwardingHeaders/editing/html_interchange.h: Added.
29823        * khtml/editing/html_interchange.h: Added.
29824        
29825        Rewrite of the ReplaceSelectionCommand. There are several new helper functions, as well
29826        as a new helper class, ReplacementFragment, which encapsulates information and functions
29827        pertaining to a document fragment that is being inserted into a document.
29828        
29829        * khtml/editing/htmlediting.cpp:
29830        (khtml::ReplacementFragment::ReplacementFragment):
29831        (khtml::ReplacementFragment::~ReplacementFragment):
29832        (khtml::ReplacementFragment::firstChild): Simple accessor.
29833        (khtml::ReplacementFragment::lastChild): Ditto.
29834        (khtml::ReplacementFragment::mergeStartNode): Looks at the nodes in a fragment and determines
29835        the starting node to use for merging into the block containing the start of the selection.
29836        (khtml::ReplacementFragment::mergeEndNode): Same as above, but for the end of the selection.
29837        (khtml::ReplacementFragment::pruneEmptyNodes): Simple helper.
29838        (khtml::ReplacementFragment::isInterchangeNewlineComment): Determines if a node is the
29839        special annotation comment added in by the copy code.
29840        (khtml::ReplacementFragment::removeNode): Simple helper.
29841        (khtml::isComment): Simple helper.
29842        (khtml::isProbablyBlock): Determines if a node is of a type that is usually rendered as a block.
29843        I would like to do better than this some day, but this check will hold us until I can do better.
29844        (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand):
29845        (khtml::ReplaceSelectionCommand::~ReplaceSelectionCommand):
29846        (khtml::ReplaceSelectionCommand::doApply):
29847        (khtml::ReplaceSelectionCommand::completeHTMLReplacement): Figures out the right ending selection.
29848        * khtml/editing/htmlediting.h: Declarations for the new ReplacementFragment class.
29849        (khtml::ReplacementFragment::root):
29850        (khtml::ReplacementFragment::type):
29851        (khtml::ReplacementFragment::isEmpty):
29852        (khtml::ReplacementFragment::isSingleTextNode):
29853        (khtml::ReplacementFragment::isTreeFragment):
29854        (khtml::ReplacementFragment::hasMoreThanOneBlock):
29855        (khtml::ReplacementFragment::hasLogicalNewlineAtEnd):
29856        
29857        This smaller set of changes markup generation to add the newline annotation described in the
29858        comment at the start of this entry.
29859        
29860        * khtml/xml/dom2_rangeimpl.cpp:
29861        (DOM::RangeImpl::addCommentToHTMLMarkup): Simple helper.
29862        (DOM::RangeImpl::toHTML): Added new EAnnotateForInterchange default argument to control whether
29863        comment annotations are added to the markup generated.
29864        * khtml/xml/dom2_rangeimpl.h: Add some new declarations.
29865        * kwq/WebCoreBridge.mm:
29866        (-[WebCoreBridge markupStringFromRange:nodes:]): Request that markup resulting from call to 
29867        DOM::RangeImpl::toHTML uses annotations when generating.
29868        
29869        New tests.        
29870
29871        * layout-tests/editing/pasteboard/paste-text-001-expected.txt: Added.
29872        * layout-tests/editing/pasteboard/paste-text-001.html: Added.
29873        * layout-tests/editing/pasteboard/paste-text-002-expected.txt: Added.
29874        * layout-tests/editing/pasteboard/paste-text-002.html: Added.
29875        * layout-tests/editing/pasteboard/paste-text-003-expected.txt: Added.
29876        * layout-tests/editing/pasteboard/paste-text-003.html: Added.
29877        * layout-tests/editing/pasteboard/paste-text-004-expected.txt: Added.
29878        * layout-tests/editing/pasteboard/paste-text-004.html: Added.
29879        * layout-tests/editing/pasteboard/paste-text-005-expected.txt: Added.
29880        * layout-tests/editing/pasteboard/paste-text-005.html: Added.
29881        * layout-tests/editing/pasteboard/paste-text-006-expected.txt: Added.
29882        * layout-tests/editing/pasteboard/paste-text-006.html: Added.
29883        * layout-tests/editing/pasteboard/paste-text-007-expected.txt: Added.
29884        * layout-tests/editing/pasteboard/paste-text-007.html: Added.
29885        * layout-tests/editing/pasteboard/paste-text-008-expected.txt: Added.
29886        * layout-tests/editing/pasteboard/paste-text-008.html: Added.
29887        * layout-tests/editing/pasteboard/paste-text-009-expected.txt: Added.
29888        * layout-tests/editing/pasteboard/paste-text-009.html: Added.
29889
298902004-11-29  Ken Kocienda  <kocienda@apple.com>
29891
29892        Reviewed by Harrison
29893
29894        Made two small changes that make it possible for comments to have DOM nodes made for them
29895        when pasting. This relies on some earlier work I did some days ago.
29896
29897        * khtml/xml/dom_nodeimpl.cpp:
29898        (NodeImpl::startMarkup): Get the string from the comment.
29899        * kwq/WebCoreBridge.mm:
29900        (-[WebCoreBridge documentFragmentWithMarkupString:baseURLString:]): Did some very minor
29901        rearranging. Now passes a flag when creating a contextual fragment, requesting that comments
29902        be included in the DOM.
29903
299042004-11-29  Ken Kocienda  <kocienda@apple.com>
29905
29906        Reviewed by Harrison
29907
29908        Added some new helpers to the VisiblePosition class. I will begin to use these when I check in
29909        my improved paste code.
29910
29911        * khtml/editing/visible_position.cpp:
29912        (khtml::blockRelationship)
29913        (khtml::visiblePositionsInDifferentBlocks)
29914        (khtml::isFirstVisiblePositionInBlock)
29915        (khtml::isFirstVisiblePositionInNode)
29916        (khtml::isLastVisiblePositionInBlock)
29917        * khtml/editing/visible_position.h
29918
299192004-11-29  Ken Kocienda  <kocienda@apple.com>
29920
29921        Reviewed by Harrison
29922
29923        * khtml/xml/dom_position.cpp:
29924        (DOM::Position::downstream): Fix a bug in downstream that prevented a call with DoNotStayInBlock
29925        specified from obeying that directive. The old code would stop at an outer block boundary in
29926        the case where that block had a block as its first child. The correct behavior is to drill into
29927        that inner block (and continue on drilling down, if possible), to find the correct position.
29928
299292004-11-29  Ken Kocienda  <kocienda@apple.com>
29930
29931        Reviewed by Harrison
29932
29933        Small improvements to the node-display debugging helpers.
29934
29935        * khtml/xml/dom_nodeimpl.cpp:
29936        (NodeImpl::displayTree): Make the rootNode be this if there is no rootEditableElement.
29937        * khtml/xml/dom_nodeimpl.h: Make displayNode take a default argument of "" for its string.
29938
299392004-11-29  Ken Kocienda  <kocienda@apple.com>
29940
29941        Reviewed by Harrison
29942
29943        * khtml/editing/htmlediting.cpp:
29944        (khtml::DeleteSelectionCommand::handleGeneralDelete): The downstream position in this function 
29945        may need to be adjusted when deleting text off the front part of a text node. This fixes a problem 
29946        I discovered while improving the paste command, where the insertion poitn wound up in the wrong
29947        place after the delete. 
29948
299492004-11-29  Ken Kocienda  <kocienda@apple.com>
29950
29951        Reviewed by Harrison
29952
29953        Add a new helper function to insert a paragraph separator. Will be used in my
29954        upcoming paste improvments.
29955
29956        * khtml/editing/htmlediting.cpp: Added function
29957        (khtml::CompositeEditCommand::insertParagraphSeparator)
29958        * khtml/editing/htmlediting.h: Ditto.
29959
299602004-11-23  David Harrison  <harrison@apple.com>
29961
29962        Added various comments.
29963
29964        * khtml/editing/htmlediting.cpp:
29965        (khtml::StyleChange::init):
29966        (khtml::ApplyStyleCommand::doApply):
29967        (khtml::ApplyStyleCommand::applyBlockStyle):
29968        (khtml::ApplyStyleCommand::applyInlineStyle):
29969
299702004-11-23  David Hyatt  <hyatt@apple.com>
29971
29972	Hit testing in table cells with top/bottom space from vertical alignment didn't work.  I forgot about the
29973	super-secret yPos() lie that table cells do.  Use m_y instead of yPos().
29974
29975        * khtml/rendering/render_block.cpp:
29976        (khtml::RenderBlock::nodeAtPoint):
29977
299782004-11-22  David Hyatt  <hyatt@apple.com>
29979
29980	Make sure you can use document.createElement to make a <canvas> element.
29981
29982        * khtml/xml/dom_docimpl.cpp:
29983        (DocumentImpl::createHTMLElement):
29984
299852004-11-22  Maciej Stachowiak  <mjs@apple.com>
29986
29987        Reviewed by Dave.
29988
29989	<rdar://problem/3492044> performing JavaScript operations on form elements is slower than WinIE (HTMLFormCollection)
29990	<rdar://problem/3489679> selecting an item on the Apache bugzilla query page is very slow (HTMLFormCollection)
29991	<rdar://problem/3477810> checking 80 check boxes with JavaScript is 10x slower than in IE (HTMLFormCollection)
29992	<rdar://problem/3760962> JavaScript that toggles checkboxes is slow (HTMLCollection,HTMLFormCollection)
29993        
29994	* khtml/ecma/kjs_html.cpp:
29995        (KJS::HTMLDocument::tryGet):
29996        * khtml/html/html_formimpl.cpp:
29997        (DOM::HTMLFormElementImpl::HTMLFormElementImpl):
29998        (DOM::HTMLFormElementImpl::~HTMLFormElementImpl):
29999        * khtml/html/html_formimpl.h:
30000        * khtml/html/html_miscimpl.cpp:
30001        (HTMLCollectionImpl::HTMLCollectionImpl):
30002        (HTMLCollectionImpl::~HTMLCollectionImpl):
30003        (HTMLCollectionImpl::CollectionInfo::CollectionInfo):
30004        (HTMLCollectionImpl::CollectionInfo::reset):
30005        (HTMLCollectionImpl::resetCollectionInfo):
30006        (HTMLCollectionImpl::checkForNameMatch):
30007        (appendToVector):
30008        (HTMLCollectionImpl::updateNameCache):
30009        (HTMLCollectionImpl::namedItems):
30010        (HTMLFormCollectionImpl::HTMLFormCollectionImpl):
30011        (HTMLFormCollectionImpl::~HTMLFormCollectionImpl):
30012        (HTMLFormCollectionImpl::item):
30013        (HTMLFormCollectionImpl::updateNameCache):
30014        * khtml/html/html_miscimpl.h:
30015
300162004-11-22  David Hyatt  <hyatt@apple.com>
30017
30018	Improve the WebCore cache so that the maximum cacheable object size is scaled based off the total cache
30019	size.
30020	
30021        Reviewed by mjs
30022
30023        * khtml/misc/loader.cpp:
30024        (CachedObject::finish):
30025        (Cache::flush):
30026        (Cache::setSize):
30027        * khtml/misc/loader.h:
30028        (khtml::Cache::maxCacheableObjectSize):
30029
300302004-11-22  David Hyatt  <hyatt@apple.com>
30031
30032	Fix for 3673381, huge directory listing so slow it seems like a hang.  Rework painting and hit testing so that
30033	it crawls the line box tree instead of the render tree.  This allows more precise intersection/containment testing
30034	that lets us short circuit earlier when painting and hit testing.
30035	
30036        Reviewed by mjs
30037
30038        * khtml/khtml_part.cpp:
30039        (KHTMLPart::isPointInsideSelection):
30040        * khtml/rendering/render_block.cpp:
30041        (khtml::RenderBlock::paint):
30042        (khtml::RenderBlock::paintChildren):
30043        (khtml::RenderBlock::paintObject):
30044        (khtml::RenderBlock::paintFloats):
30045        (khtml::RenderBlock::nodeAtPoint):
30046        * khtml/rendering/render_block.h:
30047        * khtml/rendering/render_box.cpp:
30048        (RenderBox::nodeAtPoint):
30049        * khtml/rendering/render_box.h:
30050        * khtml/rendering/render_br.h:
30051        * khtml/rendering/render_canvas.cpp:
30052        (RenderCanvas::paint):
30053        * khtml/rendering/render_flow.cpp:
30054        (RenderFlow::paintLines):
30055        (RenderFlow::hitTestLines):
30056        (RenderFlow::caretRect):
30057        (RenderFlow::addFocusRingRects):
30058        (RenderFlow::paintFocusRing):
30059        (RenderFlow::paintOutlines):
30060        (RenderFlow::paintOutlineForLine):
30061        * khtml/rendering/render_flow.h:
30062        * khtml/rendering/render_frames.cpp:
30063        (RenderFrameSet::nodeAtPoint):
30064        * khtml/rendering/render_frames.h:
30065        * khtml/rendering/render_image.cpp:
30066        (RenderImage::nodeAtPoint):
30067        * khtml/rendering/render_image.h:
30068        * khtml/rendering/render_inline.cpp:
30069        (RenderInline::paint):
30070        (RenderInline::nodeAtPoint):
30071        * khtml/rendering/render_inline.h:
30072        * khtml/rendering/render_layer.cpp:
30073        (RenderLayer::paintLayer):
30074        (RenderLayer::hitTest):
30075        (RenderLayer::hitTestLayer):
30076        * khtml/rendering/render_layer.h:
30077        * khtml/rendering/render_line.cpp:
30078        (khtml::InlineBox::paint):
30079        (khtml::InlineBox::nodeAtPoint):
30080        (khtml::InlineFlowBox::flowObject):
30081        (khtml::InlineFlowBox::nodeAtPoint):
30082        (khtml::InlineFlowBox::paint):
30083        (khtml::InlineFlowBox::paintBackgrounds):
30084        (khtml::InlineFlowBox::paintBackground):
30085        (khtml::InlineFlowBox::paintBackgroundAndBorder):
30086        (khtml::InlineFlowBox::paintDecorations):
30087        (khtml::EllipsisBox::paint):
30088        (khtml::EllipsisBox::nodeAtPoint):
30089        (khtml::RootInlineBox::paintEllipsisBox):
30090        (khtml::RootInlineBox::paint):
30091        (khtml::RootInlineBox::nodeAtPoint):
30092        * khtml/rendering/render_line.h:
30093        (khtml::InlineRunBox::paintBackgroundAndBorder):
30094        * khtml/rendering/render_object.cpp:
30095        (RenderObject::hitTest):
30096        (RenderObject::setInnerNode):
30097        (RenderObject::nodeAtPoint):
30098        * khtml/rendering/render_object.h:
30099        (khtml::RenderObject::PaintInfo::PaintInfo):
30100        (khtml::RenderObject::PaintInfo::~PaintInfo):
30101        (khtml::RenderObject::paintingRootForChildren):
30102        (khtml::RenderObject::shouldPaintWithinRoot):
30103        * khtml/rendering/render_table.cpp:
30104        (RenderTable::layout):
30105        (RenderTable::paint):
30106        * khtml/rendering/render_text.cpp:
30107        (simpleDifferenceBetweenColors):
30108        (correctedTextColor):
30109        (InlineTextBox::nodeAtPoint):
30110        (InlineTextBox::paint):
30111        (InlineTextBox::selectionStartEnd):
30112        (InlineTextBox::paintSelection):
30113        (InlineTextBox::paintMarkedTextBackground):
30114        (InlineTextBox::paintDecoration):
30115        (RenderText::posOfChar):
30116        * khtml/rendering/render_text.h:
30117        (khtml::RenderText::paint):
30118        (khtml::RenderText::layout):
30119        (khtml::RenderText::nodeAtPoint):
30120        * khtml/xml/dom2_eventsimpl.cpp:
30121        (MouseEventImpl::computeLayerPos):
30122        * khtml/xml/dom_docimpl.cpp:
30123        (DocumentImpl::prepareMouseEvent):
30124        * kwq/KWQAccObject.mm:
30125        (-[KWQAccObject accessibilityHitTest:]):
30126        * kwq/KWQKHTMLPart.mm:
30127        (KWQKHTMLPart::scrollOverflowWithScrollWheelEvent):
30128        (KWQKHTMLPart::eventMayStartDrag):
30129        (KWQKHTMLPart::khtmlMouseMoveEvent):
30130        * kwq/WebCoreBridge.mm:
30131        (-[WebCoreBridge elementAtPoint:]):
30132        (-[WebCoreBridge _positionForPoint:]):
30133
301342004-11-22  Maciej Stachowiak  <mjs@apple.com>
30135
30136        Reviewed by Dave.
30137
30138	<rdar://problem/3890961> selecting an item on the Apache bugzilla query page can be sped up 10% (HTMLFormCollection)
30139	<rdar://problem/3890958> JavaScript that toggles checkboxes can be improved 73% (HTMLCollection,HTMLFormCollection)
30140
30141	This avoids the O(N^2) penalty for named item traversal for form collections.
30142
30143	It also combines the item traversal logic for all non-form
30144	collection operations into a single traverseNextItem
30145	function. This avoids having 5 copies of the big switch statement
30146	for this.
30147
30148	Also fixed a bug that prevented the last form element from being removed properly.
30149        
30150        * khtml/html/html_formimpl.cpp:
30151        (DOM::removeFromVector):
30152	* khtml/dom/html_misc.cpp:
30153        (HTMLCollection::namedItems):
30154        * khtml/dom/html_misc.h:
30155        * khtml/ecma/kjs_html.cpp:
30156        (KJS::HTMLCollection::getNamedItems):
30157        * khtml/html/html_miscimpl.cpp:
30158        (HTMLCollectionImpl::traverseNextItem):
30159        (HTMLCollectionImpl::calcLength):
30160        (HTMLCollectionImpl::length):
30161        (HTMLCollectionImpl::item):
30162        (HTMLCollectionImpl::nextItem):
30163        (HTMLCollectionImpl::checkForNameMatch):
30164        (HTMLCollectionImpl::namedItem):
30165        (HTMLCollectionImpl::namedItems):
30166        (HTMLCollectionImpl::nextNamedItem):
30167        (HTMLFormCollectionImpl::calcLength):
30168        (HTMLFormCollectionImpl::namedItem):
30169        (HTMLFormCollectionImpl::nextNamedItem):
30170        (HTMLFormCollectionImpl::namedItems):
30171        * khtml/html/html_miscimpl.h:
30172
301732004-11-22  Ken Kocienda  <kocienda@apple.com>
30174
30175        Reviewed by Harrison
30176
30177        Change around the way we block the Javascript "Paste" command identifier from
30178        being available. Formerly, this was done with an ifdef we never compiled in.
30179        Now, this is done with a couple of cheap runtime checks. The advantage is that
30180        we can now compile this command into development builds, and still yet switch
30181        on the command in deployment builds through the use of WebCore SPI so we can
30182        write and run layout tests with all of our builds.
30183
30184        * khtml/editing/jsediting.cpp:
30185        (DOM::JSEditor::queryCommandSupported): Checks state of paste command in case
30186        command being queried is the paste command. 
30187        (DOM::JSEditor::setSupportsPasteCommand): New SPI to turn on paste command.
30188        * khtml/editing/jsediting.h: Ditto.
30189        * khtml/khtml_part.cpp:
30190        (KHTMLPart::pasteFromPasteboard): Added.
30191        (KHTMLPart::canPaste): Added.
30192        * kwq/KWQKHTMLPart.mm:
30193        (KHTMLPart::canPaste): Added.
30194        * kwq/KWQRenderTreeDebug.cpp:
30195        (externalRepresentation): Turn on paste command.
30196        * kwq/WebCoreBridge.h: Add canPaste call so WebKit can fill in the answer.
30197
301982004-11-21  Maciej Stachowiak  <mjs@apple.com>
30199
30200        Reviewed by Richard.
30201
30202	<rdar://problem/3889655> HTMLCollectionImpl should use traverseNextNode to improve speed and save recursion
30203        
30204	* khtml/html/html_miscimpl.cpp:
30205        (HTMLCollectionImpl::calcLength):
30206        (HTMLCollectionImpl::getItem):
30207        (HTMLCollectionImpl::item):
30208        (HTMLCollectionImpl::nextItem):
30209        (HTMLCollectionImpl::getNamedItem):
30210        (HTMLCollectionImpl::namedItem):
30211        (HTMLCollectionImpl::nextNamedItemInternal):
30212        (HTMLFormCollectionImpl::nextNamedItemInternal):
30213
302142004-11-19  Maciej Stachowiak  <mjs@apple.com>
30215
30216        Reviewed by Darin.
30217
30218	<rdar://problem/3482935> JavaScript so slow it seems like a hang (hrweb.apple.com) (HTMLCollection?)
30219	<rdar://problem/3759149> PeopleSoft page in Safari twice as slow as Mozilla engine (HTMLFormCollection)
30220	<rdar://problem/3888368> selecting an item on the Apache bugzilla query page can be improved 95% (HTMLFormCollection)
30221
30222	Many optimizations to HTMLFormCollection. Iterating it should not
30223	be N^2 any more, though finding items by name could still be.
30224	
30225        * khtml/html/html_formimpl.cpp:
30226        (DOM::HTMLFormElementImpl::~HTMLFormElementImpl):
30227        (DOM::HTMLFormElementImpl::length):
30228        (DOM::HTMLFormElementImpl::submitClick):
30229        (DOM::HTMLFormElementImpl::formData):
30230        (DOM::HTMLFormElementImpl::submit):
30231        (DOM::HTMLFormElementImpl::reset):
30232        (DOM::HTMLFormElementImpl::radioClicked):
30233        (DOM::appendToVector):
30234        (DOM::removeFromVector):
30235        (DOM::HTMLFormElementImpl::registerFormElement):
30236        (DOM::HTMLFormElementImpl::removeFormElement):
30237        (DOM::HTMLFormElementImpl::makeFormElementDormant):
30238        (DOM::HTMLFormElementImpl::registerImgElement):
30239        (DOM::HTMLFormElementImpl::removeImgElement):
30240        * khtml/html/html_formimpl.h:
30241        * khtml/html/html_miscimpl.cpp:
30242        (HTMLFormCollectionImpl::FormCollectionInfo::FormCollectionInfo):
30243        (void::HTMLFormCollectionImpl::FormCollectionInfo::reset):
30244        (HTMLFormCollectionImpl::resetCollectionInfo):
30245        (HTMLFormCollectionImpl::calcLength):
30246        (HTMLFormCollectionImpl::item):
30247        (HTMLFormCollectionImpl::getNamedItem):
30248        (HTMLFormCollectionImpl::getNamedFormItem):
30249        (HTMLFormCollectionImpl::firstItem):
30250        (HTMLFormCollectionImpl::nextItem):
30251        * khtml/html/html_miscimpl.h:
30252        (DOM::HTMLFormCollectionImpl::~HTMLFormCollectionImpl):
30253        * khtml/xml/dom_elementimpl.cpp:
30254        (ElementImpl::setAttribute):
30255        (ElementImpl::setAttributeMap):
30256        * kwq/KWQPtrVector.h:
30257        (QPtrVector::findRef):
30258        * kwq/KWQVectorImpl.h:
30259        * kwq/KWQVectorImpl.mm:
30260        (KWQVectorImpl::findRef):
30261        * kwq/WebCoreBridge.mm:
30262        (-[WebCoreBridge elementWithName:inForm:]):
30263        (-[WebCoreBridge controlsInForm:]):
30264
302652004-11-19  David Harrison  <harrison@apple.com>
30266
30267        Reviewed by Ken and Darin.
30268
30269        <rdar://problem/3856215> Cannot remove bold from the beginning of a message
30270
30271        Problem is that KHTMLPart::computeAndSetTypingStyle always looked upstream
30272        for the existing style, but in this case (hitting cmd-B with caret at top of
30273        file) there is nothing upstream.  Changed this to use the VisiblePosition
30274        deepEquivalent instead.
30275        
30276        * khtml/khtml_part.cpp:
30277        (KHTMLPart::computeAndSetTypingStyle):
30278
30279=== Safari-172 ===
30280
302812004-11-19  Maciej Stachowiak  <mjs@apple.com>
30282
30283        Reviewed by Darin.
30284
30285	<rdar://problem/3864151> REGRESSION (125-167): Chrysler.com never stops loading
30286	
30287        * khtml/xml/dom_docimpl.cpp:
30288        (DocumentImpl::close): Don't fire the onload handler if there is a
30289	redirect pending. This is a very long-standing bug that was masked
30290	by our previously incorrect redirect logic. It used to be that an
30291	older redirect would always win. Recently we changed things so
30292	that a newer redirect would win, but a script that causes a
30293	redirect would stop parsing once complete (so if there are two
30294	redirects in the same script, the latter wins). However, we should
30295	have also prevented onload in this case. Testing with other
30296	browsers shows that onload handlers do not run at all when there
30297	is a pending redirect.
30298
302992004-11-19  Ken Kocienda  <kocienda@apple.com>
30300
30301        Reviewed by Harrison
30302
30303        Fix some object lifetime issues in these two commands. This fixes some crashes
30304        I am seeing in some new code I am working on, but have not yet reproduced otherwise.
30305
30306        * khtml/editing/htmlediting.cpp:
30307        (khtml::InsertParagraphSeparatorCommand::~InsertParagraphSeparatorCommand): No longer deref nodes
30308        in the ancestor list. They are not ref'ed when put on list. D'uh.
30309        (khtml::InsertParagraphSeparatorCommand::doApply): Ref all cloned nodes that are created by the command
30310        before putting them on the cloned nodes list. This are still deref'ed in the destructor.
30311        (khtml::InsertParagraphSeparatorInQuotedContentCommand::~InsertParagraphSeparatorInQuotedContentCommand): Ditto
30312        destructor comment.
30313        (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Ditto doApply comment.
30314
303152004-11-19  Ken Kocienda  <kocienda@apple.com>
30316
30317        Reviewed by Harrison
30318
30319        Fix for this bug:
30320        
30321        <rdar://problem/3655241> setTypingStyle: does not set the real typing style, and typingStyle does not return it
30322
30323        * khtml/khtml_part.cpp:
30324        (KHTMLPart::computeAndSetTypingStyle): New helper that does the work of reducing a passed-in style
30325        declaration given the current selection, and then sets the minimum necessary style as the typing
30326        style on the part.
30327        (KHTMLPart::applyStyle): Call new computeAndSetTypingStyle. The guts of computeAndSetTypingStyle used
30328        to be here in the selection-as-caret case. But now [WebCoreBridge setTypingStyle:] needs this code
30329        as well.
30330        * khtml/khtml_part.h: Declare new computeAndSetTypingStyle() function.
30331        * kwq/WebCoreBridge.h: Declare new typingStyle and setTypingStyle: methods.
30332        * kwq/WebCoreBridge.mm: 
30333        (-[WebCoreBridge typingStyle]): Calls through to the part to retrieve the typing style.
30334        (-[WebCoreBridge setTypingStyle:]): Calls through to the part to set the typing style.
30335
303362004-11-18  David Harrison  <harrison@apple.com>
30337
30338        Reviewed by Darin.
30339        
30340        Back out part of Darin's fix for <rdar://problem/3885729>, because the new exception gets triggered
30341        by Mail.app. Filed <rdar://problem/3886832> against Mail.app.
30342
30343        * kwq/DOM-CSS.mm:
30344        (-[DOMCSSStyleDeclaration setProperty:::]):
30345
303462004-11-18  Chris Blumenberg  <cblu@apple.com>
30347
30348	Fixed: <rdar://problem/3587481> Bug Reporter Login Page: Password AutoFill does not work reliably
30349
30350        Reviewed by john.
30351
30352        * kwq/KWQKHTMLPart.mm:
30353        (KWQKHTMLPart::currentForm): just return the current form, don't scan the entire document looking for a form if there is no current form
30354
303552004-11-18  Maciej Stachowiak  <mjs@apple.com>
30356
30357        Reviewed by Chris.
30358
30359	- fix recursive item traversal, use traverseNextNode() instead of
30360	the buggy hand-rolled traversal.
30361
30362        * khtml/xml/dom_nodeimpl.cpp:
30363        (NodeListImpl::recursiveItem):
30364
303652004-11-17  Darin Adler  <darin@apple.com>
30366
30367        Reviewed by Ken.
30368
30369        - fixed <rdar://problem/3885744> crash with XMLHttpRequest test page (reported by KDE folks)
30370
30371        * khtml/ecma/xmlhttprequest.cpp: (KJS::XMLHttpRequest::slotFinished):
30372        Rolled in fix from KDE; make sure to set job to 0 before calling changeState.
30373
30374        - fixed <rdar://problem/3885729> attempting to modify a computed style does nothing, but should raise a DOM exception
30375        - fixed <rdar://problem/3885731> style declarations use too many malloc blocks; switch to QValueList
30376        - fixed <rdar://problem/3885739> DOM::NodeImpl accessor in DOM::Node class is hot; should be inlined
30377        - changed NodeImpl calls like replaceChild to always ref/deref the parameter; this is a better way to fix
30378          an entire category of leaks we have been fixing one by one recently
30379        - changed computed styles so they hold a reference to the DOM node; the old code could end up with a
30380          stale RenderObject pointer, although I never saw it do that in practice
30381        - implemented the length and item methods for computed styles
30382        - implemented querying additional properties in computed styles (29 more)
30383
30384        * khtml/khtml_part.h: Update forward declaration of CSSMutableStyleDeclarationImpl since it's
30385        now a separate class rather than a typedef. Changed the parameter type of setTypingStyle to
30386        take a mutable style.
30387        * khtml/khtml_part.cpp:
30388        (KHTMLPart::setTypingStyle): Change parameter to take a mutable style.
30389        (KHTMLPart::applyStyle): Add code to make a mutable style in case we are passed
30390        a computed style; also change some types to mutable style.
30391        (updateState): Update iteration of CSSProperty objects in a style declaration to use
30392        the new valuesIterator interface.
30393        (KHTMLPart::selectionHasStyle): Add a call to makeMutable.
30394        (KHTMLPart::selectionStartHasStyle): Add call to makeMutable and update iteration.
30395        (editingStyle): Change type to mutable style, and simplify the style-creation calls,
30396        including accomodating the exception code that setCssText has now.
30397        (KHTMLPart::applyEditingStyleToElement): Change types to mutable style.
30398        (KHTMLPart::removeEditingStyleFromElement): Change code to call setChanged only if removing
30399        the style attributes really was a change, although it's not an important optimization it's
30400        good to do it right.
30401
30402        * khtml/css/css_base.h: Remove unneeded setParsedValue method.
30403        * khtml/css/css_base.cpp: Remove unneeded setParsedValue method. All the places that were
30404        calling it were already removing the old property explicitly, so the code in here to remove
30405        the property again was redundant.
30406
30407        * khtml/css/css_computedstyle.h: Updated virtual functions for changes to parameters in base class.
30408        Moved all the "set"-type functions so they are private. Store a node pointer instead of a renderer.
30409        * khtml/css/css_computedstyle.cpp:
30410        (DOM::CSSComputedStyleDeclarationImpl::CSSComputedStyleDeclarationImpl): Hold a reference to
30411        the node we compute style for, so we don't end up with a pointer to a deallocated RenderObject.
30412        Before we had no guarantee the object would outlast us.
30413        (DOM::CSSComputedStyleDeclarationImpl::setCssText): Add exception parameter, and set the
30414        exception to NO_MODIFICATION_ALLOWED_ERR.
30415        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Update to use node pointer rather
30416        than renderer pointer. Added implementation for box-align, box-direction, box-flex, box-flex-group,
30417        box-lines, box-ordinal-group, box-orient, box-pack, caption-side, clear, cursor, direction,
30418        list-style-image, list-style-position, list-style-type, marquee-direction, marquee-repetition,
30419        marquee-style, user-modify, opacity, orphans, outline-style, page-break-after, page-break-before,
30420        page-break-inside, position, unicode-bidi, widows, z-index.
30421        (DOM::CSSComputedStyleDeclarationImpl::removeProperty): Add exception parameter, and set the
30422        exception to NO_MODIFICATION_ALLOWED_ERR.
30423        (DOM::CSSComputedStyleDeclarationImpl::setProperty): Ditto.
30424        (DOM::CSSComputedStyleDeclarationImpl::length): Implemented.
30425        (DOM::CSSComputedStyleDeclarationImpl::item): Implemented, calls getPropertyValue.
30426        (DOM::CSSComputedStyleDeclarationImpl::copyInheritableProperties): Changed return type to
30427        CSSMutableStyleDeclarationImpl.
30428        (DOM::CSSComputedStyleDeclarationImpl::copy): Added.
30429        (DOM::CSSComputedStyleDeclarationImpl::makeMutable): Added.
30430
30431        * khtml/css/css_ruleimpl.h: Update forward declaration of CSSMutableStyleDeclarationImpl since it's
30432        now a separate class rather than a typedef.
30433        * khtml/css/cssparser.h: Ditto.
30434
30435        * khtml/css/css_valueimpl.h: Refactor CSSStyleDeclarationImpl into two classes. New derived class
30436        CSSMutableStyleDeclarationImpl has the guts, and the base class has only some virtual functions.
30437        Removed a bunch of redundant stuff from other classes in this file too.
30438        (DOM::DashboardRegionImpl::setNext): Ref new before deref'ing old to handle the set-to-same case.
30439        (DOM::CSSProperty::CSSProperty): Added new overload so you can create a CSSProperty with initial values.
30440        (DOM::CSSProperty::operator=): Added.
30441        (DOM::CSSProperty::setValue): Use ref-before-deref pattern to simplify slightly.
30442
30443        * khtml/css/css_valueimpl.cpp:
30444        (DOM::CSSStyleDeclarationImpl::CSSStyleDeclarationImpl): Remove uneeded things.
30445        (DOM::CSSStyleDeclarationImpl::isStyleDeclaration): Put here now that it's no longer inline.
30446        (DOM::CSSMutableStyleDeclarationImpl::CSSMutableStyleDeclarationImpl): Added.
30447        (DOM::CSSMutableStyleDeclarationImpl::operator=): Added.
30448        (DOM::CSSMutableStyleDeclarationImpl::~CSSMutableStyleDeclarationImpl): Updated.
30449        (DOM::CSSMutableStyleDeclarationImpl::getPropertyValue): Removed now-uneeded check.
30450        (DOM::CSSMutableStyleDeclarationImpl::get4Values): Moved here from base class.
30451        (DOM::CSSMutableStyleDeclarationImpl::getShortHandValue): Ditto.
30452        (DOM::CSSMutableStyleDeclarationImpl::getPropertyCSSValue): Update to use QValueList instead of QPtrList.
30453        (DOM::CSSMutableStyleDeclarationImpl::removeProperty): Added exception parameter, updated for QValueList.
30454        (DOM::CSSMutableStyleDeclarationImpl::setChanged): Moved here from base class.
30455        (DOM::CSSMutableStyleDeclarationImpl::getPropertyPriority): Update to use QValueList.
30456        (DOM::CSSMutableStyleDeclarationImpl::setProperty): Added more overloads to match new parameters.
30457        (DOM::CSSMutableStyleDeclarationImpl::setStringProperty): Update to use QValueList.
30458        (DOM::CSSMutableStyleDeclarationImpl::setImageProperty): Ditto.
30459        (DOM::CSSMutableStyleDeclarationImpl::parseProperty): Remove unneeded initialization code due to QValueList.
30460        (DOM::CSSMutableStyleDeclarationImpl::addParsedProperties): Added.
30461        (DOM::CSSMutableStyleDeclarationImpl::setLengthProperty): Moved here from base class.
30462        (DOM::CSSMutableStyleDeclarationImpl::length): Update to use QValueList.
30463        (DOM::CSSMutableStyleDeclarationImpl::item): Moved here from base class.
30464        (DOM::CSSMutableStyleDeclarationImpl::cssText): Return empty string rather than null string when there are
30465        no styles in the list. Update to use QValueList.
30466        (DOM::CSSMutableStyleDeclarationImpl::setCssText): Update to use QValueList and to take an exceptionCode
30467        parameter and set it.
30468        (DOM::CSSMutableStyleDeclarationImpl::merge): Update to use QValueList.
30469        (DOM::CSSStyleDeclarationImpl::diff): Update to use QValueList.
30470        (DOM::CSSMutableStyleDeclarationImpl::copyBlockProperties): Moved here from base class. Change return type.
30471        (DOM::CSSStyleDeclarationImpl::copyPropertiesInSet): Update to use QValueList and use stack, not new/delete.
30472        (DOM::CSSMutableStyleDeclarationImpl::makeMutable): Added.
30473        (DOM::CSSMutableStyleDeclarationImpl::copy): Added.
30474
30475        * khtml/css/cssparser.cpp:
30476        (CSSParser::parseValue): Changed to use addParsedProperties.
30477        (CSSParser::parseDeclaration): Ditto.
30478        (CSSParser::createStyleDeclaration): Use new constructor to create declaration in a more efficient manner.
30479
30480        * khtml/css/cssproperties.in: Removed unused font-size-adjust and -khtml-flow-mode.
30481        * khtml/css/cssproperties.c: Regenerated.
30482        * khtml/css/cssproperties.h: Regenerated.
30483
30484        * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::applyDeclarations):
30485        Updated to use QValueList interface to CSSMutableStyleDeclarationImpl.
30486
30487        * khtml/dom/css_value.cpp:
30488        (DOM::CSSStyleDeclaration::cssText): Removed unneeded cast.
30489        (DOM::CSSStyleDeclaration::setCssText): Added exception code handling.
30490        (DOM::CSSStyleDeclaration::getPropertyValue): Changed to call getPropertyValue directly instead of
30491        first doing getPropertyCSSValue and then doing cssText.
30492        (DOM::CSSStyleDeclaration::getPropertyCSSValue): Removed unneeded cast.
30493        (DOM::CSSStyleDeclaration::removeProperty): Added exception code handling. 
30494        (DOM::CSSStyleDeclaration::setProperty): Added exception code handling.
30495        (DOM::CSSStyleDeclaration::length): Removed unneeded cast.
30496        (DOM::CSSStyleDeclaration::item): Removed unneeded cast.
30497        (DOM::CSSStyleDeclaration::parentRule): Removed unneeded cast.
30498        (DOM::CSSValue::setCssText): Removed strange non-implementation (still not implemented).
30499
30500        * khtml/dom/dom_node.h: Made isNull and handle functions inline.
30501        * khtml/dom/dom_node.cpp: Ditto.
30502
30503        * khtml/editing/htmlediting.h: Change some types to mutable style.
30504        * khtml/editing/htmlediting.cpp:
30505        (khtml::EditCommandPtr::typingStyle): Change return type to mutable style.
30506        (khtml::EditCommandPtr::setTypingStyle): Change parameter to mutable style.
30507        (khtml::StyleChange::init): Convert parameter to mutable style. Update to use QValueList.
30508        (khtml::EditCommand::assignTypingStyle): Change parameter to mutable type.
30509        (khtml::EditCommand::setTypingStyle): Ditto.
30510        (khtml::ApplyStyleCommand::ApplyStyleCommand): Convert parameter to mutable style.
30511        (khtml::ApplyStyleCommand::doApply): Change local variables to mutable style.
30512        (khtml::ApplyStyleCommand::applyBlockStyle): Change parameter to mutable style.
30513        (khtml::ApplyStyleCommand::applyInlineStyle): Ditto.
30514        (khtml::ApplyStyleCommand::isHTMLStyleNode): Ditto.
30515        (khtml::ApplyStyleCommand::removeCSSStyle): Ditto. Also update to use QValueList.
30516        (khtml::ApplyStyleCommand::removeBlockStyle): Change parameter to mutable style.
30517        (khtml::ApplyStyleCommand::removeInlineStyle): Ditto.
30518        (khtml::ApplyStyleCommand::addBlockStyleIfNeeded): Ditto.
30519        (khtml::ApplyStyleCommand::addInlineStyleIfNeeded): Ditto.
30520        (khtml::InsertLineBreakCommand::doApply): Convert locals to mutable style.
30521        (khtml::InsertTextCommand::prepareForTextInsertion): Ditto.
30522        (khtml::RemoveCSSPropertyCommand::RemoveCSSPropertyCommand): Convert parameter to mutable style.
30523
30524        * khtml/editing/jsediting.cpp: Convert types to mutable styles where we create styles.
30525        * khtml/html/html_baseimpl.h: Change type to mutable style.
30526        * khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::createLinkDecl): Ditto.
30527
30528        * khtml/html/html_elementimpl.h: Make CSSMappedAttributeDeclarationImpl use the mutable style
30529        class as a base class, and change types to mutable style as needed.
30530        * khtml/html/html_elementimpl.cpp:
30531        (HTMLElementImpl::createInlineStyleDecl): Change type to mutable style.
30532        (HTMLElementImpl::parseHTMLAttribute): Call parseProperty method.
30533        (HTMLElementImpl::getInlineStyleDecl): Change type to mutable style.
30534        (HTMLElementImpl::additionalAttributeStyleDecl): Ditto.
30535        (HTMLElementImpl::createContextualFragment): Add ref/deref to fix potential node leak.
30536        (HTMLElementImpl::setInnerHTML): Remove ref/deref pair because this leak is now fixed by changes
30537        to appendChild.
30538        (HTMLElementImpl::setOuterHTML): Remove ref/deref pair because this leak is now fixed by changes
30539        to replaceChild.
30540
30541        * khtml/html/html_tableimpl.h: Change types to mutable style.
30542        * khtml/html/html_tableimpl.cpp:
30543        (HTMLTableElementImpl::additionalAttributeStyleDecl): Change type to mutable style.
30544        (HTMLTableElementImpl::getSharedCellDecl): Change type to mutable style.
30545        (HTMLTableCellElementImpl::additionalAttributeStyleDecl): Change type to mutable style.
30546
30547        * khtml/html/htmlparser.cpp:
30548        (KHTMLParser::parseToken): Use a local variable to protect the node by ref'ing it. This is better
30549        than using an explicit delete to make the node go away, and is required for compatibility with the
30550        changes to the NodeImpl functions.
30551        (KHTMLParser::insertNode): Ditto.
30552        (KHTMLParser::createHead): Get rid of explicit delete, no longer needed because of changes to
30553        the NodeImpl functions.
30554
30555        * khtml/xml/dom_docimpl.cpp: (DocumentImpl::createCSSStyleDeclaration): Call simpler constructor
30556        now that there's no need to make the property list explictly.
30557
30558        * kwq/DOM-CSS.mm:
30559        (-[DOMCSSStyleDeclaration setCssText:]): Raise exception when appropriate.
30560        (-[DOMCSSStyleDeclaration removeProperty:]): Ditto.
30561        (-[DOMCSSStyleDeclaration setProperty:::]): Dito.
30562
30563        * khtml/xml/dom_nodeimpl.cpp:
30564        (NodeImpl::insertBefore): Always do a ref/deref, so callers don't have to worry about whether the
30565        function succeeded or not for ownership purposes.
30566        (NodeImpl::replaceChild): Ditto.
30567        (NodeImpl::appendChild): Ditto.
30568        (NodeBaseImpl::insertBefore): Ditto.
30569        (NodeBaseImpl::replaceChild): Ditto.
30570        (NodeBaseImpl::appendChild): Ditto.
30571        (NodeBaseImpl::addChild): Ditto.
30572
30573        * WebCore-tests.exp: Removed CSSStyleDeclaration::length; not sure why it was in here.
30574        * WebCore-combined.exp: Regenerated.
30575
305762004-11-18  Maciej Stachowiak  <mjs@apple.com>
30577
30578        still even more build fixing
30579
30580        * khtml/html/html_miscimpl.cpp:
30581        (HTMLCollectionImpl::resetCollectionInfo):
30582
305832004-11-18  Maciej Stachowiak  <mjs@apple.com>
30584
30585        more build fixing
30586
30587        * khtml/html/html_miscimpl.cpp:
30588        (HTMLCollectionImpl::resetCollectionInfo):
30589
305902004-11-18  Maciej Stachowiak  <mjs@apple.com>
30591
30592        Fixed build problem.
30593
30594        * khtml/html/html_miscimpl.h:
30595        (DOM::HTMLCollectionImpl::CollectionInfo::CollectionInfo): it's haslength, not hasLenght.
30596
305972004-11-18  Maciej Stachowiak  <mjs@apple.com>
30598
30599        Reviewed by Ken.
30600
30601	- merged and cleaned up HTMLCollection and HTMLFormCollection speedups from konqueror
30602
30603	<rdar://problem/3822992> VIP: Program listings pages at directv.com take a really long time to load [HTMLCollection]
30604	<rdar://problem/3701991> Safari unresponsive loading (www.maxim-ic.com) (HTMLCollection)
30605
30606	This is also a start on fixing 5 other bugs, but those need additional work to make
30607	HTMLFormCollection fast.
30608
30609        * khtml/html/html_documentimpl.h:
30610        (DOM::HTMLDocumentImpl::collectionInfo):
30611        * khtml/html/html_formimpl.cpp:
30612        (DOM::HTMLFormElementImpl::~HTMLFormElementImpl):
30613        (DOM::HTMLFormElementImpl::isURLAttribute):
30614        (DOM::HTMLFormElementImpl::registerImgElement):
30615        (DOM::HTMLFormElementImpl::removeImgElement):
30616        * khtml/html/html_formimpl.h:
30617        * khtml/html/html_imageimpl.cpp:
30618        (HTMLImageElementImpl::HTMLImageElementImpl):
30619        (HTMLImageElementImpl::~HTMLImageElementImpl):
30620        * khtml/html/html_imageimpl.h:
30621        * khtml/html/html_miscimpl.cpp:
30622        (HTMLCollectionImpl::HTMLCollectionImpl):
30623        (HTMLCollectionImpl::~HTMLCollectionImpl):
30624        (HTMLCollectionImpl::updateCollectionInfo):
30625        (HTMLCollectionImpl::length):
30626        (HTMLCollectionImpl::item):
30627        (HTMLCollectionImpl::firstItem):
30628        (HTMLCollectionImpl::nextItem):
30629        (HTMLCollectionImpl::namedItem):
30630        (HTMLCollectionImpl::nextNamedItemInternal):
30631        (HTMLFormCollectionImpl::getNamedFormItem):
30632        * khtml/html/html_miscimpl.h:
30633        (DOM::HTMLCollectionImpl::):
30634        (DOM::HTMLCollectionImpl::CollectionInfo::CollectionInfo):
30635        * khtml/html/htmlparser.cpp:
30636        (KHTMLParser::getElement):
30637        * khtml/xml/dom_docimpl.cpp:
30638        (DocumentImpl::DocumentImpl):
30639        * khtml/xml/dom_docimpl.h:
30640        (DOM::DocumentImpl::incDOMTreeVersion):
30641        (DOM::DocumentImpl::domTreeVersion):
30642        * khtml/xml/dom_nodeimpl.cpp:
30643        (NodeImpl::attach):
30644        (NodeImpl::detach):
30645
306462004-11-18  Kevin Decker  <kdecker@apple.com>
30647
30648        Reviewed by Chris.
30649
30650	fixed: <rdar://problem/3841842> getPropertyID expensive
30651
30652        * kwq/DOM-CSS.mm:
30653        (getPropertyID): avoid unnecessary memory allocations by using a fixed-sized stack based buffer.
30654
306552004-11-17  David Hyatt  <hyatt@apple.com>
30656
30657	Improve responsiveness by being willing to break out of the tokenizer.  (This patch was landed already
30658	and subsequently backed out).
30659	
30660        Reviewed by kocienda
30661
30662        * khtml/html/html_baseimpl.cpp:
30663        (HTMLBodyElementImpl::insertedIntoDocument):
30664        * khtml/html/htmltokenizer.cpp:
30665        (khtml::HTMLTokenizer::reset):
30666        (khtml::HTMLTokenizer::scriptHandler):
30667        (khtml::HTMLTokenizer::scriptExecution):
30668        (khtml::HTMLTokenizer::write):
30669        (khtml::HTMLTokenizer::continueProcessing):
30670        (khtml::HTMLTokenizer::timerEvent):
30671        (khtml::HTMLTokenizer::notifyFinished):
30672        * khtml/html/htmltokenizer.h:
30673        * khtml/khtmlview.cpp:
30674        (KHTMLViewPrivate::KHTMLViewPrivate):
30675        (KHTMLViewPrivate::reset):
30676        (KHTMLView::clear):
30677        (KHTMLView::layout):
30678        (KHTMLView::timerEvent):
30679        (KHTMLView::scheduleRelayout):
30680        (KHTMLView::layoutPending):
30681        (KHTMLView::haveDelayedLayoutScheduled):
30682        (KHTMLView::unscheduleRelayout):
30683        * khtml/khtmlview.h:
30684        * khtml/xml/dom_docimpl.cpp:
30685        (DocumentImpl::DocumentImpl):
30686        (DocumentImpl::close):
30687        (DocumentImpl::setParsing):
30688        (DocumentImpl::shouldScheduleLayout):
30689        (DocumentImpl::minimumLayoutDelay):
30690        (DocumentImpl::write):
30691        (DocumentImpl::finishParsing):
30692        (DocumentImpl::stylesheetLoaded):
30693        (DocumentImpl::updateStyleSelector):
30694        * khtml/xml/dom_docimpl.h:
30695        (DOM::DocumentImpl::parsing):
30696        * kwq/KWQDateTime.mm:
30697        (KWQUIEventTime::uiEventPending):
30698
306992004-11-17  David Harrison  <harrison@apple.com>
30700
30701        Reviewed by Ken Kocienda.
30702        
30703        Make sure previousLineStart is non-null before calling compareBoundaryPoints.
30704        Treat null case as meaning no post-move merge is needed.
30705
30706        * khtml/editing/htmlediting.cpp:
30707        (khtml::DeleteSelectionCommand::initializePositionData):
30708
307092004-11-17  David Harrison  <harrison@apple.com>
30710        
30711        Added displayNode and displayTree methods for debugging.  Fixed comment typo in dispatchChildRemovalEvents.
30712        * khtml/xml/dom_nodeimpl.cpp:
30713        (NodeImpl::displayNode):
30714        (NodeImpl::displayTree):
30715        (NodeBaseImpl::dispatchChildRemovalEvents):
30716        * khtml/xml/dom_nodeimpl.h:
30717
307182004-11-16  John Sullivan  <sullivan@apple.com>
30719
30720        Reviewed by Richard.
30721        
30722        - fixed <rdar://problem/3881929> 32 byte leak in editingStyle() in KHTMLPart (one-time only)
30723
30724        * khtml/khtml_part.cpp:
30725        (editingStyle):
30726        delete the list we created when we're done with it
30727
307282004-11-16  Ken Kocienda  <kocienda@apple.com>
30729
30730        Reviewed by John
30731        
30732        It is unwise to use the QPtrList autodelete feature on shared objects like DOM nodes.
30733        Instead, I replaced this with a helper function that derefs DOM nodes stored in a 
30734        QPtrList when the list goes out of scope.
30735
30736        * khtml/editing/htmlediting.cpp:
30737        (khtml::derefNodesInList): New helper to deref DOM nodes stored in a QPtrList.
30738        (khtml::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): No longer set lists to autodelete.
30739        (khtml::InsertParagraphSeparatorCommand::~InsertParagraphSeparatorCommand): Call new derefNodesInList helper.
30740        (khtml::InsertParagraphSeparatorInQuotedContentCommand::InsertParagraphSeparatorInQuotedContentCommand):  
30741        No longer set lists to autodelete.
30742        (khtml::InsertParagraphSeparatorInQuotedContentCommand::~InsertParagraphSeparatorInQuotedContentCommand):
30743         Call new derefNodesInList helper.
30744        * khtml/editing/htmlediting.h: Add virtual destructor for InsertParagraphSeparatorCommand. It had no need
30745        of one before, but now it does.
30746
307472004-11-15  David Harrison  <harrison@apple.com>
30748
30749        Reviewed by Chris and Darin.
30750        
30751        <rdar://problem/3880304> Non-linear performance hit for style changes
30752
30753        * khtml/xml/dom_nodeimpl.cpp:
30754        (NodeImpl::traverseNextNode):
30755        (NodeImpl::traverseNextSibling):
30756        (NodeImpl::traversePreviousNodePostOrder):
30757        Return 0 rather than traversing beyond stayWithin when this == stayWithin.
30758        Add asserts that stayWithin is an ancestor of the returned node.
30759
307602004-11-15  Darin Adler  <darin@apple.com>
30761
30762        Reviewed by Ken.
30763
30764        - fixed <rdar://problem/3880036> Many leaks from CSSComputedStyleDeclarationImpl::getPropertyCSSValue, seen in Mail and Blot
30765
30766        * khtml/css/css_computedstyle.cpp:
30767        (DOM::CSSComputedStyleDeclarationImpl::getPropertyValue): Ref and deref the value returned from getPropertyCSSValue,
30768        since there's no guarantee it's already ref'd.
30769        * khtml/css/css_valueimpl.cpp:
30770        (CSSStyleDeclarationImpl::getPropertyValue): Wrap result in a CSSValue to ref/deref.
30771        (CSSStyleDeclarationImpl::get4Values): Ref/deref explicitly.
30772        (CSSStyleDeclarationImpl::getShortHandValue): Ditto.
30773        (CSSStyleDeclarationImpl::merge): Ditto.
30774        (CSSStyleDeclarationImpl::diff): Ditto.
30775        * khtml/editing/htmlediting.cpp:
30776        (khtml::StyleChange::currentlyHasStyle): Ditto.
30777        (khtml::ApplyStyleCommand::removeCSSStyle): Ditto.
30778        * khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::parseHTMLAttribute): Ditto.
30779        * khtml/html/html_tableimpl.cpp: (HTMLTableElementImpl::parseHTMLAttribute): Ditto.
30780
307812004-11-15  Darin Adler  <darin@apple.com>
30782
30783        Reviewed by Ken.
30784
30785        Use separate mutable style and computed style types as appropriate.
30786        For now this should have no effect, but it prepares us for refactoring later.
30787        Also remove some unnecessary "DOM::" prefixes and in one case factor out
30788        some shared code.
30789
30790        * khtml/khtml_part.cpp:
30791        (KHTMLPart::typingStyle):
30792        (KHTMLPart::setTypingStyle):
30793        (updateState):
30794        (KHTMLPart::selectionHasStyle):
30795        (KHTMLPart::selectionStartHasStyle):
30796        (KHTMLPart::selectionComputedStyle):
30797        * khtml/khtml_part.h:
30798        * khtml/khtmlpart_p.h:
30799
30800        * khtml/css/css_base.h:
30801        * khtml/css/css_ruleimpl.cpp:
30802        (CSSStyleRuleImpl::setDeclaration):
30803        * khtml/css/css_ruleimpl.h:
30804        (DOM::CSSFontFaceRuleImpl::style):
30805        (DOM::CSSPageRuleImpl::style):
30806        (DOM::CSSStyleRuleImpl::style):
30807        (DOM::CSSStyleRuleImpl::declaration):
30808        * khtml/css/css_valueimpl.h:
30809        (DOM::CSSPrimitiveValueImpl::):
30810        * khtml/css/cssparser.cpp:
30811        (CSSParser::parseValue):
30812        (CSSParser::parseColor):
30813        (CSSParser::parseDeclaration):
30814        (CSSParser::createStyleDeclaration):
30815        * khtml/css/cssparser.h:
30816        * khtml/css/cssstyleselector.cpp:
30817        (khtml::CSSStyleSelector::addMatchedDeclaration):
30818        (khtml::CSSStyleSelector::matchRulesForList):
30819        (khtml::CSSStyleSelector::styleForElement):
30820        (khtml::CSSStyleSelector::applyDeclarations):
30821        * khtml/css/cssstyleselector.h:
30822        * khtml/css/parser.cpp:
30823        * khtml/css/parser.y:
30824        * khtml/dom/css_rule.h:
30825        * khtml/dom/css_stylesheet.h:
30826        * khtml/dom/css_value.h:
30827        * khtml/dom/dom2_views.cpp:
30828        * khtml/xml/dom2_viewsimpl.cpp:
30829        (DOM::AbstractViewImpl::getComputedStyle):
30830        * khtml/xml/dom_docimpl.cpp:
30831        (DocumentImpl::importNode):
30832        (DocumentImpl::setStyleSheet):
30833        * khtml/xml/dom_docimpl.h:
30834        * khtml/xml/dom_xmlimpl.cpp:
30835        (DOM::ProcessingInstructionImpl::setStyleSheet):
30836        * khtml/xml/dom_xmlimpl.h:
30837
30838        * khtml/dom/css_value.cpp:
30839        (DOM::throwException): Added.
30840        (DOM::CSSStyleDeclaration::setCssText): Call throwException, but always on 0 for now.
30841        The real thing is coming with the next change to refactor.
30842        (DOM::CSSPrimitiveValue::setFloatValue): Call throwException.
30843        (DOM::CSSPrimitiveValue::setStringValue): Ditto.
30844
308452004-11-15  Darin Adler  <darin@apple.com>
30846
30847        Reviewed by Ken.
30848
30849        - fixed <rdar://problem/3878489> REGRESSION: modifying attribute of <textarea> blows away edited text (breaks simplemachines.org forum)
30850
30851        * khtml/xml/dom_nodeimpl.h: Added boolean "children changed" parameter to
30852        dispatchSubtreeModifiedEvent, so it can be called in cases where only the
30853        node's attributes changed without sending a misleading childrenChanged call,
30854        but the childrenChanged call can happen at the exact right moment.
30855        * khtml/xml/dom_nodeimpl.cpp: Removed some uneeded "DOM::".
30856        (NodeImpl::dispatchSubtreeModifiedEvent): Only call "children changed" if
30857        the boolean true is passed in.
30858
30859        * khtml/xml/dom_elementimpl.cpp:
30860        (NamedAttrMapImpl::addAttribute): Pass false for "children changed".
30861        (NamedAttrMapImpl::removeAttribute): Ditto.
30862
308632004-11-15  John Sullivan  <sullivan@apple.com>
30864
30865        Reviewed by Ken.
30866        
30867        - fixed <rdar://problem/3880075> leak in CSSStyleDeclarationImpl::copyPropertiesInSet, 
30868        seen often in Mail and Blot
30869
30870        * khtml/css/css_valueimpl.cpp:
30871        (CSSStyleDeclarationImpl::copyPropertiesInSet):
30872        delete temporary list after we're done using it
30873
308742004-11-15  Richard Williamson   <rjw@apple.com>
30875
30876	Fixed leak (3879883) that John found.  Early return leaked
30877	allocated instance.
30878
30879        Reviewed by John.
30880
30881        * khtml/css/css_computedstyle.cpp:
30882        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
30883
308842004-11-15  Ken Kocienda  <kocienda@apple.com>
30885
30886        Reviewed by John
30887
30888        Fix for this bug:
30889        
30890        <rdar://problem/3879569> Many leaks in EditCommand mechanism, seen in Mail
30891
30892        Fixed a couple of object lifetime issues. The EditCommand class used to hold an
30893        EditCommandPtr to its parent, but this caused a a reference cycle in composite 
30894        commands as the children held a ref to their parent. Now, the parent variable
30895        is a non-retained reference to an EditCommand *. It would be nice to have a 
30896        weak reference to the parent or even override deref in composite commands (but I
30897        can't since deref() is not virtual). However, this should be OK since any
30898        dangling parent pointer is a sign of a bigger object lifetime problem that
30899        would need to be addressed anyway.
30900
30901        * khtml/css/css_valueimpl.cpp:
30902        (CSSStyleDeclarationImpl::CSSStyleDeclarationImpl): Fix bug in constructor that takes a 
30903        QPtrList<CSSProperty> *. List values must be copied into newly-allocated list, rather than
30904        just assigning the list variable passed in to the local list variable, or the list will be 
30905        double-deleted.
30906        * khtml/editing/htmlediting.cpp:
30907        (khtml::EditCommand::setStartingSelection): No longer call get(). m_parent is no longer a smart pointer.
30908        (khtml::EditCommand::setEndingSelection): Ditto.
30909        (khtml::EditCommand::assignTypingStyle): Short-circuit if passed in style is identical to current style.
30910        Unrelated to the change, but saves some ref's and deref's.
30911        (khtml::EditCommand::setTypingStyle): No longer call get(). m_parent is no longer a smart pointer.
30912        * khtml/editing/htmlediting.h: Change m_parent to a EditCommand *. Was an EditCommandPtr. Using an
30913        EditCommandPtr caused a reference cycle in composite commands as the children held a ref to their parent.
30914        (khtml::EditCommand::parent): No longer call get(). m_parent is no longer a smart pointer.
30915
309162004-11-15  Maciej Stachowiak  <mjs@apple.com>
30917
30918        Reviewed by Kevin.
30919
30920	<rdar://problem/3807080> Safari so slow it seems like a hang accessing a page on an IBM website
30921	
30922        * khtml/xml/dom_nodeimpl.cpp:
30923        (NodeListImpl::NodeListImpl): Initialize isItemCacheValid, renamed isCacheValid to
30924	isLengthCacheValid.
30925        (NodeListImpl::recursiveLength): Adjusted for rename.
30926        (NodeListImpl::recursiveItem): Cache the last item accessed and its offset.
30927	If the same offset is looked up again, just return it, otherwise, if looking up
30928	a later offset, start at the last item and proceed from there.
30929        (NodeListImpl::itemById): Apply the special document optimization to all
30930	nodes that are either a document or in a document - just walk up to make
30931	sure the node found by ID has the root node as an ancestor.
30932        (NodeListImpl::rootNodeSubtreeModified): Adjust both cache bits.
30933        * khtml/xml/dom_nodeimpl.h: Prototype new stuff.
30934
309352004-11-15  John Sullivan  <sullivan@apple.com>
30936
30937        Reviewed by Ken.
30938        
30939        - fixed <rdar://problem/3879539> leak of NSString after pasting into editable HTML (e.g. Mail)
30940
30941        * kwq/KWQKHTMLPart.mm:
30942        (KWQKHTMLPart::documentFragmentWithText):
30943        release mutable copy of string after we're done using it
30944
309452004-11-14  Kevin Decker  <kdecker@apple.com>
30946
30947        Reviewed by mjs.
30948
30949	fixed: <rdar://problem/3823038> LEAK: huge leak in DOM::HTMLElementImpl::createContextualFragment(DOM::DOMString const&, bool)
30950
30951        * khtml/html/html_elementimpl.cpp:
30952        (HTMLElementImpl::setInnerHTML): uses the ref counting system to deallocate fragments instead of explicitly invoking a destructor.
30953        (HTMLElementImpl::setOuterHTML): function is responsible for derefing the fragment prior to returning. Now it does.
30954
309552004-11-13  Maciej Stachowiak  <mjs@apple.com>
30956
30957        Reviewed by Kevin.
30958
30959	<rdar://problem/3878766> VIP: Program listings pages at directv.com takes 75% of time traversing NodeLists
30960
30961        * khtml/dom/dom_node.cpp:
30962        (NodeList::itemById): New method, just forward to impl.
30963        * khtml/dom/dom_node.h: Prototype it.
30964        * khtml/ecma/kjs_dom.cpp:
30965        (DOMNodeList::tryGet): Instead of looping over the whole list to do by-id access,
30966	let the NodeList do it. The NodeList might be able to do it more efficiently.
30967        * khtml/xml/dom_nodeimpl.cpp:
30968	(NodeListImpl::itemById): Optimize for the case where the NodeList
30969	covers the whole document. In this case, just use getElementById,
30970	then check that the element satisfies the list criteria.
30971        (ChildNodeListImpl::nodeMatches): Return true only if the node is our child.
30972        (TagNodeListImpl::TagNodeListImpl): Irrelevant change to reformat initializers.
30973        * khtml/xml/dom_nodeimpl.h:
30974
309752004-11-12  Maciej Stachowiak  <mjs@apple.com>
30976
30977        Reviewed by Gramps.
30978
30979	- fixed another bug in the last checkin, isCacheValid was unitialized, resulting in
30980	sometimes using a huge bogus length value.
30981	
30982        * khtml/xml/dom_nodeimpl.cpp:
30983        (NodeListImpl::NodeListImpl): Initialize isCacheValid.
30984
309852004-11-12  Darin Adler  <darin@apple.com>
30986
30987        Reviewed by Maciej.
30988
30989        - fixed an infinite loop in that last check-in
30990
30991        * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::notifyLocalNodeListsSubtreeModified):
30992        Added a ++i to the loop so it won't get stuck on the first element in the list.
30993
309942004-11-12  Maciej Stachowiak  <mjs@apple.com>
30995
30996        Reviewed by Kevin.
30997
30998	- fixed <rdar://problem/3878183> Safari is 77% slower than it should be on a page on an IBM website due to NodeListImpl length
30999        
31000	I fixed this by changing NodeLists to cache their length, but
31001	invalidate it whenever there is a change in the DOM subtree at
31002	which they are rooted. This makes NodeListImpl::recursiveLength()
31003	drop completely off the profile, since we were repeatedly getting
31004	a length for the same NodeList over and over.
31005	
31006        * khtml/xml/dom_nodeimpl.cpp:
31007        (NodeImpl::NodeImpl):
31008        (NodeImpl::~NodeImpl):
31009        (NodeImpl::registerNodeList):
31010        (NodeImpl::unregisterNodeList):
31011        (NodeImpl::notifyLocalNodeListsSubtreeModified):
31012        (NodeImpl::notifyNodeListsSubtreeModified):
31013        (NodeImpl::dispatchSubtreeModifiedEvent):
31014        (NodeListImpl::NodeListImpl):
31015        (NodeListImpl::~NodeListImpl):
31016        (NodeListImpl::recursiveLength):
31017        (NodeListImpl::recursiveItem):
31018        (NodeListImpl::rootNodeSubtreeModified):
31019        (ChildNodeListImpl::ChildNodeListImpl):
31020        (ChildNodeListImpl::length):
31021        (ChildNodeListImpl::item):
31022        (TagNodeListImpl::TagNodeListImpl):
31023        (TagNodeListImpl::length):
31024        (TagNodeListImpl::item):
31025        (NameNodeListImpl::NameNodeListImpl):
31026        (NameNodeListImpl::length):
31027        (NameNodeListImpl::item):
31028        * khtml/xml/dom_nodeimpl.h:
31029
310302004-11-12  Darin Adler  <darin@apple.com>
31031
31032        Reviewed by Maciej.
31033
31034        - various small cleanups
31035
31036        * khtml/xml/dom_docimpl.h: Added policyBaseURL and setPolicyBaseURL.
31037        * khtml/html/html_documentimpl.h: Removed policyBaseURL and setPolicyBaseURL.
31038
31039        * khtml/xml/xml_tokenizer.h: Marked isWaitingForScripts const.
31040        * khtml/xml/xml_tokenizer.cpp: (khtml::XMLTokenizer::isWaitingForScripts): Marked const.
31041        * khtml/html/htmltokenizer.h: Marked isWaitingForScripts const.
31042        * khtml/html/htmltokenizer.cpp:
31043        (khtml::HTMLTokenizer::isWaitingForScripts): Marked const.
31044        (khtml::HTMLTokenizer::setOnHold): Took out extraneous line of code.
31045
31046        * khtml/khtml_part.h: Removed docImpl function.
31047        * khtml/khtml_part.cpp: Ditto.
31048
31049        * khtml/xml/dom_docimpl.cpp: (DocumentImpl::close): Simplified code that implements
31050        the "redirect during onload" optimization. Now uses isScheduledLocationChangePending.
31051
31052        * kwq/KWQKHTMLPart.h: Removed now-unused _firstResponderAtMouseDownTime.
31053        * kwq/KWQKHTMLPart.mm: Removed _firstResponderAtMouseDownTime (forgot to land this
31054        part of the change last time, which is why the build broke).
31055        (KWQKHTMLPart::updatePolicyBaseURL): Use xmlDocImpl instead of docImpl.
31056        (KWQKHTMLPart::setPolicyBaseURL): Ditto.
31057        (KWQKHTMLPart::keyEvent): Ditto.
31058        (KWQKHTMLPart::dispatchCPPEvent): Ditto.
31059        (KWQKHTMLPart::bodyBackgroundColor): Ditto.
31060
310612004-11-12  Chris Blumenberg  <cblu@apple.com>
31062
31063	<rdar://problem/3843312> REGRESSION: Tabbing into content area puts insertion point at start, should go to where it last was
31064
31065        Reviewed by rjw.
31066
31067        * kwq/KWQKHTMLPart.mm:
31068        (KWQKHTMLPart::nextKeyViewInFrameHierarchy): only blow away selection when another view is focused
31069
31070=== Safari-171 ===
31071
310722004-11-12  Darin Adler  <darin@apple.com>
31073
31074        Reviewed by Kevin.
31075
31076        - fixed a couple places that would not work for XML documents
31077
31078        * khtml/ecma/kjs_window.cpp:
31079        (Window::isSafeScript): Use xmlDocImpl instead of docImpl, since the function we're using
31080        is present on the base class.
31081        (WindowFunc::tryCall): More of the same.
31082
310832004-11-12  Darin Adler  <darin@apple.com>
31084
31085        - land versions of these files generated by the newer gperf
31086
31087        People building on Panther will continue to see these files modified.
31088        A workaround would be to install the newer gperf on our Tiger build machines.
31089
31090        * khtml/css/cssproperties.c: Regenerated.
31091        * khtml/css/cssvalues.c: Regenerated.
31092        * khtml/html/doctypes.cpp: Regenerated.
31093        * khtml/html/kentities.c: Regenerated.
31094        * khtml/misc/htmlattrs.c: Regenerated.
31095        * khtml/misc/htmltags.c: Regenerated.
31096        * kwq/KWQColorData.c: Regenerated.
31097
310982004-11-11  Richard Williamson   <rjw@apple.com>
31099	
31100        Fix build horkage from previous checkin.
31101		
31102        * kwq/KWQKHTMLPart.h:
31103
311042004-11-11  Darin Adler  <darin@apple.com>
31105
31106        Reviewed by John.
31107
31108        - fixed <rdar://problem/3846152> REGRESSION (125-166): can't drag text out of <input type=text> fields
31109
31110        * kwq/WebCoreBridge.h: Added wasFirstResponderAtMouseDownTime: method.
31111
31112        * kwq/KWQKHTMLPart.h: Removed _firstResponderAtMouseDownTime.
31113        * kwq/KWQKHTMLPart.mm:
31114        (KWQKHTMLPart::passWidgetMouseDownEventToWidget): Use the new wasFirstResponderAtMouseDownTime:
31115        method on the bridge instead of _firstResponderAtMouseDownTime. This will return YES for the case where
31116        we started with the NSTextField as first responder, and then took focus away and gave it back, which
31117        makes dragging text work again.
31118        (KWQKHTMLPart::mouseDown): Removed code to set _firstResponderAtMouseDownTime.
31119
311202004-11-11  David Hyatt  <hyatt@apple.com>
31121
31122	Disable the tokenizer deferral, since it hurts the PLT by 3% or so.
31123	
31124        Reviewed by vicki
31125
31126        * khtml/html/htmltokenizer.cpp:
31127        (khtml::HTMLTokenizer::continueProcessing):
31128
311292004-11-11  Ken Kocienda  <kocienda@apple.com>
31130
31131        Reviewed by Maciej
31132
31133        * khtml/editing/htmlediting.cpp:
31134        (khtml::InsertLineBreakCommand::doApply): Use new isLastVisiblePositionInBlock() helper instead
31135        of old isLastInBlock() member function on VisiblePosition. This is a cosmetic change in keeping
31136        with the prevailing style for the VisiblePosition class.
31137        * khtml/editing/htmlediting.h: Move isLastVisiblePositionInNode() function to visible_position.[cpp|h] files. 
31138        * khtml/editing/visible_position.cpp: Removed isLastInBlock() helper. Renamed to isLastVisiblePositionInBlock().
31139        (khtml::visiblePositionsInDifferentBlocks): New helper method.
31140        (khtml::isLastVisiblePositionInBlock): Ditto.
31141        (khtml::isLastVisiblePositionInNode): Ditto.
31142        * khtml/editing/visible_position.h: Add declarations for new functions.
31143
311442004-11-11  Ken Kocienda  <kocienda@apple.com>
31145
31146        Reviewed by Hyatt
31147
31148        * khtml/editing/htmlediting.cpp:
31149        (khtml::CompositeEditCommand::deleteInsignificantText): Call new compareBoundaryPoints convenience.
31150        (khtml::ApplyStyleCommand::removeBlockStyle): Ditto.
31151        (khtml::ApplyStyleCommand::removeInlineStyle): Ditto.
31152        (khtml::ApplyStyleCommand::nodeFullySelected): Ditto.
31153        (khtml::DeleteSelectionCommand::initializePositionData): Ditto.
31154        * khtml/xml/dom2_rangeimpl.cpp:
31155        (DOM::RangeImpl::compareBoundaryPoints): New convenience variant of this function which takes two Position objects.
31156        * khtml/xml/dom2_rangeimpl.h: Ditto.
31157
311582004-11-11  Ken Kocienda  <kocienda@apple.com>
31159
31160        Reviewed by Harrison
31161
31162        Some improvements to deleting when complete lines are selected.
31163
31164        * khtml/editing/htmlediting.cpp:
31165        (khtml::DeleteSelectionCommand::initializePositionData): Detect when the line containing
31166        the end of a selection is fully selected. Turn off block merging in this case.
31167        (khtml::DeleteSelectionCommand::handleSpecialCaseBRDelete): Fix a bug in the check for
31168        whether a BR immediately followed a block. The old code could erroneously skip nodes.
31169        (khtml::DeleteSelectionCommand::handleGeneralDelete): Add a case for when the entire
31170        start block is selected. This new code will now delete this block in one call, rather
31171        than iterating over each child.
31172        * khtml/editing/visible_position.cpp:
31173        (khtml::visiblePositionsOnDifferentLines): New helper called in initializePositionData()
31174        to do the work mentioned above in the comment for that function.
31175        (khtml::isFirstVisiblePositionOnLine): Ditto.
31176        (khtml::isLastVisiblePositionOnLine): Ditto.
31177        * khtml/editing/visible_position.h: Add new functions.
31178        * layout-tests/editing/deleting/delete-line-001-expected.txt: Added.
31179        * layout-tests/editing/deleting/delete-line-001.html: Added.
31180        * layout-tests/editing/deleting/delete-line-002-expected.txt: Added.
31181        * layout-tests/editing/deleting/delete-line-002.html: Added.
31182        * layout-tests/editing/deleting/delete-line-003-expected.txt: Added.
31183        * layout-tests/editing/deleting/delete-line-003.html: Added.
31184        * layout-tests/editing/deleting/delete-line-004-expected.txt: Added.
31185        * layout-tests/editing/deleting/delete-line-004.html: Added.
31186        * layout-tests/editing/deleting/delete-line-005-expected.txt: Added.
31187        * layout-tests/editing/deleting/delete-line-005.html: Added.
31188        * layout-tests/editing/deleting/delete-line-006-expected.txt: Added.
31189        * layout-tests/editing/deleting/delete-line-006.html: Added.
31190        * layout-tests/editing/deleting/delete-line-007-expected.txt: Added.
31191        * layout-tests/editing/deleting/delete-line-007.html: Added.
31192        * layout-tests/editing/deleting/delete-line-008-expected.txt: Added.
31193        * layout-tests/editing/deleting/delete-line-008.html: Added.
31194        * layout-tests/editing/deleting/delete-line-009-expected.txt: Added.
31195        * layout-tests/editing/deleting/delete-line-009.html: Added.
31196        * layout-tests/editing/deleting/delete-line-010-expected.txt: Added.
31197        * layout-tests/editing/deleting/delete-line-010.html: Added.
31198        * layout-tests/editing/deleting/delete-line-011-expected.txt: Added.
31199        * layout-tests/editing/deleting/delete-line-011.html: Added.
31200        * layout-tests/editing/deleting/delete-line-012-expected.txt: Added.
31201        * layout-tests/editing/deleting/delete-line-012.html: Added.
31202
312032004-11-11  Ken Kocienda  <kocienda@apple.com>
31204
31205        Reviewed by Adele
31206
31207        * khtml/editing/htmlediting.cpp:
31208        (khtml::DeleteSelectionCommand::initializePositionData): Add some comments and a new piece of debugging output.
31209
312102004-11-11  Ken Kocienda  <kocienda@apple.com>
31211
31212        Reviewed by John
31213
31214        Fix for these bugs:
31215
31216        <rdar://problem/3875618> REGRESSION (Mail): Hitting down arrow with full line selected skips line (br case)
31217        <rdar://problem/3875641> REGRESSION (Mail): Hitting down arrow with full line selected skips line (div case)
31218
31219        * khtml/editing/selection.cpp:
31220        (khtml::Selection::modifyMovingRightForward): Fixed by juggling the position as the starting point for
31221        the next line position when necessary.
31222        * layout-tests/editing/selection/move-3875618-fix-expected.txt: Added.
31223        * layout-tests/editing/selection/move-3875618-fix.html: Added.
31224        * layout-tests/editing/selection/move-3875641-fix-expected.txt: Added.
31225        * layout-tests/editing/selection/move-3875641-fix.html: Added.
31226
312272004-11-11  Ken Kocienda  <kocienda@apple.com>
31228
31229        Reviewed by John
31230
31231        Improved some function names, at John's urging. No changes to the
31232        functions themselves.
31233        
31234        canPerformSpecialCaseAllContentDelete() --> handleSpecialCaseAllContentDelete()
31235        canPerformSpecialCaseBRDelete() --> handleSpecialCaseBRDelete()
31236        performGeneralDelete() --> handleGeneralDelete()
31237
31238        * khtml/editing/htmlediting.cpp:
31239        (khtml::DeleteSelectionCommand::handleSpecialCaseAllContentDelete)
31240        (khtml::DeleteSelectionCommand::handleSpecialCaseBRDelete)
31241        (khtml::DeleteSelectionCommand::handleGeneralDelete)
31242        (khtml::DeleteSelectionCommand::doApply)
31243        * khtml/editing/htmlediting.h
31244
312452004-11-11  Ken Kocienda  <kocienda@apple.com>
31246
31247        Reviewed by John
31248        
31249        Updated some layout test results that changed as a result of my last checking.
31250        Added a new test that has been in my tree for a few days.
31251
31252        * layout-tests/editing/deleting/delete-3775172-fix-expected.txt:
31253        * layout-tests/editing/deleting/delete-3800834-fix-expected.txt:
31254        * layout-tests/editing/inserting/insert-3851164-fix-expected.txt: Added.
31255        * layout-tests/editing/inserting/insert-3851164-fix.html: Added.
31256
312572004-11-11  Ken Kocienda  <kocienda@apple.com>
31258
31259        Reviewed by John
31260
31261        * khtml/editing/htmlediting.cpp:
31262        (khtml::debugNode): New debugging helper.
31263        (khtml::DeleteSelectionCommand::initializePositionData): No longer call obsoleted
31264        startPositionForDelete() and endPositionForDelete() functions. Just use the 
31265        m_selectionToDelete object to determine start and end positions for the delete.
31266        (khtml::DeleteSelectionCommand::canPerformSpecialCaseAllContentDelete): New
31267        function that creates a special case for deleting all the content in a root
31268        editable element.
31269        (khtml::DeleteSelectionCommand::doApply): Call canPerformSpecialCaseAllContentDelete()
31270        function before BR special case and the general case delete functions.
31271        * khtml/editing/htmlediting.h: Updated for changed functions.
31272
312732004-11-10  Kevin Decker  <kdecker@apple.com>
31274
31275        Reviewed by mjs.
31276	
31277        Fixed <rdar://problem/3875011> DOMNodeList::tryGet() performs unnecessary (and expensive) dom tree traversals. Improved a loop from 2-n-squared to just n-squared.  
31278
31279        * khtml/ecma/kjs_dom.cpp:
31280        (DOMNodeList::tryGet): Got rid of an unnecessary node traversal. 
31281
312822004-11-10  Ken Kocienda  <kocienda@apple.com>
31283
31284        Reviewed by Chris
31285
31286        * khtml/editing/htmlediting.cpp:
31287        (khtml::DeleteSelectionCommand::initializePositionData): Move position adjustments for
31288        smart delete from the two functions below to here. There was an unnecessary double 
31289        calculation of the leading and trailing whitespace positions. Also refined the trailing
31290        case so it only acts when the leading position is null (which seems to match TextEdit in
31291        my tests). Also removed some unnecessary copying of Position objects.
31292        (khtml::DeleteSelectionCommand::startPositionForDelete): Move out smart delete adjustment
31293        from here.
31294        (khtml::DeleteSelectionCommand::endPositionForDelete): Ditto.
31295
312962004-11-10  Ken Kocienda  <kocienda@apple.com>
31297
31298        Reviewed by Harrison
31299
31300        (khtml::DeleteSelectionCommand::performGeneralDelete): Add some more comments to
31301        make things more clear.
31302        * khtml/editing/selection.cpp:
31303        (khtml::Selection::toRange): Fixed the upstream and downstream calls so that the 
31304        resulting positions do not cross block boundaries. This was a bug and caused some
31305        delete problems when whole blocks were selected. I will be addressing that issue
31306        more fully in upcoming changes.
31307
313082004-11-10  Ken Kocienda  <kocienda@apple.com>
31309
31310        Reviewed by Harrison
31311
31312        Some cleanups and fixes in upstream and downstream functions. 
31313        
31314        Removed redundant checks for isBlockFlow() when calling enclosingBlockFlowElement(). 
31315        Blocks do not need to skip the call to enclosingBlockFlowElement() for fear that the 
31316        block's enclosing block will be returned. 
31317        
31318        Remove code from upstream that confined the serach to block boundaries outside of
31319        the code which runs in the StayInBlock case. This code was redundant, and caused
31320        incorrect results to be returned in the DoNotStayInBlock case.
31321        
31322        In downstream, the check for crossing into a new block should use the equivalentDeepPosition()
31323        node, not the the this pointer's node.
31324
31325        * khtml/xml/dom_position.cpp:
31326        (DOM::Position::upstream)
31327        (DOM::Position::downstream)
31328
313292004-11-09  David Hyatt  <hyatt@apple.com>
31330
31331	Fix for 3873234, Safari UI is unresponsive when parsing multiple HTML docs and 3873233, Safari hangs when
31332        loading large local files.
31333	
31334        Reviewed by mjs
31335
31336        * khtml/html/htmltokenizer.cpp:
31337        (khtml::HTMLTokenizer::HTMLTokenizer):
31338        (khtml::HTMLTokenizer::reset):
31339        (khtml::HTMLTokenizer::write):
31340        (khtml::HTMLTokenizer::stopped):
31341        (khtml::HTMLTokenizer::processingData):
31342        (khtml::HTMLTokenizer::continueProcessing):
31343        (khtml::HTMLTokenizer::timerEvent):
31344        (khtml::HTMLTokenizer::allDataProcessed):
31345        (khtml::HTMLTokenizer::end):
31346        (khtml::HTMLTokenizer::finish):
31347        (khtml::HTMLTokenizer::notifyFinished):
31348        * khtml/html/htmltokenizer.h:
31349        * khtml/khtml_part.cpp:
31350        (KHTMLPart::slotFinished):
31351        (KHTMLPart::end):
31352        (KHTMLPart::stop):
31353        * khtml/khtml_part.h:
31354        (KHTMLPart::tokenizerProcessedData):
31355        * khtml/khtmlview.cpp:
31356        * khtml/xml/dom_docimpl.cpp:
31357        * khtml/xml/xml_tokenizer.h:
31358        (khtml::Tokenizer::stopped):
31359        (khtml::Tokenizer::processingData):
31360        * kwq/KWQDateTime.h:
31361        * kwq/KWQDateTime.mm:
31362        (QDateTime::secsTo):
31363        (KWQUIEventTime::uiEventPending):
31364        * kwq/KWQKHTMLPart.h:
31365        * kwq/KWQKHTMLPart.mm:
31366        (KWQKHTMLPart::tokenizerProcessedData):
31367        * kwq/WebCoreBridge.h:
31368        * kwq/WebCoreBridge.mm:
31369        (-[WebCoreBridge stop]):
31370        (-[WebCoreBridge numPendingOrLoadingRequests]):
31371        (-[WebCoreBridge doneProcessingData]):
31372
313732004-11-09  David Harrison  <harrison@apple.com>
31374
31375        Reviewed by Ken Kocienda.
31376
31377		<rdar://problem/3865837> Wrong text style after delete to start of document
31378		
31379        * khtml/editing/htmlediting.cpp:
31380        (khtml::DeleteSelectionCommand::saveTypingStyleState):
31381        Sample computedStyle of m_selectionToDelete.start instead of m_downstreamStart.
31382
313832004-11-09  Richard Williamson   <rjw@apple.com>
31384
31385        Fixed <rdar://problem/3872440> NSTimer prematurely released.
31386
31387        Reviewed by Darin.
31388
31389        * kwq/KWQTimer.mm:
31390        (QTimer::fire):
31391        * kwq/KWQWidget.mm:
31392        (QWidget::paint):
31393
313942004-11-09  Chris Blumenberg  <cblu@apple.com>
31395
31396        Reviewed by vicki.
31397
31398        * WebCore.pbproj/project.pbxproj: explicitly link against libxml2.2.6.14.dylib since the version number has been bumped
31399
314002004-11-08  David Harrison  <harrison@apple.com>
31401
31402        Reviewed by Ken Kocienda.
31403
31404		<rdar://problem/3865854> Deleting first line deletes all lines
31405		
31406        * khtml/editing/htmlediting.cpp:
31407        (khtml::DeleteSelectionCommand::performGeneralDelete):
31408        Problem was that the code that deletes fully selected m_downstreamEnd.node() by deleting one
31409        of its ancestors, failed to end the loop that deletes all fully selected nodes.  Also,
31410        fixed this code to clear m_trailingWhitespaceValid.  Also removed dead m_endingPosition
31411        update because it is handled in calculateEndingPosition now.
31412        * layout-tests/editing/deleting/delete-3865854-fix-expected.txt: Added.
31413        * layout-tests/editing/deleting/delete-3865854-fix.html: Added.
31414
314152004-11-08  Ken Kocienda  <kocienda@apple.com>
31416
31417        Reviewed by Hyatt
31418
31419        * khtml/html/html_elementimpl.cpp:
31420        (HTMLElementImpl::createContextualFragment): Now takes flag to control whether comments
31421        are added to the DOM.
31422        * khtml/html/html_elementimpl.h: Ditto.
31423        * khtml/html/htmlparser.cpp:
31424        (KHTMLParser::KHTMLParser): Ditto.
31425        (KHTMLParser::getElement): Remove ifdef for comment processing. Replace with flag check.
31426        * khtml/html/htmlparser.h: Add flag to constructor so callers can request comment nodes.
31427        * khtml/html/htmltokenizer.cpp:
31428        (khtml::HTMLTokenizer::HTMLTokenizer): Add flag to constructor so callers can request comment nodes.
31429        (khtml::HTMLTokenizer::parseComment): Fix code to handle parsing out comment text correctly.
31430        There were a couple of indexing errors that resulted in the comment text containing part of the 
31431        comment markers.
31432        (khtml::HTMLTokenizer::processToken): Don't let token id be reset to ID_TEXT if token is a comment.
31433        * khtml/html/htmltokenizer.h:  Add flag to constructor so callers can request comment nodes.
31434
314352004-11-08  Chris Blumenberg  <cblu@apple.com>
31436
31437	Fixed: <rdar://problem/3870907> WebCore unnecessary links against JavaVM and Security
31438
31439        Reviewed by darin.
31440
31441        * WebCore.pbproj/project.pbxproj: stop unnecessary linking
31442        * khtml/html/html_objectimpl.h: don't unnecessarily include JavaVM header
31443        * kwq/KWQKHTMLPart.h: ditto
31444
314452004-11-08  Darin Adler  <darin@apple.com>
31446
31447        Reviewed by John.
31448
31449        - fixed <rdar://problem/3825966> 8A274 Safari crashes closing window: QTimer::fire() with MallocStackLogging and MallocScribble enabled
31450
31451        * kwq/KWQTimer.mm: (QTimer::fire): Rearrange so we don't access the QTimer object after calling code
31452        that possibly deletes the QTimer.
31453
314542004-11-08  Chris Blumenberg  <cblu@apple.com>
31455
31456	Fixed: <rdar://problem/3783904> Return key behavior is confusingly different between popup menus and autofill menus
31457
31458        Reviewed by john.
31459
31460        * kwq/KWQTextField.mm:
31461        (-[KWQTextFieldController textView:shouldHandleEvent:]): let the bridge have a crack at the event so that it can swallow the newline if it wants to
31462        * kwq/WebCoreBridge.h:
31463
314642004-11-08  David Harrison  <harrison@apple.com>
31465
31466        Reviewed by Darin.
31467        
31468        Renamed NodeImpl::enclosingNonBlockFlowElement to NodeImpl::enclosingInlineElement, per Hyatt.
31469
31470        * khtml/editing/htmlediting.cpp:
31471        (khtml::DeleteSelectionCommand::moveNodesAfterNode):
31472        * khtml/xml/dom_nodeimpl.cpp:
31473        (NodeImpl::enclosingInlineElement):
31474        * khtml/xml/dom_nodeimpl.h:
31475
314762004-11-05  Chris Blumenberg  <cblu@apple.com>
31477
31478	Fixed: <rdar://problem/3838413> REGRESSION (Mail): "Smart" word paste adds spaces before/after special characters
31479
31480        Reviewed by rjw.
31481
31482        * khtml/editing/htmlediting.cpp:
31483        (khtml::ReplaceSelectionCommand::doApply): call isCharacterSmartReplaceExempt on the part to see if a space should be inserted
31484        * khtml/editing/visible_position.cpp:
31485        (khtml::VisiblePosition::character): new, returns the character for the position
31486        * khtml/editing/visible_position.h:
31487        * kwq/KWQKHTMLPart.h:
31488        * kwq/KWQKHTMLPart.mm:
31489        (KWQKHTMLPart::isCharacterSmartReplaceExempt): new, calls the bridge
31490        * kwq/WebCoreBridge.h:
31491
31492=== Safari-170 ===
31493
314942004-11-05  Adele Amchan  <adele@apple.com>
31495
31496        Reviewed by Darin
31497
31498	Fix for <rdar://problem/3854383> REGRESSION(166-168) input fields show black background when background color is set to transparent
31499	and a workaround for displaying transparent backgrounds for textareas.
31500
31501        * kwq/KWQLineEdit.mm: (QLineEdit::setPalette): If the background color is transparent (we check the alpha value) then we set the background to white
31502        * kwq/KWQTextEdit.mm: (QTextEdit::setPalette): If the background color is transparent, then we don't draw the background
31503        * kwq/KWQTextArea.mm: (-[KWQTextArea setDrawsBackground:]): added setDrawsBackground function which calls setDrawsBackground on the super class, 
31504          on the contentView, and on the textView.
31505
315062004-11-04  David Hyatt  <hyatt@apple.com>
31507
31508	Fix for relpositioned inlines.  This was reviewed a long time ago, but I can't recall who reviewed it (either
31509	darin or ken).
31510	
31511        Reviewed by darin or ken
31512
31513        * khtml/rendering/bidi.cpp:
31514        (khtml::appendRunsForObject):
31515        (khtml::RenderBlock::skipWhitespace):
31516        (khtml::RenderBlock::findNextLineBreak):
31517        * khtml/rendering/render_block.cpp:
31518        (khtml::RenderBlock::lowestPosition):
31519        (khtml::RenderBlock::rightmostPosition):
31520        (khtml::RenderBlock::leftmostPosition):
31521        * khtml/rendering/render_box.cpp:
31522        (RenderBox::position):
31523        * khtml/rendering/render_box.h:
31524        (khtml::RenderBox::staticX):
31525        (khtml::RenderBox::staticY):
31526        * khtml/rendering/render_layer.cpp:
31527        (RenderLayer::updateLayerPosition):
31528        (RenderLayer::convertToLayerCoords):
31529        * khtml/rendering/render_line.cpp:
31530        (khtml::InlineFlowBox::placeBoxesHorizontally):
31531        * khtml/rendering/render_object.h:
31532        (khtml::RenderObject::staticX):
31533        (khtml::RenderObject::staticY):
31534
31535	Finish turning on XSLT.  Make sure child stylesheets can load.
31536	
31537        * khtml/xsl/xslt_processorimpl.cpp:
31538        (DOM::stylesheetLoadFunc):
31539        (DOM::XSLTProcessorImpl::transformDocument):
31540
315412004-11-04  David Hyatt  <hyatt@apple.com>
31542
31543	Implement CSS3 support for multiple backgrounds.  Also fix a bug with background propagation so that it only
31544	happens (from the <body> to the root) for HTML documents.  Fixed background-position to handle a mixture of
31545	keyword and length values.
31546
31547        Reviewed by darin
31548
31549        * khtml/css/cssparser.cpp:
31550        (CSSParser::parseValue):
31551        (CSSParser::addBackgroundValue):
31552        (CSSParser::parseBackgroundShorthand):
31553        (CSSParser::parseBackgroundColor):
31554        (CSSParser::parseBackgroundImage):
31555        (CSSParser::parseBackgroundPositionXY):
31556        (CSSParser::parseBackgroundPosition):
31557        (CSSParser::parseBackgroundProperty):
31558        (CSSParser::parseColorFromValue):
31559        * khtml/css/cssparser.h:
31560        * khtml/css/cssstyleselector.cpp:
31561        (khtml::CSSStyleSelector::adjustRenderStyle):
31562        (khtml::CSSStyleSelector::applyProperty):
31563        (khtml::CSSStyleSelector::mapBackgroundAttachment):
31564        (khtml::CSSStyleSelector::mapBackgroundImage):
31565        (khtml::CSSStyleSelector::mapBackgroundRepeat):
31566        (khtml::CSSStyleSelector::mapBackgroundXPosition):
31567        (khtml::CSSStyleSelector::mapBackgroundYPosition):
31568        * khtml/css/cssstyleselector.h:
31569        * khtml/rendering/render_box.cpp:
31570        (RenderBox::paintRootBoxDecorations):
31571        (RenderBox::paintBoxDecorations):
31572        (RenderBox::paintBackgrounds):
31573        (RenderBox::paintBackground):
31574        (RenderBox::paintBackgroundExtended):
31575        * khtml/rendering/render_box.h:
31576        * khtml/rendering/render_form.cpp:
31577        (RenderFieldset::paintBoxDecorations):
31578        * khtml/rendering/render_line.cpp:
31579        (khtml::InlineFlowBox::paintBackgrounds):
31580        (khtml::InlineFlowBox::paintBackground):
31581        (khtml::InlineFlowBox::paintBackgroundAndBorder):
31582        * khtml/rendering/render_line.h:
31583        * khtml/rendering/render_object.cpp:
31584        (RenderObject::setStyle):
31585        (RenderObject::updateBackgroundImages):
31586        (RenderObject::getVerticalPosition):
31587        * khtml/rendering/render_object.h:
31588        (khtml::RenderObject::paintBackgroundExtended):
31589        * khtml/rendering/render_style.cpp:
31590        (m_next):
31591        (BackgroundLayer::BackgroundLayer):
31592        (BackgroundLayer::~BackgroundLayer):
31593        (BackgroundLayer::operator=):
31594        (BackgroundLayer::operator==):
31595        (BackgroundLayer::fillUnsetProperties):
31596        (BackgroundLayer::cullEmptyLayers):
31597        (StyleBackgroundData::StyleBackgroundData):
31598        (StyleBackgroundData::operator==):
31599        (RenderStyle::diff):
31600        (RenderStyle::adjustBackgroundLayers):
31601        * khtml/rendering/render_style.h:
31602        (khtml::OutlineValue::operator==):
31603        (khtml::OutlineValue::operator!=):
31604        (khtml::BackgroundLayer::backgroundImage):
31605        (khtml::BackgroundLayer::backgroundXPosition):
31606        (khtml::BackgroundLayer::backgroundYPosition):
31607        (khtml::BackgroundLayer::backgroundAttachment):
31608        (khtml::BackgroundLayer::backgroundRepeat):
31609        (khtml::BackgroundLayer::next):
31610        (khtml::BackgroundLayer::isBackgroundImageSet):
31611        (khtml::BackgroundLayer::isBackgroundXPositionSet):
31612        (khtml::BackgroundLayer::isBackgroundYPositionSet):
31613        (khtml::BackgroundLayer::isBackgroundAttachmentSet):
31614        (khtml::BackgroundLayer::isBackgroundRepeatSet):
31615        (khtml::BackgroundLayer::setBackgroundImage):
31616        (khtml::BackgroundLayer::setBackgroundXPosition):
31617        (khtml::BackgroundLayer::setBackgroundYPosition):
31618        (khtml::BackgroundLayer::setBackgroundAttachment):
31619        (khtml::BackgroundLayer::setBackgroundRepeat):
31620        (khtml::BackgroundLayer::clearBackgroundImage):
31621        (khtml::BackgroundLayer::clearBackgroundXPosition):
31622        (khtml::BackgroundLayer::clearBackgroundYPosition):
31623        (khtml::BackgroundLayer::clearBackgroundAttachment):
31624        (khtml::BackgroundLayer::clearBackgroundRepeat):
31625        (khtml::BackgroundLayer::setNext):
31626        (khtml::BackgroundLayer::operator!=):
31627        (khtml::BackgroundLayer::containsImage):
31628        (khtml::BackgroundLayer::hasImage):
31629        (khtml::BackgroundLayer::hasFixedImage):
31630        (khtml::RenderStyle::setBitDefaults):
31631        (khtml::RenderStyle::hasBackground):
31632        (khtml::RenderStyle::hasFixedBackgroundImage):
31633        (khtml::RenderStyle::outlineWidth):
31634        (khtml::RenderStyle::outlineStyle):
31635        (khtml::RenderStyle::outlineStyleIsAuto):
31636        (khtml::RenderStyle::outlineColor):
31637        (khtml::RenderStyle::backgroundColor):
31638        (khtml::RenderStyle::backgroundImage):
31639        (khtml::RenderStyle::backgroundRepeat):
31640        (khtml::RenderStyle::backgroundAttachment):
31641        (khtml::RenderStyle::backgroundXPosition):
31642        (khtml::RenderStyle::backgroundYPosition):
31643        (khtml::RenderStyle::accessBackgroundLayers):
31644        (khtml::RenderStyle::backgroundLayers):
31645        (khtml::RenderStyle::outlineOffset):
31646        (khtml::RenderStyle::resetOutline):
31647        (khtml::RenderStyle::setBackgroundColor):
31648        (khtml::RenderStyle::setOutlineWidth):
31649        (khtml::RenderStyle::setOutlineStyle):
31650        (khtml::RenderStyle::setOutlineColor):
31651        (khtml::RenderStyle::clearBackgroundLayers):
31652        (khtml::RenderStyle::inheritBackgroundLayers):
31653        (khtml::RenderStyle::setOutlineOffset):
31654        * khtml/rendering/render_table.cpp:
31655        (RenderTable::paintBoxDecorations):
31656        (RenderTableCell::paintBoxDecorations):
31657
316582004-11-04  David Hyatt  <hyatt@apple.com>
31659
31660	Make sure the text decoder returns empty strings rather than null strings when the utf8 char ptr is non-null.
31661	Ensures that <a href=""> works with libxml (which returns data in utf-8 buffers).
31662
31663        Reviewed by darin
31664
31665        * kwq/KWQTextCodec.mm:
31666        (KWQTextDecoder::convertLatin1):
31667        (KWQTextDecoder::convertUTF16):
31668        (KWQTextDecoder::convertUsingTEC):
31669        (KWQTextDecoder::toUnicode):
31670
316712004-11-04  David Hyatt  <hyatt@apple.com>
31672
31673	Make sure line-height returns the correct value for normal.
31674	
31675        Reviewed by darin
31676
31677        * khtml/css/css_computedstyle.cpp:
31678        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
31679
316802004-11-04  David Harrison  <harrison@apple.com>
31681
31682        Reviewed by Ken Kocienda.
31683
31684		<rdar://problem/3857753> REGRESSION (Mail): Delete incorrectly causes text to take on new style
31685		
31686        * khtml/editing/htmlediting.cpp:
31687        (khtml::DeleteSelectionCommand::moveNodesAfterNode): Fixed to move entire source subtree (up
31688        to, but not including, the enclosingBlockFlowElement) rather than just the source element.
31689        Fixed to insert after the destination subtree, rather than the destination element.  Handles
31690        edge case of deleting back to the top of the tree, where there is nothing left to insert after.
31691        * khtml/xml/dom_nodeimpl.cpp:
31692        (NodeImpl::enclosingNonBlockFlowElement): New method to support moveNodesAfterNode changes.
31693        * khtml/xml/dom_nodeimpl.h: Declare NodeImpl::enclosingNonBlockFlowElement
31694        * layout-tests/editing/deleting/delete-3857753-fix-expected.txt: Added.
31695        * layout-tests/editing/deleting/delete-3857753-fix.html: Added.
31696
316972004-11-03  Ken Kocienda  <kocienda@apple.com>
31698
31699        Reviewed by me
31700        
31701        More layout tests.
31702
31703        * layout-tests/editing/deleting/delete-br-008-expected.txt: Added.
31704        * layout-tests/editing/deleting/delete-br-008.html: Added.
31705        * layout-tests/editing/deleting/delete-br-009-expected.txt: Added.
31706        * layout-tests/editing/deleting/delete-br-009.html: Added.
31707        * layout-tests/editing/deleting/delete-br-010-expected.txt: Added.
31708        * layout-tests/editing/deleting/delete-br-010.html: Added.
31709
317102004-11-03  Maciej Stachowiak  <mjs@apple.com>
31711
31712        Fix by Yasuo Kida, reviewed by me.
31713
31714	<rdar://problem/3819004> REGRESSION (Mail): Can't move cursor / delete character after deleting the active input area
31715        
31716	* kwq/KWQKHTMLPart.mm:
31717        (KWQKHTMLPart::setMarkedTextRange): Treat a collapsed range the
31718	same as a nil range - setting an empty marked range should clear
31719	the marked range entirely.
31720
317212004-11-02  Maciej Stachowiak  <mjs@apple.com>
31722
31723        Reviewed by Dave Hyatt (when I originally coded it).
31724
31725	WebCore part of fix for:
31726
31727	<rdar://problem/3759187> REGRESSION (Mail): implement firstRectForCharacterRange:
31728	
31729        * kwq/WebCoreBridge.h:
31730        * kwq/WebCoreBridge.mm:
31731        (-[WebCoreBridge firstRectForDOMRange:]): New method to compute the rect for a
31732	DOMRange, or if the range is split into multiple lines, the rect for the part on
31733	the first line only.
31734	
31735        * khtml/rendering/render_object.cpp:
31736        (RenderObject::caretRect): Added extraWidthToEndOfLine parameter and ditto
31737	for the overrides below.
31738        * khtml/rendering/render_object.h:
31739        * khtml/rendering/render_box.cpp:
31740        (RenderBox::caretRect):
31741        * khtml/rendering/render_box.h:
31742        * khtml/rendering/render_br.cpp:
31743        (RenderBR::caretRect):
31744        * khtml/rendering/render_br.h:
31745        * khtml/rendering/render_flow.cpp:
31746        (RenderFlow::caretRect):
31747        * khtml/rendering/render_flow.h:
31748        * khtml/rendering/render_text.cpp:
31749        (RenderText::caretRect):
31750
317512004-11-02  Ken Kocienda  <kocienda@apple.com>
31752
31753        Reviewed by Hyatt
31754
31755        Implemented command to insert a block in response to typing a return key (even though
31756        I am not turning that on by default with this patch....that will come later). 
31757        
31758        This new command is called InsertParagraphSeparatorCommand.
31759        
31760        Reworked the command and function names associated with inserting content into a 
31761        document. Before this patch, there were inputXXX and insertXXX variants, with the
31762        former used for more high-level actions and the latter used for lower-level stuff.
31763        However, this was confusing as the AppKit uses insertXXX for everything. This resulted
31764        in an insertXXX command going through an inputXXX WebCore step and then finally to an
31765        insertXXX WebCore step. To make this less confusing, I have changes all the names to
31766        be insertXXX, and modified the lower-level operations so that it is clear what they do.
31767        
31768        * khtml/editing/htmlediting.cpp:
31769        (khtml::EditCommandPtr::isInsertTextCommand): Name change.
31770        (khtml::EditCommand::isInsertTextCommand): Ditto.
31771        (khtml::CompositeEditCommand::inputText): Ditto.
31772        (khtml::CompositeEditCommand::insertTextIntoNode): Ditto.
31773        (khtml::CompositeEditCommand::deleteTextFromNode): Ditto.
31774        (khtml::CompositeEditCommand::replaceTextInNode): Ditto.
31775        (khtml::CompositeEditCommand::deleteInsignificantText): Name changes in implementation.
31776        (khtml::CompositeEditCommand::isLastVisiblePositionInNode): Ditto.
31777        (khtml::DeleteFromTextNodeCommand::DeleteFromTextNodeCommand): Class name change, was DeleteTextCommand.
31778        (khtml::DeleteFromTextNodeCommand::~DeleteFromTextNodeCommand): Ditto.
31779        (khtml::DeleteFromTextNodeCommand::doApply): Ditto.
31780        (khtml::DeleteFromTextNodeCommand::doUnapply): Ditto.
31781        (khtml::DeleteSelectionCommand::performGeneralDelete): Ditto.
31782        (khtml::DeleteSelectionCommand::fixupWhitespace): Ditto.
31783        (khtml::DeleteSelectionCommand::moveNodesAfterNode): Ditto.
31784        (khtml::InsertIntoTextNode::InsertIntoTextNode): Class name change.
31785        (khtml::InsertIntoTextNode::~InsertIntoTextNode): Ditto.
31786        (khtml::InsertIntoTextNode::doApply): Ditto.
31787        (khtml::InsertIntoTextNode::doUnapply): Ditto.
31788        (khtml::InsertLineBreakCommand::InsertLineBreakCommand): Class name change, was InsertNewlineCommand.
31789        (khtml::InsertLineBreakCommand::insertNodeAfterPosition):
31790        (khtml::InsertLineBreakCommand::insertNodeBeforePosition):
31791        (khtml::InsertLineBreakCommand::doApply):
31792        (khtml::InsertNodeBeforeCommand::InsertNodeBeforeCommand): Code moved. No changes.
31793        (khtml::InsertNodeBeforeCommand::~InsertNodeBeforeCommand): Ditto.
31794        (khtml::InsertNodeBeforeCommand::doApply): Ditto.
31795        (khtml::InsertNodeBeforeCommand::doUnapply): Ditto.
31796        (khtml::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): New command.
31797        (khtml::InsertParagraphSeparatorCommand::doApply):
31798        (khtml::InsertParagraphSeparatorInQuotedContentCommand::InsertParagraphSeparatorInQuotedContentCommand):
31799        Class name change, was InsertNewlineCommandInQuotedContentCommand.
31800        (khtml::InsertParagraphSeparatorInQuotedContentCommand::~InsertParagraphSeparatorInQuotedContentCommand): Ditto.
31801        (khtml::InsertParagraphSeparatorInQuotedContentCommand::isMailBlockquote): Ditto.
31802        (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Ditto.
31803        (khtml::InsertTextCommand::InsertTextCommand): Class name change, was InputTextCommand.
31804        (khtml::InsertTextCommand::doApply): Ditto.
31805        (khtml::InsertTextCommand::deleteCharacter): Ditto.
31806        (khtml::InsertTextCommand::prepareForTextInsertion): Ditto.
31807        (khtml::InsertTextCommand::input): Ditto.
31808        (khtml::InsertTextCommand::insertSpace): Ditto.
31809        (khtml::InsertTextCommand::isInsertTextCommand): Ditto.
31810        (khtml::TypingCommand::insertLineBreak): Name change, was insertNewline.
31811        (khtml::TypingCommand::insertParagraphSeparatorInQuotedContent): Name change, was insertNewlineInQuotedContent.
31812        (khtml::TypingCommand::insertParagraphSeparator): New function.
31813        (khtml::TypingCommand::doApply): Name changes, as above.
31814        (khtml::TypingCommand::insertText): Ditto.
31815        (khtml::TypingCommand::deleteKeyPressed): Ditto.
31816        (khtml::TypingCommand::preservesTypingStyle): Ditto.
31817        * khtml/editing/htmlediting.h:
31818        (khtml::DeleteFromTextNodeCommand::node): Name change.
31819        (khtml::DeleteFromTextNodeCommand::offset): Ditto.
31820        (khtml::DeleteFromTextNodeCommand::count): Ditto.
31821        (khtml::InsertIntoTextNode::text): Ditto.
31822        (khtml::InsertNodeBeforeCommand::insertChild): Ditto.
31823        (khtml::InsertNodeBeforeCommand::refChild): Ditto.
31824        (khtml::TypingCommand::): Ditto.
31825        * khtml/editing/jsediting.cpp: Name changes, as above.
31826        * kwq/WebCoreBridge.h:
31827        * kwq/WebCoreBridge.mm:
31828        (-[WebCoreBridge insertLineBreak]): Name change, was insertNewline.
31829        (-[WebCoreBridge insertParagraphSeparator]): New function.
31830        (-[WebCoreBridge insertParagraphSeparatorInQuotedContent]): Name change, was insertNewlineInQuotedContent.
31831
318322004-11-01  Kevin Decker  <kdecker@apple.com>
31833
31834        Reviewed by rjw.
31835
31836	fixed <rdar://problem/3681094> Crash in KJS::WindowFunc::tryCall with application/xhtml+xml Content-Type
31837	once and for all. 
31838
31839        * khtml/ecma/kjs_window.cpp:
31840        (WindowFunc::tryCall): Added a nil check in the case of an empty document lacking a baseURL().
31841
318422004-11-01  Darin Adler  <darin@apple.com>
31843
31844        Reviewed by Hyatt.
31845
31846        - fixed <rdar://problem/3859381> REGRESSION (167-168): text in form fields should not use body's text color
31847
31848        * khtml/css/html4.css: Use color: initial for textarea and related ones.
31849
318502004-11-01  Ken Kocienda  <kocienda@apple.com>
31851
31852        Reviewed by John
31853
31854        Fix for this bug:
31855        
31856        <rdar://problem/3775920> REGRESSION (Mail): Centering doesn't work in HTML mail
31857
31858        * khtml/css/css_computedstyle.cpp:
31859        (DOM::CSSComputedStyleDeclarationImpl::copyInheritableProperties): Factor out the 
31860        implementation here into new copyPropertiesInSet helper. This now calls the
31861        generalized copyPropertiesInSet function with the arguments needed to make copying
31862        inheritable work.
31863        * khtml/css/css_computedstyle.h:
31864        * khtml/css/css_valueimpl.cpp:
31865        (CSSStyleDeclarationImpl::diff): Move this function here from css_computedstyle.cpp.
31866        In order to do apply block properties, "regular" style declarations need to do style
31867        diffs as well.
31868        (CSSStyleDeclarationImpl::copyBlockProperties): New helper. Just like copyInheritableProperties
31869        except that it uses a different set of properties that apply only to blocks.
31870        (CSSStyleDeclarationImpl::copyPropertiesInSet): New helper that looks at a style declaration
31871        and copies out those properties listed in a pre-defined set.
31872        * khtml/css/css_valueimpl.h:
31873        * khtml/editing/htmlediting.cpp:
31874        (khtml::StyleChange::StyleChange): Modified to work with style changes that apply to a whole
31875        block, factoring out some of the special case code that should now only run in the inline case.
31876        (khtml::StyleChange::init): Factored out the code that now is in checkForLegacyHTMLStyleChange.
31877        (khtml::StyleChange::checkForLegacyHTMLStyleChange): New helper for case where we want
31878        special handling for "legacy" HTML styles like <B> and <I>.
31879        (khtml::ApplyStyleCommand::doApply): Much refactoring in this class to divide up the work of
31880        style changes into different kinds. CSS specifies certain properties only apply to certain
31881        element types. This set of changes now recognizes two such separate cases: styles that apply
31882        to blocks, and styles that apply to inlines.
31883        (khtml::ApplyStyleCommand::applyBlockStyle): New function to handle apply styles to whole blocks.
31884        (khtml::ApplyStyleCommand::applyInlineStyle): New function to handle apply styles to inlines.
31885        (khtml::ApplyStyleCommand::isHTMLStyleNode): Is now passed a CSSStyleDeclarationImpl to work
31886        with rather than working on the CSSStyleDeclarationImpl member variable of the class. This is
31887        done so that the function can be passed a portion of the styles being applied so that block styles
31888        and inline styles can be handled separately.
31889        (khtml::ApplyStyleCommand::removeCSSStyle): Ditto.
31890        (khtml::ApplyStyleCommand::removeBlockStyle): New function to handle removing styles from whole blocks.
31891        (khtml::ApplyStyleCommand::removeInlineStyle): New function to removing styles from inlines.
31892        (khtml::ApplyStyleCommand::addBlockStyleIfNeeded): New function to handle applying style to whole blocks.
31893        (khtml::ApplyStyleCommand::addInlineStyleIfNeeded): New function to handle applying style to inlines.
31894        * khtml/editing/htmlediting.h:
31895        (khtml::StyleChange::): Changed as described above.
31896        (khtml::StyleChange::usesLegacyStyles):
31897        (khtml::EditCommand::setEndingSelectionNeedsLayout): New function to that tells the ending selection
31898        it needs to layout, even though it has not changed position in the DOM. For instance, this is needed 
31899        when text align changes.
31900        * khtml/khtml_part.cpp:
31901        (KHTMLPart::setTypingStyle): Put in an early bail-out in the case where the current style matches
31902        the passed-in argument.
31903        (KHTMLPart::applyStyle): Modify this function so that block styles are applied when the selection
31904        is a caret. Formerly, this just set typing style and made no visible changes to the document.
31905
31906        New tests.
31907
31908        * layout-tests/editing/editing.js: Added some glue to change text align.
31909        * layout-tests/editing/style/block-style-001-expected.txt: Added.
31910        * layout-tests/editing/style/block-style-001.html: Added.
31911        * layout-tests/editing/style/block-style-002-expected.txt: Added.
31912        * layout-tests/editing/style/block-style-002.html: Added.
31913        * layout-tests/editing/style/block-style-003-expected.txt: Added.
31914        * layout-tests/editing/style/block-style-003.html: Added.
31915
31916=== Safari-169 ===
31917
319182004-10-29  Darin Adler  <darin@apple.com>
31919
31920        Reviewed by Kevin.
31921
31922        - fixed <rdar://problem/3751619> Safari crash in khtml::CircularSearchBuffer::append(QChar const&)
31923
31924        * khtml/editing/visible_text.cpp: (khtml::findPlainText): Fix exit condition to check for break
31925        before advancing one character; before it did it backwards.
31926
319272004-10-29  Chris Blumenberg  <cblu@apple.com>
31928
31929	Fixed: <rdar://problem/3853262> REGRESSION(166-168) gmail gets blank page when loading
31930
31931        Reviewed by kocienda, adele.
31932
31933        * khtml/rendering/render_frames.cpp:
31934        (RenderPartObject::updateWidget): remove infinite frame recursion check for iframes
31935
319362004-10-29  Darin Adler  <darin@apple.com>
31937
31938        Reviewed by Chris.
31939
31940        - fixed <rdar://problem/3857395> clicking on calendar in Apple Travel site crashes Safari in invalidateClick (getthere.net)
31941
31942        * khtml/khtmlview.cpp:
31943        (KHTMLView::viewportMousePressEvent): Use a SharedPtr<KHTMLView> to make sure the KHTMLView is not
31944        deleted before this function finishes running.
31945        (KHTMLView::viewportMouseDoubleClickEvent): Ditto.
31946        (KHTMLView::viewportMouseReleaseEvent): Ditto.
31947        (KHTMLView::dispatchMouseEvent): Removed ref/deref pairs that aren't needed since dispatchEvent
31948        is guaranteed to do ref/deref as needed.
31949
31950        * kwq/KWQObject.mm: (QObject::startTimer): Fixed a comment.
31951
319522004-10-28  Chris Blumenberg  <cblu@apple.com>
31953
31954	Enabled XSLT on Panther. See intrigue mail for compiling instructions.
31955
31956        Reviewed by darin.
31957
31958        * WebCore.pbproj/project.pbxproj: link against xslt unconditionally, link against specific version of libxml on Panther
31959        * WebCorePrefix.h: always use XSLT
31960
319612004-10-28  Ken Kocienda  <kocienda@apple.com>
31962
31963        Reviewed by Chris
31964
31965        Fix for these bugs:
31966        
31967        <rdar://problem/3854848> Tiger Mail Crash in WebCore - khtml::CompositeEditCommand::insertNodeAfter
31968        <rdar://problem/3803832> REGRESSION (Mail): incorrect behavior after Return + Delete in quoted text
31969        
31970        * khtml/editing/htmlediting.cpp:
31971        (khtml::DeleteSelectionCommand::DeleteSelectionCommand): Added node pointer class members 
31972        to initialization list, zeroing them out.
31973        (khtml::DeleteSelectionCommand::canPerformSpecialCaseBRDelete): New special-case helper to
31974        handle a delete of content in special cases where the only thing selected is a BR. This
31975        code path is much simpler than the newly-named performGeneralDelete, and detects when no
31976        content merging should be done between blocks. This aspect of the change fixes 3854848.
31977        One of the special cases added fixes 3803832.
31978        (khtml::DeleteSelectionCommand::performGeneralDelete): Renamed, from performDelete.
31979        (khtml::DeleteSelectionCommand::moveNodesAfterNode): Made this helper be a no-arg function, just
31980        like the other helpers in this class.
31981        (khtml::DeleteSelectionCommand::clearTransientState): Fix cut and paste error in deref code.
31982        (khtml::DeleteSelectionCommand::doApply): Updated for changed helpers.
31983        * khtml/editing/htmlediting.h: Added new helper and changed an old one.
31984
319852004-10-28  Chris Blumenberg  <cblu@apple.com>
31986
31987	Fixed: <rdar://problem/3856913> Panther-only crash in QString code copying front page of store.apple.com
31988
31989        Reviewed by darin.
31990
31991        * kwq/KWQKHTMLPart.mm:
31992        (KWQKHTMLPart::attributedString): check that the renderer is a list item before making list item calls on it
31993
319942004-10-28  Ken Kocienda  <kocienda@apple.com>
31995
31996        Reviewed by Harrison
31997
31998        Reorganization of delete command functionality so that doApply is not
31999        several hundred lines long. This is not a squeaky-clean cleanup, but
32000        it is a step in the right direction. No functionality changes.
32001
32002        * khtml/editing/htmlediting.cpp:
32003        (khtml::DeleteSelectionCommand::DeleteSelectionCommand):
32004        (khtml::DeleteSelectionCommand::initializePositionData): New helper.
32005        (khtml::DeleteSelectionCommand::saveTypingStyleState): Ditto.
32006        (khtml::DeleteSelectionCommand::performDelete): Ditto.
32007        (khtml::DeleteSelectionCommand::fixupWhitespace): Ditto.
32008        (khtml::DeleteSelectionCommand::moveNodesAfterNode): Ditto.
32009        (khtml::DeleteSelectionCommand::calculateEndingPosition): Ditto.
32010        (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete): Ditto.
32011        (khtml::DeleteSelectionCommand::clearTransientState): Ditto.
32012        (khtml::DeleteSelectionCommand::doApply): Factor out code into new helpers.
32013        * khtml/editing/htmlediting.h:
32014
320152004-10-28  Ken Kocienda  <kocienda@apple.com>
32016
32017        Reviewed by me
32018
32019        * khtml/editing/htmlediting.cpp:
32020        (khtml::DeleteSelectionCommand::DeleteSelectionCommand): Typo in initializer caused
32021        new mergeBlocksAfterDelete flag to be set improperly, causing layout regressions.
32022
320232004-10-27  Ken Kocienda  <kocienda@apple.com>
32024
32025        Reviewed by Chris
32026
32027        * khtml/editing/htmlediting.cpp:
32028        (khtml::CompositeEditCommand::deleteSelection): Added new mergeBlocksAfterDelete flag to control
32029        whether content not in the block containing the start of the selection is moved to that block
32030        after the selection is deleted.
32031        (khtml::DeleteSelectionCommand::DeleteSelectionCommand): Ditto.
32032        (khtml::DeleteSelectionCommand::doApply): Ditto.
32033        (khtml::InputNewlineInQuotedContentCommand::InputNewlineInQuotedContentCommand): New command
32034        to handle the case of inserting a newline when in quoted content in Mail.
32035        (khtml::InputNewlineInQuotedContentCommand::~InputNewlineInQuotedContentCommand): Ditto.
32036        (khtml::InputNewlineInQuotedContentCommand::isMailBlockquote): Ditto.
32037        (khtml::InputNewlineInQuotedContentCommand::isLastVisiblePositionInBlockquote): Ditto.
32038        (khtml::InputNewlineInQuotedContentCommand::doApply): Ditto.
32039        (khtml::TypingCommand::insertNewlineInQuotedContent): Support for new newline command.
32040        (khtml::TypingCommand::doApply): Ditto.
32041        (khtml::TypingCommand::preservesTypingStyle): Ditto.
32042        * khtml/editing/htmlediting.h: Add new delclarations.
32043        (khtml::TypingCommand::): Ditto.
32044        * kwq/WebCoreBridge.h: Added new bridge method called from WebKit.
32045        * kwq/WebCoreBridge.mm:
32046        (-[WebCoreBridge insertNewlineInQuotedContent]): Ditto.
32047
320482004-10-26  Chris Blumenberg  <cblu@apple.com>
32049
32050	Fixed: <rdar://problem/3774243> page up/down, arrow up/down, etc in Safari RSS should scroll main content
32051
32052        Reviewed by dave.
32053
32054        * khtml/ecma/kjs_dom.cpp:
32055        (DOMElementProtoFunc::tryCall): added scrollByLines and scrollByPages to HTML element for Safari RSS
32056        * khtml/ecma/kjs_dom.h:
32057        (KJS::DOMElement::):
32058        * khtml/ecma/kjs_dom.lut.h:
32059        (KJS::):
32060
320612004-10-26  David Hyatt  <hyatt@apple.com>
32062
32063	Fix for 3848214, deleting a partial word left a repaint artifact if the partial word was pulled back onto
32064	the previous line.
32065	
32066        Reviewed by kocienda
32067
32068        * khtml/rendering/bidi.cpp:
32069        (khtml::RenderBlock::layoutInlineChildren):
32070
320712004-10-26  David Hyatt  <hyatt@apple.com>
32072
32073	Convert selectionRect() from using a list to a dict and patch it to be like setSelection.  It was still trying
32074	to use the old dirty bit optimization (which had been removed), and so it was pathologically slow on large documents.
32075	
32076        Reviewed by kocienda
32077
32078        * khtml/rendering/render_canvas.cpp:
32079        (RenderCanvas::selectionRect):
32080        * khtml/rendering/render_object.h:
32081        (khtml::RenderObject::hasSelectedChildren):
32082
320832004-10-26  Ken Kocienda  <kocienda@apple.com>
32084
32085        Reviewed by Hyatt
32086        
32087        Fix for this bug::
32088        
32089        <rdar://problem/3851164> mail crashed when I pasted a large amount of text into a reply
32090
32091        * khtml/editing/htmlediting.cpp:
32092        (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): This now returns bool to
32093        let the caller know if a placeholder was removed.
32094        (khtml::ReplaceSelectionCommand::doApply): Use the bool return value from the call to
32095        removeBlockPlaceholderIfNeeded. If true, shift the selection to the now-empty block. In
32096        some cases, the selection was still set on the removed BR, and this was the cause of the
32097        crash.
32098        * khtml/editing/htmlediting.h: Change removeBlockPlaceholderIfNeeded return type.
32099
321002004-10-26  Darin Adler  <darin@apple.com>
32101
32102        Reviewed by Chris.
32103
32104        - fixed <rdar://problem/3851301> leak of one NSCFDictionary for each XMLHttpRequest issued
32105
32106        * kwq/KWQLoader.mm: (KWQServeSynchronousRequest): Add a release.
32107
321082004-10-26  Ken Kocienda  <kocienda@apple.com>
32109
32110        Reviewed by John
32111
32112        * khtml/editing/htmlediting.cpp:
32113        (khtml::CompositeEditCommand::deleteInsignificantText): Do not call replaceText
32114        with a zero-length string. That triggers an assert. Call deleteText instead, 
32115        using the same indices that are passed to replaceText.
32116        
32117        Cleaned up the asserts in these three functions below, making them
32118        more consistent. This is not needed for the fix, but I tripped over
32119        these in the course of debugging.
32120        
32121        (khtml::InsertTextCommand::InsertTextCommand):
32122        (khtml::InsertTextCommand::doApply):
32123        (khtml::InsertTextCommand::doUnapply):
32124
321252004-10-25  Adele Amchan <adele@apple.com>
32126
32127        Reviewed by Darin.
32128
32129        * khtml/xml/dom_docimpl.cpp: (DocumentImpl::inDesignMode): made inDesignMode const
32130        * khtml/xml/dom_docimpl.h:
32131
321322004-10-25  Adele Amchan  <adele@apple.com>
32133
32134        Reviewed by me, code change by Darin.
32135
32136        * khtml/xml/dom_docimpl.cpp: Moved design mode code outside the XSLT ifdef.
32137
321382004-10-25  Ken Kocienda  <kocienda@apple.com>
32139
32140        Oops. These two test results changed with my last checkin, for the better.
32141
32142        * layout-tests/editing/deleting/delete-3800834-fix-expected.txt
32143        * layout-tests/editing/inserting/insert-3775316-fix-expected.txt
32144
321452004-10-25  Ken Kocienda  <kocienda@apple.com>
32146
32147        Reviewed by Chris
32148
32149        Fix for this bug:
32150        
32151        <rdar://problem/3820349> REGRESSION (Mail): select all, delete does not always delete everything
32152
32153        * khtml/editing/htmlediting.cpp:
32154        (khtml::DeleteSelectionCommand::startPositionForDelete): New helper that determines when to
32155        expand the selection outwards when the selection is on the visible boundary of a root
32156        editable element. This fixes the bug. Note that this function also contains a little code
32157        I factored out of doApply: it also takes care of adjusting the selection in the smart delete case.
32158        (khtml::DeleteSelectionCommand::endPositionForDelete): Ditto.
32159        (khtml::DeleteSelectionCommand::doApply): Call new helpers. Refactored out the code as described.
32160        * khtml/editing/htmlediting.h: Declare new helpers.
32161        * layout-tests/editing/deleting/delete-select-all-001-expected.txt: Added.
32162        * layout-tests/editing/deleting/delete-select-all-001.html: Added.
32163        * layout-tests/editing/deleting/delete-select-all-002-expected.txt: Added.
32164        * layout-tests/editing/deleting/delete-select-all-002.html: Added.
32165        * layout-tests/editing/deleting/delete-select-all-003-expected.txt: Added.
32166        * layout-tests/editing/deleting/delete-select-all-003.html: Added.
32167
321682004-10-25  Ken Kocienda  <kocienda@apple.com>
32169
32170        Added some more editing layout tests.
32171
32172        * layout-tests/editing/deleting/delete-ws-fixup-001-expected.txt: Added.
32173        * layout-tests/editing/deleting/delete-ws-fixup-001.html: Added.
32174        * layout-tests/editing/deleting/delete-ws-fixup-002-expected.txt: Added.
32175        * layout-tests/editing/deleting/delete-ws-fixup-002.html: Added.
32176        * layout-tests/editing/deleting/delete-ws-fixup-003-expected.txt: Added.
32177        * layout-tests/editing/deleting/delete-ws-fixup-003.html: Added.
32178        * layout-tests/editing/deleting/delete-ws-fixup-004-expected.txt: Added.
32179        * layout-tests/editing/deleting/delete-ws-fixup-004.html: Added.
32180        * layout-tests/editing/inserting/typing-003-expected.txt: Added.
32181        * layout-tests/editing/inserting/typing-003.html: Added.
32182
321832004-10-25  Ken Kocienda  <kocienda@apple.com>
32184
32185        Reviewed by John
32186
32187        * khtml/rendering/bidi.cpp:
32188        (khtml::RenderBlock::findNextLineBreak): I did not get my fix for 3848343 and 3848224
32189        yesterday quite right: words that should have been placed on the next line were instead
32190        appearing on the line before, beyond the right margin. This was a one-word only error
32191        based on moving the line break object when it should have stayed put. Here is the rule:
32192        The line break object only moves to after the whitespace on the end of a line if that 
32193        whitespace caused line overflow when its width is added in.
32194
321952004-10-25  Adele Amchan  <adele@apple.com>
32196
32197        Reviewed by Darin.
32198 
32199        Fix for <rdar://problem/3619890> Feature request: designMode        
32200
32201        This change implements the designMode property of a document.  This is an IE property that is also supported by Mozilla.  
32202        This will enable more JS editing compatibility.
32203
32204        * khtml/ecma/kjs_html.cpp:
32205        (KJS::HTMLDocument::tryGet): added case for designMode
32206        (KJS::HTMLDocument::putValue): added case for designMode
32207        * khtml/ecma/kjs_html.lut.h: (KJS::): regenerated
32208        * khtml/khtml_part.cpp: (KHTMLPart::isContentEditable): Now returns designMode value
32209        * khtml/xml/dom_docimpl.cpp:
32210        (DocumentImpl::DocumentImpl): initialize m_designMode member variable
32211        (DocumentImpl::setDesignMode): added function to assign m_designMode value
32212        (DocumentImpl::getDesignMode): return m_designMode value
32213        (DocumentImpl::inDesignMode): if designMode is inherited, this will find the appropriate parent document designMode and return that value. 
32214            Otherwise, it will just return the m_designMode value.
32215        (DocumentImpl::parentDocument):
32216        * khtml/xml/dom_docimpl.h: (DOM::DocumentImpl::): added InheritedBool enum, prototypes, and m_designMode member variable.
32217        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::isContentEditable): added check for isContentEditable function in KHTMLPart
32218
322192004-10-22  Ken Kocienda  <kocienda@apple.com>
32220
32221        Reviewed by Hyatt
32222
32223        Fix for this bug:
32224        
32225        <rdar://problem/3844662> REGRESSION (Mail): Style changes can affect adjacent, unselected text
32226
32227        * khtml/editing/htmlediting.cpp:
32228        (khtml::ApplyStyleCommand::doApply): Move end position downstream to be sure we remove style from
32229        everything that could be affected.
32230        (khtml::ApplyStyleCommand::removeCSSStyle): Comma in intended function call was outside the
32231        braces, making it act as a comma operator, with a zero value as the right value!!! This made
32232        an important check always fail!!! It turns out that we do not want the constant at all, since
32233        that constant is only needed when checking a computed style, not an inline style as is being
32234        done here.
32235        (khtml::ApplyStyleCommand::removeStyle): Call nodeFullySelected with new interface.
32236        (khtml::ApplyStyleCommand::nodeFullySelected): Change interface and implementation to rely on
32237        RangeImpl::compareBoundaryPoints to perform the required check.
32238        * khtml/editing/htmlediting.h: Changed nodeFullySelected function interface.
32239
322402004-10-22  Ken Kocienda  <kocienda@apple.com>
32241
32242        Reviewed by Hyatt
32243        
32244        Fix for this bugs:
32245        
32246        <rdar://problem/3848343> REGRESSION (Mail, 166-168u): Typed text after space at end of line before block quote does not appear
32247        <rdar://problem/3848224> REGRESSION (Mail): space typed at end of line vanishes after typing next character
32248    
32249        * khtml/rendering/bidi.cpp:
32250        (khtml::RenderBlock::findNextLineBreak): When the khtmlLineBreak is in AFTER_WHITE_SPACE mode, as
32251        it is when we are editing, add in the space of the current character when calculating the width
32252        of committed plus uncommitted characters. If this value exceeds the width of the line, move up
32253        the line break object and call skipWhitespace to move past the end of the whitespace.
32254
32255=== Safari-168 ===
32256
322572004-10-22  Ken Kocienda  <kocienda@apple.com>
32258
32259        * WebCore.pbproj/project.pbxproj:
32260         Add GCC_ENABLE_OBJC_GC and GCC_FAST_OBJC_DISPATCH flags.
32261
322622004-10-21  David Hyatt  <hyatt@apple.com>
32263
32264        Reviewed by darin
32265	
32266	Clean up the inline run function so that it doesn't return incorrect answers when making children non-inline.
32267	
32268	<rdar://problem/3848724> REGRESSION (166-168u): RenderText::layout called, firing assertion that kills Mail
32269	<rdar://problem/3848357> RenderText::layout called, firing assertion that kills Safari (www.apple.com/downloads/macosx)
32270	
32271        * khtml/rendering/render_block.cpp:
32272        (khtml::getInlineRun):
32273        (khtml::RenderBlock::makeChildrenNonInline):
32274
322752004-10-21  David Hyatt  <hyatt@apple.com>
32276
32277	Fix for 3810389, crash because of continuation() craziness.  Revert back to the old behavior of
32278	making sure that all line boxes get deleted and recreated when inlines are split because of a block.
32279	
32280        Reviewed darin
32281
32282        * khtml/rendering/render_inline.cpp:
32283        (RenderInline::splitFlow):
32284
322852004-10-21  Ken Kocienda  <kocienda@apple.com>
32286
32287        Reviewed by Darin
32288        
32289        Significant improvement to the way that whitespace is handled during editing.
32290
32291        * khtml/editing/htmlediting.cpp:
32292        (khtml::CompositeEditCommand::deleteInsignificantText): New functions (there are actually
32293        two being added with this name) that delete "insignificant" unrendered text.
32294        (khtml::CompositeEditCommand::deleteInsignificantTextDownstream): Takes a position,
32295        calculates the downstream position to use as the endpoint for the deletion, and
32296        then calls deleteInsignificantText with this start and end.
32297        (khtml::DeleteSelectionCommand::doApply): Call new deleteInsignificantTextDownstream function.
32298        (khtml::InputNewlineCommand::doApply): Ditto.
32299        (khtml::InputTextCommand::input): Ditto.
32300        * khtml/editing/htmlediting.h: Add new declarations.
32301        
32302        Modified layout test results:
32303        * layout-tests/editing/deleting/delete-block-merge-contents-016-expected.txt:
32304        * layout-tests/editing/deleting/delete-block-merge-contents-017-expected.txt:
32305        * layout-tests/editing/deleting/delete-contiguous-ws-001-expected.txt:
32306        * layout-tests/editing/deleting/delete-selection-001-expected.txt:
32307        * layout-tests/editing/deleting/delete-tab-001-expected.txt:
32308        * layout-tests/editing/deleting/delete-tab-004-expected.txt:
32309        * layout-tests/editing/deleting/delete-trailing-ws-001-expected.txt:
32310        * layout-tests/editing/inserting/insert-3659587-fix-expected.txt:
32311        * layout-tests/editing/inserting/insert-3775316-fix-expected.txt:
32312        * layout-tests/editing/inserting/insert-3778059-fix-expected.txt:
32313        * layout-tests/editing/inserting/insert-br-001-expected.txt:
32314        * layout-tests/editing/inserting/insert-br-004-expected.txt:
32315        * layout-tests/editing/inserting/insert-br-005-expected.txt:
32316        * layout-tests/editing/inserting/insert-br-006-expected.txt:
32317        * layout-tests/editing/inserting/insert-tab-001-expected.txt:
32318        * layout-tests/editing/inserting/insert-tab-002-expected.txt:
32319        * layout-tests/editing/inserting/insert-tab-004-expected.txt:
32320        * layout-tests/editing/inserting/insert-text-with-newlines-expected.txt:
32321        * layout-tests/editing/inserting/typing-001-expected.txt:
32322        * layout-tests/editing/inserting/typing-around-br-001-expected.txt:
32323        * layout-tests/editing/inserting/typing-around-image-001-expected.txt:
32324        * layout-tests/editing/style/typing-style-003-expected.txt:
32325        * layout-tests/editing/undo/redo-typing-001-expected.txt:
32326        * layout-tests/editing/undo/undo-typing-001-expected.txt:
32327
323282004-10-21  David Hyatt  <hyatt@apple.com>
32329
32330	Fix for 3847054, assertion failure in RenderText::layout() on news.com page.  Fix getInlineRun so that
32331	it no longer breaks early (thus causing some children not to get properly wrapped by anonymous blocks).
32332	
32333        Reviewed by darin
32334
32335        * khtml/rendering/render_block.cpp:
32336        (khtml::getInlineRun):
32337
323382004-10-20  David Hyatt  <hyatt@apple.com>
32339
32340	Add better dumping of overflow information for scrolling regions.
32341
32342	Fix for 3726524, crash in updateLayerPosition.  Make sure anonymous elements properly remove themselves
32343	from the render tree so that layers and so forth are cleaned up.
32344	
32345        Reviewed by darin
32346
32347        * khtml/rendering/render_container.cpp:
32348        (RenderContainer::detach):
32349        * khtml/rendering/render_layer.h:
32350        (khtml::RenderLayer::scrollXOffset):
32351        (khtml::RenderLayer::scrollYOffset):
32352        * kwq/KWQRenderTreeDebug.cpp:
32353        (write):
32354
323552004-10-20  David Hyatt  <hyatt@apple.com>
32356
32357	Fix for 3791146, make sure all lines are checked when computing overflow.
32358	
32359        Reviewed by kocienda
32360
32361        * khtml/rendering/bidi.cpp:
32362        (khtml::RenderBlock::computeHorizontalPositionsForLine):
32363        (khtml::RenderBlock::layoutInlineChildren):
32364        (khtml::RenderBlock::findNextLineBreak):
32365        (khtml::RenderBlock::checkLinesForOverflow):
32366        * khtml/rendering/render_block.h:
32367
323682004-10-20  David Hyatt  <hyatt@apple.com>
32369
32370	Fix for 3790936, make the unicode-breaking on the layout tests match Panther.
32371	
32372        Reviewed by kocienda
32373
32374        * khtml/rendering/break_lines.cpp:
32375        (khtml::isBreakable):
32376
323772004-10-20  Darin Adler  <darin@apple.com>
32378
32379        Reviewed by John.
32380
32381        - fixed <rdar://problem/3317107> text input fields and text areas don't respect background color and text color CSS properties
32382
32383        * khtml/rendering/render_form.cpp: (RenderFormElement::updateFromElement):
32384        Create a palette with the background and foreground colors in it and set it on the widget.
32385
32386        * khtml/rendering/render_style.h: (khtml::StyleVisualData::operator==): No palette to compare
32387        with APPLE_CHANGES. Removed palette and palette-related function members.
32388        * khtml/rendering/render_style.cpp:
32389        (StyleVisualData::StyleVisualData): No palette to initialize with APPLE_CHANGES.
32390        (RenderStyle::diff): No palette to compare.
32391
32392        * kwq/KWQLineEdit.h: Added setPalette override. Made text function const.
32393        * kwq/KWQLineEdit.mm:
32394        (QLineEdit::setPalette): Added. Sets foreground and background color based on palette.
32395        (QLineEdit::text): Made const.
32396
32397        * kwq/KWQTextEdit.h: Added setPalette override.
32398        * kwq/KWQTextEdit.mm: (QTextEdit::setPalette): Added. Sets foreground and background color
32399        based on palette.
32400
32401        * kwq/KWQPalette.h: Removed most things, leaving only background and foreground colors
32402        per color group, and only a single color group per palette.
32403        * kwq/KWQColorGroup.mm: Removed.
32404        * kwq/KWQPalette.mm: Removed.
32405        * WebCore.pbproj/project.pbxproj: Removed KWQColorGroup.mm and KWQPalette.mm.
32406
32407        * kwq/KWQApplication.h: Removed unused palette function.
32408        * kwq/KWQApplication.mm: Ditto.
32409
32410        * kwq/KWQWidget.h: Removed unsetPalette.
32411        * kwq/KWQWidget.mm: Ditto.
32412
32413        - fixed storage leak
32414
32415        * khtml/html/html_formimpl.cpp: (DOM::HTMLGenericFormElementImpl::~HTMLGenericFormElementImpl):
32416        Roll in storage leak fix from KDE guys.
32417
324182004-10-19  David Hyatt  <hyatt@apple.com>
32419
32420        Reviewed by kocienda
32421
32422	More cleanup of block layout.  Eliminates the separate step for tables that dont fit on a line with a float
32423	and consolidates it with clearing.
32424
32425	Also patch dom_textimpl.cpp to reduce further the # of RenderTexts created.
32426	
32427        * khtml/rendering/render_block.cpp:
32428        (khtml::getInlineRun):
32429        (khtml::RenderBlock::layoutBlock):
32430        (khtml::RenderBlock::adjustFloatingBlock):
32431        (khtml::RenderBlock::collapseMargins):
32432        (khtml::RenderBlock::clearFloatsIfNeeded):
32433        (khtml::RenderBlock::estimateVerticalPosition):
32434        (khtml::RenderBlock::layoutBlockChildren):
32435        (khtml::RenderBlock::markAllDescendantsWithFloatsForLayout):
32436        (khtml::RenderBlock::getClearDelta):
32437        (khtml::RenderBlock::calcBlockMinMaxWidth):
32438        * khtml/rendering/render_block.h:
32439        * khtml/rendering/render_frames.cpp:
32440        (RenderFrameSet::layout):
32441        * khtml/xml/dom_textimpl.cpp:
32442        (TextImpl::rendererIsNeeded):
32443
32444        Fix for 3841060, regression with * in frames.  Reviewed by kocienda.
32445	
32446	* layout-tests/fast/frames/002-expected.txt: Added.
32447        * layout-tests/fast/frames/002.html: Added.
32448
32449 2004-10-19  Darin Adler  <darin@apple.com>
32450
32451        Reviewed by Maciej.
32452
32453        - follow-on to my fix yesterday, which broke a layout test because I rolled out a fix that Maciej had done
32454
32455        * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::write): Need to check the actual queue of external
32456        scripts being loaded here. If the current code being run is the external script itself, then we don't want
32457        to defer parsing. But loadingExtScript has to stay true until after the script runs. The old code would
32458        assume that any time we're running a script there's no need to look at loadingExtScript, but that was also
32459        wrong since there can be a script loading in that case too. Layout tests check for both problems.
32460
32461        * layout-tests/fast/tokenizer/external-script-document-write-expected.txt: Added.
32462        * layout-tests/fast/tokenizer/external-script-document-write.html: Added.
32463        * layout-tests/fast/tokenizer/resources/external-script-document-write.js: Added.
32464
32465        * layout-tests/fast/tokenizer/004.html: Fixed line endings (were CR, should be LF).
32466
324672004-10-18  Darin Adler  <darin@apple.com>
32468
32469        Reviewed by Dave Hyatt.
32470
32471        - fixed <rdar://problem/3807234> REGRESSION (152-153): can't get element by ID that was just written with document.write in separate JS file (lacoccinelle.net)
32472
32473        * khtml/html/htmltokenizer.cpp:
32474        (khtml::HTMLTokenizer::scriptHandler): Use !isEmpty instead of count != 0, since it's cheaper.
32475        (khtml::HTMLTokenizer::write): Roll back to the old version of the check here. The fix is that
32476        we only want to look at loadingExtScript if m_executingScript is 0.
32477
324782004-10-18  Ken Kocienda  <kocienda@apple.com>
32479
32480        Reviewed by Hyatt
32481
32482        Fix for this bug:
32483        
32484        <rdar://problem/3840907> textedit doesn't render italic or bold text in html documents
32485
32486        * khtml/css/css_valueimpl.cpp:
32487        (CSSPrimitiveValueImpl::getStringValue): This function did not return string values for idents.
32488        Also changed the return value to be DOMString, rather than DOMStringImpl, to deal with the 
32489        lifecycle issues associated with creating a string to be returned in the ident case.
32490        * khtml/css/css_valueimpl.h: Change getStringValue to return DOMString rather than DOMStringImpl.
32491        * khtml/css/cssstyleselector.cpp:
32492        (khtml::CSSStyleSelector::applyProperty): Two calls of getStringValue needed updating.
32493
324942004-10-18  Chris Blumenberg  <cblu@apple.com>
32495
32496	Fixed: <rdar://problem/3770135> hang loading page with EMBED tag pointing to same page (tridentantennas.co.uk)
32497
32498        Reviewed by kocienda.
32499
32500        * khtml/rendering/render_frames.cpp:
32501        (RenderPartObject::updateWidget): use completeURL before comparing the URL of the plug-in with the base URL of the document when avoiding frame recursion
32502
325032004-10-15  Chris Blumenberg  <cblu@apple.com>
32504
32505	Fixed: <rdar://problem/3841774> would like to get NSColor from DOM-CSS
32506
32507        Reviewed by john.
32508
32509        * kwq/DOM-CSS.mm:
32510        (-[DOMRGBColor _color]): new, returns getNSColor on KWQColor
32511        * kwq/DOMPrivate.h:
32512
325132004-10-15  Ken Kocienda  <kocienda@apple.com>
32514
32515        Reviewed by Hyatt
32516
32517        * khtml/rendering/bidi.cpp:
32518        (khtml::RenderBlock::skipNonBreakingSpace): Also need to forego the
32519        skipping after a clean line break, in addition to the cases already 
32520        checked for.
32521        * layout-tests/editing/inserting/insert-br-007-expected.txt: Added.
32522        * layout-tests/editing/inserting/insert-br-007.html: Added.
32523        * layout-tests/editing/inserting/insert-br-008-expected.txt: Added.
32524        * layout-tests/editing/inserting/insert-br-008.html: Added.
32525
32526=== Safari-167 ===
32527
325282004-10-14  Ken Kocienda  <kocienda@apple.com>
32529
32530        Reviewed by John
32531
32532        Fix for this bug:
32533        
32534        <rdar://problem/3839989> REGRESSION (Mail): Left arrow does nothing after inserting attachment
32535
32536        * khtml/editing/visible_position.cpp:
32537        (khtml::VisiblePosition::deepEquivalent): Remove code that attempted to bridge old-style
32538        position code to new-style VisiblePosition code. In retrospect, this code was misguided.
32539        Since we do a good job of insulating external code from the internal workings of 
32540        VisiblePosition, the "hop ahead" being done here was not doing anyone any real good, and
32541        in the case of this bug, was doing harm. Simply removing this code makes the bug
32542        go away and does not cause any editing layout test regresssions.
32543
325442004-10-14  Ken Kocienda  <kocienda@apple.com>
32545
32546        Reviewed by Hyatt
32547
32548        * khtml/rendering/bidi.cpp:
32549        (khtml::skipNonBreakingSpace): New helper.
32550        (khtml::RenderBlock::skipWhitespace): Do not skip non-breaking spaces that are
32551        at the start of a block. This was preventing users from typing spaces in empty
32552        documents.
32553        * layout-tests/editing/inserting/insert-space-in-empty-doc-expected.txt: Added.
32554        * layout-tests/editing/inserting/insert-space-in-empty-doc.html: Added.
32555
325562004-10-14  Adele Amchan  <adele@apple.com>
32557
32558        Reviewed by Darin and Ken.
32559
32560	fix for <rdar://problem/3821070> null de-ref in DelectSelectionCommand::doApply()
32561
32562        This change shifts some code around so that the code that determines what typing style
32563        is in effect is called before deleteUnrenderedText is called.  Two asserts are also added
32564        to ensure that start and end nodes of the selection are in the document.
32565
32566        * khtml/editing/htmlediting.cpp: (khtml::DeleteSelectionCommand::doApply):
32567
325682004-10-14  Adele Amchan  <adele@apple.com>
32569
32570        Reviewed by Ken
32571	
32572	This change makes these three functions virtual so that the work is being done in KWQHTMLPart 
32573        instead of khtml_part, eliminating the need for the "#if APPLE_CHANGES" statements in the khtml code.
32574
32575        * khtml/khtml_part.cpp:
32576        (KHTMLPart::shouldBeginEditing):
32577        (KHTMLPart::shouldEndEditing):
32578        (KHTMLPart::isContentEditable):
32579        * khtml/khtml_part.h:
32580        * kwq/KWQKHTMLPart.h:
32581
325822004-10-14  Ken Kocienda  <kocienda@apple.com>
32583
32584        Reviewed by John
32585
32586        Final fix for these bugs:
32587        
32588        <rdar://problem/3806306> HTML editing puts spaces at start of line
32589        <rdar://problem/3814252> HTML editing groups space with word causing wrapping
32590
32591        This change sets some new CSS properties that have been added to WebCore to 
32592        enable whitespace-handling and line-breaking features that make WebView work
32593        more like a text editor.
32594
32595        * khtml/css/cssstyleselector.cpp:
32596        (khtml::CSSStyleSelector::applyProperty): Add and remove special editing CSS properties 
32597        based on property value.
32598        * khtml/html/html_elementimpl.cpp:
32599        (HTMLElementImpl::setContentEditable): Add and remove special editing CSS properties 
32600        based on attribute value.
32601        * khtml/khtml_part.cpp:
32602        (KHTMLPart::applyEditingStyleToBodyElement): New helper. Calls applyEditingStyleToElement on
32603        body element.
32604        (KHTMLPart::removeEditingStyleFromBodyElement): New helper. Calls removeEditingStyleFromElement on
32605        body element.
32606        (KHTMLPart::applyEditingStyleToElement): Adds special editing CSS properties to passed in element.
32607        (KHTMLPart::removeEditingStyleFromElement): Removes special editing CSS properties from passed in element.
32608        * khtml/khtml_part.h: Add new declarations.
32609        * kwq/WebCoreBridge.h: Ditto.
32610        * kwq/WebCoreBridge.mm:
32611        (-[WebCoreBridge applyEditingStyleToBodyElement]): Call through to similarly-named function on KHTMLPart.
32612        (-[WebCoreBridge removeEditingStyleFromBodyElement]): Ditto.
32613        (-[WebCoreBridge applyEditingStyleToElement:]): Ditto.
32614        (-[WebCoreBridge removeEditingStyleFromElement:]): Ditto.
32615
326162004-10-14  John Sullivan  <sullivan@apple.com>
32617
32618        Reviewed by Ken.
32619        
32620        - fixed <rdar://problem/3840052> Crash in removeBlockPlaceholderIfNeeded attaching file to empty document
32621
32622        * khtml/editing/htmlediting.cpp:
32623        (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded):
32624        needed a nil check to handle empty document case
32625
326262004-10-13  Maciej Stachowiak  <mjs@apple.com>
32627
32628        Reviewed by Ken.
32629
32630	<rdar://problem/3824626> Change to do colormatching for DeviceRGB colorspace causes ~11% Safari slowdown
32631        
32632	- I fixed this by turning off all colormatching for WebKit
32633	content. We might turn it back on later. For now, it's possible to
32634	turn it on temporarily by defining COLORMATCH_EVERYTHING.
32635	
32636	* WebCorePrefix.h:
32637        * khtml/ecma/kjs_html.cpp:
32638        (KJS::Context2DFunction::tryCall):
32639        (Context2D::colorRefFromValue):
32640        (Gradient::getShading):
32641        * khtml/rendering/render_canvasimage.cpp:
32642        (RenderCanvasImage::createDrawingContext):
32643        * kwq/KWQColor.mm:
32644        (QColor::getNSColor):
32645        * kwq/KWQPainter.h:
32646        * kwq/KWQPainter.mm:
32647        (CGColorFromNSColor):
32648        (QPainter::selectedTextBackgroundColor):
32649        (QPainter::rgbColorSpace):
32650        (QPainter::grayColorSpace):
32651        (QPainter::cmykColorSpace):
32652        * kwq/WebCoreGraphicsBridge.h:
32653        * kwq/WebCoreGraphicsBridge.m:
32654        (-[WebCoreGraphicsBridge createRGBColorSpace]):
32655        (-[WebCoreGraphicsBridge createGrayColorSpace]):
32656        (-[WebCoreGraphicsBridge createCMYKColorSpace]):
32657
326582004-10-13  Ken Kocienda  <kocienda@apple.com>
32659
32660        Reviewed by Hyatt
32661
32662        * khtml/css/css_valueimpl.cpp:
32663        (CSSStyleDeclarationImpl::merge): A little cleanup. Also, make sure m_lstValues
32664        is non-null before appending.
32665
326662004-10-13  Ken Kocienda  <kocienda@apple.com>
32667
32668        Update expected results for improved behavior as a result of fix to 3816768.
32669    
32670        * layout-tests/editing/deleting/delete-3775172-fix-expected.txt
32671        * layout-tests/editing/deleting/delete-3800834-fix-expected.txt
32672        * layout-tests/editing/deleting/delete-block-merge-contents-002-expected.txt
32673
326742004-10-13  Ken Kocienda  <kocienda@apple.com>
32675
32676        Reviewed by Richard
32677
32678        * khtml/css/css_computedstyle.cpp:
32679        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Add support to computed style
32680        for getting -khtml-line-break and -khml-nbsp-mode.
32681
326822004-10-13  Ken Kocienda  <kocienda@apple.com>
32683
32684        Reviewed by John
32685
32686        Fix for this bug:
32687        
32688        <rdar://problem/3816768> REGRESSION (Mail): Deleting last character in block incorrectly 
32689        moves caret out of block.
32690
32691        The issue here is that an empty block with no explicit height set by style collapses
32692        to zero height, and does so immediately after the last bit of content is removed from
32693        it (as a result of deleting text with the delete key for instance). Since zero-height
32694        blocks are not eligible caret positions, the caret jumped to the closest eligible spot.
32695        
32696        The fix is to detect when a block has not been removed itself, but has had all its 
32697        contents removed. In this case, a BR element is placed in the block, one that is
32698        specially marked as a placeholder. Later, if the block ever receives content, this
32699        placeholder is removed.
32700
32701        * khtml/editing/htmlediting.cpp:
32702        (khtml::blockPlaceholerClassString): String which acts as a placeholder marker class.
32703        (khtml::CompositeEditCommand::insertBlockPlaceholderIfNeeded): Adds a placeholder BR if needed.
32704        (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): Removes a placeholder BR if needed.
32705        (khtml::DeleteSelectionCommand::moveNodesAfterNode): Call removeBlockPlaceholderIfNeeded.
32706        Also, do some cleanup on some old, crufty code in the move logic that is just so clearly wrong 
32707        (it's very clear that we needs to be able to move more than just text nodes). This may expose
32708        bugs, but these bugs needs to be filed and fixed, not ducked. Besides, undoing this silliness
32709        made the test case in the bug work.
32710        (khtml::DeleteSelectionCommand::doApply): Call insertBlockPlaceholderIfNeeded and
32711        removeBlockPlaceholderIfNeeded.
32712        (khtml::InputTextCommand::input): Call removeBlockPlaceholderIfNeeded.
32713        (khtml::ReplaceSelectionCommand::doApply): Call removeBlockPlaceholderIfNeeded.
32714        * khtml/editing/htmlediting.h: Declare new functions.
32715
327162004-10-13  Richard Williamson   <rjw@apple.com>
32717
32718        Added support for -apple-dashboard-region:none.  And fixed
32719	a few computed style problems.
32720
32721        Fixed <rdar://problem/3833532> -apple-dashboard-region: none; is needed
32722        Reviewed by Hyatt.
32723
32724        * khtml/css/css_computedstyle.cpp:
32725        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
32726        * khtml/css/css_valueimpl.cpp:
32727        (CSSPrimitiveValueImpl::cssText):
32728        * khtml/css/cssparser.cpp:
32729        (CSSParser::parseValue):
32730        (CSSParser::parseDashboardRegions):
32731        * khtml/css/cssstyleselector.cpp:
32732        (khtml::CSSStyleSelector::applyProperty):
32733        * khtml/rendering/render_style.cpp:
32734        (RenderStyle::noneDashboardRegions):
32735        * khtml/rendering/render_style.h:
32736        * kwq/KWQKHTMLPart.mm:
32737        (KWQKHTMLPart::dashboardRegionsDictionary):
32738
327392004-10-13  David Hyatt  <hyatt@apple.com>
32740
32741	Rework block layout to clean it up and simplify it (r=kocienda).  
32742
32743	Also fixing the style sharing bug (r=mjs).
32744	
32745        * khtml/rendering/render_block.cpp:
32746        (khtml::RenderBlock::MarginInfo::MarginInfo):
32747        (khtml::RenderBlock::layoutBlock):
32748        (khtml::RenderBlock::adjustPositionedBlock):
32749        (khtml::RenderBlock::adjustFloatingBlock):
32750        (khtml::RenderBlock::handleSpecialChild):
32751        (khtml::RenderBlock::handleFloatingOrPositionedChild):
32752        (khtml::RenderBlock::handleCompactChild):
32753        (khtml::RenderBlock::insertCompactIfNeeded):
32754        (khtml::RenderBlock::handleRunInChild):
32755        (khtml::RenderBlock::collapseMargins):
32756        (khtml::RenderBlock::clearFloatsIfNeeded):
32757        (khtml::RenderBlock::estimateVerticalPosition):
32758        (khtml::RenderBlock::determineHorizontalPosition):
32759        (khtml::RenderBlock::setCollapsedBottomMargin):
32760        (khtml::RenderBlock::adjustChildIfOverhangingFloatsExist):
32761        (khtml::RenderBlock::handleBottomOfBlock):
32762        (khtml::RenderBlock::layoutBlockChildren):
32763        (khtml::RenderBlock::getAbsoluteRepaintRectIncludingFloats):
32764        (khtml::RenderBlock::addOverHangingFloats):
32765        * khtml/rendering/render_block.h:
32766        (khtml::RenderBlock::maxTopMargin):
32767        (khtml::RenderBlock::maxBottomMargin):
32768        (khtml::RenderBlock::CompactInfo::compact):
32769        (khtml::RenderBlock::CompactInfo::block):
32770        (khtml::RenderBlock::CompactInfo::matches):
32771        (khtml::RenderBlock::CompactInfo::clear):
32772        (khtml::RenderBlock::CompactInfo::set):
32773        (khtml::RenderBlock::CompactInfo::CompactInfo):
32774        (khtml::RenderBlock::MarginInfo::setAtTopOfBlock):
32775        (khtml::RenderBlock::MarginInfo::setAtBottomOfBlock):
32776        (khtml::RenderBlock::MarginInfo::clearMargin):
32777        (khtml::RenderBlock::MarginInfo::setSelfCollapsingBlockClearedFloat):
32778        (khtml::RenderBlock::MarginInfo::setTopQuirk):
32779        (khtml::RenderBlock::MarginInfo::setBottomQuirk):
32780        (khtml::RenderBlock::MarginInfo::setDeterminedTopQuirk):
32781        (khtml::RenderBlock::MarginInfo::setPosMargin):
32782        (khtml::RenderBlock::MarginInfo::setNegMargin):
32783        (khtml::RenderBlock::MarginInfo::setPosMarginIfLarger):
32784        (khtml::RenderBlock::MarginInfo::setNegMarginIfLarger):
32785        (khtml::RenderBlock::MarginInfo::setMargin):
32786        (khtml::RenderBlock::MarginInfo::atTopOfBlock):
32787        (khtml::RenderBlock::MarginInfo::canCollapseWithTop):
32788        (khtml::RenderBlock::MarginInfo::canCollapseWithBottom):
32789        (khtml::RenderBlock::MarginInfo::canCollapseTopWithChildren):
32790        (khtml::RenderBlock::MarginInfo::canCollapseBottomWithChildren):
32791        (khtml::RenderBlock::MarginInfo::selfCollapsingBlockClearedFloat):
32792        (khtml::RenderBlock::MarginInfo::quirkContainer):
32793        (khtml::RenderBlock::MarginInfo::determinedTopQuirk):
32794        (khtml::RenderBlock::MarginInfo::topQuirk):
32795        (khtml::RenderBlock::MarginInfo::bottomQuirk):
32796        (khtml::RenderBlock::MarginInfo::posMargin):
32797        (khtml::RenderBlock::MarginInfo::negMargin):
32798        (khtml::RenderBlock::MarginInfo::margin):
32799        * khtml/rendering/render_box.cpp:
32800        (RenderBox::calcAbsoluteVertical):
32801        * khtml/rendering/render_box.h:
32802        (khtml::RenderBox::marginTop):
32803        (khtml::RenderBox::marginBottom):
32804        (khtml::RenderBox::marginLeft):
32805        (khtml::RenderBox::marginRight):
32806        * khtml/rendering/render_image.cpp:
32807        (RenderImage::setImage):
32808        * khtml/rendering/render_object.cpp:
32809        (RenderObject::sizesToMaxWidth):
32810        * khtml/rendering/render_object.h:
32811        (khtml::RenderObject::collapsedMarginTop):
32812        (khtml::RenderObject::collapsedMarginBottom):
32813        (khtml::RenderObject::maxTopMargin):
32814        (khtml::RenderObject::maxBottomMargin):
32815        (khtml::RenderObject::marginTop):
32816        (khtml::RenderObject::marginBottom):
32817        (khtml::RenderObject::marginLeft):
32818        (khtml::RenderObject::marginRight):
32819        * khtml/rendering/render_text.h:
32820        (khtml::RenderText::marginLeft):
32821        (khtml::RenderText::marginRight):
32822        * khtml/xml/dom_elementimpl.cpp:
32823        (ElementImpl::recalcStyle):
32824
328252004-10-12  Ken Kocienda  <kocienda@apple.com>
32826
32827        Reviewed by John
32828
32829        Fix for this bug:
32830        
32831        <rdar://problem/3836158> REGRESSION (Mail): command-right-arrow moves to beginning of next line
32832
32833        * khtml/editing/selection.cpp:
32834        (khtml::endOfLastRunAt): Do not let the end of the last run on a line be a BR.
32835        This will make it seem like the run ends on the next line.
32836
328372004-10-12  Ken Kocienda  <kocienda@apple.com>
32838
32839        Reviewed by Hyatt
32840
32841        Fix for this bug:
32842        
32843        <rdar://problem/3836986> Delete code removes elements of table structure; can result in very broken-looking web pages
32844
32845        * khtml/editing/htmlediting.cpp:
32846        (khtml::isTableStructureNode): New helper. Determines whether a node is a table cell,
32847        row, section, or column.
32848        (khtml::CompositeEditCommand::removeFullySelectedNode): New helper that recurses into elements
32849        of table structure when doing deletes, rather than deleting the structure elements themselves.
32850        (khtml::DeleteSelectionCommand::moveNodesAfterNode): Do not move content between elements
32851        of table structure. We may want to revisit this some day, but this seems like the best behavior
32852        to me now.
32853        (khtml::DeleteSelectionCommand::doApply): Call removeFullySelectedNode instead of removeNode
32854        where needed.
32855        * khtml/editing/htmlediting.h: Add declarations for new functions.
32856
328572004-10-12  Richard Williamson   <rjw@apple.com>
32858
32859        Fixed access to DOM object via WebScriptObject API.
32860        The execution context for DOM objects wasn't being found.	
32861        <rdar://problem/3831372> The valueForKey method for @"offsetLeft" on a paragraph element causes a crash.
32862        Reviewed by Chris
32863
32864        Fixed <rdar://problem/3831063> regions use left offset instead of top offset
32865	Reviewed by John
32866
32867        * khtml/khtml_part.h:
32868        * khtml/rendering/render_object.cpp:
32869        (RenderObject::addDashboardRegions):
32870        * kwq/DOM.mm:
32871        (-[DOMNode isContentEditable]):
32872        (-[DOMNode KJS::Bindings::]):
32873        * kwq/KWQKHTMLPart.h:
32874        * kwq/KWQKHTMLPart.mm:
32875        (KWQKHTMLPart::executionContextForDOM):
32876
328772004-10-12  Ken Kocienda  <kocienda@apple.com>
32878
32879        Reviewed by Hyatt
32880
32881        Fix for this bug:
32882
32883        <rdar://problem/3834779> Mail crashes when editing HTML message - khtml::Selection::layout()
32884    
32885        * kwq/KWQKHTMLPart.mm:
32886        (KWQKHTMLPart::styleForSelectionStart): Table code seems to be more robust when the call to
32887        insert our style-checking node is done with an appendChild rather than an insertBefore. Note 
32888        that this table-related problem was exposed by fixing Selection::layout(), which I did
32889        yesterday. This change simply improves things even more so that we do not crash in the
32890        scenario described in the bug.
32891
328922004-10-11  Ken Kocienda  <kocienda@apple.com>
32893
32894        Reviewed by John
32895
32896        This is a partial fix to this bug:
32897        
32898        <rdar://problem/3832886> increase quote level on new mail document leads to immediate 
32899        crash in caret painting code
32900        
32901        To eliminate the bad behavior for good, I have done some investigations in Mail code,
32902        and I have sent a suggested code change on to Grant. Basically, Mail can't add empty
32903        blocks (like blockquote elements used for quoting) to documents without giving those 
32904        blocks some content (so they have a height).
32905
32906        I added some other crash protections below.
32907
32908        * khtml/editing/selection.cpp:
32909        (khtml::Selection::layout): Check for non-null position after calls to VisiblePosition, since
32910        the VisiblePosition constructors may fail to find a visible spot in the document. Also, add
32911        a couple position-has-renderer assertion checks.
32912        * kwq/KWQKHTMLPart.mm:
32913        (KWQKHTMLPart::styleForSelectionStart): Take out pos.isNotNull() assertion since VisiblePosition
32914        may not yield a position. This assertion is a holdover from before we had VisiblePosition.
32915        (KWQKHTMLPart::fontForSelection): Rearrange the code a little to deal with possible null results from
32916        calls to helpers.
32917
329182004-10-11  Darin Adler  <darin@apple.com>
32919
32920        Reviewed by John.
32921
32922        - fixed <rdar://problem/3834230> empty table can result in division by 0
32923
32924        * khtml/rendering/render_table.cpp: (RenderTableSection::layoutRows):
32925        Added 0 check; rolled in from KDE.
32926
329272004-10-11  Darin Adler  <darin@apple.com>
32928
32929        Reviewed by John.
32930
32931        - fixed <rdar://problem/3818712> form checkbox value property is read only
32932
32933        The underlying problem was that we were storing two separate values for all
32934        form elements; one for the value property (JavaScript) and the other for the
32935        value attribute (DOM). This is a good idea for text input, but not for other types.
32936
32937        * khtml/html/html_formimpl.h: Changed setValue to take a const DOMString reference.
32938        Added private storesValueSeparateFromAttribute function.
32939        * khtml/html/html_formimpl.cpp:
32940        (DOM::HTMLInputElementImpl::setType): Handle type changes, including detaching and re-attaching
32941        if type changed, and moving value from m_value to ATTR_VALUE and vice versa.
32942        (DOM::HTMLInputElementImpl::type): Added a case for ISINDEX and moved the default out of the
32943        switch so that we will get a warning if a type is left out.
32944        (DOM::HTMLInputElementImpl::parseHTMLAttribute): Tweaked comment format.
32945        (DOM::HTMLInputElementImpl::reset): Changed to only nuke the value if the value property is stored
32946        separately from the attribute. Otherwise, we just want to lave it alone
32947        (DOM::HTMLInputElementImpl::value): Changed to always use m_value if it's not null, then fall back
32948        on the attribute, and finally fall back to the "on" for the checkbox only if both are null.
32949        (DOM::HTMLInputElementImpl::setValue): Changed to set the attribute unless the value property is
32950        supposed to be stored separate from the attribute.
32951        (DOM::HTMLInputElementImpl::storesValueSeparateFromAttribute): Added. Returns true for text-type
32952        input elements, and false for the others.
32953
329542004-10-11  Darin Adler  <darin@apple.com>
32955
32956        Reviewed by John.
32957
32958        - fixed <rdar://problem/3296652> checkbox input type does not respond to onchange
32959
32960        * khtml/rendering/render_form.cpp:
32961        (RenderFormElement::updateFromElement): Some new code, commented out, for form element colors.
32962        (RenderCheckBox::slotStateChanged): Added call to onChange.
32963
329642004-10-11  Ken Kocienda  <kocienda@apple.com>
32965
32966        Reviewed by Darin
32967
32968        Finish selection affinity implementation. This includes code to set the
32969        affinity correctly when clicking with the mouse, and clearing the
32970        affinity when altering the selection using any of the Selection object
32971        mutation functions.
32972
32973        Each instance of the positionForCoordinates, inlineBox and caretRect 
32974        functions have been changed to include an EAffinity argument to give results
32975        which take this bit into account.
32976
32977        * khtml/editing/selection.cpp:
32978        (khtml::Selection::init): Default affinity is now UPSTREAM, to match AppKit.
32979        (khtml::Selection::modifyAffinity): New function to compute affinity based on
32980        modification constants.
32981        (khtml::Selection::moveTo): Reset affinity to UPSTREAM.
32982        (khtml::Selection::modifyExtendingRightForward): Ditto.
32983        (khtml::Selection::modifyMovingRightForward): Ditto.
32984        (khtml::Selection::modifyExtendingLeftBackward): Ditto.
32985        (khtml::Selection::modifyMovingLeftBackward): Ditto.
32986        (khtml::Selection::modify): Support saving, restoring, and then calculating new
32987        affinity value as needed. 
32988        (khtml::Selection::xPosForVerticalArrowNavigation):
32989        (khtml::Selection::clear): Reset affinity to UPSTREAM.
32990        (khtml::Selection::setBase): Ditto.
32991        (khtml::Selection::setExtent): Ditto.
32992        (khtml::Selection::setBaseAndExtent): Ditto.
32993        (khtml::Selection::layout): Pass affinity to caretRect().
32994        (khtml::Selection::validate): Pass along affinity parameter to new functions that
32995        require it.
32996        (khtml::startOfFirstRunAt): Changed the way that the y-coordinate search is done, to
32997        keep this code working with changes made in selectionForLine().
32998        (khtml::endOfLastRunAt): Ditto.
32999        (khtml::selectionForLine): Make this function work for all renderers, not just text
33000        renderers.
33001        * khtml/editing/selection.h:
33002        (khtml::operator==): Consider affinity in equality check.
33003        * khtml/editing/visible_units.cpp:
33004        (khtml::previousLinePosition): Pass affinity argument to function so it can take this 
33005        information into account while processing.
33006        (khtml::nextLinePosition): Ditto.
33007        (khtml::previousParagraphPosition): Ditto.
33008        (khtml::nextParagraphPosition): Ditto.
33009        * khtml/editing/visible_units.h: Ditto, for each of the functions listed.
33010        * khtml/khtml_events.cpp:
33011        (khtml::MouseEvent::offset): Rework code to remove dependence on NodeImpl::positionForCoordinates,
33012        as this function is being removed.
33013        * khtml/khtml_part.cpp:
33014        (KHTMLPart::isPointInsideSelection): Ditto.
33015        (KHTMLPart::selectClosestWordFromMouseEvent): Ditto.
33016        (KHTMLPart::handleMousePressEventTripleClick): Ditto.
33017        (KHTMLPart::handleMousePressEventSingleClick): Ditto. Plus, pass affinity argument in
33018        call to positionForCoordinates, and set resulting affinity on the selection.
33019        (KHTMLPart::handleMouseMoveEventSelection): Rework code to remove dependence on 
33020        NodeImpl::positionForCoordinates, as this function is being removed.
33021        (KHTMLPart::khtmlMouseReleaseEvent): Ditto.
33022        * khtml/rendering/render_block.cpp:
33023        (khtml::RenderBlock::positionForCoordinates): Now takes an affinity argument.
33024        * khtml/rendering/render_block.h:
33025        * khtml/rendering/render_box.cpp:
33026        (RenderBox::caretRect): Ditto.
33027        * khtml/rendering/render_box.h:
33028        * khtml/rendering/render_br.cpp:
33029        (RenderBR::positionForCoordinates): Ditto.
33030        (RenderBR::caretRect): Ditto.
33031        (RenderBR::inlineBox): Ditto.
33032        * khtml/rendering/render_br.h:
33033        * khtml/rendering/render_container.cpp:
33034        (RenderContainer::positionForCoordinates): Ditto.
33035        * khtml/rendering/render_container.h:
33036        * khtml/rendering/render_flow.cpp:
33037        (RenderFlow::caretRect): Ditto.
33038        * khtml/rendering/render_flow.h:
33039        * khtml/rendering/render_inline.cpp:
33040        (RenderInline::positionForCoordinates): Ditto.
33041        * khtml/rendering/render_inline.h:
33042        * khtml/rendering/render_object.cpp:
33043        (RenderObject::caretRect): Ditto.
33044        (RenderObject::positionForCoordinates): Ditto.
33045        (RenderObject::inlineBox): Ditto.
33046        * khtml/rendering/render_object.h:
33047        * khtml/rendering/render_replaced.cpp:
33048        (RenderReplaced::positionForCoordinates): Ditto.
33049        * khtml/rendering/render_replaced.h:
33050        * khtml/rendering/render_text.cpp:
33051        (RenderText::positionForCoordinates): Ditto.
33052        (firstRendererOnNextLine): New helper used by caretRect().
33053        (RenderText::caretRect): Now takes an affinity argument.
33054        (RenderText::inlineBox): Ditto.
33055        * khtml/rendering/render_text.h:
33056        * khtml/xml/dom_nodeimpl.cpp: Remove positionForCoordinates helper.
33057        * khtml/xml/dom_nodeimpl.h: Ditto.
33058        * khtml/xml/dom_position.cpp:
33059        (DOM::Position::previousLinePosition): Now takes an affinity argument.
33060        (DOM::Position::nextLinePosition): Ditto.
33061        * khtml/xml/dom_position.h:
33062        * kwq/WebCoreBridge.h:
33063        * kwq/WebCoreBridge.mm:
33064        (-[WebCoreBridge caretRectAtNode:offset:affinity:]): Ditto.
33065        (-[WebCoreBridge setSelectedDOMRange:affinity:]): Ditto.
33066        (-[WebCoreBridge _positionForPoint:]): Rework code to remove dependence on 
33067        NodeImpl::positionForCoordinates, as this function is being removed.
33068
330692004-10-11  Darin Adler  <darin@apple.com>
33070
33071        Reviewed by Ken.
33072
33073        - fixed <rdar://problem/3670280> scroll position on overflowed textareas resets when leaving the tab
33074
33075        * kwq/KWQTextArea.mm: (-[KWQTextAreaTextView becomeFirstResponder]):
33076        Scroll to reveal the text area, don't scroll to reveal the text view itself.
33077        Scrolling the text view ended up putting it at the top left, regardless of
33078        where the insertion point is.
33079
330802004-10-11  Darin Adler  <darin@apple.com>
33081
33082        Reviewed by Ken.
33083
33084        - fixed <rdar://problem/3831546> More text is copied than is visually selected
33085
33086        The bug here is that upstream was moving a position too far.
33087
33088        * khtml/xml/dom_position.cpp:
33089        (DOM::Position::upstream): Use the "deep equivalent" node rather than the original node passed
33090        in for various checks. Also use local variables a bit more for slightly more efficiency.
33091        (DOM::Position::downstream): Ditto.
33092
330932004-10-11  Darin Adler  <darin@apple.com>
33094
33095        Reviewed by Ken.
33096
33097        - fixed <rdar://problem/3833841> adding an event listener for keypress events does not work
33098
33099        * khtml/xml/dom2_eventsimpl.h: Added numEventIds and made typeToId take a const DOMString &.
33100        * khtml/xml/dom2_eventsimpl.cpp:
33101        (EventImpl::typeToId): Changed to use table. Added "keypress", otherwise, the same as before.
33102        (EventImpl::idToType): Changed to use table.
33103
331042004-10-10  John Sullivan  <sullivan@apple.com>
33105
33106        - fixed <rdar://problem/3664375> repro crash in -[KWQAccObject accessibilityAttributeNames]
33107
33108        (-[KWQAccObject accessibilityActionNames]):
33109        check for nil m_renderer
33110
331112004-10-09  Darin Adler  <darin@apple.com>
33112
33113        Reviewed by Kevin.
33114
33115        - fixed <rdar://problem/3828147> REGRESSION: textareas with wrap="off" show their contents in a thin vertical line of text
33116
33117        * kwq/KWQTextArea.h: Added setTextColor and setBackgroundColor methods. This is really for another fix
33118        I'm landing later, but it does no harm to add these now.
33119        * kwq/KWQTextArea.mm:
33120        (-[KWQTextArea _configureTextViewForWordWrapMode]): Set the container size after changing the flag that
33121        determines if the width tracks the text view. Otherwise, we won't successfully set the width in the case
33122        where we don't want it to track the text view. This caused the bug. 
33123        (-[KWQTextArea _createTextView]): Remove unneeded call to setMaxSize. The above method already does that.
33124        (-[KWQTextArea setTextColor:]): Added.
33125        (-[KWQTextArea setBackgroundColor:]): Added.
33126
331272004-10-09  Darin Adler  <darin@apple.com>
33128
33129        Reviewed by Adele.
33130
33131        - fixed <rdar://problem/3829452> REGRESSION (156-157): onload handler doesn't run on page with meta refresh of 0 duration (new Apple start page)
33132
33133        The fix for <rdar://problem/3773150> made it so <meta> redirects prevent tokenizing the rest of the page.
33134        This is incorrect; the reason the JavaScript-triggered loads prevent tokenizing is that they take place
33135        "right away" in other browsers, but that is not true of <meta> redirect. We fixed this by using a separate
33136        call for <meta> redirect and not preventing tokenizing when that's in effect.
33137
33138        * khtml/khtml_part.h: Removed userGesture parameter from scheduleRedirection. Renamed
33139        isImmediateRedirectPending to isScheduledLocationChangePending. Added scheduleLocationChange.
33140        * khtml/khtml_part.cpp:
33141        (KHTMLPart::openURL): Updated for new constant name.
33142        (KHTMLPart::scheduleRedirection): Removed now-unneeded userGesture parameter, and removed code that
33143        does the special case for redirection during load; a <meta> refresh can never be one of those special
33144        redirects during a load because it redirects the frame itself, not another frame. Also tightened up
33145        the logic by always stopping the redirect timer even if we aren't restarting it.
33146        (KHTMLPart::scheduleLocationChange): Added. Like scheduleRedirection, but with a different constant
33147        so we can tell it apart and always a delay of 0. The "redirection during load" case was moved in here
33148        and renamed to locationChangeScheduledDuringLoad.
33149        (KHTMLPart::isScheduledLocationChangePending): Renamed from isImmediateRedirectPending. This now
33150        returns true only for location changes and history navigation, not <meta> redirects.
33151        (KHTMLPart::scheduleHistoryNavigation): Tightened up logic to do the stop() outside the if as above,
33152        and got rid of a silly timer delay computation that always resulted in 0.
33153
33154        * khtml/khtmlpart_p.h: Added a new value to the RedirectionScheduled enum for scheduleLocationChange
33155        and also renamed one of the existing values.
33156
33157        * khtml/html/htmltokenizer.cpp: (HTMLTokenizer::write): Changed to use isScheduledLocationChangePending instead
33158        of isImmediateRedirectPending, because we do want to continue tokenizing if it's actually a redirect.
33159
33160        * khtml/ecma/kjs_html.cpp: (KJS::HTMLDocument::putValue): Changed to call the new scheduleLocationChange
33161        instead of calling scheduleRedirection with delay of 0.
33162        * khtml/ecma/kjs_window.cpp:
33163        (Window::put): Ditto.
33164        (WindowFunc::tryCall): Ditto.
33165        (Location::put): Ditto.
33166        (LocationFunc::tryCall): Ditto.
33167
331682004-10-09  Darin Adler  <darin@apple.com>
33169
33170        Reviewed by Kevin.
33171
33172        - fixed <rdar://problem/3658277> REGRESSION (1.1-1.2): form submission should either not simulate a click at all or use (0,0) the way Mozilla does
33173
33174        * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::click): Use 0,0 for the coordinates.
33175
331762004-10-09  Darin Adler  <darin@apple.com>
33177
33178        Reviewed by Kevin.
33179
33180        - fixed <rdar://problem/3804665> REGRESSION: WebCore framework now has many init routines
33181
33182        * khtml/xml/dom_nodeimpl.h: Changed anyQName declaration to not use the inline function
33183        makeId. Surprisingly, the inline function was not "constant-folded" and we ended up with
33184        a copy of the function in each file as an init routine for the framework.
33185
33186        * khtml/ecma/kjs_html.cpp: (Gradient::colorStops): Get rid of initialized ColorStop
33187        globals; their constructors were showing up as init routines for the framework.
33188
33189        * khtml/rendering/render_style.h: Got rid of inline initialDashboardRegions function.
33190        * khtml/rendering/render_style.cpp: (RenderStyle::initialDashboardRegions): Made this
33191        a normal function. When it was an inline function, the constructors for the per-file
33192        copies of the globals were showing up as init routines for the framework.
33193
331942004-10-09  Chris Blumenberg  <cblu@apple.com>
33195
33196	Fixed: 
33197	<rdar://problem/3625352> up and down arrow and page up/down keys don't work to scroll overflow:auto/scroll/overlay areas
33198	<rdar://problem/3397658> scroll wheel does not work to scroll overflow:auto/scroll/overlay areas (RSS)
33199	<rdar://problem/3822027> REGRESSION (Mail): When selection moves out of visible area, should center as NSText does
33200
33201        Reviewed by hyatt, kocienda.
33202
33203        * khtml/rendering/render_layer.cpp:
33204        (RenderLayer::scroll): new
33205        * khtml/rendering/render_layer.h:
33206        * khtml/rendering/render_object.cpp:
33207        (RenderObject::scroll): new
33208        * khtml/rendering/render_object.h:
33209        * kwq/KWQKHTMLPart.h:
33210        * kwq/KWQKHTMLPart.mm:
33211        (KWQKHTMLPart::scrollOverflow): new
33212        (KWQKHTMLPart::scrollOverflowWithScrollWheelEvent): new
33213        (KWQKHTMLPart::khtmlMousePressEvent): store pressed node so we know where the focus is
33214        * kwq/KWQScrollBar.h:
33215        * kwq/KWQScrollBar.mm:
33216        (QScrollBar::setValue): return a bool
33217        (QScrollBar::scrollbarHit): ditto
33218        (QScrollBar::scroll): new
33219        * kwq/WebCoreBridge.h:
33220        * kwq/WebCoreBridge.mm:
33221        (-[WebCoreBridge scrollOverflowInDirection:granularity:]): new
33222        (-[WebCoreBridge scrollOverflowWithScrollWheelEvent:]): new
33223        (-[WebCoreBridge ensureSelectionVisible]): visually center the extent of the selection
33224
332252004-10-06  David Hyatt  <hyatt@apple.com>
33226
33227	Back out style sharing perf fix.
33228	
33229        * khtml/css/cssstyleselector.cpp:
33230        (khtml::CSSStyleSelector::locateCousinList):
33231        (khtml::CSSStyleSelector::canShareStyleWithElement):
33232        (khtml::CSSStyleSelector::locateSharedStyle):
33233        * khtml/css/cssstyleselector.h:
33234        * khtml/html/html_elementimpl.h:
33235        (DOM::HTMLElementImpl::inlineStyleDecl):
33236        * khtml/xml/dom_elementimpl.cpp:
33237        (ElementImpl::recalcStyle):
33238        * khtml/xml/dom_elementimpl.h:
33239
33240=== Safari-166 ===
33241
332422004-10-05  David Hyatt  <hyatt@apple.com>
33243
33244	Fix a bug in the iteration of locateCousinList and clean up the style sharing stats code.
33245
33246        * khtml/css/cssstyleselector.cpp:
33247        (khtml::CSSStyleSelector::locateCousinList):
33248        (khtml::CSSStyleSelector::elementsCanShareStyle):
33249        (khtml::CSSStyleSelector::locateSharedStyle):
33250        (khtml::CSSStyleSelector::styleForElement):
33251
332522004-10-05  Ken Kocienda  <kocienda@apple.com>
33253
33254        Reviewed by Hyatt
33255
33256        * khtml/rendering/bidi.cpp:
33257        (khtml::RenderBlock::computeHorizontalPositionsForLine): Fix coding mistake that
33258        broke layout tests involving compacts.
33259
332602004-10-05  Ken Kocienda  <kocienda@apple.com>
33261
33262        Reviewed by Darin
33263
33264        Finish selection affinity implementation. This includes code to set the
33265        affinity correctly when clicking with the mouse, and clearing the
33266        affinity when altering the selection using any of the Selection object
33267        mutation functions.
33268
33269        Each instance of the positionForCoordinates function in the render tree
33270        has been changed to include an EAffinity argument. It is now the job of this
33271        function to set the selection affinity.
33272
33273        * khtml/editing/selection.cpp:
33274        (khtml::Selection::moveTo): Set affinity to DOWNSTREAM.
33275        (khtml::Selection::modify): Ditto.
33276        (khtml::Selection::clear): Ditto.
33277        (khtml::Selection::setBase): Ditto.
33278        (khtml::Selection::setExtent): Ditto.
33279        (khtml::Selection::setBaseAndExtent): Ditto.
33280        * khtml/editing/selection.h:
33281        (khtml::operator==): Consider affinity in equality check.
33282        * khtml/khtml_events.cpp:
33283        (khtml::MouseEvent::offset): Rework code to remove dependence on NodeImpl::positionForCoordinates,
33284        as this function is being removed.
33285        * khtml/khtml_part.cpp: 
33286        (KHTMLPart::isPointInsideSelection): Ditto.
33287        (KHTMLPart::selectClosestWordFromMouseEvent): Ditto.
33288        (KHTMLPart::handleMousePressEventTripleClick): Ditto.
33289        (KHTMLPart::handleMousePressEventSingleClick): Ditto. Plus, pass affinity argument in
33290        call to positionForCoordinates, and set resulting affinity on the selection.
33291        (KHTMLPart::handleMouseMoveEventSelection): Rework code to remove dependence on 
33292        NodeImpl::positionForCoordinates, as this function is being removed.
33293        (KHTMLPart::khtmlMouseReleaseEvent):
33294        * khtml/rendering/render_block.cpp:
33295        (khtml::RenderBlock::positionForCoordinates): Changed, as described above.
33296        * khtml/rendering/render_block.h:
33297        * khtml/rendering/render_br.cpp:
33298        (RenderBR::positionForCoordinates): Ditto.
33299        * khtml/rendering/render_br.h:
33300        * khtml/rendering/render_container.cpp:
33301        (RenderContainer::positionForCoordinates): Ditto.
33302        * khtml/rendering/render_container.h:
33303        * khtml/rendering/render_inline.cpp:
33304        (RenderInline::positionForCoordinates): Ditto.
33305        * khtml/rendering/render_inline.h:
33306        * khtml/rendering/render_object.cpp:
33307        (RenderObject::positionForCoordinates): Ditto.
33308        * khtml/rendering/render_object.h:
33309        * khtml/rendering/render_replaced.cpp:
33310        (RenderReplaced::positionForCoordinates): Ditto.
33311        * khtml/rendering/render_replaced.h:
33312        * khtml/rendering/render_text.cpp:
33313        (RenderText::positionForCoordinates): Ditto.
33314        * khtml/rendering/render_text.h:
33315        * khtml/xml/dom_nodeimpl.cpp: Removed positionForCoordinates convenience.
33316        * khtml/xml/dom_nodeimpl.h: Ditto.
33317        * kwq/WebCoreBridge.mm:
33318        (-[WebCoreBridge _positionForPoint:]): Rework code to remove dependence on 
33319        NodeImpl::positionForCoordinates, as this function is being removed.
33320
333212004-10-05  David Hyatt  <hyatt@apple.com>
33322
33323	Fix style sharing optimization to be fast again.  Go back to using pointer comparisons when looking for
33324	cousins to share.
33325	
33326        Reviewed by darin
33327
33328        * khtml/css/cssstyleselector.cpp:
33329        (khtml::CSSStyleSelector::locateCousinList):
33330        * khtml/rendering/render_object.cpp:
33331        (RenderObject::setStyleInternal):
33332        * khtml/rendering/render_object.h:
33333        * khtml/xml/dom_elementimpl.cpp:
33334        (ElementImpl::recalcStyle):
33335
333362004-10-05  David Hyatt  <hyatt@apple.com>
33337
33338	Fix lists so that they properly participate in line layout as though they are text (when text bullets are
33339	used) and as images (when image bullets are used).
33340	
33341        Reviewed by kocienda
33342
33343        * khtml/rendering/render_list.cpp:
33344        (RenderListMarker::createInlineBox):
33345        * khtml/rendering/render_list.h:
33346        (khtml::ListMarkerBox:::InlineBox):
33347        (khtml::ListMarkerBox::isText):
33348
333492004-10-05  Ken Kocienda  <kocienda@apple.com>
33350
33351        Reviewed by Darin
33352
33353        Recent checkin adding upstreamDeepEquivalent had it backwards. The helper
33354        we want is downstreamDeepEquivalent, as the deepEquivalent function returns
33355        an upstream position.
33356
33357        * khtml/editing/selection.cpp:
33358        (khtml::Selection::layout): DOWNSTREAM case now uses downstreamDeepEquivalent.
33359        UPSTREAM uses deepEquivalent.
33360        * khtml/editing/visible_position.cpp:
33361        (khtml::VisiblePosition::downstreamDeepEquivalent): New helper, replacing 
33362        upstreamDeepEquivalent.
33363        * khtml/editing/visible_position.h
33364
333652004-10-05  David Hyatt  <hyatt@apple.com>
33366
33367	New selection gap-filling architecture.  Makes the gap-filling much more like NSTextView and puts the responsibility
33368	for gap-filling in the block.  Fixes numerous bugs with selection drawing including bidi issues, incorrect old
33369	horizontal gap filling, and selection performance issues.
33370	
33371        Reviewed by kocienda
33372
33373        * khtml/html/html_imageimpl.cpp:
33374        (HTMLImageLoader::notifyFinished):
33375        * khtml/misc/khtmllayout.h:
33376        (khtml::GapRects::left):
33377        (khtml::GapRects::center):
33378        (khtml::GapRects::right):
33379        (khtml::GapRects::uniteLeft):
33380        (khtml::GapRects::uniteCenter):
33381        (khtml::GapRects::uniteRight):
33382        (khtml::GapRects::unite):
33383        (khtml::GapRects::operator QRect):
33384        (khtml::GapRects::operator==):
33385        (khtml::GapRects::operator!=):
33386        * khtml/rendering/font.cpp:
33387        (Font::drawHighlightForText):
33388        * khtml/rendering/font.h:
33389        * khtml/rendering/render_block.cpp:
33390        (khtml:::RenderFlow):
33391        (khtml::RenderBlock::removeChild):
33392        (khtml::RenderBlock::paintObject):
33393        (khtml::RenderBlock::paintEllipsisBoxes):
33394        (khtml::RenderBlock::setSelectionState):
33395        (khtml::RenderBlock::shouldPaintSelectionGaps):
33396        (khtml::RenderBlock::isSelectionRoot):
33397        (khtml::RenderBlock::selectionGapRects):
33398        (khtml::RenderBlock::paintSelection):
33399        (khtml::RenderBlock::fillSelectionGaps):
33400        (khtml::RenderBlock::fillInlineSelectionGaps):
33401        (khtml::RenderBlock::fillBlockSelectionGaps):
33402        (khtml::RenderBlock::fillHorizontalSelectionGap):
33403        (khtml::RenderBlock::fillVerticalSelectionGap):
33404        (khtml::RenderBlock::fillLeftSelectionGap):
33405        (khtml::RenderBlock::fillRightSelectionGap):
33406        (khtml::RenderBlock::getHorizontalSelectionGapInfo):
33407        (khtml::RenderBlock::leftSelectionOffset):
33408        (khtml::RenderBlock::rightSelectionOffset):
33409        * khtml/rendering/render_block.h:
33410        (khtml::RenderBlock::hasSelectedChildren):
33411        (khtml::RenderBlock::selectionState):
33412        (khtml::RenderBlock::BlockSelectionInfo::BlockSelectionInfo):
33413        (khtml::RenderBlock::BlockSelectionInfo::rects):
33414        (khtml::RenderBlock::BlockSelectionInfo::state):
33415        (khtml::RenderBlock::BlockSelectionInfo::block):
33416        (khtml::RenderBlock::selectionRect):
33417        * khtml/rendering/render_box.cpp:
33418        (RenderBox::position):
33419        * khtml/rendering/render_br.cpp:
33420        (RenderBR::inlineBox):
33421        * khtml/rendering/render_br.h:
33422        (khtml::RenderBR::selectionRect):
33423        (khtml::RenderBR::paint):
33424        * khtml/rendering/render_canvas.cpp:
33425        (RenderCanvas::selectionRect):
33426        (RenderCanvas::setSelection):
33427        * khtml/rendering/render_canvasimage.cpp:
33428        (RenderCanvasImage::paint):
33429        * khtml/rendering/render_image.cpp:
33430        (RenderImage::paint):
33431        * khtml/rendering/render_image.h:
33432        * khtml/rendering/render_line.cpp:
33433        (khtml::InlineBox::nextLeafChild):
33434        (khtml::InlineBox::prevLeafChild):
33435        (khtml::InlineBox::selectionState):
33436        (khtml::InlineFlowBox::addToLine):
33437        (khtml::InlineFlowBox::firstLeafChild):
33438        (khtml::InlineFlowBox::lastLeafChild):
33439        (khtml::InlineFlowBox::firstLeafChildAfterBox):
33440        (khtml::InlineFlowBox::lastLeafChildBeforeBox):
33441        (khtml::InlineFlowBox::selectionState):
33442        (khtml::RootInlineBox::fillLineSelectionGap):
33443        (khtml::RootInlineBox::setHasSelectedChildren):
33444        (khtml::RootInlineBox::selectionState):
33445        (khtml::RootInlineBox::firstSelectedBox):
33446        (khtml::RootInlineBox::lastSelectedBox):
33447        (khtml::RootInlineBox::selectionTop):
33448        (khtml::RootInlineBox::block):
33449        * khtml/rendering/render_line.h:
33450        (khtml::RootInlineBox::RootInlineBox):
33451        (khtml::RootInlineBox::hasSelectedChildren):
33452        (khtml::RootInlineBox::selectionHeight):
33453        * khtml/rendering/render_object.cpp:
33454        (RenderObject::selectionColor):
33455        * khtml/rendering/render_object.h:
33456        (khtml::RenderObject::):
33457        (khtml::RenderObject::selectionState):
33458        (khtml::RenderObject::setSelectionState):
33459        (khtml::RenderObject::selectionRect):
33460        (khtml::RenderObject::canBeSelectionLeaf):
33461        (khtml::RenderObject::hasSelectedChildren):
33462        (khtml::RenderObject::hasDirtySelectionState):
33463        (khtml::RenderObject::setHasDirtySelectionState):
33464        (khtml::RenderObject::shouldPaintSelectionGaps):
33465        (khtml::RenderObject::SelectionInfo::SelectionInfo):
33466        * khtml/rendering/render_replaced.cpp:
33467        (RenderReplaced::RenderReplaced):
33468        (RenderReplaced::shouldPaint):
33469        (RenderReplaced::selectionRect):
33470        (RenderReplaced::setSelectionState):
33471        (RenderReplaced::selectionColor):
33472        (RenderWidget::paint):
33473        (RenderWidget::setSelectionState):
33474        * khtml/rendering/render_replaced.h:
33475        (khtml::RenderReplaced::canBeSelectionLeaf):
33476        (khtml::RenderReplaced::selectionState):
33477        * khtml/rendering/render_text.cpp:
33478        (InlineTextBox::checkVerticalPoint):
33479        (InlineTextBox::isSelected):
33480        (InlineTextBox::selectionState):
33481        (InlineTextBox::selectionRect):
33482        (InlineTextBox::paintSelection):
33483        (InlineTextBox::paintMarkedTextBackground):
33484        (RenderText::paint):
33485        (RenderText::setSelectionState):
33486        (RenderText::selectionRect):
33487        * khtml/rendering/render_text.h:
33488        (khtml::RenderText::canBeSelectionLeaf):
33489        * kwq/KWQPainter.h:
33490        * kwq/KWQPainter.mm:
33491        (QPainter::drawHighlightForText):
33492        * kwq/KWQPtrDict.h:
33493        (QPtrDictIterator::toFirst):
33494        * kwq/KWQRect.mm:
33495        (QRect::unite):
33496        * kwq/WebCoreTextRenderer.h:
33497        * kwq/WebCoreTextRendererFactory.mm:
33498        (WebCoreInitializeEmptyTextGeometry):
33499
335002004-10-05  Ken Kocienda  <kocienda@apple.com>
33501
33502        Reviewed by Darin
33503        
33504        Use the new CSS properties I added with my previous check-in. Also makes
33505        some changes to caret positioning and drawing to make the proper editing
33506        end-of-line behavior work correctly.
33507
33508        * khtml/editing/selection.cpp:
33509        (khtml::Selection::layout): Caret drawing now takes affinity into account
33510        when deciding where to paint the caret (finally!).
33511        * khtml/editing/visible_position.cpp:
33512        (khtml::VisiblePosition::previousVisiblePosition): Move off Position::rendersInDifferentPosition
33513        to determine the result. Use a simpler test involving comparisons between
33514        downstream positions while iterating. This is cheaper to do and easier to understand.
33515        (khtml::VisiblePosition::nextVisiblePosition): Ditto.
33516        * khtml/rendering/bidi.cpp:
33517        (khtml::BidiIterator::current): Do not return non-breaking spaces for empty
33518        text renderers and for non-text renderers. Return a null Qchar instead. Returning
33519        non-breaking spaces was causing errors when the new -khtml-nbsp-mode was set to "space".
33520        (khtml::RenderBlock::computeHorizontalPositionsForLine): Shrink line boxes that 
33521        contain with more spaces than can fit on the end of a line.
33522        (khtml::RenderBlock::skipWhitespace): Factor this out from findNextLineBreak.
33523        (khtml::RenderBlock::findNextLineBreak): Use new skipWhitespace function. Add
33524        in code to check and use new CSS properties.
33525        * khtml/rendering/break_lines.cpp:
33526        (khtml::isBreakable): Consider a non-breaking space a breakable character based
33527        on setting of new -khtml-nbsp-mode property.
33528        * khtml/rendering/break_lines.h: Ditto.
33529        * khtml/rendering/render_block.h: Declare skipWhitespace function.
33530        * khtml/rendering/render_text.cpp: 
33531        (RenderText::caretRect): Do not draw the caret beyond the right edge of the
33532        window when in white-space normal mode.
33533
335342004-10-05  Ken Kocienda  <kocienda@apple.com>
33535
33536        Reviewed by Darin
33537
33538        Fix for these bugs:
33539        
33540        In this patch, I add two new CSS properties and their associated behavior.
33541        This is to support end-of-line and word-wrapping features that match the 
33542        conventions of text editors.
33543
33544        There are also some other small changes here which begin to lay the groundwork
33545        for using these new properties to bring about the desired editing behavior.
33546
33547        * khtml/css/cssparser.cpp:
33548        (CSSParser::parseValue): Add support for new CSS properties.
33549        * khtml/css/cssproperties.c: Generated file.
33550        * khtml/css/cssproperties.h: Ditto.
33551        * khtml/css/cssproperties.in: Add new properties.
33552        * khtml/css/cssstyleselector.cpp:
33553        (khtml::CSSStyleSelector::applyProperty): Add support for new CSS properties.
33554        * khtml/css/cssvalues.c: Generated file.
33555        * khtml/css/cssvalues.h: Ditto.
33556        * khtml/css/cssvalues.in:  Add support for new CSS properties.
33557        * khtml/editing/visible_position.cpp:
33558        (khtml::VisiblePosition::upstreamDeepEquivalent): Added new helper.
33559        * khtml/editing/visible_position.h:
33560        * khtml/rendering/render_box.cpp:
33561        (RenderBox::deleteLineBoxWrapper): Zero out inlineBoxWrapper.
33562        * khtml/rendering/render_replaced.cpp:
33563        (RenderWidget::detach): Zero out inlineBoxWrapper.
33564        * khtml/rendering/render_style.cpp:
33565        (StyleCSS3InheritedData):
33566        (StyleCSS3InheritedData::operator==): Add support for new CSS properties.
33567        (RenderStyle::diff): Ditto.
33568        * khtml/rendering/render_style.h:
33569        (khtml::RenderStyle::nbspMode): Ditto.
33570        (khtml::RenderStyle::khtmlLineBreak): Ditto.
33571        (khtml::RenderStyle::setNBSPMode): Ditto.
33572        (khtml::RenderStyle::setKHTMLLineBreak): Ditto.
33573        (khtml::RenderStyle::initialNBSPMode): Ditto.
33574        (khtml::RenderStyle::initialKHTMLLineBreak): Ditto.
33575
335762004-10-05  Darin Adler  <darin@apple.com>
33577
33578        Reviewed by John.
33579
33580        - fixed <rdar://problem/3673150> Pasting string from clipboard that is longer than input box will accept fails rather than truncating
33581
33582        * kwq/KWQTextField.mm:
33583        (-[KWQTextFieldFormatter isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription:]):
33584        Wrote a new version of this method that truncates incoming strings rather than rejecting them
33585        out of hand.
33586
335872004-10-04  Darin Adler  <darin@apple.com>
33588
33589        Reviewed by Maciej.
33590
33591        - fixed <rdar://problem/3826343> crash in KHTMLParser::setCurrent parsing document fragment (happens in Calendar widget)
33592
33593        * khtml/html/htmlparser.cpp:
33594        (KHTMLParser::KHTMLParser): Initialized currentIsReferenced to false (fixes bug).
33595        (KHTMLParser::reset): Use doc() to make code easier to read.
33596        (KHTMLParser::setCurrent): Ditto.
33597        (KHTMLParser::parseToken): Ditto.
33598        (KHTMLParser::insertNode): Ditto.
33599        (KHTMLParser::getElement): Ditto.
33600        (KHTMLParser::popOneBlock): Ditto.
33601
33602        - fixed <rdar://problem/3814237> REGRESSION (Mail): Copy/paste style does not set color in Mail compose window
33603
33604        * kwq/KWQKHTMLPart.h: Added fontAttributesForSelectionStart.
33605        * kwq/KWQKHTMLPart.mm:
33606        (KWQKHTMLPart::styleForSelectionStart): Factored out most of fontForSelection.
33607        (KWQKHTMLPart::fontAttributesForSelectionStart): Added.
33608        (KWQKHTMLPart::fontAttributesForSelectionStart): Added.
33609        (KWQKHTMLPart::registerCommandForUndo): Updated for name change (see below).
33610        (KWQKHTMLPart::registerCommandForRedo): Ditto.
33611
33612        * kwq/WebCoreBridge.h: Added fontAttributesForSelectionStart.
33613        * kwq/WebCoreBridge.mm:
33614        (-[WebCoreBridge undoEditing:]): Updated for name change (see below).
33615        (-[WebCoreBridge redoEditing:]): Ditto.
33616        (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:smartReplace:]): Got rid of named temporary
33617        EditCommandPtr variable to make things slightly more terse.
33618        (-[WebCoreBridge moveSelectionToDragCaret:smartMove:]): Ditto.
33619        (-[WebCoreBridge deleteSelectionWithSmartDelete:]): Ditto.
33620        (-[WebCoreBridge fontAttributesForSelectionStart]): Added.
33621
33622        - fix compile on Panther and other cleanup
33623
33624        * khtml/khtml_part.cpp: Removed unneeded include.
33625        * kwq/KWQEditCommand.h: Got rid of use of "impl" when referring to EditCommand pointers.
33626        * kwq/KWQEditCommand.mm: Added include so we compile on Panther.
33627        (-[KWQEditCommand initWithEditCommand:]): Changed name.
33628        (-[KWQEditCommand dealloc]): Updated for m_impl change to m_command.
33629        (-[KWQEditCommand finalize]): Ditto.
33630        (+[KWQEditCommand commandWithEditCommand:]): Changed name.
33631        (-[KWQEditCommand command]): Changed name.
33632
336332004-10-04  Darin Adler  <darin@apple.com>
33634
33635        Reviewed by John.
33636
33637        - did a more-robust version of the fix I just landed
33638
33639        * khtml/html/htmlparser.h: Added currentIsReferenced boolean.
33640        * khtml/html/htmlparser.cpp:
33641        (KHTMLParser::KHTMLParser): Initializes currentIsReferenced.
33642        (KHTMLParser::setCurrent): Changed to respect and set currentIsReferenced.
33643
336442004-10-04  Darin Adler  <darin@apple.com>
33645
33646        Reviewed by John.
33647
33648        - fixed <rdar://problem/3824393> REGRESSION (165-TOT): Crash in KHTMLParser::popOneBlock closing window (bose.com)
33649
33650        * khtml/html/htmlparser.cpp:
33651        (KHTMLParser::~KHTMLParser): Move call to setCurrent(0) after the call to freeBlock, since freeBlock doesn't
33652        work well when current is 0, and there's no reason we need to reset the current block first.
33653        (KHTMLParser::setCurrent): Don't ever hold a reference to the document. This prevents a situation where there
33654        would be a reference cycle. In the test case from the bug above, this cycle actually happened and resulted
33655        in a double-delete of the document, tokenizer, and parser.
33656
336572004-10-04  Darin Adler  <darin@apple.com>
33658
33659        Reviewed by Maciej.
33660
33661        - fixed <rdar://problem/3825429> onclick handler called when mouse down on another element (affects Dashboard Movies widget, test case enclosed)
33662
33663        * khtml/khtmlview.cpp:
33664        (KHTMLViewPrivate::KHTMLViewPrivate): Initialize the click node to 0.
33665        (KHTMLViewPrivate::~KHTMLViewPrivate): Deref the click node.
33666        (KHTMLViewPrivate::reset): Clear the click node.
33667        (KHTMLView::viewportMousePressEvent): Call invalidateClick when we pass the event to a subframe to
33668        reduce the chance that we'll hold on to an old click node for a long time. Set the click node to
33669        the node we we are clicking on.
33670        (KHTMLView::viewportMouseDoubleClickEvent): Only send a click even if the node is the same one from
33671        the original click. Call invalidateClick when done to reduce the chance that we'll hold on to an
33672        old click node for a long time.
33673        (KHTMLView::invalidateClick): Clear the click node.
33674        (KHTMLView::viewportMouseReleaseEvent): Only send a click even if the node is the same one from
33675        the original click. Call invalidateClick when done to reduce the chance that we'll hold on to an
33676        old click node for a long time.
33677        (KHTMLView::keyPressEvent): Remove code that sets the originalNode field, which is never used.
33678
336792004-10-04  Ken Kocienda  <kocienda@apple.com>
33680
33681        Reviewed by Hyatt
33682
33683        Fix for this bug:
33684        
33685        <rdar://problem/3825289> REGRESSION (Mail): Crash in fontForSelection in empty window
33686
33687        * khtml/editing/visible_position.cpp:
33688        (khtml::VisiblePosition::previousPosition): Switch to node iteration instead "leaf"
33689        iteration. I have been wanting to make this change for a long time, but couldn't
33690        since other code relied on the leaf behavior. That is no longer true. Plus, the
33691        bug fix requires the new behavior.
33692        (khtml::VisiblePosition::nextPosition): Ditto.
33693        (khtml::VisiblePosition::isCandidate): Empty blocks needed a height to be a candidate,
33694        but we make a special case for the body element. This fixes the bug.
33695
336962004-10-04  Darin Adler  <darin@apple.com>
33697
33698        Reviewed by Ken.
33699
33700        - fixed <rdar://problem/3800667> REGRESSION (Mail): double-clicking multiple spaces only selects two spaces
33701
33702        * kwq/KWQTextUtilities.mm: (KWQFindWordBoundary): Moved here from the .cpp file. Changed to use the
33703        doubleClickAtIndex: method from NSAttributedString rather than using Unicode Utilities.
33704        * kwq/KWQTextUtilities.cpp: Removed.
33705        * WebCore.pbproj/project.pbxproj: Removed KWQTextUtilities.cpp.
33706
33707        - fixed a problem that would show up using HTML editing under garbage collection
33708
33709        * kwq/KWQEditCommand.mm: (-[KWQEditCommand finalize]): Fixed a [super dealloc] that should have been a
33710        [super finalize].
33711
33712        - another small change
33713
33714        * khtml/editing/visible_units.cpp: (khtml::nextWordBoundary): Tweaked a comment.
33715
337162004-10-01  Darin Adler  <darin@apple.com>
33717
33718        Reviewed by Ken (or arguably done by Ken, reviewed by Darin).
33719
33720        - fixed <rdar://problem/3823828> REGRESSION (Mail): Clicking past end of any line puts insertion point at beginning of next line
33721
33722        * khtml/editing/visible_position.cpp: (khtml::VisiblePosition::VisiblePosition):
33723        Check for an offset of 0 and a <br> and use UPSTREAM affinity in that case.
33724        This is a short term fix for something that needs a better longer-term fix.
33725
33726        - fixed <rdar://problem/3823816> REGRESSION (Mail): double-clicking first word on line also selects previous empty line
33727
33728        * khtml/editing/visible_units.cpp: (khtml::previousWordBoundary): Added a special
33729        case for <br>. While I'm not sure why this regressed, I'm sure this fix is good.
33730
337312004-10-01  Darin Adler  <darin@apple.com>
33732
33733        Reviewed by John.
33734
33735        - fixed <rdar://problem/3782117> CrashTracer: ..722 crashes at com.apple.WebCore: DOM::HTMLBodyElementImpl::insertedIntoDocument + 0x2c (AOL website)
33736
33737        * khtml/html/html_baseimpl.cpp:
33738        (HTMLBodyElementImpl::insertedIntoDocument): Check for nil document case.
33739        (HTMLFrameElementImpl::isURLAllowed): Ditto.
33740        (HTMLFrameElementImpl::openURL): Ditto.
33741
337422004-10-01  Darin Adler  <darin@apple.com>
33743
33744        Reviewed by Maciej.
33745
33746        - fixed <rdar://problem/3822218> REGRESSION (164-165): images don't update on rollover on directv.com page
33747
33748        I introduced a major regression where various JavaScript window properties would not be found when I
33749        fixed bug 3809600.
33750
33751        * khtml/ecma/kjs_window.h: Added hasProperty.
33752        * khtml/ecma/kjs_window.cpp: (Window::hasProperty): Return true in all the cases where get returns something.
33753
337542004-09-30  Darin Adler  <darin@apple.com>
33755
33756        Reviewed by Maciej.
33757
33758        - fixed <rdar://problem/3461499> JavaScript function document.open() is buggy with 2nd argument "replace"
33759
33760        Experiments with Firefox indicate that document.open() should not be treated as window.open() unless there
33761        are more than two parameters. Also, Firefox does not implement the "replace" behavior, so we don't have
33762        to worry about it either.
33763
33764        * khtml/ecma/kjs_html.cpp: (KJS::HTMLDocFunction::tryCall): Only forward to window if there are more than
33765        two parameters, rather than if there are more than one.
33766
33767        - fixed <rdar://problem/3672933> oninput is firing at page load time for <input type=range>
33768
33769        * kwq/KWQSlider.mm: (QSlider::setValue): Don't emit a signal here. This follows the usual pattern, where
33770        a signal is only emitted for changes that are not explicitly requested by the caller.
33771
33772        - fixed <rdar://problem/3821167> leaks of something allocated by recalcStyle after loading altavista page from cvs-base
33773
33774        * khtml/xml/dom_docimpl.cpp: (DocumentImpl::recalcStyle): Ref and deref the style we allocate so it's
33775        not left floating if setStyle decides not to ref it.
33776
33777        - fixed <rdar://problem/3821172> leak of HTML attribute string after loading the ESPN page from cvs-base
33778
33779        * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::parseHTMLAttribute): Use the DOMString version of
33780        the lower() operation so we don't end up leaving a DOMStringImpl * floating if AtomicString decides not
33781        to ref it.
33782
337832004-09-30  Richard Williamson   <rjw@apple.com>
33784
33785	Fixed <rdar://problem/3822330> REGRESSION: crash on launch when homepage is set to about:blank
33786	
33787	Added nil check.
33788	
33789        * kwq/KWQKHTMLPart.mm:
33790        (KWQKHTMLPart::setDisplaysWithFocusAttributes):
33791
337922004-09-30  Chris Blumenberg  <cblu@apple.com>
33793	
33794	Fixed: <rdar://problem/3792822> Safari is calling the Cocoa QuickTime plugin twice for the OBJECT and EMBED tags
33795
33796        Reviewed by hyatt.
33797
33798        * khtml/html/html_objectimpl.cpp:
33799        (HTMLObjectElementImpl::attach): call dispatchHTMLEvent after updateWidget instead of every time this method is called
33800        (HTMLObjectElementImpl::recalcStyle): ditto
33801
338022004-09-30  Darin Adler  <darin@apple.com>
33803
33804        - rolled out bad image change that caused performance regression
33805
33806        * khtml/rendering/render_image.cpp: (RenderImage::setPixmap):
33807        Don't reference the new image before doing the assignment.
33808        This forced an unwanted.
33809
338102004-09-30  Ken Kocienda  <kocienda@apple.com>
33811
33812        Reviewed by me, coded by Darin
33813
33814        - fixed <rdar://problem/3818305> REGRESSION (Mail): Shift + page up has no effect; should modify selection
33815
33816        * khtml/editing/selection.cpp: (khtml::Selection::modify): Fix problem where vertical distance
33817        was used as a distance threshold, but was a negative number. Now make it positive at the start
33818        of the function (and make a couple related changes).
33819
338202004-09-29  Richard Williamson   <rjw@apple.com>
33821
33822	Fixed <rdar://problem/3779998> bringing window to front or sending to back does not send focus/blur events to JavaScript window object
33823
33824	The fix has two parts, 1) make onblur and onfocus work for windows, 
33825        and 2), allow the dashboard to override WebKit's special key/non-key
33826        behaviors.
33827
33828        Reviewed by Chris.
33829
33830        * kwq/KWQKHTMLPart.mm:
33831        (KWQKHTMLPart::setDisplaysWithFocusAttributes):
33832
338332004-09-29  Ken Kocienda  <kocienda@apple.com>
33834
33835        Reviewed by Hyatt
33836        
33837        Fix for this bug:
33838        
33839        <rdar://problem/3705894> REGRESSION (Mail): if a single word is wider than the window, 
33840        it doesn't break and just runs off the right side
33841
33842        * khtml/css/css_computedstyle.cpp:
33843        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Add support for CSS_PROP_WORD_WRAP.
33844        * khtml/css/cssparser.cpp:
33845        (CSSParser::parseValue): Ditto.
33846        * khtml/css/cssproperties.c: Generated file.
33847        * khtml/css/cssproperties.h: Ditto.
33848        * khtml/css/cssproperties.in: Add word-wrap property.
33849        * khtml/css/cssstyleselector.cpp:
33850        (khtml::CSSStyleSelector::applyProperty): Add support for CSS_PROP_WORD_WRAP.
33851        * khtml/css/cssvalues.c: Generated file.
33852        * khtml/css/cssvalues.h: Ditto.
33853        * khtml/css/cssvalues.in: Add break-word value.
33854        * khtml/rendering/bidi.cpp:
33855        (khtml::RenderBlock::findNextLineBreak): Add code to implement new word wrapping feature.
33856        * khtml/rendering/render_style.cpp:
33857        (StyleCSS3InheritedData): Add support for new wordWrap property.
33858        (StyleCSS3InheritedData::operator==): Ditto.
33859        (RenderStyle::diff): Ditto.
33860        * khtml/rendering/render_style.h:
33861        (khtml::RenderStyle::wordWrap): Ditto.
33862        (khtml::RenderStyle::setWordWrap): Ditto.
33863        (khtml::RenderStyle::initialWordWrap): Ditto.
33864
338652004-09-29  Maciej Stachowiak  <mjs@apple.com>
33866
33867        Reviewed by John.
33868
33869	- consolidated OS version checks into prefix header
33870
33871        * WebCorePrefix.h:
33872        * khtml/rendering/render_canvasimage.cpp:
33873        * kwq/KWQAccObject.mm:
33874        (-[KWQAccObject roleDescription]):
33875        (-[KWQAccObject accessibilityActionDescription:]):
33876        * kwq/KWQComboBox.mm:
33877        (QComboBox::QComboBox):
33878        * kwq/KWQFoundationExtras.h:
33879
338802004-09-29  David Hyatt  <hyatt@apple.com>
33881
33882	Make sure <br>s always get line boxes.  Also prevent the creation of RenderTexts for whitespace normal/nowrap nodes
33883	that follow <br>s.
33884	
33885        Reviewed by kocienda
33886
33887        * khtml/editing/visible_position.cpp:
33888        (khtml::VisiblePosition::isCandidate):
33889        * khtml/rendering/render_br.cpp:
33890        (RenderBR::RenderBR):
33891        (RenderBR::createInlineBox):
33892        (RenderBR::baselinePosition):
33893        (RenderBR::lineHeight):
33894        * khtml/rendering/render_br.h:
33895        * khtml/rendering/render_line.cpp:
33896        (khtml::InlineFlowBox::placeBoxesVertically):
33897        * khtml/rendering/render_line.h:
33898        (khtml::InlineBox::isText):
33899        (khtml::InlineFlowBox::addToLine):
33900        * khtml/rendering/render_text.cpp:
33901        (RenderText::detach):
33902        * khtml/rendering/render_text.h:
33903        (khtml::InlineTextBox:::InlineRunBox):
33904        (khtml::InlineTextBox::isInlineTextBox):
33905        (khtml::InlineTextBox::isText):
33906        (khtml::InlineTextBox::setIsText):
33907        * khtml/xml/dom_textimpl.cpp:
33908        (TextImpl::rendererIsNeeded):
33909        * kwq/KWQRenderTreeDebug.cpp:
33910        (operator<<):
33911
339122004-09-29  Ken Kocienda  <kocienda@apple.com>
33913
33914        Reviewed by John
33915
33916        Fix for this bug:
33917        
33918        <rdar://problem/3815895> exception inside fontForSelection causes Mail to abort when selection hits bottom
33919
33920        * khtml/editing/selection.cpp:
33921        (khtml::Selection::toRange): Use RangeImpl calls to detect exceptions when creating a Range
33922        from a Selection. Return an empty Range when there is an exception.
33923
33924        Fix for this bug:
33925        
33926        <rdar://problem/3817268> REGRESSION (Mail): Window does not scroll when selecting out of 
33927        visible area of view with arrow keys
33928
33929        * khtml/editing/selection.cpp: Did some name changing. m_needsCaretLayout -> m_needsLayout.
33930        Added m_expectedVisibleRect which supplies the right rectangle to update when scrolling.
33931        (khtml::Selection::Selection): m_needsCaretLayout -> m_needsLayout name change.
33932        (khtml::Selection::init): Handle m_expectedVisibleRect in initialization.
33933        (khtml::Selection::operator=): Handle m_expectedVisibleRect in assignment.
33934        (khtml::Selection::setNeedsLayout): m_needsCaretLayout -> m_needsLayout name change.
33935        (khtml::Selection::layout): Changed name from layoutCaret, since m_expectedVisibleRect
33936        is also calculated here.
33937        (khtml::Selection::caretRect): m_needsCaretLayout -> m_needsLayout name change.
33938        (khtml::Selection::expectedVisibleRect): New. Returns m_expectedVisibleRect, doing a 
33939        layout if needed.
33940        (khtml::Selection::needsCaretRepaint): m_needsCaretLayout -> m_needsLayout name change.
33941        (khtml::Selection::paintCaret): Ditto.
33942        (khtml::Selection::validate): Ditto.
33943        * khtml/editing/selection.h: Add m_expectedVisibleRect member variable and 
33944        expectedVisibleRect accessor.
33945        * kwq/WebCoreBridge.h: Change name of ensureCaretVisible to ensureSelectionVisible, since
33946        this is not only about making the caret visible anymore. Now it can reveal the varying
33947        end of the selection when scrolling with arrow keys.
33948        * kwq/WebCoreBridge.mm:
33949        (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): ensureCaretVisible to 
33950        ensureSelectionVisible name change.
33951        (-[WebCoreBridge alterCurrentSelection:verticalDistance:]): Ditto
33952        (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:smartReplace:]): Ditto
33953        (-[WebCoreBridge insertNewline]): Ditto
33954        (-[WebCoreBridge insertText:selectInsertedText:]): Ditto
33955        (-[WebCoreBridge deleteKeyPressed]): Ditto
33956        (-[WebCoreBridge ensureSelectionVisible]): Ditto
33957
339582004-09-29  Ken Kocienda  <kocienda@apple.com>
33959
33960        Reviewed by Hyatt
33961        
33962        Fix for this bug:
33963        
33964        <rdar://problem/3818296> REGRESSION (Mail): centerSelectionInVisibleArea does not work correctly
33965        
33966        * kwq/KWQKHTMLPart.h:
33967        * kwq/KWQKHTMLPart.mm:
33968        (KWQKHTMLPart::centerSelectionInVisibleArea): New function. Handles both caret
33969        and range selections correctly.
33970        * kwq/KWQNSViewExtras.h: Add forceCentering boolean to some methods in this file.
33971        * kwq/KWQNSViewExtras.m: Ditto. This addition has been done since the AppKit 
33972        method we use to do the centering, -[NSView scrollRectToVisible:],  does not alter 
33973        the view if the rectangle passed to it is already in view. When forceCentering is
33974        true, extra math is done to make scrollRectToVisible center the rectangle we want.
33975        (-[NSView _KWQ_scrollFrameToVisible]): Pass NO for forceCentering in call through to 
33976        _KWQ_scrollRectToVisible:forceCentering:
33977        (-[NSView _KWQ_scrollRectToVisible:forceCentering:]): Add forceCentering argument.
33978        (-[NSView _KWQ_scrollRectToVisible:inView:forceCentering:]): Ditto.
33979        (-[NSClipView _KWQ_scrollRectToVisible:inView:forceCentering:]): Ditto. Do extra
33980        math to implement the forceCentering effect.
33981        * kwq/KWQScrollView.h: Add forceCentering default argument to ensureRectVisibleCentered.
33982        * kwq/KWQScrollView.mm:
33983        (QScrollView::ensureRectVisibleCentered): Ditto.
33984        * kwq/WebCoreBridge.h:
33985        * kwq/WebCoreBridge.mm:
33986        (-[WebCoreBridge centerSelectionInVisibleArea]): New function. Call through to KWQKHTMLPart. 
33987
339882004-09-28  Chris Blumenberg  <cblu@apple.com>
33989
33990	Fixed: WebArchives begin with "<#document/>"
33991
33992        Reviewed by hyatt.
33993
33994        * khtml/xml/dom_nodeimpl.cpp:
33995        (NodeImpl::startMarkup): don't return markup if this is a document node, forgot this when factoring this method out from toHTML
33996
339972004-09-28  Chris Blumenberg  <cblu@apple.com>
33998
33999	Removed range parameter from recursive_toHTML and friends since that code path is no longer used.
34000	
34001        Reviewed by mjs.
34002
34003        * khtml/xml/dom2_rangeimpl.cpp:
34004        (DOM::RangeImpl::toHTML):
34005        * khtml/xml/dom_nodeimpl.cpp:
34006        (NodeImpl::recursive_toString):
34007        (NodeImpl::recursive_toHTML):
34008        * khtml/xml/dom_nodeimpl.h:
34009        * kwq/WebCoreBridge.mm:
34010        (-[WebCoreBridge markupStringFromNode:nodes:]):
34011
340122004-09-28  Darin Adler  <darin@apple.com>
34013
34014        Reviewed by Ken.
34015
34016        - improve spell checking so it doesn't unmark and remark as you move the cursor with the arrow
34017
34018        * khtml/editing/htmlediting.h: Remove obsolete markMisspellingsInSelection private function.
34019        * khtml/editing/htmlediting.cpp:
34020        (khtml::EditCommand::EditCommand): Blow away the selection when starting an edit command.
34021        (khtml::EditCommand::apply): Remove code to mark misspellings because that's now done as part
34022        of blowing away the selection.
34023        (khtml::EditCommand::unapply): Blow away the selection instead of marking misspellings.
34024        (khtml::EditCommand::reapply): Ditto.
34025        (khtml::ReplaceSelectionCommand::doApply): Removed incorrect code that does spell checking
34026        on inserted text; this doesn't match NSText behavior.
34027        (khtml::TypingCommand::markMisspellingsAfterTyping): Use markMisspellingsInAdjacentWords
34028        function for greater clarity on what this actually does.
34029
34030        * khtml/khtml_part.h: Replaced setSelection's "unmarkOldSelection" boolean parameter with a
34031        "keepTypingStyle" boolean parameter. Removed notifySelectionChanged.
34032        * khtml/khtml_part.cpp:
34033        (KHTMLPart::setSelection): Replaced the "unmarkOldSelection" boolean with a new "keepTypingStyle"
34034        boolean. This is a step on the way to simplifying how this works. Moved the code from the
34035        notifySelectionChanged function here, since there was no clear line between the two functions.
34036        (KHTMLPart::clearSelection): Call setSelection rather that having special case code here for
34037        the case of an empty selection.
34038        (KHTMLPart::appliedEditing): Remove the explicit "false" for "unmarkOldSelection".
34039        (KHTMLPart::unappliedEditing): Ditto.
34040        (KHTMLPart::reappliedEditing): Ditto.
34041
34042        * kwq/KWQKHTMLPart.h: Replaced markMisspellingsInSelection and updateSpellChecking with
34043        markMisspellings and markMisspellingsInAdjacentWords. Added parameters to respondToChangedSelection.
34044        * kwq/KWQKHTMLPart.mm:
34045        (KWQKHTMLPart::markMisspellingsInAdjacentWords): Added.
34046        (KWQKHTMLPart::markMisspellings): New name for markMisspellingsInSelection. Simplified logic a
34047        bit and made it the caller's responsibility to expand the selection passed in to word boundaries.
34048        (KWQKHTMLPart::respondToChangedSelection): Added parameter that identifies the old selection,
34049        and changed logic so it won't mark misspellings in a word if the selection still starts in that word.
34050
34051        - implemented empty-cells property in computed style
34052
34053        * khtml/css/css_computedstyle.cpp: (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
34054        Added code for CSS_PROP_EMPTY_CELLS. I think the HTML converter in AppKit uses this.
34055
340562004-09-28  Chris Blumenberg  <cblu@apple.com>
34057
34058	Fixed n-squared issues with appending to KWQValueListImpl. This fixes the hang in 3794799.
34059
34060        Fixed by Darin, reviewed by me.
34061
34062        * khtml/xml/dom2_rangeimpl.cpp:
34063        (DOM::RangeImpl::toHTML): tweaks
34064        * kwq/KWQValueListImpl.mm:
34065        (KWQValueListImpl::KWQValueListPrivate::KWQValueListPrivate):
34066        (KWQValueListImpl::KWQValueListPrivate::copyList):
34067        (KWQValueListImpl::clear):
34068        (KWQValueListImpl::appendNode):
34069        (KWQValueListImpl::prependNode):
34070        (KWQValueListImpl::removeEqualNodes):
34071        (KWQValueListImpl::containsEqualNodes):
34072        (KWQValueListImpl::removeIterator):
34073        (KWQValueListImpl::lastNode):
34074        * kwq/WebCoreBridge.mm:
34075        (-[WebCoreBridge nodesFromList:]): use iterator, not at()
34076
340772004-09-28  Richard Williamson   <rjw@apple.com>
34078
34079	More dashboard region changes for John.
34080
34081        <rdar://problem/3817421> add getter for dashboard regions (debugging)
34082        
34083        <rdar://problem/3817417> NSScrollView need autoregions for dashboard
34084        
34085        <rdar://problem/3817388> should have short form form control regions
34086        
34087        <rdar://problem/3817477> visibility does not work with dashboard control regions
34088
34089        Reviewed by Hyatt.
34090
34091        * WebCore-combined.exp:
34092        * WebCore.exp:
34093        * khtml/css/cssparser.cpp:
34094        (skipCommaInDashboardRegion):
34095        (CSSParser::parseDashboardRegions):
34096        * khtml/khtmlview.cpp:
34097        (KHTMLView::updateDashboardRegions):
34098        * khtml/rendering/render_object.cpp:
34099        (RenderObject::setStyle):
34100        (RenderObject::addDashboardRegions):
34101        * khtml/xml/dom_docimpl.cpp:
34102        (DocumentImpl::DocumentImpl):
34103        (DocumentImpl::setDashboardRegions):
34104        * khtml/xml/dom_docimpl.h:
34105        (DOM::DocumentImpl::setDashboardRegionsDirty):
34106        (DOM::DocumentImpl::dashboardRegionsDirty):
34107        * kwq/KWQKHTMLPart.h:
34108        * kwq/KWQKHTMLPart.mm:
34109        (KWQKHTMLPart::paint):
34110        (KWQKHTMLPart::dashboardRegionsDictionary):
34111        (KWQKHTMLPart::dashboardRegionsChanged):
34112        * kwq/WebCoreBridge.h:
34113        * kwq/WebCoreBridge.mm:
34114        (-[WebCoreBridge dashboardRegions]):
34115        * kwq/WebDashboardRegion.h:
34116        * kwq/WebDashboardRegion.m:
34117        (-[WebDashboardRegion description]):
34118
341192004-09-28  John Sullivan  <sullivan@apple.com>
34120
34121        Reviewed by Chris.
34122
34123        - fixed <rdar://problem/3818558> REGRESSION: "Installed Plug-ins" is blank 
34124        because of <script type="application/x-javascript">
34125
34126        * khtml/html/htmltokenizer.cpp:
34127        (khtml::HTMLTokenizer::parseTag):
34128        add "application/x-javascript" to the list of legal scripting types. Mozilla
34129        accepts this, but WinIE doesn't.
34130        
34131        * layout-tests/fast/tokenizer/004.html:
34132        updated layout test to test some application/xxxx types
34133
341342004-09-27  David Hyatt  <hyatt@apple.com>
34135
34136	Reworked lists to work well with RTL text.  Specifically the following bugs have been fixed:
34137
34138	(1) All bullets use the same offset constant now (a padding of 7 pixels).  Before, images used 5 and others used 7.
34139	(2) Line height now works properly, so that list items with no content aren't squished (and missing the line descent).
34140	(3) Punctuation now works correctly with inside and outside style ordered lists in RTL.
34141	(4) RTL lists now properly apply padding and margin to the right side rather than the left.  This was done by adding
34142	-khtml-margin-start and -khtml-padding-start properties that are just mapped to left/right based off the direction.
34143	
34144        Reviewed by darin
34145
34146        * khtml/css/cssparser.cpp:
34147        (CSSParser::parseValue):
34148        * khtml/css/cssproperties.c:
34149        (hash_prop):
34150        (findProp):
34151        * khtml/css/cssproperties.h:
34152        * khtml/css/cssproperties.in:
34153        * khtml/css/cssstyleselector.cpp:
34154        (khtml::CSSStyleSelector::applyDeclarations):
34155        (khtml::CSSStyleSelector::applyProperty):
34156        * khtml/css/html4.css:
34157        * khtml/rendering/bidi.cpp:
34158        (khtml::BidiIterator::direction):
34159        * khtml/rendering/render_list.cpp:
34160        (RenderListItem::getAbsoluteRepaintRect):
34161        (RenderListMarker::paint):
34162        (RenderListMarker::calcMinMaxWidth):
34163        (RenderListMarker::lineHeight):
34164        (RenderListMarker::baselinePosition):
34165
341662004-09-28  Ken Kocienda  <kocienda@apple.com>
34167
34168        Reviewed by Darin
34169        
34170        Mark the VisiblePosition taking (Position &, EAffinity=DOWNSTREAM) explicit. Recently, when I added
34171        the EAffinity argument, I left this constructor implicit. Darin pointed out to me that this is
34172        undesirable since implicit use of the the constructor involved making the affinity choice, something
34173        which should be done explicitly.
34174
34175        * khtml/editing/selection.cpp:
34176        (khtml::Selection::modifyExtendingRightForward): Make explicit use of constructor mentioned above.
34177        (khtml::Selection::modifyMovingRightForward): Ditto.
34178        (khtml::Selection::modifyExtendingLeftBackward): Ditto.
34179        (khtml::Selection::modifyMovingLeftBackward): Ditto.
34180        (khtml::Selection::modify): Ditto.
34181        (khtml::Selection::validate): Ditto.
34182        * khtml/editing/visible_position.h: Make constructor taking (Position &, EAffinity) explicit.
34183        * khtml/editing/visible_units.cpp: Ditto.
34184        (khtml::previousWordBoundary): Make explicit use of constructor mentioned above.
34185        (khtml::nextWordBoundary): Ditto.
34186        (khtml::previousLinePosition): Ditto.
34187        (khtml::nextLinePosition): Ditto.
34188        * kwq/KWQKHTMLPart.mm: Ditto.
34189        (KWQKHTMLPart::findString): Ditto.
34190        (KWQKHTMLPart::advanceToNextMisspelling): Ditto.
34191        (KWQKHTMLPart::markMisspellingsInSelection): Ditto.
34192        (KWQKHTMLPart::updateSpellChecking): Ditto.
34193
341942004-09-28  Darin Adler  <darin@apple.com>
34195
34196        Reviewed by John.
34197
34198        - fixed a storage leak discovered by code inspection
34199
34200        * khtml/html/htmlparser.cpp: (KHTMLParser::~KHTMLParser): Call setCurrent(0) to deref
34201        the parser's current node in the rare case where it still has one.
34202
342032004-09-27  David Hyatt  <hyatt@apple.com>
34204
34205	Don't allow nested headers when only inlines are in between them.  Fixes a hang related to pathological nesting
34206	on magicmethodsonline.com.
34207	
34208        Reviewed by darin
34209
34210        * khtml/html/htmlparser.cpp:
34211        (KHTMLParser::parseToken):
34212        (KHTMLParser::processCloseTag):
34213        (KHTMLParser::isHeaderTag):
34214        (KHTMLParser::popNestedHeaderTag):
34215        * khtml/html/htmlparser.h:
34216
342172004-09-27  Kevin Decker  <kdecker@apple.com>
34218
34219        Reviewed by John.
34220
34221        * khtml/css/css_base.cpp:
34222        (CSSSelector::selectorText): changed another ATTR_CLASS case to properly return class selector names. 
34223
342242004-09-27  David Hyatt  <hyatt@apple.com>
34225
34226	Fix style sharing so that it doesn't share when it shouldn't.  Partially fixes 3671516, table cells don't update
34227	their color on macosx.apple.com.
34228
34229	Fix 3521639, iframe mispositioned on bidi page.  Make sure that when the width of a line exceeds the available line
34230	width that the spillage out of the block is determined by the direction of the block and not by the text-align value.
34231
34232	Partial fix for 3762962, make sure the image cells with specified widths but percentage heights don't just get a minwidth
34233	of 0.
34234
34235	Fix for 3533878, framesets that use percentages that add up to a value > 100% should normalize those percentages.
34236	
34237        Reviewed by john
34238
34239        * khtml/css/cssstyleselector.cpp:
34240        (khtml::CSSStyleSelector::locateCousinList):
34241        (khtml::CSSStyleSelector::elementsCanShareStyle):
34242        (khtml::CSSStyleSelector::locateSharedStyle):
34243        * khtml/css/cssstyleselector.h:
34244        * khtml/html/html_elementimpl.h:
34245        (DOM::HTMLNamedAttrMapImpl::hasMappedAttributes):
34246        (DOM::HTMLElementImpl::inlineStyleDecl):
34247        * khtml/rendering/bidi.cpp:
34248        (khtml::RenderBlock::computeHorizontalPositionsForLine):
34249        * khtml/rendering/render_frames.cpp:
34250        (RenderFrameSet::layout):
34251        * khtml/rendering/render_replaced.cpp:
34252        (RenderReplaced::calcMinMaxWidth):
34253        * khtml/xml/dom_elementimpl.h:
34254        (DOM::ElementImpl::inlineStyleDecl):
34255        (DOM::ElementImpl::hasMappedAttributes):
34256
342572004-09-27  Ken Kocienda  <kocienda@apple.com>
34258
34259        Reviewed by John
34260
34261        Removed closestRenderedPosition function from Position class and gave this work
34262        to VisiblePosition instead. However, in order to make the transfer possible,
34263        VisiblePosition needed upstream and downstream affinities added to its
34264        constructors. Also moved the EAffinity enum into its own file. Also moved it
34265        to the khtml namespace.
34266
34267        Updated several functions which used closestRenderedPosition to use VisiblePosition
34268        instead.
34269        
34270        Also deleted Position::equivalentShallowPosition. This was unused.
34271
34272        * ForwardingHeaders/editing/text_affinity.h: Added.
34273        * ForwardingHeaders/editing/visible_position.h: Added.
34274        * WebCore.pbproj/project.pbxproj: Added new files.
34275        * khtml/editing/selection.cpp:
34276        (khtml::Selection::validate): Use VisiblePosition instead of closestRenderedPosition.
34277        * khtml/editing/selection.h:
34278        * khtml/editing/text_affinity.h: Added.
34279        * khtml/editing/visible_position.cpp:
34280        (khtml::VisiblePosition::VisiblePosition):
34281        (khtml::VisiblePosition::initUpstream): New helper for finding upstream visible position.
34282        (khtml::VisiblePosition::initDownstream): Was old init function that unconditionally did
34283        downstream checks for visible position. Renamed to describe this more clearly.
34284        * khtml/editing/visible_position.h:
34285        * khtml/editing/visible_units.cpp:
34286        (khtml::previousWordBoundary): Use VisiblePosition instead of closestRenderedPosition.
34287        (khtml::nextWordBoundary): Use VisiblePosition instead of closestRenderedPosition.
34288        * khtml/xml/dom_docimpl.cpp:
34289        (DocumentImpl::updateSelection): Use VisiblePosition instead of closestRenderedPosition.
34290        * khtml/xml/dom_position.cpp:
34291        (DOM::Position::closestRenderedPosition): Removed.
34292        * khtml/xml/dom_position.h: Removed two functions mentioned above.
34293        * kwq/KWQKHTMLPart.mm:
34294        (KWQKHTMLPart::fontForSelection) Use VisiblePosition instead of closestRenderedPosition.:
34295        * kwq/WebCoreBridge.mm:
34296        (-[WebCoreBridge setSelectedDOMRange:affinity:]): Use VisiblePosition instead of closestRenderedPosition.
34297        * layout-tests/editing/deleting/delete-block-merge-contents-012-expected.txt: Updated expected results.
34298        * layout-tests/editing/deleting/delete-block-merge-contents-017-expected.txt: Ditto.
34299        * layout-tests/editing/deleting/delete-contiguous-ws-001-expected.txt: Ditto.
34300        * layout-tests/editing/selection/move-by-character-004-expected.txt: Ditto.
34301
343022004-09-27  Ken Kocienda  <kocienda@apple.com>
34303
34304        Reviewed by Darin and Maciej
34305
34306        Removed EditCommand smart pointer wrappers from htmlediting.cpp/.h, save for the one
34307        at the root of the hierarchy, and this one has been renamed EditCommandPtr. Renamed
34308        each of the XXXCommandImpl classes, removing the Impl suffix from each, and rolled
34309        these into the htmlediting.cpp/.h files. The htmlediting_impl.cpp/.h files have
34310        been emptied and are being removed.
34311
34312        For the remainder of files, perform the mechanical changes necessary to make everything
34313        compile and run as before.
34314
34315        * WebCore.pbproj/project.pbxproj
34316        * khtml/editing/htmlediting.cpp
34317        * khtml/editing/htmlediting.h
34318        * khtml/editing/htmlediting_impl.cpp: Removed.
34319        * khtml/editing/htmlediting_impl.h: Removed.
34320        * khtml/editing/jsediting.cpp
34321        * khtml/khtml_part.cpp
34322        (KHTMLPart::openURL)
34323        (KHTMLPart::lastEditCommand)
34324        (KHTMLPart::appliedEditing)
34325        (KHTMLPart::unappliedEditing)
34326        (KHTMLPart::reappliedEditing)
34327        (KHTMLPart::applyStyle):
34328        * khtml/khtml_part.h
34329        * khtml/khtmlpart_p.h
34330        * kwq/KWQEditCommand.h
34331        * kwq/KWQEditCommand.mm
34332        (-[KWQEditCommand initWithEditCommandImpl:])
34333        (+[KWQEditCommand commandWithEditCommandImpl:])
34334        (-[KWQEditCommand impl])
34335        * kwq/KWQKHTMLPart.h
34336        * kwq/KWQKHTMLPart.mm
34337        (KWQKHTMLPart::registerCommandForUndo)
34338        (KWQKHTMLPart::registerCommandForRedo)
34339        * kwq/WebCoreBridge.mm
34340        (-[WebCoreBridge undoEditing:])
34341        (-[WebCoreBridge redoEditing:])
34342        (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:smartReplace:])
34343        (-[WebCoreBridge moveSelectionToDragCaret:smartMove:])
34344        (-[WebCoreBridge deleteSelectionWithSmartDelete:])
34345
343462004-09-26  Darin Adler  <darin@apple.com>
34347
34348        Reviewed by Maciej.
34349
34350        - fixed <rdar://problem/3816170> image.width/height not available from Image objects (works in Firefox)
34351
34352        * khtml/ecma/kjs_html.h: Added width and height.
34353        * khtml/ecma/kjs_html.cpp: (Image::getValueProperty): Added width and height.
34354        * khtml/ecma/kjs_html.lut.h: Regenerated.
34355
34356        - unrelated change; changed ordering of use count manipulation just in case we decide some day to do
34357          something when the use count hits 0
34358
34359        * khtml/rendering/render_image.cpp: (RenderImage::setPixmap): Increment use count on new object before
34360        decrementing use count on old object.
34361
343622004-09-26  Darin Adler  <darin@apple.com>
34363
34364        Reviewed by Kevin.
34365
34366        - fixed <rdar://problem/3812771> document.implementation.hasFeature returns false for a lot of features we implement
34367
34368        * khtml/xml/dom_docimpl.cpp: (DOMImplementationImpl::hasFeature): Added all the DOM features that we implemented
34369        as part of the HTML editing work.
34370
34371        * khtml/dom/dom_node.cpp: (Node::isSupported): Changed this to call DOMImplementationImpl::hasFeature to share
34372        code. Later this might need to be different per-node, but at the moment that does not seem to be so.
34373
34374        * khtml/ecma/kjs_dom.cpp:
34375        (DOMNodeProtoFunc::tryCall): Pass a null string if the parameter is omitted, undefined, or null. This is better than
34376        having a special case for the string "null" in the DOM implementation.
34377        (DOMDOMImplementationProtoFunc::tryCall): Ditto.
34378
34379        - fixed <rdar://problem/3814605> REGRESSION: fast/table/039 layout test is failing due to extra trailing whitespace in innerText        
34380
34381        * khtml/editing/visible_text.cpp: (khtml::TextIterator::advance): Check for the case where we are at the end of
34382        iteration, and don't call exitNode in that case. This prevents us from getting some unwanted trailing \n characters.
34383
34384        - fixed <rdar://problem/3813253> method cloneNode() does not clone dynamically-set style attributes correctly
34385
34386        * khtml/html/html_elementimpl.h: Added cloneNode override.
34387        * khtml/html/html_elementimpl.cpp:
34388        (HTMLElementImpl::cloneNode): Added. Copies m_inlineStyleDecl.
34389        (HTMLElementImpl::parseHTMLAttribute): Changed to use getInlineStyleDecl().
34390        (HTMLElementImpl::innerText): Changed to do the same thing with fewer lines of code.
34391        (HTMLElementImpl::outerText): Tweaked comment.
34392
34393        - other cleanup
34394
34395        * khtml/xml/dom_elementimpl.cpp:
34396        (ElementImpl::cloneNode): Removed an uneeded type cast.
34397        (XMLElementImpl::cloneNode): Ditto.
34398
343992004-09-24  Kevin Decker  <kdecker@apple.com>
34400
34401        Reviewed by Maciej.
34402
34403	<rdar://problem/3799334> DIG: Safari does not properly return style names [DigCSS.htm]
34404
34405        * khtml/css/css_base.cpp:
34406        (CSSSelector::selectorText): Properly returns Class Selector names.  
34407	Before we would get *[CLASS"foo"] instead of .foo
34408
344092004-09-24  Ken Kocienda  <kocienda@apple.com>
34410
34411        Reviewed by John
34412
34413        Fix for this bug:
34414        
34415        <rdar://problem/3814660> REGRESSION (8A200-8A259): Select All has no effect on livepage.apple.com
34416
34417        * khtml/xml/dom_docimpl.cpp:
34418        (DocumentImpl::updateSelection): Move the selection start and end to rendered positions
34419        before passing off to the RenderCanvas for drawing.
34420        * layout-tests/editing/selection/select-all-004-expected.txt: Added.
34421        * layout-tests/editing/selection/select-all-004.html: Added.
34422
344232004-09-24  John Sullivan  <sullivan@apple.com>
34424
34425        Reviewed by Maciej.
34426        
34427        - fixed <rdar://problem/3528339> Turn on full keyboard access shows 
34428        invisible <input> elements
34429
34430        * khtml/html/html_formimpl.cpp:
34431        (DOM::HTMLGenericFormElementImpl::isFocusable):
34432        reject elements that have zero width or height, even if they aren't hidden
34433
344342004-09-24  Maciej Stachowiak  <mjs@apple.com>
34435
34436	- fixed deployment build
34437
34438        Reviewed by Ken.
34439
34440        * khtml/dom/dom_string.cpp: put implementation of ascii() in #ifdef !NDEBUG
34441	to match prototype.
34442
344432004-09-24  David Hyatt  <hyatt@apple.com>
34444
34445	Fix for 3800316, test 37 for tables is failing on the layout tests.  Make sure we don't incorrectly match
34446	non-HTML elements with HTML tag selectors in CSS.
34447	
34448        Reviewed by rjw
34449
34450        * khtml/css/cssstyleselector.cpp:
34451        (khtml::CSSStyleSelector::checkOneSelector):
34452
344532004-09-23  David Hyatt  <hyatt@apple.com>
34454
34455	Fix for 3601920, CSS "tabs" not switching properly on zen garden design.  Improve the repainting to account
34456	for layer changes of z-index that necessitate an invalidation.
34457	
34458        Reviewed by kocienda
34459
34460        * khtml/rendering/render_object.cpp:
34461        (RenderObject::setStyle):
34462        * khtml/rendering/render_style.cpp:
34463        (RenderStyle::diff):
34464        * khtml/rendering/render_style.h:
34465        (khtml::RenderStyle::):
34466
344672004-09-24  Chris Blumenberg  <cblu@apple.com>
34468
34469	Made markup copying 5 times faster. Unfortunately, this still doesn't fix:
34470	<rdar://problem/3794799> Tiger8A252: copying a bunch o' text is so slow it seems like a hang
34471
34472        Reviewed by rjw.
34473
34474        * khtml/dom/dom_string.h:
34475        * khtml/xml/dom2_rangeimpl.cpp:
34476        (DOM::RangeImpl::toHTML): serialize the range by iterating through the range
34477        * khtml/xml/dom_nodeimpl.cpp:
34478        (NodeImpl::startMarkup): new, factored out from recursive_toString
34479        (NodeImpl::endMarkup): ditto
34480        (NodeImpl::recursive_toString): call factored out methods
34481        * khtml/xml/dom_nodeimpl.h:
34482
34483=== Safari-165 ===
34484
344852004-09-24  Ken Kocienda  <kocienda@apple.com>
34486
34487        Hyatt made an improvement in the render tree which caused the results
34488        to get a little thinner.
34489
34490        * layout-tests/editing/deleting/delete-block-merge-contents-001-expected.txt
34491        * layout-tests/editing/deleting/delete-block-merge-contents-008-expected.txt
34492
344932004-09-24  Ken Kocienda  <kocienda@apple.com>
34494
34495        Reviewed by Hyatt
34496        
34497        Fix for this bug:
34498        
34499        <rdar://problem/3812939> REGRESSION: move-between-blocks-no-001 editing layout test fails in DeleteSelectionCommandImpl
34500
34501        * khtml/rendering/render_block.cpp:
34502        (khtml::RenderBlock::removeChild): Hyatt said this regression was caused by a bad merge. 
34503        Found by code inspection.
34504
345052004-09-23  John Sullivan  <sullivan@apple.com>
34506
34507        Reviewed by Maciej.
34508        
34509        - fixed <rdar://problem/3551850> hang caused by interpreting bad javascript 
34510        guarded by a deliberately bogus "language" attribute (www.riibe.com)
34511
34512        * khtml/html/htmltokenizer.cpp:
34513        (khtml::HTMLTokenizer::parseTag):
34514        Check for language attribute of <script> tag in a way that matches WinIE.
34515        Previously we were far too permissive.
34516
345172004-09-23  David Hyatt  <hyatt@apple.com>
34518
34519	Fix for 3685234 and 3548444, the x-offset for frame borders was off by 1 pixel, causing mojibake to occur when
34520	repainting happened.
34521
34522        * khtml/rendering/render_canvas.cpp:
34523        (RenderCanvas::repaintViewRectangle):
34524
345252004-09-23  Richard Williamson   <rjw@apple.com>
34526
34527	Fixed <rdar://problem/3813271> dashboard-region-circle and dashboard-region-rectangle should be collapsed into dashboard-region
34528	Fixed <rdar://problem/3813289> dashboard regions need to correctly account for overflow/scrolling
34529
34530        Reviewed by Chris.
34531
34532        * khtml/css/css_valueimpl.cpp:
34533        (CSSPrimitiveValueImpl::cssText):
34534        * khtml/css/css_valueimpl.h:
34535        * khtml/css/cssparser.cpp:
34536        (CSSParser::parseValue):
34537        (skipCommaInDashboardRegion):
34538        (CSSParser::parseDashboardRegions):
34539        * khtml/khtmlview.cpp:
34540        (KHTMLView::layout):
34541        (KHTMLView::updateDashboardRegions):
34542        * khtml/khtmlview.h:
34543        * khtml/rendering/render_layer.cpp:
34544        (RenderLayer::scrollToOffset):
34545        * khtml/rendering/render_object.cpp:
34546        (RenderObject::addDashboardRegions):
34547        * kwq/KWQKHTMLPart.mm:
34548        (KWQKHTMLPart::dashboardRegionsChanged):
34549        * kwq/WebDashboardRegion.h:
34550        * kwq/WebDashboardRegion.m:
34551        (-[WebDashboardRegion initWithRect:clip:type:]):
34552        (-[WebDashboardRegion dashboardRegionClip]):
34553        (-[WebDashboardRegion description]):
34554
345552004-09-23  Ken Kocienda  <kocienda@apple.com>
34556
34557        Reviewed by Richard
34558
34559        * khtml/xml/dom_position.cpp:
34560        (DOM::Position::inRenderedContent): Make the "empty block" check the same as the one
34561        use in visible position. This fixes a recent regression which broke up and down
34562        arrowing between blocks with an empty block in between.
34563
345642004-09-23  Maciej Stachowiak  <mjs@apple.com>
34565
34566        Reviewed by Darin.
34567
34568	<rdar://problem/3685235> REGRESSION (Mail): links are not properly editable
34569        
34570	* khtml/html/html_inlineimpl.cpp:
34571        (HTMLAnchorElementImpl::isFocusable): If this element is editable, then follow
34572	the normal focus rules so the link does not swallow focus when you arrow key
34573	or drag-select into it.
34574
345752004-09-23  Darin Adler  <darin@apple.com>
34576
34577        - added test for the DOM::Range bug fixed recently
34578
34579        * layout-tests/fast/dom/clone-contents-0-end-offset-expected.txt: Added.
34580        * layout-tests/fast/dom/clone-contents-0-end-offset.html: Added.
34581
345822004-09-23  David Hyatt  <hyatt@apple.com>
34583
34584	Fix for hitlist bug, crash when deleting.  
34585
34586	Also fix repaint bug when inlines are inside overflow:auto/scroll regions.
34587	
34588        Reviewed by kocienda
34589
34590        * khtml/editing/htmlediting_impl.cpp:
34591        (khtml::DeleteSelectionCommandImpl::DeleteSelectionCommandImpl):
34592        (khtml::DeleteSelectionCommandImpl::doApply):
34593        * khtml/rendering/render_block.cpp:
34594        (khtml::RenderBlock::removeChild):
34595        * khtml/rendering/render_flow.cpp:
34596        (RenderFlow::getAbsoluteRepaintRect):
34597
345982004-09-23  John Sullivan  <sullivan@apple.com>
34599
34600        Reviewed by Ken.
34601
34602        - fixed <rdar://problem/3527840> reproducible crash at johnbrown.v32.qikker.com 
34603        (nil-deref in NodeImpl::dispatchEvent)
34604
34605        * khtml/xml/dom_nodeimpl.cpp:
34606        (NodeImpl::dispatchEvent):
34607        guard against document or document->document() being nil
34608
346092004-09-23  Darin Adler  <darin@apple.com>
34610
34611        Reviewed by Ken.
34612
34613        - added new VisibleRange class; not used yet
34614
34615        * WebCore.pbproj/project.pbxproj: Added visible_range.h and visible_range.cpp.
34616        * khtml/editing/visible_range.cpp: Added.
34617        * khtml/editing/visible_range.h: Added.
34618
34619        - tweaks
34620
34621        * kwq/WebCoreBridge.mm: (-[WebCoreBridge alterCurrentSelection:direction:granularity:]):
34622        Use switch statement instead of if statement so we get a warning if we ever add a new
34623        granularity.
34624
34625        * khtml/editing/selection.h: khtml, not DOM, namespace
34626        * khtml/editing/visible_position.h: Ditto.
34627
346282004-09-23  Darin Adler  <darin@apple.com>
34629
34630        Reviewed by Ken.
34631
34632        - fixed <rdar://problem/3812758> 8S266: attaching mutation events to an editable div crashes Safari
34633
34634        * khtml/xml/dom_nodeimpl.cpp:
34635        (NodeImpl::dispatchEvent): Added ref/deref so this works if passed a "floating" event object.
34636        (NodeImpl::dispatchGenericEvent): Ditto.
34637        (NodeImpl::dispatchHTMLEvent): Removed unneeded ref/deref now that dispatchEvent takes care of it.
34638        (NodeImpl::dispatchMouseEvent): Ditto.
34639        (NodeImpl::dispatchUIEvent): Ditto.
34640
346412004-09-23  Darin Adler  <darin@apple.com>
34642
34643        Reviewed by Ken.
34644
34645        - fixed some minor mistakes discovered by code inspection
34646
34647        * khtml/khtml_part.cpp:
34648        (KHTMLPart::setSelection): Changed to not grab focus if clearing the selection.
34649        Grabbing focus when we get the selection is also probably something that should be
34650        conditional, since you can use a WebView in a mode where it can have selection even
34651        when not first responder, ala NSTextView.
34652        (KHTMLPart::setCaretVisible): Changed to not grab focus if making the caret invisible.
34653        Not sure if it's ever important to grab focus when making the caret visible, but by
34654        code inspection it seemed that was unlikely to do harm.
34655
346562004-09-23  Darin Adler  <darin@apple.com>
34657
34658        Reviewed by Ken.
34659
34660        - fixed <rdar://problem/3790595> "ERROR: unimplemented propertyID: 97" logged to console when copying selection (table-layout)
34661
34662        * khtml/css/css_computedstyle.cpp: (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
34663        Added CSS_PROP_TABLE_LAYOUT case.
34664
346652004-09-23  Darin Adler  <darin@apple.com>
34666
34667        Reviewed by Ken.
34668
34669        - fixed <rdar://problem/3809600> REGRESSION: text in search field doesn't disappear when clicked at developer.apple.com
34670
34671        Reversing the order of scope caused us to get and set too many properties in the window
34672        object; in the case of this bug setting value ended up setting a window.value property
34673        instead of the value of the <input> element.
34674
34675        * khtml/ecma/kjs_window.h: Removed bogus hasProperty function that always returns true.
34676        Testing shows that MacIE and Gecko match our behavior when we remove this, despite the
34677        "need this to match IE behavior" comment in the file, which I believe is incorrect.
34678        * khtml/ecma/kjs_window.cpp: Ditto.
34679
346802004-09-23  Darin Adler  <darin@apple.com>
34681
34682        Reviewed by Ken.
34683
34684        - fixed <rdar://problem/3812471> -[DOMRange cloneContents] clones too much in some cases where endOffset is 0
34685
34686        * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::processContents): Added some nil
34687        checks to prevent this function from crashing if offsets are greater than the
34688        number of child nodes. Added a special case for offset 0 in one case that has a loop
34689        that won't work correctly for that case.
34690
346912004-09-23  Darin Adler  <darin@apple.com>
34692
34693        Reviewed by Ken.
34694
34695        - fixed <rdar://problem/3811890> when selecting and moving the caret, some words aren't spell-checked (test case included)
34696
34697        This was mostly fixed by changes I made recently, but using the test case in the bug
34698        I discovered one regression I introduced and another problem that wasn't fixed yet.
34699        This change fixes both.
34700
34701        * kwq/KWQKHTMLPart.mm:
34702        (KWQKHTMLPart::markMisspellingsInSelection): Removed unneeded inRenderedContent() check. It was returning false
34703        in cases involving a <br> at the end of line, and the check isn't all that helpful now that we use VisiblePosition,
34704        which takes care of that sort of thing for you. Changed code to determine the range to check to use the two
34705        different flavors of word boundary to expand to words we touch in both directions.
34706        (KWQKHTMLPart::updateSpellChecking): Changed to use the same logic about word boundaries. By being consistent,
34707        the anomalies reported in the bug report go away.
34708
347092004-09-23  Darin Adler  <darin@apple.com>
34710
34711        Reviewed by Ken.
34712
34713        - fixed <rdar://problem/3811584> REGRESSION (85-125): iframe.document undefined in function called from button onclick; works from img onclick
34714
34715        Since we are doing a bit less "defers callbacks" work, when testing I ran into this code path.
34716
34717        * khtml/xml/dom2_eventsimpl.cpp: (MouseEventImpl::computeLayerPos): Check for document without renderer.
34718
347192004-09-23  Darin Adler  <darin@apple.com>
34720
34721        - checked in a new file I forgot
34722
34723        * khtml/editing/text_granularity.h: Added.
34724
347252004-09-22  Darin Adler  <darin@apple.com>
34726
34727        - renamed
34728
34729            DOM::CaretPosition -> khtml::VisibleRange
34730            DOM::Selection     -> khtml::Selection
34731
34732        - moved all the functions in visible_units.h from DOM to khtml namespace
34733        - moved the one thing from Selection that KHTMLPart uses into its own header
34734
34735        * WebCore.pbproj/project.pbxproj: Added text_granularity.h.
34736
34737        * ForwardingHeaders/editing/selection.h: Added.
34738        * WebCore-combined.exp: Regenerated.
34739        * WebCore-tests.exp: Updated symbol for DOM::Selection debugging.
34740
34741        * khtml/ecma/kjs_window.cpp: Update names and namespaces.
34742        * khtml/editing/htmlediting.cpp: Ditto.
34743        * khtml/editing/htmlediting.h: Ditto.
34744        * khtml/editing/htmlediting_impl.cpp: Ditto.
34745        * khtml/editing/htmlediting_impl.h: Ditto.
34746        * khtml/editing/jsediting.cpp: Ditto.
34747        * khtml/editing/selection.cpp: Ditto.
34748        * khtml/editing/selection.h: Ditto.
34749        * khtml/editing/visible_position.cpp: Ditto.
34750        * khtml/editing/visible_position.h: Ditto.
34751        * khtml/editing/visible_text.h: Ditto.
34752        * khtml/editing/visible_units.cpp: Ditto.
34753        * khtml/editing/visible_units.h: Ditto.
34754        * khtml/khtml_part.cpp: Ditto.
34755        * khtml/khtml_part.h: Ditto.
34756        * khtml/khtmlpart_p.h: Ditto.
34757        * khtml/rendering/render_block.cpp: Ditto.
34758        * khtml/xml/dom_docimpl.h: Ditto.
34759        * khtml/xml/dom_nodeimpl.cpp: Ditto.
34760        * kwq/KWQKHTMLPart.h: Ditto.
34761        * kwq/KWQKHTMLPart.mm: Ditto.
34762        * kwq/KWQRenderTreeDebug.cpp: Ditto.
34763        * kwq/WebCoreBridge.mm: Ditto.
34764
347652004-09-22  Darin Adler  <darin@apple.com>
34766
34767        * ForwardingHeaders/*: Use import instead of include.
34768
347692004-09-22  Darin Adler  <darin@apple.com>
34770
34771        - renamed these files:
34772
34773            misc/khtml_text_operations.h   -> editing/visible_text.h
34774            misc/khtml_text_operations.cpp -> editing/visible_text.cpp
34775            xml/dom_caretposition.cpp      -> editing/visible_position.cpp
34776            xml/dom_caretposition.h        -> editing/visible_position.h
34777            xml/dom_selection.cpp          -> editing/selection.cpp
34778            xml/dom_selection.h            -> editing/selection.h
34779
34780        - broke out the word/line/paragraph part of visible_position.h into visible_units.h
34781        - removed some unnecessary includes from some header files to reduce the number of
34782          files that trigger "building the world"
34783
34784        * WebCore.pbproj/project.pbxproj: Added the files under new names, removed the old ones.
34785
34786        * ForwardingHeaders/editing/jsediting.h: Added.
34787        * ForwardingHeaders/editing/visible_text.h: Added.
34788        * ForwardingHeaders/misc/khtml_text_operations.h: Removed.
34789        * ForwardingHeaders/xml/dom_caretposition.h: Removed.
34790        * ForwardingHeaders/xml/dom_selection.h: Removed.
34791
34792        * khtml/ecma/kjs_window.cpp: Updated or removed #include lines.
34793        * khtml/editing/htmlediting.cpp: Ditto.
34794        * khtml/editing/htmlediting.h: Ditto.
34795        * khtml/editing/htmlediting_impl.cpp: Ditto.
34796        * khtml/editing/htmlediting_impl.h: Ditto.
34797        * khtml/editing/jsediting.cpp: Ditto.
34798        * khtml/editing/selection.cpp: Ditto.
34799        * khtml/editing/selection.h: Ditto.
34800        * khtml/editing/visible_position.cpp: Ditto.
34801        * khtml/editing/visible_position.h: Ditto.
34802        * khtml/editing/visible_text.cpp: Ditto.
34803        * khtml/editing/visible_text.h: Ditto.
34804        * khtml/editing/visible_units.cpp: Added.
34805        * khtml/editing/visible_units.h: Added.
34806        * khtml/html/html_elementimpl.cpp: Updated or removed #include lines.
34807        * khtml/khtml_part.cpp: Ditto.
34808        * khtml/khtml_part.h: Ditto.
34809        * khtml/khtmlpart_p.h: Ditto.
34810        * khtml/khtmlview.cpp: Ditto.
34811        * khtml/misc/khtml_text_operations.cpp: Removed.
34812        * khtml/misc/khtml_text_operations.h: Removed.
34813        * khtml/rendering/render_block.cpp: Updated or removed #include lines.
34814        * khtml/xml/dom2_rangeimpl.cpp: Ditto.
34815        * khtml/xml/dom_caretposition.cpp: Removed.
34816        * khtml/xml/dom_caretposition.h: Removed.
34817        * khtml/xml/dom_docimpl.cpp: Updated or removed #include lines.
34818        * khtml/xml/dom_docimpl.h: Ditto.
34819        * khtml/xml/dom_elementimpl.cpp: Ditto.
34820        * khtml/xml/dom_nodeimpl.cpp: Ditto.
34821        * khtml/xml/dom_position.cpp: Ditto.
34822        * khtml/xml/dom_selection.cpp: Removed.
34823        * khtml/xml/dom_selection.h: Removed.
34824        * kwq/KWQKHTMLPart.mm: Updated or removed #include lines.
34825        * kwq/KWQKHTMLPart.h: Ditto.
34826        * kwq/KWQRenderTreeDebug.cpp: Ditto.
34827        * kwq/WebCoreBridge.mm: Ditto.
34828
348292004-09-22  Richard Williamson   <rjw@apple.com>
34830	
34831	Pass dashboard regions up to WebKit.
34832	
34833	Don't collect regions from RenderTexts.
34834
34835	Made more args and return types references to avoid
34836	copying value lists.
34837
34838        Reviewed by Hyatt.
34839
34840        * WebCore.pbproj/project.pbxproj:
34841        * khtml/khtmlview.cpp:
34842        (KHTMLView::layout):
34843        * khtml/rendering/render_object.cpp:
34844        (RenderObject::collectDashboardRegions):
34845        * khtml/xml/dom_docimpl.cpp:
34846        (DocumentImpl::dashboardRegions):
34847        (DocumentImpl::setDashboardRegions):
34848        * khtml/xml/dom_docimpl.h:
34849        * kwq/KWQKHTMLPart.h:
34850        * kwq/KWQKHTMLPart.mm:
34851        (KWQKHTMLPart::didFirstLayout):
34852        (KWQKHTMLPart::dashboardRegionsChanged):
34853        * kwq/WebCoreBridge.h:
34854        * kwq/WebDashboardRegion.h: Added.
34855        * kwq/WebDashboardRegion.m: Added.
34856        (-[WebDashboardRegion initWithRect:type:]):
34857        (-[WebDashboardRegion copyWithZone:]):
34858        (-[WebDashboardRegion dashboardRegionRect]):
34859        (-[WebDashboardRegion dashboardRegionType]):
34860        (-[WebDashboardRegion description]):
34861
348622004-09-22  Ken Kocienda  <kocienda@apple.com>
34863
34864        Reviewed by Hyatt
34865
34866        Fix for this hitlist bug:
34867        
34868        <rdar://problem/3805486> REGRESSION (Mail): Empty block elements can cause the caret to get "stuck" in one spot
34869
34870        * khtml/xml/dom_caretposition.cpp:
34871        (DOM::CaretPosition::isCandidate): You can no longer caret into empty blocks with no height.
34872        Also did a little clean up in this function.
34873        * layout-tests/editing/deleting/delete-3800834-fix-expected.txt: Regenerated expected results. 
34874        This test was actually failing and had bogus results checked in!
34875        * layout-tests/editing/selection/select-all-003-expected.txt: Regenerated expected results.
34876
348772004-09-22  Chris Blumenberg  <cblu@apple.com>
34878
34879	Fixed: <rdar://problem/3812091> REGRESSION (Mail): double-clicked word is not smart inserted on drag
34880
34881        Reviewed by john.
34882
34883        * khtml/editing/htmlediting.cpp:
34884        (khtml::MoveSelectionCommand::MoveSelectionCommand): take smartMove arg
34885        * khtml/editing/htmlediting.h:
34886        * khtml/editing/htmlediting_impl.cpp:
34887        (khtml::CompositeEditCommandImpl::deleteSelection): take smartDelete arg
34888        (khtml::MoveSelectionCommandImpl::MoveSelectionCommandImpl): take smartMove arg
34889        (khtml::MoveSelectionCommandImpl::doApply): pass smartMove for smartDelete and smartReplace
34890        * khtml/editing/htmlediting_impl.h:
34891        * kwq/WebCoreBridge.h:
34892        * kwq/WebCoreBridge.mm:
34893        (-[WebCoreBridge moveSelectionToDragCaret:smartMove:]): take smartMove arg
34894
348952004-09-22  Ken Kocienda  <kocienda@apple.com>
34896
34897        Reviewed by Hyatt
34898
34899        * khtml/css/css_computedstyle.cpp:
34900        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): New overloaded 
34901	version of this function, one that takes a flag to determine whether to
34902	perform a document updateLayout() call before querying the style system.
34903        * khtml/css/css_computedstyle.h:
34904        (DOM::EUpdateLayout): Give a symbolic constant to true/false for the 
34905	purpose of the new call to getPropertyCSSValue.
34906        * khtml/editing/htmlediting_impl.cpp:
34907        (khtml::StyleChange::currentlyHasStyle): Pass DoNotUpdateLayout to call to
34908	getPropertyCSSValue.
34909        (khtml::CompositeEditCommandImpl::applyTypingStyle): Add in top-level calls
34910	to updateLayout before doing style changes that now do not update styles
34911	themselves.
34912        (khtml::ApplyStyleCommandImpl::doApply): Ditto.
34913        (khtml::ApplyStyleCommandImpl::removeCSSStyle): Pass DoNotUpdateLayout to call to
34914        getPropertyCSSValue.
34915        (khtml::DeleteSelectionCommandImpl::computeTypingStyle): Remove this dead code.
34916        * khtml/editing/htmlediting_impl.h: Ditto.
34917
349182004-09-22  Ken Kocienda  <kocienda@apple.com>
34919
34920        Reviewed by Darin
34921
34922        * WebCore.pbproj/project.pbxproj: New files added.
34923        * khtml/khtml_part.cpp:
34924        (KHTMLPart::clearSelection): No longer calls setFocusIfNeeded.
34925        (KHTMLPart::slotClearSelection): Merged old implementation from this function to
34926        clearSelection. Now just calls clearSelection. Also put in !APPLE_CHANGES since
34927        we do not call it.
34928        * khtml/xml/dom_docimpl.cpp:
34929        (DocumentImpl::setFocusNode): Add some code to determine when setting the focus should
34930        clear the selection.
34931        * kwq/KWQWidget.mm:
34932        (QWidget::hasFocus): Call _webcore_effectiveFirstResponder to get view to check for focus.
34933        (QWidget::setFocus): Ditto.
34934        * kwq/WebCoreBridge.mm: 
34935        (-[WebCoreBridge deselectText]): Called slotClearSelection and should have been. Now calls
34936        clearSelection.
34937        * kwq/WebCoreView.h: Added.
34938        * kwq/WebCoreView.m: Added.
34939        (-[NSView _webcore_effectiveFirstResponder]): New method to yield the correct responder
34940        to check for firstResponder-ness before calling makeFirstResonder. This helps to prevent 
34941        unwanted firstResponder switching.
34942        (-[NSClipView _webcore_effectiveFirstResponder]): Ditto.
34943        (-[NSScrollView _webcore_effectiveFirstResponder]): Ditto.
34944
349452004-09-21  Maciej Stachowiak  <mjs@apple.com>
34946
34947        Reviewed by Darin.
34948
34949	<rdar://problem/3805137> REGRESSION: Cannot search on pricetool.com
34950
34951        The problem here is that residual style handling can cause an
34952	element associated with a misnested form to lose the association,
34953	because it can become detached and then reattached in this
34954	case. So we need to maintain the association.
34955	
34956        * khtml/html/html_formimpl.h: Added list of dormant elements to form,
34957	and dormant bit to generic form element.
34958	* khtml/html/html_formimpl.cpp:
34959        (DOM::HTMLFormElementImpl::~HTMLFormElementImpl): Clear m_form field for
34960	dormant elements too.
34961        (DOM::HTMLFormElementImpl::registerFormElement): Remove from dormant list
34962	in addition to adding to main list.
34963        (DOM::HTMLFormElementImpl::removeFormElement): Remove from both lists.
34964        (DOM::HTMLFormElementImpl::makeFormElementDormant): New method, remove from
34965	main list, add to dormant list.
34966        (DOM::HTMLGenericFormElementImpl::HTMLGenericFormElementImpl): Initialize
34967	dormant bit to false.
34968        (DOM::HTMLGenericFormElementImpl::insertedIntoDocument): If the element is
34969	dormant and has a form, re-register it and clear the dormant bit.
34970        (DOM::HTMLGenericFormElementImpl::removedFromDocument): If the document has
34971	a form, tell the form it is dormant and set the dormant bit.
34972
349732004-09-22  Chris Blumenberg  <cblu@apple.com>
34974
34975	Fixed: <rdar://problem/3811187> REGRESSION (Mail): Control-click past end of document does not spell check last word
34976
34977        Reviewed by kocienda.
34978
34979        * khtml/xml/dom_selection.cpp:
34980        (DOM::Selection::validate): if at the end of the document, expand to the left.
34981
349822004-09-22  Maciej Stachowiak  <mjs@apple.com>
34983
34984        Reviewed by Ken and John.
34985
34986	<rdar://problem/3759228> REGRESSION (Mail): stray characters when entering text via input method right after newline
34987        
34988	* khtml/editing/htmlediting_impl.cpp:
34989        (khtml::CompositeEditCommandImpl::inputText): Add an optional 
34990	selectInsertedText parameter.
34991        (khtml::ReplaceSelectionCommandImpl::doApply): Let the inputText operation
34992	select the text when inserting plain text, because it already knows all the right
34993	information to do so, and this function doesn't (sometimes text is inserted
34994	before the start of the old selection, not after!)
34995        * khtml/editing/htmlediting_impl.h:
34996
349972004-09-22  Richard Williamson   <rjw@apple.com>
34998
34999	More tweaks to dashboard regions.
35000
35001	Move dashboard regions list into css3NonInheritedData so it will be shared
35002	by all styles that don't modify the empty region list.
35003
35004	Make the initial value for dashboard region list a static to minimize allocations
35005	of empty lists.
35006
35007	Make marquee and flex style accessor functions const.
35008
35009        Reviewed by Hyatt.
35010
35011        * khtml/rendering/render_style.cpp:
35012        (RenderStyle::diff):
35013        * khtml/rendering/render_style.h:
35014        (khtml::RenderStyle::opacity):
35015        (khtml::RenderStyle::boxAlign):
35016        (khtml::RenderStyle::boxDirection):
35017        (khtml::RenderStyle::boxFlexGroup):
35018        (khtml::RenderStyle::boxOrdinalGroup):
35019        (khtml::RenderStyle::boxOrient):
35020        (khtml::RenderStyle::boxPack):
35021        (khtml::RenderStyle::marqueeIncrement):
35022        (khtml::RenderStyle::marqueeSpeed):
35023        (khtml::RenderStyle::marqueeLoopCount):
35024        (khtml::RenderStyle::marqueeBehavior):
35025        (khtml::RenderStyle::marqueeDirection):
35026        (khtml::RenderStyle::dashboardRegions):
35027        (khtml::RenderStyle::setDashboardRegions):
35028        (khtml::RenderStyle::setDashboardRegion):
35029        (khtml::RenderStyle::initialDashboardRegions):
35030
350312004-09-22  David Hyatt  <hyatt@apple.com>
35032
35033	Fix for 3802766, entire view redrawn in Blot while typing.  Don't needlessly create text nodes just to find
35034	out the font for the caret position.
35035	
35036        Reviewed by darin
35037
35038        * kwq/KWQKHTMLPart.mm:
35039        (KWQKHTMLPart::fontForSelection):
35040
350412004-09-21  Chris Blumenberg  <cblu@apple.com>
35042
35043	Fixed:
35044	<rdar://problem/3735071> REGRESSION (Mail): WebCore Editing must do smart paste
35045	<rdar://problem/3799163> REGRESSION (Mail): Deleting a word doesn't delete whitespace
35046
35047        Reviewed by darin.
35048
35049        * khtml/editing/htmlediting.cpp:
35050        (khtml::DeleteSelectionCommand::DeleteSelectionCommand): take smartDelete parameter
35051        (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand): take smartReplace parameter
35052        * khtml/editing/htmlediting.h:
35053        * khtml/editing/htmlediting_impl.cpp:
35054        (khtml::DeleteSelectionCommandImpl::DeleteSelectionCommandImpl): take smartDelete parameter
35055        (khtml::DeleteSelectionCommandImpl::doApply): delete whitespace before and after selection if necessary
35056        (khtml::ReplaceSelectionCommandImpl::ReplaceSelectionCommandImpl): take smartReplace parameter
35057        (khtml::ReplaceSelectionCommandImpl::doApply): add whitespace before and after the replacement if necessary
35058        * khtml/editing/htmlediting_impl.h:
35059        * kwq/WebCoreBridge.h:
35060        * kwq/WebCoreBridge.mm:
35061        (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:smartReplace:]): take smartReplace parameter
35062        (-[WebCoreBridge replaceSelectionWithNode:selectReplacement:smartReplace:]): ditto
35063        (-[WebCoreBridge replaceSelectionWithMarkupString:baseURLString:selectReplacement:smartReplace:]): ditto
35064        (-[WebCoreBridge replaceSelectionWithText:selectReplacement:smartReplace:]): ditto
35065        (-[WebCoreBridge deleteSelectionWithSmartDelete:]): take smartDelete parameter
35066
350672004-09-21  Richard Williamson   <rjw@apple.com>
35068
35069	More dashboard region work.
35070
35071	Added support for computed style and cssText for new region property.
35072	Added restriction on length types allowed in region functions.
35073	Added initial and inheritance support for -apple-dashboard-region.
35074
35075        Reviewed by Hyatt.
35076
35077        * khtml/css/css_computedstyle.cpp:
35078        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
35079        * khtml/css/css_valueimpl.cpp:
35080        (CSSPrimitiveValueImpl::cssText):
35081        * khtml/css/cssparser.cpp:
35082        (CSSParser::parseDashboardRegions):
35083        * khtml/css/cssstyleselector.cpp:
35084        (khtml::CSSStyleSelector::applyProperty):
35085        * khtml/rendering/render_object.cpp:
35086        (RenderObject::addDashboardRegions):
35087        * khtml/rendering/render_style.cpp:
35088        (RenderStyle::diff):
35089        * khtml/rendering/render_style.h:
35090        (khtml::StyleDashboardRegion::operator==):
35091        (khtml::RenderStyle::dashboardRegions):
35092        (khtml::RenderStyle::setDashboardRegions):
35093        (khtml::RenderStyle::initialDashboardRegions):
35094
350952004-09-21  Darin Adler  <darin@apple.com>
35096
35097        Reviewed by Ken.
35098
35099        - fixed problem where our updateLayout call ignores pending stylesheets all the time
35100
35101        * khtml/xml/dom_docimpl.h: Added updateLayoutIgnorePendingStylesheets.
35102        * khtml/xml/dom_docimpl.cpp:
35103        (DocumentImpl::updateLayout): Took out the "ignore pending stylesheets" business here.
35104        (DocumentImpl::updateLayoutIgnorePendingStylesheets): Put it in here.
35105
35106        * khtml/ecma/kjs_dom.cpp: (DOMNode::getValueProperty): Call the new
35107        updateLayoutIgnorePendingStylesheets function.
35108        * khtml/ecma/kjs_html.cpp:
35109        (KJS::HTMLElement::getValueProperty): Ditto.
35110        (KJS::HTMLElement::putValue): Ditto.
35111        * khtml/ecma/kjs_views.cpp: (DOMAbstractViewFunc::tryCall): Ditto.
35112        * khtml/ecma/kjs_window.cpp:
35113        (Window::updateLayout): Ditto.
35114        (Selection::get): Ditto.
35115        (SelectionFunc::tryCall): Ditto.
35116
35117        * khtml/html/html_imageimpl.h: Add ignorePendingStylesheets boolean parameter.
35118        * khtml/html/html_imageimpl.cpp:
35119        (HTMLImageElementImpl::width): Respect new parameter.
35120        (HTMLImageElementImpl::height): Ditto.
35121
35122        - tweaks
35123
35124        * kwq/WebCoreBridge.mm:
35125        (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Removed unneeded
35126        explicit "true" parameter to setSelection.
35127        (-[WebCoreBridge alterCurrentSelection:verticalDistance:]): Ditto.
35128
351292004-09-21  Darin Adler  <darin@apple.com>
35130
35131        Reviewed by Ken.
35132
35133        - fix crash when pasting text at the end of the document and then doing an undo
35134
35135        * khtml/editing/htmlediting_impl.cpp:
35136        (khtml::EditCommandImpl::apply): Call markMisspellingsInSelection before doing
35137        the editing operation, and we'll tell setSelection not to unmark the old selection.
35138        Also call updateLayout before calling appliedEditing so DOM operations in the
35139        code responding to the selection change will work.
35140        (khtml::EditCommandImpl::unapply): Ditto.
35141        (khtml::EditCommandImpl::reapply): Ditto.
35142
35143        * khtml/khtml_part.h: Added a third parameter to setSelection to tell it whether
35144        to unmark the old selection. We must pass false when editing, because the old
35145        selection might have now-invalid offsets inside it.
35146        * khtml/khtml_part.cpp:
35147        (KHTMLPart::setSelection): Add unmarkOldSelection parameter, and respect it.
35148        (KHTMLPart::appliedEditing): Pass false for unmarkOldSelection.
35149        (KHTMLPart::unappliedEditing): Ditto.
35150        (KHTMLPart::reappliedEditing): Ditto.
35151
351522004-09-21  Richard Williamson   <rjw@apple.com>
35153
35154        Part 2 of the feature requested in
35155        <rdar://problem/3752791> Dashboard: Need a better solution for control regions
35156	
35157        This patch actually collections the regions and converts to absolute coordinates.
35158        Only remaining piece is to pass over the bridge and up the alley to WebKit
35159        UI delegate.
35160 
35161        Reviewed by Ken.
35162
35163        * khtml/css/css_valueimpl.h:
35164        (DOM::CSSPrimitiveValueImpl::getDashboardRegionValue):
35165        * khtml/css/cssparser.cpp:
35166        (CSSParser::parseValue):
35167        (CSSParser::parseDashboardRegions):
35168        * khtml/css/cssproperties.c:
35169        * khtml/css/cssproperties.h:
35170        * khtml/css/cssproperties.in:
35171        * khtml/css/cssstyleselector.cpp:
35172        (khtml::CSSStyleSelector::applyProperty):
35173        * khtml/khtmlview.cpp:
35174        (KHTMLView::layout):
35175        * khtml/rendering/render_object.cpp:
35176        (RenderObject::computeDashboardRegions):
35177        (RenderObject::addDashboardRegions):
35178        (RenderObject::collectDashboardRegions):
35179        * khtml/rendering/render_object.h:
35180        (khtml::DashboardRegionValue::operator==):
35181        * khtml/rendering/render_style.cpp:
35182        * khtml/rendering/render_style.h:
35183        (khtml::StyleDashboardRegion::):
35184        (khtml::RenderStyle::dashboardRegions):
35185        (khtml::RenderStyle::setDashboardRegion):
35186        * khtml/xml/dom_docimpl.cpp:
35187        (DocumentImpl::DocumentImpl):
35188        (DocumentImpl::updateLayout):
35189        (DocumentImpl::acceptsEditingFocus):
35190        (DocumentImpl::dashboardRegions):
35191        (DocumentImpl::setDashboardRegions):
35192        * khtml/xml/dom_docimpl.h:
35193        (DOM::DocumentImpl::hasDashboardRegions):
35194        (DOM::DocumentImpl::setHasDashboardRegions):
35195
351962004-09-21  John Sullivan  <sullivan@apple.com>
35197
35198        Reviewed by Darin.
35199        
35200        - WebCore part of fix for <rdar://problem/3618274> REGRESSION (125-135): 
35201        Option-tab doesn't always work as expected
35202
35203        * kwq/KWQKHTMLPart.mm:
35204        (KWQKHTMLPart::tabsToAllControls):
35205        reworked logic to match what we promise in the UI; this worked correctly
35206        before for regular tabbing, but not for option-tabbing.
35207
35208        * kwq/KWQButton.mm:
35209        (QButton::focusPolicy):
35210        check tabsToAllControls() rather than just WebCoreKeyboardAccessFull
35211        
35212        * kwq/KWQComboBox.mm:
35213        (QComboBox::focusPolicy):
35214        ditto
35215        
35216        * kwq/KWQFileButton.mm:
35217        (KWQFileButton::focusPolicy):
35218        ditto
35219        
35220        * kwq/KWQListBox.mm:
35221        (QListBox::focusPolicy):
35222        ditto
35223
352242004-09-21  John Sullivan  <sullivan@apple.com>
35225
35226        * khtml/xml/dom_selection.cpp:
35227        (DOM::Selection::modify):
35228        initialize xPos to make compiler happy in deployment builds
35229
352302004-09-21  Darin Adler  <darin@apple.com>
35231
35232        Reviewed by Ken.
35233
35234        - some small mechanical improvements to the position and selection classes
35235
35236        * khtml/xml/dom_position.h: Added clear(), startPosition(), and endPosition().
35237        * khtml/xml/dom_position.cpp:
35238        (DOM::Position::clear): Added.
35239        (DOM::startPosition): Added.
35240        (DOM::endPosition): Added.
35241
35242        * khtml/xml/dom_caretposition.h: Changed m_position to m_deepPosition. Added clear(),
35243        removed node() and offset().
35244        * khtml/xml/dom_caretposition.cpp:
35245        (DOM::CaretPosition::init): Updated for name change of m_position to m_deepPosition.
35246        (DOM::CaretPosition::isLastInBlock): Ditto.
35247        (DOM::CaretPosition::next): Ditto.
35248        (DOM::CaretPosition::previous): Ditto.
35249        (DOM::CaretPosition::debugPosition): Ditto.
35250        (DOM::CaretPosition::formatForDebugger): Ditto.
35251
35252        * khtml/xml/dom_selection.h: Remove setStart, setEnd, setStartAndEnd, rangeStart, rangeEnd,
35253        and all the assignXXX functions.
35254        * khtml/xml/dom_selection.cpp:
35255        (DOM::Selection::Selection): Wean from assign functions, get and set data members directly.
35256        (DOM::Selection::init): Don't clear base, extent, start, and end, since they have constructors.
35257        (DOM::Selection::operator=): Wean from assign functions, get and set data members directly.
35258        (DOM::Selection::moveTo): Ditto.
35259        (DOM::Selection::setModifyBias): Ditto.
35260        (DOM::Selection::modifyExtendingRightForward): Ditto.
35261        (DOM::Selection::modifyMovingRightForward): Ditto.
35262        (DOM::Selection::modifyExtendingLeftBackward): Ditto.
35263        (DOM::Selection::modifyMovingLeftBackward): Ditto.
35264        (DOM::Selection::modify): Ditto.
35265        (DOM::Selection::xPosForVerticalArrowNavigation): Ditto.
35266        (DOM::Selection::clear): Ditto.
35267        (DOM::Selection::setBase): Ditto.
35268        (DOM::Selection::setExtent): Ditto.
35269        (DOM::Selection::setBaseAndExtent): Ditto.
35270        (DOM::Selection::toRange): Ditto.
35271        (DOM::Selection::layoutCaret): Ditto.
35272        (DOM::Selection::needsCaretRepaint): Ditto.
35273        (DOM::Selection::validate): Ditto.
35274        (DOM::Selection::debugRenderer): Ditto.
35275        (DOM::Selection::debugPosition): Ditto.
35276        (DOM::Selection::end):
35277
35278        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::advanceToNextMisspelling): Tweaked whitespace.
35279
352802004-09-21  Chris Blumenberg  <cblu@apple.com>
35281
35282	Fixed: <rdar://problem/3647229> Safari does not play inline Windows Media Content on some sites (miggy.net and ministryofsound.com)
35283
35284        Reviewed by john.
35285
35286        * khtml/rendering/render_frames.cpp:
35287        (RenderPartObject::updateWidget): when no MIME type is specified map from the WMP CLASSID to the WMP MIME type, look for the URL of the content in the URL PARAM tag
35288
352892004-09-20  Darin Adler  <darin@apple.com>
35290
35291        Reviewed by Maciej.
35292
35293        - fixed regression from my recent check-in where misspelled words do not get unmarked when moving the caret
35294        - changed CaretPosition to hold a Position instead of a node and offset
35295        - renamed isEmpty to isNull, etc.
35296
35297        * kwq/KWQKHTMLPart.mm:
35298        (KWQKHTMLPart::jumpToSelection): Updated for name changes.
35299        (KWQKHTMLPart::advanceToNextMisspelling): Ditto.
35300        (KWQKHTMLPart::fontForSelection): Ditto.
35301        (KWQKHTMLPart::setDisplaysWithFocusAttributes): Ditto.
35302        (KWQKHTMLPart::markMisspellingsInSelection): Ditto.
35303        (KWQKHTMLPart::updateSpellChecking): Fixed bug by using LeftWordIfOnBoundary.
35304
35305        * khtml/xml/dom_position.h: Updated for name changes.
35306        * khtml/xml/dom_position.cpp:
35307        (DOM::Position::element): Change to not use a separate null check.
35308        (DOM::Position::computedStyle): Updated for name changes.
35309        (DOM::Position::previousCharacterPosition): Ditto.
35310        (DOM::Position::nextCharacterPosition): Ditto.
35311        (DOM::Position::equivalentRangeCompliantPosition): Ditto.
35312        (DOM::Position::equivalentShallowPosition): Ditto.
35313        (DOM::Position::equivalentDeepPosition): Ditto.
35314        (DOM::Position::closestRenderedPosition): Ditto.
35315        (DOM::Position::inRenderedContent): Ditto.
35316        (DOM::Position::inRenderedText): Ditto.
35317        (DOM::Position::isRenderedCharacter): Ditto.
35318        (DOM::Position::rendersInDifferentPosition): Ditto.
35319        (DOM::Position::isFirstRenderedPositionOnLine): Ditto.
35320        (DOM::Position::isLastRenderedPositionOnLine): Ditto.
35321        (DOM::Position::inFirstEditableInRootEditableElement): Ditto.
35322        (DOM::Position::leadingWhitespacePosition): Ditto.
35323        (DOM::Position::trailingWhitespacePosition): Ditto.
35324        (DOM::Position::debugPosition): Ditto.
35325        (DOM::Position::formatForDebugger): Ditto.
35326
35327        * khtml/xml/dom_caretposition.h: Change to use m_position, and change names.
35328        * khtml/xml/dom_caretposition.cpp:
35329        (DOM::CaretPosition::CaretPosition): Remove code to set up m_node.
35330        (DOM::CaretPosition::init): Set m_position directly.
35331        (DOM::CaretPosition::isLastInBlock): Updated for name changes.
35332        (DOM::CaretPosition::next): Set m_position directly.
35333        (DOM::CaretPosition::previous): Set m_position directly.
35334        (DOM::CaretPosition::previousCaretPosition): Updated for name changes.
35335        (DOM::CaretPosition::nextCaretPosition): Ditto.
35336        (DOM::CaretPosition::previousPosition): Ditto.
35337        (DOM::CaretPosition::nextPosition): Ditto.
35338        (DOM::CaretPosition::atStart): Ditto.
35339        (DOM::CaretPosition::atEnd): Ditto.
35340        (DOM::CaretPosition::isCandidate): Ditto.
35341        (DOM::CaretPosition::debugPosition): Ditto.
35342        (DOM::CaretPosition::formatForDebugger): Ditto.
35343        (DOM::startOfWord): Ditto.
35344        (DOM::endOfWord): Ditto.
35345        (DOM::previousParagraphPosition): Ditto.
35346        (DOM::nextParagraphPosition): Ditto.
35347
35348        * khtml/xml/dom_selection.h: Updated names. Added isCaret and isRange.
35349        * khtml/xml/dom_selection.cpp:
35350        (DOM::Selection::modifyMovingRightForward): Updated for name changes.
35351        (DOM::Selection::modifyMovingLeftBackward): Ditto.
35352        (DOM::Selection::modify): Ditto.
35353        (DOM::Selection::expandUsingGranularity): Ditto.
35354        (DOM::Selection::xPosForVerticalArrowNavigation): Ditto.
35355        (DOM::Selection::toRange): Ditto.
35356        (DOM::Selection::layoutCaret): Ditto.
35357        (DOM::Selection::needsCaretRepaint): Ditto.
35358        (DOM::Selection::validate): Ditto.
35359        (DOM::startOfFirstRunAt): Ditto.
35360        (DOM::endOfLastRunAt): Ditto.
35361        (DOM::selectionForLine): Ditto.
35362        (DOM::Selection::formatForDebugger): Ditto.
35363
35364        * khtml/ecma/kjs_window.cpp:
35365        (Selection::get): Updated for name changes.
35366        (Selection::toString): Ditto.
35367        * khtml/editing/htmlediting_impl.cpp:
35368        (khtml::debugPosition): Ditto.
35369        (khtml::StyleChange::init): Ditto.
35370        (khtml::StyleChange::currentlyHasStyle): Ditto.
35371        (khtml::CompositeEditCommandImpl::deleteSelection): Ditto.
35372        (khtml::CompositeEditCommandImpl::deleteUnrenderedText): Ditto.
35373        (khtml::ApplyStyleCommandImpl::doApply): Ditto.
35374        (khtml::DeleteSelectionCommandImpl::doApply): Ditto.
35375        (khtml::InputNewlineCommandImpl::doApply): Ditto.
35376        (khtml::InputTextCommandImpl::prepareForTextInsertion): Ditto.
35377        (khtml::InputTextCommandImpl::input): Ditto.
35378        (khtml::ReplaceSelectionCommandImpl::doApply): Ditto.
35379        (khtml::MoveSelectionCommandImpl::doApply): Ditto.
35380        (khtml::TypingCommandImpl::doApply): Ditto.
35381        (khtml::TypingCommandImpl::markMisspellingsAfterTyping): Ditto.
35382        (khtml::TypingCommandImpl::issueCommandForDeleteKey): Ditto.
35383        * khtml/editing/jsediting.cpp:
35384        (enabledAnySelection): Ditto.
35385        (enabledRangeSelection): Ditto.
35386        * khtml/khtml_part.cpp:
35387        (KHTMLPart::hasSelection): Ditto.
35388        (KHTMLPart::setFocusNodeIfNeeded): Ditto.
35389        (KHTMLPart::selectionLayoutChanged): Ditto.
35390        (KHTMLPart::timerEvent): Ditto.
35391        (KHTMLPart::isPointInsideSelection): Ditto.
35392        (KHTMLPart::selectClosestWordFromMouseEvent): Ditto.
35393        (KHTMLPart::handleMousePressEventTripleClick): Ditto.
35394        (KHTMLPart::handleMousePressEventSingleClick): Ditto.
35395        (KHTMLPart::handleMouseMoveEventSelection): Ditto.
35396        (KHTMLPart::khtmlMouseReleaseEvent): Ditto.
35397        (KHTMLPart::selectionHasStyle): Ditto.
35398        (KHTMLPart::selectionComputedStyle): Ditto.
35399        * khtml/xml/dom_docimpl.cpp: (DocumentImpl::updateSelection): Ditto.
35400        * khtml/xml/dom_positioniterator.cpp:
35401        (DOM::PositionIterator::peekPrevious): Ditto.
35402        (DOM::PositionIterator::peekNext): Ditto.
35403        (DOM::PositionIterator::atStart): Ditto.
35404        (DOM::PositionIterator::atEnd): Ditto.
35405        * khtml/xml/dom_positioniterator.h:
35406        (DOM::PositionIterator::isEmpty): Ditto.
35407        * kwq/KWQRenderTreeDebug.cpp:
35408        (writeSelection): Ditto.
35409        * kwq/WebCoreBridge.mm:
35410        (-[WebCoreBridge editableDOMRangeForPoint:]): Ditto.
35411        (-[WebCoreBridge deleteSelection]): Ditto.
35412        (-[WebCoreBridge ensureCaretVisible]): Ditto.
35413        (-[WebCoreBridge rangeOfCharactersAroundCaret]): Ditto.
35414
354152004-09-20  Darin Adler  <darin@apple.com>
35416
35417        Reviewed by Maciej.
35418
35419        - fixed <rdar://problem/3808073> find is broken
35420
35421        * khtml/misc/khtml_text_operations.h: Add m_pastEndNode and change name of m_endNode to
35422        m_endContainer to more accurately reflect its purpose.
35423        * khtml/misc/khtml_text_operations.cpp:
35424        (khtml::TextIterator::TextIterator): Use pastEnd() for end of iteration, and change to
35425        handle bad ranges better: just return an empty iterator instead of raising an exception.
35426        (khtml::TextIterator::advance): Change to use m_pastEndNode to detect the end of iteration.
35427        (khtml::TextIterator::handleTextNode): Update for name change.
35428        (khtml::TextIterator::handleTextBox): Ditto.
35429        (khtml::TextIterator::range): Handle case where m_endContainer is nil.
35430
35431        * khtml/xml/dom2_rangeimpl.cpp:
35432        (DOM::RangeImpl::surroundContents): Use offsetInCharacters.
35433        (DOM::RangeImpl::startNode): Added check for nil start container and use offsetInCharacters.
35434        (DOM::RangeImpl::pastEndNode): Ditto.
35435
354362004-09-20  Chris Blumenberg  <cblu@apple.com>
35437
35438	Fixed: <rdar://problem/3781290> REGRESSION (Mail): Crash in ReplaceSelectionCommandImpl attaching file to new message
35439
35440        Reviewed by kocienda.
35441
35442        * khtml/khtml_part.cpp:
35443        (KHTMLPart::setSelection): setFocusNodeIfNeeded now works on the current selection so call setFocusNodeIfNeeded after setting the selection
35444        (KHTMLPart::clearSelection): don't call setFocusNodeIfNeeded with the current selection
35445        (KHTMLPart::setCaretVisible): ditto
35446        (KHTMLPart::setFocusNodeIfNeeded): do nothing if the part isn't focused, work with the current selection
35447        * khtml/khtml_part.h:
35448        * khtml/khtmlpart_p.h:
35449        (KHTMLPartPrivate::KHTMLPartPrivate): added m_isFocused
35450        * kwq/KWQKHTMLPart.h:
35451        * kwq/KWQKHTMLPart.mm:
35452        (KWQKHTMLPart::KWQKHTMLPart): removed _displaysWithFocusAttributes this is replaced by m_isFocused
35453        (KWQKHTMLPart::setSelectionFromNone): new, code factored out from setDisplaysWithFocusAttributes
35454        (KWQKHTMLPart::setDisplaysWithFocusAttributes): call setSelectionFromNone
35455        (KWQKHTMLPart::displaysWithFocusAttributes): now returns m_isFocused
35456        * kwq/WebCoreBridge.h:
35457        * kwq/WebCoreBridge.mm:
35458        (-[WebCoreBridge setSelectionFromNone]): new
35459
354602004-09-20  Darin Adler  <darin@apple.com>
35461
35462        Reviewed by Dave.
35463
35464        - fixed nil-deref happening often in Mail when I delete
35465
35466        * khtml/rendering/render_br.cpp: (RenderBR::selectionRect): Check for nil lastLeafChild.
35467        Dave may want to figure out why it's nil and do a different fix later.
35468
354692004-09-20  Maciej Stachowiak  <mjs@apple.com>
35470
35471        Reviewed by Richard.
35472
35473	<rdar://problem/3672101> HANG: typing into login field at dws-direkt.deutsche-bank.de (infinite recursion)
35474        
35475	* khtml/xml/dom_docimpl.cpp:
35476        (DocumentImpl::defaultEventHandler): Copy the list of handlers
35477	before firing any of them, in case a handler affects the list of
35478	event handlers.
35479
354802004-09-20  Chris Blumenberg  <cblu@apple.com>
35481
35482	Fixed:
35483	<rdar://problem/3429921> obey PARAM tags inside of OBJECT tags when necessary
35484	<rdar://problem/3515685> Object tag in Java 1.4.1 / Safari doesn't recognize params
35485
35486        Reviewed by darin.
35487
35488        * khtml/khtml_part.cpp:
35489        (KHTMLPart::requestFrame): take 2 parameter arrays rather than 1 which will have to be parsed
35490        (KHTMLPart::requestObject): ditto
35491        * khtml/khtml_part.h:
35492        * khtml/khtmlpart_p.h:
35493        * khtml/rendering/render_frames.cpp:
35494        (RenderPartObject::updateWidget): use PARAM tags when there is no EMBED specified
35495        * kwq/KWQKHTMLPart.h:
35496        * kwq/KWQKHTMLPart.mm:
35497        (KWQKHTMLPart::createPart): call renamed bridge method
35498        * kwq/KWQKJavaAppletWidget.mm:
35499        (KJavaAppletWidget::KJavaAppletWidget): ditto
35500        * kwq/KWQStringList.h:
35501        * kwq/KWQStringList.mm:
35502        (QStringList::getNSArray): return a const array
35503        * kwq/WebCoreBridge.h:
35504        * kwq/WebCoreBridge.mm:
35505        (-[WebCoreBridge URLWithAttributeString:]): renamed to match API
35506
355072004-09-20  Darin Adler  <darin@apple.com>
35508
35509        Reviewed by Ken.
35510
35511        - fixed <rdar://problem/3655360> REGRESSION (Mail): Ctrl-V emacs key binding, -pageDown: method, unimplemented (and pageUp, and selection-modifying versions)
35512        - fixed <rdar://problem/3735055> REGRESSION (Mail): WebCore double click rules treat style change as a boundary
35513        - fixed <rdar://problem/3789939> REGRESSION (Mail): double-clicking on border whitespace selects space plus word before/after
35514        - fixed <rdar://problem/3792138> REGRESSION (Mail): Spell checker doesn't check current selected word
35515        - fixed <rdar://problem/3806604> REGRESSION (164): Triple-click sometimes selects extra characters
35516        - fixed <rdar://problem/3806996> REGRESSION (125-162): Triple-click in <pre> tagged text behaves oddly (leuf.net)
35517
35518        * khtml/xml/dom_caretposition.h: Added a lot of new functions. Removed implicit conversion operator
35519        that converts from CaretPosition to Position.
35520        * khtml/xml/dom_caretposition.cpp:
35521        (DOM::CaretPosition::CaretPosition): Change to call deepEquivalent so it works without the implicit
35522        Position conversion operator.
35523        (DOM::CaretPosition::operator=): Ditto.
35524        (DOM::CaretPosition::next): Ditto.
35525        (DOM::CaretPosition::previous): Ditto.
35526        (DOM::CaretPosition::setPosition): Added an assertion.
35527        (DOM::start): Added.
35528        (DOM::end): Added.
35529        (DOM::setStart): Added.
35530        (DOM::setEnd): Added.
35531        (DOM::previousWordBoundary): Added.
35532        (DOM::nextWordBoundary): Added.
35533        (DOM::startWordBoundary): Added.
35534        (DOM::startOfWord): Added.
35535        (DOM::endWordBoundary): Added.
35536        (DOM::endOfWord): Added.
35537        (DOM::previousWordPositionBoundary): Added.
35538        (DOM::previousWordPosition): Added.
35539        (DOM::nextWordPositionBoundary): Added.
35540        (DOM::nextWordPosition): Added.
35541        (DOM::previousLinePosition): Added.
35542        (DOM::nextLinePosition): Added.
35543        (DOM::startOfParagraph): Changed function name.
35544        (DOM::endOfParagraph): Changed function name. Fixed code in includeLineBreak to work around
35545        the CaretPosition constructor issue for <br>, pass the right parameter for the block flow case,
35546        and handle <pre> properly.
35547        (DOM::inSameParagraph): Added.
35548        (DOM::previousParagraphPosition): Added.
35549        (DOM::nextParagraphPosition): Added.
35550
35551        * khtml/xml/dom_position.h: Removed a number of functions no longer used; also made some private.
35552        * khtml/xml/dom_position.cpp: Removed a number of functions no longer used.
35553
35554        * khtml/xml/dom_selection.h: Replaced DOCUMENT with DOCUMENT_BOUNDARY. Added overloads of lots
35555        of functions that take CaretPosition directly. Added overload of modify that takes a parameter
35556        for vertical distance to help implement pageDown: and friends. Replaced getRepaintRect with
35557        two new functions named caretRect and caretRepaintRect. Removed nodeIsBeforeNode.
35558        * khtml/xml/dom_selection.cpp:
35559        (DOM::Selection::Selection): Added constructor that takes two CaretPosition objects.
35560        (DOM::Selection::setModifyBias): Added. Helper function.
35561        (DOM::Selection::modifyExtendingRightForward): Don't set modify bias, since that's now the caller's
35562        responsibility. Reimplement WORD and LINE in terms of new CaretPosition functions. Implement PARAGRAPH
35563        and change PARAGRAPH_BOUNDARY to use CaretPosition function by its new name.
35564        (DOM::Selection::modifyMovingRightForward): Ditto.
35565        (DOM::Selection::modifyExtendingLeftBackward): Ditto.
35566        (DOM::Selection::modifyMovingLeftBackward): Ditto.
35567        (DOM::Selection::modify): Call setModifyBias, and use a switch statement instead of if.
35568        (DOM::caretY): Added. Helper for the new modify function that implements moving a pixel distance,
35569        used by pageDown: and friends.
35570        (DOM::Selection::modify): Added.
35571        (DOM::Selection::toRange): Use RangeImpl::compareBoundaryPoints instead of nodeIsBeforeNode.
35572        (DOM::Selection::caretRect): Added. Replaces getRepaintRect, but does not add slop.
35573        (DOM::Selection::caretRepaintRect): Added. Replaces getRepaintRect; still adds slop.
35574        (DOM::Selection::needsCaretRepaint): Call caretRepaintRect.
35575        (DOM::Selection::validate): Use RangeImpl::compareBoundaryPoints instead of nodeIsBeforeNode.
35576        Reimplement WORD to use new CaretPosition functions; this fixes the double-clicking problems.
35577        Change paragraph calls to use new names.
35578
35579        * ForwardingHeaders/dom/dom_position.h: Removed. This was in the wrong location.
35580        * khtml/editing/htmlediting.cpp: Fixed include that said "dom/dom_position.h".
35581        * khtml/editing/htmlediting_impl.cpp: Fixed include that said "dom/dom_position.h".
35582        (khtml::TypingCommandImpl::markMisspellingsAfterTyping): Rewrote this to use the new CaretPosition
35583        functions instead of the old Position functions.
35584
35585        * khtml/misc/helper.h: Added const to character pointer parameter. Also put invertedColor inside
35586        an !APPLE_CHANGES since it doesn't do us any good.
35587        * khtml/misc/helper.cpp:
35588        (khtml::findWordBoundary): Added const to character pointer parameter.
35589        (khtml::nextWordFromIndex): Ditto.
35590
35591        * kwq/KWQTextUtilities.h: Change parameters to const.
35592        * kwq/KWQTextUtilities.cpp: (KWQFindWordBoundary): Change parameter to const.
35593        * kwq/KWQTextUtilities.mm: (KWQFindNextWordFromIndex): Change parameter to const.
35594
35595        * khtml/css/cssstyleselector.cpp: Disable code that uses invertedColor when APPLE_CHANGES, since it
35596        won't work for us.
35597
35598        * khtml/rendering/render_canvas.cpp: (RenderCanvas::setSelection): Added checks for selection end
35599        so we can set the selection end to nodes that are not leaf nodes and it will still work. Also took
35600        out bogus firstChild/lastChild loops for the same reason.
35601
35602        * kwq/KWQKHTMLPart.h: Add "start before selection" flag to advanceToNextMisspelling.
35603        Needed to fix bug with spell checking.
35604        * kwq/KWQKHTMLPart.mm:
35605        (KWQKHTMLPart::findString): Changed to use CaretPosition.
35606        (KWQKHTMLPart::advanceToNextMisspelling): Added code to handle "start before selection" flag
35607        and changed to use CaretPosition and new helper functions.
35608        (KWQKHTMLPart::markMisspellingsInSelection): More changes to use CaretPosition.
35609        (KWQKHTMLPart::updateSpellChecking): Ditto.
35610
35611        * kwq/WebCoreBridge.h: Replaced WebSelectByDocument with WebSelectToDocumentBoundary.
35612        Added advanceToNextMisspellingStartingJustBeforeSelection,
35613        rangeByAlteringCurrentSelection:verticalDistance:, and
35614        alterCurrentSelection:verticalDistance:.
35615
35616        * kwq/WebCoreBridge.mm:
35617        (-[WebCoreBridge advanceToNextMisspellingStartingJustBeforeSelection]): Added.
35618        (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Added case for selecting by
35619        paragraph to save X position.
35620        (-[WebCoreBridge rangeByAlteringCurrentSelection:verticalDistance:]): Added.
35621        (-[WebCoreBridge alterCurrentSelection:verticalDistance:]): Added.
35622        (-[WebCoreBridge ensureCaretVisible]): Call caretRect instead of getRepaintRect.
35623
356242004-09-20  Darin Adler  <darin@apple.com>
35625
35626        Reviewed by Ken.
35627
35628        - cleaned up DOM::RangeImpl a little so compareBoundaryPoints can be used outside the class
35629
35630        * khtml/xml/dom2_rangeimpl.h: Added const to many of the member functions and made the
35631        compareBoundaryPoints that works on parameters be a const member function.
35632        * khtml/xml/dom2_rangeimpl.cpp:
35633        (DOM::RangeImpl::commonAncestorContainer): Added const.
35634        (DOM::RangeImpl::compareBoundaryPoints): Added const.
35635        (DOM::RangeImpl::boundaryPointsValid): Added const, and wrote cleaner version.
35636        (DOM::RangeImpl::insertNode): Simplified by calling containedByReadOnly.
35637        (DOM::RangeImpl::toString): Added const.
35638        (DOM::RangeImpl::toHTML): Added const.
35639        (DOM::RangeImpl::createContextualFragment): Added const.
35640        (DOM::RangeImpl::cloneRange): Added const.
35641        (DOM::RangeImpl::surroundContents): Simplified by calling containedByReadOnly.
35642
356432004-09-20  Darin Adler  <darin@apple.com>
35644
35645        Reviewed by Ken.
35646
35647        - fixed <rdar://problem/3806990> REGRESSION (125-162): Crash on Select All at http://leuf.net/cgi/wikidn?PerlConvertEolScript
35648
35649        * khtml/rendering/render_replaced.cpp: (RenderWidget::setSelectionState): Added nil check for the
35650        widget.
35651
356522004-09-20  Darin Adler  <darin@apple.com>
35653
35654        Reviewed by Ken.
35655
35656        - fixed <rdar://problem/3773740> calling addEventListener on a frame that hasn't loaded yet crashes
35657
35658        * khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): Add nil checks for the document.
35659        The nil check prevents the crash but there's still a bug here; I filed 3807059 about that.
35660
356612004-09-20  Darin Adler  <darin@apple.com>
35662
35663        Reviewed by Ken.
35664
35665        - fixed problem where up and down arrow keys are not preserving X position
35666
35667        * khtml/khtml_part.cpp:
35668        (KHTMLPart::selectionLayoutChanged): Moved code to clear m_xPosForVerticalArrowNavigation out of here.
35669        (KHTMLPart::notifySelectionChanged): Moved it into here.
35670
356712004-09-18  Darin Adler  <darin@apple.com>
35672
35673        Reviewed by Maciej.
35674
35675        - fixed <rdar://problem/3805627> -[DOMRange _text] sometimes includes all text to the end of the document for certain ranges
35676
35677        * khtml/misc/khtml_text_operations.cpp: (khtml::TextIterator::advance):
35678        Correctly handle the case when we are already on m_endNode. The concept here is that
35679        m_endNode is a node you must never "leave" when iterating.
35680
35681=== Safari-164 ===
35682
356832004-09-17  Ken Kocienda  <kocienda@apple.com>
35684
35685        * layout-tests/editing/selection/unrendered-004-expected.txt: Updated expected results.
35686
356872004-09-17  Ken Kocienda  <kocienda@apple.com>
35688
35689        Reviewed by Darin
35690
35691        Fix for this bug:
35692        
35693        <rdar://problem/3780245> REGRESSION (Mail): some lines are skipped when doing arrow navigation
35694
35695        * khtml/xml/dom_position.cpp:
35696        (DOM::Position::previousLinePosition): One-line fix. Make sure that BRs at the end of blocks
35697        are not skipped.
35698
356992004-09-17  Ken Kocienda  <kocienda@apple.com>
35700
35701        Reviewed by Darin
35702
35703        Fix for this bug:
35704        
35705        <rdar://problem/3805594> REGRESSION (Mail): Second return key stroke does not work when first was in blockquote
35706
35707        * khtml/xml/dom_selection.cpp:
35708        (DOM::Selection::toRange): Code to convert caret positions moved the position upstream
35709        before making a range-compliant position, but erroneously would allow the position
35710        to cross blocks. Now it will no longer do so.
35711
357122004-09-16  Richard Williamson   <rjw@apple.com>
35713
35714        Part 1 of the feature requested in
35715        <rdar://problem/3752791> Dashboard: Need a better solution for control regions
35716
35717        This patch implements the CSS parsing necessary for dashboard regions.  
35718        Here's an example of the syntax we support:
35719
35720        <style>
35721        #aDiv {
35722            -apple-dashboard-region:
35723                dashboard-region-circle(control 0 0 80 0)
35724                dashboard-region-rectangle(control,20,0,20,0)
35725                dashboard-region-circle(control 80 0 0 0); 
35726        }
35727        </style>
35728
35729
35730	Part 2 will determine the appropriate regions.
35731
35732        Reviewed by Chris.
35733
35734        * khtml/css/css_valueimpl.cpp:
35735        (CSSPrimitiveValueImpl::CSSPrimitiveValueImpl):
35736        * khtml/css/css_valueimpl.h:
35737        (DOM::CSSPrimitiveValueImpl::):
35738        (DOM::DashboardRegionImpl::DashboardRegionImpl):
35739        (DOM::DashboardRegionImpl::~DashboardRegionImpl):
35740        (DOM::DashboardRegionImpl::setNext):
35741        (DOM::DashboardRegionImpl::setLabel):
35742        * khtml/css/cssparser.cpp:
35743        (CSSParser::parseValue):
35744        (CSSParser::parseContent):
35745        (skipCommaInDashboardRegion):
35746        (CSSParser::parseDashboardRegions):
35747        * khtml/css/cssparser.h:
35748        * khtml/css/cssproperties.c:
35749        (hash_prop):
35750        (findProp):
35751        * khtml/css/cssproperties.h:
35752        * khtml/css/cssproperties.in:
35753        * khtml/dom/css_value.h:
35754        (DOM::CSSPrimitiveValue::):
35755
357562004-09-16  Darin Adler  <darin@apple.com>
35757
35758        - fixed caret-drawing regression from my last patch
35759
35760        * khtml/xml/dom_selection.cpp:
35761        (DOM::Selection::xPosForVerticalArrowNavigation): Pass false, meaning "vertical line caret"
35762        rather than true meaning "big box for overtyping".
35763        (DOM::Selection::layoutCaret): Ditto.
35764
357652004-09-16  Darin Adler  <darin@apple.com>
35766
35767        Reviewed by Ken.
35768
35769        - fixed <rdar://problem/3803280> crash in selectAll on page with no contents
35770
35771        * khtml/khtml_part.cpp: (KHTMLPart::selectAll): Handle case of 0 for documentElement().
35772        * khtml/xml/dom_position.cpp:
35773        (DOM::Position::previousWordPosition): Ditto.
35774        (DOM::Position::nextWordPosition): Ditto.
35775
35776        - cleaned up caret code
35777        - changed DOM::Selection to use CaretPosition more
35778
35779        * khtml/rendering/render_box.cpp: (RenderBox::caretRect): Change to use empty rectangles
35780        instead of an X value of -1 to mean no rectangle.
35781        * khtml/rendering/render_image.cpp: (RenderImage::selectionRect): Take advantage of the
35782        fixed QRect constructor.
35783        * khtml/rendering/render_object.cpp: (RenderObject::caretRect): Change to use empty
35784        rectangle instead of an X value of -1 to mean no rectangle.
35785        * khtml/rendering/render_text.cpp: (RenderText::caretRect): Cleaned up, and changed to use
35786        an empty rectangle instead of an X value of -1 to mean no rectangle.
35787
35788        * khtml/xml/dom_caretposition.h: Made conversion from Position to CaretPosition something you
35789        can do implicitly, since it's an unambiguous conversion. Conversion in the other direction
35790        needs to be done explicitly. Moved EIncludeLineBreak here, and added startParagraphBoundary
35791        and endParagraphBoundary functions.
35792        * khtml/xml/dom_caretposition.cpp:
35793        (DOM::startParagraphBoundary): Added. Replaces, and made from, member function of DOM::Position.
35794        (DOM::endParagraphBoundary): Ditto.
35795
35796        * khtml/xml/dom_position.h: Removed EIncludeLineBreak and startParagraphBoundary and
35797        endParagraphBoundary.
35798        * khtml/xml/dom_position.cpp: Removed startParagraphBoundary and endParagraphBoundary.
35799
35800        * khtml/xml/dom_selection.h: Use CaretPosition instead of Position in a few places.
35801        Use a QRect for the caret rect. Change nodeIsBeforeNode to be a static member function.
35802        * khtml/xml/dom_selection.cpp:
35803        (DOM::Selection::Selection): Change caret to store QRect instead of 3 separate fields.
35804        (DOM::Selection::init): Ditto.
35805        (DOM::Selection::operator=): Ditto.
35806        (DOM::Selection::modifyExtendingRightForward): Change to use CaretPosition instead of Position.
35807        Check for 0.
35808        (DOM::Selection::modifyMovingRightForward): Ditto. Check for 0.
35809        (DOM::Selection::modifyExtendingLeftBackward): Ditto.
35810        (DOM::Selection::modifyMovingLeftBackward): Ditto.
35811        (DOM::Selection::modify): Ditto.
35812        (DOM::Selection::layoutCaret): Change to use a QRect for the caret rect, and use an empty
35813        one to mean no rectangle.
35814        (DOM::Selection::getRepaintRect): Ditto.
35815        (DOM::Selection::paintCaret): Ditto.
35816        (DOM::Selection::validate): Change to use CaretPosition instead of Position. Also fixed
35817        PARAGRAPH_BOUNDARY, which was broken and doing the same thing as PARAGRAPH before, but
35818        it's not really used so that didn't matter. Check for 0.
35819        (DOM::Selection::nodeIsBeforeNode): Tightened up a bit and added some FIXMEs. This function
35820        has a number of problems and should probably be discarded in favor of the DOMStringImpl
35821        method that does the same thing.
35822
358232004-09-16  Ken Kocienda  <kocienda@apple.com>
35824
35825        Reviewed by Hyatt
35826        
35827        Fix for this bug:
35828        
35829        <rdar://problem/3787168> REGRESSION (Mail): Deleting text from the beginning of a quoted range removes the quoting from the rest
35830
35831        * khtml/editing/htmlediting_impl.cpp:
35832        (khtml::DeleteSelectionCommandImpl::moveNodesAfterNode): Only move the text nodes (and their siblings) when
35833        doing this move between blocks. This serves to mimic NSText behavior very well.
35834
358352004-09-15  Darin Adler  <darin@apple.com>
35836
35837        - fixed Panther build
35838
35839        * kwq/KWQAccObject.mm: (-[KWQAccObject accessibilityActionDescription:]): Fixed backwards
35840        check in #if that was compiling the code on Panther only rather than Tiger only.
35841
358422004-09-15  Darin Adler  <darin@apple.com>
35843
35844        Reviewed by John.
35845
35846        - fixed lockFocus exception I observed; perhaps not a real issue in the field due to exception blocking
35847
35848        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::imageFromRect): Put most of the function inside a
35849        big if statement to avoid the exception we get from lockFocus otherwise.
35850
358512004-09-15  Darin Adler  <darin@apple.com>
35852
35853        Reviewed by Dave.
35854
35855        - fixed <rdar://problem/3786467> REGRESSION (Mail): Reproducible crash replying to an HTML message when your preference is for plain text composing.
35856
35857        * khtml/rendering/render_block.h: Remove removeChildrenFromLineBoxes.
35858        * khtml/rendering/render_block.cpp: (khtml::RenderBlock::removeChild): Remove calls
35859        to removeChildrenFromLineBoxes which was the old way of working around this.
35860        * khtml/rendering/render_flow.cpp: (RenderFlow::detach): Add comments and code to handle
35861        removing children from line boxes we are about to delete.
35862
358632004-09-15  Richard Williamson   <rjw@apple.com>
35864
35865	Fixed <rdar://problem/3781561> REGRESSION (Mail): typing in Mail became suddenly really sluggish (substitute font code)
35866
35867	A DocumentMarker may begin before the InLineBox that includes
35868	it.  Ensure that we correctly handle that case.  The paintMarker()
35869	method and code that calls it could do with some cleanup to
35870	make it clearer how all the cases are handled, i.e. marker
35871	within box, or intersecting beginning or end of box.
35872
35873        Reviewed by Darin.
35874
35875        * khtml/rendering/render_text.cpp:
35876        (InlineTextBox::paintMarker):  Minimal change to ensure that we
35877	handle the case of marker starting before box.
35878
358792004-09-15  Darin Adler  <darin@apple.com>
35880
35881        Reviewed by John.
35882
35883        - get rid of some of the localizable strings in here; we still have to figure out
35884          how we're going to localize the last few role descriptions
35885
35886        * kwq/KWQAccObject.mm:
35887        (-[KWQAccObject roleDescription]): Use NSAccessibilityRoleDescription for most
35888        descriptions instead of a hard-coded string (inside the UI_STRING placeholder).
35889        (-[KWQAccObject accessibilityActionDescription:]): Same thing, with NSAccessibilityActionDescription.
35890
358912004-09-15  Darin Adler  <darin@apple.com>
35892
35893        Reviewed by John.
35894
35895        - did some QRect-related changes to facilitate later bug fixing
35896
35897        * kwq/KWQPainter.h: Added fillRect overload that takes QRect to match the real Qt one.
35898        * kwq/KWQPainter.mm: (QPainter::fillRect): Added overload that takes QRect.
35899
35900        * kwq/KWQRect.mm: (QRect::QRect): Change default constructed QRect to have a width and
35901        height of 0 rather than 1. Contrary to what we believed earlier, this is what Qt does.
35902
359032004-09-15  Darin Adler  <darin@apple.com>
35904
35905        Reviewed by John.
35906
35907        - fixed <rdar://problem/3799512> REGRESSION (Mail): caret flashes 1 pixel too far to the left
35908
35909        * khtml/rendering/render_text.cpp: (RenderText::caretRect): Added one to the horizontal position
35910        of the caret rect.
35911
359122004-09-15  Ken Kocienda  <kocienda@apple.com>
35913
35914        Reviewed by Hyatt
35915
35916        * khtml/editing/htmlediting_impl.cpp:
35917        (khtml::DeleteSelectionCommandImpl::doApply): The whitespace fixup code
35918        that makes sure proper whitespace renders after deletion was getting confused
35919        in cases where the deletion merged blocks. Basically, I needed to move some
35920        whitespace fixup code so it runs before deleting in the case where blocks
35921        need to be merged. It used to run after, and was getting confused by
35922        whitespace left over at the ends of the block after the deletion.
35923        * layout-tests/editing/deleting/delete-block-merge-contents-012-expected.txt: Added.
35924        * layout-tests/editing/deleting/delete-block-merge-contents-012.html: Added.
35925        * layout-tests/editing/deleting/delete-block-merge-contents-013-expected.txt: Added.
35926        * layout-tests/editing/deleting/delete-block-merge-contents-013.html: Added.
35927        * layout-tests/editing/deleting/delete-block-merge-contents-014-expected.txt: Added.
35928        * layout-tests/editing/deleting/delete-block-merge-contents-014.html: Added.
35929        * layout-tests/editing/deleting/delete-block-merge-contents-015-expected.txt: Added.
35930        * layout-tests/editing/deleting/delete-block-merge-contents-015.html: Added.
35931        * layout-tests/editing/deleting/delete-block-merge-contents-016-expected.txt: Added.
35932        * layout-tests/editing/deleting/delete-block-merge-contents-016.html: Added.
35933        * layout-tests/editing/deleting/delete-block-merge-contents-017-expected.txt: Added.
35934        * layout-tests/editing/deleting/delete-block-merge-contents-017.html: Added.
35935
359362004-09-15  Ken Kocienda  <kocienda@apple.com>
35937
35938        Reviewed by Hyatt
35939
35940        * khtml/editing/htmlediting_impl.cpp:
35941        (khtml::DeleteSelectionCommandImpl::moveNodesAfterNode): Renamed from moveNodesToBlock.
35942        Just some simplification and cleanup in this function.
35943        (khtml::DeleteSelectionCommandImpl::doApply): Remove a hunk of start-of-block code I thought
35944        I was going to get around to improving and refining. However, I no longer need this case.
35945        * khtml/editing/htmlediting_impl.h: Function name change.
35946
359472004-09-14  Darin Adler  <darin@apple.com>
35948
35949        Reviewed by Maciej.
35950
35951        - added method for fix to <rdar://problem/3788894> REGRESSION (Mail): ctrl-t emacs key binding does not work (transpose)
35952
35953        * kwq/WebCoreBridge.h: Added rangeOfCharactersAroundCaret.
35954        * kwq/WebCoreBridge.mm: (-[WebCoreBridge rangeOfCharactersAroundCaret]): Added.
35955
35956        * khtml/xml/dom_caretposition.h: Added range function to make a Range from two CaretPosition objects.
35957        * khtml/xml/dom_caretposition.cpp:
35958        (DOM::CaretPosition::rangeCompliantEquivalent): Fixed a bug in this that caused it to screw up
35959        ranges in text nodes. Also changed it to use offset 0 as Ken and I discussed.
35960        (DOM::range): Added.
35961
35962        * kwq/DOM.mm: (-[DOMRange description]): Added.
35963
359642004-09-14  Darin Adler  <darin@apple.com>
35965
35966        Reviewed by John.
35967
35968        - fixed <rdar://problem/3786986> REGRESSION: TEXTAREAs have extra wide right margins where the scrollbars used to be
35969
35970        * kwq/KWQTextArea.mm:
35971        (-[KWQTextArea _updateTextViewWidth]): Renamed from _frameSizeChanged. Now uses the width of
35972        the size from the contentSize method rather than trying to compute a size.
35973        (-[KWQTextArea initWithFrame:]): Call method by new name.
35974        (-[KWQTextArea tile]): Override this instead of setFrame: to adjust the size as the size of
35975        the text area changes.
35976
359772004-09-14  Chris Blumenberg  <cblu@apple.com>
35978
35979	Backed out my changes to these files. They were not meant to be checked. (I'm having a bad CVS day)
35980
35981        * kwq/WebCoreBridge.h:
35982        * kwq/WebCoreBridge.mm:
35983        (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:]):
35984        (-[WebCoreBridge replaceSelectionWithNode:selectReplacement:]):
35985        (-[WebCoreBridge replaceSelectionWithMarkupString:baseURLString:selectReplacement:]):
35986        (-[WebCoreBridge replaceSelectionWithText:selectReplacement:]):
35987
359882004-09-14  David Hyatt  <hyatt@apple.com>
35989
35990	Fix the crash in the layout tests caused by my recent selection changes.  Simply eliminate the buggy
35991	selection border setting code and let isSelectionBorder be implemented in terms of the SelectionState.
35992	
35993        Reviewed by kocienda
35994
35995        * khtml/rendering/render_canvas.cpp:
35996        (RenderCanvas::setSelection):
35997        * khtml/rendering/render_object.cpp:
35998        (RenderObject::RenderObject):
35999        (RenderObject::container):
36000        (RenderObject::isSelectionBorder):
36001        * khtml/rendering/render_object.h:
36002        (khtml::RenderObject::minMaxKnown):
36003        (khtml::RenderObject::setReplaced):
36004
360052004-09-14  Chris Blumenberg  <cblu@apple.com>
36006
36007	Fixed: <rdar://problem/3778680> REGRESSION: plug-in content sometimes doesn't show up
36008
36009        Reviewed by dave.
36010
36011        * khtml/html/html_objectimpl.cpp:
36012        (HTMLObjectElementImpl::parseHTMLAttribute): set needWidgetUpdate to true only if there is a renderer
36013        (HTMLObjectElementImpl::attach): if needWidgetUpdate is true, call updateWidget
36014
360152004-09-14  Maciej Stachowiak  <mjs@apple.com>
36016
36017        Reviewed by Darin.
36018
36019	- fixed <rdar://problem/3800315> encode-URI-test layout test is failing
36020	- updated escape/encodeURI layout test to match our new, more
36021	compatible behavior.
36022
36023        * layout-tests/fast/js/global/encode-URI-test.html:
36024
360252004-09-14  Ken Kocienda  <kocienda@apple.com>
36026
36027        Reviewed by Richard
36028
36029        Fix for this bug:
36030        
36031        <rdar://problem/3800834> REGRESSION (Mail): Can't delete backwards past quoted text using HTML editing
36032
36033        * khtml/editing/htmlediting_impl.cpp:
36034        (khtml::TypingCommandImpl::issueCommandForDeleteKey): Use CaretPosition class to get superior
36035        smarts about the selection to delete in the "start of block" case. This fixes the bug.
36036        While I was in the neighborhood, I cleaned up this function a bit.
36037        * layout-tests/editing/deleting/delete-3800834-fix-expected.txt: Added.
36038        * layout-tests/editing/deleting/delete-3800834-fix.html: Added.
36039
360402004-09-14  Ken Kocienda  <kocienda@apple.com>
36041
36042        * khtml/css/parser.cpp: Did not regenerate this file from parser.y before last checkin.
36043
360442004-09-14  Chris Blumenberg  <cblu@apple.com>
36045
36046	Fixed typos in last check-in.
36047
36048        * khtml/khtml_part.cpp:
36049        (KHTMLPart::selectClosestWordFromMouseEvent):
36050        (KHTMLPart::handleMousePressEventDoubleClick):
36051        * khtml/khtml_part.h:
36052        * kwq/KWQKHTMLPart.mm:
36053        (KWQKHTMLPart::sendContextMenuEvent):
36054
360552004-09-09  David Hyatt  <hyatt@apple.com>
36056
36057	Fix for 3667862, regression where dragging of selection became really slow.  This patch completely rewrites
36058	selection painting and drawing so that the enclosing rect is much more snug.  The containing block rect is no
36059	longer used at all.
36060	
36061        Reviewed by kocienda
36062
36063        * khtml/rendering/render_canvas.cpp:
36064        (RenderCanvas::selectionRect):
36065        (getSelectionInfo):
36066        (RenderCanvas::setSelection):
36067        (RenderCanvas::clearSelection):
36068        * khtml/rendering/render_canvas.h:
36069        * khtml/rendering/render_container.cpp:
36070        (RenderContainer::removeChildNode):
36071        * khtml/rendering/render_image.cpp:
36072        (RenderImage::selectionRect):
36073        (RenderImage::selectionTintColor):
36074        (RenderImage::paint):
36075        * khtml/rendering/render_image.h:
36076        * khtml/rendering/render_object.cpp:
36077        (RenderObject::selectionStartEnd):
36078        * khtml/rendering/render_object.h:
36079        (khtml::RenderObject::selectionRect):
36080        (khtml::RenderObject::SelectionInfo::object):
36081        (khtml::RenderObject::SelectionInfo::rect):
36082        (khtml::RenderObject::SelectionInfo::state):
36083        (khtml::RenderObject::SelectionInfo::SelectionInfo):
36084        (khtml::RenderObject::SelectionInfo::m_state):
36085        * khtml/rendering/render_text.cpp:
36086        (InlineTextBox::textObject):
36087        (InlineTextBox::selectionRect):
36088        (InlineTextBox::paintSelection):
36089        (RenderText::getAbsoluteRepaintRect):
36090        (RenderText::selectionRect):
36091        * khtml/rendering/render_text.h:
36092        * kwq/KWQPainter.mm:
36093        (getBlendedColorComponent):
36094        (QPainter::selectedTextBackgroundColor):
36095
360962004-09-14  Ken Kocienda  <kocienda@apple.com>
36097
36098        Reviewed by Hyatt
36099
36100        Fix for this bug:
36101        
36102        <rdar://problem/3794376> vertical formatting lines that show quote level are missing
36103
36104        Rolling out change Dave made to fix 3787686. It turns out that we do not want this
36105        change, as it does not appear to have any effect on the bug. In addition, it caused
36106        the regression in quote bar behavior.
36107
36108        * khtml/css/parser.cp
36109        * khtml/css/parser.y
36110
361112004-09-14  Chris Blumenberg  <cblu@apple.com>
36112
36113	Fixed: Control-click shouldn't cause deselect when clicking selection.
36114
36115        Reviewed by rjw.
36116
36117        * kwq/KWQKHTMLPart.mm:
36118        (KWQKHTMLPart::sendContextMenuEvent): don't attempt to select the closest word when the selection is clicked
36119
361202004-09-14  Chris Blumenberg  <cblu@apple.com>
36121
36122	Fixed badness that my last patch caused. Because there was a conflict, my last patch added stuff that darin had just removed.
36123
36124        Reviewed by darin.
36125
36126        * kwq/KWQKHTMLPart.mm:
36127        (KWQKHTMLPart::sendContextMenuEvent): don't call deref on the view
36128
361292004-09-14  Chris Blumenberg  <cblu@apple.com>
36130
36131	Fixed: <rdar://problem/3783595> REGRESSION (Mail): control-click does not select closest word
36132
36133        Reviewed by kocienda.
36134
36135        * khtml/khtml_part.cpp:
36136        (KHTMLPart::selectionGranularity): new getter, need this for an upcoming patch
36137        (KHTMLPart::selectClosetWordFromMouseEvent): new, factored from handleMousePressEventDoubleClick
36138        (KHTMLPart::handleMousePressEventDoubleClick): call selectClosetWordFromMouseEvent
36139        * khtml/khtml_part.h:
36140        * kwq/KWQKHTMLPart.mm:
36141        (KWQKHTMLPart::sendContextMenuEvent): call selectClosetWordFromMouseEvent if nothing swallows the event
36142
361432004-09-14  Ken Kocienda  <kocienda@apple.com>
36144
36145        Reviewed by John
36146
36147        Fix for this bug:
36148        
36149        <rdar://problem/3800346> Inserting newline in BR after block not working
36150
36151        * khtml/editing/htmlediting_impl.cpp:
36152        (khtml::InputNewlineCommandImpl::doApply): The code to insert the "extra" BR at the end
36153        of blocks (hack done to make BRs show up when they appear at the ends of blocks) did not
36154        cover this one quirky case where the insertion point can be placed in a BR at the end of 
36155        a block that does actually render. Now the input newline code can handle this addtional
36156        case.
36157        * layout-tests/editing/selection/insert-3800346-fix-expected.txt: Added.
36158        * layout-tests/editing/selection/insert-3800346-fix.html: Added.
36159
361602004-09-14  Darin Adler  <darin@apple.com>
36161
36162        Reviewed by Ken.
36163
36164        - fixed <rdar://problem/3479392> REGRESSION (Mail): select all does not select all at some pages
36165
36166        * khtml/xml/dom_caretposition.cpp: (DOM::CaretPosition::deepEquivalent):
36167        Use caretMaxOffset instead of maxOffset when descending to the last node.
36168        Also change around the function a bit.
36169
361702004-09-13  Darin Adler  <darin@apple.com>
36171
36172        Reviewed by Maciej.
36173
36174        - fixed <rdar://problem/3710123> Loading iframe that replaces content in the parent document crashes Safari (Oracle Portal)
36175
36176        This is a more complete fix, but it requires the previous attempt at a fix for this same
36177        bug below, because this is only the "don't destroy the KHTMLPart" portion; other fixes are
36178        still needed to survive shutdown of the part.
36179
36180        * khtml/ecma/kjs_proxy.cpp: (KJSProxyImpl::interpreter): Call the new keepAlive method.
36181        This is called whenever we're about to use an interpreter to run some JavaScript, and
36182        it's JavaScript that might destroy the part, hence the interpreter.
36183
36184        * khtml/khtml_part.h: Added keepAlive() and slotEndLifeSupport() member functions.
36185        * khtml/khtmlpart_p.h: Added m_lifeSupportTimer.
36186        * khtml/khtml_part.cpp:
36187        (KHTMLPart::init): Connects m_lifeSupportTimer to slotEndLifeSupport.
36188        (KHTMLPart::write): Removed old attempt to work around this issue.
36189        (KHTMLPart::end): Ditto.
36190        (KHTMLPart::keepAlive): Added. References the part, then sets up a one-shot timer.
36191        (KHTMLPart::slotEndLifeSupport): Added. Stops the timer and then removes the reference
36192        from the part, possibly destroying it.
36193
36194        * kwq/KWQSlot.mm:
36195        (KWQSlot::KWQSlot): Added the new slot to the list of slots.
36196        (KWQSlot::call): Ditto.
36197
36198        * kwq/KWQKHTMLPart.mm:
36199        (KWQKHTMLPart::sendResizeEvent): Removed an old attempt to work around this same issue.
36200        (KWQKHTMLPart::mouseDown): Ditto.
36201        (KWQKHTMLPart::mouseDragged): Ditto.
36202        (KWQKHTMLPart::mouseUp): Ditto.
36203        (KWQKHTMLPart::mouseMoved): Ditto.
36204        (KWQKHTMLPart::sendContextMenuEvent): Ditto.
36205
362062004-09-13  Darin Adler  <darin@apple.com>
36207
36208        Reviewed by Maciej.
36209
36210        - fixed regression caused by change earlier today
36211
36212        * khtml/xml/dom_selection.cpp: (DOM::Selection::modifyExtendingRightForward):
36213        Use CaretPosition for CHARACTER, not WORD.
36214
362152004-09-13  Darin Adler  <darin@apple.com>
36216
36217        Reviewed by Kevin.
36218
36219        - fixed <rdar://problem/3798453> DIG failure: getting variable with same name as DOM element attribute gets attribute value instead
36220
36221        * khtml/ecma/kjs_events.cpp: (JSEventListener::handleEvent): When adding current target and
36222        other event handler scope, put it below the existing scope chain. This ensures that things
36223        found in the function's scope will come before the event handler, as in other browsers.
36224
362252004-09-13  Ken Kocienda  <kocienda@apple.com>
36226
36227        Reviewed by Darin
36228        
36229        Fix for this bug:
36230        
36231        <rdar://problem/3798346> REGRESSION (125-162): crash pushing down arrow key on KLM.com site
36232
36233        * khtml/xml/dom_position.cpp:
36234        (DOM::Position::nextLinePosition): This function was being called in a case where it was not expected
36235        until we traced the code. It has to do with some deeper issues associated with handling arrow keys, 
36236        resulting in the editing arrow-down code running in a case where we are not editing. I discussed this 
36237        with Darin, and we decided to handle the broader issues at a later date. The fix I am checking in
36238        here to fix the bug is merely avoiding a null-deref.
36239
362402004-09-13  Ken Kocienda  <kocienda@apple.com>
36241
36242        Reviewed by John
36243
36244        Fix for this bug:
36245        
36246        <rdar://problem/3784840> REGRESSION (Mail): Text is inserted in the wrong place after changing typing style
36247
36248        * khtml/editing/htmlediting_impl.cpp:
36249        (khtml::InputTextCommandImpl::prepareForTextInsertion): Code to handle typing style did not
36250        check to see if the reference node used for the DOM node insertion operation was a block.
36251        If it is, then the new node containing the new editing style now is inserted at the start of the block,
36252        instead of after it.
36253
362542004-09-13  Ken Kocienda  <kocienda@apple.com>
36255
36256        Added a couple new layout tests to cover recent changes.
36257
36258        * layout-tests/editing/editing.js: Added some new functions to do by-word selection movement.
36259        * layout-tests/editing/selection/move-backwords-by-word-001-expected.txt: Added.
36260        * layout-tests/editing/selection/move-backwords-by-word-001.html: Added.
36261        * layout-tests/editing/selection/selection-3748164-fix-expected.txt: Added.
36262        * layout-tests/editing/selection/selection-3748164-fix.html: Added.
36263
362642004-09-13  Ken Kocienda  <kocienda@apple.com>
36265
36266        Reviewed by John
36267
36268        Fix for this bug:
36269        
36270        <rdar://problem/3765519> REGRESSION (Mail): word movement goes too far upstream at start of line
36271        
36272        * khtml/xml/dom_position.cpp:
36273        (DOM::Position::previousWordPosition): Use downstream position here when making final placement of caret. 
36274
362752004-09-13  Ken Kocienda  <kocienda@apple.com>
36276
36277        Reviewed by Darin
36278
36279        Various editing improvements, many focused on the improvements made possible by the
36280        new CaretPosition class.
36281        
36282        Includes fixes for these bugs:
36283        
36284        <rdar://problem/3748164> REGRESSION (Mail): Arrow navigation in typical mail message can result in stuck caret
36285        <rdar://problem/3782062> REGRESSION (Mail): option-delete can delete almost all of a message when it has trouble finding a word
36286        <rdar://problem/3790456> triple click does not select entire paragraph (folklore.org)
36287
36288        * WebCore.pbproj/project.pbxproj: Added CaretPosition class files.
36289        * khtml/dom/dom2_range.h:
36290        (DOM::offsetInCharacters): Moved this helper here from khtml_text_operations.cpp. This
36291        function helps to determine how to interpret the offsets used in DOM Ranges.
36292        * khtml/editing/htmlediting_impl.cpp:
36293        (khtml::InputNewlineCommandImpl::doApply): Use CaretPosition class to make "end-of-block" determination.
36294        Also, fix a caret placement glitch in "case 1" in the code: Place the caret in the node after the inserted
36295        BR. This makes it show up in the right place.
36296        * khtml/khtml_part.cpp:
36297        (KHTMLPart::handleMousePressEventDoubleClick): Don't limit double-click and triple-click handling only to text nodes.
36298        (KHTMLPart::handleMousePressEventTripleClick): Ditto.
36299        (KHTMLPart::selectAll): Use CaretPosition class to implement improved selectAll.
36300        * khtml/misc/khtml_text_operations.cpp:
36301        (khtml::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): Make a fix to the initial state setting of
36302        m_handledChildren. This is true if the offset into the end node is 0, meaning that we do not want to descend
36303        into its children at all.
36304        * khtml/xml/dom_caretposition.cpp: Added.
36305        * khtml/xml/dom_caretposition.h: Added.
36306        * khtml/xml/dom_nodeimpl.cpp:
36307        (NodeImpl::traverseNextNode): Fix bugs with the stayWithin implementation. We could miss nodes we want to test
36308        due to an erroneous check of stayWithin when no such check is needed.
36309        (NodeImpl::traverseNextSibling): Ditto.
36310        (NodeImpl::traversePreviousNodePostOrder): Ditto.
36311        * khtml/xml/dom_position.cpp:
36312        (DOM::Position::Position): Remove spurious semi-colon.
36313        (DOM::Position::upstream): Move incoming Position to its equivalentDeepPosition. This is part of the transition
36314        that will make this code work better with increased use of CaretPosition.
36315        (DOM::Position::downstream): Ditto.
36316        (DOM::Position::atStartOfContainingEditableBlock): Removed. Dead code; was not being called.
36317        (DOM::Position::atStartOfRootEditableElement): Removed. Dead code; was not being called.
36318        (DOM::Position::isLastRenderedPositionInEditableBlock): Removed. Replaced with calls to CaretPosition class.
36319        (DOM::Position::inLastEditableInRootEditableElement): Removed. Dead code; was not being called.
36320        (DOM::Position::inFirstEditableInRootEditableElement): Removed. Was only being called by other code that has been removed.
36321        * khtml/xml/dom_position.h:
36322        * khtml/xml/dom_selection.cpp:
36323        (DOM::Selection::modifyExtendingRightForward): Moved implementation of CHARACTER case to use CaretPosition class instead
36324        of Position class helpers.
36325        (DOM::Selection::modifyMovingRightForward): Ditto.
36326        (DOM::Selection::modifyExtendingLeftBackward): Ditto.
36327        (DOM::Selection::modifyMovingLeftBackward): Ditto.
36328        (DOM::Selection::validate): Made simplifications in code that used to call a concoction of Position class helpers to
36329        do the right thing. Now calls CaretPosition equivalents.
36330
363312004-09-13  Ken Kocienda  <kocienda@apple.com>
36332
36333        This test was broken. The result is that it was not testing what it was supposed to 
36334        be testing. I fixed the test and updated the expected results.
36335
36336        * layout-tests/editing/selection/move-between-blocks-no-001-expected.txt
36337        * layout-tests/editing/selection/move-between-blocks-no-001.html
36338
363392004-09-13  Ken Kocienda  <kocienda@apple.com>
36340
36341        Reviewed by John
36342
36343        Fix for these bugs:
36344        
36345        <rdar://problem/3784835> REGRESSION (Mail): crash in DOM::ElementImpl::tagName inside delete text command code while editing a Mail message
36346        <rdar://problem/3788015> REGRESSION (Mail): Crash deleting before a blockquote
36347        <rdar://problem/3796366> REGRESSION (Mail): Crash Mail by deleting the right line from pasted HTML
36348
36349        * khtml/editing/htmlediting_impl.cpp:
36350        (khtml::DeleteSelectionCommandImpl::doApply): All of these bugs are due to the same problem. When I
36351        made the delete command run even when the text is a caret (to make block merges work right when the
36352        caret is at the start of a block), I failed to handle one case when there might be no text to 
36353        delete. This resulted in a call to the DeleteTextCommand with a zero-length deletion request.
36354        This is not supported. Now, I have added an additional test in this one place in the code that
36355        was causing all these failures.
36356
363572004-09-12  Darin Adler  <darin@apple.com>
36358
36359        Reviewed by Maciej.
36360
36361        - fixed <rdar://problem/3797758> REGRESSION (155-156): Cannot tab between input fields at switchboard.com
36362
36363        * kwq/KWQLineEdit.mm: (QLineEdit::selectAll): Use setFocus() instead of calling makeFirstResponder
36364        directly since it handles the case where the field editor has focus.
36365
363662004-09-12  Darin Adler  <darin@apple.com>
36367
36368        Reviewed by Maciej.
36369
36370        - fixed <rdar://problem/3792082> zero character codes in UTF-16 input cause crash
36371
36372        * kwq/KWQTextCodec.mm: (KWQTextDecoder::convertUTF16): Fixed code that was using the wrong variable
36373        to decrement the input length, causing buffer overrun.
36374
363752004-09-12  Darin Adler  <darin@apple.com>
36376
36377        Reviewed by Maciej.
36378
36379        - fixed <rdar://problem/3798240> computed style error log messages seen with numbers in the range 74-77
36380
36381        * khtml/css/css_computedstyle.cpp: (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
36382        Added implementations for CSS_PROP__KHTML_MARQUEE_INCREMENT, CSS_PROP_MAX_HEIGHT, CSS_PROP_MAX_WIDTH,
36383        CSS_PROP_MIN_HEIGHT, CSS_PROP_MIN_WIDTH, and CSS_PROP_VISIBILITY.
36384
363852004-09-12  Darin Adler  <darin@apple.com>
36386
36387        * layout-tests/css1/text_properties/text-transform-expected.txt: Removed unused test result.
36388
363892004-09-11  Maciej Stachowiak  <mjs@apple.com>
36390
36391        Reviewed by Darin.
36392
36393	<rdar://problem/3787208> can't log in to SAP SDN site (JS parse error)
36394
36395        * kwq/KWQKURL.mm:
36396        (KURL::decode_string): Check for find result >= 0 instead of >0,
36397	to handle case of first character in a string being encoded.
36398
363992004-09-09  Chris Blumenberg  <cblu@apple.com>
36400
36401	Support for: <rdar://problem/3795485> debug menu item to enable RSS animation on first layout
36402
36403        Reviewed by rjw.
36404
36405        * khtml/khtml_part.h:
36406        (KHTMLPart::didFirstLayout): new
36407        * khtml/khtmlview.cpp:
36408        (KHTMLView::layout): call didFirstLayout
36409        * kwq/KWQKHTMLPart.h:
36410        * kwq/KWQKHTMLPart.mm:
36411        (KWQKHTMLPart::didFirstLayout): new
36412        * kwq/WebCoreBridge.h:
36413
36414=== Safari-163 ===
36415
364162004-09-09  Maciej Stachowiak  <mjs@apple.com>
36417
36418        - roll out the last change, it appears to cause a performance regression
36419
36420        * khtml/rendering/render_box.cpp:
36421        (RenderBox::caretRect):
36422        * khtml/rendering/render_box.h:
36423        * khtml/rendering/render_br.cpp:
36424        (RenderBR::caretRect):
36425        * khtml/rendering/render_br.h:
36426        * khtml/rendering/render_flow.cpp:
36427        (RenderFlow::caretRect):
36428        * khtml/rendering/render_flow.h:
36429        * khtml/rendering/render_object.cpp:
36430        (RenderObject::caretRect):
36431        * khtml/rendering/render_object.h:
36432        * khtml/rendering/render_text.cpp:
36433        (RenderText::caretRect):
36434        * khtml/rendering/render_text.h:
36435        * kwq/WebCoreBridge.h:
36436        * kwq/WebCoreBridge.mm:
36437
364382004-09-08  Maciej Stachowiak  <mjs@apple.com>
36439
36440        Reviewed by Dave.
36441
36442	WebCore part of fix for:
36443	
36444	<rdar://problem/3759187> REGRESSION (Mail): implement firstRectForCharacterRange:
36445	
36446        * kwq/WebCoreBridge.h:
36447        * kwq/WebCoreBridge.mm:
36448        (-[WebCoreBridge firstRectForDOMRange:]): New method to compute the rect for a
36449	DOMRange, or if the range is split into multiple lines, the rect for the part on
36450	the first line only.
36451	
36452        * khtml/rendering/render_object.cpp:
36453        (RenderObject::caretRect): Added extraWidthToEndOfLine parameter and ditto
36454	for the overrides below.
36455        * khtml/rendering/render_object.h:
36456        * khtml/rendering/render_box.cpp:
36457        (RenderBox::caretRect):
36458        * khtml/rendering/render_box.h:
36459        * khtml/rendering/render_br.cpp:
36460        (RenderBR::caretRect):
36461        * khtml/rendering/render_br.h:
36462        * khtml/rendering/render_flow.cpp:
36463        (RenderFlow::caretRect):
36464        * khtml/rendering/render_flow.h:
36465        * khtml/rendering/render_text.cpp:
36466        (RenderText::caretRect):
36467
364682004-09-06  Darin Adler  <darin@apple.com>
36469
36470        Reviewed by Ken.
36471
36472        - fixed <rdar://problem/3790526> mark-related methods not implemented (needed for people with them in their key bindings files)
36473
36474        * khtml/khtml_part.h: Added mark and setMark.
36475        * khtml/khtmlpart_p.h: Added m_mark.
36476        * khtml/khtml_part.cpp:
36477        (KHTMLPart::mark): Added.
36478        (KHTMLPart::setMark): Added.
36479
36480        * kwq/KWQKHTMLPart.h: Change name of markedRange to markedTextRange to decrease
36481        the change it will be confused with the mark.
36482        * kwq/KWQKHTMLPart.mm:
36483        (KWQKHTMLPart::clear): Update for name change.
36484        (KWQKHTMLPart::markedTextRange): Ditto.
36485        (KWQKHTMLPart::setMarkedTextRange): Ditto.
36486
36487        * khtml/rendering/render_text.cpp: (RenderText::paint): Update for name change.
36488
36489        * kwq/WebCoreBridge.h: Remove setSelectionFrom, selectionStart, selectionStartOffset,
36490        selectionEnd, selectionEndOffset, and clearMarkedDOMRange. Renamed setMarkedDOMRange
36491        to setMarkedTextDOMRange and markedDOMRange to markedTextDOMRange. Added setMarkDOMRange
36492        and markDOMRange for the Emacs "mark".
36493        * kwq/WebCoreBridge.mm:
36494        (-[WebCoreBridge setMarkDOMRange:]): Added.
36495        (-[WebCoreBridge markDOMRange]): Added.
36496        (-[WebCoreBridge setMarkedTextDOMRange:]): Renamed.
36497        (-[WebCoreBridge markedTextDOMRange]): Renamed.
36498
36499        * khtml/xml/dom_selection.cpp: (DOM::Selection::validate): Make paragraph positions
36500        canonical by using deep rendered positions. Maybe someday this won't be an ad hoc
36501        decision any more.
36502
36503        * khtml/xml/dom_nodeimpl.cpp: (NodeBaseImpl::removeChildren): Use ref and deref
36504        rather than the unconventional check for 0 refCount. This makes us a bit more
36505        robust against a node going away partway through the removal process.
36506
36507        * WebCore.pbproj/project.pbxproj: Update MACOSX_DEPLOYMENT_TARGET to 10.3.
36508
365092004-09-08  Maciej Stachowiak  <mjs@apple.com>
36510
36511        - fixed deployment build problems noticed by Grant
36512
36513        * khtml/rendering/render_flow.cpp:
36514        (RenderFlow::caretRect):
36515        * khtml/rendering/render_text.cpp:
36516        (RenderText::caretRect):
36517
365182004-09-08  David Hyatt  <hyatt@apple.com>
36519
36520	Fix XML so that elements with no namespace never make HTML elements (when their names coincidentally match).
36521	
36522        Reviewed by rjw
36523
36524        * khtml/xml/dom_docimpl.cpp:
36525        (DocumentImpl::createElementNS):
36526
365272004-09-07  Maciej Stachowiak  <mjs@apple.com>
36528
36529        Reviewed by John.
36530
36531	- renamed caretPos to caretRect and made it return a QRect instead
36532	of taking four out parameters by reference.
36533	
36534        * khtml/rendering/render_box.cpp:
36535        (RenderBox::caretRect):
36536        * khtml/rendering/render_box.h:
36537        * khtml/rendering/render_br.cpp:
36538        (RenderBR::caretRect):
36539        * khtml/rendering/render_br.h:
36540        * khtml/rendering/render_flow.cpp:
36541        (RenderFlow::caretRect):
36542        * khtml/rendering/render_flow.h:
36543        * khtml/rendering/render_object.cpp:
36544        (RenderObject::caretRect):
36545        * khtml/rendering/render_object.h:
36546        * khtml/rendering/render_text.cpp:
36547        (RenderText::caretRect):
36548        * khtml/rendering/render_text.h:
36549        * khtml/xml/dom_selection.cpp:
36550        (DOM::Selection::xPosForVerticalArrowNavigation):
36551        (DOM::Selection::layoutCaret):
36552        * kwq/WebCoreBridge.mm:
36553        (-[WebCoreBridge caretRectAtNode:offset:]):
36554
365552004-09-07  Maciej Stachowiak  <mjs@apple.com>
36556
36557        Reviewed by Kevin.
36558
36559	<rdar://problem/3759209> REGRESSION (Mail): assertion failure when all of marked text deleted at start of document
36560	
36561        * kwq/KWQKHTMLPart.mm:
36562        (KWQKHTMLPart::setMarkedRange): Allow any empty range, even if
36563	it's not in a text node, since in this case it won't matter and
36564	weird things can happen when all marked text is removed, there
36565	might not be any text nodes.
36566
365672004-09-07  David Hyatt  <hyatt@apple.com>
36568
36569	Initial text-decoration CSS3 work for editing.  Just gets the properties and values parsed.
36570	
36571        Reviewed by darin
36572
36573        * khtml/css/css_computedstyle.cpp:
36574        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
36575        * khtml/css/cssparser.cpp:
36576        (CSSParser::parseValue):
36577        * khtml/css/cssproperties.c:
36578        (hash_prop):
36579        (findProp):
36580        * khtml/css/cssproperties.h:
36581        * khtml/css/cssproperties.in:
36582        * khtml/css/cssstyleselector.cpp:
36583        (khtml::CSSStyleSelector::adjustRenderStyle):
36584        * khtml/css/cssvalues.c:
36585        (hash_val):
36586        (findValue):
36587        * khtml/css/cssvalues.h:
36588        * khtml/css/cssvalues.in:
36589
365902004-09-06  Maciej Stachowiak  <mjs@apple.com>
36591
36592        Reviewed by Darin and Ken.
36593
36594	<rdar://problem/3655568> window.open fails when URL contains trailing space
36595
36596        * kwq/KWQKURL.mm:
36597        (KURL::KURL): Strip trailing and leading space when resolving relative URLs in all
36598	cases, instead of just leading in the non-absolute case as before.
36599
36600	- refactored KURL constructor to put more work in separate
36601	functions and also to change static methods to static functions,
36602	to avoid having to change the header when only changing helper
36603	functions that do not affect the KURL API (since KURL.h is widely
36604	included).
36605	
36606        * kwq/KWQKURL.mm:
36607        (encodeHostname):
36608        (findHostnamesInMailToURL):
36609        (findHostnameInHierarchicalURL):
36610        (encodeHostnames):
36611        (encodeRelativeString):
36612        (substituteBackslashes):
36613	* kwq/KWQKURL.h:
36614
36615	- add missing include of qvaluelist.h
36616
36617        * khtml/ecma/kjs_dom.h:
36618
366192004-09-06  Darin Adler  <darin@apple.com>
36620
36621        Reviewed by John.
36622
36623        - fixed <rdar://problem/3512066> REGRESSION (Mail): Select All highlights only part of the content, though all is copied
36624        - fixed <rdar://problem/3157025> REGRESSION (Mail): Should select paragraph instead of line on triple-click
36625        - fixed <rdar://problem/3735048> REGRESSION (Mail): HTML editing must select newline on triple click
36626        - fixed <rdar://problem/3788872> REGRESSION (Mail): ctrl-a emacs key binding does not work (move to start of paragraph)
36627        - fixed <rdar://problem/3788881> REGRESSION (Mail): ctrl-e emacs key binding does not work (move to end of paragraph)
36628        - fixed <rdar://problem/3789931> REGRESSION (Mail): typing style lost when you backspace
36629        - added code to select inserted text to help WebKit implement yankAndSelect:
36630        - did some clean-up on editing commands code
36631        
36632        * khtml/khtml_part.cpp:
36633        (KHTMLPart::handleMousePressEventTripleClick): Expand to a paragraph, not a line.
36634        (KHTMLPart::selectAll): Remove a lot of unneeded code and just expand to document using Selection.
36635        (KHTMLPart::selectionHasStyle): Remove check that limited us to only HTML elements, and add
36636        a check for nil. Together, these two changes fix a few cases I ran into during testing.
36637
36638        * khtml/rendering/render_canvas.cpp: (RenderCanvas::setSelection): Fix test that was checking if
36639        the old selection spanned multiple objects when it really should have checked whether the new
36640        new selection spans multiple objects. This caused the select all redraw bug.
36641
36642        * khtml/editing/htmlediting.h: Fixed indenting. Remove command IDs, replacing them with a couple
36643        of specific type checking methods, and SharedCommandImpl, using EditCommandImpl directly instead.
36644        Got rid of virtual functions, since the command objects have no data members other than the ones
36645        inherited from SharedPtr. Removed explicit copy constructors and destructors. Removed unneeded
36646        empty constructors. Removed inline directives that were having no effect. Added some boolean
36647        selectInsertedText parameter to some commands. Made almost all member functions const, because
36648        the const here applies to the command object which is a smart pointer, not the pointed-to
36649        command implementation object.
36650        * khtml/editing/htmlediting.cpp:
36651        (khtml::EditCommand::EditCommand): Changed since SharedPtr is now a pointer to EditCommandImpl.
36652        (khtml::EditCommand::operator=): Added. By defining this explicitly, we don't need the class
36653        that we are pointing to defined in the header, which lets us get rid of SharedCommandImpl.
36654        (khtml::EditCommand::isInputTextCommand): Added.
36655        (khtml::EditCommand::isTypingCommand): Added.
36656        (khtml::EditCommand::setParent): Updated since EditCommandImpl.setParent takes an impl pointer now.
36657        (khtml::EditCommand::handle): Removed, since it's identical to get().
36658        (khtml::InputTextCommand::input): Added selectInsertedText parameter.
36659        (khtml::TypingCommand::TypingCommand): Ditto.
36660        (khtml::TypingCommand::insertText): Ditto.
36661        (khtml::TypingCommand::isOpenForMoreTypingCommand): Use isTypingCommand instead of commandID.
36662        (khtml::TypingCommand::closeTyping): Change parameter type to const reference.
36663
36664        * khtml/editing/htmlediting_impl.h: Made StyleChange functions be const member functions.
36665        Changed parent() and setParent() to take and return EditCommandImpl pointers and be inlined.
36666        Added virtual isInputTextCommand, isTypingCommand, and preservesTypingStyle functions.
36667        Removed commandID functions and unneeded explicit destructors. Removed unneeded doApply
36668        function declaration in CompositeEditCommandImpl. Changed type of applyTypingStyle to return
36669        a node, not necessarily an element. Removed private execute function from InputTextCommandImpl.
36670        Added selectInsertedText to InputTextCommandImpl's input function and TypingCommandImpl's constructor
36671        and insertText function.
36672        * khtml/editing/htmlediting_impl.cpp:
36673        (khtml::StyleChange::StyleChange): Don't bother initializing the booleans since init handles that.
36674        (khtml::StyleChange::init): Added code to strip whitespace, and tweaked how the function does its job.
36675        (khtml::StyleChange::currentlyHasStyle): Added a check for null value, which can happen for properties
36676        where we don't have computed style implemented yet.
36677        (khtml::EditCommandImpl::EditCommandImpl): Updated since there is no SharedCommandImpl any more.
36678        (khtml::EditCommandImpl::apply): Call new preservesTypingStyle function rather than checking
36679        the command ID. This preserves typing style when deleting with the keyboard.
36680        (khtml::EditCommandImpl::setStartingSelection): Changed since parent is now a EditCommandImpl.
36681        Also rewrote to use for loop so it's simpler-looking.
36682        (khtml::EditCommandImpl::setEndingSelection): Ditto.
36683        (khtml::EditCommandImpl::setTypingStyle): Ditto.
36684        (khtml::EditCommandImpl::preservesTypingStyle): Added. Returns false.
36685        (khtml::EditCommandImpl::isInputTextCommand): Added. Returns false.
36686        (khtml::EditCommandImpl::isTypingCommand): Added. Returns false.
36687        (khtml::CompositeEditCommandImpl::applyTypingStyle): Changed this function to return a node rather
36688        than an element. Also change it so it returns the child as-is if the style change has nothing in it.
36689        (khtml::AppendNodeCommandImpl::~AppendNodeCommandImpl): Removed unneeded null checks.
36690        (khtml::DeleteSelectionCommandImpl::preservesTypingStyle): Added. Returns true.
36691        (khtml::DeleteTextCommandImpl::~DeleteTextCommandImpl): Removed unneeded null checks.
36692        (khtml::InputTextCommandImpl::input): Renamed execute function to input and got rid of the additional
36693        level of indirection, since it was the only caller. Added selectInsertedText parameter and changed
36694        the code so it will respect it.
36695        (khtml::InputTextCommandImpl::isInputTextCommand): Added. Returns true.
36696        (khtml::InsertNodeBeforeCommandImpl::~InsertNodeBeforeCommandImpl): Removed unneeded null checks.
36697        (khtml::JoinTextNodesCommandImpl::~JoinTextNodesCommandImpl): Ditto.
36698        (khtml::MoveSelectionCommandImpl::MoveSelectionCommandImpl): Hold a reference to the fragment
36699        while the command exists.
36700        (khtml::MoveSelectionCommandImpl::~MoveSelectionCommandImpl): Release the fragment.
36701        (khtml::RemoveNodeCommandImpl::~RemoveNodeCommandImpl): Remove unneeded null checks.
36702        (khtml::RemoveNodeCommandImpl::doUnapply): Take advantage of defined behavior of insertBefore when
36703        the node to insert before is 0 (means the same thing as appendChild).
36704        (khtml::RemoveNodePreservingChildrenCommandImpl::~RemoveNodePreservingChildrenCommandImpl):
36705        Remove unneeded null check.
36706        (khtml::ReplaceSelectionCommandImpl::ReplaceSelectionCommandImpl): Hold a reference to the fragment
36707        while the command exists.
36708        (khtml::ReplaceSelectionCommandImpl::~ReplaceSelectionCommandImpl): Release the fragment.
36709        (khtml::SetNodeAttributeCommandImpl::~SetNodeAttributeCommandImpl): Remove unneeded null check.
36710        (khtml::SplitTextNodeCommandImpl::~SplitTextNodeCommandImpl): Remove unneeded null check.
36711        (khtml::TypingCommandImpl::TypingCommandImpl): Added selectInsertedText parameter.
36712        (khtml::TypingCommandImpl::doApply): Pass along selectInsertedText parameter.
36713        (khtml::TypingCommandImpl::insertText): Ditto.
36714        (khtml::TypingCommandImpl::preservesTypingStyle): Added. Returns true for DeleteKey.
36715        (khtml::TypingCommandImpl::isTypingCommand): Added. Returns true.
36716
36717        * khtml/editing/jsediting.cpp: Add a cut at implementing the underline command. May not work
36718        perfectly yet because text-decoration is not inherited the way, say, font-weight is.
36719
36720        * khtml/xml/dom_selection.h: Removed some unneeded friend declarations for comparison operators
36721        that use only public members. Added PARAGRAPH_BOUNDARY.
36722        * khtml/xml/dom_selection.cpp:
36723        (DOM::Selection::modifyExtendingRightForward): Implemented paragraph boundary case, simplified line
36724        boundary case (by changing parameter types and function names, not the algorithm), and made
36725        paragraph case fall into line case for now.
36726        (DOM::Selection::modifyMovingRightForward): Ditto.
36727        (DOM::Selection::modifyExtendingLeftBackward): Ditto.
36728        (DOM::Selection::modifyMovingLeftBackward): Ditto.
36729        (DOM::Selection::validate): Implemented paragraph case and paragraph boundary case, simplified the
36730        line case as above and also fixed the document case.
36731        (DOM::startOfFirstRunAt): Changed to use DOM::Position instead of node
36732        offset pairs. Also renamed and got rid of separate bool to indicate "not found".
36733        (DOM::endOfLastRunAt): Ditto.
36734        (DOM::selectionForLine): Ditto.
36735
36736        * khtml/xml/dom_position.h: Added startParagraphBoundary and endParagraphBoundary.
36737        Also used enums instead of bools in a couple of places. Removed some unneeded friend
36738        declarations for comparison operators that use only public members.
36739        * khtml/xml/dom_position.cpp:
36740        (DOM::Position::Position): Coding style tweak.
36741        (DOM::Position::startParagraphBoundary): Added.
36742        (DOM::Position::endParagraphBoundary): Added.
36743        (DOM::Position::upstream): Use enum parameter instead of bool.
36744        (DOM::Position::downstream): Ditto.
36745        (DOM::Position::rendersOnSameLine): Removed unused function. Noticed some backwards logic
36746        here, and removed it rather than fixing it.
36747
36748        * khtml/xml/dom_nodeimpl.h: Added traversePreviousNodePostOrder.
36749        * khtml/xml/dom_nodeimpl.cpp:
36750        (NodeImpl::traversePreviousNodePostOrder): Added. For some uses, this function is more analogous
36751        to traverseNextNode in reverse than traversePreviousNode, which does a backwards pre-order traversal.
36752
36753        * kwq/WebCoreBridge.h: Replaced fontForCurrentPosition method with fontForSelection:, added
36754        selectInsertedText parameter to insertText method, and added selectionStartHasStyle: method.
36755        Add WebSelectToParagraphBoundary.
36756        * kwq/WebCoreBridge.mm:
36757        (-[WebCoreBridge setSelectedDOMRange:affinity:]): Added workaround for bug where isRenderedContent
36758        returns false for <br> elements at the ends of lines.
36759        (-[WebCoreBridge insertText:selectInsertedText:]): Added selectInsertedText parameter, passing it
36760        along to TypingCommand::insertText.
36761        (-[WebCoreBridge selectionStartHasStyle:]): Added. Calls code in the part that does the real work.
36762        (-[WebCoreBridge fontForSelection:]): Ditto.
36763
36764        * kwq/KWQKHTMLPart.h: Renamed fontForCurrentPosition to fontForSelection, and added a feature
36765        where it tells us whether there are multiple fonts in the selection or not.
36766        * kwq/KWQKHTMLPart.mm:
36767        (KWQKHTMLPart::fontForSelection): Rewrote this to be a bit simpler, and added code to detect
36768        whether there are multiple fonts in the selection.
36769        (KWQKHTMLPart::didTellBridgeAboutLoad): Use a global character rather than a bad pointer here.
36770        Better not to rely on undefined behavior.
36771        (KWQKHTMLPart::documentFragmentWithText): Use lowercase HTML. I believe this works better when
36772        the document is XML, and we should probably visit all callers and change them.
36773        (KWQKHTMLPart::registerCommandForUndo): Call get() instead of handle().
36774        (KWQKHTMLPart::registerCommandForRedo): Call get() instead of handle().
36775
36776        * khtml/misc/shared.h: Added a private, non-implemented copy constructor and assignment
36777        operator to Shared<> and TreeShared<> to prevent copying reference counts by accident.
36778        * khtml/rendering/render_style.h: Get rid of Shared<BorderData>, since it's not used that way.
36779        This makes BorderData smaller, and allows it to compile with the change to Shared<>.
36780        * khtml/xml/dom_docimpl.h: Remove unneeded copy constructor on DocumentFragmentImpl,
36781        which ran afoul of the change to Shared<> and was unused.
36782        * khtml/xml/dom_docimpl.cpp: Ditto.
36783        * khtml/xml/dom_stringimpl.cpp:
36784        (DOM::DOMStringImpl::empty): Changed code around so it doesn't run afoul of the change to
36785        Shared<>. The old code was copying a DOMStringImpl.
36786        (DOM::DOMStringImpl::ascii): Added code to null-terminate the string buffer.
36787
367882004-09-06  Darin Adler  <darin@apple.com>
36789
36790        Reviewed by John.
36791
36792        - improved computed style code and implemented text-decoration and text-shadow (needed for, e.g., underline)
36793
36794        * khtml/css/css_computedstyle.cpp:
36795        Added CSS_PROP_TEXT_DECORATION to the InheritableProperties array for now even though it's
36796        not inheritable. This makes underline work in some cases for typing style. We may decide to
36797        take it back out again after further consideration.
36798        (DOM::valueForLength): Use IDs in primitive values rather than strings.
36799        (DOM::valueForBorderStyle): Ditto, also renamed this.
36800        (DOM::valueForTextAlign): More of the same.
36801        (DOM::valueForShadow): Added this function.
36802        (DOM::CSSComputedStyleDeclarationImpl::getPositionOffsetValue): More IDs in primitive values.
36803        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Changed all the cases to use
36804        IDs instead of strings in primitive values. Also put the style in a local variable for
36805        better code size and smaller source code too. Added implementation for CSS_PROP_TEXT_DECORATION
36806        and CSS_PROP_TEXT_SHADOW.
36807
36808        * khtml/css/css_valueimpl.cpp:
36809        (CSSValueListImpl::cssText): Put commas between list elements.
36810        (CSSPrimitiveValueImpl::cssText): Fixed some messed up indenting and removed an unneeded
36811        default case that would just prevent a warning if we ever have an unhandled enum value.
36812
368132004-09-06  Darin Adler  <darin@apple.com>
36814
36815        Reviewed by John.
36816
36817        - did some clean-up on form data code
36818
36819        * khtml/misc/formdata.h: Added more public functions as suggested by Chris when he reviewed
36820        this class.
36821        * khtml/misc/formdata.cpp: (khtml::FormData::appendFile): Added. Will be needed soon.
36822        * kwq/KWQFormData.mm: (arrayFromFormData): Use new cleaned-up FormData API.
36823
368242004-09-06  Darin Adler  <darin@apple.com>
36825
36826        Reviewed by John.
36827
36828        * kwq/DOM-CSS.mm: (-[DOMCSSStyleDeclaration description]): Use cssText in the description
36829        so it's easier to see in the debugger.
36830
368312004-09-06  Darin Adler  <darin@apple.com>
36832
36833        Reviewed by John.
36834
36835        * khtml/ecma/xmlhttprequest.cpp: (KJS::XMLHttpRequest::send): Remove uneeded QCString copy.
36836
368372004-09-04  Richard Williamson   <rjw@apple.com>
36838
36839        Fix build problem on panther.
36840
36841        * khtml/ecma/kjs_html.cpp:
36842        * khtml/rendering/render_canvasimage.h:
36843
368442004-09-03  David Hyatt  <hyatt@apple.com>
36845
36846	Simple tweak to background-attachment.  Don't apply the slow repaint flag until after the whole style has been
36847	resolved, since while cascading someone may set the attachment to fixed but later override with scroll.
36848
36849        * khtml/css/cssstyleselector.cpp:
36850        (khtml::CSSStyleSelector::adjustRenderStyle):
36851        (khtml::CSSStyleSelector::applyProperty):
36852
368532004-09-03  Richard Williamson   <rjw@apple.com>
36854
36855	Fixed <rdar://problem/3781001>: redirection of URL via resource load delegate does not correctly set base URL for subsequent loads
36856
36857	Ensure that stylesheets have the correct URL when request
36858	is redirected.
36859
36860        Reviewed by Maciej.
36861
36862        * khtml/misc/loader.cpp:
36863        (CachedCSSStyleSheet::checkNotify):
36864        * kwq/KWQLoader.h:
36865        * kwq/KWQLoader.mm:
36866        (KWQIsResponseURLEqualToURL):
36867        (KWQResponseURL):
36868
36869        * khtml/ecma/kjs_html.cpp:
36870        (KJS::Context2DFunction::tryCall):
36871	Compare parameter count with == instead of <=.
36872
368732004-09-03  David Hyatt  <hyatt@apple.com>
36874
36875	Fix for 3779083, deleting large amount of text is really slow.  Don't use NodeLists in editing remove commands.
36876	
36877        Reviewed by darin
36878
36879        * khtml/editing/htmlediting_impl.cpp:
36880        (khtml::RemoveNodeCommandImpl::RemoveNodeCommandImpl):
36881        (khtml::RemoveNodePreservingChildrenCommandImpl::doApply):
36882
368832004-09-03  Darin Adler  <darin@apple.com>
36884
36885        Reviewed by John.
36886
36887        - fixed <rdar://problem/3714501> REGRESSION (125.8-8A162): Chinese words display as garbage in search results (www.sz.net.cn)
36888
36889        * khtml/ecma/kjs_html.cpp: (KJS::HTMLDocument::putValue): Resolve URL using the document method
36890        that passes the codec rather than calling the KURL constructor directly.
36891
368922004-09-03  Chris Blumenberg  <cblu@apple.com>
36893
36894	Fixed: <rdar://problem/3788409> can't create or clone an embed element
36895
36896        Reviewed by rjw.
36897
36898        * khtml/html/htmlparser.cpp: added fixme about sharing code
36899        * khtml/xml/dom_docimpl.cpp: ditto
36900        (DocumentImpl::createHTMLElement): create and return a HTMLEmbedElementImpl
36901
369022004-09-03  Darin Adler  <darin@apple.com>
36903
36904        Reviewed by Chris.
36905
36906        - fixed <rdar://problem/3410112> filename with non-ASCII name for <input type=file> should be sent in the page's encoding
36907
36908        * khtml/html/html_formimpl.cpp: (DOM::HTMLFormElementImpl::formData):
36909        Encode filename using the codec rather than doing the &# dance. It turns out that Mozilla
36910        only does the &# thing under certain circumstances that are not important. Always encoding
36911        the filename is almost certainly better behavior, and will fix many serious problems for
36912        Japanese and Korean users and websites.
36913
369142004-09-03  Richard Williamson   <rjw@apple.com>
36915
36916	Made drawImage() in <canvas> compliant with whatwg spec.
36917	
36918        Reviewed by John.
36919
36920        * khtml/ecma/kjs_html.cpp:
36921        (KJS::Context2DFunction::tryCall):
36922        * khtml/html/html_imageimpl.h:
36923        (DOM::HTMLImageElementImpl::pixmap):
36924
369252004-09-03  David Hyatt  <hyatt@apple.com>
36926
36927	Fix for 3787686, CSS parser should do case-sensitive matching of ids and attributes only in strict mode
36928	(and not whenever you have an HTML document).
36929	
36930        Reviewed by john
36931
36932        * khtml/css/parser.cpp:
36933        * khtml/css/parser.y:
36934
36935=== Safari-162 ===
36936
369372004-09-03  Darin Adler  <darin@apple.com>
36938
36939        Reviewed by John.
36940
36941        - <rdar://problem/3788040> REGRESSION: text that i type into a textarea disappears when i tab out of the textarea
36942
36943        * kwq/KWQTextArea.mm: (-[KWQTextArea textDidChange:]): Bring back an unconditional version of
36944        this method. Earlier, we deleted this method, but we should have instead removed the check.
36945
369462004-09-02  David Hyatt  <hyatt@apple.com>
36947
36948	Swap RenderBox and RenderContainer.  Make leaf RenderObjects actually derive off of RenderBox instead.
36949	
36950        Reviewed by kocienda
36951
36952        * khtml/rendering/render_block.cpp:
36953        (khtml::RenderBlock::addChildToFlow):
36954        * khtml/rendering/render_box.cpp:
36955        (RenderBox::RenderBox):
36956        (RenderBox::detach):
36957        * khtml/rendering/render_box.h:
36958        * khtml/rendering/render_container.cpp:
36959        (RenderContainer::RenderContainer):
36960        (RenderContainer::detach):
36961        * khtml/rendering/render_container.h:
36962        * khtml/rendering/render_flow.cpp:
36963        (RenderFlow::detach):
36964        (RenderFlow::dirtyLineBoxes):
36965        (RenderFlow::createInlineBox):
36966        (RenderFlow::getAbsoluteRepaintRect):
36967        (RenderFlow::lowestPosition):
36968        (RenderFlow::rightmostPosition):
36969        (RenderFlow::leftmostPosition):
36970        (RenderFlow::caretPos):
36971        * khtml/rendering/render_flow.h:
36972        (khtml::RenderFlow::RenderFlow):
36973        * khtml/rendering/render_frames.cpp:
36974        (RenderFrameSet::RenderFrameSet):
36975        (RenderFrameSet::nodeAtPoint):
36976        (RenderFrameSet::dump):
36977        * khtml/rendering/render_frames.h:
36978        * khtml/rendering/render_inline.cpp:
36979        (RenderInline::addChildToFlow):
36980        * khtml/rendering/render_replaced.cpp:
36981        * khtml/rendering/render_replaced.h:
36982        (khtml::RenderReplaced::setIntrinsicHeight):
36983        * khtml/rendering/render_table.cpp:
36984        (RenderTableSection::RenderTableSection):
36985        (RenderTableSection::detach):
36986        (RenderTableSection::setStyle):
36987        * khtml/rendering/render_table.h:
36988
369892004-09-02  Ken Kocienda  <kocienda@apple.com>
36990
36991        * khtml/editing/htmlediting_impl.h: Fix some inconsistent use of whitespace. No code change.
36992
369932004-09-02  Ken Kocienda  <kocienda@apple.com>
36994
36995        Reviewed by Hyatt
36996
36997        Fix for this bug:
36998        
36999        <rdar://problem/3786848> REGRESSION (Mail): Typing styles and font panel updates broken
37000
37001        * khtml/xml/dom_position.cpp:
37002        (DOM::Position::inRenderedContent): Check for inlines that can have kids is wrong.
37003        I busted this the other day when making the PositionIterator class iterate over
37004        all nodes and not just leaves of the DOM tree.
37005        
37006        Update all the following functions. These use the PositionIterator class, but still 
37007        only want to consider leaf nodes.
37008        
37009        (DOM::Position::isFirstRenderedPositionOnLine)
37010        (DOM::Position::isLastRenderedPositionOnLine)
37011        (DOM::Position::isLastRenderedPositionInEditableBlock)
37012        (DOM::Position::inFirstEditableInRootEditableElement)
37013        (DOM::Position::inLastEditableInRootEditableElement)
37014        (DOM::Position::inFirstEditableInContainingEditableBlock)
37015        (DOM::Position::inLastEditableInContainingEditableBlock)
37016
370172004-09-02  Richard Williamson   <rjw@apple.com>
37018
37019	Support for patterns in <canvas>
37020
37021        Reviewed by Hyatt.
37022
37023        * khtml/ecma/kjs_html.cpp:
37024        (KJS::Context2DFunction::tryCall):
37025        (Context2D::putValue):
37026        (drawPattern):
37027        (ImagePattern::ImagePattern):
37028        (ImagePattern::~ImagePattern):
37029        * khtml/ecma/kjs_html.h:
37030        (KJS::ImagePattern::getPattern):
37031        (KJS::ImagePattern::pixmap):
37032        * kwq/KWQPixmap.h:
37033        * kwq/KWQPixmap.mm:
37034        (QPixmap::imageRef):
37035        * kwq/WebCoreImageRenderer.h:
37036
370372004-09-01  David Hyatt  <hyatt@apple.com>
37038
37039	Fix for 3769409, a regression from 10.3.4 to 10.3.5 involving <colgroup>s in malformed HTML.
37040	
37041        Reviewed by mjs
37042
37043        * khtml/html/htmlparser.cpp:
37044        (KHTMLParser::insertNode):
37045
370462004-09-01  David Hyatt  <hyatt@apple.com>
37047
37048	Fix for the <colgroup> crasher.  Make sure adding to an anonymous box just returns immediately. Also eliminate
37049	all the redundant setPos -500000 calls, since we don't need those at all.
37050	
37051        Reviewed by john
37052
37053        * khtml/rendering/render_block.cpp:
37054        (khtml::RenderBlock::addChildToFlow):
37055        (khtml::RenderBlock::makeChildrenNonInline):
37056        * khtml/rendering/render_inline.cpp:
37057        (RenderInline::splitFlow):
37058
370592004-09-02  Ken Kocienda  <kocienda@apple.com>
37060
37061        Reviewed by John
37062
37063        Fix for these bugs:
37064        
37065        <rdar://problem/3729219> REGRESSION (Mail): Caret placement and navigation not working correctly at yahoo.com
37066        <rdar://problem/3758606> REGRESSION (Mail): Deletions across DIV elements is broken
37067        <rdar://problem/3784810> REGRESSION (Mail): delete at beginning of line instead deletes to the end of the document (simple reduced test)
37068
37069        I made some very big improvements to the code which handles deletions of selections
37070        which span more than one block.
37071
37072        * khtml/editing/htmlediting_impl.cpp:
37073        (khtml::CompositeEditCommandImpl::deleteUnrenderedText): An new, overloaded version of this
37074        function which works on a NodeImpl. The code in this function fell out of some refactoring
37075        I did in the function with the same name which takes a Position as an argument.
37076        (khtml::DeleteSelectionCommandImpl::moveNodesToBlock): New function. This new logic provides
37077        the smarts to fix the bugs listed above and greatly improves the code to perform deleting 
37078        selections which span more than one block.
37079        (khtml::DeleteSelectionCommandImpl::doApply): Several changes. Constrain downstream positions
37080        so that they stay in the current block. This was a mistake before I think. Add code to detect
37081        when the insertion point is a caret at the start of a block. This is a special-case of a
37082        cross-block selection. Change the end-of-deletion-fixup case to operate on the downstreamEnd
37083        position of the selection rather than the upstream. This is more logical. Refine the block 
37084        merge logic to handle more cases, like dealing with whitespace. 
37085        * khtml/editing/htmlediting_impl.h: Associated header file changes.
37086        * khtml/xml/dom_nodeimpl.cpp: 
37087        (NodeImpl::rootEditableElement): Add code to clamp the return value to the body element.
37088        * khtml/xml/dom_selection.cpp:
37089        (DOM::Selection::validate): Make selection canonicalizations stay in the current block.
37090        * layout-tests/editing/deleting/delete-block-merge-contents-001-expected.txt:
37091        * layout-tests/editing/deleting/delete-block-merge-contents-001.html:
37092        * layout-tests/editing/deleting/delete-block-merge-contents-002-expected.txt: Added.
37093        * layout-tests/editing/deleting/delete-block-merge-contents-002.html: Added.
37094        * layout-tests/editing/deleting/delete-block-merge-contents-003-expected.txt: Added.
37095        * layout-tests/editing/deleting/delete-block-merge-contents-003.html: Added.
37096        * layout-tests/editing/deleting/delete-block-merge-contents-004-expected.txt: Added.
37097        * layout-tests/editing/deleting/delete-block-merge-contents-004.html: Added.
37098        * layout-tests/editing/deleting/delete-block-merge-contents-005-expected.txt: Added.
37099        * layout-tests/editing/deleting/delete-block-merge-contents-005.html: Added.
37100        * layout-tests/editing/deleting/delete-block-merge-contents-006-expected.txt: Added.
37101        * layout-tests/editing/deleting/delete-block-merge-contents-006.html: Added.
37102        * layout-tests/editing/deleting/delete-block-merge-contents-007-expected.txt: Added.
37103        * layout-tests/editing/deleting/delete-block-merge-contents-007.html: Added.
37104        * layout-tests/editing/deleting/delete-block-merge-contents-008-expected.txt: Added.
37105        * layout-tests/editing/deleting/delete-block-merge-contents-008.html: Added.
37106        * layout-tests/editing/deleting/delete-block-merge-contents-009-expected.txt: Added.
37107        * layout-tests/editing/deleting/delete-block-merge-contents-009.html: Added.
37108        * layout-tests/editing/deleting/delete-block-merge-contents-010-expected.txt: Added.
37109        * layout-tests/editing/deleting/delete-block-merge-contents-010.html: Added.
37110        * layout-tests/editing/deleting/delete-block-merge-contents-011-expected.txt: Added.
37111        * layout-tests/editing/deleting/delete-block-merge-contents-011.html: Added.
37112        * layout-tests/editing/inserting/insert-3654864-fix-expected.txt: Updated with new results.
37113        * layout-tests/editing/inserting/insert-3654864-fix.html: Updated test to deal better with
37114        improved select all behavior.
37115        * layout-tests/editing/selection/select-all-003-expected.txt: Updated with new results.
37116
371172004-09-01  Richard Williamson   <rjw@apple.com>
37118
37119	Fixed panther build glitch.
37120
37121        Reviewed by Ken.
37122
37123        * khtml/ecma/kjs_html.cpp:
37124
371252004-09-01  Richard Williamson   <rjw@apple.com>
37126
37127	Finished implementation of gradient support in <canvas>.
37128
37129        Reviewed by John.
37130
37131        * khtml/ecma/kjs_html.cpp:
37132        (KJS::HTMLElementFunction::tryCall):
37133        (isGradient):
37134        (isImagePattern):
37135        (KJS::Context2DFunction::tryCall):
37136        (Context2D::putValue):
37137        (Context2D::Context2D):
37138        (KJS::GradientFunction::tryCall):
37139        (gradientCallback):
37140        (Gradient::commonInit):
37141        (Gradient::Gradient):
37142        (Gradient::~Gradient):
37143        (Gradient::getShading):
37144        (Gradient::addColorStop):
37145        (sortStops):
37146        (Gradient::colorStops):
37147        * khtml/ecma/kjs_html.h:
37148        (KJS::ColorStop::ColorStop):
37149        * khtml/ecma/kjs_html.lut.h:
37150        (KJS::):
37151
371522004-09-01  David Hyatt  <hyatt@apple.com>
37153
37154	Fix for 3784686, hidden links still active.  Make sure text nodes exclude themselves from nodeAtPoint checks
37155	when hidden.
37156	
37157        * khtml/rendering/render_text.cpp:
37158        (RenderText::nodeAtPoint):
37159
371602004-08-31  David Hyatt  <hyatt@apple.com>
37161
37162	Fixes for 3761411 and 3782201.  This patch makes two changes to percentage heights.  First it makes sure that
37163	replaced elements always flex inside a cell (unlike blocks and tables, which do so only sometimes under bizarre
37164	conditions that are still being guessed at by me).  The second fix is a recognition that empty tables do not
37165	actually honor their heights, and so it is a mistake to try to flex them.
37166	
37167        Reviewed by mjs
37168
37169        * khtml/rendering/render_table.cpp:
37170        (RenderTableSection::layoutRows):
37171        * khtml/rendering/render_table.h:
37172        (khtml::RenderTable::hasSections):
37173
371742004-08-31  Ken Kocienda  <kocienda@apple.com>
37175
37176        Reviewed by Hyatt
37177    
37178        Fix for this bug:
37179        
37180        <rdar://problem/3781572> can't paste text in replied message view
37181
37182        * khtml/xml/dom2_rangeimpl.cpp:
37183        (DOM::RangeImpl::toHTML): Copying text placed in an anonymous block was failing
37184        since the code in here depending on the text node's containing block having an
37185        element, which it won't. In fact, using containing block is wrong anyway, since
37186        positioned elements can have containing blocks far from where they live in the
37187        tree. This "move up to block check" should use the more DOM-wise enclosingBlockFlowElement()
37188        in NodeImpl.
37189
371902004-08-30  David Hyatt  <hyatt@apple.com>
37191
37192	Fix for 3742585, sony dhtml menus wrong size.  The percentage table height algorithm was wrong.  This patch
37193	unifies the table percentage height algorithm with the block percentage height algorithm and fixes bugs in
37194	both.
37195	
37196        Reviewed by john
37197
37198        * khtml/rendering/render_box.cpp:
37199        (RenderBox::calcPercentageHeight):
37200        * khtml/rendering/render_table.cpp:
37201        (RenderTable::layout):
37202
372032004-08-31  Ken Kocienda  <kocienda@apple.com>
37204
37205        Added more editing layout tests.
37206
37207        * layout-tests/editing/deleting/delete-tab-001-expected.txt: Added.
37208        * layout-tests/editing/deleting/delete-tab-001.html: Added.
37209        * layout-tests/editing/deleting/delete-tab-002-expected.txt: Added.
37210        * layout-tests/editing/deleting/delete-tab-002.html: Added.
37211        * layout-tests/editing/deleting/delete-tab-003-expected.txt: Added.
37212        * layout-tests/editing/deleting/delete-tab-003.html: Added.
37213        * layout-tests/editing/deleting/delete-tab-004-expected.txt: Added.
37214        * layout-tests/editing/deleting/delete-tab-004.html: Added.
37215        * layout-tests/editing/editing.js: Fixed a little bug in one of the "delayed" commands.
37216        * layout-tests/editing/inserting/insert-tab-001-expected.txt: Added.
37217        * layout-tests/editing/inserting/insert-tab-001.html: Added.
37218        * layout-tests/editing/inserting/insert-tab-002-expected.txt: Added.
37219        * layout-tests/editing/inserting/insert-tab-002.html: Added.
37220        * layout-tests/editing/inserting/insert-tab-003-expected.txt: Added.
37221        * layout-tests/editing/inserting/insert-tab-003.html: Added.
37222        * layout-tests/editing/inserting/insert-tab-004-expected.txt: Added.
37223        * layout-tests/editing/inserting/insert-tab-004.html: Added.
37224
372252004-08-31  Ken Kocienda  <kocienda@apple.com>
37226
37227        Reviewed by John
37228
37229        Fix for this bug:
37230        
37231        <rdar://problem/3782521> Typing newline at start of block does not work
37232
37233        * khtml/editing/htmlediting_impl.cpp:
37234        (khtml::InputNewlineCommandImpl::doApply): Change handling of case to insert
37235        newline at the start of a block.
37236        * layout-tests/editing/inserting/insert-br-006-expected.txt: Updated layout test with
37237        new results.
37238
372392004-08-31  Ken Kocienda  <kocienda@apple.com>
37240
37241        Checked in incorrect results for these tests. There are the right ones.
37242
37243        * layout-tests/editing/deleting/collapse-whitespace-3587601-fix-expected.txt
37244        * layout-tests/editing/selection/move-by-line-001-expected.txt
37245
372462004-08-31  Ken Kocienda  <kocienda@apple.com>
37247
37248        Added more editing layout tests.
37249
37250        * layout-tests/editing/deleting/collapse-whitespace-3587601-fix-expected.txt: Added.
37251        * layout-tests/editing/deleting/collapse-whitespace-3587601-fix.html: Added.
37252        * layout-tests/editing/deleting/delete-block-merge-contents-001-expected.txt: Added.
37253        * layout-tests/editing/deleting/delete-block-merge-contents-001.html: Added.
37254        * layout-tests/editing/editing.js: Added some more navigation commands.
37255        * layout-tests/editing/inserting/insert-3778059-fix-expected.txt: Added.
37256        * layout-tests/editing/inserting/insert-3778059-fix.html: Added.
37257        * layout-tests/editing/selection/move-by-line-001-expected.txt: Added.
37258        * layout-tests/editing/selection/move-by-line-001.html: Added.
37259        * layout-tests/editing/style/typing-style-003-expected.txt: Added.
37260        * layout-tests/editing/style/typing-style-003.html: Added.
37261
372622004-08-31  Ken Kocienda  <kocienda@apple.com>
37263
37264        Added more editing layout tests. Renamed some others.
37265
37266        * layout-tests/editing/inserting/insert-br-001-expected.txt: Added.
37267        * layout-tests/editing/inserting/insert-br-001.html: Added.
37268        * layout-tests/editing/inserting/insert-br-002-expected.txt: Added.
37269        * layout-tests/editing/inserting/insert-br-002.html: Added.
37270        * layout-tests/editing/inserting/insert-br-003-expected.txt: Added.
37271        * layout-tests/editing/inserting/insert-br-003.html: Added.
37272        * layout-tests/editing/inserting/insert-br-004-expected.txt: Added.
37273        * layout-tests/editing/inserting/insert-br-004.html: Added.
37274        * layout-tests/editing/inserting/insert-br-005-expected.txt: Added.
37275        * layout-tests/editing/inserting/insert-br-005.html: Added.
37276        * layout-tests/editing/inserting/insert-br-006-expected.txt: Added.
37277        * layout-tests/editing/inserting/insert-br-006.html: Added.
37278        * layout-tests/editing/inserting/insert-br-case1-expected.txt: Removed.
37279        * layout-tests/editing/inserting/insert-br-case1.html: Removed.
37280        * layout-tests/editing/inserting/insert-br-case2-expected.txt: Removed.
37281        * layout-tests/editing/inserting/insert-br-case2.html: Removed.
37282        * layout-tests/editing/inserting/insert-br-case3-expected.txt: Removed.
37283        * layout-tests/editing/inserting/insert-br-case3.html: Removed.
37284        * layout-tests/editing/inserting/insert-br-case6-expected.txt: Removed.
37285        * layout-tests/editing/inserting/insert-br-case6.html: Removed.
37286        * layout-tests/editing/inserting/insert-text-with-newlines-expected.txt: Added.
37287        * layout-tests/editing/inserting/insert-text-with-newlines.html: Added.
37288
372892004-08-31  Ken Kocienda  <kocienda@apple.com>
37290
37291        * layout-tests/editing/editing.js: Modified typeCharacterCommand so it can accept a character
37292        as an argument.
37293
372942004-08-31  Ken Kocienda  <kocienda@apple.com>
37295
37296        Reviewed by Hyatt
37297
37298        Fix for these bugs:
37299
37300        <rdar://problem/3777629> REGRESSION (Mail): can't delete blank lines in quoted text in HTML mail replies
37301        <rdar://problem/3780309> REGRESSION (Mail): can't delete past an empty span in a particular test case
37302        <rdar://problem/3780315> REGRESSION (Mail): right arrow works incorrectly in a particular test case with an empty span
37303        <rdar://problem/3780320> REGRESSION (Mail): left arrow works incorrectly in a particular test case with an empty span
37304        <rdar://problem/3780336> REGRESSION (Mail): down arrow fails in a reduction of a Mail reply test case (seems to be inside a span)
37305
37306        * khtml/xml/dom_position.cpp:
37307        (DOM::Position::upstream): If this position's node is a block, use it for the StayInBlock case, not the block's
37308        enclosing block.
37309        (DOM::Position::downstream): Ditto.
37310        (DOM::Position::inRenderedContent): Refine the case for non-text nodes. This was erroneously returning true
37311        for any empty element (like <span></span>).
37312        * khtml/xml/dom_positioniterator.cpp: Change the following four functions to consider all nodes, not just
37313        leaves of the DOM tree. This is a step towards making this iteration less cranky and unpredictable, and
37314        was necessary to do now to keep the inRenderedContent() change above from breaking editign layout tests.
37315        (DOM::PositionIterator::peekPrevious)
37316        (DOM::PositionIterator::peekNext)
37317        (DOM::PositionIterator::atStart)
37318        (DOM::PositionIterator::atEnd)
37319        * kwq/KWQKHTMLPart.mm:
37320        (KWQKHTMLPart::fontForCurrentPosition): Check that the position being checked is an element and that the
37321        element is in rendered content. I ran across some null-check failures while I was coding this fix, and
37322        the additions seem prudent.
37323        
37324        Updated these layout tests with new results.
37325        
37326        * layout-tests/editing/deleting/delete-3608430-fix-expected.txt:
37327        * layout-tests/editing/deleting/delete-3775172-fix-expected.txt:
37328        * layout-tests/editing/deleting/delete-block-contents-001-expected.txt:
37329        * layout-tests/editing/deleting/delete-block-contents-002-expected.txt:
37330        * layout-tests/editing/deleting/delete-block-contents-003-expected.txt:
37331        * layout-tests/editing/deleting/delete-image-004-expected.txt:
37332        * layout-tests/editing/deleting/delete-trailing-ws-001-expected.txt:
37333        * layout-tests/editing/editing.js:
37334        * layout-tests/editing/execCommand/boldSelection-expected.txt:
37335        * layout-tests/editing/execCommand/italicizeByCharacter-expected.txt:
37336        * layout-tests/editing/execCommand/modifyForeColorByCharacter-expected.txt:
37337        * layout-tests/editing/execCommand/print-expected.txt:
37338        * layout-tests/editing/execCommand/selectAll-expected.txt:
37339        * layout-tests/editing/selection/extend-by-character-002-expected.txt:
37340        * layout-tests/editing/selection/extend-by-character-004-expected.txt:
37341        * layout-tests/editing/selection/extend-by-character-005-expected.txt:
37342        * layout-tests/editing/selection/extend-by-character-006-expected.txt:
37343        * layout-tests/editing/selection/select-all-001-expected.txt:
37344        * layout-tests/editing/selection/select-all-002-expected.txt:
37345        * layout-tests/editing/selection/select-all-003-expected.txt:
37346
373472004-08-30  Darin Adler  <darin@apple.com>
37348
37349        Reviewed by John.
37350
37351        - fixed <rdar://problem/3637519> REGRESSION (125-128): unrepro crash in QListBox::sizeForNumberOfLines at istweb.apple.com
37352
37353        * kwq/KWQListBox.h: Added a clearCachedTextRenderers function.
37354        * kwq/KWQListBox.mm:
37355        (itemTextRenderer): Change to use globals that are outside the function, and added retain calls.
37356        (groupLabelTextRenderer): Ditto.
37357        (QListBox::clearCachedTextRenderers): Release global text renderers and nil out the globals.
37358
37359        * kwq/WebCoreBridge.h: Removed updateAllViews; not needed any more.
37360        * kwq/WebCoreBridge.mm: Ditto.
37361
37362        * kwq/WebCoreTextRendererFactory.h: Added a clearCaches method.
37363        * kwq/WebCoreTextRendererFactory.mm:
37364        (-[WebCoreTextRendererFactory clearCaches]): Added. Tells all the views to repaint after clearing the cached
37365        text renderers from KWQListBox. To be more elegant, we could generalize the KWQListBox trick, but for now why bother?
37366
37367        * kwq/WebCoreTextRendererFactory.m: Removed. I needed to put some C++ code in here, so changed the extension to .mm.
37368        * WebCore.pbproj/project.pbxproj: Removed WebCoreTextRendererFactory.m, and added WebCoreTextRendererFactory.mm.
37369
373702004-08-30  Darin Adler  <darin@apple.com>
37371
37372        Reviewed by John.
37373
37374        - fixed <rdar://problem/3528538> can paste a Return character into the Search field at amazon.com, other browsers won't
37375
37376        * kwq/KWQTextField.mm: (-[KWQTextFieldController controlTextDidChange:]):
37377        Truncate text before the first line break.
37378
373792004-08-30  Darin Adler  <darin@apple.com>
37380
37381        * kwq/KWQTextCodec.mm: (KWQTextDecoder::convertOneChunkUsingTEC):
37382        Added some more assertions I used to track down what looks like a TEC bug.
37383
373842004-08-30  Darin Adler  <darin@apple.com>
37385
37386        Reviewed by Ken.
37387
37388        - fixed <rdar://problem/3779122> No accesskey support on LABEL element
37389
37390        * khtml/html/html_formimpl.h: Change type of m_currValue to DOMString. Should have been done
37391        as part of my form data check-in, but harmless to do now. Add accessKeyAction function for
37392        HTMLLabelElementImpl.
37393        * khtml/html/html_formimpl.cpp:
37394        (DOM::HTMLButtonElementImpl::parseHTMLAttribute): Remove conversion of DOMString to QString
37395        for m_currValue.
37396        (DOM::HTMLLabelElementImpl::formElement): If there's no "for" attribute, search children for
37397        the first control.
37398        (DOM::HTMLLabelElementImpl::accessKeyAction): Forward the accesskey action to the formElement.
37399
374002004-08-30  Darin Adler  <darin@apple.com>
37401
37402        Reviewed by Dave.
37403
37404        - fixed <rdar://problem/3303968> final newline character omitted from <textarea> when parsing a new page
37405
37406        * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::processListing): Handle newline pending
37407        cases as well as space and tab pending spaces at the end of this function. This seems right for
37408        both scripts and text areas; it's not clear why omittiing the LF is ever needed. Tested by running
37409        all the layout tests; no regressions.
37410
37411        - fixed <rdar://problem/3552736> word wrapped text fields that blur/focus when you type move the insertion point strangely (vtext.com)
37412
37413        * khtml/rendering/render_form.cpp: (RenderTextArea::updateFromElement): Call text() instead of
37414        calling widget->text() directly. This prevents this function from running in cases where the
37415        text didn't really change for text areas in wrap mode.
37416
374172004-08-30  Darin Adler  <darin@apple.com>
37418
37419        Reviewed by Dave.
37420
37421        - got rid of ERROR message when running layout tests by implementing text-transform in computed style
37422
37423        * khtml/css/css_computedstyle.cpp:
37424        (DOM::numberAsString): Added. Helper that returns "1" rather then "1.0" for integer values.
37425        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Fixed use of tabs instead of
37426        spaces. Fixed switch statements so they don't use default so we get errors if we leave
37427        a case out. Changed callers to use numberAsString instead of QString::number. Added implementation
37428        of CSS_PROP_TEXT_TRANSFORM. Added code to prevent falling through to next property when no item
37429        in a switch statement matches.
37430
374312004-08-30  Darin Adler  <darin@apple.com>
37432
37433        Reviewed by Chris.
37434
37435        - did work to prepare for uploading files incrementally when submitting forms
37436
37437        * khtml/misc/formdata.h: Added. Class for holding form data inside WebCore.
37438        * khtml/misc/formdata.cpp: Added.
37439
37440        * khtml/html/html_formimpl.h: Added the FormDataList type, changed the formData function parameters
37441        and made it private, renamed the encoding method to appendFormData and changed the parameters around.
37442        * khtml/html/html_formimpl.cpp:
37443        (DOM::FormDataList): Added. Class that replaces the old use of QValueList<QCString> for form data.
37444        Later we'll change it to accomodate filenames too.
37445        (DOM::HTMLFormElementImpl::formData): Changed code to use FormDataList intsead of the old encodingList.
37446        Also changed to return the "OK" result as the function result and put the form data into something
37447        passed as an "out" parameter; the old way was the other way around.
37448        (DOM::HTMLFormElementImpl::submit): Change to use FormData rather than a QByteArray when getting the
37449        form data to submit.
37450        (DOM::HTMLButtonElementImpl::appendFormData): Rename from encoding, and use the new appendData function
37451        instead of the old way of doing += to put data on the list.
37452        (DOM::HTMLInputElementImpl::appendFormData): Ditto.
37453        (DOM::HTMLSelectElementImpl::appendFormData): Ditto.
37454        (DOM::HTMLKeygenElementImpl::appendFormData): Ditto.
37455        (DOM::HTMLTextAreaElementImpl::appendFormData): Ditto.
37456        (DOM::FormDataList::FormDataList): Added.
37457        (DOM::FormDataList::appendString): Added.
37458        (DOM::FormDataList::begin): Added.
37459        (DOM::FormDataList::end): Added.
37460
37461        * khtml/khtml_part.h: Changed the type of the submitForm parameter to FormData instead of QByteArray.
37462        * khtml/khtmlpart_p.h: Changed the type of the submitFormData data member to FormData instead of QByteArray.
37463        * khtml/khtml_part.cpp: (KHTMLPart::submitForm): Called the new flattenToString function in all the
37464        code that handles mailto forms. Called the new flatten function in the non-Apple code path.
37465
37466        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::submitForm): Pass NSArray for form data instead of NSData.
37467
37468        * kwq/KWQKJob.h: Use FormData instead of QByteArray. A couple other small cleanups.
37469        * kwq/KWQKJobClasses.h: Ditto.
37470        * kwq/KWQKJobClasses.mm:
37471        (KIO::TransferJobPrivate::TransferJobPrivate): Ditto.
37472        (KIO::TransferJob::TransferJob): Ditto.
37473        (KIO::TransferJob::postData): Ditto.
37474        * kwq/KWQKPartsBrowserExtension.h: Ditto.
37475        * kwq/KWQLoader.mm:
37476        (KWQServeRequest): Ditto.
37477        (KWQServeSynchronousRequest): Ditto.
37478
37479        * kwq/KWQFormData.h: Added. A function to convert KHTML form data into an NSArray for communication
37480        with the WebKit side.
37481        * kwq/KWQFormData.mm: Added.
37482
37483        * kwq/WebCoreBridge.h: Pass NSArray instead of NSData for form data.
37484
37485        * kwq/KWQArrayImpl.h: Added a detach member function. The old version would do unnecessary work when
37486        detach was called on an array that had exactly one reference.
37487        * kwq/KWQArrayImpl.mm: (KWQArrayImpl::detach): Added.
37488        * kwq/KWQMemArray.h: (QMemArray::detach): Call through to KWQArrayImpl.
37489
37490        * kwq/KWQValueList.h:
37491        (QValueList::first): Added overload for non-const.
37492        (QValueList::last): Ditto.
37493
37494        * ForwardingHeaders/misc/formdata.h: Added.
37495        * WebCore.pbproj/project.pbxproj: Added formdata.h, formdata.cpp, KWQFormData.h, and KWQFormData.cpp.
37496
37497        * WebCore-tests.exp: Updated for changes to QValueList, and re-sorted.
37498        * WebCore-combined.exp: Regenerated.
37499
375002004-08-30  Darin Adler  <darin@apple.com>
37501
37502        Reviewed by Ken.
37503
37504        - improved multiple submit logic in preparation for making command-click on a form
37505          button load a form in another frame
37506
37507        * kwq/KWQKHTMLPart.h: Added const to a bunch of member functions for cleanup.
37508        Added prepareForUserAction member function.
37509        * kwq/KWQKHTMLPart.mm:
37510        (KWQKHTMLPart::submitForm): Simplified logic and removed special case for "http" and "https".
37511        (KWQKHTMLPart::renderer): Added const.
37512        (KWQKHTMLPart::keyEvent): Added call to prepareForUserAction.
37513        (KWQKHTMLPart::lastEventIsMouseUp): Added const.
37514        (KWQKHTMLPart::eventMayStartDrag): Added const.
37515        (KWQKHTMLPart::mouseDown): Added call to prepareForUserAction.
37516        (KWQKHTMLPart::overrideMediaType): Added const.
37517        (KWQKHTMLPart::canGoBackOrForward): Added const.
37518        (KWQKHTMLPart::prepareForUserAction): Added. Clears _submittedFormURL.
37519        * kwq/KWQAccObject.mm: (-[KWQAccObject accessibilityPerformAction:]): Added call to prepareForUserAction.
37520
375212004-08-30  Ken Kocienda  <kocienda@apple.com>
37522
37523        Reviewed by John
37524
37525        Fix for this bug:
37526
37527        <rdar://problem/3762231> REGRESSION (Mail): tab key inserts a single space
37528
37529        * khtml/editing/htmlediting_impl.cpp:
37530        (khtml::isTab): New helper. Checks a DOMString to see if it is one character and
37531        that character is a tab.
37532        (khtml::InputTextCommandImpl::execute): Trap tabs before handling insertion of
37533        other kinds of whitespace. Treat a tab like four spaces. Rearrange the code to
37534        update the ending position after the text insertion to cover the new tab case
37535        where the amount of advance is not the same as the number of character in the
37536        passed-in DOMString (i.e. tabs expand to four characters).
37537        
375382004-08-27  Ken Kocienda  <kocienda@apple.com>
37539
37540        Reviewed by Chris
37541
37542        Fix for this bug:
37543        
37544        <rdar://problem/3779706> plain text on pasteboard loses indentation when pasted into Blot
37545
37546        * kwq/KWQKHTMLPart.h:
37547        * kwq/KWQKHTMLPart.mm:
37548        (KWQKHTMLPart::documentFragmentWithText): New function that takes over the code from
37549        KWQKHTMLPart and improves it to handle converting tabs and spaces for suitable
37550        display in HTML.
37551        * kwq/WebCoreBridge.mm:
37552        (-[WebCoreBridge documentFragmentWithText:]): Move smarts from here to KWQKHTMLPart.
37553
375542004-08-27  Maciej Stachowiak  <mjs@apple.com>
37555
37556        Reviewed by John.
37557
37558	<rdar://problem/3778314> REGRESSION: Can't proceed to survey questions on Lominger's Apple website
37559
37560	Because we will stop parsing when there is a pending redirection,
37561	avoid setting one if no navigation would actually take place
37562	because the number of steps is out of range.
37563	
37564        * khtml/khtml_part.cpp:
37565        (KHTMLPart::scheduleHistoryNavigation):
37566        * kwq/KWQKHTMLPart.h:
37567        * kwq/KWQKHTMLPart.mm:
37568        (KWQKHTMLPart::canGoBackOrForward):
37569        * kwq/KWQKPartsBrowserInterface.h:
37570        * kwq/WebCoreBridge.h:
37571
375722004-08-27  Maciej Stachowiak  <mjs@apple.com>
37573
37574        Reviewed by Chris.
37575
37576	- fixed <rdar://problem/3778043> REGRESSION: innerHTML is broken, breaks automated iBench testing
37577	- also fixed outerHTML, which would spill over past the node for whch it was supposed to get HTML
37578	
37579        * khtml/html/html_elementimpl.cpp:
37580        (HTMLElementImpl::outerHTML):
37581        * khtml/xml/dom2_rangeimpl.cpp:
37582        (DOM::RangeImpl::toHTML):
37583        * khtml/xml/dom_nodeimpl.cpp:
37584        (NodeImpl::toHTML):
37585        (NodeImpl::recursive_toString):
37586        (NodeImpl::recursive_toHTML):
37587        * khtml/xml/dom_nodeimpl.h:
37588        * kwq/WebCoreBridge.mm:
37589        (-[WebCoreBridge markupStringFromNode:nodes:]):
37590
37591	- added new layout tests to cover the problems I fixed
37592        
37593	* layout-tests/fast/innerHTML/001-expected.txt: Added.
37594        * layout-tests/fast/innerHTML/001.html: Added.
37595        * layout-tests/fast/innerHTML/002-expected.txt: Added.
37596        * layout-tests/fast/innerHTML/002.html: Added.
37597        * layout-tests/fast/innerHTML/003-expected.txt: Added.
37598        * layout-tests/fast/innerHTML/003.html: Added.
37599
376002004-08-27  David Hyatt  <hyatt@apple.com>
37601
37602	Fix for 3739239, getComputedStyle of top not being implemented broke a site that checked for it.
37603	
37604        Reviewed by kocienda
37605
37606        * khtml/css/css_computedstyle.cpp:
37607        (DOM::valueForLength):
37608        (DOM::CSSComputedStyleDeclarationImpl::getPositionOffsetValue):
37609        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
37610        * khtml/css/css_computedstyle.h:
37611
376122004-08-27  John Sullivan  <sullivan@apple.com>
37613
37614        Reviewed by Ken.
37615        
37616        Tweaked option-tab handling to match good suggestion from Tim Omernick of OmniWeb
37617
37618        * kwq/KWQTextArea.mm:
37619        removed override of textDidChange:
37620        (-[KWQTextAreaTextView keyDown:]):
37621        moved option-tab handling that was in textDidChange to here. Rearranged existing code
37622        a little for clarity.
37623
376242004-08-27  Adele Amchan  <adele@apple.com>
37625
37626        Reviewed by Darin.
37627
37628	Fix for:
37629	<rdar://problem/3689949> Provide contentWindow access on an iframe
37630
37631        * khtml/ecma/kjs_html.cpp:
37632        (KJS::HTMLElement::getValueProperty): added cases for contentWindow for frames and iframes
37633        * khtml/ecma/kjs_html.h: added contentWindow to the list of properties for frames and iframes
37634        * khtml/ecma/kjs_html.lut.h: regenerated file
37635        * khtml/html/html_baseimpl.cpp:
37636        (HTMLFrameElementImpl::contentPart): factored out old contentDocument code to return KHTMLPart for frame
37637        (HTMLFrameElementImpl::contentDocument): now just gets the contentDocument from contentPart
37638        * khtml/html/html_baseimpl.h: added declaration for contentPart
37639
37640=== Safari-161 ===
37641
376422004-08-27  Ken Kocienda  <kocienda@apple.com>
37643
37644        Reviewed by Darin
37645
37646        Fix for this bug:
37647        
37648        <rdar://problem/3778059> Odd behaviour when editing between blockquote elements
37649
37650        * khtml/editing/htmlediting_impl.cpp:
37651        (khtml::CompositeEditCommandImpl::deleteUnrenderedText): This function should not move
37652        the selection out of the current block, ever. This is exactly what the bug reported.
37653        What was I thinking? Now, the code looks at the passed-in position and then the equivalent
37654        upstream and downstream positions to see if the selection can be placed there after the
37655        delete, and settles on the block containing the passed-in position as a fallback.
37656        * layout-tests/editing/inserting/insert-3778059-fix-expected.txt: Added.
37657        * layout-tests/editing/inserting/insert-3778059-fix.html: Added.
37658
376592004-08-26  Richard Williamson   <rjw@apple.com>
37660
37661        Boiler plate for canvas gradients and patterns.
37662
37663        Reviewed by John.
37664
37665        * khtml/ecma/kjs_html.cpp:
37666        (KJS::Context2DFunction::tryCall):
37667        (Context2D::tryPut):
37668        (Context2D::~Context2D):
37669        (KJS::GradientFunction::tryCall):
37670        (Gradient::Gradient):
37671        (Gradient::tryGet):
37672        (Gradient::getValueProperty):
37673        (Gradient::tryPut):
37674        (Gradient::putValue):
37675        (Gradient::~Gradient):
37676        (ImagePattern::ImagePattern):
37677        (ImagePattern::tryGet):
37678        (ImagePattern::getValueProperty):
37679        (ImagePattern::tryPut):
37680        (ImagePattern::putValue):
37681        (ImagePattern::~ImagePattern):
37682        * khtml/ecma/kjs_html.h:
37683        (KJS::Gradient::toBoolean):
37684        (KJS::Gradient::classInfo):
37685        (KJS::Gradient::):
37686        (KJS::ImagePattern::toBoolean):
37687        (KJS::ImagePattern::classInfo):
37688        (KJS::ImagePattern::):
37689        * khtml/ecma/kjs_html.lut.h:
37690        (KJS::):
37691
376922004-08-26  Ken Kocienda  <kocienda@apple.com>
37693
37694        Reviewed by John
37695
37696        Fix for this bug:
37697        
37698        <rdar://problem/3777899> REGRESSION (Mail): only first of several misspelled words separated by 
37699        carriage returns is marked
37700
37701        * khtml/editing/htmlediting_impl.cpp:
37702        (khtml::TypingCommandImpl::markMisspellingsAfterTyping): Give the spellchecker a slightly larger 
37703        selection to work with while typing. This should preclude bugs of this type.
37704
377052004-08-26  Ken Kocienda  <kocienda@apple.com>
37706
37707        Reviewed by Chris
37708        
37709        Fix for this bug:
37710        
37711        <rdar://problem/3777804> Deleting all content in a document can result in giant tall-as-window insertion point
37712
37713        * khtml/rendering/render_box.cpp:
37714        (RenderBox::caretPos): Always use the font height for calculating the caret height in 
37715        non-replaced elements (like blocks), rather than the height of the box.
37716
377172004-08-26  Ken Kocienda  <kocienda@apple.com>
37718
37719        Silly me. Forgot to add this file before.
37720
37721        * layout-tests/editing/inserting/insert-3775316-fix-expected.txt: Added.
37722
377232004-08-26  David Hyatt  <hyatt@apple.com>
37724
37725	Fix for 3777172, crash from nested colgroup.  Don't allow nested table sections or col groups.
37726	
37727        Reviewed by darin
37728
37729        * khtml/html/htmlparser.cpp:
37730        (KHTMLParser::insertNode):
37731
377322004-08-26  Ken Kocienda  <kocienda@apple.com>
37733
37734        Reviewed by Hyatt
37735
37736        Fix for this bug:
37737        
37738        <rdar://problem/3775316> document sprouts an extra newline character at the end
37739
37740        * khtml/editing/htmlediting_impl.cpp:
37741        (khtml::InputNewlineCommandImpl::doApply): There was in insufficient check
37742        in the code which adds extra BR elements at the ends of blocks, which we do 
37743        to work around the fact that BR elements, when they are the last element in a
37744        block, do not render. Now the code sees whether there already is one of these
37745        extra BR's in the document and won't add and "extra" extra. 
37746        * layout-tests/editing/inserting/insert-3775316-fix.html: Added.
37747
377482004-08-26  David Hyatt  <hyatt@apple.com>
37749
37750	Fix for 3710721 and 3504114, crashes because of bad ownership model for list markers.
37751	
37752        Reviewed by mjs
37753
37754        * khtml/rendering/render_container.cpp:
37755        (RenderContainer::detach):
37756        * khtml/rendering/render_list.cpp:
37757        (RenderListItem::setStyle):
37758        (RenderListItem::detach):
37759        (RenderListItem::updateMarkerLocation):
37760        * khtml/rendering/render_list.h:
37761
377622004-08-26  Ken Kocienda  <kocienda@apple.com>
37763
37764        Reviewed by John
37765
37766        * khtml/editing/htmlediting_impl.cpp:
37767        (khtml::ApplyStyleCommandImpl::doApply): Remove the StayInBlock modifier from the
37768        call to upstream when passing the start position to removeStyle(). This makes the
37769        start position sufficiently upstream so that all relevant style tags are removed.
37770        (khtml::ApplyStyleCommandImpl::removeStyle): Pass the start position to nodeFullySelected.
37771        (khtml::ApplyStyleCommandImpl::nodeFullySelected): Change interface so start position
37772        for calculation is passed in, rather than recalculating it every time.
37773        * khtml/editing/htmlediting_impl.h: nodeFullySelected interface change.
37774        * khtml/xml/dom_position.h: Add a comment about the working of upstream() and
37775        downstream().
37776
377772004-08-26  Ken Kocienda  <kocienda@apple.com>
37778
37779        Fix garbled contenteditable attribute. I must have checked
37780        this in with a typo.
37781
37782        * layout-tests/editing/deleting/delete-3775172-fix.html
37783
377842004-08-25  Kevin Decker  <kdecker@apple.com>
37785
37786        Reviewed by John and Maciej.
37787
37788	- Fixes SAP bug <rdar://problem/3751295> Personalize link at the
37789 	top gives an error in the pop-up window. 
37790
37791        * khtml/ecma/kjs_window.cpp:
37792        (WindowFunc::tryCall): Passes a referrer to KHTMLPart::begin() 
37793
377942004-08-25  Richard Williamson   <rjw@apple.com>
37795
37796	Updated to <canvas> API to match the spec.  (Still need
37797	to implement gradients and patterns.)
37798
37799        Reviewed by Ken.
37800
37801        * khtml/ecma/kjs_html.cpp:
37802        (KJS::Context2DFunction::tryCall):
37803        (Context2D::getValueProperty):
37804        (Context2D::drawingContext):
37805        (Context2D::colorRefFromValue):
37806        (Context2D::colorFromValue):
37807        (Context2D::setShadow):
37808        (Context2D::putValue):
37809        (Context2D::save):
37810        (Context2D::restore):
37811        (Context2D::Context2D):
37812        * khtml/ecma/kjs_html.h:
37813        (KJS::Context2D::):
37814        * khtml/ecma/kjs_html.lut.h:
37815        (KJS::):
37816
378172004-08-25  Ken Kocienda  <kocienda@apple.com>
37818
37819        * layout-tests/editing/deleting/delete-3775172-fix.html: Wrong version of test checked in
37820        a moment ago.
37821
378222004-08-25  Ken Kocienda  <kocienda@apple.com>
37823
37824        Added test case for <rdar://problem/3775172> Blot crashes after typing one character then deleting it
37825
37826        * layout-tests/editing/deleting/delete-3775172-fix-expected.txt: Added.
37827        * layout-tests/editing/deleting/delete-3775172-fix.html: Added.
37828
378292004-08-25  Ken Kocienda  <kocienda@apple.com>
37830
37831        * layout-tests/editing/style/style-3690704-fix-expected.txt: Fewer styling spans added
37832        on this test as a result of the previously-checked-in fix.
37833
378342004-08-25  Ken Kocienda  <kocienda@apple.com>
37835
37836        Reviewed by John
37837
37838        Fix for this bug:
37839        
37840        <rdar://problem/3775214> BR elements cause unnecessary spans to be added when applying style
37841
37842        * khtml/editing/htmlediting_impl.cpp:
37843        (khtml::ApplyStyleCommandImpl::doApply): BR elements can be grouped more liberally with other nodes
37844        now in the iteration when attempting to find nodes that can be styled together with one span.
37845        * layout-tests/editing/style/style-3690704-fix-expected.txt: Updated with new results after
37846        bug fix.
37847
378482004-08-25  Ken Kocienda  <kocienda@apple.com>
37849
37850        Reviewed by John
37851
37852        Fix for this bug:
37853        
37854        <rdar://problem/3775172> Blot crashes after typing one character then deleting it
37855
37856        * khtml/css/css_computedstyle.cpp:
37857        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Bail early if the element
37858        being queried does not have a renderer or that renderer does not have a style. Prevents
37859        a crash in the cases that it does not.
37860        * khtml/editing/htmlediting_impl.cpp:
37861        (khtml::DeleteSelectionCommandImpl::doApply): Add one more case to deleting when the
37862        start and end nodes are different. If the downstream end node is the last node in the
37863        block, then it may need to be deleted completely. Before this patch, the code
37864        erroneously assumed that any deletion in this node had to be trimming of a text node.
37865        This was asserted, and the description in 3775172 shows a simple case where this assertion
37866        does not hold. The additional case and associated checks now make it all better.
37867        * layout-tests/editing/deleting/delete-3775172-fix.html: Added.
37868
378692004-08-25  David Hyatt  <hyatt@apple.com>
37870
37871	Fix for 3365086, large tables crash Safari.  Make sure to use ints rather than shorts for row and column
37872	counts.  Also fix a pathological array resize scenario for tables as rows are added.
37873	
37874        Reviewed by darin
37875
37876        * khtml/rendering/render_table.cpp:
37877        (RenderTable::splitColumn):
37878        (RenderTable::appendColumn):
37879        (RenderTableSection::RenderTableSection):
37880        (RenderTableSection::ensureRows):
37881        (RenderTableSection::setCellWidths):
37882        (RenderTableSection::calcRowHeight):
37883        (RenderTableSection::layoutRows):
37884        (RenderTableSection::paint):
37885        (RenderTableSection::recalcCells):
37886        (RenderTableSection::clearGrid):
37887        * khtml/rendering/render_table.h:
37888        (khtml::RenderTableSection::numRows):
37889
378902004-08-25  David Hyatt  <hyatt@apple.com>
37891
37892	To save memory in the common case, move the margin***Collapse variables into the CSS3 struct instead of
37893	bloating the surround struct.
37894	
37895        * khtml/rendering/render_style.cpp:
37896        (StyleSurroundData::StyleSurroundData):
37897        (StyleSurroundData::operator==):
37898        (marginBottomCollapse):
37899        (StyleCSS3NonInheritedData::operator==):
37900        (RenderStyle::diff):
37901        * khtml/rendering/render_style.h:
37902        (khtml::RenderStyle::marginTopCollapse):
37903        (khtml::RenderStyle::marginBottomCollapse):
37904        (khtml::RenderStyle::setMarginTopCollapse):
37905        (khtml::RenderStyle::setMarginBottomCollapse):
37906
379072004-08-25  David Hyatt  <hyatt@apple.com>
37908
37909	Fix the "extra space in TypePad blogs" Emerson problem by adding the ability to collapse away margins.
37910	Also added support for explicitly preventing margin collapsing.
37911	
37912        Reviewed by mjs
37913
37914        * khtml/css/cssparser.cpp:
37915        (CSSParser::parseValue):
37916        * khtml/css/cssproperties.c:
37917        (hash_prop):
37918        (findProp):
37919        * khtml/css/cssproperties.h:
37920        * khtml/css/cssproperties.in:
37921        * khtml/css/cssstyleselector.cpp:
37922        (khtml::CSSStyleSelector::applyProperty):
37923        * khtml/css/cssvalues.c:
37924        (hash_val):
37925        (findValue):
37926        * khtml/css/cssvalues.h:
37927        * khtml/css/cssvalues.in:
37928        * khtml/rendering/render_block.cpp:
37929        (khtml::RenderBlock::isSelfCollapsingBlock):
37930        (khtml::RenderBlock::layoutBlockChildren):
37931        * khtml/rendering/render_style.cpp:
37932        (StyleSurroundData::StyleSurroundData):
37933        (StyleSurroundData::operator==):
37934        (RenderStyle::diff):
37935        * khtml/rendering/render_style.h:
37936        (khtml::):
37937        (khtml::RenderStyle::marginTopCollapse):
37938        (khtml::RenderStyle::marginBottomCollapse):
37939        (khtml::RenderStyle::setMarginTopCollapse):
37940        (khtml::RenderStyle::setMarginBottomCollapse):
37941        (khtml::RenderStyle::initialMarginTopCollapse):
37942        (khtml::RenderStyle::initialMarginBottomCollapse):
37943
379442004-08-24  Ken Kocienda  <kocienda@apple.com>
37945
37946        Reviewed by Hyatt
37947
37948        Improved the ability of the bridge to report selection state.     
37949
37950        * khtml/editing/htmlediting_impl.cpp:
37951        (khtml::TypingCommandImpl::doApply): Bail when there is no selection.
37952        * kwq/WebCoreBridge.h: Added an enum to report selection state. These constants
37953        mirror those used in DOM::Selection.
37954        * kwq/WebCoreBridge.mm:
37955        (-[WebCoreBridge selectionState]): Replacement for haveSelection. Returns a value 
37956        from an enum telling whether the selection is in the None, Caret, or Range state, 
37957        rather than just true/false for the Range state as it did before.
37958
379592004-08-24  David Hyatt  <hyatt@apple.com>
37960
37961	Make sure the ifdef XSLT is present for Panther.
37962	
37963        * khtml/xml/xml_tokenizer.cpp:
37964        (khtml::XMLTokenizer::insertErrorMessageBlock):
37965
379662004-08-24  David Hyatt  <hyatt@apple.com>
37967
37968	Polish the XML error message so that it indicates when a document is the result of an XSL transformation
37969	when reporting line/col #s.
37970	
37971        * khtml/xml/dom_docimpl.cpp:
37972        (DocumentImpl::applyXSLTransform):
37973        * khtml/xml/xml_tokenizer.cpp:
37974        (khtml::XMLTokenizer::insertErrorMessageBlock):
37975        * khtml/xsl/xslt_processorimpl.cpp:
37976        (DOM::XSLTProcessorImpl::documentFromXMLDocPtr):
37977
379782004-08-24  David Hyatt  <hyatt@apple.com>
37979
37980	Add support for Atom and RSS MIME types to the set of XML types.
37981	
37982        Reviewed by rjw
37983
37984        * khtml/ecma/xmlhttprequest.cpp:
37985        (KJS::XMLHttpRequest::getValueProperty):
37986        * khtml/khtml_part.cpp:
37987        (KHTMLPart::begin):
37988        * khtml/misc/loader.cpp:
37989        (CachedXSLStyleSheet::CachedXSLStyleSheet):
37990        (CachedXBLDocument::CachedXBLDocument):
37991        * khtml/xml/dom_xmlimpl.cpp:
37992        (DOM::ProcessingInstructionImpl::checkStyleSheet):
37993
379942004-08-24  Chris Blumenberg  <cblu@apple.com>
37995
37996	Fixed: <rdar://problem/3746447> hang loading geocities.com/cinemaorchestra
37997
37998        Reviewed by john.
37999
38000        * khtml/rendering/render_frames.cpp:
38001        (RenderPartObject::updateWidget): do nothing if the src URL is the same as the part's URL
38002
380032004-08-24  Ken Kocienda  <kocienda@apple.com>
38004
38005        Reviewed by Chris
38006
38007        Fix for this bug:
38008        
38009        <rdar://problem/3773564> REGRESSION (125-159): Code to remove HTML styles before applying new HTML styles is broken
38010
38011        * khtml/editing/htmlediting_impl.cpp:
38012        (khtml::ApplyStyleCommandImpl::doApply): Unrelated change to constrain downstream position of selection
38013        start to block boundaries. This is a new feature of the downstream function and I missed this usage
38014        when adding the feature.
38015        (khtml::ApplyStyleCommandImpl::removeCSSStyle): There once was code to remove style attributes from spans
38016        which became emptied as a result of removing CSS properties, but I do not see such code in the 
38017        tree any more. A quick review of the ChangeLog did not reveal anything. I do not remember making such
38018        a change myself...
38019        
38020        In any case, I have restored logic to prune out styling spans we insert if the process of 
38021        removing styles caused a span-plus-styles node to become emptied of markup which changes the style
38022        of its contents. This fixes the bug.
38023
380242004-08-24  Ken Kocienda  <kocienda@apple.com>
38025
38026        Reviewed by John
38027
38028        Fix for this bug:
38029        
38030        <rdar://problem/3765535> paste of text with newlines into text with newlines results in broken doc, crash
38031        
38032        This is a "belt and suspenders" fix. The issue is with the paste code path which was creating
38033        zero-length DOM text nodes when a selection being pasted ended with a newline. The normal
38034        code path for parsing HTML does not allow this, but the code to convert newlines to BR's 
38035        during paste was creating such nodes. This will no longer happen.
38036        
38037        In the case where someone inserts such zero-length nodes using the DOM API, the render tree
38038        will no longer create render objects for these nodes, and it was these empty render text 
38039        nodes that was confusing the code doing editing navigation.
38040
38041        * khtml/xml/dom_textimpl.cpp:
38042        (CharacterDataImpl::rendererIsNeeded): Do not create renderers for zero-length DOM text nodes.
38043        * khtml/xml/dom_textimpl.h:
38044        * kwq/WebCoreBridge.mm:
38045        (-[WebCoreBridge documentFragmentWithText:]): Do not insert zero-length DOM text nodes as part
38046        of converting line-end sequences to BR's.
38047
380482004-08-23  Maciej Stachowiak  <mjs@apple.com>
38049
38050        Reviewed by Richard.
38051
38052	- reduce cost of innerHTML from O(N^2) to O(N*D) where N is the
38053	number of nodes and D is the maximum DOM tree depth.
38054	
38055        * khtml/xml/dom_nodeimpl.cpp:
38056        (NodeImpl::recursive_toString): New static helper method for
38057	recursive_toHTML - this is recursive for children but iterative
38058	for siblings.
38059        (NodeImpl::recursive_toHTML): Call the helper with this as the
38060	first argument.
38061        * khtml/xml/dom_nodeimpl.h:
38062
380632004-08-23  David Hyatt  <hyatt@apple.com>
38064
38065	Fix for 3558334. 
38066
38067	Init the encodedURL explicitly for CSSStyleSelectors.  Construction time was too early to be passing in the
38068	document m_url, since it doesn't get set during construction.
38069
38070	Fix for 3769643, crash on vancouverblast.org.
38071	
38072        Reviewed by darin
38073
38074        * khtml/css/cssstyleselector.cpp:
38075        (khtml::CSSStyleSelector::CSSStyleSelector):
38076        (khtml::CSSStyleSelector::init):
38077        (khtml::CSSStyleSelector::setEncodedURL):
38078        * khtml/css/cssstyleselector.h:
38079        * khtml/xml/dom_docimpl.cpp:
38080        (DocumentImpl::DocumentImpl):
38081        (DocumentImpl::setURL):
38082        (DocumentImpl::recalcStyleSelector):
38083        * khtml/xml/dom_docimpl.h:
38084        (DOM::DocumentImpl::URL):
38085
380862004-08-23  Kevin Decker  <kdecker@apple.com>
38087
38088        Reviewed by Maciej.
38089
38090	- fixed rdar://problem/3681094> Crash in KJS::WindowFunc::tryCall 	with application/xhtml+xml Content-Type
38091        * khtml/ecma/kjs_window.cpp:
38092        (WindowFunc::tryCall): since this is an xml document, we get the
38093	domain from the xmlDocImpl(), not docImpl().
38094
380952004-08-23  Maciej Stachowiak  <mjs@apple.com>
38096
38097        Reviewed by Darin.
38098
38099	<rdar://problem/3771426> assertion failed due to reentering dispatchImageLoadEventsNow
38100        
38101	* khtml/xml/dom_docimpl.cpp:
38102        (DocumentImpl::dispatchImageLoadEventsNow): Avoid re-entering this
38103	function, since it uses a data member for the copy of the list of events
38104	to be dispatched.
38105
381062004-08-23  Maciej Stachowiak  <mjs@apple.com>
38107
38108        Reviewed by Darin.
38109
38110	<rdar://problem/3770306> XMLHttpRequest does not honor character set encoding
38111
38112        * khtml/ecma/xmlhttprequest.cpp:
38113        (KJS::XMLHttpRequest::slotData): Get encoding from the transfer job.
38114        * kwq/KWQKJobClasses.h:
38115        * kwq/KWQKJobClasses.mm:
38116        (KIO::TransferJobPrivate::TransferJobPrivate): Added retrievedCharset
38117	flag.
38118        (KIO::TransferJob::retrieveCharset): New method, gets the charset
38119	from the response.
38120        (KIO::TransferJob::queryMetaData): Handle charset.
38121        (KIO::TransferJob::emitReceivedResponse): Clear retreivedCharset flag.
38122        * kwq/KWQLoader.h:
38123        * kwq/KWQLoader.mm:
38124        (KWQResponseTextEncodingName): New function, gets the encoding from the response.
38125
381262004-08-23  David Hyatt  <hyatt@apple.com>
38127
38128	Apply leo's fix to marquees.
38129	
38130        Reviewed by hyatt
38131
38132        * khtml/rendering/render_layer.cpp:
38133        (Marquee::start):
38134
381352004-08-20  Darin Adler  <darin@apple.com>
38136
38137        Reviewed by Maciej.
38138
38139        - added an ascii() member function to DOMString and DOMStringImpl to help debugging
38140
38141        * khtml/dom/dom_string.h: Add ascii member function for debugging.
38142        * khtml/dom/dom_string.cpp: (DOM::DOMString::ascii): Added. Calls through to DOMStringImpl::ascii.
38143        * khtml/xml/dom_stringimpl.h: Add ascii member function for debugging.
38144        * khtml/xml/dom_stringimpl.cpp: (DOM::DOMStringImpl::ascii): Added. Makes a new buffer and puts
38145        a simple ASCII version in it. Maybe make it better about characters outside the 0x20-0x7E range
38146        some day, but for now this is way better than what we had before.
38147
381482004-08-20  David Hyatt  <hyatt@apple.com>
38149
38150	Divorce the notion of a marquee being stopped from JS from the notion of being suspended by the back/forward cache.
38151
38152        * khtml/ecma/kjs_html.cpp:
38153        (KJS::HTMLElementFunction::tryCall):
38154        * khtml/rendering/render_layer.cpp:
38155        (m_direction):
38156        (Marquee::start):
38157        (Marquee::stop):
38158        (Marquee::updateMarqueePosition):
38159        * khtml/rendering/render_layer.h:
38160
381612004-08-20  Richard Williamson   <rjw@apple.com>
38162
38163        Implemented new JNI abstraction.  We no longer invoke Java methods
38164        directly with JNI, rather we call into the plugin.  This allows the
38165        plugin to dispatch the call to the appropriate VM thread.  This
38166        change should (will?) fix a whole class of threading related problems with
38167        the Java VM.
38168
38169        Reviewed by Hyatt.
38170
38171        * kwq/KWQKHTMLPart.mm:
38172        (KWQKHTMLPart::getAppletInstanceForView):
38173        * kwq/WebCoreBridge.mm:
38174        (rootForView):
38175        (-[WebCoreBridge executionContextForView:]):
38176
381772004-08-19  Maciej Stachowiak  <mjs@apple.com>
38178
38179        Reviewed by Darin.
38180
38181	More text paint cleanup. Separated the background and foreground
38182	passes instead of doing a weird for loop thing. Eliminated
38183	redundant if conditions. Added comments.
38184
38185        * khtml/rendering/render_text.cpp:
38186        (RenderText::paint):
38187
381882004-08-19  Ken Kocienda  <kocienda@apple.com>
38189
38190        Reviewed by Darin
38191
38192        * khtml/css/css_computedstyle.cpp:
38193        (DOM::): Changed CopyProperties constant to InheritableProperties. This reflects the
38194        name change of copy() to copyInheritableProperties()
38195        (DOM::CSSComputedStyleDeclarationImpl::copyInheritableProperties: Renamed from copy().
38196        Now just copies those properties which can be inherited.
38197        (DOM::CSSComputedStyleDeclarationImpl::diff): Add a couple null checks.
38198        * khtml/css/css_computedstyle.h: copyInheritableProperties name change. No longer needs to be virtual.
38199        * khtml/css/css_valueimpl.cpp: Removed unneeded copy() function from CSSStyleDeclarationImpl.
38200        * khtml/css/css_valueimpl.h: Ditto.
38201        * khtml/editing/htmlediting.cpp:
38202        (khtml::EditCommand::typingStyle): Added.
38203        (khtml::EditCommand::setTypingStyle): Added.
38204        * khtml/editing/htmlediting.h:
38205        * khtml/editing/htmlediting_impl.cpp:
38206        (khtml::StyleChange::currentlyHasStyle): Fix leak of computed style used in this function.
38207        (khtml::EditCommandImpl::EditCommandImpl): Initialize m_typingStyle.
38208        (khtml::EditCommandImpl::~EditCommandImpl): Deref m_typingStyle.
38209        (khtml::EditCommandImpl::assignTypingStyle): New helper used in setting typing style.
38210        (khtml::EditCommandImpl::setTypingStyle): New setter.
38211        (khtml::DeleteSelectionCommandImpl::doApply): Use new method for managing typing style.
38212        * khtml/editing/htmlediting_impl.h:
38213        (khtml::EditCommandImpl::typingStyle): New accessor.
38214        * khtml/khtml_part.cpp:
38215        (KHTMLPart::appliedEditing): Restores typing style from command after setting selection.
38216        (KHTMLPart::applyStyle): Does a diff between the current style and the style of the caret.
38217        * khtml/khtml_part.h:
38218        * khtml/xml/dom_position.cpp:
38219        (DOM::Position::computedStyle): Now returns a CSSComputedStyleDeclarationImpl instead of a plain
38220        CSSStyleDeclarationImpl.
38221        * khtml/xml/dom_position.h:
38222        * layout-tests/editing/style/style-3681552-fix-002-expected.txt:
38223
382242004-08-20  Trey Matteson  <trey@apple.com>
38225
38226	3655407 - Editing: -complete: method unimplemented (WebKit editing API)
38227
38228	One new support routine here.
38229
38230        Reviewed by John
38231
38232        * kwq/WebCoreBridge.h:
38233        * kwq/WebCoreBridge.mm:
38234        (-[WebCoreBridge caretRectAtNode:offset:]):  New routine.
38235        (-[WebCoreBridge rangeByExpandingSelectionWithGranularity:]):
38236	Fixed former misleading method name.
38237
382382004-08-20  Ken Kocienda  <kocienda@apple.com>
38239
38240        Reviewed by Trey
38241
38242        Fix for this bug:
38243        
38244        <rdar://problem/3768378> crash typing newline in Blot
38245
38246        * khtml/editing/htmlediting_impl.cpp:
38247        (khtml::InputNewlineCommandImpl::doApply): Adding an assert in a recent change
38248        showed up that inserting newlines that was not being handled correctly for the 
38249        case described in the bug. I added a new case to handle inserting BR's when
38250        at the caret max offset for a node, and this new code runs instead of the
38251        fall-through case that should not have been running and triggered the assert.
38252        * layout-tests/editing/inserting/insert-br-case2-expected.txt: Regenerated results.
38253        * layout-tests/editing/inserting/insert-br-case6-expected.txt: Added.
38254        * layout-tests/editing/inserting/insert-br-case6.html: Added.
38255
382562004-08-20  Trey Matteson  <trey@apple.com>
38257
38258        Fixing: Spellchecker called once or twice for every char typed.
38259
38260        Reviewed by Ken
38261
38262        * khtml/khtml_part.cpp:
38263        (KHTMLPart::setSelection):  Don't do any spell checking if we're typing (it's done
38264        elsewhere, in markMisspellingsAfterTyping)
38265 
382662004-08-19  Maciej Stachowiak  <mjs@apple.com>
38267
38268        Reviewed by John.
38269
38270	- fixed <rdar://problem/3549369> Crash at www.e1.ru in HTMLTokenizer::notifyFinished
38271
38272	Probably also fixed the following likely duplicates:
38273
38274	<rdar://problem/3503938> Safari crashed opening many tabs (HTMLTokenizer::notifyFinished(khtml::CachedObject*))
38275	<rdar://problem/3566332> CrashTracer: ..405 crashes at com.apple.WebCore: QString::QString[unified] + 0x5c
38276	<rdar://problem/3703964> CrashTracer: ...86 crashes at com.apple.WebCore: QString::QString[unified] + 0x5c
38277	<rdar://problem/3703969> CrashTracer: ..234 crashes at com.apple.WebCore: HTMLTokenizer::notifyFinished + 0x1c8
38278
38279        * khtml/xml/dom_docimpl.cpp:
38280        (DocumentImpl::open): call setParsing(true), because we need to know we are once again
38281	parsing when we re-open a document that has previously completed loading.
38282
382832004-08-19  Maciej Stachowiak  <mjs@apple.com>
38284
38285        Reviewed by Dave and Darin.
38286
38287        * khtml/rendering/render_text.cpp:
38288        (RenderText::paint): Split apple and non-apple code paths to allow further cleanup.
38289
382902004-08-19  Darin Adler  <darin@apple.com>
38291
38292        Reviewed by Dave.
38293
38294        - fixed <rdar://problem/3767274> crash in partForWidget inside setFocus (test page attached)
38295
38296        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::nextKeyViewInFrame): Remove code to do position
38297        the widget; no longer needed since we reworked how widgets get their positions.
38298        * kwq/KWQWidget.mm: (QWidget::setFocus): Ditto. This was the one that caused the bug.
38299
383002004-08-19  David Hyatt  <hyatt@apple.com>
38301
38302	Fix crash when text is contained inside a table-colgroup.
38303	
38304        Reviewed by john
38305
38306        * khtml/xml/dom_textimpl.cpp:
38307        (TextImpl::rendererIsNeeded):
38308
383092004-08-19  Trey Matteson  <trey@apple.com>
38310
38311	Unexpected errors hit while finding word boundaries, leading to crash.
38312
38313        Reviewed by Ken.
38314
38315        * kwq/KWQTextUtilities.cpp:
38316        (KWQFindWordBoundary):  Don't call UCFindTextBreak with edge cases it thinks
38317	are param errors, and pass correct mask for forward case.  Also fix off-by-one
38318	crashers in fallback code.
38319
383202004-08-19  David Hyatt  <hyatt@apple.com>
38321
38322	Make XSLT imports/includes work.  This code has to be turned off until the newer version of libxslt is
38323	available.
38324	
38325        Reviewed by kocienda
38326
38327        * khtml/css/css_ruleimpl.cpp:
38328        (CSSImportRuleImpl::init):
38329        * khtml/xml/dom_docimpl.cpp:
38330        (DocumentImpl::DocumentImpl):
38331        (DocumentImpl::~DocumentImpl):
38332        (DocumentImpl::applyXSLTransform):
38333        * khtml/xml/dom_docimpl.h:
38334        (DOM::DocumentImpl::setTransformSource):
38335        (DOM::DocumentImpl::transformSource):
38336        * khtml/xml/dom_xmlimpl.cpp:
38337        (DOM::ProcessingInstructionImpl::checkStyleSheet):
38338        * khtml/xml/xml_tokenizer.cpp:
38339        (khtml::matchFunc):
38340        (khtml::openFunc):
38341        (khtml::readFunc):
38342        (khtml::writeFunc):
38343        (khtml::createQStringParser):
38344        (khtml::XMLTokenizer::setTransformSource):
38345        * khtml/xsl/xsl_stylesheetimpl.cpp:
38346        (DOM::XSLStyleSheetImpl::XSLStyleSheetImpl):
38347        (DOM::XSLStyleSheetImpl::~XSLStyleSheetImpl):
38348        (DOM::XSLStyleSheetImpl::isLoading):
38349        (DOM::XSLStyleSheetImpl::clearDocuments):
38350        (DOM::XSLStyleSheetImpl::parseString):
38351        (DOM::XSLStyleSheetImpl::loadChildSheets):
38352        (DOM::XSLStyleSheetImpl::loadChildSheet):
38353        (DOM::XSLImportRuleImpl::parentStyleSheet):
38354        (DOM::XSLStyleSheetImpl::compileStyleSheet):
38355        (DOM::XSLStyleSheetImpl::locateStylesheetSubResource):
38356        (DOM::XSLImportRuleImpl::XSLImportRuleImpl):
38357        (DOM::XSLImportRuleImpl::~XSLImportRuleImpl):
38358        (DOM::XSLImportRuleImpl::setStyleSheet):
38359        (DOM::XSLImportRuleImpl::isLoading):
38360        (DOM::XSLImportRuleImpl::loadSheet):
38361        * khtml/xsl/xsl_stylesheetimpl.h:
38362        (DOM::XSLStyleSheetImpl::setOwnerDocument):
38363        (DOM::XSLStyleSheetImpl::setDocument):
38364        (DOM::XSLStyleSheetImpl::markAsProcessed):
38365        (DOM::XSLStyleSheetImpl::processed):
38366        (DOM::XSLImportRuleImpl::href):
38367        (DOM::XSLImportRuleImpl::styleSheet):
38368        (DOM::XSLImportRuleImpl::isImportRule):
38369        * khtml/xsl/xslt_processorimpl.cpp:
38370        (DOM::m_sourceDocument):
38371        (DOM::stylesheetLoadFunc):
38372        (DOM::XSLTProcessorImpl::transformDocument):
38373        * khtml/xsl/xslt_processorimpl.h:
38374
38375=== Safari-158 ===
38376
383772004-08-18  Trey Matteson  <trey@apple.com>
38378
38379	3765958	- downstreamPosition() can hit infinite loop when at end of doc
38380	
38381	The problem was that I had a position that was after the maximum position in the text
38382	node, because it was the old caret position before a backspace was processed.  Later
38383	I happened to call downstream() on that position, and hit the bug.  Fix is to consider
38384	a position past the end point of its node if it is *greater than* or equal to its max offset.
38385		 	
38386        Reviewed by Ken.
38387
38388        * khtml/xml/dom_positioniterator.cpp:
38389        (DOM::PositionIterator::atEnd):
38390
383912004-08-18  David Hyatt  <hyatt@apple.com>
38392
38393        - did WebCore part of <rdar://problem/3682969> SLIDER: absolute left position of slider should be headline only
38394
38395	Make the header overlap the footer in the zero-line case.  Changes to Emerson's template will ensure the
38396	header draws over the footer.
38397	
38398        Reviewed by darin
38399
38400        * khtml/rendering/render_block.cpp:
38401        (khtml::getHeightForLineCount):
38402
384032004-08-18  Richard Williamson   <rjw@apple.com>
38404
38405        Replace horrible pollForAppletInView: with new
38406        webPlugInGetApplet.  The details of how the applet instance
38407        is provided now belong to the Java team.  Yeh.
38408		
38409        Reviewed by Chris.
38410
38411        * kwq/KWQKHTMLPart.mm:
38412        (KWQKHTMLPart::getAppletInstanceForView):
38413        * kwq/WebCoreBridge.h:
38414
384152004-08-18  Chris Blumenberg  <cblu@apple.com>
38416
38417	Fixed: <rdar://problem/3692199> 8A146: Safari crashes in toHTMLWithOptions, selection with no renderer (various sites)
38418
38419        Reviewed by trey.
38420
38421        * khtml/xml/dom2_rangeimpl.cpp:
38422        (DOM::RangeImpl::toHTML): renamed, don't assume that nodes of the range had renderers, use the common ancestor of the range as the root
38423        * khtml/xml/dom2_rangeimpl.h:
38424        * khtml/xml/dom_nodeimpl.cpp:
38425        (NodeImpl::recursive_toHTML): renamed, removed code that determines whether to include the root in the HTML, leave this up to the caller
38426        * khtml/xml/dom_nodeimpl.h:
38427        * kwq/WebCoreBridge.mm:
38428        (-[WebCoreBridge markupStringFromNode:nodes:]): call renamed methods
38429        (-[WebCoreBridge markupStringFromRange:nodes:]): ditto
38430
384312004-08-18  Ken Kocienda  <kocienda@apple.com>
38432
38433        * khtml/css/css_valueimpl.cpp:
38434        (CSSStyleDeclarationImpl::copy): Roll back silly last minute change that broke this code.
38435        Note to self: read code before making changes to it.
38436
384372004-08-18  Ken Kocienda  <kocienda@apple.com>
38438
38439        Coded by Darin and Ken
38440
38441        * khtml/css/css_computedstyle.cpp: Added CopyProperties static array. This contains
38442        the properties we implement that we also want to copy in the new
38443        CSSComputedStyleDeclarationImpl::copy described below.
38444        (DOM::CSSComputedStyleDeclarationImpl::copy): New function. In this class, copies the
38445        computed values of all the properties listed in CopyProperties. In essence, this makes
38446        a freeze-dired version of a computed style.
38447        (DOM::CSSComputedStyleDeclarationImpl::diff): Removes every property from the passed-in 
38448        CSSStyleDeclarationImpl that is also in the computed style.
38449        * khtml/css/css_computedstyle.h:
38450        * khtml/css/css_valueimpl.cpp:
38451        (CSSStyleDeclarationImpl::copy): New function. In this class, the copy operation is
38452        straightforward. Returns a copy that will be unchanged when the original changes.
38453        * khtml/css/css_valueimpl.h:
38454        (DOM::CSSStyleDeclarationImpl::values): Added a accessor suitable for use when the 
38455        CSSStyleDeclarationImpl is const.
38456
384572004-08-17  Maciej Stachowiak  <mjs@apple.com>
38458
38459        Reviewed by Darin.
38460
38461	<rdar://problem/3703768> CrashTracer: ...50 crashes at com.apple.WebCore: KHTMLPart::xmlDocImpl const + 0
38462	
38463        * khtml/khtmlview.cpp:
38464        (KHTMLView::viewportMouseMoveEvent): Add a nil check and an
38465	assertion for m_part being null. It seems impossible for this to
38466	happen, so we want to debug it ourselves, but in the meantime,
38467	let's try to avoid causing crashes for our users.
38468
384692004-08-17  David Hyatt  <hyatt@apple.com>
38470
38471	Fix the line truncation function for Emerson so that at the far left setting of the slider, only the header
38472	is visible.
38473	
38474        Reviewed by darin
38475
38476        * khtml/rendering/render_block.cpp:
38477        (khtml::getHeightForLineCount):
38478        * khtml/rendering/render_flexbox.cpp:
38479        (khtml::RenderFlexibleBox::layoutVerticalBox):
38480
384812004-08-17  Ken Kocienda  <kocienda@apple.com>
38482
38483        Reviewed by Hyatt
38484
38485        Rewrite of the command that deletes a selection. I deleted great 
38486        big swaths of bug-ridden code to accomplish this and replaced it
38487        with code that is much cleaner and smarter.
38488        
38489        Also, renamed equivalentUpstreamPosition and equivalentDownstreamPosition to
38490        upstream to downstream, respectively.
38491        
38492        Added a couple of new helper methods.
38493        
38494        * khtml/editing/htmlediting.cpp: DeleteCollapsibleWhitespaceCommand and
38495        RemoveNodeAndPruneCommand now obsolete. A huge win.
38496        * khtml/editing/htmlediting.h: Ditto.
38497        * khtml/editing/htmlediting_impl.cpp:
38498        (khtml::debugPosition): Fix printf which had a placeholder, but no argument passed in the varargs.
38499        (khtml::CompositeEditCommandImpl::deleteUnrenderedText): New helper. Much simplified and cleaner
38500        version of 
38501        (khtml::ApplyStyleCommandImpl::doApply): upstream/downstream name change
38502        (khtml::ApplyStyleCommandImpl::nodeFullySelected):  upstream/downstream name change
38503        (khtml::DeleteSelectionCommandImpl::doApply):  upstream/downstream name change
38504        (khtml::DeleteTextCommandImpl::DeleteTextCommandImpl): Add an assert to check that the
38505        passed offset is less than the length of the text node.
38506        (khtml::InputNewlineCommandImpl::insertNodeAfterPosition): upstream/downstream name change
38507        (khtml::InputNewlineCommandImpl::insertNodeBeforePosition): upstream/downstream name change
38508        (khtml::InputNewlineCommandImpl::doApply): upstream/downstream name change
38509        (khtml::InputTextCommandImpl::prepareForTextInsertion): upstream/downstream name change
38510        (khtml::InputTextCommandImpl::execute): upstream/downstream name change
38511        (khtml::InputTextCommandImpl::insertSpace): upstream/downstream name change
38512        (khtml::ReplaceSelectionCommandImpl::doApply): upstream/downstream name change
38513        (khtml::TypingCommandImpl::issueCommandForDeleteKey): upstream/downstream name change
38514        (khtml::TypingCommandImpl::deleteKeyPressed):
38515        * khtml/editing/htmlediting_impl.h:
38516        * khtml/xml/dom_position.cpp:
38517        (DOM::Position::previousWordBoundary):
38518        (DOM::Position::nextWordBoundary):
38519        (DOM::Position::upstream):
38520        (DOM::Position::downstream):
38521        (DOM::Position::inRenderedText): Add null check.
38522        (DOM::Position::isRenderedCharacter): New helper.
38523        (DOM::isWS): New helper in this file.
38524        (DOM::Position::leadingWhitespacePosition): New helper. Factored out from htmlediting_impl.cpp.
38525        (DOM::Position::trailingWhitespacePosition): Ditto.
38526        (DOM::Position::debugPosition): Add null check.
38527        * khtml/xml/dom_position.h:
38528        * khtml/xml/dom_selection.cpp:
38529        (DOM::Selection::toRange): upstream/downstream name change
38530        (DOM::Selection::validate): upstream/downstream name change
38531        (DOM::Selection::debugPosition): upstream/downstream name change
38532        * layout-tests/editing/deleting/delete-block-contents-003-expected.txt: Updated tests with new expected results.
38533        * layout-tests/editing/deleting/delete-contiguous-ws-001-expected.txt: Ditto.
38534        * layout-tests/editing/deleting/delete-selection-001-expected.txt: Ditto.
38535        * layout-tests/editing/deleting/delete-trailing-ws-001-expected.txt: Ditto.
38536        * layout-tests/editing/inserting/insert-br-case1-expected.txt: Ditto.
38537        * layout-tests/editing/inserting/insert-br-case2-expected.txt: Ditto.
38538        * layout-tests/editing/style/style-3681552-fix-002-expected.txt: Ditto.
38539
385402004-08-17  Trey Matteson  <trey@apple.com>
38541
38542	Various spelling fixes.
38543
38544        Reviewed by Ken.
38545
38546        * khtml/khtml_part.cpp:
38547        (KHTMLPart::setSelection): No misspellings in the spelling code comments
38548        * khtml/xml/dom_docimpl.cpp:
38549        (DocumentImpl::removeMarker):  Repaint if doc changes.  Sometimes the markers
38550	were not being erased when you clicked in a word.
38551        * khtml/xml/dom_position.cpp:
38552        (DOM::Position::previousWordBoundary):  Small optimization.  Bail after first
38553	try if the second try will not come out any different.
38554        (DOM::Position::nextWordBoundary):  Ditto
38555        * kwq/KWQKHTMLPart.mm:
38556        (KWQKHTMLPart::markMisspellingsInSelection):  Comment.
38557
385582004-08-17  Darin Adler  <darin@apple.com>
38559
38560        Reviewed by Maciej.
38561
38562        - fixed <rdar://problem/3689700> crash loading page; stoxx.com (works in IE and Firefox)
38563
38564        * khtml/khtml_part.h: Make completeURL public.
38565        * kwq/KWQKJavaAppletWidget.mm: (KJavaAppletWidget::KJavaAppletWidget): Complete the base URL
38566        before passing it across the bridge. This sidesteps the crashing bug in CFURL, filed as
38567        '<rdar://problem/3764632> CFURLCreateAbsoluteURLWithBytes crashes if passed the string "../.."'
38568        and also is obviously correct behavior that may fix other sites too.
38569
38570        - fixed <rdar://problem/3547725> Crashes at csuohio.edu, list box vs. mouse event problem (Spoof No Fix)
38571
38572        * kwq/KWQListBox.mm:
38573        (QListBox::~QListBox): Nil out the pointer from the KWQTableView back to the widget by calling
38574        a new detach method.
38575        (-[KWQTableView detach]): Set the pointer to the QListBox to 0. Also set the delegate and data
38576        source to nil, so we don't need nil checks in delegate and data source methods.
38577        (-[KWQTableView mouseDown:]): Add nil check.
38578        (-[KWQTableView keyDown:]): Add nil check.
38579        (-[KWQTableView keyUp:]): Add nil check.
38580        (-[KWQTableView becomeFirstResponder]): Add nil check.
38581        (-[KWQTableView resignFirstResponder]): Add nil check.
38582        (-[KWQTableView canBecomeKeyView]): Add nil check.
38583        (-[KWQTableView tableViewSelectionDidChange:]): Add nil checks, even though this is a delegate
38584        callback, to handle cases where calls to JavaScript result in the QListBox going away partway
38585        through.
38586        (-[KWQTableView drawRow:clipRect:]): Add nil check.
38587        (-[KWQTableView _accessibilityTableCell:tableColumn:]): Add nil check.
38588
385892004-08-17  Trey Matteson  <trey@apple.com>
38590
38591	Fix ASSERT in spelling marker management.
38592
38593        Reviewed by John.
38594
38595        * khtml/xml/dom_docimpl.cpp:
38596        (DocumentImpl::shiftMarkers):  Use assert instead of ASSERT.
38597	Tweak test to allow for a start position of 0.
38598
385992004-08-17  Trey Matteson  <trey@apple.com>
38600
38601	3764147 - failure of subframe to load leaves links in parent doc broken
38602
38603        Reviewed by Maciej.
38604
38605        * khtml/khtml_part.cpp:
38606        (KHTMLPart::childBegin):  New method to mark part as not complete.
38607        (KHTMLPart::processObjectRequest):  Mark child part imcomplete, so if we
38608	later get a failure on load it won't think it's already complete and do nothing.
38609        * khtml/khtml_part.h:
38610
38611=== Safari-157 ===
38612
386132004-08-16  David Hyatt  <hyatt@apple.com>
38614
38615	Fix the #define.  I had it all backwards.
38616	
38617        * WebCorePrefix.h:
38618
386192004-08-16  David Hyatt  <hyatt@apple.com>
38620
38621	Land initial support for XSLT using xml-stylesheet PIs.
38622	
38623        * WebCore.pbproj/project.pbxproj:
38624        * khtml/khtml_part.cpp:
38625        (KHTMLPart::replaceDocImpl):
38626        * khtml/khtml_part.h:
38627        * khtml/khtmlview.h:
38628        * khtml/xml/dom_docimpl.cpp:
38629        (DocumentImpl::DocumentImpl):
38630        (DocumentImpl::~DocumentImpl):
38631        (DocumentImpl::recalcStyleSelector):
38632        (DocumentImpl::applyXSLTransform):
38633        (DocumentImpl::setTransformSourceDocument):
38634        * khtml/xml/dom_docimpl.h:
38635        (DOM::DocumentImpl::setTransformSource):
38636        (DOM::DocumentImpl::transformSource):
38637        (DOM::DocumentImpl::transformSourceDocument):
38638        * khtml/xml/dom_xmlimpl.cpp:
38639        (DOM::ProcessingInstructionImpl::checkStyleSheet):
38640        * khtml/xml/dom_xmlimpl.h:
38641        (DOM::ProcessingInstructionImpl::isXSL):
38642        * khtml/xml/xml_tokenizer.cpp:
38643        (khtml::matchFunc):
38644        (khtml::openFunc):
38645        (khtml::createQStringParser):
38646        (khtml::XMLTokenizer::processingInstruction):
38647        (khtml::XMLTokenizer::finish):
38648        (khtml::XMLTokenizer::setTransformSource):
38649        * khtml/xml/xml_tokenizer.h:
38650        (khtml::Tokenizer::setTransformSource):
38651        * khtml/xml/xsl_stylesheetimpl.cpp: Removed.
38652        * khtml/xml/xsl_stylesheetimpl.h: Removed.
38653        * khtml/xsl/xsl_stylesheetimpl.cpp: Added.
38654        (DOM::XSLStyleSheetImpl::XSLStyleSheetImpl):
38655        (DOM::XSLStyleSheetImpl::~XSLStyleSheetImpl):
38656        (DOM::XSLStyleSheetImpl::isLoading):
38657        (DOM::XSLStyleSheetImpl::checkLoaded):
38658        (DOM::XSLStyleSheetImpl::docLoader):
38659        (DOM::XSLStyleSheetImpl::parseString):
38660        * khtml/xsl/xsl_stylesheetimpl.h: Added.
38661        (DOM::XSLStyleSheetImpl::isXSLStyleSheet):
38662        (DOM::XSLStyleSheetImpl::type):
38663        (DOM::XSLStyleSheetImpl::ownerDocument):
38664        (DOM::XSLStyleSheetImpl::document):
38665        (DOM::XSLStyleSheetImpl::clearDocument):
38666        * khtml/xsl/xslt_processorimpl.cpp: Added.
38667        (DOM::m_sourceDocument):
38668        (DOM::XSLTProcessorImpl::~XSLTProcessorImpl):
38669        (DOM::XSLTProcessorImpl::transformDocument):
38670        (DOM::bufferWrite):
38671        (DOM::XSLTProcessorImpl::addToResult):
38672        (DOM::XSLTProcessorImpl::documentFromXMLDocPtr):
38673        * khtml/xsl/xslt_processorimpl.h: Added.
38674
386752004-08-16  Maciej Stachowiak  <mjs@apple.com>
38676
38677        Fix build.
38678
38679        * khtml/khtml_part.cpp:
38680        (KHTMLPart::isImmediateRedirectPending):
38681
386822004-08-16  Richard Williamson   <rjw@apple.com>
38683
38684	Fixed <rdar://problem/3704339> Context2D forces integer positions in drawImage
38685
38686	Use floats instead of ints to draw images.
38687
38688        Reviewed by Ken.
38689
38690        * khtml/ecma/kjs_html.cpp:
38691        (KJS::Context2DFunction::tryCall):
38692        * kwq/KWQPainter.h:
38693        * kwq/KWQPainter.mm:
38694        (QPainter::drawPixmap):
38695        (QPainter::drawFloatPixmap):
38696
386972004-08-13  Maciej Stachowiak  <mjs@apple.com>
38698
38699        Reviewed by Darin.
38700
38701	- fixed <rdar://problem/3752509> Pop up windows not showing up within SAP's BW Module (changing location.href on new window created by window.open)
38702	
38703	(actually the previous fix for this bug was mostly correct, but
38704	this additional change is needed to avoid the regression in
38705	<rdar://problem/3751025> REGRESSION: website rejects Safari 125.9
38706	as "need to upgrade to IE 6", but didn't reject 125.8
38707
38708	So if merging for a software update, make sure to include both
38709	this and the previous fix.
38710	
38711        * khtml/html/htmltokenizer.cpp:
38712        (khtml::HTMLTokenizer::write): When there is an immediate reidrect pending,
38713	make sure to stop tokenizing, because we need to make sure no further
38714	script tags are processed beyond the one that triggered the redirect.
38715        * khtml/khtml_part.cpp:
38716        (KHTMLPart::isImmediateRedirectPending): New method to allow
38717	checking if a redirect is pending.
38718	* khtml/khtml_part.h:
38719
387202004-08-15  David Hyatt  <hyatt@apple.com>
38721
38722        - fixed <rdar://problem/3760508> REGRESSION (154-155): No text in textarea
38723
38724	Fix the blank textarea problem by ensuring that any change to a <textarea>'s DOM children causes the form control
38725	to resync with the DOM.  This behavior matches WinIE.
38726	
38727        Reviewed by kocienda
38728
38729        * khtml/html/html_formimpl.cpp:
38730        (HTMLTextAreaElementImpl::childrenChanged):
38731        * khtml/html/html_formimpl.h:
38732
387332004-08-13  Trey Matteson  <trey@apple.com>
38734
38735	3761794 Slider doesn't call onmouseup handler
38736
38737        Reviewed by Hyatt
38738
38739        * khtml/rendering/render_form.cpp:
38740        (RenderSlider::RenderSlider):  Listen for signal.
38741        (RenderSlider::slotClicked):  Pass to superclass.
38742        * khtml/rendering/render_form.h:
38743        * kwq/KWQSlider.h:
38744        * kwq/KWQSlider.mm:
38745        (-[KWQSlider mouseDown:]):  Generate mouseUp and clicked events,
38746	since AK consumes the mouseUp event in a modal tracking loop.
38747        (QSlider::QSlider):  Make signal.
38748        (QSlider::clicked):  Send signal.
38749
387502004-08-12  Trey Matteson  <trey@apple.com>
38751
38752	3761329 - query result links all dead in ingrammicro.com (sometimes)
38753	3761328 - links in some docs dead when doc is loaded from WebArchive
38754
38755	Make sure to get part to completed state when end is called,
38756	even if we have no doc.  See WebKit changelog for more info.
38757
38758        Reviewed by Richard and Darin.
38759
38760        * khtml/khtml_part.cpp:
38761        (KHTMLPart::end):
38762
387632004-08-13  Trey Matteson  <trey@apple.com>
38764
38765        3761098 - red dotted underline for misspelled words shows up in drag image
38766
38767        Reviewed by Ken
38768
38769        * khtml/rendering/render_text.cpp:
38770        (RenderText::paint):  Don't draw misspelling when creating selection image.
38771
387722004-08-12  Richard Williamson   <rjw@apple.com>
38773
38774	Bring npruntime.h and friends closer to compliance with
38775	latest spec.
38776
38777        Reviewed by Maciej.
38778
38779        * kwq/KWQKHTMLPart.mm:
38780        (KWQKHTMLPart::windowScriptNPObject):
38781
387822004-08-12  Maciej Stachowiak  <mjs@apple.com>
38783
38784        Reviewed by Richard.
38785
38786	<rdar://problem/3245706> URLs with backslashes instead of slashes work on WinIE; should work on Safari (SAP)
38787	<rdar://problem/3506429> <BASE> tag containing backslash is breaking images with absolute URLs
38788	
38789        * kwq/KWQKURL.mm:
38790        (substituteBackslashes): Helper method
38791        (KURL::KURL): If the URL contains any backslashes, substitute all
38792	that appear before the query or fragment.
38793
387942004-08-12  Ken Kocienda  <kocienda@apple.com>
38795
38796        Reviewed by Chris
38797
38798        Fix for this bug:
38799        
38800        <rdar://problem/3761014> command-down-arrow takes you to start of document instead of end of document
38801
38802        * khtml/xml/dom_selection.cpp:
38803        (DOM::Selection::modifyExtendingRightForward): Code used to assume, incorrectly, that index 1 of the
38804        document element was beyond the last node in the document. But this is not true, since the document
38805        element is the HTML element (generally). Instead, move to the index equal to the number of children
38806        of the document element. This puts us past everything.
38807        (DOM::Selection::modifyMovingRightForward): Ditto.
38808
388092004-08-12  Ken Kocienda  <kocienda@apple.com>
38810
38811        Reviewed by Trey
38812
38813        Fix for this bug:
38814        
38815        <rdar://problem/3695446> shift-down-arrow on last line of editable text should select to end of document
38816        
38817        Detect when current position is on first or last line and move to the
38818        start or end of that line, respectively.
38819
38820        * khtml/xml/dom_position.cpp:
38821        (DOM::Position::previousLinePosition)
38822        (DOM::Position::nextLinePosition)
38823
38824=== Safari-156 ===
38825
388262004-08-12  Ken Kocienda  <kocienda@apple.com>
38827
38828        Reviewed by Darin
38829
38830        Some consolidation in style application code.
38831
38832        * khtml/editing/htmlediting_impl.cpp:
38833        (khtml::StyleChange::StyleChange): Made this a full-on class and added a couple of 
38834        members and a constructors to make a StyleChange from a CSSStyleDeclarationImpl, as
38835        well as from a CSSStyleDeclarationImpl and a Position.
38836        (khtml::StyleChange::init): Common init function for StyleChange constructors.
38837        (khtml::StyleChange::currentlyHasStyle): Moved this here from ApplyStyleCommandImpl.
38838        (khtml::CompositeEditCommandImpl::applyTypingStyle): Tweak to adjust to new StyleChange
38839        interface.
38840        (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded): Ditto.
38841        * khtml/editing/htmlediting_impl.h:
38842        (khtml::StyleChange::StyleChange):
38843        (khtml::StyleChange::cssStyle): New accessor.
38844        (khtml::StyleChange::applyBold): Ditto.
38845        (khtml::StyleChange::applyItalic): Ditto.
38846        * khtml/xml/dom_position.cpp:
38847        (DOM::Position::computedStyle): New helper.
38848        * khtml/xml/dom_position.h: Ditto.
38849
388502004-08-12  Ken Kocienda  <kocienda@apple.com>
38851
38852        Reviewed by Darin
38853
38854        Fix for this bug:
38855        <rdar://problem/3751098> HTML email has one set of SPAN tags per character in the message
38856        
38857        Progress on this bug:
38858        <rdar://problem/3755562> Typing styles do not use same tag application conventions as font and color panel
38859
38860        * khtml/editing/htmlediting_impl.cpp:
38861        (khtml::CompositeEditCommandImpl::applyTypingStyle): Name changed from createTypingStyleElement.
38862        Also, interface changed to take the node to which the typing style is to be applied. 
38863        This makes it easier to apply what may be up to three levels of nested tags to get the 
38864        desired style (<B>, <I>, and <SPAN STYLE="">).
38865        Also, Borrow some of the style change smarts from ApplyStyleCommandImpl to use bold and
38866        italic tags for applying styles when that is apprpriate. This creates on opportunity to
38867        factor the code to do this so that this function and the ApplyStyleCommandImpl class can
38868        share the implementation. I will follow up with a change to do that after landing this
38869        change. Some future code factoring could be done here to bring together some similar code
38870        into one place.
38871        (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded): Add comment about code factoring work.
38872        (khtml::ApplyStyleCommandImpl::computeStyleChange): StyleChange struct no longer a member of the
38873        ApplyStyleCommandImpl class. CompositeEditCommandImpl needs it now in its applyTypingStyle()
38874        function.
38875        (khtml::InputNewlineCommandImpl::doApply): Pass along node to style to applyTypingStyle.
38876        (khtml::InputTextCommandImpl::prepareForTextInsertion): Ditto.
38877        * khtml/editing/htmlediting_impl.h:
38878        (khtml::StyleChange::StyleChange): Pull this struct out of ApplyStyleCommandImpl so 
38879        CompositeEditCommandImpl can use it.
38880        * khtml/khtml_part.cpp:
38881        (KHTMLPart::notifySelectionChanged): Always clear typing style when the selection
38882        changes, not only when closing typing. This fixes 3751098.
38883        
38884        These three tests actually had results that treated the buggy behavior as correct!
38885        
38886        * layout-tests/editing/style/style-3681552-fix-001-expected.txt
38887        * layout-tests/editing/style/style-3681552-fix-002-expected.txt
38888        * layout-tests/editing/style/typing-style-002-expected.txt
38889
388902004-08-12  Darin Adler  <darin@apple.com>
38891
38892        Reviewed by Ken.
38893
38894        - fixed <rdar://problem/3740485> Repro crash involving replacing content that includes form field
38895
38896        * kwq/KWQLineEdit.mm: (QLineEdit::selectAll): Since this function calls selectText: which has a side
38897        effect of making the text field be first responder, call to bridge first to make it first responder.
38898        The bridge version lets WebHTMLView know we are changing the responder, avoiding some unpleasantness
38899        because it sets the "changing focus programmatically" flag. Without that flag set, we were getting
38900        an additional setFocusNode(0) call, which is unnecessary and incorrect.
38901
389022004-08-12  Darin Adler  <darin@apple.com>
38903
38904        Reviewed by Ken.
38905
38906        - fixed <rdar://problem/3758756> copying text selected with down arrow results in all text to end of document
38907
38908        * khtml/xml/dom2_rangeimpl.h: Make startNode and pastEndNode public.
38909        * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::pastEndNode): Fix bug where this would return
38910        one node too far in the case where the end container was not a text node.
38911
38912        * khtml/xml/dom_nodeimpl.cpp:
38913        (NodeImpl::recursive_toHTMLWithOptions): Rewrite loop, using startNode and pastEndNode,
38914        to fix bug where it would run past the end node, including too many nodes in the generated
38915        HTML. Nice side benefit: easier to read the code.
38916
389172004-08-11  Chris Blumenberg  <cblu@apple.com>
38918
38919	Fixed: <rdar://problem/3758216> PARENTAL: buttons on parental controls page only work once
38920
38921        Reviewed by john.
38922
38923        * kwq/KWQKHTMLPart.mm:
38924        (KWQKHTMLPart::submitForm): prevent a form from being submitted more than once only if it uses a scheme of http or https
38925
389262004-08-11  Darin Adler  <darin@apple.com>
38927
38928        Reviewed by Ken.
38929
38930        - fixed <rdar://problem/3715878> 8A162: connect.apple.com password field showed in cleartext
38931
38932        * kwq/KWQTextField.mm: (-[KWQSecureTextField textDidEndEditing:]):
38933        Enhanced workaround for shifting focus from one secure text field to another so that it works
38934        even for the case of shifting focus from a secure text field back to itself.
38935
389362004-08-11  Ken Kocienda  <kocienda@apple.com>
38937
38938        Missed adding this file before.
38939
38940        * kwq/KWQTextUtilities.mm: Added.
38941        (KWQFindNextWordFromIndex):
38942
389432004-08-11  Ken Kocienda  <kocienda@apple.com>
38944
38945        Reviewed by Trey
38946
38947        Efficiency improvements on string manipulations in these two new function
38948        implementations. Use the versions of QString append/prepend that take
38949        (QChar *c, uint length) instead of creating new strings each time.
38950
38951        * khtml/xml/dom_position.cpp:
38952        (DOM::Position::previousWordPosition): Changed, as described above.
38953        (DOM::Position::nextWordPosition): Ditto.
38954
389552004-08-11  Ken Kocienda  <kocienda@apple.com>
38956
38957        Reviewed by Darin
38958
38959        Fix for this bug:
38960        <rdar://problem/3675812> Moving a word at a time does not use the correct conception of "word"
38961        
38962        I have implemented versions of previousWordPosition and nextWordPosition that are now
38963        different than previousWordBoundary and nextWordBoundary. The behavior of the new
38964        functions attempts to match what Cocoa does as closely as it can. Let the bug filing begin! 
38965
38966        * WebCore.pbproj/project.pbxproj: Added KWQTextUtilities.mm
38967        * khtml/misc/helper.cpp:
38968        (khtml::nextWordFromIndex): Glue to call through to KWQFindNextWordFromIndex.
38969        * khtml/misc/helper.h: Declare the function above.
38970        * khtml/misc/khtml_text_operations.cpp: Added SimplifiedBackwardsTextIterator class.
38971        (khtml::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): New
38972        (khtml::SimplifiedBackwardsTextIterator::advance): Ditto.
38973        (khtml::SimplifiedBackwardsTextIterator::handleTextNode): Ditto.
38974        (khtml::SimplifiedBackwardsTextIterator::handleReplacedElement): Ditto.
38975        (khtml::SimplifiedBackwardsTextIterator::handleNonTextNode): Ditto.
38976        (khtml::SimplifiedBackwardsTextIterator::exitNode): Ditto.
38977        (khtml::SimplifiedBackwardsTextIterator::emitCharacter): Ditto.
38978        (khtml::SimplifiedBackwardsTextIterator::range): Ditto.
38979        * khtml/misc/khtml_text_operations.h:
38980        (khtml::SimplifiedBackwardsTextIterator::atEnd): Ditto.
38981        (khtml::SimplifiedBackwardsTextIterator::length): Ditto.
38982        (khtml::SimplifiedBackwardsTextIterator::characters): Ditto.
38983        * khtml/xml/dom_position.cpp:
38984        (DOM::Position::previousWordBoundary): Updated to gather appropriate text and call through to
38985        AppKit to perform the same calculations NSText uses.
38986        (DOM::Position::nextWordBoundary): Ditto.
38987        (DOM::Position::previousWordPosition): Unrelated change to fix case where the function could get "stuck".
38988        (DOM::Position::nextWordPosition): Ditto
38989        (DOM::Position::equivalentDeepPosition): Changed to look backwards if the position's offset is equal
38990        to the number of child nodes it has. This handles more cases correctly, like when the position is
38991        gives as one beyond the end of a document element's last child.
38992        * kwq/KWQTextUtilities.h: Declared KWQFindNextWordFromIndex.
38993        * kwq/KWQTextUtilities.mm: Added.
38994        (KWQFindNextWordFromIndex): New function.
38995
389962004-08-11  Ken Kocienda  <kocienda@apple.com>
38997
38998        Reviewed by John
38999
39000        Fix for this bug:
39001        
39002        <rdar://problem/3732702> crash in CSSComputedStyleDeclarationImpl running devtools.com editing sample code
39003
39004        * khtml/khtml_part.cpp:
39005        (KHTMLPart::selectionComputedStyle): Added a null check.
39006
390072004-08-10  Darin Adler  <darin@apple.com>
39008
39009        Reviewed by Trey.
39010
39011        - fixed <rdar://problem/3710123> Loading iframe that replaces content in the parent document crashes Safari
39012
39013        I fixed three problems:
39014
39015            1) script interpreter destroyed while it was interpreting scripts, caused random havoc
39016            2) code trying to get to view after view was detached from part, caused nil-deref
39017            3) signals sent to parent after child was no longer in the parent's frames list, caused nil-deref
39018
39019        Now the test page works fine. Hope the real sites do too.
39020
39021        * khtml/khtml_part.h: Add connectChild and disconnectChild helper functions (private).
39022        * khtml/khtml_part.cpp:
39023        (KHTMLPart::clear): Call disconnectChild on each frame as we detach it (see below).
39024        (KHTMLPart::end): Ref the part at the start, and deref the part at the end, of this function.
39025        Otherwise, we can end up destroying the part, and hence the interpreter, inside a script that
39026        the interpreter itself is running.
39027        (KHTMLPart::slotFinishedParsing): Add another check for a nil m_view, after the call to
39028        checkCompleted.
39029        (KHTMLPart::checkCompleted): Remove bogus if statement with empty body.
39030        (KHTMLPart::processObjectRequest): Call disconnectChild to disconnect the child <-> parent signals of the
39031        old child that the new one is replacing, and connectChild to connect the signals (nicer factoring).
39032        (KHTMLPart::slotChildCompleted): Fixed up a confusing boolean if/expression to be simpler. Not related to
39033        the bug fix, but an earlier version of the fix had changes in this function.
39034        (KHTMLPart::connectChild): Added. Connects the appropriate signals for a child frame.
39035        (KHTMLPart::disconnectChild): Added. Disconnects the same signals that connectChild connects.
39036
39037        * kwq/KWQKHTMLPart.mm: (KHTMLPart::frameDetached): Added a call to disconnectChild before removing the
39038        child from the frames list.
39039
390402004-08-09  Maciej Stachowiak  <mjs@apple.com>
39041
39042        Reviewed by Trey.
39043
39044	WebCore part of:
39045
39046	- made basic marked text highlighting work to complete basic level of <rdar://problem/3704359> input method support not yet implemented for HTML editing
39047
39048        * kwq/WebCoreBridge.mm:
39049        (-[WebCoreBridge setMarkedDOMRange:]): Added this new call to support storing
39050	a marked range in WebCore. The provided DOMRange must start and end in the same
39051	node, which must be a text node.
39052        (-[WebCoreBridge markedDOMRange]): New call to get the marked range. 
39053        (-[WebCoreBridge clearMarkedDOMRange]): New call to clear the marked range.
39054        * kwq/WebCoreBridge.h: Prototype new methods.
39055        * kwq/KWQKHTMLPart.mm:
39056        (KWQKHTMLPart::markedRange): Implementation of WebCore call above.
39057        (KWQKHTMLPart::setMarkedRange): Implementation of WebCore call above -
39058	store the marked range, and repaint new and old nodes if needed.
39059        (KWQKHTMLPart::clear): Clear marked range.
39060        * kwq/KWQKHTMLPart.h: Prototype new methods.
39061        * khtml/rendering/render_text.cpp:
39062        (InlineTextBox::paintMarkedTextBackground): New method to paint the background
39063	for marked text, modeled on paintSelection.
39064	(RenderText::paint): Optionally handle painting marked text
39065	background as well as selection background in the marked text
39066	pass.
39067        * khtml/rendering/render_text.h: Prototype new method.
39068
390692004-08-10  Darin Adler  <darin@apple.com>
39070
39071        Reviewed by Dave.
39072
39073        - switch PCRE to do UTF-16 directly instead of converting to/from UTF-8 for speed
39074
39075        * kwq/KWQRegExp.mm:
39076        (QRegExp::KWQRegExpPrivate::compile): Null-terminate the pattern and pass it.
39077        (QRegExp::match): Use the 16-bit string directly, no need to convert to UTF-8.
39078
390792004-08-10  Darin Adler  <darin@apple.com>
39080
39081        Reviewed by Ken.
39082
39083        - minor cleanup
39084
39085        * khtml/editing/jsediting.cpp: Capitalize command names to match Windows.
39086        The dictionary lookup is case insensitive.
39087
39088        * kwq/KWQFoundationExtras.h: Remove inaccurate comment.
39089
390902004-08-10  Trey Matteson  <trey@apple.com>
39091
39092	3757094 - crash spell checking after a paste
39093
39094        Reviewed by Ken
39095
39096        * khtml/rendering/render_text.cpp:
39097        (InlineTextBox::paintSelection):  Add nil check.
39098
390992004-08-09  Trey Matteson  <trey@apple.com>
39100
39101	3756195 - spell checking leaves misspelling marker behind after bad word is deleted
39102	... and other follow-on spell check fixes
39103
39104        Reviewed by Ken
39105
39106        * khtml/rendering/render_text.cpp:
39107        (InlineTextBox::paintMarker):  Close inspection shows we were drawing the 
39108	misspelling marker one pixel lower than AK, and one pixel outside the selection
39109	rect we draw, in the case of Times-16.  So move it up one.  Still not an exact
39110	match for AK, but less bad.
39111        * khtml/xml/dom_docimpl.cpp:
39112        (DocumentImpl::removeMarker):  Track whether we make any changes, so we only
39113	repaint if something actually changed.
39114        (DocumentImpl::removeAllMarkers):  New utility.
39115        (DocumentImpl::removeAllMarkers):  Use clear() instead of (errant)
39116	hand-rolled loop to empty array.
39117        (DocumentImpl::shiftMarkers):  Track whether we make any changes, so we only
39118	repaint if something actually changed.
39119        * khtml/xml/dom_docimpl.h:
39120        * khtml/xml/dom_textimpl.cpp:
39121        (CharacterDataImpl::deleteData):  Along with shifting existing markers around,
39122	remove any markers in the deleted range.  Fixes 3756195.
39123        (CharacterDataImpl::replaceData):  Ditto for the replaced range.
39124        * kwq/KWQKHTMLPart.mm:
39125        (KWQKHTMLPart::updateSpellChecking): comment
39126
391272004-08-08  Trey Matteson  <trey@apple.com>
39128
39129	3745023 - Safari crashes trying to access anchor while downloading
39130
39131	I bet this is behind a few other crashers as well.  In this bug the start of the
39132	download leaves a KWQPageState hanging around, and when that is freed it damages
39133	the part and view.  If you're still using that page, you're dead.
39134
39135	The fix is to properly invalidate the PageState when we receive an error before
39136	reaching WebFrameCommitted state.  Normally this happens when a page is reheated
39137	from the PageState, but in this case we never manage to leave the page to begin
39138	with, although we've already created the PageState.
39139
39140	Other errors besides the synthetic one download generates would have caused similar
39141	crashing.  Another example would be clicking on a second link before the load
39142	caused by clicking on the first link reached committed state.
39143
39144        Reviewed by Richard
39145
39146        * kwq/WebCoreBridge.h:
39147        * kwq/WebCoreBridge.mm:
39148        (-[WebCoreBridge didNotOpenURL:pageCache:]):  Invalidate the pageCache state
39149	when a load doesn't get off the ground.
39150
391512004-08-06  Ken Kocienda  <kocienda@apple.com>
39152
39153        Reviewed by Maciej
39154
39155        Finish off spellchecking support to HTML editing. Includes work to
39156        enable continuous spellchecking.
39157
39158        * khtml/editing/htmlediting_impl.cpp:
39159        (khtml::EditCommandImpl::markMisspellingsInSelection): Basically, a one-liner convenience to
39160        make the call over to the KWQKHTMLPart.
39161        (khtml::ReplaceSelectionCommandImpl::doApply): Did some rearranging of code so that the
39162        inserted content can be spell-checked. The function is basically the same, except for
39163        the addition of calls to markMisspellingsInSelection.
39164        (khtml::TypingCommandImpl::markMisspellingsAfterTyping): New function. Takes a look at the
39165        selection that results after typing and determines whether it needs to spellcheck. 
39166        Since the word containing the current selection is never marked, this does a check to
39167        see if typing made a new word that is not in the current selection. Basically, you
39168        get this by being at the end of a word and typing a space.
39169        (khtml::TypingCommandImpl::typingAddedToOpenCommand): Call markMisspellingsAfterTyping.
39170        * khtml/editing/htmlediting_impl.h: Add new function declarations.
39171         * khtml/khtml_part.cpp:
39172        (KHTMLPart::setSelection): Since spell checks are updated when the selection changes, 
39173        and every selection change passes through here, this is a good place to put the call 
39174        to the spellchecker.
39175        * khtml/rendering/render_text.cpp:
39176        (InlineTextBox::paintMarker): Remove temporary misspelling line drawing code. Replace with
39177        call that does AppKit-style drawing. Fix up some comments.
39178        * khtml/xml/dom_docimpl.cpp:
39179        (DocumentImpl::addMarker): Repaint the node that had the marker added. This makes it show 
39180        up on setting it.
39181        (DocumentImpl::removeMarker): Ditto.
39182        (DocumentImpl::removeAllMarkers): New function. Convenience for clearing all markers.
39183        Used when not in continuous spellchecking mode.
39184        (DocumentImpl::shiftMarkers): Moves markers in response to changes in a node's contents.
39185        This shifts the marker offsets by a given amount. This keeps the markers in the right
39186        place when a user types in a node with markers already set on it.
39187        * khtml/xml/dom_docimpl.h: Added new functions. Removed unnecessary enum qualifier from some
39188        declarations.
39189        * khtml/xml/dom_position.cpp:
39190        (DOM::Position::previousWordBoundary): This function was susceptible to endless loops...and
39191        needlessly so. Basically, if the current position is at a word boundary, run the code again
39192        to find the previous word boundary.
39193        (DOM::Position::nextWordBoundary): Same as above, but for next word boundary.
39194        * khtml/xml/dom_textimpl.cpp:
39195        (CharacterDataImpl::setData): Call shiftMarkers to update markers when this node changes.
39196        (CharacterDataImpl::insertData): Ditto.
39197        (CharacterDataImpl::deleteData): Ditto.
39198        (CharacterDataImpl::replaceData): Ditto.
39199        * kwq/KWQKHTMLPart.h:
39200        * kwq/KWQKHTMLPart.mm:
39201        (KWQKHTMLPart::advanceToNextMisspelling):
39202        (KWQKHTMLPart::markMisspellingsInSelection):
39203        (KWQKHTMLPart::updateSpellChecking):
39204        (KWQKHTMLPart::respondToChangedSelection):
39205        * kwq/KWQPainter.h:
39206        * kwq/KWQPainter.mm:
39207        (QPainter::drawLineForMisspelling): New function. Call over to WebKit to do the drawing.
39208        * kwq/WebCoreBridge.h:
39209        * kwq/WebCoreBridge.mm:
39210        (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Pass markMisspellings flag to
39211        setSelection call. 
39212        * kwq/WebCoreTextRenderer.h:
39213
39214=== Safari-155 ===
39215
392162004-08-05  David Hyatt  <hyatt@apple.com>
39217
39218	Fix for 3752542, stack overflow that crashes Safari at www.dr.dk.  This bug is a regression caused by a fix that
39219	attempted to repair <caption> behavior to make it behave like Panther.  This fix was incorrect, and in addition
39220	even our <caption> behavior on Panther was incorrect.
39221
39222	The patch that fixes this bug also makes <caption> handling work when <caption>s are contained inside a <td>, a <tr>,
39223	a <th>, or various table section tags (<tbody>, <tfoot>, <thead>).  The <caption> is pulled out and inserted just before
39224	the relevant ancestor table section.  This behavior matches other browsers.
39225	
39226        Reviewed by mjs
39227
39228        * khtml/html/htmlparser.cpp:
39229        (KHTMLParser::insertNode):
39230
392312004-08-04  David Hyatt  <hyatt@apple.com>
39232
39233	The top-level XSL sheet is now loaded and shows up in the activity window.  It is not yet parsed.
39234	
39235        Reviewed by kocienda
39236
39237        * WebCore.pbproj/project.pbxproj:
39238        * khtml/css/css_base.h:
39239        (DOM::StyleBaseImpl::isXSLStyleSheet):
39240        * khtml/css/css_stylesheetimpl.cpp:
39241        (CSSStyleSheetImpl::CSSStyleSheetImpl):
39242        * khtml/css/css_stylesheetimpl.h:
39243        (DOM::StyleSheetImpl::isLoading):
39244        * khtml/misc/loader.cpp:
39245        * khtml/xml/dom_xmlimpl.cpp:
39246        (DOM::ProcessingInstructionImpl::ProcessingInstructionImpl):
39247        (DOM::ProcessingInstructionImpl::checkStyleSheet):
39248        (DOM::ProcessingInstructionImpl::sheet):
39249        (DOM::ProcessingInstructionImpl::isLoading):
39250        (DOM::ProcessingInstructionImpl::setStyleSheet):
39251        * khtml/xml/dom_xmlimpl.h:
39252
392532004-08-04  David Hyatt  <hyatt@apple.com>
39254
39255	Add XSL Stylesheets to the WebCore cache.
39256	
39257        Reviewed by kocienda
39258
39259        * khtml/misc/loader.cpp:
39260        (CachedXSLStyleSheet::CachedXSLStyleSheet):
39261        (CachedXSLStyleSheet::ref):
39262        (CachedXSLStyleSheet::deref):
39263        (CachedXSLStyleSheet::data):
39264        (CachedXSLStyleSheet::checkNotify):
39265        (CachedXSLStyleSheet::error):
39266        (DocLoader::requestXSLStyleSheet):
39267        (Cache::requestXSLStyleSheet):
39268        (Cache::getStatistics):
39269        * khtml/misc/loader.h:
39270        (khtml::CachedObject::):
39271        (khtml::CachedXSLStyleSheet::sheet):
39272        (khtml::CachedXSLStyleSheet::schedule):
39273
392742004-08-03  Ken Kocienda  <kocienda@apple.com>
39275
39276        Reviewed by Hyatt
39277
39278        Changes to improve our handling of object tags during editing, including
39279        fixing this bug:
39280        
39281        <rdar://problem/3744533> Problem editing <OBJECT> elements displayed by WebPlugIns 
39282
39283        Part of the fix for this bug involves removing the close() function from render objects.
39284        It was decided that this code was no longer needed, as the work it did could be moved
39285        to other, more modern, places.
39286
39287        Fixed this bug:
39288        
39289        <rdar://problem/3748537> crash due to nil node passed into parentNode in computeTypingStyle deleting text
39290
39291        Finally, I filed and fixed this bug I discovered while fixing the one above:
39292        
39293        <rdar://problem/3749338> Select-all + delete leaves editing view without blinking caret
39294
39295        * khtml/editing/htmlediting_impl.cpp:
39296        (khtml::DeleteSelectionCommandImpl::computeTypingStyle): Fix for 3748537. Put in some more null
39297        checks. Bail, returning 0 for typing style if any null checks yield a null.
39298        (khtml::DeleteSelectionCommandImpl::doApply): Fix for 3749338. A removeNodeAndPrune call may wind
39299        up deleting the node where we calculated that we wanted to put the selection after deleting.
39300        If this happens, move this ending selection to a sensible alternative.
39301        (khtml::RemoveNodeAndPruneCommandImpl::doApply): Call previousNodeConsideringAtomicNodes instead 
39302        of traversePreviousNode when doing the prune.
39303        * khtml/html/html_objectimpl.cpp:
39304        (HTMLObjectElementImpl::attach): Part of the fix for 3744533.
39305        (HTMLObjectElementImpl::recalcStyle): Change old strcmp check for type of renderer to be a call
39306        to canRenderImageType.
39307        (HTMLObjectElementImpl::childrenChanged): New function. Helps to keep object tags up to date 
39308        as their children change. This also will help to make object tags respond properly to having their
39309        params changed by DOM calls.
39310        * khtml/html/html_objectimpl.h: Cosmetic change.
39311        * khtml/html/htmlparser.cpp:
39312        (KHTMLParser::insertNode): Remove call to obsolete closeRenderer() function.
39313        (KHTMLParser::popOneBlock): Ditto.
39314        * khtml/rendering/render_block.cpp:
39315        (khtml::RenderBlock::makeChildrenNonInline): Remove call to obsolete close() function.
39316        * khtml/rendering/render_container.cpp:
39317        (RenderContainer::updatePseudoChild): Ditto.
39318        * khtml/rendering/render_form.cpp: Remove obsolete close() function.
39319        * khtml/rendering/render_form.h: Ditto.
39320        * khtml/rendering/render_frames.cpp: Ditto.
39321        * khtml/rendering/render_frames.h: Ditto.
39322        * khtml/rendering/render_inline.cpp:
39323        (RenderInline::splitFlow): Remove calls to obsolete close() function.
39324        * khtml/rendering/render_object.h: Remove obsolete close() function.
39325        * khtml/rendering/render_table.cpp:
39326        (RenderTableCell::layout): Ditto.
39327        * khtml/rendering/render_table.h: Ditto.
39328        * khtml/xml/dom_docimpl.cpp:
39329        (DocumentImpl::closeInternal): Remove call to obsolete close() function.
39330        * khtml/xml/dom_nodeimpl.cpp: Remove obsolete m_rendererNeedsClose initialization.
39331        (NodeImpl::NodeImpl): Remove obsolete closeRenderer() function.
39332        (NodeImpl::attach): Remove call to obsolete close() function.
39333        (NodeImpl::isAtomicNode): New function. Helps to fix 3744533. Determines if a node should
39334        be treated as an atomic node for the purposes of editing.
39335        (NodeImpl::previousNodeConsideringAtomicNodes): New helper to traverse tree taking atomic nodes
39336        into account.
39337        (NodeImpl::nextNodeConsideringAtomicNodes): Ditto.
39338        (NodeImpl::previousLeafNode): Now calls nextNodeConsideringAtomicNodes to iterate. This helps to 
39339        prevent deleting PARAM tag portions of object tags erroneously.
39340        (NodeImpl::nextLeafNode): Ditto.
39341        * khtml/xml/dom_nodeimpl.h: Removed m_rendererNeedsClose bit. Added declarations for new functions.
39342        * khtml/xml/dom_position.cpp:
39343        (DOM::Position::equivalentDeepPosition): Now takes atomic nodes into account as it drills down into the
39344        tree.
39345        * khtml/xml/xml_tokenizer.cpp:
39346        (khtml::XMLTokenizer::endElement): Remove call to obsolete closeRenderer() function.
39347
393482004-08-03  David Hyatt  <hyatt@apple.com>
39349
39350	Add the deprecated text/xsl MIME type (introduced by Internet Explorer 5) as an acceptable MIME type for XML
39351	documents.
39352	
39353        Reviewed by john
39354
39355        * khtml/ecma/xmlhttprequest.cpp:
39356        (KJS::XMLHttpRequest::getValueProperty):
39357        * khtml/khtml_part.cpp:
39358        (KHTMLPart::begin):
39359        * khtml/misc/loader.cpp:
39360        (CachedXBLDocument::CachedXBLDocument):
39361
393622004-08-03  Maciej Stachowiak  <mjs@apple.com>
39363
39364        Reviewed by Ken.
39365
39366	- remove assertions that asserted text is non-empty, just avoid
39367	doing anything for the empty case; this is needed because input
39368	methods like to insert empty text in various cases.
39369
39370        * khtml/editing/htmlediting_impl.cpp:
39371        (khtml::InsertTextCommandImpl::InsertTextCommandImpl):
39372        (khtml::InsertTextCommandImpl::doApply):
39373        (khtml::InsertTextCommandImpl::doUnapply):
39374
393752004-08-03  Darin Adler  <darin@apple.com>
39376
39377        Reviewed by Ken.
39378
39379        - fixed <rdar://problem/3740937> ER: A way to turn a DOMRange into text (equivalent of -innerText)
39380
39381        * khtml/xml/dom2_rangeimpl.h: Added text function. Like innerText, but on a range.
39382        * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::text): Added.
39383
39384        * kwq/DOM.mm: (-[DOMRange _text]): Added. Calls DOM::RangeImpl::text.
39385        * kwq/DOMPrivate.h: Added.
39386
39387        * WebCore.pbproj/project.pbxproj: Added DOMPrivate.h, an internal header (private in WebKit, internal here).
39388
393892004-08-02  John Sullivan  <sullivan@apple.com>
39390
39391        Reviewed by Darin.
39392        
39393        WebCore part of fix for <rdar://problem/3631868> NSToolbar adoption: 
39394        Tab key should cycle around toolbar and page content
39395
39396        * kwq/WebCoreBridge.mm:
39397        (-[WebCoreBridge nextKeyViewInsideWebFrameViews]):
39398        Made this method start looking from the current focus node. This won't
39399        affect any existing callers because there were no existing callers.
39400        (-[WebCoreBridge previousKeyViewInsideWebFrameViews]):
39401        ditto
39402
394032004-08-02  David Hyatt  <hyatt@apple.com>
39404
39405	Create a #define for XSLT support that at the moment will only be enabled on Tiger.
39406	
39407        Reviewed by kocienda
39408
39409        * WebCorePrefix.h:
39410
394112004-08-02  Ken Kocienda  <kocienda@apple.com>
39412
39413        Reviewed by Hyatt
39414
39415        Fix for this bug:
39416        
39417        <rdar://problem/3747945> Deleting replaced element can cause crash
39418
39419        * khtml/xml/dom_selection.cpp:
39420        (DOM::Selection::layoutCaret): The crux of the problem is that
39421        the caret drawing code tries to draw the caret at the image
39422        offset after it has been removed from the document. So, make
39423        sure the start node for the selection is in the document before
39424        trying to lay out the caret using that node.
39425
394262004-07-31  Ken Kocienda  <kocienda@apple.com>
39427
39428        Reviewed by John
39429
39430        <rdar://problem/3745498> HTMLCompose: Can't edit new empty message (and typing eventually crashes)
39431        <rdar://problem/3746408> HTMLCompose: cannot type in message body of new messages (and tabbing causes a crash.)
39432        
39433        * kwq/KWQKHTMLPart.mm:
39434        (KWQKHTMLPart::setDisplaysWithFocusAttributes): Add in some smarts to look around for
39435        a good place to put the caret if focus is turning "on", the part is contentEditable,
39436        and it does not currently have a selection. This has the effect of flashing the caret 
39437        in a contentEditable view automatically without requiring the programmer to set a 
39438        selection explicitly. This also fixes the bug listed above. Both are cases where the
39439        bad behavior happened since the editing code tried to process input without an active 
39440        selection. I always took the extra step of setting the selection explicitly when
39441        opening new windows in programs like Blot, but it seems silly to require developers to
39442        do this in general. With this patch, they no longer need to.
39443
394442004-07-30  Ken Kocienda  <kocienda@apple.com>
39445
39446        Reviewed by John
39447
39448        Fix for this bug:
39449        
39450        <rdar://problem/3745498> HTMLCompose: Can't edit new empty message (and typing eventually crashes)
39451
39452        * khtml/xml/dom_selection.cpp:
39453        (DOM::Selection::layoutCaret): Don't bail when the start position of the selection is not in rendered
39454        content. The validate() bottleneck function will do all it can to make sure that the start is
39455        moved to rendered content if at all possible before this function runs. If no rendered position can
39456        be found, like in the case of an empty body element, we still want to flash the caret there.
39457        (DOM::Selection::validate): Look for rendered positions for the base and extent, but save off the
39458        base before making this move, and set the selection to the enclosing block flow element of this
39459        original base if no rendered positions can be found. This has the effect of flashing the caret 
39460        someplace in an editable block, even if it does not contain any rendered content.
39461
394622004-07-30  Ken Kocienda  <kocienda@apple.com>
39463
39464        Reviewed by John
39465
39466        Fix a large number of editing layout test regressions.
39467
39468        * khtml/misc/khtml_text_operations.cpp:
39469        (khtml::TextIterator::TextIterator): Use a new way to compute the end offset of a node for
39470        purposes of text iteration. The end offset is either child count of a node with children,
39471        or the maxOffset() of a node that does not.
39472        * khtml/xml/dom_nodeimpl.cpp: Remove maxOffset() implementation from NodeBaseImpl. This 
39473        conflicted with the usage of this function that is needed for editing.
39474        * khtml/xml/dom_nodeimpl.h: Ditto.
39475
394762004-07-30  Trey Matteson  <trey@apple.com>
39477
39478	Next steps for spell checking:  We have data structures for the marked pieces of
39479	text and the smarts to draw them (although at this point, they just get a green
39480	underline instead of using the real AppKit pattern.)
39481
39482	Note we don't call this code outside of development, since at this point I suspect
39483	it could be made to crash by mixing spelling and editing. 
39484
39485        Reviewed by Ken.
39486
39487        * khtml/rendering/render_text.cpp:
39488        (InlineTextBox::paintMarker):  Paint one marker's intersection with a text run
39489        (RenderText::paint):  Find intersections of all markers and runs, call paintMarker
39490        * khtml/rendering/render_text.h:
39491        * khtml/xml/dom_docimpl.cpp:
39492        (DocumentImpl::addMarker):  Adds a marker to a DOM Range.
39493        (DocumentImpl::removeMarker):  Removes a marker from a DOM Range.
39494        (DocumentImpl::addMarker):  Adds a marker to a single DOM Node, merging previous
39495	markers as needed.
39496        (DocumentImpl::removeMarker):  Removes a marker from a single DOM Node, breaking
39497	up previous markers as needed.
39498        (DocumentImpl::markersForNode):  Return markers for a Node.
39499        * khtml/xml/dom_docimpl.h:
39500        (DOM::DocumentMarker::):  New marker struct
39501        (DOM::DocumentMarker::operator == ):
39502        (DOM::DocumentMarker::operator != ):
39503        * kwq/KWQKHTMLPart.mm:
39504        (KWQKHTMLPart::advanceToNextMisspelling):  Mark misspelled ranges when we find them.
39505	Debug only for now.
39506
395072004-07-29  Maciej Stachowiak  <mjs@apple.com>
39508
39509        Reviewed by Darin.
39510
39511	<rdar://problem/3745808> Seed: WebKit: Table's caption broken
39512	
39513        * khtml/html/htmlparser.cpp:
39514        (KHTMLParser::insertNode): When a caption appears in an illegal
39515	place in a table, pop blocks until we hit a place where it's
39516	allowed.
39517
39518=== Safari-154 ===
39519
395202004-07-29  Darin Adler  <darin@apple.com>
39521
39522        Reviewed by Ken.
39523
39524        - added constants for motion across entire document for use in operations like
39525          move to beginning of document
39526
39527        * khtml/xml/dom_selection.h: Added DOCUMENT to ETextGranularity.
39528        * khtml/xml/dom_selection.cpp:
39529        (DOM::Selection::modifyExtendingRightForward): Added case for DOCUMENT.
39530        (DOM::Selection::modifyMovingRightForward): Added case for DOCUMENT.
39531        (DOM::Selection::modifyExtendingLeftBackward): Added case for DOCUMENT.
39532        (DOM::Selection::modifyMovingLeftBackward): Added case for DOCUMENT.
39533        (DOM::Selection::validate): Changed if statements into switch statement,
39534        added case for DOCUMENT.
39535
39536        * kwq/WebCoreBridge.h: Added WebCoreBridge to WebSelectionGranularity.
39537
395382004-07-28  Trey Matteson  <trey@apple.com>
39539
39540	Small refinement of last checkin.  The text iterators now return reasonable values
39541	for range() when atEnd, which gets rid of special cases and pitfalls in the client.
39542
39543        Reviewed by Ken.
39544
39545        * khtml/misc/khtml_text_operations.cpp:
39546        (khtml::TextIterator::TextIterator):  Set endOffset to a valid value instead of
39547	using LONG_MAX.
39548        (khtml::TextIterator::range):  Implement when atEnd.
39549        (khtml::CharacterIterator::range):  Don't massage result when atEnd.
39550        (khtml::WordAwareIterator::WordAwareIterator):  Now that this is fixed, we no
39551	longer need this special case.
39552        (khtml::WordAwareIterator::advance):  Always set range, even when atEnd, now that
39553	TextIterator::range() always works.
39554        * khtml/xml/dom_nodeimpl.cpp:
39555        (NodeImpl::childNodeCount):  Made const
39556        (NodeBaseImpl::maxOffset):  Add missing implementation
39557        * khtml/xml/dom_nodeimpl.h:
39558        * kwq/KWQKHTMLPart.mm:
39559        (KWQKHTMLPart::advanceToNextMisspelling):  Get rid of special cases, always call
39560	range on our iterator even when it is atEnd.
39561
395622004-07-28  Maciej Stachowiak  <mjs@apple.com>
39563
39564        Reviewed by Trey.
39565
39566	<rdar://problem/3678534> controls on page at http://help.sap.com don't work properly
39567
39568        To fix this I implemented the various JavaScript BarInfo properties in JavaScript.
39569	
39570	* khtml/ecma/kjs_window.cpp:
39571        (Window::Window):
39572        (Window::locationbar):
39573        (Window::menubar):
39574        (Window::personalbar):
39575        (Window::statusbar):
39576        (Window::toolbar):
39577        (Window::scrollbars):
39578        (Window::mark):
39579        (Window::get):
39580        (SelectionFunc::tryCall):
39581        (BarInfo::BarInfo):
39582        (BarInfo::~BarInfo):
39583        (BarInfo::get):
39584        (BarInfo::put):
39585        * khtml/ecma/kjs_window.h:
39586        (KJS::Window::):
39587        (KJS::BarInfo::):
39588        (KJS::BarInfo::part):
39589        (KJS::BarInfo::classInfo):
39590        * khtml/ecma/kjs_window.lut.h:
39591        (KJS::):
39592        * kwq/KWQKHTMLPart.h:
39593        * kwq/KWQKHTMLPart.mm:
39594        (KWQKHTMLPart::locationbarVisible):
39595        (KWQKHTMLPart::menubarVisible):
39596        (KWQKHTMLPart::personalbarVisible):
39597        (KWQKHTMLPart::scrollbarsVisible):
39598        (KWQKHTMLPart::statusbarVisible):
39599        (KWQKHTMLPart::toolbarVisible):
39600
396012004-07-28  Ken Kocienda  <kocienda@apple.com>
39602
39603        Added more layout tests.
39604
39605        * layout-tests/editing/style/style-3681552-fix-001-expected.txt: Added.
39606        * layout-tests/editing/style/style-3681552-fix-001.html: Added.
39607        * layout-tests/editing/style/style-3681552-fix-002-expected.txt: Added.
39608        * layout-tests/editing/style/style-3681552-fix-002.html: Added.
39609        * layout-tests/editing/style/style-3690704-fix-expected.txt: Added.
39610        * layout-tests/editing/style/style-3690704-fix.html: Added.
39611        * layout-tests/editing/style/typing-style-001-expected.txt: Added.
39612        * layout-tests/editing/style/typing-style-001.html: Added.
39613        * layout-tests/editing/style/typing-style-002-expected.txt: Added.
39614        * layout-tests/editing/style/typing-style-002.html: Added.
39615
396162004-07-28  Ken Kocienda  <kocienda@apple.com>
39617
39618        Added some layout tests.
39619
39620        * layout-tests/editing/selection/select-all-001-expected.txt: Added.
39621        * layout-tests/editing/selection/select-all-001.html: Added.
39622        * layout-tests/editing/selection/select-all-002-expected.txt: Added.
39623        * layout-tests/editing/selection/select-all-002.html: Added.
39624        * layout-tests/editing/selection/select-all-003-expected.txt: Added.
39625        * layout-tests/editing/selection/select-all-003.html: Added.
39626
396272004-07-28  Trey Matteson  <trey@apple.com>
39628
39629	Spellchecking, Part I.  Basic spellcheck is working.  Spelling panel is hooked up.
39630
39631	At this point, no special marking of misspellings, no grammar check, no context
39632	menu integration, no "check continually" mode.
39633
39634	Much of the TextIterator and CharacterIterator interface got published outside
39635	of khtml_text_operations.cpp, with a little API rationalizing.
39636
39637        Reviewed by Ken.
39638
39639        * khtml/misc/khtml_text_operations.cpp:
39640        (khtml::TextIterator::range):  Name changes.
39641        (khtml::CharacterIterator::CharacterIterator):  Ditto.
39642        (khtml::CharacterIterator::range):  Ditto.
39643        (khtml::CharacterIterator::advance):  Ditto.
39644        (khtml::CharacterIterator::string):  New method to consume chars into a string.
39645        (khtml::WordAwareIterator::WordAwareIterator):  New class that iterates over
39646	the text respecting word boundaries.
39647        (khtml::WordAwareIterator::advance):
39648        (khtml::WordAwareIterator::length):
39649        (khtml::WordAwareIterator::characters):
39650        (khtml::plainText):  Name changes.
39651        (khtml::findPlainText):  Ditto.
39652
39653	API moved from cpp to header file.
39654        * khtml/misc/khtml_text_operations.h:
39655        (khtml::TextIterator::atEnd):
39656        (khtml::TextIterator::length):
39657        (khtml::TextIterator::characters):
39658        (khtml::CharacterIterator::atBreak):
39659        (khtml::CharacterIterator::atEnd):
39660        (khtml::CharacterIterator::length):
39661        (khtml::CharacterIterator::characters):
39662        (khtml::CharacterIterator::characterOffset):
39663        (khtml::WordAwareIterator::atEnd):
39664        (khtml::WordAwareIterator::range):
39665
39666        * khtml/xml/dom_position.cpp:
39667        (DOM::Position::previousWordBoundary):  New name for the old routine.  This routines semantics
39668	match the current behavior of this code.
39669        (DOM::Position::nextWordBoundary):  Ditto.
39670        (DOM::Position::previousWordPosition):  Call old code with the new name.  When we fix
39671	word advancement, this routine will have its own impl.
39672        (DOM::Position::nextWordPosition):  Ditto.
39673        * khtml/xml/dom_position.h:
39674        * khtml/xml/dom_selection.h:
39675        (DOM::Selection::rangeStart):  New convenience methods
39676        (DOM::Selection::rangeEnd):
39677        * kwq/KWQKHTMLPart.h:
39678        * kwq/KWQKHTMLPart.mm:
39679        (KWQKHTMLPart::findString):  Ensure we use range-compatible positions.
39680        (KWQKHTMLPart::advanceToNextMisspelling):  Brand new.
39681        * kwq/WebCoreBridge.h:
39682        * kwq/WebCoreBridge.mm:
39683        (-[WebCoreBridge advanceToNextMisspelling]):  Typical bridge glue.
39684
396852004-07-28  Ken Kocienda  <kocienda@apple.com>
39686
39687        Reviewed by Maciej
39688        
39689        Fixed this bug:
39690        
39691        <rdar://problem/3690704> marking partly bold text italic across blocks wrongly extends the bold section
39692
39693        * khtml/editing/htmlediting_impl.cpp:
39694        (khtml::ApplyStyleCommandImpl::doApply): Fixed loop that gathers up groups of nodes to
39695        pass off to the function that applies styles. While this is meant to be conservative in
39696        order to leave the DOM well-formed in all cases, it contained an error where the set
39697        of nodes to be styled together erroneously could include a node that was meant for 
39698        the next set. Fixed.
39699        (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded): Unrelated change to remove DOM:: scope
39700        resolution qualifier. Unneeded here.
39701
397022004-07-28  Darin Adler  <darin@apple.com>
39703
39704        Reviewed by Trey.
39705
39706        - fixed <rdar://problem/3658471> REGRESSION: Node.appendChild( ) fails when parent already contains that child
39707
39708        * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::isAncestor): Restore the original meaning of this function.
39709        It returns true if the parameter is an ancestor of this, but had been changed to return true if this
39710        is an ancestor of the parameter. However, we do retain one change we made at the same time, which is
39711        that it does not consider a node an ancestor of itself.
39712
39713        * khtml/editing/htmlediting_impl.cpp: (khtml::ApplyStyleCommandImpl::nodeFullySelected):
39714        * khtml/xml/dom2_traversalimpl.cpp: (DOM::NodeIteratorImpl::notifyBeforeNodeRemoval):
39715        Reverse parameters for callers who wanted the new meaning of isAncestor, with care to not use it in
39716        any cases where the pointer might be 0.
39717
39718        * khtml/xml/dom_nodeimpl.h: Added const to the parameter to make things more symmetric and allow the
39719        new uses to all compile.
39720
397212004-07-28  Ken Kocienda  <kocienda@apple.com>
39722
39723        Reviewed by Darin
39724
39725        Fix for this bug:
39726        
39727        <rdar://problem/3681552> html editing needs to preserve typing font when replacing selection
39728
39729        * khtml/css/css_valueimpl.cpp:
39730        (CSSStyleDeclarationImpl::merge): New helper that merges styles together. Helpful for
39731        dealing with typing styles.
39732        * khtml/css/css_valueimpl.h:
39733        * khtml/editing/htmlediting_impl.cpp:
39734        (khtml::DeleteSelectionCommandImpl::computeTypingStyle): New helper that updates the
39735        typing style based on the current selection. This is a convenient bottleneck for all
39736        the code that needs to worry about typing style.
39737        (khtml::DeleteSelectionCommandImpl::doApply): Update typing style before doing the delete.
39738        (khtml::InputNewlineCommandImpl::doApply): No need to redeclare exceptionCode local.
39739        Improve comments. 
39740        (khtml::InputTextCommandImpl::prepareForTextInsertion): Remove unneeded complication when 
39741        figuring out where to insert style node. Not even sure what I was trying to do here, but
39742        it does not seem to be needed any more.
39743        (khtml::InputTextCommandImpl::execute): Remove unneeded comment.
39744        * khtml/editing/htmlediting_impl.h: Declare new computeTypingStyle helper.
39745        * khtml/khtml_part.cpp:
39746        (KHTMLPart::setCaretVisible): Call selectionLayoutChanged instead of notifySelectionChanged
39747        in this function. The selection did not change simply by calling this function, but it
39748        does need a layout.
39749        (KHTMLPart::notifySelectionChanged): Treat clearing the typing style much like closing typing,
39750        instead of clearing it unconditionally.
39751        (KHTMLPart::applyStyle): In the case where the current selection is a caret, merge the
39752        style being applied with any current typing style that already exists.
39753
397542004-07-28  Darin Adler  <darin@apple.com>
39755
39756        Reviewed by Ken.
39757
39758        - fixed <rdar://problem/3711080> REGRESSION (125-146): form fields have shrunk by 1 pixel, and now clip descenders
39759
39760        * kwq/KWQLineEdit.mm: (QLineEdit::sizeForCharacterWidth):
39761        Compute the size without ever calling cellSize. After talking with Andrew Platzer,
39762        we decided that hard-coding the size of the borders of a text field was the best
39763        way for WebCore to handle this.
39764
397652004-07-28  Darin Adler  <darin@apple.com>
39766
39767        Reviewed by Ken.
39768
39769        - fixed <rdar://problem/3743204> REGRESSION: crash at startribune.com in InlineBox::root()
39770
39771        * khtml/rendering/render_flow.cpp: (RenderFlow::dirtyLinesFromChangedChild):
39772        Added a check for nil.
39773
397742004-07-27  Darin Adler  <darin@apple.com>
39775
39776        Reviewed by Trey.
39777
39778        - fixed <rdar://problem/3743138> opaque colors come out of getComputedStyle as "rgba", transparent ones as "rgb"
39779
39780        * khtml/css/css_valueimpl.cpp: (CSSPrimitiveValueImpl::cssText): Use "rgb" rather than
39781        "rgba" when alpha is 0xFF, not when alpha is 0.
39782
397832004-07-27  Ken Kocienda  <kocienda@apple.com>
39784
39785        Reviewed by Hyatt
39786        
39787        Fixed the problem where BR elements on lines by themselves don't paint when selected.
39788
39789        * khtml/khtml_part.cpp:
39790        (KHTMLPart::selectAll): Related fix. Include BR's when figuring out what "all" is.
39791        * khtml/rendering/render_br.cpp:
39792        (RenderBR::paint): New function implementation. Teach BR's how to paint selections.
39793        * khtml/rendering/render_br.h:
39794        * khtml/rendering/render_text.cpp: 
39795        (InlineTextBox::paintSelection): Fix some geometry calculations to be more readable (i.e. don't
39796        reuse function argument as a local). Also, improve the logic for determining whether to 
39797        extend the selection to block boundaries.
39798        (RenderText::paint): Remove extendSelection argument from paintSelection. The logic to figure out
39799        extensions is now fully contained in paintSelection.
39800        * khtml/rendering/render_text.h:
39801
398022004-07-27  David Hyatt  <hyatt@apple.com>
39803
39804	Fix for 3665211 (again).  Make sure not to leave child line boxes pointing to deleted ancestor line boxes.
39805	
39806        Reviewed by kocienda
39807
39808        * khtml/rendering/render_block.cpp:
39809        (khtml::RenderBlock::removeChild):
39810
398112004-07-26  Chris Blumenberg  <cblu@apple.com>
39812
39813	Fixed: WebView scrolls to the top after making an editing change via drag & drop
39814
39815        Fixed by Ken, reviewed by me.
39816
39817        * kwq/WebCoreBridge.mm:
39818        (-[WebCoreBridge ensureCaretVisible]): do nothing if the selection is not a caret
39819
39820=== Safari-153 ===
39821
398222004-07-26  Maciej Stachowiak  <mjs@apple.com>
39823
39824        Reviewed by John.
39825
39826	<rdar://problem/3740855> REGRESSION: Flash incorrectly positioned at macromedia.com
39827        
39828        * khtml/html/htmltokenizer.cpp:
39829        (khtml::HTMLTokenizer::scriptExecution): Do the prepending-src
39830	trick as for inline script execution.
39831
39832	Added new layout tests covering this and other recent tokenizer
39833	bugs.
39834	
39835        * layout-tests/fast/tokenizer/001-expected.txt: Added.
39836        * layout-tests/fast/tokenizer/001.html: Added.
39837        * layout-tests/fast/tokenizer/002-expected.txt: Added.
39838        * layout-tests/fast/tokenizer/002.html: Added.
39839        * layout-tests/fast/tokenizer/003-expected.txt: Added.
39840        * layout-tests/fast/tokenizer/003.html: Added.
39841        * layout-tests/fast/tokenizer/resources/003-script.js: Added.
39842
398432004-07-23  Ken Kocienda  <kocienda@apple.com>
39844
39845        Reviewed by Trey
39846
39847        Fix for this bug:
39848        
39849        <rdar://problem/3738920> Caret blinks in inactive window
39850
39851        As part of the fix, I cleaned up the way we handle special drawing that needs
39852        to be done in the HTML view that is first responder in the key window (e.g the
39853        drawing of text selection highlight and caret blinking).
39854
39855        * khtml/khtml_part.cpp: Removed setCaretVisible function. Updating caret visibility
39856        is now done in setDisplaysWithFocusAttributes, described below.
39857        * khtml/khtml_part.h: Ditto.
39858        * khtml/khtmlpart_p.h:
39859        (KHTMLPartPrivate::KHTMLPartPrivate): m_caretVisible now defaults to false. This prevents
39860        the caret from blinking when an app is started from the command line and remains in the
39861        background.
39862        * khtml/khtmlview.cpp:
39863        (KHTMLView::focusInEvent): Remove caret code from here. Not needed.
39864        (KHTMLView::focusOutEvent): Ditto.
39865        * kwq/KWQKHTMLPart.h:
39866        (KWQKHTMLPart::displaysWithFocusAttributes): New accessor to return cached value to other code
39867        in WebCore.
39868        * kwq/KWQKHTMLPart.mm:
39869        (KWQKHTMLPart::KWQKHTMLPart):
39870        (KWQKHTMLPart::setDisplaysWithFocusAttributes): Renamed from setShowsFirstResponder and modified
39871        to do the display updating in a clearer way....and now has comments!
39872        * kwq/WebCoreBridge.h: Remove several obsolete functions that use to try to do the work of the new
39873        setDisplaysWithFocusAttributes function (and did so less well).
39874        * kwq/WebCoreBridge.mm:
39875        (-[WebCoreBridge drawRect:]): Now calls displaysWithFocusAttributes to figure out how to draw the
39876        text selection background.
39877        (-[WebCoreBridge setDisplaysWithFocusAttributes:]): Calls through to setDisplaysWithFocusAttributes in 
39878        KWQKHTMLPart.
39879        (-[WebCoreBridge selectionColor]): Flipped the value of this ternary expression to accommodate the
39880        change from usesInactiveTextBackgroundColor to setDisplaysWithFocusAttributes.
39881        (-[WebCoreBridge setCaretVisible:]): Removed.
39882
398832004-07-23  John Sullivan  <sullivan@apple.com>
39884
39885        Reviewed by Maciej.
39886
39887        - fixed <rdar://problem/3691569> REGRESSION (142): cmd-shift-clicking on a link 
39888        now also extends selection (even if there wasn't one before)
39889
39890        * khtml/khtml_part.cpp:
39891        (KHTMLPart::handleMousePressEventSingleClick):
39892        Uh, duh. Got a ! wrong last time somehow, so it did even more the wrong thing
39893        than ever. I did test this before, so my best guess is an accidental undo or
39894        something before committing.
39895
398962004-07-23  David Hyatt  <hyatt@apple.com>
39897
39898	Fix for 3735084 and 3737209, when you can find no line boxes in your previous sibling, the line box to dirty
39899	should be the *first* line box and not the last.
39900	
39901        Reviewed by kocienda
39902
39903        * khtml/rendering/render_flow.cpp:
39904        (RenderFlow::dirtyLinesFromChangedChild):
39905
399062004-07-23  Ken Kocienda  <kocienda@apple.com>
39907
39908        Reviewed by John
39909
39910        * khtml/xml/dom_selection.cpp:
39911        (DOM::Selection::validate): Not exactly a fix of anything per se, but more of a refinement
39912        of how selection validation works. The idea is to let the selection validation process
39913        end up with an empty selection given real DOM position inputs if the validation code
39914        cannot find a rendered position. Since selection is all about display, this makes sense.
39915        Currently, the code will allow the selection to be placed in a location that is not
39916        rendered, and this does nobody any good, as it can lead to bugs like accepting key input
39917        in a div that is set to display:none.
39918
399192004-07-23  Ken Kocienda  <kocienda@apple.com>
39920
39921        Updated layout tests with new expected results.
39922
39923        * layout-tests/editing/execCommand/boldSelection-expected.txt
39924        * layout-tests/editing/selection/extend-by-character-001-expected.txt
39925        * layout-tests/editing/selection/extend-by-character-003-expected.txt
39926        * layout-tests/editing/selection/unrendered-005-expected.txt
39927
399282004-07-22  Maciej Stachowiak  <mjs@apple.com>
39929
39930        Reviewed by Kevin.
39931
39932	<rdar://problem/3725467> REGRESSION(140-142) nothing displayed at http://Ye-Olde-Movies.tripod.com
39933	<rdar://problem/3599494> REGRESSION (100-125): Frame does not refresh until user clicks on browser.
39934	
39935        * khtml/rendering/render_frames.cpp:
39936        (RenderFrameSet::layout): When returning early because there are
39937	no children, make sure to mark self as no longer needing
39938	layout. Otherwise, when children are added, we'll fail to
39939	propagate childrenNeedLayout to our own parent! This is almost
39940	certainly a long-standing bug that was just masked by our old
39941	layout tomfoolery.
39942
399432004-07-22  Kevin Decker  <kdecker@apple.com>
39944
39945	Reviewed by Darin
39946
39947	Fixed <rdar://problem/3682340> (error console does not include source urls or line numbers of event exceptions).
39948
39949        * khtml/ecma/kjs_events.cpp:
39950        (JSLazyEventListener::JSLazyEventListener):
39951        (JSLazyEventListener::parseCode):
39952        * khtml/ecma/kjs_events.h:
39953        * khtml/ecma/kjs_proxy.cpp:
39954        (KJSProxyImpl::createHTMLEventHandler):
39955        * khtml/ecma/kjs_window.cpp:
39956        (Window::getJSLazyEventListener):
39957        * khtml/ecma/kjs_window.h:
39958
399592004-07-22  Ken Kocienda  <kocienda@apple.com>
39960
39961        Reviewed by Hyatt
39962
39963        Fix for this bug:
39964
39965        <rdar://problem/3724344> Bolding and unbolding creates extraneous tags
39966
39967        * khtml/editing/htmlediting_impl.cpp:
39968        (khtml::ApplyStyleCommandImpl::doApply): Move the start of the selection upstream
39969        before calling removeStyle. This makes sure we remove all styles that could apply to the 
39970        selection, and not just ones in from the start position of the selection passed to us. 
39971        This fixes the bug.
39972        * khtml/xml/dom_selection.cpp:
39973        (DOM::Selection::validate): Related fix to "constrain" the selection to be the 
39974        smallest equivalent range of nodes, in effect making a "canonical" version of the
39975        selection. While this is not strictly necessary to fix the bug, it is a step I have been 
39976        wanting to take this step for a long time, and some recent improvements made it 
39977        possible for me to do now in just two lines of code.
39978
399792004-07-22  Ken Kocienda  <kocienda@apple.com>
39980
39981        Reviewed by Hyatt
39982
39983        Fix for this bug:
39984        
39985        <rdar://problem/3711264> difficult (impossible?) to get cursor in an editable webview containing only tags
39986
39987        * khtml/rendering/render_container.cpp:
39988        (RenderContainer::positionForCoordinates): Don't assume you can pass off
39989        the check to a first child if there is one, since the child can be an element
39990        we do not want to place the caret in, like a table row with no cells (the case
39991        in the bug above). So now, we iterate of the renderer's children looking for
39992        the closest one, but only consider those renderers which either have children
39993        themselves, or are render block flows or are render inlines. 
39994
399952004-07-22  Darin Adler  <darin@apple.com>
39996
39997        - remove a bunch of now-unused code
39998
39999        * ForwardingHeaders/qxml.h: Removed.
40000        * kwq/KWQXmlAttributes.h: Removed.
40001        * kwq/KWQXmlAttributes.mm: Removed.
40002        * kwq/KWQXmlDefaultHandler.h: Removed.
40003        * kwq/KWQXmlDefaultHandler.mm: Removed.
40004        * kwq/KWQXmlSimpleReader.h: Removed.
40005        * kwq/KWQXmlSimpleReader.mm: Removed.
40006
400072004-07-22  Darin Adler  <darin@apple.com>
40008
40009        Reviewed by Dave.
40010
40011        - got rid of QXml classes and changed XML parsing to use libxml directly
40012
40013        This is the first step toward more direct use of libxml and libxslt.
40014        Dave is planning to build on this to implement XSLT and to improve our handling
40015        of XML documents (faster and more feature complete, including DTDs).
40016
40017        * khtml/html/html_elementimpl.cpp:
40018        (HTMLElementImpl::createContextualFragment):
40019        * khtml/html/htmltokenizer.cpp:
40020        (khtml::HTMLTokenizer::HTMLTokenizer):
40021        * khtml/html/htmltokenizer.h:
40022        * khtml/xml/dom_docimpl.cpp:
40023        (DocumentImpl::createTokenizer):
40024        (DocumentImpl::open):
40025        * khtml/xml/dom_docimpl.h:
40026        (DOM::DocumentImpl::tokenizer):
40027        * khtml/xml/dom_xmlimpl.cpp:
40028        (DOM::ProcessingInstructionImpl::checkStyleSheet):
40029        * khtml/xml/dom_xmlimpl.h:
40030        * khtml/xml/xml_tokenizer.h:
40031        * khtml/xml/xml_tokenizer.cpp: Redid this all to use libxml directly.
40032
40033        * WebCore.pbproj/project.pbxproj: Removed a bunch of files.
40034
400352004-07-21  Trey Matteson  <trey@apple.com>
40036
40037	DHTML dragging should use UTI for MIME-pboard type conversion
40038
40039        Reviewed by Ken
40040
40041        * kwq/KWQClipboard.mm:
40042        (cocoaTypeFromMIMEType):  Use UTI, except for cases we need to hardwire.  Only cut off
40043	MIME args following a semi-colon for text/plain.
40044        (MIMETypeFromCocoaType): Use UTI, except for cases we need to hardwire.  
40045        (KWQClipboard::types):  Filter out ancient NSAsciiPboardType so DHTML never sees this cruft.
40046
400472004-07-21  Ken Kocienda  <kocienda@apple.com>
40048
40049        Reviewed by Trey
40050
40051        Remove handling of HTML editing key events from WebCore.
40052        This now happens in WebKit if an event passes all the
40053        way through WebCore without being handled by the DOM.
40054
40055        In each case below, function were removed, as their
40056        only purpose was to handle editing key events.
40057
40058        * khtml/xml/dom_elementimpl.cpp
40059        * khtml/xml/dom_elementimpl.h
40060        * kwq/KWQKHTMLPart.h
40061        * kwq/KWQKHTMLPart.mm
40062        * kwq/WebCoreBridge.h
40063
400642004-07-21  Ken Kocienda  <kocienda@apple.com>
40065
40066        Reviewed by John
40067
40068        * khtml/xml/dom_selection.cpp:
40069        (DOM::Selection::modifyExtendingRightForward): Add LINE_BOUNDARY case to the switch statement in this
40070        function. Use the startAndEndLineNodesIncludingNode helper which already existed to get the right
40071        position.
40072        (DOM::Selection::modifyMovingRightForward): Ditto
40073        (DOM::Selection::modifyExtendingLeftBackward): Ditto
40074        (DOM::Selection::modifyMovingLeftBackward): Ditto
40075        * khtml/xml/dom_selection.h: 
40076        (DOM::Selection::): Add LINE_BOUNDARY constant to ETextGranularity enum. This
40077        specifies a new kind of movement that we need to implement the "move-to beggining/end of line"
40078        behavior which AppKit binds to cmd+left/right arrow keys.
40079        * kwq/WebCoreBridge.h: Add WebSelectToLineBoundary constant. This matches
40080
400812004-07-20  David Hyatt  <hyatt@apple.com>
40082
40083	Fix for 3714434, user stylesheet is always parsed in strict mode, when it should honor the document's setting.
40084	
40085        Reviewed by john
40086
40087        * khtml/css/cssstyleselector.cpp:
40088        (khtml::CSSStyleSelector::CSSStyleSelector):
40089
400902004-07-20  Ken Kocienda  <kocienda@apple.com>
40091
40092        Reviewed by Richard
40093
40094        * khtml/xml/dom_elementimpl.cpp:
40095        (ElementImpl::defaultEventHandler): No longer check whether
40096        the command key is modifying the key event. This check is
40097        now done elsewhere in the code. See the WebKit checkin that
40098        added the _web_keyBindingManagerHasBinding method to 
40099        WebNSEventExtras.
40100
401012004-07-20  Chris Blumenberg  <cblu@apple.com>
40102
40103	Fixed:
40104	<rdar://problem/3580589> REGRESSION (1.1-1.2): can't open a new window for an image that has not loaded
40105	<rdar://problem/3612691> Missing image icons (blue ?) lack context menu
40106
40107        Reviewed by john.
40108
40109        * kwq/WebCoreBridge.mm:
40110        (-[WebCoreBridge elementAtPoint:]): if there is no image, put the image URL on the element anyway
40111
401122004-07-20  David Hyatt  <hyatt@apple.com>
40113
40114	Fix for alt text not working on images.
40115	
40116        Reviewed by john
40117
40118        * khtml/rendering/render_image.cpp:
40119        (RenderImage::RenderImage):
40120        (RenderImage::setPixmap):
40121        (RenderImage::paint):
40122        (RenderImage::calcReplacedWidth):
40123        (RenderImage::calcReplacedHeight):
40124
401252004-07-20  Maciej Stachowiak  <mjs@apple.com>
40126
40127        Reviewed by Dave.
40128
40129	<rdar://problem/3720111> REGRESSION(125-152): map fails to load depending on banner ad; weather.com (works in IE and Firefox)
40130	
40131        * khtml/html/htmltokenizer.cpp:
40132        (khtml::HTMLTokenizer::begin): Initialize currentPrependingSrc.
40133        (khtml::HTMLTokenizer::scriptHandler): Store a pointer to the currently
40134	active prependingSrc variable on the stack, the better to handle weird cases
40135	of scripts writing out additional script tags and so forth.
40136        (khtml::HTMLTokenizer::write): Deal with the above.
40137        * khtml/html/htmltokenizer.h: Declare new member field.
40138
401392004-07-20  David Hyatt  <hyatt@apple.com>
40140
40141	Fix for layer positioning error that occurs when absolute positioned blocks are inside static positioned overflow:auto
40142	elements.
40143	
40144        Reviewed by john
40145
40146        * khtml/rendering/render_layer.cpp:
40147        (RenderLayer::updateLayerPosition):
40148
401492004-07-20  Trey Matteson  <trey@apple.com>
40150
40151	3705624	REGRESSION: can't rearrange photos on homepage.mac.com album
40152
40153	A subtle problem stemming from some interaction between focus handing and
40154	event propagation.  We previously made it so when a focus shift fails we
40155	don't propagate the event to KHTML.  The fix is to get rid of the inverse
40156	effect, so now even if a focus shift succeeds, we don't propagate to KHTML if
40157	the page already canceled default behavior.
40158
40159	In this specific case, the page is cancelling default behavior since it
40160	does its own dragging, and the bug was our new system dragging was
40161	kicking in.
40162
40163        Reviewed by Ken.
40164
40165        * khtml/khtmlview.cpp:
40166        (KHTMLView::dispatchMouseEvent):  What he said.
40167
401682004-07-20  Ken Kocienda  <kocienda@apple.com>
40169
40170        Reviewed by Darin
40171
40172        Fix for this bug:
40173        
40174        <rdar://problem/3695240> pasting plain text with newlines in it turns them into spaces
40175
40176        * kwq/WebCoreBridge.mm:
40177        (-[WebCoreBridge documentFragmentWithText:]): Refine this function to be smart about converting
40178        line endings into BR elements.
40179
401802004-07-20  Ken Kocienda  <kocienda@apple.com>
40181
40182        Reviewed by Hyatt
40183
40184        Fix for this bug:
40185        
40186        <rdar://problem/3707505> HTMLCompose: blinking cursor in both an address text field and the message body
40187
40188        * khtml/khtml_part.cpp:
40189        (KHTMLPart::setCaretVisible): This method renamed from setSelectionVisible. Since it really only operates
40190        on the caret, this seems like a better name.
40191        * khtml/khtml_part.h:
40192        * khtml/khtmlview.cpp:
40193        (KHTMLView::focusInEvent): Call setCaretVisible(true)
40194        (KHTMLView::focusOutEvent): Call setCaretVisible(false)
40195        * kwq/KWQKHTMLPart.mm:
40196        (KWQKHTMLPart::setShowsFirstResponder): Name change: setSelectionVisible becomes setCaretVisible.
40197        * kwq/WebCoreBridge.h: Expose setCaretVisible as a bridge method.
40198        * kwq/WebCoreBridge.mm:
40199        (-[WebCoreBridge setCaretVisible:]): Ditto.
40200
402012004-07-19  Maciej Stachowiak  <mjs@apple.com>
40202
40203        Reviewed by Trey.
40204
40205	<rdar://problem/3721428> REGRESSION (125.8-146): external javascript statements produce extra garbage character (sina.com)
40206        
40207	* khtml/misc/stringit.h:
40208        (khtml::TokenizerSubstring::TokenizerSubstring): For the apple branch, use the new
40209	stableUnicode() method to get the unicode pointer.
40210        * kwq/KWQString.h:
40211        * kwq/KWQString.mm:
40212        (QString::detachIfInternal): Reorganize this to be a bit less wacky about refcounts.
40213	It does not leave around a zombie internal data handle but rather destroys it right away,
40214	and leaves the object pointing to the new handle (which it can then deref). This makes
40215	the code more clear.
40216        (QString::~QString): Simplify.
40217        (QString::stableUnicode): New method that detaches a copy of the KWQStringData if it
40218	is internal to a string besides this one. This guarantees that if you get the unicode()
40219	pointer, it won't go bad so long as this string is still alive.
40220
402212004-07-19  David Hyatt  <hyatt@apple.com>
40222
40223	Fix for 3715117, crash from a bug in removeChildren.  Clean up node removal and fix an n-squared removal
40224	bug.  Also clean up checks in removeChild and in the dispatch of removedFromDocument mutation events to
40225	make node removal more efficient.
40226	
40227        Reviewed by kocienda
40228
40229        * khtml/xml/dom_nodeimpl.cpp:
40230
402312004-07-19  John Sullivan  <sullivan@apple.com>
40232
40233        Reviewed by Trey.
40234        
40235        - fixed <rdar://problem/3141150> can't undo in form textarea fields
40236
40237        * kwq/KWQTextArea.mm:
40238        (-[KWQTextArea _createTextView]):
40239        call setAllowsUndo:YES. My, wasn't this easy?
40240
402412004-07-19  David Hyatt  <hyatt@apple.com>
40242
40243	Merge @import fix for CSS1 test suite from Stephan Kulow.
40244	
40245        Reviewed by hyatt
40246
40247        * khtml/css/parser.cpp:
40248        * khtml/css/parser.y:
40249        * layout-tests/css1/basic/containment-expected.txt:
40250
402512004-07-19  David Hyatt  <hyatt@apple.com>
40252
40253	Fix for 3718697, crash clicking on JS tab at alaskaair.com.
40254	
40255        Reviewed by kocienda
40256
40257        * khtml/rendering/render_flow.cpp:
40258        (RenderFlow::detach):
40259        (RenderFlow::dirtyLinesFromChangedChild):
40260        * khtml/rendering/render_flow.h:
40261        * khtml/rendering/render_object.cpp:
40262        (RenderObject::dirtyLinesFromChangedChild):
40263        * khtml/rendering/render_object.h:
40264
402652004-07-16  David Hyatt  <hyatt@apple.com>
40266
40267	Fix for 3726471, need to ensure that it's safe to do updateRendering from within layout, since isContentEditable
40268	relies on it.  The fix is to just recalcStyle up front before beginning the layout, so that all of our renderobjects
40269	will be up-to-date.
40270	
40271        Reviewed by john
40272
40273        * khtml/khtmlview.cpp:
40274        (KHTMLView::layout):
40275
402762004-07-16  Ken Kocienda  <kocienda@apple.com>
40277
40278        Reviewed by Hyatt
40279
40280        Fix for this bug:
40281        
40282        <rdar://problem/3722153> Random crash while typing (DOM::NodeImpl::parentNode (this=0x0))
40283
40284        * khtml/editing/htmlediting_impl.cpp:
40285        (khtml::DeleteSelectionCommandImpl::doApply): This check merely makes the code
40286        more robust. I do not understand how Grant ended up with null start or end 
40287        blocks in the case of his bug report, but by adding two null checks, the code is 
40288        now hardened a bit in case it happens again.
40289
402902004-07-16  Ken Kocienda  <kocienda@apple.com>
40291
40292        Reviewed by Hyatt
40293
40294        Fix for these bugs:
40295
40296        <rdar://problem/3730785> Crash when arrow navigation goes to empty table cell
40297        <rdar://problem/3730790> Caret does not blink when placed in empty table cell
40298
40299        * khtml/rendering/render_block.cpp:
40300        (khtml::RenderBlock::paintObject): Caret node's renderer might be this block, so
40301        don't block the painting of the caret in this case. This was the case in 3730790.
40302        We had the right geometry for the caret but blocked its painting. 
40303        * khtml/xml/dom_position.cpp:
40304        (DOM::Position::previousLinePosition): Rework the logic here. This function asserted
40305        that the new position we would navigate to had a line box, but empty table cells, for
40306        instance will not. So, deal with this situation as well. The end result is a 
40307        function that worked like it did before in cases where the previous line position has
40308        a line box, but now also will allow navigation to work when it does not.
40309        (DOM::Position::nextLinePosition): Ditto.
40310
403112004-07-16  Ken Kocienda  <kocienda@apple.com>
40312
40313        Reviewed by Hyatt
40314
40315        Fix for this bug:
40316        
40317        <rdar://problem/3687216> editable inline causes crash when focused
40318
40319        * khtml/xml/dom_docimpl.cpp:
40320        (DocumentImpl::relinquishesEditingFocus): Add null check for rootEditableElement.
40321        (DocumentImpl::acceptsEditingFocus): Ditto.
40322
403232004-07-16  David Hyatt  <hyatt@apple.com>
40324
40325	Fix for 3709337, crash when using display: compact.  Need to make sure that the isCompact() check in bidi.cpp is
40326	also checking for RenderBlocks, since otherwise you match text nodes (and that's just wrong).
40327	
40328        Reviewed by kocienda
40329
40330        * khtml/rendering/bidi.cpp:
40331        (khtml::RenderBlock::layoutInlineChildren):
40332
40333=== Safari-152 ===
40334
403352004-07-15  David Hyatt  <hyatt@apple.com>
40336
40337	Fix for 3625611, images offset on first visit to page.  The method for determining the last clean line was
40338	flawed and would incorrectly miss dirty lines that occurred after the first clean line.
40339	
40340        Reviewed by john
40341
40342        * khtml/rendering/bidi.cpp:
40343        (khtml::RenderBlock::determineEndPosition):
40344
403452004-07-15  Ken Kocienda  <kocienda@apple.com>
40346
40347        Reviewed by John
40348
40349        Fix for this bug:
40350        <rdar://problem/3587601> reproducible assertion failure in Blot deleting text, then image at Yahoo.com
40351        
40352        * khtml/editing/htmlediting_impl.cpp:
40353        (khtml::DeleteCollapsibleWhitespaceCommandImpl::deleteWhitespace): Relax assertion
40354        that nodes are text nodes during the walk of eligible nodes that could possibly be
40355        deleted. Change the assertion to an conditional check for text nodes. We may have 
40356        unrendered nodes in the mix here (as is the case in the bug where the assertion
40357        failed on an AREA element), and the conditional check is sufficient to
40358        skip them while leaving the delete logic we want unperturbed. 
40359
403602004-07-14  Ken Kocienda  <kocienda@apple.com>
40361
40362        Reviewed by John
40363
40364        * khtml/rendering/render_block.cpp:
40365        (khtml::RenderBlock::paintObject): Add null check on DOM node before
40366        asking if it is contentEditable.
40367
403682004-07-14  David Hyatt  <hyatt@apple.com>
40369
40370	Fix for 3595073, setting innerHTML on a <table> should work.
40371	
40372        Reviewed by rjw
40373
40374        * khtml/html/html_elementimpl.cpp:
40375        (HTMLElementImpl::createContextualFragment):
40376
403772004-07-14  Ken Kocienda  <kocienda@apple.com>
40378
40379        Reviewed by Hyatt
40380        
40381        Updated these layout tests as a result of the last patch.
40382        These results are better.
40383
40384        * layout-tests/editing/execCommand/selectAll-expected.txt
40385        * layout-tests/editing/selection/extend-by-character-006-expected.txt
40386        * layout-tests/editing/selection/unrendered-001-expected.txt
40387        * layout-tests/editing/selection/unrendered-003-expected.txt
40388
403892004-07-14  Ken Kocienda  <kocienda@apple.com>
40390
40391        Reviewed by Hyatt
40392
40393        * khtml/rendering/render_block.cpp: 
40394        (khtml::RenderBlock::paintObject): Change back to start() from caretPosition().
40395        Since the policy is now to move the selection to rendered content, if possible,
40396        when the selection is set, there is no longer any reason to have the additional
40397        caretPosition() function to store where the caret should be drawn.
40398        * khtml/xml/dom_docimpl.cpp:
40399        (DocumentImpl::updateSelection): No longer any need to call closestRenderedPosition here.
40400        This is done in Selection::validate.
40401        * khtml/xml/dom_position.cpp:
40402        (DOM::Position::closestRenderedPosition): Improved algorithm. Now much simpler.
40403        * khtml/xml/dom_selection.cpp:
40404        (DOM::Selection::Selection): caretPosition() and m_caretPosition now obsolete.
40405        (DOM::Selection::init): Ditto.
40406        (DOM::Selection::modifyExtendingRightForward): No longer any need to call 
40407        closestRenderedPosition here. This is done in Selection::validate.
40408        (DOM::Selection::modifyMovingRightForward): Ditto.
40409        (DOM::Selection::modifyExtendingLeftBackward): Ditto.
40410        (DOM::Selection::modifyMovingLeftBackward): Ditto.
40411        (DOM::Selection::layoutCaret): Ditto.
40412        (DOM::Selection::validate): Add code to move the selection to rendered content if possible.
40413        * khtml/xml/dom_selection.h: caretPosition() and m_caretPosition now obsolete.
40414
404152004-07-14  David Hyatt  <hyatt@apple.com>
40416
40417	Fix for 3716082, assert when you dynamically remove float or position styles.
40418	
40419        Reviewed by kevin
40420
40421        * khtml/rendering/render_object.cpp:
40422        (RenderObject::setStyle):
40423
404242004-07-14  David Hyatt  <hyatt@apple.com>
40425
40426	Fix for various table regressions (malumovies.com and cityofheroes.gameamp.com) involving bungling of
40427	percentage heights.
40428	
40429        Reviewed by kocienda
40430
40431        * khtml/rendering/render_box.cpp:
40432        (RenderBox::calcPercentageHeight):
40433        (RenderBox::availableHeightUsing):
40434        * khtml/rendering/render_table.cpp:
40435        (RenderTable::layout):
40436        (RenderTableSection::calcRowHeight):
40437        (RenderTableSection::layoutRows):
40438        (RenderTableCell::updateFromElement):
40439        * khtml/rendering/render_table.h:
40440
404412004-07-14  Ken Kocienda  <kocienda@apple.com>
40442
40443        Reviewed by John
40444
40445        * khtml/xml/dom_position.cpp:
40446        (DOM::Position::equivalentDeepPosition): New helper function to improve selection handling.
40447        Soon, I plan to land some changes that use this new function.
40448        * khtml/xml/dom_position.h:
40449
404502004-07-14  Ken Kocienda  <kocienda@apple.com>
40451
40452        Reviewed by Vicki
40453
40454        * WebCore-combined.exp: Added QString.at symbol to tests exports to facilitate debugging
40455        data formatting change that is to come.
40456        * WebCore-tests.exp:
40457        
404582004-07-13  John Sullivan  <sullivan@apple.com>
40459
40460        Reviewed by Ken.
40461        
40462        - fixed <rdar://problem/3705500> REGRESSION (125.8-146): Cmd-E on an 
40463        HTML page puts a trailing space on Find pasteboard
40464
40465        * khtml/misc/khtml_text_operations.cpp:
40466        (khtml::TextIterator::handleTextBox):
40467        In the case where a subrun doesn't extend to the end of the text box,
40468        the well-commented code was supposed to return from this routine, but
40469        the wrong variable was being compared. This would send us through another
40470        pass of the loop, which would end up worrying about collapsed space at the
40471        end of the current box, even though we only cared about the beginning of the
40472        current box.
40473
404742004-07-12  Richard Williamson   <rjw@apple.com>
40475
40476	Fixed 3717982.  Implemented navigator.language!
40477
40478        Reviewed by John.
40479
40480        * khtml/ecma/kjs_navigator.cpp:
40481        (Navigator::getValueProperty):
40482
404832004-07-12  Ken Kocienda  <kocienda@apple.com>
40484
40485        Reviewed by Hyatt
40486
40487        * khtml/xml/dom_position.cpp:
40488        (DOM::Position::inRenderedContent): I broke selection drawing with my last patch. This 
40489        function is now used in selection drawing, and it was making an unneeded check to see
40490        that content was editable to answer whether or not is was rendered. Bad. Fixed.
40491
404922004-07-12  David Hyatt  <hyatt@apple.com>
40493
40494	Fix for 3621138, crash on hrweb.apple.com.  Make sure that in the case where objects get pulled up from merging
40495	blocks that we just delete all line boxes.
40496	
40497        Reviewed by kocienda
40498
40499        * khtml/rendering/render_block.cpp:
40500        (khtml::RenderBlock::removeChild):
40501
405022004-07-10  Maciej Stachowiak  <mjs@apple.com>
40503
40504        Reviewed by John.
40505
40506	<rdar://problem/3706080>: (REGRESSION (125.8-147u): Nested <ul> do not display bullets)
40507	<rdar://problem/3676376>: (Second level bullets not printed when printing Xcode release notes)
40508	
40509        * kwq/KWQPainter.h:
40510        * kwq/KWQPainter.mm:
40511        (CGColorFromNSColor):
40512        (QPainter::drawEllipse):
40513        (QPainter::setShadow):
40514
405152004-07-12  Ken Kocienda  <kocienda@apple.com>
40516
40517        Added new editing-related layout tests
40518
40519        * layout-tests/editing/deleting/delete-after-span-ws-001-expected.txt: Added.
40520        * layout-tests/editing/deleting/delete-after-span-ws-001.html: Added.
40521        * layout-tests/editing/deleting/delete-after-span-ws-002-expected.txt: Added.
40522        * layout-tests/editing/deleting/delete-after-span-ws-002.html: Added.
40523        * layout-tests/editing/deleting/delete-after-span-ws-003-expected.txt: Added.
40524        * layout-tests/editing/deleting/delete-after-span-ws-003.html: Added.
40525        * layout-tests/editing/selection/unrendered-001-expected.txt: Added.
40526        * layout-tests/editing/selection/unrendered-001.html: Added.
40527        * layout-tests/editing/selection/unrendered-002-expected.txt: Added.
40528        * layout-tests/editing/selection/unrendered-002.html: Added.
40529        * layout-tests/editing/selection/unrendered-003-expected.txt: Added.
40530        * layout-tests/editing/selection/unrendered-003.html: Added.
40531        * layout-tests/editing/selection/unrendered-004-expected.txt: Added.
40532        * layout-tests/editing/selection/unrendered-004.html: Added.
40533        * layout-tests/editing/selection/unrendered-005-expected.txt: Added.
40534        * layout-tests/editing/selection/unrendered-005.html: Added.
40535        * layout-tests/traversal/node-iterator-008-expected.txt: Added.
40536        * layout-tests/traversal/node-iterator-008.html: Added.
40537        * layout-tests/traversal/tree-walker-005-expected.txt: Added.
40538        * layout-tests/traversal/tree-walker-005.html: Added.
40539
405402004-07-12  Ken Kocienda  <kocienda@apple.com>
40541
40542        Reviewed by Hyatt
40543
40544        Fixes for these bugs:
40545        
40546        <rdar://problem/3723359> Extending then "unextending" selection with arrow keys should draw caret but doesn't
40547        <rdar://problem/3724626> White-space deletion code deletes wrong character when space follows span
40548        
40549        * khtml/editing/htmlediting_impl.cpp:
40550        (khtml::DeleteSelectionCommandImpl::doApply): Modify special-case white-space deletion code so it runs
40551        only in the special case. It was throwing its net too widely, catching the case described in 3724626.
40552        By tightening up the special-case white-space deletion, and allowing the more general-purpose code to run,
40553        the bug is fixed.
40554        * khtml/xml/dom_docimpl.cpp:
40555        (DocumentImpl::updateSelection): Use recently-added closestRenderedPosition helper in Position class
40556        to figure out the start and end positions for selection drawing.
40557        * khtml/xml/dom_position.cpp:
40558        (DOM::Position::equivalentUpstreamPosition): Added code to handle white-space that causes line breaks.
40559        (DOM::Position::equivalentDownstreamPosition): Ditto.
40560        (DOM::Position::closestRenderedPosition): Trap empty selections at function entry, return *this.
40561        (DOM::Position::isFirstRenderedPositionOnLine): Can't be first rendered position on line if not rendered.
40562        Add check for this.
40563        (DOM::Position::isLastRenderedPositionOnLine): Ditto, but s/first/last/
40564        * khtml/xml/dom_selection.cpp:
40565        (DOM::Selection::validate): A selection is in caret state if the start and end are equal *or* equivalent.
40566        The equivalence case is new, and fixes 3723359.
40567
405682004-07-09  Kevin Decker  <kdecker@apple.com>
40569
40570        Reviewed by Hyatt.
40571        
40572        fixes the width:auto problem in
40573        <rdar://problem/3698344> REGRESSION (143?-144): macrumors.com tabs are compressed and illegible
40574        
40575        * khtml/css/cssstyleselector.cpp:
40576        (khtml::CSSStyleSelector::applyProperty):
40577
405782004-07-09  Ken Kocienda  <kocienda@apple.com>
40579
40580        Updated some layout test results.
40581
40582        * layout-tests/editing/deleting/delete-image-004-expected.txt:
40583        * layout-tests/editing/selection/extend-by-character-006-expected.txt:
40584
405852004-07-09  Chris Blumenberg  <cblu@apple.com>
40586
40587	Allowed my change for 3715785 to compile on Jaguar.
40588
40589        Reviewed by kocienda.
40590
40591        * kwq/WebCoreBridge.h:
40592        * kwq/WebCoreBridge.mm:
40593        (-[WebCoreBridge domain]): new, allows access to the domain without using the DOM API which doesn't exist on Jaguar
40594
405952004-07-09  Ken Kocienda  <kocienda@apple.com>
40596
40597        Reviewed by Hyatt
40598        
40599        Some improvements to fix:
40600        
40601        <rdar://problem/3723111> Caret not drawn when selection set to unrendered content
40602
40603        * khtml/editing/htmlediting_impl.cpp:
40604        (khtml::TypingCommandImpl::issueCommandForDeleteKey): Adjust selection to delete if
40605        selected position is not rendered.
40606        * khtml/rendering/render_block.cpp:
40607        (khtml::RenderBlock::paintObject): Use new caretPosition() function on Selection to
40608        figure out whether to paint.
40609        * khtml/xml/dom_position.cpp:
40610        (DOM::Position::previousCharacterPosition): Now correctly deals with a start
40611        position that is not rendered.
40612        (DOM::Position::nextCharacterPosition): Ditto.
40613        (DOM::Position::closestRenderedPosition): New helper.
40614        * khtml/xml/dom_position.h:
40615        (DOM::): Moved in EAffinity from Selection header. Now used in closestRenderedPosition function.
40616        * khtml/xml/dom_selection.cpp:
40617        (DOM::Selection::Selection): Added new m_caretPosition member. This is the position of the caret
40618        after a caret layout. This may be different from start or end if start and end are not rendered. 
40619        (DOM::Selection::init):
40620        (DOM::Selection::modifyExtendingRightForward): New helper to clean up modify() and make it more readble.
40621        (DOM::Selection::modifyMovingRightForward): Ditto.
40622        (DOM::Selection::modifyExtendingLeftBackward): Ditto.
40623        (DOM::Selection::modifyMovingLeftBackward): Ditto.
40624        (DOM::Selection::modify): Use new helpers to make this more readble.
40625        (DOM::Selection::layoutCaret): Uses new closestRenderedPosition helper to place the caret if in unrendered
40626        content.
40627        (DOM::Selection::paintCaret): Remove moveToRenderedContent. obsolete.
40628        * khtml/xml/dom_selection.h:
40629        (DOM::Selection::caretPosition): New accessor.
40630        * kwq/WebCoreBridge.mm:
40631        (-[WebCoreBridge setSelectedDOMRange:affinity:]): EAffinity no longer a member enum of Selection class.
40632
406332004-07-08  David Hyatt  <hyatt@apple.com>
40634
40635	Fix for the table layout test that failed because of a change in how innerText worked.  We need to do
40636	updateLayout now when using innerText, since the method has been changed to use line boxes in the render tree
40637	that might otherwise be out of date.
40638	
40639        Reviewed by kocienda
40640
40641        * khtml/html/html_elementimpl.cpp:
40642        (HTMLElementImpl::innerText):
40643
406442004-07-08  John Sullivan  <sullivan@apple.com>
40645
40646        Reviewed by Ken.
40647        
40648        - fixed <rdar://problem/3691569> REGRESSION (142): cmd-shift-clicking on a link 
40649        now also extends selection (even if there wasn't one before)
40650
40651        * khtml/khtml_part.cpp:
40652        (KHTMLPart::handleMousePressEventSingleClick):
40653        if there's a URL associated with the event, don't extend the selection
40654
406552004-07-08  Ken Kocienda  <kocienda@apple.com>
40656
40657        Reviewed by Vicki
40658
40659        Added some helper functions which provide strings to display in the 
40660        Xcode debugger's variable inspector window. These functions are called
40661        from the LabyrinthDataFormatter debugger plugin I just checked in to 
40662        the Labyrinth/Tools directory.
40663        
40664        Note that these functions are compiled in on Development builds only.
40665
40666        * WebCore-combined.exp:
40667        * WebCore-tests.exp: Export all the formatForDebugger symbols so the
40668        debugger program can link with them.
40669        * khtml/xml/dom2_rangeimpl.cpp:
40670        (DOM::RangeImpl::formatForDebugger):
40671        * khtml/xml/dom2_rangeimpl.h:
40672        * khtml/xml/dom_elementimpl.cpp:
40673        (ElementImpl::formatForDebugger):
40674        * khtml/xml/dom_elementimpl.h:
40675        * khtml/xml/dom_nodeimpl.cpp:
40676        * khtml/xml/dom_nodeimpl.h:
40677        * khtml/xml/dom_position.cpp:
40678        (DOM::Position::formatForDebugger):
40679        * khtml/xml/dom_position.h:
40680        * khtml/xml/dom_selection.cpp:
40681        (DOM::Selection::formatForDebugger):
40682        * khtml/xml/dom_selection.h:
40683        * khtml/xml/dom_textimpl.cpp:
40684        (TextImpl::formatForDebugger):
40685        * khtml/xml/dom_textimpl.h:
40686
406872004-07-08  John Sullivan  <sullivan@apple.com>
40688
40689        Reviewed by Vicki.
40690        
40691        - fixed <rdar://problem/3721544> crash increasing font size; 
40692        entrezeroetun.com (works in IE and Firefox)
40693
40694        * khtml/rendering/render_block.cpp:
40695        (khtml::RenderBlock::updateFirstLetter):
40696        Check for nil originalString() before dereffing
40697
406982004-07-08  David Hyatt  <hyatt@apple.com>
40699
40700	Fix for 3721453, CSS3 initial property caused crashes because the macros were not written correctly.
40701	
40702        Reviewed by john
40703
40704        * khtml/css/cssstyleselector.cpp:
40705
40706=== Safari-151 ===
40707
407082004-07-07  David Hyatt  <hyatt@apple.com>
40709
40710	Fix for 3712133, crash from first-line pseudo-style use.
40711	
40712        Reviewed by kocienda
40713
40714        * khtml/css/cssstyleselector.cpp:
40715        (khtml::CSSStyleSelector::styleForElement):
40716        * khtml/css/cssstyleselector.h:
40717        * khtml/rendering/render_object.cpp:
40718        (RenderObject::getPseudoStyle):
40719
407202004-07-07  Ken Kocienda  <kocienda@apple.com>
40721
40722        Reviewed by Hyatt
40723
40724        Fix for this bug:
40725        
40726        <rdar://problem/3716479> calling setInnerHTML during a webViewDidChange delegate call causes a crash
40727        
40728        The fix involves some rearrangement of code in TypingCommand and TypingCommandImpl.
40729        Formerly, new TypingCommands would apply themselves (which was a no-op) and then
40730        do their action in some code a way different than other commands. This type of command
40731        application is different than for all other commands since TypingCommands can be coalesced.
40732        The crash occurred as a result of the "no-op" TypingCommand having the unconsidered
40733        consequence of causing editing delegate notifications to be sent before the command 
40734        has actually run. This change takes a small step towards making TypingCommandImpl function like
40735        other commands, where the command work is done in doApply. This makes the notification
40736        happen in the right order.
40737
40738        * khtml/editing/htmlediting.cpp:
40739        (khtml::TypingCommand::TypingCommand):
40740        (khtml::TypingCommand::insertText):
40741        (khtml::TypingCommand::insertNewline):
40742        (khtml::TypingCommand::deleteKeyPressed):
40743        * khtml/editing/htmlediting.h:
40744        (khtml::TypingCommand::):
40745        * khtml/editing/htmlediting_impl.cpp:
40746        (khtml::TypingCommandImpl::TypingCommandImpl):
40747        (khtml::TypingCommandImpl::doApply):
40748        * khtml/editing/htmlediting_impl.h:
40749
407502004-07-06  Ken Kocienda  <kocienda@apple.com>
40751
40752        * khtml/html/html_tableimpl.cpp:
40753        (HTMLTableElementImpl::addChild): Added a better comment in the
40754        code I just checked in a few minutes ago.
40755
407562004-07-06  Ken Kocienda  <kocienda@apple.com>
40757
40758        Reviewed by Hyatt
40759        
40760        Fix for this bug:
40761        
40762        <rdar://problem/3672377> assertion failure in AppendNodeCommandImpl::doApply 
40763        due to non-0 exception code trying to insert a DIV markup string
40764        
40765        The solution was to revert to the code that was rolled out, and removing
40766        the child checks from NodeImpl::checkAddChild. However, this time, I added
40767        code very similar to this check into the code that runs while HTML is 
40768        being parsed to build up tables. This code relies on child-add failure
40769        to ensure the proper construction of well-formed tables (as gross as that
40770        sounds), so the check needs to be retained there. No other code seems to
40771        be so affected. Layout tests are unchanged by this patch.
40772
40773        * khtml/html/html_tableimpl.cpp:
40774        (HTMLTableElementImpl::addChild):
40775        * khtml/xml/dom_nodeimpl.cpp:
40776        (NodeImpl::checkAddChild):
40777
407782004-07-06  Ken Kocienda  <kocienda@apple.com>
40779
40780        Reviewed by John
40781        
40782        Simple change. I switched the arguments of the appendNode helper function
40783        and the AppendNodeCommand and AppendNodeCommandImpl classes. The node to 
40784        insert now comes before the parent node in the argument list. I did this
40785        to make this function match the convention of others in the HTML editing code.
40786        This was the only one that was "different" in the way that it ordered arguments.
40787        As a result, I was always looking to see that I was passing things in the right
40788        order.
40789        
40790        * khtml/editing/htmlediting.cpp:
40791        (khtml::AppendNodeCommand::AppendNodeCommand):
40792        (khtml::AppendNodeCommand::appendChild):
40793        (khtml::AppendNodeCommand::parentNode):
40794        * khtml/editing/htmlediting.h:
40795        * khtml/editing/htmlediting_impl.cpp:
40796        (khtml::CompositeEditCommandImpl::insertNodeAfter):
40797        (khtml::CompositeEditCommandImpl::insertNodeAt):
40798        (khtml::CompositeEditCommandImpl::appendNode):
40799        (khtml::AppendNodeCommandImpl::AppendNodeCommandImpl):
40800        (khtml::AppendNodeCommandImpl::~AppendNodeCommandImpl):
40801        (khtml::AppendNodeCommandImpl::doApply):
40802        (khtml::AppendNodeCommandImpl::doUnapply):
40803        (khtml::ApplyStyleCommandImpl::surroundNodeRangeWithElement):
40804        (khtml::DeleteSelectionCommandImpl::doApply):
40805        (khtml::InputNewlineCommandImpl::insertNodeAfterPosition):
40806        (khtml::InputNewlineCommandImpl::insertNodeBeforePosition):
40807        (khtml::InputTextCommandImpl::prepareForTextInsertion):
40808        * khtml/editing/htmlediting_impl.h:
40809        (khtml::AppendNodeCommandImpl::parentNode):
40810
408112004-07-06  Ken Kocienda  <kocienda@apple.com>
40812
40813        Reviewed by Trey
40814
40815        Fixed several problems with traversal classes. For one, NodeIterators treat
40816        FILTER_REJECT and FILTER_SKIP the same, since it treats the DOM tree as a
40817        flat collection of nodes free of hierarchy. The code before this change did
40818        not do this correctly. It sure pays to go back and read the specs. :)
40819        
40820        Also, the code to traverse from node to node when filters were applied was
40821        not working correctly. My first attemmpt to implement this was just plain
40822        buggy, as I discovered when I tried to write tests for my WWDC talk. I have
40823        settled on an implementation which is much simpler and worked for all the
40824        tests I threw at it. 
40825
40826        * khtml/xml/dom2_traversalimpl.cpp:
40827        (DOM::NodeIteratorImpl::findNextNode):
40828        (DOM::NodeIteratorImpl::nextNode):
40829        (DOM::NodeIteratorImpl::findPreviousNode):
40830        (DOM::NodeIteratorImpl::previousNode):
40831        (DOM::TreeWalkerImpl::parentNode):
40832        (DOM::TreeWalkerImpl::firstChild):
40833        (DOM::TreeWalkerImpl::lastChild):
40834        (DOM::TreeWalkerImpl::previousSibling):
40835        (DOM::TreeWalkerImpl::nextSibling):
40836        (DOM::TreeWalkerImpl::previousNode):
40837        (DOM::TreeWalkerImpl::nextNode):
40838        (DOM::TreeWalkerImpl::ancestorRejected):
40839        * khtml/xml/dom2_traversalimpl.h:
40840
408412004-07-06  Vicki Murley  <vicki@apple.com>
40842
40843        Reviewed by kocienda.
40844
40845	- added backColorCommand, foreColorCommand, fontNameCommand, 
40846	and fontSizeCommand
40847  
40848        * layout-tests/editing/editing.js:
40849
408502004-07-06  Trey Matteson  <trey@apple.com>
40851
40852	3716053 - www.theage.com.au has extra back/forward items due to ads
40853
40854	This turned out to be easily fixed by generalizing the fix to 3438441.  We prevent
40855	addition to the b/f list not just during an onload event, but during any non-user
40856	gesture, which includes top level script executing.
40857
40858        Reviewed by Richard.
40859
40860        * kwq/KWQKHTMLPart.mm:
40861        (KWQKHTMLPart::openURL):  Only real change - prevent adding to b/f list if not
40862	a user gesture.
40863        (KWQKHTMLPart::openURLRequest):  Rename "onLoadEvent" to "userGesture", swap sense
40864        (KWQKHTMLPart::submitForm):  Ditto
40865        (KWQKHTMLPart::urlSelected): Ditto
40866        * kwq/KWQKHTMLPartBrowserExtension.mm:
40867        (KHTMLPartBrowserExtension::createNewWindow):  Ditto
40868        * kwq/WebCoreBridge.h:
40869
408702004-07-02  Darin Adler  <darin@apple.com>
40871
40872        Reviewed by Dave.
40873
40874        - fixed half of <rdar://problem/3709244> utf-8 meta tag not parsed when page title contains angle brackets or if </meta> tag used
40875
40876        * khtml/misc/decoder.cpp: (Decoder::decode): Allow </meta> tags without deciding we
40877        are done with the header.
40878
408792004-06-30  Trey Matteson  <trey@apple.com>
40880
40881	Dragging within a web view should be allowed to start when the window isn't key.
40882
40883	A few months ago, Chris made this work, but it relied on the fact that all dragging
40884	was done in WebKit.  When WebCore got involved in dragging, it was broken.  Now we
40885	have a new scheme that gets it working again that properly involves WebCore.
40886
40887	The general idea is that when AK asks us whether to accept the first mouse and do
40888	"delayed window ordering", we must consult WC to see if we might start a drag.  In
40889	addition, instead of these drags in non-active windows being started as a special
40890	case in WK, they go through the normal WK-WC drag machinery.
40891
40892        Reviewed by John.
40893
40894        * khtml/khtml_part.cpp:
40895        (KHTMLPart::shouldDragAutoNode):  New x,y args.
40896        * khtml/khtml_part.h:
40897        * khtml/rendering/render_object.cpp:
40898        (RenderObject::draggableNode):  Pass through new x,y args.
40899        * khtml/rendering/render_object.h:
40900        * kwq/KWQKHTMLPart.h:
40901        (KWQKHTMLPart::setActivationEventNumber):  New setter.
40902        * kwq/KWQKHTMLPart.mm:
40903        (KWQKHTMLPart::KWQKHTMLPart):  Init new ivar.
40904        (KWQKHTMLPart::eventMayStartDrag):  New routine that checks if we might start
40905	a drag in response to a mouseDown.
40906        (KWQKHTMLPart::khtmlMouseMoveEvent):  Pass x,y to the routine that finds a draggable
40907	node.  This eventually gets back up to WK's _mayStartDragAtEventLocation:.
40908	Delay requirement when dragging the selection now implemented here.
40909        (KWQKHTMLPart::khtmlMouseReleaseEvent):  Must avoid changing the selection if we
40910	wind up here as part of the first click in a window (because we started handling
40911	the click to possible start a drag, but that never came through).
40912        (KWQKHTMLPart::mouseDown): Save away event timestamp.
40913        (KWQKHTMLPart::shouldDragAutoNode):  Pass location up to WK instead of the
40914	most recent event we stashed.
40915        * kwq/WebCoreBridge.h:
40916        * kwq/WebCoreBridge.mm:
40917        (-[WebCoreBridge setActivationEventNumber:]):  Trivial glue.
40918        (-[WebCoreBridge eventMayStartDrag:]):  Ditto.
40919
409202004-06-29  Trey Matteson  <trey@apple.com>
40921
40922	Need to tighten up JS error checking for requesting drag props
40923	in the wrong cases.
40924
40925        Reviewed by John.
40926
40927        * khtml/ecma/kjs_events.cpp:
40928        (Clipboard::getValueProperty):  Assert if someone somehow set
40929	dropEffect or effectAllowed and it's a copy/paste clipboard
40930	instead of a dragging clipboard.
40931        (Clipboard::putValue):  Don't let anyone set dropEffect or
40932	effectAllowed on a copy/paste clipboard.
40933        (ClipboardProtoFunc::tryCall):  Disallow setting dragImage on
40934	a copy/paste clipboard.
40935
409362004-06-29  Trey Matteson  <trey@apple.com>
40937
40938	DHTML dragging - source should have access to the operation chosen
40939	by the destination.
40940
40941        Reviewed by John
40942
40943        * kwq/KWQKHTMLPart.h:
40944        * kwq/KWQKHTMLPart.mm:
40945        (KWQKHTMLPart::dragSourceEndedAt):  Set the destination's operation
40946	on the clipboard.
40947        * kwq/WebCoreBridge.mm:
40948        (-[WebCoreBridge dragExitedWithDraggingInfo:]):  For completeness
40949	we set the source op for the ondragexit event.
40950        (-[WebCoreBridge concludeDragForDraggingInfo:]):  Ditto for the
40951	drop event.
40952        (-[WebCoreBridge dragSourceEndedAt:operation:]):  Pass through of operation.
40953
409542004-06-24  Trey Matteson  <trey@apple.com>
40955
40956	3710422 - REGRESSION: Safari crashes trying to send onbeforecut event at about://blank
40957
40958	Simple fix - don't try to send the event to the body element if we have no body element.
40959
40960        Reviewed by John
40961
40962        * kwq/KWQKHTMLPart.mm:
40963        (KWQKHTMLPart::dispatchCPPEvent):
40964
409652004-06-24  Trey Matteson  <trey@apple.com>
40966
40967	3704950	drag image in DB ConfigBar has horizontal graphics turd	WebCore JavaScript
40968
40969	When we generate a drag image (or a selection image too, for that matter) we
40970	translate the CTM using a CG call.  Later, WebImageRenderer adjusts the pattern
40971	phase based on the CTM of the focused view, which doesn't include our translate.
40972	So we must inform WebKit about the additional phase adjustment.
40973
40974        Reviewed by Richard
40975
40976        * kwq/KWQKHTMLPart.mm:  Tell WebKit about the phase adjustment.
40977        (KWQKHTMLPart::imageFromRect):
40978        * kwq/WebCoreGraphicsBridge.h:
40979        * kwq/WebCoreGraphicsBridge.m:
40980        (-[WebCoreGraphicsBridge setAdditionalPatternPhase:]):  New routine to receive
40981	the phase adjustment.
40982
409832004-06-24  Trey Matteson  <trey@apple.com>
40984
40985	3679986 - screenX and screenY are flipped and relative to the bottom left of the WebView, rather than the screen
40986	3699510 - synthesized click events have bogus screen coords
40987
40988        Reviewed by Darin.
40989
40990        * khtml/khtmlview.cpp:
40991        (KHTMLView::dispatchDragEvent):  Generate screen coords for drag events using new func.
40992        (KHTMLView::dispatchMouseEvent):   Ditto.
40993        * khtml/khtmlview.h:
40994        * khtml/xml/dom_nodeimpl.cpp:
40995        (NodeImpl::dispatchMouseEvent):  Comment tricky semantics.
40996	Calc screen coords in apple-specific way.
40997        * kwq/KWQKHTMLView.mm:
40998        (KHTMLView::viewportToGlobal):  Passthrough to window widget.
40999        * kwq/KWQScrollView.mm:
41000        * kwq/KWQWindowWidget.h:
41001        * kwq/KWQWindowWidget.mm:
41002        (KWQWindowWidget::mapToGlobal):  Call former code factored to new method below.
41003        (KWQWindowWidget::viewportToGlobal):  New method to convert "viewport" (which for us
41004	really means NSWindow coords) to screen coords.
41005
410062004-06-24  Trey Matteson  <trey@apple.com>
41007
41008	3693420 - onbeforecut and onbeforepaste need real implementaion
41009
41010        Reviewed by Chris.
41011
41012        * kwq/KWQKHTMLPart.h:
41013        * kwq/KWQKHTMLPart.mm:
41014        (KWQKHTMLPart::mayCut):  Dispatch event to DHTML.
41015        (KWQKHTMLPart::mayCopy):  Ditto
41016        (KWQKHTMLPart::mayPaste):  Ditto
41017        (KWQKHTMLPart::tryCut):  No more need to send fake onbefore event
41018        (KWQKHTMLPart::tryCopy):  Ditto
41019        (KWQKHTMLPart::tryPaste): Ditto
41020        * kwq/WebCoreBridge.h:
41021        * kwq/WebCoreBridge.mm:
41022        (-[WebCoreBridge mayDHTMLCut]):  Standard glue
41023        (-[WebCoreBridge mayDHTMLCopy]):  Ditto
41024        (-[WebCoreBridge mayDHTMLPaste]):  Ditto
41025
410262004-06-24  Darin Adler  <darin@apple.com>
41027
41028        Reviewed by John.
41029
41030        - fixed <rdar://problem/3709385> Find on page doesn't find a string at the very end of the file
41031
41032        * khtml/misc/khtml_text_operations.cpp: (khtml::findPlainText): Rearrange loop to avoid an early
41033        exit once we have all the characters we need, but are at the end of the range we are searching.
41034
41035        - fixed <rdar://problem/3102271>: (text areas have scroll bars even when they don't need them)
41036        - fixed <rdar://problem/3665430>: (horizontal scroll bar of text area does not show, even when text is wide in "no wrap" mode)
41037
41038        * kwq/KWQTextArea.mm:
41039        (-[KWQTextArea _configureTextViewForWordWrapMode]): Added. Helper method that sets up the
41040        view for a new word wrap mode.
41041        (-[KWQTextArea _createTextView]): Moved much of the code inside _configureTextViewForWordWrapMode.
41042        (-[KWQTextArea _frameSizeChanged]): Added. Method shared by setFrame: and initWithFrame: to
41043        avoid duplicate code that was there before. The old code also had redundant code to update
41044        the text container size, but NSText handles that automatically.
41045        (-[KWQTextArea initWithFrame:]): Set wrap to YES by default, which is the key to fixing bug 3665430.
41046        Call setAutohidesScrollers:YES, which fixes bug 3102271. Also call the new _frameSizeChanged method.
41047        (-[KWQTextArea setWordWrap:]): Call _configureTextViewForWordWrapMode instead of trying
41048        to do the work here. The old version did both too little and too much.
41049        (-[KWQTextArea setFrame:]): Call _frameSizeChanged instead of trying to do the work here.
41050        The old version did both too little and too much.
41051
410522004-06-24  John Sullivan  <sullivan@apple.com>
41053
41054        Darin made this change on my machine; I reviewed it.
41055        
41056        - fixed <rdar://problem/3698333> Find on page doesn't find a particular string 
41057        with a newline in the source
41058
41059        * khtml/misc/khtml_text_operations.cpp:
41060        (khtml::TextIterator::handleTextBox):
41061        Clear m_lastTextNodeEndedWithCollapsedSpace after taking it into account.
41062
410632004-06-23  Richard Williamson   <rjw@apple.com>
41064
41065	Implemented changes for latest npruntime.h.
41066
41067        Reviewed by Chris.
41068
41069        * kwq/KWQKHTMLPart.h:
41070        * kwq/KWQKHTMLPart.mm:
41071        (KWQKHTMLPart::KWQKHTMLPart):
41072        (KWQKHTMLPart::windowScriptNPObject):
41073        (KWQKHTMLPart::getEmbedInstanceForView):
41074        * kwq/WebCoreBridge.h:
41075        * kwq/WebCoreBridge.mm:
41076        (-[WebCoreBridge windowScriptObject]):
41077        (-[WebCoreBridge windowScriptNPObject]):
41078
410792004-06-22  Richard Williamson   <rjw@apple.com>
41080
41081	Fixed <rdar://problem/3707162>: accessing embeds[] plug-in interface may crash
41082
41083	embedInstance was uninitialized.
41084
41085        Reviewed by Chris.
41086
41087        * khtml/html/html_objectimpl.cpp:
41088        (HTMLEmbedElementImpl::HTMLEmbedElementImpl):
41089
410902004-06-18  John Sullivan  <sullivan@apple.com>
41091
41092        Reviewed by Darin
41093        
41094        - fixed <rdar://problem/3534851> Pop up windows not showing up within SAP's 
41095        BW Module (changing location.href on new window created by window.open)
41096
41097        * khtml/khtml_part.cpp:
41098        (KHTMLPart::scheduleRedirection):
41099        allow new redirect to win if delay <= current delay, not just <
41100
41101=== WebCore-146.1 ===
41102
411032004-06-18  Trey Matteson  <trey@apple.com>
41104
41105	3702053 - DHTML dragging destination can't control the cursor (by setting the drop operation)
41106
41107	Fallout from security work, but an easy fix.
41108
41109        Reviewed by Darin
41110
41111        * kwq/KWQClipboard.mm:
41112        (KWQClipboard::setDropEffect):  Allow dest side to set dropEffect.
41113
411142004-06-18  Darin Adler  <darin@apple.com>
41115
41116        Reviewed by John.
41117
41118        - re-fixed <rdar://problem/3701893> show expert preferences notes in xcode causes crash (in EllipsisBox code)
41119
41120        * khtml/rendering/render_block.cpp: (khtml::RenderBlock::paintEllipsisBoxes):
41121        Check !isInlineFlow rather than checking hasMarkupTruncation. Otherwise, we break
41122        plain old non-markup truncation.
41123
411242004-06-18  Darin Adler  <darin@apple.com>
41125
41126        Reviewed by John.
41127
41128        - fixed <rdar://problem/3701893> show expert preferences notes in xcode causes crash (in EllipsisBox code)
41129
41130        * khtml/rendering/render_block.cpp: (khtml::RenderBlock::paintEllipsisBoxes):
41131        Only walk the ellipsis list if hasMarkupTruncation is true.
41132
41133=== Safari-146 ===
41134
411352004-06-17  Richard Williamson   <rjw@apple.com>
41136
41137	Fixed <rdar://problem/3698867> setting the canvas or parent to display:none and updating the causes a nil-deref
41138
41139	Ensured that we have a renderer before rendering.
41140
41141        Reviewed by John.
41142
41143        * khtml/ecma/kjs_html.cpp:
41144        (KJS::Context2DFunction::tryCall):
41145
411462004-06-17  David Hyatt  <hyatt@apple.com>
41147
41148	Fix for 3674601, "Read More..." links should trail articles in Emerson.
41149	
41150        Reviewed by darin
41151
41152        * khtml/rendering/bidi.cpp:
41153        (khtml::RenderBlock::layoutInlineChildren):
41154        (khtml::RenderBlock::deleteEllipsisLineBoxes):
41155        (khtml::RenderBlock::checkLinesForTextOverflow):
41156        * khtml/rendering/render_block.cpp:
41157        (khtml:::RenderFlow):
41158        (khtml::RenderBlock::paintEllipsisBoxes):
41159        (khtml::RenderBlock::nodeAtPoint):
41160        (khtml::shouldCheckLines):
41161        (khtml::getLineAtIndex):
41162        (khtml::getHeightForLineCount):
41163        (khtml::RenderBlock::lineAtIndex):
41164        (khtml::RenderBlock::lineCount):
41165        (khtml::RenderBlock::heightForLineCount):
41166        (khtml::RenderBlock::clearTruncation):
41167        * khtml/rendering/render_block.h:
41168        (khtml::RenderBlock::setHasMarkupTruncation):
41169        (khtml::RenderBlock::hasMarkupTruncation):
41170        * khtml/rendering/render_flexbox.cpp:
41171        (khtml::RenderFlexibleBox::layoutVerticalBox):
41172        * khtml/rendering/render_line.cpp:
41173        (khtml::EllipsisBox::m_str):
41174        (khtml::InlineBox::adjustPosition):
41175        (khtml::InlineFlowBox::adjustPosition):
41176        (khtml::InlineFlowBox::clearTruncation):
41177        (khtml::EllipsisBox::paint):
41178        (khtml::EllipsisBox::nodeAtPoint):
41179        (khtml::RootInlineBox::clearTruncation):
41180        (khtml::RootInlineBox::placeEllipsis):
41181        (khtml::RootInlineBox::paintEllipsisBox):
41182        (khtml::RootInlineBox::hitTestEllipsisBox):
41183        (khtml::RootInlineBox::adjustPosition):
41184        (khtml::RootInlineBox::childRemoved):
41185        * khtml/rendering/render_line.h:
41186        (khtml::InlineBox::clearTruncation):
41187        * khtml/rendering/render_text.cpp:
41188        * khtml/rendering/render_text.h:
41189        (khtml::InlineTextBox::clearTruncation):
41190
411912004-06-17  Trey Matteson  <trey@apple.com>
41192
41193	3698514 - coordinates in ondragstart and ondrag events are wrong
41194
41195	This part fixes the ondragstart coords.  We salt away the window-based mouseDown
41196	location, since we need that when we dispatch the ondragstart event.  Previously
41197	we were errantly using a mouseDown point that had already been converted to view
41198	coords, and then the dispatch converted it again.
41199
41200        Reviewed by Maciej.
41201
41202        * kwq/KWQKHTMLPart.h:
41203        * kwq/KWQKHTMLPart.mm:
41204        (KWQKHTMLPart::khtmlMouseMoveEvent):  Use window based mouse event coords to dispatch event.
41205        (KWQKHTMLPart::mouseDown):  Save window based mouse event coords .
41206
412072004-06-16  David Hyatt  <hyatt@apple.com>
41208
41209	Fix for 3596620, implement a subset of CSS3 text truncation for Emerson.
41210	
41211        Reviewed by mjs
41212
41213        * khtml/rendering/bidi.cpp:
41214        (khtml::RenderBlock::checkLinesForTextOverflow):
41215        * khtml/rendering/font.cpp:
41216        (Font::checkSelectionPoint):
41217        * khtml/rendering/font.h:
41218        * khtml/rendering/render_block.cpp:
41219        (khtml::RenderBlock::paintObject):
41220        (khtml::RenderBlock::paintFloats):
41221        (khtml::RenderBlock::paintEllipsisBoxes):
41222        * khtml/rendering/render_block.h:
41223        * khtml/rendering/render_line.cpp:
41224        (InlineBox::canAccommodateEllipsis):
41225        (InlineBox::placeEllipsisBox):
41226        (InlineFlowBox::paintDecorations):
41227        (InlineFlowBox::placeEllipsisBox):
41228        (EllipsisBox::paint):
41229        (RootInlineBox::placeEllipsis):
41230        (RootInlineBox::placeEllipsisBox):
41231        * khtml/rendering/render_line.h:
41232        (khtml::EllipsisBox::m_str):
41233        (khtml::RootInlineBox::ellipsisBox):
41234        * khtml/rendering/render_text.cpp:
41235        (InlineTextBox::placeEllipsisBox):
41236        (InlineTextBox::paintDecoration):
41237        (InlineTextBox::offsetForPosition):
41238        (RenderText::positionForCoordinates):
41239        (RenderText::paint):
41240        * khtml/rendering/render_text.h:
41241        * kwq/KWQFontMetrics.h:
41242        * kwq/KWQFontMetrics.mm:
41243        (QFontMetrics::checkSelectionPoint):
41244        * kwq/WebCoreTextRenderer.h:
41245
41246=== WebCore-145.1 ===
41247
412482004-06-16  Maciej Stachowiak  <mjs@apple.com>
41249
41250        Reviewed by John.
41251
41252	<rdar://problem/3697602> REGRESSION (144.2-TOT) Selection highlight does not draw
41253
41254        * khtml/rendering/render_canvas.cpp:
41255        (RenderCanvas::setSelection):
41256
41257=== Safari-145 ===
41258
412592004-06-16  Richard Williamson   <rjw@apple.com>
41260
41261	Fixed 3695730:  Added support for embeds[], much like
41262	applets[], to allow access to a plugin's exported interface.
41263
41264        Reviewed by Chris.
41265
41266        * khtml/dom/html_document.cpp:
41267        (HTMLDocument::embeds):
41268        * khtml/dom/html_document.h:
41269        * khtml/ecma/kjs_dom.cpp:
41270        (KJS::getRuntimeObject):
41271        * khtml/ecma/kjs_html.cpp:
41272        (KJS::HTMLDocument::tryGet):
41273        (KJS::HTMLElement::tryGet):
41274        (KJS::HTMLCollection::tryGet):
41275        (KJS::HTMLCollection::getNamedItems):
41276        * khtml/ecma/kjs_html.h:
41277        (KJS::HTMLDocument::):
41278        * khtml/ecma/kjs_html.lut.h:
41279        (KJS::):
41280        * khtml/html/html_miscimpl.cpp:
41281        (HTMLCollectionImpl::calcLength):
41282        (HTMLCollectionImpl::getItem):
41283        (HTMLCollectionImpl::getNamedItem):
41284        * khtml/html/html_miscimpl.h:
41285        (DOM::HTMLCollectionImpl::):
41286        * khtml/html/html_objectimpl.cpp:
41287        (HTMLEmbedElementImpl::getEmbedInstance):
41288        * khtml/html/html_objectimpl.h:
41289        * kwq/KWQKHTMLPart.h:
41290        * kwq/KWQKHTMLPart.mm:
41291        (KWQKHTMLPart::getEmbedInstanceForView):
41292
412932004-06-15  Maciej Stachowiak  <mjs@apple.com>
41294
41295        Reviewed by Dave.
41296
41297	<rdar://problem/3695907>: (can't enable selection inside parent where it is disabled via CSS)
41298
41299        * khtml/css/cssparser.cpp:
41300        (CSSParser::parseValue): 
41301        * khtml/css/cssstyleselector.cpp:
41302        (khtml::CSSStyleSelector::applyProperty):
41303        * khtml/rendering/render_object.cpp:
41304        (RenderObject::shouldSelect):
41305        * khtml/rendering/render_style.h:
41306        (khtml::):
41307        (khtml::RenderStyle::userSelect):
41308        (khtml::RenderStyle::setUserSelect):
41309        (khtml::RenderStyle::initialUserSelect):
41310
413112004-06-15  David Hyatt  <hyatt@apple.com>
41312
41313	Initial impl of the EllipsisBox.  This code just gets the box created and gets it placed vertically.  The next
41314	stage will be to position the box horizontally as well.
41315	
41316        Reviewed by trey
41317
41318        * khtml/rendering/bidi.cpp:
41319        (khtml::RenderBlock::checkLinesForTextOverflow):
41320        * khtml/rendering/render_line.cpp:
41321        (RootInlineBox::placeEllipsis):
41322        * khtml/rendering/render_line.h:
41323        (khtml::EllipsisBox::m_str):
41324
413252004-06-15  David Hyatt  <hyatt@apple.com>
41326
41327	Implement canAccommodateEllipsis.  The basic idea is that everything on a line will allow an ellipsis to be
41328	drawn on top of it unless it's a replaced element.  Then, if the replaced element overlaps, the ellipsis won't
41329	be allowed.
41330	
41331        Reviewed by john
41332
41333        * khtml/rendering/bidi.cpp:
41334        (khtml::RenderBlock::checkLinesForTextOverflow):
41335        * khtml/rendering/render_line.cpp:
41336        (InlineBox::closestLeafChildForXPos):
41337        (InlineBox::canAccommodateEllipsis):
41338        (InlineFlowBox::canAccommodateEllipsis):
41339        (RootInlineBox::canAccommodateEllipsis):
41340        * khtml/rendering/render_line.h:
41341
413422004-06-15  Vicki Murley <vicki@apple.com>
41343
41344	- added a few layout tests, rdar://3694510
41345
41346        * layout-tests/editing/deleting/delete-image-004-expected.txt: Added.
41347        * layout-tests/editing/deleting/delete-image-004.html: Added.
41348        * layout-tests/editing/selection/extend-by-character-006-expected.txt: Added.
41349        * layout-tests/editing/selection/extend-by-character-006.html: Added.
41350
413512004-06-15  Trey Matteson  <trey@apple.com>
41352
41353	Dragging tweak:  We pass the mouse down coords instead of the
41354	latest mouse drag coords to the ondragstart event.  This makes it
41355	easy for the client to figure the correct drag image offset,
41356	whereas the mouse drag location is next to useless for that.
41357
41358        Reviewed by Louch
41359
41360        * kwq/KWQKHTMLPart.mm:
41361        (KWQKHTMLPart::khtmlMouseMoveEvent):
41362
413632004-06-15  Maciej Stachowiak  <mjs@apple.com>
41364
41365        Reviewed by Darin.
41366
41367	<rdar://problem/3685236>: (Safari does not support onselectstart event handler)
41368
41369        * khtml/ecma/kjs_dom.cpp:
41370        (DOMNode::getValueProperty):
41371        (DOMNode::putValue):
41372        * khtml/ecma/kjs_dom.h:
41373        (KJS::DOMNode::):
41374        * khtml/ecma/kjs_dom.lut.h:
41375        (KJS::):
41376        * khtml/html/html_elementimpl.cpp:
41377        (HTMLElementImpl::parseHTMLAttribute):
41378        * khtml/misc/htmlattrs.c:
41379        (hash_attr):
41380        (findAttr):
41381        * khtml/misc/htmlattrs.h:
41382        * khtml/misc/htmlattrs.in:
41383        * khtml/rendering/render_object.cpp:
41384        (RenderObject::shouldSelect):
41385        * khtml/xml/dom2_eventsimpl.cpp:
41386        (EventImpl::typeToId):
41387        (EventImpl::idToType):
41388        * khtml/xml/dom2_eventsimpl.h:
41389        (DOM::EventImpl::):
41390
413912004-06-15  Maciej Stachowiak  <mjs@apple.com>
41392
41393        Reviewed by Darin.
41394
41395	Fix crash with last checkin.
41396
41397        * khtml/ecma/kjs_binding.cpp:
41398        (ScriptInterpreter::domObjectsPerDocument): check the same
41399	property we want to initialize.
41400
414012004-06-15  Maciej Stachowiak  <mjs@apple.com>
41402
41403        Reviewed by Darin.
41404
41405	<rdar://problem/3685309>: (properties not shared for JS wrappers of same DOM object, accessed from different frames)
41406
41407        * khtml/ecma/kjs_binding.cpp:
41408        (ScriptInterpreter::domObjects):
41409        (ScriptInterpreter::domObjectsPerDocument):
41410        (ScriptInterpreter::ScriptInterpreter):
41411        (ScriptInterpreter::forgetDOMObject):
41412        (ScriptInterpreter::getDOMObjectForDocument):
41413        (ScriptInterpreter::putDOMObjectForDocument):
41414        (ScriptInterpreter::deleteDOMObjectsForDocument):
41415        (ScriptInterpreter::mark):
41416        (ScriptInterpreter::forgetDOMObjectsForDocument):
41417        (ScriptInterpreter::updateDOMObjectDocument):
41418        * khtml/ecma/kjs_binding.h:
41419        (KJS::ScriptInterpreter::getDOMObject):
41420        (KJS::ScriptInterpreter::putDOMObject):
41421        (KJS::ScriptInterpreter::deleteDOMObject):
41422
414232004-06-15  Darin Adler  <darin@apple.com>
41424
41425        - rolled out Ken's fix for <rdar://problem/3672377> assertion failure in AppendNodeCommandImpl::doApply due to non-0 exception code trying to insert a DIV markup string
41426          (it was making most layout tests fail)
41427
41428        * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::checkAddChild): Rolled check back in.
41429
414302004-06-15  David Hyatt  <hyatt@apple.com>
41431
41432	Add a truncation variable to text run boxes that will eventually be used to know how to cut out some of the glyphs when
41433	rendering.
41434	
41435        Reviewed by darin
41436
41437        * khtml/rendering/render_text.cpp:
41438        (RenderText::clearTextOverflowTruncation):
41439        * khtml/rendering/render_text.h:
41440        (khtml::InlineTextBox:::InlineRunBox):
41441        (khtml::InlineTextBox::clearTruncation):
41442
414432004-06-14  Darin Adler  <darin@apple.com>
41444
41445        Reviewed by Maciej.
41446
41447        - fixed some things for GC that Patrick missed, or that happened after the branch
41448
41449        * kwq/DOM-CSS.mm:
41450        (-[DOMStyleSheet finalize]): Added.
41451        (-[DOMStyleSheetList finalize]): Added.
41452        (-[DOMCSSStyleSheet finalize]): Added.
41453        (-[DOMMediaList finalize]): Added.
41454        (-[DOMCSSRuleList finalize]): Added.
41455        (-[DOMCSSRule finalize]): Added.
41456        (-[DOMCSSStyleDeclaration finalize]): Added.
41457        (-[DOMCSSValue finalize]): Added.
41458        (-[DOMRGBColor finalize]): Added.
41459        (-[DOMRect finalize]): Added.
41460        (-[DOMCounter finalize]): Added.
41461        * kwq/DOM.mm:
41462        (-[DOMObject finalize]): Added.
41463        (-[DOMNode finalize]): Added.
41464        (-[DOMNamedNodeMap finalize]): Added.
41465        (-[DOMNodeList finalize]): Added.
41466        (-[DOMImplementation finalize]): Added.
41467        (-[DOMRange finalize]): Added.
41468        (-[DOMNodeFilter finalize]): Added.
41469        (-[DOMNodeIterator finalize]): Added.
41470        (-[DOMTreeWalker dealloc]): Removed unneeded nil check.
41471        (-[DOMTreeWalker finalize]): Added.
41472        * kwq/DOMHTML.mm:
41473        (-[DOMHTMLCollection finalize]): Added.
41474        (-[DOMHTMLOptionsCollection finalize]): Added.
41475        * kwq/KWQClipboard.mm:
41476        (KWQClipboard::KWQClipboard): Use KWQRetain instead of retain.
41477        (KWQClipboard::~KWQClipboard): Use KWQRelease instead of release.
41478        * kwq/KWQEditCommand.mm:
41479        (-[KWQEditCommand finalize]): Added.
41480        * kwq/KWQFont.mm:
41481        (QFont::~QFont): Use KWQRelease instead of release.
41482        * kwq/KWQKHTMLPart.mm:
41483        (KWQKHTMLPart::keyEvent): Use KWQRetain instead of retain, and KWQRelease instead of release.
41484        (KWQKHTMLPart::mouseDown): Use KWQRetain instead of retain, and KWQRelease instead of release.
41485        (KWQKHTMLPart::mouseDragged): Use KWQRetain instead of retain, and KWQRelease instead of release.
41486        (KWQKHTMLPart::mouseUp): Use KWQRetain instead of retain, and KWQRelease instead of release.
41487        (KWQKHTMLPart::mouseMoved): Use KWQRetain instead of retain, and KWQRelease instead of release.
41488        (KWQKHTMLPart::sendContextMenuEvent): Use KWQRetain instead of retain, and KWQRelease instead of release.
41489        * kwq/KWQPageState.mm:
41490        (-[KWQPageState finalize]): Added. Filed <rdar://problem/3694163> about the fact that this is not right.
41491        * kwq/KWQTimer.mm:
41492        (-[KWQSingleShotTimerTarget finalize]): Added.
41493        * kwq/WebCoreBridge.mm:
41494        (-[WebCoreBridge finalize]): Added. Filed <rdar://problem/3694165> about the fact that this is not right.
41495
414962004-06-15  David Hyatt  <hyatt@apple.com>
41497
41498	Initial work on text truncation.  Working top-down, I think I've made all the changes I will need to bidi.cpp
41499	and to the block code itself.  The rest of the code can be concentrated in the render_line and render_text files.
41500	
41501        Reviewed by darin
41502
41503        * khtml/rendering/bidi.cpp:
41504        (khtml::RenderBlock::layoutInlineChildren):
41505        (khtml::RenderBlock::findNextLineBreak):
41506        (khtml::RenderBlock::deleteEllipsisLineBoxes):
41507        (khtml::RenderBlock::checkLinesForTextOverflow):
41508        * khtml/rendering/render_block.h:
41509        * khtml/rendering/render_line.cpp:
41510        (RootInlineBox::detach):
41511        (RootInlineBox::detachEllipsisBox):
41512        (RootInlineBox::canAccommodateEllipsis):
41513        (RootInlineBox::placeEllipsis):
41514        * khtml/rendering/render_line.h:
41515        (khtml::RootInlineBox::RootInlineBox):
41516        * khtml/rendering/render_text.cpp:
41517        (RenderText::clearTextOverflowTruncation):
41518        * khtml/rendering/render_text.h:
41519
415202004-06-14  Trey Matteson  <trey@apple.com>
41521
41522	3692690 - REGRESSION: canceling drag from WebView cause link to load
41523	Just need to take extra care to cancel any click handling in
41524	all cases once we're committed to doing the drag.
41525
41526        Reviewed by Darin.
41527
41528        * kwq/KWQKHTMLPart.mm:
41529        (KWQKHTMLPart::khtmlMouseMoveEvent):  Call invalidateClick once
41530	we're past the hysteresis point, and definitely going to try
41531	to start a drag and drop.
41532
415332004-06-14  Darin Adler  <darin@apple.com>
41534
41535        - fixed crash on boot
41536
41537        * kwq/KWQFoundationExtras.h: (KWQRetainNSRelease):
41538        Fixed return value of this method; was uninitialized.
41539
415402004-06-14  Trey Matteson  <trey@apple.com>
41541
41542	Dashboard wants access to pastboard data during the drag gesture.
41543
41544	We address this need be allowing docs that are local files to access the
41545	pasteboard data during a drag, while other pages can only get at the types
41546	list until the drop happens.  This is deemed safe because local files already
41547	have such broad super powers.
41548
41549        Reviewed by Maciej.
41550
41551        * kwq/KWQKURL.h:
41552        * kwq/KWQKURL.mm:
41553        (KURL::isLocalFile):  Implement this QT method to look for the file scheme.
41554        * kwq/WebCoreBridge.mm:
41555        (-[WebCoreBridge dragOperationForDraggingInfo:]):  Use more relaxed clipboard
41556	security for local file pages.
41557        (-[WebCoreBridge dragExitedWithDraggingInfo:]):  Ditto.
41558
415592004-06-14  Darin Adler  <darin@apple.com>
41560
41561        Reviewed by me, code changes by Patrick Beard.
41562
41563        - fixed <rdar://problem/3671507>: (WebKit should adopt GC changes and compile with GC enabled)
41564
41565        * WebCore.pbproj/project.pbxproj: Added KWQFoundationExtras.h.
41566        * kwq/KWQFoundationExtras.h: Added.
41567        (KWQRetain): Cover for CFRetain that is tolerant of nil.
41568        (KWQRelease): Cover for CFRelease that is tolerant of nil.
41569        (KWQRetainNSRelease): Combination of a CFRetain and an -[NSObject release] that is tolerant of nil.
41570        Also includes a declaration of finalize so we can call [super finalize] without warnings on Panther.
41571
41572        * kwq/DOM.mm:
41573        (ObjCNodeFilterCondition::ObjCNodeFilterCondition): Use CFRetain instead of retain.
41574        (ObjCNodeFilterCondition::~ObjCNodeFilterCondition): Use CFRelease instead of release.
41575        * kwq/KWQComboBox.mm:
41576        (QComboBox::~QComboBox): Use KWQRelease instead of release.
41577        (QComboBox::setFont): Use KWQRelease instead of release.
41578        (QComboBox::labelFont): Use KWQRetain instead of retain.
41579        * kwq/KWQCursor.mm:
41580        (QCursor::QCursor): Use KWQRetain instead of retain.
41581        (QCursor::~QCursor): Use KWQRelease instead of release.
41582        (QCursor::operator=): More of the same.
41583        * kwq/KWQFileButton.mm:
41584        (KWQFileButton::KWQFileButton): Use KWQRetainNSRelease to retain a newly-allocated object.
41585        (KWQFileButton::~KWQFileButton): Use CFRelease instead of release.
41586        * kwq/KWQFont.mm:
41587        (QFont::QFont): Use KWQRetain instead of retain.
41588        (QFont::operator=): More of the same.
41589        (QFont::setFamily): Use KWQRelease instead of release.
41590        (QFont::setFirstFamily): Use KWQRelease instead of release.
41591        (QFont::setPixelSize): Use KWQRelease instead of release.
41592        (QFont::setWeight): Use KWQRelease instead of release.
41593        (QFont::setItalic): Use KWQRelease instead of release.
41594        (QFont::getNSFont): Use KWQRetain instead of retain.
41595        * kwq/KWQFontMetrics.mm:
41596        (QFontMetricsPrivate::~QFontMetricsPrivate): Use KWQRelease instead of release.
41597        (QFontMetricsPrivate::getRenderer): Use KWQRetain instead of retain.
41598        (QFontMetricsPrivate::setFont): Use KWQRelease instead of release.
41599        * kwq/KWQKHTMLPart.mm:
41600        (KWQKHTMLPart::~KWQKHTMLPart): Use KWQRelease instead of release.
41601        (KWQKHTMLPart::clearRecordedFormValues): Use KWQRelease instead of release.
41602        (KWQKHTMLPart::recordFormValue): Use KWQRetainNSRelease and use KWQRetain instead of retain.
41603        (KWQKHTMLPart::windowScriptObject): Use KWQRetainNSRelease.
41604        * kwq/KWQKJobClasses.mm:
41605        (KIO::TransferJobPrivate::TransferJobPrivate): Use KWQRetainNSRelease.
41606        (KIO::TransferJobPrivate::~TransferJobPrivate): Use KWQRelease instead of release.
41607        (KIO::TransferJob::setLoader): More of the same.
41608        * kwq/KWQLoader.mm:
41609        (KWQRetainResponse): Use KWQRetain instead of retain.
41610        (KWQReleaseResponse): Use KWQRelease instead of release.
41611        * kwq/KWQPainter.mm:
41612        (QPainterPrivate::~QPainterPrivate): Use KWQRelease instead of release.
41613        (QPainter::_updateRenderer): More of the same.
41614        (QPainter::initFocusRing): Use KWQRetainNSRelease.
41615        (QPainter::clearFocusRing): Use KWQRelease instead of release.
41616        * kwq/KWQPixmap.mm:
41617        (QPixmap::QPixmap): Use KWQRetain instead of retain.
41618        (QPixmap::~QPixmap): Use KWQRelease instead of release.
41619        (QPixmap::receivedData): Use KWQRetain instead of retain.
41620        (QPixmap::resize): Use KWQRetainNSRelease and use KWQRelease instead of release.
41621        (QPixmap::operator=): More of the same.
41622        * kwq/KWQRegion.mm:
41623        (QRegion::QRegion): Use KWQRetain instead of retain.
41624        (QRegion::~QRegion): Use KWQRelease instead of release.
41625        (QRegion::operator=): More of the same.
41626        * kwq/KWQTimer.mm:
41627        (QTimer::start): Use KWQRetain instead of retain.
41628        (QTimer::stop): Use KWQRelease instead of release.
41629        (QTimer::fire): Use KWQRelease instead of release.
41630        * kwq/KWQWidget.mm:
41631        (QWidget::QWidget): Use KWQRetain instead of retain.
41632        (QWidget::~QWidget): Use KWQRelease instead of release.
41633        (QWidget::setView): More of the same.
41634        * kwq/WebCoreSettings.mm: (-[WebCoreSettings finalize]):
41635        Delete the storage here, as well as in dealloc.
41636
416372004-06-14  Maciej Stachowiak  <mjs@apple.com>
41638
41639        Reviewed by Trey.
41640
41641	<rdar://problem/3693818>: (Safari should use CG calls for circle drawing for better performance)
41642
41643	* kwq/KWQPainter.mm:
41644        (QPainter::drawEllipse): Use CG calls instead of NS calls for faster circle drawing.
41645        (QPainter::drawArc): Ditto.
41646
416472004-06-14  Ken Kocienda  <kocienda@apple.com>
41648
41649        Reviewed by Vicki
41650
41651        Fix for this bug:
41652        
41653        <rdar://problem/3690115> Crash deleting text out of iChat's profile (an editable Webview)
41654
41655        * khtml/html/html_elementimpl.cpp:
41656        (HTMLElementImpl::isFocusable): Added null-check of parent node before deref'ing it.
41657
416582004-06-14  Trey Matteson  <trey@apple.com>
41659
41660	Two tweaks to recently added "drag" pseudo-class, as suggested by
41661	Dave.  The class is renamed to "-khtml-drag", and we update layout
41662	when using it, instead of only updating styles.
41663
41664        Reviewed by hyatt.
41665
41666        * khtml/css/css_base.cpp:
41667        (CSSSelector::extractPseudoType):
41668        * kwq/KWQKHTMLPart.mm:
41669        (KWQKHTMLPart::snapshotDragImage):
41670
416712004-06-13  Trey Matteson  <trey@apple.com>
41672
41673	Support for DHTML cut/copy/paste.  We now support oncut, oncopy, onpaste.  The events
41674	are sent to the first node in the selection, or else the body.  Current holes are
41675	that we do not send events for operations in text fields or text areas (because it
41676	is hard to get the right hooks into the AppKit).
41677
41678	We also send onbeforecut, onbeforecopy, onbeforepaste before the other events, which
41679	isn't really WinIE compatible, but is close.  WinIE uses these to enable cut/paste
41680	menu items in its UI.  DB doesn't need this for now.
41681
41682        Reviewed by Chris
41683
41684        * khtml/ecma/kjs_dom.cpp:
41685        (DOMNode::getValueProperty):  Boilerplate for new events
41686        (DOMNode::putValue):    Boilerplate for new events
41687        * khtml/ecma/kjs_dom.h:
41688        (KJS::DOMNode::):    Boilerplate for new events
41689        * khtml/ecma/kjs_dom.lut.h:
41690        * khtml/ecma/kjs_events.cpp:
41691        (DOMEvent::DOMEvent): "dataTransfer" and "clipboardData" properties are conditionally
41692	defined on DOMEvent, depending on if the event is a dragging or clipboard event.
41693        (DOMMouseEvent::mark):  Pass mark along to any clipboard object we have.
41694        (DOMEvent::getValueProperty):  Return "dataTransfer" or "clipboardData".
41695        (DOMMouseEvent::getValueProperty):  Returning "dataTransfer" now handled by
41696	the superclass.
41697        * khtml/ecma/kjs_events.h:
41698        (KJS::DOMEvent::):
41699        (KJS::DOMMouseEvent::DOMMouseEvent):
41700        (KJS::DOMMouseEvent::):
41701        (KJS::DOMMouseEvent::toMouseEvent):
41702        * khtml/ecma/kjs_events.lut.h:
41703        * khtml/html/html_elementimpl.cpp:
41704        (HTMLElementImpl::parseHTMLAttribute):  Boilerplate for new events
41705        * khtml/misc/htmlattrs.c:
41706        * khtml/misc/htmlattrs.h:
41707        * khtml/misc/htmlattrs.in:  Boilerplate for new events
41708        * khtml/xml/dom2_eventsimpl.cpp:
41709        (EventImpl::typeToId):  Boilerplate for new events
41710        (EventImpl::idToType):  Boilerplate for new events
41711        (EventImpl::isDragEvent):  New utility
41712        (EventImpl::isClipboardEvent):  New utility
41713        (MouseEventImpl::isDragEvent):  New utility
41714        (ClipboardEventImpl::ClipboardEventImpl):  ref optional clipboard
41715        (ClipboardEventImpl::~ClipboardEventImpl):  deref optional clipboard
41716        (ClipboardEventImpl::isClipboardEvent):  New utility
41717        * khtml/xml/dom2_eventsimpl.h:
41718        (DOM::EventImpl::):  Boilerplate for new events
41719        (DOM::ClipboardEventImpl::clipboard):
41720        * kwq/KWQClipboard.h:  Monkey business so this file is includable in C++.
41721        * kwq/KWQClipboard.mm:
41722        * kwq/KWQKHTMLPart.h:
41723        * kwq/KWQKHTMLPart.mm:
41724        (KWQKHTMLPart::dispatchCPPEvent):  Send one of the new events.
41725        (KWQKHTMLPart::tryCut):  Declare pasteboard types, send cut events.
41726        (KWQKHTMLPart::tryCopy):  Declare pasteboard types, send copy events.
41727        (KWQKHTMLPart::tryPaste):  Send paste events.
41728        * kwq/WebCoreBridge.h:
41729        * kwq/WebCoreBridge.mm:
41730        (-[WebCoreBridge tryDHTMLCut]):  Pass through to part
41731        (-[WebCoreBridge tryDHTMLCopy]):  Ditto
41732        (-[WebCoreBridge tryDHTMLPaste]):  Ditto
41733
417342004-06-14  Trey Matteson  <trey@apple.com>
41735
41736	A new CSS pseudo-class ".drag" is added.  Analogous to the "hover" class,
41737	this class determines styles used while an element is generating a drag
41738	image.
41739
41740        Reviewed by hyatt.
41741
41742        * khtml/css/css_base.cpp:
41743        (CSSSelector::extractPseudoType):  Boilerplate for adding new class.
41744        * khtml/css/css_base.h:  Boilerplate for adding new class.
41745        * khtml/css/cssstyleselector.cpp:
41746        (khtml::CSSStyleSelector::checkOneSelector):  Match new class against
41747	elements being dragged.
41748        * khtml/css/cssstyleselector.h:
41749        (khtml::StyleSelector::):  Boilerplate for adding new class.
41750        * khtml/rendering/render_object.cpp:
41751        (RenderObject::RenderObject):  Init new member.
41752        (RenderObject::isDragging):  Return whether this object is being dragged.
41753        (RenderObject::updateDragState):  Paint us an all children with a new dragged state.
41754        * khtml/rendering/render_object.h:
41755        * khtml/rendering/render_style.h: Boilerplate for adding new class.
41756        (khtml::RenderStyle::NonInheritedFlags::operator==):
41757        (khtml::RenderStyle::setBitDefaults):
41758        (khtml::RenderStyle::affectedByDragRules):
41759        (khtml::RenderStyle::setAffectedByDragRules):
41760        * kwq/KWQClipboard.mm:
41761        (KWQClipboard::dragNSImage):  Method rename.
41762        * kwq/KWQKHTMLPart.h:
41763        * kwq/KWQKHTMLPart.mm:
41764        (KWQKHTMLPart::snapshotDragImage):  Mark the element as being dragged before
41765	we snapshot it, so new style class will apply.
41766
417672004-06-14  Ken Kocienda  <kocienda@apple.com>
41768
41769        Added a few more editing-related layout tests.
41770
41771        * layout-tests/editing/inserting/insert-3654864-fix-expected.txt: Added.
41772        * layout-tests/editing/inserting/insert-3654864-fix.html: Added.
41773        * layout-tests/editing/inserting/insert-3659587-fix-expected.txt: Added.
41774        * layout-tests/editing/inserting/insert-3659587-fix.html: Added.
41775        * layout-tests/editing/inserting/insert-after-delete-001-expected.txt: Added.
41776        * layout-tests/editing/inserting/insert-after-delete-001.html: Added.
41777        * layout-tests/editing/inserting/insert-br-case1-expected.txt: Added.
41778        * layout-tests/editing/inserting/insert-br-case1.html: Added.
41779        * layout-tests/editing/inserting/insert-br-case2-expected.txt: Added.
41780        * layout-tests/editing/inserting/insert-br-case2.html: Added.
41781        * layout-tests/editing/inserting/insert-br-case3-expected.txt: Added.
41782        * layout-tests/editing/inserting/insert-br-case3.html: Added.
41783
417842004-06-14  Ken Kocienda  <kocienda@apple.com>
41785
41786        Regarding the bug below, removing some tests since we have removed the execCommand("paste") 
41787        feature, at least for now.
41788
41789        <rdar://problem/3684792>: (JavaScript execCommand("paste") presents security issues)
41790
41791        * layout-tests/editing/pasteboard/copy-paste-text-001-expected.txt: Removed.
41792        * layout-tests/editing/pasteboard/copy-paste-text-001.html: Removed.
41793        * layout-tests/editing/pasteboard/cut-paste-text-002-expected.txt: Removed.
41794        * layout-tests/editing/pasteboard/cut-paste-text-002.html: Removed.
41795
417962004-06-14  Ken Kocienda  <kocienda@apple.com>
41797
41798        Reviewed by Darin
41799
41800        Fix for this bug:
41801        
41802        <rdar://problem/3672377> assertion failure in AppendNodeCommandImpl::doApply due to non-0 exception code trying to insert a DIV markup string
41803        
41804        * khtml/xml/dom_nodeimpl.cpp:
41805        (NodeImpl::checkAddChild): This function was being too strict in disallowing certain nodes
41806        to be added as other child nodes, applying rules we typically use for parsing. However,
41807        those parsing rules are primarily for dealing with "bad" HTML, and should not be
41808        applied to programmatic DOM operations. The fix involves removing calls to childAllowed().
41809
418102004-06-12  Trey Matteson  <trey@apple.com>
41811
41812	The drag image may be updated during a DHTML drag.  This includes updating
41813	from a Timer instead of a drag event handler.  In addition, an arbitrary
41814	element can be set as the one to snapshot for the drag image.
41815
41816        Reviewed by John
41817
41818        * khtml/ecma/kjs_events.cpp:
41819        (ClipboardProtoFunc::tryCall):  setDragImage accepts a node.  Previously,
41820	it had to be an Image object.
41821        * khtml/rendering/render_object.cpp:
41822        (RenderObject::paintingRootRect):  Also returns top element's rect.
41823        * khtml/rendering/render_object.h:
41824        * khtml/xml/dom2_eventsimpl.h:
41825        * kwq/KWQClipboard.h:  New security mode where image is still writable, but
41826	pasteboard is not.
41827        (KWQClipboard::):
41828        (KWQClipboard::setDragHasStarted):
41829        * kwq/KWQClipboard.mm:
41830        (KWQClipboard::KWQClipboard):    Part may be passed.  Needed in the source
41831	case to generate an image from an element.
41832        (KWQClipboard::setAccessPolicy):  New, replaces former becomeNumb method
41833	which wasn't flexible enough.
41834        (KWQClipboard::accessPolicy):  New getter.
41835        (KWQClipboard::dragImage):  No change, diff confusion.
41836        (KWQClipboard::setDragImage):  Call new helper, below.
41837        (KWQClipboard::dragImageElement):  New, return any element set.
41838        (KWQClipboard::setDragImageElement):  New, call new helper.
41839        (KWQClipboard::setDragImage):  New helper, set the image via either a
41840	pixmap or an element to snapshot, pushes the result to WebKit if we've
41841	already started the drag.
41842        (KWQClipboard::dragNSImage):  Generate an NSImage and mouse offset, no
41843	matter how the drag image was set (Image or element).
41844        * kwq/KWQKHTMLPart.h:  A single clipboard is kept over the life of a
41845	source drag instead of making one for each event.
41846        * kwq/KWQKHTMLPart.mm:
41847        (KWQKHTMLPart::KWQKHTMLPart):  Init clipboard.
41848        (KWQKHTMLPart::~KWQKHTMLPart):  Free clipboard.
41849        (KWQKHTMLPart::freeClipboard):  New helper.
41850        (KWQKHTMLPart::dispatchDragSrcEvent):  Most code moved to caller.
41851        (KWQKHTMLPart::khtmlMouseMoveEvent):  Make clipboard for this drag session.
41852	Init clipboard to make an image from the dragSource element.  Mark the
41853	drag as having started.
41854        (KWQKHTMLPart::dragSourceMovedTo):  Clipboard will update WK with any new
41855	drag image, so we don't need to.
41856        (KWQKHTMLPart::dragSourceEndedAt):  Ditto.
41857        (KWQKHTMLPart::elementImage):  Also return element rect.
41858        * kwq/WebCoreBridge.h:  Glue moved to WebCoreGraphicsBridge.
41859        * kwq/WebCoreBridge.mm:
41860        (-[WebCoreBridge dragOperationForDraggingInfo:]):  Use new method.
41861        (-[WebCoreBridge dragExitedWithDraggingInfo:]):  Ditto
41862        (-[WebCoreBridge concludeDragForDraggingInfo:]):  Ditto
41863        * kwq/WebCoreGraphicsBridge.h:
41864        * kwq/WebCoreGraphicsBridge.m:
41865        (-[WebCoreGraphicsBridge setDraggingImage:at:]):  Glue moved from WebBridge
41866
418672004-06-11  Chris Blumenberg  <cblu@apple.com>
41868
41869	Support for WebKit drag & drop API.
41870
41871        Reviewed by trey.
41872
41873        * kwq/WebCoreBridge.h:
41874        * kwq/WebCoreBridge.mm:
41875        (-[WebCoreBridge _positionForPoint:]): new
41876        (-[WebCoreBridge moveDragCaretToPoint:]): call _positionForPoint
41877        (-[WebCoreBridge editableDOMRangeForPoint:]): new
41878
418792004-06-11  Darin Adler  <darin@apple.com>
41880
41881        Reviewed by Dave.
41882
41883        - fixed <rdar://problem/3645846>: (REGRESSION: Stuck "Loading" when logging into Google's Gmail on newer versions of Safari)
41884
41885        * khtml/html/html_baseimpl.cpp: (HTMLFrameElementImpl::parseHTMLAttribute):
41886        Call through to base class for ATTR_ID so the "has ID" bit gets set.
41887        * khtml/html/html_imageimpl.cpp:
41888        (HTMLImageElementImpl::parseHTMLAttribute): Move ATTR_COMPOSITE code up and out of the way so
41889        it doesn't screw up ATTR_ID parsing.
41890        (HTMLMapElementImpl::parseHTMLAttribute): Call through to base class for ATTR_ID
41891        so the "has ID" bit gets set.
41892        * khtml/html/html_objectimpl.cpp:
41893        (HTMLAppletElementImpl::parseHTMLAttribute): Remove ATTR_ID case; not needed.
41894        (HTMLParamElementImpl::parseHTMLAttribute): Call through to base class for ATTR_ID
41895        so the "has ID" bit gets set.
41896
418972004-06-11  Ken Kocienda  <kocienda@apple.com>
41898
41899        Reviewed by Hyatt
41900
41901        Fix for this bug:
41902        
41903        <rdar://problem/3659587>: "when typing in Blot, bold style does not carry over to next line after pressing 'return'"
41904
41905        Did some work to improve the insert newline command. The refinement is to insert the newline
41906        at the upstream position of the caret, ensuring that the newline takes on the 
41907        appropriate style, and does not let the caret "escape" from an element that is
41908        conferring style.
41909
41910        * khtml/editing/htmlediting_impl.cpp:
41911        (khtml::InputNewlineCommandImpl::insertNodeAfterPosition): New helper. Adds smarts about adding
41912        newlines when the selection is a caret in a block.
41913        (khtml::InputNewlineCommandImpl::insertNodeBeforePosition): Ditto.
41914        (khtml::InputNewlineCommandImpl::doApply): Simplified cases. One case in the code could not
41915        happen.
41916        * khtml/editing/htmlediting_impl.h:
41917
41918        Fix for this bug:
41919    
41920        <rdar://problem/3654864>: "Pasting content at start of line places it at end of previous line"
41921
41922        (khtml::InputTextCommandImpl::prepareForTextInsertion): Simple code mistake. Content was indeed
41923        being added to the line before. Fixed to add new content after the line break.
41924
419252004-07-10  Trey Matteson  <trey@apple.com>
41926
41927	Prep work for latest delegate API for dragging.  In addition, I also straightened out all
41928	the cases of DHTML setting a drag image or setting pasteboard data, and how that would
41929	override WebKit's default behavior (which follows how WinIE does things).
41930
41931        Reviewed by Chris.
41932
41933        * khtml/rendering/render_object.cpp:
41934        (RenderObject::draggableNode):  Obey new params for whether a DHTML or UserAgent (i.e.,
41935	WebKit) drag source is allowed.
41936        * khtml/rendering/render_object.h:
41937        * kwq/KWQKHTMLPart.h:
41938        * kwq/KWQKHTMLPart.mm:
41939        (KWQKHTMLPart::dispatchDragSrcEvent):  Setting pasteboard data was moved out of here, now
41940	caller's responsibility.
41941        (KWQKHTMLPart::khtmlMouseMoveEvent):  Ask bridge for allowable drag actions (DHTML vs UA).
41942	Only send drag events if DHTML is allowed.  Only generate a drag image if the source is
41943	a DHTML element.  Note whether event handler set any pasteboard	data, and pass that fact
41944	to WebKit.
41945        (KWQKHTMLPart::dragSourceMovedTo): Only send drag events if DHTML is allowed.  
41946        (KWQKHTMLPart::dragSourceEndedAt): Only send drag events if DHTML is allowed.  
41947        * kwq/WebCoreBridge.h:
41948
419492004-06-11  Ken Kocienda  <kocienda@apple.com>
41950
41951        Reviewed by Trey
41952
41953        Lay some groundwork for better testing of inserting newlines. Layout
41954        tests that use this new code will be coming soon.
41955
41956        * khtml/editing/jsediting.cpp: Add commands for bold and inserting newlines.
41957        * layout-tests/editing/editing.js: Added new insertNewline command.
41958        which calls through to TypingCommand::insertNewline. There was no way to get
41959        to this command from JS before this addition.
41960
419612004-06-11  Ken Kocienda  <kocienda@apple.com>
41962
41963        Reviewed by Darin
41964
41965        Javascript execCommand system wants to use case-insensitive QDict.
41966        The interface for QDict offers this feature, but it was never implemented.
41967        Now it is.
41968
41969        * kwq/KWQDictImpl.h: Declare bool to store case-sensitive bit.
41970        * kwq/KWQDictImpl.mm:
41971        (KWQDictImpl::KWQDictImpl): No longer drops caseSensitive on the floor; stores
41972        it in instance variable.
41973        (KWQDictImpl::insert): Make lowercase version of key for operation, if necessary.
41974        (KWQDictImpl::remove): Ditto.
41975        (KWQDictImpl::find): Ditto.
41976        (KWQDictIteratorImpl::currentStringKey): Whitespace cleanup.
41977
41978=== Safari-144 ===
41979
419802004-06-10  Ken Kocienda  <kocienda@apple.com>
41981
41982        Reviewed by Darin
41983
41984        Fix for this bug:
41985        
41986        <rdar://problem/3654850>: "Style changes do not work across blocks"
41987        
41988        Now, applying styles works across blocks. I did quite a bit
41989        of internal redsign on the member functions of this class to
41990        make this work. As a bonus, from an architectural standpoint,
41991        all style changes are now done "in place". There is no more
41992        copying of content in order to perform style changes.
41993
41994        * khtml/editing/htmlediting_impl.cpp:
41995        (khtml::ApplyStyleCommandImpl::doApply):
41996        (khtml::ApplyStyleCommandImpl::removeHTMLStyleNode):
41997        (khtml::ApplyStyleCommandImpl::removeCSSStyle):
41998        (khtml::ApplyStyleCommandImpl::removeStyle):
41999        (khtml::ApplyStyleCommandImpl::nodeFullySelected):
42000        (khtml::ApplyStyleCommandImpl::splitTextAtStartIfNeeded):
42001        (khtml::ApplyStyleCommandImpl::splitTextAtEndIfNeeded):
42002        (khtml::ApplyStyleCommandImpl::surroundNodeRangeWithElement):
42003        (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded):
42004        (khtml::ApplyStyleCommandImpl::positionInsertionPoint):
42005        * khtml/editing/htmlediting_impl.h:
42006
420072004-06-10  Darin Adler  <darin@apple.com>
42008
42009        Reviewed by Ken.
42010
42011        - filled out execCommand a lot more
42012        - fixed <rdar://problem/3685231>: (execCommand italic is not implemented)
42013        - fixed <rdar://problem/3685232>: (execCommand bold is not implemented)
42014        - fixed <rdar://problem/3675899>: (Make queryCommandIndeterm work as specified in the Javascript execCommand Compatibility Plan)
42015        - fixed <rdar://problem/3675901>: (Make queryCommandState work as specified in the Javascript execCommand Compatibility Plan)
42016        - fixed <rdar://problem/3675904>: (Make queryCommandValue work as specified in the Javascript execCommand Compatibility Plan)
42017
42018        * khtml/editing/jsediting.cpp:
42019        (DOM::JSEditor::queryCommandIndeterm): Changed to use KHTMLPart::TriState instead of CommandState.
42020        (DOM::JSEditor::queryCommandState): Ditto.
42021        (execStyleChange): Changed to use KHTMLPart::applyStyle.
42022        (stateStyle): Used KHTMLPart::selectionHasStyle for this.
42023        (selectionStartHasStyle): Use KHTMLPart::selectionStartHasStyle for this.
42024        (valueStyle): Used KHTMLPart::selectionStartStylePropertyValue for this.
42025        (execBold): Implemented toggling, using selectionStartHasStyle.
42026        (execItalic): Implemented toggling, using selectionStartHasStyle.
42027        (execPrint): Implemented.
42028        (enabledRedo): Implemented, using canRedo.
42029        (enabledUndo): Implemented, using canUndo.
42030        (stateNone): Renamed from stateNo.
42031        (valueBackColor): Implemented, using valueStyle.
42032        (valueFontName): Implemented, using valueStyle.
42033        (valueFontSize): Implemented, using valueStyle.
42034        (valueForeColor): Implemented, using valueStyle.
42035        (valueFontSize): Implemented, using valueStyle.
42036
42037        * khtml/khtml_part.h: Added editing operations.
42038        * khtml/khtml_part.cpp:
42039        (KHTMLPart::copyToPasteboard): Added.
42040        (KHTMLPart::cutToPasteboard): Added.
42041        (KHTMLPart::redo): Added.
42042        (KHTMLPart::undo): Added.
42043        (KHTMLPart::applyStyle): Added.
42044        (updateState): Added.
42045        (KHTMLPart::selectionHasStyle): Added.
42046        (KHTMLPart::selectionStartHasStyle): Added.
42047        (KHTMLPart::selectionStartStylePropertyValue): Added.
42048        (KHTMLPart::selectionComputedStyle): Added.
42049        (KHTMLPart::print): Added.
42050
42051        * khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): Call print() on plain old part, not KWQ(part).
42052
42053        * kwq/KWQKHTMLPart.h: Removed print(), added _haveUndoRedoOperations.
42054        * kwq/KWQKHTMLPart.mm:
42055        (KHTMLPart::print): Moved from KWQKHTMLPart to KHTMLPart.
42056        (KWQKHTMLPart::registerCommandForUndo): Moved code here from bridge.
42057        (KWQKHTMLPart::registerCommandForRedo): Moved code here from bridge.
42058        (KWQKHTMLPart::clearUndoRedoOperations): Moved code here from bridge.
42059        (KWQKHTMLPart::issueUndoCommand): Moved code here from bridge.
42060        (KWQKHTMLPart::issueRedoCommand): Moved code here from bridge.
42061        (KWQKHTMLPart::issuePasteCommand): Moved code here from bridge.
42062        (KHTMLPart::canUndo): Added.
42063        (KHTMLPart::canRedo): Added.
42064
42065        * kwq/WebCoreBridge.h: Added undoManager, removed undo-related methods.
42066        * kwq/WebCoreBridge.mm: (-[WebCoreBridge applyStyle:]): Changed to call
42067        KHTMLPart::applyStyle.
42068
42069        * WebCore.pbproj/.cvsignore: Updated for new Xcode files.
42070
420712004-06-09  Maciej Stachowiak  <mjs@apple.com>
42072
42073        Reviewed by Dave.
42074
42075	<rdar://problem/3671555>: Blot scrolls to the top every time you type
42076	
42077        * khtml/xml/dom_selection.cpp:
42078        (DOM::Selection::getRepaintRect): If the caret position is invalid, recompute it.
42079
420802004-06-09  David Hyatt  <hyatt@apple.com>
42081
42082	Fix for 3607091, implement a style that prevents zoom and min font size from taking effect.
42083	The name of the new style is "-apple-text-size-adjust" with values of "none" and "auto."  The default
42084	is "auto."
42085	
42086        Reviewed by mjs
42087
42088        * khtml/css/cssparser.cpp:
42089        (CSSParser::parseValue):
42090        * khtml/css/cssproperties.c:
42091        (hash_prop):
42092        (findProp):
42093        * khtml/css/cssproperties.h:
42094        * khtml/css/cssproperties.in:
42095        * khtml/css/cssstyleselector.cpp:
42096        (khtml::CSSStyleSelector::styleForElement):
42097        (khtml::CSSStyleSelector::pseudoStyleForElement):
42098        (khtml::CSSStyleSelector::applyDeclarations):
42099        (khtml::CSSStyleSelector::applyProperty):
42100        (khtml::CSSStyleSelector::checkForTextSizeAdjust):
42101        * khtml/css/cssstyleselector.h:
42102        * khtml/rendering/render_style.cpp:
42103        (textSizeAdjust):
42104        (StyleCSS3InheritedData):
42105        (StyleCSS3InheritedData::operator==):
42106        (RenderStyle::diff):
42107        * khtml/rendering/render_style.h:
42108        (khtml::RenderStyle::lineClamp):
42109        (khtml::RenderStyle::textSizeAdjust):
42110        (khtml::RenderStyle::setTextSizeAdjust):
42111        (khtml::RenderStyle::initialTextSizeAdjust):
42112
421132004-06-09  David Hyatt  <hyatt@apple.com>
42114
42115	Implement parsing and setting of the text-overflow CSS3 property.
42116	
42117        Reviewed by kocienda
42118
42119        * khtml/css/cssparser.cpp:
42120        (CSSParser::parseValue):
42121        * khtml/css/cssproperties.c:
42122        (hash_prop):
42123        (findProp):
42124        * khtml/css/cssproperties.h:
42125        * khtml/css/cssproperties.in:
42126        * khtml/css/cssstyleselector.cpp:
42127        (khtml::CSSStyleSelector::applyProperty):
42128        * khtml/css/cssvalues.c:
42129        (hash_val):
42130        (findValue):
42131        * khtml/css/cssvalues.h:
42132        * khtml/css/cssvalues.in:
42133        * khtml/rendering/render_style.cpp:
42134        (textOverflow):
42135        (StyleCSS3NonInheritedData::operator==):
42136        (RenderStyle::diff):
42137        * khtml/rendering/render_style.h:
42138        (khtml::RenderStyle::textOverflow):
42139        (khtml::RenderStyle::setTextOverflow):
42140        (khtml::RenderStyle::initialTextOverflow):
42141
421422004-06-09  David Hyatt  <hyatt@apple.com>
42143
42144	Fix for 3678031, implement better flexing for Emerson headers.  This involved adding support for max-width: intrinsic,
42145	fixing the box layout algorithm to properly deal with max-widths, and implementing support for baseline alignment
42146	so that boxes can be aligned vertically along their interior baselines.
42147	
42148        Reviewed by kocienda
42149
42150        * khtml/css/cssparser.cpp:
42151        (CSSParser::parseValue):
42152        (CSSParser::parseShadow):
42153        * khtml/css/cssparser.h:
42154        * khtml/css/cssproperties.c:
42155        (hash_prop):
42156        (findProp):
42157        * khtml/css/cssproperties.h:
42158        * khtml/css/cssproperties.in:
42159        * khtml/css/cssstyleselector.cpp:
42160        (khtml::CSSStyleSelector::applyProperty):
42161        * khtml/css/cssvalues.c:
42162        (hash_val):
42163        (findValue):
42164        * khtml/css/cssvalues.h:
42165        * khtml/css/cssvalues.in:
42166        * khtml/misc/khtmllayout.h:
42167        (khtml::):
42168        * khtml/rendering/render_block.cpp:
42169        (khtml::RenderBlock::baselinePosition):
42170        (khtml::RenderBlock::getBaselineOfFirstLineBox):
42171        * khtml/rendering/render_block.h:
42172        * khtml/rendering/render_box.cpp:
42173        (RenderBox::RenderBox):
42174        (RenderBox::overrideWidth):
42175        (RenderBox::overrideHeight):
42176        (RenderBox::calcWidth):
42177        (RenderBox::calcHeight):
42178        * khtml/rendering/render_box.h:
42179        (khtml::RenderBox::overrideSize):
42180        (khtml::RenderBox::setOverrideSize):
42181        * khtml/rendering/render_flexbox.cpp:
42182        (khtml::RenderFlexibleBox::calcMinMaxWidth):
42183        (khtml::RenderFlexibleBox::layoutBlock):
42184        (khtml::RenderFlexibleBox::layoutHorizontalBox):
42185        (khtml::RenderFlexibleBox::layoutVerticalBox):
42186        (khtml::RenderFlexibleBox::placeChild):
42187        (khtml::RenderFlexibleBox::allowedChildFlex):
42188        * khtml/rendering/render_flexbox.h:
42189        * khtml/rendering/render_image.cpp:
42190        (RenderImage::isWidthSpecified):
42191        (RenderImage::isHeightSpecified):
42192        * khtml/rendering/render_object.h:
42193        (khtml::RenderObject::getBaselineOfFirstLineBox):
42194        (khtml::RenderObject::overrideSize):
42195        (khtml::RenderObject::overrideWidth):
42196        (khtml::RenderObject::overrideHeight):
42197        (khtml::RenderObject::setOverrideSize):
42198        * khtml/rendering/render_style.cpp:
42199        (StyleFlexibleBoxData::StyleFlexibleBoxData):
42200        (StyleFlexibleBoxData::operator==):
42201        (ShadowData::operator==):
42202        * khtml/rendering/render_style.h:
42203        (khtml::RenderStyle::boxPack):
42204        (khtml::RenderStyle::setBoxPack):
42205        * khtml/rendering/table_layout.cpp:
42206        (AutoTableLayout::layout):
42207
422082004-06-09  Richard Williamson   <rjw@apple.com>
42209
42210	Added support for drawing un-rasterized transformed PDFs.
42211
42212        Reviewed by John.
42213
42214        * khtml/ecma/kjs_html.cpp:
42215        (KJS::Context2DFunction::tryCall):
42216
422172004-06-09  Darin Adler  <darin@apple.com>
42218
42219        Reviewed by Ken.
42220
42221        - implemented still more execCommand commands
42222
42223        * khtml/editing/jsediting.cpp: Added a lot more commands, and reformatted a bit.
42224
422252004-06-08  Darin Adler  <darin@apple.com>
42226
42227        Reviewed by Maciej.
42228
42229        - implemented a bunch more execCommand commands
42230        - fixed <rdar://problem/3684792>: (JavaScript execCommand("paste") presents security issues)
42231        - fixed <rdar://problem/3675898>: (Make queryCommandEnabled work as specified in the Javascript execCommand Compatibility Plan)
42232        - fixed <rdar://problem/3675903>: (Make queryCommandSupported work as specified in the Javascript execCommand Compatibility Plan)
42233        - about half of <rdar://problem/3685231>: (execCommand italic is not implemented)
42234        - about half of <rdar://problem/3685232>: (execCommand bold is not implemented)
42235
42236        * khtml/editing/jsediting.h: Made constructor inline. Deleted a few unneeded member functions
42237        that are now just private functions inside jsediting.cpp.
42238
42239        * khtml/editing/jsediting.cpp:
42240        (commandImp): Changed this around, so the dictionary is a static local to this function,
42241        and initialized with C++ "first time initialization" rule.
42242        (DOM::JSEditor::execCommand): Got rid of special case for 0 for function pointer and added const.
42243        (DOM::JSEditor::queryCommandEnabled): Ditto.
42244        (DOM::JSEditor::queryCommandIndeterm): Got rid of special case for 0 for function pointer, added const,
42245        and use a common three-state state function rather than a separate "indeterm" function.
42246        (DOM::JSEditor::queryCommandState): Ditto.
42247        (DOM::JSEditor::queryCommandValue): More of the same.
42248        (execNotImplemented): Added. Used for unimplemented commands; there are only a few left.
42249        (execCopy): Renamed.
42250        (execCut): Renamed.
42251        (execDelete): Renamed.
42252        (execInsertText): Renamed.
42253        (execPaste): Renamed, and disabled.
42254        (execRedo): Renamed.
42255        (execSelectAll): Renamed.
42256        (execUndo): Renamed.
42257        (execStyleChange): Added. Helper function for commands that are style changes.
42258        (execBold): Added.
42259        (execItalic): Added.
42260        (execJustifyCenter): Added.
42261        (execJustifyFull): Added.
42262        (execJustifyLeft): Added.
42263        (execJustifyRight): Added.
42264        (execSubscript): Added.
42265        (execSuperscript): Added.
42266        (execUnselect): Added.
42267        (stateNotImplemented): Added. Used for unimplemented state queries; there are a few left.
42268        (noState): Added.
42269        (valueNotImplemented): Added. Used for unimplemented value queries; there are a few left.
42270        (nullStringValue): Added.
42271        (createCommandDictionary): Changed the initDict function into this function. Added implementations
42272        for many commands and condensed format so it's easier to work with.
42273
422742004-06-08  Darin Adler  <darin@apple.com>
42275
42276        Reviewed by Vicki.
42277
42278        - our part of fix to <rdar://problem/3629334>: (REGRESSION (Tiger): titles on pop-ups menus are truncated and show ellipses)
42279
42280        * kwq/KWQComboBox.mm: (QComboBox::QComboBox): Call setLineBreakMode:NSLineBreakByClipping.
42281        In the current version of Tiger I am using, this is not implemented yet.
42282
42283        - a couple of other unrelated changes
42284
42285        * khtml/rendering/render_form.cpp: (RenderTextArea::calcMinMaxWidth): Put a little more code
42286        inside the APPLE_CHANGES ifdef.
42287        * kwq/KWQTextEdit.h: Remove unused setTabStopWidth function, and make empty setTextFormat
42288        function an inline for slightly smaller code size.
42289        * kwq/KWQTextEdit.mm: Ditto.
42290        * kwq/KWQTextField.mm: Update copyright date.
42291
422922004-06-08  Trey Matteson  <trey@apple.com>
42293
42294	A DHTML drag source can now change the dragging image during the drag.  Currently
42295	it may only be set to a static image.
42296
42297        Reviewed by John
42298
42299        * kwq/KWQKHTMLPart.mm:
42300        (KWQKHTMLPart::dragSourceMovedTo):  If the ondrag event handler set an image,
42301	pass it to WebKit.
42302        * kwq/WebCoreBridge.h:
42303
423042004-06-08  Ken Kocienda  <kocienda@apple.com>
42305
42306        Reviewed by Hyatt
42307
42308        Changes to the selection state for these tests as a result of my previous
42309        checkin. The changes are minor to a couple of offsets. I looked at the
42310        changes and approve them.
42311
42312        * layout-tests/editing/deleting/delete-block-contents-001-expected.txt
42313        * layout-tests/editing/deleting/delete-block-contents-002-expected.txt
42314        * layout-tests/editing/deleting/delete-block-contents-003-expected.txt
42315
423162004-06-08  Ken Kocienda  <kocienda@apple.com>
42317
42318        Reviewed by Hyatt
42319
42320        Fix for this bug:
42321
42322        <rdar://problem/3654841>: "Hitting delete key with start of block selected 
42323        does not merge content with preceding block"
42324
42325        Selections that span blocks now work correctly for deleting the selection and inserting
42326        over the selection. The largest part of the change is adding a new field to the 
42327        RemoveNodeAndPruneCommand and its impl version. This was done since the starting block
42328        for a multi-block selection should always be preserved when deleting, and this was
42329        a convenient way to express this using the code structure already in place.
42330        
42331        * khtml/editing/htmlediting.cpp:
42332        (khtml::RemoveNodeAndPruneCommand::RemoveNodeAndPruneCommand): Modify this command to 
42333        take two nodes: the node to remove and a node to stop at when pruning back up the tree.
42334        (khtml::RemoveNodeAndPruneCommand::pruneNode): New accessor, replaces old node() accessor.
42335        (khtml::RemoveNodeAndPruneCommand::stopNode): New accessor for additional feature described 
42336        above.
42337        * khtml/editing/htmlediting.h:
42338        * khtml/editing/htmlediting_impl.cpp:
42339        (khtml::shouldPruneNode): blow flow renderers can now be deleted, but not if they are a 
42340        rootEditableElement.
42341        (khtml::CompositeEditCommandImpl::removeNodeAndPrune): Pass new stopNode param and change the
42342        name of the existing node argument to pruneNode to distinguish it.
42343        (khtml::DeleteSelectionCommandImpl::doApply): Pass the block containing the start of the
42344        selection to removeNodeAndPrune in each case. Also, add one little loop to move all
42345        the content from the block containing the end of the selection if that block is different
42346        than the start block.
42347        (khtml::RemoveNodeAndPruneCommandImpl::RemoveNodeAndPruneCommandImpl): Implement the
42348        pruneNode/stopNode design already described.
42349        (khtml::RemoveNodeAndPruneCommandImpl::~RemoveNodeAndPruneCommandImpl): Manage the
42350        lifecycle of stopNode.
42351        (khtml::RemoveNodeAndPruneCommandImpl::doApply): Add a check to stop at the stop
42352        node while pruning.
42353        * khtml/editing/htmlediting_impl.h:
42354        (khtml::RemoveNodeAndPruneCommandImpl::pruneNode): New accessor.
42355        (khtml::RemoveNodeAndPruneCommandImpl::stopNode): Ditto.
42356
423572004-06-07  Trey Matteson  <trey@apple.com>
42358
42359	Clipboard access during DHTML dragging is made secure.
42360
42361        Reviewed by John.
42362
42363        * kwq/KWQClipboard.h:
42364        (KWQClipboard::):
42365        * kwq/KWQClipboard.mm:
42366        (KWQClipboard::KWQClipboard):    Init new policy and changeCount members.
42367        (KWQClipboard::becomeNumb):  Set policy to numb.
42368        (KWQClipboard::clearData):   Check policy.
42369        (KWQClipboard::clearAllData):   Check policy.
42370        (KWQClipboard::getData):   Check policy and changeCount.
42371        (KWQClipboard::setData):   Check policy.
42372        (KWQClipboard::types):   Check policy and ChangeCount.
42373        (KWQClipboard::setDragLocation):   Check policy.
42374        (KWQClipboard::setDragImage):   Check policy.
42375        (KWQClipboard::setDropEffect):   Check policy.
42376        (KWQClipboard::setEffectAllowed):   Check policy.
42377        * kwq/KWQKHTMLPart.mm:
42378        (KWQKHTMLPart::dispatchDragSrcEvent):  Set policy when creating clipboard,
42379	and numb-ify it when we're done.
42380        * kwq/WebCoreBridge.mm:
42381        (-[WebCoreBridge dragOperationForDraggingInfo:]): Set policy when creating clipboard,
42382	and numb-ify it when we're done.
42383        (-[WebCoreBridge dragExitedWithDraggingInfo:]):  Ditto
42384        (-[WebCoreBridge concludeDragForDraggingInfo:]):  Ditto
42385
423862004-06-08  Ken Kocienda  <kocienda@apple.com>
42387
42388        * khtml/editing/jsediting.cpp:
42389        (DOM::EditorCommand::): Stray capital letter in "selectAll" command static
42390        initializer prevented the command from ever working since the command
42391        strings are lower-cased when trying to find a match, but not when they
42392        are inserted into the dictionary. This is a one character change to make
42393        the string "selectall" in the initializer.
42394
423952004-06-07  Trey Matteson  <trey@apple.com>
42396
42397	WebCore will now generate a default drag image when an element serves as a drag
42398	source.  The basic idea is the image contains the element and all its children.
42399
42400	As for the implementation, instead of adding a new paintAction I added a new
42401	field to the paintInfo struct, "paintingRoot".  If this field is set, painting will
42402	only paint that root's descendants.
42403
42404	Some code also moved from the bridge to the part, to be available within WebCore.
42405
42406        Reviewed by hyatt.
42407
42408        * khtml/rendering/render_block.cpp:
42409        (khtml::RenderBlock::paintObject):  Pass along paintingRoot to kids.
42410        (khtml::RenderBlock::paintFloats):  Pass along paintingRoot to kids.
42411        * khtml/rendering/render_box.cpp:
42412        (RenderBox::paintBoxDecorations):  Test paintingRoot before painting.
42413        * khtml/rendering/render_canvasimage.cpp:
42414        (RenderCanvasImage::paint):    Test paintingRoot before painting.
42415        * khtml/rendering/render_flow.cpp:
42416        (RenderFlow::paintLineBoxBackgroundBorder):    Test paintingRoot before painting.
42417        (RenderFlow::paintLineBoxDecorations):    Test paintingRoot before painting.
42418        * khtml/rendering/render_image.cpp:
42419        (RenderImage::paint):    Test paintingRoot before painting.
42420        * khtml/rendering/render_inline.cpp:
42421        (RenderInline::paint):    Pass along paintingRoot to kids.
42422        * khtml/rendering/render_layer.cpp:
42423        (RenderLayer::paint):   Pass along paintingRoot to kids.
42424        (RenderLayer:: paintLayer):  Pass along paintingRoot to kids.  Test if we are within the
42425	paintingRoot to decide whether to pass the root to our renderer.
42426        * khtml/rendering/render_layer.h:
42427        * khtml/rendering/render_object.cpp:
42428        (RenderObject::hasAncestor):  New utility.
42429        (RenderObject::absoluteBoundingBoxRect): Helper for paintingRootRect
42430        (RenderObject::addAbsoluteRectForLayer):  Helper for paintingRootRect
42431        (RenderObject::paintingRootRect):  Return rect that will be painted if we are
42432	the painting root.
42433        (RenderObject::draggableNode):  Add test to avoid rare NULL ptr crash.
42434        * khtml/rendering/render_object.h:
42435        (khtml::RenderObject::PaintInfo::PaintInfo):  Add paintingRoot field.
42436        (khtml::RenderObject::paintingRootForChildren):  New utility.  Return the current
42437	paintingRoot, or nil if we are the root (so kids draw normally).
42438        (khtml::RenderObject::shouldPaintWithinRoot):  New utility.  We can paint if we
42439	are the paintingRoot, or no root is set.
42440        * khtml/rendering/render_replaced.cpp:
42441        (RenderReplaced::shouldPaint):  Pass along paintingRoot to kids.
42442        * khtml/rendering/render_table.cpp:
42443        (RenderTable::paint):   Pass along paintingRoot to kids.
42444        * khtml/rendering/render_text.cpp:
42445        (RenderText::paint):  Test paintingRoot before painting.
42446        * kwq/KWQKHTMLPart.h:
42447        * kwq/KWQKHTMLPart.mm:
42448        (KWQKHTMLPart::KWQKHTMLPart):  Init new _elementToDraw member.
42449        (KWQKHTMLPart::paint):  Generalized to handle cases of painting selection or a
42450	given element.
42451        (KWQKHTMLPart::khtmlMouseMoveEvent):  Make a default image if dragSrc didn't
42452	provide one.
42453        (KWQKHTMLPart::selectionRect):  Moved from bridge.
42454        (KWQKHTMLPart::visibleSelectionRect):  Ditto.
42455        (KWQKHTMLPart::imageFromRect):  Newly factored code, from bridge.
42456        (KWQKHTMLPart::selectionImage):  Moved from bridge, wrapper around imageFromRect.
42457        (KWQKHTMLPart::elementImage):  New method, wrapper around imageFromRect.
42458        * kwq/WebCoreBridge.h:
42459        * kwq/WebCoreBridge.mm:
42460        (-[WebCoreBridge drawRect:withPainter:]):  Just call part to draw.
42461        (-[WebCoreBridge visibleSelectionRect]):  Guts moved to part.
42462        (-[WebCoreBridge selectionImage]):  Ditto.
42463
424642004-06-07  Darin Adler  <darin@apple.com>
42465
42466        Reviewed by Chris.
42467
42468        - fixed <rdar://problem/3682821>: (setTimeout fails when additional parameters are used and timeout function is a string)
42469
42470        * khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): Ignore excess arguments instead
42471        of rejecting the argument list for window.scrollBy, scroll, scrollTo, moveBy, moveTo,
42472        resizeBy, resizeTo, and setTimeout (when the timeout is a string rather than an object).
42473
42474        - did a refinement of JSEditor to be slightly more efficient, and not have to edit
42475          both the .cpp file and the .h when adding more implementation
42476
42477        * khtml/khtml_part.h: Hack so we can get to the docImpl and xmlDocImpl without being a friend.
42478        * khtml/editing/jsediting.h: Simplified a bit.
42479        * khtml/editing/jsediting.cpp: Redid to use a table, and simplified a bit.
42480
424812004-06-07  Ken Kocienda  <kocienda@apple.com>
42482
42483        Reviewed by Hyatt
42484
42485        Fix for this bug:
42486        
42487        <rdar://problem/3682354>: "Typing style does not work yet"
42488        
42489        Did the final hook-up of support that has landed in the tree in the
42490        recent past as part of ongoing style-application work.
42491        
42492        For the most part, this patch modifies the InputNewlineCommandImpl and
42493        InputTextCommandImpl commands to insert a styling span when there is
42494        a typing style active. 
42495
42496        * khtml/editing/htmlediting_impl.cpp:
42497        (khtml::CompositeEditCommandImpl::createTypingStyleElement): Helper
42498        shared by the two commands modified.
42499        (khtml::InputNewlineCommandImpl::doApply): Create a styling span if the
42500        part has a typing style. Maintain a nodeToInsert local variable, which is
42501        either the break to insert or a styling span containing the break. Also,
42502        remove some utterly bogus derefs. They are just plain wrong.
42503        (khtml::InputTextCommandImpl::InputTextCommandImpl): Don't need to keep
42504        m_insertedTextNode. The composite commands this command uses will keep
42505        track of that object's lifetime. We do not need to do that here.
42506        (khtml::InputTextCommandImpl::~InputTextCommandImpl): No longer need 
42507        to deref obsolete m_insertedTextNode.
42508        (khtml::InputTextCommandImpl::prepareForTextInsertion): Handle the case
42509        where a styling span needs to be added.
42510        (khtml::TypingCommandImpl::insertText): Create a new InputTextCommand when
42511        there is an active typping style.
42512        * khtml/editing/htmlediting_impl.h: Declare createTypingStyleElement helper.
42513        Remove m_insertedTextNode from InputTextCommandImpl.
42514        * kwq/WebCoreBridge.mm:
42515        (-[WebCoreBridge applyStyle:]): Swicth on the state of the selection, calling
42516        setTypingStyle when a caret and ApplyStyleCommand when a range.
42517
425182004-06-07  Darin Adler  <darin@apple.com>
42519
42520        Reviewed by Ken.
42521
42522        * khtml/editing/jsediting.h: Elide some unnecessary namespace prefixes.
42523        * khtml/editing/jsediting.cpp: Make typed constants instead of macros.
42524        (DOM::JSEditor::commandDict): Elide unnecessary namespace prefix.
42525        (DOM::JSEditor::execCommand): Remove xxxNotImplemented functions; just return false instead.
42526        (DOM::JSEditor::queryCommandEnabled): Ditto.
42527        (DOM::JSEditor::queryCommandIndeterm): Ditto.
42528        (DOM::JSEditor::queryCommandState): Ditto.
42529        (DOM::JSEditor::queryCommandSupported): Ditto.
42530        (DOM::JSEditor::queryCommandValue): Ditto.
42531
425322004-06-05  Trey Matteson  <trey@apple.com>
42533
42534	As agreed with Hyatt and Louch, do not post incoming dragging events
42535	to text nodes.
42536
42537        Reviewed by Maciej
42538
42539        * khtml/khtmlview.cpp:
42540        (KHTMLView::updateDragAndDrop):  For any drag target that is a text node,
42541	use its parent instead.
42542
425432004-06-03  Trey Matteson  <trey@apple.com>
42544
42545	DHTML dragging uses the Cocoa NSDragOperation on both the source and dest ends.
42546
42547	In addition, I caught a prime gaffe where I had used "dropAllowed" instead of "effectAllowed"
42548	for that particular WinIE property.  That is renamed throughout.
42549
42550        Reviewed by rjw
42551
42552        * khtml/ecma/kjs_events.cpp:
42553        (stringOrUndefined):  New little helper.
42554        (Clipboard::getValueProperty):  Return Undefined if dropEffect or effectAllowed are not set.
42555        (Clipboard::putValue):  Rename.
42556        * khtml/ecma/kjs_events.h:
42557        (KJS::Clipboard::):  Rename.
42558        * khtml/ecma/kjs_events.lut.h:
42559        * khtml/xml/dom2_eventsimpl.h:  Rename.
42560        * kwq/KWQClipboard.h: Rename, add access to Cocoa drag op.
42561        * kwq/KWQClipboard.mm:
42562        (KWQClipboard::dropEffect):   These 4 just moved in the file.
42563        (KWQClipboard::setDropEffect):
42564        (KWQClipboard::effectAllowed):
42565        (KWQClipboard::setEffectAllowed):
42566        (cocoaOpFromIEOp):  Convert from an IE operation string to a Cocoa DragOp
42567        (IEOpFromCocoaOp):  and vice-versa
42568        (KWQClipboard::sourceOperation):  Return effectAllowed, converted to a NSDragOp
42569        (KWQClipboard::destinationOperation):  Return dropEffect, converted to a NSDragOp
42570        (KWQClipboard::setSourceOperation):  Set effectAllowed, using a Cocoa value
42571        (KWQClipboard::setDestinationOperation):  Set dropEffect, using a Cocoa value
42572        * kwq/KWQKHTMLPart.h:
42573        * kwq/KWQKHTMLPart.mm:
42574        (KWQKHTMLPart::dispatchDragSrcEvent):  Return the drag op specified by the source element.
42575        (KWQKHTMLPart::khtmlMouseMoveEvent):  Pass our drag op up to WebKit.
42576        (KWQKHTMLPart::dragSourceMovedTo):  Pass NULL for new arg.
42577        (KWQKHTMLPart::dragSourceEndedAt):  Ditto
42578        * kwq/WebCoreBridge.h:
42579        * kwq/WebCoreBridge.mm:
42580        (-[WebCoreBridge dragOperationForDraggingInfo:]):  Set the incoming dragOp onto the clipboard
42581	so DHTML can access it.  In addition, validate whatever op DHTML returns so we play well
42582	with Cocoa.
42583
425842004-06-04  David Hyatt  <hyatt@apple.com>
42585
42586	Add support for auto values in flex transitions.  Add support for mapping the back end values to
42587	front end values.  Next it's time to actually try to use this stuff in render_flexbox.
42588	
42589        Reviewed by darin
42590
42591        * khtml/css/css_valueimpl.cpp:
42592        (length):
42593        * khtml/css/css_valueimpl.h:
42594        (DOM::FlexGroupTransitionValueImpl::isAuto):
42595        * khtml/css/cssparser.cpp:
42596        (FlexGroupTransitionParseContext::length):
42597        (FlexGroupTransitionParseContext::commitAutoValue):
42598        (FlexGroupTransitionParseContext::commitValue):
42599        (CSSParser::parseFlexGroupTransition):
42600        * khtml/css/cssstyleselector.cpp:
42601        (khtml::CSSStyleSelector::applyProperty):
42602        * khtml/rendering/render_style.cpp:
42603        (FlexGroupTransitionData::operator==):
42604        * khtml/rendering/render_style.h:
42605        (khtml::FlexGroupTransitionData::next):
42606        (khtml::FlexGroupTransitionData::isAuto):
42607
42608=== Safari-143 ===
42609
426102004-06-04  Kevin Decker  <kdecker@apple.com>
42611
42612        Reviewed by Dave.
42613
42614        - kwq/KWQKHTMLPart.mm: addMessagetoConsole places sourceURL in the dictionary
42615        - khtml/xml/dom_docimpl.cpp: right now, we don't have a way to get a url,
42616          so we leave this blank
42617        - khtml/ecma/kjs_window.cpp: still need to get the real line number and sourceURL
42618        - khtml/ecma/kjs_proxy.cpp: now passing the sourceURL to addMessageToConsole
42619        - khtml/ecma/kjs_events.cpp: still need to grab an accurate line number and sourceURL
42620        
42621        * khtml/ecma/kjs_events.cpp:
42622        (JSEventListener::handleEvent):
42623        (JSLazyEventListener::handleEvent):
42624        * khtml/ecma/kjs_proxy.cpp:
42625        (KJSProxyImpl::evaluate):
42626        * khtml/ecma/kjs_window.cpp:
42627        (Window::isSafeScript):
42628        (ScheduledAction::execute):
42629        * khtml/xml/dom_docimpl.cpp:
42630        (DocumentImpl::open):
42631        * kwq/KWQKHTMLPart.h:
42632        * kwq/KWQKHTMLPart.mm:
42633        (KWQKHTMLPart::addMessageToConsole):
42634
426352004-06-04  Ken Kocienda  <kocienda@apple.com>
42636
42637        Reviewed by Hyatt
42638
42639        Fix a comical little bug where the style-applying code did not take into
42640        account deleting content from the start of a block. After the deletion, 
42641        the caret is placed in the node before the deleted content and so 
42642        inserting a styled fragment after the deletion position works great.
42643        The problem is that if the selectionis at the start of a block, there
42644        is no "position before the deletion" and the caret is placed in the new
42645        first child of the block. Inserting the styled content after this 
42646        node is just plain wrong. Now, this case is handled correctly, and the
42647        styled content is inserted in the proper position.
42648
42649        * khtml/editing/htmlediting_impl.cpp:
42650        (khtml::ApplyStyleCommandImpl::insertFragment):
42651
426522004-06-04  Ken Kocienda  <kocienda@apple.com>
42653
42654        Reviewed by Hyatt
42655
42656        * khtml/rendering/bidi.cpp:
42657        (khtml::RenderBlock::layoutInlineChildren): Only add additional line height
42658        in for root editable elements. This helps to keep layout from deviating too
42659        much from the intended page layout, but still gives an empty document a line
42660        in which it can blink the caret.
42661
426622004-06-04  Ken Kocienda  <kocienda@apple.com>
42663
42664        Reviewed by Hyatt
42665
42666        Made some progress on this set of related bugs:
42667        
42668        <rdar://problem/3675867>: "Make execCommand work as specified in the Javascript execCommand Compatibility Plan"
42669        <rdar://problem/3675898>: "Make queryCommandEnabled work as specified in the Javascript execCommand Compatibility Plan"
42670        <rdar://problem/3675899>: "Make queryCommandIndeterm work as specified in the Javascript execCommand Compatibility Plan"
42671        <rdar://problem/3675901>: "Make queryCommandState work as specified in the Javascript execCommand Compatibility Plan"
42672        <rdar://problem/3675903>: "Make queryCommandSupported work as specified in the Javascript execCommand Compatibility Plan"
42673        <rdar://problem/3675904>: "Make queryCommandValue work as specified in the Javascript execCommand Compatibility Plan"
42674        
42675        I did several things to move the ahead with the plan:
42676        
42677        1. The latter five methods did not appear in the tree at all. Now they do, although
42678        
42679        2. I removed the implementation for these editing methods from dom_docimpl.cpp, and moved
42680           them out to new js_editing.cpp/js_editing.h files. The remaining code in dom_docimpl.cpp
42681           is glue to call over to the new JSEditor object defined in the new files.
42682           
42683        3. For a couple of the command implementations in js_editing.cpp, I made a stab at returning sensible values.
42684           For others, I just return place-holder values. I have added some comments to describe what has been done and
42685           what still needs to be done. 
42686
42687        * WebCore.pbproj/project.pbxproj:
42688        * khtml/dom/dom_doc.cpp: Add call-overs for these methods.
42689        (DOM::Document::queryCommandEnabled):
42690        (DOM::Document::queryCommandIndeterm):
42691        (DOM::Document::queryCommandState):
42692        (DOM::Document::queryCommandSupported):
42693        (DOM::Document::queryCommandValue):
42694        * khtml/dom/dom_doc.h:
42695        * khtml/ecma/kjs_dom.cpp: Add queryCommandXXX terminology.
42696        (DOMDocumentProtoFunc::tryCall):
42697        * khtml/ecma/kjs_dom.h:
42698        (KJS::DOMDocument::):
42699        * khtml/ecma/kjs_dom.lut.h:
42700        (KJS::):
42701        * khtml/editing/jsediting.cpp: Added. This file implements the guts of editing-related JS methods.
42702        (DOM::execCommandNotImplemented):
42703        (DOM::queryBoolNotImplemented):
42704        (DOM::queryValueNotImplemented):
42705        (DOM::JSEditor::commandDict):
42706        (DOM::JSEditor::JSEditor):
42707        (DOM::JSEditor::~JSEditor):
42708        (DOM::JSEditor::commandIdentifier):
42709        (DOM::JSEditor::addCommand):
42710        (DOM::JSEditor::initDict):
42711        (DOM::JSEditor::execCommand):
42712        (DOM::JSEditor::queryCommandEnabled):
42713        (DOM::JSEditor::queryCommandIndeterm):
42714        (DOM::JSEditor::queryCommandState):
42715        (DOM::JSEditor::queryCommandSupported):
42716        (DOM::JSEditor::queryCommandValue):
42717        (DOM::JSEditor::execCommandCopy):
42718        (DOM::JSEditor::execCommandCut):
42719        (DOM::JSEditor::execCommandDelete):
42720        (DOM::JSEditor::execCommandInsertText):
42721        (DOM::JSEditor::execCommandPaste):
42722        (DOM::JSEditor::execCommandRedo):
42723        (DOM::JSEditor::execCommandSelectAll):
42724        (DOM::JSEditor::execCommandUndo):
42725        (DOM::JSEditor::enabledIfPartNotNull):
42726        (DOM::JSEditor::enabledIfSelectionNotEmpty):
42727        (DOM::JSEditor::enabledIfSelectionIsRange):
42728        (DOM::JSEditor::commandSupported):
42729        * khtml/editing/jsediting.h: Added.
42730        (DOM::JSEditor::CommandIdentifier::CommandIdentifier):
42731        (DOM::JSEditor::document):
42732        (DOM::JSEditor::part):
42733        * khtml/xml/dom_docimpl.cpp: Rework JS editing support into glue that calls over into new JSEditor object.
42734        (DocumentImpl::DocumentImpl):
42735        (DocumentImpl::~DocumentImpl):
42736        (DocumentImpl::jsEditor):
42737        (DocumentImpl::execCommand):
42738        (DocumentImpl::queryCommandEnabled):
42739        (DocumentImpl::queryCommandIndeterm):
42740        (DocumentImpl::queryCommandState):
42741        (DocumentImpl::queryCommandSupported):
42742        (DocumentImpl::queryCommandValue):
42743        * khtml/xml/dom_docimpl.h:
42744
427452004-06-03  Richard Williamson   <rjw@apple.com>
42746
42747	Added setCompositeOperation method to Context2D.
42748	Actually pass composite operation to drawPixmap (instead of 1).
42749
42750        Reviewed by jay lo.
42751
42752        * khtml/ecma/kjs_html.cpp:
42753        (KJS::Context2DFunction::tryCall):
42754        * khtml/ecma/kjs_html.h:
42755        (KJS::Context2D::):
42756        * khtml/ecma/kjs_html.lut.h:
42757        (KJS::):
42758        * kwq/KWQPainter.h:
42759        * kwq/KWQPainter.mm:
42760        (QPainter::compositeOperatorFromString):
42761        (QPainter::drawPixmap):
42762
427632004-06-03  David Hyatt  <hyatt@apple.com>
42764
42765	Add support for box-flex-group-transition (whew!), a new property that is going to enable some incredibly
42766	complicated flexing layouts in HTML.
42767
42768	This is Stage 1 - wire up the CSS property and make it get parsed into front-end data.  Nobody actually looks
42769	at this data yet.
42770	
42771        Reviewed by darin
42772
42773        * khtml/css/css_valueimpl.cpp:
42774        (CSSInheritedValueImpl::cssText):
42775        (ShadowValueImpl::cssText):
42776        (length):
42777        (FlexGroupTransitionValueImpl::~FlexGroupTransitionValueImpl):
42778        (FlexGroupTransitionValueImpl::cssText):
42779        * khtml/css/css_valueimpl.h:
42780        (DOM::FlexGroupTransitionValueImpl::cssValueType):
42781        * khtml/css/cssparser.cpp:
42782        (CSSParser::parseValue):
42783        (CSSParser::parseShadow):
42784        (FlexGroupTransitionParseContext::length):
42785        (FlexGroupTransitionParseContext::~FlexGroupTransitionParseContext):
42786        (FlexGroupTransitionParseContext::failed):
42787        (FlexGroupTransitionParseContext::allowGroup):
42788        (FlexGroupTransitionParseContext::commitGroup):
42789        (FlexGroupTransitionParseContext::commitSlash):
42790        (FlexGroupTransitionParseContext::commitLength):
42791        (FlexGroupTransitionParseContext::commitValue):
42792        (CSSParser::parseFlexGroupTransition):
42793        * khtml/css/cssparser.h:
42794        * khtml/css/cssproperties.c:
42795        (hash_prop):
42796        (findProp):
42797        * khtml/css/cssproperties.h:
42798        * khtml/css/cssproperties.in:
42799        * khtml/rendering/render_style.cpp:
42800        (StyleFlexibleBoxData::StyleFlexibleBoxData):
42801        (StyleFlexibleBoxData::operator==):
42802        (StyleFlexibleBoxData::transitionDataEquivalent):
42803        (StyleCSS3InheritedData::operator==):
42804        (StyleCSS3InheritedData::shadowDataEquivalent):
42805        (ShadowData::operator==):
42806        (RenderStyle::setBoxFlexGroupTransition):
42807        (length):
42808        (FlexGroupTransitionData::operator==):
42809        * khtml/rendering/render_style.h:
42810        (khtml::FlexGroupTransitionData::next):
42811        (khtml::FlexGroupTransitionData::~FlexGroupTransitionData):
42812        (khtml::FlexGroupTransitionData::operator!=):
42813        (khtml::StyleFlexibleBoxData::~StyleFlexibleBoxData):
42814        (khtml::RenderStyle::boxFlexGroupTransition):
42815
428162004-06-03  Richard Williamson   <rjw@apple.com>
42817
42818	Add extra sanity check to Image parameter of drawImage...
42819
42820        Reviewed by Hyatt.
42821
42822        * khtml/ecma/kjs_html.cpp:
42823        (KJS::Context2DFunction::tryCall):
42824
428252004-06-02  David Hyatt  <hyatt@apple.com>
42826
42827	Fix for 3673931, negative margins on objects that dodge floats not handled correctly.
42828	
42829        Reviewed by darin
42830
42831        * khtml/rendering/render_block.cpp:
42832        (khtml::RenderBlock::layoutBlockChildren):
42833
428342004-06-03  Ken Kocienda  <kocienda@apple.com>
42835
42836        Reviewed by Hyatt
42837
42838        Fix for layout regression I caused when fixing:
42839
42840        <rdar://problem/3668619>: "REGRESSION: text placed on pasteboard by WebKit is offset by one character"
42841
42842        Extra height is added to empty blocks that are editable, so we can click to place
42843        the caret in them. This extra height was erroneously being added to non-editable
42844        blocks as a result of my earlier change. After looking at this and doing some
42845        code review, there are the following changes:
42846        
42847        Change away from "containingBlock" terminology in the NodeImpl class. The
42848        operation we are doing in NodeImpl is not the same as what is done in CSS
42849        when it uses the term "containingBlock" so:
42850            containingBlock changes to enclosingBlockFlowElement, and
42851            rootEditableBlock changes to rootEditableElement
42852        
42853        The vast majority of changes here are to make these name changes. The other
42854        significant piece of work, and the fix for the regression, is to change 
42855        bidi.cpp to only include this extra line height if a block is empty
42856        and is content-editable.    
42857
42858        * khtml/editing/htmlediting_impl.cpp:
42859        (khtml::leadingWhitespacePosition):
42860        (khtml::trailingWhitespacePosition):
42861        (khtml::DeleteSelectionCommandImpl::doApply):
42862        (khtml::InputNewlineCommandImpl::doApply):
42863        (khtml::RemoveNodeAndPruneCommandImpl::doApply):
42864        (khtml::TypingCommandImpl::issueCommandForDeleteKey):
42865        * khtml/rendering/bidi.cpp:
42866        (khtml::RenderBlock::layoutInlineChildren):
42867        * khtml/xml/dom_docimpl.cpp:
42868        (DocumentImpl::relinquishesEditingFocus):
42869        (DocumentImpl::acceptsEditingFocus):
42870        * khtml/xml/dom_nodeimpl.cpp:
42871        * khtml/xml/dom_nodeimpl.h:
42872        * khtml/xml/dom_position.cpp:
42873        (DOM::Position::equivalentLeafPosition):
42874        (DOM::Position::previousCharacterPosition):
42875        (DOM::Position::nextCharacterPosition):
42876        (DOM::Position::previousLinePosition):
42877        (DOM::Position::nextLinePosition):
42878        (DOM::Position::equivalentUpstreamPosition):
42879        (DOM::Position::equivalentDownstreamPosition):
42880        (DOM::Position::atStartOfRootEditableElement):
42881        (DOM::Position::inRenderedContent):
42882        (DOM::Position::rendersOnSameLine):
42883        (DOM::Position::rendersInDifferentPosition):
42884        (DOM::Position::isLastRenderedPositionInEditableBlock):
42885        (DOM::Position::inFirstEditableInRootEditableElement):
42886        (DOM::Position::inLastEditableInRootEditableElement):
42887        (DOM::Position::inFirstEditableInContainingEditableBlock):
42888        (DOM::Position::inLastEditableInContainingEditableBlock):
42889        * khtml/xml/dom_position.h:
42890        * khtml/xml/dom_selection.cpp:
42891        (DOM::Selection::moveToRenderedContent):
42892
428932004-06-02  Trey Matteson  <trey@apple.com>
42894
42895	Added types property to JS clipboard object.
42896
42897        Reviewed by Richard.
42898
42899        * khtml/ecma/kjs_events.cpp:
42900        (Clipboard::getValueProperty):  Create JS array for strings coming from the clipboard impl.
42901        * khtml/ecma/kjs_events.h:
42902        (KJS::Clipboard::):
42903        * khtml/ecma/kjs_events.lut.h:
42904        * kwq/KWQClipboard.mm:
42905        (MIMETypeFromCocoaType):  New helper routine to map types.
42906        (KWQClipboard::types):  Implement based on NSPasteboard's types.
42907
429082004-06-02  Richard Williamson   <rjw@apple.com>
42909
42910	Corrected typo ID_IMG should have been ID_CANVAS when
42911	checking for the canvas composite operator.
42912
42913        Reviewed by Ken.
42914
42915        * khtml/rendering/render_canvasimage.cpp:
42916        (RenderCanvasImage::paint):
42917
429182004-06-02  Richard Williamson   <rjw@apple.com>
42919
42920	Correctly size the <CANVAS> if margins, borders, or
42921	padding is added.
42922
42923        Reviewed by Trey.
42924
42925        * khtml/rendering/render_canvasimage.cpp:
42926        (RenderCanvasImage::createDrawingContext):
42927
429282004-06-01  Trey Matteson  <trey@apple.com>
42929
42930	First cut at the source side of DHTML dragging.  Following IE, new events are added:
42931	ondragstart, ondrag, ondragend.  The recently added CSS property -khtml-user-drag can
42932	be used to make an element draggable.  event.dataTransfer.setDragImage(ImageObject,x,y)
42933	can be used from ondragstart to set a static image for the dragImage.  x,y is the location
42934	of the mouse within the image from the upper right corner.  clipboard methods setdata
42935	and cleardata are implemented.
42936
42937        Reviewed by hyatt.
42938
42939        * khtml/ecma/kjs_dom.cpp:
42940        (DOMNode::getValueProperty):  Boilerplate for new events
42941        (DOMNode::putValue):  Boilerplate for new events
42942        * khtml/ecma/kjs_dom.h:
42943        (KJS::DOMNode::):   Boilerplate for new events
42944        * khtml/ecma/kjs_dom.lut.h:
42945        * khtml/ecma/kjs_events.cpp:
42946        (DOMMouseEvent::getValueProperty):  Return undefined for clipboard when its not a drag event.
42947        (ClipboardProtoFunc::tryCall):  setDragImage glue to clipboard routine.
42948        * khtml/ecma/kjs_events.h:
42949        (KJS::Clipboard::):
42950        * khtml/ecma/kjs_events.lut.h:
42951        * khtml/html/html_elementimpl.cpp:
42952        (HTMLElementImpl::parseHTMLAttribute):  Boilerplate for new events
42953        * khtml/khtml_part.cpp:
42954        (KHTMLPart::shouldDragAutoNode):  Empty impl of new method, where UA determines
42955	draggability for events with -khtml-user-drag=auto
42956        * khtml/khtml_part.h:
42957        * khtml/misc/htmlattrs.c:
42958        * khtml/misc/htmlattrs.h:
42959        * khtml/misc/htmlattrs.in:  Boilerplate for new events
42960        * khtml/rendering/render_object.cpp:
42961        (RenderObject::draggableNode):  Find the node or parent node which might be dragged.
42962        * khtml/rendering/render_object.h:
42963        * khtml/xml/dom2_eventsimpl.cpp:
42964        (EventImpl::typeToId):  Boilerplate for new events
42965        (EventImpl::idToType):  Boilerplate for new events
42966        * khtml/xml/dom2_eventsimpl.h:
42967        (DOM::EventImpl::):  Boilerplate for new events
42968        * kwq/KWQClipboard.h:
42969        * kwq/KWQClipboard.mm:
42970        (KWQClipboard::clearData):  Implemented to call NSPasteboard
42971        (KWQClipboard::clearAllData): ditto
42972        (KWQClipboard::getData):  fix corner case that came up testing
42973        (KWQClipboard::setData):  Implemented to call NSPasteboard
42974        (KWQClipboard::dragLocation):  Simple setter/getters
42975        (KWQClipboard::setDragLocation):
42976        (KWQClipboard::dragImage):
42977        (KWQClipboard::setDragImage):
42978        (KWQClipboard::dragNSImage):
42979        * kwq/KWQKHTMLPart.h:
42980        * kwq/KWQKHTMLPart.mm:
42981        (KWQKHTMLPart::KWQKHTMLPart): init new member var
42982        (KWQKHTMLPart::dragHysteresisExceeded):  Hysteresis moved here from WebKit
42983        (KWQKHTMLPart::dispatchDragSrcEvent):  Send a dragging event to the current dragSource
42984        (KWQKHTMLPart::khtmlMouseMoveEvent):  Initiate dragging, now including consulting DHTML,
42985	hysteresis and sending ondragstart.
42986        (KWQKHTMLPart::dragSourceMovedTo):  simple passthrough
42987        (KWQKHTMLPart::dragSourceEndedAt):  simple passthrough
42988        (KWQKHTMLPart::mouseDown):  salt away _mouseDownX, _mouseDownY
42989        (KWQKHTMLPart::shouldDragAutoNode):  Called for -khtml-user-drag=auto.  We just call
42990	out to WebKit.
42991        * kwq/WebCoreBridge.h:
42992        * kwq/WebCoreBridge.mm:
42993        (-[WebCoreBridge dragSourceMovedTo:]):  New glue to drive new dragging events.
42994        (-[WebCoreBridge dragSourceEndedAt:operation:]):
42995
429962004-06-02  Ken Kocienda  <kocienda@apple.com>
42997
42998        Finish off name change from previous check-in by changing dom_edititerator
42999        file names to dom_positioniterator. Files copied and renamed in repository.
43000        Includes updated as needed.
43001
43002        * ForwardingHeaders/xml/dom_edititerator.h: Removed.
43003        * ForwardingHeaders/xml/dom_positioniterator.h: Added.
43004        * WebCore.pbproj/project.pbxproj:
43005        * khtml/editing/htmlediting_impl.cpp:
43006        * khtml/xml/dom_edititerator.cpp: Removed.
43007        * khtml/xml/dom_edititerator.h: Removed.
43008        * khtml/xml/dom_position.cpp:
43009        * khtml/xml/dom_positioniterator.cpp: Added.
43010        (DOM::PositionIterator::peekPrevious):
43011        (DOM::PositionIterator::peekNext):
43012        (DOM::PositionIterator::atStart):
43013        (DOM::PositionIterator::atEnd):
43014        * khtml/xml/dom_positioniterator.h: Added.
43015        (DOM::PositionIterator::PositionIterator):
43016        (DOM::PositionIterator::current):
43017        (DOM::PositionIterator::previous):
43018        (DOM::PositionIterator::next):
43019        (DOM::PositionIterator::setPosition):
43020        (DOM::PositionIterator::isEmpty):
43021        * khtml/xml/dom_selection.cpp:
43022
430232004-06-02  Ken Kocienda  <kocienda@apple.com>
43024
43025        Reviewed by Darin
43026
43027        Probable fix for this bug:
43028        
43029        <rdar://problem/3668619>: "REGRESSION: text placed on pasteboard by WebKit is offset by one character"
43030        
43031        I could not reproduce the bug myself, which is why I call the fix
43032        as probable.
43033        
43034        Darin and I did some code inspection and found some problems
43035        with the equivalentUpstreamPosition and
43036        equivalentDownstreamPosition functions on DOM::Position and how
43037        these functions dealt with changing from editable to
43038        non-editable content. As a result of these discoveries, I went
43039        over this code and the helpers and functions which support them,
43040        and made some corrections and simplifications. The big changes
43041        are as follows:
43042        
43043        1. Rename EditIterator class to PositionIterator. This class needs
43044        to run code for selections in non-editable content, so the name
43045        change is appropriate.
43046        
43047        2. Change containingEditableBlock to containingBlock. It turns out
43048        that none of the editing code relies on the distinction between
43049        editable blocks and non-editable blocks. The important distinction
43050        is the block boundary. The notion of rootEditableBlock remains.
43051         
43052        * khtml/editing/htmlediting_impl.cpp:
43053        (khtml::DeleteCollapsibleWhitespaceCommandImpl::deleteWhitespace): PositionIterator name change.
43054        (khtml::DeleteSelectionCommandImpl::joinTextNodesWithSameStyle): Ditto.
43055        (khtml::DeleteSelectionCommandImpl::containsOnlyWhitespace): Ditto.
43056        (khtml::DeleteSelectionCommandImpl::doApply): Ditto.
43057        (khtml::InputNewlineCommandImpl::doApply): Ditto.
43058        (khtml::RemoveNodeAndPruneCommandImpl::doApply): Ditto.
43059        * khtml/rendering/bidi.cpp:
43060        (khtml::RenderBlock::layoutInlineChildren): Ditto.
43061        * khtml/xml/dom_edititerator.cpp:
43062        (DOM::PositionIterator::peekPrevious): Call for previousLeafNode instead of previousEditable.
43063        Editable check is not appropriate as this class is used for non-editable content.
43064        (DOM::PositionIterator::peekNext): Call nextLeafNode instead of nextEditable, as above.
43065        (DOM::PositionIterator::atStart): Call for previousLeafNode instead of previousEditable, as above.
43066        (DOM::PositionIterator::atEnd): Call nextLeafNode instead of nextEditable, as above.
43067        * khtml/xml/dom_edititerator.h:
43068        (DOM::PositionIterator::PositionIterator): PositionIterator name change. Remove unused and unneeded constructors.
43069        * khtml/xml/dom_nodeimpl.cpp:
43070        (NodeImpl::previousEditable): Simplify. Rely on previousLeafNode as a helper.
43071        (NodeImpl::nextEditable): Ditto, but rely on nextLeafNode.
43072        (NodeImpl::previousLeafNode): Remove tree-walking code. Rely on traversePreviousNode as a helper.
43073        (NodeImpl::nextLeafNode): Ditto, but rely on traverseNextNode.
43074        (NodeImpl::containingBlock): Renamed replacement for containingEditableBlock.
43075        (NodeImpl::inSameContainingEditableBlock): Call renamed containingBlock.
43076        * khtml/xml/dom_nodeimpl.h:
43077        * khtml/xml/dom_position.cpp:
43078        (DOM::Position::previousCharacterPosition): Various name changes, as described above.
43079        (DOM::Position::nextCharacterPosition): Ditto.
43080        (DOM::Position::previousWordPosition): Ditto.
43081        (DOM::Position::nextWordPosition): Ditto.
43082        (DOM::Position::previousLinePosition): Ditto.
43083        (DOM::Position::nextLinePosition): Ditto.
43084        (DOM::Position::equivalentUpstreamPosition): Remove bogus check for editable node in loop. Perform
43085        improved block-crossing check at start of loop which works for editable and non-editable content.
43086        This is the crux of the fix for the bug.
43087        (DOM::Position::equivalentDownstreamPosition): Ditto.
43088        (DOM::Position::inRenderedContent): Various name changes, as described above.
43089        (DOM::Position::rendersOnSameLine): Ditto.
43090        (DOM::Position::rendersInDifferentPosition): Ditto.
43091        (DOM::Position::isFirstRenderedPositionOnLine): Ditto.
43092        (DOM::Position::isLastRenderedPositionOnLine): Ditto.
43093        (DOM::Position::isLastRenderedPositionInEditableBlock): Ditto.
43094        (DOM::Position::inFirstEditableInRootEditableBlock): Ditto.
43095        (DOM::Position::inLastEditableInRootEditableBlock): Ditto.
43096        (DOM::Position::inFirstEditableInContainingEditableBlock): Ditto.
43097        (DOM::Position::inLastEditableInContainingEditableBlock): Ditto.
43098
430992004-06-01  Richard Williamson   <rjw@apple.com>
43100
43101        Fixed deployment build warning.
43102
43103        * khtml/rendering/render_canvasimage.cpp:
43104        (RenderCanvasImage::paint):
43105
431062004-06-01  Richard Williamson   <rjw@apple.com>
43107
43108        Added support for composite attribute to <CANVAS>
43109        Added support for drawImage and drawImageFromRect to <CANVAS>, i.e.:
43110
43111            <html>
43112            <head>
43113            <script>
43114            
43115            var img = new Image(600,600);
43116            
43117            function drawImage()
43118            {
43119                    var aCanvas = document.getElementById ("canvas1");
43120                    var context = aCanvas.getContext("context-2d");
43121                    context.drawImage (img, 0, 0, 600, 600, "copy");
43122            }
43123            
43124            img.onload = drawImage;
43125            img.src = "http://www.google.com/images/logo.gif";
43126            
43127            </script>
43128            </head>
43129            <body>
43130            <canvas id="canvas1" width=600 height=600>
43131            </body>
43132            <html>
43133
43134        Reviewed by Trey.
43135
43136        * khtml/ecma/kjs_html.cpp:
43137        (KJS::Context2DFunction::tryCall):
43138        (Context2D::Context2D):
43139        * khtml/ecma/kjs_html.h:
43140        * khtml/rendering/render_canvasimage.cpp:
43141        (RenderCanvasImage::paint):
43142        * kwq/KWQPainter.h:
43143        * kwq/KWQPainter.mm:
43144        (QPainter::getCompositeOperation):
43145        (QPainter::setCompositeOperation):
43146        (QPainter::drawPixmap):
43147        (QPainter::drawTiledPixmap):
43148        * kwq/KWQPixmap.h:
43149        * kwq/KWQPixmap.mm:
43150        (QPixmap::flushRasterCache):
43151        * kwq/WebCoreImageRenderer.h:
43152        * kwq/WebCoreImageRendererFactory.h:
43153
431542004-06-01  Ken Kocienda  <kocienda@apple.com>
43155
43156        Reviewed by Darin
43157
43158        Fix for these bugs:
43159        
43160        <rdar://problem/3655028>: "Text styles have hard-coded values making bold the only supported text style"
43161        <rdar://problem/3656969>: "HTML Editing: Font panel doesn't work"
43162
43163        * khtml/css/css_valueimpl.cpp:
43164        (FontFamilyValueImpl::cssText): Added implementation for this subclass. Returns parsedFontName.  
43165        * khtml/css/css_valueimpl.h: Declare cssText() on FontFamilyValueImpl.
43166        (DOM::CSSProperty::value):
43167        * khtml/editing/htmlediting.cpp:
43168        (khtml::ApplyStyleCommand::ApplyStyleCommand): Changed signature to take a CSSStyleDeclarationImpl.
43169        (khtml::ApplyStyleCommand::style): Added accessor.
43170        * khtml/editing/htmlediting.h: Changed constructor signature to take a CSSStyleDeclarationImpl.
43171        * khtml/editing/htmlediting_impl.cpp:
43172        (khtml::styleSpanClassString): Added helper to return attribute used to tag spans we add to apply styles.
43173        (khtml::ApplyStyleCommandImpl::ApplyStyleCommandImpl): Ref style passed in.
43174        (khtml::ApplyStyleCommandImpl::~ApplyStyleCommandImpl): Deref style passed in.
43175        (khtml::ApplyStyleCommandImpl::doApply): m_removingStyle is obsolete. Removed.
43176        (khtml::ApplyStyleCommandImpl::isHTMLStyleNode): Now checks all properties in the object's declaration.
43177        (khtml::ApplyStyleCommandImpl::removeCSSStyle): Again, now is multi-property-savvy. Will now remove an empty span
43178        if we added it.
43179        (khtml::ApplyStyleCommandImpl::currentlyHasStyle): Replaced, bold-only code with code that can handle all styles.
43180        (khtml::ApplyStyleCommandImpl::computeStyleChange): Helper which helps to determine whether we want to apply
43181        HTML-style markup for bold and italic, and gathers up all style changes that need to be done.
43182        (khtml::ApplyStyleCommandImpl::positionInsertionPoint): Added comment explaining possible optimization that might be
43183        done in the future.
43184        (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded): Significant reworking; now handles applying multiple styles.
43185        (khtml::ApplyStyleCommandImpl::cloneSelection): Assert fragment has at least one child. Don't want to work
43186        on empty fragments.
43187        (khtml::ApplyStyleCommandImpl::surroundContentsWithElement): New helper.
43188        (khtml::RemoveCSSPropertyCommandImpl::~RemoveCSSPropertyCommandImpl): Juggle asserts and lifecycle methods to be
43189        more like other commands.
43190        (khtml::RemoveCSSPropertyCommandImpl::doApply): Ditto.
43191        (khtml::RemoveNodeAttributeCommandImpl::~RemoveNodeAttributeCommandImpl): Ditto.
43192        (khtml::RemoveNodeAttributeCommandImpl::doApply):Ditto.
43193        * khtml/editing/htmlediting_impl.h:
43194        (khtml::ApplyStyleCommandImpl::style): Added.
43195        (khtml::ApplyStyleCommandImpl::StyleChange::StyleChange): Added.
43196        * kwq/DOM-CSS.mm:
43197        (-[DOMCSSStyleDeclaration setProperty:::]): Fix problem where passing an empty NSString to a function expecting a boolean
43198        made all properties important priority.
43199        * kwq/WebCoreBridge.mm:
43200        (-[WebCoreBridge applyStyle:]): Remove provisional code and comment. Now pass along style, following the intended design.
43201
432022004-06-01  Chris Blumenberg  <cblu@apple.com>
43203
43204        Reviewed by kocienda.
43205
43206        * kwq/WebCoreBridge.h:
43207        * kwq/WebCoreBridge.mm:
43208        (-[WebCoreBridge dragCaretDOMRange]): new, lets WebKit pass the drag caret DOM range to the editing delegate
43209
432102004-05-28  John Louch  <ouch@apple.com>
43211
43212        Reviewed by gramps.
43213
43214        - removed setShadowWithColor and change setShadow to work with optional attributes
43215          it follows the same rules as setFill/StrokeColor
43216        - Fixed bug in setFillColor and setStrokeColor for CMYK colors (missing break in case).
43217
43218        * khtml/ecma/kjs_html.cpp:
43219        (KJS::Context2DFunction::tryCall):
43220        * khtml/ecma/kjs_html.h:
43221        (KJS::Context2D::):
43222        * khtml/ecma/kjs_html.lut.h:
43223        (KJS::):
43224
432252004-05-28  Darin Adler  <darin@apple.com>
43226
43227        Reviewed by Ken.
43228
43229        - various editing-related improvements
43230
43231        * khtml/xml/dom_selection.h: Removed UP and DOWN directions, and added PARAGRAPH granularity.
43232        * khtml/xml/dom_selection.cpp:
43233        (DOM::Selection::modify): Got rid of the UP and DOWN directions, and made movement
43234        between lines happen when granularity is LINE. Added a new unimplemented granularity:
43235        PARAGRAPH.
43236        (DOM::Selection::validate): Remove some unneeded APPLE_CHANGES. The code need not be ifdef'd.
43237        (DOM::Selection::debugPosition): Ditto.
43238
43239        * kwq/WebCoreBridge.h: Removed WebSelectUp and WebSelectDown, and added WebSelectByParagraph.
43240        Added stringForRange: and selectedDOMRangeWithGranularity:, and renamed replaceSelectionWithNewline
43241        to insertNewline because it has the insertText: semantic, not the replaceSelectionWithText: one.
43242        * kwq/WebCoreBridge.mm:
43243        (-[WebCoreBridge stringForRange:]): Added.
43244        (-[WebCoreBridge selectedDOMRangeWithGranularity:]): Added.
43245        (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Updated code to understand
43246        that vertical movement is based on granularity now, not direction.
43247        (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:]): Moved an ensureCaretVisible
43248        from the WebKit down here. I think perhaps this should go down even further in WebCore.
43249        (-[WebCoreBridge insertNewline]): Renamed, and moved ensureCaretVisible here.
43250        (-[WebCoreBridge insertText:]): Moved ensureCaretVisible here.
43251        (-[WebCoreBridge deleteKeyPressed]): Moved ensureCaretVisible here.
43252
43253        * khtml/xml/dom_position.cpp: Some ifdef tweaks.
43254
43255        * khtml/misc/helper.cpp: Namespace and formatting tweaks.
43256        * khtml/misc/helper.h: Removed some unused stuff.
43257
43258        * khtml/dom/dom2_range.h: Make range constructor public so that anyone with
43259        a RangeImpl can easily make a Range.
43260
432612004-05-28  Richard Williamson   <rjw@apple.com>
43262
43263	setStrokeColor and setFillColor now support
43264	old school web color string, oswcs+alpha, gray, gray+alpha,
43265	rgba, and cmyka.
43266
43267        Reviewed by jay-lo.
43268
43269        * khtml/css/cssparser.cpp:
43270        (CSSParser::parseColor):
43271        (CSSParser::parseColorFromValue):
43272        * khtml/css/cssparser.h: Made parseColor static public class method
43273        * khtml/ecma/kjs_html.cpp:
43274        (KJS::Context2DFunction::tryCall):
43275
432762004-05-28  David Hyatt  <hyatt@apple.com>
43277
43278	Implement -khtml-user-select and add support for the property -khtml-user-drag (although someone will still
43279	need to wire it up).
43280	
43281        Reviewed by rjw
43282
43283        * khtml/css/cssparser.cpp:
43284        (CSSParser::parseValue):
43285        * khtml/css/cssproperties.c:
43286        (hash_prop):
43287        (findProp):
43288        * khtml/css/cssproperties.h:
43289        * khtml/css/cssproperties.in:
43290        * khtml/css/cssstyleselector.cpp:
43291        (khtml::CSSStyleSelector::applyProperty):
43292        * khtml/css/cssvalues.c:
43293        (hash_val):
43294        (findValue):
43295        * khtml/css/cssvalues.h:
43296        * khtml/css/cssvalues.in:
43297        * khtml/khtml_part.cpp:
43298        (KHTMLPart::handleMousePressEventDoubleClick):
43299        (KHTMLPart::handleMousePressEventTripleClick):
43300        (KHTMLPart::handleMousePressEventSingleClick):
43301        (KHTMLPart::handleMouseMoveEventSelection):
43302        * khtml/rendering/render_canvas.cpp:
43303        (RenderCanvas::setSelection):
43304        * khtml/rendering/render_object.cpp:
43305        (RenderObject::shouldSelect):
43306        * khtml/rendering/render_object.h:
43307        * khtml/rendering/render_style.cpp:
43308        (userSelect):
43309        (StyleCSS3NonInheritedData::operator==):
43310        (RenderStyle::diff):
43311        * khtml/rendering/render_style.h:
43312        (khtml::):
43313        (khtml::RenderStyle::userDrag):
43314        (khtml::RenderStyle::userSelect):
43315        (khtml::RenderStyle::setUserDrag):
43316        (khtml::RenderStyle::setUserSelect):
43317        (khtml::RenderStyle::initialUserDrag):
43318        (khtml::RenderStyle::initialUserSelect):
43319
433202004-05-28  John Louch  <set EMAIL_ADDRESS environment variable>
43321	added addArc and clip path routines.
43322
43323        Reviewed by sullivan.
43324
43325        * khtml/ecma/kjs_html.cpp:
43326        (KJS::Context2DFunction::tryCall):
43327        * khtml/ecma/kjs_html.h:
43328        (KJS::Context2D::):
43329        * khtml/ecma/kjs_html.lut.h:
43330        (KJS::):
43331
433322004-05-28  John Louch  <ouch@apple.com>
43333
43334	Added addArcToPoint and addRect path routines.
43335
43336        Reviewed by sullivan.
43337
43338        * khtml/ecma/kjs_html.cpp:
43339        (KJS::Context2DFunction::tryCall):
43340        * khtml/ecma/kjs_html.h:
43341        (KJS::Context2D::):
43342        * khtml/ecma/kjs_html.lut.h:
43343        (KJS::):
43344
433452004-05-27  Ken Kocienda  <kocienda@apple.com>
43346
43347        Reviewed by John
43348
43349        * khtml/xml/dom_selection.cpp:
43350        (DOM::Selection::toRange): Add call to update document layout before returning a Range.
43351        This is done to ensure recently-done editing changes are reflected in the calculation
43352        of the Range. This change solves a specific problem with updating the font panel, where
43353        the wrong Range was used, resulting in an incorrect font. Also, defer converting 
43354        positions to be range-compliant positions. The nodeIsBeforeNode function is not 
43355        range-compliant-position-savvy.
43356
433572004-05-27  Kevin Decker  <kdecker@apple.com>
43358
43359        Reviewed by Ken.
43360        
43361        - added support for the new JavaScript error console
43362        - error messages are now wired directly to the bridge
43363        - revised generated error message content
43364        
43365        * khtml/ecma/kjs_events.cpp:
43366        (JSEventListener::handleEvent):
43367        * khtml/ecma/kjs_proxy.cpp:
43368        (KJSProxyImpl::evaluate):
43369        * khtml/ecma/kjs_window.cpp:
43370        (Window::isSafeScript):
43371        (ScheduledAction::execute):
43372        * kwq/KWQKHTMLPart.h:
43373        * kwq/KWQKHTMLPart.mm:
43374        (KWQKHTMLPart::addMessageToConsole):
43375        * kwq/WebCoreBridge.h:
43376        * kwq/WebCoreBridge.mm:
43377
433782004-05-27  Trey Matteson  <trey@apple.com>
43379
43380	Two dragging tweaks:  ondragleave events are sent before ondragenter events when
43381	going across element boundaries, to match WinIE.
43382	For compatibility with WinIE, we honor MIME types of "Text" and "URL".
43383
43384        Reviewed by rjw.
43385
43386        * khtml/khtmlview.cpp:
43387        (KHTMLView::updateDragAndDrop):
43388        * kwq/KWQClipboard.mm:
43389        (cocoaTypeFromMIMEType):
43390
43391=== Safari-142 ===
43392
433932004-05-27  Vicki Murley <vicki@apple.com>
43394
43395        Reviewed by Darin.
43396
43397	- Fix Tiger build failure.  Rename constant "S" to "WHITESPACE",
43398	and change all instances of S to WHITESPACE.
43399
43400        * khtml/css/cssparser.cpp:
43401        (DOM::CSSParser::lex): S to WHITESPACE
43402        * khtml/css/parser.cpp: regenerated file
43403        * khtml/css/parser.h: regenerated file
43404        * khtml/css/parser.y: S to WHITESPACE
43405        * khtml/css/tokenizer.cpp: regenerated file
43406        * khtml/css/tokenizer.flex: S to WHITESPACE
43407
434082004-05-27  John Louch  <set EMAIL_ADDRESS environment variable>
43409
43410        * khtml/ecma/kjs_html.cpp:
43411        (KJS::Context2DFunction::tryCall):
43412        * khtml/ecma/kjs_html.h:
43413        (KJS::Context2D::):
43414        * khtml/ecma/kjs_html.lut.h:
43415        (KJS::):
43416
434172004-05-27  Trey Matteson  <trey@apple.com>
43418
43419 	First cut at DHTML dragging, destination side.  Dragging text, files
43420        and URLs onto elements works.  Type conversion from NSPasteboard to
43421	MIME types is hardwired.  No JS access yet to modifier keys, or
43422	drag operations mask.
43423
43424	Per IE's dragging API, we have the new DOM events ondragenter,
43425	ondragover, ondragleave and ondrop.
43426	We also have an event.dataTransfer object providing access to the
43427	NSPasteboard bearing the incoming data.
43428
43429        Reviewed by rjw.
43430
43431        * WebCore.pbproj/project.pbxproj:  add 2 new files.
43432        * khtml/ecma/kjs_dom.cpp:
43433        (DOMNode::getValueProperty):  JS access to ondragenter and pals
43434        (DOMNode::putValue):  Ditto
43435        * khtml/ecma/kjs_dom.h:
43436        (KJS::DOMNode::):  New attr enum values.
43437        * khtml/ecma/kjs_dom.lut.h:
43438        (KJS::):
43439        * khtml/ecma/kjs_events.cpp:
43440        (DOMMouseEvent::mark):  Pass along mark to dataTransfer we hold.
43441        (DOMMouseEvent::getValueProperty):  Create and return dataTransfer.
43442        (Clipboard::Clipboard):  New class exposed in JS.
43443        (Clipboard::~Clipboard):
43444        (Clipboard::tryGet):  Boilerplate.
43445        (Clipboard::getValueProperty):  Return the clipboard's props.
43446        (Clipboard::tryPut):  Boilerplate.
43447        (Clipboard::putValue):  Set the clipboard's props.
43448        (ClipboardProtoFunc::tryCall): Implement clipboard's funcs.
43449        * khtml/ecma/kjs_events.h:
43450        (KJS::DOMMouseEvent::DOMMouseEvent):  Init clipboard ptr.
43451        (KJS::DOMMouseEvent::):
43452        (KJS::Clipboard::toBoolean):
43453        (KJS::Clipboard::classInfo):
43454        (KJS::Clipboard::):
43455        * khtml/ecma/kjs_events.lut.h:
43456        (KJS::):
43457        * khtml/html/html_elementimpl.cpp:
43458        (HTMLElementImpl::parseHTMLAttribute):  Enable setting ondragenter
43459	and friends as html attributes.
43460        * khtml/khtmlview.cpp:
43461        (KHTMLView::dispatchDragEvent):  Send a drag related event to the DOM.
43462        (KHTMLView::updateDragAndDrop):  Handle a dragenter or dragupdate.
43463        (KHTMLView::cancelDragAndDrop):  Handle a dragexit.
43464        (KHTMLView::performDragAndDrop):  Handle an actual drop.
43465        * khtml/khtmlview.h:
43466        * khtml/misc/htmlattrs.c:  Generated code.
43467        * khtml/misc/htmlattrs.h:  Generated code.
43468        * khtml/misc/htmlattrs.in:  Add ondragenter, etc
43469        * khtml/xml/dom2_eventsimpl.cpp:
43470        (EventImpl::typeToId):  Handle new event types for dragging.
43471        (EventImpl::idToType):  Ditto.
43472        (MouseEventImpl::MouseEventImpl):  Init new clipboard ptr.
43473        (MouseEventImpl::~MouseEventImpl):  Deref clipboard.
43474        (ClipboardImpl::ClipboardImpl):
43475        (ClipboardImpl::~ClipboardImpl):
43476        * khtml/xml/dom2_eventsimpl.h:
43477        (DOM::EventImpl::):  New event enums.
43478        (DOM::MouseEventImpl::clipboard):
43479        * kwq/KWQClipboard.h: Added.
43480        * kwq/KWQClipboard.mm: Added.
43481        (KWQClipboard::KWQClipboard):
43482        (KWQClipboard::~KWQClipboard):
43483        (KWQClipboard::isForDragging): Trivial getter/setters.
43484        (KWQClipboard::dropEffect):
43485        (KWQClipboard::setDropEffect):
43486        (KWQClipboard::dropAllowed):
43487        (KWQClipboard::setDropAllowed):
43488        (cocoaTypeFromMIMEType):  Convert MIME pboard type to Cocoa type.
43489        (KWQClipboard::clearData):  OSX specific clipboard impl. of IE func
43490        (KWQClipboard::clearAllData):   Ditto
43491        (KWQClipboard::getData): Ditto
43492        (KWQClipboard::setData): Ditto
43493        * kwq/WebCoreBridge.h:
43494        * kwq/WebCoreBridge.mm:
43495        (-[WebCoreBridge dragOperationForDraggingInfo:]):  Passthrough from WebKit to khtmlpart
43496        (-[WebCoreBridge dragExitedWithDraggingInfo:]):  Ditto
43497        (-[WebCoreBridge concludeDragForDraggingInfo:]): Ditto
43498
434992004-05-27  Ken Kocienda  <kocienda@apple.com>
43500
43501        Reviewed by Gramps
43502
43503        * kwq/KWQKHTMLPart.h: Declare new fontForCurrentPosition helper.
43504        * kwq/KWQKHTMLPart.mm:
43505        (KWQKHTMLPart::fontForCurrentPosition): Determines the "current font" in the way that Cocoa
43506        does. Either the font of the character before the caret, when the selection is a caret, or
43507        the font of the first character selected, when the selection is a range.
43508        * kwq/WebCoreBridge.h: Declare bridge method so this can be called from WebKit.
43509        * kwq/WebCoreBridge.mm:
43510        (-[WebCoreBridge fontForCurrentPosition]): Calls through to fontForCurrentPosition on KWQKHTMLPart.
43511
435122004-05-27  Ken Kocienda  <kocienda@apple.com>
43513
43514        Reviewed by Gramps
43515        
43516        Adds a typing style member variable to khtml part.
43517        This patch adds basic life-cycle management and 
43518        accessors. In addition, one essential piece of
43519        behavior has been added: Clearing the typing style
43520        whenever the selection changes.
43521
43522        Follow-on work will make this typing style a fully 
43523        functional part of applying styles to text while typing.
43524
43525        * khtml/khtml_part.cpp:
43526        (KHTMLPart::notifySelectionChanged): Clear typing style.
43527        (KHTMLPart::typingStyle): Getter.
43528        (KHTMLPart::setTypingStyle): Setter.
43529        (KHTMLPart::clearTypingStyle): Convenience. Sets to 0.
43530        * khtml/khtml_part.h: Function declarations.
43531        * khtml/khtmlpart_p.h:
43532        (KHTMLPartPrivate::KHTMLPartPrivate): Initialize member variable.
43533        (KHTMLPartPrivate::~KHTMLPartPrivate): Deref if necessary.
43534
435352004-05-27  Ken Kocienda  <kocienda@apple.com>
43536
43537        Reviewed by Gramps
43538
43539        Add helper to get the DOM element for a Position.
43540        
43541        * khtml/xml/dom_position.cpp:
43542        (DOM::Position::element): Returns the Position's node if it is an element, or
43543        the first ancestor of the node that is an element. Returns 0 if node is not
43544        an element and has no parent that is an element.
43545        * khtml/xml/dom_position.h: Added declaration.
43546
435472004-05-27  Darin Adler  <darin@apple.com>
43548
43549        Reviewed by Maciej.
43550
43551        - moved to new symlink technique for embedding frameworks
43552
43553        * WebCore.pbproj/project.pbxproj: Get rid of embed-frameworks build step
43554        because we don't need it any more.
43555
435562004-05-27  Darin Adler  <darin@apple.com>
43557
43558        - fixed bug where all pages with images would cause a crash
43559        - fixed Deployment build
43560
43561        * kwq/KWQPainter.mm: (QPainter::drawPixmap): Put #if 0 around placeholder code
43562        for setting up the graphics context.
43563
435642004-05-26  Richard Williamson   <rjw@apple.com>
43565
43566	Added shadow support (w/ Louch).
43567	Added infrastructure for drawing images.
43568
43569	New context methods:
43570
43571	setShadow
43572	setShadowWithColor
43573	clearShadow
43574
43575	Reviewed by me and Louch.
43576
43577        * khtml/ecma/kjs_html.cpp:
43578        (KJS::Context2DFunction::tryCall):
43579        * khtml/ecma/kjs_html.h:
43580        (KJS::Image::image):
43581        (KJS::Context2D::):
43582        * khtml/ecma/kjs_html.lut.h:
43583        (KJS::):
43584        * kwq/KWQPainter.h:
43585        * kwq/KWQPainter.mm:
43586        (QPainter::drawPixmap):
43587
435882004-05-26  Richard Williamson   <rjw@apple.com>
43589
43590	Fixed build snafu.
43591
43592        * khtml/ecma/kjs_html.cpp:
43593        (KJS::Context2DFunction::tryCall):
43594        * khtml/ecma/kjs_html.h:
43595        (KJS::Context2D::):
43596        * khtml/ecma/kjs_html.lut.h:
43597        (KJS::):
43598
435992004-05-26  Richard Williamson   <rjw@apple.com>
43600
43601	Part 2 of the new <CANVAS> tag implementation.  This adds the 
43602	basic machinery and draw operations for the <CANVAS> tag.  Pretty cool.  
43603
43604        function drawLine() {
43605	    var canvas1 = document.getElementById ("canvas1");
43606	    var context = canvas1.getContext("context-2d");
43607
43608	    context.setStrokeColor ("red");
43609	    context.setLineWidth (10);
43610	    context.beginPath();
43611	    context.moveToPoint (0,0);
43612	    context.addLineToPoint (400,400);
43613	    context.strokePath();
43614        }
43615
43616        ...
43617
43618        <canvas id="canvas1" width="400" height="400">
43619
43620Currently supported operations on the 2D context are:
43621
43622Save, Restore,
43623Scale, Rotate, Translate,
43624BeginPath, ClosePath,
43625SetStrokeColor, SetFillColor, SetLineWidth, SetLineCap, SetLineJoin, SetMiterLimit,
43626FillPath, StrokePath,
43627MoveToPoint, AddLineToPoint, AddQuadraticCurveToPoint, AddBezierCurveToPoint,
43628ClearRect
43629
43630	More to come.
43631
43632        Reviewed by Dave.
43633
43634        * khtml/ecma/kjs_html.cpp:
43635        (KJS::HTMLElementFunction::tryCall):
43636        (KJS::Context2DFunction::tryCall):
43637        (Context2D::tryGet):
43638        (Context2D::getValueProperty):
43639        (Context2D::tryPut):
43640        (Context2D::putValue):
43641        (Context2D::Context2D):
43642        (Context2D::~Context2D):
43643        * khtml/ecma/kjs_html.h:
43644        (KJS::Context2D::toBoolean):
43645        (KJS::Context2D::classInfo):
43646        (KJS::Context2D::):
43647        * khtml/ecma/kjs_html.lut.h:
43648        (KJS::):
43649        * khtml/html/html_canvasimpl.cpp:
43650        (HTMLCanvasElementImpl::HTMLCanvasElementImpl):
43651        * khtml/html/htmlparser.cpp:
43652        (KHTMLParser::getElement):
43653        * khtml/rendering/render_canvasimage.cpp:
43654        (RenderCanvasImage::RenderCanvasImage):
43655        (RenderCanvasImage::~RenderCanvasImage):
43656        (RenderCanvasImage::createDrawingContext):
43657        (RenderCanvasImage::drawingContext):
43658        (RenderCanvasImage::setNeedsImageUpdate):
43659        (RenderCanvasImage::updateDrawnImage):
43660        (RenderCanvasImage::drawnImage):
43661        (RenderCanvasImage::paint):
43662        (RenderCanvasImage::layout):
43663        * khtml/rendering/render_canvasimage.h:
43664        * khtml/rendering/render_image.cpp:
43665        (RenderImage::paint):
43666        * khtml/rendering/render_image.h:
43667        * khtml/rendering/render_replaced.cpp:
43668        (RenderReplaced::shouldPaint):
43669        (RenderWidget::paint):
43670        * kwq/KWQPainter.h:
43671        * kwq/KWQPainter.mm:
43672        (QPainter::currentContext):
43673
436742004-05-26  Darin Adler  <darin@apple.com>
43675
43676        - fixed warning that prevents Deployment build from compiling
43677
43678        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::khtmlMousePressEvent):
43679        Moved use of single-click boolean outside the scope of the "block exceptions" macros.
43680
436812004-05-25  Chris Blumenberg  <cblu@apple.com>
43682
43683	Fixed a regression where selections that were created via double or triple were not draggable.
43684
43685        Reviewed by darin.
43686
43687        * kwq/KWQKHTMLPart.mm:
43688        (KWQKHTMLPart::khtmlMousePressEvent): if the click count is greater than 1, don't allow drags
43689        (KWQKHTMLPart::khtmlMouseMoveEvent): allow drags to occur even if the selection was originally created via double or triple click
43690
436912004-05-25  Chris Blumenberg  <cblu@apple.com>
43692
43693	Fixed regression where undoing typing would undo character-by-character.
43694
43695        Reviewed by kocienda.
43696
43697        * kwq/WebCoreBridge.h:
43698        * kwq/WebCoreBridge.mm:
43699        (-[WebCoreBridge insertText:]): new, this method used to be replaceSelectionWithText, but replaceSelectionWithText now is one operation whereas calls to insertText: are coalesced
43700
437012004-05-25  Ken Kocienda  <kocienda@apple.com>
43702
43703        Reviewed by John
43704
43705        Change postDidChangeSelectionNotification and postDidChangeNotification tp
43706        respondToChangedSelection and respondToChangedContents, respectively, to
43707        account for the fact that we do work in these calls other than post a
43708        notification.
43709
43710        * khtml/khtml_part.cpp:
43711        (KHTMLPart::notifySelectionChanged): Use new names.
43712        (KHTMLPart::appliedEditing): Ditto.
43713        (KHTMLPart::unappliedEditing): Ditto.
43714        (KHTMLPart::reappliedEditing): Ditto.
43715        * kwq/KWQKHTMLPart.h: Change name of functions as described.
43716        * kwq/KWQKHTMLPart.mm:
43717        (KWQKHTMLPart::respondToChangedSelection): Ditto.
43718        (KWQKHTMLPart::respondToChangedContents): Ditto.
43719        * kwq/WebCoreBridge.h: Ditto.
43720
437212004-05-25  Maciej Stachowiak  <mjs@apple.com>
43722
43723        Fixed build.
43724
43725        * ForwardingHeaders/misc/khtml_text_operations.h: Added.
43726
437272004-05-25  Richard Williamson   <rjw@apple.com>
43728
43729	Part 1 of the new <CANVAS> tag implementation.  This patch
43730	adds the boiler plate for the new element.
43731
43732        Reviewed by Dave.
43733
43734        * ForwardingHeaders/html/html_canvasimpl.h: Added.
43735        * ForwardingHeaders/rendering/render_canvasimage.h: Added.
43736        * WebCore.pbproj/project.pbxproj:
43737        * khtml/ecma/kjs_html.cpp:
43738        (KJS::HTMLElement::classInfo):
43739        (KJS::HTMLElementFunction::tryCall):
43740        * khtml/ecma/kjs_html.h:
43741        (KJS::HTMLElement::):
43742        * khtml/ecma/kjs_html.lut.h:
43743        (KJS::):
43744        * khtml/html/dtd.cpp:
43745        (DOM::checkChild):
43746        * khtml/html/html_canvasimpl.cpp: Added.
43747        (HTMLCanvasElementImpl::HTMLCanvasElementImpl):
43748        (HTMLCanvasElementImpl::~HTMLCanvasElementImpl):
43749        (HTMLCanvasElementImpl::id):
43750        (HTMLCanvasElementImpl::mapToEntry):
43751        (HTMLCanvasElementImpl::parseHTMLAttribute):
43752        (HTMLCanvasElementImpl::createRenderer):
43753        (HTMLCanvasElementImpl::attach):
43754        (HTMLCanvasElementImpl::detach):
43755        (HTMLCanvasElementImpl::isURLAttribute):
43756        * khtml/html/html_canvasimpl.h: Added.
43757        * khtml/html/htmlparser.cpp:
43758        (KHTMLParser::getElement):
43759        * khtml/misc/htmltags.c:
43760        (hash_tag):
43761        (findTag):
43762        * khtml/misc/htmltags.h:
43763        * khtml/misc/htmltags.in:
43764        * khtml/rendering/render_canvasimage.cpp: Added.
43765        (RenderCanvasImage::RenderCanvasImage):
43766        (RenderCanvasImage::~RenderCanvasImage):
43767        (RenderCanvasImage::paint):
43768        (RenderCanvasImage::layout):
43769        * khtml/rendering/render_canvasimage.h: Added.
43770        (khtml::RenderCanvasImage::renderName):
43771        (khtml::RenderCanvasImage::element):
43772
437732004-05-25  Chris Blumenberg  <cblu@apple.com>
43774
43775	Fixed: <rdar://problem/3546418>: (when dragging text within an editable HTML doc, the selection should be moved not copied)
43776
43777        Reviewed by kocienda.
43778
43779        * khtml/editing/htmlediting_impl.cpp:
43780        (khtml::MoveSelectionCommandImpl::doApply): implemented
43781        * khtml/khtml_part.cpp:
43782        (KHTMLPart::setDragCaret): make the old drag cursor rect dirty
43783        * khtml/khtml_part.h:
43784
437852004-05-25  Maciej Stachowiak  <mjs@apple.com>
43786
43787        Reviewed by John.
43788
43789	- fixed <rdar://problem/3657363>: (Editing: export innerText, innerHTML, outerText, outerHTML and setters to Objective-C)
43790	- partial fix for <rdar://problem/3656706>: (Fix innerText and setInnerText DOM extensions)
43791	
43792        * khtml/html/html_elementimpl.cpp:
43793	(HTMLElementImpl::innerText): Use plainText() to make the text, to
43794	match other browsers.
43795        (HTMLElementImpl::outerText): Extended comment.
43796        * khtml/misc/khtml_text_operations.h:
43797        * kwq/DOMExtensions.h:
43798        * kwq/DOMHTML.mm:
43799        (-[DOMHTMLElement outerText]): Added new ObjC wrapper for this.
43800        (-[DOMHTMLElement setOuterText:]): Ditto.
43801
438022004-05-25  Ken Kocienda  <kocienda@apple.com>
43803
43804        Reviewed by Chris
43805        
43806        Defer setting the selection to delete when none has been passed in to the
43807        time that the command is run. This fixes a problem where a command nested
43808        in a composite was not correctly picking up the right selection to begin
43809        its work. Now, the command will correctly use the ending selection of
43810        its parent when no selection has been passed in.
43811
43812        * khtml/editing/htmlediting_impl.cpp:
43813        (khtml::DeleteCollapsibleWhitespaceCommandImpl::DeleteCollapsibleWhitespaceCommandImpl):
43814        (khtml::DeleteCollapsibleWhitespaceCommandImpl::doApply):
43815        (khtml::DeleteSelectionCommandImpl::DeleteSelectionCommandImpl):
43816        (khtml::DeleteSelectionCommandImpl::doApply):
43817        * khtml/editing/htmlediting_impl.h:
43818
438192004-05-24  Maciej Stachowiak  <mjs@apple.com>
43820
43821        Reviewed by Dave.
43822
43823	Added a new simple layout test for outerText.
43824
43825        * layout-tests/fast/dom/outerText-expected.txt: Added.
43826        * layout-tests/fast/dom/outerText.html: Added.
43827
438282004-05-24  Darin Adler  <darin@apple.com>
43829
43830        Reviewed by Vicki.
43831
43832        - fixed <rdar://problem/3665813>: (iBench is crashing in TOT)
43833
43834        * khtml/html/html_formimpl.cpp: (HTMLSelectElementImpl::HTMLSelectElementImpl):
43835        Initialize m_options to 0.
43836
438372004-05-24  Ken Kocienda  <kocienda@apple.com>
43838
43839        Reviewed by Richard
43840
43841        * khtml/xml/dom_selection.cpp:
43842        (DOM::Selection::toRange): Improved the code to return ranges that are
43843        convenient to use by WebKit code which needs to perform text-editor-like
43844        operations with ranges. Comments in the code describe this behavior.
43845        (DOM::Selection::nodeIsBeforeNode): Make this method const.
43846        * khtml/xml/dom_selection.h: Ditto.
43847
438482004-05-24  Chris Blumenberg  <cblu@apple.com>
43849
43850	Improved editing via drag.
43851
43852        Reviewed by kocienda.
43853
43854        * khtml/editing/htmlediting.cpp: Renamed PasteMarkupCommand to ReplaceSelectionCommand
43855        (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand):
43856        (khtml::ReplaceSelectionCommand::~ReplaceSelectionCommand):
43857        (khtml::ReplaceSelectionCommand::impl):
43858        (khtml::MoveSelectionCommand::MoveSelectionCommand):
43859        (khtml::MoveSelectionCommand::~MoveSelectionCommand):
43860        (khtml::MoveSelectionCommand::impl):
43861        * khtml/editing/htmlediting.h:
43862        (khtml::):
43863        * khtml/editing/htmlediting_impl.cpp:
43864        (khtml::ReplaceSelectionCommandImpl::ReplaceSelectionCommandImpl):
43865        (khtml::ReplaceSelectionCommandImpl::~ReplaceSelectionCommandImpl):
43866        (khtml::ReplaceSelectionCommandImpl::commandID):
43867        (khtml::ReplaceSelectionCommandImpl::doApply):
43868        (khtml::MoveSelectionCommandImpl::MoveSelectionCommandImpl): new command
43869        (khtml::MoveSelectionCommandImpl::~MoveSelectionCommandImpl):
43870        (khtml::MoveSelectionCommandImpl::commandID):
43871        (khtml::MoveSelectionCommandImpl::doApply):
43872        * khtml/editing/htmlediting_impl.h:
43873        * khtml/khtml_part.cpp:
43874        (KHTMLPart::dragCaret): new
43875        (KHTMLPart::setDragCaret): new
43876        (KHTMLPart::notifyDragCaretChanged): new
43877        (KHTMLPart::paintDragCaret): new
43878        * khtml/khtml_part.h:
43879        * khtml/khtmlpart_p.h:
43880        * khtml/rendering/render_block.cpp:
43881        (khtml::RenderBlock::paintObject): paint the drag caret
43882        * kwq/DOM.mm:
43883        (+[DOMDocumentFragment _documentFragmentWithImpl:]): made internally available
43884        (-[DOMDocumentFragment _fragmentImpl]):
43885        * kwq/DOMInternal.h:
43886        * kwq/WebCoreBridge.h:
43887        * kwq/WebCoreBridge.mm:
43888        (-[WebCoreBridge documentFragmentWithMarkupString:baseURLString:]): new
43889        (-[WebCoreBridge documentFragmentWithText:]): new
43890        (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:]): new
43891        (-[WebCoreBridge replaceSelectionWithNode:selectReplacement:]): renamed to take the selectReplacement BOOL
43892        (-[WebCoreBridge replaceSelectionWithMarkupString:baseURLString:selectReplacement:]): ditto
43893        (-[WebCoreBridge replaceSelectionWithText:selectReplacement:]): ditto
43894        (-[WebCoreBridge replaceSelectionWithNewline]): moved
43895        (-[WebCoreBridge setSelectionToDragCaret]): new
43896        (-[WebCoreBridge moveSelectionToDragCaret:]): new
43897        (-[WebCoreBridge moveDragCaretToPoint:]): set the drag caret, not the selection
43898        (-[WebCoreBridge removeDragCaret]): new
43899
439002004-05-24  Ken Kocienda  <kocienda@apple.com>
43901
43902        Reviewed by John
43903        
43904        Fixed some life-cycle issues with node iterators and detaching. Big deal is
43905        to detach in DOMNodeIterator dealloc. Otherwise, NodeIterators created from
43906        obj-c leak.
43907
43908        * khtml/xml/dom2_traversalimpl.cpp:
43909        (DOM::NodeIteratorImpl::detach): Only detach if not yet detached.
43910        * khtml/xml/dom2_traversalimpl.h:
43911        (DOM::NodeIteratorImpl::setDetached): New convenience.
43912        * kwq/DOM.mm:
43913        (-[DOMNodeIterator dealloc]): Detach here, if not yet detached; fixes leak.
43914
439152004-05-24  Ken Kocienda  <kocienda@apple.com>
43916
43917        Reviewed by Hyatt
43918
43919        * khtml/css/css_computedstyle.cpp:
43920        (DOM::CSSComputedStyleDeclarationImpl::getPropertyValue): Fixed to return the property value, 
43921        as it should, instead of the whole property, as it was doing before.
43922
439232004-05-23  Darin Adler  <darin@apple.com>
43924
43925        Reviewed by Ken.
43926
43927        - fixed <rdar://problem/3259919>: (Shift click should extend selection)
43928
43929        * khtml/khtmlpart_p.h: Renamed m_textElement to m_selectionGranularity and
43930        m_mouseMovedSinceLastMousePress to m_beganSelectingText.
43931        * khtml/khtml_part.cpp:
43932        (KHTMLPart::handleMousePressEventDoubleClick): Set m_beganSelectingText if the double-click
43933        began selecting text.
43934        (KHTMLPart::handleMousePressEventTripleClick): Ditto.
43935        (KHTMLPart::handleMousePressEventSingleClick): Added code to extend selection if shift is down.
43936        (KHTMLPart::khtmlMousePressEvent): Remove code that sets the selection granularity to
43937        "by character". We only want to do that if we start selecting with a single click.
43938        Otherwise we want to leave the selection granularity alone.
43939        (KHTMLPart::khtmlMouseReleaseEvent): Change the code that clears the selection on a plain old
43940        click to check the m_beganSelectingText boolean so it won't run when you shift-click, for example.
43941        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::khtmlMouseMoveEvent): Updated for m_textElement
43942        name change.
43943
439442004-05-22  Darin Adler  <darin@apple.com>
43945
43946        Reviewed by Ken.
43947
43948        - went through things marked "unimplemented" or "not implemented" and removed
43949          or implemented as many as possible
43950
43951        * kwq/DOM.mm: (-[DOMNode dispatchEvent:]): Implemented.
43952        Also moved DOMAbstractView and DOMDocumentView into DOMViews.mm.
43953        * kwq/DOM-CSS.mm: (-[DOMDocument getComputedStyle::]): Implemented.
43954
43955        * kwq/DOMEventsInternal.h: Added.
43956        * kwq/DOMEvents.mm:
43957        (-[DOMEvent type]): Implemented.
43958        (-[DOMEvent target]): Implemented.
43959        (-[DOMEvent currentTarget]): Implemented.
43960        (-[DOMEvent eventPhase]): Implemented.
43961        (-[DOMEvent bubbles]): Implemented.
43962        (-[DOMEvent cancelable]): Implemented.
43963        (-[DOMEvent timeStamp]): Implemented.
43964        (-[DOMEvent stopPropagation]): Implemented.
43965        (-[DOMEvent preventDefault]): Implemented.
43966        (-[DOMEvent initEvent:::]): Implemented.
43967        (-[DOMEvent _eventImpl]): Added.
43968        (-[DOMEvent _initWithEventImpl:]): Added.
43969        (+[DOMEvent _eventWithImpl:]): Added.
43970        (-[DOMMouseEvent _mouseEventImpl]): Added.
43971        (-[DOMMouseEvent screenX]): Implemented.
43972        (-[DOMMouseEvent screenY]): Implemented.
43973        (-[DOMMouseEvent clientX]): Implemented.
43974        (-[DOMMouseEvent clientY]): Implemented.
43975        (-[DOMMouseEvent ctrlKey]): Implemented.
43976        (-[DOMMouseEvent shiftKey]): Implemented.
43977        (-[DOMMouseEvent altKey]): Implemented.
43978        (-[DOMMouseEvent metaKey]): Implemented.
43979        (-[DOMMouseEvent button]): Implemented.
43980        (-[DOMMouseEvent relatedTarget]): Implemented.
43981        (-[DOMMouseEvent initMouseEvent:::::::::::::::]): Implemented.
43982        (-[DOMMutationEvent _mutationEventImpl]): Added.
43983        (-[DOMMutationEvent relatedNode]): Implemented.
43984        (-[DOMMutationEvent prevValue]): Implemented.
43985        (-[DOMMutationEvent newValue]): Implemented.
43986        (-[DOMMutationEvent attrName]): Implemented.
43987        (-[DOMMutationEvent attrChange]): Implemented.
43988        (-[DOMMutationEvent initMutationEvent::::::::]):
43989        (-[DOMUIEvent _UIEventImpl]): Added.
43990        (-[DOMUIEvent view]): Implemented.
43991        (-[DOMUIEvent detail]): Implemented.
43992        (-[DOMUIEvent initUIEvent:::::]): Implemented.
43993        (-[DOMDocument createEvent:]): Implemented.
43994
43995        * kwq/DOMHTMLInternal.h: Added.
43996        * kwq/DOMHTML.mm:
43997        (+[DOMHTMLOptionsCollection _optionsCollectionWithImpl:]): Added.
43998        (-[DOMHTMLOptionsCollection length]): Implemented.
43999        (-[DOMHTMLOptionsCollection setLength:]): Implemented.
44000        (-[DOMHTMLOptionsCollection item:]): Implemented.
44001        (-[DOMHTMLOptionsCollection namedItem:]): Implemented.
44002        (-[DOMHTMLSelectElement options]): Implemented.
44003
44004        * kwq/DOMViews.h: Changed DOMDocumentView to be a category on DOMDocument
44005        rather than a separate class.
44006        * kwq/DOMViewsInternal.h: Added.
44007        * kwq/DOMViews.mm: Added.
44008        (-[DOMAbstractView document]): Implemnted.
44009        (-[DOMAbstractView _abstractViewImpl]): Added.
44010        (-[DOMAbstractView _initWithAbstractViewImpl:]): Added.
44011        (+[DOMAbstractView _abstractViewWithImpl:]): Added.
44012        (-[DOMDocument defaultView]): Implemented.
44013
44014        * khtml/dom/dom2_views.h: Made AbstractView constructor public to allow creation in
44015        the bindings. Would not be necessary if the impl classes were used consistently.
44016
44017        * khtml/html/html_formimpl.h: Added options() function to HTMLSelectElementImpl.
44018        Added HTMLOptionsCollectionImpl class.
44019        * khtml/html/html_formimpl.cpp:
44020        (HTMLSelectElementImpl::~HTMLSelectElementImpl): Added code to detach and deref the
44021        options collection.
44022        (HTMLSelectElementImpl::options): Create an options collection if needed.
44023        (HTMLOptionsCollectionImpl::length): Added. Not yet implemented.
44024        (HTMLOptionsCollectionImpl::setLength): Ditto.
44025        (HTMLOptionsCollectionImpl::item): Ditto.
44026        (HTMLOptionsCollectionImpl::namedItem): Ditto.
44027
44028        * khtml/khtmlview.h: Move unused focusNextPrevChild virtual function inside !APPLE_CHANGES.
44029        * khtml/khtmlview.cpp: Put the tp, paintBuffer, and formCompletions fields entirely
44030        inside !APPLE_CHANGES. Also made QT_NO_TOOLTIP entirely disable the tooltip field.
44031        Also put focusNextPrevChild and formCompletionItems functions inside !APPLE_CHANGES.
44032
44033        * khtml/rendering/render_text.h: Removed unused isFixedWidthFont member function.
44034        * khtml/rendering/render_text.cpp: Ditto.
44035
44036        * kwq/KWQCursor.h: Removed unused pos member function.
44037        * kwq/KWQCursor.mm: Ditto.
44038
44039        * kwq/KWQFontMetrics.h: Removed unused rightBearing and leftBearing member functions.
44040        * kwq/KWQFontMetrics.mm: Ditto.
44041
44042        * kwq/KWQKComboBox.h: Removed KCompletionBase as a base class.
44043
44044        * kwq/KWQKConfigBase.h: Removed unused readBoolEntry, writeEntry, and readListEntry
44045        member functions.
44046        * kwq/KWQKConfigBase.mm: Ditto.
44047        (KConfig::readEntry): Improved "not implemented" message to indicate which key is uinimplemented.
44048        (KConfig::readNumEntry): Ditto.
44049        (KConfig::readUnsignedNumEntry): Ditto.
44050
44051        * kwq/KWQKLineEdit.h: Removed everything, since all the KLineEdit stuff was unused.
44052        Changed KLineEdit to just be a typedef for QLineEdit.
44053
44054        * kwq/KWQSlot.mm: Removed slotAutoScroll.
44055        (KWQSlot::KWQSlot): And from here.
44056        (KWQSlot::call): And from here.
44057
44058        * kwq/KWQTextStream.h: Removed unused QTextOStream and QTextIStream.
44059        * kwq/KWQTextStream.mm: Removed unused QTextIStream function. Also made buffer sizes larger
44060        so we don't have any problems on 64-bit systems. 10 bytes might not be long enough to sprintf an
44061        integer or a long or a pointer, but 100 bytes surely will.
44062
44063        * kwq/KWQWidget.h: Removed unused focusNextPrevChild.
44064        * kwq/KWQWidget.mm: Ditto.
44065
44066        * WebCore.pbproj/project.pbxproj: Removed some files, added others.
44067
44068        * ForwardingHeaders/kcompletionbox.h: Emptied out, no KWQKCompletionBox.h any more.
44069        * ForwardingHeaders/kiconloader.h: Emptied out, no KWQKIconLoader.h any more.
44070        * ForwardingHeaders/kmimetype.h: Emptied out, no KWQKMimeType.h any more.
44071        * ForwardingHeaders/ksimpleconfig.h: Emptied out, no KWQKSimpleConfig.h any more.
44072        * ForwardingHeaders/qfontinfo.h: Emptied out, no KWQFontInfo.h any more.
44073        * ForwardingHeaders/qtooltip.h: Replaced with define of QT_NO_TOOLTIP, no
44074        KWQToolTip.h any more.
44075
44076        * kwq/KWQCompletion.h: Removed.
44077        * kwq/KWQCompletion.mm: Removed.
44078        * kwq/KWQFontInfo.h: Removed.
44079        * kwq/KWQFontInfo.mm: Removed.
44080        * kwq/KWQKCompletionBox.h: Removed.
44081        * kwq/KWQKIconLoader.h: Removed.
44082        * kwq/KWQKIconLoader.mm: Removed.
44083        * kwq/KWQKMimeType.h: Removed.
44084        * kwq/KWQKMimeType.mm: Removed.
44085        * kwq/KWQKSimpleConfig.h: Removed.
44086        * kwq/KWQKSimpleConfig.mm: Removed.
44087        * kwq/KWQToolTip.h: Removed.
44088
440892004-05-21  Darin Adler  <darin@apple.com>
44090
44091        Reviewed by Maciej.
44092
44093        - fixed <rdar://problem/3663659>: (result of toString mistakenly includes all subsequent sibling content)
44094
44095        * khtml/xml/dom2_rangeimpl.h: Added private startNode() and pastEndNode() functions.
44096        * khtml/xml/dom2_rangeimpl.cpp:
44097        (DOM::RangeImpl::toString): Rewrote to use startNode(), pastEndNode(), and traverseNextNode().
44098        The old code here was wrong, and it was easier to rewrite than fix.
44099        (DOM::RangeImpl::checkDeleteExtract): Extracted the logic to compute the start node and the past-end
44100        node into separate functions.
44101        (DOM::RangeImpl::startNode): Added. Started with code extracted from checkDeleteExtract, but then
44102        also fixed bugs by using the new traverseNextSibling. The old code handled cases where the offset was
44103        past the last child in a container incorrectly.
44104        (DOM::RangeImpl::pastEndNode): Added. Started with code extracted from checkDeleteExtract, but then
44105        also fixed bugs by using the new traverseNextSibling. The old code hanlded cases where the offset was
44106        past the last child in a container incorrectly, and also iterated one node too few in cases where the
44107        end contaier was a text node.
44108
44109        * khtml/xml/dom2_traversalimpl.h: Removed a bunch of unused and unneeded member functions.
44110
44111        * khtml/xml/dom_nodeimpl.h: Added traverseNextSibling.
44112        * khtml/xml/dom_nodeimpl.cpp:
44113        (NodeImpl::traverseNextNode): Reformatted the code a little bit.
44114        (NodeImpl::traverseNextSibling): Added. Like traverseNextNode except it starts after the node's children
44115        instead of starting at the beginning of the first child.
44116
441172004-05-21  Maciej Stachowiak  <mjs@apple.com>
44118
44119        Reviewed by Trey.
44120
44121	<rdar://problem/3656722>: Implement outerText and setOuterText DOM extensions
44122        
44123        * khtml/html/html_elementimpl.cpp:
44124        (HTMLElementImpl::outerText): Return same value as innerText().
44125        (HTMLElementImpl::setInnerText): Fix comment.
44126        (HTMLElementImpl::setOuterText): Replace node with text, merge neighboring text nodes.
44127        * khtml/html/html_elementimpl.h: Prototype new methods.
44128	* khtml/dom/html_element.cpp:
44129        (HTMLElement::outerText): Hook up to impl.
44130        (HTMLElement::setOuterText): Ditto.
44131        * khtml/dom/html_element.h: Prototype new methods.
44132        * khtml/ecma/kjs_html.cpp:
44133        (KJS::HTMLElement::getValueProperty): Glue up outerText.
44134        (KJS::HTMLElement::putValue): Ditto. 
44135        * khtml/ecma/kjs_html.h: Added new enum value.
44136        * khtml/ecma/kjs_html.lut.h:
44137        (KJS::): Regenerated.
44138
441392004-05-21  Richard Williamson   <rjw@apple.com>
44140
44141        Removed _bindObject:forFrame: SPI.
44142        
44143        Reviewed by Chris.
44144
44145        * kwq/KWQKHTMLPart.h:
44146        * kwq/KWQKHTMLPart.mm:
44147        * kwq/WebCoreBridge.h:
44148        * kwq/WebCoreBridge.mm:
44149
441502004-05-21  David Hyatt  <hyatt@apple.com>
44151
44152	Fix for 3663644, repaints don't occur when the .innerHTML of a positioned element is changed.
44153	
44154        Reviewed by john
44155
44156        * khtml/rendering/bidi.cpp:
44157        (khtml::RenderBlock::layoutInlineChildren):
44158        * khtml/rendering/render_layer.h:
44159        (khtml::RenderLayer::repaintRect):
44160
44161=== Safari-141 ===
44162
441632004-05-21  Darin Adler  <darin@apple.com>
44164
44165        Reviewed by Ken and Chris.
44166
44167        - fixed <rdar://problem/3656948>: (markup strings that contain <html> and <body> elements don't work, producing nothing)
44168
44169        * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::createContextualFragment):
44170        Changed things around so that nodes are removed from their parent node before 
44171
441722004-05-21  Darin Adler  <darin@apple.com>
44173
44174        Reviewed by Ken and Chris.
44175
44176        - fixed part of <rdar://problem/3656948>: (HTML Editing: -[WebView replaceSelectionWithMarkupString:] doesn't seem to work)
44177
44178        * khtml/editing/htmlediting_impl.cpp: (khtml::PasteMarkupCommandImpl::doApply):
44179        Changed code to handle case where contextual fragment parses to nothing without crashing.
44180
441812004-05-21  Darin Adler  <darin@apple.com>
44182
44183        Reviewed by Ken.
44184
44185        * kwq/DOM-CSS.mm: Change DOMCSSStyleDeclaration methods to use strings with dash-separators in them
44186        rather than interCaps.
44187
441882004-05-21  Darin Adler  <darin@apple.com>
44189
44190        Reviewed by Maciej.
44191
44192        - fixed <rdar://problem/3090663>: (scroll to top of page when anchor is "#top" or "#")
44193
44194        * khtml/khtml_part.cpp:
44195        (KHTMLPart::gotoAnchor): Detect anchor by checking for non-null, not non-empty, because an
44196        empty anchor is not the same as no anchor.
44197        (KHTMLPart::gotoAnchor): Add special case for anchors named "" and "top" (case insensitive),
44198        to scroll to the top left of the frame to match what WinIE and Mozilla do.
44199        (KHTMLPart::checkCompleted): Check for non-null here too for consistency.
44200
44201        * kwq/KWQKURL.mm:
44202        (KURL::ref): Change check so that we return empty, not null, if there's an empty ref,
44203        as opposed to no ref.
44204        (KURL::hasRef): Return true if there's an empty ref, as opposed to no ref.
44205        (KURL::parse): Preserve an empty fragment when parsing.
44206
442072004-05-20  Darin Adler  <darin@apple.com>
44208
44209        Reviewed by Maciej.
44210
44211        - fixed <rdar://problem/3575385>: (multiple radio buttons checked when arriving at sites (poll at www.1170kfaq.com, many others))
44212
44213        * khtml/html/html_formimpl.cpp:
44214        (HTMLInputElementImpl::parseHTMLAttribute): Use setChecked to set the default value if we are still in
44215        "use default checked" mode. That way, other radio buttons will be unchecked properly and the proper
44216        changed methods will be dispatched.
44217        (HTMLInputElementImpl::reset): Ditto.
44218        * khtml/html/html_formimpl.h: (DOM::HTMLInputElementImpl::checked): Changed to just return m_checked.
44219        The m_useDefaultChecked flag is now only really looked at when you parse a checked attribute; that's
44220        because m_checked and m_defaultChecked are kept equal as long as m_useDefaultChecked is true.
44221
44222        * khtml/xml/dom_nodeimpl.h: Removed an unnecessary virtual, to make code a little smaller and faster.
44223
442242004-05-20  Darin Adler  <darin@apple.com>
44225
44226        Reviewed by Chris.
44227
44228        - fixed <rdar://problem/3662383>: (REGRESSION: drag slide-back sometimes causes link to load)
44229        - fixed <rdar://problem/3662556>: (REGRESSION: letting up mouse while dragging over link activates the link)
44230
44231        * khtml/khtmlview.h: Added invalidateClick.
44232        * khtml/khtmlview.cpp: (KHTMLView::invalidateClick): Added. Sets clickCount to 0.
44233
44234        * kwq/KWQKHTMLPart.mm:
44235        (KWQKHTMLPart::matchLabelsAgainstElement): Changed a string replace to a character replace for slightly
44236        faster code and smaller code size.
44237        (KWQKHTMLPart::khtmlMouseMoveEvent): Call invalidateClick at the appropriate times. To do this correctly,
44238        had to add a boolean result to handleMouseDragged: so I can tell if a drag started or not (due to hysteresis).
44239        (KWQKHTMLPart::attributedString): Changed a string append to a character append for slightly faster code
44240        and smaller code size.
44241
44242        * kwq/WebCoreBridge.h: Added BOOL result to handleMouseDragged:.
44243
44244        Reviewed by Dave.
44245
44246        - handle rules with empty bodies properly
44247
44248        * khtml/css/parser.y: Remove bogus check for empty body that prevents the rule
44249        from being created.
44250        * khtml/css/parser.cpp: Regenerated.
44251
442522004-05-20  David Hyatt  <hyatt@apple.com>
44253
44254	Revise the patch for incorrect caret positions when brs get deleted.  It can be even simpler.
44255	
44256        Reviewed by kocienda
44257
44258        * khtml/rendering/render_flow.cpp:
44259        (RenderFlow::dirtyLinesFromChangedChild):
44260        * khtml/rendering/render_text.cpp:
44261        (RenderText::detach):
44262
442632004-05-20  David Hyatt  <hyatt@apple.com>
44264
44265	Fix for 3629816, caret in wrong position when deleting <br>s on lines by themselves or when moving <br>s
44266	on lines by themselves.
44267	
44268        Reviewed by kocienda
44269
44270        * khtml/rendering/render_box.cpp:
44271        (RenderBox::detach):
44272        * khtml/rendering/render_br.cpp:
44273        (RenderBR::setPos):
44274        * khtml/rendering/render_br.h:
44275        * khtml/rendering/render_flow.cpp:
44276        (RenderFlow::dirtyLinesFromChangedChild):
44277
442782004-05-20  Ken Kocienda  <kocienda@apple.com>
44279
44280        Reviewed by Hyatt
44281
44282        Provide the methods to glue the WebView's editing delegate so that these methods work:
44283        
44284        <rdar://problem/3655316>: "Editing: -webViewShouldBeginEditing:inDOMRange: method unimplemented (WebKit editing API)"
44285        <rdar://problem/3655317>: "Editing: -webViewShouldEndEditing:inDOMRange: method unimplemented (WebKit editing API)"
44286
44287        While I was in the neighborhood and working on understanding focus shifts, I fixed this bug as well:
44288        
44289        <rdar://problem/3645154>: "contentEditable div receives focus and blur twice when focus changes to new element"
44290
44291        * khtml/khtml_part.cpp:
44292        (KHTMLPart::invalidateSelection): Do not move focus in this function. That is just a mistake. This function
44293        is all about redraw.
44294        (KHTMLPart::selectionLayoutChanged): New function. Factor out the redraw parts of notifySelectionChanged so
44295        that invalidateSelection can call it.
44296        (KHTMLPart::notifySelectionChanged): Call selectionLayoutChanged now that the redraw parts have been
44297        factored out.
44298        (KHTMLPart::shouldBeginEditing): New function that calls through to the KWQKHTMLPart in an APPLE_CHANGES
44299        block. This is part of the code path that will eventually The WebView's delegate to ask the
44300        shouldBeginEditing question. 
44301        (KHTMLPart::shouldEndEditing): Ditto, except the question is about shouldEndEditing.
44302        * khtml/khtml_part.h:
44303        * khtml/khtmlview.cpp:
44304        (KHTMLView::dispatchMouseEvent): Now looks at the boolean value returned from DocumentImpl::setFocusNode 
44305        (described below). If the focus shift was blocked, swallow the mouse event.
44306        * khtml/xml/dom_docimpl.cpp:
44307        (DocumentImpl::relinquishesEditingFocus): Part of the WebView's delegation call chain described above.
44308        (DocumentImpl::acceptsEditingFocus): Ditto.
44309        (DocumentImpl::setFocusNode): Many improvements. Now handles WebView delegation and switching focus
44310        in the handlers called as a result of the DOM events that this function calls. Also now returns a 
44311        boolean to say whether the attempt to set focus was blocked by a handler or by the WebView's delegate.
44312        * khtml/xml/dom_docimpl.h:
44313        * kwq/KWQKHTMLPart.h:
44314        * kwq/KWQKHTMLPart.mm:
44315        (KWQKHTMLPart::shouldBeginEditing): More WebView's delegation glue.
44316        (KWQKHTMLPart::shouldEndEditing): Ditto.
44317        * kwq/WebCoreBridge.h:
44318
443192004-05-20  Richard Williamson   <rjw@apple.com>
44320
44321        * kwq/DOM.mm:
44322        (-[DOMObject _init]):
44323        * kwq/DOMInternal.mm:
44324        (-[WebScriptObject _init]):
44325        (-[WebScriptObject _initializeScriptDOMNodeImp]):
44326        * kwq/KWQKHTMLPart.h:
44327        * kwq/KWQKHTMLPart.mm:
44328        (KWQKHTMLPart::KWQKHTMLPart):
44329        (KWQKHTMLPart::bindingRootObject):
44330        (KWQKHTMLPart::windowScriptObject):
44331
443322004-05-20  Darin Adler  <darin@apple.com>
44333
44334        Reviewed by Ken.
44335
44336        - fixed <rdar://problem/3661918>: "repro nil-deref in RenderImage::paint (www.codepoetry.net)"
44337
44338        * khtml/rendering/render_image.cpp: (RenderImage::paint): Check renderer pointer to see if it's
44339        nil before dereferencing it.
44340
44341        - fixed <rdar://problem/3658455>: "readFromData:options:documentAttributes: crashes when passed page without a body (in WebKit mode)"
44342
44343        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::bodyBackgroundColor): Check renderer pointer to see if it's
44344        nil before dereferencing it.
44345
44346        - fixed <rdar://problem/2948112>: "implement addRule for JavaScript for style sheets"
44347
44348        * khtml/dom/css_stylesheet.h: Added addRule.
44349        * khtml/dom/css_stylesheet.cpp: (CSSStyleSheet::addRule): Added.
44350        * khtml/css/css_stylesheetimpl.h: Added addRule.
44351        * khtml/css/css_stylesheetimpl.cpp: (CSSStyleSheetImpl::addRule): Added an implementation
44352        based on the Microsoft documentation. An index of -1 means "at the end of the list".
44353
44354        * khtml/dom/dom_string.h: Changed the string-append operator to be a non-member function
44355        so it works even if the left side has to undergo type conversion.
44356        * khtml/dom/dom_string.cpp: (DOM::operator+): Changed implementation to match above.
44357        Also changed to not use anything private or protected so it doesn't have to be a friend.
44358
44359        * khtml/ecma/kjs_css.h: Added addRule to the list of functions for CSS style sheets.
44360        * khtml/ecma/kjs_css.cpp: (DOMCSSStyleSheetProtoFunc::tryCall): Add support for addRule,
44361        based on the Microsoft documentation; always returns -1. Also removed unused string conversions.
44362        * khtml/ecma/kjs_css.lut.h: Regenerated.
44363
443642004-05-19  David Hyatt  <hyatt@apple.com>
44365
44366	Implement support for notification posting to accessibility clients for layouts and loads.
44367	
44368        * khtml/khtmlview.cpp:
44369        (KHTMLView::layout):
44370        * khtml/xml/dom_docimpl.cpp:
44371        (DocumentImpl::close):
44372        * kwq/KWQAccObjectCache.h:
44373        (KWQAccObjectCache::enableAccessibility):
44374        (KWQAccObjectCache::accessibilityEnabled):
44375        * kwq/KWQAccObjectCache.mm:
44376        (KWQAccObjectCache::accObject):
44377        (KWQAccObjectCache::setAccObject):
44378        (KWQAccObjectCache::removeAccObject):
44379        (KWQAccObjectCache::detach):
44380        (KWQAccObjectCache::childrenChanged):
44381        (KWQAccObjectCache::postNotification):
44382        * kwq/WebCoreBridge.mm:
44383        (-[WebCoreBridge accessibilityTree]):
44384
443852004-05-19  Chris Blumenberg  <cblu@apple.com>
44386
44387	Tweaks for forthcoming dragging improvements.
44388
44389        Reviewed by john.
44390
44391        * kwq/WebCoreBridge.h:
44392        * kwq/WebCoreBridge.mm:
44393        (-[WebCoreBridge moveDragCaretToPoint:]): renamed for future reasons, removed text only restrictions
44394
443952004-05-19  Ken Kocienda  <kocienda@apple.com>
44396
44397        Reviewed by Hyatt and Darin
44398
44399        Fix for this bug:
44400        
44401        <rdar://problem/3643230>: "can't tab out of contentEditable Elements"
44402
44403        * khtml/xml/dom_elementimpl.cpp: Now checks if key event was intercepted by the editing
44404        key-handler before setting the event as defaultHandled.
44405        (ElementImpl::defaultEventHandler):
44406        * kwq/KWQKHTMLPart.h: Name change from editingKeyEvent.
44407        Also now returns a BOOL to report whether the event was handled or not.
44408        * kwq/KWQKHTMLPart.mm: 
44409        (KWQKHTMLPart::interceptEditingKeyEvent): Ditto.
44410        * kwq/WebCoreBridge.h: Renamed from _editingKeyDown.
44411
444122004-05-19  Ken Kocienda  <kocienda@apple.com>
44413
44414        Reviewed by John
44415
44416        Fix for this bug:
44417        
44418        <rdar://problem/3655601>: "deleting characters is much slower than inserting them"
44419
44420        Cleaned up the way selections are set in edit commands, and how KHTMLPart is
44421        notified of these changes. This clears up a number of inefficiencies, including unnecessary repaints
44422        which were causing the performace problem.
44423
44424        * khtml/editing/htmlediting.cpp: Removed moveToStartingSelection and moveToEndingSelection functions.
44425        This work is going to be done using another pre-existing communication facility shared by edit commands
44426        and the part.
44427        * khtml/editing/htmlediting.h: Ditto.
44428        * khtml/editing/htmlediting_impl.cpp:
44429        (khtml::EditCommandImpl::setStartingSelection): Fix coding mistake which caused double recursion while setting
44430        ancestor values.
44431        (khtml::EditCommandImpl::setEndingSelection): Ditto.
44432        (khtml::CompositeEditCommandImpl::doUnapply): No longer calls moveToStartingSelection. Work done in the part now.
44433        (khtml::CompositeEditCommandImpl::doReapply): No longer calls moveToEndingSelection. Work done in the part now.
44434        (khtml::TypingCommandImpl::typingAddedToOpenCommand): New function. Provides a hook for
44435        typing commands to tell the part about additional typing that has been done.
44436        (khtml::TypingCommandImpl::insertText): Now calls typingAddedToOpenCommand.
44437        (khtml::TypingCommandImpl::insertNewline): Ditto.
44438        (khtml::TypingCommandImpl::issueCommandForDeleteKey): Ditto.
44439        (khtml::TypingCommandImpl::deleteKeyPressed): Ditto.
44440        * khtml/editing/htmlediting_impl.h: Removed moveToStartingSelection and moveToEndingSelection functions.
44441        * khtml/khtml_part.cpp:
44442        (KHTMLPart::setSelection): Modified to take an argument which tells whether the set closes an active
44443        typing command.
44444        (KHTMLPart::notifySelectionChanged): Changed endTyping variable to be consistent with "close typing"
44445        terminology used elsewhere.
44446        (KHTMLPart::appliedEditing): Now sets the selection using the value of the passed-in command. Added
44447        an assert for typing cases. Fixed problem where didChangeNotification was not being posted for typing
44448        changes after the first one.
44449        (KHTMLPart::unappliedEditing): Now sets the selection using the value of the passed-in command.
44450        (KHTMLPart::reappliedEditing): Now sets the selection using the value of the passed-in command.
44451        * khtml/khtml_part.h:
44452        * khtml/rendering/render_canvas.cpp:
44453        (RenderCanvas::clearSelection): Do not call repaint when the selection is a caret.
44454
444552004-05-19  Ken Kocienda  <kocienda@apple.com>
44456
44457        Reviewed by Hyatt
44458
44459        * khtml/html/html_elementimpl.cpp:
44460        (HTMLElementImpl::isContentEditable): Ask if the part is contenteditable.
44461        True value is treated as an "override" and will short-circuit, returning true.
44462        * khtml/khtml_part.cpp:
44463        (KHTMLPart::isContentEditable): Call over bridge. Has the effect of checking the
44464        isEditable method on the WebView which contains this part.
44465        * khtml/khtml_part.h: Declare isContentEditable.
44466        * kwq/KWQKHTMLPart.h: Declare isContentEditable.
44467        * kwq/KWQKHTMLPart.mm:
44468        (KWQKHTMLPart::isContentEditable): Call over bridge, as described above.
44469        * kwq/WebCoreBridge.h: Declare isEditable.
44470
444712004-05-19  Darin Adler  <darin@apple.com>
44472
44473        - fixed headers with licenses mangled by Xcode auto-indenting
44474
44475        * kwq/DOMExtensions.h:
44476        * kwq/KWQAccObject.h:
44477        * kwq/KWQAccObject.mm:
44478        * kwq/KWQAccObjectCache.h:
44479        * kwq/KWQKSSLKeyGen.mm:
44480        * kwq/KWQScrollBar.mm:
44481        * kwq/KWQSlider.mm:
44482        * kwq/WebCoreGraphicsBridge.h:
44483        * kwq/WebCoreGraphicsBridge.m:
44484        * kwq/WebCoreKeyGenerator.h:
44485        * kwq/WebCoreKeyGenerator.m:
44486
444872004-05-18  David Hyatt  <hyatt@apple.com>
44488
44489	Add two new attributes for accessibility that can be polled by the screen reader.  AXLayoutCount indicates
44490	the number of layouts that have occurred, and AXLoaded indicates whether or not a page has finished loading.
44491	
44492        * khtml/khtmlview.cpp:
44493        (KHTMLViewPrivate::reset):
44494        (KHTMLView::layoutCount):
44495        (KHTMLView::layout):
44496        * khtml/khtmlview.h:
44497        * kwq/KWQAccObject.mm:
44498        (-[KWQAccObject roleDescription]):
44499        (-[KWQAccObject accessibilityAttributeNames]):
44500        (-[KWQAccObject accessibilityAttributeValue:]):
44501
445022004-05-18  David Hyatt  <hyatt@apple.com>
44503
44504	Fix crash when retrieving the AXHelp text.
44505	
44506        * kwq/KWQAccObject.mm:
44507        (-[KWQAccObject helpText]):
44508
445092004-05-18  David Hyatt  <hyatt@apple.com>
44510
44511	Improve layout scheduling and add instrumentation for debugging layout scheduling
44512	
44513        Reviewed by kocienda
44514
44515        * khtml/khtml_part.cpp:
44516        (KHTMLPart::slotFinishedParsing):
44517        (KHTMLPart::checkCompleted):
44518        * khtml/khtmlview.cpp:
44519        (KHTMLViewPrivate::KHTMLViewPrivate):
44520        (KHTMLViewPrivate::reset):
44521        (KHTMLView::layout):
44522        (KHTMLView::scheduleRelayout):
44523        (KHTMLView::haveDelayedLayoutScheduled):
44524        (KHTMLView::unscheduleRelayout):
44525        * khtml/khtmlview.h:
44526        * khtml/rendering/render_object.cpp:
44527        (RenderObject::repaintAfterLayoutIfNeeded):
44528        * khtml/rendering/render_replaced.cpp:
44529        (RenderWidget::updateWidgetPositions):
44530        * khtml/xml/dom_docimpl.cpp:
44531        (DocumentImpl::DocumentImpl):
44532        (DocumentImpl::close):
44533        (DocumentImpl::setParsing):
44534        (DocumentImpl::shouldScheduleLayout):
44535        (DocumentImpl::minimumLayoutDelay):
44536        (DocumentImpl::elapsedTime):
44537        (DocumentImpl::finishParsing):
44538        (DocumentImpl::updateStyleSelector):
44539        * khtml/xml/dom_docimpl.h:
44540        (DOM::DocumentImpl::allDataReceived):
44541        * kwq/KWQDateTime.h:
44542        * kwq/KWQDateTime.mm:
44543        (QTime::elapsed):
44544        * kwq/KWQWidget.mm:
44545        (QWidget::setFrameGeometry):
44546
445472004-05-18  Richard Williamson   <rjw@apple.com>
44548
44549	Finished implementing support for windowScriptObject.
44550
44551        Reviewed by Maciej.
44552
44553        * khtml/khtml_part.cpp:
44554        (KHTMLPart::begin):
44555        * kwq/KWQKHTMLPart.h:
44556        * kwq/KWQKHTMLPart.mm:
44557        (KWQKHTMLPart::KWQKHTMLPart):
44558        (KWQKHTMLPart::~KWQKHTMLPart):
44559        (KWQKHTMLPart::windowScriptObject):
44560        * kwq/WebCoreBridge.mm:
44561        (updateRenderingForBindings):
44562
445632004-05-18  Richard Williamson   <rjw@apple.com>
44564
44565	Added stubs to get the WebScriptObject for the window
44566	JS object.
44567	
44568	Made updateRenderingForBindings more robust when handed a
44569	nil root object.  This was causing a crash in DB.  Still need to
44570	address root cause of nil root object.
44571
44572        Reviewed by Maciej.
44573
44574        * khtml/khtml_part.cpp:
44575        (KHTMLPart::begin):
44576        * kwq/KWQKHTMLPart.h:
44577        * kwq/KWQKHTMLPart.mm:
44578        (KWQKHTMLPart::windowScriptObject):
44579        (KWQKHTMLPart::partClearedInBegin):
44580        * kwq/WebCoreBridge.h:
44581        * kwq/WebCoreBridge.mm:
44582        (updateRenderingForBindings):
44583        (-[WebCoreBridge init]):
44584        (-[WebCoreBridge stringByEvaluatingJavaScriptFromString:]):
44585        (-[WebCoreBridge windowScriptObject]):
44586
445872004-05-17  Maciej Stachowiak  <mjs@apple.com>
44588
44589        Reviewed by Ken.
44590
44591	<rdar://problem/3656719>: Implement outerHTML and setOuterHTML DOM extensions
44592
44593	They were already implemented (by Chris), all that was required
44594	was exporting them to JavaScript.
44595
44596        * khtml/dom/html_element.cpp:
44597        (HTMLElement::outerHTML): Call impl.
44598        (HTMLElement::setOuterHTML): Ditto.
44599        * khtml/dom/html_element.h: Prototype new methods.
44600        * khtml/ecma/kjs_html.cpp:
44601        (KJS::HTMLElement::getValueProperty): Add OuterHTML.
44602        (KJS::HTMLElement::putValue): Add OuterHTML.
44603        * khtml/ecma/kjs_html.h: Add new enum values.
44604        * khtml/ecma/kjs_html.lut.h: Regenerated.
44605
446062004-05-18  Ken Kocienda  <kocienda@apple.com>
44607
44608        Reviewed by Hyatt
44609
44610        Removed support for designMode attribute, which we will not be supporting for Tiger.
44611        Removed inEditMode from KHTMLPart. This cached designMode value.
44612        Removed KHTMLPart::isEditingAtNode function. Asking a node if it is content-editable
44613        is a suitable replacement.
44614
44615        * khtml/dom/dom_misc.h: Remove TristateFlag enum that was used to track designMode values.
44616        * khtml/dom/html_document.cpp: Remove designMode and setDesignMode.
44617        * khtml/dom/html_document.h: Ditto.
44618        * khtml/ecma/kjs_html.cpp:
44619        (KJS::HTMLDocument::tryGet): Remove designMode.
44620        (KJS::HTMLDocument::putValue): Ditto.
44621        * khtml/ecma/kjs_html.lut.h:
44622        (KJS::): Ditto.
44623        * khtml/html/html_documentimpl.cpp: Remove designMode and setDesignMode.
44624        * khtml/html/html_documentimpl.h: Ditto.
44625        * khtml/khtml_part.cpp: Remove setEditMode, editMode, inEditMode, and isEditingAtNode.
44626        * khtml/khtml_part.h: Ditto.
44627        * khtml/khtmlpart_p.h: Remove m_inEditMode variable.
44628        (KHTMLPartPrivate::KHTMLPartPrivate):
44629        * khtml/khtmlview.cpp:
44630        (KHTMLView::focusNextPrevNode): Change over one use in tree of isEditingAtNode to use
44631        isContentEditable instead. isContentEditable will be modified in future patch to handle
44632        whether the per-part switch has been thrown to override whether something is editable or not.
44633
446342004-05-17  Richard Williamson   <rjw@apple.com>
44635
44636	Implemented new API for WebScriptObject.
44637	Fixed <rdar://problem/3657145>: (objc to javascript method calls do not cause updates.)
44638
44639        Reviewed by Hyatt.
44640
44641        * kwq/WebCoreBridge.mm:
44642        (updateRenderingForBindings):
44643        (-[WebCoreBridge init]):
44644
446452004-05-14  Vicki Murley  <vicki@apple.com>
44646
44647        Reviewed by mjs.
44648 
44649	<rdar://problem/3642427>: framework marketing number should be 2.0 for DoubleBarrel release
44650
44651        * WebCore.pbproj/project.pbxproj: change CFBundleShortVersionString to 2.0
44652
446532004-05-14  Darin Adler  <darin@apple.com>
44654
44655        Reviewed by Darin, coded by Maciej.
44656
44657        - fixed extra repaints when doing auto-fill checks on all pages that have pop-up buttons
44658
44659        * kwq/KWQComboBox.mm:
44660        (QComboBox::populateMenu): Set the populating-menu flag and clear it when done.
44661        (-[KWQPopUpButton setPopulatingMenu:]): Added. Sets flag.
44662        (-[KWQPopUpButton setNeedsDisplayInRect:]): Do nothing if the flag is set.
44663
446642004-05-14  Darin Adler  <darin@apple.com>
44665
44666        Reviewed by Dave.
44667
44668        - fixed <rdar://problem/3650026>: "background property doesn't work right on webdevtips.com due to background:inherit"
44669
44670        * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::applyDeclarations):
44671        Added CSS_PROP_BACKGROUND to the list of properties that must be applied in the first pass.
44672
44673=== Safari-140 ===
44674
446752004-05-13  David Hyatt  <hyatt@apple.com>
44676
44677	Fix image loading for <input type=image> and <object>.  Make sure it works dynamically and make sure
44678	the renderer is properly null-checked at attach time.
44679	
44680        Reviewed by darin
44681
44682        * khtml/html/html_formimpl.cpp:
44683        (HTMLInputElementImpl::HTMLInputElementImpl):
44684        (HTMLInputElementImpl::~HTMLInputElementImpl):
44685        (HTMLInputElementImpl::parseHTMLAttribute):
44686        (HTMLInputElementImpl::attach):
44687        * khtml/html/html_formimpl.h:
44688        * khtml/html/html_objectimpl.cpp:
44689        (HTMLObjectElementImpl::HTMLObjectElementImpl):
44690        (HTMLObjectElementImpl::~HTMLObjectElementImpl):
44691        (HTMLObjectElementImpl::parseHTMLAttribute):
44692        (HTMLObjectElementImpl::attach):
44693        * khtml/html/html_objectimpl.h:
44694
446952004-05-14  Chris Blumenberg  <cblu@apple.com>
44696
44697	- Made DOMEventTarget a formal protocol that is implemented by DOMNode
44698	- Made DOMEventListener a formal protocol that any object can implement
44699
44700        Reviewed by kocienda.
44701
44702        * kwq/DOMCore.h:
44703        * kwq/DOMEvents.h:
44704
447052004-05-13  Richard Williamson   <rjw@apple.com>
44706
44707	Removed vestigial isSelected method.
44708
44709        Reviewed by Chris.
44710
44711        * kwq/KWQWidget.h:
44712        * kwq/KWQWidget.mm:
44713        (QWidget::setIsSelected):
44714        * kwq/WebCoreBridge.h:
44715
447162004-05-13  Chris Blumenberg  <cblu@apple.com>
44717
44718	Fixed: <rdar://problem/3616555>: (API: Make DOM extensions and WebKit DOM operations public)
44719
44720        Reviewed by rjw.
44721
44722        * kwq/DOM.h: added DOMExtensions.h
44723        * kwq/DOMHTML.h: renamed frame on DOMHTMLTableElement to frameBorders to avoid NSView conflicts
44724        * kwq/DOMHTML.mm:
44725        (-[DOMHTMLTableElement frameBorders]):
44726        (-[DOMHTMLTableElement setFrameBorders:]):
44727
447282004-05-13  Richard Williamson   <rjw@apple.com>
44729
44730	Changed imports of all DOM headers.  DOM headers
44731	should be imported using the normal #import <WebCore/foo.h>,
44732	they import is modified when copied to WebKit.
44733
44734        Reviewed by Chris.
44735
44736        * ChangeLog:
44737        * kwq/DOM.h:
44738        * kwq/DOMCSS.h:
44739        * kwq/DOMCore.h:
44740        * kwq/DOMEvents.h:
44741        * kwq/DOMExtensions.h:
44742        * kwq/DOMHTML.h:
44743        * kwq/DOMInternal.h:
44744        * kwq/DOMRange.h:
44745        * kwq/DOMStylesheets.h:
44746        * kwq/DOMTraversal.h:
44747        * kwq/DOMViews.h:
44748
447492004-05-13  Ken Kocienda  <kocienda@apple.com>
44750
44751        * khtml/editing/htmlediting_impl.cpp:
44752        (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded): Fix deployment
44753        build bustage. Uninitialized variable.
44754
447552004-05-13  Ken Kocienda  <kocienda@apple.com>
44756
44757        Reviewed by Hyatt
44758
44759        Implemented first cut at text style change code.
44760
44761        * khtml/editing/htmlediting.cpp:
44762        (khtml::ApplyStyleCommand::ApplyStyleCommand):
44763        (khtml::ApplyStyleCommand::~ApplyStyleCommand):
44764        (khtml::ApplyStyleCommand::impl):
44765        (khtml::RemoveCSSPropertyCommand::RemoveCSSPropertyCommand):
44766        (khtml::RemoveCSSPropertyCommand::~RemoveCSSPropertyCommand):
44767        (khtml::RemoveCSSPropertyCommand::impl):
44768        (khtml::RemoveCSSPropertyCommand::styleDeclaration):
44769        (khtml::RemoveCSSPropertyCommand::property):
44770        (khtml::RemoveNodeAttributeCommand::RemoveNodeAttributeCommand):
44771        (khtml::RemoveNodeAttributeCommand::~RemoveNodeAttributeCommand):
44772        (khtml::RemoveNodeAttributeCommand::impl):
44773        (khtml::RemoveNodeAttributeCommand::element):
44774        (khtml::RemoveNodeAttributeCommand::attribute):
44775        (khtml::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand):
44776        (khtml::RemoveNodePreservingChildrenCommand::~RemoveNodePreservingChildrenCommand):
44777        (khtml::RemoveNodePreservingChildrenCommand::impl):
44778        (khtml::RemoveNodePreservingChildrenCommand::node):
44779        (khtml::SetNodeAttributeCommand::SetNodeAttributeCommand):
44780        (khtml::SetNodeAttributeCommand::~SetNodeAttributeCommand):
44781        (khtml::SetNodeAttributeCommand::impl):
44782        (khtml::SetNodeAttributeCommand::element):
44783        (khtml::SetNodeAttributeCommand::attribute):
44784        (khtml::SetNodeAttributeCommand::value):
44785        * khtml/editing/htmlediting.h:
44786        (khtml::):
44787        (khtml::ApplyStyleCommand::):
44788        
44789        Removed a bunch of unnecessary DOM namespace qualifiers.
44790        Fixed calls to parent(), which relied on the TreeShared interface to get a parent,
44791        and changed to the parentNode() DOM Node call, which is more suitable given the
44792        intention.
44793        
44794        * khtml/editing/htmlediting_impl.cpp:
44795        (khtml::CompositeEditCommandImpl::insertNodeBefore):
44796        (khtml::CompositeEditCommandImpl::insertNodeAfter):
44797        (khtml::CompositeEditCommandImpl::appendNode):
44798        (khtml::CompositeEditCommandImpl::removeNode):
44799        (khtml::CompositeEditCommandImpl::removeNodeAndPrune):
44800        (khtml::CompositeEditCommandImpl::removeNodePreservingChildren):
44801        (khtml::CompositeEditCommandImpl::splitTextNode):
44802        (khtml::CompositeEditCommandImpl::joinTextNodes):
44803        (khtml::CompositeEditCommandImpl::insertText):
44804        (khtml::CompositeEditCommandImpl::deleteText):
44805        (khtml::CompositeEditCommandImpl::replaceText):
44806        (khtml::CompositeEditCommandImpl::removeCSSProperty):
44807        (khtml::CompositeEditCommandImpl::removeNodeAttribute):
44808        (khtml::CompositeEditCommandImpl::setNodeAttribute):
44809        
44810        
44811        Text style change command implementations.
44812        There are a couple more parent() -> parentNode() changes in here as well.
44813        
44814        (khtml::ApplyStyleCommandImpl::ApplyStyleCommandImpl):
44815        (khtml::ApplyStyleCommandImpl::~ApplyStyleCommandImpl):
44816        (khtml::ApplyStyleCommandImpl::commandID):
44817        (khtml::ApplyStyleCommandImpl::doApply):
44818        (khtml::ApplyStyleCommandImpl::isHTMLStyleNode):
44819        (khtml::ApplyStyleCommandImpl::removeHTMLStyleNode):
44820        (khtml::ApplyStyleCommandImpl::removeCSSStyle):
44821        (khtml::ApplyStyleCommandImpl::removeCSSProperty):
44822        (khtml::ApplyStyleCommandImpl::setNodeAttribute):
44823        (khtml::ApplyStyleCommandImpl::removeNodeAttribute):
44824        (khtml::ApplyStyleCommandImpl::removeNodePreservingChildren):
44825        (khtml::ApplyStyleCommandImpl::mustExlicitlyApplyStyle):
44826        (khtml::ApplyStyleCommandImpl::createExplicitApplyStyleNode):
44827        (khtml::ApplyStyleCommandImpl::currentlyHasStyle):
44828        (khtml::ApplyStyleCommandImpl::cssProperty):
44829        (khtml::ApplyStyleCommandImpl::matchesTargetStyle):
44830        (khtml::ApplyStyleCommandImpl::positionInsertionPoint):
44831        (khtml::ApplyStyleCommandImpl::splitTextAtStartIfNeeded):
44832        (khtml::ApplyStyleCommandImpl::splitTextAtEndIfNeeded):
44833        (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded):
44834        (khtml::ApplyStyleCommandImpl::removeStyle):
44835        (khtml::ApplyStyleCommandImpl::cloneSelection):
44836        (khtml::ApplyStyleCommandImpl::insertFragment):
44837        (khtml::ApplyStyleCommandImpl::applyInPlace):
44838        (khtml::ApplyStyleCommandImpl::applyUsingFragment):
44839        (khtml::DeleteSelectionCommandImpl::DeleteSelectionCommandImpl):
44840        (khtml::InsertNodeBeforeCommandImpl::doApply):
44841        (khtml::InsertNodeBeforeCommandImpl::doUnapply):
44842        (khtml::JoinTextNodesCommandImpl::doApply):
44843        (khtml::PasteMarkupCommandImpl::PasteMarkupCommandImpl):
44844        (khtml::RemoveCSSPropertyCommandImpl::RemoveCSSPropertyCommandImpl):
44845        (khtml::RemoveCSSPropertyCommandImpl::~RemoveCSSPropertyCommandImpl):
44846        (khtml::RemoveCSSPropertyCommandImpl::commandID):
44847        (khtml::RemoveCSSPropertyCommandImpl::doApply):
44848        (khtml::RemoveCSSPropertyCommandImpl::doUnapply):
44849        (khtml::RemoveNodeAttributeCommandImpl::RemoveNodeAttributeCommandImpl):
44850        (khtml::RemoveNodeAttributeCommandImpl::~RemoveNodeAttributeCommandImpl):
44851        (khtml::RemoveNodeAttributeCommandImpl::commandID):
44852        (khtml::RemoveNodeAttributeCommandImpl::doApply):
44853        (khtml::RemoveNodeAttributeCommandImpl::doUnapply):
44854        (khtml::RemoveNodePreservingChildrenCommandImpl::RemoveNodePreservingChildrenCommandImpl):
44855        (khtml::RemoveNodePreservingChildrenCommandImpl::~RemoveNodePreservingChildrenCommandImpl):
44856        (khtml::RemoveNodePreservingChildrenCommandImpl::commandID):
44857        (khtml::RemoveNodePreservingChildrenCommandImpl::doApply):
44858        (khtml::SetNodeAttributeCommandImpl::SetNodeAttributeCommandImpl):
44859        (khtml::SetNodeAttributeCommandImpl::~SetNodeAttributeCommandImpl):
44860        (khtml::SetNodeAttributeCommandImpl::commandID):
44861        (khtml::SetNodeAttributeCommandImpl::doApply):
44862        (khtml::SetNodeAttributeCommandImpl::doUnapply):
44863        (khtml::SplitTextNodeCommandImpl::doUnapply):
44864        (khtml::TypingCommandImpl::insertText):
44865
44866
44867        Text style change command implementations.
44868
44869        * khtml/editing/htmlediting_impl.h:
44870        (khtml::ApplyStyleCommandImpl::):
44871        (khtml::ApplyStyleCommandImpl::removingStyle):
44872        (khtml::RemoveCSSPropertyCommandImpl::styleDeclaration):
44873        (khtml::RemoveCSSPropertyCommandImpl::property):
44874        (khtml::RemoveNodeAttributeCommandImpl::element):
44875        (khtml::RemoveNodeAttributeCommandImpl::attribute):
44876        (khtml::RemoveNodePreservingChildrenCommandImpl::node):
44877        (khtml::SetNodeAttributeCommandImpl::element):
44878        (khtml::SetNodeAttributeCommandImpl::attribute):
44879        (khtml::SetNodeAttributeCommandImpl::value):
44880        
44881        
44882        Fixed a bug where the TreeWalker returned the current node instead
44883        of null when an attempt was made to use the iterator to go to a
44884        non-existent location.
44885        
44886        * khtml/xml/dom2_traversalimpl.cpp:
44887        (DOM::TreeWalkerImpl::parentNode):
44888        (DOM::TreeWalkerImpl::firstChild):
44889        (DOM::TreeWalkerImpl::lastChild):
44890        (DOM::TreeWalkerImpl::previousSibling):
44891        (DOM::TreeWalkerImpl::nextSibling):
44892        (DOM::TreeWalkerImpl::previousNode):
44893        (DOM::TreeWalkerImpl::nextNode):
44894        
44895        
44896        A convenience.
44897        
44898        * khtml/xml/dom_elementimpl.cpp:
44899        (ElementImpl::hasAttributes):
44900        * khtml/xml/dom_elementimpl.h:
44901        
44902        
44903        New helpers to begin moving us to using DOM Range-compliant positions in our code.
44904        
44905        * khtml/xml/dom_position.cpp:
44906        (DOM::Position::equivalentRangeCompliantPosition):
44907        (DOM::Position::equivalentShallowPosition):
44908        (DOM::Position::inLastEditableInContainingEditableBlock):
44909        
44910        
44911        (DOM::Position::debugPosition): Debugging aid.
44912        * khtml/xml/dom_position.h:
44913       
44914        * kwq/WebCoreBridge.mm:
44915        (-[WebCoreBridge applyStyle:]): First bit of wiring up. Some hard-coded temporary code 
44916        in here will need to be improved soon.
44917
449182004-05-12  David Hyatt  <hyatt@apple.com>
44919
44920	Improve layout scheduling.  Make sure no layouts can be scheduled until over a minimum delay threshold.
44921	
44922        * khtml/khtmlview.cpp:
44923        (KHTMLView::scheduleRelayout):
44924        * khtml/rendering/render_frames.cpp:
44925        (RenderPart::updateWidgetPositions):
44926        * khtml/rendering/render_text.cpp:
44927        (RenderText::paint):
44928        * khtml/xml/dom_docimpl.cpp:
44929        (DocumentImpl::DocumentImpl):
44930        (DocumentImpl::close):
44931        (DocumentImpl::setParsing):
44932        (DocumentImpl::shouldScheduleLayout):
44933        (DocumentImpl::minimumLayoutDelay):
44934        * khtml/xml/dom_docimpl.h:
44935
449362004-05-11  Chris Blumenberg  <cblu@apple.com>
44937
44938	Support for: <rdar://problem/3616471>: (API: provide way to get from WebFrame to DOMDocument and vice versa)
44939
44940        Reviewed by rjw.
44941
44942        * kwq/DOM.mm:
44943        (-[DOMDocument _ownerElement]): new
44944        * kwq/DOMInternal.h:
44945        * kwq/WebCoreBridge.h:
44946        * kwq/WebCoreBridge.mm:
44947        (-[WebCoreBridge frameElement]): new
44948
449492004-05-11  David Hyatt  <hyatt@apple.com>
44950
44951	Fix makeChildrenNonInline so that it does not wrap floats unless an inline is actually found.
44952
44953        Fix block minmaxwidth to add together contiguous runs of floats.
44954
44955	Fix the content image loader to not destroy the image when removed from the document.
44956
44957        Reviewed by darin
44958	
44959        * ChangeLog:
44960        * khtml/html/html_imageimpl.cpp:
44961        (HTMLImageLoader::~HTMLImageLoader):
44962        (HTMLImageElementImpl::detach):
44963        * khtml/html/html_imageimpl.h:
44964        (DOM::):
44965        * khtml/html/html_objectimpl.cpp:
44966        (HTMLObjectElementImpl::createRenderer):
44967        * khtml/html/html_objectimpl.h:
44968        * khtml/rendering/render_block.cpp:
44969        (khtml::getInlineRun):
44970        (khtml::RenderBlock::calcInlineMinMaxWidth):
44971        (khtml::RenderBlock::calcBlockMinMaxWidth):
44972
449732004-05-06  David Hyatt  <hyatt@apple.com>
44974
44975	Fix makeChildrenNonInline so that it does not wrap floats unless an inline is actually found.
44976
44977	Fix block minmaxwidth to add together contiguous runs of floats.
44978
44979	Fix the content image loader to not destroy the image when removed from the document.
44980	
44981        Reviewed by darin
44982
44983        * khtml/rendering/render_block.cpp:
44984        (khtml::getInlineRun):
44985        (khtml::RenderBlock::calcBlockMinMaxWidth):
44986
449872004-05-11  Vicki Murley  <vicki@apple.com>
44988
44989        Reviewed by Vicki (fixed by Darin).
44990
44991        * kwq/KWQKSSLKeyGen.h: fix build failure in B&I due to case sensitivity
44992
449932004-05-09  Maciej Stachowiak  <mjs@apple.com>
44994
44995        Reviewed by Darin.
44996
44997	- avoid redecoding animated images that are only used once for
44998	~2.5% iBench speedup (WebCore part of fix)
44999
45000        * khtml/rendering/render_image.cpp:
45001        (RenderImage::setPixmap): Maintain use count for pixmap.
45002        (RenderImage::~RenderImage): Likewise.
45003        * kwq/KWQPixmap.h:
45004        * kwq/KWQPixmap.mm:
45005        (QPixmap::increaseUseCount): Call WebCoreImageRenderer
45006        (QPixmap::decreaseUseCount): Call WebCoreImageRenderer
45007        * kwq/WebCoreImageRenderer.h: Prototype new protocol methods.
45008
450092004-05-10  David Hyatt  <hyatt@apple.com>
45010
45011	Make sure that when finished parsing if all the right conditions are met, we just go ahead and updateRendering and
45012	layout.
45013	
45014        Reviewed by rjw
45015	
45016        * khtml/khtmlview.cpp:
45017        (KHTMLView::scheduleRelayout):
45018
450192004-05-08  Maciej Stachowiak  <mjs@apple.com>
45020
45021        Reviewed by Dave.
45022
45023	- some minor performance tweaks that together give .5% or so on
45024	the HTML iBench
45025	
45026        * khtml/css/css_valueimpl.h: don't use a bitfield for id and important,
45027	unpacking the bitfield is too expensive
45028        * kwq/KWQArrayImpl.h:
45029        * kwq/KWQArrayImpl.mm:
45030        (KWQArrayImpl::at): inline this method because it's so hot
45031        * kwq/KWQString.mm:
45032        (allocateHandle): inline this function because it's so hot
45033        (initializeHandleNodes): move this in the file so above can be inlined
45034        (allocateNode): ditto
45035
450362004-05-10  David Hyatt  <hyatt@apple.com>
45037
45038	Move image loading to content.
45039	
45040        Reviewed by kocienda
45041
45042        * khtml/html/html_imageimpl.cpp:
45043        (m_imageComplete):
45044        (HTMLImageLoader::~HTMLImageLoader):
45045        (HTMLImageLoader::updateFromElement):
45046        (HTMLImageLoader::removedFromDocument):
45047        (HTMLImageLoader::dispatchLoadEvent):
45048        (HTMLImageLoader::notifyFinished):
45049        (HTMLImageElementImpl::HTMLImageElementImpl):
45050        (HTMLImageElementImpl::parseHTMLAttribute):
45051        (HTMLImageElementImpl::attach):
45052        (HTMLImageElementImpl::detach):
45053        (HTMLImageElementImpl::removedFromDocument):
45054        (HTMLImageElementImpl::currentImage):
45055        * khtml/html/html_imageimpl.h:
45056        (DOM::):
45057        * khtml/html/html_objectimpl.cpp:
45058        (HTMLObjectElementImpl::HTMLObjectElementImpl):
45059        (HTMLObjectElementImpl::removedFromDocument):
45060        (HTMLObjectElementImpl::attach):
45061        * khtml/html/html_objectimpl.h:
45062        * khtml/misc/loader.cpp:
45063        (CachedImage::ref):
45064        * khtml/rendering/render_image.cpp:
45065        (RenderImage::RenderImage):
45066        (RenderImage::setImage):
45067        (RenderImage::updateAltText):
45068        * khtml/rendering/render_image.h:
45069        (khtml::RenderImage::getImage):
45070        * khtml/rendering/render_object.cpp:
45071        (RenderObject::canvas):
45072        * khtml/xml/dom_docimpl.cpp:
45073        (DocumentImpl::dispatchImageLoadEventSoon):
45074        (DocumentImpl::removeImage):
45075        (DocumentImpl::dispatchImageLoadEventsNow):
45076        * khtml/xml/dom_docimpl.h:
45077
450782004-05-10  Darin Adler  <darin@apple.com>
45079
45080        Reviewed by Vicki.
45081
45082        - fixed build failure seen in B&I log (due to case sensitive file system?)
45083
45084        * kwq/KWQLoader.h: Include "KWQCString.h" rather than "QCString.h". The latter was
45085        failing because the forwarding header is called "qcstring.h" and I guess B&I started
45086        building with a case sensitive file system. I could have changed this to "qcstring.h",
45087        but it seemed better to use the header's real name since we're inside KWQ here.
45088
450892004-05-07  Maciej Stachowiak  <mjs@apple.com>
45090
45091        Reviewed by Dave.
45092
45093	- change things around so extremely hot TokenizerString::current()
45094	method doesn't have to do any work. It's cheaper to maintain the
45095	relevant state than to always compute it.
45096	
45097        * khtml/misc/stringit.h:
45098        (khtml::TokenizerString::TokenizerString): Initialize m_currentChar
45099        (khtml::TokenizerString::push): update m_currentChar
45100        (khtml::TokenizerString::advance): ditto
45101        (khtml::TokenizerString::current): return m_currentChar
45102        * khtml/misc/stringit.cpp:
45103        (khtml::TokenizerString::clear): update m_currentChar
45104        (khtml::TokenizerString::append): update m_currentChar
45105        (khtml::TokenizerString::prepend): update m_currentChar
45106
451072004-05-07  Don Melton  <gramps@apple.com>
45108
45109        Reviewed by Dave.
45110
45111	Fixed minor, edge-case regression in KEYGEN RSA logic caused by Dave's
45112	"atomic string" patch back in January.
45113
45114        * khtml/html/html_formimpl.cpp:
45115        (HTMLKeygenElementImpl::encoding):
45116
45117=== Safari-139 ===
45118
451192004-05-06  Maciej Stachowiak  <mjs@apple.com>
45120
45121        Reviewed by Darin.
45122
45123	- two trivial changes for a 1% speedup, thanks to Shark
45124	
45125        * khtml/dom/dom_string.cpp:
45126        * khtml/dom/dom_string.h:
45127        (DOM::DOMString::~DOMString): inline this method because it's hot and the
45128	function call overhead was very costly.
45129        * WebCore.pbproj/project.pbxproj: Add -falign-loops=16
45130	optimization flag, as suggested by Shark.
45131
451322004-05-06  Chris Blumenberg  <cblu@apple.com>
45133
45134	Added alpha to DOMRGBColor as an extension.
45135
45136        Reviewed by dave.
45137
45138        * kwq/DOM-CSS.mm:
45139        (-[DOMRGBColor alpha]): new
45140        * kwq/DOMExtensions.h:
45141
451422004-05-05  David Hyatt  <hyatt@apple.com>
45143
45144	Fix whitespace rendering for brs inside pres. The bug is 3640711.
45145	
45146        Reviewed by kocienda
45147
45148        * khtml/rendering/bidi.cpp:
45149        (khtml::RenderBlock::layoutInlineChildren):
45150        (khtml::RenderBlock::findNextLineBreak):
45151
451522004-04-25  Maciej Stachowiak  <mjs@apple.com>
45153
45154        Reviewed by Darin.
45155
45156        * khtml/ecma/kjs_events.cpp:
45157        (JSLazyEventListener::parseCode): Make sure to protect the
45158	permanent "event" string object.
45159
451602004-05-05  David Hyatt  <hyatt@apple.com>
45161
45162	Fixes for 3637924, 3643356, and 3558513, all crashes in recalcStyle.  Make sure the tree is always in a
45163	sane state when removing children while changing .innerHTML.
45164	
45165        Reviewed by darin
45166
45167        * khtml/xml/dom_nodeimpl.cpp:
45168
451692004-05-05  David Hyatt  <hyatt@apple.com>
45170
45171	A collection of fixes.
45172
45173	(1) Fix a regression from the style sharing landing that made visited and unvisited links accidentally share.
45174	(2) Make sure 100% height divs fill the <body> in quirks mode, even if the body has no height specified.
45175	(3) Make sure table cell percentage heights exclude border/padding.
45176	(4) Make sure that before flexing auto height is used for the contents of the cells.
45177	
45178        Reviewed by darin
45179
45180        * khtml/css/cssstyleselector.cpp:
45181        (khtml::CSSStyleSelector::canShareStyleWithElement):
45182        (khtml::CSSStyleSelector::locateSharedStyle):
45183        * khtml/rendering/render_box.cpp:
45184        (RenderBox::calcPercentageHeight):
45185        * khtml/rendering/render_table.cpp:
45186        (RenderTable::layout):
45187        (RenderTableSection::layoutRows):
45188
451892004-05-05  Chris Blumenberg  <cblu@apple.com>
45190
45191	- DOM Extensions API tweaks
45192	- Implemented outerHTML
45193
45194        Reviewed by kocienda.
45195
45196        * WebCore-combined.exp:
45197        * khtml/html/html_elementimpl.cpp:
45198        (HTMLElementImpl::outerHTML): new
45199        (HTMLElementImpl::setOuterHTML): mew
45200        * khtml/html/html_elementimpl.h:
45201        * kwq/DOMExtensions.h: removed background methods on table and table cell since these are unnecessary conveniences
45202        * kwq/DOMHTML.mm:
45203        (-[DOMHTMLElement outerHTML]): new
45204        (-[DOMHTMLElement setOuterHTML:]): mew
45205
452062004-05-04  David Hyatt  <hyatt@apple.com>
45207
45208	Fix for 3641331, make sure <th> elements don't reset text-align to center if they inherit a specified
45209	value.
45210
45211	Also remove the styles from <abbr> and <acronym>.
45212	
45213        Reviewed by darin
45214
45215        * khtml/css/cssstyleselector.cpp:
45216        (khtml::CSSStyleSelector::adjustRenderStyle):
45217        * khtml/css/html4.css:
45218        * khtml/css/quirks.css:
45219
452202004-05-04  Ken Kocienda  <kocienda@apple.com>
45221
45222        Reviewed by Hyatt
45223        
45224        Fix for behavior which extends selection drawing to beginning and end of blocks.
45225        I added this feature a few days ago, but my checks to see if the extension should
45226        be done was naive: Is first or last item in root line box selected? Clearly this 
45227        needs to be "selection is *beyond* first or last item in root line box. Done.
45228
45229        * khtml/rendering/render_image.cpp:
45230        (RenderImage::paint): Add selectionState() == SelectionInside check.
45231        * khtml/rendering/render_text.cpp:
45232        (InlineTextBox::paintSelection): Constrain passed-in offsets to be relative to box.
45233        Use passed-in offsets to check whether selection extends beyond this box. Also, now
45234        passes in flag to tell whether the whole RenderText has selectionState() == SelectionInside
45235        (in which case you always want to extend).
45236        (RenderText::paint): Remove box offset constraining from here. Now done in above function.
45237        * khtml/rendering/render_text.h: Modify paintSelection interface to add 
45238        selectionState() == SelectionInside flag.
45239
452402004-05-04  Ken Kocienda  <kocienda@apple.com>
45241
45242        Added layout tests for DOM traversal objects.
45243
45244        * layout-tests/traversal/node-iterator-001-expected.txt: Added.
45245        * layout-tests/traversal/node-iterator-001.html: Added.
45246        * layout-tests/traversal/node-iterator-002-expected.txt: Added.
45247        * layout-tests/traversal/node-iterator-002.html: Added.
45248        * layout-tests/traversal/node-iterator-003-expected.txt: Added.
45249        * layout-tests/traversal/node-iterator-003.html: Added.
45250        * layout-tests/traversal/node-iterator-004-expected.txt: Added.
45251        * layout-tests/traversal/node-iterator-004.html: Added.
45252        * layout-tests/traversal/node-iterator-005-expected.txt: Added.
45253        * layout-tests/traversal/node-iterator-005.html: Added.
45254        * layout-tests/traversal/node-iterator-006-expected.txt: Added.
45255        * layout-tests/traversal/node-iterator-006.html: Added.
45256        * layout-tests/traversal/node-iterator-007-expected.txt: Added.
45257        * layout-tests/traversal/node-iterator-007.html: Added.
45258        * layout-tests/traversal/traversal.js: Added.
45259        * layout-tests/traversal/tree-walker-001-expected.txt: Added.
45260        * layout-tests/traversal/tree-walker-001.html: Added.
45261        * layout-tests/traversal/tree-walker-002-expected.txt: Added.
45262        * layout-tests/traversal/tree-walker-002.html: Added.
45263        * layout-tests/traversal/tree-walker-003-expected.txt: Added.
45264        * layout-tests/traversal/tree-walker-003.html: Added.
45265        * layout-tests/traversal/tree-walker-004-expected.txt: Added.
45266        * layout-tests/traversal/tree-walker-004.html: Added.
45267
452682004-05-04  Ken Kocienda  <kocienda@apple.com>
45269
45270        Reviewed by Hyatt
45271
45272        * khtml/xml/dom2_traversalimpl.cpp:
45273        (DOM::NodeIteratorImpl::nextNode): Change to make NodeIterators behave like the spec in that
45274        reference node is null until you iterate the first time. 
45275        (DOM::NodeIteratorImpl::previousNode): Ditto.
45276
452772004-05-04  Ken Kocienda  <kocienda@apple.com>
45278
45279        * WebCore.pbproj/project.pbxproj: Backed out unintentional
45280        change.
45281
452822004-05-04  Ken Kocienda  <kocienda@apple.com>
45283
45284        Reviewed by Hyatt
45285        
45286        Implemented DOM traversal objects, NodeIterator and TreeWalker.
45287
45288        * WebCore-combined.exp: Regenerate
45289        * WebCore.exp: Export DOMNodeFilter protocol
45290        * khtml/dom/dom2_traversal.cpp: Completed half-done implementation pulled from KDE tree.
45291        * khtml/dom/dom2_traversal.h: Ditto.
45292        * khtml/dom/dom_doc.cpp:
45293        (DOM::Document::createNodeIterator): Ditto.
45294        (DOM::Document::createTreeWalker): Ditto.
45295        * khtml/dom/dom_doc.h: Ditto.
45296        * khtml/ecma/kjs_dom.cpp:
45297        (DOMDocumentProtoFunc::tryCall): Fix cases that create traversal objects.
45298        * khtml/ecma/kjs_traversal.cpp:
45299        (DOMNodeIterator::getValueProperty): Add referenceNode and pointerBeforeReferenceNode
45300        properties to node interator.
45301        (DOMTreeWalkerProtoFunc::tryCall): Fix typo where DOMTreeWalker::PreviousNode case called previousSibling function.
45302        (JSNodeFilterCondition::JSNodeFilterCondition): Implement JS glue class for node filter conditions.
45303        (JSNodeFilterCondition::acceptNode): Ditto.
45304        * khtml/ecma/kjs_traversal.h:
45305        (KJS::DOMNodeIterator::): Add ReferenceNode and PointerBeforeReferenceNode constants.
45306        * khtml/ecma/kjs_traversal.lut.h:
45307        (KJS::): Regenerated
45308        * khtml/xml/dom2_traversalimpl.cpp: Completed half-done implementation pulled from KDE tree.
45309        * khtml/xml/dom2_traversalimpl.h: Ditto.
45310        * khtml/xml/dom_docimpl.cpp:
45311        (DocumentImpl::createNodeIterator): Ditto.
45312        (DocumentImpl::createTreeWalker): Ditto.
45313        * khtml/xml/dom_docimpl.h: Ditto.
45314        * khtml/xml/dom_nodeimpl.cpp:
45315        (NodeImpl::checkAddChild): Patched due to change in isAncestor function. This was the one pre-existing caller.
45316        (NodeImpl::isAncestor): Changed so that it does not return true for itself: node->isAncestor(node) now returns false.
45317        * khtml/xml/dom_nodeimpl.h: Made isAncestor const.
45318        * kwq/DOM.mm: Implemented obj-c glue for traversal objects.
45319        * kwq/DOMInternal.h: Ditto.
45320        * kwq/DOMTraversal.h: Ditto.
45321
453222004-05-04  Darin Adler  <darin@apple.com>
45323
45324        Reviewed by Ken.
45325
45326        - fixed <rdar://problem/3642252>: "starting to drag a link and then releasing needs to activate the link if you are still over it"
45327
45328        * khtml/khtmlview.cpp:
45329        (KHTMLView::viewportMouseMoveEvent): Put hysteresis check inside !APPLE_CHANGES because
45330        the Web Kit does our hysteresis checks.
45331        (KHTMLView::viewportMouseReleaseEvent): Ditto.
45332
45333        * kwq/KWQApplication.h: Removed startDragDistance and globalStrut; unused.
45334        * kwq/KWQApplication.mm: Removed the implementations.
45335        * kwq/KWQPointArray.h: Removed manhattanLength; unused.
45336        * kwq/KWQPoint.mm:  Removed the implementation.
45337
45338        * WebCore-tests.exp: Removed manhattanLength.
45339        * WebCore-combined.exp: Regenerated.
45340
453412004-05-03  Ken Kocienda  <kocienda@apple.com>
45342
45343        Reviewed by Hyatt
45344
45345        Nifty hack to work around problem where BR's inserted at the end of a block do not 
45346        render. Since only the *last* BR has this quirk, insert two when at the end of a block.
45347        Once done, you can't caret past the last one, so you never insert two again.
45348
45349        * khtml/editing/htmlediting_impl.cpp:
45350        (InputNewlineCommandImpl::doApply)
45351
453522004-05-03  Darin Adler  <darin@apple.com>
45353
45354        Reviewed by Ken
45355
45356        - fixed <rdar://problem/3091531>: "should format copied tables with tabs between cells, spreadsheet-style, for pasting to Excel"
45357        - fixed <rdar://problem/3110002>: "Find doesn't match across formatting boundaries"
45358        - fixed <rdar://problem/3640340>: "REGRESSION (136-137): nil-deref in KHTMLPart::setFocusNodeIfNeeded inside triple click code after repeatedly click/drag selecting text"
45359        - fixed <rdar://problem/3640422>: "too many blank lines between paragraphs in copied text"
45360
45361        * khtml/dom/dom2_range.h: Added == and != operators to DOMRange.
45362        * khtml/dom/dom2_range.cpp: (DOM::operator==): Added.
45363
45364        * khtml/khtml_part.cpp:
45365        (KHTMLPart::init): Don't call findTextBegin any more; it's now not used at all
45366        in WebCore.
45367        (KHTMLPart::clear): Don't call findTextBegin any more. Also don't set up the
45368        load statistics variables.
45369        (KHTMLPart::findTextNext): Roll out APPLE_CHANGES; this function is no longer
45370        used in WebCore any more and instead the entire thing is compiled out.
45371        (KHTMLPart::text): Reimplement this by calling one of the new text operations. All the interesting
45372        parts were moved into the TextIterator class.
45373        (KHTMLPart::setFocusNodeIfNeeded): Add a check for nil; this is the fix for 364030.
45374
45375        * khtml/khtmlpart_p.h: (KHTMLPartPrivate::KHTMLPartPrivate): Put m_findPos,
45376        m_findNode, m_overURL, m_overURLTarget, m_scrollTimer, m_loadedObjects,
45377        m_totalObjectCount, and m_jobPercent inside !APPLE_CHANGES.
45378
45379        * khtml/xml/dom_selection.h: Replaced uses of 4-character tabs with spaces.
45380        (DOM::Selection::Selection): Added a constructor that takes a DOM range.
45381        (DOM::Selection::operator=): Overloaded operator= for DOM range and position.
45382        This is slightly more efficient than letting a second Selection object be constructed.
45383        * khtml/xml/dom_selection.cpp: Replaced uses of 4-character tabs with spaces.
45384        (DOM::Selection::Selection): Added a constructor that takes a DOM range.
45385
45386        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::findString): Reimplement find so it uses
45387        the new text operations function for finding.
45388
45389        * khtml/misc/khtml_text_operations.h:
45390        * khtml/misc/khtml_text_operations.cpp:
45391        * WebCore.pbproj/project.pbxproj:
45392        Added new text iterator classes that do the heavy lifting.
45393
453942004-05-03  David Hyatt  <hyatt@apple.com>
45395
45396	Make sure that XML processing instructions set themselves as the parent node of the stylesheets they load,
45397	so that they will get stylesheetLoaded() notifications when @imported stylesheets are contained inside the
45398	sheet.
45399
45400        Reviewed by cblu
45401
45402        * khtml/xml/dom_xmlimpl.cpp:
45403        (ProcessingInstructionImpl::setStyleSheet):
45404
454052004-04-30  Chris Blumenberg  <cblu@apple.com>
45406
45407	Fixed: <rdar://problem/3543662>: HITLIST-137: REGRESSION: reproducible hang copying all text at Dave's blog, and other pages
45408
45409        Reviewed by dave.
45410
45411        * khtml/xml/dom2_rangeimpl.cpp:
45412        (RangeImpl::toHTMLWithOptions): when looping with containingBlock, check the value to see if it is the same
45413
454142004-04-30  David Hyatt  <hyatt@apple.com>
45415
45416	Fix for 3639530, regression on generated content pages.  They crash because I forgot to null-check the style
45417	object.
45418	
45419        Reviewed by kocienda
45420
45421        * khtml/css/cssstyleselector.cpp:
45422        (khtml::CSSStyleSelector::checkOneSelector):
45423
454242004-04-30  John Sullivan  <sullivan@apple.com>
45425
45426        - added bridge method to get the NSFont used to render a node, to
45427        help with supporting the font panel
45428
45429        Reviewed by Ken.
45430
45431        * kwq/WebCoreBridge.h:
45432        * kwq/WebCoreBridge.mm:
45433        (-[WebCoreBridge renderedFontForNode:]):
45434        return nil if no renderer, otherwise return NSFont
45435
454362004-04-29  David Hyatt  <hyatt@apple.com>
45437
45438	Expose summary on tables.
45439	
45440        Reviewed by darin
45441
45442        * kwq/KWQAccObject.mm:
45443        (-[KWQAccObject helpText]):
45444
454452004-04-29  David Hyatt  <hyatt@apple.com>
45446
45447	Implement image maps for accessibility.
45448	
45449        Reviewed by darin
45450
45451        * khtml/html/html_imageimpl.cpp:
45452        (HTMLAreaElementImpl::getRect):
45453        * khtml/html/html_imageimpl.h:
45454        * khtml/rendering/render_image.cpp:
45455        (RenderImage::imageMap):
45456        (RenderImage::nodeAtPoint):
45457        * khtml/rendering/render_image.h:
45458        * kwq/KWQAccObject.h:
45459        * kwq/KWQAccObject.mm:
45460        (-[KWQAccObject initWithRenderer:]):
45461        (-[KWQAccObject anchorElement]):
45462        (-[KWQAccObject parentObject]):
45463        (-[KWQAccObject parentObjectUnignored]):
45464        (-[KWQAccObject addChildrenToArray:]):
45465        (-[KWQAccObject role]):
45466        (-[KWQAccObject helpText]):
45467        (-[KWQAccObject value]):
45468        (-[KWQAccObject title]):
45469        (-[KWQAccObject position]):
45470        (-[KWQAccObject size]):
45471        (-[KWQAccObject accessibilityIsIgnored]):
45472        (-[KWQAccObject accessibilityAttributeNames]):
45473        (-[KWQAccObject accessibilityAttributeValue:]):
45474        * kwq/KWQRegion.mm:
45475        (QRegion::boundingRect):
45476
454772004-04-29  Chris Blumenberg  <cblu@apple.com>
45478
45479	Fixed:
45480	<rdar://problem/3631431>: web archive of .Mac welcome page renders has gaps in layout
45481	<rdar://problem/3631470>: news.google.com web archive has a different font than the live site
45482
45483        Reviewed by kocienda.
45484
45485        * khtml/html/html_documentimpl.cpp:
45486        (HTMLDocumentImpl::determineParseMode): don't set a name on the doc type when there is no doc type in the source
45487        * khtml/xml/dom_docimpl.cpp:
45488        (DocumentTypeImpl::toString): don't return "<!DOCTYPE>" when there is no doc type in the source
45489        * khtml/xml/dom_nodeimpl.cpp:
45490        (NodeImpl::recursive_toHTMLWithOptions): don't escape STYLE text, don't include the end tags for document nodes just as we don't for start tags
45491
454922004-04-29  Darin Adler  <darin@apple.com>
45493
45494        Reviewed by Dave.
45495
45496        - some tweaks on image
45497
45498        * khtml/html/html_imageimpl.h: Remove unused noref bit and unneeded override of isURLAttribute.
45499        * khtml/html/html_imageimpl.cpp:
45500        (HTMLAreaElementImpl::HTMLAreaElementImpl): Remove unused noref bit.
45501        (HTMLAreaElementImpl::parseHTMLAttribute): Remove parsing of noref; no need to store the
45502        bit since it has no meaning.
45503
455042004-04-29  David Hyatt  <hyatt@apple.com>
45505
45506	1. Change the role of links from AXButton to AXLink.
45507	2. Add support for list markers using a new role, AXListMarker.
45508	
45509        Reviewed by kocienda
45510
45511        * khtml/rendering/render_list.h:
45512        (khtml::RenderListMarker::text):
45513        * kwq/KWQAccObject.mm:
45514        (-[KWQAccObject role]):
45515        (-[KWQAccObject roleDescription]):
45516        (-[KWQAccObject value]):
45517        (-[KWQAccObject accessibilityIsIgnored]):
45518
455192004-04-29  Darin Adler  <darin@apple.com>
45520
45521        Reviewed by Ken.
45522
45523        - fixed <rdar://problem/3636566>: "space bar on a form button hits default button instead (autorestore.apple.com)"
45524
45525        * khtml/html/html_formimpl.cpp: (HTMLInputElementImpl::defaultEventHandler):
45526        Remove special handling for space, falling back to default AppKit behavior. Change enter handling to
45527        click the form element itself in the case of elements other than text input ones.
45528
455292004-04-29  Darin Adler  <darin@apple.com>
45530
45531        Reviewed by Ken.
45532
45533        - fixed <rdar://problem/3636673>: "unrepro nil-deref crash in KHTMLPart::frameDetached() (espn.com)"
45534
45535        * kwq/KWQKHTMLPart.mm: (KHTMLPart::frameDetached): Check for nil.
45536
455372004-04-28  Chris Blumenberg  <cblu@apple.com>
45538
45539	- Implemented DOMHTMLElementExtensions.
45540	- Added stubs for the rest of the DOM API.
45541
45542        Reviewed by dave.
45543
45544        * WebCore.pbproj/project.pbxproj:
45545        * khtml/dom/html_element.cpp:
45546        (HTMLElement::setContentEditable): moved implementation from here to HTMLElementImpl
45547        * khtml/html/html_elementimpl.cpp:
45548        (HTMLElementImpl::setContentEditable): new, moved from HTMLElement
45549        * khtml/html/html_elementimpl.h:
45550        * kwq/DOM-CSS.mm:
45551        (-[DOMObject sheet]):
45552        (-[DOMDocument getComputedStyle::]):
45553        * kwq/DOM.mm:
45554        (-[DOMAbstractView document]):
45555        (-[DOMDocumentView defaultView]):
45556        (-[DOMDocument createNodeIterator::::]):
45557        (-[DOMDocument createTreeWalker::::]):
45558        (-[DOMNodeFilter acceptNode:]):
45559        (-[DOMNodeIterator root]):
45560        (-[DOMNodeIterator whatToShow]):
45561        (-[DOMNodeIterator filter]):
45562        (-[DOMNodeIterator expandEntityReferences]):
45563        (-[DOMNodeIterator nextNode]):
45564        (-[DOMNodeIterator previousNode]):
45565        (-[DOMNodeIterator detach]):
45566        (-[DOMTreeWalker root]):
45567        (-[DOMTreeWalker whatToShow]):
45568        (-[DOMTreeWalker filter]):
45569        (-[DOMTreeWalker expandEntityReferences]):
45570        (-[DOMTreeWalker currentNode]):
45571        (-[DOMTreeWalker setCurrentNode:]):
45572        (-[DOMTreeWalker parentNode]):
45573        (-[DOMTreeWalker firstChild]):
45574        (-[DOMTreeWalker lastChild]):
45575        (-[DOMTreeWalker previousSibling]):
45576        (-[DOMTreeWalker nextSibling]):
45577        (-[DOMTreeWalker previousNode]):
45578        (-[DOMTreeWalker nextNode]):
45579        * kwq/DOMEvents.mm: Added.
45580        (-[DOMEvent type]):
45581        (-[DOMEvent target]):
45582        (-[DOMEvent currentTarget]):
45583        (-[DOMEvent eventPhase]):
45584        (-[DOMEvent bubbles]):
45585        (-[DOMEvent cancelable]):
45586        (-[DOMEvent timeStamp]):
45587        (-[DOMEvent stopPropagation]):
45588        (-[DOMEvent preventDefault]):
45589        (-[DOMEvent initEvent:::]):
45590        (-[DOMEventTarget addEventListener:::]):
45591        (-[DOMEventTarget removeEventListener:::]):
45592        (-[DOMEventTarget dispatchEvent:]):
45593        (-[DOMMouseEvent screenX]):
45594        (-[DOMMouseEvent screenY]):
45595        (-[DOMMouseEvent clientX]):
45596        (-[DOMMouseEvent clientY]):
45597        (-[DOMMouseEvent ctrlKey]):
45598        (-[DOMMouseEvent shiftKey]):
45599        (-[DOMMouseEvent altKey]):
45600        (-[DOMMouseEvent metaKey]):
45601        (-[DOMMouseEvent button]):
45602        (-[DOMMouseEvent relatedTarget]):
45603        (-[DOMMouseEvent initMouseEvent:::::::::::::::]):
45604        (-[DOMMutationEvent relatedNode]):
45605        (-[DOMMutationEvent prevValue]):
45606        (-[DOMMutationEvent newValue]):
45607        (-[DOMMutationEvent attrName]):
45608        (-[DOMMutationEvent attrChange]):
45609        (-[DOMMutationEvent initMutationEvent::::::::]):
45610        (-[DOMUIEvent view]):
45611        (-[DOMUIEvent detail]):
45612        (-[DOMUIEvent initUIEvent:::::]):
45613        (-[DOMDocument createEvent:]):
45614        * kwq/DOMHTML.mm:
45615        (-[DOMHTMLElement innerHTML]): implemented
45616        (-[DOMHTMLElement setInnerHTML:]): implemented
45617        (-[DOMHTMLElement innerText]): implemented
45618        (-[DOMHTMLElement setInnerText:]): implemented
45619        (-[DOMHTMLElement children]): implemented
45620        (-[DOMHTMLElement contentEditable]): implemented
45621        (-[DOMHTMLElement setContentEditable:]): implemented
45622        (-[DOMHTMLElement isContentEditable]): implemented
45623
456242004-04-27  David Hyatt  <hyatt@apple.com>
45625
45626	Implement sharing of similar style objects. Cuts the # of style objects allocated on the PLT by more
45627	than half.
45628	
45629        Reviewed by kocienda
45630
45631        * khtml/css/cssstyleselector.cpp:
45632        (khtml::CSSStyleSelector::initElementAndPseudoState):
45633        (khtml::CSSStyleSelector::initForStyleResolve):
45634        (khtml::cleanpath):
45635        (khtml::checkPseudoState):
45636        (khtml::CSSStyleSelector::locateSiblingList):
45637        (khtml::CSSStyleSelector::canShareStyleWithElement):
45638        (khtml::CSSStyleSelector::locateSharedStyle):
45639        (khtml::CSSStyleSelector::styleForElement):
45640        (khtml::CSSStyleSelector::pseudoStyleForElement):
45641        (khtml::CSSStyleSelector::checkOneSelector):
45642        * khtml/css/cssstyleselector.h:
45643        * khtml/css/html4.css:
45644        * khtml/css/parser.cpp:
45645        * khtml/css/parser.y:
45646        * khtml/html/html_baseimpl.cpp:
45647        (HTMLBodyElementImpl::mapToEntry):
45648        (HTMLIFrameElementImpl::mapToEntry):
45649        * khtml/html/html_baseimpl.h:
45650        * khtml/html/html_blockimpl.cpp:
45651        (HTMLDivElementImpl::mapToEntry):
45652        (HTMLHRElementImpl::mapToEntry):
45653        (HTMLParagraphElementImpl::mapToEntry):
45654        (HTMLMarqueeElementImpl::mapToEntry):
45655        * khtml/html/html_blockimpl.h:
45656        * khtml/html/html_elementimpl.cpp:
45657        (HTMLNamedAttrMapImpl::declCount):
45658        (HTMLNamedAttrMapImpl::mapsEquivalent):
45659        (HTMLElementImpl::attributeChanged):
45660        (HTMLElementImpl::mapToEntry):
45661        * khtml/html/html_elementimpl.h:
45662        (DOM::HTMLElementImpl::isMappedAttribute):
45663        * khtml/html/html_formimpl.cpp:
45664        (HTMLInputElementImpl::mapToEntry):
45665        * khtml/html/html_formimpl.h:
45666        * khtml/html/html_imageimpl.cpp:
45667        (HTMLImageElementImpl::mapToEntry):
45668        * khtml/html/html_imageimpl.h:
45669        * khtml/html/html_inlineimpl.cpp:
45670        (HTMLBRElementImpl::mapToEntry):
45671        (HTMLFontElementImpl::mapToEntry):
45672        * khtml/html/html_inlineimpl.h:
45673        * khtml/html/html_listimpl.cpp:
45674        (HTMLUListElementImpl::mapToEntry):
45675        (HTMLOListElementImpl::mapToEntry):
45676        (HTMLLIElementImpl::mapToEntry):
45677        * khtml/html/html_listimpl.h:
45678        * khtml/html/html_objectimpl.cpp:
45679        (HTMLAppletElementImpl::mapToEntry):
45680        (HTMLEmbedElementImpl::mapToEntry):
45681        (HTMLObjectElementImpl::mapToEntry):
45682        * khtml/html/html_objectimpl.h:
45683        * khtml/html/html_tableimpl.cpp:
45684        (HTMLTableElementImpl::mapToEntry):
45685        (HTMLTablePartElementImpl::mapToEntry):
45686        (HTMLTableCellElementImpl::mapToEntry):
45687        (HTMLTableColElementImpl::mapToEntry):
45688        (HTMLTableCaptionElementImpl::mapToEntry):
45689        * khtml/html/html_tableimpl.h:
45690        * khtml/rendering/render_object.cpp:
45691        (RenderObject::setStyle):
45692        * khtml/rendering/render_style.cpp:
45693        (m_affectedByAttributeSelectors):
45694        (RenderStyle::RenderStyle):
45695        * khtml/rendering/render_style.h:
45696        (khtml::):
45697        (khtml::RenderStyle::pseudoState):
45698        (khtml::RenderStyle::setPseudoState):
45699        (khtml::RenderStyle::affectedByAttributeSelectors):
45700        (khtml::RenderStyle::setAffectedByAttributeSelectors):
45701        * khtml/xml/dom_docimpl.cpp:
45702        (DocumentImpl::DocumentImpl):
45703        * khtml/xml/dom_docimpl.h:
45704        (DOM::DocumentImpl::usesSiblingRules):
45705        (DOM::DocumentImpl::setUsesSiblingRules):
45706
457072004-04-28  Darin Adler  <darin@apple.com>
45708
45709        Reviewed by Chris.
45710
45711        - another step of refinement on the reinterpret_cast stuff; now it's a compile-time
45712          error if you do it wrong
45713        - fixed a couple of storage leaks
45714
45715        * kwq/DOMInternal.h: Added new DOM_cast template function. Like reinterpret_cast, but a
45716        compile-time error if you use it with the wrong parameters. Also added type-safe versions
45717        of the wrapper functions that do the DOM_cast automatically.
45718        * kwq/DOMInternal.mm:
45719        (getDOMWrapperImpl): Changed name and parameter type as part of above change.
45720        (addDOMWrapperImpl): Ditto.
45721        (removeDOMWrapper): Ditto.
45722
45723        * kwq/DOM.mm: Use the new DOM_cast instead of reinterpret_cast, and the new
45724        DOM wrapper calls that do the cast automatically.
45725        * kwq/DOM-CSS.mm: More of the same.
45726        (-[DOMCSSStyleSheet dealloc]): Added override to deref, fixes leak.
45727        * kwq/DOMHTML.mm: More of the same.
45728        (-[DOMHTMLCollection dealloc]): Added override to deref, fixes leak.
45729        (-[DOMHTMLOptionsCollection dealloc]): Added override to deref, fixes theoretical leak.
45730
457312004-04-28  Darin Adler  <darin@apple.com>
45732
45733        Reviewed by Chris.
45734
45735        - fixed reinterpret_cast mistakes and some style issues in DOM implementation
45736
45737        * kwq/DOM-CSS.mm:
45738        (-[DOMCSSStyleRule _styleRuleImpl]): Fix broken reinterpret_cast; you must reinterpret_cast back
45739        to the class you reinterpret_casted from, not to a derived class.
45740        (-[DOMCSSMediaRule _mediaRuleImpl]): Ditto.
45741        (-[DOMCSSFontFaceRule _fontFaceRuleImpl]): Ditto.
45742        (-[DOMCSSPageRule _pageRuleImpl]): Ditto.
45743        (-[DOMCSSImportRule _importRuleImpl]): Ditto.
45744        (-[DOMCSSCharsetRule _importRuleImpl]): Ditto.
45745        * kwq/DOMHTML.mm:
45746        (-[DOMHTMLOptionsCollection length]): Put in an "unimplemented" version instead of leaving out
45747        the class implementation altogether.
45748        (-[DOMHTMLOptionsCollection setLength:]): Ditto.
45749        (-[DOMHTMLOptionsCollection item:]): Ditto.
45750        (-[DOMHTMLOptionsCollection namedItem:]): Ditto.
45751        (+[DOMHTMLElement _elementWithImpl:]): Corrected this implementation. The wrapper must use a
45752        standard node wrapper, since this is a subclass of DOMNode. Also moved into a separate category
45753        so it gets checked against the declarations above.
45754        (-[DOMHTMLElement _HTMLElementImpl]): Fix broken reinterpret_cast.
45755        (-[DOMHTMLHtmlElement _HTMLHtmlElementImpl]): Ditto.
45756        (-[DOMHTMLHeadElement _headElementImpl]): Ditto.
45757        (-[DOMHTMLLinkElement _linkElementImpl]): Ditto.
45758        (-[DOMHTMLTitleElement _titleElementImpl]): Ditto.
45759        (-[DOMHTMLMetaElement _metaElementImpl]): Ditto.
45760        (-[DOMHTMLBaseElement _baseElementImpl]): Ditto.
45761        (-[DOMHTMLStyleElement _styleElementImpl]): Ditto.
45762        (-[DOMHTMLBodyElement _bodyElementImpl]): Ditto.
45763        (-[DOMHTMLFormElement _formElementImpl]): Ditto.
45764        (+[DOMHTMLFormElement _formElementWithImpl:]): Another DOMNode subclass wrapper fix.
45765        (-[DOMHTMLIsIndexElement _isIndexElementImpl]): Fix broken reinterpret_cast.
45766        (-[DOMHTMLSelectElement _selectElementImpl]): Ditto.
45767        (-[DOMHTMLOptGroupElement _optGroupElementImpl]): Ditto.
45768        (-[DOMHTMLOptionElement _optionElementImpl]): Ditto.
45769        (-[DOMHTMLInputElement _inputElementImpl]): Ditto.
45770        (-[DOMHTMLTextAreaElement _textAreaElementImpl]): Ditto.
45771        (-[DOMHTMLButtonElement _buttonElementImpl]): Ditto.
45772        (-[DOMHTMLLabelElement _labelElementImpl]): Ditto.
45773        (-[DOMHTMLFieldSetElement _fieldSetElementImpl]): Ditto.
45774        (-[DOMHTMLLegendElement _legendElementImpl]): Ditto.
45775        (-[DOMHTMLUListElement _uListElementImpl]): Ditto.
45776        (-[DOMHTMLOListElement _oListElementImpl]): Ditto.
45777        (-[DOMHTMLDListElement _dListElementImpl]): Ditto.
45778        (-[DOMHTMLDirectoryElement _directoryListElementImpl]): Ditto.
45779        (-[DOMHTMLMenuElement _menuListElementImpl]): Ditto.
45780        (-[DOMHTMLLIElement _liElementImpl]): Ditto.
45781        (-[DOMHTMLQuoteElement _quoteElementImpl]): Ditto.
45782        (-[DOMHTMLDivElement _divElementImpl]): Ditto.
45783        (-[DOMHTMLParagraphElement _paragraphElementImpl]): Ditto.
45784        (-[DOMHTMLHeadingElement _headingElementImpl]): Ditto.
45785        (-[DOMHTMLPreElement _preElementImpl]): Ditto.
45786        (-[DOMHTMLBRElement _BRElementImpl]): Ditto.
45787        (-[DOMHTMLBaseFontElement _baseFontElementImpl]): Ditto.
45788        (-[DOMHTMLFontElement _fontElementImpl]): Ditto.
45789        (-[DOMHTMLHRElement _HRElementImpl]): Ditto.
45790        (-[DOMHTMLModElement _modElementImpl]): Ditto.
45791        (-[DOMHTMLAnchorElement _anchorElementImpl]): Ditto.
45792        (-[DOMHTMLImageElement _imageElementImpl]): Ditto.
45793        (-[DOMHTMLObjectElement _objectElementImpl]): Ditto.
45794        (-[DOMHTMLParamElement _paramElementImpl]): Ditto.
45795        (-[DOMHTMLAppletElement _appletElementImpl]): Ditto.
45796        (-[DOMHTMLMapElement _mapElementImpl]): Ditto.
45797        (-[DOMHTMLAreaElement _areaElementImpl]): Ditto.
45798        (-[DOMHTMLScriptElement _scriptElementImpl]): Ditto.
45799        (+[DOMHTMLTableCaptionElement _tableCaptionElementWithImpl:]): Another DOMNode subclass wrapper fix.
45800        (-[DOMHTMLTableCaptionElement _tableCaptionElementImpl]): Fix broken reinterpret_cast.
45801        (+[DOMHTMLTableSectionElement _tableSectionElementWithImpl:]): Another DOMNode subclass wrapper fix.
45802        (-[DOMHTMLTableSectionElement _tableSectionElementImpl]): Fix broken reinterpret_cast.
45803        (+[DOMHTMLTableElement _tableElementWithImpl:]): Another DOMNode subclass wrapper fix.
45804        (-[DOMHTMLTableElement _tableElementImpl]): Fix broken reinterpret_cast.
45805        (-[DOMHTMLTableColElement _tableColElementImpl]): Ditto.
45806        (-[DOMHTMLTableRowElement _tableRowElementImpl]): Ditto.
45807        (+[DOMHTMLTableCellElement _tableCellElementWithImpl:]): Another DOMNode subclass wrapper fix.
45808        (-[DOMHTMLTableCellElement _tableCellElementImpl]): Fix broken reinterpret_cast.
45809        (-[DOMHTMLFrameSetElement _frameSetElementImpl]): Ditto.
45810        (-[DOMHTMLFrameElement _frameElementImpl]): Ditto.
45811        (-[DOMHTMLIFrameElement _IFrameElementImpl]): Ditto.
45812        (-[DOMHTMLEmbedElement _embedElementImpl]): Ditto.
45813
45814        * kwq/HTMLDOM.mm: Removed.
45815
458162004-04-28  Ken Kocienda  <kocienda@apple.com>
45817
45818        Reviewed by Darin
45819
45820        * khtml/khtml_part.cpp:
45821        (KHTMLPart::notifySelectionChanged): Call new postDidChangeSelectionNotification function
45822        to send Cocoa notification when the selection changes.
45823        (KHTMLPart::appliedEditing): Call postDidChangeNotification to send Cocoa notification when the document changes
45824        due to editing.
45825        (KHTMLPart::unappliedEditing): Ditto.
45826        (KHTMLPart::reappliedEditing): Ditto.
45827        * kwq/DOMHTML.mm:
45828        (-[DOMHTMLDocument _HTMLDocumentImpl]): Fix cast to account for multiple inheritance used by the impl class.
45829        * kwq/KWQKHTMLPart.h:
45830        * kwq/KWQKHTMLPart.mm:
45831        (KWQKHTMLPart::postDidChangeSelectionNotification): New function. Call the bridge to post the notification.
45832        (KWQKHTMLPart::postDidChangeNotification): Ditto.
45833        * kwq/WebCoreBridge.h: Declare new -postDidChangeSelectionNotification and -postDidChangeNotification methods.
45834
458352004-04-28  Darin Adler  <darin@apple.com>
45836
45837        Reviewed by Ken.
45838
45839        - fixed <rdar://problem/3636261>: "nil-deref in selectedStylesheetSet iterating through properties in a non-view document"
45840
45841        * khtml/xml/dom_docimpl.cpp:
45842        (DocumentImpl::selectedStylesheetSet): Add nil check.
45843        (DocumentImpl::setSelectedStylesheetSet): Ditto.
45844
458452004-04-27  Richard Williamson   <rjw@apple.com>
45846
45847	<rdar://problem/3564519>: API: please add a way to set the media type for a WebView
45848
45849        Reviewed by Chris.
45850
45851        * khtml/khtmlview.cpp:
45852        (KHTMLView::mediaType):
45853        * kwq/KWQKHTMLPart.h:
45854        * kwq/KWQKHTMLPart.mm:
45855        (KWQKHTMLPart::overrideMediaType):
45856        * kwq/WebCoreBridge.h:
45857
458582004-04-27  Ken Kocienda  <kocienda@apple.com>
45859
45860        Reviewed by Hyatt
45861        
45862        Make selections draw in a more Cocoa-like way, where
45863        fully-selected lines draw out to the ends of lines, and
45864        spaces between lines are drawn with the selection color as well.
45865
45866        * WebCore-combined.exp: Add _WebCoreInitializeEmptyTextGeometry symbol
45867        * WebCore.exp: Ditto.
45868        * khtml/khtml_part.cpp:
45869        (KHTMLPart::isPointInsideSelection): Marginally-related change. Fix up this function
45870        so that it works right, given my recent changes to positionForCoordinates. This fix
45871        "really" fixes the problem. Unlike my attempt to fix yesterday.
45872        * khtml/rendering/font.cpp:
45873        (Font::drawHighlightForText): New drawHighlightForText interface which includes extra
45874        information to draw the selection.
45875        * khtml/rendering/font.h: Ditto.
45876        * khtml/rendering/render_block.cpp:
45877        (khtml::RenderBlock::positionForCoordinates): Some minor improvements and cleanups to
45878        make this code work correctly in more cases.
45879        * khtml/rendering/render_block.h: Remove spurious semi-colon after namespace block.
45880        * khtml/rendering/render_container.cpp:
45881        (RenderContainer::positionForCoordinates): Fix typo in comment. Also, clean up
45882        one unnecessary call to absolutePosition.
45883        * khtml/rendering/render_image.cpp:
45884        (RenderImage::paint): Many changes to add the new selection drawing behavior.
45885        * khtml/rendering/render_inline.cpp:
45886        (RenderInline::positionForCoordinates): Added to help make selections work right 
45887        with continuations.
45888        * khtml/rendering/render_inline.h: Ditto.
45889        * khtml/rendering/render_object.h: Give zero default argument to inlineBox() helper.
45890        * khtml/rendering/render_text.cpp:
45891        (InlineTextBox::paintSelection): Many changes to add the new selection drawing behavior.
45892        * kwq/KWQListBox.mm:
45893        (-[KWQTableView drawRow:clipRect:]): Use new WebCoreTextGeometry struct.
45894        * kwq/KWQPainter.h: New drawHighlightForText interface which includes extra
45895        information to draw the selection.
45896        * kwq/KWQPainter.mm:
45897        (QPainter::drawText): Use new WebCoreInitializeEmptyTextGeometry struct.
45898        (QPainter::drawHighlightForText): Use new WebCoreTextGeometry struct.
45899        * kwq/WebCoreTextRenderer.h: Declare new WebCoreTextGeometry struct.
45900        * kwq/WebCoreTextRendererFactory.m:
45901        (WebCoreInitializeEmptyTextGeometry): Initializer for WebCoreTextGeometry struct.
45902
459032004-04-27  Richard Williamson   <rjw@apple.com>
45904
45905	Don't do unnecessary string comparisons when no composite operator is
45906	specified.  
45907
45908        Reviewed by Hyatt.
45909
45910        * kwq/KWQPainter.mm:
45911        (compositeOperatorFromString):
45912
459132004-04-27  Darin Adler  <darin@apple.com>
45914
45915        Reviewed by Ken.
45916
45917        - fixed <rdar://problem/3623694>: "top level <option> and <optgroup> labels look identical in pop-up menus; should not"
45918
45919        * khtml/rendering/render_form.cpp: (RenderSelect::updateFromElement):
45920        Call appendGroupLabel instead of appendItem for group labels.
45921
45922        * kwq/KWQComboBox.h: Added appendGroupLabel, private setControlSize, labelFont, setTitle, _labelFont,
45923        and make _items a QValueList<KWQListBoxItem> instead of QStringList.
45924        * kwq/KWQComboBox.mm:
45925        (QComboBox::QComboBox): Initializes _labelFont to nil.
45926        (QComboBox::~QComboBox): Release _labelFont.
45927        (QComboBox::setTitle): Added helper function. Uses an attributed string for group labels, and also sets
45928        the action to NULL so they are disabled.
45929        (QComboBox::appendItem): Added isLabel boolean parameter, make KWQListBoxItem, call setTitle.
45930        (QComboBox::sizeHint): Changed to handle group labels with a separate renderer to measure bolded text.
45931        (QComboBox::setCurrentItem): Changed to use setTitle helper.
45932        (QComboBox::setFont): Release _labelFont if control size changed.
45933        (QComboBox::labelFont): Compute label font lazily.
45934        (QComboBox::populateMenu): Changed to use setTitle helper.
45935
45936        * kwq/KWQListBox.h: Removed excess includes, fixed comment.
45937
459382004-04-26  Darin Adler  <darin@apple.com>
45939
45940        Reviewed by Maciej.
45941
45942        - follow-on to fix for <rdar://problem/3488892>: "anchor names with non-ASCII characters in them do not work"
45943        This part fixes anchor names with non-ASCII characters in local files.
45944
45945        * kwq/KWQKURL.mm: (KURL::KURL): For file and help URLs, force UTF-8 only for the path part of the URL.
45946        Use the document encoding for the rest of the URL.
45947        * kwq/KWQTextCodec.h: (operator!=): Added.
45948
459492004-04-26  David Hyatt  <hyatt@apple.com>
45950
45951	Fix for Emerson truncation problem using apple-line-clamp.  Always dirty positioned objects so that they
45952	will move when the height changes.
45953	
45954        Reviewed by darin
45955
45956        * khtml/rendering/render_block.cpp:
45957        (khtml::RenderBlock::markPositionedObjectsForLayout):
45958        * khtml/rendering/render_block.h:
45959        * khtml/rendering/render_flexbox.cpp:
45960        (khtml::RenderFlexibleBox::layoutVerticalBox):
45961
459622004-04-26  Richard Williamson   <rjw@apple.com>
45963
45964	Added support for specifying composite operation on an
45965	image element.  Attribute name is "composite", possible values
45966	are:
45967
45968	clear,
45969	copy
45970	source-over
45971	source-in
45972	source-out
45973	source-atop
45974	destination-over
45975	destination-in
45976	destination-out
45977	destination-atop
45978	xor
45979	darker
45980	highlight
45981	lighter
45982
45983	<img composite="source-over" src="triangle.png">
45984	<img style="position:relative; left:-200px;" composite="destination-in" src="circle.png">
45985
45986        Reviewed by Ken.
45987
45988        * khtml/html/html_imageimpl.cpp:
45989        (HTMLImageElementImpl::parseHTMLAttribute):
45990        * khtml/html/html_imageimpl.h:
45991        (DOM::HTMLImageElementImpl::compositeOperator):
45992        * khtml/misc/htmlattrs.c:
45993        (findAttr):
45994        * khtml/misc/htmlattrs.h:
45995        * khtml/misc/htmlattrs.in:
45996        * khtml/rendering/render_image.cpp:
45997        (RenderImage::paint):
45998        * kwq/KWQPainter.h:
45999        * kwq/KWQPainter.mm:
46000        (compositeOperatorFromString):
46001        (QPainter::drawPixmap):
46002        * kwq/WebCoreImageRenderer.h:
46003
460042004-04-26  Darin Adler  <darin@apple.com>
46005
46006        - fixed <rdar://problem/3634145>: "REGRESSION: nil-deref in QTextCodec::toUnicode every time loading page at wiki.wordpress.org"
46007
46008        * kwq/KWQKURL.mm:
46009        (KURL::KURL): Simplify check for nil that defaults to UTF-8.
46010        (KURL::decode_string): Add a similar test here.
46011
460122004-04-26  David Hyatt  <hyatt@apple.com>
46013
46014	Implement the quirk that makes the <body> and <html> size to fill the viewport in quirks mode.  This
46015	matches WinIE.
46016	
46017        Reviewed by john
46018
46019        * khtml/rendering/render_box.cpp:
46020        (RenderBox::calcHeight):
46021
460222004-04-26  Ken Kocienda  <kocienda@apple.com>
46023
46024        Reviewed by John
46025        
46026        Fix for this bug:
46027        
46028        <rdar://problem/3633458>: "REGRESSION (125-137): Can't drag a selection unless it starts at beginning of line"
46029
46030        * khtml/khtml_part.cpp:
46031        (KHTMLPart::isPointInsideSelection): I flubbed when I converted this
46032        code to use my new positionForCoordinates helper. I failed to add in
46033        the passed in values for x and y to the absolute coordinates for the
46034        clicked node. So, the "unless it starts at beginning of line" behavior 
46035        is exactly as one would expect.
46036
460372004-04-25  David Hyatt  <hyatt@apple.com>
46038
46039	Eliminate overhangingContents.  This concept was redundant with the overflowHeight mechanism that I
46040	implemented some time ago, and in fact, it causes us to grovel through much more of the render tree
46041	than we should when painting.  It turns out that none of the places that used this boolean needed
46042	to any longer, and so the entire implementation can now be removed from the tree.
46043	
46044        Reviewed by mjs, darin
46045
46046        * khtml/rendering/render_block.cpp:
46047        (khtml::RenderBlock::addChildToFlow):
46048        (khtml::RenderBlock::layoutBlock):
46049        (khtml::RenderBlock::paint):
46050        (khtml::RenderBlock::insertPositionedObject):
46051        * khtml/rendering/render_box.cpp:
46052        (RenderBox::calcHeight):
46053        * khtml/rendering/render_image.cpp:
46054        (RenderImage::setStyle):
46055        * khtml/rendering/render_inline.cpp:
46056        (RenderInline::addChildToFlow):
46057        * khtml/rendering/render_object.cpp:
46058        (RenderObject::RenderObject):
46059        (RenderObject::containingBlock):
46060        (RenderObject::information):
46061        (RenderObject::dump):
46062        (RenderObject::nodeAtPoint):
46063        * khtml/rendering/render_object.h:
46064        (khtml::RenderObject::minMaxKnown):
46065        * khtml/rendering/render_table.cpp:
46066        (RenderTable::layout):
46067        (RenderTable::paint):
46068        (RenderTableCell::paint):
46069
460702004-04-23  David Hyatt  <hyatt@apple.com>
46071
46072	Fix for 3258403, implement support for min-height and max-height on normal flow elements.  With this patch the
46073	only min-height/max-height work that remains to be done is for table cells and positioned elements.
46074	
46075        Reviewed by darin
46076
46077        * khtml/rendering/render_box.cpp:
46078        (RenderBox::calcHeight):
46079        (RenderBox::calcHeightUsing):
46080        (RenderBox::calcPercentageHeight):
46081        * khtml/rendering/render_box.h:
46082        * layout-tests/fast/block/basic/minheight-expected.txt: Added.
46083        * layout-tests/fast/block/basic/minheight.html: Added.
46084
460852004-04-25  Darin Adler  <darin@apple.com>
46086
46087        Reviewed by Dave.
46088
46089        - fixed <rdar://problem/3633091>: "add overrideMimeType function to XMLHttpRequest"
46090
46091        * khtml/ecma/xmlhttprequest.cpp:
46092        (KJS::XMLHttpRequest::getValueProperty): Add logic to override MIME type if
46093        OverrideMIMEType was called.
46094        (KJS::XMLHttpRequestProtoFunc::tryCall): Store the MIME type when overrideMimeType is called.
46095        * khtml/ecma/xmlhttprequest.h: Add OverrideMIMEType to the XMLHttpRequest property enum,
46096        and also add a MIMETypeOverride data member to the class.
46097        * khtml/ecma/xmlhttprequest.lut.h: Regenerated.
46098
460992004-04-25  Maciej Stachowiak  <mjs@apple.com>
46100
46101        Reviewed by Darin.
46102
46103	<rdar://problem/3628309>: Fedex tracking page so slow it seems like a hang (site change?)
46104	<rdar://problem/3608061>: "ATI Developer site so slow it seems like a hang"
46105	<rdar://problem/3612130>: "Reproducible hang in JavaScript at www.tfl.gov.uk"
46106	<rdar://problem/3626022>: "Safari was consuming > 100% CPU on dual-G5 Mac, sample shows JavaScript"
46107	<rdar://problem/3632348>: "www.whatis.com search for "pivot table" leads to JavaScript hang"
46108	
46109        * khtml/ecma/kjs_html.cpp:
46110        (KJS::HTMLElement::getValueProperty): The "text" property for anchors should be
46111	innerText, not innerHTML.
46112        * khtml/html/html_elementimpl.cpp:
46113        (HTMLElementImpl::innerText): Make sure not to include all the text after an
46114	element if it has no children.
46115        * layout-tests/fast/dom/anchor-text-expected.txt: Added.
46116        * layout-tests/fast/dom/anchor-text.html: Added.
46117        * layout-tests/fast/dom/inner-text-expected.txt: Added.
46118        * layout-tests/fast/dom/inner-text.html: Added.
46119
461202004-04-24  Darin Adler  <darin@apple.com>
46121
46122        Reviewed by Dave.
46123
46124        - fixed <rdar://problem/3488892>: "anchor names with non-ASCII characters in them do not work"
46125
46126        * khtml/khtml_part.h: Add new gotoAnchor helper function, private.
46127        * khtml/khtml_part.cpp:
46128        (KHTMLPart::openURL): Call new gotoAnchor helper, since the code is now complex enough
46129        that I don't want to copy and paste.
46130        (KHTMLPart::gotoAnchor): Use the pages own encoding when decoding the string for an
46131        anchor reference when going to an anchor. This matches the behavior of other browsers.
46132        (KHTMLPart::slotFinishedParsing): Call new gotoAnchor helper.
46133        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::scrollToAnchor): Call new gotoAnchor helper.
46134
46135        * kwq/KWQKURL.h: Removed htmlRef function, and made encodedHtmlRef an inline.
46136        Removed unused encoding hint parameter from setQuery (it's not a "hint" at all, but we
46137        don't use it). Added a codec parameter to decode_string.
46138        * kwq/KWQKURL.mm:
46139        (hexDigitValue): Added. Helper function.
46140        (KURL::setQuery): Removed unused parameter.
46141        (KURL::decode_string): Implemented this function. It needs to use an encoding specified
46142        by the web page. Also, we wanted to make a version that did not use the
46143        CFURLCreateStringByReplacingPercentEscapes function anyway.
46144
46145        * kwq/KWQString.h: Added parameters to copyLatin1. Now you can copy an arbitrary substring.
46146        * kwq/KWQString.mm: (QString::copyLatin1): Updated implementation to handle the two
46147        new parameters.
46148
46149        * WebCore-tests.exp: Updated for change in signature of setQuery and decode_string.
46150        * WebCore-combined.exp: Regenerated.
46151
461522004-04-24  Darin Adler  <darin@apple.com>
46153
46154        - fixed <rdar://problem/3570953>: "Update "Acknowledgements" to remove expat and possibly include libxml"
46155
46156        * WebCore.pbproj/project.pbxproj: Removed the part of the copyright notice that was for expat contributors.
46157
461582004-04-23  David Hyatt  <hyatt@apple.com>
46159
46160	Fix the apple-line-clamp values to more closely match what is needed, an even split of the max lines between the possible
46161	values.
46162
46163        * khtml/rendering/render_flexbox.cpp:
46164        (khtml::RenderFlexibleBox::layoutVerticalBox):
46165
461662004-04-23  David Hyatt  <hyatt@apple.com>
46167
46168	Fix to make the containing block percentage height calculation actually work according to the CSS2 spec.
46169	Percentages other than 100% are now supported, and flexing percentage height blocks inside table cells
46170	are now supported.
46171
46172        Reviewed by kocienda
46173
46174        * khtml/rendering/render_box.cpp:
46175        (RenderBox::calcHeight):
46176        (RenderBox::calcPercentageHeight):
46177        * khtml/rendering/render_box.h:
46178
461792004-04-23  Ken Kocienda  <kocienda@apple.com>
46180
46181        Reviewed by John
46182
46183        Fix for this bug:
46184        <rdar://problem/3632163>: "REGRESSSION: crash on css home page"
46185
46186        * khtml/rendering/render_block.cpp:
46187        (khtml::RenderBlock::positionForRenderer): Add null check.
46188
461892004-04-20  David Hyatt  <hyatt@apple.com>
46190
46191	Fix hiermenu opacity bug.  Make sure to save/restore the graphics state before pushing and popping
46192	transparency layers, so that alterations to alpha don't accidentally persist.
46193	
46194        Reviewed by kocienda
46195
46196        * kwq/KWQPainter.mm:
46197        (QPainter::beginTransparencyLayer):
46198        (QPainter::endTransparencyLayer):
46199
462002004-04-20  David Hyatt  <hyatt@apple.com>
46201
46202	Fix for 3622818, bad rendering on sabernomics.com.  Just eliminate the priority difference between
46203	4 and 5, and make all of the priority 4 tags the same.  This seems to match other browsers.
46204	
46205        Reviewed by kocienda
46206
46207        * khtml/html/dtd.cpp:
46208
462092004-04-23  Ken Kocienda  <kocienda@apple.com>
46210
46211        Reviewed by Darin
46212
46213        Changed inlineBoxForRenderer(RenderObject *, int) helper that was static 
46214        in dom_position.cpp into a virtual method on RenderObjects. Function is
46215        now called inlineBox(int). Functionality unchanged.
46216
46217        * khtml/rendering/render_br.cpp:
46218        (RenderBR::inlineBox)
46219        * khtml/rendering/render_br.h:
46220        * khtml/rendering/render_object.cpp:
46221        (RenderObject::caretMaxRenderedOffset)
46222        (RenderObject::inlineBox)
46223        * khtml/rendering/render_object.h:
46224        * khtml/rendering/render_text.cpp:
46225        (RenderText::inlineBox)
46226        * khtml/rendering/render_text.h:
46227        * khtml/xml/dom_position.cpp:
46228        (DOM::renderersOnDifferentLine):
46229        (DOM::nextRenderedEditable)
46230        (DOM::previousRenderedEditable)
46231        (DOM::Position::previousLinePosition)
46232        (DOM::Position::nextLinePosition)
46233        (DOM::Position::rendersInDifferentPosition)
46234
462352004-04-23  Ken Kocienda  <kocienda@apple.com>
46236
46237        Reviewed by Darin
46238
46239        * khtml/editing/htmlediting_impl.cpp:
46240        (DeleteSelectionCommandImpl::doApply): Fix editing test
46241        regression with deleting whitespace at the end of the line.
46242        I just made this "improvement" yesterday, and the concept
46243        of the change is a good one, but instead of short-circuiting
46244        if the selection after deleting collapsible whitespace is a
46245        range (which can be confused by "significant" collapsed 
46246        whitespace at the end of a line), short-circuit if the 
46247        upstream start position equals the downstream end position.
46248
46249=== Safari-138 ===
46250
462512004-04-23  Ken Kocienda  <kocienda@apple.com>
46252
46253        Reviewed by John
46254
46255        Added some plumbing for applying styles.
46256
46257        * khtml/xml/dom_docimpl.cpp:
46258        (DocumentImpl::createCSSStyleDeclaration): New factory method.
46259        * khtml/xml/dom_docimpl.h: Declare the above.
46260        * kwq/DOM-CSS.mm:
46261        (-[DOMCSSStyleDeclaration _styleDeclarationImpl]): Expose this in the
46262        WebCoreInternal category, "promoting" it from being private to the 
46263        DOM-CSS.mm file.
46264        * kwq/DOM.mm: Add -(DOMCSSStyleDeclaration *)createCSSStyleDeclaration extension.
46265        * kwq/DOMExtensions.h: Delcare the above.
46266        * kwq/DOMInternal.h: Add _styleDeclarationImpl to WebCoreInternal category.
46267
462682004-04-23  John Sullivan  <sullivan@apple.com>
46269
46270        - fixed <rdar://problem/3631541>: "repro crash in KHTMLPart::setFocusNodeIfNeeded"
46271
46272        Reviewed by Maciej.
46273
46274        * khtml/khtml_part.cpp:
46275        (KHTMLPart::setFocusNodeIfNeeded):
46276        added nil check
46277
462782004-04-23  Maciej Stachowiak  <mjs@apple.com>
46279
46280        Back out one of the previous changes, it causes a crash. Whoops!
46281        
46282        * kwq/KWQScrollView.mm:
46283        (QScrollView::addChild):
46284
462852004-04-23  Maciej Stachowiak  <mjs@apple.com>
46286
46287        Reviewed by Dave.
46288
46289	These two tiny changes (made w/ Dave's help) should get us about
46290	1% or so combined on the HTML iBench.
46291
46292        * khtml/rendering/render_br.cpp:
46293        (RenderBR::setStyle): Don't call superclass setStyle, since
46294	according to Dave we don't need any of the work done in there.
46295        * kwq/KWQScrollView.mm:
46296        (QScrollView::addChild): Don't actually move the widget if the x
46297	coordinate is -500000, since we don't need the initial offscreen
46298	positioning that KHTML does and it is costly to do.
46299
463002004-04-22  Ken Kocienda  <kocienda@apple.com>
46301
46302        Reviewed by Hyatt
46303
46304        * khtml/editing/htmlediting_impl.cpp:
46305        (DeleteSelectionCommandImpl::doApply): Short-circuit return if the selection
46306        is not a range after collapsing whitespace.
46307
463082004-04-22  Ken Kocienda  <kocienda@apple.com>
46309
46310        Reviewed by Hyatt
46311
46312        More work to bring code up to date with the latest API proposal.
46313
46314        * khtml/xml/dom_selection.h: Fix typo in comment.
46315        * kwq/WebCoreBridge.h: -applyStyle:toElementsInDOMRange: is now applyStyle:
46316        * kwq/WebCoreBridge.mm:
46317        (-[WebCoreBridge applyStyle:]): Ditto.
46318
463192004-04-22  Ken Kocienda  <kocienda@apple.com>
46320
46321        Reviewed by John
46322
46323        Adds the notion of selection affinity to the editing API, bringing it up to
46324        date with the latest proposal.
46325
46326        * khtml/xml/dom_selection.cpp:
46327        (DOM::Selection::Selection): Adds support for selection affinity member variable.
46328        (DOM::Selection::init): Ditto.
46329        (DOM::Selection::operator=): Ditto.
46330        (DOM::Selection::setAffinity): New function.
46331        (DOM::Selection::layoutCaret): Added comment to indicate that we need to enhance this
46332        function to handle selection affinity.
46333        * khtml/xml/dom_selection.h: Added EAffinity enum and m_affinity member variable.
46334        (DOM::Selection::): Moved the enums above the constructors. No code change.
46335        (DOM::Selection::affinity): New accessor.
46336        * kwq/WebCoreBridge.h:
46337        * kwq/WebCoreBridge.mm: Add selection affinity to API declarations as needed.
46338        (-[WebCoreBridge setSelectedDOMRange:affinity:]): Ditto.
46339        (-[WebCoreBridge selectedDOMRange]): Ditto.
46340        (-[WebCoreBridge selectionAffinity]): Ditto.
46341
463422004-04-21  Maciej Stachowiak  <mjs@apple.com>
46343
46344        Reviewed by Darin.
46345
46346	Preliminary change for conservative GC. Use new "protected"
46347	subclasses to GC-protect objects when on heap, since we will soon
46348	remove the built-in refcounting of the normal wrapper classes.
46349	
46350        * ForwardingHeaders/kjs/protect.h: Added.
46351        * khtml/ecma/kjs_binding.h:
46352        * khtml/ecma/kjs_events.h:
46353        * khtml/ecma/kjs_traversal.h:
46354        * khtml/ecma/kjs_window.h:
46355
463562004-04-22  Darin Adler  <darin@apple.com>
46357
46358        * khtml/ecma/kjs_window.cpp: (Window::get): Removed code that gets properties from the parent.
46359        This was a mistake we inherited from KHTML, and they have long since fixed it.
46360
463612004-04-22  Ken Kocienda  <kocienda@apple.com>
46362
46363        Reviewed by Hyatt
46364
46365        Ensures caret visibility after making an editing action.
46366
46367        * khtml/xml/dom_selection.cpp:
46368        (DOM::Selection::getRepaintRect): Expose this as public.
46369        * khtml/xml/dom_selection.h: Ditto.
46370        * kwq/WebCoreBridge.h: Add ensureCaretVisible method.
46371        * kwq/WebCoreBridge.mm:
46372        (-[WebCoreBridge replaceSelectionWithMarkupString:baseURLString:]):
46373        Unrelated crash fix. Null-check baseURLString.
46374        (-[WebCoreBridge ensureCaretVisible]): Added.
46375
463762004-04-21  David Hyatt  <hyatt@apple.com>
46377
46378	Fix for 3245627, nested tables don't expand vertically.  I actually fixed the basic problem in the
46379	previous checkin, but this exposed another basic math error where |numVariable| was not being
46380	decremented properly.  This meant space was mis-allocated when multiple variable height rows both needed
46381	to expand.
46382
46383        * khtml/rendering/render_table.cpp:
46384        (RenderTableSection::layoutRows):
46385
463862004-04-21  David Hyatt  <hyatt@apple.com>
46387
46388	Fix for 3020449, ensure that the paint order of cells with rowspans matches other browsers.
46389	
46390        Reviewed by darin
46391
46392        * khtml/rendering/render_table.cpp:
46393        (RenderTableSection::paint):
46394
463952004-04-21  David Hyatt  <hyatt@apple.com>
46396
46397	Remove the (incorrect) restriction on table flexing that required the cell to have a fixed width.  In
46398	reality, the style on the cell is completely irrelevant.
46399	
46400        Reviewed by kocienda
46401
46402        * khtml/rendering/render_table.cpp:
46403        (RenderTable::layout):
46404
464052004-04-21  David Hyatt  <hyatt@apple.com>
46406
46407	Make sure cells that get flexed vertically in tables don't check text children when looking for 
46408	percentage height children.
46409	
46410        Reviewed by kocienda
46411
46412        * khtml/rendering/render_table.cpp:
46413        (RenderTableSection::layoutRows):
46414
464152004-04-21  David Hyatt  <hyatt@apple.com>
46416
46417	Fix for hiermenus bug.  Absolutely positioned images should not contribute to their containing block's
46418	max width.  Make sure to disregard positioned elements when computing min/max width.
46419	
46420        Reviewed by kocienda
46421
46422        * khtml/rendering/render_block.cpp:
46423        (khtml::InlineMinMaxIterator::next):
46424
464252004-04-21  Ken Kocienda  <kocienda@apple.com>
46426
46427        Reviewed by Hyatt
46428
46429        * khtml/editing/htmlediting_impl.cpp:
46430        (DeleteSelectionCommandImpl::doApply): Do not shift ending selection downstream
46431        when at position zero of a BR. That's just wrong. Simplify code that does
46432        "onlyWhitespace" delete. No need to handle multiple characters here; we can
46433        only ever have one thanks to the delete-collapsible-whitespace code.
46434        (TypingCommandImpl::issueCommandForDeleteKey): Don't do anything if at the
46435        start of a root editable block. This is a no-op....not an opportunity to crash.
46436        * khtml/rendering/render_block.cpp:
46437        (khtml::RenderBlock::positionForRenderer): Return this renderer's element position
46438        if the passed-in renderer is nil. This helps to make clicking in empty blocks work.
46439        * khtml/rendering/render_container.cpp:
46440        (RenderContainer::positionForCoordinates): Fixed typo in comment.
46441        * khtml/xml/dom_position.cpp:
46442        (DOM::Position::equivalentLeafPosition): Do not attempt to find a leaf if the
46443        position's node does not have a renderer, if the renderer has no kids.
46444        * layout-tests/editing/deleting/delete-br-001-expected.txt: Update expected results for BR fix.
46445        * layout-tests/editing/deleting/delete-br-003-expected.txt: Ditto.
46446        * layout-tests/editing/deleting/delete-br-006-expected.txt: Ditto.
46447        * layout-tests/editing/deleting/delete-br-007.html: Added. New BR test.
46448        * layout-tests/editing/deleting/delete-br-007-expected.txt: Added.
46449
464502004-04-21  Ken Kocienda  <kocienda@apple.com>
46451
46452        Reviewed by Hyatt
46453
46454        * khtml/css/css_computedstyle.cpp:
46455        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Added implementations for
46456        these properties: CSS_PROP_TEXT_DECORATION, CSS_PROP_VERTICAL_ALIGN, CSS_PROP_TEXT_INDENT,
46457        CSS_PROP_LETTER_SPACING, CSS_PROP_WORD_SPACING, CSS_PROP_LINE_HEIGHT
46458
464592004-04-21  Ken Kocienda  <kocienda@apple.com>
46460
46461        Reviewed by John
46462
46463        The Selection class now uses the Position class throughout its public and
46464        private interface. This replaces the inconsistent use of the Position
46465        class here and node/offset pairs there. There are no functional changes, only
46466        updates to the new Selection class API.
46467
46468        * khtml/ecma/kjs_window.cpp:
46469        (Selection::get):
46470        (SelectionFunc::tryCall):
46471        * khtml/editing/htmlediting_impl.cpp:
46472        (DeleteCollapsibleWhitespaceCommandImpl::doApply):
46473        (DeleteSelectionCommandImpl::joinTextNodesWithSameStyle):
46474        (DeleteSelectionCommandImpl::doApply):
46475        (InputNewlineCommandImpl::doApply):
46476        (InputTextCommandImpl::deleteCharacter):
46477        (InputTextCommandImpl::prepareForTextInsertion):
46478        (InputTextCommandImpl::execute):
46479        (PasteMarkupCommandImpl::doApply):
46480        (TypingCommandImpl::issueCommandForDeleteKey):
46481        * khtml/khtml_part.cpp:
46482        (KHTMLPart::findTextNext):
46483        (KHTMLPart::setFocusNodeIfNeeded):
46484        (KHTMLPart::notifySelectionChanged):
46485        (KHTMLPart::isPointInsideSelection):
46486        (KHTMLPart::handleMouseMoveEventSelection):
46487        (KHTMLPart::khtmlMouseReleaseEvent):
46488        (KHTMLPart::selectAll):
46489        * khtml/rendering/render_block.cpp:
46490        (khtml::RenderBlock::paintObject):
46491        * khtml/xml/dom_docimpl.cpp:
46492        (DocumentImpl::updateSelection):
46493        * khtml/xml/dom_nodeimpl.cpp:
46494        * khtml/xml/dom_selection.cpp:
46495        (DOM::emptyPosition):
46496        (DOM::Selection::Selection):
46497        (DOM::Selection::init):
46498        (DOM::Selection::operator=):
46499        (DOM::Selection::moveTo):
46500        (DOM::Selection::modify):
46501        (DOM::Selection::xPosForVerticalArrowNavigation):
46502        (DOM::Selection::clear):
46503        (DOM::Selection::setBase):
46504        (DOM::Selection::setExtent):
46505        (DOM::Selection::setBaseAndExtent):
46506        (DOM::Selection::setStart):
46507        (DOM::Selection::setEnd):
46508        (DOM::Selection::setStartAndEnd):
46509        (DOM::Selection::toRange):
46510        (DOM::Selection::layoutCaret):
46511        (DOM::Selection::needsCaretRepaint):
46512        (DOM::Selection::paintCaret):
46513        (DOM::Selection::validate):
46514        (DOM::Selection::moveToRenderedContent):
46515        (DOM::Selection::nodeIsBeforeNode):
46516        (DOM::startAndEndLineNodesIncludingNode):
46517        (DOM::Selection::debugRenderer):
46518        (DOM::Selection::debugPosition):
46519        * khtml/xml/dom_selection.h:
46520        (DOM::Selection::~Selection):
46521        (DOM::Selection::base):
46522        (DOM::Selection::extent):
46523        (DOM::Selection::start):
46524        (DOM::Selection::end):
46525        (DOM::Selection::assignBase):
46526        (DOM::Selection::assignExtent):
46527        (DOM::Selection::assignBaseAndExtent):
46528        (DOM::Selection::assignStart):
46529        (DOM::Selection::assignEnd):
46530        (DOM::Selection::assignStartAndEnd):
46531        (DOM::operator==):
46532        * kwq/KWQKHTMLPart.mm:
46533        (KWQKHTMLPart::jumpToSelection):
46534        (KWQKHTMLPart::selectionStartOffset):
46535        (KWQKHTMLPart::selectionEndOffset):
46536        (KWQKHTMLPart::selectionStart):
46537        (KWQKHTMLPart::selectionEnd):
46538        * kwq/KWQRenderTreeDebug.cpp:
46539        (writeSelection):
46540        * kwq/WebCoreBridge.mm:
46541        (-[WebCoreBridge isSelectionEditable]):
46542        (-[WebCoreBridge setSelectionFrom:startOffset:to:endOffset:]):
46543        (-[WebCoreBridge setSelectedDOMRange:]):
46544
465452004-04-20  Ken Kocienda  <kocienda@apple.com>
46546
46547        Reviewed by Hyatt
46548        
46549        Renamed DOMPosition class to Position.
46550        Renamed KHTMLSelection to Selection and moved to DOM namespace.
46551
46552        * ForwardingHeaders/xml/dom_selection.h: Added.
46553        * WebCore.pbproj/project.pbxproj: Go Xcode!
46554        * khtml/khtml_selection.cpp: Removed.
46555        * khtml/khtml_selection.h: Removed.
46556        * khtml/xml/dom_position.cpp: Renamed DOMPosition to Position
46557        * khtml/xml/dom_position.h: Ditto.
46558        * khtml/xml/dom_selection.cpp: New home for renamed Selection object.
46559        * khtml/xml/dom_selection.h: Ditto.
46560
465612004-04-20  Ken Kocienda  <kocienda@apple.com>
46562
46563        Reviewed by Hyatt
46564
46565        * WebCore.pbproj/project.pbxproj:
46566        * khtml/khtml_part.cpp:
46567        (KHTMLPart::handleMousePressEventDoubleClick): Improved name of expandToElement. Now is expandUsingGranularity.
46568        (KHTMLPart::handleMousePressEventTripleClick): Ditto.
46569        (KHTMLPart::handleMouseMoveEventSelection): Ditto.
46570        * khtml/khtml_selection.cpp:
46571        (KHTMLSelection::modify): Added support for modifying and extending selection right and left by word.
46572        Also added support for extending selection up and down.
46573        (KHTMLSelection::expandUsingGranularity): New name for expandToElement.
46574        (KHTMLSelection::xPosForVerticalArrowNavigation): Made this function handle cases where we know we
46575        want to use a particular position for calculating the right x position. We need this to handle
46576        extending selection up and down, and for setting the caret to the right place when moving up
46577        and down when a range is already selected.
46578        (KHTMLSelection::validate): Name tweak. expandTo variable now granularity.
46579        * khtml/khtml_selection.h: Make declaration changes for changes to cpp file.
46580        * khtml/misc/helper.cpp:
46581        (khtml::findWordBoundary): Added this hook for KDE to do their version of KWQFindWordBoundary
46582        * khtml/misc/helper.h:
46583        * khtml/rendering/render_block.cpp:
46584        (khtml::RenderBlock::positionForCoordinates): Factor out closest box finder code to its own function
46585        * khtml/rendering/render_line.cpp:
46586        (InlineFlowBox::closestChildForXPos): New function. This is the factored code that was taken out of 
46587        render_block.cpp.
46588        (InlineBox::closestLeafChildForXPos): Ditto.
46589        * khtml/rendering/render_line.h: Ditto.
46590        * khtml/rendering/render_replaced.cpp:
46591        (RenderReplaced::positionForCoordinates): I think I am starting to get how the coordinate transforms work.
46592        Made some fixups based on this greater sense of enlightenment.
46593        * khtml/rendering/render_text.cpp:
46594        (RenderText::positionForCoordinates): Ditto. Fix lastTextBox/firstTextBox code mistake.
46595        * khtml/xml/dom_position.cpp:
46596        (DOMPosition::previousWordPosition): Added.
46597        (DOMPosition::nextWordPosition): Added.
46598        (DOMPosition::previousLinePosition): No longer use nodeAtPoint. Use new closestLeafChildForXPos instead.
46599        (DOMPosition::nextLinePosition): Ditto.
46600        (DOMPosition::inLastEditableInContainingEditableBlock):
46601        * khtml/xml/dom_position.h:
46602        * kwq/KWQTextUtilities.cpp: Added.
46603        (KWQFindWordBoundary): Factored out code that was in a static function in khtml_selection.cpp so 
46604        that DOMPosition can use it too.
46605        * kwq/KWQTextUtilities.h: Added.
46606
466072004-04-19  Ken Kocienda  <kocienda@apple.com>
46608
46609        Reviewed by Hyatt
46610
46611        * khtml/khtml_part.cpp:
46612        (KHTMLPart::notifySelectionChanged): Clear the value
46613        used for maintaining x position when doing vertical arrow
46614        navigation. WebCoreBridge restores this value when needed. 
46615        (KHTMLPart::setXPosForVerticalArrowNavigation): New accessor.
46616        (KHTMLPart::xPosForVerticalArrowNavigation): New accessor.
46617        * khtml/khtml_part.h:
46618        (KHTMLPart::): Add NoXPosForVerticalArrowNavigation constant.
46619        * khtml/khtml_selection.cpp:
46620        (KHTMLSelection::modify): Add cases for UP and DOWN navigation
46621        (KHTMLSelection::xPosForVerticalArrowNavigation): New helper.
46622        * khtml/khtml_selection.h: Add UP and DOWN constants to EDirection enum.
46623        (KHTMLSelection::):
46624        * khtml/khtmlpart_p.h: Declare storage for m_xPosForVerticalArrowNavigation, 
46625        the value used for maintaining x position when doing vertical arrow
46626        navigation. 
46627        * khtml/rendering/render_block.cpp:
46628        (khtml::RenderBlock::positionForCoordinates): Improved this function to
46629        handle deficiencies exposed when trying to implement new behavior.
46630        * khtml/rendering/render_br.cpp:
46631        (RenderBR::positionForCoordinates): Added implementation of this virtual function.
46632        * khtml/rendering/render_br.h: Declare implementation for positionForCoordinates virtual function.
46633        * khtml/rendering/render_replaced.cpp:
46634        (RenderReplaced::positionForCoordinates): Improved this function to
46635        handle deficiencies exposed when trying to implement new behavior.
46636        * khtml/rendering/render_text.cpp:
46637        (InlineTextBox::offsetForPosition): Remove left/right "bounds" check here.
46638        (RenderText::positionForCoordinates): Improved this function to
46639        handle deficiencies exposed when trying to implement new behavior.
46640        * khtml/xml/dom_position.cpp:
46641        (inlineBoxForRenderer): Moved to top of file so all code in the file can see this static function.
46642        (renderersOnDifferentLine): Ditto.
46643        (nextRenderedEditable): Ditto.
46644        (previousRenderedEditable): Ditto.
46645        (DOMPosition::previousLinePosition): New function. Implements the guts of up/down navigation.
46646        (DOMPosition::nextLinePosition): Ditto.
46647        * khtml/xml/dom_position.h: Added declarations for nextLinePosition and previousLinePosition.
46648        * kwq/WebCoreBridge.h: Add WebSelectUp and WebSelectDown constants.
46649        * kwq/WebCoreBridge.mm:
46650        (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Handles saving and restoring the 
46651        x position used for doing vertical arrow navigation.
46652
466532004-04-16  Ken Kocienda  <kocienda@apple.com>
46654
46655        Reviewed by Hyatt
46656
46657        * khtml/css/css_computedstyle.cpp:
46658        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Added implementations for
46659        these four properties: CSS_PROP_WHITE_SPACE, CSS_PROP_DISPLAY, CSS_PROP_FLOAT, and CSS_PROP_COLOR.
46660
466612004-04-16  Chris Blumenberg  <cblu@apple.com>
46662
46663	Subresources weren't being archived for LINK tags.
46664
46665        Reviewed by kocienda.
46666
46667        * khtml/xml/dom_nodeimpl.cpp:
46668        (NodeImpl::recursive_toHTMLWithOptions): indent tweak
46669        * kwq/DOMHTML.mm:
46670        (-[DOMHTMLLinkElement _linkElementImpl]): C+casting voodoo to make methods like rel and href work correctly
46671
466722004-04-16  Ken Kocienda  <kocienda@apple.com>
46673
46674        Reviewed by Hyatt
46675
46676        * khtml/html/html_elementimpl.cpp:
46677        (HTMLElementImpl::isContentEditable): Call getDocument()->updateRendering() to make sure 
46678        outstanding changes for this attribute are applied.
46679        (HTMLElementImpl::contentEditable): Call getDocument()->updateRendering() to make sure 
46680        outstanding changes for this attribute are applied.
46681        (HTMLElementImpl::setContentEditable): Call enabled.isEmpty() before strcasecmp(enabled, "true").
46682        It's cheaper.
46683
466842004-04-16  Ken Kocienda  <kocienda@apple.com>
46685
46686        Reviewed by Hyatt
46687
46688        * khtml/editing/htmlediting_impl.cpp: New helper.
46689        (DeleteSelectionCommandImpl::containsOnlyWhitespace): Fix deleting collapsed whitespace 
46690        at the end of a line where text has flowed to the next line and the caret is at the 
46691        beginning of the next line. 
46692        (DeleteSelectionCommandImpl::doApply): Updated for new helper.
46693        * khtml/editing/htmlediting_impl.h:
46694        * layout-tests/editing/deleting/delete-line-end-ws-001-expected.txt: Added.
46695        * layout-tests/editing/deleting/delete-line-end-ws-001.html: Added.
46696        * layout-tests/editing/deleting/delete-line-end-ws-002-expected.txt: Added.
46697        * layout-tests/editing/deleting/delete-line-end-ws-002.html: Added.
46698
46699=== Safari-137 ===
46700
467012004-04-16  Richard Williamson   <rjw@apple.com>
46702
46703	Added an SPI to allow ObjC instances to be easily bound to 
46704	JS.  This is needed by the dashboard guys for their prototyping.
46705	Eventually they will use new API.
46706
46707        Reviewed by Chris.
46708
46709        * kwq/KWQKHTMLPart.h:
46710        * kwq/KWQKHTMLPart.mm:
46711        (KWQKHTMLPart::bindObject):
46712        * kwq/WebCoreBridge.h:
46713        * kwq/WebCoreBridge.mm:
46714        (-[WebCoreBridge bindObject:withName:]):
46715
467162004-04-16  Chris Blumenberg  <cblu@apple.com>
46717
46718	Added DOMHTMLEmbedElement as a DOM extension since EMBED is represented in our DOM even though its not part of the spec.
46719	Added all DOMCore and DOMHTML symbols to WebCore's symbols file.
46720	Removed isSubresourceURLAttribute from dom node. This was only used for the WebArchive feature and all that work is now done in WebKit.
46721
46722        Reviewed by kocienda.
46723
46724        * WebCore-combined.exp:
46725        * WebCore.exp:
46726        * khtml/html/html_baseimpl.cpp:
46727        (HTMLBodyElementImpl::isURLAttribute): renamed from isSubresourceURLAttribute. As a convenience to subclasses, dom_elementimpl would call isSubresourceURLAttribute in isURLAttribute, but this is no longer done
46728        (HTMLFrameElementImpl::isURLAttribute): ditto
46729        (HTMLIFrameElementImpl::isURLAttribute): ditto
46730        * khtml/html/html_baseimpl.h:
46731        * khtml/html/html_formimpl.cpp:
46732        (HTMLInputElementImpl::isURLAttribute): ditto
46733        * khtml/html/html_formimpl.h:
46734        * khtml/html/html_headimpl.cpp:
46735        (HTMLScriptElementImpl::isURLAttribute): ditto
46736        * khtml/html/html_headimpl.h:
46737        * khtml/html/html_imageimpl.cpp: 
46738        (HTMLImageElementImpl::isURLAttribute): ditto
46739        * khtml/html/html_imageimpl.h:
46740        * khtml/html/html_objectimpl.cpp:
46741        (HTMLEmbedElementImpl::isURLAttribute): ditto
46742        (HTMLObjectElementImpl::isURLAttribute): ditto
46743        (HTMLParamElementImpl::isURLAttribute): ditto
46744        * khtml/html/html_objectimpl.h:
46745        * khtml/html/html_tableimpl.cpp:
46746        (HTMLTableElementImpl::isURLAttribute): ditto
46747        (HTMLTableCellElementImpl::isURLAttribute): ditto
46748        * khtml/html/html_tableimpl.h:
46749        * khtml/xml/dom2_rangeimpl.cpp:
46750        (RangeImpl::toHTMLWithOptions): take a node list (see below)
46751        * khtml/xml/dom2_rangeimpl.h:
46752        * khtml/xml/dom_elementimpl.cpp:
46753        (ElementImpl::isURLAttribute):
46754        * khtml/xml/dom_elementimpl.h:
46755        * khtml/xml/dom_nodeimpl.cpp:
46756        (NodeImpl::recursive_toHTMLWithOptions): append copied nodes to a list of nodes so that WebKit can operate on them
46757        * khtml/xml/dom_nodeimpl.h:
46758        * kwq/DOM.mm:
46759        (+[DOMNode _nodeWithImpl:]): added support for HTML types
46760        * kwq/DOMExtensions.h:
46761        * kwq/DOMHTML.mm:
46762        (-[DOMHTMLPreElement setWidth:]):
46763        (-[DOMHTMLEmbedElement _embedElementImpl]):
46764        (-[DOMHTMLEmbedElement align]):
46765        (-[DOMHTMLEmbedElement setAlign:]):
46766        (-[DOMHTMLEmbedElement height]):
46767        (-[DOMHTMLEmbedElement setHeight:]):
46768        (-[DOMHTMLEmbedElement name]):
46769        (-[DOMHTMLEmbedElement setName:]):
46770        (-[DOMHTMLEmbedElement src]):
46771        (-[DOMHTMLEmbedElement setSrc:]):
46772        (-[DOMHTMLEmbedElement type]):
46773        (-[DOMHTMLEmbedElement setType:]):
46774        (-[DOMHTMLEmbedElement width]):
46775        (-[DOMHTMLEmbedElement setWidth:]):
46776        (-[DOMHTMLTableElement background]):
46777        (-[DOMHTMLTableElement setBackground:]):
46778        (-[DOMHTMLTableCellElement background]): new extension 
46779        (-[DOMHTMLTableCellElement setBackground:]): ditto
46780        * kwq/WebCoreBridge.h:
46781        * kwq/WebCoreBridge.mm:
46782        (-[WebCoreBridge nodesFromList:]): new
46783        (-[WebCoreBridge markupStringFromNode:nodes:]): return a list of nodes instead of subresource URLs so WebKit can operate on the nodes
46784        (-[WebCoreBridge markupStringFromRange:nodes:]): ditto
46785
467862004-04-15  David Hyatt  <hyatt@apple.com>
46787
46788	Fix for 3624335, bugs with overflow and positioned objects.  The scrollbar didn't properly update
46789	as you changed the sizes of positioned objects inside an overflow block.
46790	
46791        Reviewed by rjw
46792
46793        * khtml/rendering/render_block.cpp:
46794        (khtml::RenderBlock::layoutBlock):
46795        * khtml/rendering/render_flexbox.cpp:
46796        (khtml::RenderFlexibleBox::layoutBlock):
46797        * khtml/rendering/render_layer.cpp:
46798        (RenderLayer::updateScrollInfoAfterLayout):
46799
468002004-04-15  Ken Kocienda  <kocienda@apple.com>
46801
46802        Reviewed by Dave
46803        
46804        Improved selection behavior. As part of this work, I removed
46805        almost all of the checkSelectionPoint() functions, leaving
46806        only those associated with fonts, and all of the 
46807        checkSelectionPointIgnoringContinuations() functions. Each
46808        of these has been replaced by a new function called
46809        positionForCoordinates(), which returns a DOMPosition.
46810        
46811        * WebCore.pbproj/project.pbxproj:
46812        * khtml/khtml_events.cpp:
46813        (khtml::MouseEvent::offset): Converted to use positionForCoordinates.
46814        * khtml/khtml_part.cpp: Ditto.
46815        (KHTMLPart::isPointInsideSelection):
46816        (KHTMLPart::handleMousePressEventDoubleClick): Ditto.
46817        (KHTMLPart::handleMousePressEventTripleClick): Ditto.
46818        (KHTMLPart::handleMousePressEventSingleClick): Ditto.
46819        (KHTMLPart::handleMouseMoveEventSelection): Ditto.
46820        (KHTMLPart::khtmlMouseReleaseEvent): Ditto.
46821        * khtml/khtml_part.h:
46822        * khtml/rendering/render_block.cpp:
46823        (khtml::RenderBlock::positionForBox): New helper.
46824        (khtml::RenderBlock::positionForRenderer): New helper.
46825        (khtml::RenderBlock::positionForCoordinates): New selection-node-offset-finder method.
46826        * khtml/rendering/render_block.h:
46827        * khtml/rendering/render_br.cpp: Removed checkSelectionPointIgnoringContinuations.
46828        No special behavior is needed for this class anymore.
46829        * khtml/rendering/render_br.h: Ditoo.
46830        * khtml/rendering/render_container.cpp:
46831        (RenderContainer::positionForCoordinates): New selection-node-offset-finder method.
46832        * khtml/rendering/render_container.h:
46833        * khtml/rendering/render_line.cpp:
46834        (InlineBox::firstLeafChild): New helper.
46835        (InlineBox::lastLeafChild): New helper.
46836        (InlineFlowBox::firstLeafChild): New helper.
46837        (InlineFlowBox::lastLeafChild): New helper.
46838        * khtml/rendering/render_line.h:
46839        * khtml/rendering/render_object.cpp:
46840        (RenderObject::firstLeafChild): New helper.
46841        (RenderObject::lastLeafChild): New helper.
46842        (RenderObject::positionForCoordinates):
46843        * khtml/rendering/render_object.h:
46844        * khtml/rendering/render_replaced.cpp:
46845        (RenderReplaced::positionForCoordinates): New selection-node-offset-finder method.
46846        * khtml/rendering/render_replaced.h:
46847        * khtml/rendering/render_text.cpp:
46848        (InlineTextBox::offsetForPosition): New helper, replaces checkSelectionPoint()
46849        (RenderText::positionForCoordinates): New selection-node-offset-finder method.
46850        * khtml/rendering/render_text.h:
46851        * khtml/xml/dom_nodeimpl.cpp: Added positionForCoordinates() convenience here. This
46852        checks to see if the node has a renderer before doing the position check.
46853        * khtml/xml/dom_nodeimpl.h: Ditto.
46854        * kwq/DOM.mm:
46855        (-[DOMNode isContentEditable]): Added this unrelated method, since without it, I crash when dragging an image.
46856        * kwq/WebCoreBridge.mm:
46857        (-[WebCoreBridge moveCaretToPoint:]): Converted to use positionForCoordinates.
46858
468592004-04-15  David Hyatt  <hyatt@apple.com>
46860
46861	Fix for 3603455, block truncation support.
46862	
46863        Reviewed by kocienda
46864
46865        * khtml/css/cssparser.cpp:
46866        (CSSParser::parseValue):
46867        * khtml/css/cssproperties.c:
46868        (hash_prop):
46869        (findProp):
46870        * khtml/css/cssproperties.h:
46871        * khtml/css/cssproperties.in:
46872        * khtml/css/cssstyleselector.cpp:
46873        (khtml::CSSStyleSelector::applyProperty):
46874        * khtml/ecma/kjs_css.cpp:
46875        (cssPropertyName):
46876        * khtml/rendering/render_block.cpp:
46877        (khtml::RenderBlock::lineCount):
46878        (khtml::RenderBlock::heightForLineCount):
46879        * khtml/rendering/render_block.h:
46880        * khtml/rendering/render_flexbox.cpp:
46881        (khtml::RenderFlexibleBox::layoutHorizontalBox):
46882        (khtml::RenderFlexibleBox::layoutVerticalBox):
46883        * khtml/rendering/render_style.cpp:
46884        (marquee):
46885        (StyleCSS3NonInheritedData::operator==):
46886        (RenderStyle::diff):
46887        * khtml/rendering/render_style.h:
46888        (khtml::RenderStyle::lineClamp):
46889        (khtml::RenderStyle::setLineClamp):
46890        (khtml::RenderStyle::initialLineClamp):
46891
468922004-04-13  Chris Blumenberg  <cblu@apple.com>
46893
46894	- Removed WebCoreElementIsEditableKey. This functionality is available via [DOMNode isContentEditable].
46895
46896        Reviewed by rjw.
46897
46898        * WebCore-combined.exp:
46899        * WebCore.exp:
46900        * kwq/WebCoreBridge.h:
46901        * kwq/WebCoreBridge.mm:
46902        (-[WebCoreBridge elementAtPoint:]): removed use of WebCoreElementIsEditableKey
46903        (-[WebCoreBridge URLWithRelativeString:]): new method for WebKit API
46904
469052004-04-13  David Hyatt  <hyatt@apple.com>
46906
46907	Fix for 3559764, make sure overflow is applied consistently using a separate bit on render objects, so that
46908	the body scroll quirk can easily disable overflow even when it is present on the style.
46909	
46910        Reviewed by kocienda
46911
46912        * khtml/ecma/kjs_dom.cpp:
46913        (DOMNode::putValue):
46914        * khtml/rendering/bidi.cpp:
46915        (khtml::RenderBlock::layoutInlineChildren):
46916        * khtml/rendering/render_block.cpp:
46917        (khtml::RenderBlock::setStyle):
46918        (khtml::RenderBlock::layoutBlock):
46919        (khtml::RenderBlock::layoutBlockChildren):
46920        (khtml::RenderBlock::paintObject):
46921        (khtml::RenderBlock::rightOffset):
46922        (khtml::RenderBlock::lowestPosition):
46923        (khtml::RenderBlock::rightmostPosition):
46924        (khtml::RenderBlock::leftmostPosition):
46925        (khtml::RenderBlock::isPointInScrollbar):
46926        (khtml::RenderBlock::nodeAtPoint):
46927        (khtml::RenderBlock::inRootBlockContext):
46928        * khtml/rendering/render_block.h:
46929        (khtml::RenderBlock::overflowHeight):
46930        (khtml::RenderBlock::overflowWidth):
46931        * khtml/rendering/render_box.cpp:
46932        (RenderBox::setStyle):
46933        (RenderBox::contentWidth):
46934        (RenderBox::contentHeight):
46935        (RenderBox::absolutePosition):
46936        (RenderBox::computeAbsoluteRepaintRect):
46937        (RenderBox::calcAbsoluteVertical):
46938        * khtml/rendering/render_flexbox.cpp:
46939        (khtml::RenderFlexibleBox::layoutBlock):
46940        * khtml/rendering/render_flow.cpp:
46941        (RenderFlow::lowestPosition):
46942        (RenderFlow::rightmostPosition):
46943        (RenderFlow::leftmostPosition):
46944        * khtml/rendering/render_layer.cpp:
46945        (RenderLayer::updateLayerPosition):
46946        (RenderLayer::updateScrollInfoAfterLayout):
46947        (RenderLayer::intersectsDamageRect):
46948        (RenderLayer::containsPoint):
46949        * khtml/rendering/render_object.cpp:
46950        (RenderObject::RenderObject):
46951        (RenderObject::requiresLayer):
46952        (RenderObject::clientWidth):
46953        (RenderObject::clientHeight):
46954        (RenderObject::scrollWidth):
46955        (RenderObject::scrollHeight):
46956        (RenderObject::setStyle):
46957        (RenderObject::absolutePosition):
46958        (RenderObject::nodeAtPoint):
46959        (RenderObject::avoidsFloats):
46960        * khtml/rendering/render_object.h:
46961        (khtml::RenderObject::hasOverflowClip):
46962        (khtml::RenderObject::hasAutoScrollbars):
46963        (khtml::RenderObject::scrollsOverflow):
46964        (khtml::RenderObject::includeScrollbarSize):
46965        (khtml::RenderObject::setHasOverflowClip):
46966        * khtml/rendering/render_style.h:
46967        (khtml::RenderStyle::overflow):
46968        (khtml::RenderStyle::isDisplayReplacedType):
46969        (khtml::RenderStyle::isDisplayInlineType):
46970        * khtml/rendering/render_table.cpp:
46971        (RenderTable::setStyle):
46972        (RenderTableCell::setStyle):
46973        (RenderTableCell::requiresLayer):
46974        * khtml/rendering/render_table.h:
46975
469762004-04-12  David Hyatt  <hyatt@apple.com>
46977
46978	Fix for 3556036, make sure that when the position changes via style that all render layer
46979	descendants simply immediately repaint.
46980	
46981        Reviewed by kocienda
46982	
46983        * khtml/rendering/render_layer.cpp:
46984        (RenderLayer::repaintIncludingDescendants):
46985        * khtml/rendering/render_layer.h:
46986        * khtml/rendering/render_object.cpp:
46987        (RenderObject::setStyle):
46988
469892004-04-12  Chris Blumenberg  <cblu@apple.com>
46990
46991	- Fixed build failure by removing references to WebArchive in WebCore.
46992	- For HTML copy/paste, relative URLs are now made absolute at paste time instead of at copy time. This allows relative URLs to be kept relative if the destination page has the same base URL as the source page.
46993
46994        Reviewed by kocienda.
46995
46996        * khtml/editing/htmlediting.cpp:
46997        (PasteMarkupCommand::PasteMarkupCommand): take the base URL of the clipping
46998        * khtml/editing/htmlediting.h:
46999        * khtml/editing/htmlediting_impl.cpp:
47000        (PasteMarkupCommandImpl::PasteMarkupCommandImpl): take the base URL of the clipping
47001        (PasteMarkupCommandImpl::doApply): if we have a base URL and it is different than the base URL of the document, fix the URLs in the new DOM tree
47002        * khtml/editing/htmlediting_impl.h:
47003        * khtml/xml/dom2_rangeimpl.cpp:
47004        (RangeImpl::toHTMLWithOptions): removed completeURLs param
47005        * khtml/xml/dom2_rangeimpl.h:
47006        * khtml/xml/dom_nodeimpl.cpp:
47007        (NodeImpl::recursive_toHTMLWithOptions): removed completeURLs param
47008        (NodeImpl::recursive_toHTML): ditto
47009        (NodeImpl::recursive_completeURLs): new
47010        * khtml/xml/dom_nodeimpl.h:
47011        * kwq/WebCoreBridge.h:
47012        * kwq/WebCoreBridge.mm:
47013        (-[WebCoreBridge markupStringFromNode:subresourceURLStrings:]): call recursive_toHTML with less params
47014        (-[WebCoreBridge markupStringFromRange:subresourceURLStrings:]): ditto
47015        (-[WebCoreBridge replaceSelectionWithMarkupString:baseURLString:]): take a base URL
47016
470172004-04-12  Ken Kocienda  <kocienda@apple.com>
47018
47019        Reviewed by Dave
47020
47021        Added execCommand support for cut/copy/paste.
47022        
47023        * khtml/xml/dom_docimpl.cpp:
47024        (DocumentImpl::execCommand): Added cut/copy/paste atoms and added else if cases
47025        for the commands.
47026        * kwq/KWQKHTMLPart.h:
47027        * kwq/KWQKHTMLPart.mm:
47028        (KWQKHTMLPart::issueCutCommand): Glue for calling from WebCore to do a cut in Cocoa.
47029        (KWQKHTMLPart::issueCopyCommand): Same as above, but for copy.
47030        (KWQKHTMLPart::issuePasteCommand): Same as above, but for paste.
47031        * kwq/WebCoreBridge.h: Declared issueCutCommand, issueCopyCommand, and issuePasteCommand
47032        to be implemented on the WebKit side of the bridge.
47033        * layout-tests/editing/editing.js: Added cut/copy/paste support to js library to support
47034        making layout tests.
47035        * layout-tests/editing/pasteboard/copy-paste-text-001-expected.txt: Added.
47036        * layout-tests/editing/pasteboard/copy-paste-text-001.html: Added.
47037        * layout-tests/editing/pasteboard/cut-paste-text-002-expected.txt: Added.
47038        * layout-tests/editing/pasteboard/cut-paste-text-002.html: Added.
47039        * layout-tests/editing/pasteboard/cut-text-001-expected.txt: Added.
47040        * layout-tests/editing/pasteboard/cut-text-001.html: Added.
47041
470422004-04-12  Ken Kocienda  <kocienda@apple.com>
47043
47044        Reviewed by John
47045        
47046        Some delete and insert cleanups.
47047
47048        * khtml/editing/htmlediting_impl.cpp:
47049        (DeleteSelectionCommandImpl::doApply): For ending position case 1,
47050        the caret should be placed before the first child of the containing block, 
47051        not before the containing block itself. Also, add some code to handle
47052        converting nbsp's back to regular spaces. This will need to be improved
47053        some day to convert only nbsp's added by the editor to make rendering come out right.
47054        (InputTextCommandImpl::execute): 
47055        (TypingCommandImpl::issueCommandForDeleteKey): Make deleting collapsible whitespace part 
47056        of the work of deleting a selection, rather than something that needs to be done by a 
47057        user of DeleteSelectionCommandImpl. This makes it impossible to leave out
47058        this essential step.
47059        (TypingCommandImpl::deleteKeyPressed): We can't use a possible optimization here until 
47060        the code to do deletions properly has been factored better. Big FIXME added.
47061        * layout-tests/editing/deleting/delete-block-contents-001-expected.txt: Updated for
47062        ending position case 1 behavior change.
47063        * layout-tests/editing/deleting/delete-block-contents-002-expected.txt: Ditto. 
47064        * layout-tests/editing/deleting/delete-block-contents-003-expected.txt: Ditto.
47065
470662004-04-09  Ken Kocienda  <kocienda@apple.com>
47067
47068        Reviewed by Darin
47069
47070        Added support for methods added to flesh out the WebKit 
47071        editing API.
47072
47073        * khtml/khtml_part.h: Removed pasteMarkupString and deleteSelection functions.
47074        All this work is now done in WebCoreBridge.
47075        * kwq/WebCoreBridge.h:
47076        * kwq/WebCoreBridge.mm:
47077        (-[WebCoreBridge isSelectionEditable]): Added a FIXME.
47078        (-[WebCoreBridge setDrawsBackground:]): Moved this since CVS merged this in the
47079        middle of editing code.
47080        (-[WebCoreBridge replaceSelectionWithNode:]): New method.
47081        (-[WebCoreBridge replaceSelectionWithText:]): Replaces insertText:
47082        (-[WebCoreBridge replaceSelectionWithMarkupString:]): New method.
47083        (-[WebCoreBridge replaceSelectionWithWebArchive:]): New method.
47084        (-[WebCoreBridge replaceSelectionWithNewline]): Replaces insertNewline:
47085        (-[WebCoreBridge deleteSelection]): New method.
47086        (-[WebCoreBridge applyStyle:toElementsInDOMRange:]): New method.
47087
470882004-04-09  Darin Adler  <darin@apple.com>
47089
47090        Reviewed by Ken.
47091
47092        - added "transparent mode"
47093
47094        * khtml/khtmlview.h: Added isTransparent and setTransparent functions.
47095        * khtml/khtmlview.cpp:
47096        (KHTMLViewPrivate::KHTMLViewPrivate): Initialize isTransparent to false.
47097        (KHTMLView::isTransparent): Return isTransparent.
47098        (KHTMLView::setTransparent): Set isTransparent.
47099
47100        * khtml/rendering/render_box.cpp:
47101        (RenderBox::paintRootBoxDecorations): Use slow repaints for the top frame when the view
47102        is transparent; also don't draw a background. This is the same thing we do for subframes.
47103        (RenderBox::paintBackgroundExtended): Don't do the extra draw so we can blend with the
47104        background color for the top frame when the view is transparent.
47105        * khtml/rendering/render_canvas.cpp: (RenderCanvas::paintBoxDecorations): More of the same.
47106
47107        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::paint): Make "fill with red" debug mode work only
47108        when the view is not transparent.
47109
47110        * kwq/WebCoreBridge.h: Added setDrawsBackground: method.
47111        * kwq/WebCoreBridge.mm: (-[WebCoreBridge setDrawsBackground:]): If told NO
47112        (don't draw background), then set isTransparent to true on the KHTMLView.
47113
471142004-04-09  Ken Kocienda  <kocienda@apple.com>
47115
47116        Added one more layout test for editing.
47117
47118        * layout-tests/editing/deleting/delete-3608445-fix-expected.txt: Added.
47119        * layout-tests/editing/deleting/delete-3608445-fix.html: Added.
47120
471212004-04-08  Maciej Stachowiak  <mjs@apple.com>
47122
47123        Reviewed by John.
47124
47125	Changed things so that newly created objects get a prototype based
47126	on the scope chain of the current function, rather than the
47127	interpreter that started execution. This fixes the following bugs:
47128	
47129	<rdar://problem/3368523>: ARCH: wrong prototype used to create new objects (hang on lookup.atomica.com)
47130        <rdar://problem/3559173>: ARCH: Cannot scan using a HP Jetdirect product (JS object prototypes bind incorrectly)
47131
47132	* khtml/ecma/kjs_binding.h:
47133        (KJS::cacheDOMObject):
47134        (KJS::cacheGlobalObject):
47135        * khtml/ecma/kjs_css.cpp:
47136        (KJS::getDOMStyleSheet):
47137        (KJS::getDOMStyleSheetList):
47138        (KJS::getDOMCSSValue):
47139        * khtml/ecma/kjs_dom.cpp:
47140        (KJS::getDOMDocumentNode):
47141        (KJS::getDOMNode):
47142        * khtml/ecma/kjs_events.cpp:
47143        (KJS::getDOMEvent):
47144        * khtml/ecma/kjs_html.cpp:
47145        (KJS::HTMLDocument::tryGet):
47146        (KJS::HTMLDocument::putValue):
47147        (KJS::getSelectHTMLCollection):
47148        * khtml/ecma/kjs_navigator.cpp:
47149        (Navigator::Navigator):
47150        (PluginBase::PluginBase):
47151        * khtml/ecma/kjs_window.cpp:
47152        (KJS::History::History):
47153        (KJS::FrameArray::FrameArray):
47154        (Screen::Screen):
47155        (Window::retrieveActive):
47156        (Window::put):
47157        (Window::isSafeScript):
47158        (WindowFunc::tryCall):
47159        (Location::put):
47160        (LocationFunc::tryCall):
47161
471622004-04-09  David Hyatt  <hyatt@apple.com>
47163
47164	Fix for 3613081, repaint glitches when using overflow:auto/overlay.
47165	
47166        Reviewed by john
47167
47168        * khtml/rendering/render_layer.cpp:
47169        (RenderLayer::updateScrollInfoAfterLayout):
47170
471712004-04-09  David Hyatt  <hyatt@apple.com>
47172
47173	Fix for 3608445, garbage characters rendered after doing delete.  Delta was unsigned when it was supposed to
47174	be signed, since deletion involves a negative delta.  Also had an off-by-one error in the line break end check.
47175	
47176        Reviewed by john
47177
47178        * khtml/rendering/render_text.cpp:
47179        (RenderText::setTextWithOffset):
47180
471812004-04-09  Ken Kocienda  <kocienda@apple.com>
47182
47183        Added two more layout tests for editing.
47184
47185        * layout-tests/editing/selection/move-between-blocks-no-001-expected.txt: Added.
47186        * layout-tests/editing/selection/move-between-blocks-no-001.html: Added.
47187        * layout-tests/editing/selection/move-between-blocks-yes-001-expected.txt: Added.
47188        * layout-tests/editing/selection/move-between-blocks-yes-001.html: Added.
47189
471902004-04-09  Ken Kocienda  <kocienda@apple.com>
47191
47192        Reviewed by Dave
47193        
47194        Small collection of editing improvements.
47195
47196        * ChangeLog:
47197        * khtml/editing/htmlediting_impl.cpp:
47198        (shouldDeleteUpstreamPosition): This was deleting significant spaces on preceding
47199        lines when the caret was at the start of a line. Fixed. 
47200        (DeleteSelectionCommandImpl::doApply): Fixed a case where caret jumped to previous
47201        line when deleting a character at the start of a line after a BR.
47202        (InputNewlineCommandImpl::doApply): Handle more cases correctly. Previously, this
47203        only handled inserting a newline when the caret was already in a text node.
47204        (InputTextCommandImpl::prepareForTextInsertion): Ditto.
47205        (InputTextCommandImpl::execute): Ditto.
47206        * khtml/editing/htmlediting_impl.h:
47207        * khtml/rendering/render_block.cpp:
47208        (khtml::RenderBlock::checkSelectionPointIgnoringContinuations): Now can place caret
47209        with a click in an empty block.
47210        * khtml/rendering/render_block.h: Added checkSelectionPointIgnoringContinuations declaration.
47211        * khtml/rendering/render_replaced.cpp: 
47212        (RenderReplaced::checkSelectionPointIgnoringContinuations): Now can place caret with a click 
47213        on a replaced element.
47214        * khtml/rendering/render_replaced.h: Added checkSelectionPointIgnoringContinuations declaration.
47215        * khtml/rendering/render_text.cpp:
47216        (InlineTextBox::checkSelectionPoint): Now can place caret with a click in text on a line made "tall"
47217        by an image on the same line.
47218        * khtml/xml/dom_docimpl.cpp:
47219        (DocumentImpl::createEditingTextNode): This creates a text node subclass that whill always create
47220        a renderer for itself.
47221        * khtml/xml/dom_docimpl.h:
47222        * khtml/xml/dom_position.cpp:
47223        (DOMPosition::isLastRenderedPositionInEditableBlock): Improved code to handle more cases.
47224        * khtml/xml/dom_textimpl.cpp:
47225        (TextImpl::TextImpl): Rolled out m_rendererIsNeeded flag.
47226        (TextImpl::rendererIsNeeded): Ditto.
47227        (EditingTextImpl::EditingTextImpl): New class.
47228        (EditingTextImpl::~EditingTextImpl): New.
47229        (EditingTextImpl::rendererIsNeeded): New. Always returns true.
47230        * khtml/xml/dom_textimpl.h: New EditingTextImpl class.
47231        * layout-tests/editing/deleting/delete-3608430-fix-expected.txt: Added.
47232        * layout-tests/editing/deleting/delete-3608430-fix.html: Added.
47233        * layout-tests/editing/deleting/delete-3608462-fix-expected.txt: Added.
47234        * layout-tests/editing/deleting/delete-3608462-fix.html: Added.
47235        * layout-tests/editing/deleting/delete-trailing-ws-002-expected.txt: Added.
47236        * layout-tests/editing/deleting/delete-trailing-ws-002.html: Added.
47237
472382004-04-08  Chris Blumenberg  <cblu@apple.com>
47239
47240	Renamed the PasteHTMLCommand to PasteMarkupCommand. Removed PasteImageCommand because we will use PasteMarkupCommand for pasting images.
47241
47242        Reviewed by kocienda.
47243
47244        * ChangeLog:
47245        * khtml/editing/htmlediting.cpp:
47246        (PasteMarkupCommand::PasteMarkupCommand):
47247        (PasteMarkupCommand::~PasteMarkupCommand):
47248        (PasteMarkupCommand::impl):
47249        (PasteMarkupCommand::markupString):
47250        * khtml/editing/htmlediting.h:
47251        (khtml::):
47252        * khtml/editing/htmlediting_impl.cpp:
47253        (PasteMarkupCommandImpl::PasteMarkupCommandImpl):
47254        (PasteMarkupCommandImpl::~PasteMarkupCommandImpl):
47255        (PasteMarkupCommandImpl::commandID):
47256        (PasteMarkupCommandImpl::doApply):
47257        * khtml/editing/htmlediting_impl.h:
47258        (khtml::PasteMarkupCommandImpl::markupString):
47259        * khtml/khtml_part.cpp:
47260        (KHTMLPart::pasteMarkupString):
47261        * khtml/khtml_part.h:
47262        * kwq/WebCoreBridge.h:
47263        * kwq/WebCoreBridge.mm:
47264        (-[WebCoreBridge pasteMarkupString:]):
47265
47266
472672004-04-08  David Hyatt  <hyatt@apple.com>
47268
47269	Fix for 3608430 and 3608462, crashes in findNextLineBreak when deleting.  Make sure that the removal of line boxes
47270	always checks the previous root line box's line break information and dirties the line if it is pointing
47271	to the deleted object.
47272	
47273        Reviewed by kocienda
47274
47275        * khtml/rendering/render_line.cpp:
47276        (InlineFlowBox::removeChild):
47277
472782004-04-08  Chris Blumenberg  <cblu@apple.com>
47279
47280	Removed DOMExtensions.h from DOM.h until it is public.
47281
47282        Reviewed by koicienda.
47283
47284        * kwq/DOM.h:
47285
472862004-04-07  Chris Blumenberg  <cblu@apple.com>
47287
47288	WebCore side for supporting WebDOMOperations.	
47289
47290        Reviewed by rjw.
47291
47292        * WebCore-combined.exp:
47293        * WebCore.exp:
47294        * kwq/DOM.mm:
47295        * kwq/DOMExtensions.h:
47296        * kwq/WebCoreBridge.h:
47297        * kwq/WebCoreBridge.mm:
47298        (+[WebCoreBridge bridgeForDOMDocument:]): new
47299        (-[WebCoreBridge imageForImageElement:]): new
47300
473012004-04-07  Darin Adler  <darin@apple.com>
47302
47303        Reviewed by Chris.
47304
47305        * kwq/DOMCSS.h: Changed DOMCSS2Properties to be a category on DOMCSSStyleDeclaration
47306        (after API review, oops!, but I doubt anyone will even notice).
47307        * kwq/DOM-CSS.mm: Implemented the entire DOMCSS2Properties category.
47308
473092004-04-07  Ken Kocienda  <kocienda@apple.com>
47310
47311        Reviewed by Chris
47312
47313        * kwq/WebCoreBridge.mm:
47314        (-[WebCoreBridge _stringWithDocumentTypeStringAndMarkupString:]): Do not add a newline in between
47315        the doctype and the content. The newline was showing up when the content was pasted.
47316
473172004-04-07  Ken Kocienda  <kocienda@apple.com>
47318
47319        Reviewed by John
47320
47321        Removed concept of currentSelection from EditCommands and refined concept of
47322        startingSelection and endingSelection, making them work more sensibly in the 
47323        system of composed editing commands.
47324
47325        * khtml/editing/htmlediting.cpp: Removed currentSelection().
47326        * khtml/editing/htmlediting.h: Ditto.
47327        * khtml/editing/htmlediting_impl.cpp: currentSelection().
47328        (CompositeEditCommandImpl::applyCommandToComposite): Set the startingSelection 
47329        and endingSelection for the command being applied to the endingSelection of
47330        its new parent. This is the proper starting and ending point.
47331        (CompositeEditCommandImpl::deleteSelection): Changed call to currentSelection
47332        to endingSelection.
47333        (DeleteCollapsibleWhitespaceCommandImpl::DeleteCollapsibleWhitespaceCommandImpl): Ditto.
47334        (DeleteSelectionCommandImpl::DeleteSelectionCommandImpl): Changed call from startingSelection
47335        to endingSelection.
47336        (DeleteSelectionCommandImpl::joinTextNodesWithSameStyle): Changed call to currentSelection
47337        to endingSelection.
47338        (InputNewlineCommandImpl::doApply): Ditto.
47339        (InputTextCommandImpl::deleteCharacter): Ditto.
47340        (InputTextCommandImpl::prepareForTextInsertion): Ditto.
47341        (InputTextCommandImpl::execute): Ditto.
47342        (PasteHTMLCommandImpl::doApply): Ditto.
47343        (TypingCommandImpl::insertText): Remove extraneous call to reset endingSelection. This has
47344        already been done by the helpers this command uses to do its work.
47345        (TypingCommandImpl::issueCommandForDeleteKey): Changed call to currentSelection
47346        to endingSelection.
47347        (TypingCommandImpl::deleteKeyPressed): Remove extraneous call to reset endingSelection. This has
47348        already been done by the helpers this command uses to do its work.
47349        * khtml/editing/htmlediting_impl.h:
47350        (khtml::EditCommandImpl::endingSelection): Remove extraneous call to reset endingSelection. This has
47351        already been done by the helpers this command uses to do its work.
47352
473532004-04-07  Ken Kocienda  <kocienda@apple.com>
47354
47355        Reviewed by John
47356        
47357        Make paste work again. It has been broken for some undetermined
47358        period of time.
47359
47360        * khtml/editing/htmlediting_impl.cpp:
47361        (CompositeEditCommandImpl::insertNodeAt): Handle inserting a node when
47362        the reference node has children, or is an empty block.
47363        (CompositeEditCommandImpl::inputText): New convenience to create and
47364        apply an InputTextCommand.
47365        (InputTextCommandImpl::execute): Collapse whitespace when selection is
47366        not a range. Deleting the selection when it is a range already does that, 
47367        so no need to make special accommodation for it.
47368        (PasteHTMLCommandImpl::PasteHTMLCommandImpl): Initialize m_HTMLString using 
47369        an initialization list.
47370        (PasteHTMLCommandImpl::doApply): Collapse whitespace.... as above for 
47371        InputTextCommandImpl::execute. Don't need to qualify NodeImpl's with DOM 
47372        namespace. Clean up selection access; no need to grep around for it, the
47373        desired selection is returned by calling currentSelection(). Treat "simple
47374        text paste" like typing. Tighten up and simplify HTML fragment paste; no
47375        real change in algorithm. 
47376        (SplitTextNodeCommandImpl::SplitTextNodeCommandImpl): m_text1 member variable
47377        not initialized. This bug was introduced by a recent change by me. Fixing now.
47378        * khtml/editing/htmlediting_impl.h: Add inputText() declaration.
47379
473802004-04-06  Ken Kocienda  <kocienda@apple.com>
47381
47382        Reviewed by Richard
47383
47384        * khtml/khtml_part.cpp:
47385        (KHTMLPart::setSelection): Now calls setFocusNodeIfNeeded.
47386        (KHTMLPart::takeSelectionFrom): Now calls setFocusNodeIfNeeded.
47387        (KHTMLPart::clearSelection): Now calls setFocusNodeIfNeeded.
47388        (KHTMLPart::invalidateSelection): Now calls setFocusNodeIfNeeded.
47389        (KHTMLPart::setSelectionVisible): Now calls setFocusNodeIfNeeded.
47390        (KHTMLPart::setFocusNodeIfNeeded): New function focuses first element 
47391        of a selection that is contenteditable, if any of the nodes are. The "first"
47392        determination is made by doing a document-order search.
47393        * khtml/khtml_part.h:
47394        * khtml/xml/dom_nodeimpl.cpp: Remove debug spam.
47395        * kwq/WebCoreBridge.mm:
47396        (-[WebCoreBridge setSelectedDOMRange:]): Now updates document layout before
47397        setting the selection. This was needed for Blot, so that setting the 
47398        contenteditable attribute on the body is "seen" when the attempt is made
47399        to set the selection right immediately after.
47400
474012004-04-06  David Hyatt  <hyatt@apple.com>
47402
47403	After columns have been expanded to their preferred sizes, if space is left over in the table, then
47404	fixed columns should expand to fill space before percentage width columns do.  The old code had it
47405	backwards.
47406	
47407        Reviewed by john
47408
47409        * khtml/rendering/table_layout.cpp:
47410        (AutoTableLayout::layout):
47411
474122004-04-06  Ken Kocienda  <kocienda@apple.com>
47413
47414        Reviewed by Dave
47415
47416        * khtml/dom/dom_node.cpp:
47417        (Node::isContentEditable): Added. Calls through to impl function of same name.
47418        * khtml/dom/dom_node.h: Added isContentEditable declaration.
47419        * khtml/khtmlview.cpp:
47420        (KHTMLView::viewportMouseMoveEvent): Now, the cursor will change
47421        to an i-beam whenever it is over a node that is contenteditable, and nothing, 
47422        like a link, takes precedence.
47423
474242004-04-06  Ken Kocienda  <kocienda@apple.com>
47425
47426        Reviewed by Dave
47427
47428        * khtml/css/html4.css: Refine focus rules so that HTML and BODY
47429        elements do not draw a focus ring around themselves when focused.
47430        This prevents a silly-looking focus ring from drawing around a 
47431        document's entire contents when a body element is contenteditable.
47432
474332004-04-06  Ken Kocienda  <kocienda@apple.com>
47434
47435        Reviewed by Dave
47436
47437        Caret height is now the height of the tallest element on the line,
47438        mimicking NSText behavior.
47439
47440        * khtml/rendering/render_box.cpp:
47441        (RenderBox::caretPos): Use root line box topOverflow and bottomOverflow 
47442        for the calculation of caret height.
47443        * khtml/rendering/render_text.cpp:
47444        (RenderText::caretPos): Ditto.
47445
474462004-04-06  Ken Kocienda  <kocienda@apple.com>
47447
47448        Added a new suite of layout tests for editing, all added
47449        in the new layout-tests/editing subtree.
47450
47451        * layout-tests/editing/abe.jpg: Added.
47452        * layout-tests/editing/deleting/delete-block-contents-001-expected.txt: Added.
47453        * layout-tests/editing/deleting/delete-block-contents-001.html: Added.
47454        * layout-tests/editing/deleting/delete-block-contents-002-expected.txt: Added.
47455        * layout-tests/editing/deleting/delete-block-contents-002.html: Added.
47456        * layout-tests/editing/deleting/delete-block-contents-003-expected.txt: Added.
47457        * layout-tests/editing/deleting/delete-block-contents-003.html: Added.
47458        * layout-tests/editing/deleting/delete-br-001-expected.txt: Added.
47459        * layout-tests/editing/deleting/delete-br-001.html: Added.
47460        * layout-tests/editing/deleting/delete-br-002-expected.txt: Added.
47461        * layout-tests/editing/deleting/delete-br-002.html: Added.
47462        * layout-tests/editing/deleting/delete-br-003-expected.txt: Added.
47463        * layout-tests/editing/deleting/delete-br-003.html: Added.
47464        * layout-tests/editing/deleting/delete-br-004-expected.txt: Added.
47465        * layout-tests/editing/deleting/delete-br-004.html: Added.
47466        * layout-tests/editing/deleting/delete-br-005-expected.txt: Added.
47467        * layout-tests/editing/deleting/delete-br-005.html: Added.
47468        * layout-tests/editing/deleting/delete-br-006-expected.txt: Added.
47469        * layout-tests/editing/deleting/delete-br-006.html: Added.
47470        * layout-tests/editing/deleting/delete-character-001-expected.txt: Added.
47471        * layout-tests/editing/deleting/delete-character-001.html: Added.
47472        * layout-tests/editing/deleting/delete-contiguous-ws-001-expected.txt: Added.
47473        * layout-tests/editing/deleting/delete-contiguous-ws-001.html: Added.
47474        * layout-tests/editing/deleting/delete-image-001-expected.txt: Added.
47475        * layout-tests/editing/deleting/delete-image-001.html: Added.
47476        * layout-tests/editing/deleting/delete-image-002-expected.txt: Added.
47477        * layout-tests/editing/deleting/delete-image-002.html: Added.
47478        * layout-tests/editing/deleting/delete-image-003-expected.txt: Added.
47479        * layout-tests/editing/deleting/delete-image-003.html: Added.
47480        * layout-tests/editing/deleting/delete-leading-ws-001-expected.txt: Added.
47481        * layout-tests/editing/deleting/delete-leading-ws-001.html: Added.
47482        * layout-tests/editing/deleting/delete-selection-001-expected.txt: Added.
47483        * layout-tests/editing/deleting/delete-selection-001.html: Added.
47484        * layout-tests/editing/deleting/delete-trailing-ws-001-expected.txt: Added.
47485        * layout-tests/editing/deleting/delete-trailing-ws-001.html: Added.
47486        * layout-tests/editing/editing.js: Added.
47487        * layout-tests/editing/inserting/typing-001-expected.txt: Added.
47488        * layout-tests/editing/inserting/typing-001.html: Added.
47489        * layout-tests/editing/inserting/typing-002-expected.txt: Added.
47490        * layout-tests/editing/inserting/typing-002.html: Added.
47491        * layout-tests/editing/inserting/typing-around-br-001-expected.txt: Added.
47492        * layout-tests/editing/inserting/typing-around-br-001.html: Added.
47493        * layout-tests/editing/inserting/typing-around-image-001-expected.txt: Added.
47494        * layout-tests/editing/inserting/typing-around-image-001.html: Added.
47495        * layout-tests/editing/selection/extend-by-character-001-expected.txt: Added.
47496        * layout-tests/editing/selection/extend-by-character-001.html: Added.
47497        * layout-tests/editing/selection/extend-by-character-002-expected.txt: Added.
47498        * layout-tests/editing/selection/extend-by-character-002.html: Added.
47499        * layout-tests/editing/selection/extend-by-character-003-expected.txt: Added.
47500        * layout-tests/editing/selection/extend-by-character-003.html: Added.
47501        * layout-tests/editing/selection/extend-by-character-004-expected.txt: Added.
47502        * layout-tests/editing/selection/extend-by-character-004.html: Added.
47503        * layout-tests/editing/selection/extend-by-character-005-expected.txt: Added.
47504        * layout-tests/editing/selection/extend-by-character-005.html: Added.
47505        * layout-tests/editing/selection/move-by-character-001-expected.txt: Added.
47506        * layout-tests/editing/selection/move-by-character-001.html: Added.
47507        * layout-tests/editing/selection/move-by-character-002-expected.txt: Added.
47508        * layout-tests/editing/selection/move-by-character-002.html: Added.
47509        * layout-tests/editing/selection/move-by-character-003-expected.txt: Added.
47510        * layout-tests/editing/selection/move-by-character-003.html: Added.
47511        * layout-tests/editing/selection/move-by-character-004-expected.txt: Added.
47512        * layout-tests/editing/selection/move-by-character-004.html: Added.
47513        * layout-tests/editing/selection/move-by-character-005-expected.txt: Added.
47514        * layout-tests/editing/selection/move-by-character-005.html: Added.
47515        * layout-tests/editing/undo/redo-typing-001-expected.txt: Added.
47516        * layout-tests/editing/undo/redo-typing-001.html: Added.
47517        * layout-tests/editing/undo/undo-typing-001-expected.txt: Added.
47518        * layout-tests/editing/undo/undo-typing-001.html: Added.
47519
475202004-04-06  Ken Kocienda  <kocienda@apple.com>
47521
47522        Reviewed by Dave
47523
47524        Added execCommand feature. 
47525        Added Javascript selection object.
47526        This lays the groundwork for layout tests for editing.
47527
47528        * khtml/dom/dom_doc.cpp:
47529        (DOM::Document::execCommand): Added. Calls through to impl's execCommand.
47530        * khtml/dom/dom_doc.h: Added execCommand declaration.
47531        * khtml/ecma/kjs_dom.cpp:
47532        (DOMDocumentProtoFunc::tryCall): Switch on new ExecCommand constant and call through to the document.
47533        * khtml/ecma/kjs_dom.h: Added ExecCommand constant.
47534        (KJS::DOMDocument::):
47535        * khtml/ecma/kjs_dom.lut.h: Generated file.
47536        * khtml/ecma/kjs_window.cpp:
47537        (Window::Window): Initialize selection object.
47538        (Window::selection): Return window's selection object.
47539        (Window::mark): Mark selection object.
47540        (WindowFunc::tryCall): Return selection object on GetSelection.
47541        (LocationFunc::tryCall): Added.
47542        (Selection::Selection): Added.
47543        (Selection::~Selection): Added.
47544        (Selection::get): Added.
47545        (Selection::put): Added.
47546        (Selection::toPrimitive): Added.
47547        (Selection::toString): Added.
47548        (SelectionFunc::tryCall): Added.
47549        * khtml/ecma/kjs_window.h:
47550        (KJS::Selection::): Added.
47551        (KJS::Selection::part): Added.
47552        (KJS::Selection::classInfo): Added.
47553        * khtml/ecma/kjs_window.lut.h: Generated file.
47554        * khtml/editing/htmlediting_impl.cpp:
47555        (debugPosition): Debugging aid.
47556        (DeleteCollapsibleWhitespaceCommandImpl::deleteWhitespace): Move the ending position
47557        if you are about to delete it. Fixes a crasher I discovered while writing tests.
47558        (DeleteSelectionCommandImpl::doApply): Move to containing editable block position 0
47559        instead of 1 in a block in delete case 1.
47560        (InputTextCommandImpl::prepareForTextInsertion):
47561        (TypingCommandImpl::issueCommandForDeleteKey):
47562        * khtml/khtml_part.h:
47563        * khtml/khtml_selection.cpp:
47564        (KHTMLSelection::validate): Now adjusts the selection down to leaf nodes if needed.
47565        (KHTMLSelection::debugPosition): Debugging aid.
47566        * khtml/xml/dom_docimpl.cpp:
47567        (DocumentImpl::execCommand): Added. Supports five different commands.
47568        * khtml/xml/dom_docimpl.h:
47569        * khtml/xml/dom_nodeimpl.cpp:
47570        (NodeImpl::previousEditable): Use false instead of 0 for equality check.
47571        (NodeImpl::nextEditable): Ditto.
47572        * khtml/xml/dom_position.cpp:
47573        (DOMPosition::equivalentLeafPosition): New function
47574        (DOMPosition::previousRenderedEditablePosition): New function
47575        (DOMPosition::nextRenderedEditablePosition): New function
47576        (DOMPosition::equivalentUpstreamPosition): Refined behavior to handle more cases correctly.
47577        (DOMPosition::equivalentDownstreamPosition): Ditto.
47578        (DOMPosition::atStartOfContainingEditableBlock):New function
47579        (DOMPosition::atStartOfRootEditableBlock):New function
47580        * khtml/xml/dom_position.h:
47581        * kwq/KWQKHTMLPart.h:
47582        * kwq/KWQKHTMLPart.mm:
47583        (KWQKHTMLPart::issueUndoCommand): New function for calling undo programatically.
47584        (KWQKHTMLPart::issueRedoCommand): Ditto, but for redo.
47585        * kwq/KWQRenderTreeDebug.cpp:
47586        (nodePositionRelativeToRoot): New function to generate log information for the selection.
47587        (writeSelection): Writes the selection if there is one.
47588        (externalRepresentation): Calls writeSelection
47589        * kwq/WebCoreBridge.h: New declarations for issueUndoCommand and issueRedoCommand.
47590
475912004-04-05  Darin Adler  <darin@apple.com>
47592
47593        * khtml/html/kentities.gperf: Added &COPY; and &REG;, both supported by Gecko
47594        (and presumably by WinIE). Also re-sorted the list.
47595        * khtml/html/kentities.c: Regenerated.
47596
475972004-04-05  Darin Adler  <darin@apple.com>
47598
47599        Reviewed by Dave.
47600
47601        - rolled over fix from KHTML tree; anchor inside another anchor
47602
47603        * khtml/rendering/render_layer.cpp: (RenderLayer::nodeAtPoint):
47604        Make sure the URL element is the innermost one, by not setting it once
47605        it's already set.
47606
476072004-04-05  David Hyatt  <hyatt@apple.com>
47608
47609	Implement overflow: overlay so that a scrollbar can show/hide without causing a layout.
47610	
47611        Reviewed by darin
47612
47613        * ChangeLog:
47614        * khtml/css/css_computedstyle.cpp:
47615        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
47616        * khtml/css/cssparser.cpp:
47617        (CSSParser::parseValue):
47618        * khtml/css/cssstyleselector.cpp:
47619        (khtml::CSSStyleSelector::applyProperty):
47620        * khtml/css/cssvalues.c:
47621        (hash_val):
47622        (findValue):
47623        * khtml/css/cssvalues.h:
47624        * khtml/css/cssvalues.in:
47625        * khtml/rendering/render_block.cpp:
47626        (khtml::RenderBlock::layoutBlock):
47627        (khtml::RenderBlock::layoutBlockChildren):
47628        (khtml::RenderBlock::rightOffset):
47629        * khtml/rendering/render_box.cpp:
47630        (RenderBox::contentWidth):
47631        (RenderBox::contentHeight):
47632        * khtml/rendering/render_layer.cpp:
47633        (RenderLayer::updateScrollInfoAfterLayout):
47634        * khtml/rendering/render_object.cpp:
47635        (RenderObject::clientWidth):
47636        (RenderObject::clientHeight):
47637        * khtml/rendering/render_style.h:
47638        (khtml::):
47639        (khtml::RenderStyle::hasAutoScrollbars):
47640        (khtml::RenderStyle::scrollsOverflow):
47641        (khtml::RenderStyle::includeScrollbarSize):
47642
476432004-04-03  David Hyatt  <hyatt@apple.com>
47644
47645	Implementation of <input type=range>, which makes sliders available in Web pages.
47646	
47647        Reviewed by john
47648
47649        * WebCore.pbproj/project.pbxproj:
47650        * khtml/ecma/kjs_dom.cpp:
47651        (DOMNode::getValueProperty):
47652        (DOMNode::putValue):
47653        * khtml/ecma/kjs_dom.h:
47654        (KJS::DOMNode::):
47655        * khtml/ecma/kjs_dom.lut.h:
47656        (KJS::):
47657        * khtml/html/html_formimpl.cpp:
47658        (HTMLInputElementImpl::setType):
47659        (HTMLInputElementImpl::type):
47660        (HTMLInputElementImpl::click):
47661        (HTMLInputElementImpl::accessKeyAction):
47662        (HTMLInputElementImpl::parseHTMLAttribute):
47663        (HTMLInputElementImpl::rendererIsNeeded):
47664        (HTMLInputElementImpl::createRenderer):
47665        (HTMLInputElementImpl::encoding):
47666        * khtml/html/html_formimpl.h:
47667        (DOM::HTMLInputElementImpl::):
47668        * khtml/misc/htmlattrs.c:
47669        (hash_attr):
47670        (findAttr):
47671        * khtml/misc/htmlattrs.h:
47672        * khtml/misc/htmlattrs.in:
47673        * khtml/rendering/render_form.cpp:
47674        (RenderLineEdit::slotTextChanged):
47675        (:RenderFormElement):
47676        (RenderSlider::calcMinMaxWidth):
47677        (RenderSlider::updateFromElement):
47678        (RenderSlider::slotSliderValueChanged):
47679        * khtml/rendering/render_form.h:
47680        (khtml::RenderSlider::element):
47681        (khtml::RenderSlider::renderName):
47682        (khtml::RenderSlider::canHaveIntrinsicMargins):
47683        * khtml/xml/dom2_eventsimpl.cpp:
47684        (EventImpl::typeToId):
47685        (EventImpl::idToType):
47686        * khtml/xml/dom2_eventsimpl.h:
47687        (DOM::EventImpl::):
47688        * kwq/KWQSlider.h: Added.
47689        * kwq/KWQSlider.mm: Added.
47690        (-[KWQSlider initWithQSlider:]):
47691        (-[KWQSlider slide:]):
47692        (m_val):
47693        (QSlider::setFont):
47694        (QSlider::sizeHint):
47695        (QSlider::setValue):
47696        (QSlider::setMinValue):
47697        (QSlider::setMaxValue):
47698        (QSlider::value):
47699        (QSlider::minValue):
47700        (QSlider::maxValue):
47701        (QSlider::sliderValueChanged):
47702        (QSlider::dimensions):
47703        * kwq/KWQSlot.mm:
47704        (KWQSlot::KWQSlot):
47705        (KWQSlot::call):
47706
477072004-04-05  Chris Blumenberg  <cblu@apple.com>
47708
47709	Fixed: <rdar://problem/3612580>: SPI: WebPlugin selection
47710
47711        Reviewed by kocienda.
47712
47713        * WebCore.pbproj/project.pbxproj:
47714        * khtml/rendering/render_replaced.cpp:
47715        (RenderWidget::setSelectionState): new override, calls QWidget::setIsSelected
47716        * khtml/rendering/render_replaced.h:
47717        (khtml::RenderWidget::selectionState): new override
47718        * kwq/KWQWidget.h:
47719        * kwq/KWQWidget.mm:
47720        (QWidget::setIsSelected): new, calls [WebCoreBridge setIsSelected:forView:]
47721        (QWidget::isSelected): new, calls [WebCoreBridge isViewSelected:]
47722        * kwq/WebCoreBridge.h:
47723        * kwq/WebCoreBridge.mm:
47724        (-[WebCoreBridge selectionColor]): new
47725
477262004-04-03  David Hyatt  <hyatt@apple.com>
47727
47728	Fix for 3601728, text overlaps borders at ejai.org.  Remove all the code in addForbidden for
47729	dir, menu, nobr, and pre that made them too restrictive regarding what child tags they could
47730	contain.
47731	
47732        Reviewed by kocienda
47733
47734        * khtml/html/dtd.cpp:
47735        (DOM::addForbidden):
47736        (DOM::removeForbidden):
47737
477382004-04-02  Chris Blumenberg  <cblu@apple.com>
47739
47740	Moved the DOM extensions to their own headers
47741
47742        Reviewed by kocienda.
47743
47744        * WebCore.pbproj/project.pbxproj:
47745        * kwq/DOM.h: include DOMExtensions.h
47746        * kwq/DOMExtensions.h: Added.
47747        * kwq/DOMHTML.h: moved extensions to DOMExtensions.h
47748        * kwq/DOMHTML.mm: Renamed to match header
47749
477502004-04-02  David Hyatt  <hyatt@apple.com>
47751
47752	Fix for 3610662, rendering sometimes doesn't update in response to mouse events that change style.
47753	The document changed list was getting messed up.
47754	
47755        Reviewed by darin
47756
47757        * khtml/xml/dom_docimpl.cpp:
47758        (DocumentImpl::updateDocumentsRendering):
47759        * khtml/xml/dom_docimpl.h:
47760
47761=== Safari-135 ===
47762
477632004-04-01  Darin Adler  <darin@apple.com>
47764
47765        Based on a fix by Eric Albert.
47766
47767        - fixed <rdar://problem/3594247>: Safari crashes when a background image has a height or width of 0
47768
47769        * khtml/rendering/render_box.cpp: (RenderBox::paintBackgroundExtended):
47770        Change code path so we don't mod with 0.
47771
477722004-04-01  Darin Adler  <darin@apple.com>
47773
47774        Reviewed by Dave.
47775
47776        - fixed <rdar://problem/3608305>: DEMO: menu in search field has one disabled item: localized string not found
47777
47778        * khtml/html/html_formimpl.cpp: (HTMLInputElementImpl::HTMLInputElementImpl):
47779        Initialize m_maxResults to 0.
47780
477812004-04-01  Darin Adler  <darin@apple.com>
47782
47783        Reviewed by John.
47784
47785        - cleaned up image map code and made it work with XML documents
47786
47787        * khtml/html/html_documentimpl.h: Removed getMap and mapMap.
47788        * khtml/html/html_documentimpl.cpp: Removed getMap; moved to base class.
47789
47790        * khtml/html/html_imageimpl.cpp:
47791        (HTMLMapElementImpl::~HTMLMapElementImpl): Call new removeImageMap function instead
47792        of manipulating the mapMap field directly.
47793        (HTMLMapElementImpl::parseHTMLAttribute): Rewrite name changing code for simplicity
47794        and to avoid running off the end of the bufffer.
47795        Also remove image map before changing name so it doesn't end up in the map twice
47796        under both the old and new names.
47797        * khtml/html/html_imageimpl.h: Use a DOMString instead of QString for the name, since
47798        the public API already uses a DOMString.
47799
47800        * khtml/rendering/render_image.cpp: (RenderImage::nodeAtPoint): Call the new
47801        getImageMap instead of the old getMap.
47802
47803        * khtml/xml/dom_docimpl.h: Added addImageMap, removeImageMap, getImageMap, and m_imageMapsByName.
47804        * khtml/xml/dom_docimpl.cpp:
47805        (DocumentImpl::addImageMap): Added. Stores the image map under its name, unless there's
47806        already another map of the same.
47807        (DocumentImpl::removeImageMap): Added. Removes the image map if it's already filed by
47808        name. Avoid pitfall of removing another image map that has the same name.
47809        (DocumentImpl::getImageMap): Added. Simplified version of logic from getMap in HTMLDocumentImpl.
47810
478112004-04-01  Darin Adler  <darin@apple.com>
47812
47813        Reviewed by Ken.
47814
47815        - fixed <rdar://problem/3608978>: dual <map> means you can't select the enter site button at jurassicpark.com (same problem in MacIE, works in Netscape)
47816
47817        * khtml/html/html_imageimpl.cpp: (HTMLMapElementImpl::parseHTMLAttribute):
47818        Make the first <map> seen win, as in other browsers. The old code made the last <map> seen win.
47819
478202004-04-01  Ken Kocienda  <kocienda@apple.com>
47821
47822        Missing file broke build after my last checkin
47823
47824        * ForwardingHeaders/rendering/render_line.h: Added.
47825
478262004-03-31  Ken Kocienda  <kocienda@apple.com>
47827
47828        Reviewed by Dave.
47829        
47830        Many, many editing improvements, with a concentration on getting
47831        caret navigation and deleting selections working correctly.
47832
47833        * WebCore.pbproj/project.pbxproj:
47834        * khtml/dom/dom_position.cpp: Removed.
47835        * khtml/dom/dom_position.h: Removed.
47836        * khtml/editing/htmlediting.cpp:
47837        (EditCommand::isNull): Inlined.
47838        (EditCommand::notNull): New function.
47839        (EditCommand::parent): Commands now have parents. Allows for walking the tree of composite commands.
47840        (EditCommand::setParent): Ditto.
47841        (EditCommand::emptyCommand): Returns a static empty command.
47842        (AppendNodeCommand::AppendNodeCommand): 
47843        (AppendNodeCommand::parentNode): Member variable name change only. parent -> parentNode.
47844        (DeleteCollapsibleWhitespaceCommand::DeleteCollapsibleWhitespaceCommand): New command.
47845        (InputTextCommand::InputTextCommand):
47846        (InputTextCommand::input):
47847        (InputTextCommand::charactersAdded):
47848        (JoinTextNodesCommand::JoinTextNodesCommand): Now derives directly from EditCommand.
47849        (RemoveNodeAndPruneCommand::RemoveNodeAndPruneCommand): New command.
47850        (SplitTextNodeCommand::SplitTextNodeCommand): Now derives directly from EditCommand.
47851        * khtml/editing/htmlediting.h:
47852        * khtml/editing/htmlediting_impl.cpp:
47853        (isNBSP): New helper.
47854        (isWS): New helper.
47855        (shouldPruneNode): New helper.
47856        (leadingWhitespacePosition): New helper.
47857        (trailingWhitespacePosition): New helper.
47858        (textNodesAreJoinable): New helper.
47859        (nonBreakingSpaceString): Returns a static DOMString containing a non-breaking space.
47860        (EditCommandImpl::EditCommandImpl):
47861        (EditCommandImpl::setStartingSelection): Now recursively sets starting selection on parents.
47862        (EditCommandImpl::setEndingSelection): As above, for ending selection.
47863        (EditCommandImpl::parent): New accessor.
47864        (EditCommandImpl::setParent): New accessor.
47865        (CompositeEditCommandImpl::doUnapply): Removed some logging.
47866        (CompositeEditCommandImpl::doReapply): Removed some logging.
47867        (CompositeEditCommandImpl::applyCommandToComposite): Sets parent.
47868        (CompositeEditCommandImpl::removeNodeAndPrune): New comvenience.
47869        (CompositeEditCommandImpl::replaceText): New comvenience.
47870        (CompositeEditCommandImpl::deleteSelection): New comvenience.
47871        (CompositeEditCommandImpl::deleteCollapsibleWhitespace): New comvenience.
47872        (AppendNodeCommandImpl::AppendNodeCommandImpl): Member variable name change only. parent -> parentNode.
47873        (AppendNodeCommandImpl::~AppendNodeCommandImpl): Ditto.
47874        (AppendNodeCommandImpl::doApply): Ditto.
47875        (AppendNodeCommandImpl::doUnapply): Ditto.
47876        (DeleteCollapsibleWhitespaceCommandImpl::DeleteCollapsibleWhitespaceCommandImpl): New command
47877        (debugPosition): New debugging aid.
47878        (DeleteSelectionCommandImpl::doApply): Major reworking to handle more cases correctly.
47879        (InputNewlineCommandImpl::doApply): Position and selection tweaks.
47880        (InputTextCommandImpl::InputTextCommandImpl): Handles more cases now, like typing after an image.
47881        (JoinTextNodesCommandImpl::JoinTextNodesCommandImpl): Now derives directly from EditCommand.
47882        Implements the guts of the command itself now, rather than replying on its former base class.
47883        (RemoveNodeAndPruneCommandImpl::RemoveNodeAndPruneCommandImpl): New command.
47884        (SplitTextNodeCommandImpl::SplitTextNodeCommandImpl): Now derives directly from EditCommand.
47885        Implements the guts of the command itself now, rather than replying on its former base class.
47886        (TypingCommandImpl::TypingCommandImpl): Major rework to handle more cases correctly.
47887        * khtml/editing/htmlediting_impl.h:
47888        * khtml/html/html_elementimpl.cpp:
47889        (HTMLElementImpl::isContentEditable): More efficient use of the style system to answer the question.
47890        * khtml/khtml_part.cpp:
47891        (KHTMLPart::setSelection): Fixes an issue where the caret would not repaint after being moved when undoing.
47892        (KHTMLPart::takeSelectionFrom): Ditto.
47893        (KHTMLPart::clearSelection): Ditto.
47894        (KHTMLPart::invalidateSelection): Ditto.
47895        (KHTMLPart::setSelectionVisible): Ditto.
47896        (KHTMLPart::slotClearSelection): Ditto.
47897        (KHTMLPart::clearCaretRectIfNeeded):  Ditto.
47898        (KHTMLPart::notifySelectionChanged): Ditto.
47899        (KHTMLPart::unappliedEditing): Now uses EditCommand::emptyCommand().
47900        (KHTMLPart::reappliedEditing): Ditto.
47901        * khtml/khtml_part.h:
47902        * khtml/khtml_selection.cpp:
47903        (KHTMLSelection::KHTMLSelection):
47904        (KHTMLSelection::modify): Updated to work with new DOMPosition API.
47905        (KHTMLSelection::paintCaret): Ditto.
47906        (KHTMLSelection::moveToRenderedContent): Ditto.
47907        (KHTMLSelection::basePosition): New convenience.
47908        (KHTMLSelection::extentPosition): New convenience.
47909        (KHTMLSelection::startPosition): New convenience.
47910        (KHTMLSelection::endPosition): New convenience.
47911        (KHTMLSelection::debugPosition): Modified debug output.
47912        * khtml/khtml_selection.h:
47913        (KHTMLSelection::isEmpty):
47914        (KHTMLSelection::notEmpty):
47915        * khtml/rendering/bidi.cpp:
47916        (khtml::RenderBlock::layoutInlineChildren): Fixed a crasher that happened when deleting content at the start of a line.
47917        * khtml/rendering/render_br.cpp:
47918        (RenderBR::caretMaxRenderedOffset): New function.
47919        (RenderBR::caretPos): Now draws the caret in the right place when a block is empty.
47920        * khtml/rendering/render_br.h:
47921        * khtml/rendering/render_flow.cpp:
47922        (RenderFlow::caretPos): Now draws the caret in the right place when a flow is empty.
47923        * khtml/rendering/render_line.cpp:
47924        (InlineBox::caretMaxRenderedOffset): New function.
47925        * khtml/rendering/render_line.h:
47926        * khtml/rendering/render_object.cpp:
47927        (RenderObject::isEditable):
47928        (RenderObject::caretMaxRenderedOffset): New function.
47929        * khtml/rendering/render_object.h:
47930        * khtml/rendering/render_replaced.cpp:
47931        (RenderReplaced::caretMaxRenderedOffset): New function.
47932        * khtml/rendering/render_replaced.h:
47933        * khtml/rendering/render_text.cpp:
47934        (InlineTextBox::caretMaxRenderedOffset): New function.
47935        (RenderText::detach):
47936        (RenderText::caretMaxOffset):
47937        (RenderText::caretMaxRenderedOffset): New function.
47938        * khtml/rendering/render_text.h:
47939        (khtml::InlineTextBox::len):
47940        * khtml/xml/dom_edititerator.cpp: Added.
47941        * khtml/xml/dom_edititerator.h: Added.
47942        * khtml/xml/dom_nodeimpl.cpp:
47943        (NodeImpl::previousEditable): Improved the correctness of this function.
47944        (NodeImpl::nextEditable): Ditto.
47945        * khtml/xml/dom_nodeimpl.h:
47946        * khtml/xml/dom_position.cpp: Added.
47947        (DOMPosition::renderedOffset): New function.
47948        (DOMPosition::previousCharacterPosition): New function.
47949        (DOMPosition::nextCharacterPosition): New function.
47950        (DOMPosition::equivalentUpstreamPosition): New function.
47951        (DOMPosition::equivalentDownstreamPosition): New function.
47952        (DOMPosition::validUpstreamDownstreamPosition): New function.
47953        (DOMPosition::inRenderedContent): New function.
47954        (inlineBoxForRenderer): New function.
47955        (renderersOnDifferentLine): New function.
47956        (nextRenderedEditable): New function.
47957        (previousRenderedEditable): New function.
47958        (DOMPosition::inRenderedText): New function.
47959        (DOMPosition::rendersOnSameLine): New function.
47960        (DOMPosition::rendersInDifferentPosition): New function.
47961        (DOMPosition::isFirstRenderedPositionOnLine): New function.
47962        (DOMPosition::isLastRenderedPositionOnLine): New function.
47963        (DOMPosition::isLastRenderedPositionInEditableBlock): New function.
47964        (DOMPosition::inFirstEditableInRootEditableBlock): New function.
47965        (DOMPosition::inLastEditableInRootEditableBlock): New function.
47966        (DOMPosition::inFirstEditableInContainingEditableBlock): New function.
47967        (DOMPosition::inLastEditableInContainingEditableBlock): New function.
47968        * khtml/xml/dom_position.h: Added.
47969        (DOM::DOMPosition::notEmpty): New function.
47970        * khtml/xml/dom_stringimpl.cpp:
47971        (DOM::DOMStringImpl::containsOnlyWhitespace): Added a version which takes an offset and length.
47972        * khtml/xml/dom_stringimpl.h:
47973        * khtml/xml/dom_textimpl.cpp:
47974        (CharacterDataImpl::containsOnlyWhitespace): As above
47975        (CharacterDataImpl::maxOffset): New function.
47976        (CharacterDataImpl::caretMaxRenderedOffset): New function.
47977        (TextImpl::TextImpl):
47978        (TextImpl::rendererIsNeeded): A new bit. When set, makes a text renderer unconditionally.
47979        * khtml/xml/dom_textimpl.h:
47980        (DOM::TextImpl::setRendererIsNeeded): Sets the bit.
47981        * kwq/KWQAssertions.m:
47982        (KWQLog): Change to decrease the amount of output for the Editing log level. (my preference)
47983
479842004-03-31  David Hyatt  <hyatt@apple.com>
47985
47986	Fix for 3601834, make sure that textareas do a layout when their rows/cols/wrap attributes are dynamically
47987	changed.
47988	
47989        Reviewed by darin.
47990
47991        * khtml/html/html_formimpl.cpp:
47992        (HTMLTextAreaElementImpl::parseHTMLAttribute):
47993
479942004-03-30  David Hyatt  <hyatt@apple.com>
47995
47996	Fix for 3604241, simple space collapsing results in a doubled character.  Simplify the ignoring of
47997	whitespace and make sure it works across absolutely positioned spans.
47998	
47999        Reviewed by darin
48000
48001        * khtml/rendering/bidi.cpp:
48002        (khtml::RenderBlock::findNextLineBreak):
48003
480042004-03-30  Darin Adler  <darin@apple.com>
48005
48006        Reviewed by Dave.
48007
48008        - fixed <rdar://problem/3570877>: REGRESSION: onfocus handler not working at weather.com
48009
48010        * khtml/ecma/kjs_binding.cpp:
48011        (UString::string): Turn a null UString into a null DOMString, but a non-null empty UString into a
48012        non-null empty DOMString.
48013        (UString::qstring): Ditto, for QString.
48014        (Identifier::string): Ditto, for Identifier.
48015        (Identifier::qstring): Ditto.
48016
48017        * kwq/KWQLineEdit.h: Override focusPolicy.
48018        * kwq/KWQLineEdit.mm: (QLineEdit::focusPolicy): Return StrongFocus instead of TabFocus, since
48019        we allow clicking to focus on these widgets.
48020        * kwq/KWQTextEdit.h: More of the same.
48021        * kwq/KWQTextEdit.mm: (QTextEdit::focusPolicy): And still more.
48022
48023        - fixed <rdar://problem/3605919>: text fields in web pages are too tall
48024
48025        * kwq/KWQTextField.mm:
48026        (-[KWQTextFieldCell _typesetterBehavior]): Ignore the per-application typesetter setting and
48027        instead always use the latest behavior for text fields in web pages.
48028        (-[KWQSecureTextFieldCell _typesetterBehavior]): Ditto.
48029        (-[KWQSearchFieldCell _typesetterBehavior]): Ditto.
48030
48031        - additional cleanup
48032
48033        * khtml/html/html_formimpl.cpp:
48034        (HTMLGenericFormElementImpl::isKeyboardFocusable): Check tab focus bit instead of different modes.
48035        (HTMLGenericFormElementImpl::isMouseFocusable): Check click focus bit instead of different modes.
48036
480372004-03-30  David Hyatt  <hyatt@apple.com>
48038
48039	Fix for 3603326, spurious line breaks in encyclopedia articles.  Make sure makeChildrenNonInline knows to
48040	skip over floating/positioned elements so that they remain part of contiguous inline runs for static positioning
48041	purposes.
48042	
48043        Reviewed by darin
48044
48045        * khtml/rendering/render_block.cpp:
48046        (khtml::getInlineRun):
48047
480482004-03-30  Darin Adler  <darin@apple.com>
48049
48050        Reviewed by Ken.
48051
48052        - fixed garbage characters seen while I was rigging up the Mozilla JavaScript tests
48053
48054        * kwq/KWQString.h: Add a "move constructor" for KWQStringData that extracts the data
48055        from an existing KWQStringData.
48056        * kwq/KWQString.mm:
48057        (KWQStringData::KWQStringData): Implement the move constructor.
48058        (QString::detachInternal): Use the move constructor rather than making a copy of the
48059        data. Should be both more efficient and preserves both the Unicode and the ASCII. The
48060        bug here is that TokenizerSubstring relies on the Unicode staying around. We still
48061        have a problem in the case where the Unicode is inside the KWQStringData. To deal with
48062        that we'll have to add a new QString call that TokenizerSubstring can use. The new call
48063        will force QString to keep the Unicode outside the internal KWQStringData.
48064
480652004-03-30  Darin Adler  <darin@apple.com>
48066
48067        Reviewed by Ken.
48068
48069        - fixed <rdar://problem/3606146>: repro nil-deref in QWidget::move (www.stoltoffshore.com)
48070
48071        * khtml/khtml_part.cpp:
48072        (KHTMLPart::requestObject): Add check for NULL widget.
48073        (KHTMLPart::processObjectRequest): Add check for NULL widget.
48074
480752004-03-29  David Hyatt  <hyatt@apple.com>
48076
48077	Make sure "auto" is allowed as a valid value when parsing rect shapes (e.g., for the clip property).
48078	
48079        Reviewed by rjw
48080
48081        * khtml/css/cssparser.cpp:
48082        (CSSParser::parseShape):
48083
480842004-03-29  David Hyatt  <hyatt@apple.com>
48085
48086	Followup fix.  Handle the case where a hard line break occurs right after a soft hyphen.  In this
48087	case we were losing a letter of the word in addition to not rendering the soft hyphen.
48088	
48089        Reviewed by kocienda
48090
48091        * khtml/rendering/bidi.cpp:
48092        (khtml::checkMidpoints):
48093
480942004-03-29  David Hyatt  <hyatt@apple.com>
48095
48096	Fix for 3604154, support soft hyphens when rendering.  This patch implements soft hyphen support that
48097	matches IE6 on Windows and Opera 7.  Soft hyphens that don't break lines end up getting collapsed away.
48098	Only if the hyphen breaks a line does it render.
48099	
48100        Reviewed by kocienda
48101
48102        * khtml/rendering/bidi.cpp:
48103        (khtml::chopMidpointsAt):
48104        (khtml::appendRunsForObject):
48105        (khtml::RenderBlock::findNextLineBreak):
48106        * khtml/rendering/render_text.cpp:
48107        (RenderText::calcMinMaxWidth):
48108
481092004-03-29  John Sullivan  <sullivan@apple.com>
48110
48111        Made menu shortcuts work again when editing HTML
48112
48113        Reviewed by Darin.
48114
48115        * khtml/xml/dom_elementimpl.cpp:
48116        (ElementImpl::defaultEventHandler):
48117        Don't treat key events with command key down as
48118        editing events.
48119
481202004-03-28  Darin Adler  <darin@apple.com>
48121
48122        Reviewed by John.
48123
48124        - fixed <rdar://problem/3602202>: "feed:uuid:...." links in Emerson content are being changed into "feed:uuuid:...."
48125
48126        * kwq/KWQKURL.mm: (copyPathRemovingDots): Add special case for empty path. The old code had an
48127        assertion that explicitly allowed this case, but it copied a character from the src buffer,
48128        which was incorrect.
48129
481302004-03-26  David Hyatt  <hyatt@apple.com>
48131
48132	Fix for 3600642, letter magnet demo doesn't update until mouse move.  This patch also fixes problems
48133	with the animated text Gecko DOM demos on developer.netscape.com.  Make sure that timer callbacks via
48134	setTimeout always updateRendering after executing the JS code.
48135	
48136        Reviewed by darin
48137
48138        * khtml/ecma/kjs_window.cpp:
48139        (ScheduledAction::execute):
48140
48141=== Safari-134 ===
48142
481432004-03-25  David Hyatt  <hyatt@apple.com>
48144
48145	Implement the rest of the search field.  Make it work with form submission.  Implement onscroll at
48146	the document level.
48147	
48148        Reviewed by darin
48149
48150        * khtml/html/html_formimpl.cpp:
48151        (HTMLFormElementImpl::submit):
48152        * khtml/rendering/render_form.cpp:
48153        (RenderLineEdit::addSearchResult):
48154        * khtml/rendering/render_form.h:
48155        * kwq/KWQKHTMLPart.h:
48156        * kwq/KWQKHTMLPart.mm:
48157        (KWQKHTMLPart::sendScrollEvent):
48158        * kwq/KWQLineEdit.h:
48159        * kwq/KWQLineEdit.mm:
48160        (QLineEdit::setMaxResults):
48161        (QLineEdit::setPlaceholderString):
48162        (QLineEdit::addSearchResult):
48163        * kwq/WebCoreBridge.h:
48164        * kwq/WebCoreBridge.mm:
48165        (-[WebCoreBridge sendScrollEvent]):
48166        * kwq/WebCoreViewFactory.h:
48167
481682004-03-25  David Hyatt  <hyatt@apple.com>
48169
48170	Fix for 3570700, crash in inlineBox::isDirty.  Make sure line boxes null out parent pointers when those
48171	parents get deleted.  r=john
48172
48173	Fix for .value not being settable on selects.  r=darin
48174	
48175        * khtml/html/html_formimpl.cpp:
48176        (HTMLSelectElementImpl::setValue):
48177        * khtml/rendering/render_block.cpp:
48178        (khtml::RenderBlock::removeChildrenFromLineBoxes):
48179        (khtml::RenderBlock::removeChild):
48180        * khtml/rendering/render_block.h:
48181        * khtml/rendering/render_line.cpp:
48182        (InlineFlowBox::removeChild):
48183        
481842004-03-25  Darin Adler  <darin@apple.com>
48185
48186        Fix by Kristin Webster, reviewed by me.
48187
48188        - fixed <rdar://problem/3582431>: HiDPI - Form elements not working when scaling factor != 1.0
48189
48190        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::passWidgetMouseDownEventToWidget): Pass nil for fromView
48191        rather than passing the top level view.
48192
481932004-03-24  Darin Adler  <darin@apple.com>
48194
48195        Reviewed by John.
48196
48197        - fixed <rdar://problem/3566805>: REGRESSION: When the subject of mailto is 2 byte Safari failed to send mail address and subject to Mail.app
48198
48199        * kwq/KWQKURL.mm: (KURL::findHostnamesInMailToURL): Update to handle hostnames that end just before
48200        a '?' since a '?' ends the entire part of the URL that can contain hostnames. Also change the logic so
48201        that the '?' will successfully end the search.
48202
482032004-03-24  Darin Adler  <darin@apple.com>
48204
48205        Reviewed by John.
48206
48207        - fixed <rdar://problem/3599650>: main image missing due to incorrect relative URL resolution at www.brother.com
48208
48209        * kwq/KWQKURL.mm: (KURL::KURL): Implement compatibility rule from the URI RFC.
48210        If a URL has a scheme, but does not start with the "/" character, and the scheme
48211        matches the base URL, then treat it as a relative URL.
48212
482132004-03-24  Ken Kocienda  <kocienda@apple.com>
48214
48215	I neglected to check in these required changes when I landed previously.
48216	This is what I get for trying to commit when I had other changes in
48217	my tree.
48218
48219        * khtml/dom/html_form.cpp:
48220        (HTMLSelectElement::add): Uses new-style call.
48221        * khtml/html/html_formimpl.cpp:
48222        (HTMLSelectElementImpl::add): Change the interface for this call to use
48223	impl objects instead of API objects. This works around the fact that the
48224	API object's constructor that takes an impl is protected.
48225        * khtml/html/html_formimpl.h: Uses new-style call.
48226
482272004-03-24  Ken Kocienda <kocienda@apple.com>
48228
48229        Implemented the remainder of the HTML DOM API.
48230    
48231        Reviewed by Chris.
48232    
48233        * kwq/DOMHTML.h
48234        * kwq/HTMLDOM.mm
48235
482362004-03-23  David Hyatt  <hyatt@apple.com>
48237
48238	Fix for 3487207, implement onscroll DOM event for elements with overflow:auto/scroll/hidden.  This does
48239	not handle firing onscroll on the window when the document scrolls, nor does it handle firing onscroll
48240	on textareas.  These are two separate bugs.
48241
48242	This patch finishes stubbing out the onscroll event and adds support for it to the DOM.  It also supports
48243	the firing of the event when overflow blocks scroll.
48244	
48245        Reviewed by darin
48246
48247        * khtml/ecma/kjs_dom.cpp:
48248        (DOMNode::getValueProperty):
48249        (DOMNode::putValue):
48250        * khtml/ecma/kjs_dom.h:
48251        (KJS::DOMNode::):
48252        * khtml/ecma/kjs_dom.lut.h:
48253        (KJS::):
48254        * khtml/ecma/kjs_window.cpp:
48255        (Window::get):
48256        (Window::put):
48257        * khtml/ecma/kjs_window.h:
48258        (KJS::Window::):
48259        * khtml/ecma/kjs_window.lut.h:
48260        (KJS::):
48261        * khtml/html/html_baseimpl.cpp:
48262        (HTMLBodyElementImpl::parseHTMLAttribute):
48263        * khtml/html/html_elementimpl.cpp:
48264        (HTMLElementImpl::parseHTMLAttribute):
48265        * khtml/misc/htmlattrs.c:
48266        (hash_attr):
48267        (findAttr):
48268        * khtml/misc/htmlattrs.h:
48269        * khtml/misc/htmlattrs.in:
48270        * khtml/rendering/render_layer.cpp:
48271        (RenderLayer::scrollToOffset):
48272
482732004-03-23  David Hyatt  <hyatt@apple.com>
48274
48275	Fix for 3513627, HTML mail prints upside down occasionally.  Change printing so that it never resizes the
48276        WebHTMLView when formatting for printing.  When computing page rects, instead of using the view's bounds,
48277        use the root layer's width instead.
48278
48279        Reviewed by darin
48280
48281        * khtml/khtmlview.cpp:
48282        (KHTMLView::layout):
48283        * kwq/WebCoreBridge.h:
48284        * kwq/WebCoreBridge.mm:
48285        (-[WebCoreBridge computePageRectsWithPrintWidthScaleFactor:printHeight:]):
48286
482872004-03-23  David Hyatt  <hyatt@apple.com>
48288
48289	Fix for crasher 3598204, previousKeyView was calling nextKeyView instead.
48290	
48291        Reviewed by darin
48292
48293        * kwq/KWQTextField.mm:
48294        (-[KWQTextField previousKeyView]):
48295        (-[KWQSecureTextField previousKeyView]):
48296        (-[KWQSearchField previousKeyView]):
48297
482982004-03-23  Darin Adler  <darin@apple.com>
48299
48300        Reviewed by Vicki.
48301
48302        - fixed deployment build
48303
483042004-03-22  David Hyatt  <hyatt@apple.com>
48305
48306	Wire up NSSearchField to WebCore.  Add support for placeholder strings, autosaving of recent items, the ability to show/hide
48307	the magnifying glass search button, the ability to specify the maximum number of results, the ability to specify an incremental
48308	search or not, etc.  Added a DOM event that fires when the search field indicates that search results should be updated.
48309	
48310        Reviewed by darin
48311
48312        * khtml/ecma/kjs_dom.cpp:
48313        (DOMNode::getValueProperty):
48314        (DOMNode::putValue):
48315        * khtml/ecma/kjs_dom.h:
48316        (KJS::DOMNode::):
48317        * khtml/ecma/kjs_dom.lut.h:
48318        (KJS::):
48319        * khtml/ecma/kjs_window.cpp:
48320        (Window::get):
48321        (Window::put):
48322        * khtml/ecma/kjs_window.h:
48323        (KJS::Window::):
48324        * khtml/ecma/kjs_window.lut.h:
48325        (KJS::):
48326        * khtml/html/html_formimpl.cpp:
48327        (HTMLInputElementImpl::parseHTMLAttribute):
48328        * khtml/html/html_formimpl.h:
48329        (DOM::HTMLInputElementImpl::maxResults):
48330        * khtml/misc/htmlattrs.c:
48331        (hash_attr):
48332        (findAttr):
48333        * khtml/misc/htmlattrs.h:
48334        * khtml/misc/htmlattrs.in:
48335        * khtml/rendering/render_form.cpp:
48336        (RenderLineEdit::RenderLineEdit):
48337        (RenderLineEdit::slotPerformSearch):
48338        (RenderLineEdit::updateFromElement):
48339        * khtml/rendering/render_form.h:
48340        * khtml/xml/dom2_eventsimpl.cpp:
48341        (EventImpl::typeToId):
48342        (EventImpl::idToType):
48343        * khtml/xml/dom2_eventsimpl.h:
48344        (DOM::EventImpl::):
48345        * kwq/KWQLineEdit.h:
48346        (QLineEdit::performSearch):
48347        (QLineEdit::type):
48348        * kwq/KWQLineEdit.mm:
48349        (QLineEdit::QLineEdit):
48350        (QLineEdit::setLiveSearch):
48351        (QLineEdit::setAutoSaveName):
48352        (QLineEdit::setMaxResults):
48353        (QLineEdit::setPlaceholderString):
48354        * kwq/KWQSlot.mm:
48355        (KWQSlot::KWQSlot):
48356        (KWQSlot::call):
48357        * kwq/KWQTextField.mm:
48358        (-[KWQTextFieldController initWithTextField:QLineEdit:]):
48359        (-[KWQTextFieldController invalidate]):
48360        (-[KWQTextFieldController action:]):
48361        (-[KWQTextFieldController controlTextDidBeginEditing:]):
48362        (-[KWQTextFieldController controlTextDidEndEditing:]):
48363        (-[KWQTextFieldController controlTextDidChange:]):
48364        (-[KWQTextFieldController control:textShouldBeginEditing:]):
48365        (-[KWQTextFieldController control:textShouldEndEditing:]):
48366        (-[KWQTextFieldController control:didFailToFormatString:errorDescription:]):
48367        (-[KWQTextFieldController control:didFailToValidatePartialString:errorDescription:]):
48368        (-[KWQTextFieldController control:isValidObject:]):
48369        (-[KWQTextFieldController control:textView:doCommandBySelector:]):
48370        (-[KWQTextFieldController textChanged]):
48371
483722004-03-22  David Hyatt  <hyatt@apple.com>
48373
48374	Factoring of form control code to enable sharing between three types of text fields: normal, password, and
48375	the new search field.  Also made search field creatable using <input type="search">.  There are still many
48376	bugs with the field, but you can at least type in it and submit it with a form.
48377	
48378        Reviewed by darin
48379
48380        * khtml/html/html_formimpl.cpp:
48381        (HTMLInputElementImpl::setType):
48382        (HTMLInputElementImpl::type):
48383        (HTMLInputElementImpl::click):
48384        (HTMLInputElementImpl::accessKeyAction):
48385        (HTMLInputElementImpl::rendererIsNeeded):
48386        (HTMLInputElementImpl::createRenderer):
48387        (HTMLInputElementImpl::encoding):
48388        (HTMLInputElementImpl::defaultEventHandler):
48389        (HTMLInputElementImpl::isEditable):
48390        * khtml/html/html_formimpl.h:
48391        (DOM::HTMLInputElementImpl::):
48392        * khtml/rendering/render_form.cpp:
48393        (RenderLineEdit::RenderLineEdit):
48394        * kwq/KWQKLineEdit.h:
48395        (KLineEdit::KLineEdit):
48396        * kwq/KWQLineEdit.h:
48397        (QLineEdit::):
48398        * kwq/KWQLineEdit.mm:
48399        (QLineEdit::QLineEdit):
48400        (QLineEdit::~QLineEdit):
48401        (QLineEdit::setFont):
48402        (QLineEdit::setText):
48403        (QLineEdit::text):
48404        (QLineEdit::setMaxLength):
48405        (QLineEdit::isReadOnly):
48406        (QLineEdit::setReadOnly):
48407        (QLineEdit::maxLength):
48408        (QLineEdit::selectAll):
48409        (QLineEdit::edited):
48410        (QLineEdit::setEdited):
48411        (QLineEdit::sizeForCharacterWidth):
48412        (QLineEdit::baselinePosition):
48413        (QLineEdit::setAlignment):
48414        (QLineEdit::setWritingDirection):
48415        (KWQNSTextAlignmentForAlignmentFlags):
48416        (QLineEdit::setLiveSearch):
48417        * kwq/KWQTextField.h:
48418        * kwq/KWQTextField.mm:
48419        (-[KWQTextFieldController initWithTextField:QLineEdit:]):
48420        (-[KWQTextFieldController action:]):
48421        (-[KWQTextFieldController dealloc]):
48422        (-[KWQTextFieldController widget]):
48423        (-[KWQTextFieldController setMaximumLength:]):
48424        (-[KWQTextFieldController controlTextDidBeginEditing:]):
48425        (-[KWQTextFieldController controlTextDidEndEditing:]):
48426        (-[KWQTextFieldController controlTextDidChange:]):
48427        (-[KWQTextFieldController control:textShouldBeginEditing:]):
48428        (-[KWQTextFieldController control:textShouldEndEditing:]):
48429        (-[KWQTextFieldController control:didFailToFormatString:errorDescription:]):
48430        (-[KWQTextFieldController control:didFailToValidatePartialString:errorDescription:]):
48431        (-[KWQTextFieldController control:isValidObject:]):
48432        (-[KWQTextFieldController control:textView:doCommandBySelector:]):
48433        (-[KWQTextFieldController textChanged]):
48434        (-[KWQTextFieldController setInDrawingMachinery:]):
48435        (-[KWQTextFieldController textView:shouldDrawInsertionPointInRect:color:turnedOn:]):
48436        (-[KWQTextFieldController textView:shouldHandleEvent:]):
48437        (-[KWQTextFieldController textView:didHandleEvent:]):
48438        (-[KWQTextFieldController setBaseWritingDirection:]):
48439        (-[KWQTextFieldController baseWritingDirection]):
48440        (-[KWQTextFieldController selectedRange]):
48441        (-[KWQTextFieldController setSelectedRange:]):
48442        (-[KWQTextFieldController setHasFocus:]):
48443        (-[KWQTextFieldController updateTextAttributes:]):
48444        (+[KWQTextField cellClass]):
48445        (-[KWQTextField initWithQLineEdit:]):
48446        (-[KWQTextField dealloc]):
48447        (-[KWQTextField controller]):
48448        (-[KWQTextField widget]):
48449        (-[KWQTextField selectText:]):
48450        (-[KWQTextField setStringValue:]):
48451        (-[KWQTextField nextKeyView]):
48452        (-[KWQTextField previousKeyView]):
48453        (-[KWQTextField nextValidKeyView]):
48454        (-[KWQTextField previousValidKeyView]):
48455        (-[KWQTextField acceptsFirstResponder]):
48456        (-[KWQTextField display]):
48457        (-[KWQTextField displayRectIgnoringOpacity:]):
48458        (-[KWQTextField textView:shouldDrawInsertionPointInRect:color:turnedOn:]):
48459        (-[KWQTextField textView:shouldHandleEvent:]):
48460        (-[KWQTextField textView:didHandleEvent:]):
48461        (-[KWQTextFieldCell editWithFrame:inView:editor:delegate:event:]):
48462        (-[KWQTextFieldCell selectWithFrame:inView:editor:delegate:start:length:]):
48463        (-[KWQTextFieldCell _textAttributes]):
48464        (-[KWQSecureTextField initWithQLineEdit:]):
48465        (-[KWQSecureTextField dealloc]):
48466        (-[KWQSecureTextField controller]):
48467        (-[KWQSecureTextField widget]):
48468        (-[KWQSecureTextField setStringValue:]):
48469        (-[KWQSecureTextField nextKeyView]):
48470        (-[KWQSecureTextField previousKeyView]):
48471        (-[KWQSecureTextField acceptsFirstResponder]):
48472        (-[KWQSecureTextField display]):
48473        (-[KWQSecureTextField displayRectIgnoringOpacity:]):
48474        (-[KWQSecureTextField textView:shouldDrawInsertionPointInRect:color:turnedOn:]):
48475        (-[KWQSecureTextField textView:shouldHandleEvent:]):
48476        (-[KWQSecureTextField textView:didHandleEvent:]):
48477        (-[KWQSecureTextField selectText:]):
48478        (-[KWQSecureTextFieldCell editWithFrame:inView:editor:delegate:event:]):
48479        (-[KWQSecureTextFieldCell selectWithFrame:inView:editor:delegate:start:length:]):
48480        (-[KWQSecureTextFieldCell _textAttributes]):
48481        (+[KWQSearchField cellClass]):
48482        (-[KWQSearchField initWithQLineEdit:]):
48483        (-[KWQSearchField dealloc]):
48484        (-[KWQSearchField controller]):
48485        (-[KWQSearchField widget]):
48486        (-[KWQSearchField selectText:]):
48487        (-[KWQSearchField setStringValue:]):
48488        (-[KWQSearchField nextKeyView]):
48489        (-[KWQSearchField previousKeyView]):
48490        (-[KWQSearchField nextValidKeyView]):
48491        (-[KWQSearchField previousValidKeyView]):
48492        (-[KWQSearchField acceptsFirstResponder]):
48493        (-[KWQSearchField display]):
48494        (-[KWQSearchField displayRectIgnoringOpacity:]):
48495        (-[KWQSearchField textView:shouldDrawInsertionPointInRect:color:turnedOn:]):
48496        (-[KWQSearchField textView:shouldHandleEvent:]):
48497        (-[KWQSearchField textView:didHandleEvent:]):
48498        (-[KWQSearchFieldCell editWithFrame:inView:editor:delegate:event:]):
48499        (-[KWQSearchFieldCell selectWithFrame:inView:editor:delegate:start:length:]):
48500        (-[KWQSearchFieldCell _textAttributes]):
48501        (-[KWQTextFieldFormatter init]):
48502        (-[KWQTextFieldFormatter setMaximumLength:]):
48503        (-[KWQTextFieldFormatter maximumLength]):
48504        (-[KWQTextFieldFormatter stringForObjectValue:]):
48505        (-[KWQTextFieldFormatter getObjectValue:forString:errorDescription:]):
48506        (-[KWQTextFieldFormatter isPartialStringValid:newEditingString:errorDescription:]):
48507        (-[KWQTextFieldFormatter attributedStringForObjectValue:withDefaultAttributes:]):
48508        (-[NSString _KWQ_truncateToNumComposedCharacterSequences:]):
48509        (-[NSTextField _KWQ_currentEditor]):
48510
48511=== Safari-133 ===
48512
485132004-03-19  Darin Adler  <darin@apple.com>
48514
48515        Reviewed by Ken.
48516
48517        - fixed <rdar://problem/3583945>: crash when choosing a file to upload
48518
48519        * kwq/KWQFileButton.mm:
48520        (-[KWQFileButtonAdapter dealloc]): Removed unneeded method.
48521        (-[KWQFileButtonAdapter filenameChanged:]): Check for nil.
48522        (-[KWQFileButtonAdapter focusChanged:]): Ditto.
48523        (-[KWQFileButtonAdapter clicked]): Ditto.
48524
485252004-03-17  Darin Adler  <darin@apple.com>
48526
48527        Reviewed by John.
48528
48529        - fixed rdar://problem/3312803>: extra space in copied text (3g.co.uk)
48530
48531        * khtml/khtml_part.cpp: (KHTMLPart::text): Explicitly set neededSpace to false after
48532        processing a line break. Doesn't really have an effect here, but matches the change
48533        to the styled text version.
48534        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::attributedString): Same change in the styled
48535        text version.
48536
485372004-03-16  Darin Adler  <darin@apple.com>
48538
48539        Reviewed by Ken.
48540
48541        - a little more DOM cleanup
48542
48543        * kwq/DOM-CSS.mm: Added DOMCSSUnknownRule.
48544        * kwq/DOM.mm: Split category implementations out to match category interfaces.
48545        * kwq/DOMHTML.h: Removed lowSrc, not in DOM Level 2. Added a category for some
48546        extensions we'll want on DOMElement.
48547        * kwq/DOMInternal.h: Moved _documentImpl method here so it can be used from
48548        separate categories.
48549        * kwq/DOMRange.h: Changed DOMDocumentRange to a category from a protocol.
48550        * kwq/HTMLDOM.mm: Removed unneeded methods.
48551
48552        * WebCore.pbproj/project.pbxproj: Sort DOM header files alphabetically.
48553
485542004-03-16  Darin Adler  <darin@apple.com>
48555
48556        Reviewed by Ken.
48557
48558        - update for new DOM namespacing and header organization
48559
48560        * WebCore.pbproj/project.pbxproj:
48561        * kwq/DOM-CSS.h: Removed.
48562        * kwq/DOM-CSS.mm: Update for name changes.
48563        * kwq/DOM.h: Changed to include the other DOM headers.
48564        * kwq/DOM.mm: Update for name changes.
48565        * kwq/DOMCSS.h: Added.
48566        * kwq/DOMCore.h: Added.
48567        * kwq/DOMEvents.h: Added.
48568        * kwq/DOMHTML.h: Added.
48569        * kwq/DOMInternal.h: Update for name changes.
48570        * kwq/DOMRange.h: Added.
48571        * kwq/DOMStylesheets.h: Added.
48572        * kwq/DOMTraversal.h: Added.
48573        * kwq/DOMViews.h: Added.
48574        * kwq/HTMLDOM.h: Removed.
48575        * kwq/HTMLDOM.mm: Update for name changes; add some missing setters.
48576
485772004-03-15  Maciej Stachowiak  <mjs@apple.com>
48578
48579        Reviewed by Darin.
48580
48581	- max out our iBench cheat. Don't even paint or lay out a quarter
48582	of the pages.
48583	
48584        * khtml/xml/dom_docimpl.cpp:
48585        (DocumentImpl::close):
48586
485872004-03-15  Ken Kocienda  <kocienda@apple.com>
48588
48589        Reviewed by John
48590
48591        Fix for this bug:
48592        
48593        <rdar://problem/3588717>: REGRESSION (125-131u): Tabbing to links and tabbing in bookmarks view no longer works
48594
48595        Change some support methods which feed editing key events to 
48596        WebKit. The real fix is on the WebKit side.
48597
48598        * kwq/KWQKHTMLPart.mm:
48599        (KWQKHTMLPart::editingKeyEvent): Call new -editingKeyDown:
48600        on WebCoreBridge, as described below.
48601        * kwq/WebCoreBridge.h: Changed -keyDown: to -editingKeyDown:
48602        since we want to tell WebView about editing key events
48603        in a way that does not interfere with other key down
48604        events the WebView processes. This is not necessary in the
48605        strictest sense, but it seems reasonable to keep the
48606        terminology clear.
48607
48608=== Safari-132 ===
48609
486102004-03-12  Chris Blumenberg  <cblu@apple.com>
48611
48612	Implemented ~25% of the HTML DOM API.
48613
48614        Reviewed by kocienda.
48615
48616        (DOM::HTMLElement::HTMLElement):
48617        * kwq/DOM.mm:
48618        * kwq/DOMInternal.h:
48619        * kwq/HTMLDOM.h:
48620        * kwq/HTMLDOM.mm:
48621        (-[HTMLCollection _initWithCollectionImpl:]):
48622        (+[HTMLCollection _collectionWithImpl:]):
48623        (-[HTMLCollection _collectionImpl]):
48624        (-[HTMLCollection length]):
48625        (-[HTMLCollection item:]):
48626        (-[HTMLCollection namedItem:]):
48627        (-[HTMLElement _initWithElementImpl:]):
48628        (+[HTMLElement _elementWithImpl:]):
48629        (-[HTMLElement _HTMLElementImpl]):
48630        (-[HTMLElement idName]):
48631        (-[HTMLElement setIdName:]):
48632        (-[HTMLElement title]):
48633        (-[HTMLElement setTitle:]):
48634        (-[HTMLElement lang]):
48635        (-[HTMLElement setLang:]):
48636        (-[HTMLElement dir]):
48637        (-[HTMLElement setDir:]):
48638        (-[HTMLElement className]):
48639        (-[HTMLElement setClassName:]):
48640        (-[HTMLDocument _HTMLDocumentImpl]):
48641        (-[HTMLDocument title]):
48642        (-[HTMLDocument setTitle:]):
48643        (-[HTMLDocument referrer]):
48644        (-[HTMLDocument domain]):
48645        (-[HTMLDocument URL]):
48646        (-[HTMLDocument body]):
48647        (-[HTMLDocument images]):
48648        (-[HTMLDocument applets]):
48649        (-[HTMLDocument links]):
48650        (-[HTMLDocument forms]):
48651        (-[HTMLDocument anchors]):
48652        (-[HTMLDocument setBody:]):
48653        (-[HTMLDocument cookie]):
48654        (-[HTMLDocument setCookie:]):
48655        (-[HTMLDocument open]):
48656        (-[HTMLDocument close]):
48657        (-[HTMLDocument write:]):
48658        (-[HTMLDocument writeln:]):
48659        (-[HTMLDocument getElementById:]):
48660        (-[HTMLDocument getElementsByName:]):
48661        (-[HTMLHtmlElement _HTMLHtmlElementImpl]):
48662        (-[HTMLHtmlElement version]):
48663        (-[HTMLHtmlElement setVersion:]):
48664        (-[HTMLHeadElement _headElementImpl]):
48665        (-[HTMLHeadElement profile]):
48666        (-[HTMLHeadElement setProfile:]):
48667        (-[HTMLLinkElement _linkElementImpl]):
48668        (-[HTMLLinkElement disabled]):
48669        (-[HTMLLinkElement setDisabled:]):
48670        (-[HTMLLinkElement charset]):
48671        (-[HTMLLinkElement setCharset:]):
48672        (-[HTMLLinkElement href]):
48673        (-[HTMLLinkElement setHref:]):
48674        (-[HTMLLinkElement hreflang]):
48675        (-[HTMLLinkElement setHreflang:]):
48676        (-[HTMLLinkElement media]):
48677        (-[HTMLLinkElement setMedia:]):
48678        (-[HTMLLinkElement rel]):
48679        (-[HTMLLinkElement setRel:]):
48680        (-[HTMLLinkElement rev]):
48681        (-[HTMLLinkElement setRev:]):
48682        (-[HTMLLinkElement target]):
48683        (-[HTMLLinkElement setTarget:]):
48684        (-[HTMLLinkElement type]):
48685        (-[HTMLLinkElement setType:]):
48686        (-[HTMLTitleElement _titleElementImpl]):
48687        (-[HTMLTitleElement text]):
48688        (-[HTMLTitleElement setText:]):
48689        (-[HTMLMetaElement _metaElementImpl]):
48690        (-[HTMLMetaElement content]):
48691        (-[HTMLMetaElement setContent:]):
48692        (-[HTMLMetaElement httpEquiv]):
48693        (-[HTMLMetaElement setHttpEquiv:]):
48694        (-[HTMLMetaElement name]):
48695        (-[HTMLMetaElement setName:]):
48696        (-[HTMLMetaElement scheme]):
48697        (-[HTMLMetaElement setScheme:]):
48698        (-[HTMLBaseElement _baseElementImpl]):
48699        (-[HTMLBaseElement href]):
48700        (-[HTMLBaseElement setHref:]):
48701        (-[HTMLBaseElement target]):
48702        (-[HTMLBaseElement setTarget:]):
48703        (-[HTMLStyleElement _styleElementImpl]):
48704        (-[HTMLStyleElement disabled]):
48705        (-[HTMLStyleElement setDisabled:]):
48706        (-[HTMLStyleElement media]):
48707        (-[HTMLStyleElement setMedia:]):
48708        (-[HTMLStyleElement type]):
48709        (-[HTMLStyleElement setType:]):
48710        (-[HTMLBodyElement _bodyElementImpl]):
48711        (-[HTMLBodyElement aLink]):
48712        (-[HTMLBodyElement setALink:]):
48713        (-[HTMLBodyElement background]):
48714        (-[HTMLBodyElement setBackground:]):
48715        (-[HTMLBodyElement bgColor]):
48716        (-[HTMLBodyElement setBgColor:]):
48717        (-[HTMLBodyElement link]):
48718        (-[HTMLBodyElement setLink:]):
48719        (-[HTMLBodyElement text]):
48720        (-[HTMLBodyElement setText:]):
48721        (-[HTMLBodyElement vLink]):
48722        (-[HTMLBodyElement setVLink:]):
48723
487242004-03-12  David Hyatt  <hyatt@apple.com>
48725
48726	Fix for problem when undoing the deletion of a word in edit mode.
48727	
48728        Reviewed by kocienda
48729
48730        * khtml/rendering/render_text.cpp:
48731        (RenderText::setTextWithOffset):
48732
487332004-03-12  Ken Kocienda  <kocienda@apple.com>
48734
48735        Reviewed by Chris
48736
48737        * khtml/khtml_part.cpp:
48738        (KHTMLPart::handleMouseMoveEventSelection): Clear the selection's
48739        "modify bias" since the user clicked, and is therefore no longer
48740        extending the selection with arrow keys.
48741        * khtml/khtml_selection.cpp:
48742        (KHTMLSelection::KHTMLSelection): Add new m_modifyBiasSet flag.
48743        (KHTMLSelection::init): Set the flag to false by default.
48744        (KHTMLSelection::operator=): Copy over the value of the new m_modifyBiasSet flag.
48745        (KHTMLSelection::modify): Set the flag if extending the selection and set the 
48746        base and extent nodes based on the movement direction requested.
48747        * khtml/khtml_selection.h:
48748        * kwq/WebCoreBridge.h: See below.
48749        * kwq/WebCoreBridge.mm:
48750        (-[WebCoreBridge rangeByAlteringCurrentSelection:direction:granularity:]): This
48751        method is used by the WebKit side in response to requests to change the selection
48752        using the arrow keys. It used to be called rangeByModifyingRange:alteration:direction:granularity:
48753        but I changed it to this new format since I explicitly want to use the current selection, and
48754        not some arbitrarily passed in selection. This helps to maintain the "modify bias" correctly.
48755        (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): New method. A command to alter
48756        the current selection as given. Again, applying the command to the current selection, rather
48757        than just setting the selection to a new one, helps to maintain the "modify bias" correctly.
48758
487592004-03-11  Chris Blumenberg  <cblu@apple.com>
48760
48761	Added stubs for the HTML DOM API.
48762
48763        Reviewed by rjw.
48764
48765        * WebCore.pbproj/project.pbxproj:
48766        * kwq/HTMLDOM.h: Added.
48767        * kwq/HTMLDOM.mm: Added.
48768        (-[HTMLCollection length]):
48769        (-[HTMLCollection item:]):
48770        (-[HTMLCollection namedItem:]):
48771        (-[HTMLElement idName]):
48772        (-[HTMLElement setIdName:]):
48773        (-[HTMLElement title]):
48774        (-[HTMLElement setTitle:]):
48775        (-[HTMLElement lang]):
48776        (-[HTMLElement setLang:]):
48777        (-[HTMLElement dir]):
48778        (-[HTMLElement setDir:]):
48779        (-[HTMLElement className]):
48780        (-[HTMLElement setClassName:]):
48781        (-[HTMLDocument title]):
48782        (-[HTMLDocument setTitle:]):
48783        (-[HTMLDocument referrer]):
48784        (-[HTMLDocument domain]):
48785        (-[HTMLDocument URL]):
48786        (-[HTMLDocument body]):
48787        (-[HTMLDocument images]):
48788        (-[HTMLDocument applets]):
48789        (-[HTMLDocument links]):
48790        (-[HTMLDocument forms]):
48791        (-[HTMLDocument anchors]):
48792        (-[HTMLDocument setBody:]):
48793        (-[HTMLDocument cookie]):
48794        (-[HTMLDocument setCookie:]):
48795        (-[HTMLDocument open]):
48796        (-[HTMLDocument close]):
48797        (-[HTMLDocument write:]):
48798        (-[HTMLDocument writeln:]):
48799        (-[HTMLDocument getElementById:]):
48800        (-[HTMLDocument getElementsByName:]):
48801        (-[HTMLHtmlElement version]):
48802        (-[HTMLHtmlElement setVersion:]):
48803        (-[HTMLHeadElement profile]):
48804        (-[HTMLHeadElement setProfile:]):
48805        (-[HTMLLinkElement disabled]):
48806        (-[HTMLLinkElement setDisabled:]):
48807        (-[HTMLLinkElement charset]):
48808        (-[HTMLLinkElement setCharset:]):
48809        (-[HTMLLinkElement href]):
48810        (-[HTMLLinkElement setHref:]):
48811        (-[HTMLLinkElement hreflang]):
48812        (-[HTMLLinkElement setHreflang:]):
48813        (-[HTMLLinkElement media]):
48814        (-[HTMLLinkElement setMedia:]):
48815        (-[HTMLLinkElement rel]):
48816        (-[HTMLLinkElement setRrevel:]):
48817        (-[HTMLLinkElement rev]):
48818        (-[HTMLLinkElement setRev:]):
48819        (-[HTMLLinkElement target]):
48820        (-[HTMLLinkElement setTarget:]):
48821        (-[HTMLLinkElement type]):
48822        (-[HTMLLinkElement setType:]):
48823        (-[HTMLTitleElement text]):
48824        (-[HTMLTitleElement setText:]):
48825        (-[HTMLMetaElement content]):
48826        (-[HTMLMetaElement setContent:]):
48827        (-[HTMLMetaElement httpEquiv]):
48828        (-[HTMLMetaElement setHttpEquiv:]):
48829        (-[HTMLMetaElement name]):
48830        (-[HTMLMetaElement setName:]):
48831        (-[HTMLMetaElement scheme]):
48832        (-[HTMLMetaElement setScheme:]):
48833        (-[HTMLBaseElement href]):
48834        (-[HTMLBaseElement setHref:]):
48835        (-[HTMLBaseElement target]):
48836        (-[HTMLBaseElement setTarget:]):
48837        (-[HTMLStyleElement disabled]):
48838        (-[HTMLStyleElement setDisabled:]):
48839        (-[HTMLStyleElement media]):
48840        (-[HTMLStyleElement setMedia:]):
48841        (-[HTMLStyleElement type]):
48842        (-[HTMLStyleElement setType:]):
48843        (-[HTMLBodyElement aLink]):
48844        (-[HTMLBodyElement setALink:]):
48845        (-[HTMLBodyElement background]):
48846        (-[HTMLBodyElement setBackground:]):
48847        (-[HTMLBodyElement bgColor]):
48848        (-[HTMLBodyElement setBgColor:]):
48849        (-[HTMLBodyElement link]):
48850        (-[HTMLBodyElement setLink:]):
48851        (-[HTMLBodyElement text]):
48852        (-[HTMLBodyElement setText:]):
48853        (-[HTMLBodyElement vLink]):
48854        (-[HTMLBodyElement setVLink:]):
48855        (-[HTMLFormElement elements]):
48856        (-[HTMLFormElement length]):
48857        (-[HTMLFormElement name]):
48858        (-[HTMLFormElement setName:]):
48859        (-[HTMLFormElement acceptCharset]):
48860        (-[HTMLFormElement setAcceptCharset:]):
48861        (-[HTMLFormElement action]):
48862        (-[HTMLFormElement setAction:]):
48863        (-[HTMLFormElement enctype]):
48864        (-[HTMLFormElement setEnctype:]):
48865        (-[HTMLFormElement method]):
48866        (-[HTMLFormElement setMethod:]):
48867        (-[HTMLFormElement target]):
48868        (-[HTMLFormElement setTarget:]):
48869        (-[HTMLFormElement submit]):
48870        (-[HTMLFormElement reset]):
48871        (-[HTMLIsIndexElement form]):
48872        (-[HTMLIsIndexElement prompt]):
48873        (-[HTMLIsIndexElement setPrompt:]):
48874        (-[HTMLSelectElement type]):
48875        (-[HTMLSelectElement selectedIndex]):
48876        (-[HTMLSelectElement setSelectedIndex:]):
48877        (-[HTMLSelectElement value]):
48878        (-[HTMLSelectElement setValue:]):
48879        (-[HTMLSelectElement length]):
48880        (-[HTMLSelectElement form]):
48881        (-[HTMLSelectElement options]):
48882        (-[HTMLSelectElement disabled]):
48883        (-[HTMLSelectElement multiple]):
48884        (-[HTMLSelectElement name]):
48885        (-[HTMLSelectElement setName:]):
48886        (-[HTMLSelectElement size]):
48887        (-[HTMLSelectElement tabIndex]):
48888        (-[HTMLSelectElement add::]):
48889        (-[HTMLSelectElement remove:]):
48890        (-[HTMLSelectElement blur]):
48891        (-[HTMLSelectElement focus]):
48892        (-[HTMLOptGroupElement disabled]):
48893        (-[HTMLOptGroupElement setDisabled:]):
48894        (-[HTMLOptGroupElement label]):
48895        (-[HTMLOptGroupElement setLabel:]):
48896        (-[HTMLOptionElement form]):
48897        (-[HTMLOptionElement defaultSelected]):
48898        (-[HTMLOptionElement setDefaultSelected:]):
48899        (-[HTMLOptionElement text]):
48900        (-[HTMLOptionElement index]):
48901        (-[HTMLOptionElement setIndex:]):
48902        (-[HTMLOptionElement disabled]):
48903        (-[HTMLOptionElement setDisabled:]):
48904        (-[HTMLOptionElement label]):
48905        (-[HTMLOptionElement setLabel:]):
48906        (-[HTMLOptionElement selected]):
48907        (-[HTMLOptionElement value]):
48908        (-[HTMLOptionElement setValue:]):
48909        (-[HTMLInputElement defaultValue]):
48910        (-[HTMLInputElement setDefaultValue:]):
48911        (-[HTMLInputElement defaultChecked]):
48912        (-[HTMLInputElement setDefaultChecked:]):
48913        (-[HTMLInputElement form]):
48914        (-[HTMLInputElement accept]):
48915        (-[HTMLInputElement setAccept:]):
48916        (-[HTMLInputElement accessKey]):
48917        (-[HTMLInputElement setAccessKey:]):
48918        (-[HTMLInputElement align]):
48919        (-[HTMLInputElement setAlign:]):
48920        (-[HTMLInputElement alt]):
48921        (-[HTMLInputElement setAlt:]):
48922        (-[HTMLInputElement checked]):
48923        (-[HTMLInputElement setChecked:]):
48924        (-[HTMLInputElement disabled]):
48925        (-[HTMLInputElement setDisabled:]):
48926        (-[HTMLInputElement maxLength]):
48927        (-[HTMLInputElement setMaxLength:]):
48928        (-[HTMLInputElement name]):
48929        (-[HTMLInputElement setName:]):
48930        (-[HTMLInputElement readOnly]):
48931        (-[HTMLInputElement setReadOnly:]):
48932        (-[HTMLInputElement size]):
48933        (-[HTMLInputElement setSize:]):
48934        (-[HTMLInputElement src]):
48935        (-[HTMLInputElement setSrc:]):
48936        (-[HTMLInputElement tabIndex]):
48937        (-[HTMLInputElement setTabIndex:]):
48938        (-[HTMLInputElement type]):
48939        (-[HTMLInputElement useMap]):
48940        (-[HTMLInputElement setUseMap:]):
48941        (-[HTMLInputElement value]):
48942        (-[HTMLInputElement setValue:]):
48943        (-[HTMLInputElement blur]):
48944        (-[HTMLInputElement focus]):
48945        (-[HTMLInputElement select]):
48946        (-[HTMLInputElement click]):
48947        (-[HTMLTextAreaElement defaultValue]):
48948        (-[HTMLTextAreaElement setDefaultValue:]):
48949        (-[HTMLTextAreaElement form]):
48950        (-[HTMLTextAreaElement accessKey]):
48951        (-[HTMLTextAreaElement setAccessKey:]):
48952        (-[HTMLTextAreaElement cols]):
48953        (-[HTMLTextAreaElement setCols:]):
48954        (-[HTMLTextAreaElement disabled]):
48955        (-[HTMLTextAreaElement setDisabled:]):
48956        (-[HTMLTextAreaElement name]):
48957        (-[HTMLTextAreaElement setName:]):
48958        (-[HTMLTextAreaElement readOnly]):
48959        (-[HTMLTextAreaElement setReadOnly:]):
48960        (-[HTMLTextAreaElement rows]):
48961        (-[HTMLTextAreaElement setRows:]):
48962        (-[HTMLTextAreaElement tabIndex]):
48963        (-[HTMLTextAreaElement setTabIndex:]):
48964        (-[HTMLTextAreaElement type]):
48965        (-[HTMLTextAreaElement value]):
48966        (-[HTMLTextAreaElement setValue:]):
48967        (-[HTMLTextAreaElement blur]):
48968        (-[HTMLTextAreaElement focus]):
48969        (-[HTMLTextAreaElement select]):
48970        (-[HTMLButtonElement form]):
48971        (-[HTMLButtonElement accessKey]):
48972        (-[HTMLButtonElement setAccessKey:]):
48973        (-[HTMLButtonElement disabled]):
48974        (-[HTMLButtonElement setDisabled:]):
48975        (-[HTMLButtonElement name]):
48976        (-[HTMLButtonElement setName:]):
48977        (-[HTMLButtonElement tabIndex]):
48978        (-[HTMLButtonElement setTabIndex:]):
48979        (-[HTMLButtonElement type]):
48980        (-[HTMLButtonElement value]):
48981        (-[HTMLButtonElement setValue:]):
48982        (-[HTMLLabelElement form]):
48983        (-[HTMLLabelElement accessKey]):
48984        (-[HTMLLabelElement setAccessKey:]):
48985        (-[HTMLLabelElement htmlFor]):
48986        (-[HTMLLabelElement setHtmlFor:]):
48987        (-[HTMLFieldSetElement form]):
48988        (-[HTMLLegendElement form]):
48989        (-[HTMLLegendElement accessKey]):
48990        (-[HTMLLegendElement setAccessKey:]):
48991        (-[HTMLLegendElement align]):
48992        (-[HTMLLegendElement setAlign:]):
48993        (-[HTMLUListElement compact]):
48994        (-[HTMLUListElement setCompact:]):
48995        (-[HTMLUListElement type]):
48996        (-[HTMLUListElement setType:]):
48997        (-[HTMLOListElement compact]):
48998        (-[HTMLOListElement setCompact:]):
48999        (-[HTMLOListElement start]):
49000        (-[HTMLOListElement setStart:]):
49001        (-[HTMLOListElement type]):
49002        (-[HTMLOListElement setType:]):
49003        (-[HTMLDListElement compact]):
49004        (-[HTMLDListElement setCompact:]):
49005        (-[HTMLDirectoryElement compact]):
49006        (-[HTMLDirectoryElement setCompact:]):
49007        (-[HTMLMenuElement compact]):
49008        (-[HTMLMenuElement setCompact:]):
49009        (-[HTMLLIElement type]):
49010        (-[HTMLLIElement setType:]):
49011        (-[HTMLLIElement value]):
49012        (-[HTMLLIElement setValue:]):
49013        (-[HTMLBlockquoteElement cite]):
49014        (-[HTMLBlockquoteElement setCite:]):
49015        (-[HTMLDivElement align]):
49016        (-[HTMLDivElement setAlign:]):
49017        (-[HTMLParagraphElement align]):
49018        (-[HTMLParagraphElement setAlign:]):
49019        (-[HTMLHeadingElement align]):
49020        (-[HTMLHeadingElement setAlign:]):
49021        (-[HTMLQuoteElement cite]):
49022        (-[HTMLQuoteElement setCite:]):
49023        (-[HTMLPreElement width]):
49024        (-[HTMLPreElement setWidth:]):
49025        (-[HTMLBRElement clear]):
49026        (-[HTMLBRElement setClear:]):
49027        (-[HTMLBaseFontElement color]):
49028        (-[HTMLBaseFontElement setColor:]):
49029        (-[HTMLBaseFontElement face]):
49030        (-[HTMLBaseFontElement setFace:]):
49031        (-[HTMLBaseFontElement size]):
49032        (-[HTMLBaseFontElement setSize:]):
49033        (-[HTMLFontElement color]):
49034        (-[HTMLFontElement setColor:]):
49035        (-[HTMLFontElement face]):
49036        (-[HTMLFontElement setFace:]):
49037        (-[HTMLFontElement size]):
49038        (-[HTMLFontElement setSize:]):
49039        (-[HTMLHRElement align]):
49040        (-[HTMLHRElement setAlign:]):
49041        (-[HTMLHRElement noShade]):
49042        (-[HTMLHRElement setNoShade:]):
49043        (-[HTMLHRElement size]):
49044        (-[HTMLHRElement setSize:]):
49045        (-[HTMLHRElement width]):
49046        (-[HTMLHRElement setWidth:]):
49047        (-[HTMLModElement cite]):
49048        (-[HTMLModElement setCite:]):
49049        (-[HTMLModElement dateTime]):
49050        (-[HTMLModElement setDateTime:]):
49051        (-[HTMLAnchorElement accessKey]):
49052        (-[HTMLAnchorElement setAccessKey:]):
49053        (-[HTMLAnchorElement charset]):
49054        (-[HTMLAnchorElement setCharset:]):
49055        (-[HTMLAnchorElement coords]):
49056        (-[HTMLAnchorElement setCoords:]):
49057        (-[HTMLAnchorElement href]):
49058        (-[HTMLAnchorElement setHref:]):
49059        (-[HTMLAnchorElement hreflang]):
49060        (-[HTMLAnchorElement setHreflang:]):
49061        (-[HTMLAnchorElement name]):
49062        (-[HTMLAnchorElement setName:]):
49063        (-[HTMLAnchorElement rel]):
49064        (-[HTMLAnchorElement setRel:]):
49065        (-[HTMLAnchorElement rev]):
49066        (-[HTMLAnchorElement setRev:]):
49067        (-[HTMLAnchorElement shape]):
49068        (-[HTMLAnchorElement setShape:]):
49069        (-[HTMLAnchorElement tabIndex]):
49070        (-[HTMLAnchorElement setTabIndex:]):
49071        (-[HTMLAnchorElement target]):
49072        (-[HTMLAnchorElement setTarget:]):
49073        (-[HTMLAnchorElement type]):
49074        (-[HTMLAnchorElement setType:]):
49075        (-[HTMLAnchorElement blur]):
49076        (-[HTMLAnchorElement focus]):
49077        (-[HTMLImageElement lowSrc]):
49078        (-[HTMLImageElement setLowSrc:]):
49079        (-[HTMLImageElement name]):
49080        (-[HTMLImageElement setName:]):
49081        (-[HTMLImageElement align]):
49082        (-[HTMLImageElement setAlign:]):
49083        (-[HTMLImageElement alt]):
49084        (-[HTMLImageElement setAlt:]):
49085        (-[HTMLImageElement border]):
49086        (-[HTMLImageElement setBorder:]):
49087        (-[HTMLImageElement height]):
49088        (-[HTMLImageElement setHeight:]):
49089        (-[HTMLImageElement hspace]):
49090        (-[HTMLImageElement setHspace:]):
49091        (-[HTMLImageElement isMap]):
49092        (-[HTMLImageElement setIsMap:]):
49093        (-[HTMLImageElement longDesc]):
49094        (-[HTMLImageElement setLongDesc:]):
49095        (-[HTMLImageElement src]):
49096        (-[HTMLImageElement setSrc:]):
49097        (-[HTMLImageElement useMap]):
49098        (-[HTMLImageElement setUseMap:]):
49099        (-[HTMLImageElement vspace]):
49100        (-[HTMLImageElement setVspace:]):
49101        (-[HTMLImageElement width]):
49102        (-[HTMLImageElement setWidth:]):
49103        (-[HTMLObjectElement form]):
49104        (-[HTMLObjectElement code]):
49105        (-[HTMLObjectElement setCode:]):
49106        (-[HTMLObjectElement align]):
49107        (-[HTMLObjectElement setAlign:]):
49108        (-[HTMLObjectElement archive]):
49109        (-[HTMLObjectElement setArchive:]):
49110        (-[HTMLObjectElement border]):
49111        (-[HTMLObjectElement setBorder:]):
49112        (-[HTMLObjectElement codeBase]):
49113        (-[HTMLObjectElement setCodeBase:]):
49114        (-[HTMLObjectElement codeType]):
49115        (-[HTMLObjectElement setCodeType:]):
49116        (-[HTMLObjectElement data]):
49117        (-[HTMLObjectElement setData:]):
49118        (-[HTMLObjectElement declare]):
49119        (-[HTMLObjectElement setDeclare:]):
49120        (-[HTMLObjectElement height]):
49121        (-[HTMLObjectElement setHeight:]):
49122        (-[HTMLObjectElement hspace]):
49123        (-[HTMLObjectElement setHspace:]):
49124        (-[HTMLObjectElement name]):
49125        (-[HTMLObjectElement setName:]):
49126        (-[HTMLObjectElement standby]):
49127        (-[HTMLObjectElement setStandby:]):
49128        (-[HTMLObjectElement tabIndex]):
49129        (-[HTMLObjectElement setTabIndex:]):
49130        (-[HTMLObjectElement type]):
49131        (-[HTMLObjectElement setType:]):
49132        (-[HTMLObjectElement useMap]):
49133        (-[HTMLObjectElement setUseMap:]):
49134        (-[HTMLObjectElement vspace]):
49135        (-[HTMLObjectElement setVspace:]):
49136        (-[HTMLObjectElement width]):
49137        (-[HTMLObjectElement setWidth:]):
49138        (-[HTMLParamElement name]):
49139        (-[HTMLParamElement setName:]):
49140        (-[HTMLParamElement type]):
49141        (-[HTMLParamElement setType:]):
49142        (-[HTMLParamElement value]):
49143        (-[HTMLParamElement setValue:]):
49144        (-[HTMLParamElement valueType]):
49145        (-[HTMLParamElement setValueType:]):
49146        (-[HTMLAppletElement align]):
49147        (-[HTMLAppletElement setAlign:]):
49148        (-[HTMLAppletElement alt]):
49149        (-[HTMLAppletElement setAlt:]):
49150        (-[HTMLAppletElement archive]):
49151        (-[HTMLAppletElement setArchive:]):
49152        (-[HTMLAppletElement code]):
49153        (-[HTMLAppletElement setCode:]):
49154        (-[HTMLAppletElement codeBase]):
49155        (-[HTMLAppletElement setCodeBase:]):
49156        (-[HTMLAppletElement codeType]):
49157        (-[HTMLAppletElement setCodeType:]):
49158        (-[HTMLAppletElement height]):
49159        (-[HTMLAppletElement setHeight:]):
49160        (-[HTMLAppletElement hspace]):
49161        (-[HTMLAppletElement setHspace:]):
49162        (-[HTMLAppletElement name]):
49163        (-[HTMLAppletElement setName:]):
49164        (-[HTMLAppletElement object]):
49165        (-[HTMLAppletElement setObject:]):
49166        (-[HTMLAppletElement vspace]):
49167        (-[HTMLAppletElement setVspace:]):
49168        (-[HTMLAppletElement width]):
49169        (-[HTMLAppletElement setWidth:]):
49170        (-[HTMLMapElement areas]):
49171        (-[HTMLMapElement name]):
49172        (-[HTMLMapElement setName:]):
49173        (-[HTMLAreaElement accessKey]):
49174        (-[HTMLAreaElement setAccessKey:]):
49175        (-[HTMLAreaElement alt]):
49176        (-[HTMLAreaElement setAlt:]):
49177        (-[HTMLAreaElement coords]):
49178        (-[HTMLAreaElement setCoords:]):
49179        (-[HTMLAreaElement href]):
49180        (-[HTMLAreaElement setHref:]):
49181        (-[HTMLAreaElement noHref]):
49182        (-[HTMLAreaElement setNoHref:]):
49183        (-[HTMLAreaElement shape]):
49184        (-[HTMLAreaElement setShape:]):
49185        (-[HTMLAreaElement tabIndex]):
49186        (-[HTMLAreaElement setTabIndex:]):
49187        (-[HTMLAreaElement target]):
49188        (-[HTMLAreaElement setTarget:]):
49189        (-[HTMLScriptElement text]):
49190        (-[HTMLScriptElement setText:]):
49191        (-[HTMLScriptElement htmlFor]):
49192        (-[HTMLScriptElement setHtmlFor:]):
49193        (-[HTMLScriptElement event]):
49194        (-[HTMLScriptElement setEvent:]):
49195        (-[HTMLScriptElement charset]):
49196        (-[HTMLScriptElement setCharset:]):
49197        (-[HTMLScriptElement defer]):
49198        (-[HTMLScriptElement setDefer:]):
49199        (-[HTMLScriptElement src]):
49200        (-[HTMLScriptElement setSrc:]):
49201        (-[HTMLScriptElement type]):
49202        (-[HTMLScriptElement setType:]):
49203        (-[HTMLTableCaptionElement align]):
49204        (-[HTMLTableCaptionElement setAlign:]):
49205        (-[HTMLTableSectionElement align]):
49206        (-[HTMLTableSectionElement setAlign:]):
49207        (-[HTMLTableSectionElement ch]):
49208        (-[HTMLTableSectionElement setCh:]):
49209        (-[HTMLTableSectionElement chOff]):
49210        (-[HTMLTableSectionElement setChOff:]):
49211        (-[HTMLTableSectionElement vAlign]):
49212        (-[HTMLTableSectionElement setVAlign:]):
49213        (-[HTMLTableSectionElement rows]):
49214        (-[HTMLTableSectionElement insertRow:]):
49215        (-[HTMLTableSectionElement deleteRow:]):
49216        (-[HTMLTableElement caption]):
49217        (-[HTMLTableElement tHead]):
49218        (-[HTMLTableElement tFoot]):
49219        (-[HTMLTableElement rows]):
49220        (-[HTMLTableElement tBodies]):
49221        (-[HTMLTableElement align]):
49222        (-[HTMLTableElement setAlign:]):
49223        (-[HTMLTableElement bgColor]):
49224        (-[HTMLTableElement setBgColor:]):
49225        (-[HTMLTableElement border]):
49226        (-[HTMLTableElement setBorder:]):
49227        (-[HTMLTableElement cellPadding]):
49228        (-[HTMLTableElement setCellPadding:]):
49229        (-[HTMLTableElement cellSpacing]):
49230        (-[HTMLTableElement setCellSpacing:]):
49231        (-[HTMLTableElement frame]):
49232        (-[HTMLTableElement setFrame:]):
49233        (-[HTMLTableElement rules]):
49234        (-[HTMLTableElement setRules:]):
49235        (-[HTMLTableElement summary]):
49236        (-[HTMLTableElement setSummary:]):
49237        (-[HTMLTableElement width]):
49238        (-[HTMLTableElement setWidth:]):
49239        (-[HTMLTableElement createTHead]):
49240        (-[HTMLTableElement deleteTHead]):
49241        (-[HTMLTableElement createTFoot]):
49242        (-[HTMLTableElement deleteTFoot]):
49243        (-[HTMLTableElement createCaption]):
49244        (-[HTMLTableElement deleteCaption]):
49245        (-[HTMLTableElement deleteRow:]):
49246        (-[HTMLTableColElement align]):
49247        (-[HTMLTableColElement setAlign:]):
49248        (-[HTMLTableColElement ch]):
49249        (-[HTMLTableColElement setCh:]):
49250        (-[HTMLTableColElement chOff]):
49251        (-[HTMLTableColElement setChOff:]):
49252        (-[HTMLTableColElement span]):
49253        (-[HTMLTableColElement setSpan:]):
49254        (-[HTMLTableColElement vAlign]):
49255        (-[HTMLTableColElement setVAlign:]):
49256        (-[HTMLTableColElement width]):
49257        (-[HTMLTableColElement setWidth:]):
49258        (-[HTMLTableRowElement rowIndex]):
49259        (-[HTMLTableRowElement setRowIndex:]):
49260        (-[HTMLTableRowElement sectionRowIndex]):
49261        (-[HTMLTableRowElement setSectionRowIndex:]):
49262        (-[HTMLTableRowElement cells]):
49263        (-[HTMLTableRowElement setCells:]):
49264        (-[HTMLTableRowElement align]):
49265        (-[HTMLTableRowElement setAlign:]):
49266        (-[HTMLTableRowElement bgColor]):
49267        (-[HTMLTableRowElement setBgColor:]):
49268        (-[HTMLTableRowElement ch]):
49269        (-[HTMLTableRowElement setCh:]):
49270        (-[HTMLTableRowElement chOff]):
49271        (-[HTMLTableRowElement setChOff:]):
49272        (-[HTMLTableRowElement vAlign]):
49273        (-[HTMLTableRowElement setVAlign:]):
49274        (-[HTMLTableRowElement insertCell:]):
49275        (-[HTMLTableRowElement deleteCell:]):
49276        (-[HTMLTableCellElement cellIndex]):
49277        (-[HTMLTableCellElement setCellIndex:]):
49278        (-[HTMLTableCellElement abbr]):
49279        (-[HTMLTableCellElement setAbbr:]):
49280        (-[HTMLTableCellElement align]):
49281        (-[HTMLTableCellElement setAlign:]):
49282        (-[HTMLTableCellElement axis]):
49283        (-[HTMLTableCellElement setAxis:]):
49284        (-[HTMLTableCellElement bgColor]):
49285        (-[HTMLTableCellElement setBgColor:]):
49286        (-[HTMLTableCellElement ch]):
49287        (-[HTMLTableCellElement setCh:]):
49288        (-[HTMLTableCellElement chOff]):
49289        (-[HTMLTableCellElement setChOff:]):
49290        (-[HTMLTableCellElement colSpan]):
49291        (-[HTMLTableCellElement setColSpan:]):
49292        (-[HTMLTableCellElement headers]):
49293        (-[HTMLTableCellElement setHeaders:]):
49294        (-[HTMLTableCellElement height]):
49295        (-[HTMLTableCellElement setHeight:]):
49296        (-[HTMLTableCellElement noWrap]):
49297        (-[HTMLTableCellElement setNoWrap:]):
49298        (-[HTMLTableCellElement rowSpan]):
49299        (-[HTMLTableCellElement setRowSpan:]):
49300        (-[HTMLTableCellElement scope]):
49301        (-[HTMLTableCellElement setScope:]):
49302        (-[HTMLTableCellElement vAlign]):
49303        (-[HTMLTableCellElement setVAlign:]):
49304        (-[HTMLTableCellElement width]):
49305        (-[HTMLTableCellElement setWidth:]):
49306        (-[HTMLFrameSetElement cols]):
49307        (-[HTMLFrameSetElement setCols:]):
49308        (-[HTMLFrameSetElement rows]):
49309        (-[HTMLFrameSetElement setRows:]):
49310        (-[HTMLFrameElement frameBorder]):
49311        (-[HTMLFrameElement setFrameBorder:]):
49312        (-[HTMLFrameElement longDesc]):
49313        (-[HTMLFrameElement setLongDesc:]):
49314        (-[HTMLFrameElement marginHeight]):
49315        (-[HTMLFrameElement setMarginHeight:]):
49316        (-[HTMLFrameElement marginWidth]):
49317        (-[HTMLFrameElement setMarginWidth:]):
49318        (-[HTMLFrameElement name]):
49319        (-[HTMLFrameElement setName:]):
49320        (-[HTMLFrameElement noResize]):
49321        (-[HTMLFrameElement setNoResize:]):
49322        (-[HTMLFrameElement scrolling]):
49323        (-[HTMLFrameElement setScrolling:]):
49324        (-[HTMLFrameElement src]):
49325        (-[HTMLFrameElement setSrc:]):
49326        (-[HTMLIFrameElement align]):
49327        (-[HTMLIFrameElement setAlign:]):
49328        (-[HTMLIFrameElement frameBorder]):
49329        (-[HTMLIFrameElement setFrameBorder:]):
49330        (-[HTMLIFrameElement height]):
49331        (-[HTMLIFrameElement setHeight:]):
49332        (-[HTMLIFrameElement longDesc]):
49333        (-[HTMLIFrameElement setLongDesc:]):
49334        (-[HTMLIFrameElement marginHeight]):
49335        (-[HTMLIFrameElement setMarginHeight:]):
49336        (-[HTMLIFrameElement marginWidth]):
49337        (-[HTMLIFrameElement setMarginWidth:]):
49338        (-[HTMLIFrameElement name]):
49339        (-[HTMLIFrameElement setName:]):
49340        (-[HTMLIFrameElement scrolling]):
49341        (-[HTMLIFrameElement setScrolling:]):
49342        (-[HTMLIFrameElement src]):
49343        (-[HTMLIFrameElement setSrc:]):
49344        (-[HTMLIFrameElement width]):
49345        (-[HTMLIFrameElement setWidth:]):
49346
493472004-03-11  Ken Kocienda  <kocienda@apple.com>
49348
49349        Reviewed by Dave
49350
49351        I have clarified the concept (at least in my head) 
49352        that each edit command has an obligation to put the
49353        selection in the right place after it is applied, 
49354        unapplied, or reapplied. Right now, each edit command 
49355        calls setStartingSelection and setEndingSelection to do
49356        this, I made these function move the selection on 
49357        setting.
49358
49359        * khtml/editing/htmlediting_impl.cpp:
49360        (EditCommandImpl::setStartingSelection)
49361        (EditCommandImpl::setEndingSelection)
49362        (InputTextCommandImpl::coalesce)
49363        (InputTextCommandImpl::deleteCharacter)
49364        (InputTextCommandImpl::execute)
49365        * khtml/editing/htmlediting_impl.h:
49366
493672004-03-11  Ken Kocienda  <kocienda@apple.com>
49368
49369        Reviewed by Dave
49370    
49371        Various changes to move us forward on editing.
49372        
49373        1. I reorganized the concrete EditCommand interface and
49374        implementation classes alphabetically in their 
49375        respective files, to make it easier to find things.
49376        
49377        2. I added a TypingCommand composite class to gang 
49378        up all keystrokes and make it possible to pass a 
49379        single command over to the Cocoa undo system in all cases.
49380        
49381        3. I now send all keystrokes back over to WebKit
49382        to be interpreted by the text input system. In concert
49383        with the many new NSResponder method implementations I
49384        added to WebView, we now respond to keystrokes in a much
49385        more Cocoa-like way that sets us down the path to
49386        integrating with the Cocoa text input system some day.
49387
49388        4. I fixed up our integration with the Cocoa undo
49389        system. I also removed much of the undo support code
49390        from the KHTMPart class. As a replacement, I implemented
49391        reporting of undoable commands to KHTMLPart so that 
49392        a KDE hookup is quite feasible. As a result, undo 
49393        should "just work" in Blot (Chris has reported that 
49394        it has been busted).
49395
49396        5. I added the DOM CSS bindings for Objective-C. This
49397        required some rearranging of the existing DOM bindings
49398        code, and while I was there, I did various cleanups in the
49399        existing DOM bindings.
49400
49401        * About 400 lines of changed files and functions elided.
49402        
494032004-03-11  Chris Blumenberg  <cblu@apple.com>
49404
49405	Fixed some spacing issues in reconstructed source and web archives that were caused by a malformed doc type string that we were constructing.
49406
49407        Reviewed by darin.
49408
49409        * khtml/html/html_documentimpl.cpp:
49410        (HTMLDocumentImpl::determineParseMode): set the public ID and system ID on the doc type
49411        * khtml/xml/dom_docimpl.cpp:
49412        (DocumentTypeImpl::toString): put a space between DOCTYPE and the name
49413        * khtml/xml/dom_docimpl.h:
49414        (DOM::DocumentTypeImpl::setPublicId): new
49415        (DOM::DocumentTypeImpl::setSystemId): new
49416
494172004-03-10  David Hyatt  <hyatt@apple.com>
49418
49419	Fix for 3584646, AxWebArea should encompass all children (its AxSize should).
49420	
49421        Reviewed by mjs
49422
49423        * khtml/rendering/render_canvas.cpp:
49424        (RenderCanvas::absoluteRects):
49425        * khtml/rendering/render_canvas.h:
49426
494272004-03-10  Chris Blumenberg  <cblu@apple.com>
49428
49429	Fixed: INPUT images are not part of web archives.
49430
49431        Reviewed by rjw.
49432
49433        * khtml/html/html_formimpl.cpp:
49434        (HTMLInputElementImpl::isSubresourceURLAttribute):
49435        * khtml/html/html_formimpl.h:
49436
494372004-03-09  Chris Blumenberg  <cblu@apple.com>
49438
49439	Implemented WebCore side of: <rdar://problem/3577508>: API: web archive related API's
49440
49441        Reviewed by rjw.
49442
49443        * WebCore-combined.exp:
49444        * WebCore.exp:
49445        * kwq/DOM.mm:
49446        (+[DOMRange _rangeWithImpl:]): made internally accessible
49447        (-[DOMRange _rangeImpl]): ditto
49448        * kwq/DOMInternal.h:
49449        * kwq/KWQStringList.h:
49450        * kwq/KWQStringList.mm:
49451        (QStringList::getNSArray): new
49452        * kwq/WebCoreBridge.h:
49453        * kwq/WebCoreBridge.mm:
49454        (-[WebCoreBridge pasteMarkupString:]): renamed from pasteHTMLString since XML pasting may be possible
49455        (-[WebCoreBridge selectedRange]): new
49456        (-[WebCoreBridge _documentTypeString]): new
49457        (-[WebCoreBridge _stringWithDocumentTypeStringAndMarkupString:]): new
49458        (-[WebCoreBridge markupStringFromNode:subresourceURLStrings:]): new, needed for WebKit API's
49459        (-[WebCoreBridge markupStringFromRange:subresourceURLStrings:]): new, needed for WebKit API's
49460
494612004-03-09  David Hyatt  <hyatt@apple.com>
49462
49463	Make the AXLinkUIElements attribute always return an array (never return nil).
49464	
49465        * kwq/KWQAccObject.mm:
49466        (-[KWQAccObject accessibilityAttributeValue:]):
49467
494682004-03-09  David Hyatt  <hyatt@apple.com>
49469
49470	(1) Change root element in a document to have a role of AXWebArea.
49471	(2) Add support for AXURL to links and children of links.
49472	(3) Add support for AXLinkUIElements to the AXWebArea
49473	
49474        Reviewed by john
49475
49476        * khtml/dom/html_misc.h:
49477        * kwq/KWQAccObject.mm:
49478        (-[KWQAccObject role]):
49479        (-[KWQAccObject roleDescription]):
49480        (-[KWQAccObject accessibilityAttributeNames]):
49481        (-[KWQAccObject accessibilityAttributeValue:]):
49482
494832004-03-09  John Sullivan  <sullivan@apple.com>
49484
49485        * kwq/KWQKURL.mm:
49486        (KURL::KURL):
49487        Fixed broken build by removing wayward "break" statement.
49488
494892004-03-08  Darin Adler  <darin@apple.com>
49490
49491        Reviewed by Maciej.
49492
49493        - fixed <rdar://problem/3554876>: REGRESSION (100-125): cannot upload file if path contains non-ASCII characters
49494
49495        * kwq/KWQKURL.mm: Remove Colon constant so we can fit in 8 bits again.
49496        (KURL::KURL): Rewrite so we don't need isSchemeCharOrColon.
49497
49498=== Safari-131 ===
49499
495002004-03-08  Ken Kocienda  <kocienda@apple.com>
49501
49502        Reviewed by Darin
49503
49504        * WebCore.pbproj/project.pbxproj: Added CFBundleName to Info.plist.
49505
495062004-03-05  David Hyatt  <hyatt@apple.com>
49507
49508	Fix for first-line inheritance problem caused by incorrectly inheriting first-line into floating
49509	blocks.
49510	
49511        Reviewed by kocienda
49512
49513        * khtml/rendering/render_block.cpp:
49514        (khtml::RenderBlock::firstLineBlock):
49515
495162004-03-05  Ken Kocienda  <kocienda@apple.com>
49517
49518	Forgot to add this when I checked in last time.
49519
49520        * ForwardingHeaders/css/css_computedstyle.h: Added.
49521
495222004-03-05  Ken Kocienda  <kocienda@apple.com>
49523
49524        Reviewed by Dave.
49525
49526        Added initial support for retrieving the computed 
49527        style of document elements.
49528
49529        * WebCore.pbproj/project.pbxproj:
49530        * khtml/css/css_computedstyle.cpp: Added.
49531        (DOM::valueForLength): Helper to turn a khtml::Length into a computed value string.
49532        (DOM::stringForBorderStyle): Helper to turn an EBorderStyle into a computed value string.
49533        (DOM::stringForTextAlign): Helper to turn an ETextAlign into a computed value string.
49534        (DOM::CSSComputedStyleDeclarationImpl::CSSComputedStyleDeclarationImpl): New function.
49535        (DOM::CSSComputedStyleDeclarationImpl::~CSSComputedStyleDeclarationImpl): Ditto.
49536        (DOM::CSSComputedStyleDeclarationImpl::cssText): Ditto.
49537        (DOM::CSSComputedStyleDeclarationImpl::setCssText): Ditto.
49538        (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Ditto.
49539        (DOM::CSSComputedStyleDeclarationImpl::getPropertyValue): Ditto.
49540        (DOM::CSSComputedStyleDeclarationImpl::getPropertyPriority): Ditto.
49541        (DOM::CSSComputedStyleDeclarationImpl::removeProperty): Ditto.
49542        (DOM::CSSComputedStyleDeclarationImpl::setProperty): Ditto.
49543        (DOM::CSSComputedStyleDeclarationImpl::setLengthProperty): Ditto.
49544        (DOM::CSSComputedStyleDeclarationImpl::item): Ditto.
49545        (DOM::CSSComputedStyleDeclarationImpl::property): Ditto.
49546        * khtml/css/css_computedstyle.h: Added.
49547        * khtml/css/css_valueimpl.cpp:
49548        (CSSPrimitiveValueImpl::cssText): Fixed some formatting of Rect. Added
49549        suppoprt for rgba colors.
49550        * khtml/css/css_valueimpl.h:
49551        (DOM::CSSStyleDeclarationImpl::node):
49552        * khtml/ecma/kjs_css.cpp:
49553        (KJS::getDOMCSSStyleDeclaration):
49554        * khtml/ecma/kjs_dom.cpp:
49555        (DOMDocument::getValueProperty): defaultView is a property, used to be a function, 
49556        which was wrong. Fixed.
49557        (DOMDocumentProtoFunc::tryCall): Ditto.
49558        * khtml/ecma/kjs_dom.lut.h:
49559        (KJS::): Regenerated file.
49560        * khtml/misc/khtmllayout.h:
49561        (khtml::Length::length): Added an accessor to the value, to promote better coding
49562        style, rather than peeking and poking the value directly.
49563        * khtml/rendering/render_style.h:
49564        (khtml::RenderStyle::borderLeftWidth): BHIDDEN also should be treated like BNONE when it comes
49565        to returning a zero value. Now it is.
49566        (khtml::RenderStyle::borderRightWidth): Ditto.
49567        (khtml::RenderStyle::borderTopWidth): Ditto.
49568        (khtml::RenderStyle::borderBottomWidth): Ditto.
49569        (khtml::RenderStyle::outlineWidth): Ditto.
49570        (khtml::RenderStyle::outlineOffset): Ditto.
49571        * khtml/xml/dom2_viewsimpl.cpp:
49572        (AbstractViewImpl::getComputedStyle): Added an implementation for this formerly stubbed out function.
49573
495742004-03-05  Ken Kocienda  <kocienda@apple.com>
49575
49576        Change by Darin. Reviewed by me.
49577
49578        * kwq/DOM.mm: Fixed the following functions to deal with
49579        casting objects derived from NodeImpl back and forth to
49580        NodeImpl given that the derived classes use multiple
49581        inheritance.
49582        (-[DOMDocument _documentImpl]):
49583        (-[DOMCharacterData _characterDataImpl]):
49584        (-[DOMAttr _attrImpl]):
49585        (-[DOMElement _elementImpl]):
49586        (-[DOMText _textImpl]):
49587        (-[DOMDocumentType _documentTypeImpl]):
49588        (-[DOMNotation _notationImpl]):
49589        (-[DOMEntity _entityImpl]):
49590        (-[DOMProcessingInstruction _processingInstructionImpl]):
49591
495922004-03-03  Darin Adler  <darin@apple.com>
49593
49594        Reviewed by Vicki.
49595
49596        * English.lproj/InfoPlist.strings: Removed. No need to localize the version and
49597        copyright string, and that's all that was in here.
49598        * WebCore.pbproj/project.pbxproj: Removed InfoPlist.strings from build.
49599
496002004-03-03  David Hyatt  <hyatt@apple.com>
49601
49602	Speed up access to the children arrays of accessibility objects by caching mutable arrays of children
49603	and nulling them out only when the children change.
49604	
49605        Reviewed by john
49606
49607        * khtml/rendering/render_container.cpp:
49608        (RenderContainer::removeChildNode):
49609        (RenderContainer::appendChildNode):
49610        (RenderContainer::insertChildNode):
49611        * kwq/KWQAccObject.h:
49612        * kwq/KWQAccObject.mm:
49613        (-[KWQAccObject detach]):
49614        (-[KWQAccObject accessibilityAttributeValue:]):
49615        (-[KWQAccObject childrenChanged]):
49616        (-[KWQAccObject clearChildren]):
49617        * kwq/KWQAccObjectCache.h:
49618        * kwq/KWQAccObjectCache.mm:
49619        (KWQAccObjectCache::childrenChanged):
49620
496212004-03-02  Ken Kocienda  <kocienda@apple.com>
49622
49623        Reviewed by Darin and me. Coding by Darin and me.
49624        
49625        1) Fix some places that were calling [self class], in at
49626        least one case calling a method not defined on the class
49627        (not gonna work).
49628        2) Add underscore prefix for all non-API method names.
49629        3) Make DOMObject refuse to init, which might prevent
49630        problems where people get confused and think they can
49631        subclass or instantiate it or its subclasses.
49632        4) Use some C+mojo to replace NSStringToDOMString and
49633        DOMStringToNSString with type conversions built into the
49634        DOMString class.
49635        5) Removed NSError out parameters from the API. Methods
49636        now throw NSExceptions.
49637        6) Exception code local variables now initialized before
49638        passing to khtml DOM impl calls.
49639        7) Various other cleanups and tweaks.
49640
49641        * khtml/dom/dom_string.h
49642        * khtml/xml/dom_atomicstring.h
49643        * kwq/DOM.h
49644        * kwq/DOM.mm
49645        * kwq/DOMInternal.h
49646        * kwq/KWQKHTMLPart.mm
49647        * kwq/WebCoreBridge.mm
49648
496492004-03-02  Richard Williamson   <rjw@apple.com>
49650
49651	Added NP_SAP API.  This API includes the new entry points
49652	used to bind native interfaces to JavaScript.  It's final location
49653	may change.
49654
49655	Made changes to KWQKHTMLPart.mm to reflect changes in names
49656	on RootObject.
49657	
49658        Reviewed by Chris.
49659
49660        * WebCore.pbproj/project.pbxproj:
49661        * khtml/ecma/NP_SAP.h: Added.
49662        * kwq/KWQKHTMLPart.mm:
49663        (KWQKHTMLPart::cleanupPluginRootObjects):
49664        * kwq/WebCoreBridge.mm:
49665
496662004-03-01  Maciej Stachowiak  <mjs@apple.com>
49667
49668        Reviewed by Darin.
49669
49670	<rdar://problem/3549201>: repro crash in KHTMLPart::begin inside JavaScript code (gmpartsdirect.com)
49671
49672	Added some null checks. I am not sure why this page attaches a
49673	document that has no view, but these changes make it work
49674	perfectly.
49675        
49676	* khtml/khtml_part.cpp:
49677        (KHTMLPart::begin): Add check for null view before use.  *
49678	khtml/xml/dom_docimpl.cpp:
49679        (DocumentImpl::close): ditto
49680        (DocumentImpl::recalcStyle): Add check for null paint device.
49681
49682=== Safari-130 ===
49683
496842004-03-01  Ken Kocienda  <kocienda@apple.com>
49685
49686        Rollout last night's checkin. The tree was closed.
49687
49688        * kwq/DOM.h
49689        * kwq/DOM.mm
49690        * kwq/DOMInternal.h
49691        * kwq/KWQKHTMLPart.mm
49692        * kwq/WebCoreBridge.mm
49693
496942004-03-01  Ken Kocienda  <kocienda@apple.com>
49695
49696        Reviewed by me, changes by Darin.
49697        
49698        Yet another pass at the DOM API, this one by 
49699        Darin to simplify the internal structure of the
49700        implementation. Little has changed in the API;
49701        much has changed in the implementation, particularly
49702        with regard to object creation and data storage and
49703        the class hierarchy.
49704
49705        * kwq/DOM.h
49706        * kwq/DOM.mm
49707        * kwq/DOMInternal.h
49708        * kwq/KWQKHTMLPart.mm
49709        * kwq/WebCoreBridge.mm
49710
497112004-03-01  Maciej Stachowiak  <mjs@apple.com>
49712
49713	- fixed <rdar://problem/3567047>: REGRESSION: repro crash inside KJS (dispatchToBoolean) at www.thedonnas.com
49714	- fixed <rdar://problem/3550461>: REGRESSION: repro crash in JavaScript at www.alaska.com
49715        
49716	* khtml/ecma/kjs_window.cpp:
49717        (Window::getListener): Return Null() when the listener object is
49718	null, indicating the code failed to parse. Otherwise we return a
49719	bad value which can later crash the JS interpreter.
49720
497212004-03-01  Darin Adler  <darin@apple.com>
49722
49723        Reviewed by Vicki.
49724
49725        - fixed Tiger build
49726
49727        * kwq/KWQXmlSimpleReader.mm: (QXmlSimpleReader::parse):
49728        Changed SAX structure initialization code so it compiles with both the newer
49729        and older libxml. Not sure this will work right with namespaces with the new
49730        libxml; we'll have to test.
49731
497322004-03-01  Ken Kocienda  <kocienda@apple.com>
49733
49734        Reviewed by me, as suggested by Darin
49735
49736        * khtml/misc/htmlattrs.c:
49737        (getAttrName): Generated code no longer has extraneous semicolon.
49738        * khtml/misc/htmltags.c: Generated code no longer has extraneous semicolon.
49739        (getTagName):
49740        * khtml/misc/makeattrs: Removed extraneous semicolon from end of file.
49741        * khtml/misc/maketags: Ditto.
49742
497432004-03-01  Ken Kocienda  <kocienda@apple.com>
49744
49745        * kwq/DOMInternal.h: Replaced tabs with spaces.
49746
497472004-03-01  Ken Kocienda  <kocienda@apple.com>
49748
49749        Reviewed by Darin
49750
49751        Changed all Objective-C DOM classes from protocols to classes, using
49752        a class cluster-like approach.
49753
49754        * WebCore.pbproj/project.pbxproj:
49755        * khtml/dom/html_object.cpp: Put code in DOM namespace.
49756        * khtml/html/html_headimpl.cpp: Pull in entire DOM namespace in using directive to
49757        make up for the removal of it from htmlattrs.
49758        * khtml/html/htmltokenizer.cpp: Add using directives for the DOM classes used.
49759        * khtml/misc/htmlattrs.c:
49760        (getAttrName):
49761        * khtml/misc/htmlattrs.h: 
49762        * khtml/misc/htmltags.c:
49763        (getTagName):
49764        * khtml/misc/makeattrs: Some changes here to avoid pulling in the entire DOM namespace.
49765        Explicitly use DOM namespace scoping for DOMString.
49766        * khtml/misc/maketags: Explicitly use DOM namespace scoping for DOMString.
49767        * khtml/rendering/render_form.cpp: Pull in entire DOM namespace in using directive to
49768        make up for the removal of it from htmlattrs.
49769        * kwq/DOM-compat.h:
49770        * kwq/DOM.h:
49771        * kwq/DOM.mm: Added.
49772        * kwq/WebCoreDOM.h: Removed.
49773        * kwq/WebCoreDOM.mm: Removed.
49774
497752004-02-26  Maciej Stachowiak  <mjs@apple.com>
49776
49777        Reviewed by John.
49778
49779	<rdar://problem/3514733>: nil-deref in createHTMLEventListener at skiset.com
49780	<rdar://problem/3510676>: nil-deref of view in DocumentImpl::createHTMLEventListener at kirotv.com
49781	
49782	* khtml/xml/dom_docimpl.cpp:
49783        (DocumentImpl::createHTMLEventListener): Don't create the listener if there is no
49784	part. Also, get the part when going through the view. This prevents problems when
49785	handlers are set or removed from the onUnload handler.
49786
497872004-02-27  Maciej Stachowiak  <mjs@apple.com>
49788
49789        Reviewed by Dave.
49790
49791	- fixed <rdar://problem/3571356>: REGRESSION: Crash in isPointInsideSelection clicking on link in Apple web directory frame
49792	
49793        * khtml/khtml_part.cpp:
49794        (KHTMLPart::isPointInsideSelection): Don't crash if innerNode is
49795	NULL, as this can happen mousing over a frame that's in the
49796	process of loading and currently empty. Since such a frame
49797	obviously can't be inside the selection, this seems like a good
49798	enough fix.
49799	
498002004-02-26  David Hyatt  <hyatt@apple.com>
49801
49802	Fix for 3528839, wide table cut off because of shorts being used instead of ints.
49803	
49804        Reviewed by darin
49805
49806        * khtml/rendering/render_table.cpp:
49807        (RenderTableSection::layoutRows):
49808        (RenderTableCell::setWidth):
49809        * khtml/rendering/table_layout.cpp:
49810        (FixedTableLayout::calcWidthArray):
49811        (FixedTableLayout::calcMinMaxWidth):
49812        (AutoTableLayout::calcMinMaxWidth):
49813
498142004-02-26  Chris Blumenberg  <cblu@apple.com>
49815
49816	Fixed a few problems I found with reconstructed source while on my way to implementing "Mail Page".
49817
49818        Reviewed by hyatt.
49819
49820        * khtml/html/html_headimpl.cpp:
49821        (HTMLLinkElementImpl::isSubresourceURLAttribute): only true for stylesheet and icon
49822        * khtml/html/html_imageimpl.cpp:
49823        (HTMLAreaElementImpl::isURLAttribute): implement isURLAttribute not isSubresourceURLAttribute
49824        * khtml/html/html_imageimpl.h:
49825        * khtml/rendering/render_box.cpp:
49826        (RenderBox::dirtyLineBoxes): crasher fix that I found using libgmalloc
49827        * khtml/xml/dom_nodeimpl.cpp:
49828        (NodeImpl::recursive_toHTMLWithOptions): don't escape SCRIPT and TEXTAREA text, write close tags for tags that need them instead of relying on the children check 
49829        * kwq/WebCoreBridge.mm:
49830        (-[WebCoreBridge HTMLString:]): call recursive_toHTMLWithOptions on the first child of the document so <#document /> isn't part of the source
49831
498322004-02-26  David Hyatt  <hyatt@apple.com>
49833
49834	Convert render object widths from short to int.  There was a bug on this, but I can't find it in Radar.
49835	
49836        Reviewed by john
49837
49838        * khtml/rendering/render_applet.cpp:
49839        (RenderApplet::intrinsicWidth):
49840        (RenderEmptyApplet::intrinsicWidth):
49841        * khtml/rendering/render_applet.h:
49842        * khtml/rendering/render_block.cpp:
49843        (khtml::RenderBlock::calcMinMaxWidth):
49844        (khtml::RenderBlock::calcInlineMinMaxWidth):
49845        * khtml/rendering/render_block.h:
49846        * khtml/rendering/render_box.cpp:
49847        (RenderBox::contentWidth):
49848        (RenderBox::width):
49849        (RenderBox::containingBlockWidth):
49850        (RenderBox::calcReplacedWidth):
49851        (RenderBox::setStaticX):
49852        * khtml/rendering/render_box.h:
49853        (khtml::RenderBox::minWidth):
49854        (khtml::RenderBox::maxWidth):
49855        * khtml/rendering/render_br.h:
49856        (khtml::RenderBR::minWidth):
49857        (khtml::RenderBR::maxWidth):
49858        * khtml/rendering/render_canvas.cpp:
49859        (RenderCanvas::layout):
49860        * khtml/rendering/render_flexbox.cpp:
49861        (khtml::RenderFlexibleBox::calcMinMaxWidth):
49862        * khtml/rendering/render_frames.cpp:
49863        (RenderPart::intrinsicWidth):
49864        (RenderPartObject::layout):
49865        * khtml/rendering/render_frames.h:
49866        * khtml/rendering/render_image.cpp:
49867        (RenderImage::layout):
49868        (RenderImage::calcReplacedWidth):
49869        * khtml/rendering/render_image.h:
49870        * khtml/rendering/render_inline.cpp:
49871        (RenderInline::width):
49872        * khtml/rendering/render_inline.h:
49873        * khtml/rendering/render_layer.cpp:
49874        (RenderLayer::scrollWidth):
49875        * khtml/rendering/render_layer.h:
49876        (khtml::RenderLayer::width):
49877        (khtml::RenderLayer::setWidth):
49878        (khtml::RenderLayer::scrollXOffset):
49879        * khtml/rendering/render_line.h:
49880        (khtml::InlineBox::setWidth):
49881        (khtml::InlineBox::width):
49882        (khtml::InlineBox::setXPos):
49883        (khtml::InlineBox::xPos):
49884        * khtml/rendering/render_object.cpp:
49885        (RenderObject::containingBlockWidth):
49886        * khtml/rendering/render_object.h:
49887        (khtml::RenderObject::setStaticX):
49888        (khtml::RenderObject::contentWidth):
49889        (khtml::RenderObject::intrinsicWidth):
49890        (khtml::RenderObject::width):
49891        (khtml::RenderObject::offsetWidth):
49892        (khtml::RenderObject::minWidth):
49893        (khtml::RenderObject::maxWidth):
49894        * khtml/rendering/render_replaced.h:
49895        (khtml::RenderReplaced::intrinsicWidth):
49896        * khtml/rendering/render_table.cpp:
49897        (RenderTable::calcWidth):
49898        * khtml/rendering/render_table.h:
49899        * khtml/rendering/render_text.cpp:
49900        (RenderText::trimmedMinMaxWidth):
49901        (RenderText::width):
49902        * khtml/rendering/render_text.h:
49903        (khtml::RenderText::minWidth):
49904        (khtml::RenderText::maxWidth):
49905        * khtml/rendering/table_layout.cpp:
49906
499072004-02-26  Trey Matteson  <trey@apple.com>
49908
49909	3566668 - REGRESSION (125-128): autofill of popup lists is broken
49910	3571271 - autofill parsing of field names should treat _ as a word separator
49911
49912        Reviewed by Chris, Darin
49913
49914        * kwq/KWQComboBox.h:
49915        * kwq/KWQComboBox.mm:
49916        (QComboBox::populate):   New virtual method to force any lazy field population to happen.
49917        * kwq/KWQKHTMLPart.mm:
49918        (KWQKHTMLPart::matchLabelsAgainstElement):  Change _ to ' ', to make it a word separator.
49919        * kwq/KWQWidget.h:
49920        (QWidget::populate):  Implement populate to fill out the menu's data.
49921        * kwq/WebCoreBridge.mm:
49922        (viewForElement):    Make sure widget is populated before handing it out.
49923
499242004-02-26  Ken Kocienda  <kocienda@apple.com>
49925
49926        Reviewed by Chris
49927
49928        * WebCore.pbproj/project.pbxproj:
49929        * khtml/xml/dom2_rangeimpl.h: Now includes createInstance glue function as do the other
49930        khtml DOM objects that we reflect into ObjC.
49931        * kwq/DOM-compat.h: Added. Compatibility declarations for DOM SPI. Note that this file 
49932        is copied into WebKit by the build system as needed.
49933        * kwq/DOM.h: Added. New home for DOM SPI. Note that this file is copied into WebKit by the build 
49934        system as needed.
49935        * kwq/KWQKHTMLPart.mm:
49936        (KWQKHTMLPart::recordFormValue): Updated usage to new DOM SPI.
49937        * kwq/WebCoreBridge.h: Updated usage to new DOM SPI.
49938        * kwq/WebCoreBridge.mm: Updated usage to new DOM SPI. Needed to add DOM range impl include since
49939        includes jiggered around and this needed header was no longer included indirectly.
49940        (-[WebCoreBridge elementForView:]): Ditto.
49941        (inputElementFromDOMElement): Ditto.
49942        (formElementFromDOMElement): Ditto.
49943        (-[WebCoreBridge elementWithName:inForm:]): Ditto.
49944        (-[WebCoreBridge elementDoesAutoComplete:]): Ditto.
49945        (-[WebCoreBridge elementIsPassword:]): Ditto.
49946        (-[WebCoreBridge currentForm]): Ditto.
49947        (-[WebCoreBridge controlsInForm:]): Ditto.
49948        (-[WebCoreBridge searchForLabels:beforeElement:]): Ditto.
49949        (-[WebCoreBridge matchLabels:againstElement:]): Ditto.
49950        (-[WebCoreBridge elementAtPoint:]): Ditto.
49951        (-[WebCoreBridge DOMDocument]): Ditto.
49952        (-[WebCoreBridge setSelectionFrom:startOffset:to:endOffset:]): Ditto.
49953        (-[WebCoreBridge attributedStringFrom:startOffset:to:endOffset:]): Ditto.
49954        (-[WebCoreBridge selectionStart]): Ditto.
49955        (-[WebCoreBridge selectionEnd]): Ditto.
49956        * kwq/WebCoreDOM.h: New home for all private declarations needed for reflecting DOM into ObjC.
49957        * kwq/WebCoreDOM.mm: Added. New home for all implementations needed for reflecting DOM into ObjC.
49958        * kwq/WebCoreDOMDocument.mm: Removed. All ObjC DOM implementation now in WebCoreDOM.mm.
49959        * kwq/WebCoreDOMNode.mm: Removed. All ObjC DOM implementation now in WebCoreDOM.mm.
49960        * kwq/WebCoreDOMPrivate.h: Removed.
49961        * kwq/WebDOMDocument.h: Removed.
49962        * kwq/WebDOMElement.h: Removed.
49963        * kwq/WebDOMNode.h: Removed.
49964
499652004-02-25  John Sullivan  <sullivan@apple.com>
49966
49967        WebCore part of fix for <rdar://problem/3546370>: add a way to tab to menus, 
49968        checkmarks, and buttons without turning on Full Keyboard Acceess
49969
49970        Reviewed by Ken.
49971
49972        * kwq/KWQKHTMLPart.h:
49973        * kwq/KWQKHTMLPart.mm:
49974        (KWQKHTMLPart::tabsToAllControls):
49975        now checks for option-tab like tabsToLinks
49976        (KWQKHTMLPart::partForWidget):
49977        new method, extracted from bridgeForWidget
49978        (KWQKHTMLPart::bridgeForWidget):
49979        now calls extracted method
49980
49981        * kwq/KWQButton.mm:
49982        (-[KWQButton canBecomeKeyView]):
49983        overridden to handle our rules about full keyboard access, different
49984        than NSView's rules
49985        * kwq/KWQComboBox.mm:
49986        (-[KWQPopUpButton canBecomeKeyView]):
49987        ditto
49988        * kwq/KWQListBox.mm:
49989        (-[KWQTableView canBecomeKeyView]):
49990        ditto
49991        
499922004-02-24  Darin Adler  <darin@apple.com>
49993
49994        Reviewed by Ken.
49995
49996        * kwq/KWQString.mm: (QString::endsWith): Fixed broken end of string test, to get rid
49997        of false positives.
49998
49999        * WebCore-tests.exp: Added endsWith so it can be tested.
50000        * WebCore-combined.exp: Regenerated.
50001
500022004-02-23  David Hyatt  <hyatt@apple.com>
50003
50004	Fix for 3549772, hangs on border collapsing.
50005	
50006        Reviewed by darin
50007
50008        * khtml/rendering/render_object.cpp:
50009        (RenderObject::collectBorders):
50010        * khtml/rendering/render_object.h:
50011        * khtml/rendering/render_table.cpp:
50012        (RenderTable::paint):
50013        (compareBorders):
50014        (RenderTableCell::paint):
50015        (addBorderStyle):
50016        (RenderTableCell::collectBorders):
50017        * khtml/rendering/render_table.h:
50018
500192004-02-23  David Hyatt  <hyatt@apple.com>
50020
50021	Fix for 3558717, make sure that form elements that are removed from a document also remove themselves
50022	from the form.
50023
50024	Reviewed by darin.
50025	
50026        * khtml/html/html_formimpl.cpp:
50027        (HTMLGenericFormElementImpl::removedFromDocument):
50028        * khtml/html/html_formimpl.h:
50029        * khtml/xml/dom_nodeimpl.cpp:
50030        * khtml/xml/dom_nodeimpl.h:
50031
50032	Implement smarter line layout for faster typing and repainting when individual lines change.
50033
50034	Reviewed by kocienda.
50035	
50036	* khtml/khtmlview.cpp:
50037        (KHTMLViewPrivate::KHTMLViewPrivate):
50038        (KHTMLViewPrivate::~KHTMLViewPrivate):
50039        (KHTMLViewPrivate::reset):
50040        (KHTMLView::addRepaintInfo):
50041        (KHTMLView::layout):
50042        * khtml/khtmlview.h:
50043        * khtml/rendering/bidi.cpp:
50044        (khtml::Bidinext):
50045        (khtml::appendRun):
50046        (khtml::embed):
50047        (khtml::RenderBlock::constructLine):
50048        (khtml::RenderBlock::computeHorizontalPositionsForLine):
50049        (khtml::RenderBlock::computeVerticalPositionsForLine):
50050        (khtml::RenderBlock::bidiReorderLine):
50051        (khtml::buildCompactRuns):
50052        (khtml::RenderBlock::layoutInlineChildren):
50053        (khtml::RenderBlock::determineStartPosition):
50054        (khtml::RenderBlock::determineEndPosition):
50055        (khtml::RenderBlock::matchedEndLine):
50056        (khtml::RenderBlock::findNextLineBreak):
50057        * khtml/rendering/render_block.cpp:
50058        (khtml:::RenderFlow):
50059        (khtml::RenderBlock::layoutBlock):
50060        (khtml::RenderBlock::layoutBlockChildren):
50061        (khtml::RenderBlock::positionNewFloats):
50062        (khtml::RenderBlock::lowestPosition):
50063        (khtml::RenderBlock::rightmostPosition):
50064        (khtml::RenderBlock::leftmostPosition):
50065        * khtml/rendering/render_block.h:
50066        (khtml::RenderBlock::firstRootBox):
50067        (khtml::RenderBlock::lastRootBox):
50068        (khtml::RenderBlock::setLinesAppended):
50069        (khtml::RenderBlock::linesAppended):
50070        * khtml/rendering/render_box.cpp:
50071        (RenderBox::dirtyLineBoxes):
50072        (RenderBox::deleteLineBoxWrapper):
50073        (RenderBox::setInlineBoxWrapper):
50074        * khtml/rendering/render_box.h:
50075        * khtml/rendering/render_br.cpp:
50076        (RenderBR::createInlineBox):
50077        (RenderBR::position):
50078        * khtml/rendering/render_br.h:
50079        * khtml/rendering/render_container.cpp:
50080        (RenderContainer::appendChildNode):
50081        (RenderContainer::insertChildNode):
50082        * khtml/rendering/render_flexbox.cpp:
50083        (khtml::RenderFlexibleBox::placeChild):
50084        * khtml/rendering/render_flow.cpp:
50085        (RenderFlow::extractLineBox):
50086        (RenderFlow::attachLineBox):
50087        (RenderFlow::removeLineBox):
50088        (RenderFlow::dirtyLinesFromChangedChild):
50089        (RenderFlow::dirtyLineBoxes):
50090        (RenderFlow::createInlineBox):
50091        * khtml/rendering/render_flow.h:
50092        * khtml/rendering/render_line.cpp:
50093        (InlineBox::dirtyLineBoxes):
50094        (InlineBox::deleteLine):
50095        (InlineBox::extractLine):
50096        (InlineBox::attachLine):
50097        (InlineBox::adjustVerticalPosition):
50098        (InlineBox::root):
50099        (InlineBox::nextOnLineExists):
50100        (InlineBox::prevOnLineExists):
50101        (InlineFlowBox::removeChild):
50102        (InlineFlowBox::deleteLine):
50103        (InlineFlowBox::extractLine):
50104        (InlineFlowBox::attachLine):
50105        (InlineFlowBox::adjustVerticalPosition):
50106        (InlineFlowBox::verticallyAlignBoxes):
50107        (InlineFlowBox::adjustMaxAscentAndDescent):
50108        (RootInlineBox::adjustVerticalPosition):
50109        (RootInlineBox::childRemoved):
50110        * khtml/rendering/render_line.h:
50111        (khtml::InlineBox::m_extracted):
50112        (khtml::InlineBox::setExtracted):
50113        (khtml::InlineBox::object):
50114        (khtml::InlineBox::parent):
50115        (khtml::InlineBox::isDirty):
50116        (khtml::InlineBox::markDirty):
50117        (khtml::InlineFlowBox::prevFlowBox):
50118        (khtml::InlineFlowBox::nextFlowBox):
50119        (khtml::RootInlineBox::RootInlineBox):
50120        (khtml::RootInlineBox::nextRootBox):
50121        (khtml::RootInlineBox::prevRootBox):
50122        (khtml::RootInlineBox::setLineBreakInfo):
50123        (khtml::RootInlineBox::setLineBreakPos):
50124        (khtml::RootInlineBox::setBlockHeight):
50125        (khtml::RootInlineBox::setEndsWithBreak):
50126        (khtml::RootInlineBox::blockHeight):
50127        (khtml::RootInlineBox::endsWithBreak):
50128        (khtml::RootInlineBox::lineBreakObj):
50129        (khtml::RootInlineBox::lineBreakPos):
50130        * khtml/rendering/render_object.cpp:
50131        (RenderObject::repaintAfterLayoutIfNeeded):
50132        (RenderObject::repaintObjectsBeforeLayout):
50133        (RenderObject::dirtyLinesFromChangedChild):
50134        (RenderObject::createInlineBox):
50135        (RenderObject::dirtyLineBoxes):
50136        (RenderObject::setInlineBoxWrapper):
50137        (RenderObject::deleteLineBoxWrapper):
50138        * khtml/rendering/render_object.h:
50139        (khtml::RenderObject::RepaintInfo::m_repaintRect):
50140        * khtml/rendering/render_table.cpp:
50141        (RenderTableSection::layoutRows):
50142        * khtml/rendering/render_text.cpp:
50143        (InlineTextBox::deleteLine):
50144        (InlineTextBox::extractLine):
50145        (InlineTextBox::attachLine):
50146        (RenderText::RenderText):
50147        (RenderText::detach):
50148        (RenderText::extractTextBox):
50149        (RenderText::attachTextBox):
50150        (RenderText::removeTextBox):
50151        (RenderText::setTextWithOffset):
50152        (RenderText::setText):
50153        (RenderText::dirtyLineBoxes):
50154        (RenderText::createInlineBox):
50155        * khtml/rendering/render_text.h:
50156        (khtml::InlineTextBox::start):
50157        (khtml::InlineTextBox::end):
50158        (khtml::InlineTextBox::offsetRun):
50159        * khtml/xml/dom_textimpl.cpp:
50160        (CharacterDataImpl::setData):
50161        (CharacterDataImpl::appendData):
50162        (CharacterDataImpl::insertData):
50163        (CharacterDataImpl::deleteData):
50164        (CharacterDataImpl::replaceData):
50165        (TextImpl::splitText):
50166        * kwq/KWQRenderTreeDebug.cpp:
50167        (write):
50168
50169	RenderBlock contains two other fixes.  The first is a fix to rightmost/lowestPosition to properly add in
50170	margins to floats.
50171
50172	Reviewed by mjs
50173
50174	The second fix is to repair a bug in block-level replaced elements with margins.  If the floats they moved to
50175	dodge can fit in their margins, then they don't technically have to move at all.
50176
50177	Reviewed by john
50178
501792004-02-20  Maciej Stachowiak  <mjs@apple.com>
50180
50181        Reviewed by Darin.
50182
50183	<rdar://problem/3552346>: REGRESSION 100-125: nil-dereference in KHTMLPart::isPointInsideSelection (progz.ru, many other sites)
50184	
50185        * khtml/rendering/render_layer.cpp:
50186        (RenderLayer::nodeAtPointForLayer): To cover the case of
50187	positioned generated content, make sure to find an element if we
50188	don't have one yet when we get to the layer level.
50189
50190=== Safari-129 ===
50191
501922004-02-19  Chris Blumenberg  <cblu@apple.com>
50193
50194	Fixed: <rdar://problem/3563402>: when copying HTML, relative URLs should be made absolute
50195
50196	- Added isSubresourceURLAttribute to ElementImpl which is overridden by subclasses determine if an attribute refers to a subresource.
50197	- Added isURLAttribute to ElementImpl which is overridden by subclasses determine if an attribute refers to any kind of URL.
50198
50199        Reviewed by Dave.
50200
50201        * khtml/html/html_baseimpl.cpp:
50202        (HTMLBodyElementImpl::isSubresourceURLAttribute):
50203        (HTMLFrameElementImpl::isSubresourceURLAttribute):
50204        (HTMLIFrameElementImpl::openURL):
50205        (HTMLIFrameElementImpl::isSubresourceURLAttribute):
50206        * khtml/html/html_baseimpl.h:
50207        * khtml/html/html_formimpl.cpp:
50208        (HTMLFormElementImpl::isURLAttribute):
50209        * khtml/html/html_formimpl.h:
50210        * khtml/html/html_headimpl.cpp:
50211        (HTMLLinkElementImpl::isSubresourceURLAttribute):
50212        (HTMLScriptElementImpl::id):
50213        (HTMLScriptElementImpl::isSubresourceURLAttribute):
50214        * khtml/html/html_headimpl.h:
50215        * khtml/html/html_imageimpl.cpp:
50216        (HTMLImageElementImpl::isSubresourceURLAttribute):
50217        (HTMLAreaElementImpl::getRegion):
50218        (HTMLAreaElementImpl::isSubresourceURLAttribute):
50219        * khtml/html/html_imageimpl.h:
50220        * khtml/html/html_inlineimpl.cpp:
50221        (HTMLAnchorElementImpl::isURLAttribute):
50222        * khtml/html/html_inlineimpl.h:
50223        * khtml/html/html_objectimpl.cpp:
50224        (HTMLEmbedElementImpl::isSubresourceURLAttribute):
50225        (HTMLObjectElementImpl::isSubresourceURLAttribute):
50226        (HTMLParamElementImpl::parseHTMLAttribute):
50227        (HTMLParamElementImpl::isSubresourceURLAttribute):
50228        * khtml/html/html_objectimpl.h:
50229        * khtml/html/html_tableimpl.cpp:
50230        (HTMLTableElementImpl::isSubresourceURLAttribute):
50231        (HTMLTableCellElementImpl::attach):
50232        (HTMLTableCellElementImpl::isSubresourceURLAttribute):
50233        * khtml/html/html_tableimpl.h:
50234        * khtml/xml/dom2_rangeimpl.cpp:
50235        (RangeImpl::toHTMLWithOptions): take completeURLs and subresourceURLs arguments
50236        (RangeImpl::toHTML): call toHTMLWithOptions with default options
50237        * khtml/xml/dom2_rangeimpl.h:
50238        * khtml/xml/dom_elementimpl.cpp:
50239        (ElementImpl::isURLAttribute):
50240        (ElementImpl::isSubresourceURLAttribute):
50241        * khtml/xml/dom_elementimpl.h:
50242        * khtml/xml/dom_nodeimpl.cpp:
50243        (NodeImpl::recursive_toHTMLWithOptions): take completeURLs and subresourceURLs arguments
50244        (NodeImpl::recursive_toHTML): call recursive_toHTML with default options
50245        * khtml/xml/dom_nodeimpl.h:
50246        * kwq/WebCoreBridge.h:
50247        * kwq/WebCoreBridge.mm:
50248        (-[WebCoreBridge selectedHTML:]): renamed to return subresource URL strings
50249
502502004-02-17  Maciej Stachowiak  <mjs@apple.com>
50251
50252        Reviewed by Darin.
50253
50254	<rdar://problem/3537397>: REGRESSION (100-114): Return doesn't work in Japanese input method for some HomePage fields
50255        
50256        * kwq/KWQTextArea.mm:
50257        (-[KWQTextAreaTextView keyDown:]): Don't send events through DOM when there is marked
50258	text.
50259        (-[KWQTextAreaTextView keyUp:]): Ditto.
50260        * kwq/KWQTextField.mm:
50261        (-[KWQTextField textView:shouldHandleEvent:]): Ditto.
50262        (-[KWQSecureTextField textView:shouldHandleEvent:]): Ditto.
50263	* khtml/html/html_formimpl.cpp:
50264        (HTMLInputElementImpl::defaultEventHandler): No need to check for
50265	marked text on "return" any more, because we won't send key events
50266	through the DOM at all when there is marked text.
50267        * kwq/KWQLineEdit.h:
50268        * kwq/KWQLineEdit.mm: Removed haveMarkedText method, no longer
50269	used by anything.
50270
502712004-02-16  Chris Blumenberg  <cblu@apple.com>
50272
50273	WebCore side of pasting image data.
50274
50275        Reviewed by kocienda.
50276
50277        * khtml/editing/htmlediting.cpp:
50278        (PasteImageCommand::PasteImageCommand): new
50279        (PasteImageCommand::~PasteImageCommand): new
50280        (PasteImageCommand::impl): new
50281        * khtml/editing/htmlediting.h:
50282        (khtml::):
50283        * khtml/editing/htmlediting_impl.cpp:
50284        (EditCommandImpl::name): added support for PasteImageCommandID
50285        (CompositeEditCommandImpl::insertNodeAt): new, factored out from PasteHTMLCommandImpl::apply
50286        (PasteHTMLCommandImpl::apply): call insertNodeAt
50287        (PasteImageCommandImpl::PasteImageCommandImpl): new
50288        (PasteImageCommandImpl::~PasteImageCommandImpl): new
50289        (PasteImageCommandImpl::apply): new
50290        * khtml/editing/htmlediting_impl.h:
50291        * khtml/khtml_part.cpp:
50292        (KHTMLPart::pasteHTMLString): unchanged
50293        (KHTMLPart::pasteImage): new
50294        * khtml/khtml_part.h:
50295        * kwq/WebCoreBridge.h:
50296        * kwq/WebCoreBridge.mm:
50297        (-[WebCoreBridge pasteImageWithURL:]): new
50298
502992004-02-16  Darin Adler  <darin@apple.com>
50300
50301        Reviewed by Ken.
50302
50303        - Fixed some dynamic casts that Dirk complained about to use virtual functions instead.
50304          Since the virtual functions were already there, this is faster and better in most
50305          ways anyway.
50306
50307        * khtml/dom/dom2_events.cpp:
50308        (UIEvent::keyCode): Use virtual function instead of dynamic_cast.
50309        (UIEvent::charCode): Ditto.
50310        (UIEvent::pageX): Ditto.
50311        (UIEvent::pageY): Ditto.
50312        (UIEvent::layerX): Ditto.
50313        (UIEvent::layerY): Ditto.
50314        (UIEvent::which): Ditto.
50315
503162004-02-15  Darin Adler  <darin@apple.com>
50317
50318        Reviewed by Dave.
50319
50320        * WebCore.pbproj/project.pbxproj: Tweak build styles a bit, fixing OptimizedWithSymbols,
50321        and removing redundant settings of things that match defaults in other build styles.
50322
503232004-02-15  Darin Adler  <darin@apple.com>
50324
50325        Reviewed by Dave.
50326
50327        - fixed 3548533: crash in XMLHttpRequest::slotData using Orkut's rating system
50328
50329        * khtml/ecma/xmlhttprequest.cpp: (KJS::XMLHttpRequest::~XMLHttpRequest):
50330        Delete the QObject side, which has a side effect of disconnecting the
50331        signals which seem to be firing after the request is gone. There may be
50332        another way of addressing the crash by correcting some other problem with
50333        killing the job, but this demonstrably works and fixes a storage leak.
50334
503352004-02-12  Maciej Stachowiak  <mjs@apple.com>
50336
50337        Reviewed by John.
50338
50339	- redo visited link history checking for a 2% speed improvement
50340
50341        * kwq/KWQKHistoryProvider.mm:
50342        (KParts::HistoryProvider::contains): Don't make a KURL or an
50343	NSString. Punt on canonicalization and directly pass the internal
50344	Latin1 or unicode buffer.
50345        * kwq/KWQString.h:
50346        * kwq/KWQString.mm:
50347        (QString::hasFastLatin1): New method to check whether getting the
50348	latin1 buffer is fast (doesn't allocate).
50349        * kwq/WebCoreHistory.h: add new methods to look up by raw latin1
50350	or unicode buffer instead of NSString.
50351
50352=== Safari-128 ===
50353
503542004-02-12  David Hyatt  <hyatt@apple.com>
50355
50356	Fix for 3557850 and 3557607.  Make sure to setParent(0) on the body's link declaration, so that TreeShared
50357	will delete it.
50358	
50359        * khtml/html/html_baseimpl.cpp:
50360        (HTMLBodyElementImpl::~HTMLBodyElementImpl):
50361
503622004-02-12  Ken Kocienda  <kocienda@apple.com>
50363
50364        Reviewed by Hyatt
50365
50366	Refactored object design for edit commands into something that's
50367	starting to feel more solid. Added some accessors to edit 
50368	commands.
50369
50370        * WebCore.pbproj/project.pbxproj:
50371        * khtml/editing/htmlediting_impl.h: Added.
50372        * khtml/editing/htmlediting_impl.m: Added.
50373
503742004-02-11  David Hyatt  <hyatt@apple.com>
50375
50376	Fix for 3550005, 936 leaks when loading checkbox page of pain.  Make sure to nuke the inline box
50377	wrapper when detaching the RenderWidget.
50378
50379        * khtml/rendering/render_replaced.cpp:
50380        (RenderWidget::detach):
50381
503822004-02-11  David Hyatt  <hyatt@apple.com>
50383
50384	Add some more polish to ensure the ypos estimate is right.  Correct the clearing of images so that
50385	their top margins do not get added in when they clear the float because of having a large width.
50386	
50387        Reviewed by kocienda
50388
50389        * khtml/rendering/render_block.cpp:
50390        (khtml::RenderBlock::layoutBlockChildren):
50391        * layout-tests/fast/block/margin-collapse/101-expected.txt: Added.
50392        * layout-tests/fast/block/margin-collapse/101.html: Added.
50393        * layout-tests/fast/block/margin-collapse/102-expected.txt: Added.
50394        * layout-tests/fast/block/margin-collapse/102.html: Added.
50395
503962004-02-11  David Hyatt  <hyatt@apple.com>
50397
50398	Fix for 3556702, margin collapsing gets disabled when images spill out of the containing block.
50399	
50400        Reviewed by kocienda
50401
50402        * khtml/rendering/render_block.cpp:
50403        (khtml::RenderBlock::layoutBlockChildren):
50404
504052004-02-11  David Hyatt  <hyatt@apple.com>
50406
50407	Fix the .rows and .cells arrays on tables by merging with the KHTML trunk.  TH was being included
50408	as a row instead of as a cell.
50409	
50410        Reviewed by kocienda
50411
50412        * khtml/html/html_miscimpl.cpp:
50413        (HTMLCollectionImpl::calcLength):
50414        (HTMLCollectionImpl::getItem):
50415        (HTMLCollectionImpl::getNamedItem):
50416
504172004-02-11  David Hyatt  <hyatt@apple.com>
50418
50419	Remove my bogus refs of the elementSheet.  Fixes 3554213 and 3555467.
50420	
50421        * khtml/html/html_baseimpl.cpp:
50422        (HTMLBodyElementImpl::createLinkDecl):
50423        * khtml/html/html_tableimpl.cpp:
50424        (HTMLTableElementImpl::additionalAttributeStyleDecl):
50425        (HTMLTableElementImpl::getSharedCellDecl):
50426
504272004-02-11  David Hyatt  <hyatt@apple.com>
50428
50429	Fix for 3556037, regression where display:block generated content didn't work.
50430	
50431        Reviewed by kocienda
50432
50433        * khtml/rendering/render_block.cpp:
50434        (khtml::RenderBlock::setStyle):
50435        (khtml::RenderBlock::addChildToFlow):
50436        (khtml::RenderBlock::removeChild):
50437        (khtml::RenderBlock::renderName):
50438        * khtml/rendering/render_container.cpp:
50439        (RenderContainer::insertChildNode):
50440        (RenderContainer::removeLeftoverAnonymousBoxes):
50441        * khtml/rendering/render_inline.cpp:
50442        (RenderInline::splitFlow):
50443        (RenderInline::renderName):
50444        * khtml/rendering/render_list.cpp:
50445        (RenderListItem::updateMarkerLocation):
50446        * khtml/rendering/render_object.h:
50447        (khtml::RenderObject::isAnonymousBlock):
50448        * layout-tests/css1/pseudo/firstletter-expected.txt:
50449        * layout-tests/css1/pseudo/multiple_pseudo_elements-expected.txt:
50450        * layout-tests/fast/css-generated-content/002-expected.txt:
50451        * layout-tests/fast/css-generated-content/004-expected.txt:
50452        * layout-tests/fast/css-generated-content/005-expected.txt:
50453        * layout-tests/fast/css-generated-content/006-expected.txt:
50454        * layout-tests/fast/css-generated-content/007-expected.txt:
50455        * layout-tests/fast/css-generated-content/009-expected.txt:
50456        * layout-tests/fast/css-generated-content/010-expected.txt:
50457        * layout-tests/fast/selectors/039-expected.txt:
50458        * layout-tests/fast/selectors/039b-expected.txt:
50459        * layout-tests/fast/selectors/041-expected.txt:
50460        * layout-tests/fast/selectors/042-expected.txt:
50461        * layout-tests/fast/selectors/166a-expected.txt:
50462        * layout-tests/fast/selectors/168-expected.txt:
50463        * layout-tests/fast/selectors/168a-expected.txt:
50464        * layout-tests/fast/selectors/169-expected.txt:
50465        * layout-tests/fast/selectors/169a-expected.txt:
50466        * layout-tests/fast/text/firstline/002-expected.txt:
50467        * layout-tests/fast/text/firstline/003-expected.txt:
50468
504692004-02-11  Darin Adler   <darin@apple.com>
50470
50471        Reviewed by Richard.
50472
50473        * kwq/KWQTextCodec.mm:
50474        (KWQTextDecoder::convertLatin1):
50475	Fix off by one error.
50476
504772004-02-11  David Hyatt  <hyatt@apple.com>
50478
50479	Convert paint methods over to use a new PaintInfo struct.  Eliminate the paintObject method.
50480	
50481        Reviewed by kocienda
50482
50483        * khtml/rendering/render_block.cpp:
50484        (khtml::RenderBlock::paint):
50485        (khtml::RenderBlock::paintObject):
50486        (khtml::RenderBlock::paintFloats):
50487        * khtml/rendering/render_block.h:
50488        * khtml/rendering/render_box.cpp:
50489        (RenderBox::paint):
50490        (RenderBox::paintRootBoxDecorations):
50491        (RenderBox::paintBoxDecorations):
50492        * khtml/rendering/render_box.h:
50493        * khtml/rendering/render_br.h:
50494        (khtml::RenderBR::paint):
50495        * khtml/rendering/render_canvas.cpp:
50496        (RenderCanvas::paint):
50497        (RenderCanvas::paintBoxDecorations):
50498        * khtml/rendering/render_canvas.h:
50499        * khtml/rendering/render_flow.cpp:
50500        (RenderFlow::paintLineBoxBackgroundBorder):
50501        (RenderFlow::paintLineBoxDecorations):
50502        * khtml/rendering/render_flow.h:
50503        * khtml/rendering/render_form.cpp:
50504        (RenderFieldset::paintBoxDecorations):
50505        * khtml/rendering/render_form.h:
50506        * khtml/rendering/render_image.cpp:
50507        (RenderImage::paint):
50508        (RenderImage::updateFromElement):
50509        * khtml/rendering/render_image.h:
50510        * khtml/rendering/render_inline.cpp:
50511        (RenderInline::paint):
50512        * khtml/rendering/render_inline.h:
50513        * khtml/rendering/render_layer.cpp:
50514        (RenderLayer::paintLayer):
50515        * khtml/rendering/render_line.cpp:
50516        (InlineFlowBox::paintBackgroundAndBorder):
50517        (InlineFlowBox::paintDecorations):
50518        * khtml/rendering/render_line.h:
50519        (khtml::InlineRunBox::paintBackgroundAndBorder):
50520        (khtml::InlineRunBox::paintDecorations):
50521        * khtml/rendering/render_list.cpp:
50522        (RenderListItem::paint):
50523        (RenderListMarker::paint):
50524        * khtml/rendering/render_list.h:
50525        * khtml/rendering/render_object.cpp:
50526        (RenderObject::paint):
50527        * khtml/rendering/render_object.h:
50528        (khtml::RenderObject::PaintInfo::PaintInfo):
50529        (khtml::RenderObject::paintBoxDecorations):
50530        * khtml/rendering/render_replaced.cpp:
50531        (RenderReplaced::shouldPaint):
50532        (RenderWidget::paint):
50533        * khtml/rendering/render_replaced.h:
50534        * khtml/rendering/render_table.cpp:
50535        (RenderTable::paint):
50536        (RenderTable::paintBoxDecorations):
50537        (RenderTableSection::paint):
50538        (RenderTableCell::paint):
50539        (RenderTableCell::paintBoxDecorations):
50540        * khtml/rendering/render_table.h:
50541        * khtml/rendering/render_text.cpp:
50542        (RenderText::paint):
50543        * khtml/rendering/render_text.h:
50544
505452004-02-11  Ken Kocienda  <kocienda@apple.com>
50546
50547		Removed include file I was considering checking, but 
50548		decided against. Of course, this dangling include
50549		broke the build.
50550		
50551        * kwq/KWQKHTMLPart.mm
50552        * kwq/WebCoreBridge.mm
50553
505542004-02-10  Ken Kocienda  <kocienda@apple.com>
50555
50556        Reviewed by Hyatt
50557        
50558        Several big changes.
50559        
50560        EditSteps are now all EditCommands.
50561        Smart pointer for Shared classes added to shared.h.
50562		Some events, like text input events, are now coalesced.
50563		"Undo typing" now implemented, even though the name is not in the menu yet.
50564		Integer id's added to EditCommand and its subclasses.
50565		A bunch of cleanup in the EditCommand classes.
50566
50567        * khtml/editing/htmlediting.cpp:
50568        (EditCommand::EditCommand):
50569        (EditCommand::~EditCommand):
50570        (EditCommand::commandID):
50571        (EditCommand::reapply):
50572        (EditCommand::beginApply):
50573        (EditCommand::endApply):
50574        (EditCommand::beginUnapply):
50575        (EditCommand::endUnapply):
50576        (EditCommand::beginReapply):
50577        (EditCommand::endReapply):
50578        (EditCommand::currentSelection):
50579        (EditCommand::coalesce):
50580        (EditCommand::groupForUndo):
50581        (EditCommand::groupForRedo):
50582        (EditCommand::moveToStartingSelection):
50583        (EditCommand::moveToEndingSelection):
50584        (EditCommand::name):
50585        (CompositeEditCommand::CompositeEditCommand):
50586        (CompositeEditCommand::~CompositeEditCommand):
50587        (CompositeEditCommand::unapply):
50588        (CompositeEditCommand::reapply):
50589        (CompositeEditCommand::applyCommand):
50590        (CompositeEditCommand::insertNodeBefore):
50591        (CompositeEditCommand::insertNodeAfter):
50592        (CompositeEditCommand::appendNode):
50593        (CompositeEditCommand::removeNode):
50594        (CompositeEditCommand::splitTextNode):
50595        (CompositeEditCommand::joinTextNodes):
50596        (CompositeEditCommand::insertText):
50597        (CompositeEditCommand::deleteText):
50598        (CompositeEditCommand::moveSelectionTo):
50599        (CompositeEditCommand::deleteSelection):
50600        (InsertNodeBeforeCommand::InsertNodeBeforeCommand):
50601        (InsertNodeBeforeCommand::~InsertNodeBeforeCommand):
50602        (InsertNodeBeforeCommand::apply):
50603        (InsertNodeBeforeCommand::unapply):
50604        (AppendNodeCommand::AppendNodeCommand):
50605        (AppendNodeCommand::~AppendNodeCommand):
50606        (AppendNodeCommand::apply):
50607        (AppendNodeCommand::unapply):
50608        (RemoveNodeCommand::RemoveNodeCommand):
50609        (RemoveNodeCommand::~RemoveNodeCommand):
50610        (RemoveNodeCommand::apply):
50611        (RemoveNodeCommand::unapply):
50612        (ModifyTextNodeCommand::ModifyTextNodeCommand):
50613        (ModifyTextNodeCommand::~ModifyTextNodeCommand):
50614        (ModifyTextNodeCommand::splitTextNode):
50615        (ModifyTextNodeCommand::joinTextNodes):
50616        (SplitTextNodeCommand::SplitTextNodeCommand):
50617        (SplitTextNodeCommand::~SplitTextNodeCommand):
50618        (SplitTextNodeCommand::apply):
50619        (SplitTextNodeCommand::unapply):
50620        (JoinTextNodesCommand::JoinTextNodesCommand):
50621        (JoinTextNodesCommand::~JoinTextNodesCommand):
50622        (JoinTextNodesCommand::apply):
50623        (JoinTextNodesCommand::unapply):
50624        (InsertTextCommand::InsertTextCommand):
50625        (InsertTextCommand::~InsertTextCommand):
50626        (InsertTextCommand::apply):
50627        (InsertTextCommand::unapply):
50628        (DeleteTextCommand::DeleteTextCommand):
50629        (DeleteTextCommand::~DeleteTextCommand):
50630        (DeleteTextCommand::apply):
50631        (DeleteTextCommand::unapply):
50632        (MoveSelectionToCommand::MoveSelectionToCommand):
50633        (MoveSelectionToCommand::~MoveSelectionToCommand):
50634        (MoveSelectionToCommand::commandID):
50635        (MoveSelectionToCommand::apply):
50636        (MoveSelectionToCommand::unapply):
50637        (DeleteSelectionCommand::DeleteSelectionCommand):
50638        (DeleteSelectionCommand::~DeleteSelectionCommand):
50639        (DeleteSelectionCommand::apply):
50640        (InputTextCommand::InputTextCommand):
50641        (InputTextCommand::~InputTextCommand):
50642        (InputTextCommand::commandID):
50643        (InputTextCommand::isLineBreak):
50644        (InputTextCommand::isSpace):
50645        (InputTextCommand::apply):
50646        (InputTextCommand::coalesce):
50647        (InputTextCommand::groupForUndo):
50648        (InputTextCommand::groupForRedo):
50649        (InputTextCommand::execute):
50650        (DeleteKeyCommand::DeleteKeyCommand):
50651        (DeleteKeyCommand::~DeleteKeyCommand):
50652        (DeleteKeyCommand::commandID):
50653        (DeleteKeyCommand::apply):
50654        (DeleteKeyCommand::groupForUndo):
50655        (DeleteKeyCommand::groupForRedo):
50656        (PasteHTMLCommand::PasteHTMLCommand):
50657        (PasteHTMLCommand::~PasteHTMLCommand):
50658        (PasteHTMLCommand::apply):
50659        * khtml/editing/htmlediting.h:
50660        (khtml::):
50661        (khtml::EditCommand::):
50662        (khtml::EditCommand::document):
50663        (khtml::EditCommand::state):
50664        (khtml::EditCommand::setState):
50665        (khtml::SplitTextNodeCommand::joinState):
50666        (khtml::SplitTextNodeCommand::splitState):
50667        (khtml::JoinTextNodesCommand::joinState):
50668        (khtml::JoinTextNodesCommand::splitState):
50669        * khtml/khtml_part.cpp:
50670        (KHTMLPart::openURL):
50671        (KHTMLPart::deleteSelection):
50672        (KHTMLPart::applyCommand):
50673        (KHTMLPart::undoEditing):
50674        (KHTMLPart::redoEditing):
50675        (KHTMLPart::pasteHTMLString):
50676        * khtml/khtml_part.h:
50677        * khtml/khtmlpart_p.h:
50678        (KHTMLPartPrivate::~KHTMLPartPrivate):
50679        * khtml/misc/shared.h:
50680        (khtml::SharedPtr::SharedPtr):
50681        (khtml::SharedPtr::~SharedPtr):
50682        (khtml::SharedPtr::isEmpty):
50683        (khtml::SharedPtr::get):
50684        (khtml::SharedPtr::operator*):
50685        (khtml::SharedPtr::operator->):
50686        (khtml::SharedPtr::operator!):
50687        (khtml::SharedPtr::operator==):
50688        (khtml::::operator):
50689        (khtml::operator!=):
50690        * khtml/xml/dom_elementimpl.cpp:
50691        (ElementImpl::defaultEventHandler):
50692        * kwq/KWQKHTMLPart.h:
50693        * kwq/KWQKHTMLPart.mm:
50694        (KWQKHTMLPart::registerCommandForUndo):
50695        (KWQKHTMLPart::registerCommandForRedo):
50696        (KWQKHTMLPart::clearUndoRedoOperations):
50697        * kwq/WebCoreBridge.h:
50698        * kwq/WebCoreBridge.mm:
50699        (-[WebCoreBridge undoEditing:]):
50700        (-[WebCoreBridge redoEditing:]):
50701
507022004-02-10  David Hyatt  <hyatt@apple.com>
50703
50704	Eliminate the double-completion and double-parsing of KURLs for every single image request.
50705	
50706        * khtml/misc/loader.cpp:
50707        (DocLoader::requestImage):
50708        (Cache::requestImage):
50709        * khtml/misc/loader.h:
50710
507112004-02-10  David Hyatt  <hyatt@apple.com>
50712
50713	Merged patch that fixes clear:both for floats.  This patch comes from the KHTML tree.
50714	
50715        * khtml/rendering/render_block.cpp:
50716        (khtml::RenderBlock::positionNewFloats):
50717        * layout-tests/fast/block/float/029-expected.txt: Added.
50718        * layout-tests/fast/block/float/029.html: Added.
50719
507202004-02-10  David Hyatt  <hyatt@apple.com>
50721
50722	Fix crasher in list code caused by incorrect style deallocation.  Regression from the
50723	arena changes for RenderStyles.
50724	
50725        Reviewed by darin
50726
50727        * khtml/rendering/render_object.cpp:
50728        (RenderObject::remove):
50729        (RenderObject::arenaDelete):
50730
507312004-02-10  David Hyatt  <hyatt@apple.com>
50732
50733	Fix for osnews.com's wacky layout problem.  Put back in the check for isEmpty.
50734	
50735        Reviewed by darin
50736
50737        * khtml/html/htmltokenizer.cpp:
50738        (khtml::HTMLTokenizer::scriptHandler):
50739
507402004-02-10  David Hyatt  <hyatt@apple.com>
50741
50742	Fix for the bad background color on abcnews.com.  Make cloning optionally drop the style declarations.
50743
50744        * khtml/html/html_elementimpl.cpp:
50745        (HTMLAttributeImpl::clone):
50746        * khtml/html/html_elementimpl.h:
50747        * khtml/html/htmlparser.cpp:
50748        (KHTMLParser::insertNode):
50749        * khtml/xml/dom_elementimpl.cpp:
50750        (AttributeImpl::clone):
50751        * khtml/xml/dom_elementimpl.h:
50752
507532004-02-10  Chris Blumenberg  <cblu@apple.com>
50754
50755	Fixed: <rdar://problem/3552545>: Cut, Paste and Delete must support Undo and Redo
50756
50757        Reviewed by kocienda.
50758
50759        * khtml/editing/htmlediting.cpp:
50760        (ModifyTextNodeStep::splitTextNode): ken's fix that fixes a problem with unapply
50761        (ModifyTextNodeStep::joinTextNodes): my fix that fixes a problem with unapply
50762        (PasteHTMLCommand::PasteHTMLCommand): new
50763        (PasteHTMLCommand::apply): moved from dom_docimpl.cpp and improved
50764        * khtml/editing/htmlediting.h:
50765        (khtml::PasteHTMLCommand::~PasteHTMLCommand):
50766        * khtml/khtml_part.cpp:
50767        (KHTMLPart::deleteSelection): new, create and applies a DeleteTextCommand
50768        (KHTMLPart::pasteHTMLString): new, create and applies a PasteHTMLCommand
50769        * khtml/khtml_part.h:
50770        * khtml/xml/dom_docimpl.cpp: moved paste code to htmlediting.cpp
50771        * khtml/xml/dom_docimpl.h:
50772        * kwq/WebCoreBridge.mm:
50773        (-[WebCoreBridge pasteHTMLString:]): call pasteHTMLString on the part instead of the bridge
50774        (-[WebCoreBridge deleteSelection]): call deleteSelection on the part instead of the bridge
50775
507762004-02-10  David Hyatt  <hyatt@apple.com>
50777
50778	Fix crash on abcnews.com by adding isEmpty checks before dereferencing.
50779	
50780        * khtml/html/htmltokenizer.cpp:
50781        (khtml::HTMLTokenizer::parseTag):
50782
507832004-02-10  David Hyatt  <hyatt@apple.com>
50784
50785	Improve attribute parsing of mapped attributes (that map to CSS properties) so that they can pull the
50786	style declarations from a global cache.
50787
50788	Made RenderStyles be arena allocated as well.
50789	
50790        Reviewed by darin
50791
50792        * khtml/css/css_valueimpl.cpp:
50793        (CSSImageValueImpl::CSSImageValueImpl):
50794        (CSSImageValueImpl::image):
50795        * khtml/css/css_valueimpl.h:
50796        * khtml/css/cssstyleselector.cpp:
50797        (khtml::CSSStyleSelector::initForStyleResolve):
50798        (khtml::CSSStyleSelector::styleForElement):
50799        (khtml::CSSStyleSelector::pseudoStyleForElement):
50800        (khtml::CSSStyleSelector::applyProperty):
50801        * khtml/css/cssstyleselector.h:
50802        * khtml/css/html4.css:
50803        * khtml/css/quirks.css:
50804        * khtml/dom/dom_element.cpp:
50805        (Element::style):
50806        * khtml/dom/html_element.cpp:
50807        * khtml/dom/html_element.h:
50808        * khtml/html/html_baseimpl.cpp:
50809        (HTMLBodyElementImpl::HTMLBodyElementImpl):
50810        (HTMLBodyElementImpl::mapToEntry):
50811        (HTMLBodyElementImpl::parseHTMLAttribute):
50812        (HTMLBodyElementImpl::insertedIntoDocument):
50813        (HTMLFrameElementImpl::parseHTMLAttribute):
50814        (HTMLFrameSetElementImpl::parseHTMLAttribute):
50815        (HTMLIFrameElementImpl::mapToEntry):
50816        (HTMLIFrameElementImpl::parseHTMLAttribute):
50817        * khtml/html/html_baseimpl.h:
50818        * khtml/html/html_blockimpl.cpp:
50819        (HTMLDivElementImpl::mapToEntry):
50820        (HTMLDivElementImpl::parseHTMLAttribute):
50821        (HTMLHRElementImpl::mapToEntry):
50822        (HTMLHRElementImpl::parseHTMLAttribute):
50823        (HTMLParagraphElementImpl::mapToEntry):
50824        (HTMLParagraphElementImpl::parseHTMLAttribute):
50825        (HTMLMarqueeElementImpl::mapToEntry):
50826        (HTMLMarqueeElementImpl::parseHTMLAttribute):
50827        (HTMLLayerElementImpl::HTMLLayerElementImpl):
50828        (HTMLLayerElementImpl::id):
50829        * khtml/html/html_blockimpl.h:
50830        * khtml/html/html_documentimpl.cpp:
50831        (HTMLDocumentImpl::determineParseMode):
50832        * khtml/html/html_documentimpl.h:
50833        * khtml/html/html_elementimpl.cpp:
50834        (CSSMappedAttributeDeclarationImpl::~CSSMappedAttributeDeclarationImpl):
50835        (HTMLElementImpl::getMappedAttributeDecl):
50836        (HTMLElementImpl::setMappedAttributeDecl):
50837        (HTMLElementImpl::removeMappedAttributeDecl):
50838        (HTMLAttributeImpl::~HTMLAttributeImpl):
50839        (HTMLAttributeImpl::clone):
50840        (m_mappedAttributeCount):
50841        (HTMLNamedAttrMapImpl::clearAttributes):
50842        (HTMLElementImpl::HTMLElementImpl):
50843        (HTMLElementImpl::~HTMLElementImpl):
50844        (HTMLElementImpl::createAttribute):
50845        (HTMLElementImpl::createInlineStyleDecl):
50846        (HTMLElementImpl::attributeChanged):
50847        (HTMLElementImpl::mapToEntry):
50848        (HTMLElementImpl::parseHTMLAttribute):
50849        (HTMLElementImpl::additionalAttributeStyleDecl):
50850        (isHexDigit):
50851        (toHex):
50852        (HTMLElementImpl::addCSSProperty):
50853        (HTMLElementImpl::addCSSStringProperty):
50854        (HTMLElementImpl::addCSSImageProperty):
50855        (HTMLElementImpl::addCSSLength):
50856        (HTMLElementImpl::addHTMLColor):
50857        (HTMLElementImpl::createMappedDecl):
50858        (HTMLElementImpl::addHTMLAlignment):
50859        (HTMLElementImpl::setContentEditable):
50860        * khtml/html/html_elementimpl.h:
50861        (DOM::):
50862        (DOM::CSSMappedAttributeDeclarationImpl::CSSMappedAttributeDeclarationImpl):
50863        (DOM::CSSMappedAttributeDeclarationImpl::setMappedState):
50864        (DOM::HTMLAttributeImpl::HTMLAttributeImpl):
50865        (DOM::HTMLAttributeImpl::decl):
50866        (DOM::HTMLAttributeImpl::setDecl):
50867        (DOM::HTMLNamedAttrMapImpl::hasMappedAttributes):
50868        (DOM::HTMLNamedAttrMapImpl::declRemoved):
50869        (DOM::HTMLNamedAttrMapImpl::declAdded):
50870        (DOM::HTMLNamedAttrMapImpl::attributeItem):
50871        (DOM::HTMLElementImpl::hasMappedAttributes):
50872        (DOM::HTMLElementImpl::htmlAttributes):
50873        (DOM::HTMLElementImpl::inlineStyleDecl):
50874        * khtml/html/html_formimpl.cpp:
50875        (HTMLFormElementImpl::parseHTMLAttribute):
50876        (HTMLGenericFormElementImpl::parseHTMLAttribute):
50877        (HTMLButtonElementImpl::parseHTMLAttribute):
50878        (HTMLInputElementImpl::setType):
50879        (HTMLInputElementImpl::mapToEntry):
50880        (HTMLInputElementImpl::parseHTMLAttribute):
50881        (HTMLInputElementImpl::attach):
50882        (HTMLLabelElementImpl::parseHTMLAttribute):
50883        (HTMLSelectElementImpl::parseHTMLAttribute):
50884        (HTMLKeygenElementImpl::parseHTMLAttribute):
50885        (HTMLOptGroupElementImpl::parseHTMLAttribute):
50886        (HTMLOptionElementImpl::parseHTMLAttribute):
50887        (HTMLTextAreaElementImpl::parseHTMLAttribute):
50888        (HTMLIsIndexElementImpl::parseHTMLAttribute):
50889        * khtml/html/html_formimpl.h:
50890        * khtml/html/html_headimpl.cpp:
50891        (HTMLBaseElementImpl::parseHTMLAttribute):
50892        (HTMLLinkElementImpl::parseHTMLAttribute):
50893        (HTMLMetaElementImpl::parseHTMLAttribute):
50894        (HTMLStyleElementImpl::parseHTMLAttribute):
50895        * khtml/html/html_headimpl.h:
50896        * khtml/html/html_imageimpl.cpp:
50897        (HTMLImageElementImpl::mapToEntry):
50898        (HTMLImageElementImpl::parseHTMLAttribute):
50899        (HTMLMapElementImpl::parseHTMLAttribute):
50900        (HTMLAreaElementImpl::parseHTMLAttribute):
50901        * khtml/html/html_imageimpl.h:
50902        * khtml/html/html_inlineimpl.cpp:
50903        (HTMLAnchorElementImpl::parseHTMLAttribute):
50904        (HTMLBRElementImpl::mapToEntry):
50905        (HTMLBRElementImpl::parseHTMLAttribute):
50906        (HTMLFontElementImpl::mapToEntry):
50907        (HTMLFontElementImpl::parseHTMLAttribute):
50908        * khtml/html/html_inlineimpl.h:
50909        * khtml/html/html_listimpl.cpp:
50910        (HTMLUListElementImpl::mapToEntry):
50911        (HTMLUListElementImpl::parseHTMLAttribute):
50912        (HTMLOListElementImpl::mapToEntry):
50913        (HTMLOListElementImpl::parseHTMLAttribute):
50914        (HTMLLIElementImpl::mapToEntry):
50915        (HTMLLIElementImpl::parseHTMLAttribute):
50916        * khtml/html/html_listimpl.h:
50917        * khtml/html/html_objectimpl.cpp:
50918        (HTMLAppletElementImpl::mapToEntry):
50919        (HTMLAppletElementImpl::parseHTMLAttribute):
50920        (HTMLEmbedElementImpl::HTMLEmbedElementImpl):
50921        (HTMLEmbedElementImpl::mapToEntry):
50922        (HTMLEmbedElementImpl::parseHTMLAttribute):
50923        (HTMLEmbedElementImpl::attach):
50924        (HTMLObjectElementImpl::mapToEntry):
50925        (HTMLObjectElementImpl::parseHTMLAttribute):
50926        (HTMLParamElementImpl::parseHTMLAttribute):
50927        * khtml/html/html_objectimpl.h:
50928        * khtml/html/html_tableimpl.cpp:
50929        (HTMLTableElementImpl::HTMLTableElementImpl):
50930        (HTMLTableElementImpl::~HTMLTableElementImpl):
50931        (HTMLTableElementImpl::mapToEntry):
50932        (HTMLTableElementImpl::parseHTMLAttribute):
50933        (HTMLTableElementImpl::additionalAttributeStyleDecl):
50934        (HTMLTableElementImpl::getSharedCellDecl):
50935        (HTMLTableElementImpl::attach):
50936        (HTMLTablePartElementImpl::mapToEntry):
50937        (HTMLTablePartElementImpl::parseHTMLAttribute):
50938        (HTMLTableCellElementImpl::mapToEntry):
50939        (HTMLTableCellElementImpl::parseHTMLAttribute):
50940        (HTMLTableCellElementImpl::additionalAttributeStyleDecl):
50941        (HTMLTableCellElementImpl::attach):
50942        (HTMLTableColElementImpl::mapToEntry):
50943        (HTMLTableColElementImpl::parseHTMLAttribute):
50944        (HTMLTableCaptionElementImpl::mapToEntry):
50945        (HTMLTableCaptionElementImpl::parseHTMLAttribute):
50946        * khtml/html/html_tableimpl.h:
50947        * khtml/html/htmlparser.cpp:
50948        (KHTMLParser::insertNode):
50949        (KHTMLParser::getElement):
50950        * khtml/html/htmltokenizer.h:
50951        (khtml::Token::addAttribute):
50952        * khtml/misc/htmlattrs.c:
50953        (hash_attr):
50954        (findAttr):
50955        * khtml/misc/htmlattrs.h:
50956        * khtml/misc/htmlattrs.in:
50957        * khtml/rendering/render_block.cpp:
50958        (khtml::RenderBlock::setStyle):
50959        (khtml::RenderBlock::updateFirstLetter):
50960        * khtml/rendering/render_container.cpp:
50961        (RenderContainer::addChild):
50962        (RenderContainer::updatePseudoChild):
50963        * khtml/rendering/render_frames.cpp:
50964        (RenderPartObject::updateWidget):
50965        * khtml/rendering/render_inline.cpp:
50966        (RenderInline::addChildToFlow):
50967        * khtml/rendering/render_list.cpp:
50968        (RenderListItem::setStyle):
50969        * khtml/rendering/render_object.cpp:
50970        (RenderObject::~RenderObject):
50971        (RenderObject::createAnonymousBlock):
50972        (RenderObject::setStyle):
50973        (RenderObject::remove):
50974        * khtml/rendering/render_style.cpp:
50975        (throw):
50976        (RenderStyle::operator delete):
50977        (RenderStyle::arenaDelete):
50978        (RenderStyle::RenderStyle):
50979        (RenderStyle::~RenderStyle):
50980        (RenderStyle::addPseudoStyle):
50981        * khtml/rendering/render_style.h:
50982        (khtml::RenderStyle::ref):
50983        (khtml::RenderStyle::deref):
50984        (khtml::RenderStyle::hasOneRef):
50985        (khtml::RenderStyle::refCount):
50986        * khtml/rendering/render_table.cpp:
50987        (RenderTable::addChild):
50988        (RenderTableSection::addChild):
50989        (RenderTableRow::addChild):
50990        * khtml/xml/dom_docimpl.cpp:
50991        (DocumentImpl::DocumentImpl):
50992        (DocumentImpl::createAttribute):
50993        (DocumentImpl::recalcStyle):
50994        * khtml/xml/dom_docimpl.h:
50995        * khtml/xml/dom_elementimpl.cpp:
50996        (AttributeImpl::clone):
50997        (AttrImpl::setValue):
50998        (AttrImpl::cloneNode):
50999        (ElementImpl::setAttribute):
51000        (ElementImpl::createAttribute):
51001        (ElementImpl::setAttributeMap):
51002        (ElementImpl::recalcStyle):
51003        (NamedAttrMapImpl::~NamedAttrMapImpl):
51004        (NamedAttrMapImpl::operator=):
51005        (NamedAttrMapImpl::addAttribute):
51006        (NamedAttrMapImpl::removeAttribute):
51007        * khtml/xml/dom_elementimpl.h:
51008        (DOM::AttributeImpl::~AttributeImpl):
51009        (DOM::ElementImpl::attributeChanged):
51010        (DOM::NamedAttrMapImpl::length):
51011        * khtml/xml/dom_nodeimpl.cpp:
51012
510132004-02-09  Darin Adler  <darin@apple.com>
51014
51015        Reviewed by Dave.
51016
51017        * khtml/html/html_formimpl.cpp: (HTMLGenericFormElementImpl::defaultEventHandler):
51018        Removed bogus extra setActive/focus code. Dave says this is no longer needed for
51019        the active state handling, and the focus call caused a problem, although I can't
51020        find the bug report at the moment.
51021
510222004-02-08  Darin Adler  <darin@apple.com>
51023
51024        Reviewed by Don.
51025
51026        - fixed an assertion failure when putting up Java applets caused by my last change
51027
51028        * kwq/KWQKJavaAppletWidget.mm: (KJavaAppletWidget::KJavaAppletWidget):
51029        Don't try to get x() and y(). They are always zero because the widget is just being
51030        created at this point and has not yet been positioned; trying to get them
51031        leads to an assertion because there is no NSView until we call setView().
51032        Before my change, there was a KWQView object at 0,0 that was released when we called
51033        setView, which is why the problem is new.
51034
510352004-02-08  Darin Adler  <darin@apple.com>
51036
51037        Reviewed by Dave.
51038
51039        - fixed things seen in the profile, for a total speedup of 4% on cvs-base
51040        - fixed some layout regressions from my last speedup due to text measurement inconsistencies
51041
51042        * WebCorePrefix.h: Add a workaround for a bug in our system headers that prevents the <ctype.h>
51043        macros from working right in C+code that uses the <cctype> header.
51044
51045        * khtml/css/cssstyleselector.cpp:
51046        (khtml::checkPseudoState): Use prepend instead of operator here. Will probably be obviated if
51047        someone fixes the checkPseudoState problem.
51048        (khtml::colorForCSSValue): Get rid of all the code that uses QPalette; it wasn't doing any good
51049        in Safari. Instead, hardcode the UI colors.
51050
51051        * kwq/KWQChar.mm:
51052        (QChar::isDigitNonASCII): Non-inline part. The ASCII case is handled with an inline now.
51053        (QChar::isLetterNonASCII): Ditto.
51054        (QChar::isNumberNonASCII): Ditto.
51055        (QChar::isLetterOrNumberNonASCII): Ditto.
51056        (QChar::lowerNonASCII): Ditto.
51057        (QChar::upperNonASCII): Ditto.
51058        (QChar::digitValueNonASCII): Ditto.
51059
51060        * kwq/KWQColorGroup.mm: Put all roles base inside #if, since we don't need them, and copying
51061        the color group and palette was making things slow.
51062
51063        * kwq/KWQComboBox.h: Remove KWQComboBoxAdapter, not needed any more.
51064        * kwq/KWQComboBox.mm:
51065        (QComboBox::QComboBox): Remove KWQComboBoxAdapter, not needed any more.
51066        (QComboBox::~QComboBox): Ditto.
51067        (QComboBox::sizeHint): Turn off rounding; we use that in web text, but not in widgets.
51068        (-[KWQPopUpButton action:]): Moved the action method here.
51069
51070        * kwq/KWQLineEdit.mm: (QLineEdit::sizeForCharacterWidth): Turn off rounding. We use it in web
51071        page text, but not in widgets.
51072        * kwq/KWQListBox.mm:
51073        (QListBox::sizeForNumberOfLines): Ditto.
51074        (-[KWQTableView drawRow:clipRect:]): Ditto.
51075
51076        * kwq/KWQKURL.mm:
51077        (KURL::KURL): Added code to put the "file:" in front of a path without making a QString.
51078        (hasSlashDotOrDotDot): Added. Faster than two calls to strstr.
51079        (matchLetter): Added. Faster than tolower calls on each letter.
51080        (KURL::parse): Changed to use matchLetter and hasSlashDotOrDotDot.
51081
51082        * kwq/KWQPalette.h: Remove all roles except base, and all groups except active, since we don't
51083        need them, and copying the color group and palette was making things slow.
51084        * kwq/KWQPalette.mm: Ditto.
51085
51086        * kwq/KWQRegExp.mm: (QRegExp::match): Fixed logic so we don't create and destroy a QCString
51087        in the fast case. Also avoid UTF-8/UTF-16 offset mapping.
51088
51089        * kwq/KWQString.h:
51090        (QChar::isDigit): Add inline section for ASCII.
51091        (QChar::isLetter): Ditto.
51092        (QChar::isNumber): Ditto.
51093        (QChar::isLetterOrNumber): Ditto.
51094        (QChar::digitValue): Ditto.
51095        (QChar::lower): Ditto.
51096        (QChar::upper): Ditto.
51097        (QString::utf8): Add a new version that returns the length; used by QRegExp.
51098        (QString::operator+=): Call a new append function.
51099        * kwq/KWQString.mm:
51100        (ucstrcmp): Made this function inline.
51101        (equal): Added, replacing various strcmp functions.
51102        (equalCaseInsensitive): Ditto.
51103        (ok_in_base): Changed to use <ctype.h> isdigit and isalpha instead of QChar functions.
51104        (QString::detachInternal): Moved up so it will be inlined.
51105        (QString::~QString): Streamlined a little.
51106        (QString::utf8): Changed to return the length.
51107        (QString::find): Use unicode() instead of cell() in various places. Also refined a faster
51108        version of the one that takes a char *.
51109        (QString::contains): Changed all of the overloads to have structure that's more similar,
51110        and made them slightly faster too.
51111        (QString::isAllLatin1): Added.
51112        (QString::copyLatin1): Added. Lets you get the string as a char * buffer without changing
51113        the string itself into that format.
51114        (QString::toLong): Changed to use <ctype.h> isdigit instead of QChar function.
51115        (QString::toULong): Ditto.
51116        (QString::setUnicode): Call the new detachAndDiscardCharacters; not implemented yet.
51117        (QString::setLatin1): Call the new detachAndDiscardCharacters; not implemented yet.
51118        (QString::sprintf): Call the new detachAndDiscardCharacters; not implemented yet.
51119        (QString::insert): Remove one memmove call for the case that appends at the end.
51120        (QString::detach): Change code to use the internal data if we can; saves at destructor time.
51121        (QString::detachAndDiscardCharacters): Added. Placeholder for now that just calls detach().
51122        (QString::setLength): Optimize the setLength(0) case.
51123        (QString::fill): Call the new detachAndDiscardCharacters; not implemented yet.
51124        (QString::append): Renamed from operator+=, which now simply calls append().
51125        (QString::reserve): Added. Useful when building up a string, like in QTextCodec.
51126
51127        * WebCore-tests.exp: Added new function names for QChar.
51128        * WebCore-combined.exp: Updated.
51129
51130        * kwq/KWQTextCodec.mm:
51131        (KWQTextDecoder::convertLatin1): Added. Since this is the most common encoding, and very
51132        easy to decode (built into QString, in fact), best to do it as a special case, not with TEC.
51133        (KWQTextDecoder::convertUTF16): Added a reserve() call for better performance and made the
51134        stack buffer larger.
51135        (KWQTextDecoder::convertUsingTEC): Added a reserve() call for better performance and made the
51136        stack buffer larger.
51137        (KWQTextDecoder::convert): Added a switch statement and convertLatin1 case.
51138
51139        * kwq/KWQView.h: Removed the KWQView class.
51140        * kwq/KWQView.mm: Removed.
51141        * WebCore.pbproj/project.pbxproj: Removed KWQView.mm.
51142
51143        * kwq/KWQWidget.h: Changed name of QWidgetPrivate to KWQWidgetPrivate.
51144        * kwq/KWQWidget.mm:
51145        (QWidget::QWidget): Got rid of code that makes a KWQView when no view is passed in. We were
51146        creating and destroying extra views because of this.
51147        (QWidget::setFrameGeometry): Only call getOuterView() once, not three times. Also, don't do
51148        any work at all if the frame is already correct.
51149        * khtml/khtmlview.cpp: (KHTMLView::init): Removed a call that will hit an assertion due to the
51150        way a new KHTMLView does not yet have an NSView.
51151
51152        * kwq/WebCoreTextRenderer.h: Broke applyRounding into applyRunRounding and applyWordRounding.
51153        * kwq/WebCoreTextRendererFactory.m: (WebCoreInitializeEmptyTextStyle): Initialize both rounding
51154        flags on.
51155
511562004-02-07  Darin Adler  <darin@apple.com>
51157
51158        Reviewed by Dave.
51159
51160        - switched KWQComboBox, KWQListBox, and KWQLineEdit to use WebKit text measuring/rendering instead of AppKit
51161        - fixed width calculation for KWQListBox that made them too wide (the computation used the width of standard scroll
51162          bars rather than the small scroll bars they actually use)
51163
51164        Speeds up cvs-base by 5%!
51165
51166        * khtml/rendering/render_form.cpp: (RenderSelect::updateFromElement):
51167        Get rid of beginBatchInsert, and rename endBatchInsert. Use our own "append" calls instead of "insert" calls.
51168
51169        * kwq/KWQComboBox.h: Replace insertItem with appendItem. Add a new populateMenu call (for internal use,
51170        but public). Change width member to be int instead of float. Remove updateCurrentItem(), and add a
51171        menuPopulated boolean and a QStringList containing the items.
51172        * kwq/KWQComboBox.mm:
51173        (QComboBox::QComboBox): Initialize currentItem directly instead of calling updateCurrentItem. Also initialize
51174        menuPopulated to true.
51175        (QComboBox::appendItem): Replaces insertItem. Put items in a string list. Don't keep the menu populated unless
51176        the button is highlighted (which indicates the menu is showing).
51177        (QComboBox::sizeHint): Compute widths using WebCoreTextRenderer, and the string list.
51178        (QComboBox::baselinePosition): Change ceil to ceilf, since we are dealing with floats, not doubles.
51179        (QComboBox::clear): Clear the items list. Also reset the currentItem field directly instead of using updateCurrentItem().
51180        (QComboBox::setCurrentItem): If the menu is not populated, then keep a single item with the appropriate title.
51181        If the menu is populated, then select the appropriate item.
51182        (QComboBox::itemSelected): Moved the logic from updateCurrentItem in here for simplicity.
51183        (QComboBox::focusPolicy): Tweaked the comment.
51184        (QComboBox::populateMenu): Added.
51185        (-[KWQPopUpButtonCell setHighlighted:]): Populate the menu when the cell is highlighted.
51186
51187        * kwq/KWQLineEdit.mm:
51188        (QLineEdit::sizeForCharacterWidth): Put an empty string in the cell, and add in a separately-computed width
51189        for the string.
51190        (QLineEdit::baselinePosition): Use ceilf instead of ceil since we are doing floats, not doubles.
51191
51192        * kwq/KWQListBox.h: Changed the items list from an NSArray to a QValueList.
51193        (KWQListBoxItem::KWQListBoxItem): Added a new class to keep the string and the "is label" boolean.
51194        (QListBox::count): Now inline.
51195        (QListBox::appendItem): Replaced insertItem with this.
51196        (QListBox::appendGroupLabel): Replaced insertGroupLabel with this.
51197        (QListBox::itemAtIndex): Replaced itemIsGroupLabel with this.
51198        * kwq/KWQListBox.mm:
51199        (itemTextRenderer): Replaced itemFont with this, which returns a WebCoreTextRenderer.
51200        (groupLabelTextRenderer): Ditto.
51201        (QListBox::QListBox): Removed the _insertingItems boolean, and handling of the _items list.
51202        (QListBox::~QListBox): Ditto.
51203        (QListBox::clear): Now clears the items list. Doesn't both with reloadData, since doneAppendingItems
51204        handles that.
51205        (QListBox::appendItem): Replaced insertItem. Just adds to the list. No need to construct attributed
51206        strings any more.
51207        (QListBox::doneAppendingItems): Replaced endBatchInsert. No need to clear the obsolete _insertingItems
51208        boolean.
51209        (QListBox::setEnabled): Added a call to reloadData.
51210        (QListBox::sizeForNumberOfLines): Compute widths using WebCoreTextRenderer, and the string list.
51211        Also adjust for the difference in widths between small and default scrollers and add in margins.
51212        (QListBox::setWritingDirection): Remove code that updates the direction in attributed strings.
51213        (-[KWQTableView initWithListBox:]): Compute height from font, not cell.
51214        (-[KWQTableView numberOfRowsInTableView:]): Get count from QListBox instead of items array.
51215        (-[KWQTableView tableView:objectValueForTableColumn:row:]): Return nil becase we don't want to
51216        create an NSString for each cell. We'll draw the appropriate thing.
51217        (-[KWQTableView tableView:shouldSelectRow:]): Update for change to QComboBox function.
51218        (-[KWQTableView drawRow:clipRect:]): Added. Draws the text in the cell, with the appropriate color
51219        and position, using WebCoreTextRenderer for speed.
51220        (-[KWQTableView _accessibilityTableCell:tableColumn:]): Set up cell with a string in this case,
51221        because we need the string to be seen by the accessibilty framework.
51222
51223        * kwq/WebCoreTextRenderer.h: Fixed typo in comment.
51224        * kwq/WebCoreTextRendererFactory.m: Removed bogus inline specifiers.
51225
51226        * khtml/rendering/render_layer.cpp: Fixed a couple of cases of RenderLayer::RenderLayer that just
51227        should have said RenderLayer.
51228
512292004-02-07  Darin Adler  <darin@apple.com>
51230
51231        * WebCore.pbproj/project.pbxproj: Get rid of the DEPLOYMENT_LOCATION and DEPLOYMENT_POSTPROCESSING
51232        flags that were in the Deployment build style. These were causing the need to chmod all the time
51233        after building WebCore successfully, and were doing us no good.
51234
512352004-02-07  Darin Adler  <darin@apple.com>
51236
51237        * kwq/can-convert.mm: Added test program to see which conversions are actually supported by TEC.
51238
512392004-02-06  David Hyatt  <hyatt@apple.com>
51240
51241        Implemented a TokenizerString that can walk a list of substrings, so that data can be enqueued
51242        in the list without having to do a copy.  Speeds up voodooextreme by 20% or so, giving the overall
51243        page-load tests get a 2% boost.
51244        
51245        Reviewed by darin
51246
51247        * WebCore.pbproj/project.pbxproj:
51248        * khtml/html/html_documentimpl.h:
51249        * khtml/html/htmltokenizer.cpp:
51250        (khtml::HTMLTokenizer::begin):
51251        (khtml::HTMLTokenizer::processListing):
51252        (khtml::HTMLTokenizer::parseSpecial):
51253        (khtml::HTMLTokenizer::scriptHandler):
51254        (khtml::HTMLTokenizer::parseComment):
51255        (khtml::HTMLTokenizer::parseServer):
51256        (khtml::HTMLTokenizer::parseProcessingInstruction):
51257        (khtml::HTMLTokenizer::parseText):
51258        (khtml::HTMLTokenizer::parseEntity):
51259        (khtml::HTMLTokenizer::parseTag):
51260        (khtml::HTMLTokenizer::write):
51261        (khtml::HTMLTokenizer::notifyFinished):
51262        (khtml::HTMLTokenizer::setSrc):
51263        (khtml::HTMLTokenizer::setOnHold):
51264        * khtml/html/htmltokenizer.h:
51265        (khtml::Token::Token):
51266        (khtml::Token::~Token):
51267        (khtml::Token::addAttribute):
51268        (khtml::Token::reset):
51269        * khtml/khtml_part.cpp:
51270        (KHTMLPart::handleMousePressEventDoubleClick):
51271        * khtml/khtml_part.h:
51272        * khtml/misc/stringit.cpp: Added.
51273        (khtml::TokenizerString::length):
51274        (khtml::TokenizerString::clear):
51275        (khtml::TokenizerString::append):
51276        (khtml::TokenizerString::prepend):
51277        (khtml::TokenizerString::advanceSubstring):
51278        (khtml::TokenizerString::toString):
51279        * khtml/misc/stringit.h:
51280        (khtml::TokenizerSubstring::TokenizerSubstring):
51281        (khtml::TokenizerSubstring::clear):
51282        (khtml::TokenizerSubstring::appendTo):
51283        (khtml::TokenizerString::TokenizerString):
51284        (khtml::TokenizerString::push):
51285        (khtml::TokenizerString::isEmpty):
51286        (khtml::TokenizerString::advance):
51287        (khtml::TokenizerString::escaped):
51288        (khtml::TokenizerString::lineCount):
51289        (khtml::TokenizerString::resetLineCount):
51290        (khtml::TokenizerString::operator++):
51291        (khtml::TokenizerString::operator*):
51292        (khtml::TokenizerString::operator->):
51293        (khtml::TokenizerString::current):
51294        * khtml/xbl/xbl_docimpl.cpp:
51295        * khtml/xbl/xbl_docimpl.h:
51296        (XBL::):
51297        * khtml/xbl/xbl_tokenizer.h:
51298        (XBL::):
51299        * khtml/xml/dom_docimpl.h:
51300        (DOM::DocumentImpl::tokenizer):
51301        * khtml/xml/xml_tokenizer.cpp:
51302        (khtml::XMLTokenizer::write):
51303        * khtml/xml/xml_tokenizer.h:
51304        * kwq/KWQSignalStubs.mm:
51305        * kwq/KWQValueList.h:
51306        (QValueList::insert):
51307        (QValueList::fromLast):
51308        * kwq/KWQValueListImpl.h:
51309        * kwq/KWQValueListImpl.mm:
51310        (KWQValueListImpl::clear):
51311        (KWQValueListImpl::insert):
51312        (KWQValueListImpl::fromLast):
51313
51314=== Safari-127 ===
51315
513162004-02-06  Ken Kocienda  <kocienda@apple.com>
51317
51318        Reviewed by Chris
51319
51320	Steps no longer return int error codes. Steps are operations
51321	that should succeed. (When was the last time that typing in
51322	a text editor failed for reasons which could not have been
51323	figured out ahead of time...like file permissions?).
51324	If this does not work for the future, perhaps we can change 
51325	some or all of the many asserts in the code to throw C+
51326	exceptions instead, which can be caught and handled at a
51327	suitable level.
51328
51329	I also made some nice convenience functions to create and apply
51330	EditStep objects, and moved the command code to use the new
51331	functions.
51332
51333        * khtml/editing/htmlediting.cpp:
51334        (EditStep::EditStep):
51335        (EditStep::~EditStep):
51336        (EditStep::reapply):
51337        (EditStep::beginApply):
51338        (EditStep::endApply):
51339        (EditStep::beginUnapply):
51340        (EditStep::endUnapply):
51341        (EditStep::beginReapply):
51342        (EditStep::endReapply):
51343        (CompositeEditStep::unapply):
51344        (CompositeEditStep::reapply):
51345        (CompositeEditStep::applyStep):
51346        (CompositeEditStep::insertNodeBefore):
51347        (CompositeEditStep::insertNodeAfter):
51348        (CompositeEditStep::appendNode):
51349        (CompositeEditStep::removeNode):
51350        (CompositeEditStep::splitTextNode):
51351        (CompositeEditStep::joinTextNodes):
51352        (CompositeEditStep::insertText):
51353        (CompositeEditStep::deleteText):
51354        (CompositeEditStep::moveSelectionTo):
51355        (CompositeEditStep::deleteSelection):
51356        (InsertNodeBeforeStep::InsertNodeBeforeStep):
51357        (InsertNodeBeforeStep::apply):
51358        (InsertNodeBeforeStep::unapply):
51359        (AppendNodeStep::AppendNodeStep):
51360        (AppendNodeStep::apply):
51361        (AppendNodeStep::unapply):
51362        (RemoveNodeStep::RemoveNodeStep):
51363        (RemoveNodeStep::apply):
51364        (RemoveNodeStep::unapply):
51365        (ModifyTextNodeStep::ModifyTextNodeStep):
51366        (ModifyTextNodeStep::splitTextNode):
51367        (ModifyTextNodeStep::joinTextNodes):
51368        (SplitTextNodeStep::apply):
51369        (SplitTextNodeStep::unapply):
51370        (JoinTextNodesStep::apply):
51371        (JoinTextNodesStep::unapply):
51372        (InsertTextStep::InsertTextStep):
51373        (InsertTextStep::apply):
51374        (InsertTextStep::unapply):
51375        (DeleteTextStep::DeleteTextStep):
51376        (DeleteTextStep::apply):
51377        (DeleteTextStep::unapply):
51378        (MoveSelectionToStep::MoveSelectionToStep):
51379        (MoveSelectionToStep::apply):
51380        (MoveSelectionToStep::unapply):
51381        (DeleteSelectionStep::apply):
51382        (EditCommand::EditCommand):
51383        (EditCommand::~EditCommand):
51384        (EditCommand::currentSelection):
51385        (InputTextCommand::apply):
51386        (DeleteTextCommand::apply):
51387        * khtml/editing/htmlediting.h:
51388        (khtml::MoveSelectionToStep::~MoveSelectionToStep):
51389        (khtml::EditCommand::cookie):
51390        * khtml/khtml_part.cpp:
51391        (KHTMLPart::applyCommand):
51392        (KHTMLPart::undoRedoEditing):
51393        (KHTMLPart::undoEditing):
51394        (KHTMLPart::redoEditing):
51395        * khtml/khtml_part.h:
51396        * khtml/xml/dom_elementimpl.cpp:
51397        (ElementImpl::defaultEventHandler):
51398
513992004-02-05  Ken Kocienda  <kocienda@apple.com>
51400
51401        Reviewed by Hyatt
51402        
51403        This patch includes two major pieces of work.
51404        
51405        1. The KHTMLSelection object has been reworked to be a value object.
51406        Part-related state has been moved out to KHTMLPart. This change makes
51407        it much easier to program with these objects, since they can now be
51408        treating unambigously like built-in types. As part of this work, I
51409        did a pass over the API and improved some function names. A related
51410        part of work was to clean up the relationship between KHTMLSelection, 
51411        KHTMLPart and DOMDocumentImpl, and cleared up how to change the selection
51412        when that is necessary. (There is now a small set of functions on KHTMLPart). 
51413        
51414        2. Implemented undo/redo, and hooked into the Cocoa undo architecture. The
51415        notion of EditCommands has been enhanced by the addition of EditSteps, which
51416        are primitive operations out of which edit commands are built. Most of the
51417        existing operations have been updated to use this new design. The last couple
51418        will be updated soon, so that all supported editing operations will be undoable.
51419
51420        * khtml/editing/htmlediting.cpp:
51421        * khtml/editing/htmlediting.h:
51422        * khtml/html/html_elementimpl.cpp:
51423        (HTMLElementImpl::isFocusable): Prevents children of content editable parents
51424        from receiving focus.
51425        * khtml/khtml_part.cpp: Modified to work with new KHTMLSelection class design.
51426        Also added some new code to work with new edit command architecture. 
51427        * khtml/khtml_part.h:
51428        * khtml/khtml_selection.cpp: Reworked as a value class. Too much state was
51429        being stored in this object for it to be convenient to use as a value. That
51430        has been fixed.
51431        * khtml/khtml_selection.h:
51432        * khtml/khtmlpart_p.h:
51433        (KHTMLPartPrivate::KHTMLPartPrivate):
51434        (KHTMLPartPrivate::~KHTMLPartPrivate):
51435        * khtml/khtmlview.cpp: Modified to work with new KHTMLSelection class design.
51436        * khtml/rendering/render_block.cpp: Modified to work with new KHTMLSelection class design.
51437        (khtml::RenderBlock::paintObject):
51438        * khtml/xml/dom_docimpl.cpp:
51439        (DocumentImpl::updateSelection):
51440        (DocumentImpl::deleteSelection):
51441        (DocumentImpl::pasteHTMLString):
51442        * khtml/xml/dom_docimpl.h:
51443        * khtml/xml/dom_elementimpl.cpp: 
51444        (ElementImpl::defaultEventHandler): Modified to work with new edit command architecture.
51445        * kwq/KWQKHTMLPart.h:
51446        * kwq/KWQKHTMLPart.mm:
51447        (KWQKHTMLPart::registerCommandForUndo): Added hook to Cocoa undo/redo architecture.
51448        * kwq/WebCoreBridge.h:
51449        * kwq/WebCoreBridge.mm:
51450        (-[WebCoreBridge isSelectionEditable]): Modified to work with new edit command architecture.
51451        (-[WebCoreBridge moveCaretToPoint:]): Ditto
51452        (-[WebCoreBridge haveSelection]): Ditto
51453        (-[WebCoreBridge selectedHTML]): Ditto
51454        (-[WebCoreBridge setSelectionFrom:startOffset:to:endOffset:]): Ditto
51455        (-[WebCoreBridge reconstructedSource]): Ditto
51456        (-[WebCoreBridge undoRedoEditing:]): Added hook to Cocoa undo/redo architecture.
51457
514582004-02-04  David Hyatt  <hyatt@apple.com>
51459
51460	Improve rule matching in the style system.  Filter out most rules up front, so that only a small
51461	number of rules need to be walked for any given element.  Yields a ~4-5% improvement on the PLT.
51462	
51463        Reviewed by kocienda
51464
51465        * khtml/css/css_base.cpp:
51466        (StyleBaseImpl::setParsedValue):
51467        (CSSSelector::specificity):
51468        (CSSSelector::extractPseudoType):
51469        (CSSSelector::operator == ):
51470        * khtml/css/css_base.h:
51471        (DOM::CSSSelector::CSSSelector):
51472        (DOM::CSSSelector::~CSSSelector):
51473        (DOM::CSSSelector::append):
51474        (DOM::CSSSelector::next):
51475        (DOM::CSSSelector::):
51476        (DOM::StyleBaseImpl::StyleBaseImpl):
51477        * khtml/css/css_ruleimpl.cpp:
51478        (CSSStyleRuleImpl::selectorText):
51479        (CSSRuleListImpl::insertRule):
51480        * khtml/css/css_ruleimpl.h:
51481        (DOM::CSSStyleRuleImpl::setSelector):
51482        (DOM::CSSStyleRuleImpl::selector):
51483        * khtml/css/css_stylesheetimpl.cpp:
51484        * khtml/css/css_stylesheetimpl.h:
51485        * khtml/css/css_valueimpl.cpp:
51486        (CSSStyleDeclarationImpl::getPropertyCSSValue):
51487        (CSSStyleDeclarationImpl::removeProperty):
51488        (CSSStyleDeclarationImpl::setProperty):
51489        (CSSStyleDeclarationImpl::setStringProperty):
51490        (CSSStyleDeclarationImpl::setImageProperty):
51491        (CSSStyleDeclarationImpl::setLengthProperty):
51492        (CSSStyleDeclarationImpl::cssText):
51493        (CSSStyleDeclarationImpl::setCssText):
51494        * khtml/css/css_valueimpl.h:
51495        (DOM::CSSStyleDeclarationImpl::node):
51496        (DOM::CSSProperty::CSSProperty):
51497        (DOM::CSSProperty::id):
51498        (DOM::CSSProperty::isImportant):
51499        * khtml/css/cssparser.cpp:
51500        (CSSParser::CSSParser):
51501        (ParseString::lower):
51502        (CSSParser::parseValue):
51503        (CSSParser::parseDeclaration):
51504        (CSSParser::addProperty):
51505        (CSSParser::parseShadow):
51506        * khtml/css/cssparser.h:
51507        * khtml/css/cssstyleselector.cpp:
51508        (khtml::):
51509        (khtml::CSSStyleSelector::CSSStyleSelector):
51510        (khtml::CSSStyleSelector::init):
51511        (khtml::CSSStyleSelector::~CSSStyleSelector):
51512        (khtml::CSSStyleSelector::loadDefaultStyle):
51513        (khtml::CSSStyleSelector::addMatchedRule):
51514        (khtml::CSSStyleSelector::addMatchedDeclaration):
51515        (khtml::CSSStyleSelector::matchRules):
51516        (khtml::CSSStyleSelector::matchRulesForList):
51517        (khtml::operator >):
51518        (khtml::operator <=):
51519        (khtml::CSSStyleSelector::sortMatchedRules):
51520        (khtml::CSSStyleSelector::initForStyleResolve):
51521        (khtml::CSSStyleSelector::styleForElement):
51522        (khtml::CSSStyleSelector::pseudoStyleForElement):
51523        (khtml::checkPseudoState):
51524        (khtml::CSSStyleSelector::checkSelector):
51525        (khtml::CSSStyleSelector::checkOneSelector):
51526        (khtml::CSSRuleSet::CSSRuleSet):
51527        (khtml::CSSRuleSet::addToRuleSet):
51528        (khtml::CSSRuleSet::addRule):
51529        (khtml::CSSRuleSet::addRulesFromSheet):
51530        (khtml::CSSStyleSelector::applyDeclarations):
51531        (khtml::CSSStyleSelector::applyProperty):
51532        (khtml::CSSStyleSelector::smallerFontSize):
51533        (khtml::CSSStyleSelector::getColorFromPrimitiveValue):
51534        * khtml/css/cssstyleselector.h:
51535        (khtml::):
51536        (khtml::CSSRuleData::m_next):
51537        (khtml::CSSRuleData::~CSSRuleData):
51538        (khtml::CSSRuleData::position):
51539        (khtml::CSSRuleData::rule):
51540        (khtml::CSSRuleData::selector):
51541        (khtml::CSSRuleData::next):
51542        (khtml::CSSRuleDataList::CSSRuleDataList):
51543        (khtml::CSSRuleDataList::~CSSRuleDataList):
51544        (khtml::CSSRuleDataList::first):
51545        (khtml::CSSRuleDataList::last):
51546        (khtml::CSSRuleDataList::append):
51547        (khtml::CSSRuleSet::~CSSRuleSet):
51548        (khtml::CSSRuleSet::getIDRules):
51549        (khtml::CSSRuleSet::getClassRules):
51550        (khtml::CSSRuleSet::getTagRules):
51551        (khtml::CSSRuleSet::getUniversalRules):
51552        * khtml/css/cssvalues.c:
51553        (hash_val):
51554        (findValue):
51555        * khtml/css/cssvalues.h:
51556        * khtml/css/cssvalues.in:
51557        * khtml/css/html4.css:
51558        * khtml/css/parser.cpp:
51559        * khtml/css/parser.h:
51560        * khtml/css/parser.y:
51561        * khtml/dom/dom_element.cpp:
51562        (Element::style):
51563        * khtml/html/html_baseimpl.cpp:
51564        (HTMLBodyElementImpl::HTMLBodyElementImpl):
51565        (HTMLBodyElementImpl::~HTMLBodyElementImpl):
51566        (HTMLBodyElementImpl::createLinkDecl):
51567        (HTMLBodyElementImpl::parseAttribute):
51568        * khtml/html/html_baseimpl.h:
51569        * khtml/html/html_elementimpl.cpp:
51570        (HTMLNamedAttrMapImpl::parseClassAttribute):
51571        (HTMLElementImpl::HTMLElementImpl):
51572        (HTMLElementImpl::~HTMLElementImpl):
51573        (HTMLElementImpl::createInlineStyleDecl):
51574        (HTMLElementImpl::createMappedAttributeDecl):
51575        (HTMLElementImpl::parseAttribute):
51576        (HTMLElementImpl::getClassList):
51577        (HTMLElementImpl::addCSSProperty):
51578        (HTMLElementImpl::addCSSStringProperty):
51579        (HTMLElementImpl::addCSSImageProperty):
51580        (HTMLElementImpl::addCSSLength):
51581        (HTMLElementImpl::addHTMLColor):
51582        (HTMLElementImpl::removeCSSProperty):
51583        * khtml/html/html_elementimpl.h:
51584        (DOM::HTMLNamedAttrMapImpl::getClassList):
51585        (DOM::HTMLElementImpl::inlineStyleDecl):
51586        (DOM::HTMLElementImpl::attributeStyleDecl):
51587        (DOM::HTMLElementImpl::getInlineStyleDecl):
51588        * khtml/html/html_tableimpl.cpp:
51589        (HTMLTableElementImpl::createSharedCellDecls):
51590        (HTMLTableCellElementImpl::additionalAttributeStyleDecl):
51591        * khtml/html/html_tableimpl.h:
51592        * khtml/xml/dom_atomicstring.cpp:
51593        (DOM::AtomicString::add):
51594        (DOM::AtomicString::remove):
51595        * khtml/xml/dom_docimpl.cpp:
51596        (DocumentImpl::DocumentImpl):
51597        (DocumentImpl::resetLinkColor):
51598        (DocumentImpl::resetVisitedLinkColor):
51599        (DocumentImpl::resetActiveLinkColor):
51600        (DocumentImpl::recalcStyleSelector):
51601        * khtml/xml/dom_docimpl.h:
51602        (DOM::DocumentImpl::linkColor):
51603        (DOM::DocumentImpl::visitedLinkColor):
51604        (DOM::DocumentImpl::activeLinkColor):
51605        (DOM::DocumentImpl::setLinkColor):
51606        (DOM::DocumentImpl::setVisitedLinkColor):
51607        (DOM::DocumentImpl::setActiveLinkColor):
51608        * khtml/xml/dom_elementimpl.cpp:
51609        (ElementImpl::ElementImpl):
51610        (ElementImpl::~ElementImpl):
51611        (ElementImpl::getClassList):
51612        (ElementImpl::getIDAttribute):
51613        (ElementImpl::cloneNode):
51614        (XMLElementImpl::cloneNode):
51615        * khtml/xml/dom_elementimpl.h:
51616        (DOM::ElementImpl::inlineStyleDecl):
51617        (DOM::ElementImpl::attributeStyleDecl):
51618        (DOM::ElementImpl::getInlineStyleDecl):
51619        (DOM::ElementImpl::additionalAttributeStyleDecl):
51620        (DOM::NamedAttrMapImpl::id):
51621        (DOM::NamedAttrMapImpl::setID):
51622        * khtml/xml/dom_stringimpl.cpp:
51623        (DOM::DOMStringImpl::DOMStringImpl):
51624        (DOM::DOMStringImpl::~DOMStringImpl):
51625        (DOM::DOMStringImpl::append):
51626        (DOM::DOMStringImpl::insert):
51627        (DOM::DOMStringImpl::truncate):
51628        (DOM::DOMStringImpl::remove):
51629        (DOM::DOMStringImpl::split):
51630        * khtml/xml/dom_stringimpl.h:
51631        (DOM::DOMStringImpl::DOMStringImpl):
51632
516332004-02-04  David Hyatt  <hyatt@apple.com>
51634
51635	Fix line-height regression on altavista.
51636
51637        * khtml/rendering/render_br.cpp:
51638        (RenderBR::RenderBR):
51639        (RenderBR::position):
51640        (RenderBR::lineHeight):
51641        (RenderBR::setStyle):
51642        * khtml/rendering/render_br.h:
51643        * khtml/rendering/render_flow.h:
51644        (khtml::RenderFlow::RenderFlow):
51645
516462004-02-04  David Hyatt  <hyatt@apple.com>
51647
51648	Fix a regression in the line-height of first-lines and inline-blocks.
51649	
51650        Reviewed by darin
51651
51652        * khtml/rendering/render_flow.cpp:
51653        (RenderFlow::lineHeight):
51654        * khtml/rendering/render_text.cpp:
51655        (RenderText::lineHeight):
51656
516572004-02-02  Chris Blumenberg  <cblu@apple.com>
51658
51659	Fixed: <rdar://problem/3546924>: REGRESSION: dragging text or images over a WebView is jerky
51660
51661
51662        Reviewed by mjs.
51663
51664        * WebCore-combined.exp:
51665        * WebCore.exp:
51666        * kwq/WebCoreBridge.h: added the DOM node element key constant (SPI for now)
51667        * kwq/WebCoreBridge.mm:
51668        (-[WebCoreBridge elementAtPoint:]): instead of calling toHTML for every node, put the node on the element so the caller can get the HTML string representation when it needs to.
51669        * kwq/WebCoreDOMNode.mm:
51670        (-[WebCoreDOMNode HTMLString]): new
51671
516722004-02-02  Darin Adler  <darin@apple.com>
51673
51674        Reviewed by Maciej.
51675
51676        - use toInt32 where we really need an int, rather than toInteger,
51677          because toInteger needs to return an integral number as a double,
51678          not as an int
51679
51680        * khtml/ecma/kjs_css.cpp:
51681        (DOMCSSStyleDeclarationProtoFunc::tryCall): Call toInt32 intead of toInteger.
51682        (DOMStyleSheetListFunc::tryCall): Ditto.
51683        (KJS::DOMMediaListProtoFunc::tryCall): Ditto.
51684        (DOMCSSStyleSheetProtoFunc::tryCall): Ditto.
51685        (DOMCSSRuleListFunc::tryCall): Ditto.
51686        (DOMCSSRuleFunc::tryCall): Ditto.
51687        (DOMCSSPrimitiveValueProtoFunc::tryCall): Ditto.
51688        (DOMCSSValueListFunc::tryCall): Ditto.
51689        * khtml/ecma/kjs_dom.cpp:
51690        (DOMCharacterDataProtoFunc::tryCall): Ditto.
51691        (DOMTextProtoFunc::tryCall): Ditto.
51692        * khtml/ecma/kjs_events.cpp:
51693        (DOMUIEventProtoFunc::tryCall): Ditto.
51694        (DOMMouseEventProtoFunc::tryCall): Ditto.
51695        (DOMKeyboardEventProtoFunc::tryCall): Ditto.
51696        (DOMMutationEventProtoFunc::tryCall): Ditto.
51697        * khtml/ecma/kjs_html.cpp:
51698        (KJS::HTMLElementFunction::tryCall): Ditto.
51699        (KJS::HTMLElement::putValue): Ditto.
51700        (KJS::HTMLSelectCollection::tryPut): Ditto.
51701        * khtml/ecma/kjs_range.cpp:
51702        (DOMRangeProtoFunc::tryCall): Ditto.
51703        * khtml/ecma/kjs_traversal.cpp: (JSNodeFilter::acceptNode): Ditto.
51704        * khtml/ecma/kjs_window.cpp:
51705        (WindowFunc::tryCall): Ditto.
51706        (HistoryFunc::tryCall): Ditto.
51707
517082004-02-02  Darin Adler  <darin@apple.com>
51709
51710        Reviewed by John.
51711
51712        - fix at least some of <rdar://problem/3546393>: 10,000 leaks, many of DOM::AtomicString::add, after one run of cvs-base
51713
51714        * khtml/xml/dom_atomicstring.cpp: (DOM::AtomicString::add): Remove extra allocation of strings.
51715        This should speed things up a bit as well as fixing one big leak.
51716
517172004-02-02  Chris Blumenberg  <cblu@apple.com>
51718
51719	Fixed: <rdar://problem/3546379>: support for editing via drag & drop
51720
51721        Reviewed by kocienda.
51722
51723        * khtml/xml/dom_docimpl.cpp:
51724        (DocumentImpl::deleteSelection): fixed a crash I encountered while attempting to delete and empty selection
51725        * kwq/WebCoreBridge.h:
51726        * kwq/WebCoreBridge.mm:
51727        (-[WebCoreBridge isSelectionEditable]): renamed from isEditable
51728        (-[WebCoreBridge moveCaretToPoint:]): new
51729        (-[WebCoreBridge elementAtPoint:]): added support for WebCoreElementHTMLStringKey and WebCoreElementIsEditableKey
51730
517312004-01-30  David Hyatt  <hyatt@apple.com>
51732
51733	Fix for 3522497, <br>s should not get AXObjects created.
51734	
51735        Reviewed by mjs
51736
51737        * kwq/KWQAccObject.mm:
51738        (-[KWQAccObject accessibilityIsIgnored]):
51739
51740=== Safari-126 ===
51741
517422004-01-30  David Hyatt  <hyatt@apple.com>
51743
51744	Fix a regression I introduced in my atomicstring patch.  I meant to say !attr->isNull() in the contentedtiable
51745	attribute parsing code.
51746	
51747        Reviewed by cblu
51748
51749        * khtml/html/html_elementimpl.cpp:
51750        (HTMLElementImpl::parseAttribute):
51751
517522004-01-30  David Hyatt  <hyatt@apple.com>
51753
51754	Make m_lineHeight be cached on RenderFlow instead of RenderText and avoid recomputing it so much when it
51755	is not set by CSS (since calls to fontMetrics().lineSpacing() are expensive).
51756
51757	Yields ~1.5% performance improvement.
51758	
51759        Reviewed by darin
51760
51761        * khtml/rendering/render_block.cpp:
51762        (khtml::RenderBlock::setStyle):
51763        * khtml/rendering/render_flow.cpp:
51764        (RenderFlow::lineHeight):
51765        * khtml/rendering/render_flow.h:
51766        * khtml/rendering/render_inline.cpp:
51767        (RenderInline::setStyle):
51768        * khtml/rendering/render_object.cpp:
51769        (RenderObject::verticalPositionHint):
51770        (RenderObject::lineHeight):
51771        * khtml/rendering/render_object.h:
51772        * khtml/rendering/render_text.cpp:
51773        (RenderText::setStyle):
51774        (RenderText::checkSelectionPointIgnoringContinuations):
51775        (RenderText::height):
51776        (RenderText::lineHeight):
51777        * khtml/rendering/render_text.h:
51778
517792004-01-30  David Hyatt  <hyatt@apple.com>
51780
51781	Disable XBL.  The loadBindings call was taking 0.1-0.25%.  While I know how to get rid of this overhead,
51782	it's easier for now to just disable all of XBL.
51783
51784        * WebCorePrefix.h:
51785        * khtml/misc/loader.h:
51786        * khtml/xbl/xbl_binding.cpp:
51787        * khtml/xbl/xbl_binding_manager.cpp:
51788        * khtml/xbl/xbl_docimpl.cpp:
51789        * khtml/xbl/xbl_protobinding.cpp:
51790        * khtml/xbl/xbl_protohandler.cpp:
51791        * khtml/xbl/xbl_protoimplementation.cpp:
51792        * khtml/xbl/xbl_tokenizer.cpp:
51793
517942004-01-29  David Hyatt  <hyatt@apple.com>
51795
51796	Atomize font families (KWQFontFamily) and all attribute values.  Move atomic string into separate files.
51797
51798	In my testing, this patch yields the same score as Safari-125 in tests and recovers all lost performance
51799	(mostly from excess copying of AtomicStrings where DOMStringImpl* used to be returned).
51800	
51801        Reviewed by darin
51802
51803        * ForwardingHeaders/xml/dom_atomicstring.h: Added.
51804        * WebCore.pbproj/project.pbxproj:
51805        * khtml/css/css_base.cpp:
51806        (CSSSelector::print):
51807        (CSSSelector::extractPseudoType):
51808        (CSSSelector::selectorText):
51809        * khtml/css/css_valueimpl.cpp:
51810        (FontFamilyValueImpl::FontFamilyValueImpl):
51811        * khtml/css/cssparser.cpp:
51812        (CSSParser::parseFontFamily):
51813        * khtml/css/cssparser.h:
51814        * khtml/css/cssstyleselector.cpp:
51815        (khtml::checkPseudoState):
51816        (khtml::CSSStyleSelector::checkOneSelector):
51817        (khtml::CSSStyleSelector::applyRule):
51818        * khtml/dom/dom_element.cpp:
51819        (Element::getAttributeNS):
51820        * khtml/dom/dom_string.cpp:
51821        (DOMString::toInt):
51822        (DOMString::toLengthArray):
51823        (DOM::operator==):
51824        * khtml/dom/dom_string.h:
51825        (DOM::operator==):
51826        (DOM::operator!=):
51827        * khtml/ecma/kjs_navigator.cpp:
51828        (Plugins::get):
51829        (MimeTypes::get):
51830        (Plugin::get):
51831        * khtml/html/html_baseimpl.cpp:
51832        (HTMLBodyElementImpl::parseAttribute):
51833        (HTMLFrameElementImpl::isURLAllowed):
51834        (HTMLFrameElementImpl::openURL):
51835        (HTMLFrameElementImpl::parseAttribute):
51836        (HTMLFrameElementImpl::attach):
51837        (HTMLFrameElementImpl::setLocation):
51838        (HTMLFrameSetElementImpl::parseAttribute):
51839        (HTMLIFrameElementImpl::attach):
51840        * khtml/html/html_baseimpl.h:
51841        * khtml/html/html_blockimpl.cpp:
51842        (HTMLHRElementImpl::parseAttribute):
51843        (HTMLHRElementImpl::attach):
51844        (HTMLMarqueeElementImpl::parseAttribute):
51845        * khtml/html/html_documentimpl.cpp:
51846        (HTMLDocumentImpl::documentElement):
51847        * khtml/html/html_documentimpl.h:
51848        * khtml/html/html_elementimpl.cpp:
51849        (HTMLElementImpl::parseAttribute):
51850        (HTMLElementImpl::addCSSLength):
51851        (HTMLElementImpl::addHTMLAlignment):
51852        * khtml/html/html_elementimpl.h:
51853        * khtml/html/html_formimpl.cpp:
51854        (HTMLGenericFormElementImpl::parseAttribute):
51855        (HTMLInputElementImpl::parseAttribute):
51856        (HTMLInputElementImpl::attach):
51857        (HTMLSelectElementImpl::parseAttribute):
51858        (HTMLKeygenElementImpl::parseAttribute):
51859        (HTMLKeygenElementImpl::encoding):
51860        (HTMLOptionElementImpl::parseAttribute):
51861        (HTMLTextAreaElementImpl::parseAttribute):
51862        * khtml/html/html_formimpl.h:
51863        * khtml/html/html_headimpl.cpp:
51864        (HTMLLinkElementImpl::parseAttribute):
51865        (HTMLStyleElementImpl::parseAttribute):
51866        * khtml/html/html_imageimpl.cpp:
51867        (HTMLImageElementImpl::parseAttribute):
51868        (HTMLAreaElementImpl::parseAttribute):
51869        * khtml/html/html_inlineimpl.cpp:
51870        (HTMLAnchorElementImpl::parseAttribute):
51871        * khtml/html/html_listimpl.cpp:
51872        (HTMLOListElementImpl::parseAttribute):
51873        (HTMLLIElementImpl::parseAttribute):
51874        * khtml/html/html_miscimpl.cpp:
51875        (HTMLCollectionImpl::getNamedItem):
51876        (HTMLFormCollectionImpl::getNamedFormItem):
51877        (HTMLFormCollectionImpl::getNamedImgItem):
51878        * khtml/html/html_objectimpl.cpp:
51879        (HTMLEmbedElementImpl::parseAttribute):
51880        (HTMLObjectElementImpl::parseAttribute):
51881        (HTMLParamElementImpl::HTMLParamElementImpl):
51882        (HTMLParamElementImpl::~HTMLParamElementImpl):
51883        (HTMLParamElementImpl::parseAttribute):
51884        * khtml/html/html_objectimpl.h:
51885        (DOM::HTMLParamElementImpl::name):
51886        (DOM::HTMLParamElementImpl::value):
51887        * khtml/html/html_tableimpl.cpp:
51888        (HTMLTableElementImpl::parseAttribute):
51889        (HTMLTablePartElementImpl::parseAttribute):
51890        (HTMLTableCellElementImpl::parseAttribute):
51891        (HTMLTableColElementImpl::parseAttribute):
51892        * khtml/html/htmlparser.cpp:
51893        (KHTMLParser::insertNode):
51894        (KHTMLParser::handleIsindex):
51895        * khtml/html/htmltokenizer.cpp:
51896        (HTMLTokenizer::parseTag):
51897        * khtml/html/htmltokenizer.h:
51898        (khtml::Token::addAttribute):
51899        * khtml/khtml_part.cpp:
51900        (KHTMLPart::init):
51901        * khtml/khtmlview.cpp:
51902        (KHTMLToolTip::maybeTip):
51903        * khtml/xml/dom_atomicstring.cpp: Added.
51904        (DOM::AtomicStringStatisticsExitLogger::~AtomicStringStatisticsExitLogger):
51905        (DOM::AtomicString::equal):
51906        (DOM::AtomicString::add):
51907        (DOM::AtomicString::insert):
51908        (DOM::AtomicString::remove):
51909        (DOM::AtomicString::expand):
51910        (DOM::AtomicString::shrink):
51911        (DOM::AtomicString::rehash):
51912        (DOM::AtomicString::init):
51913        (DOM::operator==):
51914        (DOM::equalsIgnoreCase):
51915        * khtml/xml/dom_atomicstring.h: Added.
51916        (DOM::AtomicString::AtomicString):
51917        (DOM::AtomicString:::m_string):
51918        (DOM::AtomicString::operator const DOMString&):
51919        (DOM::AtomicString::domString):
51920        (DOM::AtomicString::string):
51921        (DOM::AtomicString::implementation):
51922        (DOM::AtomicString::unicode):
51923        (DOM::AtomicString::length):
51924        (DOM::AtomicString::ascii):
51925        (DOM::AtomicString::find):
51926        (DOM::AtomicString::toInt):
51927        (DOM::AtomicString::percentage):
51928        (DOM::AtomicString::toLengthArray):
51929        (DOM::AtomicString::isNull):
51930        (DOM::AtomicString::isEmpty):
51931        (DOM::AtomicString::equal):
51932        (DOM::operator==):
51933        (DOM::operator!=):
51934        * khtml/xml/dom_atomicstringlist.h: Added.
51935        (DOM::AtomicStringList:::m_next):
51936        (DOM::AtomicStringList::m_next):
51937        (DOM::AtomicStringList::~AtomicStringList):
51938        (DOM::AtomicStringList::next):
51939        (DOM::AtomicStringList::setNext):
51940        (DOM::AtomicStringList::string):
51941        (DOM::AtomicStringList::setString):
51942        (DOM::AtomicStringList::clone):
51943        (DOM::AtomicStringList::clear):
51944        * khtml/xml/dom_docimpl.h:
51945        * khtml/xml/dom_elementimpl.cpp:
51946        (AttrImpl::nodeValue):
51947        (AttrImpl::cloneNode):
51948        (ElementImpl::getAttribute):
51949        (ElementImpl::getAttributeNS):
51950        (ElementImpl::setAttribute):
51951        (ElementImpl::setAttributeMap):
51952        (ElementImpl::attach):
51953        (ElementImpl::detach):
51954        (ElementImpl::updateId):
51955        (NamedAttrMapImpl::setNamedItem):
51956        (NamedAttrMapImpl::removeNamedItem):
51957        (NamedAttrMapImpl::getAttributeItem):
51958        (NamedAttrMapImpl::operator=):
51959        (NamedAttrMapImpl::removeAttribute):
51960        * khtml/xml/dom_elementimpl.h:
51961        (DOM::AttributeImpl::AttributeImpl):
51962        (DOM::AttributeImpl::value):
51963        (DOM::AttributeImpl::prefix):
51964        (DOM::AttributeImpl::isNull):
51965        (DOM::AttributeImpl::isEmpty):
51966        (DOM::AttributeImpl::setValue):
51967        (DOM::AttributeImpl::setPrefix):
51968        (DOM::ElementImpl::getAttribute):
51969        * khtml/xml/dom_nameimpl.cpp: Removed.
51970        * khtml/xml/dom_nameimpl.h:
51971        (DOM::Name::namespaceURI):
51972        (DOM::Name::localName):
51973        * khtml/xml/dom_nodeimpl.h:
51974        * khtml/xml/dom_stringimpl.cpp:
51975        * kwq/KWQFont.mm:
51976        (QFont::family):
51977        * kwq/KWQFontFamily.h:
51978        (KWQFontFamily::family):
51979        * kwq/KWQFontFamily.mm:
51980        (retainDOMStringImpl):
51981        (releaseDOMStringImpl):
51982        (KWQFontFamily::getNSFamily):
51983        (KWQFontFamily::setFamily):
51984        (KWQFontFamily::operator==):
51985        * kwq/KWQKHTMLPart.mm:
51986        (KWQKHTMLPart::fileWrapperForElement):
51987        * kwq/WebCoreBridge.mm:
51988        (-[WebCoreBridge elementAtPoint:]):
51989
519902004-01-29  Chris Blumenberg  <cblu@apple.com>
51991
51992	Fixed: <rdar://problem/3543619>: copied HTML is strangely formatted, random whitespace and return characters
51993
51994        Reviewed by dave.
51995
51996        * khtml/xml/dom_nodeimpl.cpp:
51997        (NodeImpl::recursive_toHTMLWithRange): remove all code that tries to format the HTML since we can rely on the existing white space to preserve the original formatting
51998
519992004-01-28  John Sullivan  <sullivan@apple.com>
52000
52001        Reviewed by Dave.
52002
52003        * khtml/rendering/render_text.cpp:
52004        (RenderText::paintObject):
52005        Increment s in the while() clause so it is incremented even
52006        after a continue statement. This fixes an infinite loop I ran
52007        into in the printing code path at certain scaled print sizes
52008        on certain pages.
52009
520102004-01-28  Chris Blumenberg  <cblu@apple.com>
52011
52012	Fixed: <rdar://problem/3543041>: when pasting an image, cursor should be after the image, not before
52013
52014        Reviewed by rjw.
52015
52016        * khtml/xml/dom_docimpl.cpp:
52017        (DocumentImpl::pasteHTMLString): when the last node of the paste is non-text, use 1 instead of 0 as the start offset of the caret
52018
520192004-01-28  Ken Kocienda  <kocienda@apple.com>
52020
52021        Reviewed by Hyatt
52022
52023	A small collection of fixes and improvements to editing.
52024
52025	Added a forwarding header for dom_position.h
52026	Added some debugging output to KHTMLSelection
52027	Added support for left arrow navigation.
52028	Greatly improved support for right arrow navigation.
52029	Added include guards to dom_position.h. Oops!
52030	Removed pruneEmptyNodes() function from htmlediting.cpp. That was crack.
52031	Improved the text insert command so that it splits the text node being
52032	    operated on only when necessary.
52033	Added support for placing the caret in and arrowing into BR elements.
52034	Moved precedesLineBreak/followsLineBreak from RenderText to RenderObject.	
52035
52036        * ForwardingHeaders/dom/dom_position.h: Added.
52037        * khtml/dom/dom_position.h:
52038        * khtml/editing/htmlediting.cpp:
52039        (InputTextCommand::apply):
52040        (DeleteTextCommand::apply):
52041        * khtml/khtml_selection.cpp:
52042        (KHTMLSelection::setSelection):
52043        (KHTMLSelection::alterSelection):
52044        (KHTMLSelection::update):
52045        (KHTMLSelection::previousCharacterPosition):
52046        (KHTMLSelection::nextCharacterPosition):
52047        (startAndEndLineNodesIncludingNode):
52048        (KHTMLSelection::debugRenderer):
52049        (KHTMLSelection::debugPosition):
52050        * khtml/khtml_selection.h:
52051        * khtml/rendering/render_br.cpp:
52052        (RenderBR::RenderBR):
52053        (RenderBR::position):
52054        (RenderBR::caretMaxOffset):
52055        (RenderBR::caretPos):
52056        * khtml/rendering/render_br.h:
52057        (khtml::RenderBR::xPos):
52058        (khtml::RenderBR::yPos):
52059        (khtml::RenderBR::height):
52060        * khtml/rendering/render_object.cpp:
52061        (RenderObject::precedesLineBreak):
52062        (RenderObject::followsLineBreak):
52063        (RenderObject::isEditable):
52064        * khtml/rendering/render_object.h:
52065        * khtml/rendering/render_text.cpp:
52066        (RenderText::caretPos):
52067        (RenderText::position):
52068        (RenderText::caretMaxOffset):
52069        * khtml/rendering/render_text.h:
52070        * khtml/xml/dom_elementimpl.cpp:
52071        (ElementImpl::defaultEventHandler):
52072
520732004-01-28  David Hyatt  <hyatt@apple.com>
52074
52075	Fix for 3537694, make blocks for parents of inline children be axobjects.
52076	
52077        Reviewed by kocienda
52078
52079        * kwq/KWQAccObject.mm:
52080        (-[KWQAccObject role]):
52081        (-[KWQAccObject accessibilityIsIgnored]):
52082
520832004-01-28  David Hyatt  <hyatt@apple.com>
52084
52085	Make AtomicString a new class that owns DOMStrings, instead of using KJS::Identifier.  One day when we
52086	convert DOMString and UString to have the same underlying rep, then these classes could possibly re-merge.
52087	For now this provides an easy migration path for all the code that is using DOMStringImpl*.
52088
52089	Also fixed a bug with float clearing in the style cascade.
52090	
52091        Reviewed by darin
52092
52093        * khtml/css/cssparser.h:
52094        (DOM::atomicString):
52095        * khtml/css/cssstyleselector.cpp:
52096        (khtml::CSSStyleSelector::checkOneSelector):
52097        (khtml::CSSStyleSelector::applyRule):
52098        * khtml/dom/dom_string.cpp:
52099        (DOMString::DOMString):
52100        * khtml/xml/dom_nameimpl.cpp:
52101        (DOM::AtomicStringStatisticsExitLogger::~AtomicStringStatisticsExitLogger):
52102        (DOM::AtomicString::equal):
52103        (DOM::AtomicString::add):
52104        (DOM::AtomicString::insert):
52105        (DOM::AtomicString::remove):
52106        (DOM::AtomicString::expand):
52107        (DOM::AtomicString::shrink):
52108        (DOM::AtomicString::rehash):
52109        (DOM::AtomicString::null):
52110        (DOM::AtomicString::init):
52111        (DOM::operator==):
52112        (DOM::equalsIgnoreCase):
52113        * khtml/xml/dom_nameimpl.h:
52114        (DOM::AtomicString::AtomicString):
52115        (DOM::AtomicString:::m_string):
52116        (DOM::AtomicString::string):
52117        (DOM::AtomicString::qstring):
52118        (DOM::AtomicString::implementation):
52119        (DOM::AtomicString::unicode):
52120        (DOM::AtomicString::length):
52121        (DOM::AtomicString::ascii):
52122        (DOM::AtomicString::find):
52123        (DOM::AtomicString::isNull):
52124        (DOM::AtomicString::isEmpty):
52125        (DOM::AtomicString::equal):
52126        (DOM::operator==):
52127        (DOM::operator!=):
52128        * khtml/xml/dom_stringimpl.cpp:
52129        (DOM::DOMStringImpl::empty):
52130        (DOM::DOMStringImpl::DOMStringImpl):
52131        (DOM::DOMStringImpl::~DOMStringImpl):
52132        (DOM::DOMStringImpl::append):
52133        (DOM::DOMStringImpl::insert):
52134        (DOM::DOMStringImpl::truncate):
52135        (DOM::DOMStringImpl::remove):
52136        (DOM::DOMStringImpl::split):
52137        (DOM::DOMStringImpl::substring):
52138        (DOM::DOMStringImpl::replace):
52139        (DOM::DOMStringImpl::computeHash):
52140        * khtml/xml/dom_stringimpl.h:
52141        (DOM::DOMStringImpl::DOMStringImpl):
52142        (DOM::DOMStringImpl::hash):
52143        * khtml/xml/dom_textimpl.cpp:
52144        (CharacterDataImpl::CharacterDataImpl):
52145
521462004-01-27  Chris Blumenberg  <cblu@apple.com>
52147
52148	Fixed:
52149	<rdar://problem/3541812>: Implement Paste menu item
52150	<rdar://problem/3541814>: Implement Delete menu item
52151	<rdar://problem/3541811>: Implement Cut menu item
52152
52153        Reviewed by dave.
52154
52155        * khtml/xml/dom_docimpl.cpp:
52156        (DocumentImpl::deleteSelection): new
52157        (DocumentImpl::pasteHTMLString): new
52158        * khtml/xml/dom_docimpl.h:
52159        * kwq/WebCoreBridge.h:
52160        * kwq/WebCoreBridge.mm:
52161        (-[WebCoreBridge isEditable]): new
52162        (-[WebCoreBridge pasteHTMLString:]): new
52163        (-[WebCoreBridge deleteSelection]): new
52164        (-[WebCoreBridge haveSelection]): new
52165
521662004-01-27  David Hyatt  <hyatt@apple.com>
52167
52168	Add a new AtomicString type (that is really just a KJS::Identifier).  Define a Name class that will eventually
52169	be used for element and attribute names.
52170
52171	Atomize the CSS selector's "value" field, used to hold class names, identifier names, attribute values, and
52172	pseudo-element names.
52173	
52174        Reviewed by rjw
52175
52176        * ForwardingHeaders/kjs/identifier.h: Added.
52177        * WebCore.pbproj/project.pbxproj:
52178        * khtml/css/css_base.cpp:
52179        (CSSSelector::print):
52180        (CSSSelector::specificity):
52181        (CSSSelector::extractPseudoType):
52182        (CSSSelector::selectorText):
52183        * khtml/css/css_base.h:
52184        (DOM::CSSSelector::):
52185        * khtml/css/cssparser.cpp:
52186        (ParseString::lower):
52187        * khtml/css/cssparser.h:
52188        (DOM::atomicString):
52189        * khtml/css/cssstyleselector.cpp:
52190        (khtml::CSSStyleSelector::checkOneSelector):
52191        * khtml/css/parser.cpp:
52192        * khtml/css/parser.y:
52193        * khtml/html/html_elementimpl.cpp:
52194        (:NamedAttrMapImpl):
52195        (HTMLNamedAttrMapImpl::clearAttributes):
52196        (HTMLNamedAttrMapImpl::isHTMLAttributeMap):
52197        (HTMLNamedAttrMapImpl::parseClassAttribute):
52198        (HTMLNamedAttrMapImpl::matchesCSSClass):
52199        (HTMLElementImpl::parseAttribute):
52200        (HTMLElementImpl::createAttributeMap):
52201        (HTMLElementImpl::matchesCSSClass):
52202        * khtml/html/html_elementimpl.h:
52203        * khtml/html/html_objectimpl.cpp:
52204        (HTMLObjectElementImpl::recalcStyle):
52205        * khtml/html/htmltokenizer.h:
52206        (khtml::Token::addAttribute):
52207        * khtml/xml/dom_elementimpl.cpp:
52208        (ElementImpl::matchesCSSClass):
52209        (NamedAttrMapImpl::isHTMLAttributeMap):
52210        (NamedAttrMapImpl::operator=):
52211        * khtml/xml/dom_elementimpl.h:
52212        * khtml/xml/dom_nameimpl.cpp: Added.
52213        (DOM::AtomicStringList::clone):
52214        (DOM::operator==):
52215        (DOM::equalsIgnoreCase):
52216        * khtml/xml/dom_nameimpl.h: Added.
52217        (DOM::AtomicStringList:::m_next):
52218        (DOM::AtomicStringList::m_next):
52219        (DOM::AtomicStringList::~AtomicStringList):
52220        (DOM::AtomicStringList::next):
52221        (DOM::AtomicStringList::setNext):
52222        (DOM::AtomicStringList::string):
52223        (DOM::AtomicStringList::setString):
52224        (DOM::AtomicStringList::clear):
52225        (DOM::Name::Name):
52226        (DOM::Name::m_localName):
52227        (DOM::Name::namespaceURI):
52228        (DOM::Name::localName):
52229        (DOM::operator==):
52230        (DOM::operator!=):
52231        * khtml/xml/dom_nodeimpl.h:
52232
522332004-01-27  Darin Adler  <darin@apple.com>
52234
52235        Reviewed by Ken.
52236
52237        - fixed <rdar://problem/3526056>: W3C says that DEL key identifier should be U+00007F, we give ForwardDelete instead
52238
52239        * kwq/KWQEvent.mm: (keyIdentifierForKeyEvent): Correct the key identifiers for the Delete, Insert,
52240        Menu, Scroll Lock, and Select keys, as well as some obscure F25 and higher keys. Also add some
52241        explicit constants for the keys defined in NSEvent.h that we map to a key identifier using the
52242        vendor-area Unicode values (which are probably not appropriate).
52243
522442004-01-27  David Hyatt  <hyatt@apple.com>
52245
52246	Make a change suggested by kocienda to add a remove() method to InlineBoxes.
52247	
52248        Reviewed by kocienda
52249
52250        * khtml/rendering/render_box.cpp:
52251        (RenderBox::detach):
52252        (RenderBox::position):
52253        * khtml/rendering/render_line.cpp:
52254        (InlineBox::remove):
52255        * khtml/rendering/render_line.h:
52256        * khtml/rendering/render_text.cpp:
52257        (RenderText::detach):
52258        (RenderText::position):
52259
522602004-01-26  Darin Adler  <darin@apple.com>
52261
52262        Reviewed by Maciej.
52263
52264        - follow-on to the text-align change I did earlier today
52265
52266        * khtml/css/html4.css: Set input and textarea so they do not inherit text-align
52267        from their parent by doing "text-align: -khtml-auto". This fixes google.com among others.
52268
522692004-01-26  Darin Adler  <darin@apple.com>
52270
52271        Reviewed by Maciej.
52272
52273        - fixed <rdar://problem/3539414>: pop-up windows appear very narrow because of bogus width (carad.com/ebaymotors)
52274
52275        * khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): Check the "OK" result from toFloat in
52276        window.open, and omit any parameters that can't be parsed.
52277
522782004-01-26  Darin Adler  <darin@apple.com>
52279
52280        Reviewed by Maciej.
52281
52282        - fixed <rdar://problem/3537371>: REGRESSION (100-125): optgroup labels are no longer indented as they were before
52283
52284        * khtml/rendering/render_form.cpp: (RenderSelect::updateFromElement):
52285        Move code that adds spaces after code that strips whitespace. Also simplify
52286        the code a bit by using DOMString::string().
52287
522882004-01-26  Darin Adler  <darin@apple.com>
52289
52290        Reviewed by Dave.
52291
52292        - fixed <rdar://problem/3539286>: text with a transparent background color pastes as black on black
52293
52294        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::attributedString): Don't put color in the mutable
52295        string if it's entirely transparent.
52296        * kwq/KWQColor.mm: (QColor::getNSColor): Fix bug where we would return nil for RGBA of 0.
52297
522982004-01-26  Darin Adler  <darin@apple.com>
52299
52300        Reviewed by Maciej.
52301
52302        - fixed <rdar://problem/3529120>: text-align style property not respected on input fields
52303
52304        * khtml/rendering/render_form.h: Added textAlignment function.
52305        * khtml/rendering/render_form.cpp:
52306        (RenderFormElement::textAlignment): Added. Converts style alignment to Qt alignment.
52307        (RenderLineEdit::setStyle): Call textAlignment intead of using direction from style.
52308        (RenderTextArea::setStyle): Call textAlignment intead of using direction from style.
52309
52310        * kwq/KWQLineEdit.h: Added KWQNSTextAlignmentForAlignmentFlags function.
52311        * kwq/KWQLineEdit.mm:
52312        (QLineEdit::setAlignment): Use KWQNSTextAlignmentForAlignmentFlags instead of code
52313        that handles only left and right alignment.
52314        (KWQNSTextAlignmentForAlignmentFlags): Added. Converts Qt alignment to NS alignment.
52315        * kwq/KWQTextEdit.mm: (QTextEdit::setAlignment): Use KWQNSTextAlignmentForAlignmentFlags
52316        instead of code that handles only left and right alignment.
52317
523182004-01-26  Darin Adler  <darin@apple.com>
52319
52320        Reviewed by Dave.
52321
52322        - fixed <rdar://problem/3477707>: background image with apostrophe in name missing at http://www.nbc.com
52323
52324        * khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::parseAttribute): Use addCSSImageProperty
52325        instead of addCSSProperty, obviating the need for the "url()" syntax (and fixing quoting issues).
52326
52327        * khtml/html/html_tableimpl.cpp:
52328        (HTMLTableElementImpl::parseAttribute): Ditto.
52329        (HTMLTablePartElementImpl::parseAttribute): Ditto.
52330
52331        * khtml/html/html_elementimpl.h: Added addCSSStringProperty and addCSSImageProperty.
52332        * khtml/html/html_elementimpl.cpp:
52333        (HTMLElementImpl::addCSSStringProperty): Added. Calls setStringProperty. Not used yet.
52334        (HTMLElementImpl::addCSSImageProperty): Added. Calls setImageProperty.
52335
52336        * khtml/css/css_valueimpl.h: Added setStringProperty and setImageProperty.
52337        * khtml/css/css_valueimpl.cpp:
52338        (CSSStyleDeclarationImpl::setStringProperty): Added. Sets a property without parsing.
52339        (CSSStyleDeclarationImpl::setImageProperty): Added. Sets a property without parsing.
52340        You'd think we'd be able to just use setStringProperty, but that's not how the image
52341        properties work.
52342
523432004-01-26  Darin Adler  <darin@apple.com>
52344
52345        * Makefile.am: Switch from pbxbuild to xcodebuild.
52346
523472004-01-26  David Hyatt  <hyatt@apple.com>
52348
52349	Add CSS3 @namespace support.  The whole way namespaces, element, and attribute names are being handled
52350	right now is temporary.  This code gives us a baseline of functionality (for regression testing) that we
52351	can use when we implement namespaces "the right way."
52352	
52353        Reviewed by darin
52354
52355        * WebCore.pbproj/project.pbxproj:
52356        * khtml/css/css_base.cpp:
52357        (CSSSelector::specificity):
52358        (CSSSelector::selectorText):
52359        * khtml/css/css_base.h:
52360        (DOM::CSSNamespace::m_parent):
52361        (DOM::CSSNamespace::~CSSNamespace):
52362        (DOM::CSSNamespace::uri):
52363        (DOM::CSSNamespace::prefix):
52364        (DOM::CSSNamespace::namespaceForPrefix):
52365        (DOM::CSSSelector::CSSSelector):
52366        * khtml/css/css_stylesheetimpl.cpp:
52367        (CSSStyleSheetImpl::CSSStyleSheetImpl):
52368        (CSSStyleSheetImpl::addNamespace):
52369        (CSSStyleSheetImpl::determineNamespace):
52370        * khtml/css/css_stylesheetimpl.h:
52371        (DOM::CSSStyleSheetImpl::~CSSStyleSheetImpl):
52372        * khtml/css/cssparser.cpp:
52373        (CSSParser::CSSParser):
52374        (CSSParser::parseSheet):
52375        * khtml/css/cssparser.h:
52376        * khtml/css/cssstyleselector.cpp:
52377        (khtml::CSSStyleSelector::styleForElement):
52378        (khtml::CSSStyleSelector::pseudoStyleForElement):
52379        (khtml::CSSStyleSelector::checkSelector):
52380        (khtml::CSSStyleSelector::checkOneSelector):
52381        (khtml::CSSStyleSelector::buildLists):
52382        * khtml/css/html4.css:
52383        * khtml/css/parser.cpp:
52384        * khtml/css/parser.y:
52385        * khtml/xml/dom_docimpl.cpp:
52386        (DocumentImpl::DocumentImpl):
52387        (DocumentImpl::~DocumentImpl):
52388        (DocumentImpl::attrId):
52389        (DocumentImpl::attrName):
52390        (DocumentImpl::tagId):
52391        (DocumentImpl::tagName):
52392        (DocumentImpl::namespaceURI):
52393        * khtml/xml/dom_elementimpl.cpp:
52394        (NamedAttrMapImpl::getAttributeItem):
52395        * khtml/xml/dom_nodeimpl.cpp:
52396        (NodeImpl::checkSetPrefix):
52397        * khtml/xml/dom_nodeimpl.h:
52398        (DOM::namespacePart):
52399        (DOM::localNamePart):
52400        (DOM::makeId):
52401        * khtml/xml/dom_xmlimpl.cpp:
52402        (ProcessingInstructionImpl::checkStyleSheet):
52403        * khtml/xml/xml_namespace_table.cpp: Added.
52404        (DOM::XmlNamespaceTable::getNamespaceID):
52405        (DOM::XmlNamespaceTable::getNamespaceURI):
52406        * khtml/xml/xml_namespace_table.h: Added.
52407        (DOM::XmlNamespaceEntry::m_uri):
52408
524092004-01-26  Darin Adler  <darin@apple.com>
52410
52411        Reviewed by Dave.
52412
52413        - fixed <rdar://problem/3532519>: <select> menus show label property instead of tag contents (ups.com time and cost site)
52414
52415        * khtml/html/html_formimpl.cpp: (HTMLOptionElementImpl::text): Ignore the label property as
52416        a quirk. Neither WinIE nor Mozilla implement the label property, so neither shall we (except
52417        on strict pages, where we just go crazy and do everything "right").
52418
524192004-01-26  Ken Kocienda  <kocienda@apple.com>
52420
52421        Reviewed by Hyatt
52422
52423        * khtml/rendering/render_line.h:
52424        (khtml::InlineBox::isFirstLineStyle): Helper to return whether
52425	the line box has the first line style bit set.
52426        * khtml/rendering/render_text.cpp:
52427        (RenderText::caretPos): Noe correctly accounts for white space
52428	which can precede an inline text box.
52429
524302004-01-26  David Hyatt  <hyatt@apple.com>
52431
52432	Remove incremental repainting ifdef.
52433
52434        * khtml/khtmlview.h:
52435        * khtml/rendering/bidi.cpp:
52436        (khtml::RenderBlock::layoutInlineChildren):
52437        * khtml/rendering/render_block.cpp:
52438        (khtml::RenderBlock::layoutBlock):
52439        (khtml::RenderBlock::layoutBlockChildren):
52440        (khtml::RenderBlock::repaintObjectsBeforeLayout):
52441        (khtml::RenderBlock::positionNewFloats):
52442        * khtml/rendering/render_block.h:
52443        * khtml/rendering/render_box.cpp:
52444        (RenderBox::computeAbsoluteRepaintRect):
52445        (RenderBox::repaintDuringLayoutIfMoved):
52446        * khtml/rendering/render_box.h:
52447        * khtml/rendering/render_container.cpp:
52448        (RenderContainer::removeChildNode):
52449        * khtml/rendering/render_flexbox.cpp:
52450        (khtml::RenderFlexibleBox::layoutBlock):
52451        (khtml::RenderFlexibleBox::placeChild):
52452        * khtml/rendering/render_flow.cpp:
52453        (RenderFlow::getAbsoluteRepaintRect):
52454        * khtml/rendering/render_image.cpp:
52455        (RenderImage::layout):
52456        * khtml/rendering/render_layer.cpp:
52457        (RenderLayer::RenderLayer):
52458        (RenderLayer::computeRepaintRects):
52459        (RenderLayer::updateLayerPositions):
52460        (RenderLayer::updateLayerPosition):
52461        (RenderLayer::paintLayer):
52462        * khtml/rendering/render_layer.h:
52463        (khtml::RenderLayer::relativePositionOffset):
52464        * khtml/rendering/render_object.cpp:
52465        (RenderObject::setNeedsLayout):
52466        (RenderObject::setChildNeedsLayout):
52467        (RenderObject::markContainingBlocksForLayout):
52468        (RenderObject::getAbsoluteRepaintRectIncludingFloats):
52469        (RenderObject::detach):
52470        (RenderObject::scheduleRelayout):
52471        * khtml/rendering/render_object.h:
52472        * khtml/rendering/render_table.cpp:
52473        (RenderTable::layout):
52474        (RenderTableSection::layoutRows):
52475
524762004-01-26  David Hyatt  <hyatt@apple.com>
52477
52478	Preserve the integrity of the line box tree when elements get removed.  Change RenderText over to using
52479	the same data structures as inlines and blocks for maintaining its list of line boxes.
52480	
52481        Reviewed by kocienda
52482
52483        * khtml/khtml_part.cpp:
52484        (KHTMLPart::text):
52485        (KHTMLPart::customEvent):
52486        * khtml/khtml_selection.cpp:
52487        (KHTMLSelection::nextCharacterPosition):
52488        (firstRunAt):
52489        (lastRunAt):
52490        * khtml/rendering/bidi.cpp:
52491        (khtml::RenderBlock::layoutInlineChildren):
52492        * khtml/rendering/render_block.cpp:
52493        (khtml::RenderBlock::removeChild):
52494        * khtml/rendering/render_box.cpp:
52495        (RenderBox::RenderBox):
52496        (RenderBox::detach):
52497        (RenderBox::position):
52498        (RenderBox::inlineBoxWrapper):
52499        (RenderBox::deleteLineBoxWrapper):
52500        * khtml/rendering/render_box.h:
52501        * khtml/rendering/render_container.cpp:
52502        (RenderContainer::removeChildNode):
52503        * khtml/rendering/render_flow.cpp:
52504        (RenderFlow::detach):
52505        * khtml/rendering/render_line.cpp:
52506        (InlineFlowBox::removeChild):
52507        * khtml/rendering/render_line.h:
52508        (khtml::InlineBox::nextOnLine):
52509        (khtml::InlineBox::prevOnLine):
52510        (khtml::InlineBox::setNextOnLine):
52511        (khtml::InlineBox::setPrevOnLine):
52512        (khtml::InlineRunBox::prevLineBox):
52513        (khtml::InlineRunBox::nextLineBox):
52514        * khtml/rendering/render_object.cpp:
52515        (RenderObject::isEditable):
52516        (RenderObject::inlineBoxWrapper):
52517        (RenderObject::deleteLineBoxWrapper):
52518        * khtml/rendering/render_object.h:
52519        (khtml::RenderObject::documentBeingDestroyed):
52520        * khtml/rendering/render_text.cpp:
52521        (RenderText::RenderText):
52522        (RenderText::detach):
52523        (RenderText::deleteTextBoxes):
52524        (RenderText::absoluteRects):
52525        (RenderText::findNextInlineTextBox):
52526        (RenderText::nodeAtPoint):
52527        (RenderText::checkSelectionPointIgnoringContinuations):
52528        (RenderText::caretPos):
52529        (RenderText::paintObject):
52530        (RenderText::paint):
52531        (RenderText::minXPos):
52532        (RenderText::xPos):
52533        (RenderText::yPos):
52534        (RenderText::height):
52535        (RenderText::createInlineBox):
52536        (RenderText::position):
52537        (RenderText::width):
52538        (RenderText::caretMinOffset):
52539        (RenderText::caretMaxOffset):
52540        * khtml/rendering/render_text.h:
52541        (khtml::InlineTextBox:::InlineRunBox):
52542        (khtml::InlineTextBox::nextTextBox):
52543        (khtml::InlineTextBox::prevTextBox):
52544        (khtml::RenderText::firstTextBox):
52545        (khtml::RenderText::lastTextBox):
52546        * kwq/KWQAccObject.mm:
52547        (-[KWQAccObject accessibilityIsIgnored]):
52548        * kwq/KWQDef.h:
52549        * kwq/KWQKHTMLPart.mm:
52550        (KWQKHTMLPart::attributedString):
52551        * kwq/KWQRenderTreeDebug.cpp:
52552        (write):
52553
525542004-01-24  David Hyatt  <hyatt@apple.com>
52555
52556	Polish the error message from the xml tokenizer.
52557
52558        * khtml/xml/xml_tokenizer.cpp:
52559        (XMLTokenizer::finish):
52560
525612004-01-23  Ken Kocienda  <kocienda@apple.com>
52562
52563        Reviewed by Richard
52564
52565        * kwq/KWQKHTMLPart.mm:
52566        (KWQKHTMLPart::setShowsFirstResponder): Now adjusts caret visibility
52567	apprpropriately.
52568
525692004-01-23  David Hyatt  <hyatt@apple.com>
52570
52571	Stub out @namespace support.  Implement the callbacks into the stylesheet that will enable us to
52572	store namespace information for simple selectors.
52573
52574	Basically with this patch we no longer bomb when we encounter namespaced stylesheets, but we don't handle
52575	them properly yet either.
52576	
52577        Reviewed by kocienda
52578
52579        * khtml/css/css_stylesheetimpl.cpp:
52580        (CSSStyleSheetImpl::addNamespace):
52581        (CSSStyleSheetImpl::determineNamespace):
52582        * khtml/css/css_stylesheetimpl.h:
52583        * khtml/css/cssparser.cpp:
52584        (DOM::CSSParser::lex):
52585        * khtml/css/cssparser.h:
52586        * khtml/css/parser.cpp:
52587        * khtml/css/parser.h:
52588        * khtml/css/parser.y:
52589        * khtml/css/tokenizer.cpp:
52590        * khtml/css/tokenizer.flex:
52591
525922004-01-23  Ken Kocienda  <kocienda@apple.com>
52593
52594        Reviewed by Hyatt
52595
52596	Merged HTML editing progress to TOT from the branch
52597	I have been maintaining.
52598
52599        * khtml/dom/dom_position.cpp: Added.
52600        * khtml/dom/dom_position.h: Added.
52601        * khtml/editing/htmlediting.cpp: Added.
52602        * khtml/editing/htmlediting.h: Added.
52603        * khtml/khtml_selection.cpp: Added.
52604        * khtml/khtml_selection.h: Added.
52605
526062004-01-22  David Hyatt  <hyatt@apple.com>
52607
52608	Fix a bug I accidentally introduced in static positioned elements.  Add more margin collapsing tests.
52609	
52610        * ChangeLog:
52611        * khtml/rendering/render_block.cpp:
52612        (khtml::RenderBlock::layoutBlockChildren):
52613        * layout-tests/fast/block/margin-collapse/044-expected.txt: Added.
52614        * layout-tests/fast/block/margin-collapse/044.html: Added.
52615        * layout-tests/fast/block/margin-collapse/045-expected.txt: Added.
52616        * layout-tests/fast/block/margin-collapse/045.html: Added.
52617        * layout-tests/fast/block/margin-collapse/062-expected.txt: Added.
52618        * layout-tests/fast/block/margin-collapse/062.html: Added.
52619        * layout-tests/fast/block/margin-collapse/063-expected.txt: Added.
52620        * layout-tests/fast/block/margin-collapse/063.html: Added.
52621        * layout-tests/fast/block/positioning/007-expected.txt:
52622
526232004-01-22  David Hyatt  <hyatt@apple.com>
52624
52625        * khtml/rendering/render_block.cpp:
52626        (khtml::RenderBlock::layoutBlockChildren):
52627        * layout-tests/fast/block/margin-collapse/062-expected.txt: Added.
52628        * layout-tests/fast/block/margin-collapse/062.html: Added.
52629        * layout-tests/fast/block/margin-collapse/063-expected.txt: Added.
52630        * layout-tests/fast/block/margin-collapse/063.html: Added.
52631        * layout-tests/fast/block/positioning/007-expected.txt:
52632
526332004-01-22  David Hyatt  <hyatt@apple.com>
52634
52635	(1) Implement better XML error handling.
52636	(2) Fix a minor z-index bug with the 'initial' value.
52637	(3) Initial landing of XBL support.  Code is all ifnef KHTML_NO_XBL so that it can be turned off easily if
52638	XBL never comes to fruition.
52639	
52640        Reviewed by darin
52641
52642        * ForwardingHeaders/xbl/xbl_binding_manager.h: Added.
52643        * ForwardingHeaders/xbl/xbl_docimpl.h: Added.
52644        * WebCore.pbproj/project.pbxproj:
52645        * khtml/css/cssparser.cpp:
52646        (CSSParser::parseValue):
52647        * khtml/css/cssproperties.c:
52648        (hash_prop):
52649        (findProp):
52650        * khtml/css/cssproperties.h:
52651        * khtml/css/cssproperties.in:
52652        * khtml/css/cssstyleselector.cpp:
52653        (khtml::CSSStyleSelector::applyRule):
52654        * khtml/dom/dom_element.cpp:
52655        (Element::getAttributeNS):
52656        * khtml/misc/loader.cpp:
52657        (CachedXBLDocument::CachedXBLDocument):
52658        (CachedXBLDocument::~CachedXBLDocument):
52659        (CachedXBLDocument::ref):
52660        (CachedXBLDocument::deref):
52661        (CachedXBLDocument::data):
52662        (CachedXBLDocument::checkNotify):
52663        (CachedXBLDocument::error):
52664        (DocLoader::requestXBLDocument):
52665        (Cache::requestXBLDocument):
52666        (CachedObjectClient::setXBLDocument):
52667        (Cache::getStatistics):
52668        * khtml/misc/loader.h:
52669        (khtml::CachedObject::):
52670        (khtml::CachedXBLDocument::document):
52671        (khtml::CachedXBLDocument::schedule):
52672        * khtml/misc/loader_client.h:
52673        * khtml/rendering/render_style.cpp:
52674        (bindingURI):
52675        (marquee):
52676        (StyleCSS3NonInheritedData::~StyleCSS3NonInheritedData):
52677        (StyleCSS3NonInheritedData::bindingsEquivalent):
52678        (StyleCSS3NonInheritedData::operator==):
52679        (:m_next):
52680        (BindingURI::~BindingURI):
52681        (BindingURI::copy):
52682        (BindingURI::operator==):
52683        (RenderStyle::addBindingURI):
52684        * khtml/rendering/render_style.h:
52685        (khtml::BindingURI::operator!=):
52686        (khtml::BindingURI::next):
52687        (khtml::BindingURI::setNext):
52688        (khtml::BindingURI::uri):
52689        (khtml::RenderStyle::bindingURIs):
52690        (khtml::RenderStyle::setHasAutoZIndex):
52691        (khtml::RenderStyle::setZIndex):
52692        (khtml::RenderStyle::deleteBindingURIs):
52693        (khtml::RenderStyle::inheritBindingURIs):
52694        * khtml/xbl/xbl_binding.cpp: Added.
52695        (XBL::m_markedForDeath):
52696        (XBL::XBLBindingChain::~XBLBindingChain):
52697        (XBL::XBLBindingChain::firstStyleBindingChain):
52698        (XBL::XBLBindingChain::lastBindingChain):
52699        (XBL::XBLBindingChain::insertBindingChain):
52700        (XBL::XBLBindingChain::markForDeath):
52701        (XBL::XBLBindingChain::loaded):
52702        (XBL::XBLBindingChain::hasStylesheets):
52703        (XBL::XBLBindingChain::failed):
52704        (XBL::m_nextBinding):
52705        (XBL::XBLBinding::~XBLBinding):
52706        (XBL::XBLBinding::loaded):
52707        (XBL::XBLBinding::setXBLDocument):
52708        * khtml/xbl/xbl_binding.h: Added.
52709        (XBL::):
52710        (XBL::XBLBindingChain::uri):
52711        (XBL::XBLBindingChain::nextChain):
52712        (XBL::XBLBindingChain::previousChain):
52713        (XBL::XBLBindingChain::setNextBindingChain):
52714        (XBL::XBLBindingChain::setPreviousBindingChain):
52715        (XBL::XBLBindingChain::markedForDeath):
52716        (XBL::XBLBindingChain::element):
52717        * khtml/xbl/xbl_binding_manager.cpp: Added.
52718        (XBL::m_bindingChainTable):
52719        (XBL::XBLBindingManager::~XBLBindingManager):
52720        (XBL::XBLBindingManager::getBindingChain):
52721        (XBL::XBLBindingManager::setBindingChain):
52722        (XBL::XBLBindingManager::loadBindings):
52723        (XBL::XBLBindingManager::checkLoadState):
52724        * khtml/xbl/xbl_binding_manager.h: Added.
52725        * khtml/xbl/xbl_docimpl.cpp: Added.
52726        (XBL:::DocumentImpl):
52727        (XBL::XBLDocumentImpl::~XBLDocumentImpl):
52728        (XBL::XBLDocumentImpl::createTokenHandler):
52729        (XBL::XBLDocumentImpl::setPrototypeBinding):
52730        (XBL::XBLDocumentImpl::prototypeBinding):
52731        * khtml/xbl/xbl_docimpl.h: Added.
52732        (XBL::):
52733        * khtml/xbl/xbl_protobinding.cpp: Added.
52734        (XBL::m_handler):
52735        (XBL::XBLPrototypeBinding::initialize):
52736        (XBL::XBLPrototypeBinding::document):
52737        (XBL::XBLPrototypeBinding::addResource):
52738        * khtml/xbl/xbl_protobinding.h: Added.
52739        (XBL::XBLPrototypeBinding::element):
52740        (XBL::XBLPrototypeBinding::setHandler):
52741        (XBL::XBLPrototypeBinding::handler):
52742        * khtml/xbl/xbl_protohandler.cpp: Added.
52743        (XBL::m_unused):
52744        (XBL::XBLPrototypeHandler::~XBLPrototypeHandler):
52745        (XBL::XBLPrototypeHandler::appendData):
52746        * khtml/xbl/xbl_protohandler.h: Added.
52747        (XBL::XBLPrototypeHandler::setNext):
52748        (XBL::XBLPrototypeHandler::next):
52749        * khtml/xbl/xbl_protoimplementation.cpp: Added.
52750        (XBL::m_compiled):
52751        (XBL::m_next):
52752        (XBL::XBLPrototypeMember::appendData):
52753        (XBL:::XBLPrototypeMember):
52754        (XBL::XBLPrototypeMethod::isConstructor):
52755        (XBL::XBLPrototypeMethod::isDestructor):
52756        (XBL::XBLPrototypeMethod::addParameter):
52757        (XBL:::XBLPrototypeMethod):
52758        (XBL::XBLPrototypeConstructor::isConstructor):
52759        (XBL::XBLPrototypeDestructor::isDestructor):
52760        (XBL::m_readonly):
52761        (XBL::XBLPrototypeProperty::appendGetterText):
52762        (XBL::XBLPrototypeProperty::appendSetterText):
52763        * khtml/xbl/xbl_protoimplementation.h: Added.
52764        (XBL::XBLPrototypeMember::~XBLPrototypeMember):
52765        (XBL::XBLPrototypeMember::setNext):
52766        (XBL::XBLPrototypeMember::next):
52767        (XBL::XBLPrototypeImplementation::~XBLPrototypeImplementation):
52768        (XBL::XBLPrototypeImplementation::setMember):
52769        (XBL::XBLPrototypeParameter::m_next):
52770        (XBL::XBLPrototypeParameter::~XBLPrototypeParameter):
52771        (XBL::XBLPrototypeParameter::next):
52772        (XBL::XBLPrototypeParameter::setNext):
52773        (XBL::):
52774        * khtml/xbl/xbl_tokenizer.cpp: Added.
52775        (XBL::XBLTokenHandler::XBLTokenHandler):
52776        (XBL::XBLTokenHandler::~XBLTokenHandler):
52777        (XBL::XBLTokenHandler::xblDocument):
52778        (XBL::XBLTokenHandler::startElement):
52779        (XBL::XBLTokenHandler::endElement):
52780        (XBL::XBLTokenHandler::characters):
52781        (XBL::XBLTokenHandler::createBinding):
52782        (XBL::XBLTokenHandler::createHandler):
52783        (XBL::XBLTokenHandler::createResource):
52784        (XBL::XBLTokenHandler::createImplementation):
52785        (XBL::XBLTokenHandler::addMember):
52786        (XBL::XBLTokenHandler::createConstructor):
52787        (XBL::XBLTokenHandler::createDestructor):
52788        (XBL::XBLTokenHandler::createField):
52789        (XBL::XBLTokenHandler::createProperty):
52790        (XBL::XBLTokenHandler::createMethod):
52791        (XBL::XBLTokenHandler::createParameter):
52792        * khtml/xbl/xbl_tokenizer.h: Added.
52793        (XBL::):
52794        * khtml/xml/dom_docimpl.cpp:
52795        (DocumentImpl::DocumentImpl):
52796        (DocumentImpl::~DocumentImpl):
52797        (DocumentImpl::createTokenHandler):
52798        (DocumentTypeImpl::DocumentTypeImpl):
52799        (DocumentTypeImpl::~DocumentTypeImpl):
52800        * khtml/xml/dom_docimpl.h:
52801        (DOM::DocumentImpl::bindingManager):
52802        * khtml/xml/dom_elementimpl.cpp:
52803        (ElementImpl::getAttributeNS):
52804        (ElementImpl::childAllowed):
52805        * khtml/xml/dom_elementimpl.h:
52806        (DOM::ElementImpl::getAttribute):
52807        * khtml/xml/dom_nodeimpl.cpp:
52808        * khtml/xml/xml_tokenizer.cpp:
52809        (XMLHandler::XMLHandler):
52810        (XMLHandler::startDocument):
52811        (XMLHandler::startElement):
52812        (XMLHandler::endElement):
52813        (XMLHandler::startCDATA):
52814        (XMLHandler::endCDATA):
52815        (XMLHandler::characters):
52816        (XMLHandler::comment):
52817        (XMLHandler::processingInstruction):
52818        (XMLHandler::warning):
52819        (XMLHandler::error):
52820        (XMLHandler::fatalError):
52821        (XMLTokenizer::finish):
52822        * khtml/xml/xml_tokenizer.h:
52823        * kwq/KWQXmlSimpleReader.h:
52824        (QXmlSimpleReader::sawError):
52825        (QXmlSimpleReader::recordError):
52826        * kwq/KWQXmlSimpleReader.mm:
52827        (warningHandler):
52828        (fatalErrorHandler):
52829        (normalErrorHandler):
52830        (QXmlSimpleReader::parse):
52831
528322004-01-22  Chris Blumenberg  <cblu@apple.com>
52833
52834	Fixed: <rdar://problem/3537542>: support for copying HTML
52835
52836        Reviewed by dave.
52837
52838        * khtml/xml/dom2_rangeimpl.cpp:
52839        (RangeImpl::toHTML): implemented
52840        * khtml/xml/dom_nodeimpl.cpp:
52841        (NodeImpl::recursive_toHTMLWithRange): new
52842        * khtml/xml/dom_nodeimpl.h:
52843        * kwq/WebCoreBridge.h:
52844        * kwq/WebCoreBridge.mm:
52845        (-[WebCoreBridge selectedHTML]): new
52846        (-[WebCoreBridge reconstructedSource]): new
52847
528482004-01-21  David Hyatt  <hyatt@apple.com>
52849
52850	Fix for two margin collapsing edge cases.
52851	
52852        Reviewed by darin
52853
52854        * khtml/rendering/render_block.cpp:
52855        (khtml::RenderBlock::layoutBlockChildren):
52856
528572004-01-21  David Hyatt  <hyatt@apple.com>
52858
52859	Switch from expat to libxml and implement namespace support in the simplereader.
52860	
52861        Reviewed by darin
52862
52863        * ChangeLog:
52864        * expat/Changes: Removed.
52865        * expat/MANIFEST: Removed.
52866        * expat/README: Removed.
52867        * expat/expat_config.h: Removed.
52868        * expat/lib/ascii.h: Removed.
52869        * expat/lib/asciitab.h: Removed.
52870        * expat/lib/expat.h: Removed.
52871        * expat/lib/iasciitab.h: Removed.
52872        * expat/lib/internal.h: Removed.
52873        * expat/lib/latin1tab.h: Removed.
52874        * expat/lib/nametab.h: Removed.
52875        * expat/lib/utf8tab.h: Removed.
52876        * expat/lib/xmlparse.c: Removed.
52877        * expat/lib/xmlrole.c: Removed.
52878        * expat/lib/xmlrole.h: Removed.
52879        * expat/lib/xmltok.c: Removed.
52880        * expat/lib/xmltok.h: Removed.
52881        * expat/lib/xmltok_impl.c: Removed.
52882        * expat/lib/xmltok_impl.h: Removed.
52883        * expat/lib/xmltok_ns.c: Removed.
52884        * kwq/KWQXmlAttributes.h:
52885        (QXmlAttributes::QXmlAttributes):
52886        (QXmlAttributes::qName):
52887        (QXmlAttributes::uri):
52888        * kwq/KWQXmlAttributes.mm:
52889        (QXmlAttributes::QXmlAttributes):
52890        (QXmlAttributes::~QXmlAttributes):
52891        (QXmlAttributes::operator=):
52892        (QXmlAttributes::localName):
52893        (QXmlAttributes::split):
52894        * kwq/KWQXmlSimpleReader.h:
52895        (KWQXmlNamespace::m_ref):
52896        (KWQXmlNamespace::uriForPrefix):
52897        (KWQXmlNamespace::ref):
52898        (KWQXmlNamespace::deref):
52899        (QXmlParseException::QXmlParseException):
52900        (QXmlParseException::message):
52901        (QXmlParseException::columnNumber):
52902        (QXmlParseException::lineNumber):
52903        (QXmlSimpleReader::errorHandler):
52904        (QXmlSimpleReader::xmlNamespace):
52905        (QXmlSimpleReader::parserStopped):
52906        * kwq/KWQXmlSimpleReader.mm:
52907        (startElementHandler):
52908        (endElementHandler):
52909        (charactersHandler):
52910        (processingInstructionHandler):
52911        (cdataBlockHandler):
52912        (commentHandler):
52913        (warningHandler):
52914        (fatalErrorHandler):
52915        (QXmlSimpleReader::pushNamespaces):
52916        (QXmlSimpleReader::popNamespaces):
52917        (QXmlSimpleReader::parse):
52918        (QXmlSimpleReader::stopParsing):
52919        (QXmlSimpleReader::lineNumber):
52920        (QXmlSimpleReader::columnNumber):
52921
529222004-01-21  David Hyatt  <hyatt@apple.com>
52923
52924        * ForwardingHeaders/xbl/xbl_binding_manager.h: Added.
52925        * ForwardingHeaders/xbl/xbl_docimpl.h: Added.
52926        * WebCore.pbproj/project.pbxproj:
52927        * expat/COPYING: Removed.
52928        * expat/Changes: Removed.
52929        * expat/MANIFEST: Removed.
52930        * expat/README: Removed.
52931        * expat/expat_config.h: Removed.
52932        * expat/lib/ascii.h: Removed.
52933        * expat/lib/asciitab.h: Removed.
52934        * expat/lib/expat.h: Removed.
52935        * expat/lib/iasciitab.h: Removed.
52936        * expat/lib/internal.h: Removed.
52937        * expat/lib/latin1tab.h: Removed.
52938        * expat/lib/nametab.h: Removed.
52939        * expat/lib/utf8tab.h: Removed.
52940        * expat/lib/xmlparse.c: Removed.
52941        * expat/lib/xmlrole.c: Removed.
52942        * expat/lib/xmlrole.h: Removed.
52943        * expat/lib/xmltok.c: Removed.
52944        * expat/lib/xmltok.h: Removed.
52945        * expat/lib/xmltok_impl.c: Removed.
52946        * expat/lib/xmltok_impl.h: Removed.
52947        * expat/lib/xmltok_ns.c: Removed.
52948        * khtml/css/cssparser.cpp:
52949        (CSSParser::parseValue):
52950        * khtml/css/cssproperties.c:
52951        (hash_prop):
52952        (findProp):
52953        * khtml/css/cssproperties.h:
52954        * khtml/css/cssproperties.in:
52955        * khtml/css/cssstyleselector.cpp:
52956        (khtml::CSSStyleSelector::applyRule):
52957        * khtml/dom/dom_element.cpp:
52958        (Element::getAttributeNS):
52959        * khtml/misc/loader.cpp:
52960        (CachedXBLDocument::CachedXBLDocument):
52961        (CachedXBLDocument::~CachedXBLDocument):
52962        (CachedXBLDocument::ref):
52963        (CachedXBLDocument::deref):
52964        (CachedXBLDocument::data):
52965        (CachedXBLDocument::checkNotify):
52966        (CachedXBLDocument::error):
52967        (DocLoader::requestXBLDocument):
52968        (Cache::requestXBLDocument):
52969        (CachedObjectClient::setXBLDocument):
52970        (Cache::getStatistics):
52971        * khtml/misc/loader.h:
52972        (khtml::CachedObject::):
52973        (khtml::CachedXBLDocument::document):
52974        (khtml::CachedXBLDocument::schedule):
52975        * khtml/misc/loader_client.h:
52976        * khtml/rendering/render_block.cpp:
52977        (khtml::RenderBlock::layoutBlockChildren):
52978        * khtml/rendering/render_style.cpp:
52979        (bindingURI):
52980        (marquee):
52981        (StyleCSS3NonInheritedData::~StyleCSS3NonInheritedData):
52982        (StyleCSS3NonInheritedData::bindingsEquivalent):
52983        (StyleCSS3NonInheritedData::operator==):
52984        (:m_next):
52985        (BindingURI::~BindingURI):
52986        (BindingURI::copy):
52987        (BindingURI::operator==):
52988        (RenderStyle::addBindingURI):
52989        * khtml/rendering/render_style.h:
52990        (khtml::BindingURI::operator!=):
52991        (khtml::BindingURI::next):
52992        (khtml::BindingURI::setNext):
52993        (khtml::BindingURI::uri):
52994        (khtml::RenderStyle::bindingURIs):
52995        (khtml::RenderStyle::setHasAutoZIndex):
52996        (khtml::RenderStyle::setZIndex):
52997        (khtml::RenderStyle::deleteBindingURIs):
52998        (khtml::RenderStyle::inheritBindingURIs):
52999        * khtml/xbl/xbl_binding.cpp: Added.
53000        (XBL::m_markedForDeath):
53001        (XBL::XBLBindingChain::~XBLBindingChain):
53002        (XBL::XBLBindingChain::firstStyleBindingChain):
53003        (XBL::XBLBindingChain::lastBindingChain):
53004        (XBL::XBLBindingChain::insertBindingChain):
53005        (XBL::XBLBindingChain::markForDeath):
53006        (XBL::XBLBindingChain::loaded):
53007        (XBL::XBLBindingChain::hasStylesheets):
53008        (XBL::XBLBindingChain::failed):
53009        (XBL::m_nextBinding):
53010        (XBL::XBLBinding::~XBLBinding):
53011        (XBL::XBLBinding::loaded):
53012        (XBL::XBLBinding::setXBLDocument):
53013        * khtml/xbl/xbl_binding.h: Added.
53014        (XBL::):
53015        (XBL::XBLBindingChain::uri):
53016        (XBL::XBLBindingChain::nextChain):
53017        (XBL::XBLBindingChain::previousChain):
53018        (XBL::XBLBindingChain::setNextBindingChain):
53019        (XBL::XBLBindingChain::setPreviousBindingChain):
53020        (XBL::XBLBindingChain::markedForDeath):
53021        (XBL::XBLBindingChain::element):
53022        * khtml/xbl/xbl_binding_manager.cpp: Added.
53023        (XBL::m_bindingChainTable):
53024        (XBL::XBLBindingManager::~XBLBindingManager):
53025        (XBL::XBLBindingManager::getBindingChain):
53026        (XBL::XBLBindingManager::setBindingChain):
53027        (XBL::XBLBindingManager::loadBindings):
53028        (XBL::XBLBindingManager::checkLoadState):
53029        * khtml/xbl/xbl_binding_manager.h: Added.
53030        * khtml/xbl/xbl_docimpl.cpp: Added.
53031        (XBL:::DocumentImpl):
53032        (XBL::XBLDocumentImpl::~XBLDocumentImpl):
53033        (XBL::XBLDocumentImpl::createTokenHandler):
53034        (XBL::XBLDocumentImpl::setPrototypeBinding):
53035        (XBL::XBLDocumentImpl::prototypeBinding):
53036        * khtml/xbl/xbl_docimpl.h: Added.
53037        (XBL::):
53038        * khtml/xbl/xbl_protobinding.cpp: Added.
53039        (XBL::m_handler):
53040        (XBL::XBLPrototypeBinding::initialize):
53041        (XBL::XBLPrototypeBinding::document):
53042        (XBL::XBLPrototypeBinding::addResource):
53043        * khtml/xbl/xbl_protobinding.h: Added.
53044        (XBL::XBLPrototypeBinding::element):
53045        (XBL::XBLPrototypeBinding::setHandler):
53046        (XBL::XBLPrototypeBinding::handler):
53047        * khtml/xbl/xbl_protohandler.cpp: Added.
53048        (XBL::m_unused):
53049        (XBL::XBLPrototypeHandler::~XBLPrototypeHandler):
53050        (XBL::XBLPrototypeHandler::appendData):
53051        * khtml/xbl/xbl_protohandler.h: Added.
53052        (XBL::XBLPrototypeHandler::setNext):
53053        (XBL::XBLPrototypeHandler::next):
53054        * khtml/xbl/xbl_protoimplementation.cpp: Added.
53055        (XBL::m_compiled):
53056        (XBL::m_next):
53057        (XBL::XBLPrototypeMember::appendData):
53058        (XBL:::XBLPrototypeMember):
53059        (XBL::XBLPrototypeMethod::isConstructor):
53060        (XBL::XBLPrototypeMethod::isDestructor):
53061        (XBL::XBLPrototypeMethod::addParameter):
53062        (XBL:::XBLPrototypeMethod):
53063        (XBL::XBLPrototypeConstructor::isConstructor):
53064        (XBL::XBLPrototypeDestructor::isDestructor):
53065        (XBL::m_readonly):
53066        (XBL::XBLPrototypeProperty::appendGetterText):
53067        (XBL::XBLPrototypeProperty::appendSetterText):
53068        * khtml/xbl/xbl_protoimplementation.h: Added.
53069        (XBL::XBLPrototypeMember::~XBLPrototypeMember):
53070        (XBL::XBLPrototypeMember::setNext):
53071        (XBL::XBLPrototypeMember::next):
53072        (XBL::XBLPrototypeImplementation::~XBLPrototypeImplementation):
53073        (XBL::XBLPrototypeImplementation::setMember):
53074        (XBL::XBLPrototypeParameter::m_next):
53075        (XBL::XBLPrototypeParameter::~XBLPrototypeParameter):
53076        (XBL::XBLPrototypeParameter::next):
53077        (XBL::XBLPrototypeParameter::setNext):
53078        (XBL::):
53079        * khtml/xbl/xbl_tokenizer.cpp: Added.
53080        (XBL::XBLTokenHandler::XBLTokenHandler):
53081        (XBL::XBLTokenHandler::~XBLTokenHandler):
53082        (XBL::XBLTokenHandler::xblDocument):
53083        (XBL::XBLTokenHandler::startElement):
53084        (XBL::XBLTokenHandler::endElement):
53085        (XBL::XBLTokenHandler::characters):
53086        (XBL::XBLTokenHandler::createBinding):
53087        (XBL::XBLTokenHandler::createHandler):
53088        (XBL::XBLTokenHandler::createResource):
53089        (XBL::XBLTokenHandler::createImplementation):
53090        (XBL::XBLTokenHandler::addMember):
53091        (XBL::XBLTokenHandler::createConstructor):
53092        (XBL::XBLTokenHandler::createDestructor):
53093        (XBL::XBLTokenHandler::createField):
53094        (XBL::XBLTokenHandler::createProperty):
53095        (XBL::XBLTokenHandler::createMethod):
53096        (XBL::XBLTokenHandler::createParameter):
53097        * khtml/xbl/xbl_tokenizer.h: Added.
53098        (XBL::):
53099        * khtml/xml/dom_docimpl.cpp:
53100        (DocumentImpl::DocumentImpl):
53101        (DocumentImpl::~DocumentImpl):
53102        (DocumentImpl::createTokenHandler):
53103        (DocumentTypeImpl::DocumentTypeImpl):
53104        (DocumentTypeImpl::~DocumentTypeImpl):
53105        * khtml/xml/dom_docimpl.h:
53106        (DOM::DocumentImpl::bindingManager):
53107        * khtml/xml/dom_elementimpl.cpp:
53108        (ElementImpl::getAttributeNS):
53109        * khtml/xml/dom_elementimpl.h:
53110        (DOM::ElementImpl::getAttribute):
53111        * khtml/xml/dom_nodeimpl.cpp:
53112        * khtml/xml/xml_tokenizer.cpp:
53113        (XMLHandler::startElement):
53114        (XMLTokenizer::finish):
53115        * khtml/xml/xml_tokenizer.h:
53116        * kwq/KWQXmlAttributes.h:
53117        (QXmlAttributes::QXmlAttributes):
53118        (QXmlAttributes::qName):
53119        (QXmlAttributes::uri):
53120        * kwq/KWQXmlAttributes.mm:
53121        (QXmlAttributes::QXmlAttributes):
53122        (QXmlAttributes::~QXmlAttributes):
53123        (QXmlAttributes::operator=):
53124        (QXmlAttributes::localName):
53125        (QXmlAttributes::split):
53126        * kwq/KWQXmlSimpleReader.h:
53127        (XmlNamespace::m_ref):
53128        (XmlNamespace::uriForPrefix):
53129        (XmlNamespace::ref):
53130        (XmlNamespace::deref):
53131        (QXmlParseException::QXmlParseException):
53132        (QXmlParseException::message):
53133        (QXmlParseException::columnNumber):
53134        (QXmlParseException::lineNumber):
53135        (QXmlSimpleReader::errorHandler):
53136        (QXmlSimpleReader::xmlNamespace):
53137        (QXmlSimpleReader::parserStopped):
53138        * kwq/KWQXmlSimpleReader.mm:
53139        (startElementHandler):
53140        (endElementHandler):
53141        (charactersHandler):
53142        (processingInstructionHandler):
53143        (cdataBlockHandler):
53144        (commentHandler):
53145        (warningHandler):
53146        (fatalErrorHandler):
53147        (QXmlSimpleReader::pushNamespaces):
53148        (QXmlSimpleReader::popNamespaces):
53149        (QXmlSimpleReader::parse):
53150        (QXmlSimpleReader::stopParsing):
53151        (QXmlSimpleReader::lineNumber):
53152        (QXmlSimpleReader::columnNumber):
53153        * layout-tests/fast/overflow/003.xml:
53154
531552004-01-21  David Hyatt  <hyatt@apple.com>
53156
53157	Add some methods to dicts and stacks that exist in Qt.
53158	
53159        Reviewed by darin
53160
53161        * kwq/KWQDict.h:
53162        (QDict::replace):
53163        * kwq/KWQPtrDict.h:
53164        (QPtrDict::replace):
53165        (QPtrDict::find):
53166        * kwq/KWQPtrStack.h:
53167        (QPtrStack::current):
53168        (QPtrStack::setAutoDelete):
53169
531702004-01-19  Maciej Stachowiak  <mjs@apple.com>
53171
53172        Reviewed by John, Ken, Dave.
53173
53174	<rdar://problem/3533319>: Safari allows upload of arbitrary local files w/o user's knowledge or permission
53175        
53176	* khtml/html/html_formimpl.cpp:
53177        (HTMLInputElementImpl::value): Don't fall back to the value
53178	attribute for file inputs, since that way malicious HTML could
53179	force the user to upload files unexpectedly.
53180
531812004-01-18  David Hyatt  <hyatt@apple.com>
53182
53183	Fix for 3532569, bugzilla patch viewer doesn't work.  My previous fix for 3531983 caused moves to happen
53184	when they should not have, due to childX and childY not being implemented at all on KWQScrollView.
53185
53186        Reviewed by darin
53187	
53188        * kwq/KWQScrollView.mm:
53189        (QScrollView::childX):
53190        (QScrollView::childY):
53191
53192=== Safari-124 ===
53193
531942004-01-16  David Hyatt  <hyatt@apple.com>
53195
53196	Fix for 3531983, fixed positioning not working for widgets.  Make sure to move widgets at paint time
53197	if necessary.
53198	
53199        Reviewed by darin
53200	
53201        * khtml/rendering/render_replaced.cpp:
53202        (RenderWidget::paintObject):
53203
532042004-01-15  David Hyatt  <hyatt@apple.com>
53205
53206	Fix for 3530734, many java applets don't show up.  Go ahead and just use the width/height from the style
53207	system as the initial size when the width/height are fixed.
53208	
53209        Reviewed by rjw
53210
53211        * khtml/rendering/render_applet.cpp:
53212        (RenderApplet::createWidgetIfNecessary):
53213
532142004-01-15  Richard Williamson   <rjw@apple.com>
53215
53216	Fixed 3529426.  Exclude pages that contain Java applets from 
53217	the page cache.  The means applets get the normal stop/destroy
53218	messages that they expect when a user leaves a page.
53219
53220        Reviewed by John.
53221
53222        * kwq/KWQKHTMLPart.mm:
53223        (KWQKHTMLPart::canCachePage):
53224
532252004-01-15  Vicki Murley  <vicki@apple.com>
53226
53227        Reviewed by Darin.
53228
53229        * WebCore.pbproj/project.pbxproj: Update copyright date to 2004.
53230
532312004-01-15  Darin Adler  <darin@apple.com>
53232
53233        Reviewed by Ken.
53234
53235        - fixed 3529943: REGRESSION (119-120): nil-deref in KHTMLPart::javaEnabled when hitting back button
53236
53237        * khtml/html/html_objectimpl.cpp: (HTMLAppletElementImpl::getAppletInstance):
53238        Add missing nil check that the other call to javaEnabled has.
53239
53240=== Safari-122 ===
53241
532422004-01-14  David Hyatt  <hyatt@apple.com>
53243
53244	Fix for 3527819, marquee makes page layout too wide.  Make sure marquees have a minimum width of 0.
53245	
53246        Reviewed by john
53247
53248        * khtml/rendering/render_block.cpp:
53249        (khtml::RenderBlock::calcMinMaxWidth):
53250        (khtml::RenderBlock::calcInlineMinMaxWidth):
53251
532522004-01-13  David Hyatt  <hyatt@apple.com>
53253
53254	Fix for 3527707, crash on w3c css page.  Make sure height isn't allowed to be negative when computing
53255	positioned elements' heights.  Also bulletproof the crash in case there are other negative height code
53256	paths.
53257	
53258        Reviewed by john
53259
53260        * khtml/rendering/render_block.cpp:
53261        (khtml::RenderBlock::layoutBlock):
53262        (khtml::RenderBlock::getAbsoluteRepaintRectIncludingFloats):
53263        * khtml/rendering/render_box.cpp:
53264        (RenderBox::calcAbsoluteVertical):
53265
532662004-01-13  Maciej Stachowiak  <mjs@apple.com>
53267
53268        Reviewed by Darin.
53269
53270	<rdar://problem/3527853>: REGRESSION (119-120): Peoplesoft menus do not work
53271	
53272        * kwq/KWQKHTMLPart.mm:
53273        (KWQKHTMLPart::scrollToAnchor): Right before calling checkCompleted(), set
53274	m_bComplete to false, so it can get set right back to true if we're actually done
53275	loading and fire all the right signals.
53276
532772004-01-13  David Hyatt  <hyatt@apple.com>
53278
53279	Fix for 3526710, applets need to have the correct initial size after a layout has been done, since our
53280	Java applets can't yet resize.
53281	
53282        Reviewed by john
53283
53284        * khtml/rendering/render_applet.cpp:
53285        (RenderApplet::createWidgetIfNecessary):
53286        (RenderApplet::layout):
53287        (RenderEmptyApplet::layout):
53288
53289=== Safari-121 ===
53290
532912004-01-11  Darin Adler  <darin@apple.com>
53292
53293        - fixed Dave's check-in so it compiles; I assume he forgot to land one source file
53294
53295        * khtml/khtmlview.h: Add RenderPart to the friends of KHTMLView.
53296
532972004-01-11  David Hyatt  <hyatt@apple.com>
53298
53299	Fix for frame repainting bugs (3510669, 3515442).  This is a narrower fix than the previous attempt.
53300	
53301        Reviewed by darin
53302
53303        * khtml/rendering/render_frames.cpp:
53304        (RenderPart::updateWidgetPositions):
53305        * khtml/rendering/render_frames.h:
53306        * khtml/rendering/render_replaced.cpp:
53307        (RenderWidget::updateWidgetPositions):
53308
533092004-01-10  Darin Adler  <darin@apple.com>
53310
53311        Reviewed by John.
53312
53313        - fixed 3525468: REGRESSION (114-115): HOMEPAGE: after hitting textarea limit, backspace key is ignored
53314
53315        * kwq/KWQEvent.mm:
53316        (keyIdentifierForKeyEvent): Treat 7F as 08; matches other browsers.
53317        (QKeyEvent::QKeyEvent): Ditto.
53318
533192004-01-09  David Hyatt  <hyatt@apple.com>
53320
53321	Fixes for 3510669 and 3515442, blank frame problems caused by WebKit's use of a separate needsLayout boolean.
53322	
53323        Reviewed by darin
53324
53325        * kwq/WebCoreBridge.h:
53326        * kwq/WebCoreBridge.mm:
53327        (-[WebCoreBridge setNeedsLayout]):
53328
533292004-01-08  David Hyatt  <hyatt@apple.com>
53330
53331	Fix for 3524118, floats don't repaint when moved.
53332	
53333        Reviewed by darin
53334
53335         * khtml/rendering/render_block.cpp:
53336        (khtml::RenderBlock::positionNewFloats):
53337 
533382004-01-08  David Hyatt  <hyatt@apple.com>
53339
53340	Fix for 3519003, crash in mail because <dir> and <menu> don't allow the same children as <ul> and <ol>.
53341	
53342        Reviewed by darin
53343
53344        * khtml/html/dtd.cpp:
53345        (DOM::checkChild):
53346
533472004-01-08  John Sullivan  <sullivan@apple.com>
53348
53349        - fixed <rdar://problem/3524359>: REGRESSSION (119-120): 
53350        Double click to select text in form broken
53351
53352        Reviewed by Dave and Darin.
53353
53354        * khtml/khtmlview.cpp:
53355        (KHTMLView::dispatchMouseEvent):
53356        Don't blur the focused node if that's the one you clicked on.
53357
533582004-01-07  Richard Williamson   <rjw@apple.com>
53359
53360	Fixed 3517550.  Named array lookup of applet failed, i.e.:
53361	var appletobj = document.applets['myapplet']
53362
53363        Reviewed by Chris.
53364
53365        * khtml/ecma/kjs_html.cpp:
53366        (KJS::HTMLCollection::getNamedItems):
53367
53368=== Safari-120 ===
53369
533702004-01-06  David Hyatt  <hyatt@apple.com>
53371
53372	Possible fix for table bugs 3510005 and 3492945, repainting glitches that occurred when table cells moved.
53373
53374	Fix for 33522497, empty AXElements appear in AXBrowser.
53375	
53376        Reviewed by darin
53377
53378        * khtml/rendering/render_table.cpp:
53379        (RenderTableSection::layoutRows):
53380        (RenderTableCell::setWidth):
53381        * khtml/rendering/render_table.h:
53382
53383        * kwq/KWQAccObject.mm:
53384        (-[KWQAccObject accessibilityIsIgnored]):
53385
533862004-01-06  John Sullivan  <sullivan@apple.com>
53387
53388        - fixed <rdar://problem/3484465>: REGRESSION (118): button click does 
53389        not take focus away from <textarea>; breaks Outlook Web Access
53390
53391        Reviewed by Dave.
53392
53393        * khtml/khtmlview.cpp:
53394        (KHTMLView::dispatchMouseEvent):
53395        Removed nodeimpl == nil test that was preventing button/link clicks
53396        from blurring previously-focused text field.
53397
533982004-01-06  David Hyatt  <hyatt@apple.com>
53399
53400	Fix for 3520636, infinite loop in page breaking code when printing.
53401	
53402        Reviewed by darin
53403
53404        * khtml/rendering/render_text.cpp:
53405        (RenderText::paintObject):
53406        * kwq/WebCoreBridge.mm:
53407        (-[WebCoreBridge computePageRectsWithPrintWidth:printHeight:]):
53408
534092004-01-05  David Hyatt  <hyatt@apple.com>
53410
53411	Fix for 3521466, generated image content should not try to calcWidth/height when it isn't yet rooted in
53412	the rendering tree.
53413	
53414        Reviewed by john
53415
53416        * khtml/rendering/render_image.cpp:
53417        (RenderImage::setPixmap):
53418
534192003-12-26  Darin Adler  <darin@apple.com>
53420
53421        - one more small step to make -[KWQPageState dealloc] safer
53422
53423        * kwq/KWQPageState.mm: (-[KWQPageState dealloc]): Only do the real detach() if the
53424        document is already in the detached state; we don't want to detach prematurely.
53425
534262003-12-23  John Sullivan  <sullivan@apple.com>
53427
53428        - fixed <rdar://problem/3451306>: address book search fails at Airborne 
53429        Express Corporate site (Apple Shipping wants to use it)
53430
53431        Reviewed by Darin.
53432
53433        * khtml/ecma/kjs_html.cpp:
53434        commented out definition of document.all; now sites like this one that
53435        set document.all to a value will work.
53436        * khtml/ecma/kjs_html.lut.h: regenerated this file
53437
534382003-12-23  Darin Adler  <darin@apple.com>
53439
53440        Reviewed by John.
53441
53442        - another try at fixing the -[KWQPageState dealloc] bug, even though we don't fully understand it
53443        
53444        This change saves the renderer inside the document rather than in the KWQPageState to
53445        try to eliminate the possibility that multiple KWQPageState objects could restore the
53446        same renderer multiple times, resulting in multiple detaches of the same renderer.
53447
53448        * khtml/xml/dom_docimpl.h: Add a m_savedRenderer field.
53449        * khtml/xml/dom_docimpl.cpp:
53450        (DocumentImpl::DocumentImpl): Initialize m_savedRenderer to 0.
53451        (DocumentImpl::~DocumentImpl): Added some asserts to make sure we don't get destroyed
53452        while we are in the page cache.
53453        (DocumentImpl::attach): Added an assert.
53454        (DocumentImpl::setInPageCache): Save the renderer when setting the flag, and restore
53455        the renderer when clearing it.
53456
53457        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::openURLFromPageCache): Instead of doing a restoreRenderer
53458        call, just do setInPageCache(NO), which will restore the renderer as a side effect.
53459
53460        * kwq/KWQPageState.h: Removed the renderer method and field.
53461        * kwq/KWQPageState.mm:
53462        (-[KWQPageState initWithDocument:URL:windowProperties:locationProperties:interpreterBuiltins:]):
53463        Don't store a pointer to the renderer.
53464        (-[KWQPageState clear]): New method, shared by invalidate and dealloc.
53465        (-[KWQPageState invalidate]): Removed code relating to "relinquishing object ownership";
53466        just deallocate everything here without doing a detach().
53467        (-[KWQPageState dealloc]): Removed restoreRenderer now that setInPageCache(NO) handles that.
53468        Added some assertions. Share code with invalidate by calling clear.
53469
534702003-12-22  John Sullivan  <sullivan@apple.com>
53471
53472        - fixed <rdar://problem/3508798>: ACCESSIBILITY: role/description/value strings not defined
53473
53474        Reviewed by Darin.
53475
53476        * kwq/KWQAccObject.mm:
53477        (-[KWQAccObject roleDescription]):
53478        provide not-yet-localized strings for all the role descriptions that this class uses.
53479        (-[KWQAccObject value]):
53480        return nil string rather than dummy string for the cases where we don't have a value attribute.
53481        (-[KWQAccObject accessibilityActionDescription:]):
53482        changed comment passed to UI_STRING bogus macro so it won't have to change if/when macro
53483        loses its bogosity
53484
534852003-12-22  John Sullivan  <sullivan@apple.com>
53486
53487	- WebCore part of fix for <rdar://problem/3515706>: 
53488	REGRESSION (100-118): Web Kit printing does not honor Page Setup scale factor
53489
53490        Reviewed by Darin.
53491
53492        * kwq/WebCoreBridge.h:
53493        * kwq/WebCoreBridge.mm:
53494        (-[WebCoreBridge computePageRectsWithPrintWidth:printHeight:]):
53495	renamed method for clarity; now iterates over pages horizontally as well 
53496	as vertically; assume x starts at 0 as we were already assuming that y
53497	starts at 0; now returns autoreleased result
53498
534992003-12-22  Darin Adler  <darin@apple.com>
53500
53501        Reviewed by John.
53502
53503        - follow-on to my fix for 3467919: handle collapsed spaces at the starts of runs too, not just at the
53504          end, and make sure that a space inherits style from the run it was collapsed from rather than always
53505          from the run it precedes
53506
53507        * khtml/khtml_part.cpp: (KHTMLPart::text): Add code to deal with collapsed spaces at the start of runs.
53508        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::attributedString): Change code to keep the style of a space that
53509        was collapsed at the end of the run, and use that styled space if necessary. Also add the code to deal
53510        with collapsed spaces at the start of runs. Also remove comment that refers to long-since-deleted code.
53511
535122003-12-21  Darin Adler  <darin@apple.com>
53513
53514        Reviewed by John.
53515
53516        - fixed 3467919: REGRESSION (91-92): space missing when copying text with link at start or end of line
53517
53518        * khtml/khtml_part.cpp: (KHTMLPart::text):
53519        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::attributedString):
53520        Changed both "turn HTML into text" code paths to generate spaces in a different way.
53521        First, corrected the logic so it notices spaces left out at the end of a RenderText object.
53522        Second, don't emit the space until we are emitting more text, to prevent emitting trailing
53523        spaces. To get this completely right for the attributed string case, I had to add code to
53524        adjust the offset used to mark links.
53525
535262003-12-21  Darin Adler  <darin@apple.com>
53527
53528        Reviewed by John.
53529
53530        - fixed 3477453: nowrap in a fixed-width TD is ignored on screen but not when printed (Williams-Sonoma)
53531
53532        * khtml/rendering/render_table.cpp: (RenderTableCell::setStyle):
53533        Compute the proper whitespace mode before calling the base class setStyle,
53534        since the base class setStyle may create styles that inherit from our style,
53535        and we want them to inherit the computed whitespace mode.
53536
53537        * WebCore.pbproj/project.pbxproj: Let Xcode be 1.1, as it was meant to be.
53538
535392003-12-21  Darin Adler  <darin@apple.com>
53540
53541        Reviewed by Dave.
53542
53543        - fixed a storage leak
53544
53545        * khtml/rendering/render_style.h: Added a destructor and a private unimplemented assignment
53546        operator to StyleCSS3InheritedData, since the textShadow field that needs to be allocated
53547        and deallocated and the default destructor and assignment operator don't do that.
53548        * khtml/rendering/render_style.cpp: (StyleCSS3InheritedData::~StyleCSS3InheritedData):
53549        Added destructor that deletes the textShadow object.
53550
53551        - fixed locking for JavaScript debugging tools in Caches window
53552
53553        * kwq/WebCoreJavaScript.mm:
53554        (+[WebCoreJavaScript rootObjectClasses]): Lock and unlock around call to JavaScriptCore.
53555        (+[WebCoreJavaScript garbageCollect]): Ditto.
53556
535572003-12-19  David Hyatt  <hyatt@apple.com>
53558
53559	Fix for 3483130, repaint doesn't occur when font is decreased dynamically when at the bottom of
53560	amazon.com.
53561	
53562        Reviewed by john
53563
53564        * khtml/khtml_part.cpp:
53565        (KHTMLPart::setZoomFactor):
53566        * kwq/WebCoreBridge.mm:
53567        (-[WebCoreBridge setTextSizeMultiplier:]):
53568
535692003-12-19  Richard Williamson   <rjw@apple.com>
53570
53571	Fixed 3515590.  Return Undefined to JS for applet if
53572	Java is disabled.
53573
53574        Reviewed by Chris.
53575
53576        * khtml/html/html_objectimpl.cpp:
53577        (HTMLAppletElementImpl::getAppletInstance):
53578
535792003-12-19  Maciej Stachowiak  <mjs@apple.com>
53580
53581        Reviewed by Chris.
53582
53583	<rdar://problem/3512545>: reproducible assertion failure in KWQKHTMLPart::addData scrolling to anchor while page loads
53584        
53585	* kwq/KWQKHTMLPart.mm:
53586        (KWQKHTMLPart::scrollToAnchor): Don't pretend we finished loading,
53587	because we don't actually make anchor scrolling stop the current
53588	page load.
53589
53590=== Safari-119 ===
53591
535922003-12-18  Richard Williamson   <rjw@apple.com>
53593
53594	Fixed 3511415.  We have to un-visually order visually ordered text
53595	before passing to ATSU.
53596
53597        Reviewed by John.
53598
53599        * khtml/rendering/font.cpp:
53600        (Font::drawHighlightForText):
53601        (Font::drawText):
53602        * khtml/rendering/font.h:
53603        * khtml/rendering/render_text.cpp:
53604        (InlineTextBox::paintSelection):
53605        (RenderText::paintObject):
53606        * kwq/KWQPainter.h:
53607        * kwq/KWQPainter.mm:
53608        (QPainter::drawText):
53609        (QPainter::drawHighlightForText):
53610        * kwq/WebCoreTextRenderer.h:
53611        * kwq/WebCoreTextRendererFactory.m:
53612        (WebCoreInitializeEmptyTextStyle):
53613
536142003-12-17  Richard Williamson   <rjw@apple.com>
53615
53616        * khtml/html/html_objectimpl.cpp:
53617        (HTMLAppletElementImpl::getAppletInstance):
53618        * khtml/html/html_objectimpl.h:
53619        * kwq/KWQKHTMLPart.h:
53620        * kwq/KWQKHTMLPart.mm:
53621        (KWQKHTMLPart::getAppletInstanceForView):
53622        (KWQKHTMLPart::addPluginRootObject):
53623        (KWQKHTMLPart::cleanupPluginRootObjects):
53624        * kwq/WebCoreBridge.mm:
53625        (-[WebCoreBridge init]):
53626
536272003-12-17  Darin Adler  <darin@apple.com>
53628
53629        Reviewed by Dave.
53630
53631        - fixed 3469085: can't tab to all links on aintitcool.com
53632
53633        * khtml/html/html_inlineimpl.cpp:
53634        (HTMLAnchorElementImpl::isFocusable): Re-implemented this to check width and height of
53635        all continuations, not just the main render object. Also, check the absoluteRects after
53636        checking all the render objects to catch things like floats.
53637        (HTMLAnchorElementImpl::isMouseFocusable): Clean up the code here a bit.
53638
53639        * khtml/rendering/render_inline.h:
53640        * khtml/rendering/render_inline.cpp: (RenderInline::absoluteRects):
53641        * khtml/rendering/render_object.h:
53642        * khtml/rendering/render_object.cpp: (RenderObject::absoluteRects):
53643        * khtml/rendering/render_text.h:
53644        * khtml/rendering/render_text.cpp: (RenderText::absoluteRects):
53645        * kwq/KWQAccObject.mm: (boundingBoxRect):
53646        Use QValueList instead of QPtrList for clarity and to fix storage leaks.
53647
53648=== Safari-118 ===
53649
536502003-12-16  David Hyatt  <hyatt@apple.com>
53651
53652	Fix for 3510956, crash on mezzoblue.com.  Relax the float-list searching code that runs when
53653	a float is removed.
53654	
53655        Reviewed by darin
53656
53657        * khtml/rendering/render_object.cpp:
53658        (checkFloats):
53659        (RenderObject::removeFromObjectLists):
53660
536612003-12-16  John Sullivan  <sullivan@apple.com>
53662
53663        fixed <rdar://problem/3482852>: oft-seen, non-repro, nil-deref in 
53664        HTMLTokenizer::notifyFinished (snapfish.com, etc.)
53665        
53666        At least one of the dupes of this bug is a separate (still reproducible) issue;
53667        I'll clone it back to life and test the others.
53668
53669        Reviewed by Darin.
53670
53671        * khtml/html/htmltokenizer.cpp:
53672        (HTMLTokenizer::notifyFinished):
53673        Move check of cachedScript.isEmpty() until after scriptExecution()
53674        call, because cachedScript.isEmpty() value can be changed by that call.
53675
536762003-12-15  David Hyatt  <hyatt@apple.com>
53677
53678	Fix for 3508807, positions/sizes wrong for text elts and multi-line elts for accessibility.
53679	
53680        Reviewed by john
53681
53682        * khtml/rendering/render_inline.cpp:
53683        (RenderInline::absoluteRects):
53684        * khtml/rendering/render_inline.h:
53685        * khtml/rendering/render_object.cpp:
53686        (RenderObject::absoluteRects):
53687        * khtml/rendering/render_object.h:
53688        * khtml/rendering/render_text.cpp:
53689        (RenderText::absoluteRects):
53690        * khtml/rendering/render_text.h:
53691        * kwq/KWQAccObject.mm:
53692        (boundingBoxRect):
53693        (-[KWQAccObject position]):
53694        (-[KWQAccObject size]):
53695
536962003-12-15  Richard Williamson   <rjw@apple.com>
53697
53698	Return 0 if the view doesn't have a bridge.
53699
53700        Reviewed by John.
53701
53702        * kwq/WebCoreBridge.mm:
53703        (rootForView):
53704
537052003-12-15  David Hyatt  <hyatt@apple.com>
53706
53707	Fix for 3508792.  Remove tables and cells as AxObjects.
53708	
53709        Reviewed by john
53710
53711        * kwq/KWQAccObject.mm:
53712        (-[KWQAccObject role]):
53713        (-[KWQAccObject accessibilityIsIgnored]):
53714
537152003-12-15  John Sullivan  <sullivan@apple.com>
53716
53717        - fixed <rdar://problem/3510459>: REGRESSION (100-113): Pressing button at google.com 
53718        removes focus from text field
53719
53720        Reviewed by Dave.
53721
53722        * khtml/khtmlview.cpp:
53723        (KHTMLView::dispatchMouseEvent):
53724        Don't clear the focused widget when a mousedown occurs on a widget that is focusable
53725        in the abstract sense but is not mouse focusable or currently keyboard focusable. This
53726        matches the behavior of older Safaris (clicking in background or page text will make the
53727        webview itself be first responder, but clicking on a button won't).
53728
537292003-12-14  Darin Adler  <darin@apple.com>
53730
53731        Reviewed by Maciej.
53732
53733        - fixed 3458937: nil-deref in timed layout
53734
53735        * khtml/khtmlview.cpp: (KHTMLView::layout): Add a nil check for m_part.
53736
537372003-12-14  Darin Adler  <darin@apple.com>
53738
53739        Reviewed by Maciej.
53740
53741        - fixed 3311205: click() on a file input type form element does not work bring up the file chooser as it does in IE
53742
53743        * khtml/html/html_formimpl.cpp:
53744        (HTMLInputElementImpl::click): Add a case for FILE that calls RenderFileButton's click() function.
53745        Get rid of the default case and list more cases explicitly.
53746        (HTMLInputElementImpl::accessKeyAction): Change FILE from just focus to focus/click.
53747
53748        * khtml/rendering/render_form.h: Added a click() function to RenderFileButton.
53749        * khtml/rendering/render_form.cpp:
53750        (RenderFileButton::slotTextChanged): Added call to onChange on the element to match text input
53751        fields; helpful for the test case Adobe supplied.
53752        (RenderFileButton::click): Added. Calls click() on KWQFileButton.
53753
53754        * kwq/KWQFileButton.h: Added a click function.
53755        * kwq/KWQFileButton.mm: (KWQFileButton::click): Added. Calls performClick on the file button.
53756
53757        * kwq/WebCoreBridge.h: Add a performClick method to WebCoreFileButton.
53758
537592003-12-13  Maciej Stachowiak  <mjs@apple.com>
53760
53761        Reviewed by Darin.
53762
53763	<rdar://problem/3269212>: FILEMAKER: can't use Option objects created in a different window
53764
53765        * khtml/ecma/kjs_binding.cpp:
53766        (ScriptInterpreter::updateDOMObjectDocument): Update per-document
53767	caching for the DOM object - let it be protected by both the old
53768	and the new document.
53769        * khtml/ecma/kjs_binding.h: Prototype new method.
53770        * khtml/xml/dom_nodeimpl.cpp:
53771        (NodeImpl::setDocument): New method to change a node's document pointer.
53772        (NodeImpl::checkAddChild): If the new child node is owned by the
53773	wrong document but not actually in it, change its document (using
53774	the two aforementioned methods) instead of throwing an exception.
53775	* khtml/xml/dom_nodeimpl.h: Prototype new method.
53776
537772003-12-14  Darin Adler  <darin@apple.com>
53778
53779        Reviewed by Maciej.
53780
53781        - fixed 3332280: REGRESSION (74-85): setting src of iframe results in two GETs
53782
53783        * khtml/html/html_baseimpl.h: Added openURL virtual function.
53784        * khtml/html/html_baseimpl.cpp:
53785        (HTMLFrameElementImpl::updateForNewURL): Call openURL to do the meat of the work,
53786        since it's different for frames and iframes.
53787        (HTMLFrameElementImpl::openURL): Move the part that's different for frames in here.
53788        (HTMLFrameElementImpl::parseAttribute): Call setLocation to share code.
53789        (HTMLFrameElementImpl::setLocation): Do nothing if the location is not changing.
53790        Not needed to fix this bug, but could eliminate other cases of extra GETs.
53791        (HTMLIFrameElementImpl::parseAttribute): Remove special handling of SRC, because now
53792        we will end up calling openURL, which will do the right thing for iframes.
53793        (HTMLIFrameElementImpl::openURL): Instead of doing the change to the frame directly,
53794        use updateWidget, since that's what we do for other changes to iframes. To trigger a
53795        call to updateWidget(), set needWidgetUpdate and mark the node changed.
53796
537972003-12-13  Maciej Stachowiak  <mjs@apple.com>
53798
53799        Reviewed by Darin.
53800
53801	<rdar://problem/3507885>: REGRESSION (100-116): frames missing due to cross-domain check (derstandard.at)
53802        
53803	* khtml/ecma/kjs_window.cpp:
53804        (Window::isSafeScript): Loosen the frame access rules a bit. We already allowed access to
53805	a document loaded as empty from the parent or opener. Now also allow access from any document
53806	in the same domain as the parent or opener, so that, for instance, a sibling frame can access it
53807	so long as it is in the same domain as the parent.
53808
538092003-12-13  Darin Adler  <darin@apple.com>
53810
53811        Reviewed by Maciej.
53812
53813        - fixed 3506204: homepage.mac slide show window is wrong size on 2nd monitor
53814
53815        * kwq/KWQApplication.mm: (QDesktopWidget::screenGeometry): Add code to flip the Y coordinate.
53816        This has no effect on the main screen, but a big effect on others. I used the same code to
53817        flip Y screen coordinates that is used KWQWindowWidget.mm and KWQKHTMLPartBrowserExtension.mm.
53818        * kwq/KWQKWinModule.mm: (KWinModule::workArea): Replaced the incorrect code to flip the Y
53819        coordinate here with correct code. The code flipped based on the frame of the main screen,
53820        but it needs to flip based on the frame of screen 0.
53821
538222003-12-12  Chris Blumenberg  <cblu@apple.com>
53823
53824	Fixed: <rdar://problem/3505208>: keys added to keychain from KEYGEN need better UI names
53825
53826        Reviewed by rjw.
53827
53828        * khtml/html/html_formimpl.cpp:
53829        (HTMLKeygenElementImpl::encoding): pass the page URL to signedPublicKeyAndChallengeString
53830        * kwq/KWQKSSLKeyGen.h:
53831        * kwq/KWQKSSLKeyGen.mm:
53832        (KSSLKeyGen::signedPublicKeyAndChallengeString): take a URL
53833        * kwq/WebCoreKeyGenerator.h:
53834        * kwq/WebCoreKeyGenerator.m:
53835        (-[WebCoreKeyGenerator signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:pageURL:]): take a URL
53836
538372003-12-12  David Hyatt  <hyatt@apple.com>
53838
53839	Fix for 3254534, CSS background-image style should be loaded lazily only when used.
53840	
53841        Reviewed by rjw
53842
53843        * ChangeLog:
53844        * khtml/css/css_valueimpl.cpp:
53845        (CSSImageValueImpl::CSSImageValueImpl):
53846        (CSSImageValueImpl::~CSSImageValueImpl):
53847        (CSSImageValueImpl::image):
53848        * khtml/css/css_valueimpl.h:
53849        
538502003-12-11  David Hyatt  <hyatt@apple.com>
53851
53852	WebCore part of 3453214.  This ensures that all outline styles except for auto (which has a CG bug) will
53853	be displayed properly during the PaintActionOutline phase.
53854	
53855        Reviewed by john and darin
53856
53857        * khtml/rendering/render_block.cpp:
53858        (khtml::RenderBlock::paint):
53859        * khtml/rendering/render_box.cpp:
53860        (RenderBox::setStyle):
53861        * khtml/rendering/render_canvas.cpp:
53862        (RenderCanvas::RenderCanvas):
53863        * khtml/rendering/render_canvas.h:
53864        (khtml::RenderCanvas::setMaximalOutlineSize):
53865        (khtml::RenderCanvas::maximalOutlineSize):
53866        * khtml/rendering/render_object.cpp:
53867        (RenderObject::maximalOutlineSize):
53868        * khtml/rendering/render_object.h:
53869        * khtml/rendering/render_replaced.cpp:
53870        (RenderReplaced::paint):
53871        * khtml/rendering/render_table.cpp:
53872        (RenderTable::paint):
53873        (RenderTableSection::paint):
53874        (RenderTableCell::paint):
53875
538762003-12-12  John Sullivan  <sullivan@apple.com>
53877
53878        - fixed <rdar://problem/3508825>: REGRESSION (100-116): crash in 
53879        HTMLGenericFormElementImpl::attach at sonyericsson.com
53880
53881        Reviewed by Maciej.
53882
53883        * khtml/html/html_formimpl.cpp:
53884        (HTMLGenericFormElementImpl::attach):
53885        Move a few lines inside an existing nil check to prevent nil dereference.
53886
538872003-12-12  John Sullivan  <sullivan@apple.com>
53888
53889        - fixed <rdar://problem/3508760>: tabbing to out-of-sight link behaves 
53890        differently than tabbing to out-of-sight form control
53891
53892        Reviewed by Dave.
53893
53894        * kwq/KWQScrollView.h:
53895        * kwq/KWQScrollView.mm:
53896        (QScrollView::ensureVisible):
53897        added comments and changed parameter names to reveal differences between
53898        what we've implemented and what QScrollView was intended to do.
53899        (QScrollView::ensureRectVisibleCentered):
53900        New method that calls _KWQ_scrollRectToVisible, which is the method
53901        we use when scrolling to reveal form controls.
53902
53903        * kwq/KWQKHTMLPart.mm:
53904        (KWQKHTMLPart::nextKeyViewInFrame):
53905        call ensureRectVisibleCentered so tabbing to a link will use the
53906        same scroll-to-reveal code as tabbing to a form control
53907        
539082003-12-11  Maciej Stachowiak  <mjs@apple.com>
53909
53910        Reviewed by John.
53911
53912	<rdar://problem/3507856>: XMLHttpRequest xhtml test displays but doesn't load
53913
53914        * khtml/ecma/xmlhttprequest.cpp:
53915        (KJS::XMLHttpRequestProtoFunc::tryCall): complete the URL using the document,
53916	not the htmlDocument.
53917
539182003-12-12  Richard Williamson   <rjw@apple.com>
53919
53920	Replace call to global functions with static member functions.
53921
53922        Reviewed by Ken.
53923
53924        * kwq/KWQKHTMLPart.mm:
53925        (KWQKHTMLPart::cleanupPluginRootObjects):
53926        * kwq/WebCoreBridge.mm:
53927        (rootForView):
53928        (-[WebCoreBridge init]):
53929
539302003-12-11  Maciej Stachowiak  <mjs@apple.com>
53931
53932        Reviewed by Darin.
53933
53934	<rdar://problem/3464315>: createDocument creates document with initial child element, unlike other browsers
53935	
53936        * khtml/xml/dom_docimpl.cpp:
53937        (DOMImplementationImpl::createDocument): Don;t add initial element.
53938
539392003-12-11  Maciej Stachowiak  <mjs@apple.com>
53940
53941        Reviewed by Darin. 
53942
53943	<rdar://problem/3507863>: XMLHttpRequest should not parse response if HTML
53944        
53945	* khtml/ecma/xmlhttprequest.cpp:
53946        (KJS::XMLHttpRequest::getValueProperty):
53947
539482003-12-11  Richard Williamson   <rjw@apple.com>
53949
53950	Cleaned up and verified reference counting scheme, and
53951	dereferencing of vended JavaScript objects when applet is
53952	destroyed (actually when part is destroyed).
53953
53954        Reviewed by Ken.
53955
53956        * kwq/KWQKHTMLPart.h:
53957        * kwq/KWQKHTMLPart.mm:
53958        (KWQKHTMLPart::~KWQKHTMLPart):
53959        (KWQKHTMLPart::getAppletInstanceForView):
53960        (KWQKHTMLPart::addPluginRootObject):
53961        (KWQKHTMLPart::cleanupPluginRootObjects):
53962        * kwq/WebCoreBridge.h:
53963        * kwq/WebCoreBridge.mm:
53964        (rootForView):
53965        (-[WebCoreBridge init]):
53966
539672003-12-11  Maciej Stachowiak  <mjs@apple.com>
53968
53969        Reviewed by John.
53970
53971	<rdar://problem/3507862>: XMLHttpRequest documents that reference external resources (e.g. stylesheets) cause crash
53972
53973        * khtml/html/html_headimpl.cpp:
53974        (HTMLLinkElementImpl::process):
53975        * khtml/html/htmltokenizer.cpp:
53976        (HTMLTokenizer::scriptHandler):
53977        * khtml/xml/dom_xmlimpl.cpp:
53978        (ProcessingInstructionImpl::checkStyleSheet):
53979        * khtml/xml/xml_tokenizer.cpp:
53980        (XMLHandler::processingInstruction):
53981        (XMLTokenizer::executeScripts):
53982
539832003-12-11  Maciej Stachowiak  <mjs@apple.com>
53984
53985        Reviewed by Chris.
53986
53987	<rdar://problem/3507859>: Status text should only include "OK", not full "HTTP/1.0 200 OK" status line
53988	
53989        * khtml/ecma/xmlhttprequest.cpp:
53990        (KJS::XMLHttpRequest::getStatusText): Include only the status
53991	text, not the full status line.
53992
53993=== Safari-117 ===
53994
539952003-12-11  David Hyatt  <hyatt@apple.com>
53996
53997	Fix for 3507164, scrolling really slow on hixie's web forms spec page.  Hixie has 12 little transparent layers
53998        at various points on this page, and beginning/ending transparency on only those 12 layers as you scroll
53999        is enough to kill scrolling performance.
54000
54001	This patch works around the issue by lazily beginning transparency layers only when we determine that
54002	we're actually painting a descendant layer of a transparent ancestor or a transparent layer.
54003
54004	Also fixing QColor's comparison operator.  It was broken and not comparing the "valid" bit, so invalid and
54005	valid colors were being assumed to be the same.
54006
54007	Also fixed the render dumper to not dump transparent and invalid background colors and fixed it do dump the
54008	alpha for colors with an alpha < 0xFF.
54009	
54010	Reviewed by mjs (opacity changes), darin (color changes) and john (render tree dumper changes)
54011
54012        * ChangeLog:
54013        * khtml/rendering/render_layer.cpp:
54014        (RenderLayer::RenderLayer):
54015        (RenderLayer::beginTransparencyLayers):
54016        (RenderLayer::paint):
54017        (RenderLayer::paintLayer):
54018        * khtml/rendering/render_layer.h:
54019        * kwq/KWQColor.h:
54020        (operator==):
54021        (operator!=):
54022        * kwq/KWQColor.mm:
54023        (QColor::name):
54024        * kwq/KWQRenderTreeDebug.cpp:
54025        (operator<<):
54026
540272003-12-11  Ken Kocienda  <kocienda@apple.com>
54028
54029        * kwq/KWQLoader.mm:
54030        (KWQCacheObjectExpiresTime): Fixed deployment build bustage.
54031
540322003-12-09  Ken Kocienda  <kocienda@apple.com>
54033
54034        Reviewed by Darin
54035        
54036        <rdar://problem/3505444>: WebCore cache does not use expiration dates on cache items
54037        
54038        * khtml/misc/loader.cpp:
54039        (Loader::slotFinished): Don't reset expiration date. We set this once in
54040        slotReceivedResponse.
54041        (Loader::slotReceivedResponse): Call new KWQ function to get a cache object's
54042        expiration date using its NSURLResponse data.
54043        (Cache::requestImage): Don't reset expiration date. We set this once in
54044        slotReceivedResponse, and we do not want the value from the DocLoader
54045	anyway.
54046        (Cache::requestStyleSheet): Ditto.
54047        (Cache::requestScript): Ditto.
54048        * kwq/KWQLoader.h:
54049        * kwq/KWQLoader.mm:
54050        (KWQCacheObjectExpiresTime): New function. Call over bridge to get access
54051        to SPI in NSURLResponse to calculate expiration time.
54052        * kwq/WebCoreBridge.h: Declare bridge method.
54053
540542003-12-10  Maciej Stachowiak  <mjs@apple.com>
54055
54056        Reviewed by Darin.
54057
54058	<rdar://problem/3504156>: XMLHttpRequest reuse test fails
54059	<rdar://problem/3505158>: XMLHttpRequest "abort with open" test fails
54060
54061        * khtml/ecma/xmlhttprequest.cpp:
54062        (KJS::XMLHttpRequest::open):
54063        (KJS::XMLHttpRequest::abort):
54064        (KJS::XMLHttpRequestProtoFunc::tryCall):
54065
540662003-12-10  Maciej Stachowiak  <mjs@apple.com>
54067
54068        Reviewed by Darin.
54069
54070	<rdar://problem/3507175>: Setting timeout function can allocate JS objects without lock
54071
54072        * khtml/ecma/kjs_window.cpp:
54073        (ScheduledAction::execute): Lock interpreter around code that
54074	might allocate JS objects.
54075
540762003-12-10  David Hyatt  <hyatt@apple.com>
54077
54078	Fix for 3507097, overflow:auto should include the height of the horizontal scrollbar when the height
54079	of the block is auto.
54080	
54081        Reviewed by darin
54082
54083        * khtml/rendering/bidi.cpp:
54084        (khtml::RenderBlock::layoutInlineChildren):
54085        * khtml/rendering/render_block.cpp:
54086        (khtml::RenderBlock::layoutBlock):
54087        (khtml::RenderBlock::layoutBlockChildren):
54088
540892003-12-10  Darin Adler  <darin@apple.com>
54090
54091        Reviewed by Maciej.
54092
54093        - fixed 3506739: nil-deref in DocumentImpl::setSelection triple clicking (generated content)
54094
54095        * khtml/khtml_part.cpp: (KHTMLPart::khtmlMousePressEvent): Check for the case where
54096        m_selectionEnd is 0. This doesn't fix the behavior completely, but it does prevent a crash.
54097
540982003-12-10  Maciej Stachowiak  <mjs@apple.com>
54099
54100        Reviewed by Richard.
54101
54102	<rdar://problem/3487160>: Implement synchronous loading for XMLHttpRequest
54103        
54104	* khtml/ecma/xmlhttprequest.cpp:
54105        (KJS::XMLHttpRequest::XMLHttpRequest):
54106        (KJS::XMLHttpRequest::send):
54107        (KJS::XMLHttpRequest::abort):
54108        (KJS::XMLHttpRequest::processSyncLoadResults):
54109        (KJS::XMLHttpRequest::slotRedirection):
54110        (KJS::XMLHttpRequest::slotData):
54111        * khtml/ecma/xmlhttprequest.h:
54112        * kwq/KWQLoader.h:
54113        * kwq/KWQLoader.mm:
54114        (KWQHeaderStringFromDictionary):
54115        (KWQServeSynchronousRequest):
54116        (KWQResponseHeaderString):
54117        * kwq/WebCoreBridge.h:
54118
541192003-12-10  Darin Adler  <darin@apple.com>
54120
54121        Reviewed by Maciej.
54122
54123        - fixed 3506706: REGRESSION (100-115): onkeyup handlers called twice for active input fields
54124
54125        * kwq/KWQTextArea.mm: (-[KWQTextAreaTextView keyUp:]): Don't call super because we
54126        don't want to pass the event down the responder chain.
54127        * kwq/KWQTextField.mm: (-[KWQTextField textView:shouldHandleEvent:]): Return NO for
54128        key up events because we don't want to pass the event down the responder chain.
54129
541302003-12-10  Richard Williamson   <rjw@apple.com>
54131
54132	Added method to get to the bridge from a view.  This is
54133	used to ultimately get the part and KJS::Window for a
54134	particular applet.
54135
54136        Reviewed by Hyatt.
54137
54138        * kwq/WebCoreBridge.h:
54139        * kwq/WebCoreBridge.mm:
54140        (rootForView):
54141        (-[WebCoreBridge init]):
54142        * kwq/WebCoreViewFactory.h:
54143        * kwq/WebCoreViewFactory.m:
54144
541452003-12-10  John Sullivan  <sullivan@apple.com>
54146
54147        - WebCore part of fix for:
54148        <rdar://problem/3505231>: REGRESSION (100-114): Some sites autoscroll to bottom of page when loading
54149
54150        Reviewed by Darin.
54151
54152        * kwq/KWQNSViewExtras.h:
54153        * kwq/KWQNSViewExtras.m:
54154        (-[NSView _KWQ_scrollPointRecursive:]):
54155        (-[NSView _KWQ_scrollPointRecursive:inView:]):
54156        new methods, similar to existing scrollRect methods
54157        except that the preferred position for the point is
54158        the top-left corner rather than centered in the visible area
54159        
54160        * kwq/KWQScrollView.h:
54161        * kwq/KWQScrollView.mm:
54162        (QScrollView::setContentsPosRecursive):
54163        new method, calls _KWQ_scrollPointRecursive:
54164
54165        * khtml/khtml_part.cpp:
54166        (KHTMLPart::gotoAnchor):
54167        call setContentsPosRecursive instead of setContentsPos; also remove
54168        the 50 pixel offset that upset Hyatt so.
54169        
54170
541712003-12-10  Chris Blumenberg  <cblu@apple.com>
54172
54173        * kwq/KWQKSSLKeyGen.mm:
54174        (KSSLKeyGen::signedPublicKeyAndChallengeString): removed unnecessary includes
54175
541762003-12-10  David Hyatt  <hyatt@apple.com>
54177
54178	Fix for 3505846, overflow:auto region doesn't update when scrolled.  The child layers inside an overflow:auto
54179	block were not updating their positions.
54180	
54181        Reviewed by john
54182
54183        * khtml/khtmlview.cpp:
54184        (KHTMLView::layout):
54185        * khtml/rendering/render_layer.cpp:
54186        (RenderLayer::updateLayerPositions):
54187        (RenderLayer::scrollToOffset):
54188        * khtml/rendering/render_layer.h:
54189
541902003-12-09  Maciej Stachowiak  <mjs@apple.com>
54191
54192        Reviewed by John.
54193
54194	<rdar://problem/3505795>: loading invalid XML document crashes trying to create h1 element
54195	<rdar://problem/3504158>: XMLHttpRequest xhtml test totally fails
54196        
54197	* khtml/xml/dom_docimpl.cpp:
54198        (DocumentImpl::isValidName): include "0123456789" instead of
54199	"0-9", it's not a regexp it's just a list of characters.
54200
542012003-12-09  Maciej Stachowiak  <mjs@apple.com>
54202
54203        Reviewed by John.
54204
54205	<rdar://problem/3504155>: Safari fails XMLHttpRequest abort test
54206        
54207	* khtml/ecma/xmlhttprequest.cpp:
54208        (KJS::XMLHttpRequestProtoFunc::tryCall): Avoid throwing an
54209	exception after send().
54210
542112003-12-09  David Hyatt  <hyatt@apple.com>
54212
54213	Rename -apple-aqua to auto for outline styles.
54214	
54215        Reviewed by darin
54216
54217        * khtml/css/cssparser.cpp:
54218        (CSSParser::parseValue):
54219        * khtml/css/cssstyleselector.cpp:
54220        (khtml::CSSStyleSelector::applyRule):
54221        * khtml/css/cssvalues.c:
54222        (hash_val):
54223        (findValue):
54224        * khtml/css/cssvalues.h:
54225        * khtml/css/cssvalues.in:
54226        * khtml/css/html4.css:
54227        * khtml/rendering/render_inline.cpp:
54228        (RenderInline::paintObject):
54229        * khtml/rendering/render_object.cpp:
54230        (RenderObject::drawBorder):
54231        (RenderObject::paintOutline):
54232        * khtml/rendering/render_style.h:
54233        (khtml::):
54234        (khtml::OutlineValue::OutlineValue):
54235        (khtml::RenderStyle::outlineStyleIsAuto):
54236        (khtml::RenderStyle::outlineOffset):
54237        (khtml::RenderStyle::setOutlineStyle):
54238        (khtml::RenderStyle::setOutlineOffset):
54239        * kwq/KWQRenderTreeDebug.cpp:
54240        (printBorderStyle):
54241
542422003-12-09  Maciej Stachowiak  <mjs@apple.com>
54243
54244        Reviewed by John.
54245
54246	<rdar://problem/3487195>: Implement responseXML property for XMLHttpRequest
54247        
54248        * khtml/ecma/xmlhttprequest.cpp:
54249        (KJS::XMLHttpRequest::getValueProperty): Implemented responseXML by parsing the
54250	document and returning it.
54251        (KJS::XMLHttpRequest::XMLHttpRequest): Initialize new field
54252        * khtml/ecma/xmlhttprequest.h:
54253
54254        * khtml/ecma/kjs_window.cpp: 
54255	(Windw::get): Forgot this in last commit; add XMLSerializer
54256	constructor.
54257        * khtml/ecma/kjs_window.lut.h:
54258	* khtml/ecma/Makefile.am: Forgot to include this in the last commit.
54259
542602003-12-09  Maciej Stachowiak  <mjs@apple.com>
54261
54262        Reviewed by Richard.
54263
54264	<rdar://problem/3504049>: XMLSerializer object and serializeToString method needed for XMLHttpRequest testing
54265
54266	Also fixed some lasst-minute mistakes in the DOM serialization
54267	code that was already there.
54268	
54269        * WebCore.pbproj/project.pbxproj:
54270        * khtml/dom/dom_doc.h:
54271        * khtml/ecma/Makefile.am:
54272        * khtml/ecma/kjs_window.cpp:
54273        (Window::get):
54274        * khtml/ecma/kjs_window.h:
54275        (KJS::Window::):
54276        * khtml/ecma/kjs_window.lut.h:
54277        (KJS::):
54278        * khtml/ecma/xmlserializer.cpp: Added.
54279        (KJS::XMLSerializerConstructorImp::XMLSerializerConstructorImp):
54280        (KJS::XMLSerializerConstructorImp::implementsConstruct):
54281        (KJS::XMLSerializerConstructorImp::construct):
54282        (KJS::):
54283        (KJS::XMLSerializer::XMLSerializer):
54284        (KJS::XMLSerializerProtoFunc::tryCall):
54285        * khtml/ecma/xmlserializer.h: Added.
54286        (KJS::XMLSerializer::toBoolean):
54287        (KJS::XMLSerializer::classInfo):
54288        (KJS::XMLSerializer::):
54289        * khtml/ecma/xmlserializer.lut.h: Added.
54290        (KJS::):
54291        * khtml/xml/dom_docimpl.cpp:
54292        (DocumentImpl::toString):
54293        (DocumentFragmentImpl::toString):
54294        * khtml/xml/dom_elementimpl.cpp:
54295        (AttrImpl::toString):
54296        (ElementImpl::toString):
54297
542982003-12-09  David Hyatt  <hyatt@apple.com>
54299
54300	Implement start() and stop() for marquees.
54301	
54302        Reviewed by darin
54303
54304        * khtml/ecma/kjs_html.cpp:
54305        (KJS::HTMLElement::classInfo):
54306        (KJS::HTMLElementFunction::tryCall):
54307        * khtml/ecma/kjs_html.h:
54308        (KJS::HTMLElement::):
54309        * khtml/ecma/kjs_html.lut.h:
54310        (KJS::):
54311
543122003-12-09  Darin Adler  <darin@apple.com>
54313
54314        Reviewed by John.
54315
54316        - fixed 3505277: nil-deref in ownerElement after choosing item from menu at projectnissan.com
54317
54318        * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::dispatchWindowEvent): Add check for nil.
54319
543202003-12-09  Darin Adler  <darin@apple.com>
54321
54322        Reviewed by Maciej.
54323
54324        * kwq/KWQKHTMLPart.mm:
54325        (KWQKHTMLPart::saveLocationProperties): Add locking around the call to get the location
54326        since it can allocate.
54327        (KWQKHTMLPart::restoreLocationProperties): Ditto.
54328
543292003-12-09  David Hyatt  <hyatt@apple.com>
54330
54331	Fix for mojibake bg painting problem on bofa.com.  The bug # is 3487144.  Transparent colors were not
54332	being handled properly when specified on the body.
54333	
54334        Reviewed by darin
54335
54336        * khtml/rendering/render_box.cpp:
54337        (RenderBox::paintRootBoxDecorations):
54338        (RenderBox::paintBackgroundExtended):
54339
543402003-12-09  Darin Adler  <darin@apple.com>
54341
54342        Reviewed by Dave.
54343
54344        - fixed 3505391: REGRESSION (100-116): pages that move cells around don't repaint correctly
54345
54346        * khtml/rendering/render_table.cpp: (RenderTableSection::layoutRows): Added code
54347        similar to the code in RenderBlock::layoutBlock, but for table cells.
54348
543492003-12-09  Darin Adler  <darin@apple.com>
54350
54351        Reviewed by Maciej.
54352
54353        * khtml/ecma/kjs_events.cpp: (JSEventListener::handleEvent): Add locking around the call to
54354        push event handler scope. Without this, we hit the "allocated without locking" assertion.
54355
543562003-12-09  David Hyatt  <hyatt@apple.com>
54357
54358	Fix the dirty rect checks on various render_objects to be more accurate so that page-break properties don't
54359	have mojibake when printing.
54360	
54361        Reviewed by john
54362
54363        * khtml/rendering/render_block.cpp:
54364        (khtml::RenderBlock::paint):
54365        * khtml/rendering/render_flow.cpp:
54366        (RenderFlow::paintLineBoxBackgroundBorder):
54367        (RenderFlow::paintLineBoxDecorations):
54368        * khtml/rendering/render_replaced.cpp:
54369        (RenderReplaced::paint):
54370        * khtml/rendering/render_table.cpp:
54371        (RenderTable::paint):
54372
543732003-12-09  Darin Adler  <darin@apple.com>
54374
54375        Reviewed by Richard.
54376
54377        - fixed 3500408: Web Kit should pass the MAYSCRIPT attribute from the APPLET tag to the Java plug-in
54378
54379        * khtml/html/html_objectimpl.cpp:
54380        (HTMLAppletElementImpl::parseAttribute): Allow the "mayscript" attribute.
54381        (HTMLAppletElementImpl::createRenderer): Pass the value of the "mayscript" attribute
54382        as an argument named "mayScript".
54383
54384        * khtml/misc/htmlattrs.in: Added "mayscript".
54385        * khtml/misc/htmlattrs.c: Regenerated.
54386        * khtml/misc/htmlattrs.h: Regenerated.
54387
543882003-12-09  Maciej Stachowiak  <mjs@apple.com>
54389
54390        Reviewed by Darin.
54391
54392	<rdar://problem/3501030>: JavaScript sites crash when a PAC file is in place (WebCore,Safari 1.2)
54393	
54394        * khtml/ecma/kjs_events.cpp:
54395        (JSEventListener::handleEvent): Lock interpreter when needed.
54396        (JSLazyEventListener::parseCode): Likewise.
54397        (KJS::getDOMEvent): Likewise.
54398        * khtml/ecma/kjs_proxy.cpp:
54399        (KJSProxyImpl::evaluate): Likewise.
54400        (KJSProxyImpl::initScript): Likewise.
54401
544022003-12-09  David Hyatt  <hyatt@apple.com>
54403
54404	Fix for 3491235, really make <script src="..."/> work in HTML.  My original attempt to fix this only made
54405	the tag flat, but did not ensure that the script got processed.
54406	
54407        Reviewed by john
54408
54409        * khtml/html/htmltokenizer.cpp:
54410        (HTMLTokenizer::parseTag):
54411
544122003-12-08  David Hyatt  <hyatt@apple.com>
54413
54414	Fix for 3503652, news.com misrenders badly (footer is out of position).  My fix to 3495748 caused this
54415	regression.  I made the tag priority of <nobr> too high.  It needed to be the same as <div>, and I
54416	accidentally made it higher.  I intended for it to be the same as <div>.
54417
54418	I also had to make a fix (now that <nobr> has a higher priority) to ensure <nobr> can't be nested inside
54419	other <nobr>.  
54420
54421	Both fixes were required to make news.com render correctly again.
54422	
54423        Reviewed by darin
54424
54425        * khtml/html/dtd.cpp:
54426        * khtml/html/htmlparser.cpp:
54427        (KHTMLParser::getElement):
54428
544292003-12-08  Chris Blumenberg  <cblu@apple.com>
54430
54431	Fixed: <rdar://problem/3234676>: Support for KEYGEN tag (ie 509 email certificates from www.thawte.com)
54432
54433        Reviewed by mjs.
54434
54435        * WebCore-combined.exp:
54436        * WebCore.exp:
54437        * WebCore.pbproj/project.pbxproj:
54438        * khtml/html/html_formimpl.cpp:
54439        (HTMLKeygenElementImpl::parseAttribute): store the KEYTYPE attribute
54440        (HTMLKeygenElementImpl::encoding): call KSSLKeyGen::signedPublicKeyAndChallengeString
54441        * khtml/html/html_formimpl.h: remove 2 declared but unimplemented methods
54442        * khtml/misc/htmlattrs.c: generated changes
54443        (hash_attr):
54444        (findAttr):
54445        * khtml/misc/htmlattrs.h: generated change
54446        * khtml/misc/htmlattrs.in: added KEYTYPE
54447        * kwq/KWQKSSLKeyGen.h:
54448        * kwq/KWQKSSLKeyGen.mm:
54449        (KSSLKeyGen::supportedKeySizes): call renamed strengthMenuItemTitles
54450        (KSSLKeyGen::signedPublicKeyAndChallengeString): new, calls [WebCoreKeyGenerationFactory signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:] 
54451        * kwq/WebCoreKeyGenerationFactory.h: Added.
54452        * kwq/WebCoreKeyGenerationFactory.m: Added.
54453        (+[WebCoreKeyGenerationFactory sharedFactory]):
54454        (-[WebCoreKeyGenerationFactory init]):
54455        (-[WebCoreKeyGenerationFactory strengthMenuItemTitles]):
54456        (-[WebCoreKeyGenerationFactory signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:]):
54457        * kwq/WebCoreLocalizedStringFactory.h: Removed.
54458        * kwq/WebCoreLocalizedStringFactory.m: Removed.
54459
544602003-12-08  Maciej Stachowiak  <mjs@apple.com>
54461
54462        Reviewed by Ken.
54463
54464	<rdar://problem/3504047>: XMLHttpRequest object needs onload event
54465        
54466	* khtml/ecma/xmlhttprequest.cpp:
54467        (KJS::XMLHttpRequest::getValueProperty): Implemented onload property.
54468        (KJS::XMLHttpRequest::putValue): Ditto.
54469        (KJS::XMLHttpRequest::XMLHttpRequest): Ditto.
54470        (KJS::XMLHttpRequest::changeState): Ditto.
54471        * khtml/ecma/xmlhttprequest.h:
54472        * khtml/ecma/xmlhttprequest.lut.h: Regenerated.
54473
544742003-12-08  David Hyatt  <hyatt@apple.com>
54475
54476	Fix for 3503022, asahi.com is too wide.  Bugs in line breaking of breakable Japanese characters caused
54477	the breaks to be ignored.
54478	
54479        Reviewed by john
54480
54481        * khtml/rendering/render_text.cpp:
54482        (RenderText::calcMinMaxWidth):
54483
544842003-12-05  David Hyatt  <hyatt@apple.com>
54485
54486	Fix the position method to return screen coords like it should and to use the lower left corner instead of
54487	the upper left.
54488	
54489        Reviewed by john
54490
54491        * kwq/KWQAccObject.h:
54492        * kwq/KWQAccObject.mm:
54493        (-[KWQAccObject position]):
54494        (-[KWQAccObject size]):
54495
544962003-12-07  Darin Adler  <darin@apple.com>
54497
54498        Reviewed by John.
54499
54500        - fixed 3502347: REGRESSION (100-116): bottom of login window sometimes missing (TR background image)
54501
54502        * khtml/rendering/render_object.h: Added setPixmap.
54503        * khtml/rendering/render_object.cpp: (RenderObject::setPixmap): Moved this
54504        function here from RenderBox. This code is needed for the table row class and
54505        similar classes that supply a background image that is drawn by the table cell,
54506        and those are not RenderBox subclasses.
54507
54508        * khtml/rendering/render_box.cpp: Removed setPixmap.
54509        * khtml/rendering/render_box.h: Removed setPixmap.
54510
545112003-12-06  John Sullivan  <sullivan@apple.com>
54512
54513        - fixed <rdar://problem/3502655>: REGRESSION: Repro crash at espn.com
54514
54515        Reviewed by Darin.
54516
54517        * khtml/html/html_objectimpl.cpp:
54518        (HTMLAppletElementImpl::getAppletInstance):
54519        Check for nil RenderApplet before dereferencing rather than after.
54520
545212003-12-05  David Hyatt  <hyatt@apple.com>
54522
54523	Add support for link clicking as an accessibility action.
54524	
54525        Reviewed by john
54526
54527        * kwq/KWQAccObject.mm:
54528        (-[KWQAccObject anchorElement]):
54529        (-[KWQAccObject role]):
54530        (-[KWQAccObject accessibilityAttributeNames]):
54531        (-[KWQAccObject accessibilityActionNames]):
54532        (-[KWQAccObject accessibilityActionDescription:]):
54533        (-[KWQAccObject accessibilityPerformAction:]):
54534
545352003-12-05  Maciej Stachowiak  <mjs@apple.com>
54536
54537        Reviewed by John.
54538
54539	<rdar://problem/3487222>: Add ability to create working fully standalone document object
54540	
54541        * khtml/css/cssstyleselector.cpp:
54542        (khtml::CSSStyleSelector::CSSStyleSelector):
54543        (khtml::CSSStyleSelector::addSheet):
54544        (khtml::CSSStyleSelector::initForStyleResolve):
54545        (khtml::CSSStyleSelector::applyRule):
54546        * khtml/dom/dom_doc.cpp:
54547        (DOM::Document::part):
54548        * khtml/dom/dom_doc.h:
54549        * khtml/ecma/kjs_dom.cpp:
54550        (DOMDocument::getValueProperty):
54551        (KJS::checkNodeSecurity):
54552        * khtml/ecma/kjs_html.cpp:
54553        (KJS::HTMLDocFunction::tryCall):
54554        (KJS::HTMLDocument::tryGet):
54555        (KJS::HTMLDocument::putValue):
54556        (KJS::HTMLElement::tryGet):
54557        (Image::notifyFinished):
54558        * khtml/ecma/kjs_traversal.cpp:
54559        (JSNodeFilter::acceptNode):
54560        * khtml/ecma/xmlhttprequest.cpp:
54561        (KJS::XMLHttpRequest::changeState):
54562        * khtml/html/html_baseimpl.cpp:
54563        (HTMLBodyElementImpl::insertedIntoDocument):
54564        (HTMLFrameElementImpl::isURLAllowed):
54565        (HTMLFrameElementImpl::attach):
54566        (HTMLFrameElementImpl::detach):
54567        (HTMLFrameElementImpl::contentDocument):
54568        (HTMLIFrameElementImpl::attach):
54569        * khtml/html/html_documentimpl.cpp:
54570        (HTMLDocumentImpl::referrer):
54571        (HTMLDocumentImpl::lastModified):
54572        * khtml/html/html_formimpl.cpp:
54573        (HTMLFormElementImpl::formData):
54574        (HTMLFormElementImpl::prepareSubmit):
54575        (HTMLFormElementImpl::submit):
54576        (HTMLFormElementImpl::reset):
54577        (HTMLGenericFormElementImpl::isKeyboardFocusable):
54578        (HTMLGenericFormElementImpl::defaultEventHandler):
54579        * khtml/html/html_headimpl.cpp:
54580        (HTMLBaseElementImpl::process):
54581        (HTMLLinkElementImpl::process):
54582        * khtml/html/html_inlineimpl.cpp:
54583        (HTMLAnchorElementImpl::isKeyboardFocusable):
54584        (HTMLAnchorElementImpl::defaultEventHandler):
54585        * khtml/html/html_objectimpl.cpp:
54586        (HTMLAppletElementImpl::createRenderer):
54587        (HTMLAppletElementImpl::getAppletInstance):
54588        (HTMLEmbedElementImpl::rendererIsNeeded):
54589        (HTMLObjectElementImpl::rendererIsNeeded):
54590        * khtml/html/htmltokenizer.cpp:
54591        (HTMLTokenizer::scriptExecution):
54592        (HTMLTokenizer::parseTag):
54593        * khtml/rendering/render_applet.cpp:
54594        (RenderApplet::RenderApplet):
54595        * khtml/xml/dom_docimpl.cpp:
54596        (DocumentImpl::setTitle):
54597        (DocumentImpl::part):
54598        (DocumentImpl::close):
54599        (DocumentImpl::processHttpEquiv):
54600        * khtml/xml/dom_docimpl.h:
54601        * khtml/xml/dom_nodeimpl.cpp:
54602        (NodeImpl::dispatchEvent):
54603        * kwq/KWQAccObject.mm:
54604        (-[KWQAccObject textUnderElement]):
54605        * kwq/KWQKHTMLPart.mm:
54606        (KWQKHTMLPart::partForNode):
54607        (KWQKHTMLPart::attributedString):
54608
546092003-12-05  Richard Williamson   <rjw@apple.com>
54610
54611	Fixed 3501885.  Added null test to returned node from collection.
54612
54613        Reviewed by John.
54614
54615        * khtml/ecma/kjs_html.cpp:
54616        (KJS::HTMLCollection::tryGet):
54617
546182003-12-04  Richard Williamson   <rjw@apple.com>
54619
54620	Added support for named applet access from document node.
54621	Factored creation of KJS::Values from RuntimeObjectImps.
54622
54623        Reviewed by Chris.
54624
54625        * khtml/ecma/kjs_dom.cpp:
54626        (KJS::getDOMNamedNodeMap):
54627        (KJS::getRuntimeObject):
54628        * khtml/ecma/kjs_dom.h:
54629        * khtml/ecma/kjs_html.cpp:
54630        (KJS::HTMLDocument::tryGet):
54631        (KJS::HTMLElement::tryGet):
54632        (KJS::HTMLCollection::tryGet):
54633
546342003-12-04  Darin Adler  <darin@apple.com>
54635
54636        Reviewed by John.
54637
54638        - fixed 3498712: REGRESSION (100-115): Safari aborts at http://www11.dht.dk/~blangstrup_org/
54639
54640        This was an uncaught exception thrown by DocumentImpl. But the design of KHTML DOM is that
54641        "impl" classes return exception codes; they don't throw exceptions.
54642
54643        * khtml/dom/dom_doc.cpp:
54644        (DOM::Document::createElement): Throw exception if necessary. The impl function now returns
54645        an exception code.
54646        (DOM::Document::createElementNS): Ditto.
54647
54648        * khtml/html/html_documentimpl.h: Add exception code parameter to createElement.
54649        * khtml/html/html_documentimpl.cpp: (HTMLDocumentImpl::createElement): Pass along the
54650        exception code from the lower level.
54651
54652        * khtml/xml/dom_docimpl.h: Add exception code parameters to createElement, createElementNS,
54653        and createHTMLElement.
54654        * khtml/xml/dom_docimpl.cpp:
54655        (DOMImplementationImpl::createDocument): Handle exception code from createElementNS.
54656        (DocumentImpl::createElement): Add exception code parameter, not set since there is
54657        no exception.
54658        (DocumentImpl::importNode): Handle exception code from createElementNS.
54659        (DocumentImpl::createElementNS): Add exception code parameter. Propagate the exception
54660        codes that we get from createHTMLElement and setPrefix.
54661        (DocumentImpl::createHTMLElement): Add exception code parameter. Use an exception code
54662        rather than a C+exception for INVALID_CHARACTER_ERR.
54663
54664        * khtml/xml/dom_elementimpl.cpp: (ElementImpl::cloneNode): Pass exception code parameter to
54665        createElement.
54666
54667        * khtml/xml/xml_tokenizer.cpp:
54668        (XMLHandler::startElement): Pass exception code parameter to createElementNS, and return false
54669        if it is not zero. This is where the bug happened. Before we would get an exception from
54670        createElementNS, but "impl" functions are not supposed to throw in KHTML's DOM.
54671        (XMLTokenizer::finish): Add various exception code parameters to compile, but we know we won't
54672        get any exceptions.
54673
54674        * kwq/WebCoreDOMDocument.mm:
54675        (-[WebCoreDOMDocument createElement:]): Pass an (ignored) exception code parameter.
54676        (-[WebCoreDOMDocument createElementNS::]): Pass an (ignored) exception code parameter.
54677
54678=== Safari-116 ===
54679
546802003-12-03  Richard Williamson   <rjw@apple.com>
54681
54682	LiveConnect:  Removed some debugging.
54683
54684        Reviewed by Chris.
54685
54686        * khtml/ecma/kjs_html.cpp:
54687        (KJS::HTMLCollection::tryGet):
54688
546892003-12-03  David Hyatt  <hyatt@apple.com>
54690
54691	Fix for 3475761, list bullets mislayout after text zooming.
54692	
54693        Reviewed by kocienda
54694
54695        * khtml/rendering/render_block.cpp:
54696        (khtml::RenderBlock::setStyle):
54697
546982003-12-03  David Hyatt  <hyatt@apple.com>
54699
54700	Fix for 3493356, table cells didn't repaint properly.
54701	
54702        Reviewed by kocienda
54703
54704        * khtml/rendering/render_object.cpp:
54705        (RenderObject::repaintObjectsBeforeLayout):
54706        * khtml/rendering/render_table.cpp:
54707        (RenderTableCell::getAbsoluteRepaintRect):
54708        * khtml/rendering/render_table.h:
54709
547102003-12-03  David Hyatt  <hyatt@apple.com>
54711
54712	Fix for 3495748, hang in parser at ocelot.ca.  <nobr> needs to have very high priority (equal to the
54713	priority of blocks like h1-6, p, and div), so that unclosed <nobr>s will close divs and ps.
54714	
54715        Reviewed by gramps
54716
54717        * khtml/html/dtd.cpp:
54718
547192003-12-03  David Hyatt  <hyatt@apple.com>
54720
54721	Fix for 3475767, hang at saabnet.com.  Fix h1-h6 to be more tolerant regarding allowed child elements, to avoid
54722	deeply nested pages.
54723	
54724        Reviewed by darin
54725
54726        * khtml/html/dtd.cpp:
54727        (DOM::checkChild):
54728
547292003-12-03  John Sullivan  <sullivan@apple.com>
54730
54731        - fixed these two design issues after Dave and I talked to HI:
54732        <rdar://problem/3497072>: There shouldn't be a focus ring around clicked regions
54733        <rdar://problem/3499315>: Focus ring should use aqua color always
54734
54735        Reviewed by Dave.
54736
54737        * khtml/css/html4.css:
54738
547392003-12-03  Maciej Stachowiak  <mjs@apple.com>
54740
54741        Reviewed by Ken.
54742
54743	<rdar://problem/3395759>: results of parent.document.getElementsByTagName can't be added to string
54744        
54745	* khtml/ecma/kjs_dom.cpp:
54746        (DOMNodeList::toPrimitive): Always convert to string instead of trying to convert
54747	to number and failing, as is done for DOMNode.
54748        * khtml/ecma/kjs_dom.h: Prototype new method.
54749
547502003-12-02  Richard Williamson   <rjw@apple.com>
54751
54752	Return a value that is backed by RuntimeObjectImpl, instead
54753	of a DOM object for applet[0].  This is better than having
54754	the DOM object redirect to the RuntimeObjectImpl.
54755
54756        Reviewed by Chris.
54757
54758        * khtml/ecma/kjs_html.cpp:
54759        (KJS::HTMLCollection::tryGet):
54760
547612003-12-02  Maciej Stachowiak  <mjs@apple.com>
54762
54763        Reviewed by John.
54764
54765	<rdar://problem/3488220>: namespaces test from David Faure causes Safari to crash in DOM::DocumentImpl::createElementNS
54766	
54767        * khtml/xml/dom_docimpl.cpp:
54768        (DocumentImpl::createElementNS): Check if new element is NULL
54769	before messing with it, to avoid a crash.
54770
547712003-12-02  David Hyatt  <hyatt@apple.com>
54772
54773	Fix for 3497999, null check the text() of RenderTexts to avoid a crash in current().
54774	
54775        Reviewed by kocienda
54776
54777        * khtml/rendering/bidi.cpp:
54778        (khtml::BidiIterator::current):
54779
547802003-12-02  Maciej Stachowiak  <mjs@apple.com>
54781
54782        Reviewed by Darin.
54783
54784	Implemented a simple form of document serialization, enough to take care of:
54785
54786	<rdar://problem/3487190>: implement send of DOMDocument for XMLHttpRequest
54787
54788        * khtml/dom/dom_doc.cpp:
54789        (DOM::Document::toString):
54790        * khtml/dom/dom_doc.h:
54791        * khtml/ecma/xmlhttprequest.cpp:
54792        (KJS::XMLHttpRequest::urlMatchesDocumentDomain):
54793        (KJS::XMLHttpRequestProtoFunc::tryCall):
54794        * khtml/html/html_elementimpl.cpp:
54795        (HTMLElementImpl::toString):
54796        * khtml/html/html_elementimpl.h:
54797        * khtml/xml/dom_docimpl.cpp:
54798        (DocumentImpl::toString):
54799        (DocumentFragmentImpl::toString):
54800        (DocumentTypeImpl::copyFrom):
54801        (DocumentTypeImpl::toString):
54802        * khtml/xml/dom_docimpl.h:
54803        * khtml/xml/dom_elementimpl.cpp:
54804        (AttrImpl::toString):
54805        (ElementImpl::openTagStartToString):
54806        (ElementImpl::toString):
54807        * khtml/xml/dom_elementimpl.h:
54808        * khtml/xml/dom_nodeimpl.h:
54809        * khtml/xml/dom_textimpl.cpp:
54810        (CommentImpl::toString):
54811        (TextImpl::toString):
54812        (CDATASectionImpl::toString):
54813        * khtml/xml/dom_textimpl.h:
54814        * khtml/xml/dom_xmlimpl.cpp:
54815        (EntityImpl::toString):
54816        (EntityReferenceImpl::toString):
54817        (ProcessingInstructionImpl::setStyleSheet):
54818        (ProcessingInstructionImpl::toString):
54819        * khtml/xml/dom_xmlimpl.h:
54820
548212003-12-02  David Hyatt  <hyatt@apple.com>
54822
54823	Fix for 3493677, containingBlock() null because we tried to support position:relative on table rows.  Fix
54824	is to disallow this.
54825	
54826        Reviewed by kocienda
54827
54828        * khtml/css/cssstyleselector.cpp:
54829        (khtml::CSSStyleSelector::adjustRenderStyle):
54830
548312003-12-02  David Hyatt  <hyatt@apple.com>
54832
54833	Fix for 3493697, nil-deref in bidi code.  Need to null-check strings with no length.
54834	
54835        Reviewed by john
54836
54837        * khtml/rendering/bidi.cpp:
54838        (khtml::addRun):
54839
548402003-12-02  David Hyatt  <hyatt@apple.com>
54841
54842	Fix for 3495746, nil deref of containing block (frame inside frameset).
54843	
54844        Reviewed by kocienda
54845
54846        * khtml/rendering/render_box.cpp:
54847        (RenderBox::containingBlockWidth):
54848
548492003-12-02  Ken Kocienda  <kocienda@apple.com>
54850
54851        Reviewed by John
54852
54853        * kwq/KWQRect.h:
54854        * kwq/KWQRect.mm:
54855        (QRect::bottomRight): Added helper.
54856
548572003-12-02  Maciej Stachowiak  <mjs@apple.com>
54858
54859	Merged the following patch from David Faure to fix:
54860
54861	<rdar://problem/3497663>: Can't look up frames by number using windw[i] notation
54862
54863    2003-11-25  David Faure  <faure@kde.org>
54864
54865        * ecma/kjs_window.cpp: Implement hasProperty and get for frames by number in Window,
54866        to fix window[0] and parent[1] etc. (#56983)
54867
548682003-11-21  Maciej Stachowiak  <mjs@apple.com>
54869
54870        Reviewed by Richard.
54871
54872	<rdar://problem/3487185>: implement security checks for XMLHttpRequest
54873	
54874        * khtml/ecma/xmlhttprequest.cpp:
54875        (KJS::XMLHttpRequest::open): Refuse to start if the URL is not one
54876	this document is allowed to access.
54877        (KJS::XMLHttpRequest::slotRedirection): Stop the job if we redirect
54878	to a URL the home document is not allowed to access.
54879        * kwq/KWQResourceLoader.mm:
54880        (-[KWQResourceLoader redirectedToURL:]): emit the right signal
54881        * kwq/WebCoreResourceLoader.h: Prototype new method
54882
548832003-12-01  Richard Williamson   <rjw@apple.com>
54884
54885Fixed parameter passing to applet.  Child elements are NOT valid in setStyle().  So we now either create the widget before needed with createWidgetIfNecessary.  This either happens when doing the first layout, or when JavaScript first references the applet element.
54886
54887Fixed early delete of the the main applet instance.  When the JS collector cleaned up the last JS object referring to the applet instance we were deleting the java instance.  This caused the applet instance cached on the applet element to be invalid.  The applet instance is the only Java object not to be cleaned up by the JS collector.
54888
54889Added support for getting at Java object fields.
54890
54891        Reviewed by Chris.
54892
54893        * khtml/ecma/kjs_html.cpp:
54894        (KJS::HTMLElement::tryGet):
54895        * khtml/html/html_objectimpl.cpp:
54896        (HTMLAppletElementImpl::createRenderer):
54897        (HTMLAppletElementImpl::getAppletInstance):
54898        * khtml/html/html_objectimpl.h:
54899        * khtml/rendering/render_applet.cpp:
54900        (RenderApplet::createWidgetIfNecessary):
54901        (RenderApplet::layout):
54902        * khtml/rendering/render_applet.h:
54903        (khtml::RenderApplet::renderName):
54904
549052003-12-01  Darin Adler  <darin@apple.com>
54906
54907        Reviewed by Dave.
54908
54909        - fixed 3496960: nil-deref in idFromNode inside elementDoesAutoComplete:
54910
54911        * kwq/WebCoreBridge.mm:
54912        (inputElementFromDOMElement): Added nil check.
54913        (formElementFromDOMElement): Added nil check.
54914
549152003-12-01  David Hyatt  <hyatt@apple.com>
54916
54917	Fix for 3490959, collapsed border tables don't paint backgrounds.
54918	
54919        Reviewed by darin
54920
54921        * khtml/rendering/render_table.cpp:
54922        (RenderTable::setStyle):
54923        (RenderTable::paint):
54924        (RenderTable::paintBoxDecorations):
54925        * khtml/rendering/render_table.h:
54926
549272003-12-01  Darin Adler  <darin@apple.com>
54928
54929        Reviewed by Dave.
54930
54931        - fixed 3493939: ordered lists with type="A" roll over to A' after X rather than after Z
54932
54933        * khtml/rendering/render_list.cpp: (toLetter): Change 24 to 26.
54934
54935=== Safari-115 ===
54936
549372003-11-21  Maciej Stachowiak  <mjs@apple.com>
54938
54939        Reviewed by Ken.
54940
54941	WebCore part of fix for:
54942	
54943	<rdar://problem/3487134>: Implement http request/response status and headers for XMLHttpRequest
54944
54945        * khtml/ecma/xmlhttprequest.cpp:
54946        (KJS::XMLHttpRequest::getValueProperty): Call appropriate methods for
54947	status and statusText.
54948        (KJS::XMLHttpRequest::send): Set request headers as "customHeaders"
54949	metadata property.
54950        (KJS::XMLHttpRequest::setRequestHeader): Simply append to header
54951	string.
54952        (KJS::XMLHttpRequest::getAllResponseHeaders): Return the header string
54953	except for the first line.
54954	(KJS::XMLHttpRequest::getResponseHeader): Scan the response header
54955	string for the header field. Not sure if it's worth being more
54956	efficient.
54957        (KJS::XMLHttpRequest::getStatus): Try to pull a code out
54958	of the status line.
54959        (KJS::XMLHttpRequest::getStatusText): Pull the first line
54960	off the headers (if any), otherwise return undefined.
54961        (KJS::XMLHttpRequest::slotData): The first time through, save
54962	the response headers, retrieved from "HTTP-Headers" metadata
54963	property.
54964        (KJS::XMLHttpRequestProtoFunc::tryCall): Make setRequestHeader,
54965	getResponseHeader, getAllResponseHeaders call the right thing.
54966        * khtml/ecma/xmlhttprequest.h:
54967        * kwq/KWQKJobClasses.h:
54968        * kwq/KWQKJobClasses.mm:
54969        (KIO::TransferJobPrivate::TransferJobPrivate): Added header
54970	support.
54971        (KIO::TransferJobPrivate::~TransferJobPrivate):
54972        (KIO::TransferJob::assembleResponseHeaders): Get a header string
54973	out of the response if needed.
54974        (KIO::TransferJob::queryMetaData): Special-case "HTTP-Headers".
54975        (KIO::TransferJob::emitReceivedResponse): Save response.
54976        * kwq/KWQLoader.h:
54977        * kwq/KWQLoader.mm:
54978        (-[NSDictionary _webcore_initWithHeaderString:]): Helper method to
54979	turn a string of header fields into a dictionary.
54980        (KWQServeRequest): Pass custom headers through.
54981        (KWQResponseMIMEType): Admit it's an NSURLResponse *.
54982        (KWQResponseHeaderString): Assembled status code and response
54983	header fields into response header. Cheat a little on the status
54984	line.
54985        * kwq/KWQResourceLoader.mm:
54986        (-[KWQResourceLoader receivedResponse:]): Admit it's an
54987	NSURLResponse *.
54988        * kwq/WebCoreResourceLoader.h: Ditto.
54989	* kwq/WebCoreBridge.h: Add customHeader: arguments.
54990
549912003-11-21  Chris Blumenberg  <cblu@apple.com>
54992
54993	Fixed: <rdar://problem/3491907>: When viewing applet, view hierarchy was an empty KWQView
54994
54995        Reviewed by rjw.
54996
54997        * WebCore.pbproj/project.pbxproj:
54998        * khtml/html/html_objectimpl.cpp: removed setupApplet because that work is done when the applet widget is created
54999        (HTMLAppletElementImpl::createRenderer): pass the PARAM args to the render object
55000        (HTMLAppletElementImpl::getAppletInstance): don't call setupApplet
55001        * khtml/rendering/render_applet.cpp:
55002        (RenderApplet::RenderApplet): store args and context, don't call setQWidget here 
55003        (RenderApplet::setStyle): call setQWidget here
55004        (RenderApplet::layout): don't parse args here, that is done in HTMLAppletElementImpl::createRenderer
55005        * khtml/rendering/render_applet.h:
55006        * kwq/KWQKJavaAppletWidget.h:
55007        (KJavaApplet::KJavaApplet): turned into a stub, this work is no longer needed
55008        (KJavaApplet::setAppletClass): ditto
55009        (KJavaApplet::setAppletName): ditto
55010        (KJavaApplet::setArchives): ditto
55011        (KJavaApplet::setBaseURL): ditto
55012        (KJavaApplet::setCodeBase): ditto
55013        (KJavaApplet::setParameter): ditto
55014        (KJavaAppletWidget::~KJavaAppletWidget): ditto
55015        (KJavaAppletWidget::applet): ditto
55016        (KJavaAppletWidget::setBaseURL): ditto
55017        (KJavaAppletWidget::setParameter): ditto
55018        (KJavaAppletWidget::showApplet): ditto 
55019        * kwq/KWQKJavaAppletWidget.mm:
55020        (KJavaAppletWidget::KJavaAppletWidget): create the java here instead of doing it later
55021
550222003-11-21  John Sullivan  <sullivan@apple.com>
55023
55024        - WebCore part of fix for <rdar://problem/3333744>: Safari prints page with 
55025        very, very long line very, very small
55026
55027        Reviewed by Ken.
55028
55029        * kwq/KWQKHTMLPart.h:
55030        * kwq/KWQKHTMLPart.mm:
55031        (KWQKHTMLPart::forceLayoutWithPageWidthRange):
55032        Changed method name from forceLayoutForPageWidth; now takes min and max
55033        page width values. Use max page width value to limit how wide page will
55034        get when there's a very long line.
55035        
55036        * kwq/WebCoreBridge.h:
55037        * kwq/WebCoreBridge.mm:
55038        (-[WebCoreBridge forceLayoutWithMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
55039        changed pageWidth parameter into min and max parameters; pass them along to KWQKHTMLPart.
55040
550412003-11-21  Darin Adler  <darin@apple.com>
55042
55043        Reviewed by Ken.
55044
55045        - fixed 3490260: allow &sup1 to be misspelled &supl (lowercase l instead of numeral 1) because WinIE does
55046
55047        * khtml/html/kentities.gperf: Added supl to the list. Maps to U+00B9, just as sup1 does.
55048        * khtml/html/kentities.c: Regenerated.
55049
550502003-11-20  Maciej Stachowiak  <mjs@apple.com>
55051
55052        Reviewed by Darin.
55053
55054	- fixed 3487201 - Implement abort for XMLHttpRequest async loads
55055	
55056        * khtml/ecma/xmlhttprequest.cpp:
55057        (KJS::XMLHttpRequest::abort): Kill and clear job.
55058        (KJS::XMLHttpRequest::slotData): Avoid moving to state 3 on early abort.
55059        (KJS::XMLHttpRequestProtoFunc::tryCall): Call abort when appropriate.
55060        * khtml/ecma/xmlhttprequest.h:
55061
550622003-11-20  John Sullivan  <sullivan@apple.com>
55063
55064        - WebCore part of <rdar://problem/3183124>: Support page-break-before/after with a value of "always"
55065
55066        Dave wrote this part and we reviewed it together.
55067
55068        * khtml/rendering/render_block.cpp:
55069        (khtml::RenderBlock::paintObject):
55070        if printing, check for CSS page break locations
55071        (khtml::RenderBlock::inRootBlockContext):
55072        new method, used to check whether we're in a context for which
55073        CSS page breaks are legal.
55074        
55075        * khtml/rendering/render_block.h:
55076        prototype for inRootBlockContext; this might be useful for
55077        other code later.
55078        
55079        * khtml/rendering/render_canvas.cpp:
55080        (RenderCanvas::setBestTruncatedAt):
55081        now takes a forcedBreak parameter which overrides others.
55082        
55083        * khtml/rendering/render_canvas.h:
55084        (khtml::RenderCanvas::setTruncatedAt):
55085        set default value for m_forcedPageBreak
55086        
55087        * kwq/WebCoreBridge.h:
55088        * kwq/WebCoreBridge.mm:
55089        (-[WebCoreBridge computePageRects:withPageHeight:]):
55090        do the real work of pagination here
55091
550922003-11-20  Chris Blumenberg  <cblu@apple.com>
55093
55094	Fixed: <rdar://problem/3491225>: Need UI and localized strings for <KEYGEN> support
55095
55096        Reviewed by john.
55097
55098        * WebCore-combined.exp:
55099        * WebCore.exp:
55100        * WebCore.pbproj/project.pbxproj:
55101        * kwq/KWQKSSLKeyGen.h:
55102        * kwq/KWQKSSLKeyGen.mm: Added.
55103        (KSSLKeyGen::supportedKeySizes): implemented, calls [WebCoreLocalizedStringFactory keyGenerationMenuItemTitles]
55104        * kwq/WebCoreLocalizedStringFactory.h: Added.
55105        * kwq/WebCoreLocalizedStringFactory.m: Added.
55106        (+[WebCoreLocalizedStringFactory sharedFactory]): new
55107        (-[WebCoreLocalizedStringFactory init]): new
55108        (-[WebCoreLocalizedStringFactory keyGenerationMenuItemTitles]): new
55109
551102003-11-19  Maciej Stachowiak  <mjs@apple.com>
55111
55112        Reviewed by Ken.
55113
55114	- fixed 3490086 - support http post for XMLHttpRequest
55115	
55116        * kwq/KWQKJobClasses.h:
55117        * kwq/KWQKJobClasses.mm:
55118        (KIO::TransferJobPrivate::TransferJobPrivate):
55119        (KIO::TransferJob::TransferJob):
55120
551212003-11-20  Richard Williamson   <rjw@apple.com>
55122
55123	Cleaned up synchronous applet lookup and initialization.
55124	We need to further cleanup applet instantiation.  It doesn't
55125	need to be lazy with my modified Java Plugin.
55126
55127        Reviewed by Chris.
55128
55129        * khtml/ecma/kjs_html.cpp:
55130        (KJS::HTMLElement::tryGet):
55131        * khtml/html/html_objectimpl.cpp:
55132        (HTMLAppletElementImpl::setupApplet):
55133        (HTMLAppletElementImpl::getAppletInstance):
55134        * khtml/html/html_objectimpl.h:
55135        * kwq/KWQKHTMLPart.mm:
55136        (KWQKHTMLPart::getAppletInstanceForView):
55137        * kwq/KWQKJavaAppletWidget.h:
55138        * kwq/KWQKJavaAppletWidget.mm:
55139        (KJavaAppletWidget::showApplet):
55140
551412003-11-20  Ken Kocienda  <kocienda@apple.com>
55142
55143        Reviewed by David
55144
55145	Fix for this bug:
55146
55147	<rdar://problem/3487421>: crash/exception when tabbing to a link without text
55148
55149        * khtml/html/html_inlineimpl.cpp:
55150        (HTMLAnchorElementImpl::isFocusable): A link is also not focusable 
55151	if it has zero width or height, if it has no children, or if it is 
55152	is not a continuation.
55153        * kwq/KWQPainter.mm:
55154        (QPainter::drawFocusRing): Put in a guard against trying to draw a focus
55155        ring with no control points. Log this as an error.
55156
551572003-11-19  David Hyatt  <hyatt@apple.com>
55158
55159	Fix for 3486963, crash because generated content was referencing a deleted object.  Fix is to update the
55160	variable to a sane value after deleting old generated content.
55161	
55162        Reviewed by darin
55163
55164        * khtml/rendering/render_container.cpp:
55165        (RenderContainer::updatePseudoChild):
55166
551672003-11-19  Maciej Stachowiak  <mjs@apple.com>
55168
55169        Reviewed by John.
55170
55171	- fixed 3486998 - Implement asynchronous http loading for XMLHttpRequest
55172	
55173        * khtml/ecma/xmlhttprequest.cpp:
55174        (KJS::XMLHttpRequestQObject::XMLHttpRequestQObject): New QObject to use to
55175	connect to signals.
55176        (KJS::XMLHttpRequestQObject::slotData): Call XMLHttpRequest.
55177        (KJS::XMLHttpRequestQObject::slotFinished): Ditto.
55178        (KJS::XMLHttpRequestQObject::slotRedirection): Ditto.
55179        (KJS::XMLHttpRequest::getValueProperty): Implemented, onrequeststatechange,
55180	readyState and responseText.
55181        (KJS::XMLHttpRequest::putValue): Implemented onrequeststatechange.
55182        (KJS::XMLHttpRequest::XMLHttpRequest): Initialize new fields.
55183        (KJS::XMLHttpRequest::~XMLHttpRequest): Delete decoder.
55184        (KJS::XMLHttpRequest::changeState): Update state, and send event if needed.
55185        (KJS::XMLHttpRequest::open): Save the parameters.
55186        (KJS::XMLHttpRequest::send): Fire up a post or get job.
55187        (KJS::XMLHttpRequest::slotFinished): go to final state.
55188        (KJS::XMLHttpRequest::slotRedirection): Just stub for now.
55189        (KJS::XMLHttpRequest::slotData): Update state; decode & save data.
55190        (KJS::XMLHttpRequestProtoFunc::tryCall): Implemented open and send.
55191        * khtml/ecma/xmlhttprequest.h: Prototyped new stuff.
55192        * khtml/xml/dom2_eventsimpl.cpp:
55193        (EventImpl::typeToId): Added "readystatechange" event.
55194        (EventImpl::idToType): Ditto.
55195        * khtml/xml/dom2_eventsimpl.h: Ditto.
55196        * kwq/KWQLoader.h:
55197        * kwq/KWQLoader.mm:
55198        (KWQServeRequest): New variant that doesn't need a Request.
55199        * kwq/KWQSlot.mm:
55200        (KWQSlot::KWQSlot): Handle XMLHttpRequestQObject's slots.
55201        (KWQSlot::call): Ditto.
55202
552032003-11-19  Richard Williamson   <rjw@apple.com>
55204
55205	More LiveConnect stuff.  With that patch we make the applet
55206	visible to JavaScript in an Bindings::Instance.  Next step
55207	it to flush out implementation of RuntimeObjectImp and
55208	RuntimeFunctionImp.
55209
55210        Reviewed by Ken.
55211
55212        * khtml/html/html_objectimpl.cpp:
55213        (HTMLAppletElementImpl::HTMLAppletElementImpl):
55214        (HTMLAppletElementImpl::~HTMLAppletElementImpl):
55215        (HTMLAppletElementImpl::getAppletInstance):
55216        * khtml/html/html_objectimpl.h:
55217        * kwq/KWQKHTMLPart.h:
55218        * kwq/KWQKHTMLPart.mm:
55219        (KWQKHTMLPart::getAppletInstanceForView):
55220        * kwq/WebCoreBridge.h:
55221
552222003-11-19  David Hyatt  <hyatt@apple.com>
55223
55224	Fix for 3488888, about:blank in iframes doesn't repaint properly.  Fix for 3485478, refreshing a remote
55225	page often causes a white flash.  Fix for 3488827, XML/XHTML documents don't fire load events on bodies/framesets.
55226	
55227        Reviewed by darin
55228	
55229        * khtml/html/html_documentimpl.cpp:
55230        (HTMLDocumentImpl::HTMLDocumentImpl):
55231        * khtml/html/html_documentimpl.h:
55232        * khtml/rendering/render_canvas.cpp:
55233        (RenderCanvas::RenderCanvas):
55234        (RenderCanvas::layout):
55235        * khtml/xml/dom_docimpl.cpp:
55236        (DocumentImpl::DocumentImpl):
55237        (DocumentImpl::body):
55238        (DocumentImpl::close):
55239        * khtml/xml/dom_docimpl.h:
55240
552412003-11-18  Maciej Stachowiak  <mjs@apple.com>
55242
55243        Reviewed by Darin.
55244
55245	- fixed 3488883 - KIO::TransferJob needs to really use signals instead of calling loader directly
55246        
55247	* khtml/khtml_part.cpp:
55248        (KHTMLPart::openURL):
55249        * khtml/misc/loader.cpp:
55250        (Loader::servePendingRequests):
55251        (Loader::slotReceivedResponse):
55252        * khtml/misc/loader.h:
55253        * kwq/KWQKJobClasses.h:
55254        * kwq/KWQKJobClasses.mm:
55255        (KIO::TransferJob::TransferJob):
55256        (KIO::TransferJob::url):
55257        (KIO::TransferJob::emitData):
55258        (KIO::TransferJob::emitRedirection):
55259        (KIO::TransferJob::emitResult):
55260        (KIO::TransferJob::emitReceivedResponse):
55261        * kwq/KWQLoader.mm:
55262        (KWQServeRequest):
55263        * kwq/KWQObject.mm:
55264        (QObject::connect):
55265        * kwq/KWQResourceLoader.h:
55266        * kwq/KWQResourceLoader.mm:
55267        (-[KWQResourceLoader receivedResponse:]):
55268        (-[KWQResourceLoader addData:]):
55269        (-[KWQResourceLoader finishJobAndHandle]):
55270        * kwq/KWQSignal.h:
55271        * kwq/KWQSignal.mm:
55272        (KWQSignal::call):
55273        * kwq/KWQSlot.h:
55274        * kwq/KWQSlot.mm:
55275        (KWQSlot::KWQSlot):
55276        (KWQSlot::call):
55277
552782003-11-18  David Hyatt  <hyatt@apple.com>
55279
55280	Fix for 3488244, marquee-increments with percentage values not handled correctly.  Also added a tweak to ensure
55281	that 1% of a small value ends up being at least an increment of 1.  Also added an optimization to not even
55282	bother kicking off the marquee timer if the increment's initial value is 0 (matches WinIE).
55283
55284        * khtml/rendering/render_layer.cpp:
55285        (Marquee::start):
55286        (Marquee::timerEvent):
55287
552882003-11-18  Richard Williamson   <rjw@apple.com>
55289
55290	More live connect stuff.  We're getting close.
55291
55292        Reviewed by Chris.
55293
55294        * WebCore.pbproj/project.pbxproj:
55295        * khtml/ecma/kjs_html.cpp:
55296        (KJS::HTMLElement::tryGet):
55297        * khtml/html/html_objectimpl.cpp:
55298        (HTMLAppletElementImpl::parseAttribute):
55299        (HTMLAppletElementImpl::getAppletInstance):
55300        * khtml/html/html_objectimpl.h:
55301
553022003-11-18  David Hyatt  <hyatt@apple.com>
55303
55304	Fix for 3478122, crash using first-letter and zooming, and also the fix for 3478078, generated content
55305	does not get removed properly on w3c site.  The root cause of these two bugs was the same, namely my
55306	change to meld the concept of generated anonymous content and anonymous blocks created by the layout
55307	engine together.  RenderBlock's setStyle method was incorrectly updating before/after/first-letter content
55308	and wiping out its style in random (and bad) ways.
55309	
55310        * khtml/rendering/render_block.cpp:
55311        (khtml::RenderBlock::setStyle):
55312
553132003-11-18  David Hyatt  <hyatt@apple.com>
55314
55315	Fix for 3487424, images not painting because of dropped layouts.  When replaced elements dirtied
55316	themselves during line layout, they only needed to do a local dirty and not walk up the parent chain.
55317	
55318        Reviewed by mjs
55319
55320        * khtml/rendering/bidi.cpp:
55321        (khtml::RenderBlock::layoutInlineChildren):
55322
553232003-11-17  Maciej Stachowiak  <mjs@apple.com>
55324
55325        Reviewed by Dave.
55326
55327	- fixed 3486991 - Add XMLHttpRequest object and stub methods
55328
55329        * khtml/ecma/kjs_window.cpp:
55330        (Window::get): Handle XMLHttpRequest constructor like Option and Image.
55331        * khtml/ecma/kjs_window.h: Ditto.
55332        * khtml/ecma/kjs_window.lut.h: Regenerated.
55333        * khtml/ecma/xmlhttprequest.cpp: Added. Stub implementations of everything.
55334        (KJS::XMLHttpRequestConstructorImp::XMLHttpRequestConstructorImp):
55335        (KJS::XMLHttpRequestConstructorImp::implementsConstruct):
55336        (KJS::XMLHttpRequestConstructorImp::construct):
55337        (KJS::XMLHttpRequest::tryGet):
55338        (KJS::XMLHttpRequest::getValueProperty):
55339        (KJS::XMLHttpRequest::tryPut):
55340        (KJS::XMLHttpRequest::putValue):
55341        (KJS::XMLHttpRequest::notifyFinished):
55342        (KJS::XMLHttpRequest::XMLHttpRequest):
55343        (KJS::XMLHttpRequest::~XMLHttpRequest):
55344        (KJS::XMLHttpRequestProtoFunc::tryCall):
55345        * khtml/ecma/xmlhttprequest.h: Added. Stub implementations of everything.
55346        (KJS::XMLHttpRequest::toBoolean):
55347        (KJS::XMLHttpRequest::classInfo):
55348        * khtml/ecma/xmlhttprequest.lut.h: Added.
55349        * khtml/ecma/Makefile.am: Add new .lut.h file.
55350	* WebCore.pbproj/project.pbxproj: Add new files.
55351
553522003-11-17  David Hyatt  <hyatt@apple.com>
55353
55354	Fix for 3487136, marquees reset when you return to a page in the b/f cache.  This patch makes
55355	marquees suspend and resume properly, so they pick up animating where they left off.
55356	
55357        Reviewed by mjs
55358
55359        * khtml/rendering/render_layer.cpp:
55360        (RenderLayer::suspendMarquees):
55361        (m_direction):
55362        (Marquee::start):
55363        (Marquee::suspend):
55364        * khtml/rendering/render_layer.h:
55365        * kwq/KWQKHTMLPart.mm:
55366        (KWQKHTMLPart::clearTimers):
55367
553682003-11-17  Maciej Stachowiak  <mjs@apple.com>
55369
55370	Merged from khtml:
55371	
55372	- fixed 3487324 - CSS url values should be wrapped in "url()" for cssText purposes
55373	
55374    2003-11-07  Dirk Mueller  <mueller@kde.org>
55375	 
55376	* css/css_valueimpl.cpp (cssText): wrap uri's into url(). 
55377	Stephan Kulow noted that other browsers do that.
55378	
55379
553802003-11-17  David Hyatt  <hyatt@apple.com>
55381
55382	Fix for 3472998, stop a crash on an insanely malformed page.  I had to change the concept of 
55383	"inStrayTableContent" to be a counter, since you could be nested and need to push/pop, and
55384	then I also had to stop from mistakenly popping when I didn't need to.
55385	
55386        Reviewed by rjw
55387
55388        * khtml/html/htmlparser.cpp:
55389        (KHTMLParser::reset):
55390        (KHTMLParser::insertNode):
55391        (KHTMLParser::reopenResidualStyleTags):
55392        (KHTMLParser::popBlock):
55393        (KHTMLParser::popOneBlock):
55394        * khtml/html/htmlparser.h:
55395
553962003-11-17  Darin Adler  <darin@apple.com>
55397
55398        Reviewed by Ken.
55399
55400        - did keyboard event cleanup to follow up on the keyCode work I did before
55401        - fixed 3485558: key identifers use lowercase hex, but the W3C document shows uppercase
55402        - fixed 3485564: key identifier for the Return key should be "Enter"
55403        - fixed 3485579: letter keys generate different key identifiers depending on whether the shift key is down
55404        - fixed 3485568: keyboard event modifier key bits are uninitialized; may have incorrect values
55405        - fixed 3481514: which attribute for DOM events reports incorrect value
55406        - fixed 3452569: charCode attribute for DOM events not supported
55407
55408        * khtml/dom/dom2_events.h: Added charCode.
55409        * khtml/dom/dom2_events.cpp:
55410        (UIEvent::keyCode): Call through to KeyboardEventImpl instead of doing the work here;
55411        better factoring.
55412        (UIEvent::charCode): Added. Calls through to KeyboardEventImpl.
55413        (UIEvent::which): Call keyCode in KeyboardEventImpl to share code.
55414
55415        * khtml/ecma/kjs_events.h: Added charCode property for DOMUIEvent.
55416        * khtml/ecma/kjs_events.cpp: (DOMUIEvent::getValueProperty): Added charCode.
55417        * khtml/ecma/kjs_events.lut.h: Regenerated.
55418
55419        * khtml/html/html_formimpl.h:
55420        * khtml/html/html_formimpl.cpp:
55421        (HTMLInputElementImpl::defaultEventHandler): Remove checks for "U+00000d" since we now use "Enter"
55422        for that key; also, we use capitalized hex, so it would have to change to "U+00000D" anyway.
55423        (HTMLSelectElementImpl::defaultEventHandler): Ditto.
55424        * khtml/html/html_inlineimpl.cpp: (HTMLAnchorElementImpl::defaultEventHandler): Ditto.
55425
55426        * khtml/khtmlview.cpp: (KHTMLView::keyPressEvent): Put !APPLE_CHANGES around code we are not
55427        using. It was doing a switch based on Qt key codes, but the key value it was using to check
55428        was a Macintosh virtual key code, which could yield strange results when the codes happen to
55429        match. Safer and smaller code size not to do any of it at all.
55430
55431        * khtml/rendering/render_form.cpp:
55432        (RenderLineEdit::RenderLineEdit): Use a KLineEdit instead of LineEditWidget for APPLE_CHANGES.
55433        Allows us to put !APPLE_CHANGES around more Qt key code stuff.
55434        (RenderLineEdit::select): Cast to KLineEdit instead of LineEditWidget.
55435        (ComboBoxWidget::event): Put !APPLE_CHANGES around more unneeded Qt key code stuff.
55436        (TextAreaWidget::event): Put !APPLE_CHANGES around more unneeded Qt key code stuff.
55437
55438        * khtml/xml/dom2_eventsimpl.h: Made id() const and added keyCode() and charCode().
55439        * khtml/xml/dom2_eventsimpl.cpp:
55440        (KeyboardEventImpl::KeyboardEventImpl): Initialize all fields in the empty constructor.
55441        Initialize all the modifier bits in the main constructor; the old code assumed they started
55442        off false, which is not a safe assumption. Also set m_altGraphKey false. Eliminated the
55443        unneeded check of text() before calling identifier(). Also adapted for the name change from
55444        identifier() to keyIdentifier().
55445        (KeyboardEventImpl::keyCode): Added. Returns the Windows virtual key code for keydown and
55446        keyup events, and the Unicode character for all other events.
55447        (KeyboardEventImpl::charCode): Added. Returns the Unicode character.
55448
55449        * kwq/KWQEvent.h: Changed QCustomEvent to be a typedef for QEvent.
55450        (QEvent::QEvent): Removed AccelAvailable, and added KParts, so I could remove some ugly
55451        constants from the KParts code.
55452        (QMouseEvent::button): Use a cast here since the field is now int.
55453        (QMouseEvent::state): Use a cast here since the field is now int.
55454        (QMouseEvent::stateAfter): Use a cast here since the field is now int, and use the new
55455        _stateAfter field.
55456        (QTimerEvent::QTimerEvent): Moved the constructor to be inline since it's so simple.
55457        (QKeyEvent::QKeyEvent): Removed type and button state parameters, now unneeded.
55458        Also removed now-unused _key, _ascii, and _count fields, and key(), ascii(),
55459        and count() functions.
55460        (QKeyEvent::state): Made inline.
55461        (QKeyEvent::isAccepted): Made inline.
55462        (QKeyEvent::text): Made inline.
55463        (QKeyEvent::isAutoRepeat): Made inline.
55464        (QKeyEvent::accept): Made inline.
55465        (QKeyEvent::ignore): Made inline.
55466        (QKeyEvent::unmodifiedText): Made inline.
55467        (QKeyEvent::keyIdentifier): Made inline and chnaged name from identifier().
55468        * kwq/KWQEvent.mm:
55469        (keyIdentifierForKeyEvent): Renamed from identifierForKeyText and changed parameter
55470        to be the event. Cleaned up the code a little bit, and wrote a comment or two.
55471        Changed from lowercase hex to uppercase, and called toupper on the key so that
55472        letter a-z would work properly. (A non-Unicode toupper is just the ticket here,
55473        because I am only sure we want to do this for a-z, not other lowercase characters.)
55474        (isKeypadEvent): Added. Uses virtual key codes to decide if a key event is a keypad
55475        event, so we can set the state flag correctly.
55476        (WindowsKeyCodeForKeyEvent): Added Clear key to the switch statement; it was missing.
55477        Changed to no longe use the characterCode helper function since this was the only
55478        place it was needed.
55479        (mouseButtonForEvent): Added. Similar logic to what was in KWQKHTMLPart before; better
55480        factoring to have it in here.
55481        (nonMouseButtonsForEvent): Ditto.
55482        (QMouseEvent::QMouseEvent): Rewrote constructors. One matches the one from Qt that's
55483        used in some places in KHTML code. The other takes an NSEvent and uses the new functions
55484        above to compute the button and state.
55485        (QKeyEvent::QKeyEvent): Computer type based on the passed-in NSEvent. Compute the
55486        auto-repeat flag based on the event and also the "forceAutoRepeat" parameter. Compute
55487        the button state based on the event too.
55488
55489        * kwq/KWQKHTMLPart.h: Remove buttonForCurrentEvent and stateForCurrentEvent. Both
55490        are now in KWQEvent.mm.
55491        * kwq/KWQKHTMLPart.mm:
55492        (KWQKHTMLPart::keyEvent): Remove extra parameters in code that creates QKeyEvent, now
55493        that QKeyEvent can handle everything itself.
55494        (KWQKHTMLPart::mouseDown): Same thing as above, only for QMouseEvent.
55495        (KWQKHTMLPart::mouseDragged): Ditto.
55496        (KWQKHTMLPart::mouseUp): Ditto.
55497        (KWQKHTMLPart::mouseMoved): Ditto.
55498        (KWQKHTMLPart::sendContextMenuEvent): Ditto.
55499
55500        * kwq/KWQKPartsEvent.h: Tweaked the class around a little so it can work without
55501        taking advantage of QCustomEvent's data pointer.
55502        * kwq/KWQKPartsEvent.mm:
55503        (KParts::Event::Event): Changed so it does a strdup on the event name and uses the
55504        new event type pre-allocated in KWQEvent.h for us.
55505        (KParts::Event::~Event): Free the event name.
55506        (KParts::Event::test): Reimplemented this.
55507
55508        * kwq/KWQKPartsPart.h: (KParts::Part::event): Removed now-unnecessary cast to change
55509        a QCustomEvent into a QEvent.
55510
55511        * kwq/KWQNamespace.h: Removed the Qt::Key enum. All the code that used it was already
55512        broken because of the mixup between Qt and Macintosh key codes.
55513
555142003-11-17  Ken Kocienda  <kocienda@apple.com>
55515
55516        Reviewed by Maciej
55517
55518	<rdar://problem/3487079>: Some scheme checks in KURL do not verify 
55519	first char is a legal first char for a scheme
55520
55521        * kwq/KWQKURL.mm:
55522        (KURL::KURL): Added some additional checks when looking through
55523	strings looking for schemes. Now the first character is checked
55524	for validity as a first character in a scheme.
55525
555262003-11-17  David Hyatt  <hyatt@apple.com>
55527
55528	Fix for 3486441, don't use the visibleWidth when computing the containingBlockWidth().  No need to
55529	query the view, since the canvas's width has been set to the proper size (when printing).
55530	
55531        Reviewed by john
55532
55533        * khtml/rendering/render_box.cpp:
55534        (RenderBox::containingBlockWidth):
55535
555362003-11-17  Maciej Stachowiak  <mjs@apple.com>
55537
55538        Reviewed by Darin.
55539
55540	- fixed 3413713 - iframe forms posting fails without initial src attribute value
55541
55542        * khtml/rendering/render_frames.cpp:
55543        (RenderPartObject::updateWidget): If the new part is for "about:blank",
55544	set the document base URL to parent's base URL.
55545        * kwq/KWQKHTMLPart.mm:
55546        (KWQKHTMLPart::createEmptyDocument): If this part is an
55547	iframe, set the document base URL to the parent's base URL.
55548
555492003-11-17  Darin Adler  <darin@apple.com>
55550
55551        Reviewed by John.
55552
55553        - fixed 3485925: Safari does not correctly parse eight-digit hex character entities
55554
55555        * khtml/html/htmltokenizer.cpp: (HTMLTokenizer::parseEntity): Replaced puzzling variable limit
55556        on number of hexadecimal characters to parse with an 8-character limit.
55557
555582003-11-17  Darin Adler  <darin@apple.com>
55559
55560        Reviewed by John.
55561
55562        - fixed 3485572 -- secure form check in KHTML uses case-sensitive comparison with "https"
55563
55564        * khtml/html/html_formimpl.h:
55565        * khtml/html/html_formimpl.cpp: (HTMLFormElementImpl::formWouldHaveSecureSubmission):
55566        Changed to take a DOMString reference for slightly better efficiency, and to use startsWith
55567        so the prefix check is not case sensitive and for slightly better efficiency and clarity
55568        than calling latin1() and using strncmp.
55569
555702003-11-17  Maciej Stachowiak  <mjs@apple.com>
55571
55572	- commit updated .lut.h file that I forgot to commit before
55573
55574        * khtml/ecma/kjs_window.lut.h:
55575
555762003-11-17  Maciej Stachowiak  <mjs@apple.com>
55577
55578        Reviewed by Darin.
55579
55580	- fixed 3382829 - Safari won't load script src javascript if done by a document.write followed by document.close
55581	
55582        * khtml/xml/dom_docimpl.cpp:
55583        (DocumentImpl::closeInternal): Don't delete the tokenizer if it's
55584	waiting for scripts. It will get destroyed later when the part
55585	gets all subresources and closes the document.
55586        * khtml/html/htmltokenizer.cpp:
55587        (HTMLTokenizer::isWaitingForScripts): Added.
55588        * khtml/html/htmltokenizer.h: Prototyped.
55589        * khtml/xml/xml_tokenizer.cpp:
55590        (XMLTokenizer::isWaitingForScripts): Added.
55591        * khtml/xml/xml_tokenizer.h: Prototyped.
55592
555932003-11-17  David Hyatt  <hyatt@apple.com>
55594
55595	Fix for 3480108, crash because of the wrong malformedTableParent when stray content is placed inside
55596	a <tr>.
55597	
55598        Reviewed by john
55599
55600        * khtml/html/htmlparser.cpp:
55601        (KHTMLParser::popBlock):
55602
556032003-11-17  Maciej Stachowiak  <mjs@apple.com>
55604
55605        Reviewed by Dave.
55606
55607	- fixed 3397494 - FileMaker: Setting option object text fails if created without text
55608	
55609        * khtml/html/html_formimpl.cpp:
55610        (HTMLOptionElementImpl::childrenChanged): Update the select element.
55611	This ends up getting called when you add a text node to an option that
55612	didn't used to have one.
55613        * khtml/html/html_formimpl.h: Prototype it.
55614
556152003-11-17  Ken Kocienda  <kocienda@apple.com>
55616
55617        Reviewed by Maciej
55618
55619	Fix for this bug:
55620
55621	<rdar://problem/3480023>: Links don't work if there's a colon in the URL
55622
55623	The colon in the URL was confusing KURL. I modified some checks in
55624	KURL so that its search for schemes stops when a non-scheme 
55625	character is found rather than when a path end segment character
55626	is found.
55627
55628        * kwq/KWQKURL.mm: Added a new Colon class to the table of characters.
55629        (isSchemeCharOrColon): New helper.
55630        (KURL::KURL): Call on new helper when looking for a scheme.
55631        (KURL::findHostnameInHierarchicalURL): Ditto.
55632
556332003-11-17  David Hyatt  <hyatt@apple.com>
55634
55635	Fix for 2931829, lines with hyphens should break on the hyphens.  Match WinIE's behavior of
55636	breaking on - and ?.
55637	
55638        Reviewed by john
55639
55640        * khtml/rendering/break_lines.cpp:
55641        (khtml::isBreakable):
55642
556432003-11-17  David Hyatt  <hyatt@apple.com>
55644
55645	Fix for 3415771, Safari should use mini form controls when necessary.  This patch adds heuristics for
55646	swapping in mini form controls and also drops intrinsic margins when mini form controls are used.
55647
55648	Fix for 3486454, options/optgroups should strip leading/trailing space.
55649	
55650	Together these two fixes solve 3486581, travelocity misrenders because form controls are too large.
55651
55652	Reviewed by Darin
55653
55654	Also fixing 3474994, alink needs to be restricted to actual links and not all <a> tags.
55655
55656	Reviewed by John
55657
55658	Finally, adding :active outlines around <input type=image> (covered by the old bug 3141767).
55659
55660        * khtml/css/cssstyleselector.cpp:
55661        (khtml::CSSStyleSelector::CSSStyleSelector):
55662        (khtml::CSSStyleSelector::applyRule):
55663        (khtml::CSSStyleSelector::checkForGenericFamilyChange):
55664        (khtml::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
55665        (khtml::):
55666        (khtml::CSSStyleSelector::fontSizeForKeyword):
55667        (khtml::CSSStyleSelector::largerFontSize):
55668        (khtml::CSSStyleSelector::smallerFontSize):
55669        * khtml/css/cssstyleselector.h:
55670        * khtml/css/html4.css:
55671        * khtml/html/html_baseimpl.cpp:
55672        (HTMLBodyElementImpl::parseAttribute):
55673        * khtml/khtml_part.cpp:
55674        (KHTMLPart::setZoomFactor):
55675        * khtml/rendering/render_form.cpp:
55676        (RenderFormElement::addIntrinsicMarginsIfAllowed):
55677        (RenderSelect::updateFromElement):
55678        * khtml/xml/dom_docimpl.cpp:
55679        (DocumentImpl::recalcStyle):
55680        (DocumentImpl::attach):
55681        * kwq/KWQButton.mm:
55682        (KWQNSControlSizeForFont):
55683
556842003-11-17  David Hyatt  <hyatt@apple.com>
55685
55686	Back out my change to exclude text runs from getting a relayout on a style change.  I totally forgot about
55687	text zooming.
55688	
55689        * khtml/rendering/render_object.cpp:
55690        (RenderObject::setStyle):
55691
556922003-11-16  Maciej Stachowiak  <mjs@apple.com>
55693
55694        Reviewed by Dave.
55695
55696	<rdar://problem/3131664>: add support for the window.print() command used for "print this page" buttons
55697        
55698	* khtml/ecma/kjs_window.cpp:
55699        (Window::get): add support for window.print (Apple-only)
55700        (WindowFunc::tryCall): ditto
55701        * khtml/ecma/kjs_window.h: Add Print to enum
55702        * khtml/ecma/kjs_window.lut.h: Regenerated
55703        * kwq/KWQKHTMLPart.mm:
55704        (KWQKHTMLPart::print): Call bridge.
55705        * kwq/KWQKHTMLPart.h: Declare above.
55706        * kwq/WebCoreBridge.h: prototype print method for other side of bridge.
55707
557082003-11-16  Maciej Stachowiak  <mjs@apple.com>
55709
55710        Reviewed by Darin.
55711
55712        * kwq/KWQKHTMLPartBrowserExtension.mm:
55713        (KHTMLPartBrowserExtension::createNewWindow): Check for the
55714	returned part being NULL, not the out value pointer.
55715
557162003-11-16  David Hyatt  <hyatt@apple.com>
55717
55718	Fix for 3485779, <input type=image> and <button> should not be mouse focusable.
55719
55720	Fix for 3485795, <input type=image> and <button> are being treated like links when they should not be.
55721
55722	Fix for 3485817, <input type=image> and <button> should obey full keyboard access mode.
55723
55724	Fix for 3485802, fieldset/legend/option/optgroup/label should not be focusable at all.
55725	
55726        Reviewed by kocienda
55727
55728        * ChangeLog:
55729        * khtml/html/html_formimpl.cpp:
55730        (HTMLGenericFormElementImpl::isKeyboardFocusable):
55731        (HTMLGenericFormElementImpl::isMouseFocusable):
55732        (HTMLFieldSetElementImpl::isFocusable):
55733        (HTMLLabelElementImpl::isFocusable):
55734        (HTMLLegendElementImpl::isFocusable):
55735        (HTMLOptGroupElementImpl::isFocusable):
55736        (HTMLOptionElementImpl::HTMLOptionElementImpl):
55737        (HTMLOptionElementImpl::isFocusable):
55738        * khtml/html/html_formimpl.h:
55739        * khtml/html/html_inlineimpl.cpp:
55740        (HTMLAnchorElementImpl::isMouseFocusable):
55741        (HTMLAnchorElementImpl::isKeyboardFocusable):
55742        * khtml/html/html_inlineimpl.h:
55743        * khtml/khtml_part.cpp:
55744        (KHTMLPart::tabsToLinks):
55745        (KHTMLPart::tabsToAllControls):
55746        * khtml/khtml_part.h:
55747        * kwq/KWQKHTMLPart.h:
55748        * kwq/KWQKHTMLPart.mm:
55749        (KWQKHTMLPart::nextKeyViewInFrame):
55750        (KWQKHTMLPart::tabsToLinks):
55751        (KWQKHTMLPart::tabsToAllControls):
55752
557532003-11-16  Maciej Stachowiak  <mjs@apple.com>
55754
55755        Reviewed by Dave.
55756
55757	- fixed 3484723 - name property of window reference from window.open call is always empty
55758	
55759        * kwq/KWQKHTMLPartBrowserExtension.mm:
55760        (KHTMLPartBrowserExtension::createNewWindow): Set the part name on the khtml side when
55761	making a new window.
55762
557632003-11-16  David Hyatt  <hyatt@apple.com>
55764
55765	Fix for 3485766.
55766	
55767	Make sure DOM elements that are programmatically focused at a time when they have no render objects restore the
55768	focus to their widgets when render objects get built.
55769	
55770        Reviewed by darin
55771
55772        * khtml/html/html_formimpl.cpp:
55773        (HTMLGenericFormElementImpl::attach):
55774
557752003-11-16  David Hyatt  <hyatt@apple.com>
55776
55777	Add border info to the render tree dumper.
55778
55779        * khtml/rendering/render_style.h:
55780        (khtml::BorderValue::operator!=):
55781        * kwq/KWQRenderTreeDebug.cpp:
55782        (printBorderStyle):
55783        (operator<<):
55784        * layout-tests/apple-only/base/bugzilla.mozilla.org/index-expected.txt:
55785        * layout-tests/apple-only/base/home.netscape.com/index-expected.txt:
55786        * layout-tests/apple-only/base/lxr.mozilla.org/index-expected.txt:
55787        * layout-tests/apple-only/base/my.netscape.com/index-expected.txt:
55788        * layout-tests/apple-only/base/news.cnet.com/index-expected.txt:
55789        * layout-tests/apple-only/base/web.icq.com/index-expected.txt:
55790        * layout-tests/apple-only/base/www.altavista.com/index-expected.txt:
55791        * layout-tests/apple-only/base/www.amazon.com/index-expected.txt:
55792        * layout-tests/apple-only/base/www.cnn.com/index-expected.txt:
55793        * layout-tests/apple-only/base/www.digitalcity.com/index-expected.txt:
55794        * layout-tests/apple-only/base/www.ebay.com/index-expected.txt:
55795        * layout-tests/apple-only/base/www.excite.com/index-expected.txt:
55796        * layout-tests/apple-only/base/www.expedia.com/index-expected.txt:
55797        * layout-tests/apple-only/base/www.iplanet.com/index-expected.txt:
55798        * layout-tests/apple-only/base/www.mapquest.com/index-expected.txt:
55799        * layout-tests/apple-only/base/www.microsoft.com/index-expected.txt:
55800        * layout-tests/apple-only/base/www.moviefone.com/index-expected.txt:
55801        * layout-tests/apple-only/base/www.msn.com/index-expected.txt:
55802        * layout-tests/apple-only/base/www.msnbc.com/index-expected.txt:
55803        * layout-tests/apple-only/base/www.nytimes.com/index-expected.txt:
55804        * layout-tests/apple-only/base/www.nytimes.com_Table/index-expected.txt:
55805        * layout-tests/apple-only/base/www.quicken.com/index-expected.txt:
55806        * layout-tests/apple-only/base/www.sun.com/index-expected.txt:
55807        * layout-tests/apple-only/base/www.time.com/index-expected.txt:
55808        * layout-tests/apple-only/base/www.travelocity.com/index-expected.txt:
55809        * layout-tests/apple-only/base/www.w3.org_DOML2Core/index-expected.txt:
55810        * layout-tests/apple-only/base/www.yahoo.com/index-expected.txt:
55811        * layout-tests/apple-only/base/www.zdnet.com/index-expected.txt:
55812        * layout-tests/apple-only/base/www.zdnet.com_Gamespot.com/index-expected.txt:
55813        * layout-tests/css1/basic/class_as_selector-expected.txt:
55814        * layout-tests/css1/basic/comments-expected.txt:
55815        * layout-tests/css1/basic/containment-expected.txt:
55816        * layout-tests/css1/basic/contextual_selectors-expected.txt:
55817        * layout-tests/css1/basic/grouping-expected.txt:
55818        * layout-tests/css1/basic/id_as_selector-expected.txt:
55819        * layout-tests/css1/basic/inheritance-expected.txt:
55820        * layout-tests/css1/box_properties/acid_test-expected.txt:
55821        * layout-tests/css1/box_properties/border-expected.txt:
55822        * layout-tests/css1/box_properties/border_bottom-expected.txt:
55823        * layout-tests/css1/box_properties/border_bottom_inline-expected.txt:
55824        * layout-tests/css1/box_properties/border_bottom_width-expected.txt:
55825        * layout-tests/css1/box_properties/border_bottom_width_inline-expected.txt:
55826        * layout-tests/css1/box_properties/border_color-expected.txt:
55827        * layout-tests/css1/box_properties/border_color_inline-expected.txt:
55828        * layout-tests/css1/box_properties/border_inline-expected.txt:
55829        * layout-tests/css1/box_properties/border_left-expected.txt:
55830        * layout-tests/css1/box_properties/border_left_inline-expected.txt:
55831        * layout-tests/css1/box_properties/border_left_width-expected.txt:
55832        * layout-tests/css1/box_properties/border_left_width_inline-expected.txt:
55833        * layout-tests/css1/box_properties/border_right-expected.txt:
55834        * layout-tests/css1/box_properties/border_right_inline-expected.txt:
55835        * layout-tests/css1/box_properties/border_right_width-expected.txt:
55836        * layout-tests/css1/box_properties/border_right_width_inline-expected.txt:
55837        * layout-tests/css1/box_properties/border_style-expected.txt:
55838        * layout-tests/css1/box_properties/border_style_inline-expected.txt:
55839        * layout-tests/css1/box_properties/border_top-expected.txt:
55840        * layout-tests/css1/box_properties/border_top_inline-expected.txt:
55841        * layout-tests/css1/box_properties/border_top_width-expected.txt:
55842        * layout-tests/css1/box_properties/border_top_width_inline-expected.txt:
55843        * layout-tests/css1/box_properties/border_width-expected.txt:
55844        * layout-tests/css1/box_properties/border_width_inline-expected.txt:
55845        * layout-tests/css1/box_properties/clear-expected.txt:
55846        * layout-tests/css1/box_properties/clear_float-expected.txt:
55847        * layout-tests/css1/box_properties/float-expected.txt:
55848        * layout-tests/css1/box_properties/float_elements_in_series-expected.txt:
55849        * layout-tests/css1/box_properties/float_margin-expected.txt:
55850        * layout-tests/css1/box_properties/float_on_text_elements-expected.txt:
55851        * layout-tests/css1/box_properties/height-expected.txt:
55852        * layout-tests/css1/box_properties/margin-expected.txt:
55853        * layout-tests/css1/box_properties/margin_bottom-expected.txt:
55854        * layout-tests/css1/box_properties/margin_bottom_inline-expected.txt:
55855        * layout-tests/css1/box_properties/margin_inline-expected.txt:
55856        * layout-tests/css1/box_properties/margin_left-expected.txt:
55857        * layout-tests/css1/box_properties/margin_left_inline-expected.txt:
55858        * layout-tests/css1/box_properties/margin_right-expected.txt:
55859        * layout-tests/css1/box_properties/margin_right_inline-expected.txt:
55860        * layout-tests/css1/box_properties/margin_top-expected.txt:
55861        * layout-tests/css1/box_properties/margin_top_inline-expected.txt:
55862        * layout-tests/css1/box_properties/padding-expected.txt:
55863        * layout-tests/css1/box_properties/padding_bottom-expected.txt:
55864        * layout-tests/css1/box_properties/padding_bottom_inline-expected.txt:
55865        * layout-tests/css1/box_properties/padding_inline-expected.txt:
55866        * layout-tests/css1/box_properties/padding_left-expected.txt:
55867        * layout-tests/css1/box_properties/padding_left_inline-expected.txt:
55868        * layout-tests/css1/box_properties/padding_right-expected.txt:
55869        * layout-tests/css1/box_properties/padding_right_inline-expected.txt:
55870        * layout-tests/css1/box_properties/padding_top-expected.txt:
55871        * layout-tests/css1/box_properties/padding_top_inline-expected.txt:
55872        * layout-tests/css1/box_properties/width-expected.txt:
55873        * layout-tests/css1/cascade/cascade_order-expected.txt:
55874        * layout-tests/css1/cascade/important-expected.txt:
55875        * layout-tests/css1/classification/display-expected.txt:
55876        * layout-tests/css1/classification/list_style-expected.txt:
55877        * layout-tests/css1/classification/list_style_image-expected.txt:
55878        * layout-tests/css1/classification/list_style_position-expected.txt:
55879        * layout-tests/css1/classification/list_style_type-expected.txt:
55880        * layout-tests/css1/classification/white_space-expected.txt:
55881        * layout-tests/css1/color_and_background/background-expected.txt:
55882        * layout-tests/css1/color_and_background/background_attachment-expected.txt:
55883        * layout-tests/css1/color_and_background/background_color-expected.txt:
55884        * layout-tests/css1/color_and_background/background_image-expected.txt:
55885        * layout-tests/css1/color_and_background/background_position-expected.txt:
55886        * layout-tests/css1/color_and_background/background_repeat-expected.txt:
55887        * layout-tests/css1/color_and_background/color-expected.txt:
55888        * layout-tests/css1/conformance/forward_compatible_parsing-expected.txt:
55889        * layout-tests/css1/font_properties/font-expected.txt:
55890        * layout-tests/css1/font_properties/font_family-expected.txt:
55891        * layout-tests/css1/font_properties/font_size-expected.txt:
55892        * layout-tests/css1/font_properties/font_style-expected.txt:
55893        * layout-tests/css1/font_properties/font_variant-expected.txt:
55894        * layout-tests/css1/font_properties/font_weight-expected.txt:
55895        * layout-tests/css1/formatting_model/canvas-expected.txt:
55896        * layout-tests/css1/formatting_model/floating_elements-expected.txt:
55897        * layout-tests/css1/formatting_model/height_of_lines-expected.txt:
55898        * layout-tests/css1/formatting_model/inline_elements-expected.txt:
55899        * layout-tests/css1/formatting_model/replaced_elements-expected.txt:
55900        * layout-tests/css1/formatting_model/vertical_formatting-expected.txt:
55901        * layout-tests/css1/pseudo/anchor-expected.txt:
55902        * layout-tests/css1/pseudo/firstletter-expected.txt:
55903        * layout-tests/css1/pseudo/firstline-expected.txt:
55904        * layout-tests/css1/pseudo/multiple_pseudo_elements-expected.txt:
55905        * layout-tests/css1/pseudo/pseudo_elements_in_selectors-expected.txt:
55906        * layout-tests/css1/text_properties/letter_spacing-expected.txt:
55907        * layout-tests/css1/text_properties/line_height-expected.txt:
55908        * layout-tests/css1/text_properties/text-transform-expected.txt:
55909        * layout-tests/css1/text_properties/text_align-expected.txt:
55910        * layout-tests/css1/text_properties/text_decoration-expected.txt:
55911        * layout-tests/css1/text_properties/text_indent-expected.txt:
55912        * layout-tests/css1/text_properties/text_transform-expected.txt:
55913        * layout-tests/css1/text_properties/vertical_align-expected.txt:
55914        * layout-tests/css1/text_properties/word_spacing-expected.txt:
55915        * layout-tests/css1/units/color_units-expected.txt:
55916        * layout-tests/css1/units/length_units-expected.txt:
55917        * layout-tests/css1/units/percentage_units-expected.txt:
55918        * layout-tests/css1/units/urls-expected.txt:
55919        * layout-tests/fast/block/basic/001-expected.txt:
55920        * layout-tests/fast/block/basic/002-expected.txt:
55921        * layout-tests/fast/block/basic/003-expected.txt:
55922        * layout-tests/fast/block/basic/004-expected.txt:
55923        * layout-tests/fast/block/basic/007-expected.txt:
55924        * layout-tests/fast/block/basic/011-expected.txt:
55925        * layout-tests/fast/block/basic/015-expected.txt:
55926        * layout-tests/fast/block/basic/016-expected.txt:
55927        * layout-tests/fast/block/basic/017-expected.txt:
55928        * layout-tests/fast/block/basic/018-expected.txt:
55929        * layout-tests/fast/block/basic/019-expected.txt:
55930        * layout-tests/fast/block/float/004-expected.txt:
55931        * layout-tests/fast/block/float/005-expected.txt:
55932        * layout-tests/fast/block/float/006-expected.txt:
55933        * layout-tests/fast/block/float/007-expected.txt:
55934        * layout-tests/fast/block/float/012-expected.txt:
55935        * layout-tests/fast/block/float/013-expected.txt:
55936        * layout-tests/fast/block/float/015-expected.txt:
55937        * layout-tests/fast/block/float/016-expected.txt:
55938        * layout-tests/fast/block/float/017-expected.txt:
55939        * layout-tests/fast/block/float/019-expected.txt:
55940        * layout-tests/fast/block/float/021-expected.txt:
55941        * layout-tests/fast/block/float/022-expected.txt:
55942        * layout-tests/fast/block/float/024-expected.txt:
55943        * layout-tests/fast/block/float/025-expected.txt:
55944        * layout-tests/fast/block/float/026-expected.txt:
55945        * layout-tests/fast/block/float/027-expected.txt:
55946        * layout-tests/fast/block/float/028-expected.txt:
55947        * layout-tests/fast/block/margin-collapse/001-expected.txt:
55948        * layout-tests/fast/block/margin-collapse/005-expected.txt:
55949        * layout-tests/fast/block/margin-collapse/006-expected.txt:
55950        * layout-tests/fast/block/margin-collapse/010-expected.txt:
55951        * layout-tests/fast/block/margin-collapse/011-expected.txt:
55952        * layout-tests/fast/block/margin-collapse/012-expected.txt:
55953        * layout-tests/fast/block/margin-collapse/015-expected.txt:
55954        * layout-tests/fast/block/margin-collapse/016-expected.txt:
55955        * layout-tests/fast/block/margin-collapse/017-expected.txt:
55956        * layout-tests/fast/block/margin-collapse/018-expected.txt:
55957        * layout-tests/fast/block/margin-collapse/019-expected.txt:
55958        * layout-tests/fast/block/margin-collapse/020-expected.txt:
55959        * layout-tests/fast/block/margin-collapse/021-expected.txt:
55960        * layout-tests/fast/block/margin-collapse/022-expected.txt:
55961        * layout-tests/fast/block/margin-collapse/024-expected.txt:
55962        * layout-tests/fast/block/margin-collapse/025-expected.txt:
55963        * layout-tests/fast/block/margin-collapse/026-expected.txt:
55964        * layout-tests/fast/block/margin-collapse/027-expected.txt:
55965        * layout-tests/fast/block/margin-collapse/028-expected.txt:
55966        * layout-tests/fast/block/margin-collapse/029-expected.txt:
55967        * layout-tests/fast/block/margin-collapse/030-expected.txt:
55968        * layout-tests/fast/block/margin-collapse/032-expected.txt:
55969        * layout-tests/fast/block/margin-collapse/033-expected.txt:
55970        * layout-tests/fast/block/margin-collapse/034-expected.txt:
55971        * layout-tests/fast/block/margin-collapse/035-expected.txt:
55972        * layout-tests/fast/block/margin-collapse/041-expected.txt:
55973        * layout-tests/fast/block/margin-collapse/042-expected.txt:
55974        * layout-tests/fast/block/margin-collapse/043-expected.txt:
55975        * layout-tests/fast/block/positioning/048-expected.txt:
55976        * layout-tests/fast/block/positioning/049-expected.txt:
55977        * layout-tests/fast/block/positioning/050-expected.txt:
55978        * layout-tests/fast/block/positioning/051-expected.txt:
55979        * layout-tests/fast/block/positioning/056-expected.txt:
55980        * layout-tests/fast/block/positioning/057-expected.txt:
55981        * layout-tests/fast/block/positioning/058-expected.txt:
55982        * layout-tests/fast/block/positioning/auto/001-expected.txt:
55983        * layout-tests/fast/block/positioning/auto/002-expected.txt:
55984        * layout-tests/fast/block/positioning/auto/003-expected.txt:
55985        * layout-tests/fast/block/positioning/auto/004-expected.txt:
55986        * layout-tests/fast/block/positioning/auto/005-expected.txt:
55987        * layout-tests/fast/block/positioning/auto/006-expected.txt:
55988        * layout-tests/fast/clip/013-expected.txt:
55989        * layout-tests/fast/clip/014-expected.txt:
55990        * layout-tests/fast/css-generated-content/006-expected.txt:
55991        * layout-tests/fast/css/003-expected.txt:
55992        * layout-tests/fast/css/004-expected.txt:
55993        * layout-tests/fast/css/005-expected.txt:
55994        * layout-tests/fast/dynamic/002-expected.txt:
55995        * layout-tests/fast/dynamic/004-expected.txt:
55996        * layout-tests/fast/encoding/utf-16-big-endian-expected.txt:
55997        * layout-tests/fast/encoding/utf-16-little-endian-expected.txt:
55998        * layout-tests/fast/flexbox/007-expected.txt:
55999        * layout-tests/fast/flexbox/008-expected.txt:
56000        * layout-tests/fast/flexbox/009-expected.txt:
56001        * layout-tests/fast/flexbox/011-expected.txt:
56002        * layout-tests/fast/flexbox/016-expected.txt:
56003        * layout-tests/fast/flexbox/017-expected.txt:
56004        * layout-tests/fast/flexbox/018-expected.txt:
56005        * layout-tests/fast/flexbox/019-expected.txt:
56006        * layout-tests/fast/flexbox/022-expected.txt:
56007        * layout-tests/fast/flexbox/025-expected.txt:
56008        * layout-tests/fast/forms/001-expected.txt:
56009        * layout-tests/fast/forms/002-expected.txt:
56010        * layout-tests/fast/forms/006-expected.txt:
56011        * layout-tests/fast/forms/007-expected.txt:
56012        * layout-tests/fast/forms/form-element-geometry-expected.txt:
56013        * layout-tests/fast/frames/001-expected.txt:
56014        * layout-tests/fast/inline-block/001-expected.txt:
56015        * layout-tests/fast/inline-block/002-expected.txt:
56016        * layout-tests/fast/inline-block/003-expected.txt:
56017        * layout-tests/fast/inline/001-expected.txt:
56018        * layout-tests/fast/invalid/008-expected.txt:
56019        * layout-tests/fast/invalid/014-expected.txt:
56020        * layout-tests/fast/invalid/016-expected.txt:
56021        * layout-tests/fast/lists/001-expected.txt:
56022        * layout-tests/fast/lists/004-expected.txt:
56023        * layout-tests/fast/lists/007-expected.txt:
56024        * layout-tests/fast/overflow/001-expected.txt:
56025        * layout-tests/fast/overflow/002-expected.txt:
56026        * layout-tests/fast/overflow/004-expected.txt:
56027        * layout-tests/fast/replaced/005-expected.txt:
56028        * layout-tests/fast/replaced/006-expected.txt:
56029        * layout-tests/fast/replaced/008-expected.txt:
56030        * layout-tests/fast/selectors/009-expected.txt:
56031        * layout-tests/fast/selectors/014-expected.txt:
56032        * layout-tests/fast/selectors/032-expected.txt:
56033        * layout-tests/fast/selectors/033-expected.txt:
56034        * layout-tests/fast/selectors/039-expected.txt:
56035        * layout-tests/fast/selectors/039b-expected.txt:
56036        * layout-tests/fast/selectors/064-expected.txt:
56037        * layout-tests/fast/selectors/077-expected.txt:
56038        * layout-tests/fast/selectors/077b-expected.txt:
56039        * layout-tests/fast/selectors/078-expected.txt:
56040        * layout-tests/fast/selectors/078b-expected.txt:
56041        * layout-tests/fast/selectors/166a-expected.txt:
56042        * layout-tests/fast/table/003-expected.txt:
56043        * layout-tests/fast/table/004-expected.txt:
56044        * layout-tests/fast/table/005-expected.txt:
56045        * layout-tests/fast/table/006-expected.txt:
56046        * layout-tests/fast/table/007-expected.txt:
56047        * layout-tests/fast/table/008-expected.txt:
56048        * layout-tests/fast/table/009-expected.txt:
56049        * layout-tests/fast/table/015-expected.txt:
56050        * layout-tests/fast/table/017-expected.txt:
56051        * layout-tests/fast/table/018-expected.txt:
56052        * layout-tests/fast/table/020-expected.txt:
56053        * layout-tests/fast/table/023-expected.txt:
56054        * layout-tests/fast/table/025-expected.txt:
56055        * layout-tests/fast/table/027-expected.txt:
56056        * layout-tests/fast/table/028-expected.txt:
56057        * layout-tests/fast/table/029-expected.txt:
56058        * layout-tests/fast/table/030-expected.txt:
56059        * layout-tests/fast/table/035-expected.txt:
56060        * layout-tests/fast/table/036-expected.txt:
56061        * layout-tests/fast/table/038-expected.txt:
56062        * layout-tests/fast/table/border-collapsing/001-expected.txt:
56063        * layout-tests/fast/table/border-collapsing/002-expected.txt:
56064        * layout-tests/fast/table/border-collapsing/003-expected.txt:
56065        * layout-tests/fast/table/border-collapsing/004-expected.txt:
56066        * layout-tests/fast/table/large-width-expected.txt:
56067        * layout-tests/fast/table/nobr-expected.txt:
56068        * layout-tests/fast/text/basic/001-expected.txt:
56069        * layout-tests/fast/text/basic/003-expected.txt:
56070        * layout-tests/fast/text/basic/004-expected.txt:
56071        * layout-tests/fast/text/basic/005-expected.txt:
56072        * layout-tests/fast/text/basic/006-expected.txt:
56073        * layout-tests/fast/text/basic/007-expected.txt:
56074        * layout-tests/fast/text/basic/012-expected.txt:
56075        * layout-tests/fast/text/firstline/002-expected.txt:
56076        * layout-tests/fast/text/whitespace/002-expected.txt:
56077        * layout-tests/fast/text/whitespace/003-expected.txt:
56078        * layout-tests/fast/text/whitespace/020-expected.txt:
56079        * layout-tests/fast/text/whitespace/023-expected.txt:
56080        * layout-tests/fast/text/whitespace/024-expected.txt:
56081        * layout-tests/fast/text/whitespace/025-expected.txt:
56082        * layout-tests/fast/text/whitespace/027-expected.txt:
56083
560842003-11-16  Maciej Stachowiak  <mjs@apple.com>
56085
56086        Reviewed by John.
56087
56088	- fixed 3362841 - javascript History Object length property is always 0
56089
56090        * kwq/KWQKPartsBrowserInterface.mm:
56091        (KParts::BrowserInterface::property): For the historyLength property,
56092	retturn a UInt variant, not Int, because that's what the kjs_window code
56093	expects.
56094
560952003-11-14  Maciej Stachowiak  <mjs@apple.com>
56096
56097        Reviewed by Ken and Dave.
56098
56099	- fixed 3471925 - getting and setting cssText not implemented
56100
56101        * khtml/css/css_valueimpl.cpp:
56102        (CSSStyleDeclarationImpl::cssText): Implemented by gathering text of all
56103	properties (that are not non-CSS hints), separated with semicolons.
56104        (CSSStyleDeclarationImpl::setCssText): Implemented by clearing all existing
56105	properties (that are not non-CSS hints) and invoking css parser.
56106        (CSSValueListImpl::cssText): Implemented.
56107        (FontValueImpl::cssText): Implemented.
56108        (ShadowValueImpl::cssText): Implemented.
56109        (CSSProperty::cssText): Implemented.
56110        * khtml/css/css_valueimpl.h: Declared new methods; made
56111	CSSValueImpl::cssText() pure virtual; removed CSSValueImpl::setCssText().
56112
561132003-11-16  David Hyatt  <hyatt@apple.com>
56114
56115	3485717, Cleanup of the float code.  Eliminated the -khtml-flow-mode style property in favor of two simple methods,
56116	avoidsFloats() and usesLineWidth().  avoidsFloats can be called to tell whether an object does not want
56117	floats to intrude into its space (and that it should also move to avoid floats).  usesLineWidth is called
56118	to find out if an object's containing block width is the line width or the content width, and has all the
56119	right smarts to emulate WinIE's behaviors in both quirks and strict mode.
56120
56121	Also fixed a bug (3485718) where overflow:scroll blocks with auto height did not factor in the horizontal scrollbar's
56122	height (thus causing it to paint on top of content).
56123	
56124        Reviewed by darin
56125
56126        * khtml/css/cssparser.cpp:
56127        (CSSParser::parseValue):
56128        * khtml/css/cssstyleselector.cpp:
56129        (khtml::CSSStyleSelector::applyRule):
56130        * khtml/css/cssvalues.c:
56131        (hash_val):
56132        (findValue):
56133        * khtml/css/cssvalues.h:
56134        * khtml/css/cssvalues.in:
56135        * khtml/css/html4.css:
56136        * khtml/rendering/bidi.cpp:
56137        (khtml::RenderBlock::layoutInlineChildren):
56138        * khtml/rendering/render_block.cpp:
56139        (khtml::RenderBlock::layoutBlock):
56140        (khtml::RenderBlock::layoutBlockChildren):
56141        (khtml::RenderBlock::clearFloats):
56142        * khtml/rendering/render_box.cpp:
56143        (RenderBox::containingBlockWidth):
56144        (RenderBox::calcWidth):
56145        * khtml/rendering/render_object.cpp:
56146        (RenderObject::isHR):
56147        * khtml/rendering/render_object.h:
56148        (khtml::RenderObject::avoidsFloats):
56149        (khtml::RenderObject::usesLineWidth):
56150        * khtml/rendering/render_style.h:
56151        (khtml::RenderStyle::NonInheritedFlags::operator==):
56152        (khtml::RenderStyle::setBitDefaults):
56153        (khtml::RenderStyle::initialTextDecoration):
56154        * khtml/rendering/render_table.cpp:
56155        (RenderTable::calcWidth):
56156
561572003-11-14  David Hyatt  <hyatt@apple.com>
56158
56159	Fix for 3485260, regression on Uniview site from incremental repainting.  When appending/inserting child
56160	nodes into the render tree, we need to always mark them as needing layout themselves (and not just as
56161	having children needing layout).  This ensures that the incremental repainting code will know to repaint the
56162	enclosing container (even though that container's size may not change).
56163
56164	Fix for 3411960, block-level replaced elements should avoid floats.
56165
56166	Fix for 3463234, floats should not intrude into overflow blocks (even when siblings happen to get in
56167	between the float and the overflow block).
56168
56169	Fix for 3485576, the containing block for text runs is incorrect.
56170
56171	Fix for 3485577, text runs should not trigger layout when style is re-resolved.
56172	
56173        Reviewed by darin
56174
56175        * khtml/rendering/render_container.cpp:
56176        (RenderContainer::appendChildNode):
56177        (RenderContainer::insertChildNode):
56178        * khtml/rendering/render_box.cpp
56179	* khtml/rendering/render_object.cpp
56180	
561812003-11-14  David Hyatt  <hyatt@apple.com>
56182
56183	Fix for 3473707, 100% height positioned divs are too tall.  The padding box wasn't being used like it was
56184	supposed to be when calcing percentage heights.
56185	
56186        Reviewed by kocienda
56187
56188        * khtml/rendering/render_box.cpp:
56189        (RenderBox::calcAbsoluteVertical):
56190
56191=== Safari-114 ===
56192
561932003-11-14  Maciej Stachowiak  <mjs@apple.com>
56194
56195        - backed out changes unintentionally commited while the tree was closed
56196
56197        * khtml/css/css_valueimpl.cpp:
56198        * khtml/css/css_valueimpl.h:
56199        * kwq/KWQKPartsBrowserInterface.mm:
56200
562012003-11-14  Maciej Stachowiak  <mjs@apple.com>
56202
56203        Reviewed by Ken.
56204
56205	- fixed 3471925 - getting and setting cssText not implemented
56206
56207        * khtml/css/css_valueimpl.cpp:
56208        (CSSStyleDeclarationImpl::cssText): Implemented by gathering text of all
56209	properties, separated with semicolons.
56210        (CSSStyleDeclarationImpl::setCssText): Implemented by clearing all existing
56211	properties and invoking css parser.
56212        (CSSValueListImpl::cssText): Implemented.
56213        (FontValueImpl::cssText): Implemented.
56214        (ShadowValueImpl::cssText): Implemented.
56215        (CSSProperty::cssText): Implemented.
56216        * khtml/css/css_valueimpl.h: Declared new methods; made
56217	CSSValueImpl::cssText() pure virtual; removed
56218	CSSValueImpl::setCssText().
56219
562202003-11-14  Darin Adler  <darin@apple.com>
56221
56222        Reviewed by John.
56223
56224        - first half of fix for 3457162 -- selecting text during a page load that blows the text field
56225          away causes a crash
56226
56227        The WebCore part of this fix is to generalize the "defers loading" feature to all mouse clicks,
56228        rather than just doing it for mouse clicks on the combo box.
56229
56230        * kwq/KWQComboBox.mm: (-[KWQPopUpButtonCell trackMouse:inRect:ofView:untilMouseUp:]):
56231        Remove code to defer loading.
56232        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::passWidgetMouseDownEventToWidget): Put the code here
56233        instead.
56234
562352003-11-14  John Sullivan  <sullivan@apple.com>
56236
56237        - fixed <rdar://problem/3483585>: Option-tab in a text field inputs 
56238        a character rather than tabbing to the next widget
56239
56240        Reviewed by Ken.
56241
56242        * kwq/KWQKHTMLPart.h:
56243        * kwq/KWQKHTMLPart.mm:
56244        (KWQKHTMLPart::handleKeyboardOptionTabInView):
56245        New method. If current event is option-tab or option-shift-tab, do
56246        keyboard navigation and return YES.
56247        
56248        * kwq/KWQTextArea.mm:
56249        (-[KWQTextArea textDidChange:]):
56250        Bail out if KWQKHTMLPart::handleKeyboardOptionTabInView returns YES.
56251        
56252        * kwq/KWQTextField.mm:
56253        (-[KWQTextField controlTextDidChange:]):
56254        Bail out if KWQKHTMLPart::handleKeyboardOptionTabInView returns YES.
56255
562562003-11-13  Darin Adler  <darin@apple.com>
56257
56258        Reviewed by Dave.
56259
56260        - fixed 3472875 -- REGRESSION (109-110): insertion point does not blink in a nonempty textarea
56261        - fixed 3484002 -- disabling, then enabling a read-only <textarea> will make it editable
56262
56263        * kwq/KWQTextArea.mm:
56264        (-[KWQTextArea setText:]): Call updateTextColor after setting the text.
56265        (-[KWQTextArea setEditable:]): Don't set the NSTextView editable property directly,
56266        because we don't want to make a disabled text view editable right away, but we need
56267        to later if it's enabled.
56268        (-[KWQTextArea isEditable]): Don't get the NSTextView editable property directly,
56269        because it can be appropriate to return YES even if the text view happens to be disabled.
56270        (-[KWQTextAreaTextView initWithFrame:textContainer:]): Initialize editableIfEnabled to YES.
56271        (-[KWQTextAreaTextView setEnabled:]): Don't set the editable state to true if
56272        editableIfEnabled is NO. The old code would make a read-only field editable if you
56273        changed it to be enabled. Also update the color of the text here.
56274        (-[KWQTextAreaTextView setEditableIfEnabled:]): Store the editableIfEnabled state in a
56275        field, and then alter the state of the editable flag to match if we're currently enabled.
56276        (-[KWQTextAreaTextView isEditableIfEnabled]): Return the editableIfEnabled state.
56277        (-[KWQTextAreaTextView updateTextColor]): Update the color of the text. This was done in
56278        drawRect: before, which was the cause of the lack of insertion point.
56279
562802003-11-13  Darin Adler  <darin@apple.com>
56281
56282        Reviewed by Dave.
56283
56284        - fixed 3474330 -- tooltips do not work for <area> elements
56285
56286        * kwq/WebCoreBridge.mm: (-[WebCoreBridge elementAtPoint:]): When looking for a title, start
56287        with innerNode (which can be an <area> inside a <map>). This matches what Mozilla does.
56288
562892003-11-13  Maciej Stachowiak  <mjs@apple.com>
56290
56291        Reviewed by John.
56292
56293	- fixed - 3479285 - hang at www.saccourt.com
56294	- fixed - 3477088 - (85-112) Safari frozen loading a page at Postal Service site of Taiwan
56295	
56296        * khtml/ecma/kjs_html.cpp:
56297        (KJS::HTMLSelectCollection::tryPut): Use the range-checking
56298	version of the number-conversion function to avoid negative
56299	numbers and NaN.
56300
563012003-11-13  Ken Kocienda  <kocienda@apple.com>
56302
56303        Reviewed by John
56304	
56305	Fix for this bug:
56306
56307	<rdar://problem/3483284>: Tabbing to links needs to honor new 
56308	WebKit tab-to-links preference
56309
56310	In addition to fixing the bug, I also did a bit of cleanup
56311	in the code which helps to determine tab order.
56312
56313	Biggest change is to modify the keyboard UI mode function so
56314	that it is a set of flags, rather than a straight-up value.
56315
56316	I also tweaked the names on the keyboard UI mode constants
56317	to make them read better.
56318
56319        * kwq/KWQButton.mm:
56320        (QButton::focusPolicy): Tweaks to make more readable and use 
56321	new model for keyboard UI mode.
56322        * kwq/KWQComboBox.mm:
56323        (QComboBox::focusPolicy): Ditto. Plus, this function was not
56324	blocking exceptions.
56325        * kwq/KWQFileButton.mm:
56326        (KWQFileButton::focusPolicy): Tweaks to make more readable and use 
56327        new model for keyboard UI mode.
56328        * kwq/KWQKHTMLPart.h:
56329        * kwq/KWQKHTMLPart.mm:
56330        (KWQKHTMLPart::nextKeyViewInFrame): Now checks new tabsToLinks
56331	function to determine if links can be tabbed to.
56332        (KWQKHTMLPart::currentEventIsKeyboardOptionTab): New function
56333	checks for option-tab keyboard event.
56334        (KWQKHTMLPart::tabsToLinks): New helper to take keyboard UI mode
56335	and option-tab into account.
56336        (KWQKHTMLPart::keyboardUIMode): Name tweak.
56337        * kwq/KWQListBox.mm: Tweaks to make more readable and use 
56338        new model for keyboard UI mode.
56339        (QListBox::focusPolicy):
56340        * kwq/WebCoreKeyboardAccess.h: Tweaked names. Added WebCoreKeyboardAccessTabsToLinks.
56341
563422003-11-13  David Hyatt  <hyatt@apple.com>
56343
56344	Implement a custom unfurl marquee style.
56345	
56346        Reviewed by john
56347
56348        * khtml/css/cssparser.cpp:
56349        (CSSParser::parseValue):
56350        * khtml/css/cssstyleselector.cpp:
56351        (khtml::CSSStyleSelector::applyRule):
56352        * khtml/css/cssvalues.c:
56353        (hash_val):
56354        (findValue):
56355        * khtml/css/cssvalues.h:
56356        * khtml/css/cssvalues.in:
56357        * khtml/rendering/render_box.cpp:
56358        (RenderBox::calcHeight):
56359        * khtml/rendering/render_layer.cpp:
56360        (m_direction):
56361        (Marquee::isUnfurlMarquee):
56362        (Marquee::start):
56363        (Marquee::updateMarqueePosition):
56364        (Marquee::updateMarqueeStyle):
56365        (Marquee::timerEvent):
56366        * khtml/rendering/render_layer.h:
56367        (khtml::):
56368        * khtml/rendering/render_style.h:
56369        (khtml::):
56370
563712003-11-13  Ken Kocienda  <kocienda@apple.com>
56372
56373        Reviewed by John
56374
56375	Fix for this bug:
56376
56377	<rdar://problem/3480761>: event object type attribute returns 
56378	khtml_keypress instead of keypress
56379
56380	Fixed string so that it returns keypress instead of khtml_keypress.
56381	While I was at it, I changed the constant used for this event from
56382	KHTML_KEYPRESS_EVENT to KEYPRESS_EVENT.
56383
56384        * khtml/ecma/kjs_binding.cpp:
56385        (ScriptInterpreter::wasRunByUserGesture): Constant name fixup.
56386        * khtml/ecma/kjs_dom.cpp: Ditto.
56387        (DOMNode::getValueProperty): Ditto.
56388        (DOMNode::putValue): Ditto.
56389        * khtml/ecma/kjs_window.cpp:
56390        (Window::get): Ditto.
56391        (Window::put): Ditto.
56392        * khtml/html/html_elementimpl.cpp:
56393        (HTMLElementImpl::parseAttribute): Ditto.
56394        * khtml/html/html_formimpl.cpp:
56395        (HTMLInputElementImpl::defaultEventHandler): Ditto.
56396        (HTMLSelectElementImpl::defaultEventHandler): Ditto.
56397        * khtml/xml/dom2_eventsimpl.cpp:
56398        (EventImpl::idToType): This is the change that fixes the bug.
56399        (KeyboardEventImpl::KeyboardEventImpl): Constant name fixup.
56400        * khtml/xml/dom2_eventsimpl.h:
56401        (DOM::EventImpl::): Ditto.
56402
564032003-11-13  Darin Adler  <darin@apple.com>
56404
56405        Reviewed by Ken.
56406
56407        - fixed 3452554 -- keyCode attribute for DOM events reports incorrect value
56408
56409        * khtml/dom/dom2_events.cpp:
56410        (UIEvent::keyCode): Return the Windows key code for keydown and keyup events.
56411        But for other events, return the character code. This matches IE.
56412        (UIEvent::which): Same behavior for now; may need further refinement.
56413
56414        * kwq/KWQEvent.h: Change QEvent to allow copying. The Qt version probably doesn't
56415        allow it, but for us it's no big deal. Our event objects are just data holders.
56416        (QKeyEvent::QKeyEvent): Change parameters; take an NSEvent and figure the rest out
56417        here. Except for now get the type, button state, and auto repeat flag from the caller
56418        because that's a smaller change from how things are done now. I'll take this the next
56419        step later.
56420        * kwq/KWQEvent.mm:
56421        (characterCode): Added. Extracts the character code from the string if it's exactly
56422        1 character long.
56423        (WindowsKeyCode): Added. Given an event, figures out the Windows key code. 
56424        (QKeyEvent::QKeyEvent): Changed to get things from the NSEvent rather than having them
56425        passed individually. One change is that _ascii is now the Unicode value of the first
56426        character in the string. This causes us to return the Unicode value from keyCode for
56427        keypress events. Another change is that we now compute the Windows key code.
56428
56429        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::keyEvent): Change to use the new QKeyEvent
56430        constructor, passing in the NSEvent.
56431
56432        * khtml/xml/dom2_eventsimpl.cpp: (KeyboardEventImpl::KeyboardEventImpl):
56433        In APPLE_CHANGES, copy the QKeyEvent using the copy constructor rather than
56434        listing the fields. This is easier to maintain when the list of fields changes.
56435
56436        * khtml/rendering/render_form.cpp: (ComboBoxWidget::eventFilter): Put #if
56437        !APPLE_CHANGES around code that constructs a QKeyEvent. We don't ever run this
56438        code, but now we can't compile it either so we need the #if.
56439
564402003-11-12  David Hyatt  <hyatt@apple.com>
56441
56442	Fix for 3482132, incremental repainting for layout, i.e., only repaint areas that change when
56443	doing a layout.
56444	
56445        Reviewed by kocienda
56446
56447        * khtml/khtmlview.h:
56448        * khtml/rendering/render_canvas.cpp:
56449        (RenderCanvas::repaintViewRectangle):
56450        * khtml/rendering/render_layer.h:
56451        * khtml/rendering/render_object.cpp:
56452        (RenderObject::setNeedsLayout):
56453        (RenderObject::setChildNeedsLayout):
56454        * khtml/rendering/render_object.h:
56455        * khtml/rendering/render_table.cpp:
56456        (RenderTableSection::layoutRows):
56457
564582003-11-12  Ken Kocienda  <kocienda@apple.com>
56459
56460	I am an idiot for just assuming that these elements implement a focus()
56461	function, without actually compiling and testing. I will have to add 
56462	this function to these elements so I can make this work.
56463
56464        * khtml/html/html_formimpl.cpp:
56465        (HTMLButtonElementImpl::accessKeyAction): These elements do not implement focus().
56466        * khtml/html/html_inlineimpl.cpp:
56467        (HTMLAnchorElementImpl::accessKeyAction): Ditto.
56468
564692003-11-12  Ken Kocienda  <kocienda@apple.com>
56470
56471        Reviewed by Richard
56472
56473        * khtml/html/html_formimpl.cpp:
56474        (HTMLButtonElementImpl::click): Implemented. Missed this in my earlier patch.
56475        (HTMLButtonElementImpl::accessKeyAction): Added. Focus and click.
56476        (HTMLInputElementImpl::accessKeyAction): Added. Focus the element.
56477        (HTMLSelectElementImpl::accessKeyAction): Added. Focus the element.
56478        (HTMLTextAreaElementImpl::accessKeyAction): Added. Focus the element.
56479        * khtml/html/html_formimpl.h:
56480        * khtml/html/html_inlineimpl.cpp:
56481        (HTMLAnchorElementImpl::accessKeyAction): Added. Focus and click.
56482        * khtml/html/html_inlineimpl.h:
56483        * khtml/xml/dom_docimpl.cpp:
56484        (DocumentImpl::DocumentImpl):
56485        (DocumentImpl::addElementById): Dirty the accesskey dictionary.
56486        (DocumentImpl::removeElementById): Ditto.
56487        (DocumentImpl::getElementByAccessKey): Function to look up an element
56488	based on the key provided.
56489        (DocumentImpl::setDocumentChanged): Dirty the accesskey dictionary.
56490        (DocumentImpl::defaultEventHandler): Check the accesskey dictionary
56491	to see if some element wants to handle a key event.
56492        * khtml/xml/dom_docimpl.h:
56493        * khtml/xml/dom_elementimpl.h:
56494        (DOM::ElementImpl::accessKeyAction): Added. Send a click to the element.
56495
564962003-11-12  Ken Kocienda  <kocienda@apple.com>
56497
56498        Reviewed by Richard
56499
56500	Fix for this bug:
56501
56502	<rdar://problem/3481600>: key event objects do not preserve unmodified keys
56503
56504        * khtml/xml/dom2_eventsimpl.cpp: Modified constructor call to include
56505	unmodifiedText.
56506        (KeyboardEventImpl::KeyboardEventImpl):
56507        * kwq/KWQEvent.h: Added unmodifiedText accessor and variable to QKeyEvent.
56508        * kwq/KWQEvent.mm:
56509        (QKeyEvent::QKeyEvent): Modified constructor to include unmodifiedText.
56510        (QKeyEvent::unmodifiedText): Added accessor.
56511        * kwq/KWQKHTMLPart.mm:
56512        (KWQKHTMLPart::keyEvent): Modified constructor call to include
56513        unmodifiedText.
56514
565152003-11-12  Ken Kocienda  <kocienda@apple.com>
56516
56517        Reviewed by Maciej
56518
56519        * khtml/html/html_elementimpl.cpp:
56520        (HTMLElementImpl::click): Implemented a programmatic click function for
56521	elements.
56522        * khtml/html/html_elementimpl.h:
56523        * khtml/html/html_formimpl.cpp:
56524        (HTMLFormElementImpl::submitClick): Implemented a programmatic click function for
56525	elements.
56526        (HTMLInputElementImpl::click): This implementation calls through
56527	to Cocoa button programmatic click function to get user interface
56528	feedback for button elements, and calls through to the superclass
56529	for other elements.
56530        * khtml/html/html_formimpl.h:
56531        * khtml/html/html_inlineimpl.cpp: Removed click() function for anchors.
56532	No longer needed.
56533        * khtml/html/html_inlineimpl.h: Ditto.
56534
565352003-11-12  David Hyatt  <hyatt@apple.com>
56536
56537	Fix build bustage in deployment builds.
56538
56539        * kwq/KWQLineEdit.mm:
56540        (QLineEdit::hasMarkedText):
56541
565422003-11-11  David Hyatt  <hyatt@apple.com>
56543
56544	Fix for 3481134, shorthand parsing in CSS does not fill in omitted values.  The fix is to implement
56545	the CSS3 'initial' value for all properties (covered by 3481323), and then to fill in the omitted 
56546	values with the 'initial' value.
56547
56548	This patch also fixes two bugs in the style system: 3481324, collapsed borders with border-style: none
56549	should always return a width of 0, and 3481322, 'clip' not inheriting properly in CSS when explicit
56550	inheritance is used.
56551	
56552        Reviewed by mjs
56553
56554        * khtml/css/css_valueimpl.cpp:
56555        (CSSInitialValueImpl::cssText):
56556        * khtml/css/css_valueimpl.h:
56557        (DOM::CSSInitialValueImpl::cssValueType):
56558        * khtml/css/cssparser.cpp:
56559        (CSSParser::parseValue):
56560        (CSSParser::parseShortHand):
56561        * khtml/css/cssstyleselector.cpp:
56562        (khtml::CSSStyleSelector::applyRule):
56563        * khtml/css/cssvalues.c:
56564        (hash_val):
56565        (findValue):
56566        * khtml/css/cssvalues.h:
56567        * khtml/css/cssvalues.in:
56568        * khtml/dom/css_value.h:
56569        (DOM::CSSValue::):
56570        * khtml/rendering/render_style.cpp:
56571        (StyleBoxData::StyleBoxData):
56572        (StyleVisualData::StyleVisualData):
56573        (StyleBackgroundData::StyleBackgroundData):
56574        (StyleMarqueeData::StyleMarqueeData):
56575        (StyleFlexibleBoxData::StyleFlexibleBoxData):
56576        (opacity):
56577        (StyleInheritedData::StyleInheritedData):
56578        (RenderStyle::diff):
56579        * khtml/rendering/render_style.h:
56580        (khtml::BorderValue::BorderValue):
56581        (khtml::CollapsedBorderValue::width):
56582        (khtml::RenderStyle::InheritedFlags::operator==):
56583        (khtml::RenderStyle::setBitDefaults):
56584        (khtml::RenderStyle::resetBorderTop):
56585        (khtml::RenderStyle::resetBorderRight):
56586        (khtml::RenderStyle::resetBorderBottom):
56587        (khtml::RenderStyle::resetBorderLeft):
56588        (khtml::RenderStyle::resetOutline):
56589        (khtml::RenderStyle::setHasClip):
56590        (khtml::RenderStyle::resetMargin):
56591        (khtml::RenderStyle::resetPadding):
56592        (khtml::RenderStyle::setCursor):
56593
565942003-11-11  Maciej Stachowiak  <mjs@apple.com>
56595
56596        Reviewed by John.
56597
56598	- fixed 3479537 - reproducible crash in KJS::WindowFunc::tryCall
56599	
56600        * khtml/ecma/kjs_window.cpp:
56601        (WindowFunc::tryCall): Check part and doc impl for null.
56602
566032003-11-11  Maciej Stachowiak  <mjs@apple.com>
56604
56605        Reviewed by Ken.
56606
56607	- fixed 3472330 -  REGRESSION: onKeyPress handler not called when hitting keys in <input type=password> field
56608
56609        * kwq/KWQTextField.mm:
56610        (-[KWQSecureTextField initWithQLineEdit:]): New initializer, so
56611	the secure text field knows about the widget.
56612        (-[KWQTextField setPasswordMode:]): Use new initializer for
56613	KWQSecureTextField.
56614        (-[KWQSecureTextField textView:shouldHandleEvent:]): New method,
56615	do the same thing as the non-secure text field to pass the event on.
56616        (-[KWQSecureTextField textView:didHandleEvent:]): Ditto.
56617
566182003-11-11  Ken Kocienda  <kocienda@apple.com>
56619
56620        Reviewed by Maciej
56621
56622	Fix for this bug:
56623
56624	<rdar://problem/3480173>: Too many names for programmatic click functions
56625
56626	Changed all instances of performClick() and simulateClick() to click().
56627	Changed all instances of performSubmitClick() to submitClick().
56628
56629	Additionally, KWQButton had a simulateClick method, which was redundant
56630	given that its superclass has a performClick: method.
56631
56632        * khtml/html/html_formimpl.cpp:
56633        (HTMLFormElementImpl::submitClick):
56634        (HTMLInputElementImpl::defaultEventHandler):
56635        (HTMLSelectElementImpl::defaultEventHandler):
56636        * khtml/html/html_formimpl.h:
56637        * khtml/html/html_inlineimpl.cpp:
56638        (HTMLAnchorElementImpl::defaultEventHandler):
56639        (HTMLAnchorElementImpl::click):
56640        * khtml/html/html_inlineimpl.h:
56641        * khtml/rendering/render_form.cpp:
56642        (RenderLineEdit::slotReturnPressed):
56643        * kwq/KWQButton.h:
56644        * kwq/KWQButton.mm:
56645        (QButton::click):
56646
566472003-11-11  Maciej Stachowiak  <mjs@apple.com>
56648
56649        Reviewed by John.
56650
56651	- fixed 3475272 - custom property on CSSStyleObject won't hold a value
56652
56653        * khtml/ecma/kjs_css.cpp:
56654        (DOMCSSStyleDeclaration::tryPut): If the property is not a css property,
56655	save it as a custom object property in the normal way.
56656
566572003-11-11  John Sullivan  <sullivan@apple.com>
56658
56659        - fixed <rdar://problem/3480421>: Focus rings around links are too thick, 
56660        should use 3 px instead of 5 px
56661
56662        Reviewed by Don and Ken.
56663
56664        * khtml/css/html4.css:
56665        use 3px instead of 5 px for :active, :focus
56666
566672003-11-11  Ken Kocienda  <kocienda@apple.com>
56668
56669        Reviewed by John
56670
56671	In the DOM Level 3 Events specification, keydown and keyup are 
56672	standard events. We can remove the KHTML component in the names 
56673	of these constants. Note that the keypress event is still 
56674	nonstandard and will retain the KHTML name component.
56675
56676        * khtml/ecma/kjs_binding.cpp:
56677        (ScriptInterpreter::wasRunByUserGesture)
56678        * khtml/ecma/kjs_dom.cpp:
56679        (DOMNode::getValueProperty)
56680        (DOMNode::putValue)
56681        * khtml/ecma/kjs_window.cpp:
56682        (Window::get)
56683        (Window::put)
56684        * khtml/html/html_elementimpl.cpp:
56685        (HTMLElementImpl::parseAttribute)
56686        * khtml/html/html_formimpl.cpp:
56687        (HTMLGenericFormElementImpl::defaultEventHandler)
56688        * khtml/html/html_inlineimpl.cpp:
56689        (HTMLAnchorElementImpl::defaultEventHandler)
56690        * khtml/xml/dom2_eventsimpl.cpp:
56691        (EventImpl::typeToId)
56692        (EventImpl::idToType)
56693        (KeyboardEventImpl::KeyboardEventImpl)
56694        * khtml/xml/dom2_eventsimpl.h:
56695        (DOM::EventImpl::)
56696
566972003-11-11  Chris Blumenberg  <cblu@apple.com>
56698
56699	Fixed: <rdar://problem/3480281>: drag image of selected text and images include broken images
56700	
56701        Reviewed by dave.
56702
56703        * khtml/rendering/render_image.cpp:
56704        (RenderImage::paintObject): when drawing the drag image, don't draw the broken image
56705
567062003-11-11  Vicki Murley  <vicki@apple.com>
56707
56708        Reviewed by sullivan.
56709
56710	- rolled Merlot build fix onto the trunk
56711
56712        * WebCorePrefix.h: added #include <sys/types.h>
56713
567142003-11-10  David Hyatt  <hyatt@apple.com>
56715
56716	Fix for 3473531, text nested in hr inside h3 did not get the h3's style.
56717	
56718        Reviewed by darin
56719
56720        * khtml/html/dtd.cpp:
56721        (DOM::checkChild):
56722
567232003-11-10  David Hyatt  <hyatt@apple.com>
56724
56725	Fix for 3478435, <hr> tags should be centered by default.  Ditched the 1px margin as well.
56726
56727	Fix for 3479441, <h1>-<h6> tags should *not* be centered by default.  They should also use bold instead of
56728	bolder.
56729	
56730        Reviewed by darin
56731
56732        * khtml/css/html4.css:
56733        * khtml/html/html_blockimpl.cpp:
56734        (HTMLHRElementImpl::parseAttribute):
56735        * layout-tests/apple-only/base/bugzilla.mozilla.org/index-expected.txt:
56736        * layout-tests/apple-only/base/home.netscape.com/index-expected.txt:
56737        * layout-tests/apple-only/base/www.altavista.com/index-expected.txt:
56738        * layout-tests/apple-only/base/www.cnn.com/index-expected.txt:
56739        * layout-tests/apple-only/base/www.digitalcity.com/index-expected.txt:
56740        * layout-tests/apple-only/base/www.ebay.com/index-expected.txt:
56741        * layout-tests/apple-only/base/www.excite.com/index-expected.txt:
56742        * layout-tests/apple-only/base/www.mapquest.com/index-expected.txt:
56743        * layout-tests/apple-only/base/www.microsoft.com/index-expected.txt:
56744        * layout-tests/apple-only/base/www.msnbc.com/index-expected.txt:
56745        * layout-tests/apple-only/base/www.nytimes.com/index-expected.txt:
56746        * layout-tests/apple-only/base/www.nytimes.com_Table/index-expected.txt:
56747        * layout-tests/apple-only/base/www.quicken.com/index-expected.txt:
56748        * layout-tests/apple-only/base/www.w3.org_DOML2Core/index-expected.txt:
56749        * layout-tests/css1/basic/class_as_selector-expected.txt:
56750        * layout-tests/css1/basic/comments-expected.txt:
56751        * layout-tests/css1/basic/containment-expected.txt:
56752        * layout-tests/css1/basic/contextual_selectors-expected.txt:
56753        * layout-tests/css1/basic/grouping-expected.txt:
56754        * layout-tests/css1/basic/id_as_selector-expected.txt:
56755        * layout-tests/css1/basic/inheritance-expected.txt:
56756        * layout-tests/css1/box_properties/border-expected.txt:
56757        * layout-tests/css1/box_properties/border_bottom-expected.txt:
56758        * layout-tests/css1/box_properties/border_bottom_inline-expected.txt:
56759        * layout-tests/css1/box_properties/border_bottom_width-expected.txt:
56760        * layout-tests/css1/box_properties/border_bottom_width_inline-expected.txt:
56761        * layout-tests/css1/box_properties/border_color-expected.txt:
56762        * layout-tests/css1/box_properties/border_color_inline-expected.txt:
56763        * layout-tests/css1/box_properties/border_inline-expected.txt:
56764        * layout-tests/css1/box_properties/border_left-expected.txt:
56765        * layout-tests/css1/box_properties/border_left_inline-expected.txt:
56766        * layout-tests/css1/box_properties/border_left_width-expected.txt:
56767        * layout-tests/css1/box_properties/border_left_width_inline-expected.txt:
56768        * layout-tests/css1/box_properties/border_right-expected.txt:
56769        * layout-tests/css1/box_properties/border_right_inline-expected.txt:
56770        * layout-tests/css1/box_properties/border_right_width-expected.txt:
56771        * layout-tests/css1/box_properties/border_right_width_inline-expected.txt:
56772        * layout-tests/css1/box_properties/border_style-expected.txt:
56773        * layout-tests/css1/box_properties/border_style_inline-expected.txt:
56774        * layout-tests/css1/box_properties/border_top-expected.txt:
56775        * layout-tests/css1/box_properties/border_top_inline-expected.txt:
56776        * layout-tests/css1/box_properties/border_top_width-expected.txt:
56777        * layout-tests/css1/box_properties/border_top_width_inline-expected.txt:
56778        * layout-tests/css1/box_properties/border_width-expected.txt:
56779        * layout-tests/css1/box_properties/border_width_inline-expected.txt:
56780        * layout-tests/css1/box_properties/clear-expected.txt:
56781        * layout-tests/css1/box_properties/clear_float-expected.txt:
56782        * layout-tests/css1/box_properties/float-expected.txt:
56783        * layout-tests/css1/box_properties/float_elements_in_series-expected.txt:
56784        * layout-tests/css1/box_properties/float_margin-expected.txt:
56785        * layout-tests/css1/box_properties/float_on_text_elements-expected.txt:
56786        * layout-tests/css1/box_properties/height-expected.txt:
56787        * layout-tests/css1/box_properties/margin-expected.txt:
56788        * layout-tests/css1/box_properties/margin_bottom-expected.txt:
56789        * layout-tests/css1/box_properties/margin_bottom_inline-expected.txt:
56790        * layout-tests/css1/box_properties/margin_inline-expected.txt:
56791        * layout-tests/css1/box_properties/margin_left-expected.txt:
56792        * layout-tests/css1/box_properties/margin_left_inline-expected.txt:
56793        * layout-tests/css1/box_properties/margin_right-expected.txt:
56794        * layout-tests/css1/box_properties/margin_right_inline-expected.txt:
56795        * layout-tests/css1/box_properties/margin_top-expected.txt:
56796        * layout-tests/css1/box_properties/margin_top_inline-expected.txt:
56797        * layout-tests/css1/box_properties/padding-expected.txt:
56798        * layout-tests/css1/box_properties/padding_bottom-expected.txt:
56799        * layout-tests/css1/box_properties/padding_bottom_inline-expected.txt:
56800        * layout-tests/css1/box_properties/padding_inline-expected.txt:
56801        * layout-tests/css1/box_properties/padding_left-expected.txt:
56802        * layout-tests/css1/box_properties/padding_left_inline-expected.txt:
56803        * layout-tests/css1/box_properties/padding_right-expected.txt:
56804        * layout-tests/css1/box_properties/padding_right_inline-expected.txt:
56805        * layout-tests/css1/box_properties/padding_top-expected.txt:
56806        * layout-tests/css1/box_properties/padding_top_inline-expected.txt:
56807        * layout-tests/css1/box_properties/width-expected.txt:
56808        * layout-tests/css1/cascade/cascade_order-expected.txt:
56809        * layout-tests/css1/cascade/important-expected.txt:
56810        * layout-tests/css1/classification/display-expected.txt:
56811        * layout-tests/css1/classification/list_style-expected.txt:
56812        * layout-tests/css1/classification/list_style_image-expected.txt:
56813        * layout-tests/css1/classification/list_style_position-expected.txt:
56814        * layout-tests/css1/classification/list_style_type-expected.txt:
56815        * layout-tests/css1/classification/white_space-expected.txt:
56816        * layout-tests/css1/color_and_background/background-expected.txt:
56817        * layout-tests/css1/color_and_background/background_attachment-expected.txt:
56818        * layout-tests/css1/color_and_background/background_color-expected.txt:
56819        * layout-tests/css1/color_and_background/background_image-expected.txt:
56820        * layout-tests/css1/color_and_background/background_position-expected.txt:
56821        * layout-tests/css1/color_and_background/background_repeat-expected.txt:
56822        * layout-tests/css1/color_and_background/color-expected.txt:
56823        * layout-tests/css1/conformance/forward_compatible_parsing-expected.txt:
56824        * layout-tests/css1/font_properties/font-expected.txt:
56825        * layout-tests/css1/font_properties/font_family-expected.txt:
56826        * layout-tests/css1/font_properties/font_size-expected.txt:
56827        * layout-tests/css1/font_properties/font_style-expected.txt:
56828        * layout-tests/css1/font_properties/font_variant-expected.txt:
56829        * layout-tests/css1/font_properties/font_weight-expected.txt:
56830        * layout-tests/css1/formatting_model/canvas-expected.txt:
56831        * layout-tests/css1/formatting_model/floating_elements-expected.txt:
56832        * layout-tests/css1/formatting_model/height_of_lines-expected.txt:
56833        * layout-tests/css1/formatting_model/inline_elements-expected.txt:
56834        * layout-tests/css1/formatting_model/replaced_elements-expected.txt:
56835        * layout-tests/css1/formatting_model/vertical_formatting-expected.txt:
56836        * layout-tests/css1/pseudo/anchor-expected.txt:
56837        * layout-tests/css1/pseudo/firstletter-expected.txt:
56838        * layout-tests/css1/pseudo/firstline-expected.txt:
56839        * layout-tests/css1/pseudo/multiple_pseudo_elements-expected.txt:
56840        * layout-tests/css1/pseudo/pseudo_elements_in_selectors-expected.txt:
56841        * layout-tests/css1/text_properties/letter_spacing-expected.txt:
56842        * layout-tests/css1/text_properties/line_height-expected.txt:
56843        * layout-tests/css1/text_properties/text-transform-expected.txt:
56844        * layout-tests/css1/text_properties/text_align-expected.txt:
56845        * layout-tests/css1/text_properties/text_decoration-expected.txt:
56846        * layout-tests/css1/text_properties/text_indent-expected.txt:
56847        * layout-tests/css1/text_properties/text_transform-expected.txt:
56848        * layout-tests/css1/text_properties/vertical_align-expected.txt:
56849        * layout-tests/css1/text_properties/word_spacing-expected.txt:
56850        * layout-tests/css1/units/color_units-expected.txt:
56851        * layout-tests/css1/units/length_units-expected.txt:
56852        * layout-tests/css1/units/percentage_units-expected.txt:
56853        * layout-tests/css1/units/urls-expected.txt:
56854        * layout-tests/fast/encoding/utf-16-big-endian-expected.txt:
56855        * layout-tests/fast/encoding/utf-16-little-endian-expected.txt:
56856
568572003-11-10  Chris Blumenberg  <cblu@apple.com>
56858
56859	Fixed: <rdar://problem/3479266>: selected images don't obey CSS3 selection background-color attribute
56860	
56861        Reviewed by dave.
56862
56863        * khtml/rendering/render_image.cpp:
56864        (RenderImage::selectionTintColor): new, takes style into account
56865        (RenderImage::paintObject): use selectionTintColor
56866        * khtml/rendering/render_image.h:
56867        * kwq/KWQPainter.h: removed selectedImageTintColor
56868        * kwq/KWQPainter.mm:
56869
568702003-11-10  David Hyatt  <hyatt@apple.com>
56871
56872	Fix for 3479287, macro-ize the handling of the CSS 'inherit' value.  This patch is preparation for
56873	adding support for the 'initial' value, which will be used to fix the CSS parser's shorthand parsing
56874	bugs.
56875	
56876        Reviewed by kocienda
56877
56878        * khtml/css/cssparser.cpp:
56879        (CSSParser::parseValue):
56880        * khtml/css/cssproperties.c:
56881        (hash_prop):
56882        (findProp):
56883        * khtml/css/cssproperties.h:
56884        * khtml/css/cssproperties.in:
56885        * khtml/css/cssstyleselector.cpp:
56886        (khtml::CSSStyleSelector::applyRule):
56887        * khtml/khtmlview.cpp:
56888        (KHTMLView::layout):
56889
568902003-11-10  Chris Blumenberg  <cblu@apple.com>
56891
56892	Fixed:
56893	<rdar://problem/3478883>: REGRESSION (113-114u): drag image for selected text includes unselected images
56894	<rdar://problem/3479204>: selected images don't look selected
56895
56896        Reviewed by dave.
56897
56898        * khtml/rendering/render_image.cpp:
56899        (RenderImage::RenderImage): init m_selectionState
56900        (RenderImage::paintObject): draw a tint over the image if selected, don't draw anything if not selected and the action is PaintActionSelection
56901        * khtml/rendering/render_image.h:
56902        (khtml::RenderImage::selectionState): new
56903        (khtml::RenderImage::setSelectionState): new
56904        * kwq/KWQPainter.h:
56905        * kwq/KWQPainter.mm:
56906        (QPainter::selectedImageTintColor): new
56907
569082003-11-10  Ken Kocienda  <kocienda@apple.com>
56909
56910        Reviewed by Hyatt
56911
56912	Fix for this bug:
56913
56914	<rdar://problem/3477795>: REGRESSION: can't submit form without 
56915	submit button by hitting return (cocoadev.com)
56916
56917	When I changed submitting forms using the return key in a text field
56918	to go through a search for the correct submit or image input 
56919	element to use when submitting, I neglected to cover the case of
56920	forms which have neither a submit or image input element. When
56921	I encounter a form such as this now, I submit it anyway after
56922	performing the submit or image input element and failing to find one.
56923
56924        * khtml/html/html_formimpl.cpp:
56925        (HTMLFormElementImpl::performSubmitClick)
56926
569272003-11-10  Richard Williamson   <rjw@apple.com>
56928
56929	Fixed 3478765.  Use ICU to access unicode properties.
56930	Fixed 3478831.  Unicode property/conversion functions should be 32 bit savvy.
56931
56932        Reviewed by Darin.
56933
56934        * WebCore-combined.exp:
56935        * WebCore.exp:
56936        * kwq/KWQChar.mm:
56937        (QChar::lower):
56938        (QChar::upper):
56939        (QChar::mirroredChar):
56940        * kwq/KWQString.h:
56941        (QChar::direction):
56942        * kwq/WebCoreUnicode.cpp:
56943        * kwq/WebCoreUnicode.h:
56944
569452003-11-10  Chris Blumenberg  <cblu@apple.com>
56946
56947	Fixed: <rdar://problem/3478781>: drag image of selected text and images doesn't include images
56948
56949        Reviewed by rjw.
56950
56951        * khtml/rendering/render_image.cpp:
56952        (RenderImage::paintObject): paint when the paint action is PaintActionSelection
56953        * khtml/rendering/render_replaced.cpp:
56954        (RenderReplaced::paint): ditto
56955
569562003-11-10  Ken Kocienda  <kocienda@apple.com>
56957
56958        Reviewed by John
56959
56960	Fix for this bug:
56961
56962	<rdar://problem/3477624>: REGRESSION (113): Using input method to 
56963	enter non-ascii text submits the form
56964
56965	This regression has been in the tree for a couple of versions now, 
56966	since we improved the way key events are processed. The solution
56967	is to ask the text input manager if it has any marked text when
56968	the return key (or enter key) is pressed, because if it does, the key
56969	needs to work in the "accept" role for the input manager. Fixing
56970	in this way has the pleasant effect of making return/enter key
56971	behavior "do the right thing" based on context.
56972
56973        * khtml/html/html_formimpl.cpp:
56974        (HTMLInputElementImpl::defaultEventHandler): Add check to see
56975	if text input manager has marked text before submitting text
56976	and password fields. Broke out key handling for checkboxes and
56977	radios, since the old code for these widgets worked fine.
56978        * kwq/KWQLineEdit.h: Added hasMarkedText function.
56979        * kwq/KWQLineEdit.mm:
56980        (QLineEdit::hasMarkedText): Returns whether the current input
56981	manager has marked text or not.
56982
569832003-11-09  Darin Adler  <darin@apple.com>
56984
56985        Reviewed by Dave.
56986
56987        - fixed 3478173 -- REGRESSION (112-113): getElementById is failing for many types of elements
56988
56989        The problem was that ElementImpl::attach was being skipped for many objects with classes
56990        derived from ElementImpl. By changing them all to call up to their base classes instead of
56991        skipping levels, the bug went away. This was possible (and easy to do) because of the
56992        rendererIsNeeded() change I made a while back.
56993
56994        * khtml/html/html_baseimpl.cpp:
56995        (HTMLFrameElementImpl::attach): Call base class's attach() instead of creating renderer explicitly
56996        and then calling NodeBaseImpl::attach(). This was a remnant of the old way of changing the logic
56997        about when to create the renderer, not needed now that we have rendererIsNeeded().
56998        (HTMLFrameSetElementImpl::attach): Ditto.
56999        (HTMLIFrameElementImpl::attach): Ditto.
57000
57001        * khtml/html/html_formimpl.h: Removed many unused attach() overrides.
57002        * khtml/html/html_formimpl.cpp:
57003        (HTMLGenericFormElementImpl::attach): Ditto.
57004        (HTMLButtonElementImpl::attach): Removed, because now the base class's attach does the right thing.
57005        (HTMLFieldSetElementImpl::attach): Ditto.
57006        (HTMLInputElementImpl::attach): Removed explicit createRendererIfNeeded call, not needed now that
57007        HTMLGenericFormElementImpl calls through to its base class.
57008        (HTMLLegendElementImpl::attach): Removed, because now the base class's attach does the right thing.
57009        (HTMLSelectElementImpl::attach): Ditto.
57010        (HTMLTextAreaElementImpl::attach): Ditto.
57011
57012        * khtml/html/html_imageimpl.cpp:
57013        (HTMLImageElementImpl::attach): Call base class's attach() instead of creating renderer explicitly
57014        and then calling NodeBaseImpl::attach().
57015        (HTMLImageElementImpl::detach): Call base class's detach() instead of NodeBaseImpl::detach(). No
57016        need to skip the ElementImpl::detach() function, and important not to for the new "id" optimization.
57017
57018        * khtml/html/html_inlineimpl.h: Removed HTMLBRElementImpl::attach override.
57019        * khtml/html/html_inlineimpl.cpp: (HTMLBRElementImpl::attach): Call base class's attach() instead
57020        of creating renderer explicitly and then calling NodeBaseImpl::attach().
57021
57022        * khtml/html/html_objectimpl.h: Removed HTMLAppletElementImpl::attach override.
57023        * khtml/html/html_objectimpl.cpp:
57024        (HTMLAppletElementImpl::attach): Removed, because the base class's attach does the right thing.
57025        (HTMLEmbedElementImpl::attach): Call base class's attach() instead of creating renderer explicitly
57026        and then calling NodeBaseImpl::attach().
57027        (HTMLObjectElementImpl::attach): Ditto.
57028
570292003-11-09  David Hyatt  <hyatt@apple.com>
57030
57031	Fix for 3478317, letter/word-spacing don't inherit properly through italic/bold elements.
57032	
57033        Reviewed by darin
57034
57035        * khtml/rendering/font.h:
57036        (khtml::Font::Font):
57037        * khtml/rendering/render_style.h:
57038        (khtml::RenderStyle::setFontDef):
57039
570402003-11-09  David Hyatt  <hyatt@apple.com>
57041
57042	Fix for 3478309, make sure backgrounds paint in the border box and not just in the padding box.
57043	
57044        Reviewed by darin
57045
57046	Also making sure that <frame>s aren't transparent, since other browsers seem to only make <iframe>s/<object>s
57047	be transparent.
57048	
57049        * khtml/rendering/render_box.cpp:
57050        (RenderBox::paintRootBoxDecorations):
57051        (RenderBox::paintBackgroundExtended):
57052
570532003-11-08  Darin Adler  <darin@apple.com>
57054
57055        Reviewed by John.
57056
57057        - fixed 3478025 -- links with non-Latin-1 characters in the hostname are not getting IDN-encoded
57058
57059        * kwq/KWQKURL.mm:
57060        (KURL::parse): Changed existing code to take advantage of the fact that a NUL character
57061        is classified as a path segment end character.
57062        (KURL::findHostnameInHierarchicalURL): Don't treat NUL characters as terminating characters
57063        for hostnames, because QChar::latin1() turns all non-Latin-1 characters into NUL characters.
57064
570652003-11-08  Darin Adler  <darin@apple.com>
57066
57067        Reviewed by John.
57068
57069        - fixed 3477509 -- REGRESSION (112-113): crash in KHTMLPart::processObjectRequest at espn.com, chosun.com
57070
57071        * khtml/khtml_part.cpp: (KHTMLPart::processObjectRequest): Use a dynamic_cast to check the type of the
57072        part rather than assuming it's always a KHTMLPart. The crash was caused by casting a KWQPluginPart to
57073        KHTMLPart.
57074
570752003-11-08  Darin Adler  <darin@apple.com>
57076
57077        Reviewed by Richard.
57078
57079        - event cleanup motivated by questions on khtml-devel
57080
57081        * khtml/dom/dom2_events.h: Removed eventModuleName.
57082        * khtml/dom/dom2_events.cpp: Removed eventModuleName.
57083
57084        * khtml/xml/dom2_eventsimpl.h: Removed eventModuleName, made many trivially simple
57085        functions inline, made virtual functions no longer inline. Also made some functions const.
57086        (DOM::EventImpl::propagationStopped): Made this non-virtual; there was no reason for
57087        it to be virtual I could see.
57088        (DOM::EventImpl::defaultPrevented): Ditto.
57089        (DOM::EventImpl::setDefaultHandled): Ditto.
57090        (DOM::UIEventImpl::view): Made this inline.
57091        (DOM::UIEventImpl::detail): Ditto.
57092        (DOM::MouseEventImpl::screenX): Ditto.
57093        (DOM::MouseEventImpl::screenY): Ditto.
57094        (DOM::MouseEventImpl::clientX): Ditto.
57095        (DOM::MouseEventImpl::clientY): Ditto.
57096        (DOM::MouseEventImpl::layerX): Ditto.
57097        (DOM::MouseEventImpl::layerY): Ditto.
57098        (DOM::MouseEventImpl::ctrlKey): Ditto.
57099        (DOM::MouseEventImpl::shiftKey): Ditto.
57100        (DOM::MouseEventImpl::altKey): Ditto.
57101        (DOM::MouseEventImpl::metaKey): Ditto.
57102        (DOM::MouseEventImpl::button): Ditto.
57103        (DOM::MouseEventImpl::relatedTarget): Ditto.
57104        (DOM::MutationEventImpl::relatedNode): Ditto.
57105        (DOM::MutationEventImpl::prevValue): Ditto.
57106        (DOM::MutationEventImpl::newValue): Ditto.
57107        (DOM::MutationEventImpl::attrName): Ditto.
57108        (DOM::MutationEventImpl::attrChange): Ditto.
57109
57110        * khtml/ecma/kjs_events.cpp: (KJS::getDOMEvent): Changed implementation to no longer
57111        require eventModuleName(), and removed some unneeded casts.
57112
57113        * khtml/xml/dom2_eventsimpl.cpp: Made lots of functions inline.
57114        (EventImpl::isUIEvent): Since this is virtual, make it no longer inline.
57115        (EventImpl::isMouseEvent): Ditto.
57116        (EventImpl::isMutationEvent): Ditto.
57117        (EventImpl::isKeyboardEvent): Ditto.
57118        (UIEventImpl::isUIEvent): Ditto.
57119        (MouseEventImpl::isMouseEvent): Ditto.
57120        (KeyboardEventImpl::isKeyboardEvent): Ditto.
57121        (MutationEventImpl::isMutationEvent): Ditto.
57122
571232003-11-07  Chris Blumenberg  <cblu@apple.com>
57124
57125	Fixed: <rdar://problem/3020196>: links with href="" don't show hand cursor when you mouse over them
57126
57127        Reviewed by darin.
57128
57129        * khtml/khtmlview.cpp:
57130        (KHTMLView::viewportMouseMoveEvent): check if the URL on the event is non-NULL, not if it is non-empty
57131
571322003-11-07  Richard Williamson   <rjw@apple.com>
57133
57134	Fixed 3477067.  Use our case unicode conversion routines.
57135
57136        Reviewed by Ken.
57137
57138        * kwq/KWQChar.mm:
57139        (QChar::lower):
57140        (QChar::upper):
57141
571422003-11-06  David Hyatt  <hyatt@apple.com>
57143
57144	Fixes for 3476717, inline blocks should expand to encompass floats; 3476718, inline blocks should not
57145	collapse margins with children; and 3476721, run-ins and compacts can flow into anonymous blocks, even
57146	ones that they caused to be created by failing to run in/compact in the first place.
57147	
57148        Reviewed by darin (inline block fixes only).
57149
57150        * khtml/rendering/render_block.cpp:
57151        (khtml::RenderBlock::layoutBlock):
57152        (khtml::RenderBlock::layoutBlockChildren):
57153
571542003-11-06  Richard Williamson   <rjw@apple.com>
57155
57156	Fixed 3476563.  Remove unnecessary call to set view position after load completes.
57157 
57158        Reviewed by Gramps.
57159
57160        * khtml/khtml_part.cpp:
57161        (KHTMLPart::checkCompleted):
57162
571632003-11-06  Chris Blumenberg  <cblu@apple.com>
57164
57165        * khtml/rendering/render_image.h:
57166        (khtml::RenderImage::isDisplayingError): forgot to remove the "virtual" part of the declaration
57167
571682003-11-06  Chris Blumenberg  <cblu@apple.com>
57169
57170	Fixed:
57171	<rdar://problem/3275118>: Dragging from missing-image link stretches missing-image icon to size of missing image
57172	<rdar://problem/3476225>: assert dragging non-existant images
57173
57174        Reviewed by rjw.
57175
57176        * khtml/rendering/render_image.h:
57177        (khtml::RenderImage::isDisplayingError): new method, returns true for the broken image
57178        * kwq/WebCoreBridge.mm:
57179        (-[WebCoreBridge elementAtPoint:]): only provide info if there is an image and the image is not broken
57180
571812003-11-06  Ken Kocienda  <kocienda@apple.com>
57182
57183        Reviewed by Richard
57184
57185	Fixes for these bugs:
57186
57187	<rdar://problem/3476006>: Form file input widgets do not scroll 
57188	to view when focused
57189
57190	<rdar://problem/3476007>: Form file input widgets should only 
57191	focus when full keyboard access is on
57192
57193        * kwq/KWQFileButton.h: Added focusPolicy declaration.
57194        * kwq/KWQFileButton.mm:
57195        (KWQFileButton::focusPolicy): Added. Now works like other buttons.
57196	Fixes 3476007.
57197        (KWQFileButton::focusChanged): Added. Code similar to text area
57198	widgets. Fixes 3476006.
57199
572002003-11-06  Chris Blumenberg  <cblu@apple.com>
57201
57202	Fixed: <rdar://problem/3308609>: 6L60 Safari URL links with line-endings converted to hex by contextual menu
57203
57204        Reviewed by rjw.
57205
57206        * kwq/WebCoreBridge.mm:
57207        (-[WebCoreBridge elementAtPoint:]): use parseURL to go from an attribute string to a URL string
57208
57209=== Safari-113 ===
57210
572112003-11-06  John Sullivan  <sullivan@apple.com>
57212
57213        - fixed broken build
57214
57215        * khtml/xml/dom_docimpl.cpp:
57216        (DocumentImpl::completeURL):
57217        removed stray character
57218
572192003-11-06  Maciej Stachowiak  <mjs@apple.com>
57220
57221        Reviewed by Darin.
57222
57223	- fixed 3475366 - 4.5% of time spent making html event listeners on slow intel page.
57224
57225	6% speedup on intel page, 1% speedup on cvs-base PLT.
57226	
57227        * khtml/ecma/kjs_events.cpp:
57228        (JSEventListener::JSEventListener): Don't add self to hashtable if imp is null (which
57229	can now happen in the lazy listener case).
57230        (JSEventListener::~JSEventListener): Ditto on removing.
57231        (JSEventListener::listenerObj): Made this virtual.
57232        (JSLazyEventListener::JSLazyEventListener): New constructor.
57233	(JSLazyEventListener::handleEvent): call parseCode, then
57234	superclass if it appeared to succeed.
57235        (JSLazyEventListener::listenerObj): call parseCode, then superclass.
57236        (JSLazyEventListener::parseCode):
57237        (KJS::getNodeEventListener): Check for null listenerObjImp in case of
57238	lazy listener that failed to parse.
57239        * khtml/ecma/kjs_dom.cpp:
57240	(DOMNode::getListener): Ditto.
57241        * khtml/ecma/kjs_html.cpp:
57242        (Image::getValueProperty): Ditto.
57243        * khtml/ecma/kjs_events.h:
57244	(KJS::JSEventListener::listenerObjImp): call listenerObj() virtual
57245	method and get imp from the result.
57246        * khtml/ecma/kjs_proxy.cpp:
57247        (KJSProxyImpl::createHTMLEventHandler): Don't parse the code here, make a lazy
57248	listener.
57249        * khtml/ecma/kjs_window.cpp:
57250        (Window::getJSLazyEventListener): make a new JSLazyEventListener - no need
57251	to check the listeners hashtable cause a brand new lazy listener won't have
57252	a function anyway.
57253        * khtml/ecma/kjs_window.h: Prototype new method.
57254
572552003-11-06  Maciej Stachowiak  <mjs@apple.com>
57256
57257        Reviewed by Darin.
57258
57259	- fixed 3475397 - REGRESSION: relative URLs on page load test sometimes contain garbage, leading to missing images
57260	
57261        * kwq/KWQKURL.mm:
57262        (KURL::KURL): When constructing from NSURL, null-terminate the raw
57263	bytes since KURL::parse expects a null-terminated C string. It
57264	might be even better to pass a length to parse, but this fix is
57265	simple and does the job.
57266
572672003-11-05  Darin Adler  <darin@apple.com>
57268
57269        Reviewed by Maciej.
57270
57271        - fixed 3475109 -- support keyboard event object properties of altkey, ctrlKey, shiftKey
57272
57273        We had the DOM Level 3 KeyboardEvent class already; I just had to add JavaScript bindings.
57274
57275        * khtml/ecma/kjs_events.h: Added DOMKeyboardEvent class.
57276        * khtml/ecma/kjs_events.cpp:
57277        (KJS::getDOMEvent): Added code to make a DOMKeyboardEvent if the event is a DOM::KeyboardEvent.
57278        (DOMKeyboardEvent::~DOMKeyboardEvent): Added.
57279        (DOMKeyboardEvent::classInfo): Added.
57280        (DOMKeyboardEvent::tryGet): Added.
57281        (DOMKeyboardEvent::getValueProperty): Added.
57282        (DOMKeyboardEventProtoFunc::tryCall): Added.
57283
57284        * khtml/dom/dom2_events.cpp:
57285        (KeyboardEvent::keyIdentifier): Added.
57286        (KeyboardEvent::keyLocation): Added.
57287
57288        * khtml/ecma/kjs_events.lut.h: Regenerated.
57289
572902003-11-05  Maciej Stachowiak  <mjs@apple.com>
57291
57292        Reviewed by John.
57293
57294	- fixed 3475092 - Notifying the bridge about duplicate images takes 13% of time on intel page
57295
57296	Another 15% speedup on the intel page.
57297
57298	This also results in a 3% speedup on cvs-base PLT! (or maybe that was my last change)
57299	
57300        * kwq/KWQLoader.mm:
57301        (KWQServeRequest): Note that we told the bridge about the load.
57302        (KWQCheckCacheObjectStatus): Don't tell the bridge about the load
57303	if we have alrady; if we do tell it, then note it down.
57304        * kwq/KWQKHTMLPart.h:
57305        * kwq/KWQKHTMLPart.mm:
57306        (KWQKHTMLPart::didTellBridgeAboutLoad): Helper method for the above.
57307        (KWQKHTMLPart::haveToldBridgeAboutLoad): Ditto.
57308        (KWQKHTMLPart::clear): Clear our idea of what URLs we told the bridge about.
57309        * khtml/khtml_part.h: make clear() virtual.
57310
573112003-11-05  Darin Adler  <darin@apple.com>
57312
57313        * WebCore-combined.exp: Checked in generated file.
57314
573152003-11-05  Richard Williamson   <rjw@apple.com>
57316
57317	Fixed 3474957.  Changed name of image rendering method to better reflect it's actual function.
57318
57319	- (void)beginAnimationInRect:(NSRect)ir fromRect:(NSRect)fr;
57320
57321	renamed to
57322
57323	- (void)drawImageInRect:(NSRect)ir fromRect:(NSRect)fr;
57324
57325        Reviewed by Chris.
57326
57327        * kwq/KWQPainter.mm:
57328        (QPainter::drawPixmap):
57329        * kwq/WebCoreImageRenderer.h:
57330
573312003-11-05  Darin Adler  <darin@apple.com>
57332
57333        * WebCore-tests.exp: Added missing symbol so tests will link.
57334
573352003-11-05  Maciej Stachowiak  <mjs@apple.com>
57336
57337        Reviewed by Ken.
57338
57339	- fixed 3474756 - Creating HTML event listeners takes 5% of time on particular slow intel page
57340	
57341        * khtml/ecma/kjs_window.h: Make jsEventListeners a hashtable keyed
57342	by listener object, not a list.
57343        * khtml/ecma/kjs_window.cpp:
57344        (Window::getJSEventListener): Do hashtable lookup for existing listener instead of
57345	walking list.
57346        * khtml/ecma/kjs_events.cpp:
57347        (JSEventListener::JSEventListener): Use hashtable insert instead of list append.
57348        (JSEventListener::~JSEventListener): Use hashtable remove instead of list removeRef.
57349
573502003-11-05  Darin Adler  <darin@apple.com>
57351
57352        Reviewed by Maciej.
57353
57354        - fixed 3473872 -- encode domain names for IDN when creating URLs inside WebCore
57355
57356        * kwq/KWQKURL.h: Added KWQIntegerPair type, a number of private functions.
57357        * kwq/KWQKURL.mm:
57358        (isSchemeFirstChar): Make inline function from macro.
57359        (isSchemeChar): Make inline function from macro.
57360        (isUserInfoChar): Make inline function from macro.
57361        (isHostnameChar): Make inline function from macro.
57362        (isIPv6Char): Make inline function from macro.
57363        (isPathSegmentEndChar): Make inline function from macro.
57364        (isBadChar): Make inline function from macro.
57365        (isHexDigit): Make inline function from macro.
57366        (KURL::KURL): Remove unneeded initializations of m_isValid, since parse sets it.
57367        Use CFURLGetBytes in one place a FIXME asked for it. Changed non-ASCII case to use
57368        a separate function instead of code in line.
57369        (KURL::encodeHostnames): Added. Finds host names and encodes them.
57370        (KURL::findHostnameInHierarchicalURL): Added. Finds host name in a hierarchical URL.
57371        (KURL::encodeHostname): Added. Encodes one host name.
57372        (KURL::findHostnamesInMailToURL): Added. Finds host names in a mailto URL.
57373
57374        * kwq/KWQString.h: Added new overloads for startsWith.
57375        * kwq/KWQString.mm:
57376        (compareIgnoringCaseForASCIIOnly): Moved these functions up in the file so they can be
57377        used by more methods of QString.
57378        (QString::startsWith): Added new overloads.
57379
57380        * WebCore.pbproj/project.pbxproj: Add libicucore.A.dylib library.
57381
573822003-11-05  Maciej Stachowiak  <mjs@apple.com>
57383
57384        Reviewed by Darin.
57385
57386	- fixed 3473906 - getElementById takes about 44% of time on particular slow intel page
57387
57388	I fixed this by adding a per-document id --> element hash
57389	table. This speeds up my local copy of the intel page by 60% (50
57390	sec to 20 sec!) and does not cause any PLT slowdown.
57391	
57392        * khtml/xml/dom_docimpl.h: New QDict field for id to element hash table.
57393        * khtml/xml/dom_docimpl.cpp:
57394        (DocumentImpl::getElementById): Just look it up in the newly
57395	added hash table.
57396        (DocumentImpl::addElementById): New method. Add to hash table if
57397	no other element is set for that key (this lets the first element
57398	of several with matching ids win).
57399        (DocumentImpl::removeElementById): New method. Remove from hash
57400	table only if the key and value both match.
57401
57402	These Element changes to keep the id --> element hashtable working
57403	seem needlessly tricky, due to lack of bottlenecks in attribute
57404	changing.
57405	
57406        * khtml/xml/dom_elementimpl.cpp:
57407        (ElementImpl::updateId): New method that removes element from
57408	hash table for old it
57409        (ElementImpl::setAttribute): If setting id, call updateId.
57410        (ElementImpl::setAttributeMap): If either the old or the new map
57411	includes id, call updateId.
57412        (ElementImpl::attach): If we have an id, call updateId to set it
57413	after attaching.
57414        (ElementImpl::detach): Newly added. If we have an id, call
57415	updateId to clear it before detaching.
57416	(NamedAttrMapImpl::setNamedItem): If the name is id, call updateId on
57417	our element.
57418        (NamedAttrMapImpl::removeNamedItem): If the name is id, call updateId on
57419	our element.
57420        (NamedAttrMapImpl::operator=): If old or new contents include id attribute,
57421	call updateId on our element.
57422	* khtml/xml/dom_elementimpl.h: Prototype new methods.
57423
574242003-11-05  Ken Kocienda  <kocienda@apple.com>
57425
57426        Reviewed by Maciej
57427
57428	Fix for these bugs:
57429
57430	<rdar://problem/3467558>: Cannot tab to form file input widgets
57431	<rdar://problem/3473631>: WebFileButton sends notifications to communicate with WebCore
57432
57433	Tabbing now works for these widgets. While I was in the neighborhood,
57434	I improved the communication mechanism between the WebKit and WebCore
57435	sides of the file button implementation, replacing notifications
57436	with a callback object.
57437
57438        * WebCore-combined.exp: Remove no-longer used WebCoreFileButtonClicked
57439    	and WebCoreFileButtonFilenameChanged notofication strings.
57440        * WebCore.exp: Ditto.
57441        * kwq/KWQFileButton.h: Changed declarations to match changes in
57442        callback functions.
57443        * kwq/KWQFileButton.mm:
57444        (KWQFileButton::KWQFileButton): Now sets the view after creating
57445        the delegate object.
57446        (KWQFileButton::filenameChanged): Now takes a QString argument
57447        which indicates the filename.
57448        (KWQFileButton::focusChanged): New function. Sends DOM focus and
57449        blur events.
57450        (-[KWQFileButtonAdapter initWithKWQFileButton:]): No longer needs
57451        to register for notifications.
57452        (-[KWQFileButtonAdapter dealloc]): No longer needs to remove itself
57453        from the notification center.
57454        (-[KWQFileButtonAdapter filenameChanged:]): No longer a notification
57455        callback. Now a WebCoreFileButtonCallback callback.
57456        (-[KWQFileButtonAdapter focusChanged:]): New WebCoreFileButtonCallback
57457        callback.
57458        (-[KWQFileButtonAdapter clicked]): No longer a notification
57459        callback. Now a WebCoreFileButtonCallback callback.
57460        * kwq/KWQKHTMLPart.mm:
57461        (KWQKHTMLPart::nextKeyViewInFrame): Unrelated cleanup.
57462        * kwq/WebCoreBridge.h: Declared new WebCoreFileButtonDelegate protocol.
57463
574642003-11-05  Maciej Stachowiak  <mjs@apple.com>
57465
57466	- fixed deployment build
57467	
57468        * kwq/KWQKHTMLPart.mm:
57469        (KWQKHTMLPart::fileWrapperForElement):
57470
574712003-11-04  Maciej Stachowiak  <mjs@apple.com>
57472
57473        Reviewed by Ken.
57474
57475        * khtml/ecma/kjs_window.cpp: Don't make event read-only, some
57476	sites want to set their own top-level function named "event" and
57477	will hang if they can't.
57478        * khtml/ecma/kjs_window.lut.h: Regenerated.
57479
574802003-11-03  David Hyatt  <hyatt@apple.com>
57481
57482	Fix for 3472167, for shrink-to-fit style printing, grow the width of the initial containing block
57483	to be as large as the rightmost position after doing a layout to the page width.
57484	
57485        Reviewed by john
57486
57487        * kwq/KWQKHTMLPart.mm:
57488        (KWQKHTMLPart::forceLayoutForPageWidth):
57489
574902003-11-04  Chris Blumenberg  <cblu@apple.com>
57491
57492	Fixed:
57493	<rdar://problem/3472403>: RTFD of copied text and images should use original image data not tiffs
57494
57495        Reviewed by john.
57496
57497        * kwq/KWQKHTMLPart.h:
57498        * kwq/KWQKHTMLPart.mm:
57499        (KWQKHTMLPart::fileWrapperForElement): call [_bridge _fileWrapperForURL:] to get cached data
57500        * kwq/WebCoreBridge.h: added _fileWrapperForURL: to the bridge protocol
57501        * kwq/WebCoreBridge.mm:
57502        (-[WebCoreBridge selectedAttributedString]): call the instance method attributedString 
57503        (-[WebCoreBridge attributedStringFrom:startOffset:to:endOffset:]): call the instance method attributedString 
57504
575052003-11-04  Maciej Stachowiak  <mjs@apple.com>
57506
57507        Reviewed by Chris.
57508
57509        - fixed 3472893 - Slow intel page takes 20% of its time in CachedObject::ref
57510        
57511	Speeds up loading of
57512	http://www.intel.com/cd/ids/developer/asmo-na/eng/index.htm by
57513	19%, no slowdown on PLT.
57514	
57515        * khtml/misc/loader.h: Use QPtrDict for m_clients instead of QPtrList.
57516	* khtml/misc/loader.cpp:
57517        (CachedObjectClientWalker::CachedObjectClientWalker): Ditto.
57518        (CachedObject::ref): Ditto.
57519        * kwq/KWQPtrDict.h:
57520        (QPtrDict::isEmpty): Implemented.
57521
575222003-11-03  Maciej Stachowiak  <mjs@apple.com>
57523
57524        Reviewed by Darin.
57525
57526	- fixed 3370085 - new frames with javascript: URLs should be populated with the result of the JavaScript code
57527	
57528        * ChangeLog:
57529        * khtml/html/html_baseimpl.cpp:
57530        (HTMLFrameElementImpl::updateForNewURL): Skip special filtering of
57531	javascript:.
57532        (HTMLFrameElementImpl::attach): Ditto.
57533        * khtml/khtml_part.cpp:
57534        (KHTMLPart::replaceContentsWithScriptResult): New method to execute
57535	script and if the result is a string, set it as the new document contents.
57536	(KHTMLPart::requestFrame): Removed APPLE_CHANGES around
57537	javascript: handling. Use new
57538	replaceContentsWithScriptResult method. This executes the
57539	JS in the new child frame, not the parent frame, as in other
57540	browsers.
57541        * khtml/khtml_part.h: Prototype new method.
57542        * kwq/KWQKHTMLPartBrowserExtension.mm:
57543        (KHTMLPartBrowserExtension::openURLRequest): Use new part method.
57544
575452003-11-03  Vicki Murley  <vicki@apple.com>
57546
57547        Reviewed by kocienda.
57548
57549	- fixed <rdar://problem/3471096>: non-B&I builds should not use order files, because they cause false "regressions" in perf.
57550
57551        * WebCore.pbproj/project.pbxproj: added empty SECTORDER_FLAGS variables to the Development and Deployment build styles
57552
575532003-11-03  Ken Kocienda  <kocienda@apple.com>
57554
57555        Reviewed by Maciej
57556
57557	Fix for this bug:
57558
57559	<rdar://problem/3470338>: onclick is not executing when you hit enter on focused links
57560
57561	Now when we trap return or enter when a link is focused, we send
57562	a click event to the node.
57563
57564        * khtml/html/html_inlineimpl.cpp:
57565        (HTMLAnchorElementImpl::defaultEventHandler): Swallow key event when 
57566	return or enter and send a mouse event.
57567        (HTMLAnchorElementImpl::performClick): New function to send simulated
57568	click.
57569        * khtml/html/html_inlineimpl.h: Declare performClick function.
57570
575712003-11-03  Darin Adler  <darin@apple.com>
57572
57573        Reviewed by John.
57574
57575        - fixed 3392543 -- incorrect base writing direction in RTL form controls
57576        - fixed baseline for list box <select> elements
57577        - moved style code from updateFromElement to setStyle
57578
57579        * khtml/rendering/render_form.h: Added setStyle function to RenderFormElement, RenderLineEdit,
57580        RenderSelect, and RenderTextArea. Removed some unused stuff.
57581        * khtml/rendering/render_form.cpp:
57582        (RenderFormElement::setStyle): Set the font based on the style.
57583        (RenderFormElement::updateFromElement): Remove font setting code; moved to setStyle.
57584        Also ifdef'd out the color-setting code, which belongs in setStyle and is irrelevant
57585        for KWQ anyway.
57586        (RenderSubmitButton::setStyle): Set the writing direction based on the style.
57587        (RenderSubmitButton::updateFromElement): Tiny code cleanup, using a local variable.
57588        (RenderLineEdit::setStyle): Set the alignment and writing direction based on the style.
57589        (RenderLineEdit::updateFromElement): Remove alignment setting code; moved to setStyle.
57590        (RenderFileButton::RenderFileButton): Remove code to set m_focus, a data member that was
57591        never used.
57592        (RenderSelect::setWidgetWritingDirection): Added. Helper function.
57593        (RenderSelect::setStyle): Call setWidgetWritingDirection.
57594        (RenderSelect::updateFromElement): Call setWidgetWritingDirection if a new widget is created.
57595        (RenderSelect::baselinePosition): Added a FIXME comment.
57596        (RenderTextArea::setStyle): Set the alignment and writing direction based on the style.
57597        (RenderTextArea::updateFromElement): Remove alignment setting code; moved to setStyle.
57598
57599        * kwq/KWQButton.h: Added setWritingDirection function.
57600        * kwq/KWQButton.mm:
57601        (+[KWQButton cellClass]): Use KWQButtonCell.
57602        (-[KWQButtonCell baseWritingDirection:]): Return base writing direction.
57603        (-[KWQButtonCell setBaseWritingDirection:]): Store base writing direction.
57604        (-[KWQButtonCell _textAttributes]): Set the base writing direction in the paragraph
57605        style if it's not already right.
57606        (QButton::setWritingDirection): Call setBaseWritingDirection: on the cell and do
57607        setNeedsDisplay: as needed.
57608
57609        * kwq/KWQComboBox.h: Added setWritingDirection function.
57610        * kwq/KWQComboBox.mm:
57611        (QComboBox::setWritingDirection): Call setBaseWritingDirection: on the cell and do
57612        setNeedsDisplay: as needed.
57613        (-[KWQPopUpButtonCell setBaseWritingDirection:]): Store base writing direction.
57614        (-[KWQPopUpButtonCell baseWritingDirection:]): Return base writing direction.
57615        (-[KWQPopUpButtonCell _textAttributes]): Set the base writing direction in the
57616        paragraph style if it's not already right.
57617
57618        * kwq/KWQLineEdit.h: Added setWritingDirection function.
57619        * kwq/KWQLineEdit.mm:
57620        (QLineEdit::setAlignment): Tweaked to match new setWritingDirection in style.
57621        (QLineEdit::setWritingDirection): Call setBaseWritingDirection: on the KWQTextField.
57622
57623        * kwq/KWQTextField.h: Added setBaseWritingDirection method.
57624        * kwq/KWQTextField.mm:
57625        (-[KWQTextField setPasswordMode:]): Set the base writing direction of the secure field's
57626        cell based on the base writing direction of the parent field's cell, when creating the
57627        secure field.
57628        (-[KWQTextField setBaseWritingDirection:]): Added. Sets the base writing direction of
57629        the field's cell and the secure field's cell, if it exists, and does setNeedsDisplay
57630        as needed.
57631        (-[KWQTextFieldCell setBaseWritingDirection:]): Added. Stores the base writing direction.
57632        (-[KWQTextFieldCell baseWritingDirection]): Added. Returns the base writing direction.
57633        (-[KWQTextFieldCell _textAttributes]): Set the base writing direction in the paragraph
57634        style if it's not already right.
57635        (-[KWQSecureTextFieldCell setBaseWritingDirection:]): Added. Stores the base writing
57636        direction.
57637        (-[KWQSecureTextFieldCell _textAttributes]): Set the base writing direction in the
57638        paragraph style if it's not already right.
57639
57640        * kwq/KWQListBox.h: Added itemIsGroupLabel and setWritingDirection functions, and made
57641        the private insertItem function take a QString instead of an NSObject.
57642        (QListBox::insertItem): Changed parameter from unsigned to int to match Qt, and made it
57643        use an inlne to call the private insertItem function shared with insertGroupLabel.
57644        (QListBox::insertGroupLabel): Changed parameter from unsigned to int and made it use an
57645        inline to call the private insertItem function.
57646        * kwq/KWQListBox.mm:
57647        (itemFont): Added. Returns a suitable font for individual items.
57648        (groupLabelFont): Added. Returns a suitable font for group labels.
57649        (paragraphStyle): Added. Returns a suitable paragraph style for a given writing direction.
57650        (stringAttributes): Added. Returns a string attributes dictionary for a given writing direction for
57651        either individual items or group labels.
57652        (QListBox::insertItem): Use an attributed string to give the item the appropriate font and
57653        writing direction, calling stringAttributes to get the attributes dictionary, and getting
57654        the writing direction from the table view.
57655        (QListBox::endBatchInsert): Tweak for consistency with other nearby methods.
57656        (QListBox::setSelected): Add an assertion and tweak a bit.
57657        (QListBox::isSelected): Add an assertion and tweak a bit.
57658        (QListBox::setWritingDirection): Update the styles for all the attributed strings and call
57659        reloadData if the writing direction changes. Also store the direction in the table view.
57660        (QListBox::itemIsGroupLabel): Added. Returns true if a given item is a group label; works
57661        by checking the font in the attributed string.
57662        (-[KWQTableView initWithListBox:items:]): Use itemFont() instead of computing the font.
57663        (-[KWQTableView tableView:shouldSelectRow:]): Use itemIsGroupLabel function instead of
57664        checking for NSString vs. NSttributedString in the items array; we now use attributed
57665        strings for all the items.
57666        (-[KWQTableView setBaseWritingDirection:]): Added. Stores a base writing direction.
57667        (-[KWQTableView baseWritingDirection]): Added. Returns the stored base writing direction.
57668
57669        * kwq/KWQTextEdit.h: Added setWritingDirection function.
57670        * kwq/KWQTextEdit.mm:
57671        (QTextEdit::setAlignment): Removed code to set base writing direction.
57672        (QTextEdit::setWritingDirection): Added. Sets base writing direction.
57673
57674        * kwq/KWQTextArea.mm: (-[KWQTextArea setBaseWritingDirection:]): Call setNeedsDisplay:YES.
57675
576762003-11-03  David Hyatt  <hyatt@apple.com>
57677
57678	Fix 3472200, media tests fail to parse correctly.  Merging a patch to handle exotic media types
57679	from the KHTML trunk.
57680
57681        * khtml/css/parser.cpp:
57682        * khtml/css/parser.y:
57683
576842003-11-03  David Hyatt  <hyatt@apple.com>
57685
57686	Fix for 3471314, make sure to check the outline phase before painting backgrounds of iframes.
57687	
57688        Reviewed by mjs
57689
57690        * khtml/rendering/render_replaced.cpp:
57691        (RenderReplaced::paint):
57692
576932003-11-03  David Hyatt  <hyatt@apple.com>
57694
57695	Fix for 3470855, links with script action stay focused when clicking.
57696
57697	Fix for 3470858, clicking and dragging a link and then releasing doesn't clear the glow ring.
57698
57699	Fix for 3472090, link should not be mouse focusable.
57700	
57701        Reviewed by mjs
57702
57703        * khtml/css/html4.css:
57704        * khtml/html/html_inlineimpl.h:
57705        (DOM::HTMLAnchorElementImpl::isMouseFocusable):
57706
577072003-11-03  David Hyatt  <hyatt@apple.com>
57708
57709	Fix for 3472030, line-height not properly reset in all cases when the font shorthand is used.
57710	
57711        Reviewed by mjs
57712
57713        * khtml/css/cssparser.cpp:
57714        (CSSParser::parseFont):
57715
577162003-11-03  Maciej Stachowiak  <mjs@apple.com>
57717
57718        Reviewed by Darin.
57719
57720	- fixed 3472023 - REGRESSION: assertion on layout tests
57721	
57722        * kwq/KWQTextCodec.mm:
57723        (KWQTextDecoder::convertUTF16): Remove assert that length is not
57724	0, since we can get zero length now when flushing.
57725
577262003-11-03  Ken Kocienda  <kocienda@apple.com>
57727
57728        Reviewed by John
57729
57730	Fix for this bug:
57731
57732	<rdar://problem/3260780>: hitting return in a text field submits 
57733	form without running onclick handler for submit button
57734
57735        * khtml/html/html_formimpl.cpp:
57736        (HTMLFormElementImpl::performSubmitClick): Refactored this function to
57737	be more generic, so that text fields can use it, too.
57738        (HTMLInputElementImpl::defaultEventHandler): Removed code to check
57739	for a submit button, and merged this code into new performSubmitClick.
57740        (HTMLSelectElementImpl::defaultEventHandler): Ditto.
57741        * khtml/html/html_formimpl.h: Removed declaration for simulateButtonClickForEvent.
57742	Added declaration for performSubmitClick.
57743        * khtml/rendering/render_form.cpp:
57744        (RenderLineEdit::slotReturnPressed): Now calls performSubmitClick rather
57745	than prepareSubmit on the form. This is the key piece for the bug fix.
57746
577472003-11-03  Ken Kocienda  <kocienda@apple.com>
57748
57749        Reviewed by John
57750
57751        Fix for this bug:
57752
57753        <rdar://problem/3470342>: focus rings are shown for links in
57754        web pages even in non-frontmost windows
57755
57756        * kwq/KWQKHTMLPart.h: Add setShowsFirstResponder, showsFirstResponder functions and
57757        _showsFirstResponder member variable.
57758        (KWQKHTMLPart::showsFirstResponder): Added.
57759        * kwq/KWQKHTMLPart.mm:
57760        (KWQKHTMLPart::KWQKHTMLPart): Initialize _showsFirstResponder to true
57761        (KWQKHTMLPart::setShowsFirstResponder): Sets whether the painter draws focus rings.
57762        * kwq/KWQPainter.h: Add _drawsFocusRing member variable.
57763        (QPainter::setDrawsFocusRing): Sets whether the painter draws focus rings.
57764        * kwq/KWQPainter.mm:
57765        (QPainter::QPainter): Initialize _drawsFocusRing to true.
57766        (QPainter::initFocusRing): Check _drawsFocusRing flag. Return if set to false.
57767        (QPainter::addFocusRingRect): Ditto.
57768        (QPainter::drawFocusRing): Ditto.
57769        * kwq/WebCoreBridge.h: Add setShowsFirstResponder method.
57770        * kwq/WebCoreBridge.mm:
57771        (-[WebCoreBridge drawRect:]): Sets the value for _drawsFocusRing on the
57772	painter using _showsFirstResponder value from the part.
57773        (-[WebCoreBridge setShowsFirstResponder:]): Set passed in value on the part.
57774	Redraw the focus ring if flag has changed.
57775
577762003-11-03  David Hyatt  <hyatt@apple.com>
57777
57778	Remove unneeded style property additions for form controls.  In the KHTML trunk these moved into the UA
57779	sheet, but we don't even need them there, since we don't honor any of them.
57780
57781        * khtml/html/html_formimpl.cpp:
57782        (HTMLInputElementImpl::attach):
57783        (HTMLSelectElementImpl::attach):
57784        (HTMLTextAreaElementImpl::attach):
57785
577862003-11-03  David Hyatt  <hyatt@apple.com>
57787
57788	Patch from KHTML trunk.  Move frameset positioning reset into adjustRenderStyle so as not to
57789	pollute the render tree.
57790
57791        * khtml/css/cssstyleselector.cpp:
57792        (khtml::CSSStyleSelector::adjustRenderStyle):
57793        * khtml/rendering/render_box.cpp:
57794        (RenderBox::setStyle):
57795
577962003-11-03  David Hyatt  <hyatt@apple.com>
57797
57798	Fix for 3471609, 'transparent' should be an acceptable named color value instead of a special
57799	keyword used only by background/border.
57800	
57801        Reviewed by kocienda
57802
57803        * khtml/css/cssparser.cpp:
57804        (CSSParser::parseValue):
57805        * khtml/css/cssstyleselector.cpp:
57806        (khtml::):
57807        (khtml::CSSStyleSelector::applyRule):
57808        * khtml/css/cssvalues.c:
57809        * khtml/css/cssvalues.h:
57810        * khtml/css/cssvalues.in:
57811        * khtml/rendering/render_box.cpp:
57812        (RenderBox::paintBackgroundExtended):
57813        * khtml/rendering/render_object.cpp:
57814        (RenderObject::setStyle):
57815        * khtml/rendering/render_style.h:
57816        (khtml::BorderValue::BorderValue):
57817        (khtml::BorderValue::isTransparent):
57818        (khtml::BorderValue::operator==):
57819        (khtml::CollapsedBorderValue::isTransparent):
57820        (khtml::RenderStyle::setBorderLeftColor):
57821        (khtml::RenderStyle::setBorderRightColor):
57822        (khtml::RenderStyle::setBorderTopColor):
57823        (khtml::RenderStyle::setBorderBottomColor):
57824
578252003-11-02  Maciej Stachowiak  <mjs@apple.com>
57826
57827        Reviewed by Darin.
57828
57829	- fixed 3471226 - HTML document that's less than 16 bytes comes out blank
57830	
57831        * kwq/KWQTextCodec.mm:
57832        (KWQTextDecoder::toUnicode): When flushing, don't bail out early
57833	if there are no new characters!
57834
578352003-11-02  Maciej Stachowiak  <mjs@apple.com>
57836
57837        Reviewed by Darin.
57838
57839	- don't resolve Null href or src attributes, since the distinction
57840	between empty and absent attribute is important.
57841
57842        * khtml/dom/html_base.cpp:
57843        (HTMLIFrameElement::src):
57844        * khtml/dom/html_form.cpp:
57845        (HTMLInputElement::src):
57846        * khtml/dom/html_head.cpp:
57847        (HTMLBaseElement::href):
57848        (HTMLLinkElement::href):
57849        (HTMLScriptElement::src):
57850        * khtml/dom/html_image.cpp:
57851        (HTMLAreaElement::href):
57852        (HTMLImageElement::src):
57853        * khtml/dom/html_inline.cpp:
57854        (HTMLAnchorElement::href):
57855
578562003-11-01  David Hyatt  <hyatt@apple.com>
57857
57858	Fix for 3468924, an implementation of outline-offset.  We also give :focus links a built-in offset of 
57859	outline-width/2  by default for the Apple Aqua style.
57860
57861	Fix for 3470660, input type=image excluded from tab order.
57862	
57863        Reviewed by darin
57864
57865        * khtml/css/cssparser.cpp:
57866        (CSSParser::parseValue):
57867        * khtml/css/cssproperties.c:
57868        (hash_prop):
57869        (findProp):
57870        * khtml/css/cssproperties.h:
57871        * khtml/css/cssproperties.in:
57872        * khtml/css/cssstyleselector.cpp:
57873        (khtml::CSSStyleSelector::applyRule):
57874        * khtml/css/html4.css:
57875        * khtml/rendering/render_box.cpp:
57876        (RenderBox::getAbsoluteRepaintRect):
57877        (RenderBox::computeAbsoluteRepaintRect):
57878        * khtml/rendering/render_flow.cpp:
57879        (RenderFlow::getAbsoluteRepaintRect):
57880        * khtml/rendering/render_inline.cpp:
57881        (RenderInline::paintFocusRing):
57882        (RenderInline::paintOutlines):
57883        (RenderInline::paintOutline):
57884        * khtml/rendering/render_object.cpp:
57885        (RenderObject::paintOutline):
57886        * khtml/rendering/render_style.h:
57887        (khtml::OutlineValue::OutlineValue):
57888        (khtml::RenderStyle::outlineSize):
57889        (khtml::RenderStyle::outlineOffset):
57890        (khtml::RenderStyle::setOutlineOffset):
57891        * khtml/rendering/render_text.cpp:
57892        (RenderText::paintObject):
57893        * kwq/KWQPainter.h:
57894        * kwq/KWQPainter.mm:
57895        (QPainterPrivate::QPainterPrivate):
57896        (QPainter::initFocusRing):
57897        (QPainter::addFocusRingRect):
57898
578992003-11-01  Maciej Stachowiak  <mjs@apple.com>
57900
57901        Reviewed by Darin.
57902
57903	- fixed 3469262 - REGRESSION (110-112): logitech page is very slow to load (due to style sheet updates?)
57904	
57905        * khtml/xml/dom_nodeimpl.cpp:
57906        (NodeImpl::dispatchGenericEvent): Don't do default handling for
57907	events that don't bubble. Not 100% sure why this caused the big
57908	slowdown but it was a somewhat arbitrary change in my earlier
57909	patch.
57910
579112003-11-01  Darin Adler  <darin@apple.com>
57912
57913        Reviewed by John.
57914
57915        - fixed 3468870 -- REGRESSION (108-109): cannot upload files (<input type=file> is broken)
57916
57917        * kwq/KWQFileButton.mm: (KWQFileButton::filenameChanged): Pass the filename to
57918        the textChanged signal. The one without a parameter is a different signal.
57919
579202003-11-01  Darin Adler  <darin@apple.com>
57921
57922        Reviewed by John.
57923
57924        - fixed 3466714 -- page with <object> tag with text subtype and no URL causes hang
57925
57926        * khtml/khtml_part.cpp: (KHTMLPart::requestObject): Added a check so that an empty
57927        URL string doesn't get completed, and results in an empty KURL object. Also made the
57928        change to allow empty URLs unconditional, because I don't think it's a WebCore-specific
57929        thing on further reflection.
57930
579312003-10-31  David Hyatt  <hyatt@apple.com>
57932
57933	Fix for 3470489, I just forgot to commit a piece of my patch.  This has actually even
57934	been reviewed by ken already.
57935
57936	Reviewed by kocienda
57937	
57938        * khtml/rendering/render_replaced.cpp:
57939        (RenderWidget::eventFilter):
57940
579412003-10-31  Darin Adler  <darin@apple.com>
57942
57943        Reviewed by John.
57944
57945        - fixed 3457875 -- text disappears from fields in forms upon certain types of scrolling
57946
57947        * kwq/KWQTextField.mm: (-[KWQTextField control:textShouldBeginEditing:]):
57948        Call releaseGState on the field editor and its clip view to prevent undesirable caching.
57949
579502003-10-31  Ken Kocienda  <kocienda@apple.com>
57951
57952        Reviewed by Darin
57953
57954	Fix for this bug:
57955
57956	<rdar://problem/3440719>: Read-only text field form controls 
57957	do not keyboard focus and do not take part in tabbing
57958
57959        * kwq/KWQTextField.mm:
57960        (-[KWQTextField acceptsFirstResponder]): We want our text fields
57961        to accept first responder even if not editable.
57962
57963	Once this is fixed, this one comes along for free:
57964
57965	<rdar://problem/3440710>: Read-only textarea form controls should select all text when focused
57966
579672003-10-31  Darin Adler  <darin@apple.com>
57968
57969        Reviewed by Ken.
57970
57971        - fixed 3469383 -- REGRESSION (100-111): if one line is selected on this page, too much gets copied (plain text)
57972
57973        * khtml/khtml_part.cpp: (KHTMLPart::text): Range check the child node indices before using them
57974        to get at a child node. We don't want to set startNode or endNode to nil in any case. If the end
57975        node is set to nil, we end up copying the entire remainder of the page.
57976
579772003-10-31  David Hyatt  <hyatt@apple.com>
57978
57979	Fix for 3470007, links don't get focus on mouse down.  Fix the focus check on mouse down to actually
57980	crawl up the content tree in order to find the nearest enclosing focusable node.  Also clean up and
57981	fix checks that improperly blurred the link after it got focused.
57982
57983	Fix for 3450335, AppKit widgets not obeying their desired focus policies.  I renamed isSelectable to
57984	isFocusable and then also added isMouseFocusable and isKeyboardFocusable methods.
57985	
57986        Reviewed by kocienda
57987
57988        * khtml/css/html4.css:
57989        * khtml/html/html_baseimpl.cpp:
57990        (HTMLFrameElementImpl::isFocusable):
57991        * khtml/html/html_baseimpl.h:
57992        * khtml/html/html_formimpl.cpp:
57993        (HTMLGenericFormElementImpl::isFocusable):
57994        (HTMLGenericFormElementImpl::isKeyboardFocusable):
57995        (HTMLGenericFormElementImpl::isMouseFocusable):
57996        * khtml/html/html_formimpl.h:
57997        * khtml/html/html_inlineimpl.cpp:
57998        (HTMLAnchorElementImpl::isFocusable):
57999        * khtml/html/html_inlineimpl.h:
58000        * khtml/khtmlview.cpp:
58001        (KHTMLView::dispatchMouseEvent):
58002        * khtml/xml/dom_docimpl.cpp:
58003        (DocumentImpl::nextFocusNode):
58004        (DocumentImpl::previousFocusNode):
58005        * khtml/xml/dom_nodeimpl.cpp:
58006        (NodeImpl::isFocusable):
58007        (NodeImpl::isKeyboardFocusable):
58008        (NodeImpl::isMouseFocusable):
58009        * khtml/xml/dom_nodeimpl.h:
58010        * kwq/KWQKHTMLPart.mm:
58011        (KWQKHTMLPart::khtmlMousePressEvent):
58012
580132003-10-31  Ken Kocienda  <kocienda@apple.com>
58014
58015        Reviewed by David
58016
58017	Fix for this bug:
58018
58019	<rdar://problem/3470233>: solid outlines drawing incorrectly
58020
58021	The problem was that when I collected the array of line boxes for
58022	render inlines, I put a QRect() at the start and the end of the list.
58023	However, the border calculation code expected "invalid" rectangles
58024	(rects with 0 for all four dimentions) in the first and last
58025	positions, and the default constructor for QRect makes rects with 1,1
58026	for width/height.
58027
58028        * khtml/rendering/render_inline.cpp:
58029        (RenderInline::paintOutlines)
58030
580312003-10-31  Darin Adler  <darin@apple.com>
58032
58033        Reviewed by Dave.
58034
58035        - fixed 3464759 -- REGRESSION (100-107): Pressing on link loses mouse-down feedback almost instantly
58036
58037        * khtml/khtmlview.cpp: (KHTMLView::viewportMouseMoveEvent): Pass true for the "read-only"
58038        flag in prepareMoveEvent to prevent us from updating :hover and :active while the mouse is down.
58039
580402003-10-31  Ken Kocienda  <kocienda@apple.com>
58041
58042        Reviewed by David
58043
58044	<rdar://problem/3468910>: REGRESSION: other than focus rings, outlines styles are broken
58045
58046	Outlines now draw like they used to.
58047
58048        * khtml/rendering/render_inline.cpp:
58049        (RenderInline::paintObject): Now branches to call focus ring or "regular" outlines.
58050        (RenderInline::paintFocusRing): Broke out drawing aqua focus rings into its
58051	own function.
58052        (RenderInline::paintOutlines): New function to draw "regular outlines.
58053        (RenderInline::paintOutline): Removed code which special-cased aqua outlines.
58054        * khtml/rendering/render_inline.h: Added paintOutlines declaration.
58055
580562003-10-31  David Hyatt  <hyatt@apple.com>
58057
58058	Fix for 3467419, highlighted text in "search in books" Amazon feature is obscured.  The
58059	site is using the CSS3 opacity property.  The CSS3 Color module is far enough along now
58060	that opacity can safely be used without the "-khtml-" in front of it.
58061
58062	Fix for 3466542, the minimum font size bug.  I am introducing a new minimum font size pref that
58063	really is a hard override.
58064	
58065        Reviewed by gramps (opacity) and john (min font size)
58066	
58067        * khtml/css/cssparser.cpp:
58068        (CSSParser::parseValue):
58069        * khtml/css/cssproperties.c:
58070        (hash_prop):
58071        (findProp):
58072        * khtml/css/cssproperties.h:
58073        * khtml/css/cssproperties.in:
58074        * khtml/css/cssstyleselector.cpp:
58075        (khtml::CSSStyleSelector::applyRule):
58076
580772003-10-31  Ken Kocienda  <kocienda@apple.com>
58078
58079        Reviewed by Darin
58080
58081	Fix for this bug:
58082
58083	<rdar://problem/3469088>: focus not removed from text link 
58084	when user hits cmd-L or clicks in window chrome
58085
58086        * kwq/WebCoreBridge.h:
58087        * kwq/WebCoreBridge.mm:
58088        (-[WebCoreBridge deselectAll]): Now clears the focus ring as well.
58089        (-[WebCoreBridge deselectText]): Just clears text selection.
58090
580912003-10-31  David Hyatt  <hyatt@apple.com>
58092
58093	Three simple fixes:
58094	
58095	(1) Fix for 3463777, crash on CSS3 box model draft.  This was just a situation where a simple null-check
58096	was needed for generated content.
58097
58098	(2) Added a != check when the old and new hover obj are the same to avoid a little bit of extra work.
58099
58100	(3) Removed the m_pressed member from DOM nodes and removed the calls to setPressed, since this code
58101	is dead and not used by anyone.
58102	
58103        * khtml/khtmlview.cpp:
58104        * khtml/rendering/render_layer.cpp:
58105        (RenderLayer::addChild):
58106        (RenderLayer::updateHoverActiveState):
58107        * khtml/xml/dom_nodeimpl.cpp:
58108        (NodeImpl::NodeImpl):
58109        * khtml/xml/dom_nodeimpl.h:
58110        (DOM::NodeImpl::hasStyle):
58111        (DOM::NodeImpl::setHasStyle):
58112
581132003-10-30  David Hyatt  <hyatt@apple.com>
58114
58115	Fix for 3469330, the Marquee data in RenderStyle needs a copy constructor hack like all the other
58116	objects do.
58117
58118        * khtml/rendering/render_style.cpp:
58119        (direction):
58120        * khtml/rendering/render_style.h:
58121
581222003-10-30  David Hyatt  <hyatt@apple.com>
58123
58124	Fix for 3469206, images didn't paint outlines any more.  They were bailing early because I forgot to
58125	add a check for my new PaintAction.
58126	
58127        Reviewed by darin
58128
58129        * khtml/rendering/render_replaced.cpp:
58130        (RenderReplaced::paint):
58131
581322003-10-30  David Hyatt  <hyatt@apple.com>
58133
58134	Fixes for 3469057, outlines not drawn on aintitcool.com and also for 3469178, objects with width/height of 0
58135	incorrectly excluded from tabbing.
58136	
58137        Reviewed by darin
58138
58139        * khtml/html/html_formimpl.cpp:
58140        (HTMLGenericFormElementImpl::isSelectable):
58141        * khtml/html/html_inlineimpl.cpp:
58142        (HTMLAnchorElementImpl::isSelectable):
58143        * khtml/rendering/render_flow.cpp:
58144        (RenderFlow::getAbsoluteRepaintRect):
58145        * khtml/rendering/render_inline.cpp:
58146        (RenderInline::addFocusRingRects):
58147        (RenderInline::paintOutline):
58148        * khtml/rendering/render_object.cpp:
58149        (RenderObject::addFocusRingRects):
58150        (RenderObject::getAbsoluteRepaintRectWithOutline):
58151
581522003-10-30  Maciej Stachowiak  <mjs@apple.com>
58153
58154        Reviewed by Darin.
58155
58156	- fixed 3426081 - empty cells HTMLCollection for <tr>
58157	- fixed 3367598 - "length" attribute for table row "cells" always returns 0
58158	
58159        * khtml/dom/html_table.cpp:
58160        (HTMLTableRowElement::cells): TR_CELLS, not TABLE_ROWS.
58161
581622003-10-30  David Hyatt  <hyatt@apple.com>
58163
58164	Fix for 3468916, outline needs its own paint action so that focus rings don't draw under other content.
58165	
58166        Reviewed by kocienda
58167
58168        * khtml/rendering/render_block.cpp:
58169        (khtml::RenderBlock::paintObject):
58170        (khtml::RenderBlock::paintFloats):
58171        * khtml/rendering/render_image.cpp:
58172        (RenderImage::paintObject):
58173        * khtml/rendering/render_inline.cpp:
58174        (RenderInline::paintObject):
58175        * khtml/rendering/render_layer.cpp:
58176        (RenderLayer::paintLayer):
58177        * khtml/rendering/render_object.h:
58178
581792003-10-30  Maciej Stachowiak  <mjs@apple.com>
58180
58181	Fixed Dave's fix to my fix to my fix:
58182
58183        * khtml/html/html_imageimpl.cpp:
58184        (HTMLImageElementImpl::width): Put back m_render check, consider
58185	the case of image with no width/height attributes and display:none
58186	set. We don't want to crash on that.
58187        (HTMLImageElementImpl::height): Ditto.
58188
581892003-10-30  Ken Kocienda  <kocienda@apple.com>
58190
58191        Reviewed by Hyatt
58192
58193	Support for tabbing to links.
58194
58195	Fixes these bugs
58196
58197	<rdar://problem/3468395>: fix full keyboard access loop for buttons
58198	<rdar://problem/3468397>: paint aqua focus rings around text links
58199	<rdar://problem/3468406>: focused links do not activate by hitting
58200	   return key
58201	<rdar://problem/3468410>: paintTextOutline in RenderText objects
58202	   should be done at a higher level
58203	<rdar://problem/3468424>: improve function to determine if a node is
58204	   tab selectable
58205	<rdar://problem/3468427>: add bridge function to access active
58206	   document view for a node
58207	<rdar://problem/3468429>: links do not scroll into view when focusing
58208	<rdar://problem/3468435>: when tabbing out of a frame, last focused
58209	   node is not cleared if it is a text link
58210	<rdar://problem/3468436>: focus on text link does not clear when
58211	   clicking mouse in document body
58212	<rdar://problem/3468440>: add setRect convenience to QRect
58213	<rdar://problem/3468444>: elements paint their outlines even if they
58214	   are not visible
58215	<rdar://problem/3468448>: setting focus on a node sets focus on all
58216	   its siblings
58217	<rdar://problem/3468456>: cannot tab to form image input elements
58218	<rdar://problem/3468461>: tab focus can seem to disappear from view on
58219	   pages with dhtml menus
58220	<rdar://problem/3469021>: webcore bridge nextKeyView always starts 
58221	from the beginning of the document
58222
58223        * WebCore-combined.exp: Export WebCoreGraphicsBridge class
58224        * WebCore.exp: Ditto
58225        * WebCore.pbproj/project.pbxproj: Add WebCoreGraphicsBridge class
58226        * khtml/css/cssparser.cpp: 
58227        (CSSParser::parseValue): border style check now take apple aqua
58228	style into account
58229        * khtml/css/cssvalues.in: Add -apple-aqua border value
58230        * khtml/css/html4.css: Change focus, a:link:active, and a:visited:active
58231	to use new -apple-aqua focus rings.
58232        * khtml/html/html_formimpl.cpp:
58233        (HTMLGenericFormElementImpl::isSelectable): Improve function so
58234	that invisible elements are no longer considered selectable
58235        * khtml/html/html_inlineimpl.cpp:
58236        (HTMLAnchorElementImpl::isSelectable): Ditto.
58237        (HTMLAnchorElementImpl::defaultEventHandler): Make return key
58238	activate links as well as Enter.
58239        * khtml/html/html_inlineimpl.h: Move isSelectable function into
58240	implementation file.
58241        * khtml/rendering/render_block.cpp: 
58242        (khtml::RenderBlock::paintObject): Do not paint outlines if
58243	content is invisible.
58244        * khtml/rendering/render_flow.cpp:
58245        (RenderFlow::getAbsoluteRepaintRect): Improve function to correctly
58246	calculate repaint rects including outlines.
58247        * khtml/rendering/render_image.cpp:
58248        (RenderImage::paintObject): Do not paint outlines if
58249        content is invisible.
58250        * khtml/rendering/render_inline.cpp:
58251        (RenderInline::paintObject): Ditto.
58252        (RenderInline::addFocusRingRects): New function to gather up rects
58253	to use for painting outlines.
58254        (RenderInline::paintOutline): Added code to paint aqua focus rings.
58255        * khtml/rendering/render_inline.h:
58256        * khtml/rendering/render_object.cpp:
58257        (RenderObject::drawBorder): Add case for apple aqua border style.
58258        (RenderObject::addFocusRingRects): New function to gather up rects
58259        to use for painting outlines.
58260        (RenderObject::paintOutline): Added code to paint aqua focus rings.
58261        (RenderObject::getAbsoluteRepaintRectWithOutline): Helper function
58262	to calculate rectangle to use for repainting when an object has an
58263	outline.
58264        * khtml/rendering/render_object.h: Add addFocusRingRects declaration.
58265        * khtml/rendering/render_style.h: Add APPLEAQUA to border enum
58266        * khtml/rendering/render_text.cpp:
58267        (RenderText::paintObject): Removed code to draw outlines.
58268        * khtml/rendering/render_text.h: Ditto.
58269        * khtml/xml/dom_elementimpl.cpp: Removed redundant isSelectable check.
58270        * khtml/xml/dom_elementimpl.h: Ditto.
58271        * khtml/xml/dom_nodeimpl.cpp:
58272        (NodeImpl::isSelectable): Added.
58273        (NodeBaseImpl::setFocus): Do not set focus on siblings.
58274        * khtml/xml/dom_nodeimpl.h: Moved implementation to .cpp file.
58275        * kwq/KWQButton.mm:
58276        (-[KWQButton nextKeyView]): Send a blur before going to next
58277	key view. This prevents focus from being lost altogether.
58278        (-[KWQButton previousKeyView]): Ditto.
58279        * kwq/KWQKHTMLPart.h: Added documentViewForNode function.
58280        * kwq/KWQKHTMLPart.mm:
58281        (KWQKHTMLPart::nextKeyViewInFrame): Add check for other focusables,
58282	like text links.
58283        (KWQKHTMLPart::nextKeyViewInFrameHierarchy): Remove focus when leaving
58284	a view.
58285        (KWQKHTMLPart::documentViewForNode): Added.
58286        (KWQKHTMLPart::khtmlMousePressEvent): Remove focus when you click in
58287	a non-focusable area, like the document body.
58288        * kwq/KWQPainter.h: Added declarations.
58289        * kwq/KWQPainter.mm:
58290        (QPainterPrivate::QPainterPrivate): Modified constructor for new fields.
58291        (QPainter::initFocusRing): Added.
58292        (QPainter::addFocusRingRect): Added.
58293        (QPainter::drawFocusRing): Added.
58294        (QPainter::clearFocusRing): Added.
58295        * kwq/KWQRect.h:
58296        (QRect::setRect): Added.
58297        * kwq/WebCoreBridge.h:
58298        * kwq/WebCoreBridge.mm:
58299        (-[WebCoreBridge nextKeyView]): Start from the currently-focused node,
58300	if there is one, not unconditionally from the start of the document.
58301        (-[WebCoreBridge previousKeyView]): Ditto
58302        * kwq/WebCoreGraphicsBridge.h: Added.
58303        * kwq/WebCoreGraphicsBridge.m: Added.
58304        (+[WebCoreGraphicsBridge sharedBridge]): Added.
58305        (-[WebCoreGraphicsBridge init]): Added.
58306        (-[WebCoreGraphicsBridge setFocusRingStyle:radius:color:]): Added.
58307
583082003-10-30  Maciej Stachowiak  <mjs@apple.com>
58309
58310	Fix mistake in my last change that I did not mean to commit.
58311
58312        * khtml/html/html_imageimpl.cpp:
58313        (HTMLImageElementImpl::width): Remove extraneous second attempt to
58314	lay out.
58315
583162003-10-30  David Hyatt  <hyatt@apple.com>
58317
58318	Put paged-media changes back without the wrongful removal of the style data copy constructors (which
58319	were necessary after all).
58320	
58321        * ChangeLog:
58322        * khtml/css/cssstyleselector.cpp:
58323        (khtml::CSSStyleSelector::applyRule):
58324        * khtml/rendering/render_style.cpp:
58325        (StyleInheritedData::StyleInheritedData):
58326        (StyleInheritedData::operator==):
58327        * khtml/rendering/render_style.h:
58328        (khtml::):
58329        (khtml::RenderStyle::NonInheritedFlags::operator==):
58330        (khtml::RenderStyle::setBitDefaults):
58331        (khtml::RenderStyle::widows):
58332        (khtml::RenderStyle::orphans):
58333        (khtml::RenderStyle::pageBreakInside):
58334        (khtml::RenderStyle::pageBreakBefore):
58335        (khtml::RenderStyle::pageBreakAfter):
58336        (khtml::RenderStyle::setWidows):
58337        (khtml::RenderStyle::setOrphans):
58338        (khtml::RenderStyle::setPageBreakInside):
58339        (khtml::RenderStyle::setPageBreakBefore):
58340        (khtml::RenderStyle::setPageBreakAfter):
58341
583422003-10-30  Maciej Stachowiak  <mjs@apple.com>
58343
58344        Reviewed by Dave.
58345
58346	- fixed 3468129 - REGRESSION: FOUC occurs on Surfin' Safari
58347	
58348        * khtml/ecma/kjs_html.cpp:
58349        (KJS::HTMLElement::getValueProperty): Don't force layout for image
58350	width/height if you can determine it statically from the attribute.
58351        * khtml/html/html_image.cpp:
58352        (HTMLImageElementImpl::width):
58353        (HTMLImageElementImpl::height):
58354
58355=== Safari-112 ===
58356
583572003-10-30  Ken Kocienda  <kocienda@apple.com>
58358
58359	Rolling out this code since it caused a big performance 
58360	regression.
58361
58362	2003-10-29  David Hyatt  <hyatt@apple.com>
58363
58364		Add the paged media properties to RenderStyle.  
58365		They aren't used yet, but they should now be
58366		parsed and interpreted correctly.
58367
58368        * khtml/css/cssstyleselector.cpp:
58369        (khtml::CSSStyleSelector::applyRule):
58370        * khtml/rendering/render_style.cpp:
58371        (StyleSurroundData::StyleSurroundData):
58372        (StyleBoxData::StyleBoxData):
58373        (StyleBoxData::operator==):
58374        (StyleVisualData::~StyleVisualData):
58375        (StyleVisualData::StyleVisualData):
58376        (StyleBackgroundData::StyleBackgroundData):
58377        (StyleFlexibleBoxData::StyleFlexibleBoxData):
58378        (opacity):
58379        (textShadow):
58380        (StyleInheritedData::StyleInheritedData):
58381        (StyleInheritedData::~StyleInheritedData):
58382        (StyleInheritedData::operator==):
58383        * khtml/rendering/render_style.h:
58384        (khtml::StyleBackgroundData::~StyleBackgroundData):
58385        (khtml::StyleFlexibleBoxData::~StyleFlexibleBoxData):
58386        (khtml::RenderStyle::NonInheritedFlags::operator==):
58387        (khtml::RenderStyle::setBitDefaults):
58388
583892003-10-29  David Hyatt  <hyatt@apple.com>
58390
58391	Fix for 3466628, widgets in overflow blocks don't move when the overflow block is scrolled.  This
58392	was a regression caused by my change to move widgets only during layout and not at paint time.  The
58393	problem with this is that scrolling an overflow block doesn't do a layout, just a repaint.  I patched
58394	the layer code to update widget positions on an overflow block scroll.
58395
58396	This then exposed a bug in absolutePosition, namely that the scroll offset was never factored in when
58397	computing absolutePosition.  This bug also explains why text selection and cursor display were wrong
58398	inside scrolled overflow blocks.
58399	
58400        Reviewed by mjs
58401
58402        * khtml/rendering/render_box.cpp:
58403        (RenderBox::absolutePosition):
58404        * khtml/rendering/render_layer.cpp:
58405        (RenderLayer::scrollToOffset):
58406        * khtml/rendering/render_object.cpp:
58407        (RenderObject::absolutePosition):
58408        * khtml/rendering/render_text.cpp:
58409        (RenderText::cursorPos):
58410        (RenderText::posOfChar):
58411        * khtml/rendering/render_text.h:
58412
584132003-10-29  Maciej Stachowiak  <mjs@apple.com>
58414
58415        Reviewed by Dave.
58416
58417	- fixed 3467499 - REGRESSION: onClick handlers on links don't work (bubbling broken)
58418	
58419        * khtml/xml/dom2_eventsimpl.cpp:
58420        (EventImpl::EventImpl): Initialize m_cancelBubble (duh).
58421
584222003-10-29  David Hyatt  <hyatt@apple.com>
58423
58424	Fix for 3466802.  When breaking on a newline, "pre" is determined by checking the actual object that
58425	the line broke on, and not by simply checking the "pre" status of the containing block.
58426	
58427        Reviewed by mjs
58428
58429        * khtml/rendering/bidi.cpp:
58430        (khtml::RenderBlock::layoutInlineChildren):
58431
584322003-10-29  David Hyatt  <hyatt@apple.com>
58433
58434	Add the paged media properties to RenderStyle.  They aren't used yet, but they should now be 
58435	parsed and interpreted correctly.
58436	
58437        Reviewed by kocienda
58438
58439        * khtml/css/cssstyleselector.cpp:
58440        (khtml::CSSStyleSelector::applyRule):
58441        * khtml/rendering/render_style.cpp:
58442        (StyleBoxData::operator==):
58443        (StyleFlexibleBoxData::StyleFlexibleBoxData):
58444        (:opacity):
58445        (:textShadow):
58446        (StyleInheritedData::StyleInheritedData):
58447        (StyleInheritedData::operator==):
58448        * khtml/rendering/render_style.h:
58449        (khtml::):
58450        (khtml::RenderStyle::NonInheritedFlags::operator==):
58451        (khtml::RenderStyle::setBitDefaults):
58452        (khtml::RenderStyle::widows):
58453        (khtml::RenderStyle::orphans):
58454        (khtml::RenderStyle::pageBreakInside):
58455        (khtml::RenderStyle::pageBreakBefore):
58456        (khtml::RenderStyle::pageBreakAfter):
58457        (khtml::RenderStyle::setWidows):
58458        (khtml::RenderStyle::setOrphans):
58459        (khtml::RenderStyle::setPageBreakInside):
58460        (khtml::RenderStyle::setPageBreakBefore):
58461        (khtml::RenderStyle::setPageBreakAfter):
58462
584632003-10-29  David Hyatt  <hyatt@apple.com>
58464
58465        * khtml/css/cssstyleselector.cpp:
58466        (khtml::CSSStyleSelector::applyRule):
58467        * khtml/rendering/render_style.cpp:
58468        (StyleBoxData::operator==):
58469        (StyleFlexibleBoxData::StyleFlexibleBoxData):
58470        (:opacity):
58471        (:textShadow):
58472        (StyleInheritedData::StyleInheritedData):
58473        (StyleInheritedData::operator==):
58474        * khtml/rendering/render_style.h:
58475        (khtml::):
58476        (khtml::RenderStyle::NonInheritedFlags::operator==):
58477        (khtml::RenderStyle::setBitDefaults):
58478        (khtml::RenderStyle::widows):
58479        (khtml::RenderStyle::orphans):
58480        (khtml::RenderStyle::pageBreakInside):
58481        (khtml::RenderStyle::pageBreakBefore):
58482        (khtml::RenderStyle::pageBreakAfter):
58483        (khtml::RenderStyle::setWidows):
58484        (khtml::RenderStyle::setOrphans):
58485        (khtml::RenderStyle::setPageBreakInside):
58486        (khtml::RenderStyle::setPageBreakBefore):
58487        (khtml::RenderStyle::setPageBreakAfter):
58488
584892003-10-29  David Hyatt  <hyatt@apple.com>
58490
58491	Refine the fix to updateLayout.
58492	updateStyleSelector would get called over and over again when you queried for layout properties from
58493	JS.  If no stylesheets are pending, this isn't necessary (and is quite expensive, since updateStyleSelector
58494	is a slow function).
58495	
58496        Reviewed by darin
58497
58498        * khtml/xml/dom_docimpl.cpp:
58499        (DocumentImpl::updateLayout):
58500
585012003-10-29  David Hyatt  <hyatt@apple.com>
58502
58503	Fix crasher in border collapsing code.
58504	
58505        Reviewed by kocienda
58506
58507        * khtml/rendering/render_table.cpp:
58508        (RenderTable::cellRight):
58509
585102003-10-28  Maciej Stachowiak  <mjs@apple.com>
58511
58512        Reviewed by Darin.
58513
58514	- fixed 3163842 - Citibank cardmember central DHTML menus not working right in Safari
58515	
58516        * khtml/ecma/kjs_html.cpp:
58517        (KJS::HTMLElement::getValueProperty): update layout before fetching image properties
58518	that need it.
58519        * khtml/xml/dom_docimpl.cpp:
58520        (DocumentImpl::DocumentImpl): Initialize m_ignorePendingStylesheets to false.
58521        (DocumentImpl::updateLayout): Ignore pending stylesheets - when JS demands a
58522	layout, it wants a real one now.
58523        (DocumentImpl::updateStyleSelector): Go ahead with the update if we're ignoring
58524	pending stylesheets.
58525        * khtml/xml/dom_docimpl.h:
58526        (DOM::DocumentImpl::haveStylesheetsLoaded): Pretend stylesheets have loaded if
58527	we're temporarily ignoring pending stylesheets.
58528
585292003-10-29  David Hyatt  <hyatt@apple.com>
58530
58531	Implement support for <marquee>.  This includes support for the CSS3 specification (although modified a fair
58532	bit to actually be compatible with WinIE's version and to correct obvious errors in the draft).  All of the
58533	marquee behaviors (slide, scroll, and alternate) are supported.
58534
58535	This patch also fixes the following bugs that were discovered while testing marquee:
58536	(1) An error in the computation of scrollWidth and scrollHeight.  
58537	(2) The ability to ask for the leftmostPosition as well as the rightmostPosition of content and to
58538	be able to ask for the positions of children (via left/right/lowest) without including the parent in the
58539	computation.
58540	(3) An optimization to RenderFlow's rightmost/lowestPosition functions to avoid examining text elements since
58541	they are always fully accounted for by either overflow or by inline flow boxes.
58542	(4) A fix for RTL rendering.  A block with direction:RTL was being placed on the right, when in reality only
58543	its children should be placed on the right.
58544	(5) A fix to prevent inline blocks and tables from computing auto margins (making them just like floats in this
58545	regard).
58546	
58547        Reviewed by darin
58548
58549        * khtml/css/cssparser.cpp:
58550        (validUnit):
58551        (CSSParser::parseValue):
58552        * khtml/css/cssproperties.c:
58553        (hash_prop):
58554        (findProp):
58555        * khtml/css/cssproperties.h:
58556        * khtml/css/cssproperties.in:
58557        * khtml/css/cssstyleselector.cpp:
58558        (khtml::convertToLength):
58559        (khtml::CSSStyleSelector::applyRule):
58560        * khtml/css/cssvalues.c:
58561        (hash_val):
58562        (findValue):
58563        * khtml/css/cssvalues.h:
58564        * khtml/css/cssvalues.in:
58565        * khtml/css/html4.css:
58566        * khtml/html/html_blockimpl.cpp:
58567        (HTMLMarqueeElementImpl::HTMLMarqueeElementImpl):
58568        (HTMLMarqueeElementImpl::id):
58569        (HTMLMarqueeElementImpl::parseAttribute):
58570        * khtml/html/html_blockimpl.h:
58571        (DOM::HTMLMarqueeElementImpl::minimumDelay):
58572        * khtml/html/htmlparser.cpp:
58573        (KHTMLParser::getElement):
58574        * khtml/misc/htmlattrs.c:
58575        (hash_attr):
58576        (findAttr):
58577        * khtml/misc/htmlattrs.h:
58578        * khtml/misc/htmlattrs.in:
58579        * khtml/rendering/bidi.cpp:
58580        (khtml::RenderBlock::findNextLineBreak):
58581        * khtml/rendering/render_block.cpp:
58582        (khtml::RenderBlock::lowestPosition):
58583        (khtml::RenderBlock::rightmostPosition):
58584        (khtml::RenderBlock::leftmostPosition):
58585        * khtml/rendering/render_block.h:
58586        * khtml/rendering/render_box.cpp:
58587        (RenderBox::setStyle):
58588        (RenderBox::calcWidth):
58589        (RenderBox::calcHorizontalMargins):
58590        (RenderBox::lowestPosition):
58591        (RenderBox::rightmostPosition):
58592        (RenderBox::leftmostPosition):
58593        * khtml/rendering/render_box.h:
58594        * khtml/rendering/render_flow.cpp:
58595        (RenderFlow::lowestPosition):
58596        (RenderFlow::rightmostPosition):
58597        (RenderFlow::leftmostPosition):
58598        * khtml/rendering/render_flow.h:
58599        * khtml/rendering/render_layer.cpp:
58600        (RenderLayer::RenderLayer):
58601        (RenderLayer::~RenderLayer):
58602        (RenderLayer::updateLayerPositions):
58603        (RenderLayer::scrollToOffset):
58604        (RenderLayer::computeScrollDimensions):
58605        (RenderLayer::styleChanged):
58606        (RenderLayer::stopMarquees):
58607        (m_whiteSpace):
58608        (Marquee::marqueeSpeed):
58609        (Marquee::direction):
58610        (Marquee::isHorizontal):
58611        (Marquee::computePosition):
58612        (Marquee::start):
58613        (Marquee::stop):
58614        (Marquee::updateMarqueePosition):
58615        (Marquee::updateMarqueeStyle):
58616        (Marquee::timerEvent):
58617        * khtml/rendering/render_layer.h:
58618        (khtml::):
58619        (khtml::RenderLayer::marquee):
58620        * khtml/rendering/render_object.cpp:
58621        (RenderObject::isHTMLMarquee):
58622        (RenderObject::sizesToMaxWidth):
58623        * khtml/rendering/render_object.h:
58624        (khtml::RenderObject::lowestPosition):
58625        (khtml::RenderObject::rightmostPosition):
58626        (khtml::RenderObject::leftmostPosition):
58627        * khtml/rendering/render_style.cpp:
58628        (StyleMarqueeData::StyleMarqueeData):
58629        (StyleMarqueeData::operator==):
58630        (opacity):
58631        (marquee):
58632        (StyleCSS3NonInheritedData::operator==):
58633        (RenderStyle::RenderStyle):
58634        * khtml/rendering/render_style.h:
58635        (khtml::):
58636        (khtml::StyleMarqueeData::operator!=):
58637        (khtml::RenderStyle::marqueeIncrement):
58638        (khtml::RenderStyle::marqueeSpeed):
58639        (khtml::RenderStyle::marqueeLoopCount):
58640        (khtml::RenderStyle::marqueeBehavior):
58641        (khtml::RenderStyle::marqueeDirection):
58642        (khtml::RenderStyle::setMarqueeIncrement):
58643        (khtml::RenderStyle::setMarqueeSpeed):
58644        (khtml::RenderStyle::setMarqueeDirection):
58645        (khtml::RenderStyle::setMarqueeBehavior):
58646        (khtml::RenderStyle::setMarqueeLoopCount):
58647        * khtml/xml/dom_docimpl.cpp:
58648        (DocumentImpl::createHTMLElement):
58649        * kwq/KWQKHTMLPart.mm:
58650        (KWQKHTMLPart::clearTimers):
58651
586522003-10-29  David Hyatt  <hyatt@apple.com>
58653
58654	Make <button> be an inline-block.
58655	
58656        * khtml/css/html4.css:
58657
586582003-10-28  Maciej Stachowiak  <mjs@apple.com>
58659
58660        Reviewed by Darin.
58661
58662	 - fixed 3465547 - REGRESSION (100-111)?: window.prompt does not work
58663	
58664        * kwq/KWQKHTMLPart.mm:
58665        (KWQKHTMLPart::runJavaScriptPrompt): Return the result properly
58666	instead of always returning false.
58667
586682003-10-28  Darin Adler  <darin@apple.com>
58669
58670        Reviewed by Maciej.
58671
58672        - fixed 3465504 -- REGRESSION (100-111): text areas with Chinese text in them are wider than ones without
58673
58674        * kwq/KWQTextArea.h: Add _font field.
58675        * kwq/KWQTextArea.mm:
58676        (-[KWQTextArea dealloc]): Release _font.
58677        (-[KWQTextArea setFont:]): Store font in _font as well as setting it in the text view.
58678        (-[KWQTextArea sizeWithColumns:rows:]): Use _font rather than asking the text view for the font.
58679
586802003-10-28  Darin Adler  <darin@apple.com>
58681
58682        Reviewed by Maciej.
58683
58684        - fixed 3464702 -- node.item(x) is not implemented (dynamic menus not filled out at techcu.com)
58685
58686        * khtml/ecma/kjs_dom.cpp: (DOMNodeProtoFunc::tryCall): Add implementation of item function.
58687        * khtml/ecma/kjs_dom.h: Added Item to the enum.
58688        * khtml/ecma/kjs_dom.lut.h: Regenerated.
58689
586902003-10-28  Maciej Stachowiak  <mjs@apple.com>
58691
58692        Reviewed by Dave,
58693
58694	- fixed 3379725 - for <a> elements with both onclick and href, Web Kit's behavior does not match other browsers
58695
58696	The fix for this was to make cancelBubble only prevent bubbling,
58697	but not stop propagation or prevent default. While I was at it, I
58698	made returnValue work right too.
58699	
58700        * khtml/ecma/kjs_events.cpp:
58701        (DOMEvent::getValueProperty): Implement cancelBubble and returnValue properties properly.
58702        (DOMEvent::putValue): Ditto.
58703        * khtml/dom/dom2_events.cpp:
58704        (Event::setCancelBubble): Call impl.
58705        (Event::setDefaultPrevented): Ditto.
58706        (Event::getCancelBubble): Ditto.
58707        (Event::defaultPrevented): Ditto.
58708        * khtml/dom/dom2_events.h:
58709        * khtml/xml/dom2_eventsimpl.h:
58710        (DOM::EventImpl::propagationStopped): Made this a const method.
58711        (DOM::EventImpl::defaultPrevented): Ditto.
58712        (DOM::EventImpl::setCancelBubble): Implemented by setting a new field.
58713        (DOM::EventImpl::getCancelBubble): Corresponding getter.
58714        (DOM::EventImpl::setDefaultPrevented): Set the already existing field for this.
58715        * khtml/xml/dom_nodeimpl.cpp:
58716        (NodeImpl::dispatchGenericEvent): Check getCancelBubble() when bubbling. Do not
58717	check bubbles() before default handling.
58718
587192003-10-28  Chris Blumenberg  <cblu@apple.com>
58720
58721	Fixed: <rdar://problem/3464472>: REGRESSION: New CSS cursor support breaks style="cursor:default
58722
58723        Reviewed by dave.
58724
58725        * kwq/KWQWidget.mm:
58726        (QWidget::cursor): break after we hit a view that responds to documentCursor as we do in setCursor. Without breaking we were returning the cursor of the most super HTML view which is not what we want.
58727
587282003-10-28  Maciej Stachowiak  <mjs@apple.com>
58729
58730        Reviewed by John.
58731
58732	- fixed 3421393 - window.open does not handle non-integral height/width (small window at saabusa.com)
58733	
58734        * khtml/ecma/kjs_window.cpp:
58735        (WindowFunc::tryCall): Parse width, height, top and left as
58736	floating point and then cast to int instead of parsing as int to
58737	match other browsers and avoid rejecting floating point numbers.
58738
587392003-10-28  Maciej Stachowiak  <mjs@apple.com>
58740
58741        Reviewed by John.
58742
58743	- fixed 3464528 - addEventListener does not work for buttons, text areas, or inputs
58744
58745        * khtml/rendering/render_form.cpp:
58746        (RenderFormElement::slotClicked): Send CLICK_EVENT as well as one
58747	of KHTML_CLICK_EVENT or KHTML_DOUBLE_CLICK_EVENT.
58748
587492003-10-28  Maciej Stachowiak  <mjs@apple.com>
58750
58751        Fixed broken build.
58752
58753        * kwq/KWQKPartsPart.mm:
58754        (KParts::ReadOnlyPart::setName): It's a ReadOnlyPart method, not a Part method.
58755
587562003-10-28  Maciej Stachowiak  <mjs@apple.com>
58757
58758        Reviewed by John.
58759
58760	- fixed 3427046 - href and src attributes don't always give resolved URL
58761
58762	It turns out that all href and src attributes should be resolved
58763	against the base, except for frame elements.
58764	
58765        * khtml/dom/html_base.cpp:
58766        (HTMLIFrameElement::src): Resolve against base URL.
58767        * khtml/dom/html_form.cpp:
58768        (HTMLInputElement::src): Resolve URL even when empty. Remove
58769	comment questioning resolution against base - it's definitely
58770	right.
58771        * khtml/dom/html_head.cpp:
58772        (HTMLBaseElement::href): Resolve against base URL.
58773        (HTMLLinkElement::href): Ditto.
58774        (HTMLScriptElement::src): Ditto.
58775        * khtml/dom/html_image.cpp:
58776        (HTMLAreaElement::href): Ditto.
58777	(HTMLImageElement::src): Resolve URL even when empty. Remove
58778	comment questioning resolution against base - it's definitely
58779	right.
58780        * khtml/dom/html_inline.cpp:
58781        (HTMLAnchorElement::href): Resolve against base URL.
58782
587832003-10-27  Maciej Stachowiak  <mjs@apple.com>
58784
58785        Reviewed by Darin.
58786
58787	- fixed 3083264 - frame names changed by JavaScript are not reflected in WebFrame at the WebKit level
58788	
58789        * kwq/KWQKHTMLPart.h:
58790        * kwq/KWQKHTMLPart.mm:
58791        (KWQKHTMLPart::setName): Make sure the name is unique. Then tell
58792	the bridge and the superclass about it.
58793        * kwq/KWQKPartsPart.h:
58794        (KParts::ReadOnlyPart::setName): Made this method virtual.
58795        * kwq/KWQKPartsPart.m: Added. Moved implementations of virtual methods here.
58796        * kwq/WebCoreBridge.h:
58797        * kwq/WebCoreBridge.mm:
58798        (-[WebCoreBridge setName:]): Call the superclass method to avid
58799	sending the name pointlessly back across the bridge.
58800
588012003-10-28  Darin Adler  <darin@apple.com>
58802
58803        Reviewed by John.
58804
58805        - fixed 3465063 -- REGRESSION (107-108): hang when fetching a page with an ad in a subframe (theage.com.au)
58806
58807        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::openURL): Follow the parent chain properly rather
58808        than repeatedly getting the part's own parent!
58809
588102003-10-27  Maciej Stachowiak  <mjs@apple.com>
58811
58812        Reviewed by Darin.
58813
58814	Improved exception blocking in the following ways:
58815
58816	- use C+constructors and destructors so returning or breaking out of an exception block works
58817	- Remove use of volatile
58818	- Collapse the caught exception case into a single function call to reduce code size.
58819
58820        * WebCore.pbproj/project.pbxproj:
58821        * kwq/KWQButton.mm:
58822        * kwq/KWQCheckBox.mm:
58823        * kwq/KWQComboBox.mm:
58824        * kwq/KWQExceptions.h:
58825        * kwq/KWQExceptions.mm: Added.
58826        * kwq/KWQFileButton.mm:
58827        * kwq/KWQFont.mm:
58828        * kwq/KWQFrame.mm:
58829        * kwq/KWQKConfigBase.mm:
58830        * kwq/KWQKCookieJar.mm:
58831        * kwq/KWQKCursor.mm:
58832        * kwq/KWQKHTMLPart.mm:
58833        * kwq/KWQKHTMLPartBrowserExtension.mm:
58834        * kwq/KWQKHistoryProvider.mm:
58835        * kwq/KWQKJavaAppletWidget.mm:
58836        * kwq/KWQKJobClasses.mm:
58837        * kwq/KWQKLocale.mm:
58838        * kwq/KWQKPartsBrowserInterface.mm:
58839        * kwq/KWQLineEdit.mm:
58840        * kwq/KWQListBox.mm:
58841        * kwq/KWQLoader.mm:
58842        * kwq/KWQPainter.mm:
58843        * kwq/KWQPushButton.mm:
58844        * kwq/KWQRadioButton.mm:
58845        * kwq/KWQScrollBar.mm:
58846        * kwq/KWQScrollView.mm:
58847        * kwq/KWQTextEdit.mm:
58848        * kwq/KWQWidget.mm:
58849        
588502003-10-26  Darin Adler  <darin@apple.com>
58851
58852        * khtml/khtml_part.cpp: (findWordBoundary): Fix small mistake from NULL check-in earlier.
58853
588542003-10-26  Darin Adler  <darin@apple.com>
58855
58856        * kwq/KWQLoader.mm: (KWQResponseMIMEType): Removed an excess volatile.
58857
588582003-10-26  Darin Adler  <darin@apple.com>
58859
58860        Reviewed by Maciej.
58861
58862        - fixed 3463624 -- page at cinemakorea.com shows up blank due to kTECBufferBelowMinimumSizeErr from TEC
58863
58864        * kwq/KWQTextCodec.mm: (KWQTextDecoder::convertOneChunkUsingTEC): To work around the bug
58865        I found in the decoder (Radar 3351093), change kTECBufferBelowMinimumSizeErr to
58866        kTECOutputBufferFullStatus in cases where bytes were actually converted.
58867
588682003-10-26  Darin Adler  <darin@apple.com>
58869
58870        Reviewed by Maciej.
58871
58872        - fixed 3463586 -- WebCore does not compile with new definition of NULL
58873
58874        * khtml/khtml_part.cpp: (findWordBoundary): Changed NULL to 0 and did a little code
58875        cleanup of the surrounding code.
58876        * khtml/rendering/break_lines.cpp: (khtml::isBreakable): Changed NULL to 0 and did
58877        a tiny bit of cleanup.
58878
58879        * WebCorePrefix.h: Add a definition of NULL here that takes advantage of the GNU
58880        __null feature even if the system C library doesn't.
58881
588822003-10-26  Darin Adler  <darin@apple.com>
58883
58884        Reviewed by Maciej.
58885
58886        - fixed 3457831 -- REGRESSION: copying particular text and pasting (plain) produces lots of extra text
58887
58888        * khtml/khtml_part.cpp: (KHTMLPart::text): Check for the end node when following a
58889        link to the parent node, not just when following a link to the next child node.
58890        * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::attributedString): Ditto.
58891
58892== Rolled over to ChangeLog-2003-10-25 ==
58893