1 2005-08-23 David Harrison <harrison@apple.com>
5 <rdar://problem/4226539> REGRESSION: Blank content at http://www.the-leaky-cauldron.org/ with Denver and TOT
8 * layout-tests/fast/parser/comments-expected.txt: Added.
9 * layout-tests/fast/parser/comments.html: Added.
11 * khtml/html/htmltokenizer.cpp:
12 (khtml::HTMLTokenizer::parseComment):
13 When non-space follows comment end, ignore that comment end.
15 2005-08-23 Justin Garcia <justin.garcia@apple.com>
19 Temporary workaround for gcc-5216+ bug 4213314. Don't use NSMake* convenience methods inside KWQ_BLOCK_EXCEPTIONS.
21 * kwq/KWQKConfigBase.mm:
23 * kwq/KWQKHTMLPart.mm:
24 (KWQKHTMLPart::attributedString):
26 (QListBox::sizeForNumberOfLines):
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):
37 2005-08-22 John Sullivan <sullivan@apple.com>
39 Reviewed by Beth Dakin.
41 - fixed <rdar://problem/4227019> Several 32-byte leaks after choosing pop-up menu at dzone198.apple.com
43 Test cases added: none, doesn't affect layout. I did execute run-layout-tests to verify that there
44 were no surprises though.
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
60 2005-08-22 David Harrison <harrison@apple.com>
64 <rdar://problem/4221384> Denver Regression: stickies widget crashed on 8F15 when pasting text
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.
70 * khtml/editing/markup.cpp:
71 (khtml::createFragmentFromText):
72 Ref the new paragraph element right away, rather than allocating more memory first.
74 2005-08-22 Eric Seidel <eseidel@apple.com>
75 Fix by Tobias Lidskog <tobiaslidskog@mac.com>
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
89 2005-08-22 Eric Seidel <eseidel@apple.com>
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
99 2005-08-22 Eric Seidel <eseidel@apple.com>
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
107 2005-08-22 Eric Seidel <eseidel@apple.com>
108 Fix by Tobias Lidskog <tobiaslidskog@mac.com>
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
121 2005-08-22 Eric Seidel <eseidel@apple.com>
122 Fix by Tobias Lidskog <tobiaslidskog@mac.com>
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
153 2005-08-22 Eric Seidel <eseidel@apple.com>
154 Fix by Tobias Lidskog <tobiaslidskog@mac.com>
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
169 2005-08-20 Darin Adler <darin@apple.com>
171 * khtml/xml/xml_namespace_table.cpp: Removed this file that's been obsolete and
173 * khtml/xml/xml_namespace_table.h: Ditto.
175 2005-08-19 Anders Carlsson <andersca@mac.com>
178 Landed by David Harrison.
180 - fixed http://bugs.webkit.org/show_bug.cgi?id=4475
181 <noscript>, <noframes>, <nolayer> and <noembed> elements should be in the DOM
184 * layout-tests/fast/dom/no-elements-expected.txt: Added.
185 * layout-tests/fast/dom/no-elements.html: Added.
187 * khtml/html/html_elementimpl.cpp:
189 Add noembed and nolayer to the list of block tags.
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).
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.
211 2005-08-19 Darin Adler <darin@apple.com>
214 Landed by David Harrison.
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)
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
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.
229 2005-08-19 Anders Carlsson <andersca@mac.com>
232 Landed by David Harrison.
234 Test cases added: None. Fixes existing tests.
236 * khtml/ecma/kjs_dom.cpp:
237 Attribute values are writable
239 * khtml/xml/dom_docimpl.cpp:
240 (DocumentImpl::createAttributeNS):
241 Update for new AttrImpl constructor.
243 * khtml/xml/dom_elementimpl.cpp:
244 (AttributeImpl::allocateImpl):
245 Update for new AttrImpl constructor.
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.
252 (AttrImpl::setValue):
253 Remove all children and create a new text node with the contents
254 of the attribute value.
256 (AttrImpl::cloneNode):
257 Make sure to clone any children.
259 (AttrImpl::childrenChanged):
260 If m_ignoreChildrenChanged is 0, update the attribute value.
262 * khtml/xml/dom_elementimpl.h:
263 Add childrenChanged, update AttrImpl constructor and
264 add m_ignoreChildrenChanged to AttrImpl.
266 * khtml/xml/dom_nodeimpl.cpp:
267 (DOM::NodeImpl::normalize):
268 If an element has attributes, make sure to normalize them.
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.
293 2005-08-19 Mitz Pettel <opendarwin.org@mitzpettel.com>
296 Landed by David Harrison
298 - Fixes <http://bugs.webkit.org/show_bug.cgi?id=4523>
299 REGRESSION assertion failure in Window::getValueProperty accessing window.konqueror
301 Test cases added: N/A for this code removal
303 Remove all traces of the konqueror property
305 * khtml/ecma/kjs_window.cpp:
306 (KJS::Window::getValueProperty):
307 * khtml/ecma/kjs_window.h:
310 2005-08-19 Antti Koivisto <koivisto@iki.fi>
313 Landed by David Harrison
315 - Fixes <http://bugs.webkit.org/show_bug.cgi?id=4379>
316 negative margins allowed where they should not
319 layout-tests/fast/block/margin-collapse/104.html: Added.
320 layout-tests/fast/block/margin-collapse/104-expected.txt: Added.
322 * khtml/rendering/render_box.cpp:
323 (RenderBox::calcHorizontalMargins):
325 2005-08-19 Eric Seidel <eseidel@apple.com>
326 Change from Tobias Lidskog <tobiaslidskog@mac.com>
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
340 2005-08-19 Eric Seidel <eseidel@apple.com>
344 * kcanvas/device/quartz/KRenderingPaintServerGradientQuartz.mm:
345 (cgGradientCallback):
346 Fixes forgotten memcopy.
347 http://bugs.webkit.org/show_bug.cgi?id=4529
349 2005-08-19 Vicki Murley <vicki@apple.com>
351 - remove this test, I disabled it in my last checkin
353 * layout-tests/dom/html/level2/html/HTMLFormElement10.html: Removed.
355 2005-08-19 Vicki Murley <vicki@apple.com>
359 - fixed <rdar://problem/4223107> frame tests in layout-tests/dom/html/level2/html
360 have empty expected results
362 * layout-tests/dom/html/level2/html/selfhtml.js: wait until done before
363 dumping the render tree
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
369 Update expected results for these tests:
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:
392 2005-08-19 Anders Carlsson <andersca@mac.com>
397 - Fixes <http://bugs.webkit.org/show_bug.cgi?id=3301>
398 innerHTML does not work for xhtml documents.
401 layout-tests/fast/dom/set-innerHTML.xhtml: Added.
402 layout-tests/fast/dom/set-innerHTML-expected.txt: Added.
404 * khtml/html/html_elementimpl.cpp:
405 (HTMLElementImpl::createContextualFragment):
406 Call parseXMLDocumentFragment if we're an xml document.
408 * khtml/xml/xml_tokenizer.cpp:
409 (khtml::XMLTokenizer::pushNamespaces):
410 New function that takes an element.
412 (khtml::XMLTokenizer::XMLTokenizer):
413 New constructor that takes a DocumentFragmentImpl and fills it.
415 (khtml::parseXMLDocumentFragment):
416 New function that parses a document fragment.
418 (khtml::XMLNamespaceStack::pushNamespaces):
419 New function that takes an element and pushes namespaces based on its
422 * khtml/xml/xml_tokenizer.h:
423 Add parseXMLDocumentFragment declaration.
425 2005-08-18 Eric Seidel <eseidel@apple.com>
427 No review needed, affects only SVGSupport.
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.
868 2005-08-17 Maciej Stachowiak <mjs@apple.com>
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.
875 * kwq/KWQRenderTreeDebug.cpp:
876 (externalRepresentation): Remove hack to turn off scrollbars.
878 - Updated many test results now that the layout tests properly do scrollbars when
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:
1013 2005-08-17 Beth Dakin <bdakin@apple.com>
1017 Test cases added: (NONE)
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.
1023 * kwq/KWQArrayImpl.mm:
1024 (KWQArrayImpl::resize): When resizing to 0, free the old data after setting it
1027 2005-08-17 Justin Garcia <justin.garcia@apple.com>
1029 Reviewed by darin, adele
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.
1035 * khtml/khtmlview.cpp:
1036 (KHTMLView::layout):
1038 2005-08-17 Curt Arnold <curt.arnold@mac.com>
1040 Reviewed and landed by Darin.
1042 - fixed http://bugs.webkit.org/show_bug.cgi?id=4491
1043 DOM L2 Events tests using addEventListener broken
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.
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.
1056 2005-08-17 Justin Garcia <justin.garcia@apple.com>
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
1063 * khtml/xml/dom_docimpl.cpp:
1064 (DocumentImpl::implicitClose):
1065 * kwq/KWQKHTMLPart.h:
1066 * kwq/KWQKHTMLPart.mm:
1067 (KWQKHTMLPart::handledOnloadEvents):
1068 * kwq/WebCoreBridge.h:
1070 2005-08-17 Vicki Murley <vicki@apple.com>
1074 - fix <rdar://problem/4175734> Crash trying to retrieve data with
1075 XMLHttpRequest with Content-Type: empty
1078 * manual-tests/xmlhttprequest-contenttype-empty.html: Added.
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
1085 2005-08-16 Darin Adler <darin@apple.com>
1089 - fixed bug that was causing a crash when running layout tests
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.
1100 2005-08-16 Darin Adler <darin@apple.com>
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.
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.
1111 * WebCore-tests.exp: Export the new stuff so the tests still work.
1113 2005-08-15 Maciej Stachowiak <mjs@apple.com>
1117 - fixed leak of HTML collection info - this can build up to
1118 hundreds of leaks pretty quickly
1120 http://bugs.webkit.org/show_bug.cgi?id=4450
1122 * khtml/html/html_miscimpl.cpp:
1123 (DOM::HTMLCollectionImpl::HTMLCollectionImpl): Initialize new
1125 (DOM::HTMLCollectionImpl::~HTMLCollectionImpl): Delete info if
1127 (DOM::HTMLCollectionImpl::resetCollectionInfo): When creating new
1128 info, indicate that it's owned.
1129 * khtml/html/html_miscimpl.h: Declare new member.
1131 2005-08-16 David Harrison <harrison@apple.com>
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
1136 Removed asserts that did not account for iterating from a nested node to its parent.
1138 Test cases added: n/a for assert removal
1140 * khtml/xml/dom_position.cpp:
1141 (DOM::Position::upstream):
1142 (DOM::Position::downstream):
1144 2005-08-16 Darin Adler <darin@apple.com>
1146 Reviewed by Beth Dakin.
1148 - removed Panther-only code that was not being compiled and was
1149 simply "bit-rotting"
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:
1167 (QPixmap::receivedData):
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:
1180 2005-08-16 Darin Adler <darin@apple.com>
1182 Reviewed by Beth Dakin.
1184 - removed some unnecessary code
1186 * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::imageFromRect): Remove code to call
1187 setAdditionalPatternPhase since that is no longer needed.
1189 * kwq/WebCoreGraphicsBridge.h: Remove unused setAdditionalPatternPhase,
1190 createRGBColorSpace, createGrayColorSpace, and createCMYKColorSpace methods.
1191 * kwq/WebCoreGraphicsBridge.m: Ditto.
1193 2005-08-16 Eric Seidel <eseidel@apple.com>
1194 Fix by Tobias Lidskog <tobiaslidskog@mac.com>
1196 Reviewed by eseidel.
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
1204 2005-08-16 Eric Seidel <eseidel@apple.com>
1205 Fix from Tobias Lidskog <tobiaslidskog@mac.com>
1207 Reviewed by eseidel.
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
1233 2005-08-16 Eric Seidel <eseidel@apple.com>
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
1247 2005-08-15 Vicki Murley <vicki@apple.com>
1251 - fixed <rdar://problem/4094363> Can't re-open a window at capripalace.com website because
1252 "close" fails on already-closed window
1255 * manual-tests/close-on-closedWindow.html: Added.
1257 * khtml/ecma/kjs_window.cpp:
1258 (KJS::Window::getOwnPropertySlot): allow close calls on windows that have already been closed
1260 2005-08-15 Darin Adler <darin@apple.com>
1264 - fixed http://bugs.webkit.org/show_bug.cgi?id=4437
1265 clean up error creation with new throwError function
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):
1352 2005-08-15 David Harrison <harrison@apple.com>
1356 <rdar://problem/4202641> Line breaks do not happen inside whitespace:pre; word-wrap: break-word
1358 Test cases added: fast/text/whitespace/tab-character-basics.html
1360 Refined Dave's earlier patch for this bug to handle whitespace:pre that is not at the beginning of a line.
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.
1367 2005-08-15 Darin Adler <darin@apple.com>
1371 - fixed http://bugs.webkit.org/show_bug.cgi?id=4324
1372 WebCore build does a slow "nmedit -s" step that's unnecessary
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.
1378 2005-08-14 Andrew Wellington <proton@wiretapped.net>
1380 Reviewed and landed by Darin.
1382 - fixed http://bugs.webkit.org/show_bug.cgi?id=3429
1383 Text transformed with text-transform does not copy with transform applied
1386 * layout-tests/editing/pasteboard/paste-text-019-expected.txt: Added.
1387 * layout-tests/editing/pasteboard/paste-text-019.html: Added.
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.
1393 2005-08-14 Darin Adler <darin@apple.com>
1395 - fixed build of some unit tests
1397 * khtml/misc/main_thread_malloc.h: We use functions from <stdlib.h> here in
1398 debug mode, so #include <stdlib.h>.
1400 2005-08-14 Darin Adler <darin@apple.com>
1404 - fixed http://bugs.webkit.org/show_bug.cgi?id=4422
1405 QFont has mistake where it caches computed pitch value incorrectly
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.
1415 2005-08-14 Oliver Hunt <ojh16@student.canterbury.ac.nz>
1417 Reviewed and landed by Darin.
1419 - fixed http://bugs.webkit.org/show_bug.cgi?id=3692
1420 Word-spacing doesn't work as expected
1423 * layout-tests/fast/css/word-space-extra-expected.txt: Added.
1424 * layout-tests/fast/css/word-space-extra.html: Added.
1426 * khtml/rendering/bidi.cpp:
1427 (khtml::RenderBlock::constructLine):
1428 (khtml::RenderBlock::computeHorizontalPositionsForLine):
1429 (khtml::RenderBlock::findNextLineBreak):
1430 * khtml/rendering/font.cpp:
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):
1445 2005-08-14 Maciej Stachowiak <mjs@apple.com>
1447 - updated test cases for new editing delegate output
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:
1723 2005-08-14 Darin Adler <darin@apple.com>
1727 - fixed http://bugs.webkit.org/show_bug.cgi?id=4420
1728 make border drawing faster by removing code to alloc/dealloc NSBezierPath
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.
1735 2005-08-14 Maciej Stachowiak <mjs@apple.com>
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
1742 * kwq/KWQArrayImpl.h:
1743 (KWQArrayImpl::size):
1744 * kwq/KWQArrayImpl.mm:
1746 * kwq/KWQMapImpl.mm:
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):
1764 2005-08-14 Duncan Wilcox <duncan@mclink.it>
1766 Reviewed and landed by Darin.
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"
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.
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.
1792 * khtml/khtml_part.h: Added shouldChangeSelection glue method.
1793 * kwq/KWQKHTMLPart.h: Ditto.
1795 * kwq/KWQKHTMLPart.mm:
1796 (KWQKHTMLPart::shouldChangeSelection): Glue to call editing delegate.
1798 * kwq/WebCoreBridge.h: Added shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting: glue method.
1800 2005-08-14 Darin Adler <darin@apple.com>
1802 Fixed by Alexey Proskuryakov <ap@nypop.com>.
1803 Reviewed and landed by Darin.
1805 - fixed http://bugs.webkit.org/show_bug.cgi?id=3590
1806 should allow <meta> tags for encoding even after </head>
1809 * layout-tests/fast/encoding/mispositioned-meta-expected.txt: Added.
1810 * layout-tests/fast/encoding/mispositioned-meta.html: Added.
1812 * khtml/misc/decoder.cpp: (Decoder::decode): Don't stop scanning when seeing </head>.
1814 2005-08-14 Anders Carlsson <andersca@mac.com>
1816 Reviewed and landed by Darin.
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:
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.
1828 * khtml/ecma/kjs_events.cpp:
1829 (KJS::JSAbstractEventListener::handleEvent):
1830 Check if the listener has a "handleEvent" function property and
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.
1838 2005-08-14 Anders Carlsson <andersca@mac.com>
1840 Reviewed and landed by Darin.
1843 * layout-tests/dom/html/level2/core/hc_nodedocumentfragmentnormalize2-expected.txt:
1846 * khtml/xml/dom_nodeimpl.cpp:
1847 (DOM::NodeImpl::normalize):
1848 If there's a single empty text child, remove it.
1850 2005-08-14 Anders Carlsson <andersca@mac.com>
1852 Reviewed and landed by Darin.
1855 * layout-tests/dom/html/level2/html/HTMLSelectElement20-expected.txt:
1858 * khtml/ecma/kjs_html.cpp:
1859 (KJS::KJS::HTMLElementFunction::callAsFunction):
1860 (KJS::KJS::HTMLSelectCollection::put):
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.
1870 (-[DOMHTMLSelectElement add::]):
1871 Handle the exception.
1873 2005-08-12 Geoffrey Garen <ggaren@apple.com>
1877 * manual-tests/liveconnect-security-exception.html:
1878 - fixed wrong codebase path
1879 - added instruction to disable popup blocking
1881 2005-08-11 Adele Peterson <adele@apple.com>
1885 Test cases added: (NONE)
1887 -fixed <rdar://problem/4166839> CSS font-family and font-size ignored on <select> element with size > 1
1889 Changed KWQListBox to get the font from the widget.
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.
1900 2005-08-11 David Hyatt <hyatt@apple.com>
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.
1909 Test cases added: fast/inline-block/tricky-baseline.html
1911 * khtml/rendering/render_block.cpp:
1912 (khtml::RenderBlock::baselinePosition):
1914 2005-08-11 Eric Seidel <eseidel@apple.com>
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
1927 2005-08-11 Geoffrey Garen <ggaren@apple.com>
1929 * layout-tests/fast/js/date-big-setdate.html: fixed title
1931 2005-08-11 Eric Seidel <eseidel@apple.com>
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
1937 2005-08-10 Maciej Stachowiak <mjs@apple.com>
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
1949 2005-08-11 Maciej Stachowiak <mjs@apple.com>
1951 At Least Rougly Glanced At by Anders.
1953 - fix change with totally breaks the layout tests.
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.
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:
1967 2005-08-10 Geoffrey Garen <ggaren@apple.com>
1969 -added layout test for fix to <rdar://problem/4151132> REGRESSION: Some applet
1970 liveconnect calls throws privilege exception.
1972 (See JavaScriptCore Changelog for fix details.)
1974 * manual-tests/liveconnect-security-exception.html: Added.
1975 * manual-tests/resources/TestApplet.class: Added.
1976 * manual-tests/resources/TestApplet.java: Added.
1979 (TestApplet.method):
1980 * manual-tests/resources/liveconnect-security-exception-popup.html: Added.
1982 2005-08-10 Vicki Murley <vicki@apple.com>
1984 Changes from Curt Arnold, reviewed by Vicki.
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.
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:
2002 2005-08-10 Eric Seidel <eseidel@apple.com>
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
2034 2005-08-10 Vicki Murley <vicki@apple.com>
2038 - attempted fix for <rdar://problem/4070895> 8A428: Unrepro Safari crash on
2039 friendster.com (XMLHttpRequest::changeState)
2041 Test cases added: None - there are no known reproducible cases of this crash
2043 * khtml/ecma/xmlhttprequest.cpp:
2044 (KJS::XMLHttpRequest::changeState): add checks for NULL document
2046 2005-08-10 Adele Peterson <adele@apple.com>
2048 Bumping version to 420+
2052 2005-08-09 David Harrison <harrison@apple.com>
2054 Reviewed by Dave Hyatt.
2056 <rdar://problem/4210906> Word selection wrong with tabs
2058 Test cases added: selection/extend-by-word-001-html
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.
2065 2005-08-09 Justin Garcia <justin.garcia@apple.com>
2067 Patch by Anders Carlsson <andersca@mac.com>
2069 Fixes <http://bugs.webkit.org/show_bug.cgi?id=3837>
2070 Page nearly loads but then returned to default page by javascript issue
2075 * layout-tests/fast/tokenizer/script-after-frameset-expected.txt: Added.
2076 * layout-tests/fast/tokenizer/script-after-frameset.html: Added.
2078 * khtml/html/htmltokenizer.cpp:
2079 (khtml::HTMLTokenizer::scriptHandler):
2081 2005-08-09 Justin Garcia <justin.garcia@apple.com>
2083 Patch by Anders Carlsson <andersca@mac.com>
2085 Fixes <http://bugs.webkit.org/show_bug.cgi?id=4330>
2086 hasFeature('xhtml', ...) should return true
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.
2099 * khtml/xml/dom_docimpl.cpp:
2100 (DOMImplementationImpl::hasFeature):
2103 2005-08-09 Justin Garcia <justin.garcia@apple.com>
2105 Patch by Anders Carlsson <andersca@mac.com>
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
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.
2118 2005-08-09 Justin Garcia <justin.garcia@apple.com>
2120 Patch by Anders Carlsson <andersca@mac.com
2124 Fixes <http://bugs.webkit.org/show_bug.cgi?id=4331> dispatchEvent should raise an exception
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.
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.
2148 * khtml/dom/dom2_events.h:
2149 (DOM::EventException::):
2150 Add _EXCEPTION_OFFSET and _EXCEPTION_MAX.
2152 * khtml/ecma/kjs_binding.cpp:
2153 (KJS::setDOMException):
2154 Handle EventExceptions.
2156 * khtml/xml/dom_docimpl.cpp:
2157 (DocumentImpl::createEvent):
2158 Allow "Events" as event type.
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.
2164 * kwq/DOMInternal.mm:
2165 (raiseDOMException):
2166 Handle EventExceptions.
2168 2005-08-09 David Hyatt <hyatt@apple.com>
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).
2177 Test cases added: 006.html in fast/inline-block
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:
2194 2005-08-09 Vicki Murley <vicki@apple.com>
2196 Fixed by Anders Carlsson, Reviewed by Maciej.
2198 - fixed <rdar://problem/4071417> add XMLSerializer object to WebCore's JavaScript support (4046)
2201 * layout-tests/fast/dom/XMLSerializer-expected.txt: Added.
2202 * layout-tests/fast/dom/XMLSerializer.html: Added.
2204 * khtml/ecma/xmlserializer.cpp:
2205 (KJS::XMLSerializerProtoFunc::callAsFunction): allow any node to be serialized, not just documents
2207 2005-08-09 Adele Peterson <adele@apple.com>
2211 - fixed <rdar://problem/4056369> XML parsing hits disk to turn URL incorrectly passed as relative path name into absolute (prevents idle sleep)
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
2217 2005-08-08 David Hyatt <hyatt@apple.com>
2219 Fix for radar bug #4202641, make sure line breaks happen inside
2220 white-space:pre if word-wrap:break-word is set.
2224 Test cases added: fast/text/whitespace/pre-break-word.html
2226 * khtml/rendering/bidi.cpp:
2227 (khtml::RenderBlock::findNextLineBreak):
2229 2005-08-08 Darin Adler <darin@apple.com>
2233 - fixed http://bugs.webkit.org/show_bug.cgi?id=4298
2234 JS crash with DOM2 mouse event with incorrect view
2237 * layout-tests/fast/events/init-event-null-view-expected.txt: Added.
2238 * layout-tests/fast/events/init-event-null-view.html: Added.
2240 * khtml/xml/dom2_eventsimpl.cpp: (MouseRelatedEventImpl::computeLayerPos): Added nil check.
2242 2005-08-08 David Hyatt <hyatt@apple.com>
2244 This patch implements support for <input type=radio> in the engine and removes the NSView-based
2247 Reviewed by: John Sullivan
2249 * ForwardingHeaders/qradiobutton.h: Removed.
2250 * WebCore.xcodeproj/project.pbxproj:
2251 Removing the old QRadioButton from the project.
2253 * khtml/css/html4.css:
2254 Add the CSS rule to give radio buttons the correct appearance.
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.
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.
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.
2269 (DOM::HTMLInputElementImpl::valueWithDefault):
2270 Fix some mis-indented ifdefs.
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.
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.
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.
2287 * khtml/rendering/render_theme.cpp:
2288 (khtml::RenderTheme::adjustStyle):
2289 (khtml::RenderTheme::paint):
2290 Add the radio button case to these methods.
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.
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.
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
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.
2322 * khtml/xml/dom_nodeimpl.cpp:
2323 (DOM::NodeImpl::dispatchGenericEvent):
2324 Add the invocation of preDispatchEventHandler prior to the dispatch of the event.
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.
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).
2339 * kwq/KWQRadioButton.h: Removed.
2340 * kwq/KWQRadioButton.mm: Removed.
2341 Removed the old radio button files for QRadioButton.
2343 2005-08-08 Eric Seidel <eseidel@apple.com>
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
2351 (Attr::getValueProperty):
2352 (Attr::putValueProperty):
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):
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):
2392 * kdom/DocumentType.cpp:
2393 (DocumentType::getValueProperty):
2394 * kdom/DocumentType.h:
2396 (Element::getValueProperty):
2397 (ElementProtoFunc::callAsFunction):
2400 (Entity::getValueProperty):
2402 * kdom/NamedNodeMap.cpp:
2403 (NamedNodeMap::getValueProperty):
2404 (NamedNodeMapProtoFunc::callAsFunction):
2405 * kdom/NamedNodeMap.h:
2407 (Node::getValueProperty):
2408 (Node::putValueProperty):
2409 (NodeProtoFunc::callAsFunction):
2411 * kdom/NodeList.cpp:
2412 (NodeList::getValueProperty):
2413 (NodeListProtoFunc::callAsFunction):
2415 * kdom/Notation.cpp:
2416 (Notation::getValueProperty):
2418 * kdom/ProcessingInstruction.cpp:
2419 (ProcessingInstruction::getValueProperty):
2420 (ProcessingInstruction::putValueProperty):
2421 * kdom/ProcessingInstruction.h:
2423 (Text::getValueProperty):
2424 (TextProtoFunc::callAsFunction):
2426 * kdom/TypeInfo.cpp:
2427 (TypeInfo::getValueProperty):
2428 (TypeInfoProtoFunc::callAsFunction):
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):
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):
2512 (Attr::getInParents):
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):
2533 (CSSPageRule::getInParents):
2534 (CSSPageRule::prototype):
2535 (CSSPageRule::cache):
2536 (CSSPrimitiveValue::hasProperty):
2537 (CSSPrimitiveValue::get):
2538 (CSSPrimitiveValue::getInParents):
2539 (CSSPrimitiveValue::prototype):
2540 (CSSPrimitiveValue::cache):
2542 (CSSRule::getInParents):
2543 (CSSRule::prototype):
2545 (CSSRuleList::hasProperty):
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):
2565 (CSSValue::getInParents):
2566 (CSSValue::prototype):
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):
2579 (Counter::getInParents):
2580 (Counter::prototype):
2582 (DOMConfiguration::hasProperty):
2583 (DOMConfiguration::get):
2584 (DOMConfiguration::getInParents):
2585 (DOMConfiguration::prototype):
2586 (DOMConfiguration::cache):
2588 (DOMError::getInParents):
2589 (DOMError::prototype):
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):
2606 (DOMLocator::getInParents):
2607 (DOMLocator::prototype):
2608 (DOMLocator::cache):
2609 (DOMStringList::hasProperty):
2610 (DOMStringList::get):
2611 (DOMStringList::getInParents):
2612 (DOMStringList::prototype):
2613 (DOMStringList::cache):
2615 (DOMUserData::getInParents):
2616 (DOMUserData::prototype):
2617 (DOMUserData::cache):
2618 (Document::hasProperty):
2620 (Document::getInParents):
2621 (Document::prototype):
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):
2652 (Element::getInParents):
2653 (Element::prototype):
2656 (Entity::getInParents):
2657 (Entity::prototype):
2659 (Event::hasProperty):
2661 (Event::getInParents):
2664 (EventException::get):
2665 (EventException::getInParents):
2666 (EventException::prototype):
2667 (EventException::cache):
2668 (EventTarget::hasProperty):
2670 (EventTarget::getInParents):
2671 (EventTarget::prototype):
2672 (EventTarget::cache):
2673 (KeyboardEvent::hasProperty):
2674 (KeyboardEvent::get):
2675 (KeyboardEvent::getInParents):
2676 (KeyboardEvent::prototype):
2677 (KeyboardEvent::cache):
2679 (LSException::getInParents):
2680 (LSException::prototype):
2681 (LSException::cache):
2683 (LSInput::getInParents):
2684 (LSInput::prototype):
2687 (LSOutput::getInParents):
2688 (LSOutput::prototype):
2690 (LSParser::hasProperty):
2692 (LSParser::getInParents):
2693 (LSParser::prototype):
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):
2716 (MediaList::getInParents):
2717 (MediaList::prototype):
2719 (MouseEvent::hasProperty):
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):
2736 (Node::getInParents):
2739 (NodeIterator::hasProperty):
2740 (NodeIterator::get):
2741 (NodeIterator::getInParents):
2742 (NodeIterator::prototype):
2743 (NodeIterator::cache):
2744 (NodeList::hasProperty):
2746 (NodeList::getInParents):
2747 (NodeList::prototype):
2750 (Notation::getInParents):
2751 (Notation::prototype):
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):
2763 (Range::getInParents):
2766 (RangeException::get):
2767 (RangeException::getInParents):
2768 (RangeException::prototype):
2769 (RangeException::cache):
2771 (KDOM::Rect::getInParents):
2772 (KDOM::Rect::prototype):
2773 (KDOM::Rect::cache):
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):
2785 (Text::getInParents):
2788 (TreeWalker::hasProperty):
2790 (TreeWalker::getInParents):
2791 (TreeWalker::prototype):
2792 (TreeWalker::cache):
2793 (TypeInfo::hasProperty):
2795 (TypeInfo::getInParents):
2796 (TypeInfo::prototype):
2798 (UIEvent::hasProperty):
2800 (UIEvent::getInParents):
2801 (UIEvent::prototype):
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):
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:
2837 (KDOM::lookupGetValue):
2839 * kdom/ecma/Ecma.cpp:
2842 (Ecma::globalObject):
2843 (Ecma::ecmaListenerToObject):
2844 (Ecma::findEventListener):
2845 (Ecma::createEventListener):
2847 (KDOM::getDOMEvent):
2848 (KDOM::getDOMCSSRule):
2849 (KDOM::getDOMCSSValue):
2850 (KDOM::toDOMString):
2851 (KDOM::getDOMString):
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:
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:
3000 (SVGAElement::getInParents):
3001 (SVGAElement::prototype):
3002 (SVGAElement::cache):
3003 (SVGAngle::hasProperty):
3005 (SVGAngle::getInParents):
3006 (SVGAngle::prototype):
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):
3091 (SVGColor::getInParents):
3092 (SVGColor::prototype):
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):
3107 (SVGDocument::getInParents):
3108 (SVGDocument::prototype):
3109 (SVGDocument::cache):
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):
3128 (SVGEvent::getInParents):
3129 (SVGEvent::prototype):
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):
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):
3219 (SVGLength::getInParents):
3220 (SVGLength::prototype):
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):
3247 (SVGMatrix::getInParents):
3248 (SVGMatrix::prototype):
3251 (SVGNumber::getInParents):
3252 (SVGNumber::prototype):
3254 (SVGNumberList::hasProperty):
3255 (SVGNumberList::get):
3256 (SVGNumberList::getInParents):
3257 (SVGNumberList::prototype):
3258 (SVGNumberList::cache):
3259 (SVGPaint::hasProperty):
3261 (SVGPaint::getInParents):
3262 (SVGPaint::prototype):
3264 (SVGPathElement::hasProperty):
3265 (SVGPathElement::get):
3266 (SVGPathElement::getInParents):
3267 (SVGPathElement::prototype):
3268 (SVGPathElement::cache):
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):
3356 (SVGPoint::getInParents):
3357 (SVGPoint::prototype):
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):
3381 (SVGRect::getInParents):
3382 (SVGRect::prototype):
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):
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):
3433 (SVGTests::getInParents):
3434 (SVGTests::prototype):
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):
3886 2005-08-07 Darin Adler <darin@apple.com>
3888 Rubber stamped by Maciej.
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)
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):
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):
4181 (KJS::Image::putValueProperty):
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):
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):
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:]):
4314 2005-08-07 Eric Seidel <eseidel@apple.com>
4318 * kcanvas/KCanvasTreeDebug.cpp:
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
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.
5010 2005-08-07 Anders Carlsson <andersca@mac.com>
5014 * khtml/ecma/kjs_dom.cpp:
5015 * khtml/ecma/kjs_dom.h:
5016 (KJS::DOMNodeList::):
5017 Add Length and Item to DOMNodeList.
5019 * khtml/ecma/kjs_navigator.cpp:
5020 (KJS::Plugins::getValueProperty):
5021 (KJS::MimeTypes::getValueProperty):
5024 2005-08-04 Maciej Stachowiak <mjs@apple.com>
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.
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:
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):
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:
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):
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:
5203 2005-08-06 Eric Seidel <eseidel@apple.com>
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
5228 2005-08-06 Darin Adler <darin@apple.com>
5230 Reviewed by Dave Hyatt.
5232 * khtml/css/css_valueimpl.cpp: (DOM::CSSMutableStyleDeclarationImpl::setChanged): Small tweak.
5234 2005-08-06 Darin Adler <darin@apple.com>
5236 Reviewed by Dave Hyatt.
5238 - fixed crash in one of the W3C DOM tests
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.
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.
5248 2005-08-06 Darin Adler <darin@apple.com>
5250 Reviewed by Dave Hyatt.
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.
5256 * khtml/misc/hashmap.h: Small tweak to insert and added set.
5258 2005-08-06 Darin Adler <darin@apple.com>
5260 Reviewed by Dave Hyatt.
5262 - made a small improvement to how Windows Latin-1 characters are handled in the tokenizer
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
5270 (khtml::HTMLTokenizer::parseText): Ditto.
5271 (khtml::HTMLTokenizer::parseEntity): Ditto.
5272 (khtml::HTMLTokenizer::parseTag): Ditto.
5273 (khtml::HTMLTokenizer::write): Ditto.
5275 2005-08-06 Eric Seidel <eseidel@apple.com>
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
5285 2005-08-05 Adele Peterson <adele@apple.com>
5289 * WebCore.xcodeproj/project.pbxproj: Unchecked 'statics are thread safe' option.
5291 2005-08-05 Geoffrey Garen <ggaren@apple.com>
5293 -added layout test for fix to: <rdar://problem/4161606> JavaScript regular
5294 expressions with certain ranges of Unicode characters cause a crash
5298 * layout-tests/fast/js/regexp-big-unicode-ranges-expected.txt: Added.
5299 * layout-tests/fast/js/regexp-big-unicode-ranges.html: Added.
5301 2005-08-05 David Hyatt <hyatt@apple.com>
5303 Make sure that <wbr> and <nobr> are included as residual style tags.
5307 Test cases added: fast/invalid/wbrlink.html
5309 * khtml/css/html4.css:
5310 * khtml/html/htmlparser.cpp:
5311 (HTMLParser::isResidualStyleTag):
5313 2005-08-05 David Hyatt <hyatt@apple.com>
5315 Fix for bugzilla bug 4289, a regression from the QualifiedName landing. Make sure getNamedItemNS and
5316 removeNamedItemNS are case-insensitive in HTML documents.
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):
5329 2005-08-04 Justin Garcia <justin.garcia@apple.com>
5331 Reviewed by kocienda
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
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.
5342 * manual-tests/korean-input-space.html
5344 * khtml/editing/insert_text_command.cpp:
5345 (khtml::InsertTextCommand::input):
5347 2005-08-03 David Hyatt <hyatt@apple.com>
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.
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).
5358 Test cases added: formmove.html, formmove2.html in fast/forms
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.
5366 (DOM::HTMLFormElementImpl::radioButtonChecked):
5367 A notification that is called when a radio button becomes checked.
5369 (DOM::HTMLFormElementImpl::checkedRadioButtonForGroup):
5370 Returns the current checked radio button for a given named group.
5372 (DOM::HTMLFormElementImpl::removeRadioButtonForGroup):
5373 Clears out the checked radio button for a given named group.
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
5381 (DOM::HTMLGenericFormElementImpl::HTMLGenericFormElementImpl):
5382 Remove the dormant bit from form controls.
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.
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
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.
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.
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).
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.)
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.
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
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
5427 (DOM::ContainerNodeImpl::insertedIntoTree):
5428 (DOM::ContainerNodeImpl::removedFromTree):
5429 The new notifications. The container node can optionally crawl into children invoking their notifications.
5431 (DOM::ContainerNodeImpl::dispatchChildInsertedEvents):
5432 Patched to call insertedIntoTree in the case where the insertion happened on a tree that is not in the
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.
5440 2005-08-04 Darin Adler <darin@apple.com>
5442 Reviewed by John Sullivan.
5444 - fixed Objective-C binding for getOverrideStyle
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.
5450 2005-08-04 Adele Peterson <adele@apple.com>
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.
5457 * khtml/html/htmlparser.cpp: (KHTMLParser::finished): added nil check for current.
5459 2005-08-04 Geoffrey Garen <ggaren@apple.com>
5461 - fixed <rdar://problem/4199495> REGRESSION: Safari Crashes on Window Closing Event
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.
5469 2005-08-03 Vicki Murley <vicki@apple.com>
5471 Reviewed by Beth and Hyatt.
5473 <rdar://problem/4196646> target returns text node when it should return the parent node
5475 Test cases added: manual-tests/mouseevents-on-textnodes.html
5477 * khtml/khtmlview.cpp:
5478 (KHTMLView::dispatchMouseEvent): if the targetNode is a text node, set the
5479 targetNode to the parent node
5481 2005-08-02 Bruce DiBello <bdibello@apple.com>
5483 Reviewed by Geoffrey Garen.
5485 Test cases added: getting and setting button.value
5487 * layout-tests/fast/dom/HTMLButtonElement/value/getset-expected.txt: Added.
5488 * layout-tests/fast/dom/HTMLButtonElement/value/getset.html: Added.
5490 2005-08-01 Geoffrey Garen <ggaren@apple.com>
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
5496 Fix reviewed by darin.
5500 * manual-tests/open-after-close.html: Added.
5501 * manual-tests/resources/open-after-close-popup.html: Added.
5503 2005-08-01 David Hyatt <hyatt@apple.com>
5505 Reviewed by cblu, kocienda, darin
5507 This patch removes the old KWQCheckbox from the tree and enables the new
5508 checkbox handled by the engine.
5510 * ForwardingHeaders/qcheckbox.h: Removed.
5511 Removed the old header for the Qt checkbox class.
5513 * WebCore.xcodeproj/project.pbxproj:
5514 Removed the references to KWQCheckBox from the project.
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.
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
5528 (DOM::HTMLInputElementImpl::click):
5529 Remove the hack for checkboxes now that the new ones are turned on.
5531 (DOM::HTMLInputElementImpl::parseMappedAttribute):
5532 Make the attribute parsing code call the internal setInputType now.
5534 (DOM::HTMLInputElementImpl::createRenderer):
5535 (DOM::HTMLInputElementImpl::attach):
5536 Remove the hack for making the old renderer and let only the new one
5539 (DOM::HTMLInputElementImpl::defaultEventHandler):
5540 Remove the hack for still doing the old event handling now that the
5543 * khtml/html/html_formimpl.h:
5544 Added the setInputType method (see above).
5546 * khtml/rendering/render_form.cpp:
5547 * khtml/rendering/render_form.h:
5548 Removed RenderCheckBox from these files.
5551 Removed an include of qcheckbox.h.
5553 * kwq/KWQCheckBox.h: Removed.
5554 * kwq/KWQCheckBox.mm: Removed.
5555 Removed from the tree.
5560 Deleted the stateChanged signal/slot stuff, since it's no longer
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.
5571 2005-08-01 David Hyatt <hyatt@apple.com>
5573 Fix bugzilla bug 4219, crash because we tried to do the fake paint
5574 when layout was not updated yet.
5576 Also landing accessibility for checkboxes.
5578 Reviewed by darin/mjs (accessibility), kocienda(crash)
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]):
5589 (-[KWQAccObject accessibilityIsIgnored]):
5590 (-[KWQAccObject accessibilityAttributeValue:]):
5591 (-[KWQAccObject accessibilityIsAttributeSettable:]):
5592 * kwq/KWQKHTMLPart.mm:
5593 (KWQKHTMLPart::setDisplaysWithFocusAttributes):
5595 2005-08-01 John Sullivan <sullivan@apple.com>
5597 Reviewed by Beth Dakin.
5599 Test cases added: none, this only affects Safari forms autofill
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.
5607 * kwq/DOMExtensions.h:
5610 add _isTextField. Also added some #imports that make this file more standalone.
5612 (-[DOMHTMLInputElement _isTextField]):
5613 moved this method and added leading underscore.
5615 2005-08-01 Eric Seidel <eseidel@apple.com>
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
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
5641 2005-07-31 Darin Adler <darin@apple.com>
5645 - remove uses of Mac-OS-X-specific MAX macro in non-Mac-OS-X-specific code
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.
5654 2005-07-31 David Hyatt <hyatt@apple.com>
5656 Implement support for checkbox accessibility for VoiceOver.
5660 * kwq/KWQAccObject.mm:
5661 (-[KWQAccObject actionElement]):
5662 (-[KWQAccObject role]):
5663 (-[KWQAccObject roleDescription]):
5664 (-[KWQAccObject value]):
5666 (-[KWQAccObject accessibilityIsIgnored]):
5667 (-[KWQAccObject accessibilityAttributeValue:]):
5668 (-[KWQAccObject accessibilityIsAttributeSettable:]):
5670 2005-07-31 David Hyatt <hyatt@apple.com>
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
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):
5691 2005-07-31 Justin Garcia <justin.garcia@apple.com>
5695 Fixes <http://bugs.webkit.org/show_bug.cgi?id=3359> Crash on hover with certain styles on the text applied
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
5702 * layout-tests/traversal/size-zero-run-expected.txt: Added.
5703 * layout-tests/traversal/size-zero-run.html: Added.
5705 * khtml/rendering/bidi.cpp:
5708 2005-07-31 Eric Seidel <eseidel@apple.com>
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
5728 2005-07-29 David Hyatt <hyatt@apple.com>
5730 This patch makes simulated clicks actually go into active state briefly. Spacebar
5731 on the new checkboxes results in a pressed look.
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):
5747 2005-07-30 Anders Carlsson <andersca@mac.com>
5749 Reviewed and landed by Darin Adler.
5751 - Fixes <http://bugs.webkit.org/show_bug.cgi?id=3893>
5754 * layout-tests/fast/dom/css-dom-read-2.html: Added.
5755 * layout-tests/fast/dom/css-dom-read-2-expected.txt: Added.
5757 * khtml/css/css_computedstyle.cpp:
5758 (DOM::CSSComputedStyleDeclarationImpl::cssText):
5761 (DOM::CSSComputedStyleDeclarationImpl::item):
5762 Return the item name, not its value.
5764 * khtml/css/css_ruleimpl.cpp:
5765 (CSSImportRuleImpl::cssText):
5766 (CSSMediaRuleImpl::cssText):
5767 (CSSStyleRuleImpl::cssText):
5768 * khtml/css/css_ruleimpl.h:
5771 * khtml/css/css_stylesheetimpl.cpp:
5772 (MediaListImpl::mediaText):
5773 Don't put a trailing comma after lists.
5775 2005-07-30 Darin Adler <darin@apple.com>
5777 - rolled back a test that has been failing since we rolled back the <script/> quirk
5779 * layout-tests/fast/tokenizer/script_extra_close-expected.txt: Updated.
5781 2005-07-30 Darin Adler <darin@apple.com>
5783 Reviewed by me, change by Dave Hyatt.
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
5788 * khtml/xml/dom_nodeimpl.cpp: (DOM::NodeImpl::NodeImpl): Initialize m_hovered to false.
5790 2005-07-30 Maciej Stachowiak <mjs@apple.com>
5792 Missing bits of last checkin...
5795 * WebCore.xcodeproj/project.pbxproj:
5797 2005-07-29 Maciej Stachowiak <mjs@apple.com>
5799 Changes by Michael Kahl, reviewed by me.
5801 Test cases added: No tests, this code only affects debugging.
5803 - fixed <rdar://problem/4164112> MASTER: JavaScript debugging support
5805 * kwq/WebCoreScriptDebugger.h: Added.
5806 * kwq/WebCoreScriptDebugger.mm: Added.
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:]):
5827 2005-07-29 Maciej Stachowiak <mjs@apple.com>
5829 Reviewed by hyatt (concept and a few manual parts), large part
5830 done by script and not really reviewed in detail.
5832 - changed how HTML tags and attributes are referred to in the code for better readability.
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):
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:
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):
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):
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:
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):
6635 * khtml/misc/decoder.cpp:
6637 * khtml/misc/hashtable.h:
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):
6732 (+[DOMNode _nodeWithImpl:]):
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:
7131 (KWQKHTMLPart::currentForm):
7132 (KWQKHTMLPart::searchForLabelsBeforeElement):
7133 (KWQKHTMLPart::matchLabelsAgainstElement):
7134 (KWQKHTMLPart::fileWrapperForElement):
7136 (isTextFirstInListItem):
7137 (KWQKHTMLPart::attributedString):
7138 (KWQKHTMLPart::styleForSelectionStart):
7139 (KWQKHTMLPart::setSelectionFromNone):
7140 * kwq/WebCoreBridge.mm:
7141 (inputElementFromDOMElement):
7142 (formElementFromDOMElement):
7143 (-[WebCoreBridge elementAtPoint:]):
7145 2005-07-29 David Harrison <harrison@apple.com>
7147 Test cases added: n/a
7149 Update layout tests for my previous change.
7151 * layout-tests/fast/dom/quadraticCurveTo-expected.txt:
7152 * layout-tests/fast/table/border-collapsing/004-expected.txt:
7154 2005-07-29 David Harrison <harrison@apple.com>
7156 Reviewed by Dave Hyatt (rendering) and Maciej (editing and performance improvements).
7158 Test cases added: Existing tab-related basic editing tests were updated. More complex tests are coming soon.
7160 <rdar://problem/3792529> REGRESSION (Mail): Tabs do not work the way they did in Panther (especially useful in plain text mail)
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.
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:
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):
7216 (Font::floatCharacterWidths):
7217 (Font::checkSelectionPoint):
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):
7274 * kwq/KWQPainter.mm:
7275 (QPainter::drawRect):
7276 (QPainter::drawLine):
7277 (QPainter::drawText):
7278 (QPainter::drawHighlightForText):
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:
7301 2005-07-29 David Hyatt <hyatt@apple.com>
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.
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.
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).
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:
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):
7368 2005-07-29 Justin Garcia <justin.garcia@apple.com>
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
7377 * layout-tests/editing/deleting/delete-4038408-fix-expected.txt: Added.
7378 * layout-tests/editing/deleting/delete-4038408-fix.html: Added.
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:
7387 2005-07-29 Geoffrey Garen <ggaren@apple.com>
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
7392 * manual-tests/write-after-open.html: Added.
7394 2005-07-29 Eric Seidel <eseidel@apple.com>
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.
7403 2005-07-29 Geoffrey Garen <ggaren@apple.com>
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
7415 * manual-tests/resources/write-after-open-popup.html: Added.
7417 * khtml/khtml_part.cpp:
7418 (KHTMLPart::didExplicitOpen): now cancels any pending redirection
7420 2005-07-29 John Sullivan <sullivan@apple.com>
7422 Reviewed by Dave Hyatt.
7424 Test cases added: none, this only affects Safari forms autofill
7426 - WebCore part of <rdar://problem/4187404> Redo form SPI so that it doesn't rely on NSViews
7428 * khtml/html/html_formimpl.cpp:
7429 added a FIXME about a bug I ran into while doing this autofill stuff
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:]):
7439 (-[DOMHTMLInputElement _rectOnScreen]):
7441 (-[DOMHTMLInputElement _replaceCharactersInRange:withString:selectingFromIndex:]):
7443 (-[DOMHTMLInputElement _selectedRange]):
7445 (-[DOMHTMLInputElement _setBackgroundColor:]):
7447 (-[DOMHTMLSelectElement _activateItemAtIndex:]):
7449 (-[DOMHTMLSelectElement _optionLabels]):
7453 moved DOMHTMLInputElement and DOMHTMLSelectElement categories here from Safari
7455 * kwq/WebCoreBridge.h:
7456 * kwq/WebCoreBridge.mm:
7457 removed viewForElement:, which had been added as a temporary measure while I did this conversion.
7459 2005-07-29 Eric Seidel <eseidel@apple.com>
7461 Reviewed by sullivan.
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
7477 2005-07-29 Justin Garcia <justin.garcia@apple.com>
7479 Reviewed by harrison
7481 Backing out my recent change as it causes a layout test failure in Deployment mode
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.
7491 2005-07-28 Eric Seidel <eseidel@apple.com>
7493 Reviewed by darin, eseidel
7494 Submitted by Ben La Monica <ben.lamonica@gmail.com>
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
7501 2005-07-28 Eric Seidel <eseidel@apple.com>
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
7530 2005-07-28 David Hyatt <hyatt@apple.com>
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).
7536 Reviewed by darin and chris
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:
7547 * khtml/xml/dom_nodeimpl.cpp:
7548 (DOM::ContainerNodeImpl::setActive):
7550 (-[KWQButton nextKeyView]):
7551 (-[KWQButton previousKeyView]):
7552 * kwq/KWQKHTMLPart.mm:
7553 (KWQKHTMLPart::setDisplaysWithFocusAttributes):
7555 2005-07-28 David Hyatt <hyatt@apple.com>
7557 Implement support for the :checked, :enabled and :disabled pseudo-classes.
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):
7579 2005-07-28 Beth Dakin <bdakin@apple.com>
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.
7588 Test cases added: (NONE)
7590 * khtml/css/css_valueimpl.cpp:
7591 (DOM::CSSMutableStyleDeclarationImpl::setChanged):
7593 2005-07-28 Chris Blumenberg <cblu@apple.com>
7595 Moved non-AppKit related code from RenderThemeMac to RenderTheme so potentially other RenderTheme subclasses can inherit more behavior.
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):
7611 2005-07-28 David Hyatt <hyatt@apple.com>
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.
7618 Added support for control tinting when the window resigns/becomes
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):
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:]):
7651 2005-07-27 Justin Garcia <justin.garcia@apple.com>
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
7659 * layout-tests/editing/deleting/delete-4038408-fix-expected.txt: Added.
7660 * layout-tests/editing/deleting/delete-4038408-fix.html: Added.
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:
7668 2005-07-27 Geoffrey Garen <ggaren@apple.com>
7670 - added test case for http://bugs.webkit.org/show_bug.cgi?id=4147
7671 Array.toString() and toLocaleString() improvements from KDE KJS
7675 * layout-tests/fast/js/toString-overrides-expected.txt: Added.
7676 * layout-tests/fast/js/toString-overrides.html: Added.
7678 2005-07-27 Beth Dakin <bdakin@apple.com>
7679 Fix submitted by: Andrew Wellington <proton@wiretapped.net>
7680 Reviewed by Beth Dakin.
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
7691 Test cases added: another text-transform test, see below
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.
7701 2005-07-27 Geoffrey Garen <ggaren@apple.com>
7705 * layout-tests/fast/js/date-big-setdate-expected.txt: Added.
7706 * layout-tests/fast/js/date-big-setdate.html: Added.
7708 2005-07-27 David Hyatt <hyatt@apple.com>
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.
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!)
7720 * khtml/html/html_formimpl.cpp:
7721 * khtml/rendering/render_theme_mac.mm:
7723 2005-07-27 Geoffrey Garen <ggaren@apple.com>
7724 -added testcase for http://bugs.webkit.org/show_bug.cgi?id=3759
7725 Date object enhancements
7731 * layout-tests/fast/js/date-preserve-milliseconds-expected.txt: Added.
7732 * layout-tests/fast/js/date-preserve-milliseconds.html: Added.
7734 2005-07-26 Justin Garcia <justin.garcia@apple.com>
7736 Patch by Trey Matteson <trey@usa.net>
7740 Fixed <rdar://problem/4083496> some elements draw selection when printing
7741 Also listed as <http://bugs.webkit.org/show_bug.cgi?id=3992>
7743 Simply added tests to prevent selection drawing when printing.
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):
7754 2005-07-26 Justin Garcia <justin.garcia@apple.com>
7758 Added forward declarations to fix new gcc4 errors
7760 * khtml/ecma/kjs_window.h:
7761 * khtml/xml/dom_elementimpl.h:
7764 2005-07-26 David Hyatt <hyatt@apple.com>
7766 Land current checkbox work. The checkbox can now check/uncheck,
7767 supports looking pressed, and can dynamically enable/disable.
7769 Entire patch reviewed by darin, portions reviewed by
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):
7826 2005-07-26 Eric Seidel <eseidel@apple.com>
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.
7876 2005-07-26 John Sullivan <sullivan@apple.com>
7878 Reviewed by Chris Blumenberg.
7880 Test cases added: none, only affects Safari autofill
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:
7885 * kwq/WebCoreBridge.h:
7886 Rename control:textView:doCommandBySelector: to textField:doCommandBySelector:, and changed
7887 to take DOMHTMLInputElement* rather than NSControl* and NSTextView*
7889 * kwq/KWQTextField.mm:
7890 (-[KWQTextFieldController control:textView:doCommandBySelector:]):
7891 call renamed bridge method, passing DOMElement* instead of NSView*
7893 2005-07-26 John Sullivan <sullivan@apple.com>
7895 Reviewed by Darin Adler.
7897 Test cases added: none, only affects Safari autofill
7899 - big hunk of weaning form-related SPI from NSView; autofill continues to
7900 work (but only on tip of tree Safari)
7902 * kwq/KWQTextArea.mm:
7903 (-[KWQTextArea textDidChange:]):
7904 call renamed bridge method, passing DOMElement* instead of NSView*
7906 * kwq/KWQTextField.mm:
7907 (-[KWQTextFieldController controlTextDidBeginEditing:]):
7908 call renamed bridge method, passing DOMElement* instead of NSView*
7909 (-[KWQTextFieldController controlTextDidEndEditing:]):
7911 (-[KWQTextFieldController controlTextDidChange:]):
7913 (-[KWQTextFieldController control:textShouldBeginEditing:]):
7914 don't call through to bridge form-delegate-related method; I deleted it because it was
7916 (-[KWQTextFieldController control:textShouldEndEditing:]):
7918 (-[KWQTextFieldController textView:shouldHandleEvent:]):
7919 call renamed bridge method, passing DOMElement* instead of NSView*
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*
7925 2005-07-26 Maciej Stachowiak <mjs@apple.com>
7927 - imported much of the w3c DOM test suite:
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)
7934 For now I left out the XHTML versions.
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/*
7941 2005-07-25 Vicki Murley <vicki@apple.com>
7943 Reviewed by Beth Dakin.
7945 - fixed <rdar://problem/4011544> selecting an item from a <select> menu with
7946 the mouse doesn't place the focus on the menu
7949 * manual-tests/focus-select-when-clicked.html: Added.
7951 * kwq/KWQComboBox.mm:
7952 (-[KWQPopUpButton needsPanelToBecomeKey]): override this NSView method to return YES
7954 2005-07-24 Maciej Stachowiak <mjs@apple.com>
7958 - http://bugs.webkit.org/show_bug.cgi?id=4124
7959 (change JavaScript property access to avoid double lookup)
7961 - 10% speedup on JavaScript iBench
7962 - 5% speedup on 24fun BenchJS benchmark
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.
7967 Also miscellaneous code cleanup.
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):
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:
8064 2005-07-25 Justin Garcia <justin.garcia@apple.com>
8068 Backing out a change that made the caret invisible in Mail in certain situations.
8070 * khtml/rendering/render_block.cpp:
8071 (khtml::RenderBlock::paintObject):
8073 2005-07-25 Justin Garcia <justin.garcia@apple.com>
8075 Added a manual test for a recent change to WebKit
8078 * manual-tests/deleteToEndOfLine.html: Added.
8080 2005-07-24 Justin Garcia <justin.garcia@apple.com>
8082 Patch by Anders Carlsson <andersca@mac.com>
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.
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):
8096 (KJS::ImagePattern::createPattern):
8097 * khtml/ecma/kjs_html.h:
8099 2005-07-24 Justin Garcia <justin.garcia@apple.com>
8103 Fixes make clean problem introduced in xcode2.1 transition
8107 2005-07-23 Justin Garcia <justin.garcia@apple.com>
8109 Adding a manual test for <http://bugs.webkit.org/show_bug.cgi?id=3862>
8112 * manual-tests/bidi-visible-control-characters.html: Added.
8114 2005-07-22 David Hyatt <hyatt@apple.com>
8116 Put back in the <script src="foo"/> self-closing tag quirk in HTML. Unfortunately
8117 Dashboard widgets are dependent on this quirk.
8121 * khtml/html/htmltokenizer.cpp:
8122 (khtml::HTMLTokenizer::parseTag):
8124 2005-07-22 John Sullivan <sullivan@apple.com>
8126 Reviewed by Chris Blumenberg.
8128 Test cases added: none, this only affects Safari autocomplete; it doesn't affect any
8131 - some changes in the direction of weaning all the form-related SPI from NSView
8133 * kwq/DOMExtensions.h:
8134 added -[DOMHTMLInputElement isTextField]
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.
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*
8152 2005-07-21 Geoffrey Garen <ggaren@apple.com>
8154 * WebCore.pbproj/project.pbxproj: Removed.
8156 2005-07-21 Geoffrey Garen <ggaren@apple.com>
8158 * WebCore.xcodeproj/.cvsignore: Added.
8160 2005-07-21 Geoffrey Garen <ggaren@apple.com>
8162 * WebCore.xcodeproj/project.pbxproj: Added.
8164 2005-07-21 Geoffrey Garen <ggaren@apple.com>
8168 2005-07-21 Beth Dakin <bdakin@apple.com>
8172 -fix for <rdar://problem/4169069> Also fixes the behavior of generated content
8173 when it is specified within a list element.
8175 Test cases added: (NONE)
8177 * khtml/rendering/render_block.cpp:
8178 (khtml::RenderBlock::setStyle): Added loop to skip over list elements hen updating
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
8186 2005-07-20 Maciej Stachowiak <mjs@apple.com>
8190 - fix handling of special properties of the HTML document object. Now we
8191 completely match IE.
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.
8198 * khtml/ecma/kjs_html.cpp:
8199 (KJS::HTMLDocument::hasOwnProperty): Check for named and doc extra named
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
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:
8243 2005-07-20 John Sullivan <sullivan@apple.com>
8245 Reviewed by Vicki Murley.
8247 - removed some form-related methods that weren't being used anywhere, in preparation
8248 for weaning WebKit's WebFormDelegate protocol from NSView.
8250 Test cases added: none, no behavior change
8252 * kwq/KWQTextField.mm:
8253 * kwq/WebCoreBridge.h:
8254 removed these methods:
8255 -control:didFailToFormatString:errorDescription:
8256 -control:didFailToValidatePartialString:errorDescription:
8257 -control:isValidObject:
8259 2005-07-20 Adele Peterson <adele@apple.com>
8261 Rolling fix for <rdar://problem/4046602> back in.
8263 2005-03-11 David Harrison <harrison@apple.com>
8267 <rdar://problem/4046602> WebCore invokes undefined behavior when the spell checker isn't running
8269 * kwq/KWQKHTMLPart.mm:
8270 (KWQKHTMLPart::advanceToNextMisspelling):
8271 (KWQKHTMLPart::markMisspellings):
8274 2005-07-20 Adele Peterson <adele@apple.com>
8278 - fixed <rdar://problem/4181058> 8C45: Safari repro crash with document.write (DOM::NodeImpl::dispatchEvent)
8281 * manual-tests/textfield-onblur.html: Added.
8283 * kwq/KWQTextField.mm: (-[KWQTextFieldController setHasFocus:]): added nil check for widget, since it can get deleted during an event.
8285 2005-07-20 Maciej Stachowiak <mjs@apple.com>
8287 Patch from Trey Matteson <trey@usa.net>, reviewed by me.
8289 - fixed http://bugs.webkit.org/show_bug.cgi?id=3956
8290 some of WebKit builds with symbols, some doesn't
8292 * WebCore.pbproj/project.pbxproj: Generate symbols even for
8295 2005-07-19 Maciej Stachowiak <mjs@apple.com>
8299 - fixed some mistakes in my previous checkin
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.
8307 2005-07-18 Maciej Stachowiak <mjs@apple.com>
8311 - fix handling of special properties of the Window object. now we
8312 almost completely match Win IE.
8315 * layout-tests/fast/dom/Window/window-special-properties-expected.txt: Added.
8316 * layout-tests/fast/dom/Window/window-special-properties.html: Added.
8318 * khtml/ecma/kjs_html.cpp:
8319 (KJS::HTMLDocument::hasOwnProperty):
8320 (KJS::HTMLDocument::tryGet):
8321 * khtml/ecma/kjs_window.cpp:
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:
8368 2005-07-19 Geoffrey Garen <ggaren@apple.com>
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
8376 * khtml/html/html_formimpl.cpp:
8377 (DOM::HTMLTextAreaElementImpl::defaultValue):
8378 (DOM::HTMLTextAreaElementImpl::attach):
8379 * khtml/html/html_formimpl.h:
8382 * manual-tests/textarea-after-stylesheet-link.html: Added.
8383 Test is manual because the result doesn't show up in DumpRenderTree
8385 2005-07-19 Justin Garcia <justin.garcia@apple.com>
8387 Added a virtual deconstructor to fix gcc4 build warning
8389 * khtml/rendering/render_theme.h:
8390 (khtml::RenderTheme::~RenderTheme):
8392 2005-07-19 David Hyatt <hyatt@apple.com>
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.
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.
8415 (khtml::RenderThemeMac::adjustCheckboxStyle):
8416 (khtml::RenderThemeMac::paintCheckbox):
8418 2005-07-19 David Hyatt <hyatt@apple.com>
8420 Fix performance regressions from attribute QName landing.
8424 * khtml/html/htmltokenizer.cpp:
8425 (khtml::Token::addAttribute):
8426 (khtml::HTMLTokenizer::write):
8428 Make sure attributes have a faster constructor that can avoid the copy of QualifiedNames.
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.
8433 * khtml/rendering/render_block.cpp:
8434 (khtml::RenderBlock::paintObject):
8436 Only call paintCaret if the block is actually editable.
8438 * khtml/xml/dom_atomicstring.h:
8440 * khtml/xml/dom_elementimpl.h:
8441 (DOM::AttributeImpl::AttributeImpl):
8442 (DOM::AttributeImpl::~AttributeImpl):
8443 (DOM::MappedAttributeImpl::MappedAttributeImpl):
8445 Add != comparison operator with a char* to speed up the / check for attribute invalidity.
8447 2005-07-19 Vicki Murley <vicki@apple.com>
8451 - fixed <rdar://problem/3471901> support scrollIntoView method for DOM elements (3474)
8454 * manual-tests/scrollIntoView-horizontal.html: Added.
8455 * manual-tests/scrollIntoView-vertical.html: Added.
8457 * khtml/xml/dom_elementimpl.h:
8458 * khtml/xml/dom_elementimpl.cpp:
8459 (ElementImpl::scrollIntoView): Added.
8460 * khtml/ecma/kjs_dom.h:
8462 (KJS::DOMElement::):
8463 * khtml/ecma/kjs_dom.cpp:
8464 (KJS::DOMElementProtoFunc::tryCall): glue for new scrollIntoView function
8466 2005-07-19 Geoffrey Garen <ggaren@apple.com>
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
8474 * khtml/rendering/bidi.cpp:
8475 (khtml::RenderBlock::bidiReorderLine):
8477 Lots of new test case results because previous results had inappropriately
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:
8620 2005-07-19 Darin Adler <darin@apple.com>
8622 Reviewed by Geoff Garen.
8624 Test cases added: None. Structural change only.
8626 - eliminated try wrappers for get/put/call since we don't use C++ exceptions any more
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.
8634 The rest of the changes are just renames and removal of a couple stray tryCall wrappers.
8639 putValue -> putValueProperty
8640 DOMObjectLookupGet -> lookupGet
8641 DOMObjectLookupGetValue -> lookupGetValue
8642 DOMObjectLookupPut -> lookupPut
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):
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):
8800 2005-07-19 Darin Adler <darin@apple.com>
8802 Reviewed by Dave Hyatt.
8804 - fixed broken bi-di layout tests: the "dir" attribute was broken
8806 * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::parseMappedAttribute):
8807 Fix one case that said "direction" where it should say "dir".
8809 2005-07-19 Darin Adler <darin@apple.com>
8811 - updated results of two tests that reflect properly-preserved namespace prefixes for attributes
8813 * layout-tests/fast/dom/dom-parse-serialize-display-expected.txt:
8814 * layout-tests/fast/dom/dom-parse-serialize-expected.txt:
8816 2005-07-18 David Hyatt <hyatt@apple.com>
8818 Add support for -khtml-appearance in preparation for
8819 the addition of RenderTheme to the tree for form controls.
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.
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:
8835 (StyleCSS3NonInheritedData::operator==):
8836 (RenderStyle::diff):
8837 * khtml/rendering/render_style.h:
8839 (khtml::RenderStyle::appearance):
8840 (khtml::RenderStyle::setAppearance):
8841 (khtml::RenderStyle::initialAppearance):
8843 2005-07-18 David Harrison <harrison@apple.com>
8847 Test cases added: None. Existing tests were failing.
8849 Fix crash caused by my changes in revision 1.6 of khtml/editing/delete_selection_command.cpp.
8851 * khtml/editing/delete_selection_command.cpp:
8852 (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
8853 Remove workaround that was added for missing typing style.
8855 (khtml::DeleteSelectionCommand::doApply):
8856 Make sure to call saveTypingStyleState() before handleSpecialCaseBRDelete().
8858 2005-07-18 David Hyatt <hyatt@apple.com>
8860 Rename HTMLNames -> HTMLTags. Purely mechanical (done in XCode)
8861 so no review needed.
8863 * khtml/css/cssstyleselector.cpp:
8864 (khtml::CSSStyleSelector::adjustRenderStyle):
8865 (khtml::CSSStyleSelector::checkOneSelector):
8866 * khtml/dom/css_stylesheet.cpp:
8867 (LinkStyle::operator = ):
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):
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:
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):
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):
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:
9193 (KHTMLPart::selectionComputedStyle):
9194 * khtml/khtmlview.cpp:
9195 (KHTMLView::layout):
9197 * khtml/misc/decoder.cpp:
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):
9265 (+[DOMNode _nodeWithImpl:]):
9267 * kwq/KWQAccObject.mm:
9268 (-[KWQAccObject role]):
9269 (-[KWQAccObject title]):
9270 (-[KWQAccObject accessibilityIsIgnored]):
9271 * kwq/KWQKHTMLPart.cpp:
9272 (KWQKHTMLPart::isFrameSet):
9273 * kwq/KWQKHTMLPart.mm:
9275 (KWQKHTMLPart::currentForm):
9276 (KWQKHTMLPart::searchForLabelsBeforeElement):
9278 (isTextFirstInListItem):
9279 (KWQKHTMLPart::attributedString):
9280 (KWQKHTMLPart::styleForSelectionStart):
9281 (KWQKHTMLPart::setSelectionFromNone):
9282 * kwq/WebCoreBridge.mm:
9283 (inputElementFromDOMElement):
9284 (formElementFromDOMElement):
9285 (-[WebCoreBridge elementAtPoint:]):
9287 2005-07-18 David Hyatt <hyatt@apple.com>
9289 Fix for bugzilla bug 3927. Convert attributes to use QualifiedName.
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:
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):
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:
10034 * khtml/xml/dom_textimpl.cpp:
10035 * khtml/xml/xml_tokenizer.cpp:
10036 (khtml::XMLTokenizer::startElement):
10037 (khtml::XMLTokenizer::insertErrorMessageBlock):
10038 (khtml::XMLTokenizer::executeScripts):
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:]):
10517 2005-07-18 David Harrison <harrison@apple.com>
10519 Reviewed by Justin.
10521 <rdar://problem/4065343> Mail: Deleting a line sometimes makes the insertion point jump to the top of the message
10523 Test cases added: delete-br-011.html
10525 * khtml/editing/delete_selection_command.cpp:
10526 (khtml::DeleteSelectionCommand::handleSpecialCaseBRDelete):
10527 Make sure m_endingSelection is usable.
10529 (khtml::DeleteSelectionCommand::doApply):
10530 Skip general delete related code when just doing handleSpecialCaseBRDelete().
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.
10536 2005-07-15 Adele Peterson <adele@apple.com>
10538 Written by Anders Carlsson <andersca@mac.com>
10539 Reviewed by Dave Hyatt.
10541 - Fixes <http://bugs.webkit.org/show_bug.cgi?id=3653>
10544 layout-tests/fast/dom/createDocumentType.html: Added
10545 layout-tests/fast/dom/createDocumentType-expected.txt: Added
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.
10552 * khtml/xml/dom_docimpl.cpp: (DOMImplementationImpl::createDocumentType):
10553 Pass nullDocumentPtr as the document type's document.
10555 2005-07-15 Adele Peterson <adele@apple.com>
10557 Written by Anders Carlsson <andersca@mac.com>
10558 Reviewed by Maciej Stachowiak.
10560 - Fixes <http://bugs.webkit.org/show_bug.cgi?id=3808>
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.
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.
10572 2005-07-15 Adele Peterson <adele@apple.com>
10574 Updated layout tests for formatting changes from change for
10575 http://bugs.webkit.org/show_bug.cgi?id=3601
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:
10584 2005-07-15 Kevin Decker <kdecker@apple.com>
10588 Fixed: http://bugs.webkit.org/show_bug.cgi?id=4009
10589 Test cases added: none, doesn't affect layout
10591 * khtml/khtml_part.cpp:
10592 (KHTMLPart::scheduleLocationChange): Corrected an earlier mistake of testing an always non-zero constant.
10594 2005-07-14 John Sullivan <sullivan@apple.com>
10596 Reviewed by Ken Kocienda (setFocusNode) and Dave Hyatt (everything).
10598 - WebCore part of fix for:
10599 <rdar://problem/4181227> webpages incorrectly use standard instead of secondary highlighting in certain cases
10601 Test cases added: none, doesn't affect layout
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.
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.
10615 * kwq/WebCoreBridge.h:
10616 New bridge method -formControlIsResigningFirstResponder:, used to inform WebKit that a form
10617 control is losing first-responder-hood.
10619 * kwq/KWQButton.mm:
10620 (-[KWQButton resignFirstResponder]):
10621 call formControlIsResigningFirstResponder:
10623 * kwq/KWQComboBox.mm:
10624 (-[KWQPopUpButton resignFirstResponder]):
10627 * kwq/KWQListBox.mm:
10628 (-[KWQTableView resignFirstResponder]):
10631 * kwq/KWQSlider.mm:
10632 (-[KWQSlider resignFirstResponder]):
10635 * kwq/KWQTextArea.mm:
10636 (-[KWQTextAreaTextView resignFirstResponder]):
10639 * kwq/KWQTextField.mm:
10640 (-[KWQTextFieldController setHasFocus:]):
10643 2005-07-14 John Sullivan <sullivan@apple.com>
10645 Reviewed by Ken Kocienda.
10647 - fixed <rdar://problem/4181227> webpages incorrectly use standard instead of secondary highlighting in certain cases
10649 Test cases added: none, doesn't affect layout
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.
10658 2005-07-12 Justin Garcia <justin.garcia@apple.com>
10662 - Fixes <rdar://problem/4124326> [RTL] Lines in messages with Hebrew text and numbers are truncated by Tiger Mail
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.
10669 * layout-tests/fast/text/international/bidi-innertext-expected.txt: Added.
10670 * layout-tests/fast/text/international/bidi-innertext.html: Added.
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):
10690 2005-07-14 Justin Garcia <justin.garcia@apple.com>
10692 Patch by Anders Carlsson and justin
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)
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.
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.
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:
10717 2005-07-14 Vicki Murley <vicki@apple.com>
10719 Reviewed by hyatt, patch from Carsten Guenther.
10721 - fix for http://bugs.webkit.org/show_bug.cgi?id=3855
10724 * manual-tests/bugzilla-3855.html: Added.
10726 * kwq/KWQKHTMLPart.mm:
10727 (KWQKHTMLPart::searchForLabelsAboveCell): check for the existence of the cell renderer
10729 2005-07-14 Vicki Murley <vicki@apple.com>
10731 - added manual tests for <rdar://problem/4172380> [GENENTECH] window.opener not available
10732 when child opened via target="_new"
10735 * manual-tests/target_new-1.html: Added.
10736 * manual-tests/target_new.html: Added.
10738 2005-07-14 Geoffrey Garen <ggaren@apple.com>
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.
10743 - patch by Anders Carlsson <andersca@mac.com>.
10745 Reviewed by mjs + darin.
10748 * layout-tests/fast/dom/ids/duplicate-ids-expected.txt: Added.
10749 * layout-tests/fast/dom/ids/duplicate-ids.html: Added.
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.
10757 (DocumentImpl::addElementById):
10758 (DocumentImpl::removeElementById):
10759 Increment and decrement the id count accordingly.
10761 * khtml/xml/dom_docimpl.h:
10762 Add QDict for id counts. Make element QDict mutable.
10764 2005-07-14 Geoffrey Garen <ggaren@apple.com>
10766 -landed layout test for http://bugs.webkit.org/show_bug.cgi?id=3412
10767 Object.prototype is missing toLocaleString
10772 * layout-tests/fast/js/object-prototype-toLocaleString-expected.txt: Added.
10773 * layout-tests/fast/js/object-prototype-toLocaleString.html: Added.
10775 2005-07-14 Vicki Murley <vicki@apple.com>
10777 Reviewed by Kocienda.
10779 - WebCore part of fix for <rdar://problem/4172380> [GENENTECH] window.opener
10780 not available when child opened via target="_new"
10782 Add a setOpener function to the WebCore bridge, and call this function when opening
10783 new windows through Web Kit.
10785 * kwq/WebCoreBridge.h:
10786 * kwq/WebCoreBridge.mm:
10788 2005-07-12 Maciej Stachowiak <mjs@apple.com>
10792 - convert some more things to use the new hashtable
10794 * khtml/ecma/kjs_binding.cpp:
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
10811 - fix a bug with remove of a nonexistent key - it used to trash
10814 * khtml/misc/hashtable.h:
10817 2005-07-13 Justin Garcia <justin.garcia@apple.com>
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
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):
10847 * kwq/KWQSignal.mm:
10848 (KWQSignal::callWithData):
10849 (KWQSignal::callWithResponse):
10852 (KWQSlot::callWithData):
10853 (KWQSlot::callWithResponse):
10854 * kwq/KWQWidget.mm:
10857 2005-07-13 Justin Garcia <justin.garcia@apple.com>
10861 Rolling in changes necessary to build with newer versions of gcc 4.0
10864 (+[DOMCSSPrimitiveValue _valueWithImpl:]):
10866 * kwq/DOMInternal.h:
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:
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:]):
10907 2005-07-13 John Sullivan <sullivan@apple.com>
10909 Reviewed by Maciej Stachowiak.
10911 - cleaned up Find-related experimental code that I checked in a while back
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.
10920 * kwq/WebCoreBridge.h:
10921 * kwq/WebCoreBridge.mm:
10922 (-[WebCoreBridge searchFor:direction:caseSensitive:wrap:]):
10923 remove findInSelection flag
10925 2005-07-13 Adele Peterson <adele@apple.com>
10929 Fixed <rdar://problem/4170963> Focusing a field unnecessarily horizontally scrolls
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.
10935 Test cases added: None. This test case involves tabbing to form controls and scrolling.
10937 * kwq/KWQNSViewExtras.m: (-[NSClipView _KWQ_scrollRectToVisible:inView:forceCentering:]):
10939 2005-07-12 Kevin Decker <kdecker@apple.com>
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
10947 Test cases added: None; This fixes a race condition that is not reproducible locally.
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.
10952 2005-07-12 Beth Dakin <bdakin@apple.com>
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.
10960 Test cases added: (NONE)
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:
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
10973 * layout-tests/fast/css/MarqueeLayoutTest-expected.txt:
10974 * layout-tests/fast/css/MarqueeLayoutTest.html: added vertical marquees to test.
10976 2005-07-12 Geoffrey Garen <ggaren@apple.com>
10978 Test cases modified:
10979 * layout-tests/fast/frames/iframe-name-and-id.html:
10980 now tests dynamically creating frames[x].name
10982 2005-07-12 Geoffrey Garen <ggaren@apple.com>
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?)
10988 Test is manual because results only reflect visually -
10989 the layout is the same either way.
10992 * manual-tests/bidi-parens.html: Added.
10994 2005-07-12 Ken Kocienda <kocienda@apple.com>
10998 Test cases added: (NONE)
11000 * kwq/KWQTextCodec.mm: Fix build breakage. /me is a real genius.
11002 2005-07-12 Ken Kocienda <kocienda@apple.com>
11004 Reviewed by Chris Blumenberg
11006 Test cases added: (NONE)
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.
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.
11024 2005-07-12 Eric Seidel <eseidel@apple.com>
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
11033 2005-07-11 Eric Seidel <eseidel@apple.com>
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
11045 2005-07-11 Geoffrey Garen <ggaren@apple.com>
11047 -fixed rdar://problem/4170960
11048 http://bugs.webkit.org/show_bug.cgi?id=3952
11049 iFrame name and id information incorrectly returned
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.
11058 * khtml/html/html_baseimpl.cpp:
11059 (HTMLFrameElementImpl::attach): removed misleading comment
11060 (HTMLIFrameElementImpl::attach): copied FrameElementImpl behavior
11061 for initializing m_name
11063 2005-07-11 Ken Kocienda <kocienda@apple.com>
11065 Reviewed by Richard
11067 Test cases added: (NONE)
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.
11085 2005-07-11 Ken Kocienda <kocienda@apple.com>
11089 Test cases added: (NONE)
11091 * WebCore.pbproj/project.pbxproj: Fix project file.
11093 2005-07-11 Ken Kocienda <kocienda@apple.com>
11097 Test cases added: (NONE)
11099 * ChangeLog: Fixed two typos I found while reading the ChangeLog.
11101 2005-07-10 Maciej Stachowiak <mjs@apple.com>
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.
11112 2005-07-10 Eric Seidel <eseidel@apple.com>
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
11126 2005-07-10 Eric Seidel <eseidel@apple.com>
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
11135 2005-07-09 Timothy Hatcher <timothy@colloquy.info>
11137 Reviewed and landed by Maciej.
11139 Fixed a build error with GCC4 and the use of _M_type.
11141 * khtml/misc/hashtraits.h:
11142 Test for GCC4 and use the new __value enum from _M_type.
11144 2005-07-09 David Hyatt <hyatt@apple.com>
11146 Make sure to keep eLastEntry at the end of the list, since it is used for the dynamic portion of the
11151 2005-07-09 Maciej Stachowiak <mjs@apple.com>
11153 Reviewed by Eric Seidel.
11155 - removed unused files
11157 * kdom/impl/NodeKeeper.cc: Removed.
11158 * kdom/impl/NodeKeeper.h: Removed.
11159 * WebCore.pbproj/project.pbxproj: Remove from +SVG build.
11161 2005-07-09 David Hyatt <hyatt@apple.com>
11163 Fix for bugzilla bug 3405, replace NodeImpl::Id with a new class,
11164 QualifiedName, to represent tag names (for DOM elements and CSS
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):
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):
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):
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):
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):
11555 (HTMLElementImpl::inEitherTagList):
11556 (HTMLElementImpl::inInlineTagList):
11557 (HTMLElementImpl::inBlockTagList):
11558 (HTMLElementImpl::checkDTD):
11559 * khtml/html/html_elementimpl.h:
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):
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:
11900 (KHTMLPart::selectionComputedStyle):
11901 * khtml/khtmlview.cpp:
11902 (KHTMLView::layout):
11904 * khtml/misc/decoder.cpp:
11906 * khtml/misc/hashmap.h:
11908 (khtml::::isEmpty):
11912 * khtml/misc/hashset.h:
11914 (khtml::::isEmpty):
11917 (khtml::::contains):
11918 * khtml/misc/hashtable.h:
11919 (khtml::HashTableIterator::skipEmptyBuckets):
11922 (khtml::::contains):
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:
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):
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):
12074 (-[DOMNode setPrefix:]):
12075 (+[DOMNode _nodeWithImpl:]):
12076 (-[DOMElement tagName]):
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.
12087 (QFont::isFixedPitch):
12090 (QFont::operator=):
12091 (QFont::determinePitch):
12092 (QFont::operator==):
12093 * kwq/KWQKHTMLPart.cpp:
12094 (KWQKHTMLPart::isFrameSet):
12095 * kwq/KWQKHTMLPart.mm:
12097 (KWQKHTMLPart::currentForm):
12098 (KWQKHTMLPart::searchForLabelsAboveCell):
12099 (KWQKHTMLPart::searchForLabelsBeforeElement):
12101 (isTextFirstInListItem):
12102 (KWQKHTMLPart::attributedString):
12103 (KWQKHTMLPart::styleForSelectionStart):
12104 (KWQKHTMLPart::setSelectionFromNone):
12105 * kwq/KWQRenderTreeDebug.cpp:
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.
12119 2005-07-08 Eric Seidel <eseidel@apple.com>
12121 Reviewed by mjs/hyatt (just approved the changelog).
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.
13287 2005-07-08 Eric Seidel <eseidel@apple.com>
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
13297 2005-07-08 Geoffrey Garen <ggaren@apple.com>
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
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.
13309 2005-07-08 Beth Dakin <bdakin@apple.com>
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.
13316 Test cases added: fast/css/MarqueeLayoutTest.html
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.
13326 2005-07-08 Vicki Murley <vicki@apple.com>
13328 Fix from Carsten Guenther, reviewed by Maciej
13330 - update test cases for JavaScriptCore fix
13331 http://bugs.webkit.org/show_bug.cgi?id=3644
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:
13340 2005-07-08 Vicki Murley <vicki@apple.com>
13342 - fixed by Trey Matteson <trey@usa.net>, reviewed by Maciej.
13344 Test cases added: (NONE)
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
13349 Broken by security fix for 4005575: Arbitrary file disclosure vulnerability due to ability to load local html from remote content
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.
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.
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.
13364 2005-07-07 Maciej Stachowiak <mjs@apple.com>
13366 - oops, accidentally committed stat dumping enabled
13368 * khtml/misc/hashtable.h:
13370 2005-07-07 Maciej Stachowiak <mjs@apple.com>
13374 - sped up DOMStringImpl * equality comparisons.
13376 * khtml/misc/hashfunctions.h:
13378 * khtml/misc/hashtable.h:
13379 * khtml/xml/dom_atomicstring.cpp:
13382 2005-07-07 Adele Peterson <adele@apple.com>
13384 change by Maciej, reviewed by me.
13386 fix for <rdar://problem/4168001> Cambridge 8C45: Safari crashes in Webcore (DOM::NodeImpl::removeAllEventListeners() + 32)
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.
13393 * khtml/xml/dom_docimpl.cpp: (DocumentImpl::removeAllDisconnectedNodeEventListeners):
13395 2005-07-07 Geoffrey Garen <ggaren@apple.com>
13397 Reviewed by sullivan.
13399 Test cases added: (NONE)
13401 * kwq/KWQDef.h: added #include <cmath> to fix build failure
13402 introduced by last checkin
13404 2005-07-07 Eric Seidel <eseidel@apple.com>
13409 (-[DOMRGBColor _color]): changed to nsColor()
13410 * kwq/KWQAccObject.mm:
13411 (AXAttributeStringSetStyle): changed to nsColor()
13412 * kwq/KWQColor.h: Added defs for KDOM.
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
13449 2005-07-07 Eric Seidel <eseidel@apple.com>
13453 * kwq/KWQPtrDict.h: Additions for KDOM
13454 (QPtrDictIterator::operator()): essentially post-increment.
13455 http://bugs.webkit.org/show_bug.cgi?id=3849
13457 2005-07-07 Eric Seidel <eseidel@apple.com>
13461 * khtml/css/parser.y: removed #define YYMAXDEPTH 0
13462 Bison 2.x compatibility
13463 http://bugs.webkit.org/show_bug.cgi?id=3882
13465 2005-07-07 Eric Seidel <eseidel@apple.com>
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
13477 2005-07-06 Eric Seidel <eseidel@apple.com>
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
13486 2005-07-06 Eric Seidel <eseidel@apple.com>
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
13507 2005-07-06 Maciej Stachowiak <mjs@apple.com>
13511 - fixed size() and contains() methods on HashSet (they would not compile before)
13513 * khtml/misc/hashset.h:
13515 * khtml/misc/hashtable.h:
13516 (khtml::::contains):
13518 2005-07-06 Eric Seidel <eseidel@apple.com>
13522 * ForwardingHeaders/kjs/ustring.h: Added.
13523 Used by kdom/Helper.cc
13524 http://bugs.webkit.org/show_bug.cgi?id=3859
13526 2005-07-06 Geoffrey Garen <ggaren@apple.com>
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
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:
13548 2005-07-06 Maciej Stachowiak <mjs@apple.com>
13550 Even yet still more gcc4 build fixes.
13552 * khtml/misc/hashset.h:
13553 (khtml::convertAdapter):
13556 2005-07-06 Maciej Stachowiak <mjs@apple.com>
13558 More ggc-4-only build fixage.
13560 * khtml/misc/hashtraits.h:
13562 2005-07-06 Maciej Stachowiak <mjs@apple.com>
13564 Fix additional gcc-4-only build breakage.
13566 * khtml/misc/pointerhash.h:
13567 (khtml::PointerHashConstIteratorAdapter::operator*):
13569 2005-07-05 Maciej Stachowiak <mjs@apple.com>
13571 Forgot to commit a file. Fix for build breakage.
13573 * ForwardingHeaders/misc/pointerhash.h: Added.
13575 2005-07-05 Maciej Stachowiak <mjs@apple.com>
13577 - remove stat dumping (accidentally left enabled in last patch)
13579 Unreviewed since this was a mistake in the last checkin.
13581 * khtml/misc/hashtable.h:
13583 2005-07-04 Maciej Stachowiak <mjs@apple.com>
13587 Numerous hash code improvements:
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
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
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):
13637 (khtml::::capacity):
13638 (khtml::::isEmpty):
13642 (khtml::::contains):
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):
13671 (khtml::::reinsert):
13673 (khtml::::contains):
13675 (khtml::::allocateTable):
13679 (khtml::::HashTable):
13681 (khtml::::operator):
13682 (khtml::::checkConsistency):
13683 (khtml::::checkConsistencyExceptSize):
13684 * khtml/misc/hashtraits.h: Added.
13685 (khtml::HashTraits::emptyValue):
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!=):
13707 2005-07-05 Geoffrey Garen <ggaren@apple.com>
13709 Rolled in patch by opendarwin.org@mitzpettel.com
13711 -fixes http://bugs.webkit.org/show_bug.cgi?id=3733
13712 Incorrect bidi layout of ETs, ANs, and ENs in some contexts
13716 * khtml/rendering/bidi.cpp:
13717 (khtml::appendRun):
13718 (khtml::RenderBlock::bidiReorderLine):
13719 (khtml::RenderBlock::layoutInlineChildren):
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
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:
13751 2005-07-05 Adele Peterson <adele@apple.com>
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.
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:
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):
13796 (Font::floatWidth):
13797 (Font::floatCharacterWidths):
13798 (Font::checkSelectionPoint):
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:
13875 2005-07-05 Beth Dakin <bdakin@apple.com>
13877 Adding colspan test for HTMLTableElement and bdo test for HTMLElement.
13881 Test cases added: (NONE)
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.
13889 2005-07-05 Geoffrey Garen <ggaren@apple.com>
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)
13897 2005-07-05 Geoffrey Garen <ggaren@apple.com>
13899 -fixed failed build introduced by fix to
13900 http://bugs.webkit.org/show_bug.cgi?id=3826
13902 Reviewed by sullivan.
13904 * kwq/KWQDef.h: changed 64 bit typedef to match def in sys/types.h
13906 2005-07-05 Eric Seidel <eseidel@apple.com>
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
13919 2005-07-05 Eric Seidel <eseidel@apple.com>
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.
13929 http://bugs.webkit.org/show_bug.cgi?id=3822
13931 2005-07-05 Eric Seidel <eseidel@apple.com>
13935 * kwq/KWQDef.h: 64bit types added
13937 http://bugs.webkit.org/show_bug.cgi?id=3826
13939 2005-07-05 Eric Seidel <eseidel@apple.com>
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
13949 2005-07-05 Eric Seidel <eseidel@apple.com>
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.
13964 * kwq/KWQWMatrix.mm: Added.
13965 (QWMatrix::QWMatrix): All are standard Qt functions.
13966 (QWMatrix::setMatrix):
13968 (QWMatrix::isIdentity):
13971 (QWMatrix::rotate):
13972 (QWMatrix::translate):
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
13984 2005-07-05 Eric Seidel <eseidel@apple.com>
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
13995 2005-07-04 Maciej Stachowiak <mjs@apple.com
13997 Expected results for layout tests from last patch.
13999 * layout-tests/fast/js/eval-var-decl-expected.txt: Added.
14000 * layout-tests/fast/js/has-own-property-expected.txt: Added.
14002 2005-07-03 Maciej Stachowiak <mjs@apple.com>
14004 Original patch from Mark Rowe <opendarwin.org@bdash.net.nz>, reviewed by me.
14005 Fixes to patch by me, reviewed by John Sullivan.
14007 - fixed http://bugs.webkit.org/show_bug.cgi?id=3293
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.
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:
14032 2005-07-03 Eric Seidel <eseidel@apple.com>
14038 (QTimer::QTimer): added parent pointer (and warning)
14039 http://bugs.webkit.org/show_bug.cgi?id=3825
14041 2005-07-03 Eric Seidel <eseidel@apple.com>
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
14051 2005-07-03 Eric Seidel <eseidel@apple.com>
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
14064 2005-07-03 Eric Seidel <eseidel@apple.com>
14068 * kwq/KWQFontMetrics.h:
14069 * kwq/KWQFontMetrics.mm:
14070 (QFontMetrics::boundingRect): added boundingRect(QChar)
14071 http://bugs.webkit.org/show_bug.cgi?id=3827
14073 2005-07-03 Eric Seidel <eseidel@apple.com>
14077 * kwq/KWQListImpl.h:
14078 * kwq/KWQListImpl.mm:
14079 (KWQListImpl::findRef): Added to support
14080 KDOM::NodeImpl::compareDocumentPosition(NodeImpl *other)
14082 2005-07-03 Eric Seidel <eseidel@apple.com>
14086 * ForwardingHeaders/qintdict.h: maps to KWQIntDict.h
14087 * kwq/KWQIntDict.h: copy of KWQPtrDict.h replacing T * with int.
14089 2005-07-03 Eric Seidel <eseidel@apple.com>
14091 * kwq/KWQPair.h: added newline, per mjs's request.
14093 2005-07-03 Eric Seidel <eseidel@apple.com>
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
14102 2005-07-01 Beth Dakin <bdakin@apple.com>
14104 Adding createCaption test for HTMLTableElement.
14106 Reviewed by Adele (sort of).
14110 * layout-tests/fast/dom/HTMLTableElement/createCaption-expected.txt: Added.
14111 * layout-tests/fast/dom/HTMLTableElement/createCaption.html: Added.
14113 2005-07-01 Geoffrey Garen <ggaren@apple.com>
14115 Moving dom tests around to conform to new directory structure
14116 specified in today's meeting.
14118 Reviewed by justing.
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.
14151 2005-07-01 Geoffrey Garen <ggaren@apple.com>
14153 -landed patch by Eric Seidel <eric@webkit.org>
14155 -for http://bugs.webkit.org/show_bug.cgi?id=3657
14156 GroundWork: Moving some functions from khtml->jsc following kjs TOT
14158 - no layout test necessary yet - only groundwork
14162 * ForwardingHeaders/qintdict.h:
14163 * khtml/ecma/kjs_binding.h:
14165 2005-07-01 Geoffrey Garen <ggaren@apple.com>
14167 -landed patch by Carsten Guenther <cguenther@gmail.com>
14168 http://bugs.webkit.org/show_bug.cgi?id=3477
14170 -corrects errors in date layout test
14174 Test cases modified:
14175 * layout-tests/fast/js/date-parse-test.html:
14177 2005-07-01 Eric Seidel <eseidel@apple.com>
14183 (QSize::operator CGSize): adding CGSize conversion support
14184 http://bugs.webkit.org/show_bug.cgi?id=3669
14186 2005-06-30 Bruce DiBello <bdibello@apple.com>
14188 Reviewed by Geoff Garen.
14190 Test cases added: getting and setting div.align
14192 * layout-tests/fast/dom/HTMLDivElement/align/getset-expected.txt: Added.
14193 * layout-tests/fast/dom/HTMLDivElement/align/getset.html: Added.
14195 2005-06-29 Anders Carlsson <andersca@mac.com>
14197 Reviewed and landed by Darin Adler.
14199 - Fix <http://bugs.webkit.org/show_bug.cgi?id=3274>
14200 document() not supported
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.
14208 * khtml/xsl/xslt_processorimpl.cpp:
14209 (DOM::parseErrorFunc):
14210 Stub to prevent errors from getting written to the console.
14212 (DOM::stylesheetLoadFunc):
14213 Fetch and parse documents.
14215 (DOM::XSLTProcessorImpl::transformDocument):
14216 Use the processor as the global variable instead of the
14219 * khtml/xsl/xslt_processorimpl.h:
14220 (DOM::XSLTProcessorImpl::stylesheet):
14221 (DOM::XSLTProcessorImpl::sourceDocument):
14222 Add accessors for source document and stylesheet.
14224 2005-06-29 Maciej Stachowiak <mjs@apple.com>
14226 Unreviewed - fixing build breakage with gcc 4.
14228 * khtml/misc/hashtable.h: Don't use a typedef when declaring a class friend.
14230 2005-06-29 David Harrison <harrison@apple.com>
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
14237 * khtml/editing/insert_text_command.cpp:
14238 (khtml::InsertTextCommand::prepareForTextInsertion):
14239 (khtml::InsertTextCommand::insertTab):
14240 * khtml/editing/markup.cpp:
14241 (khtml::createParagraphContentsFromString):
14243 2005-06-29 David Harrison <harrison@apple.com>
14245 Reviewed by Dave Hyatt (rendering) and Maciej (editing).
14247 Test cases added: Coming soon. Will include with next round of changes for this bug.
14249 This is the first checkin for...
14251 <rdar://problem/3792529> REGRESSION (Mail): Tabs do not work the way they did in Panther (especially useful in plain text mail)
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.
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.
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:
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):
14308 (Font::floatWidth):
14309 (Font::floatCharacterWidths):
14310 (Font::checkSelectionPoint):
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:
14389 2005-06-29 Geoffrey Garen <ggaren@apple.com>
14391 Contributed by Francisco Tolmasky <tolmasky@gmail.com>
14393 -test cases for fix to http://bugs.webkit.org/show_bug.cgi?id=3667
14394 Core JavaScript 1.5 Reference:Objects:Array:forEach
14396 See JavaScriptCore Changelog for details on the patch.
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.
14408 2005-06-29 Bruce DiBello <bdibello@apple.com>
14410 Reviewed by Geoff Garen
14412 Test cases added: added expected results for previous check in
14414 * layout-tests/fast/dom/HTMLDocument/url/getset-expected.txt: Added.
14416 2005-06-29 Geoffrey Garen <ggaren@apple.com>
14418 DOM compatibility tests for HTMLDocument::writeln
14420 Reviewed by justing.
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.
14429 2005-06-29 Bruce DiBello <bdibello@apple.com>
14431 Reviewed by Geoff Garen.
14433 Test cases added: added DOM test for document.URL
14435 * layout-tests/fast/dom/HTMLDocument/url/getset.html: Added.
14437 2005-06-29 Geoffrey Garen <ggaren@apple.com>
14439 DOM compatibility tests for HTMLDocument::write
14441 Reviewed by justing.
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.
14449 2005-06-29 Geoffrey Garen <ggaren@apple.com>
14451 DOM compatibility tests for HTMLDocument::title
14453 Reviewed by justing.
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.
14461 2005-06-28 Maciej Stachowiak <mjs@apple.com>
14465 Added iterator support to new hashtable class, the HashSet API is
14466 now essentially complete.
14468 Added support for consistency check mode.
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
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
14509 2005-06-29 Geoffrey Garen <ggaren@apple.com>
14511 -added test case for fix to http://bugs.webkit.org/show_bug.cgi?id=3743
14512 Incorrect error message given for certain calls
14514 See JavaScriptCore Changelog for details about the patch.
14519 * layout-tests/fast/js/toString-stack-overflow-expected.txt: Added.
14520 * layout-tests/fast/js/toString-stack-overflow.html: Added.
14522 2005-06-29 Justin Garcia <justin.garcia@apple.com>
14524 - Fixes <http://bugs.webkit.org/show_bug.cgi?id=3714>
14525 HTMLLabelElement's form property isn't implemented
14527 Patch by Anders Carlsson <andersca@mac.com>
14532 * layout-tests/fast/dom/HTMLLabelElement/properties/form-expected.txt: Added.
14533 * layout-tests/fast/dom/HTMLLabelElement/properties/form.html: Added.
14535 * khtml/html/html_formimpl.cpp:
14536 (DOM::HTMLLabelElementImpl::form):
14537 Traverse upwards looking for a form element.
14539 2005-06-29 Geoffrey Garen <ggaren@apple.com>
14541 Patch by Joost de Valk <webkit@joostdevalk.nl>
14543 - http://bugs.webkit.org/show_bug.cgi?id=3732
14544 Testcase for accesskeys that will run with run-webkit-tests.
14549 * layout-tests/fast/forms/access-key-expected.txt: Added.
14550 * layout-tests/fast/forms/access-key.html: Added.
14552 2005-06-29 Justin Garcia <justin.garcia@apple.com>
14554 Patch by Anders Carlsson <andersca@mac.com>
14556 - Fixes <http://bugs.webkit.org/show_bug.cgi?id=3715>
14557 An HTMLObjectElement's form property was always null.
14562 * layout-tests/fast/dom/htmlobject-form-expected.txt: Added.
14563 * layout-tests/fast/dom/htmlobject-form.html: Added.
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.
14570 2005-06-29 Geoffrey Garen <ggaren@apple.com>
14572 Patch by Antoine Quint <ml@graougraou.com>
14574 -fixes http://bugs.webkit.org/show_bug.cgi?id=3648
14575 quadraticCurveTo() method in <canvas> APIs JS bindings does not exist
14580 * layout-tests/fast/dom/quadraticCurveTo-expected.txt: Added.
14581 * layout-tests/fast/dom/quadraticCurveTo.xml: Added.
14583 * khtml/ecma/kjs_html.cpp:
14585 2005-06-29 Geoffrey Garen <ggaren@apple.com>
14587 Patch by Hanspeter Schaub <Hanspeterschaub@mac.com>
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
14596 * layout-tests/fast/css/list-outline-expected.txt: Added.
14597 * layout-tests/fast/css/list-outline.html: Added.
14599 * khtml/rendering/render_line.cpp:
14600 (khtml::InlineFlowBox::paint):
14602 2005-06-28 Vicki Murley <vicki@apple.com>
14604 Reviewed by Maciej.
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.
14610 * khtml/khtml_part.cpp:
14611 (KHTMLPart::changeLocation): remove code that sets the reload flag
14613 2005-06-28 Justin Garcia <justin.garcia@apple.com>
14615 Patch by Kevin Ballard <kevin@sb.org>
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.
14624 * layout-tests/fast/forms/cursor-position-expected.txt: Added.
14625 * layout-tests/fast/forms/cursor-position.html: Added.
14627 * kwq/KWQTextArea.mm:
14628 (-[KWQTextArea getCursorPositionAsIndex:inParagraph:]):
14629 (RangeOfParagraph):
14630 (-[KWQTextArea setCursorPositionToIndex:inParagraph:]):
14632 2005-06-28 Justin Garcia <justin.garcia@apple.com>
14634 Patch by Alexey Proskuryakov <ap@nypop.com>
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.
14642 Test cases added: None required
14644 * khtml/misc/decoder.cpp:
14645 (Decoder::setEncoding):
14647 2005-06-28 David Harrison <harrison@apple.com>
14649 Reviewed by Chris Blumenberg.
14651 Test cases added: (NONE)
14653 (continued) <rdar://problem/4140688> assertion failure double-clicking text to select
14654 Fixed my checkin from yesterday.
14656 * khtml/rendering/render_text.cpp:
14657 (InlineTextBox::paintMarkedTextBackground):
14658 (InlineTextBox::positionForOffset):
14659 Changed tabs to spaces.
14661 (RenderText::positionForCoordinates):
14662 Make sure affinity is downstream when in mid-line.
14663 Changed tabs to spaces.
14665 (RenderText::caretRect):
14666 (RenderText::cacheWidths):
14667 (RenderText::trimmedMinMaxWidth):
14668 (RenderText::minXPos):
14669 (RenderText::width):
14670 (RenderText::caretMaxOffset):
14671 Changed tabs to spaces.
14673 * layout-tests/editing/style/create-block-for-style-004-expected.txt:
14674 Expected ending selection affinity is downstream.
14676 2005-06-27 Maciej Stachowiak <mjs@apple.com>
14678 Remove accidentally committed code that breaks the build. Oops!
14680 * khtml/xml/dom_atomicstring.cpp:
14681 (DOM::AtomicString::expand):
14682 (DOM::AtomicString::shrink):
14684 2005-06-26 Maciej Stachowiak <mjs@apple.com>
14688 - replaced all our hash functions with the state of the art in hashing
14689 - ~1% speedup on cvs-base
14691 No test cases added, perf effects only.
14693 * khtml/xml/dom_atomicstring.cpp:
14694 (DOM::AtomicStringStatisticsExitLogger::~AtomicStringStatisticsExitLogger):
14695 Improved stats gathering to track collisions in more detail and count reinserts
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.
14710 2005-06-27 David Harrison <harrison@apple.com>
14714 Test cases added: None because this relies on mouse clicking.
14716 <rdar://problem/4140688> assertion failure double-clicking text to select
14718 * khtml/rendering/render_text.cpp:
14719 (RenderText::positionForCoordinates):
14720 Use setAffinityUsingLinePosition.
14722 2005-06-25 Darin Adler <darin@apple.com>
14724 - updated a layout test so that it doesn't depend on a remote resource via http
14726 * layout-tests/fast/backgrounds/001.html: Change image URL to be relative.
14727 * layout-tests/fast/backgrounds/resources/bg_position_larger.gif: Added.
14729 2005-06-24 Darin Adler <darin@apple.com>
14731 Changes by Mitz Pettel.
14735 * layout-tests/fast/text/international/bidi-explicit-embedding-expected.txt: Added.
14736 * layout-tests/fast/text/international/bidi-explicit-embedding.html: Added.
14738 - fixed <http://bugs.webkit.org/show_bug.cgi?id=3599>
14739 Incorrect layout of explicit embedding levels
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).
14746 2005-06-24 Darin Adler <darin@apple.com>
14748 Changes by Mitz Pettel.
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.
14755 - fixed <http://bugs.webkit.org/show_bug.cgi?id=3693>
14756 Bug_72578 in KHTML: bidi algorithm misbehaves with CS after AN
14758 * khtml/rendering/bidi.cpp: (khtml::RenderBlock::bidiReorderLine): Rolled in the
14759 patch from the KDE tree.
14761 2005-06-24 Justin Garcia <justin.garcia@apple.com>
14763 - <http://bugs.webkit.org/show_bug.cgi?id=3673>
14764 Adds QBuffer::setBuffer(QByteArray) support to KWQBuffer, and adds a QBuffer(QByteArray) constructor.
14768 Test cases added: Non required
14771 (QBuffer::QBuffer):
14772 * kwq/KWQBuffer.mm:
14773 (QBuffer::setBuffer):
14775 2005-06-24 Justin Garcia <justin.garcia@apple.com>
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
14782 Test cases added: None required
14789 (QRect::bottomLeft):
14790 (QRect::normalize):
14791 (QRect::operator CGRect):
14796 2005-06-24 Darin Adler <darin@apple.com>
14798 Reviewed by Justin Garcia.
14800 - fixed <rdar://problem/4151619> Safari changes "\" characters to "/" in the query part of links that start with "?"
14803 * layout-tests/fast/dom/anchor-backslash-expected.txt: Added.
14804 * layout-tests/fast/dom/anchor-backslash.html: Added.
14806 * kwq/KWQKURL.mm: (substituteBackslashes): Fix error where we'd ignore
14807 "?" and "#" characters if they were the first character in the string.
14809 2005-06-23 Darin Adler <darin@apple.com>
14811 * khtml/html/html_formimpl.cpp: (DOM::HTMLTextAreaElementImpl::setValue):
14812 Took out an unneeded type cast (meant to do that before committing).
14814 2005-06-23 Kevin Ballard <kevin@sb.org>
14816 Reviewed and landed by Darin Adler.
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.
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.
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:]):
14893 2005-06-23 Justin Garcia <justin.garcia@apple.com>
14895 Patch by Eric Seidel <eric@webkit.org>
14897 Adds QTextIStream, QTextOStream to KWQ
14901 Test cases added: None required
14903 * kwq/KWQTextStream.h:
14904 (QTextIStream::QTextIStream):
14905 (QTextOStream::QTextOStream):
14907 2005-06-23 Justin Garcia <justin.garcia@apple.com>
14909 Patch by Eric Seidel <eric@webkit.org>
14911 This patch contains several small additions to KWQ
14915 Test cases added: None required
14917 * kwq/KWQApplication.h:
14918 (QApplication::palette):
14919 * kwq/KWQDateTime.h:
14922 (QDict::operator[]):
14923 (QDictIterator::operator*):
14925 (kdbgstream::operator<<):
14926 * kwq/KWQMemArray.h:
14927 (QMemArray::duplicate):
14929 2005-06-23 David Harrison <harrison@apple.com>
14931 Test cases added: None needed for this debug-only utility code.
14933 - Make showTree() const.
14934 - Add showTree() for InlineBox.
14935 - Add showTree() for RenderObject.
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.
14945 * khtml/rendering/render_line.cpp:
14946 (khtml::InlineBox::showTree):
14947 * khtml/rendering/render_line.h:
14948 Add showTree() for InlineBox.
14950 * khtml/rendering/render_object.cpp:
14951 (RenderObject::showTree):
14952 * khtml/rendering/render_object.h:
14953 Add showTree() for RenderObject.
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.
14963 2005-06-23 Vicki Murley <vicki@apple.com>
14965 - added template to be used when writing manual tests
14967 * manual-tests/template.html: Added.
14969 2005-06-22 Darin Adler <darin@apple.com>
14971 - added forwarding headers as needed for Eric Seidel's KDOM work
14972 see <http://bugs.webkit.org/show_bug.cgi?id=3655>
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.
14980 2005-06-22 Darin Adler <darin@apple.com>
14985 * layout-tests/fast/css/apple-prefix-expected.txt: Added.
14986 * layout-tests/fast/css/apple-prefix.html: Added.
14988 - fixed <rdar://problem/4141650> REGRESSION: Safari RSS slider broken with TOT WebCore
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.
14999 2005-06-22 Anders Carlsson <andersca@mac.com>
15001 Reviewed and landed by Darin Adler.
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
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
15014 * khtml/dom/html_head.cpp:
15015 (HTMLTitleElement::text):
15016 (HTMLTitleElement::setText):
15017 Call HTMLTitleElementImpl::text() and ::setText().
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
15027 (HTMLTitleElementImpl::text):
15030 (HTMLTitleElementImpl::setText):
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.
15043 2005-06-22 Darin Adler <darin@apple.com>
15045 Changes by Mitz Pettel.
15048 - fixed <http://bugs.webkit.org/show_bug.cgi?id=3633>
15049 Layout order of bidi level runs is incorrect
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.
15055 * khtml/rendering/bidi.cpp: (khtml::RenderBlock::bidiReorderLine): Fixed mistake
15056 where we'd advance too far after reversing a run.
15058 2005-06-22 Darin Adler <darin@apple.com>
15060 - added test case for JavaScriptCore fix
15062 * layout-tests/fast/js/string-replace-2-expected.txt: Added.
15063 * layout-tests/fast/js/string-replace-2.html: Added.
15065 2005-06-22 Darin Adler <darin@apple.com>
15067 Reviewed by John Sullivan.
15070 * layout-tests/fast/dom/css-set-property-exception-expected.txt: Added.
15071 * layout-tests/fast/dom/css-set-property-exception.html: Added.
15073 - fixed <http://bugs.webkit.org/show_bug.cgi?id=3616>
15074 RSS search field, Dashboard widgets failing due to CSS exception
15076 * khtml/ecma/kjs_css.cpp: (KJS::DOMCSSStyleDeclaration::tryPut):
15077 Ignore exceptions when setting properties.
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).
15083 2005-06-22 Darin Adler <darin@apple.com>
15085 Change proposed by Eric Seidel.
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 ${}).
15091 2005-06-21 Maciej Stachowiak <mjs@apple.com>
15093 Patch from KevinBallard <kevin@sb.org>, reviewed by me.
15095 - fix build for Xcode 2.1, use ${} for INPUT_FILE_BASE to fix build with Xcode 2.1
15097 * WebCore.pbproj/project.pbxproj:
15099 2005-06-21 Justin Garcia <justin.garcia@apple.com>
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.
15107 In replacement, during insertion, some special case code was being called inappropriately.
15109 Reviewed by Harrison
15111 Test cases added: None, requires manual interaction
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.
15120 2005-06-21 Darin Adler <darin@apple.com>
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
15126 * khtml/css/parser_wrapper.cpp: Removed.
15128 2005-06-21 Adele Peterson <adele@apple.com>
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}
15134 * layout-tests/fast/js/string_replace-expected.txt: Added.
15135 * layout-tests/fast/js/string_replace.html: Added.
15137 2005-06-21 Geoffrey Garen <ggaren@apple.com>
15139 Patch contributed by Niels Leenheer <niels.leenheer@gmail.com>
15141 - fixed http://bugs.webkit.org/show_bug.cgi?id=3370
15142 (Safari can't handle strange frame dimensions)
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:
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.
15165 2005-06-21 Geoffrey Garen <ggaren@apple.com>
15167 - fixed <rdar://problem/4155049> javascript function named as "opener" doesn't get called because of window.opener property
15169 Test cases only, fix is in JavaScriptCore
15175 * layout-tests/fast/js/global-opener-function-expected.txt: Added.
15176 * layout-tests/fast/js/global-opener-function.html: Added.
15178 2005-06-21 David Harrison <harrison@apple.com>
15180 Reviewed by Justin.
15182 - show class and style attributes for element nodes
15183 - nil check the node being showTree'd
15184 - add Position::showTree()
15186 Test cases added: None needed for this debug-only utility code.
15188 * khtml/editing/selection.cpp:
15189 (khtml::Selection::showTree):
15190 - nil check the node
15191 * khtml/editing/visible_position.cpp:
15192 (khtml::VisiblePosition::previousVisiblePosition):
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()
15205 2005-06-20 Maciej Stachowiak <mjs@apple.com>
15207 Reviewed by Darin(first pass) and Hyatt.
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
15216 Test cases only, fix is in JavaScriptCore
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.
15224 2005-06-20 Maciej Stachowiak <mjs@apple.com>
15226 Patch from Mark Rowe <opendarwin.org@bdash.net.nz>, reviewed by me.
15228 - fixed http://bugs.webkit.org/attachment.cgi?id=2483
15231 * layout-tests/fast/js/hasOwnProperty-expected.txt: Added.
15232 * layout-tests/fast/js/hasOwnProperty.html: Added.
15233 - also fixed two mozilla JS tests
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:
15253 2005-06-20 Geoffrey Garen <ggaren@apple.com>
15255 Changes by Darin. Layout tests by me. Reviewed by me.
15257 Fixed <rdar://problem/4152454> crash in KJS::ExprStatementNode::execute(KJS::ExecState*) in World Clock widget with TOT.
15260 * layout-tests/fast/dom/gc-4-expected.txt: Added.
15261 * layout-tests/fast/dom/gc-4.html: Added.
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).
15267 2005-06-19 Darin Adler <darin@apple.com>
15269 Changes by both Anders Carlsson and me.
15270 Reviewed by Maciej and me.
15273 * layout-tests/fast/forms/element-order-expected.txt: Added.
15274 * layout-tests/fast/forms/element-order.html: Added.
15276 - fixed <http://bugs.webkit.org/show_bug.cgi?id=3503>
15277 form.elements[] not order-preserving when elements added via DOM
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.
15287 2005-06-19 Darin Adler <darin@apple.com>
15289 Changes by Anders Carlsson and me.
15290 Reviewed by Maciej and me.
15292 Test cases added: None. Could not figure out how to automate a test without
15293 making enhancements to DumpRenderTree.
15295 - fixed <rdar://problem/4141141> Onselect event is ignored with TEXTAREA and INPUT
15296 also <http://bugs.webkit.org/show_bug.cgi?id=3256>
15298 * khtml/html/html_formimpl.cpp: (DOM::HTMLTextAreaElementImpl::select):
15299 Remove unneeded explicit call to onSelect() here -- now handled by the renderer.
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.
15310 * kwq/KWQLineEdit.h: Added declarations as needed below.
15311 * kwq/KWQLineEdit.mm:
15312 (QLineEdit::QLineEdit): Added selectionChanged signal.
15313 (QLineEdit::hasSelectedText): Added.
15316 (KWQSlot::KWQSlot): Make selectionChanged work on any form element.
15317 (KWQSlot::call): ditto.
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.
15329 * kwq/KWQTextEdit.h: Added declarations as needed below.
15330 * kwq/KWQTextEdit.mm:
15331 (QTextEdit::QTextEdit): Added selectionChanged signal.
15332 (QTextEdit::hasSelectedText): Added.
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
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
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.
15360 2005-06-18 Darin Adler <darin@apple.com>
15362 Changes by Anders Carlsson.
15366 * layout-tests/fast/dom/css-dom-read-expected.txt: Added.
15367 * layout-tests/fast/dom/css-dom-read.html: Added.
15369 - fixed <http://bugs.webkit.org/show_bug.cgi?id=3534>
15370 CSSMutableStyleDeclarationImpl::item is unimplemented
15372 * khtml/css/css_valueimpl.cpp: (DOM::CSSMutableStyleDeclarationImpl::item):
15373 Get the style from the m_values list.
15375 2005-06-18 Darin Adler <darin@apple.com>
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)
15380 * khtml/html/html_formimpl.cpp:
15381 (DOM::HTMLLabelElementImpl::formElement): Don't include this when iterating.
15382 (DOM::HTMLLegendElementImpl::formElement): Ditto.
15384 2005-06-18 Darin Adler <darin@apple.com>
15386 - removing the applet tests, since they are causing other tests to fail
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.
15395 2005-06-18 Darin Adler <darin@apple.com>
15397 Changes by Anders Carlsson.
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.
15407 - fixed <http://bugs.webkit.org/show_bug.cgi?id=3526>
15408 improve support for dynamically added <script> elements
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.
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.
15431 2005-06-18 Darin Adler <darin@apple.com>
15433 * khtml/html/html_formimpl.cpp: (DOM::HTMLLabelElementImpl::formElement):
15434 Oops, checked in a version that didn't even compile! Fixed now.
15436 2005-06-18 Darin Adler <darin@apple.com>
15438 Changes by Anders Carlsson.
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.
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
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.)
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.
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.
15467 2005-06-18 Darin Adler <darin@apple.com>
15469 Change by Niels Leenheer (also done by Dave Hyatt on stage at WWDC).
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.
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.
15481 2005-06-18 Darin Adler <darin@apple.com>
15483 Change by Niels Leenheer (also done by Dave Hyatt on stage at WWDC).
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.
15494 - fixed <http://bugs.webkit.org/show_bug.cgi?id=3246>
15495 HSPACE and VSPACE attributes are ignored in APPLET element
15497 * khtml/html/html_objectimpl.cpp:
15498 (DOM::HTMLAppletElementImpl::mapToEntry): Add cases for ATTR_VSPACE and ATTR_HSPACE.
15499 (DOM::HTMLAppletElementImpl::parseMappedAttribute): Ditto.
15501 2005-06-18 Darin Adler <darin@apple.com>
15503 - removed some unused code from one of the KWQ headers
15505 * kwq/KWQKHTMLPartBrowserExtension.h:
15507 - added a layout test for a bug that's already fixed
15509 * layout-tests/fast/forms/element-by-name-expected.txt: Added.
15510 * layout-tests/fast/forms/element-by-name.html: Added.
15512 2005-06-17 Vicki Murley <vicki@apple.com>
15514 Reviewed by Maciej.
15516 Test cases added: None, since this test requires manual interaction.
15518 - fixed <rdar://problem/4086793> Selects wrapped by Span or Label elements
15519 do not resize when options are added via javascript
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.
15527 2005-06-17 Justin Garcia <justin.garcia@apple.com>
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).
15534 Reviewed by hyatt and john
15537 * layout-tests/fast/table/cellindex.html: Added. Illustrates the fix.
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:
15543 2005-06-17 Adele Peterson <adele@apple.com>
15545 Reviewed by Maciej.
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
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.
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.
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.
15565 2005-06-17 Justin Garcia <justin.garcia@apple.com>
15567 Fixed fprintf problem in gcc4.0
15571 Test cases added: See previous ChangeLog entry
15573 * khtml/xml/dom_nodeimpl.cpp:
15574 (NodeImpl::showTreeAndMark): Fixed fprintf warning in gcc4
15576 2005-06-17 Geoffrey Garen <ggaren@apple.com>
15578 Patch contributed by Anders Carlsson<andersca@mac.com>.
15580 Fixes: http://bugs.webkit.org/show_bug.cgi?id=3408
15584 Test cases added: None. Test requires manual interaction.
15585 Manual test available at: http://bugs.webkit.org/attachment.cgi?id=2207
15587 * khtml/html/html_formimpl.cpp: Eliminated HTMLButtonElementImpl::click. HTMLButtonElementImpl now inherits HTMLElementImpl::click.
15588 * khtml/html/html_formimpl.h: Ditto.
15590 2005-06-17 Darin Adler <darin@apple.com>
15594 - fixed http://bugs.webkit.org/show_bug.cgi?id=3556
15595 black diamond question mark shown for invalid UTF-8 sequences
15598 * layout-tests/fast/encoding/invalid-UTF-8-expected.txt: Added.
15599 * layout-tests/fast/encoding/invalid-UTF-8.html: Added.
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.
15607 2005-06-16 Justin Garcia <justin.garcia@apple.com>
15609 Added a few debugging methods to highlight Selections, VisiblePositions and Nodes in the DOM tree.
15611 Reviewed by Dave Harrison
15613 Test cases added: None, changes are only to aid debugging
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:
15627 2005-06-14 David Hyatt <hyatt@apple.com>
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.
15634 Test cases added: (None, does not affect build yet)
15636 * WebCore.pbproj/project.pbxproj:
15637 * khtml/xml/dom_qname.h,.cpp
15638 * khtml/html/htmlnames.h,.cpp
15640 2005-06-14 David Hyatt <hyatt@apple.com>
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.
15647 Reviewed by sullivan
15649 Test cases added: fast/text/whitespace/030.html
15651 * khtml/html/htmltokenizer.cpp:
15652 (khtml::HTMLTokenizer::parseTag):
15653 (khtml::HTMLTokenizer::write):
15655 2005-06-13 Vicki Murley <vicki@apple.com>
15659 No test cases added since the steps to reproduce require use of showModalDialog.
15661 - fix for <rdar://problem/4145910> parameters not working in showModalDialog
15662 test page (dialogWidth, dialogHeight, etc.)
15664 * khtml/ecma/kjs_window.cpp:
15665 (KJS::parseFeatures): add a check for colon character in the feature string
15667 2005-06-13 Maciej Stachowiak <mjs@apple.com>
15669 Reviewed by Chris Blumenberg and Adele.
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
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.
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).
15686 2005-06-13 Maciej Stachowiak <mjs@apple.com>
15688 Patch from Andrew Wellington <proton@wiretapped.net>
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)
15694 No test cases addded since the repro steps require use of tabbed browsing.
15696 * khtml/khtml_part.cpp:
15697 (KHTMLPart::handleFallbackContent): check for nil
15699 2005-06-12 Darin Adler <darin@apple.com>
15701 - added expected test results for new tests
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.
15707 2005-06-11 Maciej Stachowiak <mjs@apple.com>
15709 Patch from Nicholas Shanks <contact@nickshanks.com>, reviewed by me.
15711 - Distinguish between pseudo-elements and pseudo-classes in CSS parsing.
15712 http://bugs.webkit.org/show_bug.cgi?id=3375
15714 Merge of svn log -v -r 399829 svn://anonsvn.kde.org/home/kde
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).
15720 * layout-tests/fast/selectors/159.html: Added.
15721 * layout-tests/fast/selectors/177a.html: Added.
15722 * layout-tests/fast/selectors/177b.html: Added.
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:
15736 2005-06-11 Maciej Stachowiak <mjs@apple.com>
15738 Patch from Timothy Hatcher <timothy@colloquy.info>, reviewed by me.
15741 * layout-tests/fast/dom/children-nodes-expected.txt: Added.
15742 * layout-tests/fast/dom/children-nodes.html: Added.
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.
15749 2005-06-11 Maciej Stachowiak <mjs@apple.com>
15751 Added missing expected results from the background image patch.
15753 * layout-tests/fast/backgrounds/001-expected.txt: Added.
15755 2005-06-10 David Hyatt <hyatt@apple.com>
15757 Fix for bugzilla bug 3335, add support for the CSS3 indirect adjacent sibling selector. Patch merge
15758 from KHTML tree by Nick Shanks.
15762 Test cases added: fast/selectors/046.html
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.
15774 2005-06-10 David Hyatt <hyatt@apple.com>
15776 Fix for 3237, background image repeats when it shouldn't. The Radar bug is 4005553. Patch from
15779 Reviewed by darin and hyatt
15781 Test cases added: fast/backgrounds/001.html
15783 * khtml/rendering/render_box.cpp:
15784 (RenderBox::paintBackgroundExtended):
15785 * layout-tests/fast/backgrounds/001.html: Added.
15787 2005-06-10 David Hyatt <hyatt@apple.com>
15789 Merge Allan Jensen's fix for 3236.
15793 Test cases added: None, test case already added for the bug.
15795 * khtml/css/cssstyleselector.cpp:
15796 (khtml::CSSStyleSelector::applyProperty):
15797 * khtml/rendering/render_style.cpp:
15798 (RenderStyle::setContent):
15800 2005-06-10 Darin Adler <darin@apple.com>
15802 Change by Mark Rowe <opendarwin.org@bdash.net.nz>.
15803 Refined and reviewed by me.
15805 - test for exception file/line number fix
15806 http://bugs.webkit.org/show_bug.cgi?id=3327
15808 * layout-tests/fast/js/exception-linenums-expected.txt: Added.
15809 * layout-tests/fast/js/exception-linenums.html: Added.
15811 2005-06-09 David Hyatt <hyatt@apple.com>
15813 Fix from Carston Guenther for bugzilla bug 3236.
15815 attr(x) should work even if x is not present on the element.
15817 This is Radar bug #3584466
15821 Test cases added: fast/css-generated-content/013.html
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.
15828 2005-06-09 Darin Adler <darin@apple.com>
15830 Tested by Mark Rowe.
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.
15835 2005-06-08 Anders Carlsson <andersca@mac.com>
15837 Reviewed and committed by Maciej.
15839 - fixed http://bugs.webkit.org/show_bug.cgi?id=3337
15840 (Support the Mozilla DOMParser and XMLSerializer objects)
15842 <rdar://problem/3533735> implement Mozilla "DOMParser" extension for use with XMLHTTPRequest
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.
15850 * khtml/ecma/domparser.h:
15851 * khtml/ecma/domparser.cpp:
15852 Add files implementing the DOMParser object.
15854 * khtml/ecma/kjs_window.h:
15855 * khtml/ecma/kjs_window.cpp:
15856 Expose DOMParser object.
15858 2005-06-07 David Hyatt <hyatt@apple.com>
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.
15865 Test cases added: (Not testable with a layout test)
15867 * kwq/KWQSlider.mm:
15868 (QSlider::setMinValue):
15869 (QSlider::setMaxValue):
15871 2005-06-07 Adele Peterson <adele@apple.com>
15873 Change by Darin, reviewed by Maciej and me.
15875 - fixed <rdar://problem/4139800> REGRESSION: Safari crashes at bebe.com
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.
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.
15893 2005-06-07 Darin Adler <darin@apple.com>
15895 Change by Toby Peterson <toby@opendarwin.org>.
15898 * WebCore.pbproj/project.pbxproj: Allow bison 2.0, which generates the file
15899 with a different name.
15901 2005-06-07 Darin Adler <darin@apple.com>
15903 Change by Mark Rowe <opendarwin.org@bdash.net.nz>.
15906 - fixed the WebCore half of build failure with spaces in the path
15907 http://bugs.webkit.org/show_bug.cgi?id=3291
15909 * WebCore.pbproj/project.pbxproj: Add quotes to make LIBRARY_SEARCH_PATHS work even when
15910 the path has a space in it.
15912 2005-06-07 David Hyatt <hyatt@apple.com>
15914 Patch from Mark Rowe to fix a minor memory leak in WebCoreSettings.
15918 * kwq/WebCoreSettings.mm:
15919 (-[WebCoreSettings dealloc]):
15921 2005-06-04 Darin Adler <darin@apple.com>
15923 Reviewed by Maciej.
15925 - import icu headers into project
15927 * WebCore.pbproj/project.pbxproj: Added icu directory to header search path.
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.
15950 2005-06-01 Darin Adler <darin@apple.com>
15952 Reviewed by John Sullivan.
15953 No layout tests added because showModalDialog won't work in DumpRenderTree at the moment.
15955 - WebKit part of fix for <rdar://problem/3166090> add IE JavaScript extension window.showModalDialog
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.
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.
15974 * khtml/khtml_part.h: Added new changeLocation member function. Made setOpener, openedByJS, and
15975 setOpenedByJS public.
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.
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.
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.
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.
16003 * kwq/KWQKPartsBrowserExtension.h:
16004 (KParts::URLArgs::URLArgs): Initialize m_lockHistory to false.
16005 (KParts::WindowArgs::WindowArgs): Add a dialog boolean.
16007 * kwq/WebCoreBridge.h: Declared canRunModal, canRunModalNow, createModalDialogWithURL, and runModal methods.
16009 2005-06-01 Adele Peterson <adele@apple.com>
16011 fix for <rdar://problem/4135705> REGRESSION (412-TOT) crash in TV Tracker widget - KJS::XMLHttpRequest::removeFromRequestsByDocument()
16015 Synchronous loads don't get added to our requestsByDocument dictionary, so we should try to remove the request in this case.
16017 * khtml/ecma/xmlhttprequest.cpp: (KJS::XMLHttpRequest::removeFromRequestsByDocument): added checks to make sure request exists before trying to remove it.
16019 2005-05-30 Darin Adler <darin@apple.com>
16021 Reviewed by John (fix for Radar bug) and Vicki (all the rest).
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
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.
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.
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.
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.
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.
16054 2005-05-30 Darin Adler <darin@apple.com>
16057 No test case added because our layout test system doesn't allow us to do inline input.
16059 - fixed <rdar://problem/4094066> REGRESSION (1.2.5-1.3): unconfirmed inline input is ignored in <textarea>, lost when form is submitted
16061 * kwq/KWQTextArea.mm: (-[KWQTextArea _createTextView]): Call setWantsNotificationForMarkedText:YES.
16063 2005-05-30 Maciej Stachowiak <mjs@apple.com>
16067 - fixed <rdar://problem/4125222> Dashboard heap size grows over time (leak caused by JavaScript DOM node wrappers?)
16069 - changed per-document DOMObject caching to work with DOMNodes, since that is all it was used for anyway.
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).
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.
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.
16106 2005-05-30 Darin Adler <darin@apple.com>
16109 Could not figure out how to make an <object> fallback, so for now, no layout test.
16111 - fixed <rdar://problem/4134124> REGRESSION (tip of tree): crash in QWidget::getView handling onunload event (yahoo.com)
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.
16116 2005-05-27 Adele Peterson <adele@apple.com>
16118 Change by Darin, reviewed by me.
16120 fix for <rdar://problem/4067761> 8A425: reload stock widget over and over and crash in XMLHttpRequest::changeState
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
16133 2005-05-27 Adele Peterson <adele@apple.com>
16135 Reviewed by me, done by Darin.
16137 - Darin fixed a regression I found from Darin's recent DOM change that broke GMail
16139 * khtml/ecma/kjs_window.cpp:
16140 (KJS::Window::get): Added nil check for document.
16141 (KJS::Window::hasProperty): Ditto.
16143 Test cases added: None (Darin should write one).
16145 2005-05-27 Adele Peterson <adele@apple.com>
16149 fix for <rdar://problem/4121747> Cannot log into Cingular.com account page (load event delivered while still processing incoming data)
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.
16159 * layout-tests/fast/loader/loadInProgress.html: Added
16160 * layout-tests/fast/loader/loadInProgress-expected.html: Added
16162 2005-05-27 Darin Adler <darin@apple.com>
16166 - fixed <rdar://problem/4125212> form submission delayed until you are on the next page on XML/XSL page (security hole)
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.
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.
16178 2005-05-27 John Sullivan <sullivan@apple.com>
16182 * WebCore-tests.exp:
16183 took out symbol __ZNK5QChar7isPunctEv; it was obsolete and causing build trouble
16185 2005-05-27 Darin Adler <darin@apple.com>
16189 - remove HAVE_ICU_LIBRARY ifdefs
16191 * khtml/rendering/render_text.cpp: Just use ICU all the time; no ifdef.
16192 * kwq/KWQKURL.mm: Ditto.
16194 2005-05-26 Darin Adler <darin@apple.com>
16196 Reviewed by me, patch by Mitz Pettel.
16198 - fixed <rdar://problem/4106907> bidi algorithm bug fixed for KHTML should be fixed in WebCore too
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>.
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.
16207 2005-05-26 Darin Adler <darin@apple.com>
16209 Reviewed by Richard and Dave Harrison.
16210 No new test cases needed for this change.
16212 - eliminate WebCoreUnicode and use ICU directly instead
16213 - fixed compiling with gcc 4.0 (was broken for Development only)
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.
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.
16235 * kwq/KWQChar.mm: Removed.
16236 * kwq/WebCoreUnicode.cpp: Removed.
16237 * kwq/WebCoreUnicode.h: Removed.
16239 * WebCore.pbproj/project.pbxproj: Removed files.
16241 2005-05-26 David Harrison <harrison@apple.com>
16245 <rdar://problem/4120518> Mail: control-T in an empty message crashes mail
16247 * kwq/WebCoreBridge.mm:
16248 (-[WebCoreBridge rangeOfCharactersAroundCaret]):
16249 Nil-check result of VisiblePosition previous() and next().
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().
16257 * khtml/editing/visible_units.cpp:
16258 (khtml::startOfEditableContent):
16259 (khtml::endOfEditableContent):
16260 Removed redundant check for isEditableContent().
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.
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.
16277 2005-05-24 Richard Williamson <rjw@apple.com>
16279 Fixed <rdar://problem/4127061> <canvas> backing store should be zero filled
16281 Use calloc instead of malloc to ensure zero filled backing store.
16285 * khtml/rendering/render_canvasimage.cpp:
16286 (RenderCanvasImage::createDrawingContext):
16288 2005-05-24 John Sullivan <sullivan@apple.com>
16290 Reviewed by Dave Hyatt.
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
16296 Test cases added: none; doesn't affect page layout
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
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:]):
16328 (-[KWQTextAreaTextView mouseDown:]):
16329 ditto; also, make the textarea handle the resize tracking now
16331 2005-05-24 Darin Adler <darin@apple.com>
16333 - another gcc 4.0 fix
16335 No new test cases needed.
16337 * khtml/dom/dom2_events.cpp: Moved constants out of the KHTML_NO_CPLUSPLUS_DOM #if.
16339 2005-05-24 Darin Adler <darin@apple.com>
16343 - fixed <rdar://problem/4128727> many DOM classes not exported (can't add categories or do other things that require class name linking)
16345 No new test cases needed.
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.
16350 2005-05-24 Maciej Stachowiak <mjs@apple.com>
16354 - fixed <rdar://problem/3598589> onunload handler doesn't fire when a window is closed
16357 * layout-tests/fast/events/onunload-expected.txt: Added.
16358 * layout-tests/fast/events/onunload.html: Added.
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.
16368 2005-05-24 John Sullivan <sullivan@apple.com>
16372 - WebCore part of <rdar://problem/4125783> WebKit needs a way to control whether textareas are resizable
16374 * kwq/KWQKHTMLSettings.h:
16375 (KHTMLSettings::textAreasAreResizable):
16377 (KHTMLSettings::setTextAreasAreResizable):
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
16390 (-[KWQTextAreaTextView drawRect:]):
16391 now checks isResizableByUser
16392 (-[KWQTextAreaTextView mouseDown:]):
16395 * kwq/WebCoreSettings.h:
16396 * kwq/WebCoreSettings.mm:
16397 (-[WebCoreSettings setTextAreasAreResizable:]):
16399 (-[WebCoreSettings textAreasAreResizable]):
16402 2005-05-23 Maciej Stachowiak <mjs@apple.com>
16406 - split remaining editing command classes out of htmlediting.cpp
16407 - rename InsertParagraphSeparatorInQuotedContentCommand to BreakBlockquoteCommand
16409 No layout tests needed - this is a pure refactoring change.
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.
16456 2005-05-23 Darin Adler <darin@apple.com>
16458 * WebCore.exp: Sorted file for more readable diffs.
16460 2005-05-23 Adele Peterson <adele@apple.com>
16464 fix for <rdar://problem/4122661> Regression: 10.3.8-10.3.9: Next lesson doesn't work on Dale Carnegie Action Systems page
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.
16468 2005-05-23 David Harrison <harrison@apple.com>
16472 Prevent crash when going from no selection to selection with mispelling checks enabled.
16474 * kwq/KWQKHTMLPart.mm:
16475 (KWQKHTMLPart::markMisspellings):
16476 Repair check for null searchRange. Was inadvertently broken in recent checkin.
16478 2005-05-23 John Sullivan <sullivan@apple.com>
16480 Reviewed by Dave Hyatt.
16482 - fixed <rdar://problem/4123592> Can't resize textareas that have a width specified by a style
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
16491 2005-05-22 Adele Peterson <adele@apple.com>
16493 Reviewed by Maciej.
16495 fix for <rdar://problem/4127101> REGRESSION(412-TOT) crash when creating Option element
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.
16500 2005-05-20 John Sullivan <sullivan@apple.com>
16504 - fixed <rdar://problem/4126160> Crash sending mouse-exited event after reloading
16505 page with resizable textarea
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.
16513 2005-05-19 Darin Adler <darin@apple.com>
16515 Reviewed by Maciej.
16517 - turned off exceptions and RTTI; seems to cut WebCore code size by about 35%
16519 * WebCore.pbproj/project.pbxproj: Turn off exceptions and RTTI for the framework.
16521 2005-05-19 Darin Adler <darin@apple.com>
16523 Reviewed by Chris Petersen.
16525 - fixed a mistake I introduced in my previous check-in that caused a Deployment build failure
16527 * kwq/DOM.mm: (-[DOMDocument createTreeWalker::::]): Initialize cppFilter to 0, which fixes both
16528 the build failure and a potential bug!
16530 2005-05-17 Darin Adler <darin@apple.com>
16532 Reviewed by Maciej.
16533 No new layout tests required.
16535 - remove all dependencies on exceptions and RTTI (but don't turn them off yet, that will be in a later patch)
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.
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.
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.
16547 * khtml/dom/dom2_range.h: Added KHTML_NO_CPLUSPLUS_DOM checks so that only the constants are defined,
16550 * khtml/dom/dom2_traversal.cpp: Put everything except for NodeFilterCondition inside KHTML_NO_CPLUSPLUS_DOM.
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.
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.
16561 * khtml/editing/visible_text.h: Added an include of <qstring.h>.
16563 * khtml/misc/loader.h: Added isKHTMLLoader.
16564 * khtml/misc/loader.cpp: (Loader::isKHTMLLoader): Added. Poor-man's replacement for dynamic_cast.
16566 * khtml/rendering/render_form.h:
16567 * khtml/rendering/render_form.cpp: (RenderFormElement::slotTextChanged): Added. Hack to make KWQSlot work
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.
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.
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.
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.
16595 * kwq/KWQFrame.mm: (QFrame::setFrameStyle): Use isKHTMLView instead of dynamic_cast.
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.
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.
16609 * kwq/KWQSlot.mm: Removed all uses of dynamic_cast.
16611 * kwq/WebCoreBridge.mm:
16612 (-[WebCoreBridge stringForRange:]): Used plainText instead of text.
16613 (-[WebCoreBridge copyRenderNode:copier:]): Used isWidget instead of dynamic_cast.
16615 2005-05-16 Darin Adler <darin@apple.com>
16617 - attempt to get things building under "Saffron" development tools
16619 * WebCore.pbproj/project.pbxproj: Use BUILT_PRODUCTS_DIR instead of SYMROOT.
16621 2005-05-16 Adele Peterson <adele@apple.com>
16623 Changes by Darin. Reviewed by myself.
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.
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)
16634 2005-05-16 Darin Adler <darin@apple.com>
16638 - fixed issues preventing us from compiling with newer versions of gcc 4.0
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.
16643 * khtml/editing/selection.h: Specified KHTMLPart friend class as ::KHTMLPart, since if it's
16644 not explicitly qualified, it means DOM::KHTMLPart.
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.
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.
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!
16671 * kwq/KWQTextArea.mm: (RangeOfParagraph): Change else structure to work around compiler
16674 2005-05-13 John Sullivan <sullivan@apple.com>
16676 * kwq/KWQTextArea.mm:
16677 (-[KWQTextAreaTextView _trackResizeFromMouseDown:]):
16678 added Radar numbers to FIXMEs about resizable textareas
16679 (-[KWQTextAreaTextView resetCursorRects]):
16681 (-[KWQTextAreaTextView mouseDown:]):
16684 2005-05-12 Darin Adler <darin@apple.com>
16686 Reviewed by Chris Blumenberg.
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.
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):
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:
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:
16751 (DOM::rangeOfContents):
16752 * khtml/xml/dom2_rangeimpl.h:
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:
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]):
16807 2005-05-13 Maciej Stachowiak <mjs@apple.com>
16811 - more splitting up of htmlediting.cpp
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.
16826 2005-05-12 Adele Peterson <adele@apple.com>
16828 Reviewed by Maciej.
16830 fix for <rdar://problem/4117656> deleting an input element in its onBlur handler crashes Safari
16832 * khtml/rendering/render_form.cpp: (RenderLineEdit::handleFocusOut): added nil check for element
16834 2005-05-12 John Sullivan <sullivan@apple.com>
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.
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:]):
16858 2005-05-05 John Sullivan <sullivan@apple.com>
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.
16868 2005-05-02 John Sullivan <sullivan@apple.com>
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
16877 * Resources/textAreaResizeCorner.tiff: Added.
16878 * WebCore.pbproj/project.pbxproj:
16879 updated for added image file
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
16894 2005-04-18 John Sullivan <sullivan@apple.com>
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).
16900 Reviewed by Maciej.
16902 * kwq/WebCoreBridge.h:
16903 add textDidChange: method
16905 * kwq/KWQTextArea.mm:
16906 (-[KWQTextArea textDidChange:]):
16907 call through to bridge
16909 2005-04-07 John Sullivan <sullivan@apple.com>
16911 WebCore support for find-as-you-type; needed an additional parameter
16912 to findString and searchFor:...
16914 Reviewed by Dave Hyatt.
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
16922 * kwq/WebCoreBridge.h:
16923 * kwq/WebCoreBridge.mm:
16924 (-[WebCoreBridge searchFor:direction:caseSensitive:wrap:findInSelection:]):
16925 new findInSelection parameter; passed through to findString
16927 2005-05-12 Darin Adler <darin@apple.com>
16929 Reviewed by Maciej (except for some parts outside the ECMA directory).
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
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.
16942 * khtml/css/cssproperties.in: Fixed up comments.
16944 * khtml/css/makeprop: Added new maxCSSPropertyNameLength constant, used for
16945 buffer size in the propertyID function.
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.
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.
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.
16967 * khtml/khtml_part.cpp: Tweaked incluudes.
16968 * khtml/khtmlpart_p.h: Ditto.
16970 * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::canCachePage): Change to use DOM impl. rather
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.
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):
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):
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):
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):
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):
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):
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):
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):
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):
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):
17299 2005-05-11 David Hyatt <hyatt@apple.com>
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.
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.
17311 * khtml/ecma/kjs_window.cpp:
17313 (Window::updateLayout):
17314 * khtml/ecma/kjs_window.h:
17316 2005-05-11 Maciej Stachowiak <mjs@apple.com>
17320 - split some more individual classes out of htmlediting.cpp
17321 (CompositeEditcommand, AppendnodeCommand, ApplyStyleCommand)
17323 Also moves StyleChange directly into ApplyStyleCommand
17324 implementation file, it doesn't need to be in a header at all.
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:
17338 2005-05-11 Adele Peterson <adele@apple.com>
17342 fix for <rdar://problem/4061979> crash in DOM::ElementImpl::setAttribute at www.nitto-kohki.co.jp
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.
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.
17355 2005-05-10 Maciej Stachowiak <mjs@apple.com>
17359 - start on splitting htmlediting.cpp into smaller files - pull
17360 EditCommand and EditCommandPtr out.
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.
17368 2005-05-10 David Hyatt <hyatt@apple.com>
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.
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):
17501 (StyledElementImpl::addCSSProperty):
17502 (StyledElementImpl::addCSSStringProperty):
17503 (StyledElementImpl::addCSSImageProperty):
17504 (StyledElementImpl::addCSSLength):
17505 (StyledElementImpl::addCSSColor):
17506 (StyledElementImpl::createMappedDecl):
17507 * khtml/xml/dom_elementimpl.h:
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):
17527 2005-05-10 Darin Adler <darin@apple.com>
17529 Reviewed by Dave Hyatt.
17530 No new layout tests needed.
17532 - remove all remaining uses of QMIN/QMAX and KMIN/KMAX.
17534 * kwq/KWQDef.h: Remove the macros.
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).
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):
17570 2005-05-10 Darin Adler <darin@apple.com>
17572 Reviewed by Chris Blumenberg.
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)
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):
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:
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):
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):
17952 (-[DOMCSSStyleSheet cssRules]):
17953 (-[DOMCSSStyleDeclaration getPropertyValue:]):
17954 (-[DOMCSSStyleDeclaration getPropertyCSSValue:]):
17955 (-[DOMCSSStyleDeclaration removeProperty:]):
17956 (-[DOMCSSStyleDeclaration getPropertyPriority:]):
17957 (-[DOMCSSStyleDeclaration setProperty:::]):
17958 (-[DOMCSSValue setCssText:]):
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):
17991 (isTextFirstInListItem):
17992 (KWQKHTMLPart::attributedString):
17993 (KWQKHTMLPart::snapshotDragImage):
17994 (KWQKHTMLPart::mousePressNode):
17995 * kwq/WebCoreBridge.mm:
17996 (updateRenderingForBindings):
17997 (-[WebCoreBridge _documentTypeString]):
17999 2005-05-10 Maciej Stachowiak <mjs@apple.com>
18003 - rename hasAnchor method to isLink
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):
18039 2005-05-09 Maciej Stachowiak <mjs@apple.com>
18043 - remove init hint argument from VisiblePosition
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:]):
18059 2005-05-10 Darin Adler <darin@apple.com>
18061 Reviewed by David Harrison.
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.)
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):
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:
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):
18245 2005-05-10 Darin Adler <darin@apple.com>
18247 Reviewed by David Harrison.
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)
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:
18625 2005-05-09 Maciej Stachowiak <mjs@apple.com>
18629 - remove more isFirst/isLast functions and use isStart/isEnd verions instead
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:]):
18651 2005-05-09 Maciej Stachowiak <mjs@apple.com>
18655 - remove isFirstVisiblePositionInBlock and isLastVisiblePositionInBlock, in favor of isStartOfBlock and isEndOfBlock
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.
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.
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:
18686 2005-05-09 Adele Peterson <adele@apple.com>
18688 fix for <rdar://problem/4110775> Crash will occur when double-clicking outerHTML link on W3 DOM test
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.
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.
18705 2005-05-09 Maciej Stachowiak <mjs@apple.com>
18709 - remove code for DoNotStayInBlock variant of upstream/downstream and make
18710 the methods take no parameters
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:
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:]):
18753 2005-05-08 Maciej Stachowiak <mjs@apple.com>
18755 Reviewed by Dave Harrison.
18757 - remove remaining uses of upstream/downstream DoNotStayInBlock
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):
18769 * khtml/editing/visible_position.cpp:
18770 (khtml::enclosingBlockFlowElement): New helper function.
18771 * khtml/editing/visible_position.h:
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.
18778 2005-05-09 David Harrison <harrison@apple.com>
18780 Add layout test for <rdar://problem/4110366>.
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.
18785 2005-05-09 Darin Adler <darin@apple.com>
18787 - checked in a result for the Flash replacement test that Dave added
18789 * layout-tests/fast/dynamic/flash-replacement-test-expected.txt: Added.
18790 Hope it's right! If not, Dave can update it.
18792 2005-05-09 Darin Adler <darin@apple.com>
18794 * Makefile.am: Don't set up PBXIntermediatesDirectory explicitly;
18795 Not needed to make builds work, spews undesirable error messages too.
18797 * WebCore.pbproj/project.pbxproj: Remove unneeded $(DSTROOT) in framework paths.
18799 2005-05-07 Maciej Stachowiak <mjs@apple.com>
18803 - remove some of the uses of upstream/downstream DoNotStayInBlock
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
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.
18816 2005-05-07 David Harrison <harrison@apple.com>
18820 <rdar://problem/4110366> Deleting text at the end of email moves insertion point to the top of the document
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().
18827 2005-05-07 David Harrison <harrison@apple.com>
18829 Remove workaround for <rdar://problem/4103339>.
18831 * khtml/editing/htmlediting.cpp:
18832 (khtml::DeleteSelectionCommand::initializePositionData):
18834 2005-05-06 Maciej Stachowiak <mjs@apple.com>
18836 Reviewed by Dave Harrison.
18838 - make StayInBlock vs DoNotStayInBlock explicit in all calls to
18839 upstream/downstream, in preparation for phasing out the
18840 DoNotStayInBlock variant.
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:
18855 2005-05-06 David Harrison <harrison@apple.com>
18857 Reviewed by Maciej, Darin.
18859 <rdar://problem/4103339> VisiblePosition and PositionIterator iterators do not return positions in order
18861 * WebCore.pbproj/project.pbxproj:
18862 Removed dom_positioniterator.h and dom_positioniterator.cpp.
18864 * khtml/editing/htmlediting.cpp:
18865 Removed unused include of dom_positioniterator.h and "using" of PositionIterator.
18867 * khtml/editing/selection.cpp:
18868 Removed unused include of dom_positioniterator.h.
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.
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()
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.
18891 (DOM::Position::previousCharacterPosition):
18892 (DOM::Position::nextCharacterPosition):
18893 Use Position::next(), Position::previous(), Position::atStart(), Position::atEnd() instead of PositionIterator.
18896 (DOM::Position::upstream):
18897 (DOM::Position::downstream):
18898 Use Position::next(), Position::previous(), Position::atStart(), Position::atEnd() instead of PositionIterator.
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()
18904 2005-05-05 Maciej Stachowiak <mjs@apple.com>
18908 <rdar://problem/4058167> Unit Converter and Weather widgets crashed in KJS::Collector::markCurrentThreadConservatively
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.
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):
18954 2005-05-06 Darin Adler <darin@apple.com>
18956 Reviewed by Maciej.
18958 - make building multiple trees with make work better
18960 * Makefile.am: Set up Xcode build directory before invoking xcodebuild.
18962 2005-05-05 David Hyatt <hyatt@apple.com>
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
18968 The radar # is 4109888.
18972 * khtml/ecma/kjs_window.cpp:
18974 (Window::updateLayout):
18975 * khtml/ecma/kjs_window.h:
18977 2005-05-05 David Hyatt <hyatt@apple.com>
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.
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.
18988 Reviewed by John Sullivan
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.
18997 2005-05-05 Darin Adler <darin@apple.com>
18999 Reviewed by Dave Hyatt.
19001 - fixed <rdar://problem/4109564> REGRESSION (Atlanta): maps.google.com doesn't always center California correctly
19003 * khtml/ecma/kjs_events.cpp: (offsetFromTarget): Fix two places that said X where they should say Y.
19005 2005-05-05 David Harrison <harrison@apple.com>
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.
19011 * khtml/editing/htmlediting.cpp:
19012 (khtml::EditCommandPtr::setEndingSelection):
19014 2005-05-02 Maciej Stachowiak <mjs@apple.com>
19018 - renamed NodeBaseImpl to ContainerNodeImpl
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
19026 * khtml/xml/dom_nodeimpl.cpp:
19027 (NodeBaseImpl::checkNoOwner): Removed.
19029 Ther rest is all just simple renaming.
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:
19084 2005-05-04 Vicki Murley <vicki@apple.com>
19088 - fix mismatched parentheses in one of the ifdefs
19090 * khtml/html/html_headimpl.cpp:
19091 (HTMLTitleElementImpl::childrenChanged):
19093 2005-05-04 Darin Adler <darin@apple.com>
19095 Reviewed by Dave Hyatt.
19097 - fixed build rules to match other projects
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
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.
19108 2005-05-04 Vicki Murley <vicki@apple.com>
19112 - fixed <rdar://problem/3986228> Not able to load additional script blocks dynamically
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.
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):
19130 2005-05-03 David Hyatt <hyatt@apple.com>
19132 Normalize all our custom properties in our implementation to be -khtml (remove all the -apple).
19134 Make sure that -apple, -khtml, and -moz are all able to be used. -apple and -moz just map to -khtml.
19136 Add support for automatically converting -khtml-opacity to opacity (for legacy Safari 1.1 compat).
19140 * khtml/css/css_computedstyle.cpp:
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:
19153 2005-05-03 Darin Adler <darin@apple.com>
19157 * WebCore.pbproj/project.pbxproj: Fix some SYMROOTS that should have been SYMROOT.
19159 2005-05-03 David Hyatt <hyatt@apple.com>
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.
19164 New test is comments-in-script.html
19166 * khtml/html/htmltokenizer.cpp:
19167 (khtml::HTMLTokenizer::parseComment):
19169 2005-05-03 David Hyatt <hyatt@apple.com>
19171 Remove unused notification to avoid ERROR messages spewing on the acid2 test.
19175 * khtml/khtml_part.cpp:
19176 (KHTMLPart::processObjectRequest):
19177 * khtml/rendering/render_frames.cpp:
19178 (RenderPartObject::updateWidget):
19179 * khtml/rendering/render_frames.h:
19181 2005-05-03 Darin Adler <darin@apple.com>
19183 Reviewed by Dave Hyatt.
19184 No new layout tests needed.
19186 - eliminated the bogus kMin/kMax macros that we had in addition to inline functions
19189 * kwq/KWQKGlobal.h: Remove the kMin/kMax macros.
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.
19197 - remove unused parameter to dirtyLinesFromChangedChild for clarity
19199 * khtml/rendering/render_object.h: Don't take the parameter.
19200 * khtml/rendering/render_object.cpp: (RenderObject::dirtyLinesFromChangedChild): Ditto.
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.
19207 * khtml/rendering/render_text.cpp: (RenderText::detach): Don't pass the parameter.
19209 - convert DOM::NodeImpl into an abstract base class by making a couple of functions
19210 pure virtual for clarity
19212 * khtml/xml/dom_nodeimpl.h: Made nodeName and nodeType pure virtual.
19213 * khtml/xml/dom_nodeimpl.cpp: Remove bodies of nodeName and nodeType.
19215 2005-05-03 David Hyatt <hyatt@apple.com>
19217 Fix for object element to support fallback content. WIth this change Safari passes the Acid2 test.
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]):
19255 2005-05-01 Darin Adler <darin@apple.com>
19257 - move to Xcode native targets and stop checking in generated files
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.
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.
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.
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.
19273 * .cvsignore: Removed various timestamp files.
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.
19317 2005-05-02 Darin Adler <darin@apple.com>
19320 Added two layout tests for regression testing.
19322 - redid frameElement (fix for 4091082 below)
19324 The first version lacked a security check, and was also broken.
19326 * khtml/ecma/kjs_window.cpp:
19327 (frameElement): Refactored into separate function; added isSafeScript check.
19328 (Window::get): Call the new frameElement function.
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.
19336 2005-05-02 David Harrison <harrison@apple.com>
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.
19343 * khtml/editing/visible_units.cpp:
19344 (khtml::isStartOfEditableContent):
19345 (khtml::isEndOfEditableContent):
19348 2005-04-29 Darin Adler <darin@apple.com>
19350 Reviewed by David Harrison.
19352 * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::displayNode): Turn newlines into \n for better dumping.
19354 2005-04-29 David Harrison <harrison@apple.com>
19358 <rdar://problem/4083333> When deleting link at end of sentence, entire sentence gets deleted
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.
19364 (khtml::DeleteSelectionCommand::handleGeneralDelete):
19365 Add isAncestor check when comparing m_downstreamEnd.node() and m_startNode.
19367 * layout-tests/editing/deleting/delete-4083333-fix-expected.txt: Added.
19368 * layout-tests/editing/deleting/delete-4083333-fix.html: Added.
19370 2005-04-29 Darin Adler <darin@apple.com>
19372 Reviewed by Dave Harrison.
19374 - changed layout tests to dump more minimal information about caret and selection
19376 * kwq/KWQRenderTreeDebug.cpp:
19377 (nodePosition): Changed name; now does position relative to document.
19378 (writeSelection): Removed upstream/downstream code and changed format slightly.
19380 * layout-tests/editing/*-expected.txt: Regenerated in new format.
19382 2005-04-29 Darin Adler <darin@apple.com>
19384 Reviewed by Chris Blumenberg.
19385 Added two layout tests for regression testing.
19387 - fixed <rdar://problem/4097849> REGRESSION (162-163): importNode creates non-HTML elements, thus style attributes (and some others) don't work
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.
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
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).
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.
19419 2005-04-28 Darin Adler <darin@apple.com>
19421 Reviewed by Dave Harrison.
19423 - fixed problems preventing us from compiling with gcc 4.0
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.
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.
19434 * khtml/ecma/kjs_dom.cpp: (DOMTextProtoFunc::tryCall): Rearranged a return statement to avoid an incorrect
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.
19462 * WebCore-combined.exp: Regenerated.
19463 * WebCore-tests.exp: Added some additional symbols needed by the tests under gcc 4.0.
19465 2005-04-28 Darin Adler <darin@apple.com>
19467 * WebCore.pbproj/project.pbxproj: Add back the main_thread_malloc files, rolled out by accident.
19469 2005-04-27 Adele Peterson <adele@apple.com>
19471 Rolling out fix for <rdar://problem/4097849> because the following layout tests were failing:
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
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:
19493 2005-04-27 John Sullivan <sullivan@apple.com>
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.
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.
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.
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:
19518 2005-04-27 John Sullivan <sullivan@apple.com>
19522 - fixed problem with mouse wheel patch where alt and shift keys were switched
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.
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.
19535 2005-04-26 Adele Peterson <adele@apple.com>
19537 Fixed by Darin, reviewed by me.
19539 Fix for <rdar://problem/4084029> designMode doesn't allow editing when iframe src = "" or = about:blank
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
19545 * khtml/html/htmlparser.cpp: (KHTMLParser::finished):
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:
19555 2005-04-26 Maciej Stachowiak <mjs@apple.com>
19557 New test case for <rdar://problem/4092136> reproducible crash in KJS::kjs_fast_realloc loading maps.google.com
19559 * layout-tests/fast/js/string-from-char-code-expected.txt: Added.
19560 * layout-tests/fast/js/string-from-char-code.html: Added.
19562 2005-04-26 Darin Adler <darin@apple.com>
19566 - fixed <rdar://problem/3655817> please add support for mouse wheel events and the onmousewheel handler
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
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.
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.
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.
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.)
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.
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.
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.
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.
19633 * kwq/WebCoreBridge.h: Renamed scrollOverflowWithScrollWheelEvent to sendScrollWheelEvent.
19634 * kwq/WebCoreBridge.mm: (-[WebCoreBridge sendScrollWheelEvent:]): Renamed.
19636 * kwq/KWQEvent.h: Added Wheel as an event type value.
19637 (QWheelEvent::QWheelEvent): Added.
19639 (positionForEvent): Updated to know that wheel events have valid positions in them.
19640 (orientationForEvent): Added.
19641 (deltaForEvent): Added.
19642 (QWheelEvent::QWheelEvent): Added.
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.
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.
19651 * khtml/xml/dom_nodeimpl.h: Added dispatchWheelEvent.
19652 * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::dispatchWheelEvent): Added.
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.
19662 2005-04-26 David Harrison <harrison@apple.com>
19664 Reviewed by Darin, Maciej.
19666 <rdar://problem/4075576> Deleting text in new message borks content
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).
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.
19694 2005-04-26 Darin Adler <darin@apple.com>
19696 - fixed development builds
19698 * khtml/misc/main_thread_malloc.h: Use inlines instead of macros for allocation functions.
19700 2005-04-25 David Hyatt <hyatt@apple.com>
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
19710 * khtml/rendering/render_text.cpp:
19711 (RenderText::setTextWithOffset):
19713 2005-04-26 Darin Adler <darin@apple.com>
19715 Reviewed by Maciej.
19717 - fixed <rdar://problem/4098826> Bezier curves broken in new Safari canvas object (last two parameters parsed incorrectly)
19719 * khtml/ecma/kjs_html.cpp: (KJS::Context2DFunction::tryCall): Fixed incorrect argument indices.
19720 Thanks to Brian Campbell who figured out what was wrong.
19722 2005-04-17 Maciej Stachowiak <mjs@apple.com>
19726 - use single-threaded malloc in places where malloc is hot for an
19727 8% speed improvement on cvs-base
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:
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:
19759 * kwq/KWQString.mm:
19762 (QString::setBufferFromCFString):
19763 (allocatePageNode):
19765 2005-04-25 John Sullivan <sullivan@apple.com>
19767 Reviewed by Dave Harrison.
19769 - fixed <rdar://problem/4098731> [DOMHTMLTextAreaElement cols] returns wrong value (usually zero)
19772 (-[DOMHTMLTextAreaElement cols]):
19773 use ATTR_COLS instead of ATTR_ACCESSKEY (D'oh!)
19774 (-[DOMHTMLTextAreaElement setCols:]):
19777 2005-04-25 Darin Adler <darin@apple.com>
19781 - fixed <rdar://problem/4097849> REGRESSION (162-163): importNode creates non-HTML elements, thus style attributes (and some others) don't work
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.
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.
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.
19806 2005-04-25 Darin Adler <darin@apple.com>
19810 - fixed <rdar://problem/4091956> JavaScript drop handlers don't receive more than one dropped item
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.
19822 2005-04-22 David Hyatt <hyatt@apple.com>
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.
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.
19836 2005-04-22 David Hyatt <hyatt@apple.com>
19838 Remove some dead code from css_valueimpl. It wasn't used at all.
19840 * khtml/css/css_valueimpl.cpp:
19841 * khtml/css/css_valueimpl.h:
19843 2005-04-22 Darin Adler <darin@apple.com>
19845 * khtml/ecma/kjs_html.h: Removed unnecessary bogus class name qualifiers.
19847 2005-04-22 David Hyatt <hyatt@apple.com>
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.
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.
19860 2005-04-22 Darin Adler <darin@apple.com>
19864 - fixed <rdar://problem/4091082> Google Suggest no longer works due to lack of "frameElement"
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.
19870 2005-04-22 Darin Adler <darin@apple.com>
19874 - a small editing-related code cleanup
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.
19882 2005-04-21 David Hyatt <hyatt@apple.com>
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.
19887 * khtml/html/html_baseimpl.cpp:
19888 (HTMLBodyElementImpl::mapToEntry):
19889 * khtml/html/html_elementimpl.h:
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):
19899 2005-04-21 Vicki Murley <vicki@apple.com>
19901 - layout test for 4065447, outerHTML on images
19903 * layout-tests/fast/dynamic/outerHTML-img-expected.txt: Added.
19904 * layout-tests/fast/dynamic/outerHTML-img.html: Added.
19906 2005-04-20 Vicki Murley <vicki@apple.com>
19910 - fixed <rdar://problem/4065447> support outerHTML on IMG elements
19912 * khtml/html/html_elementimpl.cpp:
19913 (HTMLElementImpl::setOuterHTML):
19915 2005-04-18 David Hyatt <hyatt@apple.com>
19917 Fix min-height so that when it resolves to auto it does not use the box's intrinsic height.
19919 * khtml/rendering/render_box.cpp:
19920 (RenderBox::calcHeight):
19921 (RenderBox::calcHeightUsing):
19923 2005-04-18 David Hyatt <hyatt@apple.com>
19925 Back out fix for 4032346, since it is causing garbled image content on many sites.
19927 The bug tracking the fix is 4069093.
19929 (khtml::RenderBlock::matchedEndLine):
19931 2005-04-18 David Hyatt <hyatt@apple.com>
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.
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.
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):
19948 2005-04-15 David Hyatt <hyatt@apple.com>
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.
19953 * khtml/rendering/render_table.cpp:
19954 (RenderTable::layout):
19956 2005-04-15 David Hyatt <hyatt@apple.com>
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.
19961 * khtml/html/htmltokenizer.cpp:
19962 (khtml::HTMLTokenizer::parseComment):
19964 2005-04-12 Maciej Stachowiak <mjs@apple.com>
19966 Reviewed by Richard.
19968 - use custom single-threaded malloc for all non-GC JavaScriptCore
19969 allocations, for a 9.1% speedup on JavaScript iBench
19971 * khtml/ecma/kjs_binding.cpp:
19972 (UString::UString):
19973 * khtml/ecma/kjs_proxy.cpp:
19974 (KJSProxyImpl::evaluate):
19976 2005-04-15 David Hyatt <hyatt@apple.com>
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).
19982 * khtml/rendering/render_block.cpp:
19983 (khtml::RenderBlock::isSelfCollapsingBlock):
19985 2005-04-15 David Hyatt <hyatt@apple.com>
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.
19991 * khtml/khtmlview.cpp:
19992 (KHTMLView::applyOverflowToViewport):
19993 (KHTMLView::layout):
19994 * khtml/khtmlview.h:
19995 * khtml/rendering/render_box.cpp:
19996 (RenderBox::setStyle):
19998 2005-04-14 David Hyatt <hyatt@apple.com>
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.
20003 * khtml/rendering/render_box.cpp:
20004 (RenderBox::calcAbsoluteHorizontal):
20005 (RenderBox::calcAbsoluteHorizontalValues):
20006 (RenderBox::calcAbsoluteVertical):
20007 (RenderBox::calcAbsoluteVerticalValues):
20008 * khtml/rendering/render_box.h:
20010 2005-04-12 David Hyatt <hyatt@apple.com>
20012 Working on the Acid2 test, Row 1.
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.
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.
20021 * khtml/html/dtd.cpp:
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):
20031 2005-04-12 Vicki Murley <vicki@apple.com>
20033 Reviewed by Maciej.
20035 - fixed <rdar://problem/3760895> Request for including an implementation of the elementFromPoint function
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:
20046 * khtml/xml/dom_docimpl.cpp:
20047 (DocumentImpl::elementFromPoint):
20048 * khtml/xml/dom_docimpl.h:
20050 2005-04-12 David Hyatt <hyatt@apple.com>
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.
20056 * khtml/html/html_headimpl.cpp:
20057 (HTMLLinkElementImpl::HTMLLinkElementImpl):
20058 (HTMLLinkElementImpl::parseHTMLAttribute):
20059 (HTMLLinkElementImpl::tokenizeRelAttribute):
20060 (HTMLLinkElementImpl::process):
20061 * khtml/html/html_headimpl.h:
20063 2005-04-12 John Sullivan <sullivan@apple.com>
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
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
20078 2005-04-08 David Harrison <harrison@apple.com>
20080 Reviewed by Dave Hyatt.
20082 <rdar://problem/4084106> Remove NSAccessibilityForegroundColorTextAttributeWrapper
20084 * kwq/KWQAccObject.mm:
20085 (AXAttributeStringSetStyle):
20086 Use NSAccessibilityForegroundColorTextAttribute directly.
20088 2005-04-05 David Hyatt <hyatt@apple.com>
20090 Fix for 4077106, make sure that mouse wheeling in overflow sections uses 40 rather than 10 as the base line
20095 * khtml/rendering/render_layer.cpp:
20096 (RenderLayer::positionScrollbars):
20097 * kwq/KWQScrollBar.mm:
20098 (QScrollBar::scroll):
20100 2005-04-04 Vicki Murley <vicki@apple.com>
20102 Reviewed by Maciej.
20104 - fixed <rdar://problem/3871669> no focus or blur methods on HTML button elements
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:
20116 * khtml/html/html_formimpl.cpp:
20117 (DOM::HTMLButtonElementImpl::blur):
20118 (DOM::HTMLButtonElementImpl::focus):
20119 * khtml/html/html_formimpl.h:
20121 === WebCore-415 ===
20123 2005-03-28 David Harrison <harrison@apple.com>
20127 <rdar://problem/4069161> REGRESSION (8A416-8A419): Safari crash bringing up context menu for non-HTML content in a frame
20129 * kwq/KWQAccObject.mm:
20130 (-[KWQAccObject rendererForView:]):
20131 Nil-check node variable instead of rechecking document variable.
20133 === WebCore-413 ===
20135 2005-03-27 Darin Adler <darin@apple.com>
20137 Reviewed by me, fix by Kida-san.
20139 - fixed <rdar://problem/4067474> 8A424: Safari immediately quit by Cmd+Ctrll+'D'
20141 * kwq/WebCoreBridge.mm: (-[WebCoreBridge convertToNSRange:DOM::]):
20146 2005-03-24 Richard Williamson <rjw@apple.com>
20148 Fixed <rdar://problem/4052683> After adding/removing stocks from Stocks Widget, stock areas went blank
20150 The request was being collected before firing it's load handler.
20151 We now gc protect the request while it's loading.
20153 Reviewed by Maciej.
20155 * khtml/ecma/xmlhttprequest.cpp:
20156 (KJS::XMLHttpRequest::send):
20157 (KJS::XMLHttpRequest::abort):
20158 (KJS::XMLHttpRequest::slotFinished):
20159 (KJS::XMLHttpRequestProtoFunc::tryCall):
20163 2005-03-23 Darin Adler <darin@apple.com>
20165 Further fix for 4053515.
20167 Covered cases where text position doesn't lie inside a
20170 Reviewed by Richard.
20172 * khtml/editing/visible_text.cpp:
20173 (khtml::TextIterator::setRangeFromLocationAndLength):
20175 2005-03-23 Richard Williamson <rjw@apple.com>
20177 Fixed <rdar://problem/4053515> REGRESSION (Mail): Kotoeri input method reconversion does not work in WebViews
20179 We now use actual document NSRanges to represent both marked text
20180 ranges and selection ranges.
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]):
20196 2005-03-22 Kevin Decker <kdecker@apple.com>
20200 Fixed <rdar://problem/4062336> REGRESSION (406-407): HTML submenus not working at hrweb.apple.com after going back
20202 Rolled out the fix for <rdar://problem/4041374> REGRESSION (185-186): unload handlers (at least those added with addEventListener) are broken
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.
20206 * khtml/khtml_part.cpp:
20207 (KHTMLPart::closeURL):
20208 * khtml/xml/dom_docimpl.cpp:
20209 (DocumentImpl::detach):
20213 2005-03-22 Vicki Murley <vicki@apple.com>
20215 - roll the fix for <rdar://problem/4060266> back in, since its
20216 now approved by CCC
20218 * khtml/editing/visible_text.cpp:
20219 (khtml::TextIterator::handleTextBox):
20221 2005-03-22 Vicki Murley <vicki@apple.com>
20223 - roll out the fix for <rdar://problem/4060266> since it was denied by CCC
20225 * khtml/editing/visible_text.cpp:
20226 (khtml::TextIterator::handleTextBox):
20228 2005-03-22 David Harrison <harrison@apple.com>
20232 <rdar://problem/4060266> Double-clicking in Dictionary.app doesn't work for some words (coming just after style change)
20234 * khtml/editing/visible_text.cpp:
20235 (khtml::TextIterator::handleTextBox):
20236 Complete the check of whether to emit space for collapsed space.
20238 2005-03-22 David Harrison <harrison@apple.com>
20242 <rdar://problem/4061443> REGRESSION (8A420-8A421): Pasting in the Stickies widget is broken again
20244 * khtml/editing/htmlediting.cpp:
20245 (khtml::positionBeforeContainingSpecialElement):
20246 (khtml::positionAfterContainingSpecialElement):
20247 Return unchanged Position rather than a null or non-editable one.
20251 2005-03-20 Ken Kocienda <kocienda@apple.com>
20255 I made an error in this test earlier. It was not testing what I intended. Fixed.
20257 * layout-tests/editing/unsupported-content/list-delete-001-expected.txt
20258 * layout-tests/editing/unsupported-content/list-delete-001.html
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.
20273 2005-03-20 Darin Adler <darin@apple.com>
20275 Reviewed by Maciej.
20277 - fixed <rdar://problem/3923903> REGRESSION (164-165): Repro Safari crash in khtml::RenderLayer::scrollToOffset
20279 * khtml/rendering/render_layer.cpp: (RenderLayer::scrollToOffset): Check canvas for nil.
20281 2005-03-20 David Harrison <harrison@apple.com>
20285 <rdar://problem/4055127> Dictionary pop-up panel misplaced at beginning of text blocks (breaks double-clicking in Dictionary.app)
20287 SimplifiedBackwardsTextIterator::advance() needed to not limit to textnodes
20288 when checking whether moving back across block boundaries
20290 VisibleUnits previousBoundary() needed to INIT_DOWN when creating result VisiblePosition
20292 All editing tests pass.
20294 * khtml/editing/visible_text.cpp:
20295 (khtml::SimplifiedBackwardsTextIterator::advance):
20296 * khtml/editing/visible_units.cpp:
20297 (khtml::previousBoundary):
20299 2005-03-20 Darin Adler <darin@apple.com>
20301 Reviewed by Harrison.
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
20305 * khtml/khtml_part.h: Added selectFrameElementInParentIfFullySelected.
20306 * khtml/khtml_part.cpp:
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.
20316 * kwq/WebCoreBridge.mm:
20317 (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Call selectFrameElementInParentIfFullySelected.
20318 (-[WebCoreBridge alterCurrentSelection:verticalDistance:]): Call selectFrameElementInParentIfFullySelected.
20320 2005-03-20 Darin Adler <darin@apple.com>
20322 Reviewed by me, code change by Ken.
20324 - fixed <rdar://problem/4059852> Deleting from first element of list makes content jump to wrong place
20326 * khtml/editing/htmlediting.cpp:
20327 (khtml::isListStructureNode): Added.
20328 (khtml::DeleteSelectionCommand::moveNodesAfterNode): Check for list nodes as well as table nodes.
20330 2005-03-20 Ken Kocienda <kocienda@apple.com>
20334 Added tests to cover new "unsupported content" editing code.
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.
20347 2005-03-20 Ken Kocienda <kocienda@apple.com>
20353 <rdar://problem/4059578> Entire list deleted, and caret disappears, when delete key hit at end of list
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);
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().
20366 * khtml/editing/htmlediting.cpp:
20367 (khtml::DeleteSelectionCommand::handleGeneralDelete): Fixed as described.
20369 2005-03-19 Ken Kocienda <kocienda@apple.com>
20375 <rdar://problem/4059384> Cannot place insertion point correctly in editable text that avoids floating elements
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
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.
20387 2005-03-19 Darin Adler <darin@apple.com>
20391 - fixed <rdar://problem/4057594> REGRESSION (125-406): Unrepro crash in HTMLTokenizer::allDataProcessed after hitting Back button
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.
20397 2005-03-19 Maciej Stachowiak <mjs@apple.com>
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
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:
20447 2005-03-19 John Sullivan <sullivan@apple.com>
20451 - fixed <rdar://problem/4058740> Crash (nil-deref) editing Mail reply
20452 message in KWQKHTMLPart::fontForSelection (MailViewer-723)
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.
20461 2005-03-18 David Harrison <harrison@apple.com>
20465 <rdar://problem/3584942> AX: Safari Accessibility parent-child mismatch
20467 Also changed WebKit.
20469 * kwq/KWQAccObject.mm:
20470 (-[KWQAccObject rendererForView:]):
20471 New to cover both the WebCore and WebKit NSViews.
20473 (-[KWQAccObject _accessibilityParentForSubview:]):
20474 Use rendererForView.
20476 * kwq/WebCoreFrameView.h:
20477 Add WebCoreBridgeHolder protocol to get access to WebKit NSViews.
20479 2005-03-18 David Harrison <harrison@apple.com>
20481 Reviewed by Darin, Ken.
20483 <rdar://problem/3735625> AX: add AXPress action if an element has an onclick handler
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):
20514 (-[DOMHTMLInputElement click]):
20516 * kwq/KWQButton.mm:
20518 * kwq/KWQFileButton.h:
20519 * kwq/KWQFileButton.mm:
20520 (KWQFileButton::click):
20522 Add accessKeyAction parameter about whether to limit to HTMLElementImpl subclasses that JavaScript wants, or to apply to others as well.
20524 Add click() parameter about whether to send the mousedown and mouseup events in addition to the click event.
20526 * kwq/KWQAccObject.mm:
20527 (-[KWQAccObject mouseButtonListener]):
20528 Locate a mousedown, mouseup, or click handler in the current element and its ancestors.
20530 (-[KWQAccObject actionElement]):
20531 (-[KWQAccObject accessibilityIsIgnored]):
20532 (-[KWQAccObject accessibilityPerformAction:]):
20533 Consider mouseButtonListener.
20535 2005-03-18 John Sullivan <sullivan@apple.com>
20539 - fixed <rdar://problem/4002164> maps that include start and end
20540 location don't print right from maps.google.com
20542 I thought I checked this in yesterday but a ChangeLog conflict aborted my checkin
20543 without me noticing.
20545 * khtml/rendering/render_style.cpp:
20546 (RenderStyle::diff):
20547 flag name changed from _should_correct_text_color to _force_backgrounds_to_white
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):
20554 (khtml::RenderStyle::forceBackgroundsToWhite):
20555 ditto, and method name changed too
20556 (khtml::RenderStyle::setForceBackgroundsToWhite):
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)
20565 * khtml/xml/dom_docimpl.cpp:
20566 (DocumentImpl::recalcStyle):
20567 updated for name change
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
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.
20581 2005-03-18 Ken Kocienda <kocienda@apple.com>
20587 <rdar://problem/4056718> Pasting quotes the entire message
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.
20600 2005-03-17 Ken Kocienda <kocienda@apple.com>
20602 Reviewed by Harrison
20606 <rdar://problem/4051809> 8A413: Cursor-up in a mail message sometimes gets stuck (with specific reproducible case)
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.
20617 2005-03-17 David Harrison <harrison@apple.com>
20619 Reviewed by Darin, Ken.
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.
20626 2005-03-16 Kevin Decker <kdecker@apple.com>
20630 Fixed <rdar://problem/4046665> REGRESSION (403-405): mypage.apple.com login does not work (hits assertion in Development build)
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="">
20635 2005-03-16 Darin Adler <darin@apple.com>
20637 Reviewed by Maciej.
20639 - fixed <rdar://problem/4045203> REGRESSION (125-188): Redundant JS imports crash Safari
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.
20649 * kwq/KWQWidget.mm: (QWidget::getOuterView): Removed bogus assertion that has been vexing us of late.
20651 2005-03-16 David Harrison <harrison@apple.com>
20653 Reviewed by me (written by Patti Yeh).
20655 * kwq/KWQAccObject.mm:
20656 (-[KWQAccObject doAXNextWordEndTextMarkerForTextMarker:]):
20657 Use LeftWordIfOnBoundary instead of RightWordIfOnBoundary.
20659 (-[KWQAccObject doAXPreviousWordStartTextMarkerForTextMarker:]):
20660 Use RightWordIfOnBoundary instead of LeftWordIfOnBoundary.
20662 2005-03-16 David Harrison <harrison@apple.com>
20664 Reviewed by Maciej.
20666 <rdar://problem/4054590> AX: Dictionary panel does not work when page is scrolled on Safari
20668 * kwq/KWQAccObject.mm:
20669 (-[KWQAccObject doAXTextMarkerForPosition:]):
20670 Add in the view's contentsX and contentsY to the point.
20672 2005-03-16 David Harrison <harrison@apple.com>
20674 Reviewed by Maciej.
20676 <rdar://problem/4048506> Deleting from beginning of editable div deletes other document elements
20678 Also changed WebKit.
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):
20689 * kwq/WebCoreBridge.h:
20690 * kwq/WebCoreBridge.mm:
20691 (-[WebCoreBridge canDeleteRange:]):
20694 2005-03-16 Ken Kocienda <kocienda@apple.com>
20700 <rdar://problem/4042935> undo doesn't work properly during inline input
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.
20707 2005-03-16 David Harrison <harrison@apple.com>
20711 <rdar://problem/4044336> REGRESSION (8A398-8A409): Option-Delete also deletes space to left of deleted word
20713 * khtml/editing/htmlediting.cpp:
20714 (khtml::DeleteSelectionCommand::initializePositionData):
20715 - skip smart delete if the selection to delete already starts or ends with whitespace
20717 * khtml/khtml_part.cpp:
20718 (KHTMLPart::handleMousePressEventDoubleClick):
20719 - preserve selection on double-click when range is already selected
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
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
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
20738 2005-03-15 Maciej Stachowiak <mjs@apple.com>
20742 <rdar://problem/4053266> Pressing return a few times right after a link makes the new blank lines part of the link
20744 * khtml/editing/htmlediting.cpp:
20745 (khtml::InsertLineBreakCommand::doApply): Use
20746 positionOutsideContainingSpecialElement in the right two places.
20747 (khtml::InsertParagraphSeparatorCommand::doApply): Ditto.
20749 - move all these helper functions higher in the file
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):
20762 2005-03-14 Maciej Stachowiak <mjs@apple.com>
20766 <rdar://problem/4049925> Pasting right after a link makes pasted content part of the link (without visible style change)
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
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
20780 2005-03-15 Richard Williamson <rjw@apple.com>
20782 Fixed <rdar://problem/4053658> Crash getting direction at maps.google.com
20784 Add non nil style() check.
20786 Reviewed by Dave Harrison.
20788 * khtml/rendering/render_table.cpp:
20789 (RenderTableCell::collapsedRightBorder):
20791 2005-03-15 Kevin Decker <kdecker@apple.com>
20795 Fixed: <rdar://problem/4041374> REGRESSION (185-186): unload handlers (at least those added with addEventListener) are broken
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().
20799 This fixes a recent regression from:
20801 <rdar://problem/3977973> pages on ebay leak referenced JavaScript objects -- over time browsing becomes super-slow
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.
20808 2005-03-15 Ken Kocienda <kocienda@apple.com>
20814 <rdar://problem/4052642> Each delete keystroke is in its own undo group; not included in undo group with other typing
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
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.
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.
20830 2005-03-15 John Sullivan <sullivan@apple.com>
20834 - fixed <rdar://problem/4052246> crash in KWQKHTMLPart::createPart() trying to display local file in frame
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.
20841 2005-03-15 Kevin Decker <kdecker@apple.com>
20843 Reviewed by Ken and Maciej.
20845 New fix for <rdar://problem/3667701> crash in KHTMLPart::jScriptEnabled()
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.
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.
20861 2005-03-14 David Harrison <harrison@apple.com>
20863 Reviewed by Darin, Maciej.
20865 <rdar://problem/4046103> REGRESSION (Mail): clicking after style change sets insertion point incorrectly
20867 Also fixes crash by adding nil check.
20869 * khtml/editing/htmlediting.cpp:
20870 (khtml::MoveSelectionCommand::doApply):
20871 Check the node for nil.
20873 * khtml/khtml_part.cpp:
20874 (KHTMLPart::khtmlMouseReleaseEvent):
20875 Use the node from the event rather than from the selection.
20877 2005-03-14 Darin Adler <darin@apple.com>
20879 Reviewed by Harrison.
20881 - fixed <rdar://problem/4049776> Seed: Mail: Disable spellcheck leaves red artifacts
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.
20891 * kwq/WebCoreBridge.h: Added unmarkAllMisspellings for WebKit.
20892 * kwq/WebCoreBridge.mm: (-[WebCoreBridge unmarkAllMisspellings]): Added. Calls removeAllMarkers.
20894 2005-03-14 Richard Williamson <rjw@apple.com>
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
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.
20902 * khtml/xml/dom_nodeimpl.cpp:
20903 (NodeImpl::dispatchUIEvent):
20905 2005-03-14 Ken Kocienda <kocienda@apple.com>
20909 Added a couple of comments about setChanged() to this code based on my experiences with 4047028.
20911 * khtml/css/css_valueimpl.cpp:
20912 (DOM::CSSMutableStyleDeclarationImpl::addParsedProperties)
20913 (DOM::CSSMutableStyleDeclarationImpl::merge)
20915 2005-03-14 Ken Kocienda <kocienda@apple.com>
20921 <rdar://problem/4047028> Changing quote levels on stylized text causes it to be sent as colored (Blue). Tiger8A410
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.
20930 2005-03-14 Vicki Murley <vicki@apple.com>
20932 - roll out this change for now, since it was denied by CCC
20934 2005-03-11 David Harrison <harrison@apple.com>
20938 <rdar://problem/4046602> WebCore invokes undefined behavior when the spell checker isn't running
20940 * kwq/KWQKHTMLPart.mm:
20941 (KWQKHTMLPart::advanceToNextMisspelling):
20942 (KWQKHTMLPart::markMisspellings):
20945 2005-03-14 Ken Kocienda <kocienda@apple.com>
20951 <rdar://problem/4050403> Mail crashes after pasting and deleting the content of one Excel cell
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
20961 2005-03-14 Ken Kocienda <kocienda@apple.com>
20967 <rdar://problem/4029632> Mail crashes in DOM::NodeImpl::isBlockFlow() after pasting text with alignment style and BR element from Safari
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.
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.
20984 2005-03-14 Ken Kocienda <kocienda@apple.com>
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).
20991 * khtml/html/htmltokenizer.cpp: Roll out recent change.
20992 (khtml::HTMLTokenizer::write)
20993 * khtml/html/htmltokenizer.h: Ditto.
20995 2005-03-13 Darin Adler <darin@apple.com>
20997 Reviewed by Ken and Maciej.
20999 - fixed <rdar://problem/4049040> REGRESSION (403-405): security check prevents user stylesheet from loading (Dictionary.app doesn't work at all!)
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.
21004 2005-03-13 Kevin Decker <kdecker@apple.com>
21008 Fixed: <rdar://problem/3667701> crash in KHTMLPart::jScriptEnabled()
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
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.
21020 2005-03-13 Darin Adler <darin@apple.com>
21022 Reviewed by John and Ken.
21024 - fixed <rdar://problem/4044347> REGRESSION (Mail): Control-K in particular message moves insertion point to previous line
21026 Tweaked the deleting code, and added three new deleting layout tests to confirm the new code works.
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.
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.
21047 2005-03-13 Darin Adler <darin@apple.com>
21049 - fixed <rdar://problem/4049172> REGRESSION (403-405): Gmail: text box in "Invite a friend" section overlaps other sections
21051 Rolled out fix for <rdar://problem/3952698> Function buttons do not display properly with Telia Webmail
21053 * khtml/rendering/render_replaced.cpp: (RenderReplaced::calcMinMaxWidth): Back to previous version of this file.
21055 2005-03-12 Maciej Stachowiak <mjs@apple.com>
21059 <rdar://problem/4046144> RSS pages leave a hole in local file security policy (need to revert feed: exemption)
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.
21066 2005-03-11 Maciej Stachowiak <mjs@apple.com>
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
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.
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
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.
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.
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:
21117 2005-03-11 Adele Amchan <adele@apple.com>
21119 backing out fix for <rdar://problem/4021711> REGRESSION (125-188): blank pages when browsing forum at cooperativeresearch.org - cached external script problem
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
21126 * khtml/html/htmltokenizer.cpp:
21127 (khtml::HTMLTokenizer::scriptHandler):
21129 2005-03-11 David Harrison <harrison@apple.com>
21133 <rdar://problem/4046602> WebCore invokes undefined behavior when the spell checker isn't running
21135 * kwq/KWQKHTMLPart.mm:
21136 (KWQKHTMLPart::advanceToNextMisspelling):
21137 (KWQKHTMLPart::markMisspellings):
21140 2005-03-11 Ken Kocienda <kocienda@apple.com>
21144 * ForwardingHeaders/editing/visible_units.h: Added.
21146 2005-03-11 Ken Kocienda <kocienda@apple.com>
21152 <rdar://problem/4045521> Hitting return key with full line selected does not add blank line as it should
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.
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.
21170 2005-03-11 David Harrison <harrison@apple.com>
21174 <rdar://problem/4009446> AX: kAXTextMarkerForPositionParameterizedAttribute not working correctly (required for Dictionary pop-up)
21176 * kwq/KWQAccObject.mm:
21177 (-[KWQAccObject accessibilityAttributeValue:]):
21180 (-[KWQAccObject doAXTextMarkerForPosition:]):
21183 (-[KWQAccObject doAXBoundsForTextMarkerRange:]):
21184 Use the selection's document instead of the top document, to accommodate frames, etc.
21186 (-[KWQAccObject accessibilityAttributeValue:forParameter:]):
21187 Fixed parameter processing to look for NSValue instead of AXValue.
21189 2005-03-11 Ken Kocienda <kocienda@apple.com>
21191 Reviewed by Harrison
21195 <rdar://problem/3972665> 8A360: HTML message partially truncated on left hand side, text-indent from Script Editor
21197 This was fixed, then regressed with Harrison's fix for this bug:
21199 <rdar://problem/3948453> Can't type accented chars as first character in Stickies widget
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.
21205 2005-03-10 Ken Kocienda <kocienda@apple.com>
21209 Fix for these bugs:
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
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.
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.
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.
21266 2005-03-10 Darin Adler <darin@apple.com>
21268 Reviewed by Richard.
21270 - fixed <rdar://problem/4037700> Every character typed causes stat call for /usr/share/icu/icudt32b_char.brk
21272 * khtml/rendering/render_text.cpp: (getCharacterBreakIterator): Set boolean "got iterator" to true.
21274 2005-03-10 Darin Adler <darin@apple.com>
21278 - fixed <rdar://problem/4042867> "Bigger" changes the font size of too much text when the selection is on a style-change boundary
21280 * khtml/editing/htmlediting.cpp: (khtml::ApplyStyleCommand::applyRelativeFontStyleChange):
21281 Advance out of the starting text node if we're at the end of it.
21283 2005-03-10 Darin Adler <darin@apple.com>
21285 * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::write): Fixed assertion for nested calls to write.
21287 2005-03-10 David Harrison <harrison@apple.com>
21291 <rdar://problem/4032346> REGRESSION (Mail): changing 1st line of a URL that wraps to two lines doesn't always update 2nd line
21293 * khtml/rendering/bidi.cpp:
21294 (khtml::RenderBlock::matchedEndLine):
21295 Look at first clean line in case line wrap implicitly dirtied it.
21297 2005-03-10 Maciej Stachowiak <mjs@apple.com>
21301 <rdar://problem/4046018> REGRESSION (TOT): RSS pages don't display anything
21303 * kwq/WebCoreBridge.mm:
21304 (-[WebCoreBridge canLoadURL:fromReferrer:hideReferrer:]): Exempt
21305 feed: and feeds: pages from the local file security check.
21307 2005-03-10 Darin Adler <darin@apple.com>
21309 Change written by Steve Peters, reviewed by me.
21311 - fixed <rdar://problem/4045924> improve compareBoundaryPoints to make style changes faster
21313 * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::compareBoundaryPoints):
21314 Do early outs in a couple of the loops to make things faster.
21316 2005-03-10 Jens Alfke <jens@apple.com>
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.
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.
21324 This ensures that the applet will get loaded even if there is no explicit </applet> tag.
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.
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):
21338 2005-03-10 Ken Kocienda <kocienda@apple.com>
21344 <rdar://problem/4024929> REGRESSION (Mail): Pasting text with multiple reply levels removes one level instead of all
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.
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.
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:
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.
21365 This test result changed is an acceptable way.
21367 * layout-tests/editing/pasteboard/paste-text-013-expected.txt
21368 * layout-tests/editing/pasteboard/paste-text-013.html
21370 NOTE: This change causes a regression in this layout test:
21372 * layout-tests/editing/pasteboard/paste-text-013.html
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
21377 2005-03-09 Maciej Stachowiak <mjs@apple.com>
21379 Reviewed by Richard.
21381 <rdar://problem/4040776> Dashboard (Weather widget) is a memory hog
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.
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:
21414 2005-03-06 Maciej Stachowiak <mjs@apple.com>
21418 <rdar://problem/4005575> Arbitrary file disclosure vulnerability due to ability to load local html from remote content
21420 * khtml/ecma/kjs_html.cpp:
21421 (KJS::HTMLDocument::putValue):
21422 * khtml/ecma/kjs_window.cpp:
21424 (WindowFunc::tryCall):
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:]):
21446 2005-03-09 Richard Williamson <rjw@apple.com>
21448 Fixed <rdar://problem/4032938> Safari: text layout for MS P Gothic font is corrupted
21450 Remove our hacked special case now we have our own cache of
21451 which fonts are fixed pitch.
21453 Reviewed by Maciej.
21456 (QFont::isFixedPitch):
21458 2005-03-09 David Harrison <harrison@apple.com>
21460 Reviewed by Maciej.
21462 <rdar://problem/4037141> REGRESSION (Mail): Pasting deletes preceding blank lines with certain steps
21464 * khtml/editing/htmlediting.cpp:
21465 (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent):
21466 Add check for anonymous text after blocks.
21468 2005-03-08 Ken Kocienda <kocienda@apple.com>
21472 Fix for these bugs:
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
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.
21486 2005-03-08 Darin Adler <darin@apple.com>
21488 Change written by Hyatt, reviewed by me.
21490 - fixed <rdar://problem/3952698> Function buttons do not display properly with Telia Webmail
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.
21497 2005-03-08 David Harrison <harrison@apple.com>
21501 <rdar://problem/4039006> REGRESSION (Mail): Command-left-arrow goes to the start of the wrong line in particular message
21503 * khtml/editing/visible_units.cpp:
21504 (khtml::startOfLine):
21505 Use firstLeafChild() instead of firstChild().
21507 2005-03-08 Richard Williamson <rjw@apple.com>
21509 Fixed by Tom Madden.
21511 Fixed <rdar://problem/4038586> 8A402: Osaka-Mono text overlaps when typing with input method
21513 We weren't clearing the "all ascii" flag when setting text on
21516 Reviewed by Richard Williamson.
21518 * khtml/rendering/render_text.cpp:
21519 (RenderText::setText):
21521 2005-03-08 Darin Adler <darin@apple.com>
21523 Reviewed by Ken and Maciej.
21525 - fixed <rdar://problem/3988809> REGRESSION (Mail): wide space characters are turned into plain old spaces when typed or pasted
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.
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.
21536 * khtml/editing/html_interchange.cpp: (convertHTMLTextToInterchangeFormat): Changed to use
21537 isCollapsibleWhitespace and removed unnecessary calls to latin1().
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.
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.
21561 2005-03-07 John Sullivan <sullivan@apple.com>
21565 - <rdar://problem/4040868> REGRESSION (Mail, 403-403+): Drag and drop deletes text,
21566 many other bad editing problems
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.
21573 2005-03-07 Richard Williamson <rjw@apple.com>
21575 Additional nil check from fix for 4040749.
21577 * khtml/rendering/render_box.cpp:
21578 (RenderBox::setStyle):
21580 2005-03-07 Richard Williamson <rjw@apple.com>
21582 Additional nil check from fix for 4040749.
21584 * khtml/rendering/render_layer.cpp:
21585 (RenderLayer::updateLayerPosition):
21587 2005-03-07 David Harrison <harrison@apple.com>
21591 <rdar://problem/4033202> REGRESSION (Mail): Can't arrow up at a particular spot in a particular Mail message
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.
21596 * khtml/editing/visible_units.cpp:
21597 (khtml::previousLinePosition):
21599 2005-03-07 Richard Williamson <rjw@apple.com>
21601 Fixed <rdar://problem/4040749> REGRESSION (125-178): opacity style not working, breaks fading images on okcupid.com
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.
21608 * khtml/rendering/render_box.cpp:
21609 (RenderBox::setStyle):
21610 * khtml/rendering/render_layer.cpp:
21611 (RenderLayer::updateLayerPosition):
21613 2005-03-07 Christy Warren <kali@apple.com>
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
21621 2005-03-07 David Harrison <harrison@apple.com>
21625 <rdar://problem/4029225> REGRESSION (Mail): Crash if hit return after dragging in attachment - DeleteSelectionCommand::initializePositionData
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.
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.
21636 2005-03-07 Ken Kocienda <kocienda@apple.com>
21642 <rdar://problem/4040136> Expose SPI for WebCore's functions to create document fragments from plain text and markup strings
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.
21649 2005-03-07 Ken Kocienda <kocienda@apple.com>
21655 <rdar://problem/4039676> REGRESSION (Mail): in reply, <cr> on pasted text (without trailing newline) is eaten when pasted above date
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.
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.
21666 * layout-tests/editing/pasteboard/paste-text-018-expected.txt: Added.
21667 * layout-tests/editing/pasteboard/paste-text-018.html: Added.
21669 2005-03-07 Ken Kocienda <kocienda@apple.com>
21675 <rdar://problem/4035648> REGRESSION (Mail): line feed in source HTML file causes bad copy/paste behavior
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.
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.
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.
21692 All layout tests pass with this change.
21694 * khtml/editing/markup.cpp:
21695 (khtml::createMarkup)
21699 * layout-tests/editing/pasteboard/paste-4035648-fix-expected.txt: Added.
21700 * layout-tests/editing/pasteboard/paste-4035648-fix.html: Added.
21702 2005-03-06 Christy Warren <kali@appple.com>
21706 * khtml/rendering/render_text.cpp:
21707 (lastRendererOnPrevLine): helper for RenderText::caretRect
21708 (RenderText::caretRect): added code to properly handle bidi ordered text boxes
21710 2005-03-06 Christy Warren <kali@apple.com>
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
21719 2005-03-05 John Sullivan <sullivan@apple.com>
21721 Reviewed by Maciej.
21723 - fixed <rdar://problem/4038417> Mail crashed in StyleChange::checkForLegacyHTMLStyleChange
21724 when composing a reply
21726 * khtml/editing/htmlediting.cpp:
21727 (khtml::StyleChange::checkForLegacyHTMLStyleChange):
21728 Added missing nil check.
21730 2005-03-05 Darin Adler <darin@apple.com>
21734 - fixed <rdar://problem/4038478> Crash in renderer viewing RSS feed at feed://wvs.topleftpixel.com/index.rdf
21736 * khtml/xml/dom_docimpl.cpp: (widgetForNode): Check for nil before going from node to renderer.
21738 2005-03-05 Darin Adler <darin@apple.com>
21740 Reviewed by Richard.
21742 - fixed <rdar://problem/4037700> Every character typed causes stat call for /usr/share/icu/icudt32b_char.brk
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.
21750 2005-03-05 Ken Kocienda <kocienda@apple.com>
21756 <rdar://problem/4038267> REGRESSION (Mail): Crash copying and pasting end of paragraph
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.
21767 * khtml/editing/htmlediting.cpp:
21768 (khtml::ReplaceSelectionCommand::doApply)
21769 (khtml::ReplaceSelectionCommand::completeHTMLReplacement)
21771 * layout-tests/editing/pasteboard/paste-4038267-fix-expected.txt: Added.
21772 * layout-tests/editing/pasteboard/paste-4038267-fix.html: Added.
21774 2005-03-05 Darin Adler <darin@apple.com>
21778 - fixed <rdar://problem/4025918> images copied from Safari with relative src URLs aren't pasted into Mail messages (KURL resolves base URLs incorrectly)
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.
21784 2005-03-04 John Sullivan <sullivan@apple.com>
21788 - fixed <rdar://problem/4033705> REGRESSION (Mail): Copy/Paste from Excel
21789 crashes Mail in KWQKHTMLPart::fontForSelection(bool*) const + 232
21791 * kwq/KWQKHTMLPart.mm:
21792 (KWQKHTMLPart::fontForSelection):
21793 Check for nil startNode, not just nil renderer.
21795 2005-03-04 David Harrison <harrison@apple.com>
21797 Reviewed by Ken, Richard.
21799 <rdar://problem/3996383> REGRESSION (Mail): Deleting all of first line also deletes line ending
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.
21804 * khtml/editing/htmlediting.cpp:
21805 (khtml::CompositeEditCommand::insertBlockPlaceholder):
21806 Now does insert instead of append!
21808 (khtml::CompositeEditCommand::appendBlockPlaceholder):
21809 New. Actually does append.
21811 (khtml::CompositeEditCommand::addBlockPlaceholderIfNeeded):
21812 Renamed from insertBlockPlaceholderIfNeeded because it can insert or append. Also accepts "force insert" flag.
21814 (khtml::CompositeEditCommand::removeBlockPlaceholder):
21815 Renamed for succinctness from removeBlockPlaceholderIfNeeded.
21817 (khtml::DeleteSelectionCommand::insertPlaceholderForAncestorBlockContent):
21818 (khtml::DeleteSelectionCommand::moveNodesAfterNode):
21819 Use renamed methods.
21821 (khtml::DeleteSelectionCommand::doApply):
21822 Use addBlockPlaceholderIfNeeded "force insert" flag if deleting whole paragraphs did not leave an empty one.
21824 (khtml::InsertParagraphSeparatorCommand::doApply):
21825 (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
21826 (khtml::InsertTextCommand::input):
21827 Use renamed methods.
21829 * khtml/editing/htmlediting.h:
21830 Renamed and new methods per above.
21833 2005-03-04 Chris Blumenberg <cblu@apple.com>
21835 Fixed: <rdar://problem/4032840> REGRESSION (Mail): crash in RemoveNodeCommand after pasting attachment at end of message
21839 * khtml/editing/visible_units.cpp:
21840 (khtml::endOfParagraph): don't consider text nodes that have no rendered characters
21842 2005-03-04 Richard Williamson <rjw@apple.com>
21844 Fixed <rdar://problem/4034764> REGRESSION(125-188)Viewing text/plain page and going back/forward corrupts HTML pages (google.com)
21846 The parse mode wasn't be restored to the document when going
21851 * kwq/KWQKHTMLPart.mm:
21852 (KWQKHTMLPart::openURLFromPageCache):
21853 * kwq/KWQPageState.h:
21854 * kwq/KWQPageState.mm:
21855 (-[KWQPageState initWithDocument:URL:windowProperties:locationProperties:interpreterBuiltins:]):
21857 2005-03-04 Ken Kocienda <kocienda@apple.com>
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
21865 2005-03-04 Ken Kocienda <kocienda@apple.com>
21867 Reviewed by Harrison
21871 <rdar://problem/4032543> REGRESSION (Mail): Mail hangs when quoted text is pasted twice
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.
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()
21899 2005-03-04 Darin Adler <darin@apple.com>
21903 - fixed <rdar://problem/4036817> REGRESSION: ctrl-y broken when a line + carriage return cut
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.
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.
21916 2005-03-04 Darin Adler <darin@apple.com>
21920 - fixed <rdar://problem/4020413> REGRESSION (Mail): can't use fonts with names that start with "#" in Mail (Korean fonts)
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.
21929 * khtml/editing/markup.cpp:
21930 (khtml::startMarkup): Added comments about lack of quoting for attributes.
21931 (khtml::createMarkup): Ditto.
21933 2005-03-04 Adele Amchan <adele@apple.com>
21937 Fix for <rdar://problem/4021711> REGRESSION(125-188) blank pages when browsing forum at cooperativeresearch.org - cached external script problem
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
21942 2005-03-04 Ken Kocienda <kocienda@apple.com>
21948 <rdar://problem/4029632> Tiger 8A398:- Mail crashes in DOM::NodeImpl::isBlockFlow() after pasting text with alignment style and BR element from Safari
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.
21957 2005-03-03 Chris Blumenberg <cblu@apple.com>
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
21961 Reviewed by harrison.
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.
21967 2005-03-03 Ken Kocienda <kocienda@apple.com>
21973 <rdar://problem/4035198> Pasting text with different styles does not get reproducible results
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.
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.
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.
22004 * layout-tests/editing/style/typing-style-003-expected.txt: Results changed in an acceptable way.
22006 2005-03-02 Darin Adler <darin@apple.com>
22008 Reviewed by Maciej.
22010 - fixed <rdar://problem/4029741> REGRESSION (188-189): <input type=text> are cleared when you hide/show them
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.
22018 2005-03-02 Ken Kocienda <kocienda@apple.com>
22024 <rdar://problem/4006151> in reply, caret moves to next line after toggling bold style then typing
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
22032 2005-03-02 Darin Adler <darin@apple.com>
22034 Reviewed by Maciej.
22036 - fixed <rdar://problem/4024966> crash happened twice in [KWQTextField setHasFocus:] + 0xe8
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.
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:]):
22074 2005-03-02 Richard Williamson <rjw@apple.com>
22076 Fixed <rdar://problem/4031483> Leak (RenderObject::createInlineBox) reproducible with Stock widget
22078 We were leaking inline block line boxes. Argh!
22082 * khtml/rendering/render_flow.cpp:
22083 (RenderFlow::dirtyLineBoxes):
22084 * khtml/rendering/render_line.cpp:
22085 (khtml::InlineBox::deleteLine):
22087 2005-03-02 Chris Blumenberg <cblu@apple.com>
22089 Fixed: <rdar://problem/3976872> REGRESSION (Mail): Pasted plain text doesn't get the proper style if pasted into newlines
22091 Reviewed by kocienda.
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:
22102 2005-03-02 Maciej Stachowiak <mjs@apple.com>
22106 <rdar://problem/4031718> REGRESSION (401-401+): Safari reproducible crash setting up scope in JSLazyEventListener::parseCode authenticating to bugweb
22108 * khtml/ecma/kjs_events.cpp:
22109 (JSLazyEventListener::parseCode): If originalNode is NULL, don't
22110 mess with the scope chain.
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.
22118 2005-03-02 David Harrison <harrison@apple.com>
22122 <rdar://problem/3948453> Can't type accented chars as first character in Stickies widget
22124 * khtml/editing/htmlediting.cpp:
22125 (khtml::ReplaceSelectionCommand::doApply):
22127 2005-03-02 Ken Kocienda <kocienda@apple.com>
22132 <rdar://problem/4020574> REGRESSION (Mail): copy/paste first part of reply-quoted text alters downstream style
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.
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.
22156 2005-03-01 Ken Kocienda <kocienda@apple.com>
22162 <rdar://problem/4011358> REGRESSION(Mail): after dragging text to mail message and deleting, typing or dragging new text doesn't work
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).
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.
22173 2005-03-01 Ken Kocienda <kocienda@apple.com>
22177 Improved fix for this bug:
22179 <rdar://problem/3996605> Insert paragraph command puts new block in wrong place, creating difficult-to-handle HTML
22181 Maciej and I discussed this situation at length, and we came up with a better fix than I did earlier.
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.
22188 Results studied to make sure there were no problems.
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
22208 * layout-tests/editing/inserting/insert-div-027.html
22209 * layout-tests/editing/inserting/insert-div-027-expected.txt
22211 2005-03-01 David Hyatt <hyatt@apple.com>
22213 Fix for 4030890, regression with <sup> on Google. Fix some bogus != comparison checks in verticalPositionHint.
22217 (RenderObject::getVerticalPosition):
22219 2005-03-01 Chris Blumenberg <cblu@apple.com>
22221 Fixed: <rdar://problem/4030669> smart delete does not delete spaces from pasted content
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.
22233 2005-03-01 Richard Williamson <rjw@apple.com>
22235 Fixed <rdar://problem/4029772> Weather widgets use a lot of memory (more that other widgets)
22237 The string objects created by KWQHeaderStringFromDictionary() leaked.
22239 Reviewed by John Louch.
22241 * kwq/KWQLoader.mm:
22242 (KWQHeaderStringFromDictionary):
22244 2005-03-01 Jens Alfke <jens@apple.com>
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.
22251 * khtml/rendering/render_frames.cpp:
22252 (RenderPartObject::updateWidget):
22254 2005-03-01 Richard Williamson <rjw@apple.com>
22256 Fixed <rdar://problem/3990258> REGRESSION (125.12-181): top of picture that spans two pages is cut off on print from Safari
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.
22265 * khtml/rendering/render_flow.cpp:
22266 (RenderFlow::paintLines):
22268 2005-03-01 Chris Blumenberg <cblu@apple.com>
22270 Fixed: <rdar://problem/4030669> smart delete does not delete spaces from pasted content
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.
22282 2005-03-01 Ken Kocienda <kocienda@apple.com>
22288 <rdar://problem/4030068> Trailing <return> gets eaten when pasted at the end of a document
22290 * khtml/editing/htmlediting.cpp:
22291 (khtml::ReplaceSelectionCommand::doApply): Add code to handle formerly-unhandled end-of-document case.
22293 2005-03-01 Maciej Stachowiak <mjs@apple.com>
22297 <rdar://problem/4003774> REGRESSION(125-181): JavaScript problems @ Yankee/Dixie quiz
22299 Reworked how scopes are set up for event handlers to match other
22300 browser. This includes the following changes:
22302 - Special scope entries are set up at the time the event handler
22303 is created, not at the time it fires.
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
22310 - Special scope is based on the DOM node on which the handler is
22311 an attribute, not the event target.
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
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:
22355 2005-03-01 Chris Blumenberg <cblu@apple.com>
22357 Backed out my patch since the tree was closed.
22359 * khtml/editing/htmlediting.cpp:
22360 (khtml::DeleteSelectionCommand::initializePositionData):
22361 * khtml/editing/jsediting.cpp:
22363 2005-03-01 Chris Blumenberg <cblu@apple.com>
22365 Fixed: <rdar://problem/4030669> smart delete does not delete spaces from pasted content
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.
22377 2005-03-01 Ken Kocienda <kocienda@apple.com>
22383 <rdar://problem/4030068> Trailing <return> gets eaten when pasted at the end of a document
22385 * khtml/editing/htmlediting.cpp:
22386 (khtml::ReplaceSelectionCommand::doApply): Add code to handle formerly-unhandled end-of-document case.
22388 2005-03-01 David Harrison <harrison@apple.com>
22392 <rdar://problem/3915560> Mail would like an SPI to enable "smart" text paste/drop
22394 * kwq/WebCoreBridge.h:
22395 * kwq/WebCoreBridge.mm:
22396 (-[WebCoreBridge smartDeleteRangeForProposedRange:]):
22397 (-[WebCoreBridge smartInsertForString:replacingRange:beforeString:afterString:]):
22400 2005-03-01 Chris Blumenberg <cblu@apple.com>
22402 Fixed: <rdar://problem/4030404> selection granularity should be set when extending selection via JS
22404 Reviewed by kocienda.
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.
22423 2005-03-01 Chris Blumenberg <cblu@apple.com>
22425 Fixed: <rdar://problem/4029934> smart paste with plain text can add too many spaces
22427 Reviewed by kocienda.
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:
22437 2005-03-01 Ken Kocienda <kocienda@apple.com>
22443 <rdar://problem/3996605> Insert paragraph command puts new block in wrong place, creating difficult-to-handle HTML
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.
22451 All these tests change, but either in insignificant ways, or for the better.
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:
22471 New test to check specific problem mentioned in the bug.
22473 * layout-tests/editing/inserting/insert-div-026-expected.txt: Added.
22474 * layout-tests/editing/inserting/insert-div-026.html: Added.
22476 2005-02-28 Maciej Stachowiak <mjs@apple.com>
22480 <rdar://problem/4002864> REGRESSION(125-146) getElementById in onload fails in a test case involving external resources
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.
22486 * khtml/xml/dom_elementimpl.cpp:
22487 (ElementImpl::insertedIntoDocument):
22488 (ElementImpl::removedFromDocument):
22489 (ElementImpl::attach):
22490 (ElementImpl::updateId):
22491 * khtml/xml/dom_elementimpl.h:
22493 Make sure that insertedIntoDocument is called before firing any
22496 * khtml/xml/dom_nodeimpl.cpp:
22497 (NodeBaseImpl::dispatchChildInsertedEvents):
22499 2005-02-28 David Hyatt <hyatt@apple.com>
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.
22506 * khtml/rendering/render_box.cpp:
22507 (RenderBox::detach):
22508 * khtml/rendering/render_layer.cpp:
22509 (RenderLayer::~RenderLayer):
22511 2005-02-28 Chris Blumenberg <cblu@apple.com>
22513 Fixed: <rdar://problem/4024786> REGRESSION (Mail): "Smart paste" plain-text word into Blot leaves insertion point misplaced
22515 Reviewed by kocienda.
22517 * khtml/editing/htmlediting.cpp:
22518 (khtml::ReplaceSelectionCommand::completeHTMLReplacement): Call updateLayout so caretMinOffset and caretMaxOffset return correct values.
22520 2005-02-28 John Sullivan <sullivan@apple.com>
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)
22527 * kwq/WebCoreBridge.h:
22528 add nextValidKeyViewOutsideWebFrameViews (code is in WebKit)
22530 2005-02-28 Ken Kocienda <kocienda@apple.com>
22536 <rdar://problem/3972665> 8A360: HTML message partially truncated on left hand side, text-indent from Script Editor
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.
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.
22556 * layout-tests/editing/style/smoosh-styles-003.html
22557 * layout-tests/editing/style/smoosh-styles-003-expected.txt
22559 2005-02-28 Richard Williamson <rjw@apple.com>
22561 Fixed <rdar://problem/4026985> CrashTracer: ...14 crashes at com.apple.WebCore: -[KWQPageState invalidate] + 32
22563 Added more nil checking and ASSERTS.
22564 Without a reproducible case this is hard to definitively resolve.
22566 Reviewed by John Sullivan.
22568 * kwq/KWQPageState.mm:
22569 (-[KWQPageState invalidate]):
22571 2005-02-28 Richard Williamson <rjw@apple.com>
22573 Fixed <rdar://problem/4027702> 3.5% performance regression btwn Safari-188 and Safari-400
22575 I inadvertently checked in some debugging code that disabled
22576 style sharing. Backed out that change.
22578 * khtml/css/cssstyleselector.cpp:
22579 (khtml::CSSStyleSelector::styleForElement):
22581 2005-02-28 Chris Blumenberg <cblu@apple.com>
22583 Fixed: <rdar://problem/4026639> www.bmw.ca configurator does not work with Safari
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
22590 2005-02-28 Ken Kocienda <kocienda@apple.com>
22596 <rdar://problem/4026906> Paste of HTML table content can break table structure
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.
22605 2005-02-28 Chris Blumenberg <cblu@apple.com>
22607 Fixed: <rdar://problem/4023566> Stickies: Crash in ReplacementFragment::insertFragmentForTestRendering on paste
22609 Reviewed by kocienda.
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:
22621 2005-02-27 Maciej Stachowiak <mjs@apple.com>
22625 <rdar://problem/3993557> REGRESSION (125-180-ish): getElementsByTagName no longer works with namespace designations
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.
22631 2005-02-25 Darin Adler <darin@apple.com>
22635 - fixed <rdar://problem/4025618> Crash while searching at hollywoodvideo.com
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.
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.
22652 2005-02-25 Darin Adler <darin@apple.com>
22656 - fixed <rdar://problem/4025088> window onblur and onfocus don't fire when text field has focus
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.
22663 * kwq/WebCoreBridge.h: Added setWindowHasFocus: method to the bridge.
22664 * kwq/WebCoreBridge.mm: (-[WebCoreBridge setWindowHasFocus:]): Added. Calls method on the part.
22666 2005-02-25 Darin Adler <darin@apple.com>
22670 - re-fixed <rdar://problem/3665430> horizontal scroll bar of text area does not show, even when text is wide in "no wrap" mode
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.
22675 2005-02-25 Ken Kocienda <kocienda@apple.com>
22681 <rdar://problem/4021518> 8A394 Mail crashes during paste: khtml::RootInlineBox::closestLeafChildForXPos
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.
22688 2005-02-25 David Hyatt <hyatt@apple.com>
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.
22693 Reviewed by kocienda
22695 * khtml/xml/dom_nodeimpl.cpp:
22696 (NodeImpl::nextRenderer):
22698 2005-02-25 Richard Williamson <rjw@apple.com>
22700 Fixed <rdar://problem/3382926> Bidi neutrals at RTL/LTR boundaries not handled correctly.
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.
22708 * khtml/rendering/bidi.cpp:
22709 (khtml::RenderBlock::bidiReorderLine):
22710 (khtml::RenderBlock::determineStartPosition):
22714 2005-02-25 Ken Kocienda <kocienda@apple.com>
22718 Roll out Chris' change to fix this bug:
22720 <rdar://problem/4023566> Stickies: Crash in ReplacementFragment::insertFragmentForTestRendering on paste
22722 That code change is responsible for all these new crashers:
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
22728 Since we wish to close the tree for a build right now, I am rolling out rather than investigating.
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
22739 2005-02-25 Ken Kocienda <kocienda@apple.com>
22745 <rdar://problem/4020108> Pasting text into message makes Mail crash reproducibly
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
22750 This will not crash deployment builds, so I am going to land.
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.
22757 2005-02-25 Vicki Murley <vicki@apple.com>
22759 - recommit this change, since rolling it out did NOT fix the performance regression!
22761 2005-02-23 Darin Adler <darin@apple.com>
22765 - fixed <rdar://problem/4011405> REGRESSION (180-181): Unconfirmed text disappears when text focus moves
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.
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
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.
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.
22792 * khtml/rendering/render_form.cpp:
22793 (RenderLineEdit::updateFromElement): Don't re-get the value from the DOM if valueMatchesRenderer
22795 (RenderLineEdit::slotTextChanged): Call setValueFromRenderer instead of manipulating the DOM
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.
22803 2005-02-25 Chris Blumenberg <cblu@apple.com>
22805 Fixed: <rdar://problem/4023566> Stickies: Crash in ReplacementFragment::insertFragmentForTestRendering on paste
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:
22819 2005-02-25 Darin Adler <darin@apple.com>
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.
22825 2005-02-25 Vicki Murley <vicki@apple.com>
22829 - back out this change, since it causes a 3.5% performance regression
22831 2005-02-23 Darin Adler <darin@apple.com>
22835 - fixed <rdar://problem/4011405> REGRESSION (180-181): Unconfirmed text disappears when text focus moves
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.
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
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.
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.
22862 * khtml/rendering/render_form.cpp:
22863 (RenderLineEdit::updateFromElement): Don't re-get the value from the DOM if valueMatchesRenderer
22865 (RenderLineEdit::slotTextChanged): Call setValueFromRenderer instead of manipulating the DOM
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.
22873 2005-02-25 Darin Adler <darin@apple.com>
22877 - fixed <rdar://problem/4024786> REGRESSION (Mail): "Smart paste" plain-text word into Blot leaves insertion point misplaced
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.
22883 2005-02-25 David Hyatt <hyatt@apple.com>
22885 Back out fix for 3382926, since it breaks LTR text inside RTL contexts.
22889 * khtml/rendering/bidi.cpp:
22890 (khtml::BidiIterator::direction):
22892 2005-02-25 David Hyatt <hyatt@apple.com>
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.
22899 * khtml/rendering/render_layer.cpp:
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):
22926 2005-02-24 Maciej Stachowiak <mjs@apple.com>
22928 Reviewed by Darin and Dave a while ago.
22930 <rdar://problem/3996685> REGRESSION: Crash in KWQVectorImpl::at loading http://maps.google.com/mapfiles/homepanel.xsl
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.
22937 2005-02-24 Richard Williamson <rjw@apple.com>
22939 Fixed <rdar://problem/3382926> Bidi neutrals at RTL/LTR boundaries not handled correctly.
22941 Use mirror characters correctly when rendering with RTL directionality.
22945 * khtml/rendering/bidi.cpp:
22946 (khtml::BidiIterator::direction):
22948 2005-02-24 Richard Williamson <rjw@apple.com>
22950 Fixed <rdar://problem/3985889> REGRESSION (125-180): setting <img> src to GIF that already animated does not animate; just shows final frame
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:
22965 * kwq/KWQPixmap.mm:
22966 (QPixmap::QPixmap):
22967 (QPixmap::resetAnimation):
22968 * kwq/WebCoreImageRenderer.h:
22970 2005-02-24 Chris Blumenberg <cblu@apple.com>
22972 Fixed: <rdar://problem/4020110> Safari crashes in setAllData while taking a www.zoomerang.com survey
22976 * kwq/KWQResourceLoader.mm:
22977 (-[KWQResourceLoader finishJobAndHandle:]): clear the job after we've deleted to avoid reentrancy
22979 2005-02-24 Darin Adler <darin@apple.com>
22983 - fixed <rdar://problem/4023360> REGRESSION (186-187): image file upload is broken at pep.apple.com
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).
22989 2005-02-24 David Harrison <harrison@apple.com>
22993 <rdar://problem/3990849> AX: textMarkerRange for an AXUIElement within an AXWebArea
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.
23002 2005-02-24 David Harrison <harrison@apple.com>
23006 <rdar://problem/4004279> 3 AXSelectedTextChanged notifications are firing each time I type a character
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.
23012 2005-02-24 Darin Adler <darin@apple.com>
23016 - fixed <rdar://problem/3987619> in some cases, text doesn't resize with Format->Style->Bigger/Smaller
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,
23024 (khtml::ApplyStyleCommand::nodeFullyUnselected): Ditto.
23026 - make big improvement in <rdar://problem/3953636> Mail hung for ~10sec changing font of 84328 characters: khtml::ApplyStyleCommand::nodeFullySelected
23028 * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::compareBoundaryPoints): Improve algorithm based on suggestion
23031 - fixed <rdar://problem/4020305> REGRESSION (185-186): loading image in new window using document.write fails
23033 * khtml/xml/dom_docimpl.cpp: (DocumentImpl::open): If there is no parent document, don't blow away the base URL.
23035 - fixed <rdar://problem/4021701> REGRESSION (188-188+): form not submitted after pressing <return> at http://hrweb.apple.com
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.
23040 2005-02-23 Kevin Decker <kdecker@apple.com>
23044 Fixed <rdar://problem/4020747> REGRESSION: stray </applet> tags crash Safari
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.
23052 2005-02-23 Ken Kocienda <kocienda@apple.com>
23058 <rdar://problem/3977962> font loses bold style after pasting next to existing text and pressing return
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.
23071 * layout-tests/editing/style/block-styles-007-expected.txt
23072 * layout-tests/editing/style/block-styles-007.html
23074 2005-02-23 Ken Kocienda <kocienda@apple.com>
23080 <rdar://problem/4017641> REGRESSION (Mail): you can only bold/unbold a selection starting from end of line once
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.
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.
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
23109 2005-02-23 Richard Williamson <rjw@apple.com>
23111 Fixed <rdar://problem/3985579> 8A367: Dashboard: Stock widget not visible when click remove to remove single char ticker symbol
23113 Explicitly remove scroll bar views when removing them from
23116 Don't paint synchronously when the scroll position changes,
23117 this caused funky clip problems.
23121 * khtml/rendering/render_layer.cpp:
23122 (RenderLayer::scrollToOffset):
23123 (RenderLayer::setHasHorizontalScrollbar):
23124 (RenderLayer::setHasVerticalScrollbar):
23125 (RenderLayer::updateScrollInfoAfterLayout):
23127 2005-02-23 Ken Kocienda <kocienda@apple.com>
23133 <rdar://problem/3959996> REGRESSION (Mail): cursor moves to beginning of document when click is past end
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.
23140 2005-02-23 David Harrison <harrison@apple.com>
23144 <rdar://problem/4010059> BoundsForTextMarkerRange does not update with scrolled web area
23146 * kwq/KWQAccObject.mm:
23147 (-[KWQAccObject doAXBoundsForTextMarkerRange:]):
23148 Adjust for scrolling.
23150 2005-02-22 Maciej Stachowiak <mjs@apple.com>
23154 <rdar://problem/3949790> hitting return after pasted styled line results in extra content getting the style
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
23164 2005-02-23 David Harrison <harrison@apple.com>
23168 <rdar://problem/4014691> switch to correctly spelled NSAccessibilityForegroundColorTextAttribute constant
23170 Also removed two older, now unneeded, wrappers.
23172 * kwq/KWQAccObject.mm:
23173 (-[KWQAccObject visiblePositionForStartOfTextMarkerRange:]):
23174 (-[KWQAccObject visiblePositionForEndOfTextMarkerRange:]):
23175 Removed these older, now unneeded, wrappers.
23177 (NSAccessibilityForegroundColorTextAttributeWrapper):
23178 New wrapper for NSAccessibilityForegroundColorTextAttribute.
23180 (AXAttributeStringSetStyle):
23181 Use NSAccessibilityForegroundColorTextAttributeWrapper.
23183 (-[KWQAccObject doAXTextMarkerRangeForUnorderedTextMarkers:]):
23184 Remove uses of visiblePositionForStartOfTextMarkerRange and visiblePositionForEndOfTextMarkerRange.
23186 2005-02-23 David Harrison <harrison@apple.com>
23190 <rdar://problem/3524784> AX hit test doesn't return info when done in empty space of content area
23192 * kwq/KWQAccObject.mm:
23193 (-[KWQAccObject accessibilityHitTest:]):
23194 Return unignored object.
23196 2005-02-23 Darin Adler <darin@apple.com>
23200 - fixed <rdar://problem/4006509> REGRESSION (171-172): Setting CSS -khtml-user-modify property triggers crash
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.
23206 2005-02-23 Ken Kocienda <kocienda@apple.com>
23212 <rdar://problem/3980209> Mail crashed when I pressed Cmd-Shift-[ (nil-deref in ApplyStyleCommand::addBlockStyleIfNeeded)
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.
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.
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
23230 2005-02-23 Darin Adler <darin@apple.com>
23234 - fixed <rdar://problem/4013986> REGRESSION (173-174): onclick event not sent when mouse click on checkbox is double-click
23236 We need to send an onclick event *and* an ondblclick event when we process a double click.
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.
23249 2005-02-23 Darin Adler <darin@apple.com>
23253 - fixed <rdar://problem/4011405> REGRESSION (180-181): Unconfirmed text disappears when text focus moves
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.
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
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.
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.
23280 * khtml/rendering/render_form.cpp:
23281 (RenderLineEdit::updateFromElement): Don't re-get the value from the DOM if valueMatchesRenderer
23283 (RenderLineEdit::slotTextChanged): Call setValueFromRenderer instead of manipulating the DOM
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.
23291 2005-02-22 Richard Williamson <rjw@apple.com>
23293 Fixed <rdar://problem/3937203> when a div adds a scrollbar (overflow:auto) we do not get regions
23295 Just set dashboard dirty bit when overflow scrolling changes.
23297 Don't do comparison of regions in before scroll regions are
23298 added, instead do it in WebKit after automatic scroll regions
23301 Reviewed by Maciej.
23303 * khtml/css/cssparser.cpp:
23304 (CSSParser::parseDashboardRegions): Cleaned up comments
23305 * khtml/css/cssstyleselector.cpp:
23306 (khtml::CSSStyleSelector::styleForElement): Cleaned up comments
23308 * khtml/khtmlview.cpp:
23309 (KHTMLView::updateDashboardRegions):
23310 * khtml/rendering/render_layer.cpp:
23311 (RenderLayer::updateScrollInfoAfterLayout):
23312 * kwq/WebDashboardRegion.m:
23313 (-[WebDashboardRegion isEqual:]):
23315 2005-02-22 Chris Blumenberg <cblu@apple.com>
23317 Fixed: <rdar://problem/3976872> Pasted plain text doesn't get the proper style if pasted into newlines
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:
23334 2005-02-22 Darin Adler <darin@apple.com>
23338 - fixed <rdar://problem/4006596> REGRESSION (183-184): crash in DOM::DocumentImpl::setFocusNode(DOM::NodeImpl*)
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.
23345 2005-02-22 Ken Kocienda <kocienda@apple.com>
23351 <rdar://problem/4003463> Mail.app HTML uses inline styling markup not understood by Entourage and Eudora
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)
23374 Test results updated now that we will write out <font> tags for quirks mode documents.
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
23384 2005-02-22 Maciej Stachowiak <mjs@apple.com>
23388 <rdar://problem/4017066> crash in KJS::ValueImp::dispatchType() every time I load www.nytimes.com/pages/automobiles
23390 When creating option elements, use lowercase "option" instead of
23391 uppercase "OPTION" to create option elements, because only
23392 lowercase works for XHTML.
23394 * khtml/ecma/kjs_html.cpp:
23395 (KJS::HTMLSelectCollection::tryPut):
23396 (OptionConstructorImp::construct):
23398 2005-02-22 Chris Blumenberg <cblu@apple.com>
23400 WebCore fix for: <rdar://problem/3918056> Mail not line breaking my <pre> formatted emails on replies
23402 Mail must 4018993 to fully address the problem.
23404 Reviewed by kocienda.
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
23410 2005-02-21 Richard Williamson <rjw@apple.com>
23412 Fixed <rdar://problem/4008338> REGRESSION (125-178): opacity style not working, breaks fading images on okcupid.com
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.
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.
23423 * khtml/css/css_valueimpl.cpp:
23424 (DOM::CSSPrimitiveValueImpl::cssText):
23426 2005-02-21 David Hyatt <hyatt@apple.com>
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.
23431 Reviewed by Richard Williamson
23433 * khtml/rendering/render_box.cpp:
23434 (RenderBox::nodeAtPoint):
23436 2005-02-21 David Hyatt <hyatt@apple.com>
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.
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):
23464 2005-02-21 Darin Adler <darin@apple.com>
23466 - fixed Panther deployment build
23468 * kwq/KWQTextEdit.mm: (QTextEdit::setScrollBarModes): Put more stuff inside #if.
23470 2005-02-21 David Harrison <harrison@apple.com>
23474 <rdar://problem/3943090> REGRESSION (Mail): Spelling underline incompletely erased following certain steps
23476 * khtml/rendering/render_text.cpp:
23477 (InlineTextBox::paintMarker):
23478 Make sure underline is placed within the text bounds.
23480 * kwq/KWQPainter.h:
23481 * kwq/KWQPainter.mm:
23482 (QPainter::misspellingLineThickness):
23483 * kwq/WebCoreTextRenderer.h:
23484 Add misspellingLineThickness for use by InlineTextBox::paintMarker.
23486 2005-02-21 Darin Adler <darin@apple.com>
23490 - fixed <rdar://problem/4012978> -[DOMRange markupString] crashes when range contains only a text node with a single space
23492 * khtml/editing/markup.cpp: (khtml::createMarkup): Added updateLayout calls, and added a missing
23495 2005-02-21 Darin Adler <darin@apple.com>
23499 - fixed <rdar://problem/4005435> Safari hung while pasting text into a <textarea> (Panther-only)
23501 * kwq/KWQTextEdit.mm: (QTextEdit::setScrollBarModes): Don't setAutohidesScrollers:YES on Panther.
23503 2005-02-21 Ken Kocienda <kocienda@apple.com>
23509 <rdar://problem/4015499> REGRESSION (186-187): pasted quoted text starting with a blank line increases quote level of pasted text when pasted
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.
23520 2005-02-21 Ken Kocienda <kocienda@apple.com>
23526 <rdar://problem/4015494> REGRESSION (186-187) <cr> removed if quoted word is copy/pasted on line immediately above quoted text
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.
23533 2005-02-19 Ken Kocienda <kocienda@apple.com>
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.
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.
23549 * khtml/css/css_computedstyle.cpp:
23550 (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue)
23551 * khtml/css/cssparser.cpp:
23552 (CSSParser::parseValue):
23553 * khtml/css/cssproperties.c:
23556 * khtml/css/cssproperties.h:
23557 * khtml/css/cssproperties.in:
23558 * khtml/css/cssstyleselector.cpp:
23559 (khtml::CSSStyleSelector::applyProperty)
23560 * khtml/css/cssvalues.c:
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)
23569 2005-02-19 Ken Kocienda <kocienda@apple.com>
23573 Fix for these bugs:
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
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.
23605 2005-02-19 Kevin Decker <kdecker@apple.com>
23609 Fixed <rdar://problem/4010765> Flash player can be used to arbitrarily open popup windows without user permission
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.
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.
23618 2005-02-18 Chris Blumenberg <cblu@apple.com>
23620 Fixed: <rdar://problem/3951196> REGRESSION (Mail): too many levels of reply quotes after certain steps
23622 Reviewed by kocienda.
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.
23630 2005-02-19 Chris Blumenberg <cblu@apple.com>
23632 Fixed: <rdar://problem/3978461> smart paste is broken
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.
23639 2005-02-18 Adele Amchan <adele@apple.com>
23643 Fix for <rdar://problem/3975568> REGRESSION(125-180)Australian Open pages have drawing problem
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.
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):
23669 2005-02-18 Jens Alfke <jens@apple.com>
23673 Fixed build: Whoops, setNeedsLayout's parameter is NOT optional.
23675 * khtml/html/html_objectimpl.cpp:
23676 (HTMLAppletElementImpl::setAllParamsAvailable):
23678 2005-02-18 Jens Alfke <jens@apple.com>
23680 Reviewed by cblu, hyatt.
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.
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):
23696 2005-02-18 Richard Williamson <rjw@apple.com>
23698 Fixed <rdar://problem/4006161> Tiger8A380: Widgets leak dashboard regions
23700 We were leaking the DashboardRegionImpls.
23704 * khtml/css/css_valueimpl.cpp:
23705 (DOM::CSSPrimitiveValueImpl::cleanup):
23707 2005-02-18 Chris Blumenberg <cblu@apple.com>
23709 Fixed: <rdar://problem/3945271> REGRESSION (Mail): pasted plain text should pick up typing style instead of being unstyled
23711 Reviewed by kocienda.
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
23726 2005-02-18 Ken Kocienda <kocienda@apple.com>
23730 Fix for these bugs:
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
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.
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
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.
23753 2005-02-18 David Hyatt <hyatt@apple.com>
23755 Fix for 3974263 (and possibly others). Don't let fixed tables use maxint as their maxwidth when some
23756 cells have percentage values.
23758 Reviewed by kocienda
23760 * khtml/misc/arena.cpp:
23762 * khtml/rendering/table_layout.cpp:
23763 (FixedTableLayout::calcWidthArray):
23764 (FixedTableLayout::calcMinMaxWidth):
23765 (AutoTableLayout::layout):
23767 2005-02-17 Darin Adler <darin@apple.com>
23771 - fixed <rdar://problem/3998627> WebKit crashes when deleting text in a modified div
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.
23777 2005-02-17 Richard Williamson <rjw@apple.com>
23779 Fixed <rdar://problem/3999467> when Osaka-Mono is specified as fixed width font, Osaka used instead
23781 Fixed w/o introducing a performance regression. Add early
23782 check for Osaka-Mono to avoid expensive call into WebKit.
23787 (QFont::isFixedPitch):
23789 2005-02-17 Darin Adler <darin@apple.com>
23793 - fixed <rdar://problem/4011210> REGRESSION (180-181): Maxlength property for INPUT object not working
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.
23803 2005-02-17 Ken Kocienda <kocienda@apple.com>
23809 <rdar://problem/4012058> Copy from quoted text and paste results in blue text
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
23816 * khtml/editing/htmlediting.cpp:
23817 (khtml::ReplacementFragment::computeStylesAndRemoveUnrendered): Now calls removeBlockquoteColorsIfNeeded()
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.
23829 2005-02-17 Richard Williamson <rjw@apple.com>
23831 Fixed <rdar://problem/4008163> dynamic support for -apple-dashboard-region is flakey
23833 Style operator== wasn't including regions.
23837 * khtml/rendering/render_style.cpp:
23838 (StyleCSS3NonInheritedData::operator==):
23840 2005-02-17 Adele Amchan <adele@apple.com>
23844 fix for <rdar://problem/4010028> 8A383: Safari v185 crash loading united.com multi city fare finder page.
23846 * khtml/dom/dom_string.cpp: (DOM::DOMString::operator += ): prevent nil dereference when DOMString being added is nil
23848 2005-02-17 Jens Alfke <jens@apple.com>
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.
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:
23864 2005-02-17 Ken Kocienda <kocienda@apple.com>
23870 <rdar://problem/3982183> Mail's HTML paragraphs appear with unintended margins in Entourage and Eudora
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.
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.
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
23898 2005-02-17 Ken Kocienda <kocienda@apple.com>
23904 <rdar://problem/3996737> REGRESSION (Mail): Copy/paste in Mail inserts returns
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.
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.
23920 2005-02-17 Ken Kocienda <kocienda@apple.com>
23926 <rdar://problem/3998892> REGRESSION (Mail): bolding a selection from end of line changes unselected text on starting line.
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.
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.
23939 2005-02-16 Chris Blumenberg <cblu@apple.com>
23941 Fixed: <rdar://problem/3954842> Forward/reply to an HTML email can result in nothing (in cases with <link> tags for CSS)
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.
23948 2005-02-16 John Sullivan <sullivan@apple.com>
23950 Written by Darin, reviewed by Maciej and me
23952 - change required to make previous checkin work with English language RSS pages
23955 new private method isHierarchical
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
23962 2005-02-16 John Sullivan <sullivan@apple.com>
23964 Written by Darin, reviewed by me.
23966 - WebCore part of fix for <rdar://problem/4007384>
23967 FILTER: Bookmark of RSS with Japanese search word & multiple RSS pages loses filter
23970 (-[DOMElement _getURLAttribute:]):
23971 new SPI method, uses parseURL and completeURL to get valid URL from attribute value
23973 * kwq/DOMPrivate.h:
23974 declare new SPI method
23976 2005-02-15 Maciej Stachowiak <mjs@apple.com>
23980 <rdar://problem/3942428> reproducible crash loading cbs.sportsline.com
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.
23987 * khtml/khtml_part.cpp:
23988 (KHTMLPart::openURL):
23989 (KHTMLPart::didExplicitOpen):
23990 (KHTMLPart::closeURL):
23991 (KHTMLPart::begin):
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:
24006 2005-02-15 David Harrison <harrison@apple.com>
24008 Reviewed by Maciej.
24010 <rdar://problem/3933665> smart delete seems to delete too much after expanding selection with arrow keys
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.
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:]):
24023 2005-02-15 David Harrison <harrison@apple.com>
24027 (continued) <rdar://problem/4004305> REGRESSION (Mail): Command-right-arrow on wrapped text goes to end of previous line
24029 This was supposed have been committed yesterday with the other part of the fix, but was not.
24031 * khtml/editing/visible_units.cpp:
24032 (khtml::endOfWord):
24034 2005-02-15 Ken Kocienda <kocienda@apple.com>
24040 <rdar://problem/3951178> REGRESSION (Mail): blank line lost after pasting as quotation
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
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.
24056 * layout-tests/editing/pasteboard/paste-text-017-expected.txt: Added.
24057 * layout-tests/editing/pasteboard/paste-text-017.html: Added.
24059 Result changed for the better.
24061 * layout-tests/editing/pasteboard/paste-text-011-expected.txt
24063 2005-02-14 David Harrison <harrison@apple.com>
24067 <rdar://problem/4004305> REGRESSION (Mail): Command-right-arrow on wrapped text goes to end of previous line
24071 <rdar://problem/4004305> REGRESSION (Mail): Command-right-arrow on wrapped text goes to end of previous line
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.
24077 * khtml/editing/visible_units.cpp:
24078 (khtml::endOfWord):
24079 Do not move left over a paragraph boundary.
24081 2005-02-14 Darin Adler <darin@apple.com>
24085 - fixed <rdar://problem/3686434> Safari uses too much RAM on file upload, leading to malloc errors and crashes (HP printers)
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.
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.
24105 - small unrelated fix (not reviewed by John)
24107 * khtml/ecma/kjs_window.cpp: (Window::isSafeScript): Put some logging code outside if statements so it works all the time.
24109 2005-02-14 David Harrison <harrison@apple.com>
24113 <rdar://problem/4004305> REGRESSION (Mail): Command-right-arrow on wrapped text goes to end of previous line
24115 Fixed nextLinePosition to calculate affinity rather than take it as a parameter. Propagated the parameter change out to related methods.
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:]):
24198 05-02-07 Maciej Stachowiak <mjs@apple.com>
24200 Reviewed by Ken and John.
24202 Re-fixed a specific case of the following:
24204 <rdar://problem/3790449> REGRESSION (Mail): underline behavior is flaky because of how CSS handles text-decoration
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.
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.
24218 * khtml/khtml_part.cpp:
24219 (KHTMLPart::selectionComputedStyle):
24221 2005-02-11 David Harrison <harrison@apple.com>
24225 <rdar://problem/3978980> Double Clicking on a line in Mail selected the entire body
24227 * khtml/editing/visible_units.cpp:
24228 (khtml::startOfWord):
24229 (khtml::endOfWord):
24230 Pay attention to being at the end of a paragraph.
24232 (khtml::previousLinePosition):
24233 (khtml::nextLinePosition):
24234 (khtml::endOfParagraph):
24235 Use DOWNSTREAM per recent affinity changes.
24237 2005-02-11 Richard Williamson <rjw@apple.com>
24239 Fixed <rdar://problem/3985118> DOM objects not being marshaled on JS->native calls
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.
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):
24257 2005-02-11 Chris Blumenberg <cblu@apple.com>
24259 Fixed: <rdar://problem/3937352> Quote level not maintained when copied and pasted within a Mail message
24261 Reviewed by harrison.
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
24271 2005-02-11 Adele Amchan <adele@apple.com>
24275 fix for <rdar://problem/4004004> no need to add body element for xml documents
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.
24281 * khtml/xml/dom_docimpl.cpp: (DocumentImpl::close):
24283 2005-02-11 Adele Amchan <adele@apple.com>
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:
24294 * layout-tests/fast/js/window-object-cross-frame-calls-expected.txt: updated test because of added Body (see rdar://problem/3758785)
24298 2005-02-11 Darin Adler <darin@apple.com>
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
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.
24314 * khtml/khtml_part.cpp: (KHTMLPart::begin): Call openInternal instead of open.
24316 2005-02-10 Ken Kocienda <kocienda@apple.com>
24322 <rdar://problem/3992092> 8A374: Mail crash while pasting - RemoveNodeCommand
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.
24329 2005-02-10 Darin Adler <darin@apple.com>
24331 Reviewed by Harrison.
24333 - added support needed to fix <rdar://problem/3991225> Format->Style->Underline menu item does not get checked when selected text is underlined
24335 * kwq/WebCoreBridge.h: Added selectionHasStyle: method.
24336 * kwq/WebCoreBridge.mm: (-[WebCoreBridge selectionHasStyle:]): Added. Calls selectionHasStyle on the part.
24338 2005-02-10 Darin Adler <darin@apple.com>
24340 Reviewed by Harrison.
24342 - fixed <rdar://problem/3990484> cursor changes to I-beam when moving over text in widgets, even when selection off via CSS
24344 * khtml/khtmlview.cpp: (KHTMLView::viewportMouseMoveEvent): Changed code to check canSelect when deciding
24345 whether to show an I-beam cursor.
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.
24353 * khtml/css/cssvalues.c: Regnerated with newer gperf.
24355 2005-02-10 David Hyatt <hyatt@apple.com>
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.
24360 Reviewed by John Sullivan
24362 * khtml/ecma/kjs_html.cpp:
24363 (ImageConstructorImp::construct):
24364 (Image::getValueProperty):
24367 * khtml/ecma/kjs_html.h:
24369 2005-02-10 Ken Kocienda <kocienda@apple.com>
24375 <rdar://problem/3965158> Drag-n-drop within a rich text message sometimes changes the color of the dragged text
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.
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
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.
24418 These test results are subtly better with this change. They no longer have an unneeded empty span.
24419 Visually the same as before.
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
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
24433 2005-02-10 Darin Adler <darin@apple.com>
24437 - fixed <rdar://problem/3974988> WebHTMLView drops scroll wheel events when deltas are 0
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.
24443 2005-02-10 David Harrison <harrison@apple.com>
24447 <rdar://problem/3991532> REGRESSION (Mail): Triple-click on trailing blank line should select previous line but doesn't
24449 * khtml/css/cssvalues.c:
24452 * khtml/editing/selection.cpp:
24453 (khtml::Selection::validate):
24454 Do moral equiavalent of LeftWordIfOnBoundary for PARAGRAPH.
24456 2005-02-10 David Harrison <harrison@apple.com>
24460 <rdar://problem/3991848> Double-click on first character selects wrong item
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.
24466 2005-02-10 David Hyatt <hyatt@apple.com>
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.
24473 * khtml/rendering/render_block.cpp:
24474 (khtml::RenderBlock::removeChild):
24476 2005-02-10 David Hyatt <hyatt@apple.com>
24478 Fix for 3987010, fix a bug that caused the self-collapsing-block-cleared-float bit to never get set correctly.
24482 * khtml/rendering/render_block.h:
24483 (khtml::RenderBlock::MarginInfo::setSelfCollapsingBlockClearedFloat):
24485 2005-02-10 David Hyatt <hyatt@apple.com>
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.
24492 * khtml/rendering/render_block.cpp:
24493 (khtml::RenderBlock::layoutBlockChildren):
24495 2005-02-08 Maciej Stachowiak <mjs@apple.com>
24499 <rdar://problem/3977973> pages on ebay leak referenced JavaScript objects -- over time browsing becomes super-slow
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.
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).
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:
24530 2005-02-09 Chris Blumenberg <cblu@apple.com>
24532 Fixed: <rdar://problem/3999213> Sometimes 2 Windows Media Player plugin instances are loaded
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
24540 2005-02-09 David Harrison <harrison@apple.com>
24544 <rdar://problem/3937447> Mail-689: Arrow key navigation in new message body stops working when a line ends with a bold word
24546 Added affinity to VisiblePosition. Changed Selection code to use affinity more.
24548 (Partial) <rdar://problem/3982096> editing/pasteboard/paste-text-007 is failing
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.
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:
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]):
24696 2005-02-09 Chris Blumenberg <cblu@apple.com>
24698 Fixed: <rdar://problem/3985211> Seed: Mail: Drag-and-drop destination indicator / insertion point disappears
24700 Reviewed by kocienda.
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:
24709 2005-02-08 Ken Kocienda <kocienda@apple.com>
24715 <rdar://problem/3996344> Entire document content is deleted when only the first paragraph was supposed to be
24717 Problem stems from my attempt to fix this bug: <rdar://problem/3986155> Insertion point goes
24718 to beginning of doc after deleting.
24720 I added an "optimization" that proved to do more harm than good. So, basically, the fix is to remove code.
24722 * khtml/editing/htmlediting.cpp:
24723 (khtml::DeleteSelectionCommand::handleGeneralDelete)
24725 2005-02-07 Darin Adler <darin@apple.com>
24729 - fixed <rdar://problem/3890352> REGRESSION (125-170, Panther-only): pasted textarea contents disappear (exception in NSText)
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.
24735 2005-02-07 Adele Amchan <adele@apple.com>
24739 Fix for <rdar://problem/3993628> REGRESSION (180-181): Logitelnet bank's website doesn't work
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.
24747 * khtml/khtml_part.cpp: (KHTMLPart::slotLoaderRequestDone): Check if doc is nil before calling
24750 2005-02-07 Ken Kocienda <kocienda@apple.com>
24756 <rdar://problem/3953302> Replacing quoted text ends up with blue-colored text that is not quoted
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.
24764 Test results using selectAll() updated to reflect changed behavior.
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:
24775 2005-02-06 Darin Adler <darin@apple.com>
24779 - fixed <rdar://problem/3994164> setting a new style attribute with setAttribute("style") doesn't blow away the old style
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.
24788 2005-02-06 Darin Adler <darin@apple.com>
24790 Reviewed by Maciej.
24792 - fixed <rdar://problem/3993722> need oncut and onpaste handlers implemented for <textarea> (needed for widgets)
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.
24802 2005-02-06 Darin Adler <darin@apple.com>
24804 Reviewed by Maciej.
24806 - fixed <rdar://problem/3943038> <input type=search> that is focused in onload handler doesn't have a visible editor
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.
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.
24816 2005-02-06 Darin Adler <darin@apple.com>
24818 Reviewed by Maciej.
24820 - fixed <rdar://problem/3425232> textarea won't trigger onchange action when clicking to new field
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.
24832 2005-02-06 Darin Adler <darin@apple.com>
24834 Reviewed by Maciej.
24836 - re-fixed <rdar://problem/3760910> please add support for custom tag names in HTML
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.
24844 2005-02-06 Darin Adler <darin@apple.com>
24846 Reviewed by Maciej.
24848 - fixed <rdar://problem/3986639> Crash occurs after choosing Undo Typing from the Edit menu
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.
24854 2005-02-05 Chris Blumenberg <cblu@apple.com>
24856 Fixed: <rdar://problem/3991974> REGRESSION: www.jabra.com world location screen does not work
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
24866 2005-02-04 David Harrison <harrison@apple.com>
24870 Rolled out Ken's accidental checkin when committing <rdar://problem/3986155> fix yesterday.
24872 * khtml/editing/selection.cpp:
24873 (khtml::Selection::validate):
24875 2005-02-04 Adele Amchan <adele@apple.com>
24879 Fix for <rdar://problem/3758785> Safari no longer works at BankOfAmerica online banking for military users
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.
24885 * khtml/xml/dom_docimpl.cpp: (DocumentImpl::close):
24887 2005-02-03 Ken Kocienda <kocienda@apple.com>
24893 <rdar://problem/3986155> Insertion point goes to beginning of doc after deleting
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.
24920 2005-02-03 Richard Williamson <rjw@apple.com>
24922 Fixed <rdar://problem/3987419> Stocks and Weather leak what appears to XMLHTTPRequest results
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.
24927 Reviewed by David Harrison.
24929 * kwq/KWQLoader.mm:
24930 (+[NSDictionary _webcore_dictionaryWithHeaderString:]):
24932 (KWQServeSynchronousRequest):
24934 2005-02-03 Chris Blumenberg <cblu@apple.com>
24936 Fixed: <rdar://problem/3938763> Cannot view Windows Media Player videos (soundtrack is played twice with delay)
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
24944 2005-02-02 John Sullivan <sullivan@apple.com>
24948 - WebCore part of fix for <rdar://problem/3980651> REGRESSION (125-180): Huge number of pages printed from certain page,
24951 This also fixes the problems with printing from GMail, yay!
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.
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.
24964 2005-02-02 Chris Blumenberg <cblu@apple.com>
24966 Fixed: <rdar://problem/3960304> can't load a particular applet (at www.escape.de) unless it's the first applet to be loaded
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.
24973 2005-02-02 Chris Blumenberg <cblu@apple.com>
24975 Fixed: <rdar://problem/3983628> control-click on WebView is not selecting the word under the cursor (Mail, non-editable WebView)
24979 * kwq/KWQKHTMLPart.mm:
24980 (KWQKHTMLPart::sendContextMenuEvent): check if SPI to always enable selecting closest word is enabled
24981 * kwq/WebCoreBridge.h:
24983 2005-02-02 Ken Kocienda <kocienda@apple.com>
24987 * khtml/editing/markup.cpp:
24988 (khtml::createMarkup): Removed debug spam I committed earlier in error.
24990 2005-02-02 Ken Kocienda <kocienda@apple.com>
24996 <rdar://problem/3823109> WebKit should support -toggleBaseWritingDirection: (bidi editing support)
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.
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
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
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
25025 <rdar://problem/3985035> REGRESSION (Mail): Text copied from wrapped line contains extra character when pasted
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.
25036 2005-02-02 Ken Kocienda <kocienda@apple.com>
25040 Fix for these bugs:
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
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
25053 2005-02-01 Richard Williamson <rjw@apple.com>
25055 Fixed <rdar://problem/3985535> QT Plug-in JavaScript support now fails in <embed> tag only case
25057 Reviewed by Maciej.
25059 * khtml/ecma/kjs_html.cpp:
25060 (KJS::HTMLDocument::tryGet):
25062 2005-02-01 John Sullivan <sullivan@apple.com>
25064 Written by Darin, reviewed and tested by me
25066 - fixed <rdar://problem/3969684> Panther-only: extra blank lines between
25067 pasted content from Blot
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
25076 2005-02-01 Ken Kocienda <kocienda@apple.com>
25082 <rdar://problem/3985160> Deficiencies in pasting architecture blocking progress on other bugs
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
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.
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
25129 * layout-tests/editing/pasteboard/paste-text-003-expected.txt: Changed what we expect, given
25130 new behavior of paste code.
25132 2005-01-31 John Sullivan <sullivan@apple.com>
25134 Reviewed by Dave Hyatt.
25136 - fixed <rdar://problem/3983097> Tabbing on RSS pages gets stuck in search field
25137 with "full keyboard navigation" off
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.
25147 2005-01-31 David Harrison <harrison@apple.com>
25151 <rdar://problem/3964164> AXWebArea needs to unregister on going invisible
25153 * khtml/xml/dom_docimpl.cpp:
25154 (DocumentImpl::detach):
25155 Detach the AX UIElement for the AXWebArea.
25157 2005-01-31 David Harrison <harrison@apple.com>
25161 <rdar://problem/3850876> AX: button exposed as only an AXImage at http://appleseed.apple.com/ site (<input type=image>)
25163 * khtml/rendering/render_form.h:
25164 (khtml::RenderImageButton::isImageButton):
25166 * khtml/rendering/render_image.h:
25167 (khtml::RenderImage::isImageButton):
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.
25177 2005-01-31 David Harrison <harrison@apple.com>
25179 Prevent nil dereference in debug code.
25181 * khtml/xml/dom_nodeimpl.cpp:
25182 (NodeImpl::displayTree):
25183 Stop when parent is 0, too.
25185 2005-01-31 John Sullivan <sullivan@apple.com>
25187 Reviewed by Dave Hyatt.
25189 - fixed <rdar://problem/3949203> cannot tab to, within, or out of the RSS sidebar
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.
25204 2005-01-31 Darin Adler <darin@apple.com>
25206 Reviewed by Harrison.
25208 - fixed <rdar://problem/3980066> Double-click on single character moves insertion point to previous line
25210 * khtml/khtml_part.cpp:
25211 (KHTMLPart::selectClosestWordFromMouseEvent): Set affinity too.
25212 (KHTMLPart::handleMousePressEventTripleClick): Ditto.
25213 (KHTMLPart::handleMouseMoveEventSelection): Ditto.
25214 (KHTMLPart::khtmlMouseReleaseEvent): Ditto.
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.
25226 2005-01-31 Darin Adler <darin@apple.com>
25228 Reviewed by Harrison.
25230 - fixed <rdar://problem/3935275> unexpected quit scrolling over link; last.fm (works in IE and Firefox)
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.
25235 2005-01-31 Darin Adler <darin@apple.com>
25237 Reviewed by Ken and Harrison.
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
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.
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.
25281 2005-01-30 Darin Adler <darin@apple.com>
25285 - fixed <rdar://problem/3977000> form data set posted for <input type="image" ...> omits name/value pair
25287 * khtml/html/html_formimpl.cpp:
25288 (DOM::HTMLInputElementImpl::appendFormData): Append a name/value pair for type IMAGE in addition to the X/Y
25291 2005-01-30 Darin Adler <darin@apple.com>
25295 - fixed <rdar://problem/3974246> REGRESSION (125-180): popup menus are missing item text on Harmony Remote web site
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.
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.
25307 2005-01-30 Darin Adler <darin@apple.com>
25311 - fixed <rdar://problem/3864536> crash copying text from other apps and pasting in a sticky in dashboard
25313 * khtml/editing/markup.cpp: (khtml::createFragmentFromText): Added missing ref/deref of newly created element.
25315 2005-01-28 Darin Adler <darin@apple.com>
25317 * khtml/css/cssproperties.c: Regenerated with newer gperf.
25319 2005-01-28 David Harrison <harrison@apple.com>
25321 Reviewed by John Sullivan.
25323 <rdar://problem/3968144> AX need to be able to focus an AXLink by setting AXFocused to true
25325 * kwq/KWQAccObject.mm:
25326 (-[KWQAccObject accessibilityPerformAction:]):
25327 (-[KWQAccObject accessibilityIsAttributeSettable:]):
25328 Add AXFocused for AXLinks.
25330 2005-01-28 David Harrison <harrison@apple.com>
25334 <rdar://problem/3584942> AX: Safari Accessibility parent-child mismatch
25336 Use AppKit SPI _accessibilityParentForSubview to return KWQAccObject parent of AppKit AX object.
25338 * kwq/KWQAccObject.mm:
25339 (-[KWQAccObject _accessibilityParentForSubview:]):
25342 2005-01-27 Adele Amchan <adele@apple.com>
25344 fixed by Darin, reviewed by me.
25346 <rdar://problem/3976314> REGRESSION (180-TOT): submitting password fields fail on Panther
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.
25351 2005-01-26 Maciej Stachowiak <mjs@apple.com>
25353 Reviewed by Darin, Hyatt and Ken.
25355 <rdar://problem/3790449> REGRESSION (Mail): underline behavior is flaky because of how CSS handles text-decoration
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
25368 * khtml/css/css_valueimpl.h: Made copyPropertiesInSet public.
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.
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.
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
25413 (DOM::ElementImpl::setStyleAttributeValid): ditto
25415 - added new layout tests for underlining:
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.
25435 2005-01-27 David Hyatt <hyatt@apple.com>
25437 Fix for 3875199, search field needs to be able to show a magnifying glass without a dropdown menu.
25439 Reviewed by kocienda
25441 * khtml/html/html_formimpl.cpp:
25442 (DOM::HTMLInputElementImpl::HTMLInputElementImpl):
25443 (DOM::HTMLInputElementImpl::parseHTMLAttribute):
25444 * kwq/KWQLineEdit.mm:
25445 (QLineEdit::setMaxResults):
25447 2005-01-27 Ken Kocienda <kocienda@apple.com>
25453 <rdar://problem/3973254> Deletions of ranges does not coalesce correctly with subsequent typing
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.
25483 2005-01-27 David Harrison <harrison@apple.com>
25487 <rdar://problem/3962214> AX: AXLeftLineTextMarkerRangeForTextMarker returns incorrect range
25489 * kwq/KWQAccObject.mm:
25490 (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
25491 Allowed for selection to end of line including the linebreak.
25493 2005-01-27 David Harrison <harrison@apple.com>
25495 Reviewed by Darin, Ken.
25497 <rdar://problem/3964470> AX: Include attachments in AXAttributedStringForTextMarkerRange
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.
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.
25525 2005-01-27 Darin Adler <darin@apple.com>
25529 - fixed <rdar://problem/3807935> DOM CSS computed style line-height is wrong in two ways
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.
25534 2005-01-27 Darin Adler <darin@apple.com>
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
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.
25545 * ForwardingHeaders/editing/text_granularity.h: Added. Needed but a bug in the 3.3 compiler made
25546 it compile anyway without this.
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.
25553 2005-01-26 Ken Kocienda <kocienda@apple.com>
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
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.
25573 2005-01-26 Richard Williamson <rjw@apple.com>
25575 Fixed <rdar://problem/3972522> (179-180) 40% slowdown on iBench JavaScript test
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
25582 As a result of this fix I also dramatically cleaned up how runtime objects are
25583 accessed. The path mostly *removes* code.
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:
25604 2005-01-26 Richard Williamson <rjw@apple.com>
25606 Fixed <rdar://problem/3757712> REGRESSION (Mail): WebCore does not allow Devanagari ligature input
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.
25615 * khtml/rendering/render_text.cpp:
25616 (RenderText::previousOffset):
25617 (RenderText::nextOffset):
25619 2005-01-25 David Harrison <harrison@apple.com>
25621 Reviewed by Maciej and Richard.
25623 <rdar://problem/3963731> AX VO: Changing window sizes causes a crash using with Voice Over - KWQPtrDictImpl::clear
25625 * khtml/html/html_miscimpl.cpp:
25626 (HTMLCollectionImpl::HTMLCollectionImpl):
25627 Ensure that isHTMLDocument before calling HTMLDocument-only method.
25629 2005-01-25 Richard Williamson <rjw@apple.com>
25631 Part one of fix for <rdar://problem/3757712> REGRESSION (Mail): WebCore does not allow Devanagari ligature input
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.
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
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:
25663 2005-01-25 David Harrison <harrison@apple.com>
25665 Reviewed by Maciej.
25667 <rdar://problem/3973067> AXWebArea for http://apple.netscape.com/ has an empty AXLinkUIElements
25669 * kwq/KWQAccObject.mm:
25670 (-[KWQAccObject accessibilityAttributeValue:]):
25671 Omit ignored AXLinks from AXLinkUIElements result
25673 2005-01-25 Ken Kocienda <kocienda@apple.com>
25679 <rdar://problem/3972851> REGRESSION (179-180+): Repro crash in ApplyStyleCommand::cleanUpEmptyStyleSpans
25681 * khtml/editing/htmlediting.cpp:
25682 (khtml::ApplyStyleCommand::cleanUpEmptyStyleSpans): Added two null checks.
25684 2005-01-25 Ken Kocienda <kocienda@apple.com>
25690 <rdar://problem/3954710> Mail crashed while editing signatures - NodeImpl::isBlockFlow
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
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.
25703 Use new helper function to test part and selection; return from these function if this test fails.
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])
25719 2005-01-24 Kevin Decker <kdecker@apple.com>
25723 Fixed <rdar://problem/3932374> REGRESSION: 'ReferenceError - Can't find variable' JavaScript error at webxpress.fidelity.com
25725 * khtml/html/html_miscimpl.h: Missing virtual identifiers for namedItem() and nextNamedItem() exposed a flaw that prevented finding variables in form [HTMLFormCollectionImpl] scopes.
25728 2005-01-24 Vicki Murley <vicki@apple.com>
25730 Reviewed by kocienda.
25732 - fix <rdar://problem/3810661> computed style not handled for Apple extensions
25734 * khtml/css/css_computedstyle.cpp: (DOM::):
25735 (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): add -apple-line-clamp and -apple-text-size-adjust
25737 2005-01-24 Darin Adler <darin@apple.com>
25741 - fixed <rdar://problem/3969884> REGRESSION (179-180): Typing password not echoed as "bullets" at paypal.com when field is first focused
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.
25749 2005-01-24 Ken Kocienda <kocienda@apple.com>
25755 <rdar://problem/3963560> 8A354: Inserting Japanese text to the line head causes line break
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.
25761 2005-01-21 Maciej Stachowiak <mjs@apple.com>
25765 <rdar://problem/3967572> Editing should split elements before removing style
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:
25803 New layout test that shows the side benefit of this.
25805 * layout-tests/editing/style/unbold-in-bold-expected.txt: Added.
25806 * layout-tests/editing/style/unbold-in-bold.html: Added.
25808 2005-01-24 Darin Adler <darin@apple.com>
25812 - fixed <rdar://problem/3933435> -[DOMRange cloneContents] sometimes alters the original DOMRange
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.
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>
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.
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
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.
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.
25863 2005-01-24 Ken Kocienda <kocienda@apple.com>
25869 <rdar://problem/3964350> Deleting all content and typing in a message gets one letter, then beeps
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
25877 * khtml/editing/htmlediting.cpp:
25878 (khtml::TypingCommand::deleteKeyPressed)
25880 2005-01-23 Adele Amchan <adele@apple.com>
25882 Fixed <rdar://problem/3964286> REGRESSION (178-179): menus and "go to old site" link at Ameritrade's new site don't work
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>)
25890 * khtml/khtml_part.cpp:
25892 (KHTMLPart::checkCompleted):
25893 * khtml/khtml_part.h:
25894 * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::tokenizerProcessedData):
25896 2005-01-21 Richard Williamson <rjw@apple.com>
25898 Fixed <rdar://problem/3759399> Javascript / Liveconnect problems ((event handler):Undefined value)
25900 Java applets specified with <object> or <embed> weren't scriptable. Now they are.
25904 * khtml/html/html_objectimpl.cpp:
25905 (HTMLEmbedElementImpl::getEmbedInstance):
25906 (HTMLObjectElementImpl::getObjectInstance):
25908 2005-01-21 Ken Kocienda <kocienda@apple.com>
25914 <rdar://problem/3959464> REGRESSION (Mail): Insertion point goes back to beginning of document after deleting
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.
25922 2005-01-21 Richard Williamson <rjw@apple.com>
25924 Fixed <rdar://problem/3966998> REGRESSION(179-TOT) clicking on gmail message brings me to blank screen
25926 getElementById() sometimes returns Undefined() instead of Null().
25930 * khtml/ecma/kjs_dom.cpp:
25931 (DOMDocumentProtoFunc::tryCall):
25933 2005-01-21 David Hyatt <hyatt@apple.com>
25935 Fix for 3773809, make sure that overflow regions never end up at an invalid scroll offset because of a layout change.
25937 Reviewed by kocienda
25939 * khtml/rendering/render_layer.cpp:
25940 (RenderLayer::updateScrollInfoAfterLayout):
25942 2005-01-21 David Hyatt <hyatt@apple.com>
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.
25947 Reviewed by kocienda
25949 * khtml/html/htmlparser.cpp:
25950 (KHTMLParser::parseToken):
25951 (KHTMLParser::insertNode):
25952 (KHTMLParser::popInlineBlocks):
25954 2005-01-21 Ken Kocienda <kocienda@apple.com>
25960 <rdar://problem/3957204> Mail crashed when sending a message in ~InsertParagraphSeparatorInQuotedContentCommand
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.
25969 2005-01-21 Ken Kocienda <kocienda@apple.com>
25975 <rdar://problem/3966311> REGRESSION (Mail): Hitting return makes space character disappear
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.
25981 * layout-tests/editing/inserting/insert-div-025-expected.txt: Added.
25982 * layout-tests/editing/inserting/insert-div-025.html: Added.
25984 2005-01-20 Maciej Stachowiak <mjs@apple.com>
25988 <rdar://problem/3965196> security fix for javascript: exploit missed one case (already fixed in updates)
25990 * khtml/ecma/kjs_window.cpp:
25991 (WindowFunc::tryCall): correct mistake in earlier fix for the following bug, caught by Adele:
25993 2005-01-20 Maciej Stachowiak <mjs@apple.com>
25997 <rdar://problem/3965466> editing needs to insert text before applying typing style
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:
26009 This change leads to improved results on one of the layout tests:
26011 * layout-tests/editing/inserting/insert-div-024-expected.txt:
26015 2005-01-20 Ken Kocienda <kocienda@apple.com>
26021 <rdar://problem/3964646> REGRESSION (179-180): Typing space at end of line makes following paragraph disappear
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.
26031 2005-01-20 David Hyatt <hyatt@apple.com>
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.
26038 2005-01-20 David Harrison <harrison@apple.com>
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
26045 * kwq/KWQAccObject.mm:
26046 (-[KWQAccObject textUnderElement]):
26047 Touched up previous checkin to match code review comments.
26049 (-[KWQAccObject value]):
26050 Use plainText for this one instead of obsolete attributedString.
26052 (-[KWQAccObject accessibilityParameterizedAttributeNames]):
26053 Advertise AXAttributedStringForTextMarkerRange.
26055 (AXAttributeStringAddFont):
26056 (AXAttributeStringAddElement):
26057 (-[KWQAccObject linkUIElementForNode:]):
26058 (-[KWQAccObject _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
26059 (-[KWQAccObject accessibilityAttributedStringForRange:]):
26060 New routines to support AXAttributedStringForTextMarkerRange.
26062 (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
26063 Use new routines instead of obsolete attributedString.
26065 2005-01-20 David Harrison <harrison@apple.com>
26069 <rdar://problem/3960196> AX Crash in DOM::Range::setStartBefore
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.
26079 2005-01-20 Darin Adler <darin@apple.com>
26083 - fixed <rdar://problem/3922980> Mail not crashing, just quitting itself suddenly in -[WebHTMLView(MailExtras) findString:options:]
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.
26088 - fixed <rdar://problem/3885729> attempting to modify a computed style does nothing, but should raise a DOM exception
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.
26093 - fixed <rdar://problem/3943049> focus() called during onload handler results in square text field on <input type=search>
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.
26103 - improved debugging output when using "po" from gdb with Objective-C DOM
26106 (-[DOMNode description]): Added. Includes node name ("<tr>") and node value (e.g., string for text node).
26107 (-[DOMRange description]): Tweaked format.
26109 2005-01-19 Richard Williamson <rjw@apple.com>
26111 After further discussion with Real we have decided to NOT include the
26112 additional CLSID for the real plugin. See 3958601.
26116 * khtml/rendering/render_frames.cpp:
26117 (RenderPartObject::updateWidget):
26119 2005-01-19 David Harrison <harrison@apple.com>
26121 Reviewed by Maciej.
26123 <rdar://problem/3949429> AX: word marker routines returns incorrect data for empty line
26125 Previous checkin for this bug was missing some of the patch. Editing snafu with multiple changes in tree.
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:]):
26136 2005-01-19 Ken Kocienda <kocienda@apple.com>
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.
26144 2005-01-19 Ken Kocienda <kocienda@apple.com>
26150 <rdar://problem/3959727> REGRESSION (Mail): Style not preserved on blank lines
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).
26182 New layout tests to check bug fix.
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.
26191 Results updated to reflect new block placeholder code.
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
26211 2005-01-19 David Hyatt <hyatt@apple.com>
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.
26216 Reviewed by kdecker
26218 (DOM::HTMLInputElementImpl::defaultEventHandler):
26220 2005-01-18 Richard Williamson <rjw@apple.com>
26222 Fixed several issues all arising from analysis of plugin detection code at ifilm.com:
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
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.
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:
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):
26265 2005-01-18 David Hyatt <hyatt@apple.com>
26267 Fix for 3948123, rolling over link erases nearby text. The repaint rect check for lines was wrong whenever
26268 two lines overlapped.
26270 Reviewed by kocienda
26272 * khtml/rendering/render_flow.cpp:
26273 (RenderFlow::paintLines):
26275 2005-01-18 Ken Kocienda <kocienda@apple.com>
26281 <rdar://problem/3960116> Focus rings paint incorrectly for contenteditable blocks in web pages
26283 * khtml/rendering/render_flow.cpp:
26284 (RenderFlow::addFocusRingRects): Fix painting of focus rings so that ring only paints around
26285 outermost contenteditable elements.
26287 2005-01-18 David Harrison <harrison@apple.com>
26291 <rdar://problem/3959668> accessibilityFocusedUIElement sometimes returns an ignored element; it must not
26293 * kwq/KWQAccObject.mm:
26294 (-[KWQAccObject accessibilityFocusedUIElement]):
26295 Return parentObjectUnignored if focused object is ignored.
26297 2005-01-18 Ken Kocienda <kocienda@apple.com>
26303 <rdar://problem/3952877> REGRESSION (Mail): Command-left/right-arrows don't work with file attachment
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.
26311 2005-01-17 David Harrison <harrison@apple.com>
26313 Reviewed by John Sullivan.
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
26318 Also fixed sentence support in the same way.
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.
26328 2005-01-17 David Harrison <harrison@apple.com>
26330 Updated expected test results.
26332 <rdar://problem/3945880> line-ending space seems not to be present
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:
26342 2005-01-17 David Harrison <harrison@apple.com>
26344 Reviewed by Dave Hyatt (bidi.cpp) and Darin Adler (selection.cpp).
26346 <rdar://problem/3945880> line-ending space seems not to be present
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).
26355 2005-01-17 Darin Adler <darin@apple.com>
26357 Reviewed by John Louch.
26359 - fixed <rdar://problem/3958503> need screenX and screenY to use WebKit windowFrame delegate
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.
26367 2005-01-17 David Hyatt <hyatt@apple.com>
26369 Fix a screwup in rightmost/lowets position computation. 3955207. Make sure floats with layers are still checked.
26371 Reviewed by kocienda
26373 * khtml/rendering/render_block.cpp
26375 2005-01-17 Ken Kocienda <kocienda@apple.com>
26379 <rdar://problem/3953366> Problems with typing attributes in HTML compose
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.
26387 2005-01-17 Richard Williamson <rjw@apple.com>
26389 Fixed <rdar://problem/3753030> Need to ensure same origin for plugin binding invocations (origin security rules)
26391 Keep track of originating execution context and target execution
26392 context for native JS object wrappers, and perform appropriate
26395 Reviewed by David Harrison.
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:
26413 (-[WebCoreBridge init]):
26415 2005-01-17 Ken Kocienda <kocienda@apple.com>
26421 <rdar://problem/3786659> REGRESSION (Mail): editable WebViews don't work with
26422 "size up" and "size down" NSFontManager changes
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.
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.
26461 2005-01-14 Darin Adler <darin@apple.com>
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.
26468 2005-01-14 Chris Blumenberg <cblu@apple.com>
26470 Fixed: <rdar://problem/3886415> arrow keys don't work when the user hits Back to return to RSS page
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
26485 2005-01-13 Vicki Murley <vicki@apple.com>
26489 - fix <rdar://problem/3946836> Safari about box lists 2004 instead of 2005
26491 * WebCore.pbproj/project.pbxproj: bump "2004" to "2005"
26493 2005-01-13 David Harrison <harrison@apple.com>
26495 Reviewed by Ken Kocienda.
26497 Better fix for 3905066.
26499 * khtml/editing/htmlediting.cpp:
26500 (khtml::InsertParagraphSeparatorCommand::doApply):
26502 2005-01-10 Maciej Stachowiak <mjs@apple.com>
26506 <rdar://problem/3758033> REGRESSION (Mail): Support attributes in marked text (International input)
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
26527 * kwq/WebCoreTextRenderer.h:
26529 2005-01-12 David Harrison <harrison@apple.com>
26531 Reviewed by Dave Hyatt.
26533 <rdar://problem/3888973> AX: Parent AXWebArea of nested AXWebAreas is messed up
26535 * kwq/KWQAccObject.mm:
26536 (-[KWQAccObject addChildrenToArray:]):
26537 Use the widget's outer view.
26539 2005-01-12 David Harrison <harrison@apple.com>
26541 Reviewed by Darin Adler.
26543 <rdar://problem/3949908> Crash when asking for the kAXLengthForTextMarkerRangeParameterizedAttribute
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.
26554 2005-01-12 David Hyatt <hyatt@apple.com>
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.
26561 * khtml/rendering/bidi.cpp:
26562 (khtml::RenderBlock::layoutInlineChildren):
26564 2005-01-12 David Hyatt <hyatt@apple.com>
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.
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.
26572 Reviewed by darin (first one), kocienda (second one)
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):
26581 2005-01-12 Ken Kocienda <kocienda@apple.com>
26587 <rdar://problem/3926142> REGRESSION (Mail): Deleting text decreases quote level
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.
26612 2005-01-11 Richard Williamson <rjw@apple.com>
26614 Fixed 3922875. Fall back to DOM object is EMBED element
26615 has no associated runtime object.
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):
26627 2005-01-11 David Hyatt <hyatt@apple.com>
26629 Fix for 3882299, missing content on gibson.com. Change our handling of " and ' in certain states of the parser to match
26634 * khtml/html/htmltokenizer.cpp:
26635 (khtml::HTMLTokenizer::parseTag):
26637 2005-01-11 Chris Blumenberg <cblu@apple.com>
26639 Fixed: <rdar://problem/3930733> Mail prints second page of email blank
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
26652 2005-01-10 Ken Kocienda <kocienda@apple.com>
26658 <rdar://problem/3943648> extra line is inserted after pressing return within quoted text of reply
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.
26665 2005-01-10 Ken Kocienda <kocienda@apple.com>
26671 <rdar://problem/3946852> Option-e goes to next line
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.
26679 2005-01-10 Ken Kocienda <kocienda@apple.com>
26685 <rdar://problem/3907005> Applying block styles to a line of text can unexpectedly affect other lines
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.
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
26729 2005-01-10 Chris Blumenberg <cblu@apple.com>
26731 Fixed: <rdar://problem/3936844> Mail: Messages with rich text do not print
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
26740 2005-01-10 David Harrison <harrison@apple.com>
26744 * kwq/KWQTextUtilities.mm:
26745 (currentTextBreakLocaleID):
26746 Return empty string (AKA root locale) if locale pref can not be canonicalized.
26748 2005-01-10 John Sullivan <sullivan@apple.com>
26750 Fixed broken Panther build.
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
26761 2005-01-09 David Harrison <harrison@apple.com>
26763 Reviewed by Ken Kocienda.
26765 <rdar://problem/3786362> REGRESSION (Mail): pasted text loses one newline
26767 * khtml/editing/htmlediting.cpp:
26768 (khtml::ReplaceSelectionCommand::doApply):
26769 Tune check for need for insertParagraphSeparator when hasInterchangeNewline.
26771 2005-01-09 Darin Adler <darin@apple.com>
26773 Reviewed by Harrison.
26775 - fixed <rdar://problem/3939176> select() method does not work on <input type=search>
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
26781 2005-01-09 David Harrison <harrison@apple.com>
26783 Reviewed by Ken Kocienda.
26785 <rdar://problem/3905066> REGRESSION (Mail): Hitting return key with caret in front of space causes space to become lost (resize fixes)
26787 Problem was that InsertParagraphSeparatorCommand::doApply() was not collapsing
26788 whitespace to a single non-breaking space when splitting a text node.
26790 * khtml/editing/htmlediting.cpp:
26791 (khtml::InsertParagraphSeparatorCommand::doApply):
26793 2005-01-08 Kevin Decker <kdecker@apple.com>
26797 Fixed: <rdar://problem/3924219> Calling setOuterHTML: on a DOMHTMLHtmlElement can crash a program
26799 * khtml/html/html_elementimpl.cpp:
26800 (HTMLElementImpl::setOuterHTML): Added a nil check for fragments who don't have parents.
26802 2005-01-07 Maciej Stachowiak <mjs@apple.com>
26806 <rdar://problem/3807144> REGRESSION (125-TOT): my bank's website doesn't work (Societe Generale, socgen.com)
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
26814 * khtml/khtml_part.h:
26816 2005-01-08 David Harrison <harrison@apple.com>
26818 Reviewed by Maciej.
26820 <rdar://problem/3943415> REGRESSION (Mail): double-clicking past word selects previous word instead of only blank space
26822 * khtml/editing/selection.cpp:
26823 (khtml::Selection::validate):
26824 Tune word selections left/right choice to use right if on empty last line.
26826 2005-01-07 David Harrison <harrison@apple.com>
26830 <rdar://problem/3942619> AX: Support sentence ax attributes
26832 Needed to use the unicode utilities properly. Twas lame before.
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):
26855 2005-01-07 Ken Kocienda <kocienda@apple.com>
26859 Fix for these bugs:
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
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.
26873 2005-01-07 David Hyatt <hyatt@apple.com>
26875 Fix for 3941364, make sure tables reset overflowWidth/Height when they lay out again. Fixes the odd scrolling
26876 behavior on worldofwarcraft.com.
26880 * khtml/rendering/render_table.cpp:
26881 (RenderTable::layout):
26883 2005-01-06 David Hyatt <hyatt@apple.com>
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.
26890 * khtml/rendering/render_block.cpp:
26891 (khtml::RenderBlock::nodeAtPoint):
26893 2005-01-07 Ken Kocienda <kocienda@apple.com>
26899 <rdar://problem/3848412> for forwarded message, tabbing to message view scrolls to bottom of view
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.
26907 2005-01-06 Kevin Decker <kdecker@apple.com>
26911 Fixed: <rdar://problem/3932215> REGRESSION (125-177): iFrame example at developer.apple.com fails in Safari
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.
26918 2005-01-06 David Harrison <harrison@apple.com>
26922 (addendum to previous checkin for this bug)
26923 <rdar://problem/3776056> AX: Editable HTML should not be viewed as AXStaticText
26925 Fix line navigation. Add AXUIElementForTextMarker.
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:]):
26937 2005-01-06 Darin Adler <darin@apple.com>
26941 - re-fixed <rdar://problem/3760910> Request to include support for custom tag names in HTML (they already work in XML)
26943 (turns out the PLT regression was a false alarm)
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;
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.
26966 * khtml/misc/htmltags.c: Regenerated.
26967 * khtml/misc/htmltags.h: Regenerated.
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.
26973 2005-01-06 David Harrison <harrison@apple.com>
26975 Fixed Panther build. Also, do not advertize sentence support since it is incomplete.
26977 * kwq/KWQAccObject.mm:
26978 (-[KWQAccObject visiblePositionForEndOfTextMarkerRange:]):
26979 (-[KWQAccObject accessibilityParameterizedAttributeNames]):
26980 (-[KWQAccObject accessibilityIsAttributeSettable:]):
26982 2005-01-06 David Harrison <harrison@apple.com>
26984 Reviewed by Dave Hyatt.
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
26989 Many more AX attributes supported. Numerous fixes to previous AX work.
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:
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]):
27093 2005-01-05 Darin Adler <darin@apple.com>
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
27100 * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::checkOneSelector): Changed
27101 some code that used ID_LAST_TAG in a slightly wrong, but harmless, way.
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.
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.
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.
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.
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.
27132 2005-01-05 Ken Kocienda <kocienda@apple.com>
27138 <rdar://problem/3941203> REGRESSION (Mail): Paste inserts content in wrong place
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.
27151 2005-01-04 Ken Kocienda <kocienda@apple.com>
27157 <rdar://problem/3926522> Pressing return in a quoted block inserts too many newlines
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.
27164 2005-01-04 Kevin Decker <kdecker@apple.com>
27168 Fixed: <rdar://problem/3936879> nil-deref, crash in InlineFlowBox::nodeAtPoint closing DHTML menus at hrweb.apple.com
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.
27173 2005-01-04 David Hyatt <hyatt@apple.com>
27175 Fix for 3937203, force an update of the dashboard regions when scrollbars are added/removed.
27179 * khtml/rendering/render_layer.cpp:
27180 (RenderLayer::updateScrollInfoAfterLayout):
27182 2005-01-04 Ken Kocienda <kocienda@apple.com>
27186 Fix for these two bugs:
27188 <rdar://problem/3938935> REGRESSION (Mail): Pasting into an empty document mangles content
27189 <rdar://problem/3939148> REGRESSION (Mail): Pasting mistakenly reverses lines
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.
27198 2005-01-04 David Hyatt <hyatt@apple.com>
27200 Fix for 3936571, placeholder attribute should work for normal inputs for Dashboard.
27204 * khtml/rendering/render_form.cpp:
27205 (RenderLineEdit::updateFromElement):
27206 * kwq/KWQLineEdit.mm:
27207 (QLineEdit::setPlaceholderString):
27209 2005-01-04 David Hyatt <hyatt@apple.com>
27211 Fix for 3830936, hang on changeforamerica.com. Make sure to ignore the style not yet available option when
27212 returning pseudo-styles.
27216 * khtml/css/cssstyleselector.cpp:
27217 (khtml::CSSStyleSelector::matchRulesForList):
27218 (khtml::CSSStyleSelector::pseudoStyleForElement):
27219 * khtml/rendering/render_style.cpp:
27220 (RenderStyle::addPseudoStyle):
27222 2005-01-04 Darin Adler <darin@apple.com>
27224 - rolled out my custom tag name change again -- it caused a 1 ms PLT regression
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:
27245 2005-01-04 Ken Kocienda <kocienda@apple.com>
27251 <rdar://problem/3927554> Style info applied to remainder of document after a newline is entered
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.
27265 2005-01-04 David Hyatt <hyatt@apple.com>
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.
27272 * khtml/rendering/render_flow.cpp:
27273 (RenderFlow::paintLines):
27275 2005-01-03 David Hyatt <hyatt@apple.com>
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.
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):
27289 2005-01-03 Maciej Stachowiak <mjs@apple.com>
27293 <rdar://problem/3935390> Tiger 8A341: nil deref crash in DOM::NodeImpl::traverseNextNode
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).
27301 2005-01-03 Maciej Stachowiak <mjs@apple.com>
27303 Reviewed by John and Kevin.
27305 <rdar://problem/3870317> REGRESSION(125.9-125.11) broken behavior at test.profoundlearning.com - used to
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.
27312 2004-12-21 Maciej Stachowiak <mjs@apple.com>
27316 <rdar://problem/3888931> frame naming allows malicious site to bring up a window when you click on a link in another
27318 Added opener bridge method to help WebKit implement security check
27319 for named frame visibility.
27321 * khtml/khtml_part.h:
27322 * kwq/WebCoreBridge.h:
27323 * kwq/WebCoreBridge.mm:
27324 (-[WebCoreBridge opener]):
27326 2005-01-03 Ken Kocienda <kocienda@apple.com>
27332 <rdar://problem/3933926> Tiger8A341: Mail crashes while forwarding embedded HTML message in -[WebCoreBridge ensureSelectionVisible]
27334 * kwq/WebCoreBridge.mm:
27335 (-[WebCoreBridge ensureSelectionVisible]): Put in some null checks to prevent crash experienced in bug.
27337 2005-01-03 David Hyatt <hyatt@apple.com>
27339 Fix for 3936881, make sure positioned objects prooperly update y-position.
27343 * khtml/rendering/render_block.cpp:
27344 (khtml::RenderBlock::layoutPositionedObjects):
27346 2005-01-03 Ken Kocienda <kocienda@apple.com>
27348 Reviewed by Harrison
27352 <rdar://problem/3928250> REGRESSION (Mail): Typing style lost after hitting return key
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.
27367 2004-12-25 Kevin Decker <kdecker@apple.com>
27371 Fixed: <rdar://problem/3505072> hang in KHTMLParser::parseToken (consulting.soroos.net)
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.
27375 2004-12-23 Darin Adler <darin@apple.com>
27379 - re-fixed <rdar://problem/3760910> Request to include support for custom tag names in HTML (they already work in XML)
27381 * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::checkOneSelector): Changed
27382 some code that used ID_LAST_TAG in a slightly wrong, but harmless, way.
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.
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.
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;
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.
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.
27422 * khtml/misc/htmltags.c: Regenerated.
27423 * khtml/misc/htmltags.h: Regenerated.
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.
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.
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.
27443 2004-12-22 Darin Adler <darin@apple.com>
27445 - rolled out my custom tag name change -- it broke amazon.com
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:
27466 2004-12-22 David Harrison <harrison@apple.com>
27468 Reviewed by Darin Adler.
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.
27476 2004-12-22 Adele Amchan <adele@apple.com>
27480 Fix for <rdar://problem/3911650> tabs at safeway.com stop working after a while
27482 * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::scrollToAnchor): removed call to cancelRedirection
27483 so that we match Firefox and WinIE behavior.
27485 2004-12-22 Darin Adler <darin@apple.com>
27489 - fixed <rdar://problem/3760910> Request to include support for custom tag names in HTML (they already work in XML)
27491 * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::checkOneSelector): Changed
27492 some code that used ID_LAST_TAG in a slightly wrong, but harmless, way.
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.
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.
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.
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.
27531 * khtml/misc/htmltags.c: Regenerated.
27532 * khtml/misc/htmltags.h: Regenerated.
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.
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.
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.
27550 2004-12-21 David Harrison <harrison@apple.com>
27552 Reviewed by Ken Kocienda.
27554 <rdar://problem/3924934> REGRESSION: double click at end of line selects start of next line
27556 Problem was the TextIterator was not handling exitNode() from a P block properly.
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:
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.
27582 2004-12-21 David Harrison <harrison@apple.com>
27584 Reviewed by Ken Kocienda.
27586 <rdar://problem/3924695> REGRESSION (Mail): double-clicking past end of line shows no selection, should select to EOL
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.
27591 * khtml/rendering/render_text.cpp:
27592 (RenderText::setSelectionState)
27594 2004-12-21 Maciej Stachowiak <mjs@apple.com>
27598 <rdar://problem/3929187> WebKit needs to restrict access to certain window operations by domain
27600 * khtml/ecma/kjs_window.cpp:
27601 (Window::get): Change most window functions to be restricted by
27604 2004-12-21 Ken Kocienda <kocienda@apple.com>
27610 <rdar://problem/3928305> selecting an entire line and typing over causes new inserted text at top of document
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.
27621 2004-12-21 Ken Kocienda <kocienda@apple.com>
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).
27629 2004-12-21 Ken Kocienda <kocienda@apple.com>
27635 <rdar://problem/3927752> Crash in khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded(DOM::NodeImpl*)
27637 * khtml/editing/htmlediting.cpp:
27638 (khtml::CompositeEditCommand::insertBlockPlaceholderIfNeeded): Added some null checks.
27639 (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): Ditto.
27641 2004-12-21 Ken Kocienda <kocienda@apple.com>
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.
27657 2004-12-21 Darin Adler <darin@apple.com>
27661 - fixed <rdar://problem/3899133> text search in a Safari window takes a very long time on Tiger updates page (and some other pages)
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
27670 (khtml::TextIterator::handleTextBox): Ditto.
27671 (khtml::TextIterator::handleReplacedElement): Pass base node and set base node instead of calling
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.
27679 - another small fix
27681 * khtml/khtml_part.cpp: Removed SPEED_DEBUG define. Not sure why it was on.
27685 2004-12-20 Ken Kocienda <kocienda@apple.com>
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.
27694 2004-12-20 David Harrison <harrison@apple.com>
27696 Reviewed by Dave Hyatt.
27698 Initial checkin of AXTextMarkerRef support.
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):
27746 2004-12-19 Darin Adler <darin@apple.com>
27748 * kwq/KWQFoundationExtras.h: (KWQCFAutorelease): Added nil check.
27750 2004-12-19 Darin Adler <darin@apple.com>
27754 - a garbage collection fix
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.
27760 2004-12-17 David Hyatt <hyatt@apple.com>
27762 Fix for 3923255, specified percentage heights of divs with overflow auto inside tables not honored.
27764 Reviewed by kocienda
27766 * khtml/rendering/render_box.cpp:
27767 (RenderBox::calcPercentageHeight):
27768 * khtml/rendering/render_table.cpp:
27769 (RenderTableSection::layoutRows):
27771 2004-12-17 David Harrison <harrison@apple.com>
27773 Reviewed by Ken Kocienda.
27775 <rdar://problem/3924930> REGRESSION: triple click does not select to end of line
27777 * khtml/editing/visible_units.cpp:
27778 (khtml::endOfParagraph):
27779 When includeLineBreak is true, allow traversal to next node after enclosingBlockFlowElement.
27781 2004-12-17 Ken Kocienda <kocienda@apple.com>
27785 * khtml/editing/htmlediting.cpp:
27786 (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Missed deleting some now-obsolete expcetion
27787 codes when I added the createBreakElement() function.
27789 2004-12-17 Richard Williamson <rjw@apple.com>
27791 Set the floor of max cacheable object size to 40K. This restores
27792 the long standing floor. Lower floor deleteriously impacts the PLT.
27795 * khtml/khtml_part.cpp:
27796 (KHTMLPart::checkCompleted):
27797 * khtml/misc/loader.cpp:
27800 2004-12-17 Ken Kocienda <kocienda@apple.com>
27806 <rdar://problem/3926142> REGRESSION (Mail): Deleting text decreases quote level
27808 * khtml/editing/htmlediting.cpp:
27809 (khtml::DeleteSelectionCommand::moveNodesAfterNode): Stop merging nodes when a <br> is hit.
27810 Formerly checked only for block boundary.
27812 2004-12-17 David Harrison <harrison@apple.com>
27816 Add KWQCFAutorelease for autoreleasing CF objects.
27817 * kwq/KWQFoundationExtras.h:
27818 (KWQCFAutorelease):
27821 2004-12-17 David Harrison <harrison@apple.com>
27825 Fix GC compatibility in getNSString.
27827 * kwq/KWQString.mm:
27828 (QString::getNSString):
27829 Use NSString allocator instead of CFString, so that autorelease works under GC.
27831 2004-12-17 Ken Kocienda <kocienda@apple.com>
27837 <rdar://problem/3890973> REGRESSION (Mail): Deleting reorders remaining text
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.
27843 2004-12-17 Ken Kocienda <kocienda@apple.com>
27847 Added new layout tests covering cases from recent bug fixes.
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.
27858 2004-12-17 Ken Kocienda <kocienda@apple.com>
27862 Changes in layout resulting from giving <p> elements no margin rather than 0.1em margin.
27864 * layout-tests/editing/inserting/insert-div-013-expected.txt
27865 * layout-tests/editing/inserting/insert-div-014-expected.txt
27867 2004-12-17 Ken Kocienda <kocienda@apple.com>
27873 <rdar://problem/3925317> Increase quote in email and with cursor below the quote the new line appears above the quote
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.
27882 2004-12-17 Kevin Decker <kdecker@apple.com>
27886 Fixed <rdar://problem/3824438> Need a clean way for Dashboard to detect when an XML parsing error occurs
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.
27891 2004-12-16 Ken Kocienda <kocienda@apple.com>
27897 <rdar://problem/3924888> REGRESSION (Mail): Hitting return key at end of line does not insert visible newline
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.
27903 2004-12-16 Ken Kocienda <kocienda@apple.com>
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.
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.
27920 2004-12-16 David Hyatt <hyatt@apple.com>
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.
27925 Reviewed by kocienda
27927 * khtml/rendering/render_object.cpp:
27928 (RenderObject::getVerticalPosition):
27930 2004-12-16 Ken Kocienda <kocienda@apple.com>
27934 Fix for these bugs:
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
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>.
27946 2004-12-16 Darin Adler <darin@apple.com>
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
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.
27962 * khtml/editing/markup.cpp: (khtml::createFragmentFromText): Use paragraphs rather than
27963 <br> elements for pasting plain text.
27965 - regenerated these files with the newer gperf
27967 * khtml/css/cssproperties.c: Regenerated.
27968 * khtml/css/cssvalues.c: Regenerated.
27969 * khtml/misc/htmlattrs.c: Regenerated.
27970 * khtml/misc/htmltags.c: Regenerated.
27972 2004-12-16 Ken Kocienda <kocienda@apple.com>
27978 <rdar://problem/3924291> REGRESSION (Mail): Crash deleting content following a <p> element
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.
27986 2004-12-16 Adele Amchan <adele@apple.com>
27988 Change by Richard, reviewed by me.
27990 Fix for: <rdar://problem/3923983> background image decoding prevents page with 0Kb image from finishing to load
27992 * khtml/misc/loader.cpp: (CachedImage::data): Added call to notifyFinished so the 0Kb image case finishes loading.
27994 2004-12-16 Adele Amchan <adele@apple.com>
27998 Fix for: <rdar://problem/3534824> VIP: some navigation links on safeway.com don't work due to a JavaScript quirk
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.
28003 * khtml/ecma/kjs_window.cpp: (Window::get):
28005 2004-12-16 Ken Kocienda <kocienda@apple.com>
28011 <rdar://problem/3918351> REGRESSION (Mail, 173-175+): Return before first char of line leaves insertion point in wrong place
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
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.
28041 2004-12-16 Ken Kocienda <kocienda@apple.com>
28045 Added a layout test based on my last checkin.
28047 * layout-tests/editing/selection/move-by-word-001-expected.txt: Added.
28048 * layout-tests/editing/selection/move-by-word-001.html: Added.
28050 2004-12-16 Ken Kocienda <kocienda@apple.com>
28056 <rdar://problem/3917929> REGRESSION (Mail): Command-left-arrow leaves insertion point too high after specific steps
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().
28066 2004-12-15 Darin Adler <darin@apple.com>
28070 - fixed problem where plain-text would put a blank line between each <p> even when they have no margins
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.
28076 2004-12-14 John Sullivan <sullivan@apple.com>
28080 - rest of WebCore fix for <rdar://problem/3790011> undoable operations all say "Undo"
28081 in the menu, no specific action names
28083 * khtml/editing/edit_actions.h: new header, contains EditAction enum
28084 (renamed from HTMLEditAction, formerly in htmlediting.h)
28086 * ForwardingHeaders/editing/edit_actions.h: new forwarding header
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
28092 * khtml/editing/htmlediting.cpp:
28093 (khtml::EditCommandPtr::editingAction):
28094 update for enum name change
28095 (khtml::EditCommand::editingAction):
28097 (khtml::ApplyStyleCommand::ApplyStyleCommand):
28098 added editingAction parameter to this constructor
28099 (khtml::ApplyStyleCommand::editingAction):
28101 (khtml::DeleteSelectionCommand::editingAction):
28102 update for enum name change
28103 (khtml::MoveSelectionCommand::editingAction):
28105 (khtml::TypingCommand::editingAction):
28107 (khtml::ReplaceSelectionCommand::editingAction):
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):
28118 * kwq/KWQKHTMLPart.mm:
28119 (KWQKHTMLPart::registerCommandForUndoOrRedo):
28120 do the cast from EditAction to WebUndoAction a different way to match other code
28122 * kwq/WebCoreBridge.h:
28123 * kwq/WebCoreBridge.mm:
28124 (-[WebCoreBridge setTypingStyle:withUndoAction:]):
28125 added WebUndoAction parameter, passed into ApplyStyleCommand constructor
28126 (-[WebCoreBridge applyStyle:withUndoAction:]):
28129 * WebCore.pbproj/project.pbxproj:
28130 updated for new files
28132 2004-12-14 David Hyatt <hyatt@apple.com>
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.
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):
28149 2004-12-14 David Hyatt <hyatt@apple.com>
28151 Make sure <col> and <colgroup> can have spans updated dynamically as well.
28155 * khtml/html/html_tableimpl.cpp:
28156 (HTMLTableColElementImpl::parseHTMLAttribute):
28157 * khtml/rendering/render_table.cpp:
28158 (RenderTableCell::updateFromElement):
28159 (RenderTableCol::updateFromElement):
28161 2004-12-14 David Hyatt <hyatt@apple.com>
28163 Fix for 3833123, setting a cell's colspan does not update rendering like it should.
28167 * khtml/html/html_tableimpl.cpp:
28168 (HTMLTableCellElementImpl::parseHTMLAttribute):
28169 * khtml/rendering/render_table.cpp:
28170 (RenderTableCell::RenderTableCell):
28171 (RenderTableCell::updateFromElement):
28173 2004-12-14 Chris Blumenberg <cblu@apple.com>
28175 Fixed: <rdar://problem/3864536> crash copying text from other apps and pasting in a sticky in dashboard
28179 * khtml/editing/markup.cpp:
28180 (khtml::createFragmentFromText): ref and deref the fragment since calling appendChild can completely deref it
28182 2004-12-14 David Hyatt <hyatt@apple.com>
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.
28187 Reviewed by kocienda
28189 * khtml/rendering/render_object.cpp:
28190 (RenderObject::setStyle):
28192 2004-12-14 David Hyatt <hyatt@apple.com>
28194 Make sure the class attribute works when newlines are present in the attribute.
28196 Reviewed by kocienda
28198 * khtml/html/html_elementimpl.cpp:
28199 (HTMLNamedAttrMapImpl::parseClassAttribute):
28201 2004-12-14 David Hyatt <hyatt@apple.com>
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.
28207 Reviewed by kocienda
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:
28216 2004-12-14 John Sullivan <sullivan@apple.com>
28220 - added Undo action names for Cut, Paste, and Drag
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
28231 2004-12-14 John Sullivan <sullivan@apple.com>
28235 - architecture for WebCore part of fix for <rdar://problem/3790011> undoable operations all say "Undo" in the menu,
28236 no specific action names
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.)
28242 * khtml/editing/htmlediting.h:
28243 new enum for HTMLEditAction
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
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
28264 * kwq/WebCoreBridge.h:
28265 new enum for WebUndoAction, maps directly to HTMLEditAction.
28266 Declaration of nameForUndoAction:
28268 2004-12-14 Darin Adler <darin@apple.com>
28272 - added a bunch of missing nil checks; our old version of inherits used to work for nil (by accident)
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.
28280 2004-12-13 Darin Adler <darin@apple.com>
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
28287 * ForwardingHeaders/editing/markup.h: Added.
28288 * khtml/editing/markup.h: Added.
28289 * khtml/editing/markup.cpp: Added.
28291 * WebCore.pbproj/project.pbxproj: Added markup.h/cpp.
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.
28298 * khtml/ecma/kjs_window.cpp:
28299 (Window::retrieveWindow): Comment out assert that uses dynamic_cast.
28300 (Window::retrieveActive): Ditto.
28302 * khtml/editing/htmlediting.h: Added forward class declaration needed now that I removed one elsewhere.
28303 * khtml/xml/dom_docimpl.h: Ditto.
28305 * khtml/khtml_part.cpp:
28306 (KHTMLPart::slotDebugDOMTree): Use createMarkup instead of toHTML.
28307 (KHTMLPart::processObjectRequest): Use inherits instead of dynamic_cast.
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.
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.
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.
28322 * khtml/xml/dom_nodeimpl.h: Moved toHTML and related functions into markup.cpp.
28323 * khtml/xml/dom_nodeimpl.cpp: Ditto.
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.
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).
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.
28359 * kwq/KWQRenderTreeDebug.cpp:
28360 (write): Changed to use inherits rather than dynamic_cast.
28361 (writeSelection): Ditto.
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.
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.
28379 2004-12-13 Ken Kocienda <kocienda@apple.com>
28385 <rdar://problem/3917956> REGRESSION (Mail): pasting can leave insertion point inside pasted text
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.
28392 2004-12-13 David Hyatt <hyatt@apple.com>
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.
28399 * khtml/rendering/render_block.cpp:
28400 (khtml::RenderBlock::paint):
28401 (khtml::RenderBlock::nodeAtPoint):
28402 * khtml/rendering/render_object.h:
28403 (khtml::RenderObject::floatRect):
28405 2004-12-13 Ken Kocienda <kocienda@apple.com>
28411 <rdar://problem/3917863> REGRESSION (Mail): pasting two lines of plain text copied from an RTF document results in two styles
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.
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.
28425 2004-12-13 Ken Kocienda <kocienda@apple.com>
28429 WebCore side of fix for this bug:
28431 <rdar://problem/3768372> REGRESSION (Mail): paste of text ending in whitespace loses whitespace
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.
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.
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().
28462 2004-12-10 John Sullivan <sullivan@apple.com>
28464 fixed deployment build bustage that John Louch ran into
28466 * kwq/KWQTextEdit.mm:
28467 (QTextEdit::setScrollBarModes):
28468 move bool declaration inside exception-handling block to avoid obscure
28471 2004-12-10 Maciej Stachowiak <mjs@apple.com>
28473 Reviewed by Richard.
28475 <rdar://problem/3907484> REGRESSION (125-173): crash when KWQTextField is dealloc'ed while setting focus (profoundlearning.com)
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
28482 2004-12-10 Ken Kocienda <kocienda@apple.com>
28488 <rdar://problem/3915008> REGRESSION (Mail): Too much white space between lines separated by carriage returns
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
28495 So, I added a helper method to create <p> elements with an inline style that sets top and bottom margins
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.
28504 2004-12-10 Darin Adler <darin@apple.com>
28508 - fixed <rdar://problem/3910419> setting style={overflow:hidden} for <textarea> does not prevent appearance of scrollbars
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
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
28528 (RenderTextArea::updateFromElement): Use type QTextEdit.
28529 (RenderTextArea::text): Ditto.
28530 (RenderTextArea::select): Ditto.
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.
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.
28541 2004-12-10 Ken Kocienda <kocienda@apple.com>
28547 <rdar://problem/3915047> HItting return in empty document inserts <p> but
28548 insertion point does not move
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.
28557 2004-12-10 Maciej Stachowiak <mjs@apple.com>
28561 <rdar://problem/3912979> REGRESSION (125-173): repro crash in HTMLCollectionImpl code (www.clubtravel.ie)
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.
28569 2004-12-10 Ken Kocienda <kocienda@apple.com>
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.
28581 2004-12-10 Maciej Stachowiak <mjs@apple.com>
28585 <rdar://problem/3907705> REGRESSION (172-173): DHTML menus are broken at hrweb.apple.com
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.
28601 2004-12-10 Ken Kocienda <kocienda@apple.com>
28607 <rdar://problem/3914779> REGRESSION (Mail): Cannot arrow navigate to position before last character on text-wrapped line
28609 * khtml/rendering/render_text.cpp:
28610 (RenderText::caretRect): Code was not detecting space at the end of a line correctly. Now it does.
28612 2004-12-10 Ken Kocienda <kocienda@apple.com>
28618 <rdar://problem/3914755> REGRESSION (Mail): Insertion point disappears after pasting paragraph
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.
28625 2004-12-09 Richard Williamson <rjw@apple.com>
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.
28631 * kwq/WebCoreImageRendererFactory.m:
28632 (+[WebCoreImageRendererFactory shouldUseThreadedDecoding]):
28634 2004-12-09 David Hyatt <hyatt@apple.com>
28636 Fix for 3892686, left/top overflow was not being propagated properly up to containing blocks because of a math
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.
28644 * khtml/rendering/render_block.cpp:
28645 (khtml::RenderBlock::layoutBlockChildren):
28646 * khtml/rendering/render_flow.cpp:
28647 (RenderFlow::getAbsoluteRepaintRect):
28649 2004-12-09 David Hyatt <hyatt@apple.com>
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.
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:
28666 2004-12-09 Richard Williamson <rjw@apple.com>
28668 Fixed <rdar://problem/3914078> worldclock crashing gc related
28670 Use ProtectedValue for Context2D instance members.
28672 Reviewed by Maciej.
28674 * khtml/ecma/kjs_html.h:
28676 2004-12-09 John Sullivan <sullivan@apple.com>
28680 - fixed <rdar://problem/3731099> Move AXTitle string for image elements to AXDescription
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
28689 (-[KWQAccObject accessibilityAttributeValue:]):
28690 call accessibilityDescription when asked for AXDescription
28692 2004-12-09 Ken Kocienda <kocienda@apple.com>
28694 Reviewed by Harrison
28698 <rdar://problem/3910425> REGRESSION (Mail): Crash in ReplaceSelectionCommand; selection is empty, leading to null deref
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.
28707 2004-12-09 Ken Kocienda <kocienda@apple.com>
28713 <rdar://problem/3912841> REGRESSION (173-TOT): Some images report 0x0 dimensions on layout tests, causes spurious test failures
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.
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.
28728 2004-12-09 Chris Blumenberg <cblu@apple.com>
28730 Fix for busting XMLHTTPRequest.
28732 Reviewed by kocienda.
28734 * khtml/misc/loader.cpp:
28735 (Loader::servePendingRequests): pass true for deliverAllData
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
28744 2004-12-09 Ken Kocienda <kocienda@apple.com>
28748 <rdar://problem/3911011> REGRESSION (Mail): Spaces at end of line causing word wrap lost when copied/pasted
28750 * khtml/xml/dom_nodeimpl.cpp:
28751 (NodeImpl::renderedText): Fixed the code so that spaces at the end of lines are not skipped.
28753 2004-12-07 Richard Williamson <rjw@apple.com>
28755 Support threaded image decoding on machines w/ > 2 CPUs.
28757 Reviewed by Maciej and Chris.
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):
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:]):
28798 2004-12-07 Ken Kocienda <kocienda@apple.com>
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),
28809 2004-12-07 Ken Kocienda <kocienda@apple.com>
28815 <rdar://problem/3907422> REGRESSION (Mail): Pasting quoted content can place content after body element
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.
28824 2004-12-07 Darin Adler <darin@apple.com>
28828 - fixed <rdar://problem/3908701> REGRESSION: Cursor does not change to "hand" over active links
28830 * kwq/KWQEvent.mm: (positionForEvent): Add NSMouseMoved to list of events that have mouse location.
28832 2004-12-07 Ken Kocienda <kocienda@apple.com>
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.
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.
28845 2004-12-07 Ken Kocienda <kocienda@apple.com>
28849 Added a couple more layout tests.
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.
28856 2004-12-06 Maciej Stachowiak <mjs@apple.com>
28860 - fixed <rdar://problem/3906974> assertion failure in QWidget::beforeMouseDown clicking on <select multiple>
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.
28869 2004-12-06 David Hyatt <hyatt@apple.com>
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.
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):
28884 2004-12-06 David Hyatt <hyatt@apple.com>
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.
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):
28901 2004-12-06 David Harrison <harrison@apple.com>
28903 Reviewed by Ken Kocienda and Dave Hyatt (OOPS!).
28905 <rdar://problem/3849947> Typing after pasting line does not appear until after window resize.
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.
28912 2004-12-06 David Hyatt <hyatt@apple.com>
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.
28918 This patch also fixes 3902891, scroll bar of position:fixed content moves when a page is scrolled.
28920 Finally, the Emerson regression 3869718 (error involving computing the rightmost/lowest position of overflow:auto
28921 regions and web pages) has been fixed.
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):
28983 2004-12-06 Maciej Stachowiak <mjs@apple.com>
28987 - fixed <rdar://problem/3903797> scripts can cause other frames/windows to execute arbitrary script using javascript: URLs
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.
28993 I considered a few other possible exploits and made no change:
28995 - document.location is already protected because the document
28996 object itself is protected
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
29002 * khtml/ecma/kjs_window.cpp:
29003 (WindowFunc::tryCall):
29005 (LocationFunc::tryCall):
29007 2004-12-06 Ken Kocienda <kocienda@apple.com>
29013 <rdar://problem/3890955> 8A314: Forward delete sometimes fails to delete the selected quoted text
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
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:
29027 <rdar://problem/3907666> Incorrectly coded loop in Position::downstream can lead to infinite loop
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.
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.
29036 2004-12-06 Chris Blumenberg <cblu@apple.com>
29038 Fixed: <rdar://problem/3871718> REGRESSION (125-168): text marked bold with font that does not have bold variant copies as non-bold
29043 (-[DOMElement _font]): new SPI for AppKit
29044 * kwq/DOMPrivate.h:
29046 2004-12-06 Darin Adler <darin@apple.com>
29048 Reviewed by Maciej.
29050 - fixed <rdar://problem/3906327> Select All of a large document is slow (>15 secs on my machine for attached specimen)
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).
29055 2004-12-06 John Sullivan <sullivan@apple.com>
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.
29061 * khtml/css/cssparser.cpp:
29062 (CSSParser::parseValue):
29063 call clearProperties() instead of just setting numParsedProperties to 0
29064 (CSSParser::parseDeclaration):
29066 (CSSParser::createStyleDeclaration):
29069 2004-12-06 Ken Kocienda <kocienda@apple.com>
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.
29094 2004-12-06 Ken Kocienda <kocienda@apple.com>
29096 Reviewed by Harrison
29100 <rdar://problem/3906948> REGRESSION (Mail): Insert paragraph code can make the insertion point "stick" in place.
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.
29107 2004-12-06 Ken Kocienda <kocienda@apple.com>
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.
29131 2004-12-05 Darin Adler <darin@apple.com>
29133 - fixed small problem in my check-in from yesterday
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.
29142 2004-12-04 Darin Adler <darin@apple.com>
29146 - fixed <rdar://problem/3878329> REGRESSION (169-170): colors are wrong for my.yahoo.com due to CSS background parsing changes
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.
29152 - fixed <rdar://problem/3760869> click events for input type=button or type=checkbox don't have flags like shiftKey set
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.
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.
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.
29168 - fixed first symptom of <rdar://problem/3830936> REGRESSION (125-165): crash due to null font family, hang at changeforamerica.com
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.
29174 - fixed <rdar://problem/3829808> Safari crashes when adding a DOM node that was removed from an XMLHTTP request result
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.
29179 2004-12-03 Chris Blumenberg <cblu@apple.com>
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
29187 Reviewed by darin, rjw, kocienda.
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):
29211 * kwq/KWQLoader.mm:
29212 (KWQHeaderStringFromDictionary):
29213 (KWQCheckCacheObjectStatus):
29214 (KWQIsResponseURLEqualToURL):
29216 (KWQResponseMIMEType):
29217 (KWQCacheObjectExpiresTime):
29218 (khtml::CachedObject::setResponse):
29219 (khtml::CachedObject::setAllData):
29221 * kwq/KWQPixmap.mm:
29222 (QPixmap::QPixmap):
29223 * kwq/KWQResourceLoader.mm:
29224 (-[KWQResourceLoader finishJobAndHandle:]):
29225 (-[KWQResourceLoader cancel]):
29226 (-[KWQResourceLoader reportError]):
29227 (-[KWQResourceLoader finishWithData:]):
29229 * kwq/KWQSignal.mm:
29233 (KWQSlot::KWQSlot):
29235 * kwq/WebCoreBridge.h:
29236 * kwq/WebCoreResourceLoader.h:
29238 2004-12-04 Darin Adler <darin@apple.com>
29242 - fixed <rdar://problem/3876093> REGRESSION (166-167): Setting slider control's value from JavaScript has no effect (breaks RSS)
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.
29250 2004-12-03 John Sullivan <sullivan@apple.com>
29254 - fixed <rdar://problem/3889411> REGRESSION (125-172): repro crash in
29255 khtml::BackgroundLayer::cullEmptyLayers
29257 * khtml/rendering/render_style.cpp:
29258 (BackgroundLayer::cullEmptyLayers):
29259 added missing nil check
29263 2004-12-03 Ken Kocienda <kocienda@apple.com>
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.
29272 * khtml/css/cssproperties.c:
29275 * khtml/css/cssvalues.c:
29278 * khtml/misc/htmlattrs.c:
29281 * khtml/misc/htmltags.c:
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):
29306 * kwq/KWQLoader.mm:
29307 (KWQHeaderStringFromDictionary):
29308 (KWQCheckCacheObjectStatus):
29309 (KWQRetainResponse):
29310 (KWQReleaseResponse):
29311 (KWQIsResponseURLEqualToURL):
29313 (KWQResponseMIMEType):
29314 (KWQResponseTextEncodingName):
29315 (KWQResponseHeaderString):
29316 (KWQCacheObjectExpiresTime):
29317 (KWQLoader::KWQLoader):
29319 * kwq/KWQPixmap.mm:
29320 (QPixmap::QPixmap):
29321 * kwq/KWQResourceLoader.mm:
29322 (-[KWQResourceLoader finishJobAndHandle]):
29323 (-[KWQResourceLoader cancel]):
29324 (-[KWQResourceLoader reportError]):
29325 (-[KWQResourceLoader finish]):
29327 * kwq/KWQSignal.mm:
29331 (KWQSlot::KWQSlot):
29333 * kwq/WebCoreBridge.h:
29334 * kwq/WebCoreResourceLoader.h:
29336 2004-12-03 John Sullivan <sullivan@apple.com>
29340 - fixed <rdar://problem/3903990> can't tab to all items on www.google.com any more (other pages too?)
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.
29347 2004-12-03 Darin Adler <darin@apple.com>
29351 - fixed <rdar://problem/3901109> REGRESSION (171-172): repro crash in DOM::NodeImpl::setChanged at chick-fil-a.com
29353 * khtml/css/css_valueimpl.cpp: (DOM::CSSMutableStyleDeclarationImpl::CSSMutableStyleDeclarationImpl):
29354 Added missing initialization for base class and node pointer.
29356 - fixed a few places that could leave dangling node pointers
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.
29362 2004-12-03 Chris Blumenberg <cblu@apple.com>
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
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
29383 (KWQSlot::KWQSlot): pass data param to slotFinished
29384 (KWQSlot::call): added support for slotFinished_Loader, removed slotAllData
29386 2004-12-03 Ken Kocienda <kocienda@apple.com>
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.
29393 I removed these three functions from the Position class:
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;
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.
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.
29415 2004-12-03 Ken Kocienda <kocienda@apple.com>
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.
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
29445 2004-12-02 Ken Kocienda <kocienda@apple.com>
29451 <rdar://problem/3786362> REGRESSION (Mail): pasted text loses one newline
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.
29462 2004-12-02 Richard Williamson <rjw@apple.com>
29464 Fixed <rdar://problem/3841332> REGRESSION (125.9-167u): repro crash in -[KWQPageState invalidate] involving .Mac images
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.
29471 * kwq/WebCoreBridge.h:
29472 * kwq/WebCoreBridge.mm:
29473 (-[WebCoreBridge openURL:reload:contentType:refresh:lastModified:pageCache:]):
29474 (-[WebCoreBridge canCachePage]):
29475 (-[WebCoreBridge clear]):
29477 2004-12-02 Ken Kocienda <kocienda@apple.com>
29479 Reviewed by Richard
29483 <rdar://problem/3857775> 8A293: Mail.app crashes converting copy-pasted text into plain text
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.
29491 2004-12-02 Ken Kocienda <kocienda@apple.com>
29497 <rdar://problem/3668157> REGRESSION (Mail): shift-click deselects when selection was created right-to-left
29499 * khtml/khtml_part.cpp:
29500 (KHTMLPart::handleMousePressEventSingleClick): Use RangeImpl::compareBoundaryPoints
29501 to figure out which end of the selection to extend.
29503 2004-12-02 David Harrison <harrison@apple.com>
29505 Reviewed by Ken Kocienda.
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.
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.
29523 2004-12-02 Ken Kocienda <kocienda@apple.com>
29529 <rdar://problem/3900996> Crash dragging past end of contentEditable DIV, at DOM::RangeImpl::pastEndNode() const + 24
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.
29538 2004-12-01 Ken Kocienda <kocienda@apple.com>
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
29547 * khtml/editing/htmlediting.h: Ditto.
29549 2004-12-01 Ken Kocienda <kocienda@apple.com>
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.
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.
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.
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.
29586 2004-11-30 Chris Blumenberg <cblu@apple.com>
29588 * ChangeLog: removed conflict marker
29590 2004-11-30 Chris Blumenberg <cblu@apple.com>
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)
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
29616 (KWQSlot::KWQSlot): support for slotAllData
29618 * kwq/WebCoreBridge.h:
29619 * kwq/WebCoreResourceLoader.h:
29621 2004-11-30 Maciej Stachowiak <mjs@apple.com>
29625 2004-11-30 Maciej Stachowiak <mjs@apple.com>
29629 <rdar://problem/3805311> REGRESSION (159-163): onload in dynamically written document not called (causes blank search page at Japanese EPP site, many others)
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.
29638 2004-11-30 Maciej Stachowiak <mjs@apple.com>
29642 - fix recent regression from collection perf fixes.
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!)
29648 2004-11-30 Darin Adler <darin@apple.com>
29652 - rolled in a KDE fix for a problem that may underlie a number of crashes
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 =".
29657 - rolled in a KDE fix for a containingBlock crash
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
29663 - fixed <rdar://problem/3884660> 8A305: Repro crash in QScrollBar::setValue (affects Safari RSS)
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.
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.
29689 * kwq/KWQLineEdit.mm: (QLineEdit::~QLineEdit): Updated to use new detachQLineEdit name.
29691 * kwq/KWQListBox.mm:
29692 (-[KWQTableView mouseDown:]): Added. Calls QWidget::beforeMouseDown/afterMouseDown.
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.
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.
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.
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.
29736 * kwq/KWQTextEdit.h: Added ~QTextEdit.
29737 * kwq/KWQTextEdit.mm: (QTextEdit::~QTextEdit): Added. Calls detachQTextEdit.
29739 * kwq/KWQTextField.h: Changed invalidate to detachQLineEdit.
29740 * kwq/KWQTextField.mm: (-[KWQTextFieldController detachQLineEdit]): Changed.
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.
29754 * khtml/rendering/render_layer.cpp:
29755 (RenderLayer::setHasHorizontalScrollbar): Remove parent parameter; let addChild call addSubview:.
29756 (RenderLayer::setHasVerticalScrollbar): Ditto.
29758 2004-11-30 Ken Kocienda <kocienda@apple.com>
29764 <rdar://problem/3863031> REGRESSION (Mail): caret continues flashing while mouse is down
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.
29770 2004-11-30 Ken Kocienda <kocienda@apple.com>
29776 <rdar://problem/3861602> cursor gets lost trying to backspace to delete a form control
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.
29787 2004-11-30 Ken Kocienda <kocienda@apple.com>
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.
29801 2004-11-30 Ken Kocienda <kocienda@apple.com>
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.
29809 2004-11-29 Ken Kocienda <kocienda@apple.com>
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.
29820 New header that defines a couple of constants used in copying and pasting.
29822 * ForwardingHeaders/editing/html_interchange.h: Added.
29823 * khtml/editing/html_interchange.h: Added.
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.
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):
29857 This smaller set of changes markup generation to add the newline annotation described in the
29858 comment at the start of this entry.
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.
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.
29890 2004-11-29 Ken Kocienda <kocienda@apple.com>
29892 Reviewed by Harrison
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.
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.
29904 2004-11-29 Ken Kocienda <kocienda@apple.com>
29906 Reviewed by Harrison
29908 Added some new helpers to the VisiblePosition class. I will begin to use these when I check in
29909 my improved paste code.
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
29919 2004-11-29 Ken Kocienda <kocienda@apple.com>
29921 Reviewed by Harrison
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.
29929 2004-11-29 Ken Kocienda <kocienda@apple.com>
29931 Reviewed by Harrison
29933 Small improvements to the node-display debugging helpers.
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.
29939 2004-11-29 Ken Kocienda <kocienda@apple.com>
29941 Reviewed by Harrison
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.
29949 2004-11-29 Ken Kocienda <kocienda@apple.com>
29951 Reviewed by Harrison
29953 Add a new helper function to insert a paragraph separator. Will be used in my
29954 upcoming paste improvments.
29956 * khtml/editing/htmlediting.cpp: Added function
29957 (khtml::CompositeEditCommand::insertParagraphSeparator)
29958 * khtml/editing/htmlediting.h: Ditto.
29960 2004-11-23 David Harrison <harrison@apple.com>
29962 Added various comments.
29964 * khtml/editing/htmlediting.cpp:
29965 (khtml::StyleChange::init):
29966 (khtml::ApplyStyleCommand::doApply):
29967 (khtml::ApplyStyleCommand::applyBlockStyle):
29968 (khtml::ApplyStyleCommand::applyInlineStyle):
29970 2004-11-23 David Hyatt <hyatt@apple.com>
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().
29975 * khtml/rendering/render_block.cpp:
29976 (khtml::RenderBlock::nodeAtPoint):
29978 2004-11-22 David Hyatt <hyatt@apple.com>
29980 Make sure you can use document.createElement to make a <canvas> element.
29982 * khtml/xml/dom_docimpl.cpp:
29983 (DocumentImpl::createHTMLElement):
29985 2004-11-22 Maciej Stachowiak <mjs@apple.com>
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)
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):
30008 (HTMLCollectionImpl::updateNameCache):
30009 (HTMLCollectionImpl::namedItems):
30010 (HTMLFormCollectionImpl::HTMLFormCollectionImpl):
30011 (HTMLFormCollectionImpl::~HTMLFormCollectionImpl):
30012 (HTMLFormCollectionImpl::item):
30013 (HTMLFormCollectionImpl::updateNameCache):
30014 * khtml/html/html_miscimpl.h:
30016 2004-11-22 David Hyatt <hyatt@apple.com>
30018 Improve the WebCore cache so that the maximum cacheable object size is scaled based off the total cache
30023 * khtml/misc/loader.cpp:
30024 (CachedObject::finish):
30027 * khtml/misc/loader.h:
30028 (khtml::Cache::maxCacheableObjectSize):
30030 2004-11-22 David Hyatt <hyatt@apple.com>
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.
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:]):
30134 2004-11-22 Maciej Stachowiak <mjs@apple.com>
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)
30141 This avoids the O(N^2) penalty for named item traversal for form collections.
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
30148 Also fixed a bug that prevented the last form element from being removed properly.
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:
30173 2004-11-22 Ken Kocienda <kocienda@apple.com>
30175 Reviewed by Harrison
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.
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.
30198 2004-11-21 Maciej Stachowiak <mjs@apple.com>
30200 Reviewed by Richard.
30202 <rdar://problem/3889655> HTMLCollectionImpl should use traverseNextNode to improve speed and save recursion
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):
30214 2004-11-19 Maciej Stachowiak <mjs@apple.com>
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)
30222 Many optimizations to HTMLFormCollection. Iterating it should not
30223 be N^2 any more, though finding items by name could still be.
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:]):
30265 2004-11-19 David Harrison <harrison@apple.com>
30267 Reviewed by Ken and Darin.
30269 <rdar://problem/3856215> Cannot remove bold from the beginning of a message
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.
30276 * khtml/khtml_part.cpp:
30277 (KHTMLPart::computeAndSetTypingStyle):
30281 2004-11-19 Maciej Stachowiak <mjs@apple.com>
30285 <rdar://problem/3864151> REGRESSION (125-167): Chrysler.com never stops loading
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.
30299 2004-11-19 Ken Kocienda <kocienda@apple.com>
30301 Reviewed by Harrison
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.
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.
30315 2004-11-19 Ken Kocienda <kocienda@apple.com>
30317 Reviewed by Harrison
30321 <rdar://problem/3655241> setTypingStyle: does not set the real typing style, and typingStyle does not return it
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
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
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.
30336 2004-11-18 David Harrison <harrison@apple.com>
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.
30344 (-[DOMCSSStyleDeclaration setProperty:::]):
30346 2004-11-18 Chris Blumenberg <cblu@apple.com>
30348 Fixed: <rdar://problem/3587481> Bug Reporter Login Page: Password AutoFill does not work reliably
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
30355 2004-11-18 Maciej Stachowiak <mjs@apple.com>
30359 - fix recursive item traversal, use traverseNextNode() instead of
30360 the buggy hand-rolled traversal.
30362 * khtml/xml/dom_nodeimpl.cpp:
30363 (NodeListImpl::recursiveItem):
30365 2004-11-17 Darin Adler <darin@apple.com>
30369 - fixed <rdar://problem/3885744> crash with XMLHttpRequest test page (reported by KDE folks)
30371 * khtml/ecma/xmlhttprequest.cpp: (KJS::XMLHttpRequest::slotFinished):
30372 Rolled in fix from KDE; make sure to set job to 0 before calling changeState.
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)
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.
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.
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.
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.
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.
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.
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.
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.
30484 * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::applyDeclarations):
30485 Updated to use QValueList interface to CSSMutableStyleDeclarationImpl.
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).
30500 * khtml/dom/dom_node.h: Made isNull and handle functions inline.
30501 * khtml/dom/dom_node.cpp: Ditto.
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.
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.
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
30538 (HTMLElementImpl::setOuterHTML): Remove ref/deref pair because this leak is now fixed by changes
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.
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.
30555 * khtml/xml/dom_docimpl.cpp: (DocumentImpl::createCSSStyleDeclaration): Call simpler constructor
30556 now that there's no need to make the property list explictly.
30559 (-[DOMCSSStyleDeclaration setCssText:]): Raise exception when appropriate.
30560 (-[DOMCSSStyleDeclaration removeProperty:]): Ditto.
30561 (-[DOMCSSStyleDeclaration setProperty:::]): Dito.
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.
30573 * WebCore-tests.exp: Removed CSSStyleDeclaration::length; not sure why it was in here.
30574 * WebCore-combined.exp: Regenerated.
30576 2004-11-18 Maciej Stachowiak <mjs@apple.com>
30578 still even more build fixing
30580 * khtml/html/html_miscimpl.cpp:
30581 (HTMLCollectionImpl::resetCollectionInfo):
30583 2004-11-18 Maciej Stachowiak <mjs@apple.com>
30587 * khtml/html/html_miscimpl.cpp:
30588 (HTMLCollectionImpl::resetCollectionInfo):
30590 2004-11-18 Maciej Stachowiak <mjs@apple.com>
30592 Fixed build problem.
30594 * khtml/html/html_miscimpl.h:
30595 (DOM::HTMLCollectionImpl::CollectionInfo::CollectionInfo): it's haslength, not hasLenght.
30597 2004-11-18 Maciej Stachowiak <mjs@apple.com>
30601 - merged and cleaned up HTMLCollection and HTMLFormCollection speedups from konqueror
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)
30606 This is also a start on fixing 5 other bugs, but those need additional work to make
30607 HTMLFormCollection fast.
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):
30646 2004-11-18 Kevin Decker <kdecker@apple.com>
30650 fixed: <rdar://problem/3841842> getPropertyID expensive
30653 (getPropertyID): avoid unnecessary memory allocations by using a fixed-sized stack based buffer.
30655 2004-11-17 David Hyatt <hyatt@apple.com>
30657 Improve responsiveness by being willing to break out of the tokenizer. (This patch was landed already
30658 and subsequently backed out).
30660 Reviewed by kocienda
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):
30699 2004-11-17 David Harrison <harrison@apple.com>
30701 Reviewed by Ken Kocienda.
30703 Make sure previousLineStart is non-null before calling compareBoundaryPoints.
30704 Treat null case as meaning no post-move merge is needed.
30706 * khtml/editing/htmlediting.cpp:
30707 (khtml::DeleteSelectionCommand::initializePositionData):
30709 2004-11-17 David Harrison <harrison@apple.com>
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:
30718 2004-11-16 John Sullivan <sullivan@apple.com>
30720 Reviewed by Richard.
30722 - fixed <rdar://problem/3881929> 32 byte leak in editingStyle() in KHTMLPart (one-time only)
30724 * khtml/khtml_part.cpp:
30726 delete the list we created when we're done with it
30728 2004-11-16 Ken Kocienda <kocienda@apple.com>
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.
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.
30747 2004-11-15 David Harrison <harrison@apple.com>
30749 Reviewed by Chris and Darin.
30751 <rdar://problem/3880304> Non-linear performance hit for style changes
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.
30760 2004-11-15 Darin Adler <darin@apple.com>
30764 - fixed <rdar://problem/3880036> Many leaks from CSSComputedStyleDeclarationImpl::getPropertyCSSValue, seen in Mail and Blot
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.
30781 2004-11-15 Darin Adler <darin@apple.com>
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
30790 * khtml/khtml_part.cpp:
30791 (KHTMLPart::typingStyle):
30792 (KHTMLPart::setTypingStyle):
30794 (KHTMLPart::selectionHasStyle):
30795 (KHTMLPart::selectionStartHasStyle):
30796 (KHTMLPart::selectionComputedStyle):
30797 * khtml/khtml_part.h:
30798 * khtml/khtmlpart_p.h:
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:
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.
30845 2004-11-15 Darin Adler <darin@apple.com>
30849 - fixed <rdar://problem/3878489> REGRESSION: modifying attribute of <textarea> blows away edited text (breaks simplemachines.org forum)
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.
30859 * khtml/xml/dom_elementimpl.cpp:
30860 (NamedAttrMapImpl::addAttribute): Pass false for "children changed".
30861 (NamedAttrMapImpl::removeAttribute): Ditto.
30863 2004-11-15 John Sullivan <sullivan@apple.com>
30867 - fixed <rdar://problem/3880075> leak in CSSStyleDeclarationImpl::copyPropertiesInSet,
30868 seen often in Mail and Blot
30870 * khtml/css/css_valueimpl.cpp:
30871 (CSSStyleDeclarationImpl::copyPropertiesInSet):
30872 delete temporary list after we're done using it
30874 2004-11-15 Richard Williamson <rjw@apple.com>
30876 Fixed leak (3879883) that John found. Early return leaked
30877 allocated instance.
30881 * khtml/css/css_computedstyle.cpp:
30882 (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
30884 2004-11-15 Ken Kocienda <kocienda@apple.com>
30890 <rdar://problem/3879569> Many leaks in EditCommand mechanism, seen in Mail
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.
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
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.
30916 2004-11-15 Maciej Stachowiak <mjs@apple.com>
30920 <rdar://problem/3807080> Safari so slow it seems like a hang accessing a page on an IBM website
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.
30935 2004-11-15 John Sullivan <sullivan@apple.com>
30939 - fixed <rdar://problem/3879539> leak of NSString after pasting into editable HTML (e.g. Mail)
30941 * kwq/KWQKHTMLPart.mm:
30942 (KWQKHTMLPart::documentFragmentWithText):
30943 release mutable copy of string after we're done using it
30945 2004-11-14 Kevin Decker <kdecker@apple.com>
30949 fixed: <rdar://problem/3823038> LEAK: huge leak in DOM::HTMLElementImpl::createContextualFragment(DOM::DOMString const&, bool)
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.
30955 2004-11-13 Maciej Stachowiak <mjs@apple.com>
30959 <rdar://problem/3878766> VIP: Program listings pages at directv.com takes 75% of time traversing NodeLists
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:
30975 2004-11-12 Maciej Stachowiak <mjs@apple.com>
30977 Reviewed by Gramps.
30979 - fixed another bug in the last checkin, isCacheValid was unitialized, resulting in
30980 sometimes using a huge bogus length value.
30982 * khtml/xml/dom_nodeimpl.cpp:
30983 (NodeListImpl::NodeListImpl): Initialize isCacheValid.
30985 2004-11-12 Darin Adler <darin@apple.com>
30987 Reviewed by Maciej.
30989 - fixed an infinite loop in that last check-in
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.
30994 2004-11-12 Maciej Stachowiak <mjs@apple.com>
30998 - fixed <rdar://problem/3878183> Safari is 77% slower than it should be on a page on an IBM website due to NodeListImpl length
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.
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:
31030 2004-11-12 Darin Adler <darin@apple.com>
31032 Reviewed by Maciej.
31034 - various small cleanups
31036 * khtml/xml/dom_docimpl.h: Added policyBaseURL and setPolicyBaseURL.
31037 * khtml/html/html_documentimpl.h: Removed policyBaseURL and setPolicyBaseURL.
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.
31046 * khtml/khtml_part.h: Removed docImpl function.
31047 * khtml/khtml_part.cpp: Ditto.
31049 * khtml/xml/dom_docimpl.cpp: (DocumentImpl::close): Simplified code that implements
31050 the "redirect during onload" optimization. Now uses isScheduledLocationChangePending.
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.
31061 2004-11-12 Chris Blumenberg <cblu@apple.com>
31063 <rdar://problem/3843312> REGRESSION: Tabbing into content area puts insertion point at start, should go to where it last was
31067 * kwq/KWQKHTMLPart.mm:
31068 (KWQKHTMLPart::nextKeyViewInFrameHierarchy): only blow away selection when another view is focused
31072 2004-11-12 Darin Adler <darin@apple.com>
31076 - fixed a couple places that would not work for XML documents
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.
31083 2004-11-12 Darin Adler <darin@apple.com>
31085 - land versions of these files generated by the newer gperf
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.
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.
31098 2004-11-11 Richard Williamson <rjw@apple.com>
31100 Fix build horkage from previous checkin.
31102 * kwq/KWQKHTMLPart.h:
31104 2004-11-11 Darin Adler <darin@apple.com>
31108 - fixed <rdar://problem/3846152> REGRESSION (125-166): can't drag text out of <input type=text> fields
31110 * kwq/WebCoreBridge.h: Added wasFirstResponderAtMouseDownTime: method.
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.
31120 2004-11-11 David Hyatt <hyatt@apple.com>
31122 Disable the tokenizer deferral, since it hurts the PLT by 3% or so.
31126 * khtml/html/htmltokenizer.cpp:
31127 (khtml::HTMLTokenizer::continueProcessing):
31129 2004-11-11 Ken Kocienda <kocienda@apple.com>
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.
31144 2004-11-11 Ken Kocienda <kocienda@apple.com>
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.
31158 2004-11-11 Ken Kocienda <kocienda@apple.com>
31160 Reviewed by Harrison
31162 Some improvements to deleting when complete lines are selected.
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.
31203 2004-11-11 Ken Kocienda <kocienda@apple.com>
31207 * khtml/editing/htmlediting.cpp:
31208 (khtml::DeleteSelectionCommand::initializePositionData): Add some comments and a new piece of debugging output.
31210 2004-11-11 Ken Kocienda <kocienda@apple.com>
31214 Fix for these bugs:
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)
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.
31227 2004-11-11 Ken Kocienda <kocienda@apple.com>
31231 Improved some function names, at John's urging. No changes to the
31232 functions themselves.
31234 canPerformSpecialCaseAllContentDelete() --> handleSpecialCaseAllContentDelete()
31235 canPerformSpecialCaseBRDelete() --> handleSpecialCaseBRDelete()
31236 performGeneralDelete() --> handleGeneralDelete()
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
31245 2004-11-11 Ken Kocienda <kocienda@apple.com>
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.
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.
31257 2004-11-11 Ken Kocienda <kocienda@apple.com>
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
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.
31273 2004-11-10 Kevin Decker <kdecker@apple.com>
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.
31279 * khtml/ecma/kjs_dom.cpp:
31280 (DOMNodeList::tryGet): Got rid of an unnecessary node traversal.
31282 2004-11-10 Ken Kocienda <kocienda@apple.com>
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
31294 (khtml::DeleteSelectionCommand::endPositionForDelete): Ditto.
31296 2004-11-10 Ken Kocienda <kocienda@apple.com>
31298 Reviewed by Harrison
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.
31308 2004-11-10 Ken Kocienda <kocienda@apple.com>
31310 Reviewed by Harrison
31312 Some cleanups and fixes in upstream and downstream functions.
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.
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.
31322 In downstream, the check for crossing into a new block should use the equivalentDeepPosition()
31323 node, not the the this pointer's node.
31325 * khtml/xml/dom_position.cpp:
31326 (DOM::Position::upstream)
31327 (DOM::Position::downstream)
31329 2004-11-09 David Hyatt <hyatt@apple.com>
31331 Fix for 3873234, Safari UI is unresponsive when parsing multiple HTML docs and 3873233, Safari hangs when
31332 loading large local files.
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):
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]):
31373 2004-11-09 David Harrison <harrison@apple.com>
31375 Reviewed by Ken Kocienda.
31377 <rdar://problem/3865837> Wrong text style after delete to start of document
31379 * khtml/editing/htmlediting.cpp:
31380 (khtml::DeleteSelectionCommand::saveTypingStyleState):
31381 Sample computedStyle of m_selectionToDelete.start instead of m_downstreamStart.
31383 2004-11-09 Richard Williamson <rjw@apple.com>
31385 Fixed <rdar://problem/3872440> NSTimer prematurely released.
31391 * kwq/KWQWidget.mm:
31394 2004-11-09 Chris Blumenberg <cblu@apple.com>
31398 * WebCore.pbproj/project.pbxproj: explicitly link against libxml2.2.6.14.dylib since the version number has been bumped
31400 2004-11-08 David Harrison <harrison@apple.com>
31402 Reviewed by Ken Kocienda.
31404 <rdar://problem/3865854> Deleting first line deletes all lines
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.
31415 2004-11-08 Ken Kocienda <kocienda@apple.com>
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
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.
31435 2004-11-08 Chris Blumenberg <cblu@apple.com>
31437 Fixed: <rdar://problem/3870907> WebCore unnecessary links against JavaVM and Security
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
31445 2004-11-08 Darin Adler <darin@apple.com>
31449 - fixed <rdar://problem/3825966> 8A274 Safari crashes closing window: QTimer::fire() with MallocStackLogging and MallocScribble enabled
31451 * kwq/KWQTimer.mm: (QTimer::fire): Rearrange so we don't access the QTimer object after calling code
31452 that possibly deletes the QTimer.
31454 2004-11-08 Chris Blumenberg <cblu@apple.com>
31456 Fixed: <rdar://problem/3783904> Return key behavior is confusingly different between popup menus and autofill menus
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:
31464 2004-11-08 David Harrison <harrison@apple.com>
31468 Renamed NodeImpl::enclosingNonBlockFlowElement to NodeImpl::enclosingInlineElement, per Hyatt.
31470 * khtml/editing/htmlediting.cpp:
31471 (khtml::DeleteSelectionCommand::moveNodesAfterNode):
31472 * khtml/xml/dom_nodeimpl.cpp:
31473 (NodeImpl::enclosingInlineElement):
31474 * khtml/xml/dom_nodeimpl.h:
31476 2004-11-05 Chris Blumenberg <cblu@apple.com>
31478 Fixed: <rdar://problem/3838413> REGRESSION (Mail): "Smart" word paste adds spaces before/after special characters
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:
31494 2004-11-05 Adele Amchan <adele@apple.com>
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.
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.
31506 2004-11-04 David Hyatt <hyatt@apple.com>
31508 Fix for relpositioned inlines. This was reviewed a long time ago, but I can't recall who reviewed it (either
31511 Reviewed by darin or ken
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):
31535 Finish turning on XSLT. Make sure child stylesheets can load.
31537 * khtml/xsl/xslt_processorimpl.cpp:
31538 (DOM::stylesheetLoadFunc):
31539 (DOM::XSLTProcessorImpl::transformDocument):
31541 2004-11-04 David Hyatt <hyatt@apple.com>
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.
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:
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):
31658 2004-11-04 David Hyatt <hyatt@apple.com>
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).
31665 * kwq/KWQTextCodec.mm:
31666 (KWQTextDecoder::convertLatin1):
31667 (KWQTextDecoder::convertUTF16):
31668 (KWQTextDecoder::convertUsingTEC):
31669 (KWQTextDecoder::toUnicode):
31671 2004-11-04 David Hyatt <hyatt@apple.com>
31673 Make sure line-height returns the correct value for normal.
31677 * khtml/css/css_computedstyle.cpp:
31678 (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
31680 2004-11-04 David Harrison <harrison@apple.com>
31682 Reviewed by Ken Kocienda.
31684 <rdar://problem/3857753> REGRESSION (Mail): Delete incorrectly causes text to take on new style
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.
31697 2004-11-03 Ken Kocienda <kocienda@apple.com>
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.
31710 2004-11-03 Maciej Stachowiak <mjs@apple.com>
31712 Fix by Yasuo Kida, reviewed by me.
31714 <rdar://problem/3819004> REGRESSION (Mail): Can't move cursor / delete character after deleting the active input area
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.
31721 2004-11-02 Maciej Stachowiak <mjs@apple.com>
31723 Reviewed by Dave Hyatt (when I originally coded it).
31725 WebCore part of fix for:
31727 <rdar://problem/3759187> REGRESSION (Mail): implement firstRectForCharacterRange:
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.
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):
31751 2004-11-02 Ken Kocienda <kocienda@apple.com>
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).
31758 This new command is called InsertParagraphSeparatorCommand.
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.
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.
31832 2004-11-01 Kevin Decker <kdecker@apple.com>
31836 fixed <rdar://problem/3681094> Crash in KJS::WindowFunc::tryCall with application/xhtml+xml Content-Type
31839 * khtml/ecma/kjs_window.cpp:
31840 (WindowFunc::tryCall): Added a nil check in the case of an empty document lacking a baseURL().
31842 2004-11-01 Darin Adler <darin@apple.com>
31846 - fixed <rdar://problem/3859381> REGRESSION (167-168): text in form fields should not use body's text color
31848 * khtml/css/html4.css: Use color: initial for textarea and related ones.
31850 2004-11-01 Ken Kocienda <kocienda@apple.com>
31856 <rdar://problem/3775920> REGRESSION (Mail): Centering doesn't work in HTML mail
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
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
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.
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.
31918 2004-10-29 Darin Adler <darin@apple.com>
31922 - fixed <rdar://problem/3751619> Safari crash in khtml::CircularSearchBuffer::append(QChar const&)
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.
31927 2004-10-29 Chris Blumenberg <cblu@apple.com>
31929 Fixed: <rdar://problem/3853262> REGRESSION(166-168) gmail gets blank page when loading
31931 Reviewed by kocienda, adele.
31933 * khtml/rendering/render_frames.cpp:
31934 (RenderPartObject::updateWidget): remove infinite frame recursion check for iframes
31936 2004-10-29 Darin Adler <darin@apple.com>
31940 - fixed <rdar://problem/3857395> clicking on calendar in Apple Travel site crashes Safari in invalidateClick (getthere.net)
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.
31950 * kwq/KWQObject.mm: (QObject::startTimer): Fixed a comment.
31952 2004-10-28 Chris Blumenberg <cblu@apple.com>
31954 Enabled XSLT on Panther. See intrigue mail for compiling instructions.
31958 * WebCore.pbproj/project.pbxproj: link against xslt unconditionally, link against specific version of libxml on Panther
31959 * WebCorePrefix.h: always use XSLT
31961 2004-10-28 Ken Kocienda <kocienda@apple.com>
31965 Fix for these bugs:
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
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.
31985 2004-10-28 Chris Blumenberg <cblu@apple.com>
31987 Fixed: <rdar://problem/3856913> Panther-only crash in QString code copying front page of store.apple.com
31991 * kwq/KWQKHTMLPart.mm:
31992 (KWQKHTMLPart::attributedString): check that the renderer is a list item before making list item calls on it
31994 2004-10-28 Ken Kocienda <kocienda@apple.com>
31996 Reviewed by Harrison
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.
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:
32015 2004-10-28 Ken Kocienda <kocienda@apple.com>
32019 * khtml/editing/htmlediting.cpp:
32020 (khtml::DeleteSelectionCommand::DeleteSelectionCommand): Typo in initializer caused
32021 new mergeBlocksAfterDelete flag to be set improperly, causing layout regressions.
32023 2004-10-27 Ken Kocienda <kocienda@apple.com>
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.
32048 2004-10-26 Chris Blumenberg <cblu@apple.com>
32050 Fixed: <rdar://problem/3774243> page up/down, arrow up/down, etc in Safari RSS should scroll main content
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:
32061 2004-10-26 David Hyatt <hyatt@apple.com>
32063 Fix for 3848214, deleting a partial word left a repaint artifact if the partial word was pulled back onto
32066 Reviewed by kocienda
32068 * khtml/rendering/bidi.cpp:
32069 (khtml::RenderBlock::layoutInlineChildren):
32071 2004-10-26 David Hyatt <hyatt@apple.com>
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.
32076 Reviewed by kocienda
32078 * khtml/rendering/render_canvas.cpp:
32079 (RenderCanvas::selectionRect):
32080 * khtml/rendering/render_object.h:
32081 (khtml::RenderObject::hasSelectedChildren):
32083 2004-10-26 Ken Kocienda <kocienda@apple.com>
32089 <rdar://problem/3851164> mail crashed when I pasted a large amount of text into a reply
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
32098 * khtml/editing/htmlediting.h: Change removeBlockPlaceholderIfNeeded return type.
32100 2004-10-26 Darin Adler <darin@apple.com>
32104 - fixed <rdar://problem/3851301> leak of one NSCFDictionary for each XMLHttpRequest issued
32106 * kwq/KWQLoader.mm: (KWQServeSynchronousRequest): Add a release.
32108 2004-10-26 Ken Kocienda <kocienda@apple.com>
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.
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.
32121 (khtml::InsertTextCommand::InsertTextCommand):
32122 (khtml::InsertTextCommand::doApply):
32123 (khtml::InsertTextCommand::doUnapply):
32125 2004-10-25 Adele Amchan <adele@apple.com>
32129 * khtml/xml/dom_docimpl.cpp: (DocumentImpl::inDesignMode): made inDesignMode const
32130 * khtml/xml/dom_docimpl.h:
32132 2004-10-25 Adele Amchan <adele@apple.com>
32134 Reviewed by me, code change by Darin.
32136 * khtml/xml/dom_docimpl.cpp: Moved design mode code outside the XSLT ifdef.
32138 2004-10-25 Ken Kocienda <kocienda@apple.com>
32140 Oops. These two test results changed with my last checkin, for the better.
32142 * layout-tests/editing/deleting/delete-3800834-fix-expected.txt
32143 * layout-tests/editing/inserting/insert-3775316-fix-expected.txt
32145 2004-10-25 Ken Kocienda <kocienda@apple.com>
32151 <rdar://problem/3820349> REGRESSION (Mail): select all, delete does not always delete everything
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.
32168 2004-10-25 Ken Kocienda <kocienda@apple.com>
32170 Added some more editing layout tests.
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.
32183 2004-10-25 Ken Kocienda <kocienda@apple.com>
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.
32195 2004-10-25 Adele Amchan <adele@apple.com>
32199 Fix for <rdar://problem/3619890> Feature request: designMode
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.
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
32219 2004-10-22 Ken Kocienda <kocienda@apple.com>
32225 <rdar://problem/3844662> REGRESSION (Mail): Style changes can affect adjacent, unselected text
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
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.
32240 2004-10-22 Ken Kocienda <kocienda@apple.com>
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
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.
32257 2004-10-22 Ken Kocienda <kocienda@apple.com>
32259 * WebCore.pbproj/project.pbxproj:
32260 Add GCC_ENABLE_OBJC_GC and GCC_FAST_OBJC_DISPATCH flags.
32262 2004-10-21 David Hyatt <hyatt@apple.com>
32266 Clean up the inline run function so that it doesn't return incorrect answers when making children non-inline.
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)
32271 * khtml/rendering/render_block.cpp:
32272 (khtml::getInlineRun):
32273 (khtml::RenderBlock::makeChildrenNonInline):
32275 2004-10-21 David Hyatt <hyatt@apple.com>
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.
32282 * khtml/rendering/render_inline.cpp:
32283 (RenderInline::splitFlow):
32285 2004-10-21 Ken Kocienda <kocienda@apple.com>
32289 Significant improvement to the way that whitespace is handled during editing.
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.
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:
32328 2004-10-21 David Hyatt <hyatt@apple.com>
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).
32335 * khtml/rendering/render_block.cpp:
32336 (khtml::getInlineRun):
32338 2004-10-20 David Hyatt <hyatt@apple.com>
32340 Add better dumping of overflow information for scrolling regions.
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.
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:
32355 2004-10-20 David Hyatt <hyatt@apple.com>
32357 Fix for 3791146, make sure all lines are checked when computing overflow.
32359 Reviewed by kocienda
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:
32368 2004-10-20 David Hyatt <hyatt@apple.com>
32370 Fix for 3790936, make the unicode-breaking on the layout tests match Panther.
32372 Reviewed by kocienda
32374 * khtml/rendering/break_lines.cpp:
32375 (khtml::isBreakable):
32377 2004-10-20 Darin Adler <darin@apple.com>
32381 - fixed <rdar://problem/3317107> text input fields and text areas don't respect background color and text color CSS properties
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.
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.
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.
32397 * kwq/KWQTextEdit.h: Added setPalette override.
32398 * kwq/KWQTextEdit.mm: (QTextEdit::setPalette): Added. Sets foreground and background color
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.
32407 * kwq/KWQApplication.h: Removed unused palette function.
32408 * kwq/KWQApplication.mm: Ditto.
32410 * kwq/KWQWidget.h: Removed unsetPalette.
32411 * kwq/KWQWidget.mm: Ditto.
32413 - fixed storage leak
32415 * khtml/html/html_formimpl.cpp: (DOM::HTMLGenericFormElementImpl::~HTMLGenericFormElementImpl):
32416 Roll in storage leak fix from KDE guys.
32418 2004-10-19 David Hyatt <hyatt@apple.com>
32420 Reviewed by kocienda
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.
32425 Also patch dom_textimpl.cpp to reduce further the # of RenderTexts created.
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):
32444 Fix for 3841060, regression with * in frames. Reviewed by kocienda.
32446 * layout-tests/fast/frames/002-expected.txt: Added.
32447 * layout-tests/fast/frames/002.html: Added.
32449 2004-10-19 Darin Adler <darin@apple.com>
32451 Reviewed by Maciej.
32453 - follow-on to my fix yesterday, which broke a layout test because I rolled out a fix that Maciej had done
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.
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.
32465 * layout-tests/fast/tokenizer/004.html: Fixed line endings (were CR, should be LF).
32467 2004-10-18 Darin Adler <darin@apple.com>
32469 Reviewed by Dave Hyatt.
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)
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.
32478 2004-10-18 Ken Kocienda <kocienda@apple.com>
32484 <rdar://problem/3840907> textedit doesn't render italic or bold text in html documents
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.
32494 2004-10-18 Chris Blumenberg <cblu@apple.com>
32496 Fixed: <rdar://problem/3770135> hang loading page with EMBED tag pointing to same page (tridentantennas.co.uk)
32498 Reviewed by kocienda.
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
32503 2004-10-15 Chris Blumenberg <cblu@apple.com>
32505 Fixed: <rdar://problem/3841774> would like to get NSColor from DOM-CSS
32510 (-[DOMRGBColor _color]): new, returns getNSColor on KWQColor
32511 * kwq/DOMPrivate.h:
32513 2004-10-15 Ken Kocienda <kocienda@apple.com>
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
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.
32528 2004-10-14 Ken Kocienda <kocienda@apple.com>
32534 <rdar://problem/3839989> REGRESSION (Mail): Left arrow does nothing after inserting attachment
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.
32544 2004-10-14 Ken Kocienda <kocienda@apple.com>
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
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.
32556 2004-10-14 Adele Amchan <adele@apple.com>
32558 Reviewed by Darin and Ken.
32560 fix for <rdar://problem/3821070> null de-ref in DelectSelectionCommand::doApply()
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.
32566 * khtml/editing/htmlediting.cpp: (khtml::DeleteSelectionCommand::doApply):
32568 2004-10-14 Adele Amchan <adele@apple.com>
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.
32575 * khtml/khtml_part.cpp:
32576 (KHTMLPart::shouldBeginEditing):
32577 (KHTMLPart::shouldEndEditing):
32578 (KHTMLPart::isContentEditable):
32579 * khtml/khtml_part.h:
32580 * kwq/KWQKHTMLPart.h:
32582 2004-10-14 Ken Kocienda <kocienda@apple.com>
32586 Final fix for these bugs:
32588 <rdar://problem/3806306> HTML editing puts spaces at start of line
32589 <rdar://problem/3814252> HTML editing groups space with word causing wrapping
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.
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
32604 (KHTMLPart::removeEditingStyleFromBodyElement): New helper. Calls removeEditingStyleFromElement on
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.
32616 2004-10-14 John Sullivan <sullivan@apple.com>
32620 - fixed <rdar://problem/3840052> Crash in removeBlockPlaceholderIfNeeded attaching file to empty document
32622 * khtml/editing/htmlediting.cpp:
32623 (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded):
32624 needed a nil check to handle empty document case
32626 2004-10-13 Maciej Stachowiak <mjs@apple.com>
32630 <rdar://problem/3824626> Change to do colormatching for DeviceRGB colorspace causes ~11% Safari slowdown
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.
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):
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]):
32658 2004-10-13 Ken Kocienda <kocienda@apple.com>
32662 * khtml/css/css_valueimpl.cpp:
32663 (CSSStyleDeclarationImpl::merge): A little cleanup. Also, make sure m_lstValues
32664 is non-null before appending.
32666 2004-10-13 Ken Kocienda <kocienda@apple.com>
32668 Update expected results for improved behavior as a result of fix to 3816768.
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
32674 2004-10-13 Ken Kocienda <kocienda@apple.com>
32676 Reviewed by Richard
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.
32682 2004-10-13 Ken Kocienda <kocienda@apple.com>
32688 <rdar://problem/3816768> REGRESSION (Mail): Deleting last character in block incorrectly
32689 moves caret out of block.
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.
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.
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.
32716 2004-10-13 Richard Williamson <rjw@apple.com>
32718 Added support for -apple-dashboard-region:none. And fixed
32719 a few computed style problems.
32721 Fixed <rdar://problem/3833532> -apple-dashboard-region: none; is needed
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):
32739 2004-10-13 David Hyatt <hyatt@apple.com>
32741 Rework block layout to clean it up and simplify it (r=kocienda).
32743 Also fixing the style sharing bug (r=mjs).
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):
32825 2004-10-12 Ken Kocienda <kocienda@apple.com>
32831 <rdar://problem/3836158> REGRESSION (Mail): command-right-arrow moves to beginning of next line
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.
32837 2004-10-12 Ken Kocienda <kocienda@apple.com>
32843 <rdar://problem/3836986> Delete code removes elements of table structure; can result in very broken-looking web pages
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
32853 (khtml::DeleteSelectionCommand::doApply): Call removeFullySelectedNode instead of removeNode
32855 * khtml/editing/htmlediting.h: Add declarations for new functions.
32857 2004-10-12 Richard Williamson <rjw@apple.com>
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.
32864 Fixed <rdar://problem/3831063> regions use left offset instead of top offset
32867 * khtml/khtml_part.h:
32868 * khtml/rendering/render_object.cpp:
32869 (RenderObject::addDashboardRegions):
32871 (-[DOMNode isContentEditable]):
32872 (-[DOMNode KJS::Bindings::]):
32873 * kwq/KWQKHTMLPart.h:
32874 * kwq/KWQKHTMLPart.mm:
32875 (KWQKHTMLPart::executionContextForDOM):
32877 2004-10-12 Ken Kocienda <kocienda@apple.com>
32883 <rdar://problem/3834779> Mail crashes when editing HTML message - khtml::Selection::layout()
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.
32892 2004-10-11 Ken Kocienda <kocienda@apple.com>
32896 This is a partial fix to this bug:
32898 <rdar://problem/3832886> increase quote level on new mail document leads to immediate
32899 crash in caret painting code
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).
32906 I added some other crash protections below.
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
32918 2004-10-11 Darin Adler <darin@apple.com>
32922 - fixed <rdar://problem/3834230> empty table can result in division by 0
32924 * khtml/rendering/render_table.cpp: (RenderTableSection::layoutRows):
32925 Added 0 check; rolled in from KDE.
32927 2004-10-11 Darin Adler <darin@apple.com>
32931 - fixed <rdar://problem/3818712> form checkbox value property is read only
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.
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.
32954 2004-10-11 Darin Adler <darin@apple.com>
32958 - fixed <rdar://problem/3296652> checkbox input type does not respond to onchange
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.
32964 2004-10-11 Ken Kocienda <kocienda@apple.com>
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.
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.
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
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
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.
33069 2004-10-11 Darin Adler <darin@apple.com>
33073 - fixed <rdar://problem/3670280> scroll position on overflowed textareas resets when leaving the tab
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.
33080 2004-10-11 Darin Adler <darin@apple.com>
33084 - fixed <rdar://problem/3831546> More text is copied than is visually selected
33086 The bug here is that upstream was moving a position too far.
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.
33093 2004-10-11 Darin Adler <darin@apple.com>
33097 - fixed <rdar://problem/3833841> adding an event listener for keypress events does not work
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.
33104 2004-10-10 John Sullivan <sullivan@apple.com>
33106 - fixed <rdar://problem/3664375> repro crash in -[KWQAccObject accessibilityAttributeNames]
33108 (-[KWQAccObject accessibilityActionNames]):
33109 check for nil m_renderer
33111 2004-10-09 Darin Adler <darin@apple.com>
33115 - fixed <rdar://problem/3828147> REGRESSION: textareas with wrap="off" show their contents in a thin vertical line of text
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.
33127 2004-10-09 Darin Adler <darin@apple.com>
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)
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.
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.
33154 * khtml/khtmlpart_p.h: Added a new value to the RedirectionScheduled enum for scheduleLocationChange
33155 and also renamed one of the existing values.
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.
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.
33168 2004-10-09 Darin Adler <darin@apple.com>
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
33174 * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::click): Use 0,0 for the coordinates.
33176 2004-10-09 Darin Adler <darin@apple.com>
33180 - fixed <rdar://problem/3804665> REGRESSION: WebCore framework now has many init routines
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.
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.
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.
33194 2004-10-09 Chris Blumenberg <cblu@apple.com>
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
33201 Reviewed by hyatt, kocienda.
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
33225 2004-10-06 David Hyatt <hyatt@apple.com>
33227 Back out style sharing perf fix.
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:
33242 2004-10-05 David Hyatt <hyatt@apple.com>
33244 Fix a bug in the iteration of locateCousinList and clean up the style sharing stats code.
33246 * khtml/css/cssstyleselector.cpp:
33247 (khtml::CSSStyleSelector::locateCousinList):
33248 (khtml::CSSStyleSelector::elementsCanShareStyle):
33249 (khtml::CSSStyleSelector::locateSharedStyle):
33250 (khtml::CSSStyleSelector::styleForElement):
33252 2004-10-05 Ken Kocienda <kocienda@apple.com>
33256 * khtml/rendering/bidi.cpp:
33257 (khtml::RenderBlock::computeHorizontalPositionsForLine): Fix coding mistake that
33258 broke layout tests involving compacts.
33260 2004-10-05 Ken Kocienda <kocienda@apple.com>
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.
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.
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.
33321 2004-10-05 David Hyatt <hyatt@apple.com>
33323 Fix style sharing optimization to be fast again. Go back to using pointer comparisons when looking for
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):
33336 2004-10-05 David Hyatt <hyatt@apple.com>
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).
33341 Reviewed by kocienda
33343 * khtml/rendering/render_list.cpp:
33344 (RenderListMarker::createInlineBox):
33345 * khtml/rendering/render_list.h:
33346 (khtml::ListMarkerBox:::InlineBox):
33347 (khtml::ListMarkerBox::isText):
33349 2004-10-05 Ken Kocienda <kocienda@apple.com>
33353 Recent checkin adding upstreamDeepEquivalent had it backwards. The helper
33354 we want is downstreamDeepEquivalent, as the deepEquivalent function returns
33355 an upstream position.
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
33365 2004-10-05 David Hyatt <hyatt@apple.com>
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.
33371 Reviewed by kocienda
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):
33496 * kwq/WebCoreTextRenderer.h:
33497 * kwq/WebCoreTextRendererFactory.mm:
33498 (WebCoreInitializeEmptyTextGeometry):
33500 2004-10-05 Ken Kocienda <kocienda@apple.com>
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.
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.
33534 2004-10-05 Ken Kocienda <kocienda@apple.com>
33538 Fix for these bugs:
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.
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.
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.
33576 2004-10-05 Darin Adler <darin@apple.com>
33580 - fixed <rdar://problem/3673150> Pasting string from clipboard that is longer than input box will accept fails rather than truncating
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
33587 2004-10-04 Darin Adler <darin@apple.com>
33589 Reviewed by Maciej.
33591 - fixed <rdar://problem/3826343> crash in KHTMLParser::setCurrent parsing document fragment (happens in Calendar widget)
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.
33602 - fixed <rdar://problem/3814237> REGRESSION (Mail): Copy/paste style does not set color in Mail compose window
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.
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.
33622 - fix compile on Panther and other cleanup
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.
33633 2004-10-04 Darin Adler <darin@apple.com>
33637 - did a more-robust version of the fix I just landed
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.
33644 2004-10-04 Darin Adler <darin@apple.com>
33648 - fixed <rdar://problem/3824393> REGRESSION (165-TOT): Crash in KHTMLParser::popOneBlock closing window (bose.com)
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.
33657 2004-10-04 Darin Adler <darin@apple.com>
33659 Reviewed by Maciej.
33661 - fixed <rdar://problem/3825429> onclick handler called when mouse down on another element (affects Dashboard Movies widget, test case enclosed)
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.
33679 2004-10-04 Ken Kocienda <kocienda@apple.com>
33685 <rdar://problem/3825289> REGRESSION (Mail): Crash in fontForSelection in empty window
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.
33696 2004-10-04 Darin Adler <darin@apple.com>
33700 - fixed <rdar://problem/3800667> REGRESSION (Mail): double-clicking multiple spaces only selects two spaces
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.
33707 - fixed a problem that would show up using HTML editing under garbage collection
33709 * kwq/KWQEditCommand.mm: (-[KWQEditCommand finalize]): Fixed a [super dealloc] that should have been a
33712 - another small change
33714 * khtml/editing/visible_units.cpp: (khtml::nextWordBoundary): Tweaked a comment.
33716 2004-10-01 Darin Adler <darin@apple.com>
33718 Reviewed by Ken (or arguably done by Ken, reviewed by Darin).
33720 - fixed <rdar://problem/3823828> REGRESSION (Mail): Clicking past end of any line puts insertion point at beginning of next line
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.
33726 - fixed <rdar://problem/3823816> REGRESSION (Mail): double-clicking first word on line also selects previous empty line
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.
33731 2004-10-01 Darin Adler <darin@apple.com>
33735 - fixed <rdar://problem/3782117> CrashTracer: ..722 crashes at com.apple.WebCore: DOM::HTMLBodyElementImpl::insertedIntoDocument + 0x2c (AOL website)
33737 * khtml/html/html_baseimpl.cpp:
33738 (HTMLBodyElementImpl::insertedIntoDocument): Check for nil document case.
33739 (HTMLFrameElementImpl::isURLAllowed): Ditto.
33740 (HTMLFrameElementImpl::openURL): Ditto.
33742 2004-10-01 Darin Adler <darin@apple.com>
33744 Reviewed by Maciej.
33746 - fixed <rdar://problem/3822218> REGRESSION (164-165): images don't update on rollover on directv.com page
33748 I introduced a major regression where various JavaScript window properties would not be found when I
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.
33754 2004-09-30 Darin Adler <darin@apple.com>
33756 Reviewed by Maciej.
33758 - fixed <rdar://problem/3461499> JavaScript function document.open() is buggy with 2nd argument "replace"
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.
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.
33767 - fixed <rdar://problem/3672933> oninput is firing at page load time for <input type=range>
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.
33772 - fixed <rdar://problem/3821167> leaks of something allocated by recalcStyle after loading altavista page from cvs-base
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.
33777 - fixed <rdar://problem/3821172> leak of HTML attribute string after loading the ESPN page from cvs-base
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
33783 2004-09-30 Richard Williamson <rjw@apple.com>
33785 Fixed <rdar://problem/3822330> REGRESSION: crash on launch when homepage is set to about:blank
33789 * kwq/KWQKHTMLPart.mm:
33790 (KWQKHTMLPart::setDisplaysWithFocusAttributes):
33792 2004-09-30 Chris Blumenberg <cblu@apple.com>
33794 Fixed: <rdar://problem/3792822> Safari is calling the Cocoa QuickTime plugin twice for the OBJECT and EMBED tags
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
33802 2004-09-30 Darin Adler <darin@apple.com>
33804 - rolled out bad image change that caused performance regression
33806 * khtml/rendering/render_image.cpp: (RenderImage::setPixmap):
33807 Don't reference the new image before doing the assignment.
33808 This forced an unwanted.
33810 2004-09-30 Ken Kocienda <kocienda@apple.com>
33812 Reviewed by me, coded by Darin
33814 - fixed <rdar://problem/3818305> REGRESSION (Mail): Shift + page up has no effect; should modify selection
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).
33820 2004-09-29 Richard Williamson <rjw@apple.com>
33822 Fixed <rdar://problem/3779998> bringing window to front or sending to back does not send focus/blur events to JavaScript window object
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
33830 * kwq/KWQKHTMLPart.mm:
33831 (KWQKHTMLPart::setDisplaysWithFocusAttributes):
33833 2004-09-29 Ken Kocienda <kocienda@apple.com>
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
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.
33865 2004-09-29 Maciej Stachowiak <mjs@apple.com>
33869 - consolidated OS version checks into prefix header
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:
33880 2004-09-29 David Hyatt <hyatt@apple.com>
33882 Make sure <br>s always get line boxes. Also prevent the creation of RenderTexts for whitespace normal/nowrap nodes
33885 Reviewed by kocienda
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:
33912 2004-09-29 Ken Kocienda <kocienda@apple.com>
33918 <rdar://problem/3815895> exception inside fontForSelection causes Mail to abort when selection hits bottom
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.
33926 <rdar://problem/3817268> REGRESSION (Mail): Window does not scroll when selecting out of
33927 visible area of view with arrow keys
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
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
33958 2004-09-29 Ken Kocienda <kocienda@apple.com>
33964 <rdar://problem/3818296> REGRESSION (Mail): centerSelectionInVisibleArea does not work correctly
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.
33988 2004-09-28 Chris Blumenberg <cblu@apple.com>
33990 Fixed: WebArchives begin with "<#document/>"
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
33997 2004-09-28 Chris Blumenberg <cblu@apple.com>
33999 Removed range parameter from recursive_toHTML and friends since that code path is no longer used.
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:]):
34012 2004-09-28 Darin Adler <darin@apple.com>
34016 - improve spell checking so it doesn't unmark and remark as you move the cursor with the arrow
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.
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.
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.
34051 - implemented empty-cells property in computed style
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.
34056 2004-09-28 Chris Blumenberg <cblu@apple.com>
34058 Fixed n-squared issues with appending to KWQValueListImpl. This fixes the hang in 3794799.
34060 Fixed by Darin, reviewed by me.
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()
34077 2004-09-28 Richard Williamson <rjw@apple.com>
34079 More dashboard region changes for John.
34081 <rdar://problem/3817421> add getter for dashboard regions (debugging)
34083 <rdar://problem/3817417> NSScrollView need autoregions for dashboard
34085 <rdar://problem/3817388> should have short form form control regions
34087 <rdar://problem/3817477> visibility does not work with dashboard control regions
34091 * WebCore-combined.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]):
34119 2004-09-28 John Sullivan <sullivan@apple.com>
34123 - fixed <rdar://problem/3818558> REGRESSION: "Installed Plug-ins" is blank
34124 because of <script type="application/x-javascript">
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.
34131 * layout-tests/fast/tokenizer/004.html:
34132 updated layout test to test some application/xxxx types
34134 2004-09-27 David Hyatt <hyatt@apple.com>
34136 Reworked lists to work well with RTL text. Specifically the following bugs have been fixed:
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.
34146 * khtml/css/cssparser.cpp:
34147 (CSSParser::parseValue):
34148 * khtml/css/cssproperties.c:
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):
34166 2004-09-28 Ken Kocienda <kocienda@apple.com>
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.
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.
34194 2004-09-28 Darin Adler <darin@apple.com>
34198 - fixed a storage leak discovered by code inspection
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.
34203 2004-09-27 David Hyatt <hyatt@apple.com>
34205 Don't allow nested headers when only inlines are in between them. Fixes a hang related to pathological nesting
34206 on magicmethodsonline.com.
34210 * khtml/html/htmlparser.cpp:
34211 (KHTMLParser::parseToken):
34212 (KHTMLParser::processCloseTag):
34213 (KHTMLParser::isHeaderTag):
34214 (KHTMLParser::popNestedHeaderTag):
34215 * khtml/html/htmlparser.h:
34217 2004-09-27 Kevin Decker <kdecker@apple.com>
34221 * khtml/css/css_base.cpp:
34222 (CSSSelector::selectorText): changed another ATTR_CLASS case to properly return class selector names.
34224 2004-09-27 David Hyatt <hyatt@apple.com>
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.
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.
34232 Partial fix for 3762962, make sure the image cells with specified widths but percentage heights don't just get a minwidth
34235 Fix for 3533878, framesets that use percentages that add up to a value > 100% should normalize those percentages.
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):
34257 2004-09-27 Ken Kocienda <kocienda@apple.com>
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.
34267 Updated several functions which used closestRenderedPosition to use VisiblePosition
34270 Also deleted Position::equivalentShallowPosition. This was unused.
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.
34302 2004-09-27 Ken Kocienda <kocienda@apple.com>
34304 Reviewed by Darin and Maciej
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.
34312 For the remainder of files, perform the mechanical changes necessary to make everything
34313 compile and run as before.
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:])
34346 2004-09-26 Darin Adler <darin@apple.com>
34348 Reviewed by Maciej.
34350 - fixed <rdar://problem/3816170> image.width/height not available from Image objects (works in Firefox)
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.
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
34359 * khtml/rendering/render_image.cpp: (RenderImage::setPixmap): Increment use count on new object before
34360 decrementing use count on old object.
34362 2004-09-26 Darin Adler <darin@apple.com>
34366 - fixed <rdar://problem/3812771> document.implementation.hasFeature returns false for a lot of features we implement
34368 * khtml/xml/dom_docimpl.cpp: (DOMImplementationImpl::hasFeature): Added all the DOM features that we implemented
34369 as part of the HTML editing work.
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.
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.
34379 - fixed <rdar://problem/3814605> REGRESSION: fast/table/039 layout test is failing due to extra trailing whitespace in innerText
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.
34384 - fixed <rdar://problem/3813253> method cloneNode() does not clone dynamically-set style attributes correctly
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.
34395 * khtml/xml/dom_elementimpl.cpp:
34396 (ElementImpl::cloneNode): Removed an uneeded type cast.
34397 (XMLElementImpl::cloneNode): Ditto.
34399 2004-09-24 Kevin Decker <kdecker@apple.com>
34401 Reviewed by Maciej.
34403 <rdar://problem/3799334> DIG: Safari does not properly return style names [DigCSS.htm]
34405 * khtml/css/css_base.cpp:
34406 (CSSSelector::selectorText): Properly returns Class Selector names.
34407 Before we would get *[CLASS"foo"] instead of .foo
34409 2004-09-24 Ken Kocienda <kocienda@apple.com>
34415 <rdar://problem/3814660> REGRESSION (8A200-8A259): Select All has no effect on livepage.apple.com
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.
34423 2004-09-24 John Sullivan <sullivan@apple.com>
34425 Reviewed by Maciej.
34427 - fixed <rdar://problem/3528339> Turn on full keyboard access shows
34428 invisible <input> elements
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
34434 2004-09-24 Maciej Stachowiak <mjs@apple.com>
34436 - fixed deployment build
34440 * khtml/dom/dom_string.cpp: put implementation of ascii() in #ifdef !NDEBUG
34441 to match prototype.
34443 2004-09-24 David Hyatt <hyatt@apple.com>
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.
34450 * khtml/css/cssstyleselector.cpp:
34451 (khtml::CSSStyleSelector::checkOneSelector):
34453 2004-09-23 David Hyatt <hyatt@apple.com>
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.
34458 Reviewed by kocienda
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::):
34467 2004-09-24 Chris Blumenberg <cblu@apple.com>
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
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:
34485 2004-09-24 Ken Kocienda <kocienda@apple.com>
34487 Hyatt made an improvement in the render tree which caused the results
34488 to get a little thinner.
34490 * layout-tests/editing/deleting/delete-block-merge-contents-001-expected.txt
34491 * layout-tests/editing/deleting/delete-block-merge-contents-008-expected.txt
34493 2004-09-24 Ken Kocienda <kocienda@apple.com>
34499 <rdar://problem/3812939> REGRESSION: move-between-blocks-no-001 editing layout test fails in DeleteSelectionCommandImpl
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.
34505 2004-09-23 John Sullivan <sullivan@apple.com>
34507 Reviewed by Maciej.
34509 - fixed <rdar://problem/3551850> hang caused by interpreting bad javascript
34510 guarded by a deliberately bogus "language" attribute (www.riibe.com)
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.
34517 2004-09-23 David Hyatt <hyatt@apple.com>
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.
34522 * khtml/rendering/render_canvas.cpp:
34523 (RenderCanvas::repaintViewRectangle):
34525 2004-09-23 Richard Williamson <rjw@apple.com>
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
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]):
34555 2004-09-23 Ken Kocienda <kocienda@apple.com>
34557 Reviewed by Richard
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.
34564 2004-09-23 Maciej Stachowiak <mjs@apple.com>
34568 <rdar://problem/3685235> REGRESSION (Mail): links are not properly editable
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.
34575 2004-09-23 Darin Adler <darin@apple.com>
34577 - added test for the DOM::Range bug fixed recently
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.
34582 2004-09-23 David Hyatt <hyatt@apple.com>
34584 Fix for hitlist bug, crash when deleting.
34586 Also fix repaint bug when inlines are inside overflow:auto/scroll regions.
34588 Reviewed by kocienda
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):
34598 2004-09-23 John Sullivan <sullivan@apple.com>
34602 - fixed <rdar://problem/3527840> reproducible crash at johnbrown.v32.qikker.com
34603 (nil-deref in NodeImpl::dispatchEvent)
34605 * khtml/xml/dom_nodeimpl.cpp:
34606 (NodeImpl::dispatchEvent):
34607 guard against document or document->document() being nil
34609 2004-09-23 Darin Adler <darin@apple.com>
34613 - added new VisibleRange class; not used yet
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.
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
34625 * khtml/editing/selection.h: khtml, not DOM, namespace
34626 * khtml/editing/visible_position.h: Ditto.
34628 2004-09-23 Darin Adler <darin@apple.com>
34632 - fixed <rdar://problem/3812758> 8S266: attaching mutation events to an editable div crashes Safari
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.
34641 2004-09-23 Darin Adler <darin@apple.com>
34645 - fixed some minor mistakes discovered by code inspection
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.
34656 2004-09-23 Darin Adler <darin@apple.com>
34660 - fixed <rdar://problem/3790595> "ERROR: unimplemented propertyID: 97" logged to console when copying selection (table-layout)
34662 * khtml/css/css_computedstyle.cpp: (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
34663 Added CSS_PROP_TABLE_LAYOUT case.
34665 2004-09-23 Darin Adler <darin@apple.com>
34669 - fixed <rdar://problem/3809600> REGRESSION: text in search field doesn't disappear when clicked at developer.apple.com
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.
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.
34680 2004-09-23 Darin Adler <darin@apple.com>
34684 - fixed <rdar://problem/3812471> -[DOMRange cloneContents] clones too much in some cases where endOffset is 0
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.
34691 2004-09-23 Darin Adler <darin@apple.com>
34695 - fixed <rdar://problem/3811890> when selecting and moving the caret, some words aren't spell-checked (test case included)
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.
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.
34709 2004-09-23 Darin Adler <darin@apple.com>
34713 - fixed <rdar://problem/3811584> REGRESSION (85-125): iframe.document undefined in function called from button onclick; works from img onclick
34715 Since we are doing a bit less "defers callbacks" work, when testing I ran into this code path.
34717 * khtml/xml/dom2_eventsimpl.cpp: (MouseEventImpl::computeLayerPos): Check for document without renderer.
34719 2004-09-23 Darin Adler <darin@apple.com>
34721 - checked in a new file I forgot
34723 * khtml/editing/text_granularity.h: Added.
34725 2004-09-22 Darin Adler <darin@apple.com>
34729 DOM::CaretPosition -> khtml::VisibleRange
34730 DOM::Selection -> khtml::Selection
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
34735 * WebCore.pbproj/project.pbxproj: Added text_granularity.h.
34737 * ForwardingHeaders/editing/selection.h: Added.
34738 * WebCore-combined.exp: Regenerated.
34739 * WebCore-tests.exp: Updated symbol for DOM::Selection debugging.
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.
34765 2004-09-22 Darin Adler <darin@apple.com>
34767 * ForwardingHeaders/*: Use import instead of include.
34769 2004-09-22 Darin Adler <darin@apple.com>
34771 - renamed these files:
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
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"
34784 * WebCore.pbproj/project.pbxproj: Added the files under new names, removed the old ones.
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.
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.
34829 2004-09-22 Richard Williamson <rjw@apple.com>
34831 Pass dashboard regions up to WebKit.
34833 Don't collect regions from RenderTexts.
34835 Made more args and return types references to avoid
34836 copying value lists.
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]):
34862 2004-09-22 Ken Kocienda <kocienda@apple.com>
34866 Fix for this hitlist bug:
34868 <rdar://problem/3805486> REGRESSION (Mail): Empty block elements can cause the caret to get "stuck" in one spot
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.
34877 2004-09-22 Chris Blumenberg <cblu@apple.com>
34879 Fixed: <rdar://problem/3812091> REGRESSION (Mail): double-clicked word is not smart inserted on drag
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
34895 2004-09-22 Ken Kocienda <kocienda@apple.com>
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
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.
34918 2004-09-22 Ken Kocienda <kocienda@apple.com>
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
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
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.
34945 2004-09-21 Maciej Stachowiak <mjs@apple.com>
34949 <rdar://problem/3805137> REGRESSION: Cannot search on pricetool.com
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.
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.
34973 2004-09-22 Chris Blumenberg <cblu@apple.com>
34975 Fixed: <rdar://problem/3811187> REGRESSION (Mail): Control-click past end of document does not spell check last word
34977 Reviewed by kocienda.
34979 * khtml/xml/dom_selection.cpp:
34980 (DOM::Selection::validate): if at the end of the document, expand to the left.
34982 2004-09-22 Maciej Stachowiak <mjs@apple.com>
34984 Reviewed by Ken and John.
34986 <rdar://problem/3759228> REGRESSION (Mail): stray characters when entering text via input method right after newline
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:
34997 2004-09-22 Richard Williamson <rjw@apple.com>
34999 More tweaks to dashboard regions.
35001 Move dashboard regions list into css3NonInheritedData so it will be shared
35002 by all styles that don't modify the empty region list.
35004 Make the initial value for dashboard region list a static to minimize allocations
35007 Make marquee and flex style accessor functions const.
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):
35031 2004-09-22 David Hyatt <hyatt@apple.com>
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.
35038 * kwq/KWQKHTMLPart.mm:
35039 (KWQKHTMLPart::fontForSelection):
35041 2004-09-21 Chris Blumenberg <cblu@apple.com>
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
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
35067 2004-09-21 Richard Williamson <rjw@apple.com>
35069 More dashboard region work.
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.
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):
35095 2004-09-21 Darin Adler <darin@apple.com>
35099 - fixed problem where our updateLayout call ignores pending stylesheets all the time
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.
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.
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.
35124 * kwq/WebCoreBridge.mm:
35125 (-[WebCoreBridge alterCurrentSelection:direction:granularity:]): Removed unneeded
35126 explicit "true" parameter to setSelection.
35127 (-[WebCoreBridge alterCurrentSelection:verticalDistance:]): Ditto.
35129 2004-09-21 Darin Adler <darin@apple.com>
35133 - fix crash when pasting text at the end of the document and then doing an undo
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.
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.
35152 2004-09-21 Richard Williamson <rjw@apple.com>
35154 Part 2 of the feature requested in
35155 <rdar://problem/3752791> Dashboard: Need a better solution for control regions
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
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):
35196 2004-09-21 John Sullivan <sullivan@apple.com>
35200 - WebCore part of fix for <rdar://problem/3618274> REGRESSION (125-135):
35201 Option-tab doesn't always work as expected
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.
35208 * kwq/KWQButton.mm:
35209 (QButton::focusPolicy):
35210 check tabsToAllControls() rather than just WebCoreKeyboardAccessFull
35212 * kwq/KWQComboBox.mm:
35213 (QComboBox::focusPolicy):
35216 * kwq/KWQFileButton.mm:
35217 (KWQFileButton::focusPolicy):
35220 * kwq/KWQListBox.mm:
35221 (QListBox::focusPolicy):
35224 2004-09-21 John Sullivan <sullivan@apple.com>
35226 * khtml/xml/dom_selection.cpp:
35227 (DOM::Selection::modify):
35228 initialize xPos to make compiler happy in deployment builds
35230 2004-09-21 Darin Adler <darin@apple.com>
35234 - some small mechanical improvements to the position and selection classes
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.
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.
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):
35278 * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::advanceToNextMisspelling): Tweaked whitespace.
35280 2004-09-21 Chris Blumenberg <cblu@apple.com>
35282 Fixed: <rdar://problem/3647229> Safari does not play inline Windows Media Content on some sites (miggy.net and ministryofsound.com)
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
35289 2004-09-20 Darin Adler <darin@apple.com>
35291 Reviewed by Maciej.
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.
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.
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.
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.
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.
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.
35415 2004-09-20 Darin Adler <darin@apple.com>
35417 Reviewed by Maciej.
35419 - fixed <rdar://problem/3808073> find is broken
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.
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.
35436 2004-09-20 Chris Blumenberg <cblu@apple.com>
35438 Fixed: <rdar://problem/3781290> REGRESSION (Mail): Crash in ReplaceSelectionCommandImpl attaching file to new message
35440 Reviewed by kocienda.
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
35460 2004-09-20 Darin Adler <darin@apple.com>
35464 - fixed nil-deref happening often in Mail when I delete
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.
35469 2004-09-20 Maciej Stachowiak <mjs@apple.com>
35471 Reviewed by Richard.
35473 <rdar://problem/3672101> HANG: typing into login field at dws-direkt.deutsche-bank.de (infinite recursion)
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
35480 2004-09-20 Chris Blumenberg <cblu@apple.com>
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
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
35507 2004-09-20 Darin Adler <darin@apple.com>
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)
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.
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.
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.
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.
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.
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.
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.
35595 * khtml/css/cssstyleselector.cpp: Disable code that uses invertedColor when APPLE_CHANGES, since it
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.
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.
35611 * kwq/WebCoreBridge.h: Replaced WebSelectByDocument with WebSelectToDocumentBoundary.
35612 Added advanceToNextMisspellingStartingJustBeforeSelection,
35613 rangeByAlteringCurrentSelection:verticalDistance:, and
35614 alterCurrentSelection:verticalDistance:.
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.
35624 2004-09-20 Darin Adler <darin@apple.com>
35628 - cleaned up DOM::RangeImpl a little so compareBoundaryPoints can be used outside the class
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.
35643 2004-09-20 Darin Adler <darin@apple.com>
35647 - fixed <rdar://problem/3806990> REGRESSION (125-162): Crash on Select All at http://leuf.net/cgi/wikidn?PerlConvertEolScript
35649 * khtml/rendering/render_replaced.cpp: (RenderWidget::setSelectionState): Added nil check for the
35652 2004-09-20 Darin Adler <darin@apple.com>
35656 - fixed <rdar://problem/3773740> calling addEventListener on a frame that hasn't loaded yet crashes
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.
35661 2004-09-20 Darin Adler <darin@apple.com>
35665 - fixed problem where up and down arrow keys are not preserving X position
35667 * khtml/khtml_part.cpp:
35668 (KHTMLPart::selectionLayoutChanged): Moved code to clear m_xPosForVerticalArrowNavigation out of here.
35669 (KHTMLPart::notifySelectionChanged): Moved it into here.
35671 2004-09-18 Darin Adler <darin@apple.com>
35673 Reviewed by Maciej.
35675 - fixed <rdar://problem/3805627> -[DOMRange _text] sometimes includes all text to the end of the document for certain ranges
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.
35683 2004-09-17 Ken Kocienda <kocienda@apple.com>
35685 * layout-tests/editing/selection/unrendered-004-expected.txt: Updated expected results.
35687 2004-09-17 Ken Kocienda <kocienda@apple.com>
35693 <rdar://problem/3780245> REGRESSION (Mail): some lines are skipped when doing arrow navigation
35695 * khtml/xml/dom_position.cpp:
35696 (DOM::Position::previousLinePosition): One-line fix. Make sure that BRs at the end of blocks
35699 2004-09-17 Ken Kocienda <kocienda@apple.com>
35705 <rdar://problem/3805594> REGRESSION (Mail): Second return key stroke does not work when first was in blockquote
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.
35712 2004-09-16 Richard Williamson <rjw@apple.com>
35714 Part 1 of the feature requested in
35715 <rdar://problem/3752791> Dashboard: Need a better solution for control regions
35717 This patch implements the CSS parsing necessary for dashboard regions.
35718 Here's an example of the syntax we support:
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);
35730 Part 2 will determine the appropriate regions.
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:
35751 * khtml/css/cssproperties.h:
35752 * khtml/css/cssproperties.in:
35753 * khtml/dom/css_value.h:
35754 (DOM::CSSPrimitiveValue::):
35756 2004-09-16 Darin Adler <darin@apple.com>
35758 - fixed caret-drawing regression from my last patch
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.
35765 2004-09-16 Darin Adler <darin@apple.com>
35769 - fixed <rdar://problem/3803280> crash in selectAll on page with no contents
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.
35776 - cleaned up caret code
35777 - changed DOM::Selection to use CaretPosition more
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.
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.
35796 * khtml/xml/dom_position.h: Removed EIncludeLineBreak and startParagraphBoundary and
35797 endParagraphBoundary.
35798 * khtml/xml/dom_position.cpp: Removed startParagraphBoundary and endParagraphBoundary.
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.
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.
35823 2004-09-16 Ken Kocienda <kocienda@apple.com>
35829 <rdar://problem/3787168> REGRESSION (Mail): Deleting text from the beginning of a quoted range removes the quoting from the rest
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.
35835 2004-09-15 Darin Adler <darin@apple.com>
35837 - fixed Panther build
35839 * kwq/KWQAccObject.mm: (-[KWQAccObject accessibilityActionDescription:]): Fixed backwards
35840 check in #if that was compiling the code on Panther only rather than Tiger only.
35842 2004-09-15 Darin Adler <darin@apple.com>
35846 - fixed lockFocus exception I observed; perhaps not a real issue in the field due to exception blocking
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.
35851 2004-09-15 Darin Adler <darin@apple.com>
35855 - fixed <rdar://problem/3786467> REGRESSION (Mail): Reproducible crash replying to an HTML message when your preference is for plain text composing.
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.
35863 2004-09-15 Richard Williamson <rjw@apple.com>
35865 Fixed <rdar://problem/3781561> REGRESSION (Mail): typing in Mail became suddenly really sluggish (substitute font code)
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.
35875 * khtml/rendering/render_text.cpp:
35876 (InlineTextBox::paintMarker): Minimal change to ensure that we
35877 handle the case of marker starting before box.
35879 2004-09-15 Darin Adler <darin@apple.com>
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
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.
35891 2004-09-15 Darin Adler <darin@apple.com>
35895 - did some QRect-related changes to facilitate later bug fixing
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.
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.
35903 2004-09-15 Darin Adler <darin@apple.com>
35907 - fixed <rdar://problem/3799512> REGRESSION (Mail): caret flashes 1 pixel too far to the left
35909 * khtml/rendering/render_text.cpp: (RenderText::caretRect): Added one to the horizontal position
35912 2004-09-15 Ken Kocienda <kocienda@apple.com>
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.
35936 2004-09-15 Ken Kocienda <kocienda@apple.com>
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.
35947 2004-09-14 Darin Adler <darin@apple.com>
35949 Reviewed by Maciej.
35951 - added method for fix to <rdar://problem/3788894> REGRESSION (Mail): ctrl-t emacs key binding does not work (transpose)
35953 * kwq/WebCoreBridge.h: Added rangeOfCharactersAroundCaret.
35954 * kwq/WebCoreBridge.mm: (-[WebCoreBridge rangeOfCharactersAroundCaret]): Added.
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.
35962 * kwq/DOM.mm: (-[DOMRange description]): Added.
35964 2004-09-14 Darin Adler <darin@apple.com>
35968 - fixed <rdar://problem/3786986> REGRESSION: TEXTAREAs have extra wide right margins where the scrollbars used to be
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.
35977 2004-09-14 Chris Blumenberg <cblu@apple.com>
35979 Backed out my changes to these files. They were not meant to be checked. (I'm having a bad CVS day)
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:]):
35988 2004-09-14 David Hyatt <hyatt@apple.com>
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.
35993 Reviewed by kocienda
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):
36005 2004-09-14 Chris Blumenberg <cblu@apple.com>
36007 Fixed: <rdar://problem/3778680> REGRESSION: plug-in content sometimes doesn't show up
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
36015 2004-09-14 Maciej Stachowiak <mjs@apple.com>
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.
36023 * layout-tests/fast/js/global/encode-URI-test.html:
36025 2004-09-14 Ken Kocienda <kocienda@apple.com>
36027 Reviewed by Richard
36031 <rdar://problem/3800834> REGRESSION (Mail): Can't delete backwards past quoted text using HTML editing
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.
36040 2004-09-14 Ken Kocienda <kocienda@apple.com>
36042 * khtml/css/parser.cpp: Did not regenerate this file from parser.y before last checkin.
36044 2004-09-14 Chris Blumenberg <cblu@apple.com>
36046 Fixed typos in last check-in.
36048 * khtml/khtml_part.cpp:
36049 (KHTMLPart::selectClosestWordFromMouseEvent):
36050 (KHTMLPart::handleMousePressEventDoubleClick):
36051 * khtml/khtml_part.h:
36052 * kwq/KWQKHTMLPart.mm:
36053 (KWQKHTMLPart::sendContextMenuEvent):
36055 2004-09-09 David Hyatt <hyatt@apple.com>
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.
36061 Reviewed by kocienda
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):
36096 2004-09-14 Ken Kocienda <kocienda@apple.com>
36102 <rdar://problem/3794376> vertical formatting lines that show quote level are missing
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.
36108 * khtml/css/parser.cp
36109 * khtml/css/parser.y
36111 2004-09-14 Chris Blumenberg <cblu@apple.com>
36113 Fixed: Control-click shouldn't cause deselect when clicking selection.
36117 * kwq/KWQKHTMLPart.mm:
36118 (KWQKHTMLPart::sendContextMenuEvent): don't attempt to select the closest word when the selection is clicked
36120 2004-09-14 Chris Blumenberg <cblu@apple.com>
36122 Fixed badness that my last patch caused. Because there was a conflict, my last patch added stuff that darin had just removed.
36126 * kwq/KWQKHTMLPart.mm:
36127 (KWQKHTMLPart::sendContextMenuEvent): don't call deref on the view
36129 2004-09-14 Chris Blumenberg <cblu@apple.com>
36131 Fixed: <rdar://problem/3783595> REGRESSION (Mail): control-click does not select closest word
36133 Reviewed by kocienda.
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
36143 2004-09-14 Ken Kocienda <kocienda@apple.com>
36149 <rdar://problem/3800346> Inserting newline in BR after block not working
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
36157 * layout-tests/editing/selection/insert-3800346-fix-expected.txt: Added.
36158 * layout-tests/editing/selection/insert-3800346-fix.html: Added.
36160 2004-09-14 Darin Adler <darin@apple.com>
36164 - fixed <rdar://problem/3479392> REGRESSION (Mail): select all does not select all at some pages
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.
36170 2004-09-13 Darin Adler <darin@apple.com>
36172 Reviewed by Maciej.
36174 - fixed <rdar://problem/3710123> Loading iframe that replaces content in the parent document crashes Safari (Oracle Portal)
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.
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.
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.
36195 (KWQSlot::KWQSlot): Added the new slot to the list of slots.
36196 (KWQSlot::call): Ditto.
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.
36206 2004-09-13 Darin Adler <darin@apple.com>
36208 Reviewed by Maciej.
36210 - fixed regression caused by change earlier today
36212 * khtml/xml/dom_selection.cpp: (DOM::Selection::modifyExtendingRightForward):
36213 Use CaretPosition for CHARACTER, not WORD.
36215 2004-09-13 Darin Adler <darin@apple.com>
36219 - fixed <rdar://problem/3798453> DIG failure: getting variable with same name as DOM element attribute gets attribute value instead
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.
36225 2004-09-13 Ken Kocienda <kocienda@apple.com>
36231 <rdar://problem/3798346> REGRESSION (125-162): crash pushing down arrow key on KLM.com site
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.
36240 2004-09-13 Ken Kocienda <kocienda@apple.com>
36246 <rdar://problem/3784840> REGRESSION (Mail): Text is inserted in the wrong place after changing typing style
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.
36254 2004-09-13 Ken Kocienda <kocienda@apple.com>
36256 Added a couple new layout tests to cover recent changes.
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.
36264 2004-09-13 Ken Kocienda <kocienda@apple.com>
36270 <rdar://problem/3765519> REGRESSION (Mail): word movement goes too far upstream at start of line
36272 * khtml/xml/dom_position.cpp:
36273 (DOM::Position::previousWordPosition): Use downstream position here when making final placement of caret.
36275 2004-09-13 Ken Kocienda <kocienda@apple.com>
36279 Various editing improvements, many focused on the improvements made possible by the
36280 new CaretPosition class.
36282 Includes fixes for these bugs:
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)
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.
36331 2004-09-13 Ken Kocienda <kocienda@apple.com>
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.
36336 * layout-tests/editing/selection/move-between-blocks-no-001-expected.txt
36337 * layout-tests/editing/selection/move-between-blocks-no-001.html
36339 2004-09-13 Ken Kocienda <kocienda@apple.com>
36343 Fix for these bugs:
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
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.
36357 2004-09-12 Darin Adler <darin@apple.com>
36359 Reviewed by Maciej.
36361 - fixed <rdar://problem/3797758> REGRESSION (155-156): Cannot tab between input fields at switchboard.com
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.
36366 2004-09-12 Darin Adler <darin@apple.com>
36368 Reviewed by Maciej.
36370 - fixed <rdar://problem/3792082> zero character codes in UTF-16 input cause crash
36372 * kwq/KWQTextCodec.mm: (KWQTextDecoder::convertUTF16): Fixed code that was using the wrong variable
36373 to decrement the input length, causing buffer overrun.
36375 2004-09-12 Darin Adler <darin@apple.com>
36377 Reviewed by Maciej.
36379 - fixed <rdar://problem/3798240> computed style error log messages seen with numbers in the range 74-77
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.
36385 2004-09-12 Darin Adler <darin@apple.com>
36387 * layout-tests/css1/text_properties/text-transform-expected.txt: Removed unused test result.
36389 2004-09-11 Maciej Stachowiak <mjs@apple.com>
36393 <rdar://problem/3787208> can't log in to SAP SDN site (JS parse error)
36396 (KURL::decode_string): Check for find result >= 0 instead of >0,
36397 to handle case of first character in a string being encoded.
36399 2004-09-09 Chris Blumenberg <cblu@apple.com>
36401 Support for: <rdar://problem/3795485> debug menu item to enable RSS animation on first layout
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:
36416 2004-09-09 Maciej Stachowiak <mjs@apple.com>
36418 - roll out the last change, it appears to cause a performance regression
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:
36438 2004-09-08 Maciej Stachowiak <mjs@apple.com>
36442 WebCore part of fix for:
36444 <rdar://problem/3759187> REGRESSION (Mail): implement firstRectForCharacterRange:
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.
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):
36468 2004-09-06 Darin Adler <darin@apple.com>
36472 - fixed <rdar://problem/3790526> mark-related methods not implemented (needed for people with them in their key bindings files)
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.
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.
36487 * khtml/rendering/render_text.cpp: (RenderText::paint): Update for name change.
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.
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
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.
36507 * WebCore.pbproj/project.pbxproj: Update MACOSX_DEPLOYMENT_TARGET to 10.3.
36509 2004-09-08 Maciej Stachowiak <mjs@apple.com>
36511 - fixed deployment build problems noticed by Grant
36513 * khtml/rendering/render_flow.cpp:
36514 (RenderFlow::caretRect):
36515 * khtml/rendering/render_text.cpp:
36516 (RenderText::caretRect):
36518 2004-09-08 David Hyatt <hyatt@apple.com>
36520 Fix XML so that elements with no namespace never make HTML elements (when their names coincidentally match).
36524 * khtml/xml/dom_docimpl.cpp:
36525 (DocumentImpl::createElementNS):
36527 2004-09-07 Maciej Stachowiak <mjs@apple.com>
36531 - renamed caretPos to caretRect and made it return a QRect instead
36532 of taking four out parameters by reference.
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:]):
36555 2004-09-07 Maciej Stachowiak <mjs@apple.com>
36559 <rdar://problem/3759209> REGRESSION (Mail): assertion failure when all of marked text deleted at start of document
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.
36567 2004-09-07 David Hyatt <hyatt@apple.com>
36569 Initial text-decoration CSS3 work for editing. Just gets the properties and values parsed.
36573 * khtml/css/css_computedstyle.cpp:
36574 (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
36575 * khtml/css/cssparser.cpp:
36576 (CSSParser::parseValue):
36577 * khtml/css/cssproperties.c:
36580 * khtml/css/cssproperties.h:
36581 * khtml/css/cssproperties.in:
36582 * khtml/css/cssstyleselector.cpp:
36583 (khtml::CSSStyleSelector::adjustRenderStyle):
36584 * khtml/css/cssvalues.c:
36587 * khtml/css/cssvalues.h:
36588 * khtml/css/cssvalues.in:
36590 2004-09-06 Maciej Stachowiak <mjs@apple.com>
36592 Reviewed by Darin and Ken.
36594 <rdar://problem/3655568> window.open fails when URL contains trailing space
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.
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
36608 (findHostnamesInMailToURL):
36609 (findHostnameInHierarchicalURL):
36611 (encodeRelativeString):
36612 (substituteBackslashes):
36615 - add missing include of qvaluelist.h
36617 * khtml/ecma/kjs_dom.h:
36619 2004-09-06 Darin Adler <darin@apple.com>
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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().
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.
36788 2004-09-06 Darin Adler <darin@apple.com>
36792 - improved computed style code and implemented text-decoration and text-shadow (needed for, e.g., underline)
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.
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.
36813 2004-09-06 Darin Adler <darin@apple.com>
36817 - did some clean-up on form data code
36819 * khtml/misc/formdata.h: Added more public functions as suggested by Chris when he reviewed
36821 * khtml/misc/formdata.cpp: (khtml::FormData::appendFile): Added. Will be needed soon.
36822 * kwq/KWQFormData.mm: (arrayFromFormData): Use new cleaned-up FormData API.
36824 2004-09-06 Darin Adler <darin@apple.com>
36828 * kwq/DOM-CSS.mm: (-[DOMCSSStyleDeclaration description]): Use cssText in the description
36829 so it's easier to see in the debugger.
36831 2004-09-06 Darin Adler <darin@apple.com>
36835 * khtml/ecma/xmlhttprequest.cpp: (KJS::XMLHttpRequest::send): Remove uneeded QCString copy.
36837 2004-09-04 Richard Williamson <rjw@apple.com>
36839 Fix build problem on panther.
36841 * khtml/ecma/kjs_html.cpp:
36842 * khtml/rendering/render_canvasimage.h:
36844 2004-09-03 David Hyatt <hyatt@apple.com>
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.
36849 * khtml/css/cssstyleselector.cpp:
36850 (khtml::CSSStyleSelector::adjustRenderStyle):
36851 (khtml::CSSStyleSelector::applyProperty):
36853 2004-09-03 Richard Williamson <rjw@apple.com>
36855 Fixed <rdar://problem/3781001>: redirection of URL via resource load delegate does not correctly set base URL for subsequent loads
36857 Ensure that stylesheets have the correct URL when request
36860 Reviewed by Maciej.
36862 * khtml/misc/loader.cpp:
36863 (CachedCSSStyleSheet::checkNotify):
36865 * kwq/KWQLoader.mm:
36866 (KWQIsResponseURLEqualToURL):
36869 * khtml/ecma/kjs_html.cpp:
36870 (KJS::Context2DFunction::tryCall):
36871 Compare parameter count with == instead of <=.
36873 2004-09-03 David Hyatt <hyatt@apple.com>
36875 Fix for 3779083, deleting large amount of text is really slow. Don't use NodeLists in editing remove commands.
36879 * khtml/editing/htmlediting_impl.cpp:
36880 (khtml::RemoveNodeCommandImpl::RemoveNodeCommandImpl):
36881 (khtml::RemoveNodePreservingChildrenCommandImpl::doApply):
36883 2004-09-03 Darin Adler <darin@apple.com>
36887 - fixed <rdar://problem/3714501> REGRESSION (125.8-8A162): Chinese words display as garbage in search results (www.sz.net.cn)
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.
36892 2004-09-03 Chris Blumenberg <cblu@apple.com>
36894 Fixed: <rdar://problem/3788409> can't create or clone an embed element
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
36902 2004-09-03 Darin Adler <darin@apple.com>
36906 - fixed <rdar://problem/3410112> filename with non-ASCII name for <input type=file> should be sent in the page's encoding
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.
36914 2004-09-03 Richard Williamson <rjw@apple.com>
36916 Made drawImage() in <canvas> compliant with whatwg spec.
36920 * khtml/ecma/kjs_html.cpp:
36921 (KJS::Context2DFunction::tryCall):
36922 * khtml/html/html_imageimpl.h:
36923 (DOM::HTMLImageElementImpl::pixmap):
36925 2004-09-03 David Hyatt <hyatt@apple.com>
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).
36932 * khtml/css/parser.cpp:
36933 * khtml/css/parser.y:
36937 2004-09-03 Darin Adler <darin@apple.com>
36941 - <rdar://problem/3788040> REGRESSION: text that i type into a textarea disappears when i tab out of the textarea
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.
36946 2004-09-02 David Hyatt <hyatt@apple.com>
36948 Swap RenderBox and RenderContainer. Make leaf RenderObjects actually derive off of RenderBox instead.
36950 Reviewed by kocienda
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:
36989 2004-09-02 Ken Kocienda <kocienda@apple.com>
36991 * khtml/editing/htmlediting_impl.h: Fix some inconsistent use of whitespace. No code change.
36993 2004-09-02 Ken Kocienda <kocienda@apple.com>
36999 <rdar://problem/3786848> REGRESSION (Mail): Typing styles and font panel updates broken
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.
37006 Update all the following functions. These use the PositionIterator class, but still
37007 only want to consider leaf nodes.
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)
37017 2004-09-02 Richard Williamson <rjw@apple.com>
37019 Support for patterns in <canvas>
37023 * khtml/ecma/kjs_html.cpp:
37024 (KJS::Context2DFunction::tryCall):
37025 (Context2D::putValue):
37027 (ImagePattern::ImagePattern):
37028 (ImagePattern::~ImagePattern):
37029 * khtml/ecma/kjs_html.h:
37030 (KJS::ImagePattern::getPattern):
37031 (KJS::ImagePattern::pixmap):
37033 * kwq/KWQPixmap.mm:
37034 (QPixmap::imageRef):
37035 * kwq/WebCoreImageRenderer.h:
37037 2004-09-01 David Hyatt <hyatt@apple.com>
37039 Fix for 3769409, a regression from 10.3.4 to 10.3.5 involving <colgroup>s in malformed HTML.
37043 * khtml/html/htmlparser.cpp:
37044 (KHTMLParser::insertNode):
37046 2004-09-01 David Hyatt <hyatt@apple.com>
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.
37053 * khtml/rendering/render_block.cpp:
37054 (khtml::RenderBlock::addChildToFlow):
37055 (khtml::RenderBlock::makeChildrenNonInline):
37056 * khtml/rendering/render_inline.cpp:
37057 (RenderInline::splitFlow):
37059 2004-09-02 Ken Kocienda <kocienda@apple.com>
37063 Fix for these bugs:
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)
37069 I made some very big improvements to the code which handles deletions of selections
37070 which span more than one block.
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.
37117 2004-09-01 Richard Williamson <rjw@apple.com>
37119 Fixed panther build glitch.
37123 * khtml/ecma/kjs_html.cpp:
37125 2004-09-01 Richard Williamson <rjw@apple.com>
37127 Finished implementation of gradient support in <canvas>.
37131 * khtml/ecma/kjs_html.cpp:
37132 (KJS::HTMLElementFunction::tryCall):
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):
37146 (Gradient::colorStops):
37147 * khtml/ecma/kjs_html.h:
37148 (KJS::ColorStop::ColorStop):
37149 * khtml/ecma/kjs_html.lut.h:
37152 2004-09-01 David Hyatt <hyatt@apple.com>
37154 Fix for 3784686, hidden links still active. Make sure text nodes exclude themselves from nodeAtPoint checks
37157 * khtml/rendering/render_text.cpp:
37158 (RenderText::nodeAtPoint):
37160 2004-08-31 David Hyatt <hyatt@apple.com>
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.
37169 * khtml/rendering/render_table.cpp:
37170 (RenderTableSection::layoutRows):
37171 * khtml/rendering/render_table.h:
37172 (khtml::RenderTable::hasSections):
37174 2004-08-31 Ken Kocienda <kocienda@apple.com>
37180 <rdar://problem/3781572> can't paste text in replied message view
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()
37190 2004-08-30 David Hyatt <hyatt@apple.com>
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
37198 * khtml/rendering/render_box.cpp:
37199 (RenderBox::calcPercentageHeight):
37200 * khtml/rendering/render_table.cpp:
37201 (RenderTable::layout):
37203 2004-08-31 Ken Kocienda <kocienda@apple.com>
37205 Added more editing layout tests.
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.
37225 2004-08-31 Ken Kocienda <kocienda@apple.com>
37231 <rdar://problem/3782521> Typing newline at start of block does not work
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
37239 2004-08-31 Ken Kocienda <kocienda@apple.com>
37241 Checked in incorrect results for these tests. There are the right ones.
37243 * layout-tests/editing/deleting/collapse-whitespace-3587601-fix-expected.txt
37244 * layout-tests/editing/selection/move-by-line-001-expected.txt
37246 2004-08-31 Ken Kocienda <kocienda@apple.com>
37248 Added more editing layout tests.
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.
37262 2004-08-31 Ken Kocienda <kocienda@apple.com>
37264 Added more editing layout tests. Renamed some others.
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.
37289 2004-08-31 Ken Kocienda <kocienda@apple.com>
37291 * layout-tests/editing/editing.js: Modified typeCharacterCommand so it can accept a character
37294 2004-08-31 Ken Kocienda <kocienda@apple.com>
37298 Fix for these bugs:
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)
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
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.
37324 Updated these layout tests with new results.
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:
37347 2004-08-30 Darin Adler <darin@apple.com>
37351 - fixed <rdar://problem/3637519> REGRESSION (125-128): unrepro crash in QListBox::sizeForNumberOfLines at istweb.apple.com
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.
37359 * kwq/WebCoreBridge.h: Removed updateAllViews; not needed any more.
37360 * kwq/WebCoreBridge.mm: Ditto.
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?
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.
37370 2004-08-30 Darin Adler <darin@apple.com>
37374 - fixed <rdar://problem/3528538> can paste a Return character into the Search field at amazon.com, other browsers won't
37376 * kwq/KWQTextField.mm: (-[KWQTextFieldController controlTextDidChange:]):
37377 Truncate text before the first line break.
37379 2004-08-30 Darin Adler <darin@apple.com>
37381 * kwq/KWQTextCodec.mm: (KWQTextDecoder::convertOneChunkUsingTEC):
37382 Added some more assertions I used to track down what looks like a TEC bug.
37384 2004-08-30 Darin Adler <darin@apple.com>
37388 - fixed <rdar://problem/3779122> No accesskey support on LABEL element
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
37396 (DOM::HTMLLabelElementImpl::formElement): If there's no "for" attribute, search children for
37398 (DOM::HTMLLabelElementImpl::accessKeyAction): Forward the accesskey action to the formElement.
37400 2004-08-30 Darin Adler <darin@apple.com>
37404 - fixed <rdar://problem/3303968> final newline character omitted from <textarea> when parsing a new page
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.
37411 - fixed <rdar://problem/3552736> word wrapped text fields that blur/focus when you type move the insertion point strangely (vtext.com)
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.
37417 2004-08-30 Darin Adler <darin@apple.com>
37421 - got rid of ERROR message when running layout tests by implementing text-transform in computed style
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.
37431 2004-08-30 Darin Adler <darin@apple.com>
37435 - did work to prepare for uploading files incrementally when submitting forms
37437 * khtml/misc/formdata.h: Added. Class for holding form data inside WebCore.
37438 * khtml/misc/formdata.cpp: Added.
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.
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.
37466 * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::submitForm): Pass NSArray for form data instead of NSData.
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.
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.
37483 * kwq/WebCoreBridge.h: Pass NSArray instead of NSData for form data.
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.
37490 * kwq/KWQValueList.h:
37491 (QValueList::first): Added overload for non-const.
37492 (QValueList::last): Ditto.
37494 * ForwardingHeaders/misc/formdata.h: Added.
37495 * WebCore.pbproj/project.pbxproj: Added formdata.h, formdata.cpp, KWQFormData.h, and KWQFormData.cpp.
37497 * WebCore-tests.exp: Updated for changes to QValueList, and re-sorted.
37498 * WebCore-combined.exp: Regenerated.
37500 2004-08-30 Darin Adler <darin@apple.com>
37504 - improved multiple submit logic in preparation for making command-click on a form
37505 button load a form in another frame
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.
37521 2004-08-30 Ken Kocienda <kocienda@apple.com>
37527 <rdar://problem/3762231> REGRESSION (Mail): tab key inserts a single space
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).
37538 2004-08-27 Ken Kocienda <kocienda@apple.com>
37544 <rdar://problem/3779706> plain text on pasteboard loses indentation when pasted into Blot
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
37551 * kwq/WebCoreBridge.mm:
37552 (-[WebCoreBridge documentFragmentWithText:]): Move smarts from here to KWQKHTMLPart.
37554 2004-08-27 Maciej Stachowiak <mjs@apple.com>
37558 <rdar://problem/3778314> REGRESSION: Can't proceed to survey questions on Lominger's Apple website
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.
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:
37572 2004-08-27 Maciej Stachowiak <mjs@apple.com>
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
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:]):
37591 - added new layout tests to cover the problems I fixed
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.
37600 2004-08-27 David Hyatt <hyatt@apple.com>
37602 Fix for 3739239, getComputedStyle of top not being implemented broke a site that checked for it.
37604 Reviewed by kocienda
37606 * khtml/css/css_computedstyle.cpp:
37607 (DOM::valueForLength):
37608 (DOM::CSSComputedStyleDeclarationImpl::getPositionOffsetValue):
37609 (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
37610 * khtml/css/css_computedstyle.h:
37612 2004-08-27 John Sullivan <sullivan@apple.com>
37616 Tweaked option-tab handling to match good suggestion from Tim Omernick of OmniWeb
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.
37624 2004-08-27 Adele Amchan <adele@apple.com>
37629 <rdar://problem/3689949> Provide contentWindow access on an iframe
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
37642 2004-08-27 Ken Kocienda <kocienda@apple.com>
37648 <rdar://problem/3778059> Odd behaviour when editing between blockquote elements
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.
37659 2004-08-26 Richard Williamson <rjw@apple.com>
37661 Boiler plate for canvas gradients and patterns.
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):
37686 (KJS::ImagePattern::toBoolean):
37687 (KJS::ImagePattern::classInfo):
37688 (KJS::ImagePattern::):
37689 * khtml/ecma/kjs_html.lut.h:
37692 2004-08-26 Ken Kocienda <kocienda@apple.com>
37698 <rdar://problem/3777899> REGRESSION (Mail): only first of several misspelled words separated by
37699 carriage returns is marked
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.
37705 2004-08-26 Ken Kocienda <kocienda@apple.com>
37711 <rdar://problem/3777804> Deleting all content in a document can result in giant tall-as-window insertion point
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.
37717 2004-08-26 Ken Kocienda <kocienda@apple.com>
37719 Silly me. Forgot to add this file before.
37721 * layout-tests/editing/inserting/insert-3775316-fix-expected.txt: Added.
37723 2004-08-26 David Hyatt <hyatt@apple.com>
37725 Fix for 3777172, crash from nested colgroup. Don't allow nested table sections or col groups.
37729 * khtml/html/htmlparser.cpp:
37730 (KHTMLParser::insertNode):
37732 2004-08-26 Ken Kocienda <kocienda@apple.com>
37738 <rdar://problem/3775316> document sprouts an extra newline character at the end
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.
37748 2004-08-26 David Hyatt <hyatt@apple.com>
37750 Fix for 3710721 and 3504114, crashes because of bad ownership model for list markers.
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:
37762 2004-08-26 Ken Kocienda <kocienda@apple.com>
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
37777 2004-08-26 Ken Kocienda <kocienda@apple.com>
37779 Fix garbled contenteditable attribute. I must have checked
37780 this in with a typo.
37782 * layout-tests/editing/deleting/delete-3775172-fix.html
37784 2004-08-25 Kevin Decker <kdecker@apple.com>
37786 Reviewed by John and Maciej.
37788 - Fixes SAP bug <rdar://problem/3751295> Personalize link at the
37789 top gives an error in the pop-up window.
37791 * khtml/ecma/kjs_window.cpp:
37792 (WindowFunc::tryCall): Passes a referrer to KHTMLPart::begin()
37794 2004-08-25 Richard Williamson <rjw@apple.com>
37796 Updated to <canvas> API to match the spec. (Still need
37797 to implement gradients and patterns.)
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):
37810 (Context2D::restore):
37811 (Context2D::Context2D):
37812 * khtml/ecma/kjs_html.h:
37813 (KJS::Context2D::):
37814 * khtml/ecma/kjs_html.lut.h:
37817 2004-08-25 Ken Kocienda <kocienda@apple.com>
37819 * layout-tests/editing/deleting/delete-3775172-fix.html: Wrong version of test checked in
37822 2004-08-25 Ken Kocienda <kocienda@apple.com>
37824 Added test case for <rdar://problem/3775172> Blot crashes after typing one character then deleting it
37826 * layout-tests/editing/deleting/delete-3775172-fix-expected.txt: Added.
37827 * layout-tests/editing/deleting/delete-3775172-fix.html: Added.
37829 2004-08-25 Ken Kocienda <kocienda@apple.com>
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.
37834 2004-08-25 Ken Kocienda <kocienda@apple.com>
37840 <rdar://problem/3775214> BR elements cause unnecessary spans to be added when applying style
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
37848 2004-08-25 Ken Kocienda <kocienda@apple.com>
37854 <rdar://problem/3775172> Blot crashes after typing one character then deleting it
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.
37869 2004-08-25 David Hyatt <hyatt@apple.com>
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.
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):
37890 2004-08-25 David Hyatt <hyatt@apple.com>
37892 To save memory in the common case, move the margin***Collapse variables into the CSS3 struct instead of
37893 bloating the surround struct.
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):
37907 2004-08-25 David Hyatt <hyatt@apple.com>
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.
37914 * khtml/css/cssparser.cpp:
37915 (CSSParser::parseValue):
37916 * khtml/css/cssproperties.c:
37919 * khtml/css/cssproperties.h:
37920 * khtml/css/cssproperties.in:
37921 * khtml/css/cssstyleselector.cpp:
37922 (khtml::CSSStyleSelector::applyProperty):
37923 * khtml/css/cssvalues.c:
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:
37937 (khtml::RenderStyle::marginTopCollapse):
37938 (khtml::RenderStyle::marginBottomCollapse):
37939 (khtml::RenderStyle::setMarginTopCollapse):
37940 (khtml::RenderStyle::setMarginBottomCollapse):
37941 (khtml::RenderStyle::initialMarginTopCollapse):
37942 (khtml::RenderStyle::initialMarginBottomCollapse):
37944 2004-08-24 Ken Kocienda <kocienda@apple.com>
37948 Improved the ability of the bridge to report selection state.
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.
37959 2004-08-24 David Hyatt <hyatt@apple.com>
37961 Make sure the ifdef XSLT is present for Panther.
37963 * khtml/xml/xml_tokenizer.cpp:
37964 (khtml::XMLTokenizer::insertErrorMessageBlock):
37966 2004-08-24 David Hyatt <hyatt@apple.com>
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.
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):
37978 2004-08-24 David Hyatt <hyatt@apple.com>
37980 Add support for Atom and RSS MIME types to the set of XML types.
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):
37994 2004-08-24 Chris Blumenberg <cblu@apple.com>
37996 Fixed: <rdar://problem/3746447> hang loading geocities.com/cinemaorchestra
38000 * khtml/rendering/render_frames.cpp:
38001 (RenderPartObject::updateWidget): do nothing if the src URL is the same as the part's URL
38003 2004-08-24 Ken Kocienda <kocienda@apple.com>
38009 <rdar://problem/3773564> REGRESSION (125-159): Code to remove HTML styles before applying new HTML styles is broken
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
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.
38024 2004-08-24 Ken Kocienda <kocienda@apple.com>
38030 <rdar://problem/3765535> paste of text with newlines into text with newlines results in broken doc, crash
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.
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.
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.
38048 2004-08-23 Maciej Stachowiak <mjs@apple.com>
38050 Reviewed by Richard.
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.
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
38059 (NodeImpl::recursive_toHTML): Call the helper with this as the
38061 * khtml/xml/dom_nodeimpl.h:
38063 2004-08-23 David Hyatt <hyatt@apple.com>
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.
38070 Fix for 3769643, crash on vancouverblast.org.
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):
38086 2004-08-23 Kevin Decker <kdecker@apple.com>
38088 Reviewed by Maciej.
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().
38095 2004-08-23 Maciej Stachowiak <mjs@apple.com>
38099 <rdar://problem/3771426> assertion failed due to reentering dispatchImageLoadEventsNow
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
38106 2004-08-23 Maciej Stachowiak <mjs@apple.com>
38110 <rdar://problem/3770306> XMLHttpRequest does not honor character set encoding
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
38118 (KIO::TransferJob::retrieveCharset): New method, gets the charset
38120 (KIO::TransferJob::queryMetaData): Handle charset.
38121 (KIO::TransferJob::emitReceivedResponse): Clear retreivedCharset flag.
38123 * kwq/KWQLoader.mm:
38124 (KWQResponseTextEncodingName): New function, gets the encoding from the response.
38126 2004-08-23 David Hyatt <hyatt@apple.com>
38128 Apply leo's fix to marquees.
38132 * khtml/rendering/render_layer.cpp:
38135 2004-08-20 Darin Adler <darin@apple.com>
38137 Reviewed by Maciej.
38139 - added an ascii() member function to DOMString and DOMStringImpl to help debugging
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.
38148 2004-08-20 David Hyatt <hyatt@apple.com>
38150 Divorce the notion of a marquee being stopped from JS from the notion of being suspended by the back/forward cache.
38152 * khtml/ecma/kjs_html.cpp:
38153 (KJS::HTMLElementFunction::tryCall):
38154 * khtml/rendering/render_layer.cpp:
38158 (Marquee::updateMarqueePosition):
38159 * khtml/rendering/render_layer.h:
38161 2004-08-20 Richard Williamson <rjw@apple.com>
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
38171 * kwq/KWQKHTMLPart.mm:
38172 (KWQKHTMLPart::getAppletInstanceForView):
38173 * kwq/WebCoreBridge.mm:
38175 (-[WebCoreBridge executionContextForView:]):
38177 2004-08-19 Maciej Stachowiak <mjs@apple.com>
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.
38185 * khtml/rendering/render_text.cpp:
38186 (RenderText::paint):
38188 2004-08-19 Ken Kocienda <kocienda@apple.com>
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:
38224 2004-08-20 Trey Matteson <trey@apple.com>
38226 3655407 - Editing: -complete: method unimplemented (WebKit editing API)
38228 One new support routine here.
38232 * kwq/WebCoreBridge.h:
38233 * kwq/WebCoreBridge.mm:
38234 (-[WebCoreBridge caretRectAtNode:offset:]): New routine.
38235 (-[WebCoreBridge rangeByExpandingSelectionWithGranularity:]):
38236 Fixed former misleading method name.
38238 2004-08-20 Ken Kocienda <kocienda@apple.com>
38244 <rdar://problem/3768378> crash typing newline in Blot
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.
38256 2004-08-20 Trey Matteson <trey@apple.com>
38258 Fixing: Spellchecker called once or twice for every char typed.
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)
38266 2004-08-19 Maciej Stachowiak <mjs@apple.com>
38270 - fixed <rdar://problem/3549369> Crash at www.e1.ru in HTMLTokenizer::notifyFinished
38272 Probably also fixed the following likely duplicates:
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
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.
38283 2004-08-19 Maciej Stachowiak <mjs@apple.com>
38285 Reviewed by Dave and Darin.
38287 * khtml/rendering/render_text.cpp:
38288 (RenderText::paint): Split apple and non-apple code paths to allow further cleanup.
38290 2004-08-19 Darin Adler <darin@apple.com>
38294 - fixed <rdar://problem/3767274> crash in partForWidget inside setFocus (test page attached)
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.
38300 2004-08-19 David Hyatt <hyatt@apple.com>
38302 Fix crash when text is contained inside a table-colgroup.
38306 * khtml/xml/dom_textimpl.cpp:
38307 (TextImpl::rendererIsNeeded):
38309 2004-08-19 Trey Matteson <trey@apple.com>
38311 Unexpected errors hit while finding word boundaries, leading to crash.
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.
38320 2004-08-19 David Hyatt <hyatt@apple.com>
38322 Make XSLT imports/includes work. This code has to be turned off until the newer version of libxslt is
38325 Reviewed by kocienda
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):
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:
38377 2004-08-18 Trey Matteson <trey@apple.com>
38379 3765958 - downstreamPosition() can hit infinite loop when at end of doc
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.
38388 * khtml/xml/dom_positioniterator.cpp:
38389 (DOM::PositionIterator::atEnd):
38391 2004-08-18 David Hyatt <hyatt@apple.com>
38393 - did WebCore part of <rdar://problem/3682969> SLIDER: absolute left position of slider should be headline only
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.
38400 * khtml/rendering/render_block.cpp:
38401 (khtml::getHeightForLineCount):
38403 2004-08-18 Richard Williamson <rjw@apple.com>
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.
38411 * kwq/KWQKHTMLPart.mm:
38412 (KWQKHTMLPart::getAppletInstanceForView):
38413 * kwq/WebCoreBridge.h:
38415 2004-08-18 Chris Blumenberg <cblu@apple.com>
38417 Fixed: <rdar://problem/3692199> 8A146: Safari crashes in toHTMLWithOptions, selection with no renderer (various sites)
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
38431 2004-08-18 Ken Kocienda <kocienda@apple.com>
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.
38437 2004-08-18 Ken Kocienda <kocienda@apple.com>
38439 Coded by Darin and Ken
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.
38457 2004-08-17 Maciej Stachowiak <mjs@apple.com>
38461 <rdar://problem/3703768> CrashTracer: ...50 crashes at com.apple.WebCore: KHTMLPart::xmlDocImpl const + 0
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.
38469 2004-08-17 David Hyatt <hyatt@apple.com>
38471 Fix the line truncation function for Emerson so that at the far left setting of the slider, only the header
38476 * khtml/rendering/render_block.cpp:
38477 (khtml::getHeightForLineCount):
38478 * khtml/rendering/render_flexbox.cpp:
38479 (khtml::RenderFlexibleBox::layoutVerticalBox):
38481 2004-08-17 Ken Kocienda <kocienda@apple.com>
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.
38489 Also, renamed equivalentUpstreamPosition and equivalentDownstreamPosition to
38490 upstream to downstream, respectively.
38492 Added a couple of new helper methods.
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
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.
38540 2004-08-17 Trey Matteson <trey@apple.com>
38542 Various spelling fixes.
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.
38558 2004-08-17 Darin Adler <darin@apple.com>
38560 Reviewed by Maciej.
38562 - fixed <rdar://problem/3689700> crash loading page; stoxx.com (works in IE and Firefox)
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.
38570 - fixed <rdar://problem/3547725> Crashes at csuohio.edu, list box vs. mouse event problem (Spoof No Fix)
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
38586 (-[KWQTableView drawRow:clipRect:]): Add nil check.
38587 (-[KWQTableView _accessibilityTableCell:tableColumn:]): Add nil check.
38589 2004-08-17 Trey Matteson <trey@apple.com>
38591 Fix ASSERT in spelling marker management.
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.
38599 2004-08-17 Trey Matteson <trey@apple.com>
38601 3764147 - failure of subframe to load leaves links in parent doc broken
38603 Reviewed by Maciej.
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:
38613 2004-08-16 David Hyatt <hyatt@apple.com>
38615 Fix the #define. I had it all backwards.
38619 2004-08-16 David Hyatt <hyatt@apple.com>
38621 Land initial support for XSLT using xml-stylesheet PIs.
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):
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.
38675 2004-08-16 Maciej Stachowiak <mjs@apple.com>
38679 * khtml/khtml_part.cpp:
38680 (KHTMLPart::isImmediateRedirectPending):
38682 2004-08-16 Richard Williamson <rjw@apple.com>
38684 Fixed <rdar://problem/3704339> Context2D forces integer positions in drawImage
38686 Use floats instead of ints to draw images.
38690 * khtml/ecma/kjs_html.cpp:
38691 (KJS::Context2DFunction::tryCall):
38692 * kwq/KWQPainter.h:
38693 * kwq/KWQPainter.mm:
38694 (QPainter::drawPixmap):
38695 (QPainter::drawFloatPixmap):
38697 2004-08-13 Maciej Stachowiak <mjs@apple.com>
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)
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
38708 So if merging for a software update, make sure to include both
38709 this and the previous fix.
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:
38720 2004-08-15 David Hyatt <hyatt@apple.com>
38722 - fixed <rdar://problem/3760508> REGRESSION (154-155): No text in textarea
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.
38727 Reviewed by kocienda
38729 * khtml/html/html_formimpl.cpp:
38730 (HTMLTextAreaElementImpl::childrenChanged):
38731 * khtml/html/html_formimpl.h:
38733 2004-08-13 Trey Matteson <trey@apple.com>
38735 3761794 Slider doesn't call onmouseup handler
38739 * khtml/rendering/render_form.cpp:
38740 (RenderSlider::RenderSlider): Listen for signal.
38741 (RenderSlider::slotClicked): Pass to superclass.
38742 * khtml/rendering/render_form.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.
38750 2004-08-12 Trey Matteson <trey@apple.com>
38752 3761329 - query result links all dead in ingrammicro.com (sometimes)
38753 3761328 - links in some docs dead when doc is loaded from WebArchive
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.
38758 Reviewed by Richard and Darin.
38760 * khtml/khtml_part.cpp:
38763 2004-08-13 Trey Matteson <trey@apple.com>
38765 3761098 - red dotted underline for misspelled words shows up in drag image
38769 * khtml/rendering/render_text.cpp:
38770 (RenderText::paint): Don't draw misspelling when creating selection image.
38772 2004-08-12 Richard Williamson <rjw@apple.com>
38774 Bring npruntime.h and friends closer to compliance with
38777 Reviewed by Maciej.
38779 * kwq/KWQKHTMLPart.mm:
38780 (KWQKHTMLPart::windowScriptNPObject):
38782 2004-08-12 Maciej Stachowiak <mjs@apple.com>
38784 Reviewed by Richard.
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
38790 (substituteBackslashes): Helper method
38791 (KURL::KURL): If the URL contains any backslashes, substitute all
38792 that appear before the query or fragment.
38794 2004-08-12 Ken Kocienda <kocienda@apple.com>
38800 <rdar://problem/3761014> command-down-arrow takes you to start of document instead of end of document
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.
38809 2004-08-12 Ken Kocienda <kocienda@apple.com>
38815 <rdar://problem/3695446> shift-down-arrow on last line of editable text should select to end of document
38817 Detect when current position is on first or last line and move to the
38818 start or end of that line, respectively.
38820 * khtml/xml/dom_position.cpp:
38821 (DOM::Position::previousLinePosition)
38822 (DOM::Position::nextLinePosition)
38826 2004-08-12 Ken Kocienda <kocienda@apple.com>
38830 Some consolidation in style application code.
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
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.
38850 2004-08-12 Ken Kocienda <kocienda@apple.com>
38855 <rdar://problem/3751098> HTML email has one set of SPAN tags per character in the message
38857 Progress on this bug:
38858 <rdar://problem/3755562> Typing styles do not use same tag application conventions as font and color panel
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
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()
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.
38884 These three tests actually had results that treated the buggy behavior as correct!
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
38890 2004-08-12 Darin Adler <darin@apple.com>
38894 - fixed <rdar://problem/3740485> Repro crash involving replacing content that includes form field
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.
38902 2004-08-12 Darin Adler <darin@apple.com>
38906 - fixed <rdar://problem/3758756> copying text selected with down arrow results in all text to end of document
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.
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.
38917 2004-08-11 Chris Blumenberg <cblu@apple.com>
38919 Fixed: <rdar://problem/3758216> PARENTAL: buttons on parental controls page only work once
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
38926 2004-08-11 Darin Adler <darin@apple.com>
38930 - fixed <rdar://problem/3715878> 8A162: connect.apple.com password field showed in cleartext
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.
38936 2004-08-11 Ken Kocienda <kocienda@apple.com>
38938 Missed adding this file before.
38940 * kwq/KWQTextUtilities.mm: Added.
38941 (KWQFindNextWordFromIndex):
38943 2004-08-11 Ken Kocienda <kocienda@apple.com>
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.
38951 * khtml/xml/dom_position.cpp:
38952 (DOM::Position::previousWordPosition): Changed, as described above.
38953 (DOM::Position::nextWordPosition): Ditto.
38955 2004-08-11 Ken Kocienda <kocienda@apple.com>
38960 <rdar://problem/3675812> Moving a word at a time does not use the correct conception of "word"
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!
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.
38996 2004-08-11 Ken Kocienda <kocienda@apple.com>
39002 <rdar://problem/3732702> crash in CSSComputedStyleDeclarationImpl running devtools.com editing sample code
39004 * khtml/khtml_part.cpp:
39005 (KHTMLPart::selectionComputedStyle): Added a null check.
39007 2004-08-10 Darin Adler <darin@apple.com>
39011 - fixed <rdar://problem/3710123> Loading iframe that replaces content in the parent document crashes Safari
39013 I fixed three problems:
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
39019 Now the test page works fine. Hope the real sites do too.
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
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.
39037 * kwq/KWQKHTMLPart.mm: (KHTMLPart::frameDetached): Added a call to disconnectChild before removing the
39038 child from the frames list.
39040 2004-08-09 Maciej Stachowiak <mjs@apple.com>
39046 - made basic marked text highlighting work to complete basic level of <rdar://problem/3704359> input method support not yet implemented for HTML editing
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
39067 * khtml/rendering/render_text.h: Prototype new method.
39069 2004-08-10 Darin Adler <darin@apple.com>
39073 - switch PCRE to do UTF-16 directly instead of converting to/from UTF-8 for speed
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.
39079 2004-08-10 Darin Adler <darin@apple.com>
39085 * khtml/editing/jsediting.cpp: Capitalize command names to match Windows.
39086 The dictionary lookup is case insensitive.
39088 * kwq/KWQFoundationExtras.h: Remove inaccurate comment.
39090 2004-08-10 Trey Matteson <trey@apple.com>
39092 3757094 - crash spell checking after a paste
39096 * khtml/rendering/render_text.cpp:
39097 (InlineTextBox::paintSelection): Add nil check.
39099 2004-08-09 Trey Matteson <trey@apple.com>
39101 3756195 - spell checking leaves misspelling marker behind after bad word is deleted
39102 ... and other follow-on spell check fixes
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
39127 2004-08-08 Trey Matteson <trey@apple.com>
39129 3745023 - Safari crashes trying to access anchor while downloading
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.
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.
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.
39144 Reviewed by Richard
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.
39151 2004-08-06 Ken Kocienda <kocienda@apple.com>
39155 Finish off spellchecking support to HTML editing. Includes work to
39156 enable continuous spellchecking.
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
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
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
39212 * kwq/WebCoreTextRenderer.h:
39216 2004-08-05 David Hyatt <hyatt@apple.com>
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.
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.
39228 * khtml/html/htmlparser.cpp:
39229 (KHTMLParser::insertNode):
39231 2004-08-04 David Hyatt <hyatt@apple.com>
39233 The top-level XSL sheet is now loaded and shows up in the activity window. It is not yet parsed.
39235 Reviewed by kocienda
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:
39253 2004-08-04 David Hyatt <hyatt@apple.com>
39255 Add XSL Stylesheets to the WebCore cache.
39257 Reviewed by kocienda
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):
39274 2004-08-03 Ken Kocienda <kocienda@apple.com>
39278 Changes to improve our handling of object tags during editing, including
39281 <rdar://problem/3744533> Problem editing <OBJECT> elements displayed by WebPlugIns
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.
39289 <rdar://problem/3748537> crash due to nil node passed into parentNode in computeTypingStyle deleting text
39291 Finally, I filed and fixed this bug I discovered while fixing the one above:
39293 <rdar://problem/3749338> Select-all + delete leaves editing view without blinking caret
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
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
39345 * khtml/xml/xml_tokenizer.cpp:
39346 (khtml::XMLTokenizer::endElement): Remove call to obsolete closeRenderer() function.
39348 2004-08-03 David Hyatt <hyatt@apple.com>
39350 Add the deprecated text/xsl MIME type (introduced by Internet Explorer 5) as an acceptable MIME type for XML
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):
39362 2004-08-03 Maciej Stachowiak <mjs@apple.com>
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.
39370 * khtml/editing/htmlediting_impl.cpp:
39371 (khtml::InsertTextCommandImpl::InsertTextCommandImpl):
39372 (khtml::InsertTextCommandImpl::doApply):
39373 (khtml::InsertTextCommandImpl::doUnapply):
39375 2004-08-03 Darin Adler <darin@apple.com>
39379 - fixed <rdar://problem/3740937> ER: A way to turn a DOMRange into text (equivalent of -innerText)
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.
39384 * kwq/DOM.mm: (-[DOMRange _text]): Added. Calls DOM::RangeImpl::text.
39385 * kwq/DOMPrivate.h: Added.
39387 * WebCore.pbproj/project.pbxproj: Added DOMPrivate.h, an internal header (private in WebKit, internal here).
39389 2004-08-02 John Sullivan <sullivan@apple.com>
39393 WebCore part of fix for <rdar://problem/3631868> NSToolbar adoption:
39394 Tab key should cycle around toolbar and page content
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]):
39403 2004-08-02 David Hyatt <hyatt@apple.com>
39405 Create a #define for XSLT support that at the moment will only be enabled on Tiger.
39407 Reviewed by kocienda
39411 2004-08-02 Ken Kocienda <kocienda@apple.com>
39417 <rdar://problem/3747945> Deleting replaced element can cause crash
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.
39426 2004-07-31 Ken Kocienda <kocienda@apple.com>
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.)
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.
39444 2004-07-30 Ken Kocienda <kocienda@apple.com>
39450 <rdar://problem/3745498> HTMLCompose: Can't edit new empty message (and typing eventually crashes)
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.
39462 2004-07-30 Ken Kocienda <kocienda@apple.com>
39466 Fix a large number of editing layout test regressions.
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.
39476 2004-07-30 Trey Matteson <trey@apple.com>
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.)
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.
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
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.
39507 2004-07-29 Maciej Stachowiak <mjs@apple.com>
39511 <rdar://problem/3745808> Seed: WebKit: Table's caption broken
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
39520 2004-07-29 Darin Adler <darin@apple.com>
39524 - added constants for motion across entire document for use in operations like
39525 move to beginning of document
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.
39536 * kwq/WebCoreBridge.h: Added WebCoreBridge to WebSelectionGranularity.
39538 2004-07-28 Trey Matteson <trey@apple.com>
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.
39545 * khtml/misc/khtml_text_operations.cpp:
39546 (khtml::TextIterator::TextIterator): Set endOffset to a valid value instead of
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.
39562 2004-07-28 Maciej Stachowiak <mjs@apple.com>
39566 <rdar://problem/3678534> controls on page at http://help.sap.com don't work properly
39568 To fix this I implemented the various JavaScript BarInfo properties in JavaScript.
39570 * khtml/ecma/kjs_window.cpp:
39572 (Window::locationbar):
39574 (Window::personalbar):
39575 (Window::statusbar):
39577 (Window::scrollbars):
39580 (SelectionFunc::tryCall):
39581 (BarInfo::BarInfo):
39582 (BarInfo::~BarInfo):
39585 * khtml/ecma/kjs_window.h:
39588 (KJS::BarInfo::part):
39589 (KJS::BarInfo::classInfo):
39590 * khtml/ecma/kjs_window.lut.h:
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):
39601 2004-07-28 Ken Kocienda <kocienda@apple.com>
39603 Added more layout tests.
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.
39616 2004-07-28 Ken Kocienda <kocienda@apple.com>
39618 Added some layout tests.
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.
39627 2004-07-28 Trey Matteson <trey@apple.com>
39629 Spellchecking, Part I. Basic spellcheck is working. Spelling panel is hooked up.
39631 At this point, no special marking of misspellings, no grammar check, no context
39632 menu integration, no "check continually" mode.
39634 Much of the TextIterator and CharacterIterator interface got published outside
39635 of khtml_text_operations.cpp, with a little API rationalizing.
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.
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):
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.
39685 2004-07-28 Ken Kocienda <kocienda@apple.com>
39691 <rdar://problem/3690704> marking partly bold text italic across blocks wrongly extends the bold section
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.
39702 2004-07-28 Darin Adler <darin@apple.com>
39706 - fixed <rdar://problem/3658471> REGRESSION: Node.appendChild( ) fails when parent already contains that child
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.
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.
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.
39721 2004-07-28 Ken Kocienda <kocienda@apple.com>
39727 <rdar://problem/3681552> html editing needs to preserve typing font when replacing selection
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.
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.
39754 2004-07-28 Darin Adler <darin@apple.com>
39758 - fixed <rdar://problem/3711080> REGRESSION (125-146): form fields have shrunk by 1 pixel, and now clip descenders
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.
39765 2004-07-28 Darin Adler <darin@apple.com>
39769 - fixed <rdar://problem/3743204> REGRESSION: crash at startribune.com in InlineBox::root()
39771 * khtml/rendering/render_flow.cpp: (RenderFlow::dirtyLinesFromChangedChild):
39772 Added a check for nil.
39774 2004-07-27 Darin Adler <darin@apple.com>
39778 - fixed <rdar://problem/3743138> opaque colors come out of getComputedStyle as "rgba", transparent ones as "rgb"
39780 * khtml/css/css_valueimpl.cpp: (CSSPrimitiveValueImpl::cssText): Use "rgb" rather than
39781 "rgba" when alpha is 0xFF, not when alpha is 0.
39783 2004-07-27 Ken Kocienda <kocienda@apple.com>
39787 Fixed the problem where BR elements on lines by themselves don't paint when selected.
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:
39802 2004-07-27 David Hyatt <hyatt@apple.com>
39804 Fix for 3665211 (again). Make sure not to leave child line boxes pointing to deleted ancestor line boxes.
39806 Reviewed by kocienda
39808 * khtml/rendering/render_block.cpp:
39809 (khtml::RenderBlock::removeChild):
39811 2004-07-26 Chris Blumenberg <cblu@apple.com>
39813 Fixed: WebView scrolls to the top after making an editing change via drag & drop
39815 Fixed by Ken, reviewed by me.
39817 * kwq/WebCoreBridge.mm:
39818 (-[WebCoreBridge ensureCaretVisible]): do nothing if the selection is not a caret
39822 2004-07-26 Maciej Stachowiak <mjs@apple.com>
39826 <rdar://problem/3740855> REGRESSION: Flash incorrectly positioned at macromedia.com
39828 * khtml/html/htmltokenizer.cpp:
39829 (khtml::HTMLTokenizer::scriptExecution): Do the prepending-src
39830 trick as for inline script execution.
39832 Added new layout tests covering this and other recent tokenizer
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.
39843 2004-07-23 Ken Kocienda <kocienda@apple.com>
39849 <rdar://problem/3738920> Caret blinks in inactive window
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).
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
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
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
39879 (-[WebCoreBridge selectionColor]): Flipped the value of this ternary expression to accommodate the
39880 change from usesInactiveTextBackgroundColor to setDisplaysWithFocusAttributes.
39881 (-[WebCoreBridge setCaretVisible:]): Removed.
39883 2004-07-23 John Sullivan <sullivan@apple.com>
39885 Reviewed by Maciej.
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)
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.
39896 2004-07-23 David Hyatt <hyatt@apple.com>
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.
39901 Reviewed by kocienda
39903 * khtml/rendering/render_flow.cpp:
39904 (RenderFlow::dirtyLinesFromChangedChild):
39906 2004-07-23 Ken Kocienda <kocienda@apple.com>
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.
39919 2004-07-23 Ken Kocienda <kocienda@apple.com>
39921 Updated layout tests with new expected results.
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
39928 2004-07-22 Maciej Stachowiak <mjs@apple.com>
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.
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
39943 2004-07-22 Kevin Decker <kdecker@apple.com>
39947 Fixed <rdar://problem/3682340> (error console does not include source urls or line numbers of event exceptions).
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:
39959 2004-07-22 Ken Kocienda <kocienda@apple.com>
39965 <rdar://problem/3724344> Bolding and unbolding creates extraneous tags
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.
39979 2004-07-22 Ken Kocienda <kocienda@apple.com>
39985 <rdar://problem/3711264> difficult (impossible?) to get cursor in an editable webview containing only tags
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.
39995 2004-07-22 Darin Adler <darin@apple.com>
39997 - remove a bunch of now-unused code
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.
40007 2004-07-22 Darin Adler <darin@apple.com>
40011 - got rid of QXml classes and changed XML parsing to use libxml directly
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).
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.
40033 * WebCore.pbproj/project.pbxproj: Removed a bunch of files.
40035 2004-07-21 Trey Matteson <trey@apple.com>
40037 DHTML dragging should use UTI for MIME-pboard type conversion
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.
40047 2004-07-21 Ken Kocienda <kocienda@apple.com>
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.
40055 In each case below, function were removed, as their
40056 only purpose was to handle editing key events.
40058 * khtml/xml/dom_elementimpl.cpp
40059 * khtml/xml/dom_elementimpl.h
40060 * kwq/KWQKHTMLPart.h
40061 * kwq/KWQKHTMLPart.mm
40062 * kwq/WebCoreBridge.h
40064 2004-07-21 Ken Kocienda <kocienda@apple.com>
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
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
40081 2004-07-20 David Hyatt <hyatt@apple.com>
40083 Fix for 3714434, user stylesheet is always parsed in strict mode, when it should honor the document's setting.
40087 * khtml/css/cssstyleselector.cpp:
40088 (khtml::CSSStyleSelector::CSSStyleSelector):
40090 2004-07-20 Ken Kocienda <kocienda@apple.com>
40092 Reviewed by Richard
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
40101 2004-07-20 Chris Blumenberg <cblu@apple.com>
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
40109 * kwq/WebCoreBridge.mm:
40110 (-[WebCoreBridge elementAtPoint:]): if there is no image, put the image URL on the element anyway
40112 2004-07-20 David Hyatt <hyatt@apple.com>
40114 Fix for alt text not working on images.
40118 * khtml/rendering/render_image.cpp:
40119 (RenderImage::RenderImage):
40120 (RenderImage::setPixmap):
40121 (RenderImage::paint):
40122 (RenderImage::calcReplacedWidth):
40123 (RenderImage::calcReplacedHeight):
40125 2004-07-20 Maciej Stachowiak <mjs@apple.com>
40129 <rdar://problem/3720111> REGRESSION(125-152): map fails to load depending on banner ad; weather.com (works in IE and Firefox)
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.
40139 2004-07-20 David Hyatt <hyatt@apple.com>
40141 Fix for layer positioning error that occurs when absolute positioned blocks are inside static positioned overflow:auto
40146 * khtml/rendering/render_layer.cpp:
40147 (RenderLayer::updateLayerPosition):
40149 2004-07-20 Trey Matteson <trey@apple.com>
40151 3705624 REGRESSION: can't rearrange photos on homepage.mac.com album
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.
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
40165 * khtml/khtmlview.cpp:
40166 (KHTMLView::dispatchMouseEvent): What he said.
40168 2004-07-20 Ken Kocienda <kocienda@apple.com>
40174 <rdar://problem/3695240> pasting plain text with newlines in it turns them into spaces
40176 * kwq/WebCoreBridge.mm:
40177 (-[WebCoreBridge documentFragmentWithText:]): Refine this function to be smart about converting
40178 line endings into BR elements.
40180 2004-07-20 Ken Kocienda <kocienda@apple.com>
40186 <rdar://problem/3707505> HTMLCompose: blinking cursor in both an address text field and the message body
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.
40201 2004-07-19 Maciej Stachowiak <mjs@apple.com>
40205 <rdar://problem/3721428> REGRESSION (125.8-146): external javascript statements produce extra garbage character (sina.com)
40207 * khtml/misc/stringit.h:
40208 (khtml::TokenizerSubstring::TokenizerSubstring): For the apple branch, use the new
40209 stableUnicode() method to get the unicode pointer.
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.
40221 2004-07-19 David Hyatt <hyatt@apple.com>
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.
40227 Reviewed by kocienda
40229 * khtml/xml/dom_nodeimpl.cpp:
40231 2004-07-19 John Sullivan <sullivan@apple.com>
40235 - fixed <rdar://problem/3141150> can't undo in form textarea fields
40237 * kwq/KWQTextArea.mm:
40238 (-[KWQTextArea _createTextView]):
40239 call setAllowsUndo:YES. My, wasn't this easy?
40241 2004-07-19 David Hyatt <hyatt@apple.com>
40243 Merge @import fix for CSS1 test suite from Stephan Kulow.
40247 * khtml/css/parser.cpp:
40248 * khtml/css/parser.y:
40249 * layout-tests/css1/basic/containment-expected.txt:
40251 2004-07-19 David Hyatt <hyatt@apple.com>
40253 Fix for 3718697, crash clicking on JS tab at alaskaair.com.
40255 Reviewed by kocienda
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:
40265 2004-07-16 David Hyatt <hyatt@apple.com>
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.
40273 * khtml/khtmlview.cpp:
40274 (KHTMLView::layout):
40276 2004-07-16 Ken Kocienda <kocienda@apple.com>
40282 <rdar://problem/3722153> Random crash while typing (DOM::NodeImpl::parentNode (this=0x0))
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.
40290 2004-07-16 Ken Kocienda <kocienda@apple.com>
40294 Fix for these bugs:
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
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.
40311 2004-07-16 Ken Kocienda <kocienda@apple.com>
40317 <rdar://problem/3687216> editable inline causes crash when focused
40319 * khtml/xml/dom_docimpl.cpp:
40320 (DocumentImpl::relinquishesEditingFocus): Add null check for rootEditableElement.
40321 (DocumentImpl::acceptsEditingFocus): Ditto.
40323 2004-07-16 David Hyatt <hyatt@apple.com>
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).
40328 Reviewed by kocienda
40330 * khtml/rendering/bidi.cpp:
40331 (khtml::RenderBlock::layoutInlineChildren):
40335 2004-07-15 David Hyatt <hyatt@apple.com>
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.
40342 * khtml/rendering/bidi.cpp:
40343 (khtml::RenderBlock::determineEndPosition):
40345 2004-07-15 Ken Kocienda <kocienda@apple.com>
40350 <rdar://problem/3587601> reproducible assertion failure in Blot deleting text, then image at Yahoo.com
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.
40360 2004-07-14 Ken Kocienda <kocienda@apple.com>
40364 * khtml/rendering/render_block.cpp:
40365 (khtml::RenderBlock::paintObject): Add null check on DOM node before
40366 asking if it is contentEditable.
40368 2004-07-14 David Hyatt <hyatt@apple.com>
40370 Fix for 3595073, setting innerHTML on a <table> should work.
40374 * khtml/html/html_elementimpl.cpp:
40375 (HTMLElementImpl::createContextualFragment):
40377 2004-07-14 Ken Kocienda <kocienda@apple.com>
40381 Updated these layout tests as a result of the last patch.
40382 These results are better.
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
40389 2004-07-14 Ken Kocienda <kocienda@apple.com>
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.
40415 2004-07-14 David Hyatt <hyatt@apple.com>
40417 Fix for 3716082, assert when you dynamically remove float or position styles.
40421 * khtml/rendering/render_object.cpp:
40422 (RenderObject::setStyle):
40424 2004-07-14 David Hyatt <hyatt@apple.com>
40426 Fix for various table regressions (malumovies.com and cityofheroes.gameamp.com) involving bungling of
40427 percentage heights.
40429 Reviewed by kocienda
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:
40441 2004-07-14 Ken Kocienda <kocienda@apple.com>
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:
40450 2004-07-14 Ken Kocienda <kocienda@apple.com>
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:
40458 2004-07-13 John Sullivan <sullivan@apple.com>
40462 - fixed <rdar://problem/3705500> REGRESSION (125.8-146): Cmd-E on an
40463 HTML page puts a trailing space on Find pasteboard
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
40474 2004-07-12 Richard Williamson <rjw@apple.com>
40476 Fixed 3717982. Implemented navigator.language!
40480 * khtml/ecma/kjs_navigator.cpp:
40481 (Navigator::getValueProperty):
40483 2004-07-12 Ken Kocienda <kocienda@apple.com>
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.
40492 2004-07-12 David Hyatt <hyatt@apple.com>
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.
40497 Reviewed by kocienda
40499 * khtml/rendering/render_block.cpp:
40500 (khtml::RenderBlock::removeChild):
40502 2004-07-10 Maciej Stachowiak <mjs@apple.com>
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)
40509 * kwq/KWQPainter.h:
40510 * kwq/KWQPainter.mm:
40511 (CGColorFromNSColor):
40512 (QPainter::drawEllipse):
40513 (QPainter::setShadow):
40515 2004-07-12 Ken Kocienda <kocienda@apple.com>
40517 Added new editing-related layout tests
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.
40540 2004-07-12 Ken Kocienda <kocienda@apple.com>
40544 Fixes for these bugs:
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
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,
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.
40568 2004-07-09 Kevin Decker <kdecker@apple.com>
40572 fixes the width:auto problem in
40573 <rdar://problem/3698344> REGRESSION (143?-144): macrumors.com tabs are compressed and illegible
40575 * khtml/css/cssstyleselector.cpp:
40576 (khtml::CSSStyleSelector::applyProperty):
40578 2004-07-09 Ken Kocienda <kocienda@apple.com>
40580 Updated some layout test results.
40582 * layout-tests/editing/deleting/delete-image-004-expected.txt:
40583 * layout-tests/editing/selection/extend-by-character-006-expected.txt:
40585 2004-07-09 Chris Blumenberg <cblu@apple.com>
40587 Allowed my change for 3715785 to compile on Jaguar.
40589 Reviewed by kocienda.
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
40595 2004-07-09 Ken Kocienda <kocienda@apple.com>
40599 Some improvements to fix:
40601 <rdar://problem/3723111> Caret not drawn when selection set to unrendered content
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
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.
40633 2004-07-08 David Hyatt <hyatt@apple.com>
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.
40639 Reviewed by kocienda
40641 * khtml/html/html_elementimpl.cpp:
40642 (HTMLElementImpl::innerText):
40644 2004-07-08 John Sullivan <sullivan@apple.com>
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)
40651 * khtml/khtml_part.cpp:
40652 (KHTMLPart::handleMousePressEventSingleClick):
40653 if there's a URL associated with the event, don't extend the selection
40655 2004-07-08 Ken Kocienda <kocienda@apple.com>
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.
40664 Note that these functions are compiled in on Development builds only.
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:
40687 2004-07-08 John Sullivan <sullivan@apple.com>
40691 - fixed <rdar://problem/3721544> crash increasing font size;
40692 entrezeroetun.com (works in IE and Firefox)
40694 * khtml/rendering/render_block.cpp:
40695 (khtml::RenderBlock::updateFirstLetter):
40696 Check for nil originalString() before dereffing
40698 2004-07-08 David Hyatt <hyatt@apple.com>
40700 Fix for 3721453, CSS3 initial property caused crashes because the macros were not written correctly.
40704 * khtml/css/cssstyleselector.cpp:
40708 2004-07-07 David Hyatt <hyatt@apple.com>
40710 Fix for 3712133, crash from first-line pseudo-style use.
40712 Reviewed by kocienda
40714 * khtml/css/cssstyleselector.cpp:
40715 (khtml::CSSStyleSelector::styleForElement):
40716 * khtml/css/cssstyleselector.h:
40717 * khtml/rendering/render_object.cpp:
40718 (RenderObject::getPseudoStyle):
40720 2004-07-07 Ken Kocienda <kocienda@apple.com>
40726 <rdar://problem/3716479> calling setInnerHTML during a webViewDidChange delegate call causes a crash
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.
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:
40750 2004-07-06 Ken Kocienda <kocienda@apple.com>
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.
40756 2004-07-06 Ken Kocienda <kocienda@apple.com>
40762 <rdar://problem/3672377> assertion failure in AppendNodeCommandImpl::doApply
40763 due to non-0 exception code trying to insert a DIV markup string
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.
40773 * khtml/html/html_tableimpl.cpp:
40774 (HTMLTableElementImpl::addChild):
40775 * khtml/xml/dom_nodeimpl.cpp:
40776 (NodeImpl::checkAddChild):
40778 2004-07-06 Ken Kocienda <kocienda@apple.com>
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
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):
40811 2004-07-06 Ken Kocienda <kocienda@apple.com>
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. :)
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.
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:
40841 2004-07-06 Vicki Murley <vicki@apple.com>
40843 Reviewed by kocienda.
40845 - added backColorCommand, foreColorCommand, fontNameCommand,
40846 and fontSizeCommand
40848 * layout-tests/editing/editing.js:
40850 2004-07-06 Trey Matteson <trey@apple.com>
40852 3716053 - www.theage.com.au has extra back/forward items due to ads
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.
40858 Reviewed by Richard.
40860 * kwq/KWQKHTMLPart.mm:
40861 (KWQKHTMLPart::openURL): Only real change - prevent adding to b/f list if not
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:
40870 2004-07-02 Darin Adler <darin@apple.com>
40874 - fixed half of <rdar://problem/3709244> utf-8 meta tag not parsed when page title contains angle brackets or if </meta> tag used
40876 * khtml/misc/decoder.cpp: (Decoder::decode): Allow </meta> tags without deciding we
40877 are done with the header.
40879 2004-06-30 Trey Matteson <trey@apple.com>
40881 Dragging within a web view should be allowed to start when the window isn't key.
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.
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.
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.
40920 2004-06-29 Trey Matteson <trey@apple.com>
40922 Need to tighten up JS error checking for requesting drag props
40923 in the wrong cases.
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.
40936 2004-06-29 Trey Matteson <trey@apple.com>
40938 DHTML dragging - source should have access to the operation chosen
40939 by the destination.
40943 * kwq/KWQKHTMLPart.h:
40944 * kwq/KWQKHTMLPart.mm:
40945 (KWQKHTMLPart::dragSourceEndedAt): Set the destination's operation
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
40952 (-[WebCoreBridge dragSourceEndedAt:operation:]): Pass through of operation.
40954 2004-06-24 Trey Matteson <trey@apple.com>
40956 3710422 - REGRESSION: Safari crashes trying to send onbeforecut event at about://blank
40958 Simple fix - don't try to send the event to the body element if we have no body element.
40962 * kwq/KWQKHTMLPart.mm:
40963 (KWQKHTMLPart::dispatchCPPEvent):
40965 2004-06-24 Trey Matteson <trey@apple.com>
40967 3704950 drag image in DB ConfigBar has horizontal graphics turd WebCore JavaScript
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.
40974 Reviewed by Richard
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.
40983 2004-06-24 Trey Matteson <trey@apple.com>
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
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.
41006 2004-06-24 Trey Matteson <trey@apple.com>
41008 3693420 - onbeforecut and onbeforepaste need real implementaion
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
41026 2004-06-24 Darin Adler <darin@apple.com>
41030 - fixed <rdar://problem/3709385> Find on page doesn't find a string at the very end of the file
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.
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)
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.
41052 2004-06-24 John Sullivan <sullivan@apple.com>
41054 Darin made this change on my machine; I reviewed it.
41056 - fixed <rdar://problem/3698333> Find on page doesn't find a particular string
41057 with a newline in the source
41059 * khtml/misc/khtml_text_operations.cpp:
41060 (khtml::TextIterator::handleTextBox):
41061 Clear m_lastTextNodeEndedWithCollapsedSpace after taking it into account.
41063 2004-06-23 Richard Williamson <rjw@apple.com>
41065 Implemented changes for latest npruntime.h.
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]):
41079 2004-06-22 Richard Williamson <rjw@apple.com>
41081 Fixed <rdar://problem/3707162>: accessing embeds[] plug-in interface may crash
41083 embedInstance was uninitialized.
41087 * khtml/html/html_objectimpl.cpp:
41088 (HTMLEmbedElementImpl::HTMLEmbedElementImpl):
41090 2004-06-18 John Sullivan <sullivan@apple.com>
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)
41097 * khtml/khtml_part.cpp:
41098 (KHTMLPart::scheduleRedirection):
41099 allow new redirect to win if delay <= current delay, not just <
41101 === WebCore-146.1 ===
41103 2004-06-18 Trey Matteson <trey@apple.com>
41105 3702053 - DHTML dragging destination can't control the cursor (by setting the drop operation)
41107 Fallout from security work, but an easy fix.
41111 * kwq/KWQClipboard.mm:
41112 (KWQClipboard::setDropEffect): Allow dest side to set dropEffect.
41114 2004-06-18 Darin Adler <darin@apple.com>
41118 - re-fixed <rdar://problem/3701893> show expert preferences notes in xcode causes crash (in EllipsisBox code)
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.
41124 2004-06-18 Darin Adler <darin@apple.com>
41128 - fixed <rdar://problem/3701893> show expert preferences notes in xcode causes crash (in EllipsisBox code)
41130 * khtml/rendering/render_block.cpp: (khtml::RenderBlock::paintEllipsisBoxes):
41131 Only walk the ellipsis list if hasMarkupTruncation is true.
41135 2004-06-17 Richard Williamson <rjw@apple.com>
41137 Fixed <rdar://problem/3698867> setting the canvas or parent to display:none and updating the causes a nil-deref
41139 Ensured that we have a renderer before rendering.
41143 * khtml/ecma/kjs_html.cpp:
41144 (KJS::Context2DFunction::tryCall):
41146 2004-06-17 David Hyatt <hyatt@apple.com>
41148 Fix for 3674601, "Read More..." links should trail articles in Emerson.
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):
41191 2004-06-17 Trey Matteson <trey@apple.com>
41193 3698514 - coordinates in ondragstart and ondrag events are wrong
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.
41200 Reviewed by Maciej.
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 .
41207 2004-06-16 David Hyatt <hyatt@apple.com>
41209 Fix for 3596620, implement a subset of CSS3 text truncation for Emerson.
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:
41246 === WebCore-145.1 ===
41248 2004-06-16 Maciej Stachowiak <mjs@apple.com>
41252 <rdar://problem/3697602> REGRESSION (144.2-TOT) Selection highlight does not draw
41254 * khtml/rendering/render_canvas.cpp:
41255 (RenderCanvas::setSelection):
41259 2004-06-16 Richard Williamson <rjw@apple.com>
41261 Fixed 3695730: Added support for embeds[], much like
41262 applets[], to allow access to a plugin's exported interface.
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:
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):
41293 2004-06-15 Maciej Stachowiak <mjs@apple.com>
41297 <rdar://problem/3695907>: (can't enable selection inside parent where it is disabled via CSS)
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:
41307 (khtml::RenderStyle::userSelect):
41308 (khtml::RenderStyle::setUserSelect):
41309 (khtml::RenderStyle::initialUserSelect):
41311 2004-06-15 David Hyatt <hyatt@apple.com>
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.
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):
41325 2004-06-15 David Hyatt <hyatt@apple.com>
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
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:
41342 2004-06-15 Vicki Murley <vicki@apple.com>
41344 - added a few layout tests, rdar://3694510
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.
41351 2004-06-15 Trey Matteson <trey@apple.com>
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.
41360 * kwq/KWQKHTMLPart.mm:
41361 (KWQKHTMLPart::khtmlMouseMoveEvent):
41363 2004-06-15 Maciej Stachowiak <mjs@apple.com>
41367 <rdar://problem/3685236>: (Safari does not support onselectstart event handler)
41369 * khtml/ecma/kjs_dom.cpp:
41370 (DOMNode::getValueProperty):
41371 (DOMNode::putValue):
41372 * khtml/ecma/kjs_dom.h:
41374 * khtml/ecma/kjs_dom.lut.h:
41376 * khtml/html/html_elementimpl.cpp:
41377 (HTMLElementImpl::parseHTMLAttribute):
41378 * khtml/misc/htmlattrs.c:
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::):
41391 2004-06-15 Maciej Stachowiak <mjs@apple.com>
41395 Fix crash with last checkin.
41397 * khtml/ecma/kjs_binding.cpp:
41398 (ScriptInterpreter::domObjectsPerDocument): check the same
41399 property we want to initialize.
41401 2004-06-15 Maciej Stachowiak <mjs@apple.com>
41405 <rdar://problem/3685309>: (properties not shared for JS wrappers of same DOM object, accessed from different frames)
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):
41423 2004-06-15 Darin Adler <darin@apple.com>
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)
41428 * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::checkAddChild): Rolled check back in.
41430 2004-06-15 David Hyatt <hyatt@apple.com>
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
41437 * khtml/rendering/render_text.cpp:
41438 (RenderText::clearTextOverflowTruncation):
41439 * khtml/rendering/render_text.h:
41440 (khtml::InlineTextBox:::InlineRunBox):
41441 (khtml::InlineTextBox::clearTruncation):
41443 2004-06-14 Darin Adler <darin@apple.com>
41445 Reviewed by Maciej.
41447 - fixed some things for GC that Patrick missed, or that happened after the branch
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.
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.
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.
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.
41492 (-[KWQSingleShotTimerTarget finalize]): Added.
41493 * kwq/WebCoreBridge.mm:
41494 (-[WebCoreBridge finalize]): Added. Filed <rdar://problem/3694165> about the fact that this is not right.
41496 2004-06-15 David Hyatt <hyatt@apple.com>
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.
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:
41520 2004-06-14 Trey Matteson <trey@apple.com>
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.
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.
41533 2004-06-14 Darin Adler <darin@apple.com>
41535 - fixed crash on boot
41537 * kwq/KWQFoundationExtras.h: (KWQRetainNSRelease):
41538 Fixed return value of this method; was uninitialized.
41540 2004-06-14 Trey Matteson <trey@apple.com>
41542 Dashboard wants access to pastboard data during the drag gesture.
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.
41549 Reviewed by Maciej.
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.
41559 2004-06-14 Darin Adler <darin@apple.com>
41561 Reviewed by me, code changes by Patrick Beard.
41563 - fixed <rdar://problem/3671507>: (WebKit should adopt GC changes and compile with GC enabled)
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.
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.
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.
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.
41637 2004-06-14 Maciej Stachowiak <mjs@apple.com>
41641 <rdar://problem/3693818>: (Safari should use CG calls for circle drawing for better performance)
41643 * kwq/KWQPainter.mm:
41644 (QPainter::drawEllipse): Use CG calls instead of NS calls for faster circle drawing.
41645 (QPainter::drawArc): Ditto.
41647 2004-06-14 Ken Kocienda <kocienda@apple.com>
41653 <rdar://problem/3690115> Crash deleting text out of iChat's profile (an editable Webview)
41655 * khtml/html/html_elementimpl.cpp:
41656 (HTMLElementImpl::isFocusable): Added null-check of parent node before deref'ing it.
41658 2004-06-14 Trey Matteson <trey@apple.com>
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.
41666 * khtml/css/css_base.cpp:
41667 (CSSSelector::extractPseudoType):
41668 * kwq/KWQKHTMLPart.mm:
41669 (KWQKHTMLPart::snapshotDragImage):
41671 2004-06-13 Trey Matteson <trey@apple.com>
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).
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.
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
41697 * khtml/ecma/kjs_events.h:
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
41734 2004-06-14 Trey Matteson <trey@apple.com>
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
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.
41767 2004-06-14 Ken Kocienda <kocienda@apple.com>
41769 Added a few more editing-related layout tests.
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.
41784 2004-06-14 Ken Kocienda <kocienda@apple.com>
41786 Regarding the bug below, removing some tests since we have removed the execCommand("paste")
41787 feature, at least for now.
41789 <rdar://problem/3684792>: (JavaScript execCommand("paste") presents security issues)
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.
41796 2004-06-14 Ken Kocienda <kocienda@apple.com>
41802 <rdar://problem/3672377> assertion failure in AppendNodeCommandImpl::doApply due to non-0 exception code trying to insert a DIV markup string
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().
41810 2004-06-12 Trey Matteson <trey@apple.com>
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.
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
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
41867 2004-06-11 Chris Blumenberg <cblu@apple.com>
41869 Support for WebKit drag & drop API.
41873 * kwq/WebCoreBridge.h:
41874 * kwq/WebCoreBridge.mm:
41875 (-[WebCoreBridge _positionForPoint:]): new
41876 (-[WebCoreBridge moveDragCaretToPoint:]): call _positionForPoint
41877 (-[WebCoreBridge editableDOMRangeForPoint:]): new
41879 2004-06-11 Darin Adler <darin@apple.com>
41883 - fixed <rdar://problem/3645846>: (REGRESSION: Stuck "Loading" when logging into Google's Gmail on newer versions of Safari)
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.
41897 2004-06-11 Ken Kocienda <kocienda@apple.com>
41903 <rdar://problem/3659587>: "when typing in Blot, bold style does not carry over to next line after pressing 'return'"
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
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
41916 * khtml/editing/htmlediting_impl.h:
41920 <rdar://problem/3654864>: "Pasting content at start of line places it at end of previous line"
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.
41925 2004-07-10 Trey Matteson <trey@apple.com>
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).
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
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:
41949 2004-06-11 Ken Kocienda <kocienda@apple.com>
41953 Lay some groundwork for better testing of inserting newlines. Layout
41954 tests that use this new code will be coming soon.
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.
41961 2004-06-11 Ken Kocienda <kocienda@apple.com>
41965 Javascript execCommand system wants to use case-insensitive QDict.
41966 The interface for QDict offers this feature, but it was never implemented.
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.
41980 2004-06-10 Ken Kocienda <kocienda@apple.com>
41986 <rdar://problem/3654850>: "Style changes do not work across blocks"
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.
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:
42007 2004-06-10 Darin Adler <darin@apple.com>
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)
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.
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.
42051 * khtml/ecma/kjs_window.cpp: (WindowFunc::tryCall): Call print() on plain old part, not KWQ(part).
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.
42065 * kwq/WebCoreBridge.h: Added undoManager, removed undo-related methods.
42066 * kwq/WebCoreBridge.mm: (-[WebCoreBridge applyStyle:]): Changed to call
42067 KHTMLPart::applyStyle.
42069 * WebCore.pbproj/.cvsignore: Updated for new Xcode files.
42071 2004-06-09 Maciej Stachowiak <mjs@apple.com>
42075 <rdar://problem/3671555>: Blot scrolls to the top every time you type
42077 * khtml/xml/dom_selection.cpp:
42078 (DOM::Selection::getRepaintRect): If the caret position is invalid, recompute it.
42080 2004-06-09 David Hyatt <hyatt@apple.com>
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
42088 * khtml/css/cssparser.cpp:
42089 (CSSParser::parseValue):
42090 * khtml/css/cssproperties.c:
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:
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):
42113 2004-06-09 David Hyatt <hyatt@apple.com>
42115 Implement parsing and setting of the text-overflow CSS3 property.
42117 Reviewed by kocienda
42119 * khtml/css/cssparser.cpp:
42120 (CSSParser::parseValue):
42121 * khtml/css/cssproperties.c:
42124 * khtml/css/cssproperties.h:
42125 * khtml/css/cssproperties.in:
42126 * khtml/css/cssstyleselector.cpp:
42127 (khtml::CSSStyleSelector::applyProperty):
42128 * khtml/css/cssvalues.c:
42131 * khtml/css/cssvalues.h:
42132 * khtml/css/cssvalues.in:
42133 * khtml/rendering/render_style.cpp:
42135 (StyleCSS3NonInheritedData::operator==):
42136 (RenderStyle::diff):
42137 * khtml/rendering/render_style.h:
42138 (khtml::RenderStyle::textOverflow):
42139 (khtml::RenderStyle::setTextOverflow):
42140 (khtml::RenderStyle::initialTextOverflow):
42142 2004-06-09 David Hyatt <hyatt@apple.com>
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.
42148 Reviewed by kocienda
42150 * khtml/css/cssparser.cpp:
42151 (CSSParser::parseValue):
42152 (CSSParser::parseShadow):
42153 * khtml/css/cssparser.h:
42154 * khtml/css/cssproperties.c:
42157 * khtml/css/cssproperties.h:
42158 * khtml/css/cssproperties.in:
42159 * khtml/css/cssstyleselector.cpp:
42160 (khtml::CSSStyleSelector::applyProperty):
42161 * khtml/css/cssvalues.c:
42164 * khtml/css/cssvalues.h:
42165 * khtml/css/cssvalues.in:
42166 * khtml/misc/khtmllayout.h:
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):
42208 2004-06-09 Richard Williamson <rjw@apple.com>
42210 Added support for drawing un-rasterized transformed PDFs.
42214 * khtml/ecma/kjs_html.cpp:
42215 (KJS::Context2DFunction::tryCall):
42217 2004-06-09 Darin Adler <darin@apple.com>
42221 - implemented still more execCommand commands
42223 * khtml/editing/jsediting.cpp: Added a lot more commands, and reformatted a bit.
42225 2004-06-08 Darin Adler <darin@apple.com>
42227 Reviewed by Maciej.
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)
42236 * khtml/editing/jsediting.h: Made constructor inline. Deleted a few unneeded member functions
42237 that are now just private functions inside jsediting.cpp.
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.
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.
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.
42274 2004-06-08 Darin Adler <darin@apple.com>
42278 - our part of fix to <rdar://problem/3629334>: (REGRESSION (Tiger): titles on pop-ups menus are truncated and show ellipses)
42280 * kwq/KWQComboBox.mm: (QComboBox::QComboBox): Call setLineBreakMode:NSLineBreakByClipping.
42281 In the current version of Tiger I am using, this is not implemented yet.
42283 - a couple of other unrelated changes
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.
42292 2004-06-08 Trey Matteson <trey@apple.com>
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.
42299 * kwq/KWQKHTMLPart.mm:
42300 (KWQKHTMLPart::dragSourceMovedTo): If the ondrag event handler set an image,
42302 * kwq/WebCoreBridge.h:
42304 2004-06-08 Ken Kocienda <kocienda@apple.com>
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.
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
42316 2004-06-08 Ken Kocienda <kocienda@apple.com>
42322 <rdar://problem/3654841>: "Hitting delete key with start of block selected
42323 does not merge content with preceding block"
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.
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
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.
42357 2004-06-07 Trey Matteson <trey@apple.com>
42359 Clipboard access during DHTML dragging is made secure.
42363 * kwq/KWQClipboard.h:
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
42386 2004-06-08 Ken Kocienda <kocienda@apple.com>
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.
42395 2004-06-07 Trey Matteson <trey@apple.com>
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.
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.
42404 Some code also moved from the bridge to the part, to be available within WebCore.
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
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
42451 (KWQKHTMLPart::khtmlMouseMoveEvent): Make a default image if dragSrc didn't
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.
42464 2004-06-07 Darin Adler <darin@apple.com>
42468 - fixed <rdar://problem/3682821>: (setTimeout fails when additional parameters are used and timeout function is a string)
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).
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
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.
42481 2004-06-07 Ken Kocienda <kocienda@apple.com>
42487 <rdar://problem/3682354>: "Typing style does not work yet"
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.
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.
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.
42518 2004-06-07 Darin Adler <darin@apple.com>
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.
42532 2004-06-05 Trey Matteson <trey@apple.com>
42534 As agreed with Hyatt and Louch, do not post incoming dragging events
42539 * khtml/khtmlview.cpp:
42540 (KHTMLView::updateDragAndDrop): For any drag target that is a text node,
42541 use its parent instead.
42543 2004-06-03 Trey Matteson <trey@apple.com>
42545 DHTML dragging uses the Cocoa NSDragOperation on both the source and dest ends.
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.
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
42584 2004-06-04 David Hyatt <hyatt@apple.com>
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.
42591 * khtml/css/css_valueimpl.cpp:
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):
42610 2004-06-04 Kevin Decker <kdecker@apple.com>
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
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):
42635 2004-06-04 Ken Kocienda <kocienda@apple.com>
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.
42649 * khtml/editing/htmlediting_impl.cpp:
42650 (khtml::ApplyStyleCommandImpl::insertFragment):
42652 2004-06-04 Ken Kocienda <kocienda@apple.com>
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.
42662 2004-06-04 Ken Kocienda <kocienda@apple.com>
42666 Made some progress on this set of related bugs:
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"
42675 I did several things to move the ahead with the plan:
42677 1. The latter five methods did not appear in the tree at all. Now they do, although
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.
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.
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:
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:
42745 2004-06-03 Richard Williamson <rjw@apple.com>
42747 Added setCompositeOperation method to Context2D.
42748 Actually pass composite operation to drawPixmap (instead of 1).
42750 Reviewed by jay lo.
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:
42758 * kwq/KWQPainter.h:
42759 * kwq/KWQPainter.mm:
42760 (QPainter::compositeOperatorFromString):
42761 (QPainter::drawPixmap):
42763 2004-06-03 David Hyatt <hyatt@apple.com>
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.
42768 This is Stage 1 - wire up the CSS property and make it get parsed into front-end data. Nobody actually looks
42773 * khtml/css/css_valueimpl.cpp:
42774 (CSSInheritedValueImpl::cssText):
42775 (ShadowValueImpl::cssText):
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:
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):
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):
42816 2004-06-03 Richard Williamson <rjw@apple.com>
42818 Add extra sanity check to Image parameter of drawImage...
42822 * khtml/ecma/kjs_html.cpp:
42823 (KJS::Context2DFunction::tryCall):
42825 2004-06-02 David Hyatt <hyatt@apple.com>
42827 Fix for 3673931, negative margins on objects that dodge floats not handled correctly.
42831 * khtml/rendering/render_block.cpp:
42832 (khtml::RenderBlock::layoutBlockChildren):
42834 2004-06-03 Ken Kocienda <kocienda@apple.com>
42838 Fix for layout regression I caused when fixing:
42840 <rdar://problem/3668619>: "REGRESSION: text placed on pasteboard by WebKit is offset by one character"
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:
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
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.
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):
42893 2004-06-02 Trey Matteson <trey@apple.com>
42895 Added types property to JS clipboard object.
42897 Reviewed by Richard.
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.
42908 2004-06-02 Richard Williamson <rjw@apple.com>
42910 Corrected typo ID_IMG should have been ID_CANVAS when
42911 checking for the canvas composite operator.
42915 * khtml/rendering/render_canvasimage.cpp:
42916 (RenderCanvasImage::paint):
42918 2004-06-02 Richard Williamson <rjw@apple.com>
42920 Correctly size the <CANVAS> if margins, borders, or
42925 * khtml/rendering/render_canvasimage.cpp:
42926 (RenderCanvasImage::createDrawingContext):
42928 2004-06-01 Trey Matteson <trey@apple.com>
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.
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
42991 * kwq/WebCoreBridge.h:
42992 * kwq/WebCoreBridge.mm:
42993 (-[WebCoreBridge dragSourceMovedTo:]): New glue to drive new dragging events.
42994 (-[WebCoreBridge dragSourceEndedAt:operation:]):
42996 2004-06-02 Ken Kocienda <kocienda@apple.com>
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.
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:
43023 2004-06-02 Ken Kocienda <kocienda@apple.com>
43027 Probable fix for this bug:
43029 <rdar://problem/3668619>: "REGRESSION: text placed on pasteboard by WebKit is offset by one character"
43031 I could not reproduce the bug myself, which is why I call the fix
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
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.
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.
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.
43099 2004-06-01 Richard Williamson <rjw@apple.com>
43101 Fixed deployment build warning.
43103 * khtml/rendering/render_canvasimage.cpp:
43104 (RenderCanvasImage::paint):
43106 2004-06-01 Richard Williamson <rjw@apple.com>
43108 Added support for composite attribute to <CANVAS>
43109 Added support for drawImage and drawImageFromRect to <CANVAS>, i.e.:
43115 var img = new Image(600,600);
43117 function drawImage()
43119 var aCanvas = document.getElementById ("canvas1");
43120 var context = aCanvas.getContext("context-2d");
43121 context.drawImage (img, 0, 0, 600, 600, "copy");
43124 img.onload = drawImage;
43125 img.src = "http://www.google.com/images/logo.gif";
43130 <canvas id="canvas1" width=600 height=600>
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):
43149 * kwq/KWQPixmap.mm:
43150 (QPixmap::flushRasterCache):
43151 * kwq/WebCoreImageRenderer.h:
43152 * kwq/WebCoreImageRendererFactory.h:
43154 2004-06-01 Ken Kocienda <kocienda@apple.com>
43158 Fix for these bugs:
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"
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
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.
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.
43202 2004-06-01 Chris Blumenberg <cblu@apple.com>
43204 Reviewed by kocienda.
43206 * kwq/WebCoreBridge.h:
43207 * kwq/WebCoreBridge.mm:
43208 (-[WebCoreBridge dragCaretDOMRange]): new, lets WebKit pass the drag caret DOM range to the editing delegate
43210 2004-05-28 John Louch <ouch@apple.com>
43212 Reviewed by gramps.
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).
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:
43225 2004-05-28 Darin Adler <darin@apple.com>
43229 - various editing-related improvements
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:
43236 (DOM::Selection::validate): Remove some unneeded APPLE_CHANGES. The code need not be ifdef'd.
43237 (DOM::Selection::debugPosition): Ditto.
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.
43253 * khtml/xml/dom_position.cpp: Some ifdef tweaks.
43255 * khtml/misc/helper.cpp: Namespace and formatting tweaks.
43256 * khtml/misc/helper.h: Removed some unused stuff.
43258 * khtml/dom/dom2_range.h: Make range constructor public so that anyone with
43259 a RangeImpl can easily make a Range.
43261 2004-05-28 Richard Williamson <rjw@apple.com>
43263 setStrokeColor and setFillColor now support
43264 old school web color string, oswcs+alpha, gray, gray+alpha,
43267 Reviewed by jay-lo.
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):
43276 2004-05-28 David Hyatt <hyatt@apple.com>
43278 Implement -khtml-user-select and add support for the property -khtml-user-drag (although someone will still
43279 need to wire it up).
43283 * khtml/css/cssparser.cpp:
43284 (CSSParser::parseValue):
43285 * khtml/css/cssproperties.c:
43288 * khtml/css/cssproperties.h:
43289 * khtml/css/cssproperties.in:
43290 * khtml/css/cssstyleselector.cpp:
43291 (khtml::CSSStyleSelector::applyProperty):
43292 * khtml/css/cssvalues.c:
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:
43309 (StyleCSS3NonInheritedData::operator==):
43310 (RenderStyle::diff):
43311 * khtml/rendering/render_style.h:
43313 (khtml::RenderStyle::userDrag):
43314 (khtml::RenderStyle::userSelect):
43315 (khtml::RenderStyle::setUserDrag):
43316 (khtml::RenderStyle::setUserSelect):
43317 (khtml::RenderStyle::initialUserDrag):
43318 (khtml::RenderStyle::initialUserSelect):
43320 2004-05-28 John Louch <set EMAIL_ADDRESS environment variable>
43321 added addArc and clip path routines.
43323 Reviewed by sullivan.
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:
43332 2004-05-28 John Louch <ouch@apple.com>
43334 Added addArcToPoint and addRect path routines.
43336 Reviewed by sullivan.
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:
43345 2004-05-27 Ken Kocienda <kocienda@apple.com>
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.
43357 2004-05-27 Kevin Decker <kdecker@apple.com>
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
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:
43378 2004-05-27 Trey Matteson <trey@apple.com>
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".
43386 * khtml/khtmlview.cpp:
43387 (KHTMLView::updateDragAndDrop):
43388 * kwq/KWQClipboard.mm:
43389 (cocoaTypeFromMIMEType):
43393 2004-05-27 Vicki Murley <vicki@apple.com>
43397 - Fix Tiger build failure. Rename constant "S" to "WHITESPACE",
43398 and change all instances of S to WHITESPACE.
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
43408 2004-05-27 John Louch <set EMAIL_ADDRESS environment variable>
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:
43417 2004-05-27 Trey Matteson <trey@apple.com>
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.
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.
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:
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:
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
43499 2004-05-27 Ken Kocienda <kocienda@apple.com>
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.
43512 2004-05-27 Ken Kocienda <kocienda@apple.com>
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.
43522 Follow-on work will make this typing style a fully
43523 functional part of applying styles to text while typing.
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.
43535 2004-05-27 Ken Kocienda <kocienda@apple.com>
43539 Add helper to get the DOM element for a Position.
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.
43547 2004-05-27 Darin Adler <darin@apple.com>
43549 Reviewed by Maciej.
43551 - moved to new symlink technique for embedding frameworks
43553 * WebCore.pbproj/project.pbxproj: Get rid of embed-frameworks build step
43554 because we don't need it any more.
43556 2004-05-27 Darin Adler <darin@apple.com>
43558 - fixed bug where all pages with images would cause a crash
43559 - fixed Deployment build
43561 * kwq/KWQPainter.mm: (QPainter::drawPixmap): Put #if 0 around placeholder code
43562 for setting up the graphics context.
43564 2004-05-26 Richard Williamson <rjw@apple.com>
43566 Added shadow support (w/ Louch).
43567 Added infrastructure for drawing images.
43569 New context methods:
43575 Reviewed by me and Louch.
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:
43584 * kwq/KWQPainter.h:
43585 * kwq/KWQPainter.mm:
43586 (QPainter::drawPixmap):
43588 2004-05-26 Richard Williamson <rjw@apple.com>
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:
43599 2004-05-26 Richard Williamson <rjw@apple.com>
43601 Part 2 of the new <CANVAS> tag implementation. This adds the
43602 basic machinery and draw operations for the <CANVAS> tag. Pretty cool.
43604 function drawLine() {
43605 var canvas1 = document.getElementById ("canvas1");
43606 var context = canvas1.getContext("context-2d");
43608 context.setStrokeColor ("red");
43609 context.setLineWidth (10);
43610 context.beginPath();
43611 context.moveToPoint (0,0);
43612 context.addLineToPoint (400,400);
43613 context.strokePath();
43618 <canvas id="canvas1" width="400" height="400">
43620 Currently supported operations on the 2D context are:
43623 Scale, Rotate, Translate,
43624 BeginPath, ClosePath,
43625 SetStrokeColor, SetFillColor, SetLineWidth, SetLineCap, SetLineJoin, SetMiterLimit,
43626 FillPath, StrokePath,
43627 MoveToPoint, AddLineToPoint, AddQuadraticCurveToPoint, AddBezierCurveToPoint,
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:
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):
43674 2004-05-26 Darin Adler <darin@apple.com>
43676 - fixed warning that prevents Deployment build from compiling
43678 * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::khtmlMousePressEvent):
43679 Moved use of single-click boolean outside the scope of the "block exceptions" macros.
43681 2004-05-25 Chris Blumenberg <cblu@apple.com>
43683 Fixed a regression where selections that were created via double or triple were not draggable.
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
43691 2004-05-25 Chris Blumenberg <cblu@apple.com>
43693 Fixed regression where undoing typing would undo character-by-character.
43695 Reviewed by kocienda.
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
43701 2004-05-25 Ken Kocienda <kocienda@apple.com>
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
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.
43721 2004-05-25 Maciej Stachowiak <mjs@apple.com>
43725 * ForwardingHeaders/misc/khtml_text_operations.h: Added.
43727 2004-05-25 Richard Williamson <rjw@apple.com>
43729 Part 1 of the new <CANVAS> tag implementation. This patch
43730 adds the boiler plate for the new element.
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:
43744 * khtml/html/dtd.cpp:
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:
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):
43773 2004-05-25 Chris Blumenberg <cblu@apple.com>
43775 Fixed: <rdar://problem/3546418>: (when dragging text within an editable HTML doc, the selection should be moved not copied)
43777 Reviewed by kocienda.
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:
43785 2004-05-25 Maciej Stachowiak <mjs@apple.com>
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)
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:
43799 (-[DOMHTMLElement outerText]): Added new ObjC wrapper for this.
43800 (-[DOMHTMLElement setOuterText:]): Ditto.
43802 2004-05-25 Ken Kocienda <kocienda@apple.com>
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.
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:
43819 2004-05-24 Maciej Stachowiak <mjs@apple.com>
43823 Added a new simple layout test for outerText.
43825 * layout-tests/fast/dom/outerText-expected.txt: Added.
43826 * layout-tests/fast/dom/outerText.html: Added.
43828 2004-05-24 Darin Adler <darin@apple.com>
43832 - fixed <rdar://problem/3665813>: (iBench is crashing in TOT)
43834 * khtml/html/html_formimpl.cpp: (HTMLSelectElementImpl::HTMLSelectElementImpl):
43835 Initialize m_options to 0.
43837 2004-05-24 Ken Kocienda <kocienda@apple.com>
43839 Reviewed by Richard
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.
43848 2004-05-24 Chris Blumenberg <cblu@apple.com>
43850 Improved editing via drag.
43852 Reviewed by kocienda.
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:
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
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
43900 2004-05-24 Ken Kocienda <kocienda@apple.com>
43904 Fixed some life-cycle issues with node iterators and detaching. Big deal is
43905 to detach in DOMNodeIterator dealloc. Otherwise, NodeIterators created from
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.
43913 (-[DOMNodeIterator dealloc]): Detach here, if not yet detached; fixes leak.
43915 2004-05-24 Ken Kocienda <kocienda@apple.com>
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.
43923 2004-05-23 Darin Adler <darin@apple.com>
43927 - fixed <rdar://problem/3259919>: (Shift click should extend selection)
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
43944 2004-05-22 Darin Adler <darin@apple.com>
43948 - went through things marked "unimplemented" or "not implemented" and removed
43949 or implemented as many as possible
43951 * kwq/DOM.mm: (-[DOMNode dispatchEvent:]): Implemented.
43952 Also moved DOMAbstractView and DOMDocumentView into DOMViews.mm.
43953 * kwq/DOM-CSS.mm: (-[DOMDocument getComputedStyle::]): Implemented.
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.
43995 * kwq/DOMHTMLInternal.h: Added.
43997 (+[DOMHTMLOptionsCollection _optionsCollectionWithImpl:]): Added.
43998 (-[DOMHTMLOptionsCollection length]): Implemented.
43999 (-[DOMHTMLOptionsCollection setLength:]): Implemented.
44000 (-[DOMHTMLOptionsCollection item:]): Implemented.
44001 (-[DOMHTMLOptionsCollection namedItem:]): Implemented.
44002 (-[DOMHTMLSelectElement options]): Implemented.
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.
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.
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.
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.
44033 * khtml/rendering/render_text.h: Removed unused isFixedWidthFont member function.
44034 * khtml/rendering/render_text.cpp: Ditto.
44036 * kwq/KWQCursor.h: Removed unused pos member function.
44037 * kwq/KWQCursor.mm: Ditto.
44039 * kwq/KWQFontMetrics.h: Removed unused rightBearing and leftBearing member functions.
44040 * kwq/KWQFontMetrics.mm: Ditto.
44042 * kwq/KWQKComboBox.h: Removed KCompletionBase as a base class.
44044 * kwq/KWQKConfigBase.h: Removed unused readBoolEntry, writeEntry, and readListEntry
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.
44051 * kwq/KWQKLineEdit.h: Removed everything, since all the KLineEdit stuff was unused.
44052 Changed KLineEdit to just be a typedef for QLineEdit.
44054 * kwq/KWQSlot.mm: Removed slotAutoScroll.
44055 (KWQSlot::KWQSlot): And from here.
44056 (KWQSlot::call): And from here.
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.
44063 * kwq/KWQWidget.h: Removed unused focusNextPrevChild.
44064 * kwq/KWQWidget.mm: Ditto.
44066 * WebCore.pbproj/project.pbxproj: Removed some files, added others.
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.
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.
44089 2004-05-21 Darin Adler <darin@apple.com>
44091 Reviewed by Maciej.
44093 - fixed <rdar://problem/3663659>: (result of toString mistakenly includes all subsequent sibling content)
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.
44109 * khtml/xml/dom2_traversalimpl.h: Removed a bunch of unused and unneeded member functions.
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.
44117 2004-05-21 Maciej Stachowiak <mjs@apple.com>
44121 <rdar://problem/3656722>: Implement outerText and setOuterText DOM extensions
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.
44139 2004-05-21 Richard Williamson <rjw@apple.com>
44141 Removed _bindObject:forFrame: SPI.
44145 * kwq/KWQKHTMLPart.h:
44146 * kwq/KWQKHTMLPart.mm:
44147 * kwq/WebCoreBridge.h:
44148 * kwq/WebCoreBridge.mm:
44150 2004-05-21 David Hyatt <hyatt@apple.com>
44152 Fix for 3663644, repaints don't occur when the .innerHTML of a positioned element is changed.
44156 * khtml/rendering/bidi.cpp:
44157 (khtml::RenderBlock::layoutInlineChildren):
44158 * khtml/rendering/render_layer.h:
44159 (khtml::RenderLayer::repaintRect):
44163 2004-05-21 Darin Adler <darin@apple.com>
44165 Reviewed by Ken and Chris.
44167 - fixed <rdar://problem/3656948>: (markup strings that contain <html> and <body> elements don't work, producing nothing)
44169 * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::createContextualFragment):
44170 Changed things around so that nodes are removed from their parent node before
44172 2004-05-21 Darin Adler <darin@apple.com>
44174 Reviewed by Ken and Chris.
44176 - fixed part of <rdar://problem/3656948>: (HTML Editing: -[WebView replaceSelectionWithMarkupString:] doesn't seem to work)
44178 * khtml/editing/htmlediting_impl.cpp: (khtml::PasteMarkupCommandImpl::doApply):
44179 Changed code to handle case where contextual fragment parses to nothing without crashing.
44181 2004-05-21 Darin Adler <darin@apple.com>
44185 * kwq/DOM-CSS.mm: Change DOMCSSStyleDeclaration methods to use strings with dash-separators in them
44186 rather than interCaps.
44188 2004-05-21 Darin Adler <darin@apple.com>
44190 Reviewed by Maciej.
44192 - fixed <rdar://problem/3090663>: (scroll to top of page when anchor is "#top" or "#")
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.
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.
44207 2004-05-20 Darin Adler <darin@apple.com>
44209 Reviewed by Maciej.
44211 - fixed <rdar://problem/3575385>: (multiple radio buttons checked when arriving at sites (poll at www.1170kfaq.com, many others))
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.
44222 * khtml/xml/dom_nodeimpl.h: Removed an unnecessary virtual, to make code a little smaller and faster.
44224 2004-05-20 Darin Adler <darin@apple.com>
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)
44231 * khtml/khtmlview.h: Added invalidateClick.
44232 * khtml/khtmlview.cpp: (KHTMLView::invalidateClick): Added. Sets clickCount to 0.
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.
44242 * kwq/WebCoreBridge.h: Added BOOL result to handleMouseDragged:.
44246 - handle rules with empty bodies properly
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.
44252 2004-05-20 David Hyatt <hyatt@apple.com>
44254 Revise the patch for incorrect caret positions when brs get deleted. It can be even simpler.
44256 Reviewed by kocienda
44258 * khtml/rendering/render_flow.cpp:
44259 (RenderFlow::dirtyLinesFromChangedChild):
44260 * khtml/rendering/render_text.cpp:
44261 (RenderText::detach):
44263 2004-05-20 David Hyatt <hyatt@apple.com>
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.
44268 Reviewed by kocienda
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):
44278 2004-05-20 Ken Kocienda <kocienda@apple.com>
44282 Provide the methods to glue the WebView's editing delegate so that these methods work:
44284 <rdar://problem/3655316>: "Editing: -webViewShouldBeginEditing:inDOMRange: method unimplemented (WebKit editing API)"
44285 <rdar://problem/3655317>: "Editing: -webViewShouldEndEditing:inDOMRange: method unimplemented (WebKit editing API)"
44287 While I was in the neighborhood and working on understanding focus shifts, I fixed this bug as well:
44289 <rdar://problem/3645154>: "contentEditable div receives focus and blur twice when focus changes to new element"
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
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:
44319 2004-05-20 Richard Williamson <rjw@apple.com>
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):
44332 2004-05-20 Darin Adler <darin@apple.com>
44336 - fixed <rdar://problem/3661918>: "repro nil-deref in RenderImage::paint (www.codepoetry.net)"
44338 * khtml/rendering/render_image.cpp: (RenderImage::paint): Check renderer pointer to see if it's
44339 nil before dereferencing it.
44341 - fixed <rdar://problem/3658455>: "readFromData:options:documentAttributes: crashes when passed page without a body (in WebKit mode)"
44343 * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::bodyBackgroundColor): Check renderer pointer to see if it's
44344 nil before dereferencing it.
44346 - fixed <rdar://problem/2948112>: "implement addRule for JavaScript for style sheets"
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".
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.
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.
44364 2004-05-19 David Hyatt <hyatt@apple.com>
44366 Implement support for notification posting to accessibility clients for layouts and loads.
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]):
44385 2004-05-19 Chris Blumenberg <cblu@apple.com>
44387 Tweaks for forthcoming dragging improvements.
44391 * kwq/WebCoreBridge.h:
44392 * kwq/WebCoreBridge.mm:
44393 (-[WebCoreBridge moveDragCaretToPoint:]): renamed for future reasons, removed text only restrictions
44395 2004-05-19 Ken Kocienda <kocienda@apple.com>
44397 Reviewed by Hyatt and Darin
44401 <rdar://problem/3643230>: "can't tab out of contentEditable Elements"
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.
44412 2004-05-19 Ken Kocienda <kocienda@apple.com>
44418 <rdar://problem/3655601>: "deleting characters is much slower than inserting them"
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.
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
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
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
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.
44455 2004-05-19 Ken Kocienda <kocienda@apple.com>
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.
44471 2004-05-19 Darin Adler <darin@apple.com>
44473 - fixed headers with licenses mangled by Xcode auto-indenting
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:
44487 2004-05-18 David Hyatt <hyatt@apple.com>
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.
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:]):
44502 2004-05-18 David Hyatt <hyatt@apple.com>
44504 Fix crash when retrieving the AXHelp text.
44506 * kwq/KWQAccObject.mm:
44507 (-[KWQAccObject helpText]):
44509 2004-05-18 David Hyatt <hyatt@apple.com>
44511 Improve layout scheduling and add instrumentation for debugging layout scheduling
44513 Reviewed by kocienda
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:
44544 * kwq/KWQWidget.mm:
44545 (QWidget::setFrameGeometry):
44547 2004-05-18 Richard Williamson <rjw@apple.com>
44549 Finished implementing support for windowScriptObject.
44551 Reviewed by Maciej.
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):
44563 2004-05-18 Richard Williamson <rjw@apple.com>
44565 Added stubs to get the WebScriptObject for the window
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.
44572 Reviewed by Maciej.
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]):
44587 2004-05-17 Maciej Stachowiak <mjs@apple.com>
44591 <rdar://problem/3656719>: Implement outerHTML and setOuterHTML DOM extensions
44593 They were already implemented (by Chris), all that was required
44594 was exporting them to JavaScript.
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.
44606 2004-05-18 Ken Kocienda <kocienda@apple.com>
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.
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:
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.
44634 2004-05-17 Richard Williamson <rjw@apple.com>
44636 Implemented new API for WebScriptObject.
44637 Fixed <rdar://problem/3657145>: (objc to javascript method calls do not cause updates.)
44641 * kwq/WebCoreBridge.mm:
44642 (updateRenderingForBindings):
44643 (-[WebCoreBridge init]):
44645 2004-05-14 Vicki Murley <vicki@apple.com>
44649 <rdar://problem/3642427>: framework marketing number should be 2.0 for DoubleBarrel release
44651 * WebCore.pbproj/project.pbxproj: change CFBundleShortVersionString to 2.0
44653 2004-05-14 Darin Adler <darin@apple.com>
44655 Reviewed by Darin, coded by Maciej.
44657 - fixed extra repaints when doing auto-fill checks on all pages that have pop-up buttons
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.
44664 2004-05-14 Darin Adler <darin@apple.com>
44668 - fixed <rdar://problem/3650026>: "background property doesn't work right on webdevtips.com due to background:inherit"
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.
44675 2004-05-13 David Hyatt <hyatt@apple.com>
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.
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:
44695 2004-05-14 Chris Blumenberg <cblu@apple.com>
44697 - Made DOMEventTarget a formal protocol that is implemented by DOMNode
44698 - Made DOMEventListener a formal protocol that any object can implement
44700 Reviewed by kocienda.
44705 2004-05-13 Richard Williamson <rjw@apple.com>
44707 Removed vestigial isSelected method.
44712 * kwq/KWQWidget.mm:
44713 (QWidget::setIsSelected):
44714 * kwq/WebCoreBridge.h:
44716 2004-05-13 Chris Blumenberg <cblu@apple.com>
44718 Fixed: <rdar://problem/3616555>: (API: Make DOM extensions and WebKit DOM operations public)
44722 * kwq/DOM.h: added DOMExtensions.h
44723 * kwq/DOMHTML.h: renamed frame on DOMHTMLTableElement to frameBorders to avoid NSView conflicts
44725 (-[DOMHTMLTableElement frameBorders]):
44726 (-[DOMHTMLTableElement setFrameBorders:]):
44728 2004-05-13 Richard Williamson <rjw@apple.com>
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.
44741 * kwq/DOMExtensions.h:
44743 * kwq/DOMInternal.h:
44745 * kwq/DOMStylesheets.h:
44746 * kwq/DOMTraversal.h:
44749 2004-05-13 Ken Kocienda <kocienda@apple.com>
44751 * khtml/editing/htmlediting_impl.cpp:
44752 (khtml::ApplyStyleCommandImpl::applyStyleIfNeeded): Fix deployment
44753 build bustage. Uninitialized variable.
44755 2004-05-13 Ken Kocienda <kocienda@apple.com>
44759 Implemented first cut at text style change code.
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:
44787 (khtml::ApplyStyleCommand::):
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
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):
44811 Text style change command implementations.
44812 There are a couple more parent() -> parentNode() changes in here as well.
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):
44867 Text style change command implementations.
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):
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.
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):
44898 * khtml/xml/dom_elementimpl.cpp:
44899 (ElementImpl::hasAttributes):
44900 * khtml/xml/dom_elementimpl.h:
44903 New helpers to begin moving us to using DOM Range-compliant positions in our code.
44905 * khtml/xml/dom_position.cpp:
44906 (DOM::Position::equivalentRangeCompliantPosition):
44907 (DOM::Position::equivalentShallowPosition):
44908 (DOM::Position::inLastEditableInContainingEditableBlock):
44911 (DOM::Position::debugPosition): Debugging aid.
44912 * khtml/xml/dom_position.h:
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.
44918 2004-05-12 David Hyatt <hyatt@apple.com>
44920 Improve layout scheduling. Make sure no layouts can be scheduled until over a minimum delay threshold.
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:
44936 2004-05-11 Chris Blumenberg <cblu@apple.com>
44938 Support for: <rdar://problem/3616471>: (API: provide way to get from WebFrame to DOMDocument and vice versa)
44943 (-[DOMDocument _ownerElement]): new
44944 * kwq/DOMInternal.h:
44945 * kwq/WebCoreBridge.h:
44946 * kwq/WebCoreBridge.mm:
44947 (-[WebCoreBridge frameElement]): new
44949 2004-05-11 David Hyatt <hyatt@apple.com>
44951 Fix makeChildrenNonInline so that it does not wrap floats unless an inline is actually found.
44953 Fix block minmaxwidth to add together contiguous runs of floats.
44955 Fix the content image loader to not destroy the image when removed from the document.
44960 * khtml/html/html_imageimpl.cpp:
44961 (HTMLImageLoader::~HTMLImageLoader):
44962 (HTMLImageElementImpl::detach):
44963 * khtml/html/html_imageimpl.h:
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):
44973 2004-05-06 David Hyatt <hyatt@apple.com>
44975 Fix makeChildrenNonInline so that it does not wrap floats unless an inline is actually found.
44977 Fix block minmaxwidth to add together contiguous runs of floats.
44979 Fix the content image loader to not destroy the image when removed from the document.
44983 * khtml/rendering/render_block.cpp:
44984 (khtml::getInlineRun):
44985 (khtml::RenderBlock::calcBlockMinMaxWidth):
44987 2004-05-11 Vicki Murley <vicki@apple.com>
44989 Reviewed by Vicki (fixed by Darin).
44991 * kwq/KWQKSSLKeyGen.h: fix build failure in B&I due to case sensitivity
44993 2004-05-09 Maciej Stachowiak <mjs@apple.com>
44997 - avoid redecoding animated images that are only used once for
44998 ~2.5% iBench speedup (WebCore part of fix)
45000 * khtml/rendering/render_image.cpp:
45001 (RenderImage::setPixmap): Maintain use count for pixmap.
45002 (RenderImage::~RenderImage): Likewise.
45004 * kwq/KWQPixmap.mm:
45005 (QPixmap::increaseUseCount): Call WebCoreImageRenderer
45006 (QPixmap::decreaseUseCount): Call WebCoreImageRenderer
45007 * kwq/WebCoreImageRenderer.h: Prototype new protocol methods.
45009 2004-05-10 David Hyatt <hyatt@apple.com>
45011 Make sure that when finished parsing if all the right conditions are met, we just go ahead and updateRendering and
45016 * khtml/khtmlview.cpp:
45017 (KHTMLView::scheduleRelayout):
45019 2004-05-08 Maciej Stachowiak <mjs@apple.com>
45023 - some minor performance tweaks that together give .5% or so on
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
45036 2004-05-10 David Hyatt <hyatt@apple.com>
45038 Move image loading to content.
45040 Reviewed by kocienda
45042 * khtml/html/html_imageimpl.cpp:
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:
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:
45078 2004-05-10 Darin Adler <darin@apple.com>
45082 - fixed build failure seen in B&I log (due to case sensitive file system?)
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.
45089 2004-05-07 Maciej Stachowiak <mjs@apple.com>
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.
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
45107 2004-05-07 Don Melton <gramps@apple.com>
45111 Fixed minor, edge-case regression in KEYGEN RSA logic caused by Dave's
45112 "atomic string" patch back in January.
45114 * khtml/html/html_formimpl.cpp:
45115 (HTMLKeygenElementImpl::encoding):
45119 2004-05-06 Maciej Stachowiak <mjs@apple.com>
45123 - two trivial changes for a 1% speedup, thanks to Shark
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.
45132 2004-05-06 Chris Blumenberg <cblu@apple.com>
45134 Added alpha to DOMRGBColor as an extension.
45139 (-[DOMRGBColor alpha]): new
45140 * kwq/DOMExtensions.h:
45142 2004-05-05 David Hyatt <hyatt@apple.com>
45144 Fix whitespace rendering for brs inside pres. The bug is 3640711.
45146 Reviewed by kocienda
45148 * khtml/rendering/bidi.cpp:
45149 (khtml::RenderBlock::layoutInlineChildren):
45150 (khtml::RenderBlock::findNextLineBreak):
45152 2004-04-25 Maciej Stachowiak <mjs@apple.com>
45156 * khtml/ecma/kjs_events.cpp:
45157 (JSLazyEventListener::parseCode): Make sure to protect the
45158 permanent "event" string object.
45160 2004-05-05 David Hyatt <hyatt@apple.com>
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.
45167 * khtml/xml/dom_nodeimpl.cpp:
45169 2004-05-05 David Hyatt <hyatt@apple.com>
45171 A collection of fixes.
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.
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):
45189 2004-05-05 Chris Blumenberg <cblu@apple.com>
45191 - DOM Extensions API tweaks
45192 - Implemented outerHTML
45194 Reviewed by kocienda.
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
45203 (-[DOMHTMLElement outerHTML]): new
45204 (-[DOMHTMLElement setOuterHTML:]): mew
45206 2004-05-04 David Hyatt <hyatt@apple.com>
45208 Fix for 3641331, make sure <th> elements don't reset text-align to center if they inherit a specified
45211 Also remove the styles from <abbr> and <acronym>.
45215 * khtml/css/cssstyleselector.cpp:
45216 (khtml::CSSStyleSelector::adjustRenderStyle):
45217 * khtml/css/html4.css:
45218 * khtml/css/quirks.css:
45220 2004-05-04 Ken Kocienda <kocienda@apple.com>
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.
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.
45240 2004-05-04 Ken Kocienda <kocienda@apple.com>
45242 Added layout tests for DOM traversal objects.
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.
45268 2004-05-04 Ken Kocienda <kocienda@apple.com>
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.
45277 2004-05-04 Ken Kocienda <kocienda@apple.com>
45279 * WebCore.pbproj/project.pbxproj: Backed out unintentional
45282 2004-05-04 Ken Kocienda <kocienda@apple.com>
45286 Implemented DOM traversal objects, NodeIterator and TreeWalker.
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.
45322 2004-05-04 Darin Adler <darin@apple.com>
45326 - fixed <rdar://problem/3642252>: "starting to drag a link and then releasing needs to activate the link if you are still over it"
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.
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.
45338 * WebCore-tests.exp: Removed manhattanLength.
45339 * WebCore-combined.exp: Regenerated.
45341 2004-05-03 Ken Kocienda <kocienda@apple.com>
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.
45349 * khtml/editing/htmlediting_impl.cpp:
45350 (InputNewlineCommandImpl::doApply)
45352 2004-05-03 Darin Adler <darin@apple.com>
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"
45361 * khtml/dom/dom2_range.h: Added == and != operators to DOMRange.
45362 * khtml/dom/dom2_range.cpp: (DOM::operator==): Added.
45364 * khtml/khtml_part.cpp:
45365 (KHTMLPart::init): Don't call findTextBegin any more; it's now not used at all
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.
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.
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.
45386 * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::findString): Reimplement find so it uses
45387 the new text operations function for finding.
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.
45394 2004-05-03 David Hyatt <hyatt@apple.com>
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
45402 * khtml/xml/dom_xmlimpl.cpp:
45403 (ProcessingInstructionImpl::setStyleSheet):
45405 2004-04-30 Chris Blumenberg <cblu@apple.com>
45407 Fixed: <rdar://problem/3543662>: HITLIST-137: REGRESSION: reproducible hang copying all text at Dave's blog, and other pages
45411 * khtml/xml/dom2_rangeimpl.cpp:
45412 (RangeImpl::toHTMLWithOptions): when looping with containingBlock, check the value to see if it is the same
45414 2004-04-30 David Hyatt <hyatt@apple.com>
45416 Fix for 3639530, regression on generated content pages. They crash because I forgot to null-check the style
45419 Reviewed by kocienda
45421 * khtml/css/cssstyleselector.cpp:
45422 (khtml::CSSStyleSelector::checkOneSelector):
45424 2004-04-30 John Sullivan <sullivan@apple.com>
45426 - added bridge method to get the NSFont used to render a node, to
45427 help with supporting the font panel
45431 * kwq/WebCoreBridge.h:
45432 * kwq/WebCoreBridge.mm:
45433 (-[WebCoreBridge renderedFontForNode:]):
45434 return nil if no renderer, otherwise return NSFont
45436 2004-04-29 David Hyatt <hyatt@apple.com>
45438 Expose summary on tables.
45442 * kwq/KWQAccObject.mm:
45443 (-[KWQAccObject helpText]):
45445 2004-04-29 David Hyatt <hyatt@apple.com>
45447 Implement image maps for accessibility.
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):
45477 2004-04-29 Chris Blumenberg <cblu@apple.com>
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
45483 Reviewed by kocienda.
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
45492 2004-04-29 Darin Adler <darin@apple.com>
45496 - some tweaks on image
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.
45504 2004-04-29 David Hyatt <hyatt@apple.com>
45506 1. Change the role of links from AXButton to AXLink.
45507 2. Add support for list markers using a new role, AXListMarker.
45509 Reviewed by kocienda
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]):
45519 2004-04-29 Darin Adler <darin@apple.com>
45523 - fixed <rdar://problem/3636566>: "space bar on a form button hits default button instead (autorestore.apple.com)"
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.
45529 2004-04-29 Darin Adler <darin@apple.com>
45533 - fixed <rdar://problem/3636673>: "unrepro nil-deref crash in KHTMLPart::frameDetached() (espn.com)"
45535 * kwq/KWQKHTMLPart.mm: (KHTMLPart::frameDetached): Check for nil.
45537 2004-04-28 Chris Blumenberg <cblu@apple.com>
45539 - Implemented DOMHTMLElementExtensions.
45540 - Added stubs for the rest of the DOM API.
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:
45551 (-[DOMObject sheet]):
45552 (-[DOMDocument getComputedStyle::]):
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:]):
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
45624 2004-04-27 David Hyatt <hyatt@apple.com>
45626 Implement sharing of similar style objects. Cuts the # of style objects allocated on the PLT by more
45629 Reviewed by kocienda
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:
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):
45707 2004-04-28 Darin Adler <darin@apple.com>
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
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.
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.
45731 2004-04-28 Darin Adler <darin@apple.com>
45735 - fixed reinterpret_cast mistakes and some style issues in DOM implementation
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.
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.
45814 * kwq/HTMLDOM.mm: Removed.
45816 2004-04-28 Ken Kocienda <kocienda@apple.com>
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
45825 (KHTMLPart::unappliedEditing): Ditto.
45826 (KHTMLPart::reappliedEditing): Ditto.
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.
45835 2004-04-28 Darin Adler <darin@apple.com>
45839 - fixed <rdar://problem/3636261>: "nil-deref in selectedStylesheetSet iterating through properties in a non-view document"
45841 * khtml/xml/dom_docimpl.cpp:
45842 (DocumentImpl::selectedStylesheetSet): Add nil check.
45843 (DocumentImpl::setSelectedStylesheetSet): Ditto.
45845 2004-04-27 Richard Williamson <rjw@apple.com>
45847 <rdar://problem/3564519>: API: please add a way to set the media type for a WebView
45851 * khtml/khtmlview.cpp:
45852 (KHTMLView::mediaType):
45853 * kwq/KWQKHTMLPart.h:
45854 * kwq/KWQKHTMLPart.mm:
45855 (KWQKHTMLPart::overrideMediaType):
45856 * kwq/WebCoreBridge.h:
45858 2004-04-27 Ken Kocienda <kocienda@apple.com>
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.
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.
45903 2004-04-27 Richard Williamson <rjw@apple.com>
45905 Don't do unnecessary string comparisons when no composite operator is
45910 * kwq/KWQPainter.mm:
45911 (compositeOperatorFromString):
45913 2004-04-27 Darin Adler <darin@apple.com>
45917 - fixed <rdar://problem/3623694>: "top level <option> and <optgroup> labels look identical in pop-up menus; should not"
45919 * khtml/rendering/render_form.cpp: (RenderSelect::updateFromElement):
45920 Call appendGroupLabel instead of appendItem for group labels.
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.
45936 * kwq/KWQListBox.h: Removed excess includes, fixed comment.
45938 2004-04-26 Darin Adler <darin@apple.com>
45940 Reviewed by Maciej.
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.
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.
45949 2004-04-26 David Hyatt <hyatt@apple.com>
45951 Fix for Emerson truncation problem using apple-line-clamp. Always dirty positioned objects so that they
45952 will move when the height changes.
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):
45962 2004-04-26 Richard Williamson <rjw@apple.com>
45964 Added support for specifying composite operation on an
45965 image element. Attribute name is "composite", possible values
45983 <img composite="source-over" src="triangle.png">
45984 <img style="position:relative; left:-200px;" composite="destination-in" src="circle.png">
45988 * khtml/html/html_imageimpl.cpp:
45989 (HTMLImageElementImpl::parseHTMLAttribute):
45990 * khtml/html/html_imageimpl.h:
45991 (DOM::HTMLImageElementImpl::compositeOperator):
45992 * khtml/misc/htmlattrs.c:
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:
46004 2004-04-26 Darin Adler <darin@apple.com>
46006 - fixed <rdar://problem/3634145>: "REGRESSION: nil-deref in QTextCodec::toUnicode every time loading page at wiki.wordpress.org"
46009 (KURL::KURL): Simplify check for nil that defaults to UTF-8.
46010 (KURL::decode_string): Add a similar test here.
46012 2004-04-26 David Hyatt <hyatt@apple.com>
46014 Implement the quirk that makes the <body> and <html> size to fill the viewport in quirks mode. This
46019 * khtml/rendering/render_box.cpp:
46020 (RenderBox::calcHeight):
46022 2004-04-26 Ken Kocienda <kocienda@apple.com>
46028 <rdar://problem/3633458>: "REGRESSION (125-137): Can't drag a selection unless it starts at beginning of line"
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.
46037 2004-04-25 David Hyatt <hyatt@apple.com>
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.
46044 Reviewed by mjs, darin
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):
46070 2004-04-23 David Hyatt <hyatt@apple.com>
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.
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.
46085 2004-04-25 Darin Adler <darin@apple.com>
46089 - fixed <rdar://problem/3633091>: "add overrideMimeType function to XMLHttpRequest"
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.
46099 2004-04-25 Maciej Stachowiak <mjs@apple.com>
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"
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.
46120 2004-04-24 Darin Adler <darin@apple.com>
46124 - fixed <rdar://problem/3488892>: "anchor names with non-ASCII characters in them do not work"
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.
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.
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.
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
46149 * WebCore-tests.exp: Updated for change in signature of setQuery and decode_string.
46150 * WebCore-combined.exp: Regenerated.
46152 2004-04-24 Darin Adler <darin@apple.com>
46154 - fixed <rdar://problem/3570953>: "Update "Acknowledgements" to remove expat and possibly include libxml"
46156 * WebCore.pbproj/project.pbxproj: Removed the part of the copyright notice that was for expat contributors.
46158 2004-04-23 David Hyatt <hyatt@apple.com>
46160 Fix the apple-line-clamp values to more closely match what is needed, an even split of the max lines between the possible
46163 * khtml/rendering/render_flexbox.cpp:
46164 (khtml::RenderFlexibleBox::layoutVerticalBox):
46166 2004-04-23 David Hyatt <hyatt@apple.com>
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
46172 Reviewed by kocienda
46174 * khtml/rendering/render_box.cpp:
46175 (RenderBox::calcHeight):
46176 (RenderBox::calcPercentageHeight):
46177 * khtml/rendering/render_box.h:
46179 2004-04-23 Ken Kocienda <kocienda@apple.com>
46184 <rdar://problem/3632163>: "REGRESSSION: crash on css home page"
46186 * khtml/rendering/render_block.cpp:
46187 (khtml::RenderBlock::positionForRenderer): Add null check.
46189 2004-04-20 David Hyatt <hyatt@apple.com>
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.
46194 Reviewed by kocienda
46196 * kwq/KWQPainter.mm:
46197 (QPainter::beginTransparencyLayer):
46198 (QPainter::endTransparencyLayer):
46200 2004-04-20 David Hyatt <hyatt@apple.com>
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.
46205 Reviewed by kocienda
46207 * khtml/html/dtd.cpp:
46209 2004-04-23 Ken Kocienda <kocienda@apple.com>
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.
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)
46235 2004-04-23 Ken Kocienda <kocienda@apple.com>
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.
46251 2004-04-23 Ken Kocienda <kocienda@apple.com>
46255 Added some plumbing for applying styles.
46257 * khtml/xml/dom_docimpl.cpp:
46258 (DocumentImpl::createCSSStyleDeclaration): New factory method.
46259 * khtml/xml/dom_docimpl.h: Declare the above.
46261 (-[DOMCSSStyleDeclaration _styleDeclarationImpl]): Expose this in the
46262 WebCoreInternal category, "promoting" it from being private to the
46264 * kwq/DOM.mm: Add -(DOMCSSStyleDeclaration *)createCSSStyleDeclaration extension.
46265 * kwq/DOMExtensions.h: Delcare the above.
46266 * kwq/DOMInternal.h: Add _styleDeclarationImpl to WebCoreInternal category.
46268 2004-04-23 John Sullivan <sullivan@apple.com>
46270 - fixed <rdar://problem/3631541>: "repro crash in KHTMLPart::setFocusNodeIfNeeded"
46272 Reviewed by Maciej.
46274 * khtml/khtml_part.cpp:
46275 (KHTMLPart::setFocusNodeIfNeeded):
46278 2004-04-23 Maciej Stachowiak <mjs@apple.com>
46280 Back out one of the previous changes, it causes a crash. Whoops!
46282 * kwq/KWQScrollView.mm:
46283 (QScrollView::addChild):
46285 2004-04-23 Maciej Stachowiak <mjs@apple.com>
46289 These two tiny changes (made w/ Dave's help) should get us about
46290 1% or so combined on the HTML iBench.
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.
46300 2004-04-22 Ken Kocienda <kocienda@apple.com>
46304 * khtml/editing/htmlediting_impl.cpp:
46305 (DeleteSelectionCommandImpl::doApply): Short-circuit return if the selection
46306 is not a range after collapsing whitespace.
46308 2004-04-22 Ken Kocienda <kocienda@apple.com>
46312 More work to bring code up to date with the latest API proposal.
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.
46319 2004-04-22 Ken Kocienda <kocienda@apple.com>
46323 Adds the notion of selection affinity to the editing API, bringing it up to
46324 date with the latest proposal.
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.
46342 2004-04-21 Maciej Stachowiak <mjs@apple.com>
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.
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:
46356 2004-04-22 Darin Adler <darin@apple.com>
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.
46361 2004-04-22 Ken Kocienda <kocienda@apple.com>
46365 Ensures caret visibility after making an editing action.
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.
46376 2004-04-21 David Hyatt <hyatt@apple.com>
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
46383 * khtml/rendering/render_table.cpp:
46384 (RenderTableSection::layoutRows):
46386 2004-04-21 David Hyatt <hyatt@apple.com>
46388 Fix for 3020449, ensure that the paint order of cells with rowspans matches other browsers.
46392 * khtml/rendering/render_table.cpp:
46393 (RenderTableSection::paint):
46395 2004-04-21 David Hyatt <hyatt@apple.com>
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.
46400 Reviewed by kocienda
46402 * khtml/rendering/render_table.cpp:
46403 (RenderTable::layout):
46405 2004-04-21 David Hyatt <hyatt@apple.com>
46407 Make sure cells that get flexed vertically in tables don't check text children when looking for
46408 percentage height children.
46410 Reviewed by kocienda
46412 * khtml/rendering/render_table.cpp:
46413 (RenderTableSection::layoutRows):
46415 2004-04-21 David Hyatt <hyatt@apple.com>
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.
46420 Reviewed by kocienda
46422 * khtml/rendering/render_block.cpp:
46423 (khtml::InlineMinMaxIterator::next):
46425 2004-04-21 Ken Kocienda <kocienda@apple.com>
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.
46450 2004-04-21 Ken Kocienda <kocienda@apple.com>
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
46459 2004-04-21 Ken Kocienda <kocienda@apple.com>
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.
46468 * khtml/ecma/kjs_window.cpp:
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):
46532 * kwq/KWQKHTMLPart.mm:
46533 (KWQKHTMLPart::jumpToSelection):
46534 (KWQKHTMLPart::selectionStartOffset):
46535 (KWQKHTMLPart::selectionEndOffset):
46536 (KWQKHTMLPart::selectionStart):
46537 (KWQKHTMLPart::selectionEnd):
46538 * kwq/KWQRenderTreeDebug.cpp:
46540 * kwq/WebCoreBridge.mm:
46541 (-[WebCoreBridge isSelectionEditable]):
46542 (-[WebCoreBridge setSelectionFrom:startOffset:to:endOffset:]):
46543 (-[WebCoreBridge setSelectedDOMRange:]):
46545 2004-04-20 Ken Kocienda <kocienda@apple.com>
46549 Renamed DOMPosition class to Position.
46550 Renamed KHTMLSelection to Selection and moved to DOM namespace.
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.
46561 2004-04-20 Ken Kocienda <kocienda@apple.com>
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
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.
46607 2004-04-19 Ken Kocienda <kocienda@apple.com>
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
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.
46653 2004-04-16 Ken Kocienda <kocienda@apple.com>
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.
46661 2004-04-16 Chris Blumenberg <cblu@apple.com>
46663 Subresources weren't being archived for LINK tags.
46665 Reviewed by kocienda.
46667 * khtml/xml/dom_nodeimpl.cpp:
46668 (NodeImpl::recursive_toHTMLWithOptions): indent tweak
46670 (-[DOMHTMLLinkElement _linkElementImpl]): C+casting voodoo to make methods like rel and href work correctly
46672 2004-04-16 Ken Kocienda <kocienda@apple.com>
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").
46684 2004-04-16 Ken Kocienda <kocienda@apple.com>
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.
46701 2004-04-16 Richard Williamson <rjw@apple.com>
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.
46709 * kwq/KWQKHTMLPart.h:
46710 * kwq/KWQKHTMLPart.mm:
46711 (KWQKHTMLPart::bindObject):
46712 * kwq/WebCoreBridge.h:
46713 * kwq/WebCoreBridge.mm:
46714 (-[WebCoreBridge bindObject:withName:]):
46716 2004-04-16 Chris Blumenberg <cblu@apple.com>
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.
46722 Reviewed by kocienda.
46724 * WebCore-combined.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:
46759 (+[DOMNode _nodeWithImpl:]): added support for HTML types
46760 * kwq/DOMExtensions.h:
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
46786 2004-04-15 David Hyatt <hyatt@apple.com>
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.
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):
46800 2004-04-15 Ken Kocienda <kocienda@apple.com>
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.
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.
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.
46859 2004-04-15 David Hyatt <hyatt@apple.com>
46861 Fix for 3603455, block truncation support.
46863 Reviewed by kocienda
46865 * khtml/css/cssparser.cpp:
46866 (CSSParser::parseValue):
46867 * khtml/css/cssproperties.c:
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:
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:
46885 (StyleCSS3NonInheritedData::operator==):
46886 (RenderStyle::diff):
46887 * khtml/rendering/render_style.h:
46888 (khtml::RenderStyle::lineClamp):
46889 (khtml::RenderStyle::setLineClamp):
46890 (khtml::RenderStyle::initialLineClamp):
46892 2004-04-13 Chris Blumenberg <cblu@apple.com>
46894 - Removed WebCoreElementIsEditableKey. This functionality is available via [DOMNode isContentEditable].
46898 * WebCore-combined.exp:
46900 * kwq/WebCoreBridge.h:
46901 * kwq/WebCoreBridge.mm:
46902 (-[WebCoreBridge elementAtPoint:]): removed use of WebCoreElementIsEditableKey
46903 (-[WebCoreBridge URLWithRelativeString:]): new method for WebKit API
46905 2004-04-13 David Hyatt <hyatt@apple.com>
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.
46910 Reviewed by kocienda
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:
46976 2004-04-12 David Hyatt <hyatt@apple.com>
46978 Fix for 3556036, make sure that when the position changes via style that all render layer
46979 descendants simply immediately repaint.
46981 Reviewed by kocienda
46983 * khtml/rendering/render_layer.cpp:
46984 (RenderLayer::repaintIncludingDescendants):
46985 * khtml/rendering/render_layer.h:
46986 * khtml/rendering/render_object.cpp:
46987 (RenderObject::setStyle):
46989 2004-04-12 Chris Blumenberg <cblu@apple.com>
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.
46994 Reviewed by kocienda.
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
47017 2004-04-12 Ken Kocienda <kocienda@apple.com>
47021 Added execCommand support for cut/copy/paste.
47023 * khtml/xml/dom_docimpl.cpp:
47024 (DocumentImpl::execCommand): Added cut/copy/paste atoms and added else if cases
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.
47042 2004-04-12 Ken Kocienda <kocienda@apple.com>
47046 Some delete and insert cleanups.
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.
47066 2004-04-09 Ken Kocienda <kocienda@apple.com>
47070 Added support for methods added to flesh out the WebKit
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.
47088 2004-04-09 Darin Adler <darin@apple.com>
47092 - added "transparent mode"
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.
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.
47107 * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::paint): Make "fill with red" debug mode work only
47108 when the view is not transparent.
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.
47114 2004-04-09 Ken Kocienda <kocienda@apple.com>
47116 Added one more layout test for editing.
47118 * layout-tests/editing/deleting/delete-3608445-fix-expected.txt: Added.
47119 * layout-tests/editing/deleting/delete-3608445-fix.html: Added.
47121 2004-04-08 Maciej Stachowiak <mjs@apple.com>
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:
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)
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):
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):
47155 (Window::retrieveActive):
47157 (Window::isSafeScript):
47158 (WindowFunc::tryCall):
47160 (LocationFunc::tryCall):
47162 2004-04-09 David Hyatt <hyatt@apple.com>
47164 Fix for 3613081, repaint glitches when using overflow:auto/overlay.
47168 * khtml/rendering/render_layer.cpp:
47169 (RenderLayer::updateScrollInfoAfterLayout):
47171 2004-04-09 David Hyatt <hyatt@apple.com>
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.
47178 * khtml/rendering/render_text.cpp:
47179 (RenderText::setTextWithOffset):
47181 2004-04-09 Ken Kocienda <kocienda@apple.com>
47183 Added two more layout tests for editing.
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.
47190 2004-04-09 Ken Kocienda <kocienda@apple.com>
47194 Small collection of editing improvements.
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.
47238 2004-04-08 Chris Blumenberg <cblu@apple.com>
47240 Renamed the PasteHTMLCommand to PasteMarkupCommand. Removed PasteImageCommand because we will use PasteMarkupCommand for pasting images.
47242 Reviewed by kocienda.
47245 * khtml/editing/htmlediting.cpp:
47246 (PasteMarkupCommand::PasteMarkupCommand):
47247 (PasteMarkupCommand::~PasteMarkupCommand):
47248 (PasteMarkupCommand::impl):
47249 (PasteMarkupCommand::markupString):
47250 * khtml/editing/htmlediting.h:
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:]):
47267 2004-04-08 David Hyatt <hyatt@apple.com>
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.
47273 Reviewed by kocienda
47275 * khtml/rendering/render_line.cpp:
47276 (InlineFlowBox::removeChild):
47278 2004-04-08 Chris Blumenberg <cblu@apple.com>
47280 Removed DOMExtensions.h from DOM.h until it is public.
47282 Reviewed by koicienda.
47286 2004-04-07 Chris Blumenberg <cblu@apple.com>
47288 WebCore side for supporting WebDOMOperations.
47292 * WebCore-combined.exp:
47295 * kwq/DOMExtensions.h:
47296 * kwq/WebCoreBridge.h:
47297 * kwq/WebCoreBridge.mm:
47298 (+[WebCoreBridge bridgeForDOMDocument:]): new
47299 (-[WebCoreBridge imageForImageElement:]): new
47301 2004-04-07 Darin Adler <darin@apple.com>
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.
47309 2004-04-07 Ken Kocienda <kocienda@apple.com>
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.
47317 2004-04-07 Ken Kocienda <kocienda@apple.com>
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.
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.
47353 2004-04-07 Ken Kocienda <kocienda@apple.com>
47357 Make paste work again. It has been broken for some undetermined
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.
47380 2004-04-06 Ken Kocienda <kocienda@apple.com>
47382 Reviewed by Richard
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.
47401 2004-04-06 David Hyatt <hyatt@apple.com>
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
47409 * khtml/rendering/table_layout.cpp:
47410 (AutoTableLayout::layout):
47412 2004-04-06 Ken Kocienda <kocienda@apple.com>
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.
47424 2004-04-06 Ken Kocienda <kocienda@apple.com>
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.
47433 2004-04-06 Ken Kocienda <kocienda@apple.com>
47437 Caret height is now the height of the tallest element on the line,
47438 mimicking NSText behavior.
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.
47446 2004-04-06 Ken Kocienda <kocienda@apple.com>
47448 Added a new suite of layout tests for editing, all added
47449 in the new layout-tests/editing subtree.
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.
47520 2004-04-06 Ken Kocienda <kocienda@apple.com>
47524 Added execCommand feature.
47525 Added Javascript selection object.
47526 This lays the groundwork for layout tests for editing.
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.
47591 2004-04-05 Darin Adler <darin@apple.com>
47593 * khtml/html/kentities.gperf: Added © and ®, both supported by Gecko
47594 (and presumably by WinIE). Also re-sorted the list.
47595 * khtml/html/kentities.c: Regenerated.
47597 2004-04-05 Darin Adler <darin@apple.com>
47601 - rolled over fix from KHTML tree; anchor inside another anchor
47603 * khtml/rendering/render_layer.cpp: (RenderLayer::nodeAtPoint):
47604 Make sure the URL element is the innermost one, by not setting it once
47607 2004-04-05 David Hyatt <hyatt@apple.com>
47609 Implement overflow: overlay so that a scrollbar can show/hide without causing a layout.
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:
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:
47639 (khtml::RenderStyle::hasAutoScrollbars):
47640 (khtml::RenderStyle::scrollsOverflow):
47641 (khtml::RenderStyle::includeScrollbarSize):
47643 2004-04-03 David Hyatt <hyatt@apple.com>
47645 Implementation of <input type=range>, which makes sliders available in Web pages.
47649 * WebCore.pbproj/project.pbxproj:
47650 * khtml/ecma/kjs_dom.cpp:
47651 (DOMNode::getValueProperty):
47652 (DOMNode::putValue):
47653 * khtml/ecma/kjs_dom.h:
47655 * khtml/ecma/kjs_dom.lut.h:
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:
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:]):
47693 (QSlider::setFont):
47694 (QSlider::sizeHint):
47695 (QSlider::setValue):
47696 (QSlider::setMinValue):
47697 (QSlider::setMaxValue):
47699 (QSlider::minValue):
47700 (QSlider::maxValue):
47701 (QSlider::sliderValueChanged):
47702 (QSlider::dimensions):
47704 (KWQSlot::KWQSlot):
47707 2004-04-05 Chris Blumenberg <cblu@apple.com>
47709 Fixed: <rdar://problem/3612580>: SPI: WebPlugin selection
47711 Reviewed by kocienda.
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
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
47726 2004-04-03 David Hyatt <hyatt@apple.com>
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
47732 Reviewed by kocienda
47734 * khtml/html/dtd.cpp:
47735 (DOM::addForbidden):
47736 (DOM::removeForbidden):
47738 2004-04-02 Chris Blumenberg <cblu@apple.com>
47740 Moved the DOM extensions to their own headers
47742 Reviewed by kocienda.
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
47750 2004-04-02 David Hyatt <hyatt@apple.com>
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.
47757 * khtml/xml/dom_docimpl.cpp:
47758 (DocumentImpl::updateDocumentsRendering):
47759 * khtml/xml/dom_docimpl.h:
47763 2004-04-01 Darin Adler <darin@apple.com>
47765 Based on a fix by Eric Albert.
47767 - fixed <rdar://problem/3594247>: Safari crashes when a background image has a height or width of 0
47769 * khtml/rendering/render_box.cpp: (RenderBox::paintBackgroundExtended):
47770 Change code path so we don't mod with 0.
47772 2004-04-01 Darin Adler <darin@apple.com>
47776 - fixed <rdar://problem/3608305>: DEMO: menu in search field has one disabled item: localized string not found
47778 * khtml/html/html_formimpl.cpp: (HTMLInputElementImpl::HTMLInputElementImpl):
47779 Initialize m_maxResults to 0.
47781 2004-04-01 Darin Adler <darin@apple.com>
47785 - cleaned up image map code and made it work with XML documents
47787 * khtml/html/html_documentimpl.h: Removed getMap and mapMap.
47788 * khtml/html/html_documentimpl.cpp: Removed getMap; moved to base class.
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.
47800 * khtml/rendering/render_image.cpp: (RenderImage::nodeAtPoint): Call the new
47801 getImageMap instead of the old getMap.
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.
47811 2004-04-01 Darin Adler <darin@apple.com>
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)
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.
47820 2004-04-01 Ken Kocienda <kocienda@apple.com>
47822 Missing file broke build after my last checkin
47824 * ForwardingHeaders/rendering/render_line.h: Added.
47826 2004-03-31 Ken Kocienda <kocienda@apple.com>
47830 Many, many editing improvements, with a concentration on getting
47831 caret navigation and deleting selections working correctly.
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)
47984 2004-03-31 David Hyatt <hyatt@apple.com>
47986 Fix for 3601834, make sure that textareas do a layout when their rows/cols/wrap attributes are dynamically
47991 * khtml/html/html_formimpl.cpp:
47992 (HTMLTextAreaElementImpl::parseHTMLAttribute):
47994 2004-03-30 David Hyatt <hyatt@apple.com>
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.
48001 * khtml/rendering/bidi.cpp:
48002 (khtml::RenderBlock::findNextLineBreak):
48004 2004-03-30 Darin Adler <darin@apple.com>
48008 - fixed <rdar://problem/3570877>: REGRESSION: onfocus handler not working at weather.com
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.
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.
48023 - fixed <rdar://problem/3605919>: text fields in web pages are too tall
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.
48031 - additional cleanup
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.
48037 2004-03-30 David Hyatt <hyatt@apple.com>
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
48045 * khtml/rendering/render_block.cpp:
48046 (khtml::getInlineRun):
48048 2004-03-30 Darin Adler <darin@apple.com>
48052 - fixed garbage characters seen while I was rigging up the Mozilla JavaScript tests
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.
48065 2004-03-30 Darin Adler <darin@apple.com>
48069 - fixed <rdar://problem/3606146>: repro nil-deref in QWidget::move (www.stoltoffshore.com)
48071 * khtml/khtml_part.cpp:
48072 (KHTMLPart::requestObject): Add check for NULL widget.
48073 (KHTMLPart::processObjectRequest): Add check for NULL widget.
48075 2004-03-29 David Hyatt <hyatt@apple.com>
48077 Make sure "auto" is allowed as a valid value when parsing rect shapes (e.g., for the clip property).
48081 * khtml/css/cssparser.cpp:
48082 (CSSParser::parseShape):
48084 2004-03-29 David Hyatt <hyatt@apple.com>
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.
48089 Reviewed by kocienda
48091 * khtml/rendering/bidi.cpp:
48092 (khtml::checkMidpoints):
48094 2004-03-29 David Hyatt <hyatt@apple.com>
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.
48100 Reviewed by kocienda
48102 * khtml/rendering/bidi.cpp:
48103 (khtml::chopMidpointsAt):
48104 (khtml::appendRunsForObject):
48105 (khtml::RenderBlock::findNextLineBreak):
48106 * khtml/rendering/render_text.cpp:
48107 (RenderText::calcMinMaxWidth):
48109 2004-03-29 John Sullivan <sullivan@apple.com>
48111 Made menu shortcuts work again when editing HTML
48115 * khtml/xml/dom_elementimpl.cpp:
48116 (ElementImpl::defaultEventHandler):
48117 Don't treat key events with command key down as
48120 2004-03-28 Darin Adler <darin@apple.com>
48124 - fixed <rdar://problem/3602202>: "feed:uuid:...." links in Emerson content are being changed into "feed:uuuid:...."
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.
48130 2004-03-26 David Hyatt <hyatt@apple.com>
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.
48138 * khtml/ecma/kjs_window.cpp:
48139 (ScheduledAction::execute):
48143 2004-03-25 David Hyatt <hyatt@apple.com>
48145 Implement the rest of the search field. Make it work with form submission. Implement onscroll at
48146 the document level.
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:
48168 2004-03-25 David Hyatt <hyatt@apple.com>
48170 Fix for 3570700, crash in inlineBox::isDirty. Make sure line boxes null out parent pointers when those
48171 parents get deleted. r=john
48173 Fix for .value not being settable on selects. r=darin
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):
48184 2004-03-25 Darin Adler <darin@apple.com>
48186 Fix by Kristin Webster, reviewed by me.
48188 - fixed <rdar://problem/3582431>: HiDPI - Form elements not working when scaling factor != 1.0
48190 * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::passWidgetMouseDownEventToWidget): Pass nil for fromView
48191 rather than passing the top level view.
48193 2004-03-24 Darin Adler <darin@apple.com>
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
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.
48203 2004-03-24 Darin Adler <darin@apple.com>
48207 - fixed <rdar://problem/3599650>: main image missing due to incorrect relative URL resolution at www.brother.com
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.
48213 2004-03-24 Ken Kocienda <kocienda@apple.com>
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
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.
48227 2004-03-24 Ken Kocienda <kocienda@apple.com>
48229 Implemented the remainder of the HTML DOM API.
48236 2004-03-23 David Hyatt <hyatt@apple.com>
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.
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.
48247 * khtml/ecma/kjs_dom.cpp:
48248 (DOMNode::getValueProperty):
48249 (DOMNode::putValue):
48250 * khtml/ecma/kjs_dom.h:
48252 * khtml/ecma/kjs_dom.lut.h:
48254 * khtml/ecma/kjs_window.cpp:
48257 * khtml/ecma/kjs_window.h:
48259 * khtml/ecma/kjs_window.lut.h:
48261 * khtml/html/html_baseimpl.cpp:
48262 (HTMLBodyElementImpl::parseHTMLAttribute):
48263 * khtml/html/html_elementimpl.cpp:
48264 (HTMLElementImpl::parseHTMLAttribute):
48265 * khtml/misc/htmlattrs.c:
48268 * khtml/misc/htmlattrs.h:
48269 * khtml/misc/htmlattrs.in:
48270 * khtml/rendering/render_layer.cpp:
48271 (RenderLayer::scrollToOffset):
48273 2004-03-23 David Hyatt <hyatt@apple.com>
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.
48281 * khtml/khtmlview.cpp:
48282 (KHTMLView::layout):
48283 * kwq/WebCoreBridge.h:
48284 * kwq/WebCoreBridge.mm:
48285 (-[WebCoreBridge computePageRectsWithPrintWidthScaleFactor:printHeight:]):
48287 2004-03-23 David Hyatt <hyatt@apple.com>
48289 Fix for crasher 3598204, previousKeyView was calling nextKeyView instead.
48293 * kwq/KWQTextField.mm:
48294 (-[KWQTextField previousKeyView]):
48295 (-[KWQSecureTextField previousKeyView]):
48296 (-[KWQSearchField previousKeyView]):
48298 2004-03-23 Darin Adler <darin@apple.com>
48302 - fixed deployment build
48304 2004-03-22 David Hyatt <hyatt@apple.com>
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.
48312 * khtml/ecma/kjs_dom.cpp:
48313 (DOMNode::getValueProperty):
48314 (DOMNode::putValue):
48315 * khtml/ecma/kjs_dom.h:
48317 * khtml/ecma/kjs_dom.lut.h:
48319 * khtml/ecma/kjs_window.cpp:
48322 * khtml/ecma/kjs_window.h:
48324 * khtml/ecma/kjs_window.lut.h:
48326 * khtml/html/html_formimpl.cpp:
48327 (HTMLInputElementImpl::parseHTMLAttribute):
48328 * khtml/html/html_formimpl.h:
48329 (DOM::HTMLInputElementImpl::maxResults):
48330 * khtml/misc/htmlattrs.c:
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):
48348 * kwq/KWQLineEdit.mm:
48349 (QLineEdit::QLineEdit):
48350 (QLineEdit::setLiveSearch):
48351 (QLineEdit::setAutoSaveName):
48352 (QLineEdit::setMaxResults):
48353 (QLineEdit::setPlaceholderString):
48355 (KWQSlot::KWQSlot):
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]):
48372 2004-03-22 David Hyatt <hyatt@apple.com>
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.
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:
48398 * kwq/KWQLineEdit.mm:
48399 (QLineEdit::QLineEdit):
48400 (QLineEdit::~QLineEdit):
48401 (QLineEdit::setFont):
48402 (QLineEdit::setText):
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]):
48513 2004-03-19 Darin Adler <darin@apple.com>
48517 - fixed <rdar://problem/3583945>: crash when choosing a file to upload
48519 * kwq/KWQFileButton.mm:
48520 (-[KWQFileButtonAdapter dealloc]): Removed unneeded method.
48521 (-[KWQFileButtonAdapter filenameChanged:]): Check for nil.
48522 (-[KWQFileButtonAdapter focusChanged:]): Ditto.
48523 (-[KWQFileButtonAdapter clicked]): Ditto.
48525 2004-03-17 Darin Adler <darin@apple.com>
48529 - fixed rdar://problem/3312803>: extra space in copied text (3g.co.uk)
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
48537 2004-03-16 Darin Adler <darin@apple.com>
48541 - a little more DOM cleanup
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.
48552 * WebCore.pbproj/project.pbxproj: Sort DOM header files alphabetically.
48554 2004-03-16 Darin Adler <darin@apple.com>
48558 - update for new DOM namespacing and header organization
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.
48577 2004-03-15 Maciej Stachowiak <mjs@apple.com>
48581 - max out our iBench cheat. Don't even paint or lay out a quarter
48584 * khtml/xml/dom_docimpl.cpp:
48585 (DocumentImpl::close):
48587 2004-03-15 Ken Kocienda <kocienda@apple.com>
48593 <rdar://problem/3588717>: REGRESSION (125-131u): Tabbing to links and tabbing in bookmarks view no longer works
48595 Change some support methods which feed editing key events to
48596 WebKit. The real fix is on the WebKit side.
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
48610 2004-03-12 Chris Blumenberg <cblu@apple.com>
48612 Implemented ~25% of the HTML DOM API.
48614 Reviewed by kocienda.
48616 (DOM::HTMLElement::HTMLElement):
48618 * kwq/DOMInternal.h:
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:]):
48724 2004-03-12 David Hyatt <hyatt@apple.com>
48726 Fix for problem when undoing the deletion of a word in edit mode.
48728 Reviewed by kocienda
48730 * khtml/rendering/render_text.cpp:
48731 (RenderText::setTextWithOffset):
48733 2004-03-12 Ken Kocienda <kocienda@apple.com>
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.
48759 2004-03-11 Chris Blumenberg <cblu@apple.com>
48761 Added stubs for the HTML DOM API.
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:]):
49347 2004-03-11 Ken Kocienda <kocienda@apple.com>
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
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:
49367 2004-03-11 Ken Kocienda <kocienda@apple.com>
49371 Various changes to move us forward on editing.
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.
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.
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.
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).
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.
49401 * About 400 lines of changed files and functions elided.
49403 2004-03-11 Chris Blumenberg <cblu@apple.com>
49405 Fixed some spacing issues in reconstructed source and web archives that were caused by a malformed doc type string that we were constructing.
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
49417 2004-03-10 David Hyatt <hyatt@apple.com>
49419 Fix for 3584646, AxWebArea should encompass all children (its AxSize should).
49423 * khtml/rendering/render_canvas.cpp:
49424 (RenderCanvas::absoluteRects):
49425 * khtml/rendering/render_canvas.h:
49427 2004-03-10 Chris Blumenberg <cblu@apple.com>
49429 Fixed: INPUT images are not part of web archives.
49433 * khtml/html/html_formimpl.cpp:
49434 (HTMLInputElementImpl::isSubresourceURLAttribute):
49435 * khtml/html/html_formimpl.h:
49437 2004-03-09 Chris Blumenberg <cblu@apple.com>
49439 Implemented WebCore side of: <rdar://problem/3577508>: API: web archive related API's
49443 * WebCore-combined.exp:
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
49461 2004-03-09 David Hyatt <hyatt@apple.com>
49463 Make the AXLinkUIElements attribute always return an array (never return nil).
49465 * kwq/KWQAccObject.mm:
49466 (-[KWQAccObject accessibilityAttributeValue:]):
49468 2004-03-09 David Hyatt <hyatt@apple.com>
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
49476 * khtml/dom/html_misc.h:
49477 * kwq/KWQAccObject.mm:
49478 (-[KWQAccObject role]):
49479 (-[KWQAccObject roleDescription]):
49480 (-[KWQAccObject accessibilityAttributeNames]):
49481 (-[KWQAccObject accessibilityAttributeValue:]):
49483 2004-03-09 John Sullivan <sullivan@apple.com>
49487 Fixed broken build by removing wayward "break" statement.
49489 2004-03-08 Darin Adler <darin@apple.com>
49491 Reviewed by Maciej.
49493 - fixed <rdar://problem/3554876>: REGRESSION (100-125): cannot upload file if path contains non-ASCII characters
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.
49500 2004-03-08 Ken Kocienda <kocienda@apple.com>
49504 * WebCore.pbproj/project.pbxproj: Added CFBundleName to Info.plist.
49506 2004-03-05 David Hyatt <hyatt@apple.com>
49508 Fix for first-line inheritance problem caused by incorrectly inheriting first-line into floating
49511 Reviewed by kocienda
49513 * khtml/rendering/render_block.cpp:
49514 (khtml::RenderBlock::firstLineBlock):
49516 2004-03-05 Ken Kocienda <kocienda@apple.com>
49518 Forgot to add this when I checked in last time.
49520 * ForwardingHeaders/css/css_computedstyle.h: Added.
49522 2004-03-05 Ken Kocienda <kocienda@apple.com>
49526 Added initial support for retrieving the computed
49527 style of document elements.
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.
49574 2004-03-05 Ken Kocienda <kocienda@apple.com>
49576 Change by Darin. Reviewed by me.
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
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]):
49592 2004-03-03 Darin Adler <darin@apple.com>
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.
49600 2004-03-03 David Hyatt <hyatt@apple.com>
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.
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):
49621 2004-03-02 Ken Kocienda <kocienda@apple.com>
49623 Reviewed by Darin and me. Coding by Darin and me.
49625 1) Fix some places that were calling [self class], in at
49626 least one case calling a method not defined on the class
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
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.
49641 * khtml/dom/dom_string.h
49642 * khtml/xml/dom_atomicstring.h
49645 * kwq/DOMInternal.h
49646 * kwq/KWQKHTMLPart.mm
49647 * kwq/WebCoreBridge.mm
49649 2004-03-02 Richard Williamson <rjw@apple.com>
49651 Added NP_SAP API. This API includes the new entry points
49652 used to bind native interfaces to JavaScript. It's final location
49655 Made changes to KWQKHTMLPart.mm to reflect changes in names
49660 * WebCore.pbproj/project.pbxproj:
49661 * khtml/ecma/NP_SAP.h: Added.
49662 * kwq/KWQKHTMLPart.mm:
49663 (KWQKHTMLPart::cleanupPluginRootObjects):
49664 * kwq/WebCoreBridge.mm:
49666 2004-03-01 Maciej Stachowiak <mjs@apple.com>
49670 <rdar://problem/3549201>: repro crash in KHTMLPart::begin inside JavaScript code (gmpartsdirect.com)
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
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.
49684 2004-03-01 Ken Kocienda <kocienda@apple.com>
49686 Rollout last night's checkin. The tree was closed.
49690 * kwq/DOMInternal.h
49691 * kwq/KWQKHTMLPart.mm
49692 * kwq/WebCoreBridge.mm
49694 2004-03-01 Ken Kocienda <kocienda@apple.com>
49696 Reviewed by me, changes by Darin.
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.
49707 * kwq/DOMInternal.h
49708 * kwq/KWQKHTMLPart.mm
49709 * kwq/WebCoreBridge.mm
49711 2004-03-01 Maciej Stachowiak <mjs@apple.com>
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
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.
49721 2004-03-01 Darin Adler <darin@apple.com>
49725 - fixed Tiger build
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.
49732 2004-03-01 Ken Kocienda <kocienda@apple.com>
49734 Reviewed by me, as suggested by Darin
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.
49740 * khtml/misc/makeattrs: Removed extraneous semicolon from end of file.
49741 * khtml/misc/maketags: Ditto.
49743 2004-03-01 Ken Kocienda <kocienda@apple.com>
49745 * kwq/DOMInternal.h: Replaced tabs with spaces.
49747 2004-03-01 Ken Kocienda <kocienda@apple.com>
49751 Changed all Objective-C DOM classes from protocols to classes, using
49752 a class cluster-like approach.
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:
49761 * khtml/misc/htmlattrs.h:
49762 * khtml/misc/htmltags.c:
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:
49771 * kwq/DOM.mm: Added.
49772 * kwq/WebCoreDOM.h: Removed.
49773 * kwq/WebCoreDOM.mm: Removed.
49775 2004-02-26 Maciej Stachowiak <mjs@apple.com>
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
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.
49787 2004-02-27 Maciej Stachowiak <mjs@apple.com>
49791 - fixed <rdar://problem/3571356>: REGRESSION: Crash in isPointInsideSelection clicking on link in Apple web directory frame
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
49800 2004-02-26 David Hyatt <hyatt@apple.com>
49802 Fix for 3528839, wide table cut off because of shorts being used instead of ints.
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):
49814 2004-02-26 Chris Blumenberg <cblu@apple.com>
49816 Fixed a few problems I found with reconstructed source while on my way to implementing "Mail Page".
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
49832 2004-02-26 David Hyatt <hyatt@apple.com>
49834 Convert render object widths from short to int. There was a bug on this, but I can't find it in Radar.
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:
49907 2004-02-26 Trey Matteson <trey@apple.com>
49909 3566668 - REGRESSION (125-128): autofill of popup lists is broken
49910 3571271 - autofill parsing of field names should treat _ as a word separator
49912 Reviewed by Chris, Darin
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.
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.
49924 2004-02-26 Ken Kocienda <kocienda@apple.com>
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
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.
49965 2004-02-25 John Sullivan <sullivan@apple.com>
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
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
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]):
49988 * kwq/KWQListBox.mm:
49989 (-[KWQTableView canBecomeKeyView]):
49992 2004-02-24 Darin Adler <darin@apple.com>
49996 * kwq/KWQString.mm: (QString::endsWith): Fixed broken end of string test, to get rid
49997 of false positives.
49999 * WebCore-tests.exp: Added endsWith so it can be tested.
50000 * WebCore-combined.exp: Regenerated.
50002 2004-02-23 David Hyatt <hyatt@apple.com>
50004 Fix for 3549772, hangs on border collapsing.
50008 * khtml/rendering/render_object.cpp:
50009 (RenderObject::collectBorders):
50010 * khtml/rendering/render_object.h:
50011 * khtml/rendering/render_table.cpp:
50012 (RenderTable::paint):
50014 (RenderTableCell::paint):
50016 (RenderTableCell::collectBorders):
50017 * khtml/rendering/render_table.h:
50019 2004-02-23 David Hyatt <hyatt@apple.com>
50021 Fix for 3558717, make sure that form elements that are removed from a document also remove themselves
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:
50032 Implement smarter line layout for faster typing and repainting when individual lines change.
50034 Reviewed by kocienda.
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:
50045 (khtml::appendRun):
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):
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:
50169 RenderBlock contains two other fixes. The first is a fix to rightmost/lowestPosition to properly add in
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.
50179 2004-02-20 Maciej Stachowiak <mjs@apple.com>
50183 <rdar://problem/3552346>: REGRESSION 100-125: nil-dereference in KHTMLPart::isPointInsideSelection (progz.ru, many other sites)
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.
50192 2004-02-19 Chris Blumenberg <cblu@apple.com>
50194 Fixed: <rdar://problem/3563402>: when copying HTML, relative URLs should be made absolute
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.
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
50250 2004-02-17 Maciej Stachowiak <mjs@apple.com>
50254 <rdar://problem/3537397>: REGRESSION (100-114): Return doesn't work in Japanese input method for some HomePage fields
50256 * kwq/KWQTextArea.mm:
50257 (-[KWQTextAreaTextView keyDown:]): Don't send events through DOM when there is marked
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
50271 2004-02-16 Chris Blumenberg <cblu@apple.com>
50273 WebCore side of pasting image data.
50275 Reviewed by kocienda.
50277 * khtml/editing/htmlediting.cpp:
50278 (PasteImageCommand::PasteImageCommand): new
50279 (PasteImageCommand::~PasteImageCommand): new
50280 (PasteImageCommand::impl): new
50281 * khtml/editing/htmlediting.h:
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
50299 2004-02-16 Darin Adler <darin@apple.com>
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
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.
50316 2004-02-15 Darin Adler <darin@apple.com>
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.
50323 2004-02-15 Darin Adler <darin@apple.com>
50327 - fixed 3548533: crash in XMLHttpRequest::slotData using Orkut's rating system
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.
50335 2004-02-12 Maciej Stachowiak <mjs@apple.com>
50339 - redo visited link history checking for a 2% speed improvement
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.
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.
50354 2004-02-12 David Hyatt <hyatt@apple.com>
50356 Fix for 3557850 and 3557607. Make sure to setParent(0) on the body's link declaration, so that TreeShared
50359 * khtml/html/html_baseimpl.cpp:
50360 (HTMLBodyElementImpl::~HTMLBodyElementImpl):
50362 2004-02-12 Ken Kocienda <kocienda@apple.com>
50366 Refactored object design for edit commands into something that's
50367 starting to feel more solid. Added some accessors to edit
50370 * WebCore.pbproj/project.pbxproj:
50371 * khtml/editing/htmlediting_impl.h: Added.
50372 * khtml/editing/htmlediting_impl.m: Added.
50374 2004-02-11 David Hyatt <hyatt@apple.com>
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.
50379 * khtml/rendering/render_replaced.cpp:
50380 (RenderWidget::detach):
50382 2004-02-11 David Hyatt <hyatt@apple.com>
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.
50387 Reviewed by kocienda
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.
50396 2004-02-11 David Hyatt <hyatt@apple.com>
50398 Fix for 3556702, margin collapsing gets disabled when images spill out of the containing block.
50400 Reviewed by kocienda
50402 * khtml/rendering/render_block.cpp:
50403 (khtml::RenderBlock::layoutBlockChildren):
50405 2004-02-11 David Hyatt <hyatt@apple.com>
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.
50410 Reviewed by kocienda
50412 * khtml/html/html_miscimpl.cpp:
50413 (HTMLCollectionImpl::calcLength):
50414 (HTMLCollectionImpl::getItem):
50415 (HTMLCollectionImpl::getNamedItem):
50417 2004-02-11 David Hyatt <hyatt@apple.com>
50419 Remove my bogus refs of the elementSheet. Fixes 3554213 and 3555467.
50421 * khtml/html/html_baseimpl.cpp:
50422 (HTMLBodyElementImpl::createLinkDecl):
50423 * khtml/html/html_tableimpl.cpp:
50424 (HTMLTableElementImpl::additionalAttributeStyleDecl):
50425 (HTMLTableElementImpl::getSharedCellDecl):
50427 2004-02-11 David Hyatt <hyatt@apple.com>
50429 Fix for 3556037, regression where display:block generated content didn't work.
50431 Reviewed by kocienda
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:
50469 2004-02-11 Darin Adler <darin@apple.com>
50471 Reviewed by Richard.
50473 * kwq/KWQTextCodec.mm:
50474 (KWQTextDecoder::convertLatin1):
50475 Fix off by one error.
50477 2004-02-11 David Hyatt <hyatt@apple.com>
50479 Convert paint methods over to use a new PaintInfo struct. Eliminate the paintObject method.
50481 Reviewed by kocienda
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:
50545 2004-02-11 Ken Kocienda <kocienda@apple.com>
50547 Removed include file I was considering checking, but
50548 decided against. Of course, this dangling include
50551 * kwq/KWQKHTMLPart.mm
50552 * kwq/WebCoreBridge.mm
50554 2004-02-10 Ken Kocienda <kocienda@apple.com>
50558 Several big changes.
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.
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:
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:]):
50702 2004-02-10 David Hyatt <hyatt@apple.com>
50704 Eliminate the double-completion and double-parsing of KURLs for every single image request.
50706 * khtml/misc/loader.cpp:
50707 (DocLoader::requestImage):
50708 (Cache::requestImage):
50709 * khtml/misc/loader.h:
50711 2004-02-10 David Hyatt <hyatt@apple.com>
50713 Merged patch that fixes clear:both for floats. This patch comes from the KHTML tree.
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.
50720 2004-02-10 David Hyatt <hyatt@apple.com>
50722 Fix crasher in list code caused by incorrect style deallocation. Regression from the
50723 arena changes for RenderStyles.
50727 * khtml/rendering/render_object.cpp:
50728 (RenderObject::remove):
50729 (RenderObject::arenaDelete):
50731 2004-02-10 David Hyatt <hyatt@apple.com>
50733 Fix for osnews.com's wacky layout problem. Put back in the check for isEmpty.
50737 * khtml/html/htmltokenizer.cpp:
50738 (khtml::HTMLTokenizer::scriptHandler):
50740 2004-02-10 David Hyatt <hyatt@apple.com>
50742 Fix for the bad background color on abcnews.com. Make cloning optionally drop the style declarations.
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:
50753 2004-02-10 Chris Blumenberg <cblu@apple.com>
50755 Fixed: <rdar://problem/3552545>: Cut, Paste and Delete must support Undo and Redo
50757 Reviewed by kocienda.
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
50776 2004-02-10 David Hyatt <hyatt@apple.com>
50778 Fix crash on abcnews.com by adding isEmpty checks before dereferencing.
50780 * khtml/html/htmltokenizer.cpp:
50781 (khtml::HTMLTokenizer::parseTag):
50783 2004-02-10 David Hyatt <hyatt@apple.com>
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.
50788 Made RenderStyles be arena allocated as well.
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:
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):
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:
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:
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:
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:
51013 2004-02-09 Darin Adler <darin@apple.com>
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.
51022 2004-02-08 Darin Adler <darin@apple.com>
51026 - fixed an assertion failure when putting up Java applets caused by my last change
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.
51035 2004-02-08 Darin Adler <darin@apple.com>
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
51127 * WebCore-tests.exp: Added new function names for QChar.
51128 * WebCore-combined.exp: Updated.
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.
51139 * kwq/KWQView.h: Removed the KWQView class.
51140 * kwq/KWQView.mm: Removed.
51141 * WebCore.pbproj/project.pbxproj: Removed KWQView.mm.
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.
51152 * kwq/WebCoreTextRenderer.h: Broke applyRounding into applyRunRounding and applyWordRounding.
51153 * kwq/WebCoreTextRendererFactory.m: (WebCoreInitializeEmptyTextStyle): Initialize both rounding
51156 2004-02-07 Darin Adler <darin@apple.com>
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)
51164 Speeds up cvs-base by 5%!
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.
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.
51187 * kwq/KWQLineEdit.mm:
51188 (QLineEdit::sizeForCharacterWidth): Put an empty string in the cell, and add in a separately-computed width
51190 (QLineEdit::baselinePosition): Use ceilf instead of ceil since we are doing floats, not doubles.
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
51205 (QListBox::appendItem): Replaced insertItem. Just adds to the list. No need to construct attributed
51207 (QListBox::doneAppendingItems): Replaced endBatchInsert. No need to clear the obsolete _insertingItems
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.
51223 * kwq/WebCoreTextRenderer.h: Fixed typo in comment.
51224 * kwq/WebCoreTextRendererFactory.m: Removed bogus inline specifiers.
51226 * khtml/rendering/render_layer.cpp: Fixed a couple of cases of RenderLayer::RenderLayer that just
51227 should have said RenderLayer.
51229 2004-02-07 Darin Adler <darin@apple.com>
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.
51235 2004-02-07 Darin Adler <darin@apple.com>
51237 * kwq/can-convert.mm: Added test program to see which conversions are actually supported by TEC.
51239 2004-02-06 David Hyatt <hyatt@apple.com>
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.
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:
51297 * khtml/xbl/xbl_tokenizer.h:
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):
51316 2004-02-06 Ken Kocienda <kocienda@apple.com>
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
51329 I also made some nice convenience functions to create and apply
51330 EditStep objects, and moved the command code to use the new
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):
51399 2004-02-05 Ken Kocienda <kocienda@apple.com>
51403 This patch includes two major pieces of work.
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).
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.
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
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.
51458 2004-02-04 David Hyatt <hyatt@apple.com>
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.
51463 Reviewed by kocienda
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:
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:
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:
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:
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):
51633 2004-02-04 David Hyatt <hyatt@apple.com>
51635 Fix line-height regression on altavista.
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):
51646 2004-02-04 David Hyatt <hyatt@apple.com>
51648 Fix a regression in the line-height of first-lines and inline-blocks.
51652 * khtml/rendering/render_flow.cpp:
51653 (RenderFlow::lineHeight):
51654 * khtml/rendering/render_text.cpp:
51655 (RenderText::lineHeight):
51657 2004-02-02 Chris Blumenberg <cblu@apple.com>
51659 Fixed: <rdar://problem/3546924>: REGRESSION: dragging text or images over a WebView is jerky
51664 * WebCore-combined.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
51672 2004-02-02 Darin Adler <darin@apple.com>
51674 Reviewed by Maciej.
51676 - use toInt32 where we really need an int, rather than toInteger,
51677 because toInteger needs to return an integral number as a double,
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.
51708 2004-02-02 Darin Adler <darin@apple.com>
51712 - fix at least some of <rdar://problem/3546393>: 10,000 leaks, many of DOM::AtomicString::add, after one run of cvs-base
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.
51717 2004-02-02 Chris Blumenberg <cblu@apple.com>
51719 Fixed: <rdar://problem/3546379>: support for editing via drag & drop
51721 Reviewed by kocienda.
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
51731 2004-01-30 David Hyatt <hyatt@apple.com>
51733 Fix for 3522497, <br>s should not get AXObjects created.
51737 * kwq/KWQAccObject.mm:
51738 (-[KWQAccObject accessibilityIsIgnored]):
51742 2004-01-30 David Hyatt <hyatt@apple.com>
51744 Fix a regression I introduced in my atomicstring patch. I meant to say !attr->isNull() in the contentedtiable
51745 attribute parsing code.
51749 * khtml/html/html_elementimpl.cpp:
51750 (HTMLElementImpl::parseAttribute):
51752 2004-01-30 David Hyatt <hyatt@apple.com>
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).
51757 Yields ~1.5% performance improvement.
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:
51779 2004-01-30 David Hyatt <hyatt@apple.com>
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.
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:
51794 2004-01-29 David Hyatt <hyatt@apple.com>
51796 Atomize font families (KWQFontFamily) and all attribute values. Move atomic string into separate files.
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).
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):
51824 * khtml/dom/dom_string.h:
51827 * khtml/ecma/kjs_navigator.cpp:
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:
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):
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):
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:
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:]):
51990 2004-01-29 Chris Blumenberg <cblu@apple.com>
51992 Fixed: <rdar://problem/3543619>: copied HTML is strangely formatted, random whitespace and return characters
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
51999 2004-01-28 John Sullivan <sullivan@apple.com>
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
52010 2004-01-28 Chris Blumenberg <cblu@apple.com>
52012 Fixed: <rdar://problem/3543041>: when pasting an image, cursor should be after the image, not before
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
52019 2004-01-28 Ken Kocienda <kocienda@apple.com>
52023 A small collection of fixes and improvements to editing.
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.
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):
52073 2004-01-28 David Hyatt <hyatt@apple.com>
52075 Fix for 3537694, make blocks for parents of inline children be axobjects.
52077 Reviewed by kocienda
52079 * kwq/KWQAccObject.mm:
52080 (-[KWQAccObject role]):
52081 (-[KWQAccObject accessibilityIsIgnored]):
52083 2004-01-28 David Hyatt <hyatt@apple.com>
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*.
52089 Also fixed a bug with float clearing in the style cascade.
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):
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):
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):
52146 2004-01-27 Chris Blumenberg <cblu@apple.com>
52149 <rdar://problem/3541812>: Implement Paste menu item
52150 <rdar://problem/3541814>: Implement Delete menu item
52151 <rdar://problem/3541811>: Implement Cut menu item
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
52166 2004-01-27 David Hyatt <hyatt@apple.com>
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.
52171 Atomize the CSS selector's "value" field, used to hold class names, identifier names, attribute values, and
52172 pseudo-element names.
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):
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):
52226 (DOM::Name::m_localName):
52227 (DOM::Name::namespaceURI):
52228 (DOM::Name::localName):
52231 * khtml/xml/dom_nodeimpl.h:
52233 2004-01-27 Darin Adler <darin@apple.com>
52237 - fixed <rdar://problem/3526056>: W3C says that DEL key identifier should be U+00007F, we give ForwardDelete instead
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).
52244 2004-01-27 David Hyatt <hyatt@apple.com>
52246 Make a change suggested by kocienda to add a remove() method to InlineBoxes.
52248 Reviewed by kocienda
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):
52260 2004-01-26 Darin Adler <darin@apple.com>
52262 Reviewed by Maciej.
52264 - follow-on to the text-align change I did earlier today
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.
52269 2004-01-26 Darin Adler <darin@apple.com>
52271 Reviewed by Maciej.
52273 - fixed <rdar://problem/3539414>: pop-up windows appear very narrow because of bogus width (carad.com/ebaymotors)
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.
52278 2004-01-26 Darin Adler <darin@apple.com>
52280 Reviewed by Maciej.
52282 - fixed <rdar://problem/3537371>: REGRESSION (100-125): optgroup labels are no longer indented as they were before
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().
52288 2004-01-26 Darin Adler <darin@apple.com>
52292 - fixed <rdar://problem/3539286>: text with a transparent background color pastes as black on black
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.
52298 2004-01-26 Darin Adler <darin@apple.com>
52300 Reviewed by Maciej.
52302 - fixed <rdar://problem/3529120>: text-align style property not respected on input fields
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.
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.
52318 2004-01-26 Darin Adler <darin@apple.com>
52322 - fixed <rdar://problem/3477707>: background image with apostrophe in name missing at http://www.nbc.com
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).
52327 * khtml/html/html_tableimpl.cpp:
52328 (HTMLTableElementImpl::parseAttribute): Ditto.
52329 (HTMLTablePartElementImpl::parseAttribute): Ditto.
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.
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
52343 2004-01-26 Darin Adler <darin@apple.com>
52345 * Makefile.am: Switch from pbxbuild to xcodebuild.
52347 2004-01-26 David Hyatt <hyatt@apple.com>
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."
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):
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):
52409 2004-01-26 Darin Adler <darin@apple.com>
52413 - fixed <rdar://problem/3532519>: <select> menus show label property instead of tag contents (ups.com time and cost site)
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").
52419 2004-01-26 Ken Kocienda <kocienda@apple.com>
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.
52430 2004-01-26 David Hyatt <hyatt@apple.com>
52432 Remove incremental repainting ifdef.
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):
52476 2004-01-26 David Hyatt <hyatt@apple.com>
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.
52481 Reviewed by kocienda
52483 * khtml/khtml_part.cpp:
52485 (KHTMLPart::customEvent):
52486 * khtml/khtml_selection.cpp:
52487 (KHTMLSelection::nextCharacterPosition):
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]):
52549 * kwq/KWQKHTMLPart.mm:
52550 (KWQKHTMLPart::attributedString):
52551 * kwq/KWQRenderTreeDebug.cpp:
52554 2004-01-24 David Hyatt <hyatt@apple.com>
52556 Polish the error message from the xml tokenizer.
52558 * khtml/xml/xml_tokenizer.cpp:
52559 (XMLTokenizer::finish):
52561 2004-01-23 Ken Kocienda <kocienda@apple.com>
52563 Reviewed by Richard
52565 * kwq/KWQKHTMLPart.mm:
52566 (KWQKHTMLPart::setShowsFirstResponder): Now adjusts caret visibility
52569 2004-01-23 David Hyatt <hyatt@apple.com>
52571 Stub out @namespace support. Implement the callbacks into the stylesheet that will enable us to
52572 store namespace information for simple selectors.
52574 Basically with this patch we no longer bomb when we encounter namespaced stylesheets, but we don't handle
52575 them properly yet either.
52577 Reviewed by kocienda
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:
52592 2004-01-23 Ken Kocienda <kocienda@apple.com>
52596 Merged HTML editing progress to TOT from the branch
52597 I have been maintaining.
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.
52606 2004-01-22 David Hyatt <hyatt@apple.com>
52608 Fix a bug I accidentally introduced in static positioned elements. Add more margin collapsing tests.
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:
52623 2004-01-22 David Hyatt <hyatt@apple.com>
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:
52633 2004-01-22 David Hyatt <hyatt@apple.com>
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.
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:
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:
52676 (StyleCSS3NonInheritedData::~StyleCSS3NonInheritedData):
52677 (StyleCSS3NonInheritedData::bindingsEquivalent):
52678 (StyleCSS3NonInheritedData::operator==):
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.
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.
52733 * khtml/xbl/xbl_protobinding.cpp: Added.
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.
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.
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):
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):
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.
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:
52828 (fatalErrorHandler):
52829 (normalErrorHandler):
52830 (QXmlSimpleReader::parse):
52832 2004-01-22 Chris Blumenberg <cblu@apple.com>
52834 Fixed: <rdar://problem/3537542>: support for copying HTML
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
52848 2004-01-21 David Hyatt <hyatt@apple.com>
52850 Fix for two margin collapsing edge cases.
52854 * khtml/rendering/render_block.cpp:
52855 (khtml::RenderBlock::layoutBlockChildren):
52857 2004-01-21 David Hyatt <hyatt@apple.com>
52859 Switch from expat to libxml and implement namespace support in the simplereader.
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):
52914 (fatalErrorHandler):
52915 (QXmlSimpleReader::pushNamespaces):
52916 (QXmlSimpleReader::popNamespaces):
52917 (QXmlSimpleReader::parse):
52918 (QXmlSimpleReader::stopParsing):
52919 (QXmlSimpleReader::lineNumber):
52920 (QXmlSimpleReader::columnNumber):
52922 2004-01-21 David Hyatt <hyatt@apple.com>
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:
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:
52981 (StyleCSS3NonInheritedData::~StyleCSS3NonInheritedData):
52982 (StyleCSS3NonInheritedData::bindingsEquivalent):
52983 (StyleCSS3NonInheritedData::operator==):
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.
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.
53038 * khtml/xbl/xbl_protobinding.cpp: Added.
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.
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.
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):
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):
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.
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):
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:
53155 2004-01-21 David Hyatt <hyatt@apple.com>
53157 Add some methods to dicts and stacks that exist in Qt.
53163 * kwq/KWQPtrDict.h:
53164 (QPtrDict::replace):
53166 * kwq/KWQPtrStack.h:
53167 (QPtrStack::current):
53168 (QPtrStack::setAutoDelete):
53170 2004-01-19 Maciej Stachowiak <mjs@apple.com>
53172 Reviewed by John, Ken, Dave.
53174 <rdar://problem/3533319>: Safari allows upload of arbitrary local files w/o user's knowledge or permission
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.
53181 2004-01-18 David Hyatt <hyatt@apple.com>
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.
53188 * kwq/KWQScrollView.mm:
53189 (QScrollView::childX):
53190 (QScrollView::childY):
53194 2004-01-16 David Hyatt <hyatt@apple.com>
53196 Fix for 3531983, fixed positioning not working for widgets. Make sure to move widgets at paint time
53201 * khtml/rendering/render_replaced.cpp:
53202 (RenderWidget::paintObject):
53204 2004-01-15 David Hyatt <hyatt@apple.com>
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.
53211 * khtml/rendering/render_applet.cpp:
53212 (RenderApplet::createWidgetIfNecessary):
53214 2004-01-15 Richard Williamson <rjw@apple.com>
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.
53222 * kwq/KWQKHTMLPart.mm:
53223 (KWQKHTMLPart::canCachePage):
53225 2004-01-15 Vicki Murley <vicki@apple.com>
53229 * WebCore.pbproj/project.pbxproj: Update copyright date to 2004.
53231 2004-01-15 Darin Adler <darin@apple.com>
53235 - fixed 3529943: REGRESSION (119-120): nil-deref in KHTMLPart::javaEnabled when hitting back button
53237 * khtml/html/html_objectimpl.cpp: (HTMLAppletElementImpl::getAppletInstance):
53238 Add missing nil check that the other call to javaEnabled has.
53242 2004-01-14 David Hyatt <hyatt@apple.com>
53244 Fix for 3527819, marquee makes page layout too wide. Make sure marquees have a minimum width of 0.
53248 * khtml/rendering/render_block.cpp:
53249 (khtml::RenderBlock::calcMinMaxWidth):
53250 (khtml::RenderBlock::calcInlineMinMaxWidth):
53252 2004-01-13 David Hyatt <hyatt@apple.com>
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
53260 * khtml/rendering/render_block.cpp:
53261 (khtml::RenderBlock::layoutBlock):
53262 (khtml::RenderBlock::getAbsoluteRepaintRectIncludingFloats):
53263 * khtml/rendering/render_box.cpp:
53264 (RenderBox::calcAbsoluteVertical):
53266 2004-01-13 Maciej Stachowiak <mjs@apple.com>
53270 <rdar://problem/3527853>: REGRESSION (119-120): Peoplesoft menus do not work
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.
53277 2004-01-13 David Hyatt <hyatt@apple.com>
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.
53284 * khtml/rendering/render_applet.cpp:
53285 (RenderApplet::createWidgetIfNecessary):
53286 (RenderApplet::layout):
53287 (RenderEmptyApplet::layout):
53291 2004-01-11 Darin Adler <darin@apple.com>
53293 - fixed Dave's check-in so it compiles; I assume he forgot to land one source file
53295 * khtml/khtmlview.h: Add RenderPart to the friends of KHTMLView.
53297 2004-01-11 David Hyatt <hyatt@apple.com>
53299 Fix for frame repainting bugs (3510669, 3515442). This is a narrower fix than the previous attempt.
53303 * khtml/rendering/render_frames.cpp:
53304 (RenderPart::updateWidgetPositions):
53305 * khtml/rendering/render_frames.h:
53306 * khtml/rendering/render_replaced.cpp:
53307 (RenderWidget::updateWidgetPositions):
53309 2004-01-10 Darin Adler <darin@apple.com>
53313 - fixed 3525468: REGRESSION (114-115): HOMEPAGE: after hitting textarea limit, backspace key is ignored
53316 (keyIdentifierForKeyEvent): Treat 7F as 08; matches other browsers.
53317 (QKeyEvent::QKeyEvent): Ditto.
53319 2004-01-09 David Hyatt <hyatt@apple.com>
53321 Fixes for 3510669 and 3515442, blank frame problems caused by WebKit's use of a separate needsLayout boolean.
53325 * kwq/WebCoreBridge.h:
53326 * kwq/WebCoreBridge.mm:
53327 (-[WebCoreBridge setNeedsLayout]):
53329 2004-01-08 David Hyatt <hyatt@apple.com>
53331 Fix for 3524118, floats don't repaint when moved.
53335 * khtml/rendering/render_block.cpp:
53336 (khtml::RenderBlock::positionNewFloats):
53338 2004-01-08 David Hyatt <hyatt@apple.com>
53340 Fix for 3519003, crash in mail because <dir> and <menu> don't allow the same children as <ul> and <ol>.
53344 * khtml/html/dtd.cpp:
53347 2004-01-08 John Sullivan <sullivan@apple.com>
53349 - fixed <rdar://problem/3524359>: REGRESSSION (119-120):
53350 Double click to select text in form broken
53352 Reviewed by Dave and Darin.
53354 * khtml/khtmlview.cpp:
53355 (KHTMLView::dispatchMouseEvent):
53356 Don't blur the focused node if that's the one you clicked on.
53358 2004-01-07 Richard Williamson <rjw@apple.com>
53360 Fixed 3517550. Named array lookup of applet failed, i.e.:
53361 var appletobj = document.applets['myapplet']
53365 * khtml/ecma/kjs_html.cpp:
53366 (KJS::HTMLCollection::getNamedItems):
53370 2004-01-06 David Hyatt <hyatt@apple.com>
53372 Possible fix for table bugs 3510005 and 3492945, repainting glitches that occurred when table cells moved.
53374 Fix for 33522497, empty AXElements appear in AXBrowser.
53378 * khtml/rendering/render_table.cpp:
53379 (RenderTableSection::layoutRows):
53380 (RenderTableCell::setWidth):
53381 * khtml/rendering/render_table.h:
53383 * kwq/KWQAccObject.mm:
53384 (-[KWQAccObject accessibilityIsIgnored]):
53386 2004-01-06 John Sullivan <sullivan@apple.com>
53388 - fixed <rdar://problem/3484465>: REGRESSION (118): button click does
53389 not take focus away from <textarea>; breaks Outlook Web Access
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.
53398 2004-01-06 David Hyatt <hyatt@apple.com>
53400 Fix for 3520636, infinite loop in page breaking code when printing.
53404 * khtml/rendering/render_text.cpp:
53405 (RenderText::paintObject):
53406 * kwq/WebCoreBridge.mm:
53407 (-[WebCoreBridge computePageRectsWithPrintWidth:printHeight:]):
53409 2004-01-05 David Hyatt <hyatt@apple.com>
53411 Fix for 3521466, generated image content should not try to calcWidth/height when it isn't yet rooted in
53412 the rendering tree.
53416 * khtml/rendering/render_image.cpp:
53417 (RenderImage::setPixmap):
53419 2003-12-26 Darin Adler <darin@apple.com>
53421 - one more small step to make -[KWQPageState dealloc] safer
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.
53426 2003-12-23 John Sullivan <sullivan@apple.com>
53428 - fixed <rdar://problem/3451306>: address book search fails at Airborne
53429 Express Corporate site (Apple Shipping wants to use it)
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
53438 2003-12-23 Darin Adler <darin@apple.com>
53442 - another try at fixing the -[KWQPageState dealloc] bug, even though we don't fully understand it
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.
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.
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.
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.
53470 2003-12-22 John Sullivan <sullivan@apple.com>
53472 - fixed <rdar://problem/3508798>: ACCESSIBILITY: role/description/value strings not defined
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
53485 2003-12-22 John Sullivan <sullivan@apple.com>
53487 - WebCore part of fix for <rdar://problem/3515706>:
53488 REGRESSION (100-118): Web Kit printing does not honor Page Setup scale factor
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
53499 2003-12-22 Darin Adler <darin@apple.com>
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
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.
53512 2003-12-21 Darin Adler <darin@apple.com>
53516 - fixed 3467919: REGRESSION (91-92): space missing when copying text with link at start or end of line
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.
53526 2003-12-21 Darin Adler <darin@apple.com>
53530 - fixed 3477453: nowrap in a fixed-width TD is ignored on screen but not when printed (Williams-Sonoma)
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.
53537 * WebCore.pbproj/project.pbxproj: Let Xcode be 1.1, as it was meant to be.
53539 2003-12-21 Darin Adler <darin@apple.com>
53543 - fixed a storage leak
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.
53551 - fixed locking for JavaScript debugging tools in Caches window
53553 * kwq/WebCoreJavaScript.mm:
53554 (+[WebCoreJavaScript rootObjectClasses]): Lock and unlock around call to JavaScriptCore.
53555 (+[WebCoreJavaScript garbageCollect]): Ditto.
53557 2003-12-19 David Hyatt <hyatt@apple.com>
53559 Fix for 3483130, repaint doesn't occur when font is decreased dynamically when at the bottom of
53564 * khtml/khtml_part.cpp:
53565 (KHTMLPart::setZoomFactor):
53566 * kwq/WebCoreBridge.mm:
53567 (-[WebCoreBridge setTextSizeMultiplier:]):
53569 2003-12-19 Richard Williamson <rjw@apple.com>
53571 Fixed 3515590. Return Undefined to JS for applet if
53576 * khtml/html/html_objectimpl.cpp:
53577 (HTMLAppletElementImpl::getAppletInstance):
53579 2003-12-19 Maciej Stachowiak <mjs@apple.com>
53583 <rdar://problem/3512545>: reproducible assertion failure in KWQKHTMLPart::addData scrolling to anchor while page loads
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
53592 2003-12-18 Richard Williamson <rjw@apple.com>
53594 Fixed 3511415. We have to un-visually order visually ordered text
53595 before passing to ATSU.
53599 * khtml/rendering/font.cpp:
53600 (Font::drawHighlightForText):
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):
53614 2003-12-17 Richard Williamson <rjw@apple.com>
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]):
53627 2003-12-17 Darin Adler <darin@apple.com>
53631 - fixed 3469085: can't tab to all links on aintitcool.com
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.
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.
53650 2003-12-16 David Hyatt <hyatt@apple.com>
53652 Fix for 3510956, crash on mezzoblue.com. Relax the float-list searching code that runs when
53653 a float is removed.
53657 * khtml/rendering/render_object.cpp:
53659 (RenderObject::removeFromObjectLists):
53661 2003-12-16 John Sullivan <sullivan@apple.com>
53663 fixed <rdar://problem/3482852>: oft-seen, non-repro, nil-deref in
53664 HTMLTokenizer::notifyFinished (snapfish.com, etc.)
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.
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.
53676 2003-12-15 David Hyatt <hyatt@apple.com>
53678 Fix for 3508807, positions/sizes wrong for text elts and multi-line elts for accessibility.
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:
53693 (-[KWQAccObject position]):
53694 (-[KWQAccObject size]):
53696 2003-12-15 Richard Williamson <rjw@apple.com>
53698 Return 0 if the view doesn't have a bridge.
53702 * kwq/WebCoreBridge.mm:
53705 2003-12-15 David Hyatt <hyatt@apple.com>
53707 Fix for 3508792. Remove tables and cells as AxObjects.
53711 * kwq/KWQAccObject.mm:
53712 (-[KWQAccObject role]):
53713 (-[KWQAccObject accessibilityIsIgnored]):
53715 2003-12-15 John Sullivan <sullivan@apple.com>
53717 - fixed <rdar://problem/3510459>: REGRESSION (100-113): Pressing button at google.com
53718 removes focus from text field
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).
53729 2003-12-14 Darin Adler <darin@apple.com>
53731 Reviewed by Maciej.
53733 - fixed 3458937: nil-deref in timed layout
53735 * khtml/khtmlview.cpp: (KHTMLView::layout): Add a nil check for m_part.
53737 2003-12-14 Darin Adler <darin@apple.com>
53739 Reviewed by Maciej.
53741 - fixed 3311205: click() on a file input type form element does not work bring up the file chooser as it does in IE
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.
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.
53754 * kwq/KWQFileButton.h: Added a click function.
53755 * kwq/KWQFileButton.mm: (KWQFileButton::click): Added. Calls performClick on the file button.
53757 * kwq/WebCoreBridge.h: Add a performClick method to WebCoreFileButton.
53759 2003-12-13 Maciej Stachowiak <mjs@apple.com>
53763 <rdar://problem/3269212>: FILEMAKER: can't use Option objects created in a different window
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.
53777 2003-12-14 Darin Adler <darin@apple.com>
53779 Reviewed by Maciej.
53781 - fixed 3332280: REGRESSION (74-85): setting src of iframe results in two GETs
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.
53797 2003-12-13 Maciej Stachowiak <mjs@apple.com>
53801 <rdar://problem/3507885>: REGRESSION (100-116): frames missing due to cross-domain check (derstandard.at)
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.
53809 2003-12-13 Darin Adler <darin@apple.com>
53811 Reviewed by Maciej.
53813 - fixed 3506204: homepage.mac slide show window is wrong size on 2nd monitor
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.
53822 2003-12-12 Chris Blumenberg <cblu@apple.com>
53824 Fixed: <rdar://problem/3505208>: keys added to keychain from KEYGEN need better UI names
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
53837 2003-12-12 David Hyatt <hyatt@apple.com>
53839 Fix for 3254534, CSS background-image style should be loaded lazily only when used.
53844 * khtml/css/css_valueimpl.cpp:
53845 (CSSImageValueImpl::CSSImageValueImpl):
53846 (CSSImageValueImpl::~CSSImageValueImpl):
53847 (CSSImageValueImpl::image):
53848 * khtml/css/css_valueimpl.h:
53850 2003-12-11 David Hyatt <hyatt@apple.com>
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.
53855 Reviewed by john and darin
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):
53876 2003-12-12 John Sullivan <sullivan@apple.com>
53878 - fixed <rdar://problem/3508825>: REGRESSION (100-116): crash in
53879 HTMLGenericFormElementImpl::attach at sonyericsson.com
53881 Reviewed by Maciej.
53883 * khtml/html/html_formimpl.cpp:
53884 (HTMLGenericFormElementImpl::attach):
53885 Move a few lines inside an existing nil check to prevent nil dereference.
53887 2003-12-12 John Sullivan <sullivan@apple.com>
53889 - fixed <rdar://problem/3508760>: tabbing to out-of-sight link behaves
53890 differently than tabbing to out-of-sight form control
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.
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
53908 2003-12-11 Maciej Stachowiak <mjs@apple.com>
53912 <rdar://problem/3507856>: XMLHttpRequest xhtml test displays but doesn't load
53914 * khtml/ecma/xmlhttprequest.cpp:
53915 (KJS::XMLHttpRequestProtoFunc::tryCall): complete the URL using the document,
53916 not the htmlDocument.
53918 2003-12-12 Richard Williamson <rjw@apple.com>
53920 Replace call to global functions with static member functions.
53924 * kwq/KWQKHTMLPart.mm:
53925 (KWQKHTMLPart::cleanupPluginRootObjects):
53926 * kwq/WebCoreBridge.mm:
53928 (-[WebCoreBridge init]):
53930 2003-12-11 Maciej Stachowiak <mjs@apple.com>
53934 <rdar://problem/3464315>: createDocument creates document with initial child element, unlike other browsers
53936 * khtml/xml/dom_docimpl.cpp:
53937 (DOMImplementationImpl::createDocument): Don;t add initial element.
53939 2003-12-11 Maciej Stachowiak <mjs@apple.com>
53943 <rdar://problem/3507863>: XMLHttpRequest should not parse response if HTML
53945 * khtml/ecma/xmlhttprequest.cpp:
53946 (KJS::XMLHttpRequest::getValueProperty):
53948 2003-12-11 Richard Williamson <rjw@apple.com>
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).
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:
53965 (-[WebCoreBridge init]):
53967 2003-12-11 Maciej Stachowiak <mjs@apple.com>
53971 <rdar://problem/3507862>: XMLHttpRequest documents that reference external resources (e.g. stylesheets) cause crash
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):
53983 2003-12-11 Maciej Stachowiak <mjs@apple.com>
53987 <rdar://problem/3507859>: Status text should only include "OK", not full "HTTP/1.0 200 OK" status line
53989 * khtml/ecma/xmlhttprequest.cpp:
53990 (KJS::XMLHttpRequest::getStatusText): Include only the status
53991 text, not the full status line.
53995 2003-12-11 David Hyatt <hyatt@apple.com>
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.
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.
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.
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.
54010 Reviewed by mjs (opacity changes), darin (color changes) and john (render tree dumper changes)
54013 * khtml/rendering/render_layer.cpp:
54014 (RenderLayer::RenderLayer):
54015 (RenderLayer::beginTransparencyLayers):
54016 (RenderLayer::paint):
54017 (RenderLayer::paintLayer):
54018 * khtml/rendering/render_layer.h:
54024 * kwq/KWQRenderTreeDebug.cpp:
54027 2003-12-11 Ken Kocienda <kocienda@apple.com>
54029 * kwq/KWQLoader.mm:
54030 (KWQCacheObjectExpiresTime): Fixed deployment build bustage.
54032 2003-12-09 Ken Kocienda <kocienda@apple.com>
54036 <rdar://problem/3505444>: WebCore cache does not use expiration dates on cache items
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
54046 (Cache::requestStyleSheet): Ditto.
54047 (Cache::requestScript): Ditto.
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.
54054 2003-12-10 Maciej Stachowiak <mjs@apple.com>
54058 <rdar://problem/3504156>: XMLHttpRequest reuse test fails
54059 <rdar://problem/3505158>: XMLHttpRequest "abort with open" test fails
54061 * khtml/ecma/xmlhttprequest.cpp:
54062 (KJS::XMLHttpRequest::open):
54063 (KJS::XMLHttpRequest::abort):
54064 (KJS::XMLHttpRequestProtoFunc::tryCall):
54066 2003-12-10 Maciej Stachowiak <mjs@apple.com>
54070 <rdar://problem/3507175>: Setting timeout function can allocate JS objects without lock
54072 * khtml/ecma/kjs_window.cpp:
54073 (ScheduledAction::execute): Lock interpreter around code that
54074 might allocate JS objects.
54076 2003-12-10 David Hyatt <hyatt@apple.com>
54078 Fix for 3507097, overflow:auto should include the height of the horizontal scrollbar when the height
54079 of the block is auto.
54083 * khtml/rendering/bidi.cpp:
54084 (khtml::RenderBlock::layoutInlineChildren):
54085 * khtml/rendering/render_block.cpp:
54086 (khtml::RenderBlock::layoutBlock):
54087 (khtml::RenderBlock::layoutBlockChildren):
54089 2003-12-10 Darin Adler <darin@apple.com>
54091 Reviewed by Maciej.
54093 - fixed 3506739: nil-deref in DocumentImpl::setSelection triple clicking (generated content)
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.
54098 2003-12-10 Maciej Stachowiak <mjs@apple.com>
54100 Reviewed by Richard.
54102 <rdar://problem/3487160>: Implement synchronous loading for XMLHttpRequest
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:
54113 * kwq/KWQLoader.mm:
54114 (KWQHeaderStringFromDictionary):
54115 (KWQServeSynchronousRequest):
54116 (KWQResponseHeaderString):
54117 * kwq/WebCoreBridge.h:
54119 2003-12-10 Darin Adler <darin@apple.com>
54121 Reviewed by Maciej.
54123 - fixed 3506706: REGRESSION (100-115): onkeyup handlers called twice for active input fields
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.
54130 2003-12-10 Richard Williamson <rjw@apple.com>
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
54138 * kwq/WebCoreBridge.h:
54139 * kwq/WebCoreBridge.mm:
54141 (-[WebCoreBridge init]):
54142 * kwq/WebCoreViewFactory.h:
54143 * kwq/WebCoreViewFactory.m:
54145 2003-12-10 John Sullivan <sullivan@apple.com>
54147 - WebCore part of fix for:
54148 <rdar://problem/3505231>: REGRESSION (100-114): Some sites autoscroll to bottom of page when loading
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
54160 * kwq/KWQScrollView.h:
54161 * kwq/KWQScrollView.mm:
54162 (QScrollView::setContentsPosRecursive):
54163 new method, calls _KWQ_scrollPointRecursive:
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.
54171 2003-12-10 Chris Blumenberg <cblu@apple.com>
54173 * kwq/KWQKSSLKeyGen.mm:
54174 (KSSLKeyGen::signedPublicKeyAndChallengeString): removed unnecessary includes
54176 2003-12-10 David Hyatt <hyatt@apple.com>
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.
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:
54190 2003-12-09 Maciej Stachowiak <mjs@apple.com>
54194 <rdar://problem/3505795>: loading invalid XML document crashes trying to create h1 element
54195 <rdar://problem/3504158>: XMLHttpRequest xhtml test totally fails
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.
54201 2003-12-09 Maciej Stachowiak <mjs@apple.com>
54205 <rdar://problem/3504155>: Safari fails XMLHttpRequest abort test
54207 * khtml/ecma/xmlhttprequest.cpp:
54208 (KJS::XMLHttpRequestProtoFunc::tryCall): Avoid throwing an
54209 exception after send().
54211 2003-12-09 David Hyatt <hyatt@apple.com>
54213 Rename -apple-aqua to auto for outline styles.
54217 * khtml/css/cssparser.cpp:
54218 (CSSParser::parseValue):
54219 * khtml/css/cssstyleselector.cpp:
54220 (khtml::CSSStyleSelector::applyRule):
54221 * khtml/css/cssvalues.c:
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:
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):
54242 2003-12-09 Maciej Stachowiak <mjs@apple.com>
54246 <rdar://problem/3487195>: Implement responseXML property for XMLHttpRequest
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:
54254 * khtml/ecma/kjs_window.cpp:
54255 (Windw::get): Forgot this in last commit; add XMLSerializer
54257 * khtml/ecma/kjs_window.lut.h:
54258 * khtml/ecma/Makefile.am: Forgot to include this in the last commit.
54260 2003-12-09 Maciej Stachowiak <mjs@apple.com>
54262 Reviewed by Richard.
54264 <rdar://problem/3504049>: XMLSerializer object and serializeToString method needed for XMLHttpRequest testing
54266 Also fixed some lasst-minute mistakes in the DOM serialization
54267 code that was already there.
54269 * WebCore.pbproj/project.pbxproj:
54270 * khtml/dom/dom_doc.h:
54271 * khtml/ecma/Makefile.am:
54272 * khtml/ecma/kjs_window.cpp:
54274 * khtml/ecma/kjs_window.h:
54276 * khtml/ecma/kjs_window.lut.h:
54278 * khtml/ecma/xmlserializer.cpp: Added.
54279 (KJS::XMLSerializerConstructorImp::XMLSerializerConstructorImp):
54280 (KJS::XMLSerializerConstructorImp::implementsConstruct):
54281 (KJS::XMLSerializerConstructorImp::construct):
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.
54291 * khtml/xml/dom_docimpl.cpp:
54292 (DocumentImpl::toString):
54293 (DocumentFragmentImpl::toString):
54294 * khtml/xml/dom_elementimpl.cpp:
54295 (AttrImpl::toString):
54296 (ElementImpl::toString):
54298 2003-12-09 David Hyatt <hyatt@apple.com>
54300 Implement start() and stop() for marquees.
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:
54312 2003-12-09 Darin Adler <darin@apple.com>
54316 - fixed 3505277: nil-deref in ownerElement after choosing item from menu at projectnissan.com
54318 * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::dispatchWindowEvent): Add check for nil.
54320 2003-12-09 Darin Adler <darin@apple.com>
54322 Reviewed by Maciej.
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.
54329 2003-12-09 David Hyatt <hyatt@apple.com>
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.
54336 * khtml/rendering/render_box.cpp:
54337 (RenderBox::paintRootBoxDecorations):
54338 (RenderBox::paintBackgroundExtended):
54340 2003-12-09 Darin Adler <darin@apple.com>
54344 - fixed 3505391: REGRESSION (100-116): pages that move cells around don't repaint correctly
54346 * khtml/rendering/render_table.cpp: (RenderTableSection::layoutRows): Added code
54347 similar to the code in RenderBlock::layoutBlock, but for table cells.
54349 2003-12-09 Darin Adler <darin@apple.com>
54351 Reviewed by Maciej.
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.
54356 2003-12-09 David Hyatt <hyatt@apple.com>
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.
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):
54373 2003-12-09 Darin Adler <darin@apple.com>
54375 Reviewed by Richard.
54377 - fixed 3500408: Web Kit should pass the MAYSCRIPT attribute from the APPLET tag to the Java plug-in
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".
54384 * khtml/misc/htmlattrs.in: Added "mayscript".
54385 * khtml/misc/htmlattrs.c: Regenerated.
54386 * khtml/misc/htmlattrs.h: Regenerated.
54388 2003-12-09 Maciej Stachowiak <mjs@apple.com>
54392 <rdar://problem/3501030>: JavaScript sites crash when a PAC file is in place (WebCore,Safari 1.2)
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.
54402 2003-12-09 David Hyatt <hyatt@apple.com>
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.
54409 * khtml/html/htmltokenizer.cpp:
54410 (HTMLTokenizer::parseTag):
54412 2003-12-08 David Hyatt <hyatt@apple.com>
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>.
54418 I also had to make a fix (now that <nobr> has a higher priority) to ensure <nobr> can't be nested inside
54421 Both fixes were required to make news.com render correctly again.
54425 * khtml/html/dtd.cpp:
54426 * khtml/html/htmlparser.cpp:
54427 (KHTMLParser::getElement):
54429 2003-12-08 Chris Blumenberg <cblu@apple.com>
54431 Fixed: <rdar://problem/3234676>: Support for KEYGEN tag (ie 509 email certificates from www.thawte.com)
54435 * WebCore-combined.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
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.
54460 2003-12-08 Maciej Stachowiak <mjs@apple.com>
54464 <rdar://problem/3504047>: XMLHttpRequest object needs onload event
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.
54474 2003-12-08 David Hyatt <hyatt@apple.com>
54476 Fix for 3503022, asahi.com is too wide. Bugs in line breaking of breakable Japanese characters caused
54477 the breaks to be ignored.
54481 * khtml/rendering/render_text.cpp:
54482 (RenderText::calcMinMaxWidth):
54484 2003-12-05 David Hyatt <hyatt@apple.com>
54486 Fix the position method to return screen coords like it should and to use the lower left corner instead of
54491 * kwq/KWQAccObject.h:
54492 * kwq/KWQAccObject.mm:
54493 (-[KWQAccObject position]):
54494 (-[KWQAccObject size]):
54496 2003-12-07 Darin Adler <darin@apple.com>
54500 - fixed 3502347: REGRESSION (100-116): bottom of login window sometimes missing (TR background image)
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.
54508 * khtml/rendering/render_box.cpp: Removed setPixmap.
54509 * khtml/rendering/render_box.h: Removed setPixmap.
54511 2003-12-06 John Sullivan <sullivan@apple.com>
54513 - fixed <rdar://problem/3502655>: REGRESSION: Repro crash at espn.com
54517 * khtml/html/html_objectimpl.cpp:
54518 (HTMLAppletElementImpl::getAppletInstance):
54519 Check for nil RenderApplet before dereferencing rather than after.
54521 2003-12-05 David Hyatt <hyatt@apple.com>
54523 Add support for link clicking as an accessibility action.
54527 * kwq/KWQAccObject.mm:
54528 (-[KWQAccObject anchorElement]):
54529 (-[KWQAccObject role]):
54530 (-[KWQAccObject accessibilityAttributeNames]):
54531 (-[KWQAccObject accessibilityActionNames]):
54532 (-[KWQAccObject accessibilityActionDescription:]):
54533 (-[KWQAccObject accessibilityPerformAction:]):
54535 2003-12-05 Maciej Stachowiak <mjs@apple.com>
54539 <rdar://problem/3487222>: Add ability to create working fully standalone document object
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):
54609 2003-12-05 Richard Williamson <rjw@apple.com>
54611 Fixed 3501885. Added null test to returned node from collection.
54615 * khtml/ecma/kjs_html.cpp:
54616 (KJS::HTMLCollection::tryGet):
54618 2003-12-04 Richard Williamson <rjw@apple.com>
54620 Added support for named applet access from document node.
54621 Factored creation of KJS::Values from RuntimeObjectImps.
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):
54634 2003-12-04 Darin Adler <darin@apple.com>
54638 - fixed 3498712: REGRESSION (100-115): Safari aborts at http://www11.dht.dk/~blangstrup_org/
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.
54643 * khtml/dom/dom_doc.cpp:
54644 (DOM::Document::createElement): Throw exception if necessary. The impl function now returns
54646 (DOM::Document::createElementNS): Ditto.
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.
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
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.
54664 * khtml/xml/dom_elementimpl.cpp: (ElementImpl::cloneNode): Pass exception code parameter to
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.
54674 * kwq/WebCoreDOMDocument.mm:
54675 (-[WebCoreDOMDocument createElement:]): Pass an (ignored) exception code parameter.
54676 (-[WebCoreDOMDocument createElementNS::]): Pass an (ignored) exception code parameter.
54680 2003-12-03 Richard Williamson <rjw@apple.com>
54682 LiveConnect: Removed some debugging.
54686 * khtml/ecma/kjs_html.cpp:
54687 (KJS::HTMLCollection::tryGet):
54689 2003-12-03 David Hyatt <hyatt@apple.com>
54691 Fix for 3475761, list bullets mislayout after text zooming.
54693 Reviewed by kocienda
54695 * khtml/rendering/render_block.cpp:
54696 (khtml::RenderBlock::setStyle):
54698 2003-12-03 David Hyatt <hyatt@apple.com>
54700 Fix for 3493356, table cells didn't repaint properly.
54702 Reviewed by kocienda
54704 * khtml/rendering/render_object.cpp:
54705 (RenderObject::repaintObjectsBeforeLayout):
54706 * khtml/rendering/render_table.cpp:
54707 (RenderTableCell::getAbsoluteRepaintRect):
54708 * khtml/rendering/render_table.h:
54710 2003-12-03 David Hyatt <hyatt@apple.com>
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.
54717 * khtml/html/dtd.cpp:
54719 2003-12-03 David Hyatt <hyatt@apple.com>
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.
54726 * khtml/html/dtd.cpp:
54729 2003-12-03 John Sullivan <sullivan@apple.com>
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
54737 * khtml/css/html4.css:
54739 2003-12-03 Maciej Stachowiak <mjs@apple.com>
54743 <rdar://problem/3395759>: results of parent.document.getElementsByTagName can't be added to string
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.
54750 2003-12-02 Richard Williamson <rjw@apple.com>
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.
54758 * khtml/ecma/kjs_html.cpp:
54759 (KJS::HTMLCollection::tryGet):
54761 2003-12-02 Maciej Stachowiak <mjs@apple.com>
54765 <rdar://problem/3488220>: namespaces test from David Faure causes Safari to crash in DOM::DocumentImpl::createElementNS
54767 * khtml/xml/dom_docimpl.cpp:
54768 (DocumentImpl::createElementNS): Check if new element is NULL
54769 before messing with it, to avoid a crash.
54771 2003-12-02 David Hyatt <hyatt@apple.com>
54773 Fix for 3497999, null check the text() of RenderTexts to avoid a crash in current().
54775 Reviewed by kocienda
54777 * khtml/rendering/bidi.cpp:
54778 (khtml::BidiIterator::current):
54780 2003-12-02 Maciej Stachowiak <mjs@apple.com>
54784 Implemented a simple form of document serialization, enough to take care of:
54786 <rdar://problem/3487190>: implement send of DOMDocument for XMLHttpRequest
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:
54821 2003-12-02 David Hyatt <hyatt@apple.com>
54823 Fix for 3493677, containingBlock() null because we tried to support position:relative on table rows. Fix
54824 is to disallow this.
54826 Reviewed by kocienda
54828 * khtml/css/cssstyleselector.cpp:
54829 (khtml::CSSStyleSelector::adjustRenderStyle):
54831 2003-12-02 David Hyatt <hyatt@apple.com>
54833 Fix for 3493697, nil-deref in bidi code. Need to null-check strings with no length.
54837 * khtml/rendering/bidi.cpp:
54840 2003-12-02 David Hyatt <hyatt@apple.com>
54842 Fix for 3495746, nil deref of containing block (frame inside frameset).
54844 Reviewed by kocienda
54846 * khtml/rendering/render_box.cpp:
54847 (RenderBox::containingBlockWidth):
54849 2003-12-02 Ken Kocienda <kocienda@apple.com>
54855 (QRect::bottomRight): Added helper.
54857 2003-12-02 Maciej Stachowiak <mjs@apple.com>
54859 Merged the following patch from David Faure to fix:
54861 <rdar://problem/3497663>: Can't look up frames by number using windw[i] notation
54863 2003-11-25 David Faure <faure@kde.org>
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)
54868 2003-11-21 Maciej Stachowiak <mjs@apple.com>
54870 Reviewed by Richard.
54872 <rdar://problem/3487185>: implement security checks for XMLHttpRequest
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
54883 2003-12-01 Richard Williamson <rjw@apple.com>
54885 Fixed parameter passing to applet. Child elements are NOT valid in setStyle(). So we now either create the widget before needed with createWidgetIfNecessary. This either happens when doing the first layout, or when JavaScript first references the applet element.
54887 Fixed early delete of the the main applet instance. When the JS collector cleaned up the last JS object referring to the applet instance we were deleting the java instance. This caused the applet instance cached on the applet element to be invalid. The applet instance is the only Java object not to be cleaned up by the JS collector.
54889 Added support for getting at Java object fields.
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):
54905 2003-12-01 Darin Adler <darin@apple.com>
54909 - fixed 3496960: nil-deref in idFromNode inside elementDoesAutoComplete:
54911 * kwq/WebCoreBridge.mm:
54912 (inputElementFromDOMElement): Added nil check.
54913 (formElementFromDOMElement): Added nil check.
54915 2003-12-01 David Hyatt <hyatt@apple.com>
54917 Fix for 3490959, collapsed border tables don't paint backgrounds.
54921 * khtml/rendering/render_table.cpp:
54922 (RenderTable::setStyle):
54923 (RenderTable::paint):
54924 (RenderTable::paintBoxDecorations):
54925 * khtml/rendering/render_table.h:
54927 2003-12-01 Darin Adler <darin@apple.com>
54931 - fixed 3493939: ordered lists with type="A" roll over to A' after X rather than after Z
54933 * khtml/rendering/render_list.cpp: (toLetter): Change 24 to 26.
54937 2003-11-21 Maciej Stachowiak <mjs@apple.com>
54941 WebCore part of fix for:
54943 <rdar://problem/3487134>: Implement http request/response status and headers for XMLHttpRequest
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"
54950 (KJS::XMLHttpRequest::setRequestHeader): Simply append to header
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
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
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
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.
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
54985 * kwq/KWQResourceLoader.mm:
54986 (-[KWQResourceLoader receivedResponse:]): Admit it's an
54988 * kwq/WebCoreResourceLoader.h: Ditto.
54989 * kwq/WebCoreBridge.h: Add customHeader: arguments.
54991 2003-11-21 Chris Blumenberg <cblu@apple.com>
54993 Fixed: <rdar://problem/3491907>: When viewing applet, view hierarchy was an empty KWQView
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
55022 2003-11-21 John Sullivan <sullivan@apple.com>
55024 - WebCore part of fix for <rdar://problem/3333744>: Safari prints page with
55025 very, very long line very, very small
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.
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.
55041 2003-11-21 Darin Adler <darin@apple.com>
55045 - fixed 3490260: allow ¹ to be misspelled &supl (lowercase l instead of numeral 1) because WinIE does
55047 * khtml/html/kentities.gperf: Added supl to the list. Maps to U+00B9, just as sup1 does.
55048 * khtml/html/kentities.c: Regenerated.
55050 2003-11-20 Maciej Stachowiak <mjs@apple.com>
55054 - fixed 3487201 - Implement abort for XMLHttpRequest async loads
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:
55062 2003-11-20 John Sullivan <sullivan@apple.com>
55064 - WebCore part of <rdar://problem/3183124>: Support page-break-before/after with a value of "always"
55066 Dave wrote this part and we reviewed it together.
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.
55075 * khtml/rendering/render_block.h:
55076 prototype for inRootBlockContext; this might be useful for
55079 * khtml/rendering/render_canvas.cpp:
55080 (RenderCanvas::setBestTruncatedAt):
55081 now takes a forcedBreak parameter which overrides others.
55083 * khtml/rendering/render_canvas.h:
55084 (khtml::RenderCanvas::setTruncatedAt):
55085 set default value for m_forcedPageBreak
55087 * kwq/WebCoreBridge.h:
55088 * kwq/WebCoreBridge.mm:
55089 (-[WebCoreBridge computePageRects:withPageHeight:]):
55090 do the real work of pagination here
55092 2003-11-20 Chris Blumenberg <cblu@apple.com>
55094 Fixed: <rdar://problem/3491225>: Need UI and localized strings for <KEYGEN> support
55098 * WebCore-combined.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
55110 2003-11-19 Maciej Stachowiak <mjs@apple.com>
55114 - fixed 3490086 - support http post for XMLHttpRequest
55116 * kwq/KWQKJobClasses.h:
55117 * kwq/KWQKJobClasses.mm:
55118 (KIO::TransferJobPrivate::TransferJobPrivate):
55119 (KIO::TransferJob::TransferJob):
55121 2003-11-20 Richard Williamson <rjw@apple.com>
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.
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):
55141 2003-11-20 Ken Kocienda <kocienda@apple.com>
55147 <rdar://problem/3487421>: crash/exception when tabbing to a link without text
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.
55157 2003-11-19 David Hyatt <hyatt@apple.com>
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.
55164 * khtml/rendering/render_container.cpp:
55165 (RenderContainer::updatePseudoChild):
55167 2003-11-19 Maciej Stachowiak <mjs@apple.com>
55171 - fixed 3486998 - Implement asynchronous http loading for XMLHttpRequest
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.
55197 * kwq/KWQLoader.mm:
55198 (KWQServeRequest): New variant that doesn't need a Request.
55200 (KWQSlot::KWQSlot): Handle XMLHttpRequestQObject's slots.
55201 (KWQSlot::call): Ditto.
55203 2003-11-19 Richard Williamson <rjw@apple.com>
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.
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:
55222 2003-11-19 David Hyatt <hyatt@apple.com>
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.
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:
55241 2003-11-18 Maciej Stachowiak <mjs@apple.com>
55245 - fixed 3488883 - KIO::TransferJob needs to really use signals instead of calling loader directly
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:
55263 * kwq/KWQObject.mm:
55264 (QObject::connect):
55265 * kwq/KWQResourceLoader.h:
55266 * kwq/KWQResourceLoader.mm:
55267 (-[KWQResourceLoader receivedResponse:]):
55268 (-[KWQResourceLoader addData:]):
55269 (-[KWQResourceLoader finishJobAndHandle]):
55271 * kwq/KWQSignal.mm:
55275 (KWQSlot::KWQSlot):
55278 2003-11-18 David Hyatt <hyatt@apple.com>
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).
55284 * khtml/rendering/render_layer.cpp:
55286 (Marquee::timerEvent):
55288 2003-11-18 Richard Williamson <rjw@apple.com>
55290 More live connect stuff. We're getting close.
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:
55302 2003-11-18 David Hyatt <hyatt@apple.com>
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.
55310 * khtml/rendering/render_block.cpp:
55311 (khtml::RenderBlock::setStyle):
55313 2003-11-18 David Hyatt <hyatt@apple.com>
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.
55320 * khtml/rendering/bidi.cpp:
55321 (khtml::RenderBlock::layoutInlineChildren):
55323 2003-11-17 Maciej Stachowiak <mjs@apple.com>
55327 - fixed 3486991 - Add XMLHttpRequest object and stub methods
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.
55352 2003-11-17 David Hyatt <hyatt@apple.com>
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.
55359 * khtml/rendering/render_layer.cpp:
55360 (RenderLayer::suspendMarquees):
55363 (Marquee::suspend):
55364 * khtml/rendering/render_layer.h:
55365 * kwq/KWQKHTMLPart.mm:
55366 (KWQKHTMLPart::clearTimers):
55368 2003-11-17 Maciej Stachowiak <mjs@apple.com>
55372 - fixed 3487324 - CSS url values should be wrapped in "url()" for cssText purposes
55374 2003-11-07 Dirk Mueller <mueller@kde.org>
55376 * css/css_valueimpl.cpp (cssText): wrap uri's into url().
55377 Stephan Kulow noted that other browsers do that.
55380 2003-11-17 David Hyatt <hyatt@apple.com>
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.
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:
55396 2003-11-17 Darin Adler <darin@apple.com>
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
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;
55412 (UIEvent::charCode): Added. Calls through to KeyboardEventImpl.
55413 (UIEvent::which): Call keyCode in KeyboardEventImpl to share code.
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.
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.
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.
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.
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.
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
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().
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.
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.
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.
55508 * kwq/KWQKPartsPart.h: (KParts::Part::event): Removed now-unnecessary cast to change
55509 a QCustomEvent into a QEvent.
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.
55514 2003-11-17 Ken Kocienda <kocienda@apple.com>
55518 <rdar://problem/3487079>: Some scheme checks in KURL do not verify
55519 first char is a legal first char for a scheme
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.
55526 2003-11-17 David Hyatt <hyatt@apple.com>
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).
55533 * khtml/rendering/render_box.cpp:
55534 (RenderBox::containingBlockWidth):
55536 2003-11-17 Maciej Stachowiak <mjs@apple.com>
55540 - fixed 3413713 - iframe forms posting fails without initial src attribute value
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.
55549 2003-11-17 Darin Adler <darin@apple.com>
55553 - fixed 3485925: Safari does not correctly parse eight-digit hex character entities
55555 * khtml/html/htmltokenizer.cpp: (HTMLTokenizer::parseEntity): Replaced puzzling variable limit
55556 on number of hexadecimal characters to parse with an 8-character limit.
55558 2003-11-17 Darin Adler <darin@apple.com>
55562 - fixed 3485572 -- secure form check in KHTML uses case-sensitive comparison with "https"
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.
55570 2003-11-17 Maciej Stachowiak <mjs@apple.com>
55572 - commit updated .lut.h file that I forgot to commit before
55574 * khtml/ecma/kjs_window.lut.h:
55576 2003-11-17 Maciej Stachowiak <mjs@apple.com>
55580 - fixed 3382829 - Safari won't load script src javascript if done by a document.write followed by document.close
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.
55593 2003-11-17 David Hyatt <hyatt@apple.com>
55595 Fix for 3480108, crash because of the wrong malformedTableParent when stray content is placed inside
55600 * khtml/html/htmlparser.cpp:
55601 (KHTMLParser::popBlock):
55603 2003-11-17 Maciej Stachowiak <mjs@apple.com>
55607 - fixed 3397494 - FileMaker: Setting option object text fails if created without text
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.
55615 2003-11-17 Ken Kocienda <kocienda@apple.com>
55621 <rdar://problem/3480023>: Links don't work if there's a colon in the URL
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
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.
55633 2003-11-17 David Hyatt <hyatt@apple.com>
55635 Fix for 2931829, lines with hyphens should break on the hyphens. Match WinIE's behavior of
55636 breaking on - and ?.
55640 * khtml/rendering/break_lines.cpp:
55641 (khtml::isBreakable):
55643 2003-11-17 David Hyatt <hyatt@apple.com>
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.
55648 Fix for 3486454, options/optgroups should strip leading/trailing space.
55650 Together these two fixes solve 3486581, travelocity misrenders because form controls are too large.
55654 Also fixing 3474994, alink needs to be restricted to actual links and not all <a> tags.
55658 Finally, adding :active outlines around <input type=image> (covered by the old bug 3141767).
55660 * khtml/css/cssstyleselector.cpp:
55661 (khtml::CSSStyleSelector::CSSStyleSelector):
55662 (khtml::CSSStyleSelector::applyRule):
55663 (khtml::CSSStyleSelector::checkForGenericFamilyChange):
55664 (khtml::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
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):
55684 2003-11-17 David Hyatt <hyatt@apple.com>
55686 Back out my change to exclude text runs from getting a relayout on a style change. I totally forgot about
55689 * khtml/rendering/render_object.cpp:
55690 (RenderObject::setStyle):
55692 2003-11-16 Maciej Stachowiak <mjs@apple.com>
55696 <rdar://problem/3131664>: add support for the window.print() command used for "print this page" buttons
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.
55708 2003-11-16 Maciej Stachowiak <mjs@apple.com>
55712 * kwq/KWQKHTMLPartBrowserExtension.mm:
55713 (KHTMLPartBrowserExtension::createNewWindow): Check for the
55714 returned part being NULL, not the out value pointer.
55716 2003-11-16 David Hyatt <hyatt@apple.com>
55718 Fix for 3485779, <input type=image> and <button> should not be mouse focusable.
55720 Fix for 3485795, <input type=image> and <button> are being treated like links when they should not be.
55722 Fix for 3485817, <input type=image> and <button> should obey full keyboard access mode.
55724 Fix for 3485802, fieldset/legend/option/optgroup/label should not be focusable at all.
55726 Reviewed by kocienda
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):
55753 2003-11-16 Maciej Stachowiak <mjs@apple.com>
55757 - fixed 3484723 - name property of window reference from window.open call is always empty
55759 * kwq/KWQKHTMLPartBrowserExtension.mm:
55760 (KHTMLPartBrowserExtension::createNewWindow): Set the part name on the khtml side when
55761 making a new window.
55763 2003-11-16 David Hyatt <hyatt@apple.com>
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.
55772 * khtml/html/html_formimpl.cpp:
55773 (HTMLGenericFormElementImpl::attach):
55775 2003-11-16 David Hyatt <hyatt@apple.com>
55777 Add border info to the render tree dumper.
55779 * khtml/rendering/render_style.h:
55780 (khtml::BorderValue::operator!=):
55781 * kwq/KWQRenderTreeDebug.cpp:
55782 (printBorderStyle):
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:
56084 2003-11-16 Maciej Stachowiak <mjs@apple.com>
56088 - fixed 3362841 - javascript History Object length property is always 0
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
56095 2003-11-14 Maciej Stachowiak <mjs@apple.com>
56097 Reviewed by Ken and Dave.
56099 - fixed 3471925 - getting and setting cssText not implemented
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().
56113 2003-11-16 David Hyatt <hyatt@apple.com>
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.
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).
56126 * khtml/css/cssparser.cpp:
56127 (CSSParser::parseValue):
56128 * khtml/css/cssstyleselector.cpp:
56129 (khtml::CSSStyleSelector::applyRule):
56130 * khtml/css/cssvalues.c:
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):
56157 2003-11-14 David Hyatt <hyatt@apple.com>
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).
56164 Fix for 3411960, block-level replaced elements should avoid floats.
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).
56169 Fix for 3485576, the containing block for text runs is incorrect.
56171 Fix for 3485577, text runs should not trigger layout when style is re-resolved.
56175 * khtml/rendering/render_container.cpp:
56176 (RenderContainer::appendChildNode):
56177 (RenderContainer::insertChildNode):
56178 * khtml/rendering/render_box.cpp
56179 * khtml/rendering/render_object.cpp
56181 2003-11-14 David Hyatt <hyatt@apple.com>
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.
56186 Reviewed by kocienda
56188 * khtml/rendering/render_box.cpp:
56189 (RenderBox::calcAbsoluteVertical):
56193 2003-11-14 Maciej Stachowiak <mjs@apple.com>
56195 - backed out changes unintentionally commited while the tree was closed
56197 * khtml/css/css_valueimpl.cpp:
56198 * khtml/css/css_valueimpl.h:
56199 * kwq/KWQKPartsBrowserInterface.mm:
56201 2003-11-14 Maciej Stachowiak <mjs@apple.com>
56205 - fixed 3471925 - getting and setting cssText not implemented
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().
56220 2003-11-14 Darin Adler <darin@apple.com>
56224 - first half of fix for 3457162 -- selecting text during a page load that blows the text field
56225 away causes a crash
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.
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
56235 2003-11-14 John Sullivan <sullivan@apple.com>
56237 - fixed <rdar://problem/3483585>: Option-tab in a text field inputs
56238 a character rather than tabbing to the next widget
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.
56248 * kwq/KWQTextArea.mm:
56249 (-[KWQTextArea textDidChange:]):
56250 Bail out if KWQKHTMLPart::handleKeyboardOptionTabInView returns YES.
56252 * kwq/KWQTextField.mm:
56253 (-[KWQTextField controlTextDidChange:]):
56254 Bail out if KWQKHTMLPart::handleKeyboardOptionTabInView returns YES.
56256 2003-11-13 Darin Adler <darin@apple.com>
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
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.
56280 2003-11-13 Darin Adler <darin@apple.com>
56284 - fixed 3474330 -- tooltips do not work for <area> elements
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.
56289 2003-11-13 Maciej Stachowiak <mjs@apple.com>
56293 - fixed - 3479285 - hang at www.saccourt.com
56294 - fixed - 3477088 - (85-112) Safari frozen loading a page at Postal Service site of Taiwan
56296 * khtml/ecma/kjs_html.cpp:
56297 (KJS::HTMLSelectCollection::tryPut): Use the range-checking
56298 version of the number-conversion function to avoid negative
56301 2003-11-13 Ken Kocienda <kocienda@apple.com>
56307 <rdar://problem/3483284>: Tabbing to links needs to honor new
56308 WebKit tab-to-links preference
56310 In addition to fixing the bug, I also did a bit of cleanup
56311 in the code which helps to determine tab order.
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.
56316 I also tweaked the names on the keyboard UI mode constants
56317 to make them read better.
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.
56342 2003-11-13 David Hyatt <hyatt@apple.com>
56344 Implement a custom unfurl marquee style.
56348 * khtml/css/cssparser.cpp:
56349 (CSSParser::parseValue):
56350 * khtml/css/cssstyleselector.cpp:
56351 (khtml::CSSStyleSelector::applyRule):
56352 * khtml/css/cssvalues.c:
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:
56361 (Marquee::isUnfurlMarquee):
56363 (Marquee::updateMarqueePosition):
56364 (Marquee::updateMarqueeStyle):
56365 (Marquee::timerEvent):
56366 * khtml/rendering/render_layer.h:
56368 * khtml/rendering/render_style.h:
56371 2003-11-13 Ken Kocienda <kocienda@apple.com>
56377 <rdar://problem/3480761>: event object type attribute returns
56378 khtml_keypress instead of keypress
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.
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.
56403 2003-11-13 Darin Adler <darin@apple.com>
56407 - fixed 3452554 -- keyCode attribute for DOM events reports incorrect value
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.
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
56421 (characterCode): Added. Extracts the character code from the string if it's exactly
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.
56429 * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::keyEvent): Change to use the new QKeyEvent
56430 constructor, passing in the NSEvent.
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.
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.
56440 2003-11-12 David Hyatt <hyatt@apple.com>
56442 Fix for 3482132, incremental repainting for layout, i.e., only repaint areas that change when
56445 Reviewed by kocienda
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):
56458 2003-11-12 Ken Kocienda <kocienda@apple.com>
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.
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.
56469 2003-11-12 Ken Kocienda <kocienda@apple.com>
56471 Reviewed by Richard
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.
56496 2003-11-12 Ken Kocienda <kocienda@apple.com>
56498 Reviewed by Richard
56502 <rdar://problem/3481600>: key event objects do not preserve unmodified keys
56504 * khtml/xml/dom2_eventsimpl.cpp: Modified constructor call to include
56506 (KeyboardEventImpl::KeyboardEventImpl):
56507 * kwq/KWQEvent.h: Added unmodifiedText accessor and variable to QKeyEvent.
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
56515 2003-11-12 Ken Kocienda <kocienda@apple.com>
56519 * khtml/html/html_elementimpl.cpp:
56520 (HTMLElementImpl::click): Implemented a programmatic click function for
56522 * khtml/html/html_elementimpl.h:
56523 * khtml/html/html_formimpl.cpp:
56524 (HTMLFormElementImpl::submitClick): Implemented a programmatic click function for
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.
56533 * khtml/html/html_inlineimpl.h: Ditto.
56535 2003-11-12 David Hyatt <hyatt@apple.com>
56537 Fix build bustage in deployment builds.
56539 * kwq/KWQLineEdit.mm:
56540 (QLineEdit::hasMarkedText):
56542 2003-11-11 David Hyatt <hyatt@apple.com>
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.
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.
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:
56566 * khtml/css/cssvalues.h:
56567 * khtml/css/cssvalues.in:
56568 * khtml/dom/css_value.h:
56570 * khtml/rendering/render_style.cpp:
56571 (StyleBoxData::StyleBoxData):
56572 (StyleVisualData::StyleVisualData):
56573 (StyleBackgroundData::StyleBackgroundData):
56574 (StyleMarqueeData::StyleMarqueeData):
56575 (StyleFlexibleBoxData::StyleFlexibleBoxData):
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):
56594 2003-11-11 Maciej Stachowiak <mjs@apple.com>
56598 - fixed 3479537 - reproducible crash in KJS::WindowFunc::tryCall
56600 * khtml/ecma/kjs_window.cpp:
56601 (WindowFunc::tryCall): Check part and doc impl for null.
56603 2003-11-11 Maciej Stachowiak <mjs@apple.com>
56607 - fixed 3472330 - REGRESSION: onKeyPress handler not called when hitting keys in <input type=password> field
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.
56618 2003-11-11 Ken Kocienda <kocienda@apple.com>
56624 <rdar://problem/3480173>: Too many names for programmatic click functions
56626 Changed all instances of performClick() and simulateClick() to click().
56627 Changed all instances of performSubmitClick() to submitClick().
56629 Additionally, KWQButton had a simulateClick method, which was redundant
56630 given that its superclass has a performClick: method.
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):
56644 * kwq/KWQButton.mm:
56647 2003-11-11 Maciej Stachowiak <mjs@apple.com>
56651 - fixed 3475272 - custom property on CSSStyleObject won't hold a value
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.
56657 2003-11-11 John Sullivan <sullivan@apple.com>
56659 - fixed <rdar://problem/3480421>: Focus rings around links are too thick,
56660 should use 3 px instead of 5 px
56662 Reviewed by Don and Ken.
56664 * khtml/css/html4.css:
56665 use 3px instead of 5 px for :active, :focus
56667 2003-11-11 Ken Kocienda <kocienda@apple.com>
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.
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:
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:
56697 2003-11-11 Chris Blumenberg <cblu@apple.com>
56699 Fixed: <rdar://problem/3480281>: drag image of selected text and images include broken images
56703 * khtml/rendering/render_image.cpp:
56704 (RenderImage::paintObject): when drawing the drag image, don't draw the broken image
56706 2003-11-11 Vicki Murley <vicki@apple.com>
56708 Reviewed by sullivan.
56710 - rolled Merlot build fix onto the trunk
56712 * WebCorePrefix.h: added #include <sys/types.h>
56714 2003-11-10 David Hyatt <hyatt@apple.com>
56716 Fix for 3473531, text nested in hr inside h3 did not get the h3's style.
56720 * khtml/html/dtd.cpp:
56723 2003-11-10 David Hyatt <hyatt@apple.com>
56725 Fix for 3478435, <hr> tags should be centered by default. Ditched the 1px margin as well.
56727 Fix for 3479441, <h1>-<h6> tags should *not* be centered by default. They should also use bold instead of
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:
56857 2003-11-10 Chris Blumenberg <cblu@apple.com>
56859 Fixed: <rdar://problem/3479266>: selected images don't obey CSS3 selection background-color attribute
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:
56870 2003-11-10 David Hyatt <hyatt@apple.com>
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
56876 Reviewed by kocienda
56878 * khtml/css/cssparser.cpp:
56879 (CSSParser::parseValue):
56880 * khtml/css/cssproperties.c:
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):
56890 2003-11-10 Chris Blumenberg <cblu@apple.com>
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
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
56908 2003-11-10 Ken Kocienda <kocienda@apple.com>
56914 <rdar://problem/3477795>: REGRESSION: can't submit form without
56915 submit button by hitting return (cocoadev.com)
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.
56924 * khtml/html/html_formimpl.cpp:
56925 (HTMLFormElementImpl::performSubmitClick)
56927 2003-11-10 Richard Williamson <rjw@apple.com>
56929 Fixed 3478765. Use ICU to access unicode properties.
56930 Fixed 3478831. Unicode property/conversion functions should be 32 bit savvy.
56934 * WebCore-combined.exp:
56939 (QChar::mirroredChar):
56941 (QChar::direction):
56942 * kwq/WebCoreUnicode.cpp:
56943 * kwq/WebCoreUnicode.h:
56945 2003-11-10 Chris Blumenberg <cblu@apple.com>
56947 Fixed: <rdar://problem/3478781>: drag image of selected text and images doesn't include images
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
56956 2003-11-10 Ken Kocienda <kocienda@apple.com>
56962 <rdar://problem/3477624>: REGRESSION (113): Using input method to
56963 enter non-ascii text submits the form
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.
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.
56983 2003-11-09 Darin Adler <darin@apple.com>
56987 - fixed 3478173 -- REGRESSION (112-113): getElementById is failing for many types of elements
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.
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.
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.
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.
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().
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.
57029 2003-11-09 David Hyatt <hyatt@apple.com>
57031 Fix for 3478317, letter/word-spacing don't inherit properly through italic/bold elements.
57035 * khtml/rendering/font.h:
57036 (khtml::Font::Font):
57037 * khtml/rendering/render_style.h:
57038 (khtml::RenderStyle::setFontDef):
57040 2003-11-09 David Hyatt <hyatt@apple.com>
57042 Fix for 3478309, make sure backgrounds paint in the border box and not just in the padding box.
57046 Also making sure that <frame>s aren't transparent, since other browsers seem to only make <iframe>s/<object>s
57049 * khtml/rendering/render_box.cpp:
57050 (RenderBox::paintRootBoxDecorations):
57051 (RenderBox::paintBackgroundExtended):
57053 2003-11-08 Darin Adler <darin@apple.com>
57057 - fixed 3478025 -- links with non-Latin-1 characters in the hostname are not getting IDN-encoded
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.
57065 2003-11-08 Darin Adler <darin@apple.com>
57069 - fixed 3477509 -- REGRESSION (112-113): crash in KHTMLPart::processObjectRequest at espn.com, chosun.com
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
57075 2003-11-08 Darin Adler <darin@apple.com>
57077 Reviewed by Richard.
57079 - event cleanup motivated by questions on khtml-devel
57081 * khtml/dom/dom2_events.h: Removed eventModuleName.
57082 * khtml/dom/dom2_events.cpp: Removed eventModuleName.
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.
57110 * khtml/ecma/kjs_events.cpp: (KJS::getDOMEvent): Changed implementation to no longer
57111 require eventModuleName(), and removed some unneeded casts.
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.
57123 2003-11-07 Chris Blumenberg <cblu@apple.com>
57125 Fixed: <rdar://problem/3020196>: links with href="" don't show hand cursor when you mouse over them
57129 * khtml/khtmlview.cpp:
57130 (KHTMLView::viewportMouseMoveEvent): check if the URL on the event is non-NULL, not if it is non-empty
57132 2003-11-07 Richard Williamson <rjw@apple.com>
57134 Fixed 3477067. Use our case unicode conversion routines.
57142 2003-11-06 David Hyatt <hyatt@apple.com>
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.
57148 Reviewed by darin (inline block fixes only).
57150 * khtml/rendering/render_block.cpp:
57151 (khtml::RenderBlock::layoutBlock):
57152 (khtml::RenderBlock::layoutBlockChildren):
57154 2003-11-06 Richard Williamson <rjw@apple.com>
57156 Fixed 3476563. Remove unnecessary call to set view position after load completes.
57158 Reviewed by Gramps.
57160 * khtml/khtml_part.cpp:
57161 (KHTMLPart::checkCompleted):
57163 2003-11-06 Chris Blumenberg <cblu@apple.com>
57165 * khtml/rendering/render_image.h:
57166 (khtml::RenderImage::isDisplayingError): forgot to remove the "virtual" part of the declaration
57168 2003-11-06 Chris Blumenberg <cblu@apple.com>
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
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
57181 2003-11-06 Ken Kocienda <kocienda@apple.com>
57183 Reviewed by Richard
57185 Fixes for these bugs:
57187 <rdar://problem/3476006>: Form file input widgets do not scroll
57188 to view when focused
57190 <rdar://problem/3476007>: Form file input widgets should only
57191 focus when full keyboard access is on
57193 * kwq/KWQFileButton.h: Added focusPolicy declaration.
57194 * kwq/KWQFileButton.mm:
57195 (KWQFileButton::focusPolicy): Added. Now works like other buttons.
57197 (KWQFileButton::focusChanged): Added. Code similar to text area
57198 widgets. Fixes 3476006.
57200 2003-11-06 Chris Blumenberg <cblu@apple.com>
57202 Fixed: <rdar://problem/3308609>: 6L60 Safari URL links with line-endings converted to hex by contextual menu
57206 * kwq/WebCoreBridge.mm:
57207 (-[WebCoreBridge elementAtPoint:]): use parseURL to go from an attribute string to a URL string
57211 2003-11-06 John Sullivan <sullivan@apple.com>
57213 - fixed broken build
57215 * khtml/xml/dom_docimpl.cpp:
57216 (DocumentImpl::completeURL):
57217 removed stray character
57219 2003-11-06 Maciej Stachowiak <mjs@apple.com>
57223 - fixed 3475366 - 4.5% of time spent making html event listeners on slow intel page.
57225 6% speedup on intel page, 1% speedup on cvs-base PLT.
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
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
57253 * khtml/ecma/kjs_window.h: Prototype new method.
57255 2003-11-06 Maciej Stachowiak <mjs@apple.com>
57259 - fixed 3475397 - REGRESSION: relative URLs on page load test sometimes contain garbage, leading to missing images
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.
57267 2003-11-05 Darin Adler <darin@apple.com>
57269 Reviewed by Maciej.
57271 - fixed 3475109 -- support keyboard event object properties of altkey, ctrlKey, shiftKey
57273 We had the DOM Level 3 KeyboardEvent class already; I just had to add JavaScript bindings.
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.
57284 * khtml/dom/dom2_events.cpp:
57285 (KeyboardEvent::keyIdentifier): Added.
57286 (KeyboardEvent::keyLocation): Added.
57288 * khtml/ecma/kjs_events.lut.h: Regenerated.
57290 2003-11-05 Maciej Stachowiak <mjs@apple.com>
57294 - fixed 3475092 - Notifying the bridge about duplicate images takes 13% of time on intel page
57296 Another 15% speedup on the intel page.
57298 This also results in a 3% speedup on cvs-base PLT! (or maybe that was my last change)
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.
57311 2003-11-05 Darin Adler <darin@apple.com>
57313 * WebCore-combined.exp: Checked in generated file.
57315 2003-11-05 Richard Williamson <rjw@apple.com>
57317 Fixed 3474957. Changed name of image rendering method to better reflect it's actual function.
57319 - (void)beginAnimationInRect:(NSRect)ir fromRect:(NSRect)fr;
57323 - (void)drawImageInRect:(NSRect)ir fromRect:(NSRect)fr;
57327 * kwq/KWQPainter.mm:
57328 (QPainter::drawPixmap):
57329 * kwq/WebCoreImageRenderer.h:
57331 2003-11-05 Darin Adler <darin@apple.com>
57333 * WebCore-tests.exp: Added missing symbol so tests will link.
57335 2003-11-05 Maciej Stachowiak <mjs@apple.com>
57339 - fixed 3474756 - Creating HTML event listeners takes 5% of time on particular slow intel page
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
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.
57350 2003-11-05 Darin Adler <darin@apple.com>
57352 Reviewed by Maciej.
57354 - fixed 3473872 -- encode domain names for IDN when creating URLs inside WebCore
57356 * kwq/KWQKURL.h: Added KWQIntegerPair type, a number of private functions.
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.
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.
57380 * WebCore.pbproj/project.pbxproj: Add libicucore.A.dylib library.
57382 2003-11-05 Maciej Stachowiak <mjs@apple.com>
57386 - fixed 3473906 - getElementById takes about 44% of time on particular slow intel page
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.
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
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.
57402 These Element changes to keep the id --> element hashtable working
57403 seem needlessly tricky, due to lack of bottlenecks in attribute
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
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
57418 (NamedAttrMapImpl::removeNamedItem): If the name is id, call updateId on
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.
57424 2003-11-05 Ken Kocienda <kocienda@apple.com>
57428 Fix for these bugs:
57430 <rdar://problem/3467558>: Cannot tab to form file input widgets
57431 <rdar://problem/3473631>: WebFileButton sends notifications to communicate with WebCore
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.
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
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
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.
57464 2003-11-05 Maciej Stachowiak <mjs@apple.com>
57466 - fixed deployment build
57468 * kwq/KWQKHTMLPart.mm:
57469 (KWQKHTMLPart::fileWrapperForElement):
57471 2003-11-04 Maciej Stachowiak <mjs@apple.com>
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.
57480 2003-11-03 David Hyatt <hyatt@apple.com>
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.
57487 * kwq/KWQKHTMLPart.mm:
57488 (KWQKHTMLPart::forceLayoutForPageWidth):
57490 2003-11-04 Chris Blumenberg <cblu@apple.com>
57493 <rdar://problem/3472403>: RTFD of copied text and images should use original image data not tiffs
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
57505 2003-11-04 Maciej Stachowiak <mjs@apple.com>
57509 - fixed 3472893 - Slow intel page takes 20% of its time in CachedObject::ref
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.
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.
57522 2003-11-03 Maciej Stachowiak <mjs@apple.com>
57526 - fixed 3370085 - new frames with javascript: URLs should be populated with the result of the JavaScript code
57529 * khtml/html/html_baseimpl.cpp:
57530 (HTMLFrameElementImpl::updateForNewURL): Skip special filtering of
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
57541 * khtml/khtml_part.h: Prototype new method.
57542 * kwq/KWQKHTMLPartBrowserExtension.mm:
57543 (KHTMLPartBrowserExtension::openURLRequest): Use new part method.
57545 2003-11-03 Vicki Murley <vicki@apple.com>
57547 Reviewed by kocienda.
57549 - fixed <rdar://problem/3471096>: non-B&I builds should not use order files, because they cause false "regressions" in perf.
57551 * WebCore.pbproj/project.pbxproj: added empty SECTORDER_FLAGS variables to the Development and Deployment build styles
57553 2003-11-03 Ken Kocienda <kocienda@apple.com>
57559 <rdar://problem/3470338>: onclick is not executing when you hit enter on focused links
57561 Now when we trap return or enter when a link is focused, we send
57562 a click event to the node.
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
57569 * khtml/html/html_inlineimpl.h: Declare performClick function.
57571 2003-11-03 Darin Adler <darin@apple.com>
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
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
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
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.
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.
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.
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.
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
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
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
57637 (-[KWQSecureTextFieldCell _textAttributes]): Set the base writing direction in the
57638 paragraph style if it's not already right.
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.
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.
57674 * kwq/KWQTextArea.mm: (-[KWQTextArea setBaseWritingDirection:]): Call setNeedsDisplay:YES.
57676 2003-11-03 David Hyatt <hyatt@apple.com>
57678 Fix 3472200, media tests fail to parse correctly. Merging a patch to handle exotic media types
57679 from the KHTML trunk.
57681 * khtml/css/parser.cpp:
57682 * khtml/css/parser.y:
57684 2003-11-03 David Hyatt <hyatt@apple.com>
57686 Fix for 3471314, make sure to check the outline phase before painting backgrounds of iframes.
57690 * khtml/rendering/render_replaced.cpp:
57691 (RenderReplaced::paint):
57693 2003-11-03 David Hyatt <hyatt@apple.com>
57695 Fix for 3470855, links with script action stay focused when clicking.
57697 Fix for 3470858, clicking and dragging a link and then releasing doesn't clear the glow ring.
57699 Fix for 3472090, link should not be mouse focusable.
57703 * khtml/css/html4.css:
57704 * khtml/html/html_inlineimpl.h:
57705 (DOM::HTMLAnchorElementImpl::isMouseFocusable):
57707 2003-11-03 David Hyatt <hyatt@apple.com>
57709 Fix for 3472030, line-height not properly reset in all cases when the font shorthand is used.
57713 * khtml/css/cssparser.cpp:
57714 (CSSParser::parseFont):
57716 2003-11-03 Maciej Stachowiak <mjs@apple.com>
57720 - fixed 3472023 - REGRESSION: assertion on layout tests
57722 * kwq/KWQTextCodec.mm:
57723 (KWQTextDecoder::convertUTF16): Remove assert that length is not
57724 0, since we can get zero length now when flushing.
57726 2003-11-03 Ken Kocienda <kocienda@apple.com>
57732 <rdar://problem/3260780>: hitting return in a text field submits
57733 form without running onclick handler for submit button
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.
57747 2003-11-03 Ken Kocienda <kocienda@apple.com>
57753 <rdar://problem/3470342>: focus rings are shown for links in
57754 web pages even in non-frontmost windows
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.
57776 2003-11-03 David Hyatt <hyatt@apple.com>
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.
57781 * khtml/html/html_formimpl.cpp:
57782 (HTMLInputElementImpl::attach):
57783 (HTMLSelectElementImpl::attach):
57784 (HTMLTextAreaElementImpl::attach):
57786 2003-11-03 David Hyatt <hyatt@apple.com>
57788 Patch from KHTML trunk. Move frameset positioning reset into adjustRenderStyle so as not to
57789 pollute the render tree.
57791 * khtml/css/cssstyleselector.cpp:
57792 (khtml::CSSStyleSelector::adjustRenderStyle):
57793 * khtml/rendering/render_box.cpp:
57794 (RenderBox::setStyle):
57796 2003-11-03 David Hyatt <hyatt@apple.com>
57798 Fix for 3471609, 'transparent' should be an acceptable named color value instead of a special
57799 keyword used only by background/border.
57801 Reviewed by kocienda
57803 * khtml/css/cssparser.cpp:
57804 (CSSParser::parseValue):
57805 * khtml/css/cssstyleselector.cpp:
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):
57825 2003-11-02 Maciej Stachowiak <mjs@apple.com>
57829 - fixed 3471226 - HTML document that's less than 16 bytes comes out blank
57831 * kwq/KWQTextCodec.mm:
57832 (KWQTextDecoder::toUnicode): When flushing, don't bail out early
57833 if there are no new characters!
57835 2003-11-02 Maciej Stachowiak <mjs@apple.com>
57839 - don't resolve Null href or src attributes, since the distinction
57840 between empty and absent attribute is important.
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):
57856 2003-11-01 David Hyatt <hyatt@apple.com>
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.
57861 Fix for 3470660, input type=image excluded from tab order.
57865 * khtml/css/cssparser.cpp:
57866 (CSSParser::parseValue):
57867 * khtml/css/cssproperties.c:
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):
57899 2003-11-01 Maciej Stachowiak <mjs@apple.com>
57903 - fixed 3469262 - REGRESSION (110-112): logitech page is very slow to load (due to style sheet updates?)
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
57911 2003-11-01 Darin Adler <darin@apple.com>
57915 - fixed 3468870 -- REGRESSION (108-109): cannot upload files (<input type=file> is broken)
57917 * kwq/KWQFileButton.mm: (KWQFileButton::filenameChanged): Pass the filename to
57918 the textChanged signal. The one without a parameter is a different signal.
57920 2003-11-01 Darin Adler <darin@apple.com>
57924 - fixed 3466714 -- page with <object> tag with text subtype and no URL causes hang
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.
57931 2003-10-31 David Hyatt <hyatt@apple.com>
57933 Fix for 3470489, I just forgot to commit a piece of my patch. This has actually even
57934 been reviewed by ken already.
57936 Reviewed by kocienda
57938 * khtml/rendering/render_replaced.cpp:
57939 (RenderWidget::eventFilter):
57941 2003-10-31 Darin Adler <darin@apple.com>
57945 - fixed 3457875 -- text disappears from fields in forms upon certain types of scrolling
57947 * kwq/KWQTextField.mm: (-[KWQTextField control:textShouldBeginEditing:]):
57948 Call releaseGState on the field editor and its clip view to prevent undesirable caching.
57950 2003-10-31 Ken Kocienda <kocienda@apple.com>
57956 <rdar://problem/3440719>: Read-only text field form controls
57957 do not keyboard focus and do not take part in tabbing
57959 * kwq/KWQTextField.mm:
57960 (-[KWQTextField acceptsFirstResponder]): We want our text fields
57961 to accept first responder even if not editable.
57963 Once this is fixed, this one comes along for free:
57965 <rdar://problem/3440710>: Read-only textarea form controls should select all text when focused
57967 2003-10-31 Darin Adler <darin@apple.com>
57971 - fixed 3469383 -- REGRESSION (100-111): if one line is selected on this page, too much gets copied (plain text)
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.
57977 2003-10-31 David Hyatt <hyatt@apple.com>
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.
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.
57986 Reviewed by kocienda
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):
58013 2003-10-31 Ken Kocienda <kocienda@apple.com>
58019 <rdar://problem/3470233>: solid outlines drawing incorrectly
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
58028 * khtml/rendering/render_inline.cpp:
58029 (RenderInline::paintOutlines)
58031 2003-10-31 Darin Adler <darin@apple.com>
58035 - fixed 3464759 -- REGRESSION (100-107): Pressing on link loses mouse-down feedback almost instantly
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.
58040 2003-10-31 Ken Kocienda <kocienda@apple.com>
58044 <rdar://problem/3468910>: REGRESSION: other than focus rings, outlines styles are broken
58046 Outlines now draw like they used to.
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
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.
58056 2003-10-31 David Hyatt <hyatt@apple.com>
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.
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.
58065 Reviewed by gramps (opacity) and john (min font size)
58067 * khtml/css/cssparser.cpp:
58068 (CSSParser::parseValue):
58069 * khtml/css/cssproperties.c:
58072 * khtml/css/cssproperties.h:
58073 * khtml/css/cssproperties.in:
58074 * khtml/css/cssstyleselector.cpp:
58075 (khtml::CSSStyleSelector::applyRule):
58077 2003-10-31 Ken Kocienda <kocienda@apple.com>
58083 <rdar://problem/3469088>: focus not removed from text link
58084 when user hits cmd-L or clicks in window chrome
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.
58091 2003-10-31 David Hyatt <hyatt@apple.com>
58093 Three simple fixes:
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.
58098 (2) Added a != check when the old and new hover obj are the same to avoid a little bit of extra work.
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.
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):
58113 2003-10-30 David Hyatt <hyatt@apple.com>
58115 Fix for 3469330, the Marquee data in RenderStyle needs a copy constructor hack like all the other
58118 * khtml/rendering/render_style.cpp:
58120 * khtml/rendering/render_style.h:
58122 2003-10-30 David Hyatt <hyatt@apple.com>
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.
58129 * khtml/rendering/render_replaced.cpp:
58130 (RenderReplaced::paint):
58132 2003-10-30 David Hyatt <hyatt@apple.com>
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.
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):
58152 2003-10-30 Maciej Stachowiak <mjs@apple.com>
58156 - fixed 3426081 - empty cells HTMLCollection for <tr>
58157 - fixed 3367598 - "length" attribute for table row "cells" always returns 0
58159 * khtml/dom/html_table.cpp:
58160 (HTMLTableRowElement::cells): TR_CELLS, not TABLE_ROWS.
58162 2003-10-30 David Hyatt <hyatt@apple.com>
58164 Fix for 3468916, outline needs its own paint action so that focus rings don't draw under other content.
58166 Reviewed by kocienda
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:
58179 2003-10-30 Maciej Stachowiak <mjs@apple.com>
58181 Fixed Dave's fix to my fix to my fix:
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.
58189 2003-10-30 Ken Kocienda <kocienda@apple.com>
58193 Support for tabbing to links.
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
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
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
58215 <rdar://problem/3468448>: setting focus on a node sets focus on all
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
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
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
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,
58283 (KWQKHTMLPart::nextKeyViewInFrameHierarchy): Remove focus when leaving
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.
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.
58308 2003-10-30 Maciej Stachowiak <mjs@apple.com>
58310 Fix mistake in my last change that I did not mean to commit.
58312 * khtml/html/html_imageimpl.cpp:
58313 (HTMLImageElementImpl::width): Remove extraneous second attempt to
58316 2003-10-30 David Hyatt <hyatt@apple.com>
58318 Put paged-media changes back without the wrongful removal of the style data copy constructors (which
58319 were necessary after all).
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:
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):
58342 2003-10-30 Maciej Stachowiak <mjs@apple.com>
58346 - fixed 3468129 - REGRESSION: FOUC occurs on Surfin' Safari
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):
58357 2003-10-30 Ken Kocienda <kocienda@apple.com>
58359 Rolling out this code since it caused a big performance
58362 2003-10-29 David Hyatt <hyatt@apple.com>
58364 Add the paged media properties to RenderStyle.
58365 They aren't used yet, but they should now be
58366 parsed and interpreted correctly.
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):
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):
58389 2003-10-29 David Hyatt <hyatt@apple.com>
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.
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.
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:
58413 2003-10-29 Maciej Stachowiak <mjs@apple.com>
58417 - fixed 3467499 - REGRESSION: onClick handlers on links don't work (bubbling broken)
58419 * khtml/xml/dom2_eventsimpl.cpp:
58420 (EventImpl::EventImpl): Initialize m_cancelBubble (duh).
58422 2003-10-29 David Hyatt <hyatt@apple.com>
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.
58429 * khtml/rendering/bidi.cpp:
58430 (khtml::RenderBlock::layoutInlineChildren):
58432 2003-10-29 David Hyatt <hyatt@apple.com>
58434 Add the paged media properties to RenderStyle. They aren't used yet, but they should now be
58435 parsed and interpreted correctly.
58437 Reviewed by kocienda
58439 * khtml/css/cssstyleselector.cpp:
58440 (khtml::CSSStyleSelector::applyRule):
58441 * khtml/rendering/render_style.cpp:
58442 (StyleBoxData::operator==):
58443 (StyleFlexibleBoxData::StyleFlexibleBoxData):
58446 (StyleInheritedData::StyleInheritedData):
58447 (StyleInheritedData::operator==):
58448 * khtml/rendering/render_style.h:
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):
58463 2003-10-29 David Hyatt <hyatt@apple.com>
58465 * khtml/css/cssstyleselector.cpp:
58466 (khtml::CSSStyleSelector::applyRule):
58467 * khtml/rendering/render_style.cpp:
58468 (StyleBoxData::operator==):
58469 (StyleFlexibleBoxData::StyleFlexibleBoxData):
58472 (StyleInheritedData::StyleInheritedData):
58473 (StyleInheritedData::operator==):
58474 * khtml/rendering/render_style.h:
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):
58489 2003-10-29 David Hyatt <hyatt@apple.com>
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).
58498 * khtml/xml/dom_docimpl.cpp:
58499 (DocumentImpl::updateLayout):
58501 2003-10-29 David Hyatt <hyatt@apple.com>
58503 Fix crasher in border collapsing code.
58505 Reviewed by kocienda
58507 * khtml/rendering/render_table.cpp:
58508 (RenderTable::cellRight):
58510 2003-10-28 Maciej Stachowiak <mjs@apple.com>
58514 - fixed 3163842 - Citibank cardmember central DHTML menus not working right in Safari
58516 * khtml/ecma/kjs_html.cpp:
58517 (KJS::HTMLElement::getValueProperty): update layout before fetching image properties
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.
58529 2003-10-29 David Hyatt <hyatt@apple.com>
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.
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
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
58549 * khtml/css/cssparser.cpp:
58551 (CSSParser::parseValue):
58552 * khtml/css/cssproperties.c:
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:
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:
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):
58608 (Marquee::marqueeSpeed):
58609 (Marquee::direction):
58610 (Marquee::isHorizontal):
58611 (Marquee::computePosition):
58614 (Marquee::updateMarqueePosition):
58615 (Marquee::updateMarqueeStyle):
58616 (Marquee::timerEvent):
58617 * khtml/rendering/render_layer.h:
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==):
58632 (StyleCSS3NonInheritedData::operator==):
58633 (RenderStyle::RenderStyle):
58634 * khtml/rendering/render_style.h:
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):
58652 2003-10-29 David Hyatt <hyatt@apple.com>
58654 Make <button> be an inline-block.
58656 * khtml/css/html4.css:
58658 2003-10-28 Maciej Stachowiak <mjs@apple.com>
58662 - fixed 3465547 - REGRESSION (100-111)?: window.prompt does not work
58664 * kwq/KWQKHTMLPart.mm:
58665 (KWQKHTMLPart::runJavaScriptPrompt): Return the result properly
58666 instead of always returning false.
58668 2003-10-28 Darin Adler <darin@apple.com>
58670 Reviewed by Maciej.
58672 - fixed 3465504 -- REGRESSION (100-111): text areas with Chinese text in them are wider than ones without
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.
58680 2003-10-28 Darin Adler <darin@apple.com>
58682 Reviewed by Maciej.
58684 - fixed 3464702 -- node.item(x) is not implemented (dynamic menus not filled out at techcu.com)
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.
58690 2003-10-28 Maciej Stachowiak <mjs@apple.com>
58694 - fixed 3379725 - for <a> elements with both onclick and href, Web Kit's behavior does not match other browsers
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.
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.
58719 2003-10-28 Chris Blumenberg <cblu@apple.com>
58721 Fixed: <rdar://problem/3464472>: REGRESSION: New CSS cursor support breaks style="cursor:default
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.
58728 2003-10-28 Maciej Stachowiak <mjs@apple.com>
58732 - fixed 3421393 - window.open does not handle non-integral height/width (small window at saabusa.com)
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.
58739 2003-10-28 Maciej Stachowiak <mjs@apple.com>
58743 - fixed 3464528 - addEventListener does not work for buttons, text areas, or inputs
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.
58749 2003-10-28 Maciej Stachowiak <mjs@apple.com>
58751 Fixed broken build.
58753 * kwq/KWQKPartsPart.mm:
58754 (KParts::ReadOnlyPart::setName): It's a ReadOnlyPart method, not a Part method.
58756 2003-10-28 Maciej Stachowiak <mjs@apple.com>
58760 - fixed 3427046 - href and src attributes don't always give resolved URL
58762 It turns out that all href and src attributes should be resolved
58763 against the base, except for frame elements.
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
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
58780 * khtml/dom/html_inline.cpp:
58781 (HTMLAnchorElement::href): Resolve against base URL.
58783 2003-10-27 Maciej Stachowiak <mjs@apple.com>
58787 - fixed 3083264 - frame names changed by JavaScript are not reflected in WebFrame at the WebKit level
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.
58801 2003-10-28 Darin Adler <darin@apple.com>
58805 - fixed 3465063 -- REGRESSION (107-108): hang when fetching a page with an ad in a subframe (theage.com.au)
58807 * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::openURL): Follow the parent chain properly rather
58808 than repeatedly getting the part's own parent!
58810 2003-10-27 Maciej Stachowiak <mjs@apple.com>
58814 Improved exception blocking in the following ways:
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.
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:
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:
58850 2003-10-26 Darin Adler <darin@apple.com>
58852 * khtml/khtml_part.cpp: (findWordBoundary): Fix small mistake from NULL check-in earlier.
58854 2003-10-26 Darin Adler <darin@apple.com>
58856 * kwq/KWQLoader.mm: (KWQResponseMIMEType): Removed an excess volatile.
58858 2003-10-26 Darin Adler <darin@apple.com>
58860 Reviewed by Maciej.
58862 - fixed 3463624 -- page at cinemakorea.com shows up blank due to kTECBufferBelowMinimumSizeErr from TEC
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.
58868 2003-10-26 Darin Adler <darin@apple.com>
58870 Reviewed by Maciej.
58872 - fixed 3463586 -- WebCore does not compile with new definition of NULL
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.
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.
58882 2003-10-26 Darin Adler <darin@apple.com>
58884 Reviewed by Maciej.
58886 - fixed 3457831 -- REGRESSION: copying particular text and pasting (plain) produces lots of extra text
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.
58892 == Rolled over to ChangeLog-2003-10-25 ==