Reviewed by Chris.
[WebKit-https.git] / WebCore / ChangeLog-2005-08-23
1 2005-02-19  Kevin Decker  <kdecker@apple.com>
2
3         Reviewed by Chris.
4
5         Fixed <rdar://problem/4010765> Flash player can be used to arbitrarily open popup windows without user permission
6         
7         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.
8
9         * kwq/WebCoreBridge.h:
10         * kwq/WebCoreBridge.mm:
11         (-[WebCoreBridge stringByEvaluatingJavaScriptFromString:]): Changed this to invoke the new stringByEvaluatingJavaScriptFromString:forceUserGesture method below.
12         (-[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.
13
14 2005-02-18  Chris Blumenberg  <cblu@apple.com>
15         
16         Fixed: <rdar://problem/3951196> REGRESSION (Mail): too many levels of reply quotes after certain steps
17
18         Reviewed by kocienda.
19
20         * khtml/editing/htmlediting.cpp:
21         (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
22         - 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.
23         - Build up the list of ancestors after we've determined the actual topBlockquote.
24         - Don't insert an extra new line if there is a new start node.
25
26 2005-02-19  Chris Blumenberg  <cblu@apple.com>
27
28         Fixed: <rdar://problem/3978461> smart paste is broken
29
30         Reviewed by kevin.
31
32         * khtml/editing/htmlediting.cpp:
33         (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.
34
35 2005-02-18  Adele Amchan  <adele@apple.com>
36
37         Reviewed by Darin.
38
39         Fix for <rdar://problem/3975568> REGRESSION(125-180)Australian Open pages have drawing problem
40
41         This patch fixes two problems caused by our added support for custom tags.  First, the layout problem at the sites mentioned in the bug
42         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.
43         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 
44         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
45         endTagArray and tagPriorityArray.
46
47         * khtml/html/dtd.h: changed all uses of the endTag array to endTagArray for our new wrapper functions
48         (DOM::tagPriority): added function to check array bounds and to treat custom tags as spans
49         (DOM::endTagRequirement): added function to check array bounds and to treat custom tags as spans
50         * khtml/html/dtd.cpp: changed name of endTag and tagPriority arrays to endTagArray and tagPriorityArray
51         (DOM::checkChild): treat custom tags as spans during this check
52         * khtml/html/html_elementimpl.cpp: changed all uses of the endTag array to the endTagRequirement function
53         (HTMLElementImpl::createContextualFragment):
54         (HTMLElementImpl::setInnerText):
55         (HTMLElementImpl::setOuterText):
56         (HTMLElementImpl::toString):
57         * 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.
58         (KHTMLParser::parseToken):
59         (KHTMLParser::insertNode):
60         * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseTag): changed all uses of the endTag array to the endTagRequirement function
61        * khtml/editing/markup.cpp: changed all uses of the endTag array to the endTagRequirement function
62         (khtml::endMarkup): 
63         (khtml::markup):
64
65 2005-02-18  Jens Alfke  <jens@apple.com>
66
67         Reviewed by Hyatt.
68
69         Fixed build: Whoops, setNeedsLayout's parameter is NOT optional.
70
71         * khtml/html/html_objectimpl.cpp:
72         (HTMLAppletElementImpl::setAllParamsAvailable):
73
74 2005-02-18  Jens Alfke  <jens@apple.com>
75
76         Reviewed by cblu, hyatt.
77
78         Fixes <rdar://problem/3603191> "REGRESSION: Applets not receiving all of the Applet Parameters in Java 1.4.1/1.4.2"
79         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.
80
81         * khtml/html/html_objectimpl.cpp:
82         (HTMLAppletElementImpl::HTMLAppletElementImpl):
83         (HTMLAppletElementImpl::getAppletInstance):
84         (HTMLAppletElementImpl::setAllParamsAvailable):
85         (HTMLAppletElementImpl::allParamsAvailable):
86         * khtml/html/html_objectimpl.h:
87         * khtml/html/htmlparser.cpp:
88         (KHTMLParser::processCloseTag):
89         * khtml/rendering/render_applet.cpp:
90         (RenderApplet::createWidgetIfNecessary):
91
92 2005-02-18  Richard Williamson   <rjw@apple.com>
93
94         Fixed <rdar://problem/4006161> Tiger8A380: Widgets leak dashboard regions
95         
96         We were leaking the DashboardRegionImpls.
97
98         Reviewed by Kevin.
99
100         * khtml/css/css_valueimpl.cpp:
101         (DOM::CSSPrimitiveValueImpl::cleanup):
102
103 2005-02-18  Chris Blumenberg  <cblu@apple.com>
104
105         Fixed: <rdar://problem/3945271> REGRESSION (Mail): pasted plain text should pick up typing style instead of being unstyled
106
107         Reviewed by kocienda.
108
109         * khtml/editing/htmlediting.cpp:
110         (khtml::ApplyStyleCommand::addInlineStyleIfNeeded): don't set class on element returned by createStyleSpanElement since that's already done
111         (khtml::ReplacementFragment::ReplacementFragment): take matchStyle param, don't call computeStylesAndRemoveUnrendered() if !matchStyle
112         (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand): take matchStyle param
113         (khtml::ReplaceSelectionCommand::doApply): if m_matchStyle, use selection.start() as the insertion position and don't call applyStyleToInsertedNodes()
114         * khtml/editing/htmlediting.h:
115         * kwq/WebCoreBridge.h:
116         * kwq/WebCoreBridge.mm:
117         (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:smartReplace:matchStyle:]): take matchStyle param and pass it
118         (-[WebCoreBridge replaceSelectionWithNode:selectReplacement:smartReplace:]): pass NO for matchStyle
119         (-[WebCoreBridge replaceSelectionWithMarkupString:baseURLString:selectReplacement:smartReplace:]): pass NO for matchStyle
120         (-[WebCoreBridge replaceSelectionWithText:selectReplacement:smartReplace:]): pass YES for matchStyle
121
122 2005-02-18  Ken Kocienda  <kocienda@apple.com>
123
124         Reviewed by Chris
125
126         Fix for these bugs:
127         
128         <rdar://problem/4013025> Copy/Paste of quoted word results in removal of any following <cr>
129         <rdar://problem/4013100> Copy/Paste quoted text and then decrease quote level does not change text color
130
131         For the most part, these bugs were caused by errors and lack of foresight on my part when
132         I added the better paste code. Chalk these fixes up to the result of bake time.
133
134         * khtml/editing/htmlediting.cpp:
135         (khtml::ReplacementFragment::ReplacementFragment): Need to move count of number of blocks in
136         fragment after the call to remove unrendered nodes. Meant to do this before, but forgot to.
137         (khtml::ReplacementFragment::removeStyleNodes): Need to remove inline styles from elements!
138         Terrible omission now fixed.
139         (khtml::ReplacementFragment::removeBlockquoteColorsIfNeeded): Remove blockquote colors for now.
140         Code has a more extensive comment in it now to explain the difficulty, and the need for more
141         study and changes.
142         (khtml::ReplaceSelectionCommand::doApply): Need to call applyStyleToInsertedNodes() in the 
143         m_fragment.hasInterchangeNewline() case. This was just missed before.
144         * layout-tests/editing/pasteboard/paste-text-011-expected.txt: Updated results, subtly different, but OK.
145         * layout-tests/editing/pasteboard/paste-text-017-expected.txt: Updated for <p> to <div> change in test content.
146         * layout-tests/editing/pasteboard/paste-text-017.html: Needed to change <p> to <div> to 
147         make this test go with the new design of using <div> tags for default paragraphs.
148
149 2005-02-18  David Hyatt  <hyatt@apple.com>
150
151         Fix for 3974263 (and possibly others).  Don't let fixed tables use maxint as their maxwidth when some
152         cells have percentage values.
153         
154         Reviewed by kocienda
155
156         * khtml/misc/arena.cpp:
157         (ArenaAllocate):
158         * khtml/rendering/table_layout.cpp:
159         (FixedTableLayout::calcWidthArray):
160         (FixedTableLayout::calcMinMaxWidth):
161         (AutoTableLayout::layout):
162
163 2005-02-17  Darin Adler  <darin@apple.com>
164
165         Reviewed by Kevin.
166
167         - fixed <rdar://problem/3998627> WebKit crashes when deleting text in a modified div
168
169         * khtml/khtml_part.cpp: (KHTMLPart::selectionComputedStyle): Add a ref and deref to keep
170         the element alive until it's added to the DOM tree.
171         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::styleForSelectionStart): Ditto.
172
173 2005-02-17  Richard Williamson   <rjw@apple.com>
174
175         Fixed <rdar://problem/3999467> when Osaka-Mono is specified as fixed width font, Osaka used instead
176
177         Fixed w/o introducing a performance regression.  Add early
178         check for Osaka-Mono to avoid expensive call into WebKit.
179
180         Reviewed by Vicki.
181
182         * kwq/KWQFont.mm:
183         (QFont::isFixedPitch):
184
185 2005-02-17  Darin Adler  <darin@apple.com>
186
187         Reviewed by Kevin.
188
189         - fixed <rdar://problem/4011210> REGRESSION (180-181): Maxlength property for INPUT object not working
190
191         * kwq/KWQTextField.mm:
192         (-[KWQTextField textView:shouldChangeTextInRange:replacementString:]): If controller returns
193         YES, go on to call super, since super does the text formatter handling, which we need.
194         (-[KWQSecureTextField textView:shouldChangeTextInRange:replacementString:]): Ditto.
195         (-[KWQSearchField textView:shouldChangeTextInRange:replacementString:]): Ditto.
196
197 === Safari-187 ===
198
199 2005-02-17  Ken Kocienda  <kocienda@apple.com>
200
201         Reviewed by Hyatt
202
203         Fix for this bug:
204         
205         <rdar://problem/4012058> Copy from quoted text and paste results in blue text
206
207         The relatively-new paste code tries hard to retain style of the content from the
208         source location. However, in the case of quoted material in mail messages, we do 
209         not want to carry the quoting color along. This fixes the problem by factoring
210         out such colors.
211
212         * khtml/editing/htmlediting.cpp:
213         (khtml::ReplacementFragment::computeStylesAndRemoveUnrendered): Now calls removeBlockquoteColorsIfNeeded()
214         to fix bug.
215         (khtml::ReplacementFragment::removeBlockquoteColorsIfNeeded): New function. Factors out colors that are
216         the result of text being quoted. 
217         (khtml::isNodeRendered): Function moved in file. No other change.
218         (khtml::isProbablyBlock): Function moved in file. No other change.
219         (khtml::closestMailBlockquote): New function. Helps fix bug.
220         (khtml::isMailBlockquote): Function moved to be free-floating instead of being a 
221         member of CompositeEditCommand. No other change.
222         * khtml/editing/htmlediting.h: Moved around some functions. Added removeBlockquoteColorsIfNeeded().
223         * khtml/editing/markup.cpp: Remove redundant static implementation of isMailBlockquote.
224
225 2005-02-17  Richard Williamson   <rjw@apple.com>
226
227         Fixed <rdar://problem/4008163> dynamic support for -apple-dashboard-region is flakey
228
229         Style operator== wasn't including regions.
230
231         Reviewed by Darin.
232
233         * khtml/rendering/render_style.cpp:
234         (StyleCSS3NonInheritedData::operator==):
235
236 2005-02-17  Adele Amchan  <adele@apple.com>
237
238         Reviewed by Chris.
239
240         fix for <rdar://problem/4010028> 8A383: Safari v185 crash loading united.com multi city fare finder page.
241
242         * khtml/dom/dom_string.cpp: (DOM::DOMString::operator += ): prevent nil dereference when DOMString being added is nil
243
244 2005-02-17  Jens Alfke  <jens@apple.com>
245
246         Reviewed by Hyatt.
247
248         Fix for rdar://3963151 "Mail only pasted ~950 of 1407 text lines into my message!"
249         Force tokenizer to run synchronously while parsing document fragments, so it doesn't stop halfway through and cause truncated content.
250
251         * khtml/html/html_elementimpl.cpp:
252         (HTMLElementImpl::createContextualFragment):
253         * khtml/html/htmltokenizer.cpp:
254         (khtml::HTMLTokenizer::reset):
255         (khtml::HTMLTokenizer::begin):
256         (khtml::HTMLTokenizer::setForceSynchronous):
257         (khtml::HTMLTokenizer::continueProcessing):
258         * khtml/html/htmltokenizer.h:
259
260 2005-02-17  Ken Kocienda  <kocienda@apple.com>
261
262         Reviewed by Hyatt
263
264         Fix for this bug:
265         
266         <rdar://problem/3982183> Mail's HTML paragraphs appear with unintended margins in Entourage and Eudora
267
268         * khtml/editing/htmlediting.cpp:
269         (khtml::createDefaultParagraphElement): Change element we make from <p> to <div>.
270         This fixes the problem, as these other mailers show <div> elements without margins.
271         
272         Some test files needed to change to preserve the ability to "eyeball" the results.
273         Many others changed just because their <p> elements changed to <div> elements.
274         
275         * layout-tests/editing/deleting/delete-3928305-fix-expected.txt
276         * layout-tests/editing/deleting/delete-at-paragraph-boundaries-002-expected.txt
277         * layout-tests/editing/inserting/insert-div-013-expected.txt
278         * layout-tests/editing/inserting/insert-div-013.html
279         * layout-tests/editing/inserting/insert-div-014-expected.txt
280         * layout-tests/editing/inserting/insert-div-014.html
281         * layout-tests/editing/inserting/insert-div-018-expected.txt
282         * layout-tests/editing/inserting/insert-div-018.html
283         * layout-tests/editing/inserting/insert-div-019-expected.txt
284         * layout-tests/editing/inserting/insert-div-019.html
285         * layout-tests/editing/inserting/insert-div-020-expected.txt
286         * layout-tests/editing/inserting/insert-div-020.html
287         * layout-tests/editing/inserting/insert-div-021-expected.txt
288         * layout-tests/editing/inserting/insert-div-021.html
289         * layout-tests/editing/style/remove-underline-across-paragraph-expected.txt
290         * layout-tests/editing/style/remove-underline-across-paragraph-in-bold-expected.txt
291         * layout-tests/editing/style/remove-underline-after-paragraph-expected.txt
292         * layout-tests/editing/style/remove-underline-after-paragraph-in-bold-expected.txt
293
294 2005-02-17  Ken Kocienda  <kocienda@apple.com>
295
296         Reviewed by Hyatt
297
298         Fix for this bug:
299         
300         <rdar://problem/3996737> REGRESSION (Mail): Copy/paste in Mail inserts returns
301
302         The root cause of the problem is that a couple of pieces of code in AppKit and Mail 
303         insert newlines into markup as it is generated, and the paste code in WebCore was 
304         not smart about nodes that do not render (as is the case with these added newlines). 
305         So, the solution is to remove these unrendered nodes in the paste code in a pre-pass. 
306         Fortunately, my recent addition of such a pass to the paste code to handle styles 
307         gave me a convenient place to put this new logic.
308
309         * khtml/editing/htmlediting.cpp:
310         (khtml::ReplacementFragment::ReplacementFragment): Use new name for function below.
311         (khtml::ReplacementFragment::computeStylesAndRemoveUnrendered): Name change from computeStylesForNodes().
312         Now does the additional work of removing unrendered nodes, as mentioned above.
313         (khtml::isNodeRendered): New helper function.
314         * khtml/editing/htmlediting.h: Updated as necessary.
315
316 2005-02-17  Ken Kocienda  <kocienda@apple.com>
317
318         Reviewed by Hyatt
319
320         Fix for this bug:
321         
322         <rdar://problem/3998892> REGRESSION (Mail): bolding a selection from end of line changes unselected text on starting line.
323         
324         The styling code did not move to the next node when the starting position was 
325         at the last offset of a node. Instead, it styled it. Clearly wrong. Solution 
326         is to borrow a check from the delete algorithm. Though I call caretMaxOffset(),
327         which I consider deprecated, it is still the simplest and most strightforward
328         way to ask the right question for this kind of problem.
329
330         * khtml/editing/htmlediting.cpp:
331         (khtml::ApplyStyleCommand::applyInlineStyle): Fixed, as described above.
332         * layout-tests/editing/style/style-3998892-fix-expected.txt: Added.
333         * layout-tests/editing/style/style-3998892-fix.html: Added.
334
335 2005-02-16  Chris Blumenberg  <cblu@apple.com>
336         
337         Fixed: <rdar://problem/3954842> Forward/reply to an HTML email can result in nothing (in cases with <link> tags for CSS)
338
339         Reviewed by john.
340
341         * khtml/xml/dom_nodeimpl.cpp:
342         (NodeBaseImpl::addChild): don't call insertedIntoDocument on the added child if "this" itself is not in the document.
343
344 2005-02-16  John Sullivan  <sullivan@apple.com>
345
346         Written by Darin, reviewed by Maciej and me
347         
348         - change required to make previous checkin work with English language RSS pages
349
350         * kwq/KWQKURL.h:
351         new private method isHierarchical
352         * kwq/KWQKURL.mm:
353         (KURL::KURL):
354         add hierarchical base URL check when determining whether the URL is absolute
355         (KURL::isHierarchical):
356         new method, returns true if this is a valid URL with a slash just past the scheme's trailing colon
357
358 2005-02-16  John Sullivan  <sullivan@apple.com>
359
360         Written by Darin, reviewed by me.
361         
362         - WebCore part of fix for <rdar://problem/4007384> 
363         FILTER: Bookmark of RSS with Japanese search word & multiple RSS pages loses filter
364
365         * kwq/DOM.mm:
366         (-[DOMElement _getURLAttribute:]):
367         new SPI method, uses parseURL and completeURL to get valid URL from attribute value
368
369         * kwq/DOMPrivate.h:
370         declare new SPI method
371
372 2005-02-15  Maciej Stachowiak  <mjs@apple.com>
373
374         Reviewed by Darin.
375
376         <rdar://problem/3942428> reproducible crash loading cbs.sportsline.com
377         
378         This change reverts the fix for <rdar://problem/3805311>, and
379         re-fixes it in a different (better) way. Instead of preventing
380         programmatic open from setting the parsing flag, instead make sure
381         that programmatic close resets it.
382
383         * khtml/khtml_part.cpp:
384         (KHTMLPart::openURL):
385         (KHTMLPart::didExplicitOpen):
386         (KHTMLPart::closeURL):
387         (KHTMLPart::begin):
388         (KHTMLPart::end):
389         (KHTMLPart::endIfNotLoading):
390         (KHTMLPart::slotFinishedParsing):
391         (KHTMLPart::checkEmitLoadEvent):
392         * khtml/khtml_part.h:
393         * khtml/khtmlpart_p.h:
394         (KHTMLPartPrivate::KHTMLPartPrivate):
395         * khtml/xml/dom_docimpl.cpp:
396         (DocumentImpl::open):
397         (DocumentImpl::implicitOpen):
398         (DocumentImpl::close):
399         (DocumentImpl::implicitClose):
400         * khtml/xml/dom_docimpl.h:
401
402 2005-02-15  David Harrison  <harrison@apple.com>
403
404         Reviewed by Maciej.
405
406         <rdar://problem/3933665> smart delete seems to delete too much after expanding selection with arrow keys
407
408         Fixed by updating the selection granularity.  Only byWord granularity enables smart delete, but in this
409         case the granularity changed from byWord to byCharacter.
410
411         * khtml/khtml_part.cpp:
412         (KHTMLPart::setSelectionGranularity):
413         * khtml/khtml_part.h:
414         * kwq/WebCoreBridge.mm:
415         (-[WebCoreBridge rangeByExpandingSelectionWithGranularity:]):
416         (-[WebCoreBridge rangeByAlteringCurrentSelection:direction:granularity:]):
417         (-[WebCoreBridge alterCurrentSelection:direction:granularity:]):
418
419 2005-02-15  David Harrison  <harrison@apple.com>
420
421         Reviewed by Darin.
422
423         (continued) <rdar://problem/4004305> REGRESSION (Mail): Command-right-arrow on wrapped text goes to end of previous line
424
425         This was supposed have been committed yesterday with the other part of the fix, but was not.
426         
427         * khtml/editing/visible_units.cpp:
428         (khtml::endOfWord):
429
430 2005-02-15  Ken Kocienda  <kocienda@apple.com>
431
432         Reviewed by John
433         
434         Fix for this bug:
435         
436         <rdar://problem/3951178> REGRESSION (Mail): blank line lost after pasting as quotation
437         
438         Problem was that the blank line after the selection was getting deleted incorrectly since the
439         paste code thought this was an unneeded placeholder rather than a placeholder outside of the
440         selection.
441
442         * khtml/editing/htmlediting.cpp:
443         (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): Now calls findBlockPlaceholder.
444         (khtml::CompositeEditCommand::findBlockPlaceholder): Moved finding code formerly in 
445         removeBlockPlaceholderIfNeeded to this new helper.
446         (khtml::ReplaceSelectionCommand::doApply): Do not delete placeholder up front. Call 
447         findBlockPlaceholder, and delete it later if needed in the already-existing cleanup step.
448         * khtml/editing/htmlediting.h: Add new function.
449
450         New layout test.
451
452         * layout-tests/editing/pasteboard/paste-text-017-expected.txt: Added.
453         * layout-tests/editing/pasteboard/paste-text-017.html: Added.
454
455         Result changed for the better.
456
457         * layout-tests/editing/pasteboard/paste-text-011-expected.txt
458
459 2005-02-14  David Harrison  <harrison@apple.com>
460
461         Reviewed by Darin.
462
463         <rdar://problem/4004305> REGRESSION (Mail): Command-right-arrow on wrapped text goes to end of previous line
464
465         Reviewed by Darin.
466
467         <rdar://problem/4004305> REGRESSION (Mail): Command-right-arrow on wrapped text goes to end of previous line
468
469         * khtml/editing/visible_text.cpp:
470         (khtml::SimplifiedBackwardsTextIterator::advance):
471         Add BR in for <rdar://problem/3917929> fix only if leaving a visible text node.
472         
473         * khtml/editing/visible_units.cpp:
474         (khtml::endOfWord):
475         Do not move left over a paragraph boundary.
476
477 2005-02-14  Darin Adler  <darin@apple.com>
478
479         Reviewed by John.
480
481         - fixed <rdar://problem/3686434> Safari uses too much RAM on file upload, leading to malloc errors and crashes (HP printers)
482
483         * khtml/html/html_formimpl.cpp:
484         (DOM::FormDataList::begin): Updated to use a list of FormDataListItem instead of QCString.
485         (DOM::FormDataList::end): Ditto.
486         (DOM::HTMLFormElementImpl::formData): Same here, and also use appendFile rather than appendData
487         when we encounter a path name rather than data.
488         (DOM::HTMLInputElementImpl::appendFormData): Use appendFile here rather than reading the file
489         in; the reading now happens inside WebKit.
490         (DOM::FormDataList::appendString): Updated for FormDataListItem.
491         (DOM::FormDataList::appendFile): Added.
492
493         * ForwardingHeaders/kfileitem.h: Emptied out the file; no longer includes KWQKFileItem.h.
494         * ForwardingHeaders/netaccess.h: Emptied out the file; no longer includes KWQKIONetAccess.h.
495         * kwq/KWQKFileItem.h: Removed.
496         * kwq/KWQKFileItem.mm: Removed.
497         * kwq/KWQKIONetAccess.h: Removed.
498         * kwq/KWQKIONetAccess.mm: Removed.
499         * WebCore.pbproj/project.pbxproj: Removed the 4 files above.
500
501         - small unrelated fix (not reviewed by John)
502
503         * khtml/ecma/kjs_window.cpp: (Window::isSafeScript): Put some logging code outside if statements so it works all the time.
504
505 2005-02-14  David Harrison  <harrison@apple.com>
506
507         Reviewed by Darin.
508
509         <rdar://problem/4004305> REGRESSION (Mail): Command-right-arrow on wrapped text goes to end of previous line
510
511         Fixed nextLinePosition to calculate affinity rather than take it as a parameter.  Propagated the parameter change out to related methods.
512
513         * khtml/editing/htmlediting.cpp:
514         (khtml::DeleteSelectionCommand::initializePositionData):
515         (khtml::InsertLineBreakCommand::doApply):
516         (khtml::InsertParagraphSeparatorCommand::doApply):
517         (khtml::InsertTextCommand::input):
518         (khtml::ReplaceSelectionCommand::doApply):
519         (khtml::ReplaceSelectionCommand::applyStyleToInsertedNodes):
520         * khtml/editing/selection.cpp:
521         (khtml::Selection::modifyExtendingRightForward):
522         (khtml::Selection::modifyMovingRightForward):
523         (khtml::Selection::modifyExtendingLeftBackward):
524         (khtml::Selection::modifyMovingLeftBackward):
525         (khtml::Selection::modify):
526         (khtml::Selection::validate):
527         * khtml/editing/visible_position.cpp:
528         (khtml::visiblePositionsOnDifferentLines):
529         * khtml/editing/visible_units.cpp:
530         (khtml::rootBoxForLine):
531         (khtml::startOfLine):
532         (khtml::endOfLine):
533         (khtml::inSameLine):
534         (khtml::isStartOfLine):
535         (khtml::isEndOfLine):
536         (khtml::previousLinePosition):
537         (khtml::nextLinePosition):
538         (khtml::previousSentencePosition):
539         (khtml::nextSentencePosition):
540         (khtml::previousParagraphPosition):
541         (khtml::nextParagraphPosition):
542         * khtml/editing/visible_units.h:
543         * khtml/khtml_events.cpp:
544         (khtml::MouseEvent::offset):
545         * khtml/khtml_part.cpp:
546         (KHTMLPart::isPointInsideSelection):
547         (KHTMLPart::selectClosestWordFromMouseEvent):
548         (KHTMLPart::handleMousePressEventTripleClick):
549         (KHTMLPart::handleMousePressEventSingleClick):
550         (KHTMLPart::handleMouseMoveEventSelection):
551         (KHTMLPart::khtmlMouseReleaseEvent):
552         * khtml/rendering/render_block.cpp:
553         (khtml::RenderBlock::positionForCoordinates):
554         * khtml/rendering/render_block.h:
555         * khtml/rendering/render_br.cpp:
556         (RenderBR::positionForCoordinates):
557         * khtml/rendering/render_br.h:
558         * khtml/rendering/render_container.cpp:
559         (RenderContainer::positionForCoordinates):
560         * khtml/rendering/render_container.h:
561         * khtml/rendering/render_inline.cpp:
562         (RenderInline::positionForCoordinates):
563         * khtml/rendering/render_inline.h:
564         * khtml/rendering/render_object.cpp:
565         (RenderObject::caretRect):
566         (RenderObject::positionForCoordinates):
567         * khtml/rendering/render_object.h:
568         * khtml/rendering/render_replaced.cpp:
569         (RenderReplaced::positionForCoordinates):
570         * khtml/rendering/render_replaced.h:
571         * khtml/rendering/render_text.cpp:
572         (RenderText::positionForCoordinates):
573         * khtml/rendering/render_text.h:
574         * khtml/xml/dom_position.cpp:
575         (DOM::Position::previousCharacterPosition):
576         (DOM::Position::nextCharacterPosition):
577         (DOM::Position::leadingWhitespacePosition):
578         (DOM::Position::trailingWhitespacePosition):
579         * khtml/xml/dom_position.h:
580         * kwq/KWQAccObject.mm:
581         (-[KWQAccObject value]):
582         (-[KWQAccObject accessibilityAttributeValue:]):
583         (-[KWQAccObject doAXLineForTextMarker:]):
584         (-[KWQAccObject doAXTextMarkerRangeForLine:]):
585         (-[KWQAccObject doAXTextMarkerForPosition:]):
586         (-[KWQAccObject doAXLeftLineTextMarkerRangeForTextMarker:]):
587         (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
588         (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
589         (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]):
590         * kwq/KWQKHTMLPart.mm:
591         * kwq/WebCoreBridge.mm:
592         (-[WebCoreBridge _visiblePositionForPoint:]):
593
594 05-02-07  Maciej Stachowiak  <mjs@apple.com>
595
596         Reviewed by Ken and John.
597
598         Re-fixed a specific case of the following:
599
600         <rdar://problem/3790449> REGRESSION (Mail): underline behavior is flaky because of how CSS handles text-decoration
601
602         Oddly, Cmd-B, Cmd-U, type some text, return, Cmd-U, Cmd-B, type
603         some text, worked fine. But hitting the second Cmd-B before the
604         second Cmd-U still failed to remove underlining. The reason for
605         this is that our code to compute the style of the current position
606         did not work when you had a typing style and were positioned right
607         at a <br> element. For various reasons, this did not show up for
608         bold and italic, since those are handled through the font manager.
609
610         The following change fixes this - for elements that can't have
611         children, we add the dummy span after the element of interest,
612         rather than as a child of it.
613         
614         * khtml/khtml_part.cpp:
615         (KHTMLPart::selectionComputedStyle): 
616
617 2005-02-11  David Harrison  <harrison@apple.com>
618
619         Reviewed by Darin.
620
621         <rdar://problem/3978980> Double Clicking on a line in Mail selected the entire body
622
623         * khtml/editing/visible_units.cpp:
624         (khtml::startOfWord):
625         (khtml::endOfWord):
626         Pay attention to being at the end of a paragraph.
627         
628         (khtml::previousLinePosition):
629         (khtml::nextLinePosition):
630         (khtml::endOfParagraph):
631         Use DOWNSTREAM per recent affinity changes.
632
633 2005-02-11  Richard Williamson   <rjw@apple.com>
634
635         Fixed <rdar://problem/3985118> DOM objects not being marshaled on JS->native calls
636
637         Re-factored how 'native' wrappers for JS objects are created.  The interpreter now
638         creates these wrappers.  The WebCore subclass of the interpreter now overrides
639         createLanguageInstanceForValue() and creates a DOM ObjC wrapper for DOM objects.
640
641         * WebCore.pbproj/project.pbxproj:
642         * khtml/ecma/kjs_binding.cpp:
643         (ScriptInterpreter::createLanguageInstanceForValue):
644         * khtml/ecma/kjs_binding.h:
645         * kwq/DOMUtility.mm: Added.
646         (KJS::ScriptInterpreter::createObjcInstanceForValue):
647         * kwq/KWQKHTMLPart.mm:
648         (KWQKHTMLPart::getAppletInstanceForView):
649         (getInstanceForView):
650         (KWQKHTMLPart::getEmbedInstanceForView):
651         (KWQKHTMLPart::getObjectInstanceForView):
652
653 2005-02-11  Chris Blumenberg  <cblu@apple.com>
654
655         Fixed: <rdar://problem/3937352> Quote level not maintained when copied and pasted within a Mail message
656
657         Reviewed by harrison.
658
659         * khtml/editing/markup.cpp:
660         (khtml::isMailBlockquote): new 
661         (khtml::createMarkup): retain the Mail quote level by including all ancestor mail block quotes
662         * khtml/rendering/render_block.cpp:
663         (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
664         * khtml/rendering/render_text.cpp:
665         (RenderText::positionForCoordinates): ditto
666
667 2005-02-11  Adele Amchan  <adele@apple.com>
668
669         Reviewed by Darin.
670
671         fix for <rdar://problem/4004004> no need to add body element for xml documents
672
673         In the fix for <rdar://problem/3758785> we decided to add a body element when closing a document 
674         to ensure that the onload handler would fire.  This is unnecessary for xml documents, 
675         so now we also check to see if we're dealing with an html document before adding the body element.
676
677         * khtml/xml/dom_docimpl.cpp: (DocumentImpl::close): 
678
679 2005-02-11  Adele Amchan  <adele@apple.com>
680
681         Reviewed by Darin.
682
683         * layout-tests/apple-only/base/www.excite.com/index-expected.txt: updates tests because of custom tag change.
684         * layout-tests/apple-only/base/www.msnbc.com/index-expected.txt:
685         * layout-tests/apple-only/base/www.time.com/index-expected.txt:
686         * layout-tests/apple-only/base/www.travelocity.com/index-expected.txt:
687         * layout-tests/apple-only/base/www.zdnet.com/index-expected.txt:
688         * layout-tests/fast/overflow/003-expected.txt:
689
690         * layout-tests/fast/js/window-object-cross-frame-calls-expected.txt: updated test because of added Body (see rdar://problem/3758785)
691
692 === Safari-186 ===
693
694 2005-02-11  Darin Adler  <darin@apple.com>
695
696         Reviewed by John.
697
698         - 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
699
700         * khtml/xml/dom_docimpl.h: Added a new openInternal function for use by KHTMLPart.
701         * khtml/xml/dom_docimpl.cpp:
702         (DocumentImpl::open): Changed to do everything we did before, but also clear the URL and set the
703         base URL based on the enclosing document. This is the basic JavaScript/DOM operation of opening a
704         document, which is supposed to clear the document, including the URL. In the long run we might want
705         to do even more document "resetting and clearing" in here, but this URL clearing is what's needed
706         now to fix the most important problem.
707         (DocumentImpl::openInternal): Moved the old open code in here, except for the "parsing" check, which
708         is unnecessary and inappropriate in the one place we call this.
709
710         * khtml/khtml_part.cpp: (KHTMLPart::begin): Call openInternal instead of open.
711
712 2005-02-10  Ken Kocienda  <kocienda@apple.com>
713
714         Reviewed by Hyatt
715
716         Fix for this bug:
717         
718         <rdar://problem/3992092> 8A374: Mail crash while pasting - RemoveNodeCommand
719
720         * khtml/editing/htmlediting.cpp:
721         (khtml::ReplaceSelectionCommand::doApply): Code tried to remove a node that was no longer in 
722         the document. We try to do a good job of detecting all these cases, and generally do. This
723         one was missed. Fixed.
724
725 2005-02-10  Darin Adler  <darin@apple.com>
726
727         Reviewed by Harrison.
728
729         - added support needed to fix <rdar://problem/3991225> Format->Style->Underline menu item does not get checked when selected text is underlined
730
731         * kwq/WebCoreBridge.h: Added selectionHasStyle: method.
732         * kwq/WebCoreBridge.mm: (-[WebCoreBridge selectionHasStyle:]): Added. Calls selectionHasStyle on the part.
733
734 2005-02-10  Darin Adler  <darin@apple.com>
735
736         Reviewed by Harrison.
737
738         - fixed <rdar://problem/3990484> cursor changes to I-beam when moving over text in widgets, even when selection off via CSS
739
740         * khtml/khtmlview.cpp: (KHTMLView::viewportMouseMoveEvent): Changed code to check canSelect when deciding
741         whether to show an I-beam cursor.
742
743         * khtml/rendering/render_object.h: Added canSelect.
744         * khtml/rendering/render_object.cpp:
745         (selectStartNode): Added. Helper function with the guts of shouldSelect.
746         (RenderObject::canSelect): Added. Like shouldSelect, but does not call the "start selecting" event handler.
747         (RenderObject::shouldSelect): Refactored to use selectStartNode.
748
749         * khtml/css/cssvalues.c: Regnerated with newer gperf.
750
751 2005-02-10  David Hyatt  <hyatt@apple.com>
752
753         Fix for 3867759, .mac regression where scrollers don't show up.  Make sure you can set the .width and
754         .height properties on the Image object.
755         
756         Reviewed by John Sullivan
757
758         * khtml/ecma/kjs_html.cpp:
759         (ImageConstructorImp::construct):
760         (Image::getValueProperty):
761         (Image::putValue):
762         (Image::Image):
763         * khtml/ecma/kjs_html.h:
764
765 2005-02-10  Ken Kocienda  <kocienda@apple.com>
766
767         Reviewed by Chris
768
769         Fix for this bug:
770         
771         <rdar://problem/3965158> Drag-n-drop within a rich text message sometimes changes the color of the dragged text
772         
773         This change fixes the bug....and much more. Now, for the first time, the paste code can do "smart merging"
774         or "smooshing" of styles during its operation. Since this new code is actively, rather than passively
775         working with styles, it fixes the bug, and lays the groundwork for similar work we need to do to
776         preserve quote levels in Mail.
777
778         * khtml/css/css_valueimpl.cpp:
779         (DOM::CSSMutableStyleDeclarationImpl::clear): New method.
780         (DOM::CSSMutableStyleDeclarationImpl::removeBlockProperties): Ditto.
781         (DOM::CSSMutableStyleDeclarationImpl::removePropertiesInSet): Ditto.
782         (DOM::operator==): Add operator for CSSProperty.
783         * khtml/css/css_valueimpl.h: Declare new functions.
784         * khtml/editing/htmlediting.cpp:
785         (khtml::isEmptyStyleSpan): Improved the test in this function, rolling together the old implementation
786         with some code that did this work inline elsewhere. Sum of the parts is better than either test was by itself.
787         (khtml::isStyleSpan): Check for ID_SPAN.
788         (khtml::ApplyStyleCommand::removeCSSStyle): Call isEmptyStyleSpan. This was the place with an inline implementation before.
789         (khtml::ReplacementFragment::ReplacementFragment): Now takes a DocumentImpl argument. No longer does a "default style"
790         check, but rather calls functions which do a similar check to that, and much more.
791         (khtml::ReplacementFragment::~ReplacementFragment): Deref document, and computed styles.
792         (khtml::ReplacementFragment::styleForNode): New helper. Looks up and returns computed style for a node.
793         (khtml::ReplacementFragment::removeNodePreservingChildren): New helper.
794         (khtml::ReplacementFragment::computeStylesForNodes): New function which computes the "desired" style for
795         every node in the fragment. This information is used later after paste is done as a reference for testing
796         what styles need to be added, and which can be removed as redundant, from all the nodes inserted by the
797         replacement code.
798         (khtml::ReplacementFragment::removeStyleNodes): Clears out all style nodes from the fragment. They are
799         no longer needed after the call to computeStylesForNodes(),
800         (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand): Add a document to the call to initialize the
801         command's ReplacementFragment.
802         (khtml::ReplaceSelectionCommand::doApply): Call applyStyleToInsertedNodes() after inserting nodes to make
803         styles come out right.
804         (khtml::ReplaceSelectionCommand::applyStyleToInsertedNodes): This is the "style smooshing" function. It 
805         computes the styles that need to be added to each node inserted, comparing the style it gets from just
806         being inserted into its correct destination with the computed "desired style" done in the 
807         ReplacementFragment constructor. It then adds in all the necessary styles, and will also remove redundant styles.
808         * khtml/editing/htmlediting.h: Update declarations and member variables as needed.
809         * khtml/editing/markup.cpp:
810         (khtml::startMarkup): Add additional style annotations to the markup we generate, so that paste code can preserve it.
811         (khtml::markup): Ditto.
812         (khtml::createMarkup): Ditto.
813         
814         These test results are subtly better with this change. They no longer have an unneeded empty span.
815         Visually the same as before.
816         
817         * layout-tests/editing/style/remove-underline-across-paragraph-expected.txt
818         * layout-tests/editing/style/remove-underline-across-paragraph-in-bold-expected.txt
819         * layout-tests/editing/style/remove-underline-expected.txt
820         * layout-tests/editing/style/remove-underline-from-stylesheet-expected.txt
821
822         New tests:
823
824         * layout-tests/editing/style/smoosh-styles-001-expected.txt
825         * layout-tests/editing/style/smoosh-styles-002-expected.txt
826         * layout-tests/editing/style/smoosh-styles-001.html
827         * layout-tests/editing/style/smoosh-styles-002.html
828
829 2005-02-10  Darin Adler  <darin@apple.com>
830
831         Reviewed by Adele.
832
833         - fixed <rdar://problem/3974988> WebHTMLView drops scroll wheel events when deltas are 0
834
835         * kwq/WebCoreScrollView.m: (-[WebCoreScrollView autoforwardsScrollWheelEvents]): Added, for Tiger only.
836         For Tiger, removed the override of scrollWheel:, which doesn't work quite right because of how the
837         delta attributes return all 0 for newfangled scrolling events from the new trackpads.
838
839 2005-02-10  David Harrison  <harrison@apple.com>
840
841         Reviewed by Darin.
842
843         <rdar://problem/3991532> REGRESSION (Mail): Triple-click on trailing blank line should select previous line but doesn't
844
845         * khtml/css/cssvalues.c:
846         (hash_val):
847         (findValue):
848         * khtml/editing/selection.cpp:
849         (khtml::Selection::validate):
850         Do moral equiavalent of LeftWordIfOnBoundary for PARAGRAPH.
851
852 2005-02-10  David Harrison  <harrison@apple.com>
853
854         Reviewed by Darin.
855
856         <rdar://problem/3991848> Double-click on first character selects wrong item
857
858         * khtml/editing/selection.cpp:
859         (khtml::Selection::validate):
860         Honor the fact that clicking on a character positions the cursor on the left side of the character.
861
862 2005-02-10  David Hyatt  <hyatt@apple.com>
863
864         Fix for 3980778, repro crash in RootInlineBox::paint.  Make sure that when merging blocks we dirty them for layout
865         up front. That way as we do the merge, we dont attempt to examine the lines in dirtyLinesForChangedChild.
866         
867         Reviewed by mjs
868
869         * khtml/rendering/render_block.cpp:
870         (khtml::RenderBlock::removeChild):
871
872 2005-02-10  David Hyatt  <hyatt@apple.com>
873
874         Fix for 3987010, fix a bug that caused the self-collapsing-block-cleared-float bit to never get set correctly.
875         
876         Reviewed by mjs
877
878         * khtml/rendering/render_block.h:
879         (khtml::RenderBlock::MarginInfo::setSelfCollapsingBlockClearedFloat):
880
881 2005-02-10  David Hyatt  <hyatt@apple.com>
882
883         Fix  for 3992440, text not wrapping correctly on half moon bay web site.  Refine an incorrect optimization I
884         added to be less restrictive.
885         
886         Reviewed by mjs
887
888         * khtml/rendering/render_block.cpp:
889         (khtml::RenderBlock::layoutBlockChildren):
890
891 2005-02-08  Maciej Stachowiak  <mjs@apple.com>
892
893         Reviewed by Darin.
894
895         <rdar://problem/3977973> pages on ebay leak referenced JavaScript objects -- over time browsing becomes super-slow
896
897         I fixed this by removing all event listeners for a document, it's
898         children, and any disconnected nodes that used to be in the
899         document at document detach time. Mozilla temporarily disables
900         event listeners on such nodes, but re-enables them if you
901         re-parant a node into a new document. However, in WebCore, you
902         can't re-parent a node into another document, so there is no
903         observable change in behavior.
904
905         We have to do this to break the possible reference cycles between
906         event listeners and the dom nodes they are attached to (e.g. via
907         scope chain, as in this case).
908
909         * khtml/xml/dom_docimpl.cpp:
910         (DocumentImpl::detach):
911         (DocumentImpl::removeAllEventListenersFromAllNodesx):
912         (DocumentImpl::registerDisconnectedNodeWithEventListeners):
913         (DocumentImpl::unregisterDisconnectedNodeWithEventListeners):
914         (DocumentImpl::removeAllDisconnectedNodeEventListeners):
915         * khtml/xml/dom_docimpl.h:
916         * khtml/xml/dom_nodeimpl.cpp:
917         (NodeImpl::~NodeImpl):
918         (NodeImpl::addEventListener):
919         (NodeImpl::removeEventListener):
920         (NodeImpl::removeAllEventListeners):
921         (NodeImpl::removeHTMLEventListener):
922         (NodeImpl::insertedIntoDocument):
923         (NodeImpl::removedFromDocument):
924         * khtml/xml/dom_nodeimpl.h:
925
926 2005-02-09  Chris Blumenberg  <cblu@apple.com>
927
928         Fixed: <rdar://problem/3999213> Sometimes 2 Windows Media Player plugin instances are loaded
929
930         Reviewed by hyatt.
931
932         * khtml/html/html_objectimpl.cpp:
933         (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.
934         (HTMLObjectElementImpl::recalcStyle): ditto
935
936 2005-02-09  David Harrison  <harrison@apple.com>
937
938         Reviewed by Darin.
939         
940         <rdar://problem/3937447> Mail-689: Arrow key navigation in new message body stops working when a line ends with a bold word
941         
942         Added affinity to VisiblePosition.  Changed Selection code to use affinity more.
943         
944         (Partial) <rdar://problem/3982096> editing/pasteboard/paste-text-007 is failing
945         
946         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.
947
948         * khtml/ecma/kjs_window.cpp:
949         (SelectionFunc::tryCall):
950         * khtml/editing/htmlediting.cpp:
951         (khtml::EditCommandPtr::setStartingSelection):
952         (khtml::EditCommandPtr::setEndingSelection):
953         (khtml::EditCommand::setStartingSelection):
954         (khtml::EditCommand::setEndingSelection):
955         (khtml::CompositeEditCommand::deleteInsignificantTextDownstream):
956         (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
957         (khtml::ApplyStyleCommand::splitTextAtStartIfNeeded):
958         (khtml::ApplyStyleCommand::splitTextAtEndIfNeeded):
959         (khtml::ApplyStyleCommand::splitTextElementAtStartIfNeeded):
960         (khtml::ApplyStyleCommand::splitTextElementAtEndIfNeeded):
961         (khtml::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
962         (khtml::ApplyStyleCommand::mergeEndWithNextIfIdentical):
963         (khtml::ApplyStyleCommand::joinChildTextNodes):
964         (khtml::DeleteSelectionCommand::initializePositionData):
965         (khtml::DeleteSelectionCommand::handleGeneralDelete):
966         (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
967         (khtml::DeleteSelectionCommand::doApply):
968         (khtml::InsertLineBreakCommand::doApply):
969         (khtml::InsertParagraphSeparatorCommand::doApply):
970         (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
971         (khtml::InsertTextCommand::input):
972         (khtml::MoveSelectionCommand::doApply):
973         (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand):
974         (khtml::ReplaceSelectionCommand::~ReplaceSelectionCommand):
975         (khtml::ReplaceSelectionCommand::doApply):
976         (khtml::ReplaceSelectionCommand::completeHTMLReplacement):
977         (khtml::ReplaceSelectionCommand::updateNodesInserted):
978         (khtml::TypingCommand::deleteKeyPressed):
979         (khtml::TypingCommand::forwardDeleteKeyPressed):
980         (khtml::TypingCommand::markMisspellingsAfterTyping):
981         * khtml/editing/htmlediting.h:
982         * khtml/editing/selection.cpp:
983         (khtml::Selection::Selection):
984         (khtml::Selection::init):
985         (khtml::Selection::moveTo):
986         (khtml::Selection::modifyExtendingRightForward):
987         (khtml::Selection::modifyMovingRightForward):
988         (khtml::Selection::modifyExtendingLeftBackward):
989         (khtml::Selection::modifyMovingLeftBackward):
990         (khtml::Selection::modify):
991         (khtml::Selection::xPosForVerticalArrowNavigation):
992         (khtml::Selection::clear):
993         (khtml::Selection::setBase):
994         (khtml::Selection::setExtent):
995         (khtml::Selection::setBaseAndExtent):
996         (khtml::Selection::layout):
997         (khtml::Selection::validate):
998         * khtml/editing/selection.h:
999         (khtml::Selection::startAffinity):
1000         (khtml::Selection::endAffinity):
1001         (khtml::Selection::baseAffinity):
1002         (khtml::Selection::extentAffinity):
1003         (khtml::operator==):
1004         * khtml/editing/text_affinity.h:
1005         (khtml::):
1006         * khtml/editing/visible_position.cpp:
1007         (khtml::VisiblePosition::VisiblePosition):
1008         (khtml::VisiblePosition::init):
1009         (khtml::VisiblePosition::initUpstream):
1010         (khtml::VisiblePosition::initDownstream):
1011         (khtml::VisiblePosition::next):
1012         (khtml::VisiblePosition::previous):
1013         (khtml::startVisiblePosition):
1014         (khtml::endVisiblePosition):
1015         * khtml/editing/visible_position.h:
1016         (khtml::VisiblePosition::):
1017         (khtml::VisiblePosition::VisiblePosition):
1018         (khtml::VisiblePosition::affinity):
1019         (khtml::VisiblePosition::setAffinity):
1020         (khtml::operator==):
1021         * khtml/editing/visible_units.cpp:
1022         (khtml::previousBoundary):
1023         (khtml::nextBoundary):
1024         (khtml::startOfLine):
1025         (khtml::endOfLine):
1026         (khtml::previousLinePosition):
1027         (khtml::nextLinePosition):
1028         (khtml::startOfParagraph):
1029         (khtml::endOfParagraph):
1030         (khtml::previousParagraphPosition):
1031         (khtml::nextParagraphPosition):
1032         (khtml::startOfBlock):
1033         (khtml::endOfBlock):
1034         (khtml::startOfDocument):
1035         (khtml::endOfDocument):
1036         * khtml/editing/visible_units.h:
1037         * khtml/khtml_part.cpp:
1038         (KHTMLPart::findTextNext):
1039         (KHTMLPart::selectClosestWordFromMouseEvent):
1040         (KHTMLPart::handleMousePressEventTripleClick):
1041         (KHTMLPart::handleMousePressEventSingleClick):
1042         (KHTMLPart::handleMouseMoveEventSelection):
1043         (KHTMLPart::khtmlMouseReleaseEvent):
1044         (KHTMLPart::selectAll):
1045         (KHTMLPart::computeAndSetTypingStyle):
1046         (KHTMLPart::selectionComputedStyle):
1047         * khtml/rendering/render_br.cpp:
1048         (RenderBR::positionForCoordinates):
1049         * khtml/xml/dom_docimpl.cpp:
1050         (DocumentImpl::updateSelection):
1051         * khtml/xml/dom_nodeimpl.cpp:
1052         (NodeBaseImpl::setFocus):
1053         * khtml/xml/dom_position.cpp:
1054         (DOM::Position::previousCharacterPosition):
1055         (DOM::Position::nextCharacterPosition):
1056         * khtml/xml/dom_position.h:
1057         * kwq/KWQAccObject.mm:
1058         (-[KWQAccObject value]):
1059         (-[KWQAccObject visiblePositionForStartOfTextMarkerRange:]):
1060         (-[KWQAccObject visiblePositionForEndOfTextMarkerRange:]):
1061         (-[KWQAccObject accessibilityAttributeValue:]):
1062         (-[KWQAccObject doAXLineForTextMarker:]):
1063         (-[KWQAccObject doAXTextMarkerRangeForLine:]):
1064         (-[KWQAccObject doAXTextMarkerForPosition:]):
1065         (-[KWQAccObject doAXLeftLineTextMarkerRangeForTextMarker:]):
1066         (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
1067         (-[KWQAccObject doAXNextWordEndTextMarkerForTextMarker:]):
1068         (-[KWQAccObject doAXPreviousWordStartTextMarkerForTextMarker:]):
1069         (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
1070         (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]):
1071         (-[KWQAccObject doSetAXSelectedTextMarkerRange:]):
1072         * kwq/KWQAccObjectCache.mm:
1073         (KWQAccObjectCache::textMarkerForVisiblePosition):
1074         (KWQAccObjectCache::visiblePositionForTextMarker):
1075         * kwq/KWQKHTMLPart.mm:
1076         (KWQKHTMLPart::findString):
1077         (KWQKHTMLPart::advanceToNextMisspelling):
1078         (KWQKHTMLPart::styleForSelectionStart):
1079         (KWQKHTMLPart::baseWritingDirectionForSelectionStart):
1080         (KWQKHTMLPart::setSelectionFromNone):
1081         (KWQKHTMLPart::respondToChangedSelection):
1082         * kwq/WebCoreBridge.mm:
1083         (-[WebCoreBridge setSelectedDOMRange:affinity:]):
1084         (-[WebCoreBridge selectionAffinity]):
1085         (-[WebCoreBridge setMarkDOMRange:]):
1086         (-[WebCoreBridge _visiblePositionForPoint:]):
1087         (-[WebCoreBridge moveDragCaretToPoint:]):
1088         (-[WebCoreBridge editableDOMRangeForPoint:]):
1089         (-[WebCoreBridge ensureSelectionVisible]):
1090         (-[WebCoreBridge rangeOfCharactersAroundCaret]):
1091
1092 2005-02-09  Chris Blumenberg  <cblu@apple.com>
1093
1094         Fixed: <rdar://problem/3985211> Seed: Mail: Drag-and-drop destination indicator / insertion point disappears
1095
1096         Reviewed by kocienda.
1097
1098         * khtml/rendering/render_block.cpp:
1099         (khtml::RenderBlock::paintCaret): new
1100         (khtml::RenderBlock::paintObject): call paintCaret for the cursor caret and the drag caret
1101         * khtml/rendering/render_block.h:
1102
1103 === Safari-185 ===
1104
1105 2005-02-08  Ken Kocienda  <kocienda@apple.com>
1106
1107         Reviewed by John
1108
1109         Fix for this bug:
1110         
1111         <rdar://problem/3996344> Entire document content is deleted when only the first paragraph was supposed to be
1112
1113         Problem stems from my attempt to fix this bug: <rdar://problem/3986155> Insertion point goes 
1114         to beginning of doc after deleting.
1115         
1116         I added an "optimization" that proved to do more harm than good. So, basically, the fix is to remove code.
1117
1118         * khtml/editing/htmlediting.cpp:
1119         (khtml::DeleteSelectionCommand::handleGeneralDelete)
1120
1121 2005-02-07  Darin Adler  <darin@apple.com>
1122
1123         Reviewed by Kevin.
1124
1125         - fixed <rdar://problem/3890352> REGRESSION (125-170, Panther-only): pasted textarea contents disappear (exception in NSText)
1126
1127         * kwq/KWQTextArea.mm: (-[KWQTextArea tile]): Don't resize the text view immediately here.
1128         Use performWithDelay to defer it to avoid the re-entrancy that bothers the Panther version
1129         of NSTextView. On Tiger, leave the code alone.
1130
1131 2005-02-07  Adele Amchan  <adele@apple.com>
1132
1133         Reviewed by Darin.
1134
1135         Fix for <rdar://problem/3993628> REGRESSION (180-181): Logitelnet bank's website doesn't work
1136
1137         This fixes an oversight in the fix for <rdar://problem/3964286>.  
1138         We're now making sure there is a document before calling checkCompleted in slotLoaderRequestDone.
1139         That function is called even when other parts finish loads of their subresources, so we could end
1140         up calling checkCompleted before we had a document. We also looked over all the other calls to
1141         checkCompleted to convince ourselves no other call sites had a similar issue.
1142
1143         * khtml/khtml_part.cpp: (KHTMLPart::slotLoaderRequestDone): Check if doc is nil before calling
1144         checkCompleted.
1145
1146 2005-02-07  Ken Kocienda  <kocienda@apple.com>
1147
1148         Reviewed by Darin
1149
1150         Fix for this bug:
1151         
1152         <rdar://problem/3953302> Replacing quoted text ends up with blue-colored text that is not quoted
1153
1154         * khtml/editing/htmlediting.cpp:
1155         (khtml::DeleteSelectionCommand::doApply): Removed special case delete code for select all. It was
1156         causing as many bugs as it fixed. What's more, the design concept is a bit shaky. By removing
1157         this special case, the bug goes away.
1158         * khtml/editing/htmlediting.h: Remove declaration.
1159         
1160         Test results using selectAll() updated to reflect changed behavior.
1161         
1162         * layout-tests/editing/deleting/delete-3775172-fix-expected.txt:
1163         * layout-tests/editing/deleting/delete-select-all-001-expected.txt:
1164         * layout-tests/editing/deleting/delete-select-all-003-expected.txt:
1165         * layout-tests/editing/inserting/insert-3654864-fix-expected.txt:
1166         * layout-tests/editing/inserting/insert-3775316-fix-expected.txt:
1167         * layout-tests/editing/inserting/insert-3851164-fix-expected.txt:
1168         * layout-tests/editing/inserting/insert-3907422-fix-expected.txt:
1169         * layout-tests/editing/pasteboard/paste-text-015-expected.txt:
1170
1171 2005-02-06  Darin Adler  <darin@apple.com>
1172
1173         Reviewed by Ken.
1174
1175         - fixed <rdar://problem/3994164> setting a new style attribute with setAttribute("style") doesn't blow away the old style
1176
1177         * khtml/css/css_valueimpl.h: Renamed parseProperty to parseDeclaration, since it's used to parse
1178         an entire style declaration, not a single property.
1179         * khtml/css/css_valueimpl.cpp: (DOM::CSSMutableStyleDeclarationImpl::parseDeclaration): Renamed,
1180         and added code to clear m_values.
1181         * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::parseHTMLAttribute): Call function by its
1182         new name, and remove some unnecessary comments.
1183
1184 2005-02-06  Darin Adler  <darin@apple.com>
1185
1186         Reviewed by Maciej.
1187
1188         - fixed <rdar://problem/3993722> need oncut and onpaste handlers implemented for <textarea> (needed for widgets)
1189
1190         * kwq/KWQTextArea.mm:
1191         (-[KWQTextAreaTextView dispatchHTMLEvent:]): Added.
1192         (-[KWQTextAreaTextView cut:]): Dispatch "before cut" and "cut" events.
1193         (-[KWQTextAreaTextView copy:]): Dispatch "before copy" and "copy" events.
1194         (-[KWQTextAreaTextView paste:]): Dispatch "before paste" and "paste" events.
1195         (-[KWQTextAreaTextView pasteAsPlainText:]): Ditto.
1196         (-[KWQTextAreaTextView pasteAsRichText:]): Ditto.
1197
1198 2005-02-06  Darin Adler  <darin@apple.com>
1199
1200         Reviewed by Maciej.
1201
1202         - fixed <rdar://problem/3943038> <input type=search> that is focused in onload handler doesn't have a visible editor
1203
1204         * khtml/xml/dom_docimpl.cpp: (DocumentImpl::setFocusNode): Always update layout before giving focus to a widget.
1205         This prevents the bad case where we give a widget focus before it has been positioned or sized, causing us to
1206         exercise edge cases AppKit doesn't handle well.
1207
1208         * kwq/KWQTextField.mm: (-[KWQTextFieldController initWithTextField:QLineEdit:]): Remove workaround code I added
1209         to fix bug 3943049. Updating the layout fixes the same problem in a cleaner, safer way, and solves another problem,
1210         with the way the clip view is set up.
1211
1212 2005-02-06  Darin Adler  <darin@apple.com>
1213
1214         Reviewed by Maciej.
1215
1216         - fixed <rdar://problem/3425232> textarea won't trigger onchange action when clicking to new field
1217
1218         * khtml/rendering/render_form.h: Added new m_dirty data member.
1219         * khtml/rendering/render_form.cpp:
1220         (RenderTextArea::RenderTextArea): Initialize m_dirty to false.
1221         (RenderTextArea::detach): Call value() on the DOM element to cause it to fetch the value from this object.
1222         (RenderTextArea::handleFocusOut): Ditto. Also send the onchange event based only on the m_dirty flag.
1223         (RenderTextArea::updateFromElement): Clear the m_dirty flag if the edited value is blown away by a value
1224         that comes from the DOM element. Remove code to clear the element's m_dirtyvalue flag; that's an unnecessary
1225         optimization, and ideally we'll stop having code in the render object that knows about that flag later.
1226         (RenderTextArea::slotTextChanged): Set the m_dirty flag.
1227
1228 2005-02-06  Darin Adler  <darin@apple.com>
1229
1230         Reviewed by Maciej.
1231
1232         - re-fixed <rdar://problem/3760910> please add support for custom tag names in HTML
1233
1234         * khtml/xml/dom_docimpl.cpp:
1235         (DocumentImpl::tagId): Use ID_LAST_TAG + 1 for the ID of the first assigned tag ID. Before we'd use ID_LAST_TAG,
1236         which resulted in the same number being used for ID_COMMENT and the first custom tag.
1237         (DocumentImpl::tagName): Use ID_LAST_TAG + 1, as above.
1238         (DocumentImpl::namespaceURI): Change a < ID_LAST_TAG to <= ID_LAST_TAG in the same spirit as above.
1239
1240 2005-02-06  Darin Adler  <darin@apple.com>
1241
1242         Reviewed by Maciej.
1243
1244         - fixed <rdar://problem/3986639> Crash occurs after choosing Undo Typing from the Edit menu
1245
1246         * kwq/KWQTextArea.mm: (-[KWQTextArea viewWillMoveToWindow:]): Remove actions from undo manager when the view is
1247         removed from the window. Unfortunately, to do this the code has to know that the target of NSTextView actions
1248         will be the text storage object, but given the NSText architecture, that's pretty clear.
1249
1250 2005-02-05  Chris Blumenberg  <cblu@apple.com>
1251
1252         Fixed: <rdar://problem/3991974> REGRESSION: www.jabra.com world location screen does not work
1253
1254         Reviewed by hyatt.
1255
1256         * kwq/KWQKJavaAppletWidget.mm:
1257         (KJavaAppletWidget::KJavaAppletWidget): fallback to the document's base URL if there is no baseURL attribute
1258         * kwq/WebCoreBridge.h:
1259         * kwq/WebCoreBridge.mm:
1260         (-[WebCoreBridge baseURL]): new
1261
1262 2005-02-04  David Harrison  <harrison@apple.com>
1263
1264         Reviewed by Darin.
1265
1266         Rolled out Ken's accidental checkin when committing <rdar://problem/3986155> fix yesterday.
1267         
1268         * khtml/editing/selection.cpp:
1269         (khtml::Selection::validate):
1270
1271 2005-02-04  Adele Amchan  <adele@apple.com>
1272
1273         Reviewed by Darin.
1274
1275         Fix for <rdar://problem/3758785> Safari no longer works at BankOfAmerica online banking for military users
1276   
1277         When closing the document, if a body doesn't exist we now create one.  This bug was preventing the onload handler from
1278         firing in cases where there wasn't a body.  In the BankOfAmerica case, the page was just a bit of script where the onload
1279         handler redirected to the correct page.
1280
1281         * khtml/xml/dom_docimpl.cpp: (DocumentImpl::close):
1282
1283 2005-02-03  Ken Kocienda  <kocienda@apple.com>
1284
1285         Reviewed by Chris
1286
1287         Fix for this bug:
1288         
1289         <rdar://problem/3986155> Insertion point goes to beginning of doc after deleting
1290
1291         * khtml/editing/htmlediting.cpp:
1292         (khtml::DeleteSelectionCommand::setStartNode): New convenience to handle reference counting when setting.
1293         (khtml::DeleteSelectionCommand::handleGeneralDelete): This contains the crux of the bug fix. Improve tests
1294         that detect when a selected node needs to be retained, rather than deleted, to preserve the intent of the user.
1295         This has the side effect of causing the insertion point placement code to succeed rather than fail. Before
1296         this fix, the failure of the insertion point placement code caused the insertion point to jump to the start
1297         of the document, which is the symptom that can be perceived by users when editing.
1298         * khtml/editing/htmlediting.h: Add setStartNode declaration.
1299         * khtml/editing/visible_units.cpp:
1300         (khtml::startOfBlock): This function had a stubbed-in non-tested implementation. Implement and 
1301         * layout-tests/editing/deleting/delete-at-paragraph-boundaries-001-expected.txt: Added.
1302         * layout-tests/editing/deleting/delete-at-paragraph-boundaries-001.html: Added.
1303         * layout-tests/editing/deleting/delete-at-paragraph-boundaries-002-expected.txt: Added.
1304         * layout-tests/editing/deleting/delete-at-paragraph-boundaries-002.html: Added.
1305         * layout-tests/editing/deleting/delete-at-paragraph-boundaries-003-expected.txt: Added.
1306         * layout-tests/editing/deleting/delete-at-paragraph-boundaries-003.html: Added.
1307         * layout-tests/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt: Added.
1308         * layout-tests/editing/deleting/delete-at-paragraph-boundaries-004.html: Added.
1309         * layout-tests/editing/deleting/delete-at-paragraph-boundaries-005-expected.txt: Added.
1310         * layout-tests/editing/deleting/delete-at-paragraph-boundaries-005.html: Added.
1311         * layout-tests/editing/deleting/delete-at-paragraph-boundaries-006-expected.txt: Added.
1312         * layout-tests/editing/deleting/delete-at-paragraph-boundaries-006.html: Added.
1313
1314 === Safari-183 ===
1315
1316 2005-02-03  Richard Williamson   <rjw@apple.com>
1317
1318         Fixed <rdar://problem/3987419> Stocks and Weather leak what appears to XMLHTTPRequest results
1319
1320         XMLHTTPRequests were causing massive leaks.  _webcore_initWithHeaderString: did funky things with
1321         self replacement.  Re-wrote to use more traditional factory constructor avoiding self replacement.
1322         
1323         Reviewed by David Harrison.
1324
1325         * kwq/KWQLoader.mm:
1326         (+[NSDictionary _webcore_dictionaryWithHeaderString:]):
1327         (KWQServeRequest):
1328         (KWQServeSynchronousRequest):
1329
1330 2005-02-03  Chris Blumenberg  <cblu@apple.com>
1331
1332         Fixed: <rdar://problem/3938763> Cannot view Windows Media Player videos (soundtrack is played twice with delay)
1333
1334         Reviewed by hyatt.
1335
1336         * khtml/html/html_objectimpl.cpp:
1337         (HTMLObjectElementImpl::attach): set needWidgetUpdate to false right after calling updateWidget because dispatchHTMLEvent can end up calling this method again
1338         (HTMLObjectElementImpl::recalcStyle): ditto
1339
1340 2005-02-02  John Sullivan  <sullivan@apple.com>
1341
1342         Reviewed by Chris.
1343
1344         - WebCore part of fix for <rdar://problem/3980651> REGRESSION (125-180): Huge number of pages printed from certain page, 
1345         iFrame involved
1346         
1347         This also fixes the problems with printing from GMail, yay!
1348
1349         * khtml/rendering/render_flow.cpp:
1350         (RenderFlow::paintLines):
1351         If the current line is taller than the entire page height (e.g. tall iFrame), don't try
1352         to avoid splitting it across pages.
1353         
1354         * kwq/WebCoreBridge.mm:
1355         (-[WebCoreBridge computePageRectsWithPrintWidthScaleFactor:printHeight:]):
1356         Handle error cases in a more obvious manner; this will cause future problems like this
1357         to print a blank page and complain to the console on debug builds, rather than print a 
1358         zillionty mostly-blank pages.
1359
1360 2005-02-02  Chris Blumenberg  <cblu@apple.com>
1361
1362         Fixed: <rdar://problem/3960304> can't load a particular applet (at www.escape.de) unless it's the first applet to be loaded
1363
1364         Reviewed by hyatt.
1365
1366         * khtml/rendering/render_frames.cpp:
1367         (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.
1368
1369 2005-02-02  Chris Blumenberg  <cblu@apple.com>
1370
1371         Fixed: <rdar://problem/3983628> control-click on WebView is not selecting the word under the cursor (Mail, non-editable WebView)
1372
1373         Reviewed by rjw.
1374
1375         * kwq/KWQKHTMLPart.mm:
1376         (KWQKHTMLPart::sendContextMenuEvent): check if SPI to always enable selecting closest word is enabled
1377         * kwq/WebCoreBridge.h:
1378
1379 2005-02-02  Ken Kocienda  <kocienda@apple.com>
1380
1381         Reviewed by me
1382
1383         * khtml/editing/markup.cpp:
1384         (khtml::createMarkup): Removed debug spam I committed earlier in error.
1385
1386 2005-02-02  Ken Kocienda  <kocienda@apple.com>
1387
1388         Reviewed by Darin
1389
1390         Fix for this bug:
1391         
1392         <rdar://problem/3823109> WebKit should support -toggleBaseWritingDirection: (bidi editing support)
1393
1394         Since base writing direction is a paragraph-level property in AppKit, and we use the CSS direction
1395         property in WebCore, which can be applied to inline elements as well as blocks, a new notion has
1396         been added to the WebCore apply style logic. It is now possible to force all properties in a 
1397         style declaration to be applied as though they were block properties.
1398
1399         * khtml/editing/htmlediting.cpp:
1400         (khtml::ApplyStyleCommand::ApplyStyleCommand): Add an enum and a flag to this command that controls whether to force all
1401         properties in the style to be applied as block styles. Default is "no", retaining previous behavior.
1402         (khtml::ApplyStyleCommand::doApply): Switch on new flag to apply styles as before, or force all preoperties to be applied
1403         as block styles.
1404         * khtml/editing/htmlediting.h:
1405         (khtml::ApplyStyleCommand::): Add an enum and a flag, as above.
1406         * khtml/khtml_part.cpp:
1407         (KHTMLPart::applyParagraphStyle): New method to force application of all style properties as block styles.
1408         * khtml/khtml_part.h: Update header declarations.
1409         * kwq/KWQKHTMLPart.h: Update header declarations.
1410         * kwq/KWQKHTMLPart.mm:
1411         (KWQKHTMLPart::baseWritingDirectionForSelectionStart): Accessor to help WebKit do a toggle operation on 
1412         writing direction.
1413         * kwq/WebCoreBridge.h: Update header declarations.
1414         * kwq/WebCoreBridge.mm:
1415         (-[WebCoreBridge applyParagraphStyle:withUndoAction:]): New method to force application of all style properties as block styles.
1416         (-[WebCoreBridge baseWritingDirectionForSelectionStart]): Accessor to help WebKit do a toggle operation on 
1417         writing direction.
1418
1419         Fix for this bug:
1420         
1421         <rdar://problem/3985035> REGRESSION (Mail): Text copied from wrapped line contains extra character when pasted
1422
1423         * khtml/editing/markup.cpp:
1424         (khtml::renderedText): Add an enum and a flag to this command that controls whether to force all
1425         This is the result of an error in the code that computes the rendered text that is selected 
1426         when copying. Since spaces collapse at the end of lines, and these spaces need to be copied 
1427         when the selection spans line endings, code runs to compute this text. However, this code 
1428         was also running incorrectly in cases where lines wrapped. I have now added the missing 
1429         test to check that the selection does indeed extend to the end of the line.
1430
1431
1432 2005-02-02  Ken Kocienda  <kocienda@apple.com>
1433
1434         Reviewed by Darin
1435
1436         Fix for these bugs:
1437         
1438         <rdar://problem/3984894> REGRESSION (Mail): Command-right-arrow in reply does the wrong thing (two ways)
1439         <rdar://problem/3985130> REGRESSION (Mail): command-right-arrow in pasted RTF selects only up to tab
1440
1441         * khtml/editing/visible_units.cpp:
1442         (khtml::endOfLine): Two separate problems in this new function recently added to take the place of
1443         selectionForLine. In the first, endOfLine did not stop at BR elements, and returned the position
1444         beyond them. In the second, the VisiblePosition constructor gives the wrong answer in certain cases.
1445         Darin is going to work on a solution for that problem. In the meantime, I can fix the symptom of this
1446         bug by going down to the last leaf child of the root line box; a one line change we will roll out when
1447         Darin's fix is in.
1448
1449 2005-02-01  Richard Williamson   <rjw@apple.com>
1450
1451         Fixed <rdar://problem/3985535> QT Plug-in JavaScript support now fails in <embed> tag only case
1452
1453         Reviewed by Maciej.
1454
1455         * khtml/ecma/kjs_html.cpp:
1456         (KJS::HTMLDocument::tryGet):
1457
1458 2005-02-01  John Sullivan  <sullivan@apple.com>
1459
1460         Written by Darin, reviewed and tested by me
1461         
1462         - fixed <rdar://problem/3969684> Panther-only: extra blank lines between 
1463         pasted content from Blot
1464
1465         * kwq/KWQKHTMLPart.mm:
1466         (KWQKHTMLPart::attributedString):
1467         don't emit paragraph breaks if the margins are tiny; matches what
1468         we do for plain-text conversion
1469
1470 === Safari-182 ===
1471
1472 2005-02-01  Ken Kocienda  <kocienda@apple.com>
1473
1474         Reviewed by John
1475
1476         Fix for this bug:
1477         
1478         <rdar://problem/3985160> Deficiencies in pasting architecture blocking progress on other bugs
1479
1480         * khtml/editing/html_interchange.h: Move style span text used to mark element added to 
1481         add style to this header.
1482         * khtml/editing/htmlediting.cpp:
1483         (khtml::styleSpanClassString): Change to use constant moved to html_interchange.h.
1484         (khtml::isStyleSpan): New helper function. Checks if this is a span we added to apply style.
1485         (khtml::CompositeEditCommand::insertNodeBefore): Added an assert to check that the node
1486         we are inserting before is not the body.
1487         (khtml::CompositeEditCommand::insertNodeAfter): Ditto, but check is for after.
1488         (khtml::ReplacementFragment::ReplacementFragment): Added code to process the "default style"
1489         that is added by the copy code.
1490         (khtml::ReplaceSelectionCommand::ReplaceSelectionCommand): first and last nodes inserted are
1491         now member variables instead of function locals. Initialize them here.
1492         (khtml::ReplaceSelectionCommand::~ReplaceSelectionCommand): Deref first and last nodes inserted
1493         if necessary.
1494         (khtml::ReplaceSelectionCommand::doApply): Change design to fix the bug. Major change is to
1495         separate out the code that inserts nodes into the tree so additional styling checks can
1496         be done in a centralized way. Also got rid of the notion of "merging into the end block." That
1497         concept was just wrong.
1498         (khtml::ReplaceSelectionCommand::completeHTMLReplacement): Tweak interface now that first and 
1499         last nodes inserted are member variables.
1500         (khtml::ReplaceSelectionCommand::insertNodeAfterAndUpdateNodesInserted): New helper used
1501         by replace code to do the stated DOM operation and update state internal to the command.
1502         This will also be a catch point to handle the kinds of additional style checks needed to
1503         make paste work right.
1504         (khtml::ReplaceSelectionCommand::insertNodeAtAndUpdateNodesInserted): Ditto.
1505         (khtml::ReplaceSelectionCommand::insertNodeBeforeAndUpdateNodesInserted): Ditto.
1506         (khtml::ReplaceSelectionCommand::updateNodesInserted): Ditto.
1507         * khtml/editing/htmlediting.h: Update declarations as needed.
1508         * khtml/editing/markup.cpp:
1509         (khtml::createMarkup): Adds a "default style" span to the content written to the pasteboard.
1510         This will help us to fix some of the bugs blocked by the bug above.
1511         * khtml/xml/dom_nodeimpl.cpp:
1512         (NodeImpl::lastDescendent): New helper.
1513         * khtml/xml/dom_nodeimpl.h: Ditto.
1514         * khtml/xml/dom_position.cpp:
1515         (DOM::Position::upstream): Fixed a bug which would allow the upstream position returned to be
1516         in unrendered content.
1517         (DOM::Position::downstream): Ditto.
1518
1519         * layout-tests/editing/deleting/delete-3775172-fix-expected.txt: Ending positions tweaked due to 
1520         changes in upstream() and downstream() functions.
1521         * layout-tests/editing/inserting/insert-3851164-fix-expected.txt: Ditto
1522         * layout-tests/editing/inserting/insert-3907422-fix-expected.txt: Ditto
1523         * layout-tests/editing/selection/extend-by-character-006-expected.txt: Ditto
1524
1525         * layout-tests/editing/pasteboard/paste-text-003-expected.txt: Changed what we expect, given
1526         new behavior of paste code.
1527
1528 2005-01-31  John Sullivan  <sullivan@apple.com>
1529
1530         Reviewed by Dave Hyatt.
1531         
1532         - fixed <rdar://problem/3983097> Tabbing on RSS pages gets stuck in search field 
1533         with "full keyboard navigation" off
1534
1535         * kwq/KWQSlider.h:
1536         * kwq/KWQSlider.mm:
1537         (QSlider::focusPolicy):
1538         Implemented this method for KWQSlider. It is needed for our widget subclasses that
1539         can become focused in some situations. I missed this when fixing 3949203 because
1540         it only comes into play when tab-to-controls is on, and because the other relevant
1541         methods are objective-C methods.
1542
1543 2005-01-31  David Harrison  <harrison@apple.com>
1544
1545         Reviewed by Darin.
1546
1547         <rdar://problem/3964164> AXWebArea needs to unregister on going invisible
1548
1549         * khtml/xml/dom_docimpl.cpp:
1550         (DocumentImpl::detach):
1551         Detach the AX UIElement for the AXWebArea.
1552
1553 2005-01-31  David Harrison  <harrison@apple.com>
1554
1555         Reviewed by Darin
1556
1557         <rdar://problem/3850876> AX: button exposed as only an AXImage at http://appleseed.apple.com/ site (<input type=image>)
1558
1559         * khtml/rendering/render_form.h:
1560         (khtml::RenderImageButton::isImageButton):
1561         New.
1562         * khtml/rendering/render_image.h:
1563         (khtml::RenderImage::isImageButton):
1564         New.
1565         * kwq/KWQAccObject.mm:
1566         (-[KWQAccObject isImageButton]):
1567         (-[KWQAccObject actionElement]):
1568         (-[KWQAccObject role]):
1569         (-[KWQAccObject accessibilityActionNames]):
1570         (-[KWQAccObject accessibilityPerformAction:]):
1571         Represent RenderImageButton elements as buttons instead of images.
1572
1573 2005-01-31  David Harrison  <harrison@apple.com>
1574
1575         Prevent nil dereference in debug code.
1576
1577         * khtml/xml/dom_nodeimpl.cpp:
1578         (NodeImpl::displayTree):
1579         Stop when parent is 0, too.
1580
1581 2005-01-31  John Sullivan  <sullivan@apple.com>
1582
1583         Reviewed by Dave Hyatt.
1584         
1585         - fixed <rdar://problem/3949203> cannot tab to, within, or out of the RSS sidebar
1586
1587         * kwq/KWQSlider.mm:
1588         (-[KWQSlider becomeFirstResponder]):
1589         (-[KWQSlider resignFirstResponder]):
1590         (-[KWQSlider nextKeyView]):
1591         (-[KWQSlider previousKeyView]):
1592         (-[KWQSlider canBecomeKeyView]):
1593         (-[KWQSlider nextValidKeyView]):
1594         (-[KWQSlider previousValidKeyView]):
1595         Copied these methods from KWQButton. The lack of special handling for first-responder-ness
1596         here was causing the focus to get "stuck" on the RSS page's slider widget. Added FIXME
1597         about how it would be nice to share more of this code rather than replicating it in each
1598         KWQ widget subclass.
1599
1600 2005-01-31  Darin Adler  <darin@apple.com>
1601
1602         Reviewed by Harrison.
1603
1604         - fixed <rdar://problem/3980066> Double-click on single character moves insertion point to previous line
1605
1606         * khtml/khtml_part.cpp:
1607         (KHTMLPart::selectClosestWordFromMouseEvent): Set affinity too.
1608         (KHTMLPart::handleMousePressEventTripleClick): Ditto.
1609         (KHTMLPart::handleMouseMoveEventSelection): Ditto.
1610         (KHTMLPart::khtmlMouseReleaseEvent): Ditto.
1611
1612         * khtml/editing/selection.cpp:
1613         (khtml::Selection::modifyExtendingRightForward): Use endOfLine and endOfDocument.
1614         (khtml::Selection::modifyMovingRightForward): Ditto.
1615         (khtml::Selection::modifyExtendingLeftBackward): Use startOfLine and startOfDocument.
1616         (khtml::Selection::modifyMovingLeftBackward): Ditto.
1617         (khtml::Selection::validate): Rewrote the section that handles double-click. Two main fixes: 1) use isStartOfLine to
1618         check for another case where we want to select the word to the right, and 2) use isEndOfParagraph, which seems
1619         to work correctly in cases where isLastVisiblePositionInParagraph is giving the wrong answer. Also changed the line
1620         code to use startOfLine/endOfLine and the document code to use startOfDocument/endOfDocument.
1621
1622 2005-01-31  Darin Adler  <darin@apple.com>
1623
1624         Reviewed by Harrison.
1625
1626         - fixed <rdar://problem/3935275> unexpected quit scrolling over link; last.fm (works in IE and Firefox)
1627
1628         * kwq/WebCoreBridge.mm: (-[WebCoreBridge elementAtPoint:]): By using the correct document, fix the crash reported here.
1629         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.
1630
1631 2005-01-31  Darin Adler  <darin@apple.com>
1632
1633         Reviewed by Ken and Harrison.
1634
1635         - fixed <rdar://problem/3947901> REGRESSION (Mail): Pasting paragraph of rich text leaves insertion point before pasted text
1636         - fixed <rdar://problem/3949790> hitting return after underlined line results in too much or too little underlined
1637         - fixed <rdar://problem/3981759> nil-deref and crash when pasting just a paragraph break
1638         - fixed a couple problems I discovered while working with bug 3949790
1639
1640         * khtml/editing/htmlediting.cpp:
1641         (khtml::ApplyStyleCommand::applyInlineStyle): Pass StayInBlock to upstream. Without this, we end up going too far
1642         upstream in the test case in bug 3949790.
1643         (khtml::ApplyStyleCommand::removeInlineStyle): Pass StayInBlock to upstream and downstream. Same reason as above.
1644         (khtml::ReplaceSelectionCommand::doApply): Update endPos if inserting a new node and endPos is using that node's
1645         parent and an offset past the node being inserted. That change fixes a problem with the position of the insertion point
1646         after pasting into the top level of a document (from test cases in 3947901 and 3949790). When setting insertionPos, use
1647         code that works when lastNodeInserted is a block rather than a text node. That change fixes a problem where a newline is
1648         not added when pasting an entire paragraph into the end of a document (from test case in 3949790). Added nil check before
1649         checking if lastNodeInserted is a <br> element, which fixes the crash when pasting just a paragraph break.
1650
1651         * khtml/editing/visible_units.h: Filled out the set of calls to add some boolean checks for lines (needed for the
1652         bug fix), and calls for blocks (not yet implemented), and documents. The document checks may need refinement to
1653         properly handle documents with a mix of editable and non-editable content, but for now they just refactor code
1654         and make things a little clearer. Also removed the "include line break" parameter from endOfSentence.
1655         * khtml/editing/visible_units.cpp:
1656         (khtml::rootBoxForLine): Added.
1657         (khtml::startOfLine): Added. Algorithm taken from selectionForLine in selection.cpp.
1658         (khtml::endOfLine): Ditto.
1659         (khtml::inSameLine): Added.
1660         (khtml::isStartOfLine): Added.
1661         (khtml::isEndOfLine): Added.
1662         (khtml::endOfSentence): Removed "include line break" parameter.
1663         (khtml::inSameParagraph): Added a null check.
1664         (khtml::isStartOfParagraph): Ditto.
1665         (khtml::isEndOfParagraph): Ditto.
1666         (khtml::startOfBlock): Added.
1667         (khtml::endOfBlock): Added.
1668         (khtml::inSameBlock): Added.
1669         (khtml::isStartOfBlock): Added.
1670         (khtml::isEndOfBlock): Added.
1671         (khtml::startOfDocument): Added.
1672         (khtml::endOfDocument): Added.
1673         (khtml::inSameDocument): Added.
1674         (khtml::isStartOfDocument): Added.
1675         (khtml::isEndOfDocument): Added.
1676
1677 2005-01-30  Darin Adler  <darin@apple.com>
1678
1679         Reviewed by John.
1680
1681         - fixed <rdar://problem/3977000> form data set posted for <input type="image" ...> omits name/value pair
1682
1683         * khtml/html/html_formimpl.cpp:
1684         (DOM::HTMLInputElementImpl::appendFormData): Append a name/value pair for type IMAGE in addition to the X/Y
1685         coordinates.
1686
1687 2005-01-30  Darin Adler  <darin@apple.com>
1688
1689         Reviewed by John.
1690
1691         - fixed <rdar://problem/3974246> REGRESSION (125-180): popup menus are missing item text on Harmony Remote web site
1692
1693         * khtml/html/html_formimpl.cpp: (DOM::HTMLOptionElementImpl::text): Change this function to traverse the entire tree
1694         and gather all the text rather than just looking at immediate children.
1695
1696         * khtml/xml/dom_nodeimpl.h: Added const.
1697         * khtml/xml/dom_nodeimpl.cpp:
1698         (NodeImpl::traverseNextNode): Added const.
1699         (NodeImpl::traverseNextSibling): Ditto.
1700         (NodeImpl::traversePreviousNodePostOrder): Ditto.
1701         (NodeImpl::detach): Add a missing nil check.
1702
1703 2005-01-30  Darin Adler  <darin@apple.com>
1704
1705         Reviewed by John.
1706
1707         - fixed <rdar://problem/3864536> crash copying text from other apps and pasting in a sticky in dashboard
1708
1709         * khtml/editing/markup.cpp: (khtml::createFragmentFromText): Added missing ref/deref of newly created element.
1710
1711 2005-01-28  Darin Adler  <darin@apple.com>
1712
1713         * khtml/css/cssproperties.c: Regenerated with newer gperf.
1714
1715 2005-01-28  David Harrison  <harrison@apple.com>
1716
1717         Reviewed by John Sullivan.
1718
1719         <rdar://problem/3968144> AX need to be able to focus an AXLink by setting AXFocused to true
1720         
1721         * kwq/KWQAccObject.mm:
1722         (-[KWQAccObject accessibilityPerformAction:]):
1723         (-[KWQAccObject accessibilityIsAttributeSettable:]):
1724         Add AXFocused for AXLinks.
1725
1726 2005-01-28  David Harrison  <harrison@apple.com>
1727
1728         Reviewed by Darin.
1729
1730         <rdar://problem/3584942> AX: Safari Accessibility parent-child mismatch
1731
1732         Use AppKit SPI _accessibilityParentForSubview to return KWQAccObject parent of AppKit AX object.
1733         
1734         * kwq/KWQAccObject.mm:
1735         (-[KWQAccObject _accessibilityParentForSubview:]):
1736         New.
1737
1738 2005-01-27  Adele Amchan  <adele@apple.com>
1739
1740         fixed by Darin, reviewed by me.
1741
1742         <rdar://problem/3976314> REGRESSION (180-TOT): submitting password fields fail on Panther
1743
1744         * kwq/KWQTextField.mm: (-[KWQTextFieldController string]): on panther, the secure text field's editor 
1745         does not contain the real string, so now we just call stringValue on the field in that case.
1746
1747 2005-01-26  Maciej Stachowiak  <mjs@apple.com>
1748
1749         Reviewed by Darin, Hyatt and Ken.
1750
1751         <rdar://problem/3790449> REGRESSION (Mail): underline behavior is flaky because of how CSS handles text-decoration
1752         
1753         * khtml/css/css_computedstyle.cpp:
1754         (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Add support
1755         for -khtml-text-decorations-in-effect property. This works like text-docration
1756         but follows proper inline semantics, that is, if a parent is causing text
1757         decoration then -khtml-text-decorations-in-effect on this element will reflect that.
1758         * khtml/css/cssproperties.in: Add -khtml-text-decorations-in-effect property.
1759         * khtml/css/cssproperties.h: regenerated
1760         * khtml/css/cssvalues.c: regenerated
1761         * khtml/css/cssparser.cpp: regenerated
1762         * khtml/css/cssproperties.c: regenerated
1763
1764         * khtml/css/css_valueimpl.h: Made copyPropertiesInSet public.
1765
1766         * khtml/editing/htmlediting.cpp:
1767         (khtml::StyleChange::init): Handle -khtml-text-decorations-in-effect
1768         specially, translate to text-decoration
1769         (khtml::ApplyStyleCommand::applyInlineStyle): Fix a comment.
1770         (khtml::ApplyStyleCommand::removeInlineStyle): Add new way of pushing down
1771         text-decoration styles around the edges of the selected range.
1772         (khtml::ApplyStyleCommand::pushDownTextDecorationStyleAroundNode): Helper for this.
1773         (khtml::ApplyStyleCommand::pushDownTextDecorationStyleAtBoundaries): ditto
1774         (khtml::ApplyStyleCommand::nodeFullyUnselected): ditto
1775         (khtml::hasTextDecorationProperty): ditto
1776         (khtml::highestAncestorWithTextDecoration): ditto
1777         (khtml::ApplyStyleCommand::extractTextDecorationStyle): ditto
1778         (khtml::ApplyStyleCommand::extractAndNegateTextDecorationStyle): ditto
1779         (khtml::ApplyStyleCommand::applyTextDecorationStyle): ditto
1780         * khtml/editing/htmlediting.h: Prototype new methods.
1781         * khtml/editing/jsediting.cpp: Make underline execCommand use the new CSS property.
1782
1783         - as a necessary part of the fix, fixed the longstanding problem
1784         that mutating an element's inlineStyleDecl would not property
1785         update its style attribute. now it does.
1786         
1787         * khtml/css/css_valueimpl.cpp:
1788         (DOM::CSSMutableStyleDeclarationImpl::setChanged): If this is an inline style
1789         declaration, tell the element it's style attribute needs updating.
1790         * khtml/html/html_elementimpl.cpp:
1791         (HTMLElementImpl::invalidateStyleAttribute): New method, just calls down
1792         to the dom element.
1793         (HTMLElementImpl::updateStyleAttribute): Regenerate style attribute from
1794         inline style declaration.
1795         * khtml/html/html_elementimpl.h: Prototype new stuff.
1796         * khtml/xml/dom_elementimpl.cpp:
1797         (ElementImpl::ElementImpl): Initialize new attribute.
1798         (ElementImpl::updateStyleAttributeIfNeeded): New method to check if the style
1799         is dirty and this is an html element, and if so call the html element to
1800         regenerate the style attribute.
1801         (ElementImpl::attributes): update style if needed
1802         (ElementImpl::getAttribute): ditto
1803         (ElementImpl::hasAttributes): ditto
1804         (ElementImpl::dump): ditto
1805         (XMLElementImpl::cloneNode): ditto
1806         * khtml/xml/dom_elementimpl.h:
1807         (DOM::ElementImpl::isStyleAttributeValid): new method to manage style attr
1808         dirty bit
1809         (DOM::ElementImpl::setStyleAttributeValid): ditto
1810
1811         - added new layout tests for underlining:
1812         
1813         * layout-tests/editing/editing.js:
1814         * layout-tests/editing/style/remove-underline-across-paragraph-expected.txt: Added.
1815         * layout-tests/editing/style/remove-underline-across-paragraph-in-bold-expected.txt: Added.
1816         * layout-tests/editing/style/remove-underline-across-paragraph-in-bold.html: Added.
1817         * layout-tests/editing/style/remove-underline-across-paragraph.html: Added.
1818         * layout-tests/editing/style/remove-underline-after-paragraph-expected.txt: Added.
1819         * layout-tests/editing/style/remove-underline-after-paragraph-in-bold-expected.txt: Added.
1820         * layout-tests/editing/style/remove-underline-after-paragraph-in-bold.html: Added.
1821         * layout-tests/editing/style/remove-underline-after-paragraph.html: Added.
1822         * layout-tests/editing/style/remove-underline-expected.txt: Added.
1823         * layout-tests/editing/style/remove-underline-from-stylesheet-expected.txt: Added.
1824         * layout-tests/editing/style/remove-underline-from-stylesheet.html: Added.
1825         * layout-tests/editing/style/remove-underline-in-bold-expected.txt: Added.
1826         * layout-tests/editing/style/remove-underline-in-bold.html: Added.
1827         * layout-tests/editing/style/remove-underline.html: Added.
1828         * layout-tests/editing/style/underline-expected.txt: Added.
1829         * layout-tests/editing/style/underline.html: Added.
1830
1831 2005-01-27  David Hyatt  <hyatt@apple.com>
1832
1833         Fix for 3875199, search field needs to be able to  show a magnifying  glass without a dropdown menu.
1834         
1835         Reviewed by kocienda
1836
1837         * khtml/html/html_formimpl.cpp:
1838         (DOM::HTMLInputElementImpl::HTMLInputElementImpl):
1839         (DOM::HTMLInputElementImpl::parseHTMLAttribute):
1840         * kwq/KWQLineEdit.mm:
1841         (QLineEdit::setMaxResults):
1842
1843 2005-01-27  Ken Kocienda  <kocienda@apple.com>
1844
1845         Reviewed by Maciej
1846
1847         Fix for this bug:
1848         
1849         <rdar://problem/3973254> Deletions of ranges does not coalesce correctly with subsequent typing
1850
1851         * khtml/editing/htmlediting.cpp:
1852         (khtml::InsertTextCommand::deleteCharacter): Remove this dead code.
1853         (khtml::ReplaceSelectionCommand::editingAction): Moved this code to a better place in the file. 
1854         It was in with unrelated functions.
1855         (khtml::TypingCommand::TypingCommand): Reorganize initialization list so it is easier to read.
1856         (khtml::TypingCommand::issueCommandForDeleteKey): Remove dead code. Roll in remaining code into deleteKeyPressed.
1857         (khtml::TypingCommand::deleteKeyPressed): Add in support for carrying along smart delete flag.
1858         (khtml::TypingCommand::forwardDeleteKeyPressed): New function. Makes forward delete work like
1859         "regular" delete in terms of coalescing typing.
1860         (khtml::TypingCommand::doApply): Add case for ForwardDeleteKey.
1861         (khtml::TypingCommand::preservesTypingStyle): Ditto.
1862         * khtml/editing/htmlediting.h:
1863         (khtml::TypingCommand::): Add ForwardDeleteKey constant. Remove a couple declarations for now-dead code.
1864         (khtml::TypingCommand::smartDelete): New accessor.
1865         (khtml::TypingCommand::setSmartDelete): Ditto.
1866         * kwq/WebCoreBridge.h:
1867         * kwq/WebCoreBridge.mm:
1868         (-[WebCoreBridge deleteKeyPressedWithSmartDelete:]): Add smart delete flag.
1869         (-[WebCoreBridge forwardDeleteKeyPressedWithSmartDelete:]): New method.
1870         * khtml/editing/jsediting.cpp: Add supprt for ForwardDelete command
1871         * layout-tests/editing/editing.js: Ditto.
1872         * layout-tests/editing/deleting/delete-and-undo-expected.txt: Added.
1873         * layout-tests/editing/deleting/delete-and-undo.html: Added.
1874         * layout-tests/editing/deleting/forward-delete-expected.txt: Added.
1875         * layout-tests/editing/deleting/forward-delete.html: Added.
1876
1877 === Safari-181 ===
1878
1879 2005-01-27  David Harrison  <harrison@apple.com>
1880
1881         Reviewed by Ken.
1882
1883         <rdar://problem/3962214> AX: AXLeftLineTextMarkerRangeForTextMarker returns incorrect range
1884
1885         * kwq/KWQAccObject.mm:
1886         (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
1887         Allowed for selection to end of line including the linebreak.
1888         
1889 2005-01-27  David Harrison  <harrison@apple.com>
1890
1891         Reviewed by Darin, Ken.
1892
1893         <rdar://problem/3964470> AX: Include attachments in AXAttributedStringForTextMarkerRange
1894
1895         * kwq/KWQAccObject.mm:
1896         (-[KWQAccObject isAttachment]):
1897         (-[KWQAccObject attachmentView]):
1898         (-[KWQAccObject role]):
1899         (-[KWQAccObject subrole]):
1900         (-[KWQAccObject roleDescription]):
1901         (-[KWQAccObject value]):
1902         (-[KWQAccObject title]):
1903         (-[KWQAccObject accessibilityDescription]):
1904         (-[KWQAccObject accessibilityIsIgnored]):
1905         (-[KWQAccObject accessibilityAttributeNames]):
1906         (-[KWQAccObject accessibilityAttributeValue:]):
1907         Make attachments accessible.
1908         
1909         (CreateCGColorIfDifferent):
1910         (AXAttributeStringSetColor):
1911         (AXAttributeStringSetNumber):
1912         (AXAttributeStringSetFont):
1913         (AXAttributeStringSetStyle):
1914         (AXAttributeStringSetElement):
1915         (AXLinkElementForNode):
1916         (AXAttributedStringAppendText):
1917         (AXAttributedStringAppendReplaced):
1918         (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
1919         Add attachments and more text attributes to AXAttributedStringForTextMarkerRange.
1920
1921 2005-01-27  Darin Adler  <darin@apple.com>
1922
1923         Reviewed by John.
1924
1925         - fixed <rdar://problem/3807935> DOM CSS computed style line-height is wrong in two ways
1926
1927         * khtml/css/css_computedstyle.cpp: (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue):
1928         Use specified size rather than computed size when dealing with a percentage for line height.
1929
1930 2005-01-27  Darin Adler  <darin@apple.com>
1931
1932         Reviewed by John.
1933
1934         - fixed <rdar://problem/3971372> SWB: template function DOM_cast() won't compile with gcc 4.0
1935         - fixed other gcc 4.0 compiling problems Patrick Beard pointed out on the phone
1936
1937         * kwq/DOMInternal.h: (DOM_cast): Change the "failToCompile()" trick to use a dependent name.
1938         Nowadays, if a name is not dependent, it is checked at template definition time. But we want
1939         a failure only at template instantiation time.
1940
1941         * ForwardingHeaders/editing/text_granularity.h: Added. Needed but a bug in the 3.3 compiler made
1942         it compile anyway without this.
1943
1944         - other changes
1945
1946         * khtml/html/html_miscimpl.h: For clarity, mark these functions virtual too. They are automatically
1947         virtual because the base class ones are virtual, but it's ugly to leave it this way.
1948
1949 2005-01-26  Ken Kocienda  <kocienda@apple.com>
1950
1951         Reviewed by Hyatt
1952
1953         Fix for this bug:
1954         
1955         <rdar://problem/3971609> REGRESSION (Mail): up/down arrow navigation broken after rewrapping text by resizing window
1956         <rdar://problem/3975661> REGRESSION (Mail): left/right arrow navigation can place insertion point after last character on line
1957
1958         * khtml/editing/selection.cpp:
1959         (khtml::Selection::modifyAffinity): PARAGRAPH and LINE movements should not alter affinity. This was
1960         just a mistake before when it reset to upstream in some cases.
1961         * khtml/rendering/render_line.cpp:
1962         (khtml::RootInlineBox::closestLeafChildForXPos): Move this function down from InlineBox, and 
1963         rework the implementation. This fixes 3971609.
1964         * khtml/rendering/render_line.h:
1965         * khtml/rendering/render_text.cpp:
1966         (RenderText::caretRect): Rework the algorithm to fix 3975661. This regressed when we began placing
1967         the spaces on the end of lines in text boxes when lines wrap.
1968
1969 2005-01-26  Richard Williamson   <rjw@apple.com>
1970
1971         Fixed <rdar://problem/3972522> (179-180) 40% slowdown on iBench JavaScript test
1972
1973         I added a member variable to ObjectImp.  This changed it's size and consequently
1974         hampered the optimizations built into the garbage collector.  Objects no longer
1975         fit within the allocators cell size, and thus allocation fell back to a slower
1976         allocator.
1977
1978         As a result of this fix I also dramatically cleaned up how runtime objects are
1979         accessed.  The path mostly *removes* code.
1980         
1981         Reviewed by Chris.
1982
1983         * khtml/ecma/kjs_dom.cpp:
1984         (DOMDocumentProtoFunc::tryCall):
1985         (DOMElementProtoFunc::tryCall):
1986         (KJS::getRuntimeObject):
1987         * khtml/ecma/kjs_dom.h:
1988         * khtml/ecma/kjs_html.cpp:
1989         (KJS::HTMLDocument::tryGet):
1990         (KJS::HTMLElement::tryGet):
1991         (KJS::HTMLElement::implementsCall):
1992         (KJS::HTMLElement::call):
1993         (KJS::HTMLElement::tryPut):
1994         (KJS::HTMLCollection::tryGet):
1995         (KJS::HTMLCollection::getNamedItems):
1996         * khtml/ecma/kjs_html.h:
1997         * khtml/ecma/kjs_window.cpp:
1998         (Window::get):
1999
2000 2005-01-26  Richard Williamson   <rjw@apple.com>
2001
2002         Fixed <rdar://problem/3757712> REGRESSION (Mail): WebCore does not allow Devanagari ligature input
2003
2004         For now we are using ICU UBreakIterator to determine grapheme boundaries for
2005         cursor and deletion.  This does not match what Cocoa does exactly, but does match
2006         what Carbon does.  The areas are difference are obscure, but, according to
2007         Deborah Goldsmith, using the UBreakIterator is the reasonable approach.
2008
2009         Reviewed by Ken.
2010
2011         * khtml/rendering/render_text.cpp:
2012         (RenderText::previousOffset):
2013         (RenderText::nextOffset):
2014
2015 2005-01-25  David Harrison  <harrison@apple.com>
2016
2017         Reviewed by Maciej and Richard.
2018
2019         <rdar://problem/3963731> AX VO: Changing window sizes causes a crash using with Voice Over - KWQPtrDictImpl::clear
2020
2021         * khtml/html/html_miscimpl.cpp:
2022         (HTMLCollectionImpl::HTMLCollectionImpl):
2023         Ensure that isHTMLDocument before calling HTMLDocument-only method.
2024
2025 2005-01-25  Richard Williamson   <rjw@apple.com>
2026
2027         Part one of fix for <rdar://problem/3757712> REGRESSION (Mail): WebCore does not allow Devanagari ligature input
2028
2029         This patch changes the semantics of next() and previous() on
2030         VisiblePosition to move a grapheme (character cluster) at a
2031         time.  This means that cursor navigation with correctly move
2032         over an entire cluster.
2033
2034         However, the expected behavior for deleting a grapheme is to
2035         delete individual code points, thus decomposing the grapheme
2036         into it constituent parts.  That will be addressed in the next
2037         part of the fix.
2038
2039         Reviewed by Ken.
2040
2041         * khtml/editing/visible_position.cpp:
2042         (khtml::VisiblePosition::previousPosition):
2043         (khtml::VisiblePosition::nextPosition):
2044         * khtml/editing/visible_position.h:
2045         * khtml/rendering/render_object.cpp:
2046         (RenderObject::previousOffset):
2047         (RenderObject::nextOffset):
2048         * khtml/rendering/render_object.h:
2049         * khtml/rendering/render_text.cpp:
2050         (RenderText::previousOffset):
2051         (RenderText::nextOffset):
2052         (RenderText::findNextInlineTextBox):
2053         * khtml/rendering/render_text.h:
2054         * khtml/xml/dom_nodeimpl.cpp:
2055         (NodeImpl::previousOffset):
2056         (NodeImpl::nextOffset):
2057         * khtml/xml/dom_nodeimpl.h:
2058
2059 2005-01-25  David Harrison  <harrison@apple.com>
2060
2061         Reviewed by Maciej.
2062
2063         <rdar://problem/3973067> AXWebArea for http://apple.netscape.com/ has an empty AXLinkUIElements
2064
2065         * kwq/KWQAccObject.mm:
2066         (-[KWQAccObject accessibilityAttributeValue:]):
2067         Omit ignored AXLinks from AXLinkUIElements result
2068
2069 2005-01-25  Ken Kocienda  <kocienda@apple.com>
2070
2071         Reviewed by John
2072
2073         Fix for this bug:
2074         
2075         <rdar://problem/3972851> REGRESSION (179-180+): Repro crash in ApplyStyleCommand::cleanUpEmptyStyleSpans
2076
2077         * khtml/editing/htmlediting.cpp:
2078         (khtml::ApplyStyleCommand::cleanUpEmptyStyleSpans): Added two null checks.
2079
2080 2005-01-25  Ken Kocienda  <kocienda@apple.com>
2081
2082         Reviewed by John
2083
2084         Fix for this bug:
2085         
2086         <rdar://problem/3954710> Mail crashed while editing signatures - NodeImpl::isBlockFlow
2087
2088         The fix is more general than for this one bug, and may work to fix many crashers. The problem
2089         is that the ReplaceSelectionCommand never checked whether its starting selection is empty. If
2090         it is, then we need to bail before doing the work of the command, which we need to deref the
2091         start and end points of the selection in order to do its work. I think you can see the crash
2092         potential.
2093
2094         * khtml/editing/htmlediting.cpp:
2095         (khtml::ReplaceSelectionCommand::doApply): Assert selection is not empty.
2096         * kwq/WebCoreBridge.mm:
2097         (partHasSelection): New helper function to test that bridge has a part with a selection.
2098         
2099         Use new helper function to test part and selection; return from these function if this test fails.
2100         
2101         (-[WebCoreBridge rangeByExpandingSelectionWithGranularity:])
2102         (-[WebCoreBridge rangeByAlteringCurrentSelection:direction:granularity:])
2103         (-[WebCoreBridge alterCurrentSelection:direction:granularity:])
2104         (-[WebCoreBridge rangeByAlteringCurrentSelection:verticalDistance:])
2105         (-[WebCoreBridge alterCurrentSelection:verticalDistance:])
2106         (-[WebCoreBridge documentFragmentWithText:])
2107         (-[WebCoreBridge replaceSelectionWithFragment:selectReplacement:smartReplace:])
2108         (-[WebCoreBridge insertLineBreak])
2109         (-[WebCoreBridge insertParagraphSeparator])
2110         (-[WebCoreBridge insertParagraphSeparatorInQuotedContent])
2111         (-[WebCoreBridge insertText:selectInsertedText:])
2112         (-[WebCoreBridge deleteSelectionWithSmartDelete:])
2113         (-[WebCoreBridge ensureSelectionVisible])
2114
2115 2005-01-24  Kevin Decker  <kdecker@apple.com>
2116
2117         Reviewed by Darin.
2118
2119         Fixed <rdar://problem/3932374> REGRESSION: 'ReferenceError - Can't find variable' JavaScript error at webxpress.fidelity.com
2120
2121         * khtml/html/html_miscimpl.h: Missing virtual identifiers for namedItem() and nextNamedItem() exposed a flaw that prevented finding variables in form [HTMLFormCollectionImpl] scopes.
2122         
2123
2124 2005-01-24  Vicki Murley <vicki@apple.com>
2125
2126         Reviewed by kocienda.
2127
2128         - fix <rdar://problem/3810661> computed style not handled for Apple extensions
2129  
2130         * khtml/css/css_computedstyle.cpp: (DOM::):
2131         (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): add -apple-line-clamp and -apple-text-size-adjust
2132
2133 2005-01-24  Darin Adler  <darin@apple.com>
2134
2135         Reviewed by Kevin.
2136
2137         - fixed <rdar://problem/3969884> REGRESSION (179-180): Typing password not echoed as "bullets" at paypal.com when field is first focused
2138
2139         * kwq/KWQTextField.mm: (-[KWQTextFieldController initWithTextField:QLineEdit:]):
2140         Sizing up the form editor, which fixes things for normal fields and search fields,
2141         screws things up for password fields. Eventually, I'll need to figure out why this is
2142         and file a bug so that the AppKit team fixes it. In the mean time, just check for the
2143         case of the secure text field, and don't size up in that case.
2144
2145 2005-01-24  Ken Kocienda  <kocienda@apple.com>
2146
2147         Reviewed by Hyatt
2148
2149         Fix for this bug:
2150         
2151         <rdar://problem/3963560> 8A354: Inserting Japanese text to the line head causes line break
2152
2153         * khtml/editing/htmlediting.cpp:
2154         (khtml::ReplaceSelectionCommand::doApply): Add one more case where we merge content into the
2155         existing line. This covers the situation see using the steps to reproduce this bug.
2156
2157 2005-01-21  Maciej Stachowiak  <mjs@apple.com>
2158
2159         Reviewed by Darin.
2160
2161         <rdar://problem/3967572> Editing should split elements before removing style
2162         
2163         * khtml/editing/htmlediting.cpp:
2164         (khtml::CompositeEditCommand::splitElement):
2165         (khtml::CompositeEditCommand::mergeIdenticalElements):
2166         (khtml::CompositeEditCommand::wrapContentsInDummySpan):
2167         (khtml::CompositeEditCommand::splitTextNodeContainingElement):
2168         (khtml::ApplyStyleCommand::applyInlineStyle):
2169         (khtml::ApplyStyleCommand::splitTextAtStartIfNeeded):
2170         (khtml::ApplyStyleCommand::splitTextAtEndIfNeeded):
2171         (khtml::ApplyStyleCommand::splitTextElementAtStartIfNeeded):
2172         (khtml::ApplyStyleCommand::splitTextElementAtEndIfNeeded):
2173         (khtml::areIdenticalElements):
2174         (khtml::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
2175         (khtml::ApplyStyleCommand::mergeEndWithNextIfIdentical):
2176         (khtml::ApplyStyleCommand::cleanUpEmptyStyleSpans):
2177         (khtml::ApplyStyleCommand::addInlineStyleIfNeeded):
2178         (khtml::InsertParagraphSeparatorCommand::doApply):
2179         (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply):
2180         (khtml::InsertTextCommand::prepareForTextInsertion):
2181         (khtml::SplitTextNodeCommand::doUnapply):
2182         (khtml::SplitElementCommand::SplitElementCommand):
2183         (khtml::SplitElementCommand::~SplitElementCommand):
2184         (khtml::SplitElementCommand::doApply):
2185         (khtml::SplitElementCommand::doUnapply):
2186         (khtml::MergeIdenticalElementsCommand::MergeIdenticalElementsCommand):
2187         (khtml::MergeIdenticalElementsCommand::~MergeIdenticalElementsCommand):
2188         (khtml::MergeIdenticalElementsCommand::doApply):
2189         (khtml::MergeIdenticalElementsCommand::doUnapply):
2190         (khtml::WrapContentsInDummySpanCommand::WrapContentsInDummySpanCommand):
2191         (khtml::WrapContentsInDummySpanCommand::~WrapContentsInDummySpanCommand):
2192         (khtml::WrapContentsInDummySpanCommand::doApply):
2193         (khtml::WrapContentsInDummySpanCommand::doUnapply):
2194         (khtml::SplitTextNodeContainingElementCommand::SplitTextNodeContainingElementCommand):
2195         (khtml::SplitTextNodeContainingElementCommand::~SplitTextNodeContainingElementCommand):
2196         (khtml::SplitTextNodeContainingElementCommand::doApply):
2197         * khtml/editing/htmlediting.h:
2198
2199         New layout test that shows the side benefit of this.
2200         
2201         * layout-tests/editing/style/unbold-in-bold-expected.txt: Added.
2202         * layout-tests/editing/style/unbold-in-bold.html: Added.
2203
2204 2005-01-24  Darin Adler  <darin@apple.com>
2205
2206         Reviewed by John.
2207
2208         - fixed <rdar://problem/3933435> -[DOMRange cloneContents] sometimes alters the original DOMRange
2209
2210         * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::processContents): Fixed code that was collapsing
2211         the range after processing the contents. That's right for extract and delete, but not clone.
2212
2213         - fixed <rdar://problem/3714184> inline input works incorrectly when I type Korean slowly in textfield in form on www.google.co.kr
2214         - fixed <rdar://problem/3193848> Can't enter SSN to sign up for Chase visa online account (changing focus inside key press handler)
2215         - 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>
2216
2217         * kwq/KWQLineEdit.mm:
2218         (QLineEdit::text): Changed to call a new string method on the controller instead of calling
2219         stringValue, since stringValue has a bad side effect of ending inline input.
2220         (QLineEdit::selectAll): Changed to only call selectText: when the field is already selected.
2221         When you are giving the field focus, it automatically gets all selected, and this change
2222         is required in the case where we defer the focus change.
2223
2224         * kwq/KWQTextField.h: Added a new string method to the controller.
2225         * kwq/KWQTextField.mm:
2226         (-[KWQTextFieldController setMaximumLength:]): Call the new string method instead of using stringValue.
2227         (-[KWQTextFieldController controlTextDidChange:]): Removed the code to truncate at the first CR or LF.
2228         That's now handled in the shouldChangeTextInRange method instead.
2229         (-[KWQTextFieldController textView:shouldHandleEvent:]): Add new logic to defer responder changes until
2230         after the event is handled. This makes sure the key gets into the field that's already handling it at
2231         rather than ending up in the newly-focused field if the key press handler focuses a different element.
2232         (-[KWQTextFieldController textView:didHandleEvent:]): Turn off deferral here, now that the key press
2233         has been handled.
2234         (-[KWQTextFieldController string]): Added. Calls stringValue only if there's no editor. If there is
2235         an editor, calls string on that instead.
2236         (-[KWQTextFieldController textView:shouldChangeTextInRange:replacementString:]): Added. Called by
2237         the three field subclasses. Truncates incoming strings at the first CR or LF character. This works
2238         properly with Undo, and the old technique did not.
2239         (-[KWQTextFieldController preprocessString:]): Added. Helper used for all the setStringValue methods
2240         so they all truncate at the first CR or LF as well as truncating to the appropriate length.
2241         (-[KWQTextField setStringValue:]): Changed to call the controller.
2242         (-[KWQTextField textView:shouldChangeTextInRange:replacementString:]): Added. Calls the controller.
2243         (-[KWQSecureTextField setStringValue:]): More of the same.
2244         (-[KWQSecureTextField textView:shouldChangeTextInRange:replacementString:]): Ditto.
2245         (-[KWQSearchField setStringValue:]): Ditto.
2246         (-[KWQSearchField textView:shouldChangeTextInRange:replacementString:]): Ditto.
2247
2248         * kwq/KWQWidget.h: Added the new setDeferFirstResponderChanges function.
2249         * kwq/KWQWidget.mm:
2250         (QWidget::~QWidget): Clear out the deferredFirstResponder global just in case we are destroyed
2251         while we "have the ball".
2252         (QWidget::hasFocus): If we are in the deferred mode, use the global to decide who to say is focused.
2253         (QWidget::setFocus): If we are in the deferred mode, set the global instead of making something be
2254         the first responder.
2255         (QWidget::setDeferFirstResponderChanges): Set the boolean. If the boolean is being cleared, then
2256         get the deferred first responder and call setFocus on it again, which will do the work we didn't
2257         want to do earlier.
2258
2259 2005-01-24  Ken Kocienda  <kocienda@apple.com>
2260
2261         Reviewed by John
2262
2263         Fix for this bug:
2264         
2265         <rdar://problem/3964350> Deleting all content and typing in a message gets one letter, then beeps
2266
2267         This is a problem with the way we turn key events, when a user starts typing, into editing commands. 
2268         Right now, that initial delete key in an empty window is turned into an editing command, and much 
2269         editing code runs that need not run. What's more, this is confusing the selection machinery. The
2270         solution is to detect the "delete in an empty window" case and don't turn this into an editing
2271         command at all.
2272
2273         * khtml/editing/htmlediting.cpp:
2274         (khtml::TypingCommand::deleteKeyPressed)
2275
2276 2005-01-23  Adele Amchan  <adele@apple.com>
2277
2278         Fixed <rdar://problem/3964286> REGRESSION (178-179): menus and "go to old site" link at Ameritrade's new site don't work
2279
2280         Removed check for document from checkCompleted.  In this case, WebCore never knew that a WebImageView was complete because 
2281         it fell into this document check case in checkCompleted.  
2282         Added check for document to tokenizerProcessedData (see <rdar://problem/3807144>)
2283
2284         Reviewed by Darin.
2285
2286         * khtml/khtml_part.cpp:
2287         (KHTMLPart::stop):
2288         (KHTMLPart::checkCompleted):
2289         * khtml/khtml_part.h:
2290         * kwq/KWQKHTMLPart.mm: (KWQKHTMLPart::tokenizerProcessedData):
2291
2292 2005-01-21  Richard Williamson   <rjw@apple.com>
2293
2294         Fixed <rdar://problem/3759399> Javascript / Liveconnect problems ((event handler):Undefined value)
2295
2296         Java applets specified with <object> or <embed> weren't scriptable.  Now they are.
2297
2298         Reviewed by Chris.
2299
2300         * khtml/html/html_objectimpl.cpp:
2301         (HTMLEmbedElementImpl::getEmbedInstance):
2302         (HTMLObjectElementImpl::getObjectInstance):
2303
2304 2005-01-21  Ken Kocienda  <kocienda@apple.com>
2305
2306         Reviewed by John
2307
2308         Fix for this bug:
2309         
2310         <rdar://problem/3959464> REGRESSION (Mail): Insertion point goes back to beginning of document after deleting
2311
2312         * khtml/editing/htmlediting.cpp:
2313         (khtml::DeleteSelectionCommand::handleGeneralDelete): Add special case to handle retaining a fully-selected block.
2314         This fixes the bug.
2315         * layout-tests/editing/deleting/delete-3959464-fix-expected.txt: Added.
2316         * layout-tests/editing/deleting/delete-3959464-fix.html: Added.
2317
2318 2005-01-21  Richard Williamson   <rjw@apple.com>
2319
2320         Fixed <rdar://problem/3966998> REGRESSION(179-TOT) clicking on gmail message brings me to blank screen
2321
2322         getElementById() sometimes returns Undefined() instead of Null().
2323
2324         Reviewed by Hyatt.
2325
2326         * khtml/ecma/kjs_dom.cpp:
2327         (DOMDocumentProtoFunc::tryCall):
2328
2329 2005-01-21  David Hyatt  <hyatt@apple.com>
2330
2331         Fix for 3773809, make sure that overflow regions never end up at an invalid scroll offset because of a layout change.
2332         
2333         Reviewed by kocienda
2334
2335         * khtml/rendering/render_layer.cpp:
2336         (RenderLayer::updateScrollInfoAfterLayout):
2337
2338 2005-01-21  David Hyatt  <hyatt@apple.com>
2339
2340         Fix for 3966349, hang loading page.  Make sure that loops using popOneBlock properly check for a null
2341         blockStack to avoid an infinite loop.
2342         
2343         Reviewed by kocienda
2344
2345         * khtml/html/htmlparser.cpp:
2346         (KHTMLParser::parseToken):
2347         (KHTMLParser::insertNode):
2348         (KHTMLParser::popInlineBlocks):
2349
2350 2005-01-21  Ken Kocienda  <kocienda@apple.com>
2351
2352         Reviewed by John
2353
2354         Fix for this bug:
2355         
2356         <rdar://problem/3957204> Mail crashed when sending a message in ~InsertParagraphSeparatorInQuotedContentCommand
2357
2358         * khtml/editing/htmlediting.cpp:
2359         (khtml::InsertParagraphSeparatorInQuotedContentCommand::InsertParagraphSeparatorInQuotedContentCommand):
2360         InsertParagraphSeparatorInQuotedContentCommand has this member variable: DOM::ElementImpl *m_breakNode;
2361         I failed to initialize this variable to null in the constructor, and there is an uncommonly-traveled 
2362         code path which does not set this variable to something good. In the destructor, we check for null, 
2363         and deref if non-null. Obvious "BOOM" potential. Fixed.
2364
2365 2005-01-21  Ken Kocienda  <kocienda@apple.com>
2366
2367         Reviewed by John
2368
2369         Fix for this bug:
2370         
2371         <rdar://problem/3966311> REGRESSION (Mail): Hitting return makes space character disappear
2372
2373         * khtml/editing/htmlediting.cpp:
2374         (khtml::InsertParagraphSeparatorCommand::doApply): When writing the code to insert a block
2375         in response to the return key, I did not write code to cover the case described in the bug.
2376         Now I have.
2377         * layout-tests/editing/inserting/insert-div-025-expected.txt: Added.
2378         * layout-tests/editing/inserting/insert-div-025.html: Added.
2379
2380 2005-01-20  Maciej Stachowiak  <mjs@apple.com>
2381
2382         Reviewed by Ken.
2383
2384         <rdar://problem/3965196> security fix for javascript: exploit missed one case (already fixed in updates)
2385         
2386         * khtml/ecma/kjs_window.cpp:
2387         (WindowFunc::tryCall): correct mistake in earlier fix for the following bug, caught by Adele:
2388
2389 2005-01-20  Maciej Stachowiak  <mjs@apple.com>
2390
2391         Reviewed by Ken.
2392
2393         <rdar://problem/3965466> editing needs to insert text before applying typing style
2394         
2395         * khtml/editing/htmlediting.cpp:
2396         (khtml::ApplyStyleCommand::addInlineStyleIfNeeded): Remove a FIXME comment.
2397         (khtml::InsertLineBreakCommand::doApply): Apply style to the BR
2398         node after inserting it.
2399         (khtml::InsertTextCommand::prepareForTextInsertion): Don't try to
2400         apply style to any new nodes created before inserting.
2401         (khtml::InsertTextCommand::input): Apply style to the inserted range
2402         after doing the text insert.
2403         * khtml/editing/htmlediting.h:
2404
2405         This change leads to improved results on one of the layout tests:
2406         
2407         * layout-tests/editing/inserting/insert-div-024-expected.txt:
2408
2409 === Safari-180 ===
2410
2411 2005-01-20  Ken Kocienda  <kocienda@apple.com>
2412
2413         Reviewed by John
2414
2415         Fix for this bug:
2416         
2417         <rdar://problem/3964646> REGRESSION (179-180): Typing space at end of line makes following paragraph disappear
2418
2419         * khtml/editing/htmlediting.cpp:
2420         (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): Recent change to block placeholder removal code 
2421         caused this regression. The code became too aggressive in removing block placeholders, and would remove them
2422         from blocks other than the block containing the selection.
2423         * layout-tests/editing/inserting/insert-div-023-expected.txt: This file had a spurious BR element in it that
2424         I did not notice earlier.
2425         * layout-tests/editing/inserting/insert-div-024-expected.txt: Ditto.
2426
2427 2005-01-20  David Hyatt  <hyatt@apple.com>
2428
2429         Fix for oddness on albertsons.com.  Make sure not to crash when setting/removing style properties on a node
2430         with no document.  The bug # is 3813900.
2431         
2432         Reviewed by john
2433
2434 2005-01-20  David Harrison  <harrison@apple.com>
2435
2436         Reviewed by Darin.
2437
2438         PARTIAL fix for following bug.  Create attributed string with fonts and links.  Still need to add attachments.
2439         <rdar://problem/3942606> AX: Support kAXAttributedStringForTextMarkerRangeParameterizedAttribute
2440         
2441         * kwq/KWQAccObject.mm:
2442         (-[KWQAccObject textUnderElement]):
2443         Touched up previous checkin to match code review comments.
2444         
2445         (-[KWQAccObject value]):
2446         Use plainText for this one instead of obsolete attributedString.
2447         
2448         (-[KWQAccObject accessibilityParameterizedAttributeNames]):
2449         Advertise AXAttributedStringForTextMarkerRange.
2450         
2451         (AXAttributeStringAddFont):
2452         (AXAttributeStringAddElement):
2453         (-[KWQAccObject linkUIElementForNode:]):
2454         (-[KWQAccObject _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
2455         (-[KWQAccObject accessibilityAttributedStringForRange:]):
2456         New routines to support AXAttributedStringForTextMarkerRange.
2457         
2458         (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
2459         Use new routines instead of obsolete attributedString.
2460
2461 2005-01-20  David Harrison  <harrison@apple.com>
2462
2463         Reviewed by Darin.
2464
2465         <rdar://problem/3960196> AX Crash in DOM::Range::setStartBefore
2466
2467         * khtml/xml/dom_docimpl.cpp:
2468         (DocumentImpl::getAccObjectCache):
2469         Adjust when detecting cache in non-top level WebArea.
2470         * kwq/KWQAccObject.mm:
2471         (-[KWQAccObject textUnderElement]):
2472         (-[KWQAccObject accessibilityAttributeValue:]):
2473         Make sure the elements document is the current one for the part.
2474
2475 2005-01-20  Darin Adler  <darin@apple.com>
2476
2477         Reviewed by John.
2478
2479         - fixed <rdar://problem/3922980> Mail not crashing, just quitting itself suddenly in -[WebHTMLView(MailExtras) findString:options:]
2480
2481         * khtml/dom/dom2_range.cpp: (DOM::operator==): Handle null and detached ranges without raising exceptions.
2482         The uncaught exception would make the entire program terminate.
2483
2484         - fixed <rdar://problem/3885729> attempting to modify a computed style does nothing, but should raise a DOM exception
2485
2486         * kwq/DOM-CSS.mm: (-[DOMCSSStyleDeclaration setProperty:::]): Uncommented this code which I had to disable
2487         back in November because Mail was stumbling over it.
2488
2489         - fixed <rdar://problem/3943049> focus() called during onload handler results in square text field on <input type=search>        
2490
2491         * kwq/KWQLineEdit.mm: (QLineEdit::baselinePosition): Change computation so it will work even for fields
2492         that position their text in a way that depends on vertical size. In the case of a search field, the text
2493         is centered, so the old logic was broken.
2494         * kwq/KWQTextField.mm: (-[KWQTextFieldController initWithTextField:QLineEdit:]): Set the frame size to
2495         something large enough to accomodate the field editor. If we start the frame at size 0,0 we run into
2496         AppKit trouble when it insets the frame to figure out the frame for the field editor. In the case of this
2497         bug this happens because we become first responder before being sized and positioned by the HTML layout code.
2498
2499         - improved debugging output when using "po" from gdb with Objective-C DOM
2500
2501         * kwq/DOM.mm:
2502         (-[DOMNode description]): Added. Includes node name ("<tr>") and node value (e.g., string for text node).
2503         (-[DOMRange description]): Tweaked format.
2504
2505 2005-01-19  Richard Williamson   <rjw@apple.com>
2506
2507         After further discussion with Real we have decided to NOT include the
2508         additional CLSID for the real plugin.  See 3958601.
2509
2510         Reviewed by Darin.
2511
2512         * khtml/rendering/render_frames.cpp:
2513         (RenderPartObject::updateWidget):
2514
2515 2005-01-19  David Harrison  <harrison@apple.com>
2516
2517         Reviewed by Maciej.
2518
2519         <rdar://problem/3949429> AX: word marker routines returns incorrect data for empty line
2520
2521         Previous checkin for this bug was missing some of the patch.  Editing snafu with multiple changes in tree.
2522         
2523         * kwq/KWQAccObject.mm:
2524         (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
2525         (-[KWQAccObject doAXNextWordEndTextMarkerForTextMarker:]):
2526         (-[KWQAccObject doAXPreviousWordStartTextMarkerForTextMarker:]):
2527         (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
2528         (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]):
2529         (-[KWQAccObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
2530         (-[KWQAccObject doAXPreviousParagraphStartTextMarkerForTextMarker:]):
2531
2532 2005-01-19  Ken Kocienda  <kocienda@apple.com>
2533
2534         Reviewed by John
2535
2536         * khtml/editing/htmlediting.cpp:
2537         (khtml::InsertParagraphSeparatorCommand::applyStyleAfterInsertion): Small, cosmetic change John and I decided
2538         to do on my last checkin, but I forgot to do before landing.
2539
2540 2005-01-19  Ken Kocienda  <kocienda@apple.com>
2541
2542         Reviewed by John
2543
2544         Fix for this bug:
2545         
2546         <rdar://problem/3959727> REGRESSION (Mail): Style not preserved on blank lines
2547
2548         * khtml/editing/htmlediting.cpp:
2549         (khtml::CompositeEditCommand::applyStyle):
2550         (khtml::CompositeEditCommand::insertBlockPlaceholder): New function that unconditionally adds a block placeholder.
2551         (khtml::CompositeEditCommand::insertBlockPlaceholderIfNeeded): Now returns bool based on whether
2552         placeholder was added or not.
2553         (khtml::CompositeEditCommand::removeBlockPlaceholderIfNeeded): Now searches all the descendents of a block
2554         looking for a placeholder. The old code, which just looked at the last child of a node, started missing
2555         once block placeholders became styled (which started happening with this patch).
2556         (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete): Now handles applying typing style
2557         to a block placeholder at call time, rather than setting the typing style as a latent style that
2558         might be applied later. This is an important part of the bug fix.
2559         (khtml::DeleteSelectionCommand::doApply): Now uses bool return value from insertBlockPlaceholderIfNeeded()
2560         and passes it along to calculateStyleBeforeInsertion, so the case where a block placeholder needs to
2561         be styled can be detected.
2562         (khtml::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): Changed the way this class
2563         managed style. Before it would calculate and set typing style for the block added. This is not
2564         sufficient. Added blocks need to styled immediately. Some name changes to instance variables in 
2565         this class due to the change to accommodate this change.
2566         (khtml::InsertParagraphSeparatorCommand::~InsertParagraphSeparatorCommand): Name changes, as above.
2567         (khtml::InsertParagraphSeparatorCommand::calculateStyleBeforeInsertion): Ditto.
2568         (khtml::InsertParagraphSeparatorCommand::applyStyleAfterInsertion): Ditto.
2569         (khtml::InsertParagraphSeparatorCommand::doApply): Ditto.
2570         (khtml::ReplaceSelectionCommand::doApply): Improve check for testing when a placeholder
2571         block can be removed in its entirety after the insertion.
2572         * khtml/editing/htmlediting.h: Update header accordingly.
2573         * khtml/khtml_part.cpp:
2574         (KHTMLPart::selectionComputedStyle): Move position for computed style check downstream before
2575         doing check when the position is in an empty block (this makes sure any style on any block
2576         placeholder is accounted for).
2577
2578         New layout tests to check bug fix.
2579
2580         * layout-tests/editing/style/block-style-004-expected.txt: Added.
2581         * layout-tests/editing/style/block-style-004.html: Added.
2582         * layout-tests/editing/style/block-style-005-expected.txt: Added.
2583         * layout-tests/editing/style/block-style-005.html: Added.
2584         * layout-tests/editing/style/block-style-006-expected.txt: Added.
2585         * layout-tests/editing/style/block-style-006.html: Added.
2586
2587         Results updated to reflect new block placeholder code.
2588
2589         * layout-tests/editing/inserting/insert-div-004-expected.txt 
2590         * layout-tests/editing/inserting/insert-div-005-expected.txt
2591         * layout-tests/editing/inserting/insert-div-006-expected.txt
2592         * layout-tests/editing/inserting/insert-div-008-expected.txt
2593         * layout-tests/editing/inserting/insert-div-011-expected.txt
2594         * layout-tests/editing/inserting/insert-div-012-expected.txt
2595         * layout-tests/editing/inserting/insert-div-013-expected.txt
2596         * layout-tests/editing/inserting/insert-div-014-expected.txt
2597         * layout-tests/editing/inserting/insert-div-015-expected.txt
2598         * layout-tests/editing/inserting/insert-div-016-expected.txt
2599         * layout-tests/editing/inserting/insert-div-017-expected.txt
2600         * layout-tests/editing/inserting/insert-div-018-expected.txt
2601         * layout-tests/editing/inserting/insert-div-019-expected.txt
2602         * layout-tests/editing/inserting/insert-div-021-expected.txt
2603         * layout-tests/editing/inserting/insert-div-022-expected.txt
2604         * layout-tests/editing/inserting/insert-div-023-expected.txt
2605         * layout-tests/editing/inserting/insert-div-024-expected.txt
2606
2607 2005-01-19  David Hyatt  <hyatt@apple.com>
2608
2609         Dont null-check the renderer before submitting, since a script can set it to display:none and still expect the
2610         submission to occur.  Fixes bug #3477282.
2611         
2612         Reviewed by kdecker
2613
2614         (DOM::HTMLInputElementImpl::defaultEventHandler):
2615
2616 2005-01-18  Richard Williamson   <rjw@apple.com>
2617         
2618         Fixed several issues all arising from analysis of plugin detection code at ifilm.com:
2619
2620         Fixed <rdar://problem/3958592> can't script plug-ins if plug-in is invoked with <object> element instead of <embed>
2621         Fixed <rdar://problem/3958597> <object> elements with IDs do not show up as named properties of the document
2622         Fixed <rdar://problem/3960973> DOM objects for plugin elements are not accessible
2623         Fixed <rdar://problem/3958601> need an additional class ID in WebCore for the Real plug-in
2624
2625         We now support accessing scriptable plugin objects that are specified with <applet>, <embed>, or <object>
2626         tags.  Also, if any of these elements are named they can be accessed from the document or window objects.
2627         Finally, DOM methods are properties will be forwarded appropriately for the plugin's root scriptable object.
2628
2629         Reviewed by Chris.
2630
2631         * khtml/dom/html_document.cpp:
2632         (HTMLDocument::objects):
2633         * khtml/dom/html_document.h:
2634         * khtml/ecma/kjs_dom.cpp:
2635         (DOMDocumentProtoFunc::tryCall):
2636         (DOMElementProtoFunc::tryCall):
2637         (KJS::getRuntimeObject):
2638         * khtml/ecma/kjs_dom.h:
2639         * khtml/ecma/kjs_html.cpp:
2640         (KJS::HTMLDocument::tryGet):
2641         (KJS::HTMLElement::tryGet):
2642         (KJS::HTMLCollection::tryGet):
2643         (KJS::HTMLCollection::getNamedItems):
2644         * khtml/ecma/kjs_window.cpp:
2645         (Window::get):
2646         * khtml/html/html_miscimpl.cpp:
2647         (HTMLCollectionImpl::traverseNextItem):
2648         * khtml/html/html_miscimpl.h:
2649         (DOM::HTMLCollectionImpl::):
2650         * khtml/html/html_objectimpl.cpp:
2651         (HTMLAppletElementImpl::getAppletInstance):
2652         (HTMLObjectElementImpl::HTMLObjectElementImpl):
2653         (HTMLObjectElementImpl::getObjectInstance):
2654         * khtml/html/html_objectimpl.h:
2655         * khtml/rendering/render_frames.cpp:
2656         (RenderPartObject::updateWidget):
2657         * kwq/KWQKHTMLPart.h:
2658         * kwq/KWQKHTMLPart.mm:
2659         (KWQKHTMLPart::getObjectInstanceForView):
2660
2661 2005-01-18  David Hyatt  <hyatt@apple.com>
2662
2663         Fix for 3948123, rolling over link erases nearby text.  The repaint rect check for lines was wrong whenever
2664         two lines overlapped.
2665         
2666         Reviewed by kocienda
2667
2668         * khtml/rendering/render_flow.cpp:
2669         (RenderFlow::paintLines):
2670
2671 2005-01-18  Ken Kocienda  <kocienda@apple.com>
2672
2673         Reviewed by Hyatt
2674         
2675         Fix for this bug:
2676         
2677         <rdar://problem/3960116> Focus rings paint incorrectly for contenteditable blocks in web pages
2678
2679         * khtml/rendering/render_flow.cpp:
2680         (RenderFlow::addFocusRingRects): Fix painting of focus rings so that ring only paints around
2681         outermost contenteditable elements.
2682
2683 2005-01-18  David Harrison  <harrison@apple.com>
2684
2685         Reviewed by Darin.
2686
2687         <rdar://problem/3959668> accessibilityFocusedUIElement sometimes returns an ignored element; it must not
2688
2689         * kwq/KWQAccObject.mm:
2690         (-[KWQAccObject accessibilityFocusedUIElement]):
2691         Return parentObjectUnignored if focused object is ignored.
2692
2693 2005-01-18  Ken Kocienda  <kocienda@apple.com>
2694
2695         Reviewed by John
2696
2697         Fix for this bug:
2698         
2699         <rdar://problem/3952877> REGRESSION (Mail): Command-left/right-arrows don't work with file attachment
2700
2701         * khtml/editing/selection.cpp:
2702         (khtml::nodeForInlineBox): New helper function used in reimplementation of function below.
2703         (khtml::selectionForLine): Reimplemented using line box smarts. I originally wrote this code when
2704         I had a less than full understanding of line layout. I can do better now, and my new version no
2705         longer fails to notice attachments when doing the kind of navigation mentioned in the bug.
2706
2707 2005-01-17  David Harrison  <harrison@apple.com>
2708
2709         Reviewed by John Sullivan.
2710
2711         <rdar://problem/3949429> AX: word marker routines returns incorrect data for empty line
2712         <rdar://problem/3949848> AX: paragraph marker routines do not work when given a paragraph end marker
2713
2714         Also fixed sentence support in the same way.
2715         
2716         * kwq/KWQAccObject.mm:
2717         (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
2718         (-[KWQAccObject doAXNextSentenceEndTextMarkerForTextMarker:]):
2719         (-[KWQAccObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
2720         (-[KWQAccObject doAXNextParagraphEndTextMarkerForTextMarker:]):
2721         (-[KWQAccObject doAXPreviousParagraphStartTextMarkerForTextMarker:]):
2722         Move one position in desired direction before calling visible_units.cpp code.
2723
2724 2005-01-17  David Harrison  <harrison@apple.com>
2725
2726         Updated expected test results.
2727         
2728         <rdar://problem/3945880> line-ending space seems not to be present
2729
2730         * layout-tests/editing/deleting/delete-ws-fixup-001-expected.txt:
2731         * layout-tests/editing/deleting/delete-ws-fixup-002-expected.txt:
2732         * layout-tests/editing/inserting/insert-div-020-expected.txt:
2733         * layout-tests/editing/inserting/insert-div-021-expected.txt:
2734         * layout-tests/editing/inserting/insert-div-022-expected.txt:
2735         * layout-tests/editing/inserting/insert-div-023-expected.txt:
2736         * layout-tests/editing/inserting/insert-div-024-expected.txt:
2737
2738 2005-01-17  David Harrison  <harrison@apple.com>
2739
2740         Reviewed by Dave Hyatt (bidi.cpp) and Darin Adler (selection.cpp).
2741
2742         <rdar://problem/3945880> line-ending space seems not to be present
2743
2744         * khtml/editing/selection.cpp:
2745         (khtml::Selection::validate):
2746         Extend AFTER_WHITE_SPACE code to support white spac in the middle of paragraphs, not just the end.
2747         * khtml/rendering/bidi.cpp:
2748         (khtml::RenderBlock::findNextLineBreak):
2749         Pick left/rightness of word selection based on being at the end of paragraph (i.e. after a hard line break).
2750
2751 2005-01-17  Darin Adler  <darin@apple.com>
2752
2753         Reviewed by John Louch.
2754
2755         - fixed <rdar://problem/3958503> need screenX and screenY to use WebKit windowFrame delegate
2756
2757         * khtml/ecma/kjs_window.cpp: (Window::get): Change screenX and screenY to use frameGeometry instead
2758         of using mapToGlobal and screen in a complicated way.
2759         * kwq/KWQKHTMLView.mm: Removed unused mapToGlobal function.
2760         * kwq/KWQWindowWidget.h: Ditto.
2761         * kwq/KWQWindowWidget.mm: Ditto.
2762
2763 2005-01-17  David Hyatt  <hyatt@apple.com>
2764
2765         Fix a screwup in rightmost/lowets position computation.  3955207.  Make sure floats with layers are still checked.
2766
2767         Reviewed by kocienda
2768         
2769         * khtml/rendering/render_block.cpp
2770
2771 2005-01-17  Ken Kocienda  <kocienda@apple.com>
2772
2773         Reviewed by John
2774
2775         <rdar://problem/3953366> Problems with typing attributes in HTML compose
2776
2777         * khtml/editing/htmlediting.cpp:
2778         (khtml::DeleteSelectionCommand::calculateTypingStyleAfterDelete): Remove misguided "optimization"
2779         that tried to sense when typing style could be cleared without actually doing a style diff between
2780         before-delete and after-delete positions. Removing this extra check and running the 
2781         general-purpose code fixes the bug.
2782
2783 2005-01-17  Richard Williamson   <rjw@apple.com>
2784
2785         Fixed <rdar://problem/3753030> Need to ensure same origin for plugin binding invocations (origin security rules)
2786
2787         Keep track of originating execution context and target execution
2788         context for native JS object wrappers, and perform appropriate
2789         security checks.
2790
2791         Reviewed by David Harrison.
2792
2793         * khtml/ecma/kjs_binding.cpp:
2794         (ScriptInterpreter::isGlobalObject):
2795         (ScriptInterpreter::isSafeScript):
2796         (ScriptInterpreter::interpreterForGlobalObject):
2797         * khtml/ecma/kjs_binding.h:
2798         * khtml/ecma/kjs_window.cpp:
2799         (Window::interpreter):
2800         (Window::isSafeScript):
2801         * khtml/ecma/kjs_window.h:
2802         * kwq/DOMInternal.mm:
2803         (-[WebScriptObject _initializeScriptDOMNodeImp]):
2804         * kwq/KWQKHTMLPart.mm:
2805         (KWQKHTMLPart::windowScriptObject):
2806         (KWQKHTMLPart::windowScriptNPObject):
2807         * kwq/WebCoreBridge.mm:
2808         (rootForView):
2809         (-[WebCoreBridge init]):
2810
2811 2005-01-17  Ken Kocienda  <kocienda@apple.com>
2812
2813         Reviewed by John
2814
2815         Fix for this bug:
2816         
2817         <rdar://problem/3786659> REGRESSION (Mail): editable WebViews don't work with 
2818         "size up" and "size down" NSFontManager changes
2819
2820         * khtml/css/cssparser.cpp:
2821         (CSSParser::parseValue): Add support for parsing new font size delta property.
2822         * khtml/css/cssproperties.c: Generated file.
2823         * khtml/css/cssproperties.h: Ditto.
2824         * khtml/css/cssproperties.in: Add support for parsing new font size delta property.
2825         * khtml/editing/htmlediting.cpp:
2826         (khtml::isEmptyStyleSpan): New helper function. Code existed before, but now factored out for convenient use.
2827         (khtml::CompositeEditCommand::removeNodeAttribute): Does check on value to see it exists before creating
2828         and running command to do the removal.
2829         (khtml::ApplyStyleCommand::doApply): Now calls new applyRelativeFontStyleChange() function as part of its work.
2830         (khtml::ApplyStyleCommand::applyRelativeFontStyleChange): New function that does the "heavy lifting" to handle 
2831         relative font size changes.
2832         (khtml::ApplyStyleCommand::applyInlineStyle): Range check the start and end positions to make sure the start is
2833         before or equal to the end. Swap them if not true. I ran into this problem in some similar code in 
2834         applyRelativeFontStyleChange(). Moving that goodness here too.
2835         (khtml::ApplyStyleCommand::splitTextAtEndIfNeeded): Uses a local variable to save a value used often.
2836         Code is the same, but reads better now. Function now returns bool as well, just like splitTextAtStartIfNeeded.
2837         I use the bool return value now (I obviously did not need it before).
2838         (khtml::ApplyStyleCommand::computedFontSize): New helper function.
2839         (khtml::ApplyStyleCommand::joinChildTextNodes): Ditto.
2840         (khtml::createStyleSpanElement): Ditto.
2841         * khtml/editing/htmlediting.h: Update header accordingly.
2842         * khtml/editing/jsediting.cpp: Add new command string to enable relative font size changes.
2843         * kwq/DOM-CSS.mm:
2844         (-[DOMCSSStyleDeclaration _fontSizeDelta]): New convenience.
2845         (-[DOMCSSStyleDeclaration _setFontSizeDelta:]): Ditto.
2846         * kwq/DOMPrivate.h: Declare new conveniences.
2847         * layout-tests/editing/editing.js: Add new JS to enable relative font size changes, as well as explicit font size setting.
2848         * layout-tests/editing/style/relative-font-size-change-001-expected.txt: Added.
2849         * layout-tests/editing/style/relative-font-size-change-001.html: Added.
2850         * layout-tests/editing/style/relative-font-size-change-002-expected.txt: Added.
2851         * layout-tests/editing/style/relative-font-size-change-002.html: Added.
2852         * layout-tests/editing/style/relative-font-size-change-003-expected.txt: Added.
2853         * layout-tests/editing/style/relative-font-size-change-003.html: Added.
2854         * layout-tests/editing/style/relative-font-size-change-004-expected.txt: Added.
2855         * layout-tests/editing/style/relative-font-size-change-004.html: Added.
2856
2857 2005-01-14  Darin Adler  <darin@apple.com>
2858
2859         * khtml/css/cssproperties.c: Regenerated with gperf 3.0.1.
2860         * khtml/css/cssvalues.c: Regenerated with gperf 3.0.1.
2861         * khtml/misc/htmlattrs.c: Regenerated with gperf 3.0.1.
2862         * khtml/misc/htmltags.c: Regenerated with gperf 3.0.1.
2863
2864 2005-01-14  Chris Blumenberg  <cblu@apple.com>
2865
2866         Fixed: <rdar://problem/3886415> arrow keys don't work when the user hits Back to return to RSS page
2867
2868         Reviewed by hyatt.
2869
2870         (KWQKHTMLPart::openURLFromPageCache): restore mousePressNode
2871         (KWQKHTMLPart::mousePressNode): new
2872         * kwq/KWQPageState.h:
2873         * kwq/KWQPageState.mm:
2874         (-[KWQPageState initWithDocument:URL:windowProperties:locationProperties:interpreterBuiltins:]): save the mousePressNode
2875         (-[KWQPageState clear]): clear the mousePressNode
2876         (-[KWQPageState dealloc]): deref the mousePressNode
2877         (-[KWQPageState mousePressNode]): new
2878
2879 === Safari-179 ===
2880
2881 2005-01-13  Vicki Murley <vicki@apple.com>
2882
2883         Reviewed by Adele.
2884
2885         - fix <rdar://problem/3946836> Safari about box lists 2004 instead of 2005
2886
2887         * WebCore.pbproj/project.pbxproj: bump "2004" to "2005"
2888
2889 2005-01-13  David Harrison  <harrison@apple.com>
2890
2891         Reviewed by Ken Kocienda.
2892         
2893         Better fix for 3905066.
2894         
2895         * khtml/editing/htmlediting.cpp:
2896         (khtml::InsertParagraphSeparatorCommand::doApply):
2897
2898 2005-01-10  Maciej Stachowiak  <mjs@apple.com>
2899
2900         Reviewed by Darin.
2901
2902         <rdar://problem/3758033> REGRESSION (Mail): Support attributes in marked text (International input)
2903         
2904         * khtml/rendering/render_text.cpp:
2905         (InlineTextBox::paint): Support painting custom underline markers for
2906         marked text in place of generic yellow.
2907         (InlineTextBox::paintMarkedTextUnderline): New method that handles this.
2908         * khtml/rendering/render_text.h:
2909         * kwq/KWQKHTMLPart.h: Declare new methods and structs.
2910         * kwq/KWQKHTMLPart.mm:
2911         (KWQKHTMLPart::clear): Clear marked test underlines.
2912         (KWQKHTMLPart::setMarkedTextRange): Takes attributes and ranges now.
2913         (convertAttributesToUnderlines): Converts NSAttributedString attributes
2914         to simplified and C++-friendly form.
2915         (KWQKHTMLPart::markedTextUsesUnderlines): New method.
2916         (KWQKHTMLPart::markedTextUnderlines): New method.
2917         * kwq/KWQPainter.mm:
2918         (QPainter::drawLineForText): Handle pen width.
2919         * kwq/WebCoreBridge.h:
2920         * kwq/WebCoreBridge.mm:
2921         (-[WebCoreBridge setMarkedTextDOMRange:customAttributes:ranges:]): Take attributes
2922         and ranges.
2923         * kwq/WebCoreTextRenderer.h:
2924
2925 2005-01-12  David Harrison  <harrison@apple.com>
2926
2927         Reviewed by Dave Hyatt.
2928
2929         <rdar://problem/3888973> AX: Parent AXWebArea of nested AXWebAreas is messed up
2930         
2931         * kwq/KWQAccObject.mm:
2932         (-[KWQAccObject addChildrenToArray:]):
2933         Use the widget's outer view.
2934
2935 2005-01-12  David Harrison  <harrison@apple.com>
2936
2937         Reviewed by Darin Adler.
2938
2939         <rdar://problem/3949908> Crash when asking for the kAXLengthForTextMarkerRangeParameterizedAttribute
2940         
2941         * khtml/xml/dom_nodeimpl.cpp:
2942         (NodeImpl::displayNode):
2943         Add quotes around text node content.
2944         (NodeBaseImpl::childNode):
2945         Add nil check to return nil rather than crash when child node not found.
2946         * kwq/KWQAccObject.mm:
2947         (-[KWQAccObject doAXStringForTextMarkerRange:]):
2948         Pass range compliant positions to TextIterator.
2949
2950 2005-01-12  David Hyatt  <hyatt@apple.com>
2951
2952         Fix for 3951203, CSS border style incorrectly clipped on inline elements.  Make sure the repaint rect set during
2953         line layout is smarter about including the overflow for both old states and new states.
2954         
2955         Reviewed by john
2956
2957         * khtml/rendering/bidi.cpp:
2958         (khtml::RenderBlock::layoutInlineChildren):
2959
2960 2005-01-12  David Hyatt  <hyatt@apple.com>
2961
2962         Fix for bug 3937608, versiontracker.com flashes and displays the right column below content.  Make sure to move
2963         tables/overflows that dont fit within a block only in strict mode.
2964
2965         Fix for bug 3931049, characters dont show up when typing.  Make sure to dirty the right lines when this specific
2966         case in editing is hit.
2967         
2968         Reviewed by darin (first one), kocienda (second one)
2969
2970         * khtml/rendering/render_block.cpp:
2971         (khtml::RenderBlock::getClearDelta):
2972         * khtml/rendering/render_flow.cpp:
2973         (RenderFlow::dirtyLinesFromChangedChild):
2974         * khtml/rendering/render_line.cpp:
2975         (khtml::InlineFlowBox::verticallyAlignBoxes):
2976
2977 2005-01-12  Ken Kocienda  <kocienda@apple.com>
2978
2979         Reviewed by John
2980
2981         Fix for this bug:
2982         
2983         <rdar://problem/3926142> REGRESSION (Mail): Deleting text decreases quote level
2984
2985         * khtml/editing/htmlediting.cpp:
2986         (khtml::DeleteSelectionCommand::initializePositionData): Change test that will prevent block
2987         merging. End-of-line test was just wrong. Call new start-of and end-of paragraph functions
2988         added to visible_position files.
2989         (khtml::DeleteSelectionCommand::moveNodesAfterNode): Add tests for BR elements, which makes
2990         tests to determine when to stop moving nodes more complete and correct. Also improved comments.
2991         * khtml/editing/visible_position.cpp:
2992         (khtml::isFirstVisiblePositionInParagraph): New function.
2993         (khtml::isLastVisiblePositionInParagraph): New function.
2994         * khtml/editing/visible_position.h: Update header accordingly.
2995         * layout-tests/editing/deleting/delete-block-merge-contents-002-expected.txt: New results, slightly different from former
2996         results but still correct.
2997         * layout-tests/editing/deleting/delete-block-merge-contents-007-expected.txt: Ditto.
2998         * layout-tests/editing/deleting/delete-block-merge-contents-018-expected.txt: Added.
2999         * layout-tests/editing/deleting/delete-block-merge-contents-018.html: Added.
3000         * layout-tests/editing/deleting/delete-block-merge-contents-019-expected.txt: Added.
3001         * layout-tests/editing/deleting/delete-block-merge-contents-019.html: Added.
3002         * layout-tests/editing/deleting/delete-block-merge-contents-020-expected.txt: Added.
3003         * layout-tests/editing/deleting/delete-block-merge-contents-020.html: Added.
3004         * layout-tests/editing/deleting/delete-block-merge-contents-021-expected.txt: Added.
3005         * layout-tests/editing/deleting/delete-block-merge-contents-021.html: Added.
3006         * layout-tests/editing/deleting/delete-line-014-expected.txt: These new results are actually better, and fix a bug.
3007
3008 2005-01-11  Richard Williamson   <rjw@apple.com>
3009
3010         Fixed 3922875.  Fall back to DOM object is EMBED element
3011         has no associated runtime object.
3012
3013         Reviewed by Chris.
3014
3015         * khtml/ecma/kjs_dom.cpp:
3016         (KJS::getRuntimeObject):
3017         * khtml/ecma/kjs_html.cpp:
3018         (KJS::HTMLDocument::tryGet):
3019         (KJS::HTMLElement::tryGet):
3020         (KJS::HTMLCollection::tryGet):
3021         (KJS::HTMLCollection::getNamedItems):
3022
3023 2005-01-11  David Hyatt  <hyatt@apple.com>
3024
3025         Fix for 3882299, missing content on gibson.com.  Change our handling of " and ' in certain states of the parser to match
3026         other browsers.
3027         
3028         Reviewed by Maciej
3029
3030         * khtml/html/htmltokenizer.cpp:
3031         (khtml::HTMLTokenizer::parseTag):
3032
3033 2005-01-11  Chris Blumenberg  <cblu@apple.com>
3034
3035         Fixed: <rdar://problem/3930733> Mail prints second page of email blank
3036
3037         Reviewed by dave.
3038
3039         * khtml/rendering/render_canvas.cpp:
3040         (RenderCanvas::paint): cache the print rect since the dirty rect can get changed during printing
3041         * khtml/rendering/render_flow.cpp:
3042         (RenderFlow::paintLines): removed null check since the print rect should never be null
3043         * khtml/rendering/render_list.cpp:
3044         (RenderListMarker::paint): ditto
3045         * kwq/KWQKHTMLPart.mm:
3046         (KWQKHTMLPart::adjustPageHeight): don't set the print rect here since this method is not called for the last page
3047
3048 2005-01-10  Ken Kocienda  <kocienda@apple.com>
3049
3050         Reviewed by Hyatt
3051
3052         Fix for this bug:
3053         
3054         <rdar://problem/3943648> extra line is inserted after pressing return within quoted text of reply
3055
3056         * khtml/editing/htmlediting.cpp:
3057         (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): This bug was the result of a 
3058         simple coding mistake. A local variable was erroneously redefined in a deeper scope, and so the 
3059         result calculated in that deeper scope was not available when tested.
3060
3061 2005-01-10  Ken Kocienda  <kocienda@apple.com>
3062
3063         Reviewed by John
3064
3065         Fix for this bug:
3066         
3067         <rdar://problem/3946852> Option-e goes to next line
3068
3069         * khtml/editing/htmlediting.cpp:
3070         (khtml::ReplaceSelectionCommand::doApply): Tweak case used to determine when merging content
3071         into the start line is done. We plan to change pretty substantially soon to better handle
3072         the problem described in <rdar://problem/3937352> Quote level not maintained when copied 
3073         and pasted within a Mail message. In the meantime, this change does no harm, and fixes the bug.
3074
3075 2005-01-10  Ken Kocienda  <kocienda@apple.com>
3076
3077         Reviewed by Darin
3078
3079         Fix for this bug:
3080         
3081         <rdar://problem/3907005> Applying block styles to a line of text can unexpectedly affect other lines
3082
3083         * khtml/editing/htmlediting.cpp:
3084         (khtml::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): New function which moves "paragraphs"
3085         to their own blocks if needed so that a block style can be applied.
3086         (khtml::CompositeEditCommand::isMailBlockquote): Moved this function to base class so it can be used more generally.
3087         (khtml::ApplyStyleCommand::applyBlockStyle): Pass a node instead of a block to addBlockStyleIfNeeded().
3088         (khtml::ApplyStyleCommand::addBlockStyleIfNeeded): Now accepts a node instead of a block for styling.
3089         This function also now calls moveParagraphContentsToNewBlockIfNecessary() to make sure that only the current
3090         paragraph is styled.
3091         (khtml::SetNodeAttributeCommand::doUnapply): Should not assert on undo if old value of attribute was null.
3092         Should remove attributue instead.
3093         * khtml/editing/htmlediting.h: Touch function declarations accordingly.
3094         * layout-tests/editing/style/create-block-for-style-001-expected.txt: Added.
3095         * layout-tests/editing/style/create-block-for-style-001.html: Added.
3096         * layout-tests/editing/style/create-block-for-style-002-expected.txt: Added.
3097         * layout-tests/editing/style/create-block-for-style-002.html: Added.
3098         * layout-tests/editing/style/create-block-for-style-003-expected.txt: Added.
3099         * layout-tests/editing/style/create-block-for-style-003.html: Added.
3100         * layout-tests/editing/style/create-block-for-style-004-expected.txt: Added.
3101         * layout-tests/editing/style/create-block-for-style-004.html: Added.
3102         * layout-tests/editing/style/create-block-for-style-005-expected.txt: Added.
3103         * layout-tests/editing/style/create-block-for-style-005.html: Added.
3104         * layout-tests/editing/style/create-block-for-style-006-expected.txt: Added.
3105         * layout-tests/editing/style/create-block-for-style-006.html: Added.
3106         * layout-tests/editing/style/create-block-for-style-007-expected.txt: Added.
3107         * layout-tests/editing/style/create-block-for-style-007.html: Added.
3108         * layout-tests/editing/style/create-block-for-style-008-expected.txt: Added.
3109         * layout-tests/editing/style/create-block-for-style-008.html: Added.
3110         * layout-tests/editing/style/create-block-for-style-009-expected.txt: Added.
3111         * layout-tests/editing/style/create-block-for-style-009.html: Added.
3112         * layout-tests/editing/style/create-block-for-style-010-expected.txt: Added.
3113         * layout-tests/editing/style/create-block-for-style-010.html: Added.
3114         * layout-tests/editing/style/create-block-for-style-011-expected.txt: Added.
3115         * layout-tests/editing/style/create-block-for-style-011.html: Added.
3116         * layout-tests/editing/style/create-block-for-style-012-expected.txt: Added.
3117         * layout-tests/editing/style/create-block-for-style-012.html: Added.
3118         * layout-tests/editing/style/create-block-for-style-013-expected.txt: Added.
3119         * layout-tests/editing/style/create-block-for-style-013.html: Added.
3120
3121         Unrelated updates to these expected results.
3122         * layout-tests/editing/inserting/insert-div-007-expected.txt
3123         * layout-tests/editing/pasteboard/paste-text-013-expected.txt
3124
3125 2005-01-10  Chris Blumenberg  <cblu@apple.com>
3126
3127         Fixed: <rdar://problem/3936844> Mail: Messages with rich text do not print
3128
3129         Reviewed by john.
3130
3131         * khtml/rendering/render_flow.cpp:
3132         (RenderFlow::paintLines): don't do pagination work if printRect is not set
3133         * khtml/rendering/render_list.cpp:
3134         (RenderListMarker::paint): ditto
3135
3136 2005-01-10  David Harrison  <harrison@apple.com>
3137
3138         Reviewed by Darin.
3139
3140         * kwq/KWQTextUtilities.mm:
3141         (currentTextBreakLocaleID):
3142         Return empty string (AKA root locale) if locale pref can not be canonicalized.
3143
3144 2005-01-10  John Sullivan  <sullivan@apple.com>
3145
3146         Fixed broken Panther build.
3147
3148         * kwq/KWQTextUtilities.mm:
3149         (currentTextBreakLocaleID):
3150         This recently-added function was using code copy/pasted from CarbonCore UnicodeUtilities.
3151         That code used a Tiger-only function, CFLocaleCreateCanonicalLanguageIdentifierFromString.
3152         To fix the build, I added a BUILDING_ON_PANTHER #ifdef that avoids the call to the Tiger
3153         function. However, the Tiger-only code was wrong; the string generated using 
3154         CFLocaleCreateCanonicalLanguageIdentifierFromString was not used at all, so I fixed that
3155         as well.
3156
3157 2005-01-09  David Harrison  <harrison@apple.com>
3158
3159         Reviewed by Ken Kocienda.
3160
3161         <rdar://problem/3786362> REGRESSION (Mail): pasted text loses one newline
3162         
3163         * khtml/editing/htmlediting.cpp:
3164         (khtml::ReplaceSelectionCommand::doApply):
3165         Tune check for need for insertParagraphSeparator when hasInterchangeNewline.
3166
3167 2005-01-09  Darin Adler  <darin@apple.com>
3168
3169         Reviewed by Harrison.
3170
3171         - fixed <rdar://problem/3939176> select() method does not work on <input type=search>
3172
3173         * khtml/html/html_formimpl.cpp: (DOM::HTMLInputElementImpl::select): Changed if statement
3174         to a switch statement. Added SEARCH to the set of types that treat the renderer as a
3175         RenderLineEdit.
3176
3177 2005-01-09  David Harrison  <harrison@apple.com>
3178
3179         Reviewed by Ken Kocienda.
3180
3181         <rdar://problem/3905066> REGRESSION (Mail): Hitting return key with caret in front of space causes space to become lost (resize fixes)
3182
3183         Problem was that InsertParagraphSeparatorCommand::doApply() was not collapsing
3184         whitespace to a single non-breaking space when splitting a text node.
3185
3186         * khtml/editing/htmlediting.cpp:
3187         (khtml::InsertParagraphSeparatorCommand::doApply):
3188
3189 2005-01-08  Kevin Decker  <kdecker@apple.com>
3190
3191         Reviewed by Ken.
3192
3193         Fixed: <rdar://problem/3924219> Calling setOuterHTML: on a DOMHTMLHtmlElement can crash a program
3194
3195         * khtml/html/html_elementimpl.cpp:
3196         (HTMLElementImpl::setOuterHTML): Added a nil check for fragments who don't have parents.
3197
3198 2005-01-07  Maciej Stachowiak  <mjs@apple.com>
3199
3200         Reviewed by Darin.
3201         
3202         <rdar://problem/3807144> REGRESSION (125-TOT): my bank's website doesn't work (Societe Generale, socgen.com)
3203
3204         * Khtml/khtml_part.cpp:
3205         (KHTMLPart::checkCompleted): If the document is NULL, assume this frame has
3206         not started loading yet so it could not possibly be finishing here...
3207         (KHTMLPart::stop): ...unless the part is explicitly stopped and there is still
3208         no document, in this case we must have hit an error or been loading a non-HTML
3209         frame.
3210         * khtml/khtml_part.h:
3211
3212 2005-01-08  David Harrison  <harrison@apple.com>
3213
3214         Reviewed by Maciej.
3215
3216         <rdar://problem/3943415> REGRESSION (Mail): double-clicking past word selects previous word instead of only blank space
3217         
3218         * khtml/editing/selection.cpp:
3219         (khtml::Selection::validate):
3220         Tune word selections left/right choice to use right if on empty last line.
3221
3222 2005-01-07  David Harrison  <harrison@apple.com>
3223
3224         Reviewed by Darin.
3225
3226         <rdar://problem/3942619> AX: Support sentence ax attributes
3227
3228         Needed to use the unicode utilities properly.  Twas lame before.
3229
3230         * khtml/editing/visible_units.cpp:
3231         (khtml::previousBoundary):
3232         (khtml::nextBoundary):
3233         (khtml::startOfWord):
3234         (khtml::endOfWord):
3235         (khtml::previousWordPosition):
3236         (khtml::nextWordPosition):
3237         (khtml::startOfSentence):
3238         (khtml::endOfSentence):
3239         (khtml::previousSentencePosition):
3240         (khtml::nextSentencePosition):
3241         * kwq/KWQAccObject.mm:
3242         (-[KWQAccObject accessibilityAttributeNames]):
3243         (-[KWQAccObject accessibilityAttributeValue:]):
3244         (-[KWQAccObject accessibilityParameterizedAttributeNames]):
3245         (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
3246         * kwq/KWQTextUtilities.mm:
3247         (currentTextBreakLocaleID):
3248         (KWQFindSentenceBoundary):
3249         (KWQFindNextSentenceFromIndex):
3250
3251 2005-01-07  Ken Kocienda  <kocienda@apple.com>
3252
3253         Reviewed by Kevin
3254
3255         Fix for these bugs:
3256         
3257         <rdar://problem/3939523> in some cases, text does not retain style info after pressing return twice
3258         <rdar://problem/3944492> after pressing return twice, text is bold when it shouldn't be
3259
3260         * khtml/editing/htmlediting.cpp:
3261         (khtml::InsertParagraphSeparatorCommand::setFullTypingStyleBeforeInsertion):
3262         Merge the typing style with the computed style for the current position. Fixes both bugs.
3263         * khtml/editing/htmlediting.h:
3264         * layout-tests/editing/inserting/insert-div-023-expected.txt: Added.
3265         * layout-tests/editing/inserting/insert-div-023.html: Added.
3266         * layout-tests/editing/inserting/insert-div-024-expected.txt: Added.
3267         * layout-tests/editing/inserting/insert-div-024.html: Added.
3268
3269 2005-01-07  David Hyatt  <hyatt@apple.com>
3270
3271         Fix for 3941364, make sure tables reset overflowWidth/Height when they lay out again.  Fixes the odd scrolling
3272         behavior on worldofwarcraft.com.
3273         
3274         Reviewed by kevin
3275
3276         * khtml/rendering/render_table.cpp:
3277         (RenderTable::layout):
3278
3279 2005-01-06  David Hyatt  <hyatt@apple.com>
3280
3281         Fix for 3932418 and 3920998, assertion failures caused by stray inline content inside tables.  Bulletproof the hit testing to
3282         ignore inline flows in this case.
3283         
3284         Reviewed by kevin
3285
3286         * khtml/rendering/render_block.cpp:
3287         (khtml::RenderBlock::nodeAtPoint):
3288
3289 2005-01-07  Ken Kocienda  <kocienda@apple.com>
3290
3291         Reviewed by Hyatt
3292
3293         Fix for this bug:
3294         
3295         <rdar://problem/3848412> for forwarded message, tabbing to message view scrolls to bottom of view
3296
3297         * kwq/KWQKHTMLPart.mm:
3298         (KWQKHTMLPart::nextKeyViewInFrame): Don't scroll the focus node to visible if it is not
3299         in the document, or if it is not a descendent of the document element. In the case of the bug,
3300         since the selection has not yet been set up, the focus node passed here is the HTML element, and
3301         that does not yield a rect that is useful to us here. So now, in the case the bug mentions, we do nothing.
3302
3303 2005-01-06  Kevin Decker  <kdecker@apple.com>
3304
3305         Reviewed by mjs.
3306
3307         Fixed: <rdar://problem/3932215> REGRESSION (125-177): iFrame example at developer.apple.com fails in Safari
3308
3309         * khtml/khtml_part.cpp:
3310         (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. 
3311
3312 === Safari-178 ===
3313
3314 2005-01-06  David Harrison  <harrison@apple.com>
3315
3316         Reviewed by Chris.
3317
3318         (addendum to previous checkin for this bug) 
3319         <rdar://problem/3776056> AX: Editable HTML should not be viewed as AXStaticText
3320
3321         Fix line navigation.  Add AXUIElementForTextMarker.
3322
3323         * kwq/KWQAccObject.mm:
3324         (-[KWQAccObject accessibilityParameterizedAttributeNames]):
3325         (-[KWQAccObject doAXUIElementForTextMarker:]):
3326         (-[KWQAccObject doAXLineForTextMarker:]):
3327         (-[KWQAccObject doAXTextMarkerRangeForLine:]):
3328         (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
3329         (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
3330         (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]):
3331         (-[KWQAccObject accessibilityAttributeValue:forParameter:]):
3332
3333 2005-01-06  Darin Adler  <darin@apple.com>
3334
3335         Reviewed by Ken.
3336
3337         - re-fixed <rdar://problem/3760910> Request to include support for custom tag names in HTML (they already work in XML)
3338
3339         (turns out the PLT regression was a false alarm)
3340
3341         * khtml/html/htmlparser.h: Change forbidden tag array to be allocated in the object rather than on
3342         the heap. Also use ID_LAST_TAG for the array size; the old code used ID_CLOSE_TAG which is now a
3343         much larger number.
3344         * khtml/html/htmlparser.cpp:
3345         (KHTMLParser::KHTMLParser): Remove code that creates the forbidden tag array on the heap; makes more
3346         sense to just have the array be a member so we don't have to use new and delete on it. Also needed
3347         to eliminate code that used ID_CLOSE_TAG for an array size.
3348         (KHTMLParser::~KHTMLParser): Remove code that deletes the forbidden tag array. Also changed the code
3349         that manages isindex to use deref instead of delete.
3350         (KHTMLParser::reset): Use safer sizeof for clearing the forbidden tag array. Old code had the
3351         mistake of using ID_CLOSE_TAG for the array size too.
3352         (KHTMLParser::parseToken): Removed code that checks for bogus tags; it's not clear why it was ever
3353         there and it would prevent custom tags from working. Added range check before using the forbidden
3354         tag array with the token ID since custom tags will use index values past the end of the array.
3355         (KHTMLParser::getElement): Removed most of the code that makes an element by ID; now the work is done
3356         inside the DocumentImpl createHTMLElement. Any code that needs to be different than a dynamic
3357         createElement call is still here. Last time I left out a few form element types from this switch;
3358         fixed now.
3359         * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseTag): Call the tagId function in the
3360         document if getTagID fails; this creates a unique per-document ID.
3361
3362         * khtml/misc/htmltags.c: Regenerated.
3363         * khtml/misc/htmltags.h: Regenerated.
3364
3365         * khtml/misc/maketags: Changed the generated constants to use "const unsigned short" instead of "#define".
3366         Changed ID_CLOSE_TAG to be a fixed value of 32000 rather than being just past the IDs of the HTML tags.
3367         Also rewrote getTagName to work with the new scheme.
3368
3369 2005-01-06  David Harrison  <harrison@apple.com>
3370         
3371         Fixed Panther build.  Also, do not advertize sentence support since it is incomplete.
3372         
3373         * kwq/KWQAccObject.mm:
3374         (-[KWQAccObject visiblePositionForEndOfTextMarkerRange:]):
3375         (-[KWQAccObject accessibilityParameterizedAttributeNames]):
3376         (-[KWQAccObject accessibilityIsAttributeSettable:]):
3377
3378 2005-01-06  David Harrison  <harrison@apple.com>
3379
3380         Reviewed by Dave Hyatt.
3381
3382         <rdar://problem/3776056> AX: Editable HTML should not be viewed as AXStaticText
3383         <rdar://problem/3588548> AX: tabbing does not work correctly with the screen reader and a focused link; need AXFocusedUIElement to work
3384         
3385         Many more AX attributes supported.  Numerous fixes to previous AX work.
3386         
3387         * khtml/editing/visible_units.cpp:
3388         (khtml::startSentenceBoundary):
3389         (khtml::startOfSentence):
3390         (khtml::endSentenceBoundary):
3391         (khtml::endOfSentence):
3392         (khtml::previousSentencePositionBoundary):
3393         (khtml::previousSentencePosition):
3394         (khtml::nextSentencePositionBoundary):
3395         (khtml::nextSentencePosition):
3396         * khtml/editing/visible_units.h:
3397         * khtml/khtmlview.cpp:
3398         (KHTMLView::layout):
3399         * khtml/misc/helper.cpp:
3400         (khtml::findSentenceBoundary):
3401         (khtml::nextSentenceFromIndex):
3402         * khtml/misc/helper.h:
3403         * khtml/misc/htmltags.c:
3404         (hash_tag):
3405         (findTag):
3406         * khtml/rendering/render_container.cpp:
3407         (RenderContainer::removeChildNode):
3408         (RenderContainer::appendChildNode):
3409         (RenderContainer::insertChildNode):
3410         * khtml/rendering/render_object.cpp:
3411         (RenderObject::remove):
3412         * khtml/xml/dom_docimpl.cpp:
3413         (DocumentImpl::getAccObjectCache):
3414         (DocumentImpl::updateSelection):
3415         (DocumentImpl::close):
3416         (DocumentImpl::setFocusNode):
3417         (DocumentImpl::parentDocument):
3418         (DocumentImpl::topDocument):
3419         * khtml/xml/dom_docimpl.h:
3420         * kwq/KWQAccObject.mm:
3421         (-[KWQAccObject accessibilityShouldUseUniqueId]):
3422         (-[KWQAccObject detach]):
3423         (-[KWQAccObject anchorElement]):
3424         (-[KWQAccObject firstChild]):
3425         (-[KWQAccObject lastChild]):
3426         (-[KWQAccObject previousSibling]):
3427         (-[KWQAccObject nextSibling]):
3428         (-[KWQAccObject parentObject]):
3429         (-[KWQAccObject value]):
3430         (-[KWQAccObject accessibilityAttributeNames]):
3431         (-[KWQAccObject accessibilityPerformAction:]):
3432         (-[KWQAccObject textMarkerForVisiblePosition:]):
3433         (-[KWQAccObject visiblePositionForTextMarker:]):
3434         (-[KWQAccObject textMarkerRangeFromVisiblePositions:andEndPos:]):
3435         (-[KWQAccObject topDocument]):
3436         (-[KWQAccObject topRenderer]):
3437         (-[KWQAccObject topView]):
3438         (-[KWQAccObject accessibilityAttributeValue:]):
3439         (-[KWQAccObject accessibilityParameterizedAttributeNames]):
3440         (-[KWQAccObject doAXLineForTextMarker:]):
3441         (-[KWQAccObject doAXTextMarkerRangeForLine:]):
3442         (-[KWQAccObject doAXStringForTextMarkerRange:]):
3443         (-[KWQAccObject doAXTextMarkerForPosition:]):
3444         (-[KWQAccObject doAXBoundsForTextMarkerRange:]):
3445         (-[KWQAccObject doAXAttributedStringForTextMarkerRange:]):
3446         (-[KWQAccObject doAXTextMarkerRangeForUnorderedTextMarkers:]):
3447         (-[KWQAccObject doAXNextTextMarkerForTextMarker:]):
3448         (-[KWQAccObject doAXPreviousTextMarkerForTextMarker:]):
3449         (-[KWQAccObject doAXLeftWordTextMarkerRangeForTextMarker:]):
3450         (-[KWQAccObject doAXRightWordTextMarkerRangeForTextMarker:]):
3451         (-[KWQAccObject doAXLeftLineTextMarkerRangeForTextMarker:]):
3452         (-[KWQAccObject doAXRightLineTextMarkerRangeForTextMarker:]):
3453         (-[KWQAccObject doAXSentenceTextMarkerRangeForTextMarker:]):
3454         (-[KWQAccObject doAXParagraphTextMarkerRangeForTextMarker:]):
3455         (-[KWQAccObject doAXNextWordEndTextMarkerForTextMarker:]):
3456         (-[KWQAccObject doAXPreviousWordStartTextMarkerForTextMarker:]):
3457         (-[KWQAccObject doAXNextLineEndTextMarkerForTextMarker:]):
3458         (-[KWQAccObject doAXPreviousLineStartTextMarkerForTextMarker:]):
3459         (-[KWQAccObject doAXNextSentenceEndTextMarkerForTextMarker:]):
3460         (-[KWQAccObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
3461         (-[KWQAccObject doAXNextParagraphEndTextMarkerForTextMarker:]):
3462         (-[KWQAccObject doAXPreviousParagraphStartTextMarkerForTextMarker:]):
3463         (-[KWQAccObject doAXLengthForTextMarkerRange:]):
3464         (-[KWQAccObject accessibilityAttributeValue:forParameter:]):
3465         (-[KWQAccObject accessibilityHitTest:]):
3466         (-[KWQAccObject accessibilityFocusedUIElement]):
3467         (-[KWQAccObject accessibilityIsAttributeSettable:]):
3468         (-[KWQAccObject doSetAXSelectedTextMarkerRange:]):
3469         (-[KWQAccObject setAccObjectID:]):
3470         (-[KWQAccObject removeAccObjectID]):
3471         * kwq/KWQAccObjectCache.h:
3472         * kwq/KWQAccObjectCache.mm:
3473         (KWQAccObjectCache::setAccObject):
3474         (KWQAccObjectCache::removeAccObject):
3475         (KWQAccObjectCache::visiblePositionForTextMarker):
3476         (KWQAccObjectCache::postNotificationToTopWebArea):
3477         (KWQAccObjectCache::postNotification):
3478         (KWQAccObjectCache::handleFocusedUIElementChanged):
3479         * kwq/KWQKHTMLPart.mm:
3480         (KWQKHTMLPart::respondToChangedContents):
3481         * kwq/KWQTextUtilities.h:
3482         * kwq/KWQTextUtilities.mm:
3483         (KWQFindNextWordFromIndex):
3484         (KWQFindSentenceBoundary):
3485         (KWQFindNextSentenceFromIndex):
3486         * kwq/WebCoreBridge.mm:
3487         (-[WebCoreBridge accessibilityTree]):
3488
3489 2005-01-05  Darin Adler  <darin@apple.com>
3490
3491         Reviewed by Ken.
3492
3493         - re-landing a subset of my custom tag change that does not fix the bug, but also does
3494           not introduce a performance regression
3495
3496         * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::checkOneSelector): Changed
3497         some code that used ID_LAST_TAG in a slightly wrong, but harmless, way.
3498
3499         * khtml/editing/htmlediting.cpp:
3500         (khtml::debugPosition): Use nodeName rather than getTagName, since the latter works for
3501         per-document tags and is just better all around for things like the document.
3502         (khtml::debugNode): Ditto.
3503         * khtml/editing/selection.cpp: (khtml::Selection::debugPosition): Ditto.
3504         * khtml/editing/visible_position.cpp: (khtml::VisiblePosition::debugPosition): Ditto.
3505         * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::displayNode): Ditto.
3506         * khtml/xml/dom_position.cpp: (DOM::Position::debugPosition): Ditto.
3507
3508         * khtml/html/dtd.cpp: (DOM::checkChild): Use ID_LAST_TAG rather than 1000 for the check that allows
3509         non-HTML elements to be nested as desired.
3510
3511         * khtml/misc/htmlhashes.h: Changed return types to unsigned short.
3512         * khtml/misc/htmlhashes.cpp:
3513         (khtml::getTagID): Changed return type to unsigned short.
3514         (khtml::getAttrID): Ditto.
3515
3516         * khtml/xml/dom_docimpl.h: Added overload of createHTMLElement, made it non-virtual since it's not overriden.
3517         * khtml/xml/dom_docimpl.cpp:
3518         (DocumentImpl::createHTMLElement): Refactored into two separate functions, one that takes the tag ID.
3519         Also updated for a few tags that the parser handled but this did not.
3520
3521         * kwq/KWQRenderTreeDebug.cpp:
3522         (getTagName): Added. Works for custom nodes, because it calls nodeName rather than using getTagName on
3523         the tag ID directly, which only works for standard nodes.
3524         (operator<<): Update to call getTagName.
3525         (nodePositionRelativeToRoot): Ditto.
3526         (writeSelection): Ditto.
3527
3528 2005-01-05  Ken Kocienda  <kocienda@apple.com>
3529
3530         Reviewed by Hyatt
3531
3532         Fix for this bug:
3533         
3534         <rdar://problem/3941203> REGRESSION (Mail): Paste inserts content in wrong place
3535
3536         * khtml/editing/htmlediting.cpp:
3537         (khtml::ReplaceSelectionCommand::doApply): Some cleanup and refinement of the concepts used to make
3538         this operation work correctly, particularly in the logic to figure out whether to merge content, and
3539         also performing merges.
3540         * khtml/editing/visible_position.cpp:
3541         (khtml::isFirstVisiblePositionInBlock): Simplification of test used to make this determination.
3542         * khtml/editing/visible_units.cpp:
3543         (khtml::isStartOfParagraph): New helper, used in khtml::ReplaceSelectionCommand::doApply().
3544         (khtml::isEndOfParagraph): Ditto.
3545         * khtml/editing/visible_units.h: Declare new functions.
3546
3547 2005-01-04  Ken Kocienda  <kocienda@apple.com>
3548
3549         Reviewed by John
3550
3551         Fix for this bug:
3552         
3553         <rdar://problem/3926522> Pressing return in a quoted block inserts too many newlines
3554
3555         * khtml/editing/htmlediting.cpp:
3556         (khtml::InsertParagraphSeparatorInQuotedContentCommand::doApply): Call to insertBlockPlaceholderIfNeeded()
3557         for the block we are adding was being done at the wrong time, which led to the placeholder remaining
3558         in the document when it was not needed. This resulted in the extra space reported in the bug.
3559
3560 2005-01-04  Kevin Decker  <kdecker@apple.com>
3561
3562         Reviewed by Hyatt.
3563
3564         Fixed: <rdar://problem/3936879> nil-deref, crash in InlineFlowBox::nodeAtPoint closing DHTML menus at hrweb.apple.com
3565
3566         * khtml/rendering/render_block.cpp:
3567         (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. 
3568
3569 2005-01-04  David Hyatt  <hyatt@apple.com>
3570
3571         Fix for 3937203, force an update of the dashboard regions when scrollbars are added/removed.
3572         
3573         Reviewed by kevin
3574
3575         * khtml/rendering/render_layer.cpp:
3576         (RenderLayer::updateScrollInfoAfterLayout):
3577
3578 2005-01-04  Ken Kocienda  <kocienda@apple.com>
3579
3580         Reviewed by John
3581
3582         Fix for these two bugs:
3583         
3584         <rdar://problem/3938935> REGRESSION (Mail): Pasting into an empty document mangles content
3585         <rdar://problem/3939148> REGRESSION (Mail): Pasting mistakenly reverses lines
3586
3587         * khtml/editing/htmlediting.cpp:
3588         (khtml::ReplaceSelectionCommand::doApply): For 3938935, add one more case to handle an empty document; merge
3589         neither start nor end. For 3939148, improve the code which adjusts the insertion point during 
3590         the process of pasting. It formerly handled only one of the possible cases.
3591         * layout-tests/editing/pasteboard/paste-text-015-expected.txt: Added.
3592         * layout-tests/editing/pasteboard/paste-text-015.html: Added.
3593
3594 2005-01-04  David Hyatt  <hyatt@apple.com>
3595
3596         Fix for 3936571, placeholder attribute should work for normal inputs for Dashboard.
3597         
3598         Reviewed by john
3599
3600         * khtml/rendering/render_form.cpp:
3601         (RenderLineEdit::updateFromElement):
3602         * kwq/KWQLineEdit.mm:
3603         (QLineEdit::setPlaceholderString):
3604
3605 2005-01-04  David Hyatt  <hyatt@apple.com>
3606
3607         Fix for 3830936, hang on changeforamerica.com.  Make sure to ignore the style not yet available option when
3608         returning pseudo-styles.
3609         
3610         Reviewed by john
3611
3612         * khtml/css/cssstyleselector.cpp:
3613         (khtml::CSSStyleSelector::matchRulesForList):
3614         (khtml::CSSStyleSelector::pseudoStyleForElement):
3615         * khtml/rendering/render_style.cpp:
3616         (RenderStyle::addPseudoStyle):
3617
3618 2005-01-04  Darin Adler  <darin@apple.com>
3619
3620         - rolled out my custom tag name change again -- it caused a 1 ms PLT regression
3621
3622         * khtml/css/cssstyleselector.cpp:
3623         * khtml/editing/htmlediting.cpp:
3624         * khtml/editing/selection.cpp:
3625         * khtml/editing/visible_position.cpp:
3626         * khtml/html/dtd.cpp:
3627         * khtml/html/htmlparser.cpp:
3628         * khtml/html/htmlparser.h:
3629         * khtml/html/htmltokenizer.cpp:
3630         * khtml/misc/htmlhashes.cpp:
3631         * khtml/misc/htmlhashes.h:
3632         * khtml/misc/htmltags.c:
3633         * khtml/misc/htmltags.h:
3634         * khtml/misc/maketags:
3635         * khtml/xml/dom_docimpl.cpp:
3636         * khtml/xml/dom_docimpl.h:
3637         * khtml/xml/dom_nodeimpl.cpp:
3638         * khtml/xml/dom_position.cpp:
3639         * kwq/KWQRenderTreeDebug.cpp:
3640
3641 2005-01-04  Ken Kocienda  <kocienda@apple.com>
3642
3643         Reviewed by John
3644
3645         Fix for this bug:
3646         
3647         <rdar://problem/3927554> Style info applied to remainder of document after a newline is entered
3648
3649         * khtml/editing/htmlediting.cpp:
3650         (khtml::InsertParagraphSeparatorCommand::doApply): Clean up and simplification in code that inserts
3651         a paragraph separator. The bug was all about applying styles to the new paragraph that did not need
3652         to be applied. Now the code will detect when at the end of a style run and will not move and apply 
3653         that ending style to the new paragraph, though it will place that style into the typing style. This
3654         seems to match NSText behavior.
3655         * layout-tests/editing/inserting/insert-div-021-expected.txt: This test result exhibited the bug fixed 
3656         here. The only reason it was not noticed is that the erroneously copied inline was a span, and so did
3657         not have any visible effect on the document.
3658         * layout-tests/editing/inserting/insert-div-022-expected.txt: Added.
3659         * layout-tests/editing/inserting/insert-div-022.html: Added.
3660
3661 2005-01-04  David Hyatt  <hyatt@apple.com>
3662
3663         Fix for 3904562, make sure to clear the outline dictionary when drawing so that random focus rings dont get drawn
3664         all over the place.
3665         
3666         Reviewed by john
3667
3668         * khtml/rendering/render_flow.cpp:
3669         (RenderFlow::paintLines):
3670
3671 2005-01-03  David Hyatt  <hyatt@apple.com>
3672
3673         Fix for float painting regressions 3932524, 3931664, and 3933068.  Make the noPaint flag setting more
3674         robust and make it work regardless of which objects get a layout or not.
3675         
3676         Reviewed by mjs
3677
3678         * khtml/rendering/render_block.cpp:
3679         (khtml::RenderBlock::insertFloatingObject):
3680         (khtml::RenderBlock::addOverhangingFloats):
3681         (khtml::RenderBlock::addIntrudingFloats):
3682         * khtml/rendering/render_block.h:
3683         (khtml::RenderBlock::FloatingObject::FloatingObject):
3684
3685 2005-01-03  Maciej Stachowiak  <mjs@apple.com>
3686
3687         Reviewed by Kevin.
3688
3689         <rdar://problem/3935390> Tiger 8A341: nil deref crash in DOM::NodeImpl::traverseNextNode
3690         
3691         * khtml/html/html_miscimpl.cpp:
3692         (HTMLCollectionImpl::traverseNextItem): Assert that the starting point is not nil,
3693         it should not ever be (now).
3694         (HTMLCollectionImpl::item): When traversing items stop when we hit
3695         nil, meaning the end to avoid triggering above assert (formerly crash).
3696
3697 2005-01-03  Maciej Stachowiak  <mjs@apple.com>
3698
3699         Reviewed by John and Kevin.
3700
3701         <rdar://problem/3870317> REGRESSION(125.9-125.11) broken behavior at test.profoundlearning.com - used to
3702         
3703         * khtml/ecma/kjs_window.cpp:
3704         (Window::get): Look up frame names before buitin window properties
3705         to match other browsers. This regressed because we added a builtin
3706         "toolbar" property but this site had a frame with that name.
3707
3708 2004-12-21  Maciej Stachowiak  <mjs@apple.com>
3709
3710         Reviewed by Darin.
3711
3712         <rdar://problem/3888931> frame naming allows malicious site to bring up a window when you click on a link in another
3713         
3714         Added opener bridge method to help WebKit implement security check
3715         for named frame visibility.
3716         
3717         * khtml/khtml_part.h:
3718         * kwq/WebCoreBridge.h:
3719         * kwq/WebCoreBridge.mm:
3720         (-[WebCoreBridge opener]):
3721
3722 2005-01-03  Ken Kocienda  <kocienda@apple.com>
3723
3724         Reviewed by John
3725
3726         Fix for this bug:
3727         
3728         <rdar://problem/3933926> Tiger8A341: Mail crashes while forwarding embedded HTML message in -[WebCoreBridge ensureSelectionVisible]
3729
3730         * kwq/WebCoreBridge.mm:
3731         (-[WebCoreBridge ensureSelectionVisible]): Put in some null checks to prevent crash experienced in bug.
3732
3733 2005-01-03  David Hyatt  <hyatt@apple.com>
3734
3735         Fix for 3936881, make sure positioned objects prooperly update y-position.
3736         
3737         Reviewed by john
3738
3739         * khtml/rendering/render_block.cpp:
3740         (khtml::RenderBlock::layoutPositionedObjects):
3741
3742 2005-01-03  Ken Kocienda  <kocienda@apple.com>
3743
3744         Reviewed by Harrison
3745         
3746         Fix for this bug:
3747         
3748         <rdar://problem/3928250> REGRESSION (Mail): Typing style lost after hitting return key
3749
3750         * khtml/editing/htmlediting.cpp:
3751         (khtml::InsertLineBreakCommand::preservesTypingStyle): Now implemented, returning yes for this command.
3752         (khtml::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): Initialize new typing style member variable.
3753         (khtml::InsertParagraphSeparatorCommand::~InsertParagraphSeparatorCommand): Deref new typing style member variable.
3754         (khtml::InsertParagraphSeparatorCommand::preservesTypingStyle): Now implemented, returning yes for this command.
3755         (khtml::InsertParagraphSeparatorCommand::setFullTypingStyleBeforeInsertion): New function to set the typing style
3756         (khtml::InsertParagraphSeparatorCommand::calculateAndSetTypingStyleAfterInsertion): Function called after the <p>
3757         insertion is done. This function diffs the style created in setFullTypingStyleBeforeInsertion() with the style
3758         of the new <p> and only sets those styles needed to preserve the style in effect before the insertion.
3759         (khtml::InsertParagraphSeparatorCommand::doApply): Call new functions.
3760         (khtml::TypingCommand::preservesTypingStyle): Now yes for inserting line breaks and paragraphs.
3761          * khtml/editing/htmlediting.h: Declare new functions.
3762
3763 2004-12-25  Kevin Decker  <kdecker@apple.com>
3764
3765         Reviewed by Hyatt.
3766
3767         Fixed: <rdar://problem/3505072> hang in KHTMLParser::parseToken (consulting.soroos.net)
3768         
3769         * 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. 
3770
3771 2004-12-23  Darin Adler  <darin@apple.com>
3772
3773         Reviewed by Ken.
3774
3775         - re-fixed <rdar://problem/3760910> Request to include support for custom tag names in HTML (they already work in XML)
3776
3777         * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::checkOneSelector): Changed
3778         some code that used ID_LAST_TAG in a slightly wrong, but harmless, way.
3779
3780         * khtml/editing/htmlediting.cpp:
3781         (khtml::debugPosition): Use nodeName rather than getTagName, since the latter works for
3782         per-document tags and is just better all around for things like the document.
3783         (khtml::debugNode): Ditto.
3784         * khtml/editing/selection.cpp: (khtml::Selection::debugPosition): Ditto.
3785         * khtml/editing/visible_position.cpp: (khtml::VisiblePosition::debugPosition): Ditto.
3786         * khtml/xml/dom_nodeimpl.cpp: (NodeImpl::displayNode): Ditto.
3787         * khtml/xml/dom_position.cpp: (DOM::Position::debugPosition): Ditto.
3788
3789         * khtml/html/dtd.cpp: (DOM::checkChild): Use ID_LAST_TAG rather than 1000 for the check that allows
3790         non-HTML elements to be nested as desired.
3791
3792         * khtml/html/htmlparser.h: Change forbidden tag array to be allocated in the object rather than on
3793         the heap. Also use ID_LAST_TAG for the array size; the old code used ID_CLOSE_TAG which is now a
3794         much larger number.
3795         * khtml/html/htmlparser.cpp:
3796         (KHTMLParser::KHTMLParser): Remove code that creates the forbidden tag array on the heap; makes more
3797         sense to just have the array be a member so we don't have to use new and delete on it. Also needed
3798         to eliminate code that used ID_CLOSE_TAG for an array size.
3799         (KHTMLParser::~KHTMLParser): Remove code that deletes the forbidden tag array. Also changed the code
3800         that manages isindex to use deref instead of delete.
3801         (KHTMLParser::reset): Use safer sizeof for clearing the forbidden tag array. Old code had the
3802         mistake of using ID_CLOSE_TAG for the array size too.
3803         (KHTMLParser::parseToken): Removed code that checks for bogus tags; it's not clear why it was ever
3804         there and it would prevent custom tags from working. Added range check before using the forbidden
3805         tag array with the token ID since custom tags will use index values past the end of the array.
3806         (KHTMLParser::getElement): Removed most of the code that makes an element by ID; now the work is done
3807         inside the DocumentImpl createHTMLElement. Any code that needs to be different than a dynamic
3808         createElement call is still here. Last time I left out a few form element types from this switch;
3809         fixed now.
3810         * khtml/html/htmltokenizer.cpp: (khtml::HTMLTokenizer::parseTag): Call the tagId function in the
3811         document if getTagID fails; this creates a unique per-document ID.
3812
3813         * khtml/misc/htmlhashes.h: Changed return types to unsigned short.
3814         * khtml/misc/htmlhashes.cpp:
3815         (khtml::getTagID): Changed return type to unsigned short.
3816         (khtml::getAttrID): Ditto.
3817
3818         * khtml/misc/htmltags.c: Regenerated.
3819         * khtml/misc/htmltags.h: Regenerated.
3820
3821         * khtml/misc/maketags: Changed the generated constants to use "const unsigned short" instead of "#define".
3822         Changed ID_CLOSE_TAG to be a fixed value of 32000 rather than being just past the IDs of the HTML tags.
3823         Also rewrote getTagName to work with the new scheme.
3824
3825         * khtml/xml/dom_docimpl.h: Added overload of createHTMLElement, made it non-virtual since it's not overriden.
3826         * khtml/xml/dom_docimpl.cpp:
3827         (DocumentImpl::createHTMLElement): Refactored into two separate functions, one that takes the tag ID.
3828         Also updated for a few tags that the parser handled but this did not.
3829
3830