Not reviewed, emergency test fix.
[WebKit-https.git] / WebCore / ChangeLog
1 2007-05-17  Maciej Stachowiak  <mjs@apple.com>
2
3         Not reviewed, emergency test fix.
4
5         - avoid crash on layout tests.
6         
7         Patched up my last change so that  widgets don't crash.
8
9         * loader/FrameLoader.cpp:
10         (WebCore::FrameLoader::mainReceivedCompleteError):
11
12 2007-05-17  Antti Koivisto  <antti@apple.com>
13
14         Reviewed by Darin.
15
16         Fix for http://bugs.webkit.org/show_bug.cgi?id=13727
17         REGRESSION: Reproducible hang setting the selection's extent offset to -1
18         <rdar://problem/5206890>
19         
20         Rise INDEX_SIZE_ERR if used selection index is negative. This matches HTML5 for
21         getRangeAt() and collapse() which are part of the spec (FF throws NS_ERROR_FAILURE). 
22         
23         Not throwing exceptions yet for too high offsets (except getRangeAt()) as it is
24         unclear if WebCore's definition of offsets is the same as other browsers.
25
26         * bindings/js/kjs_window.cpp:
27         * WebCore/editing/SelectionController.cpp:
28         * WebCore/editing/SelectionController.h:
29         * WebCore/editing/VisiblePosition.cpp:
30         
31 2007-05-17  Adele Peterson  <adele@apple.com>
32
33         Reviewed by Mitz.
34
35         Fix for <rdar://problem/5096035> REGRESSION: rtl text should be left-aligned in <select>s
36
37         Test: fast/text/international/bidi-menulist.html
38
39         * rendering/RenderMenuList.cpp:
40         (WebCore::RenderMenuList::adjustInnerStyle): Set the inner block style to direction: ltr, and text-align: left.  This means that
41          we will ignore those settings in the button to match the way the text is displayed in the popup menu.
42         (WebCore::RenderMenuList::createInnerBlock): Call adjustInnerStyle.
43         (WebCore::RenderMenuList::setStyle): ditto.
44         * rendering/RenderMenuList.h: Added adjustInnerStyle.
45
46 2007-05-17  Justin Garcia  <justin.garcia@apple.com>
47
48         Reviewed by harrison
49
50         <rdar://problem/4924441> List becomes nested when changing its type
51         <rdar://problem/5210032> Content before a list is placed at the end of the list when its made into a list item
52         <rdar://problem/5207369> Crash when removing ordering from a nested list
53
54         * editing/InsertListCommand.cpp:
55         (WebCore::InsertListCommand::doApply):
56         The outermostEnclosingList of the position before the start isn't
57         the previousList if it contains the start.
58         Ditto for the position after the end and the nextList.
59         If we're putting the newly created list item into the next list,
60         insert it at the start of that list, not the end (don't append).
61         Avoid nesting newly created lists inside list items.
62         
63 2007-05-17  Patti Hoa  <patti@apple.com>
64
65         Reviewed by Darin.
66         
67         <rdar://problem/4775672> AXTextMarkerRangeForUnorderedTextMarkers returns incorrect order
68         
69         * bridge/mac/WebCoreAXObject.mm:
70         (-[WebCoreAXObject doAXTextMarkerRangeForUnorderedTextMarkers:]):
71         A selection's m_start is not guranteed to equal m_base since m_start can actually be m_base's downstream().
72         A more accurate way to determine the order from selection is to ask directly for isBaseFirst().
73         In addition, if the two visible positions given are the same position but different affinity, we need to 
74         handle it here rather than depend on the selection. This is because selection does not retain the
75         affinity of both selection start/end visible positions as part of the selection validation. 
76
77 2007-05-17  Mitz Pettel  <mitz@webkit.org>
78
79         Reviewed by Brady
80
81         - fix http://bugs.webkit.org/show_bug.cgi?id=13759
82           REGRESSION (r20182-r20184): Incorrect rendering of multipart images
83
84         Test: http/tests/multipart/invalid-image-data.html
85
86         * loader/loader.cpp:
87         (WebCore::Loader::didReceiveData): Make a copy of the current part's data
88         instead of using the resource data, because the latter is going to be
89         overwritten by the new part being received.
90
91 2007-05-17  Oliver Hunt  <oliver@apple.com>
92
93         Reviewed by Justin.
94
95         Fix for <rdar://problem/4244861> Safari fails to create image file
96         after releasing dragged image that has changed on source page
97
98         Tell xcode to copy HTMLImageElement.h and HTMLImageLoader.h headers
99         across to WebKit as private headers.
100
101         * WebCore.xcodeproj/project.pbxproj:
102
103 2007-05-17  Justin Garcia  <justin.garcia@apple.com>
104
105         Reviewed by harrison
106
107         <rdar://problem/5190926> 
108         Gmail Editor: Crash when removing list style from underlined, multi-item list
109         
110         The user underlined some text, then created a list.
111         The list was placed inside the inline element carrying 
112         the underline style, so, that element surrounded the 
113         list instead of being at the lowest level (just above 
114         text nodes). This kind of markup is more difficult to 
115         edit. Filed 5192089 and added a workaround so that we 
116         don't produce this kind of markup.
117
118         * editing/InsertListCommand.cpp:
119         (WebCore::InsertListCommand::doApply): Avoid inline
120         elements when inserting the new list.
121
122 2007-05-17  David Hyatt  <hyatt@apple.com>
123
124         Allow redundant attributes with the same name in view source mode.
125
126         Reviewed by aroben
127
128         * dom/NamedAttrMap.h:
129         (WebCore::NamedAttrMap::insertAttribute):
130         * html/HTMLTokenizer.cpp:
131         (WebCore::Token::addAttribute):
132
133 2007-05-17  George Staikos  <staikos@kde.org>
134
135         - Back out last patch based on discussion with Zack.
136
137         * platform/qt/WidgetQt.cpp:
138         (WebCore::Widget::paint):
139
140 2007-05-16  Anders Carlsson  <andersca@apple.com>
141
142         Reviewed by Darin.
143
144         <rdar://problem/5207156> Hamachi test tool causes assertion in FormCompletionController in Safari
145
146         This happens because the form delegate gets passed the wrong source frame during the second submit().
147         If a frame with the given name is found, FrameLoader::load is called with the same parameters on the found frame.
148         This causes the found frame to be used as the source frame, which is wrong.
149         
150         The fix is to create the form state object before checking what frame to load the new request in. 
151         
152         * WebCore.exp:
153         * loader/FrameLoader.cpp:
154         (WebCore::FrameLoader::load):
155         (WebCore::FrameLoader::checkNavigationPolicy):
156         (WebCore::FrameLoader::continueAfterNavigationPolicy):
157         * loader/FrameLoader.h:
158         * manual-tests/submit-form-with-target-twice.html: Added.
159
160 2007-05-16  Maciej Stachowiak  <mjs@apple.com>
161
162         Reviewed by Oliver.
163
164         <rdar://problem/5205914> REGRESSION: PLT stops after loading first page due to r21479
165         
166         * loader/FrameLoader.cpp:
167         (WebCore::FrameLoader::frameHasLoaded):
168
169 2007-05-16  David Hyatt  <hyatt@apple.com>
170
171         Improve the syntax-highlighted view source mode.  It now preserves all whitespace properly
172         and highlights doctypes and comments (in addition to all the stuff it could highlight before).
173
174         Reviewed by aroben
175
176         * html/HTMLTokenizer.cpp:
177         (WebCore::Token::addAttribute):
178         (WebCore::HTMLTokenizer::parseTag):
179         * html/HTMLTokenizer.h:
180         (WebCore::Token::Token):
181         (WebCore::Token::~Token):
182         (WebCore::Token::reset):
183         (WebCore::Token::addViewSourceChar):
184         * html/HTMLViewSourceDocument.cpp:
185         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
186         * html/HTMLViewSourceDocument.h:
187
188 2007-05-16  Maciej Stachowiak  <mjs@apple.com>
189
190         Reviewed by Adam.
191
192         <rdar://problem/5191024> Page never loads completely (emonome.vodpod.com)
193         <rdar://problem/5205162> REGRESSION (r21367): In the Address URL field, typing a site name doesn't redirect to site after pressing return
194         http://bugs.webkit.org/show_bug.cgi?id=13683
195         <rdar://problem/5208951> REGRESSION: Progress bar never completes on link click that downloads (13694)
196         http://bugs.webkit.org/show_bug.cgi?id=13694
197         <rdar://problem/5201598> REGRESSION: After uploading file to iDisk at mac.com, "loading" status remains and file does not appear in the list
198         
199         * loader/FrameLoader.cpp:
200         (WebCore::FrameLoader::mainReceivedCompleteError): Make sure to always check whether the overall
201         load completed, even if we think the current frame load is already complete.
202
203 2007-05-16  dethbakin  <bdakin@apple.com>
204
205         Reviewed by Hyatt.
206
207         Fix for <rdar://problem/5204107> REGRESSION: CSS web forum site 
208         layout not displaying properly in latest WebKit
209
210         Hyatt's http://trac.webkit.org/projects/webkit/changeset/21428 
211         exposed this bug. We were not handling error cases with <caption> 
212         correctly. This patch makes them do the same thing as colgroup.
213
214         * html/HTMLParser.cpp:
215         (WebCore::HTMLParser::handleError):
216         * html/HTMLParserErrorCodes.cpp: No need any more for caption-
217         specific errors.
218         (WebCore::htmlParserErrorMessageTemplate):
219         * html/HTMLParserErrorCodes.h:
220         (WebCore::):
221
222 2007-05-16  Kevin McCullough  <kmccullough@apple.com>
223
224         Reviewed by Darin and Geoff.
225
226         - rdar://problem/4981886
227         - Now windows opened by the DOM can be closed by JS.
228
229         * bindings/js/kjs_window.cpp:
230         (KJS::createNewWindow):
231         (KJS::WindowFunc::callAsFunction):
232         * loader/FrameLoader.cpp:
233         (WebCore::FrameLoader::FrameLoader):
234         (WebCore::FrameLoader::openedByDOM):
235         (WebCore::FrameLoader::setOpenedByDOM):
236         (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
237         * loader/FrameLoader.h:
238
239 2007-05-16  Darin Adler  <darin@apple.com>
240
241         Reviewed by Hyatt.
242
243         - fix <rdar://problem/4928671> Crash due to runaway recursion when fieldset has display: table-row (12066)
244
245         Test: fast/css/fieldset-display-row.html
246
247         * rendering/RenderContainer.cpp: (WebCore::RenderContainer::addChild):
248         Change all decision making about special handling for new children to use
249         the class of the render object instead of the style, except for the cases
250         where the style is the only way to tell (TABLE_COLUMN_GROUP and TABLE_CAPTION).
251         Thus a RenderFieldset with table-row style won't get handled as if it was
252         a table row.
253
254         * rendering/RenderTable.cpp: (WebCore::RenderTable::addChild): Same thing.
255         Except that here the styles that we ahave to look at are TABLE_CAPTION,
256         TABLE_HEADER_GROUP, TABLE_FOOTER_GROUP, and TABLE_ROW_GROUP.
257
258 2007-05-16  Zack Rusin  <zrusin@trolltech.com>
259
260         Reviewed by Lars.
261
262         Implement bigger parts of the Canvas element in the
263         Qt port. Gradients and patterns are missing.
264
265         * WebCore/html/CanvasRenderingContext2D.cpp:
266         * WebCore/html/CanvasStyle.cpp:
267         * WebCore/html/HTMLCanvasElement.cpp:
268         * WebCore/html/HTMLCanvasElement:
269
270 2007-05-16  Zack Rusin  <zrusin@trolltech.com>
271
272         Reviewed by Lars
273
274         Fix shared timers, make them use miliseconds. Based
275         on a patch from George.
276
277         * WebCore/platform/qt/SharedTimerQt.cpp:
278        (WebCore::setSharedTimerFireTime):
279
280 2007-05-16  David Hyatt  <hyatt@apple.com>
281
282         Add rudimentary error reporting to the HTML parser.  This is disabled
283         for now until it gets beefed up a bit more (and until we work out how
284         best to pass the messages up without hurting perf).
285
286         Clean up and remove dead error handling code and incorrect error handling
287         code as well.
288
289         Reviewed by mjs
290
291         * WebCore.xcodeproj/project.pbxproj:
292         * html/HTMLParser.cpp:
293         (WebCore::HTMLParser::HTMLParser):
294         (WebCore::HTMLParser::handleError):
295         (WebCore::HTMLParser::headCreateErrorCheck):
296         (WebCore::HTMLParser::reportErrorToConsole):
297         * html/HTMLParser.h:
298         (WebCore::HTMLParser::reportError):
299         * html/HTMLParserErrorCodes.cpp: Added.
300         (WebCore::htmlParserErrorMessageTemplate):
301         * html/HTMLParserErrorCodes.h: Added.
302         (WebCore::):
303         * html/HTMLTokenizer.h:
304         (WebCore::HTMLTokenizer::tagStartLineNumber):
305
306 2007-05-15  David Hyatt  <hyatt@apple.com>
307
308         Make FrameLoader write "<html><body>" instead of just "<body>".
309
310         Reviewed by aroben
311
312         * loader/FrameLoader.cpp:
313         (WebCore::FrameLoader::init):
314
315 2007-05-15  George Staikos  <staikos@kde.org>
316
317         Reviewed by Adam Roben.
318
319         - Pass cookies through from the loader.
320
321         * platform/network/qt/ResourceHandleManagerQt.cpp:
322         (WebCore::ResourceHandleManager::receivedResponse):
323
324 2007-05-15  Adam Treat  <adam@staikos.net>
325
326         Reviewed by George Staikos.
327
328         - Implement drawArc with proper units.
329
330         * platform/graphics/qt/GraphicsContextQt.cpp:
331         (WebCore::GraphicsContext::strokeArc):
332
333 2007-05-15  Adam Treat  <adam@staikos.net>
334
335         Reviewed by George Staikos.
336
337         - Add missing paint for nested subframes.
338
339         * platform/qt/WidgetQt.cpp:
340         (WebCore::Widget::paint):
341
342 2007-05-15  Sam Weinig  <sam@webkit.org>
343
344         Reviewed by Oliver.
345
346         - Patch for http://bugs.webkit.org/show_bug.cgi?id=13722
347           Finish testing and fixing the setting of DOM attributes to JS null
348
349           Convert JS null to null string for SVG attributes.
350
351         Test: fast/dom/svg-element-attribute-js-null.xhtml
352
353         * ksvg2/svg/SVGAngle.idl:
354         * ksvg2/svg/SVGElement.idl:
355         * ksvg2/svg/SVGLength.idl:
356         * ksvg2/svg/SVGScriptElement.idl:
357
358 2007-05-15  Sam Weinig  <sam@webkit.org>
359
360         Reviewed by Oliver.
361
362         - Patch for http://bugs.webkit.org/show_bug.cgi?id=13722
363           Finish testing and fixing the setting of DOM attributes to JS null
364
365           Convert JS null to null string for CanvasRenderingContext2D attributes.
366
367         Test: fast/dom/canvasContext2d-element-attribute-js-null.html
368
369         * html/CanvasRenderingContext2D.idl:
370
371 2007-05-15  Oliver Hunt  <oliver@apple.com>
372
373         Reviewed by Sam and Geoff.
374
375         Removing dead code left behind from drag and drop refactoring.
376
377         * page/mac/WebCoreFrameBridge.h:
378
379 2007-05-15  Sam Weinig  <sam@webkit.org>
380
381         Reviewed by Oliver.
382
383         - Second Patch for http://bugs.webkit.org/show_bug.cgi?id=13722
384           Finish testing and fixing the setting of DOM attributes to JS null
385
386           Convert JS null to null string for remaining CSSOM attributes.
387
388         Test: fast/dom/css-element-attribute-js-null.html
389
390         * bindings/js/kjs_css.cpp:
391         (KJS::DOMCSSStyleDeclaration::put):
392         (KJS::DOMMediaList::put):
393         (KJS::DOMCSSRule::putValueProperty):
394         (KJS::DOMCSSValue::put):
395         * css/CSSPageRule.idl:
396         * css/CSSRule.idl:
397         * css/CSSStyleDeclaration.idl:
398         * css/CSSStyleRule.idl:
399         * css/CSSValue.idl:
400         * css/MediaList.idl:
401
402 2007-05-15  Darin Adler  <darin@apple.com>
403
404         Reviewed by Hyatt.
405
406         * css/html4.css: Remove wbr style rule -- not needed any more.
407
408 2007-05-15  Mitz Pettel  <mitz@webkit.org>
409
410         Reviewed by Brady
411
412         - fix http://bugs.webkit.org/show_bug.cgi?id=13360
413           REGRESSION: Crash closing live web cam viewer page
414
415         Test: http/tests/misc/multipart.html
416
417         * loader/ResourceLoader.cpp:
418         (WebCore::ResourceLoader::didFail): Avoid calling didFailToLoad() if
419         didFinishLoad() has already been called (when the first part of a
420         multipart resource arrived).
421         (WebCore::ResourceLoader::didCancel): Ditto.
422
423 2007-05-15  Sam Weinig  <sam@webkit.org>
424
425         Reviewed by Darin.
426
427         - Patch for http://bugs.webkit.org/show_bug.cgi?id=13722
428           Finish testing and fixing the setting of DOM attributes to JS null
429
430           Convert JS null to null string for remaining Core DOM attributes.
431
432         Test: fast/dom/coreDOM-element-attribute-js-null.xhtml
433
434         * dom/Attr.cpp:
435         (WebCore::Attr::setValue): Don't throw an expection for null values as this
436         is not in the spec and Firefox does not do it either.
437         * dom/Attr.idl:
438         * dom/CharacterData.idl:
439         * dom/ProcessingInstruction.idl:
440
441 2007-05-15  Mitz Pettel  <mitz@webkit.org>
442
443         Reviewed by Hyatt.
444
445         - fix http://bugs.webkit.org/show_bug.cgi?id=13718
446           REGRESSION (r21093): editing/execCommand/5136770.html failing pixel test
447
448         * rendering/RenderContainer.cpp:
449         (WebCore::RenderContainer::removeChildNode): Moved the code that clears the
450         selection when moving a selection border into the fast path.
451
452 2007-05-15  Rob Buis  <buis@kde.org>
453
454         Reviewed by Hyatt.
455
456         http://bugs.webkit.org/show_bug.cgi?id=6487
457         "Make Text Bigger/Smaller" affects SVGs when it probably shouldn't
458
459         Ignore Make Text Bigger/Smaller for SVG text.
460
461         * css/svg.css:
462
463 2007-05-15  Anders Carlsson  <andersca@apple.com>
464
465         Reviewed by Maciej.
466
467         <rdar://problem/5183685>
468         http://bugs.webkit.org/show_bug.cgi?id=13301
469         ASSERT or null value when trying to use a getter defined on a window object
470
471         Handle the case where the value returned is a getter/setter object.
472         
473         * bindings/js/kjs_window.cpp:
474         (KJS::Window::getOverridePropertySlot):
475
476 2007-05-14  Anders Carlsson  <andersca@apple.com>
477
478         Reviewed by Geoff.
479
480         <rdar://problem/5200816>
481         REGRESSION: With Shiira 1.2.2 , I can't open embedded link in flash object by clicking (http:/www.adobe.com )
482         
483         Shiira under some circumstances passes nil as the request to -[WebFrame loadRequest:]. ToT WebKit doesn't call any policy
484         delegate methods in this case, which means that the page is actually being loaded. 
485         
486         This patch makes ToT WebKit behave in the same way as Tiger WebKit when the request is nil.
487         
488         * loader/FrameLoader.cpp:
489         (WebCore::FrameLoader::checkNavigationPolicy):
490         Don't continue without calling the navigation policy method if the request is null.
491         
492         (WebCore::FrameLoader::continueAfterNavigationPolicy):
493         If the request can't be handled, don't continue the load.
494         
495         * platform/network/mac/ResourceRequestMac.mm:
496         (WebCore::ResourceRequest::doUpdatePlatformRequest):
497         Don't create an NSURLRequest object if the request is null.
498
499 2007-05-15  Maciej Stachowiak  <mjs@apple.com>
500
501         Reviewed by Hyatt and Lars.
502
503         - fixed <rdar://problem/5201758> REGRESSION: Stop button enabled and other problems caused by [WebView currentURL] returning non-nil for empty window
504
505         * WebCore.exp: export new symbol
506         * loader/FrameLoader.cpp:
507         (WebCore::FrameLoader::begin): move marker that we committed a real doc load from here...
508         (WebCore::FrameLoader::transitionToCommitted): ...to here
509         (WebCore::FrameLoader::frameHasLoaded): check that we have at least started loading something
510         besides the initial empty doc.
511         * loader/FrameLoader.h:
512
513 2007-05-14  Justin Garcia  <justin.garcia@apple.com>
514
515         Reviewed by ggaren
516         
517         <http://bugs.webkit.org/show_bug.cgi?id=13716>
518         REGRESSION: Three new layout test failures
519         
520         Two failures are correct.  Updated their expected results.
521         
522         In fast/events/frame-tab-focus.html, as we advance
523         through focusable nodes, we descend into a subframe
524         to focus a node and then ascend out of it into the
525         main frame to focus the next.  When we focus the main 
526         frame, the node in that frame that was previously 
527         focused and contains an inactive selection is focused 
528         momentarily because setCaretVisible tries to focus the 
529         node containing the caret.
530
531         * page/Frame.cpp:
532         (WebCore::Frame::setCaretVisible): Don't focus the
533         node containing the caret. FocusController will focus
534         the previously focused node (which will contain the
535         caret) if necessary when the frame gains focus.
536         
537 2007-05-14  Maciej Stachowiak  <mjs@apple.com>
538
539         Reviewed by Brady.
540
541         - fixed <rdar://problem/5203036> REGRESSION: Assertion failure in WebCore::FrameLoader::restoreScrollPositionAndViewState() going back from fark.com Photoshop contest (13684)
542
543         Test: http/tests/navigation/back-to-slow-frame.html
544         
545         * loader/FrameLoader.cpp:
546         (WebCore::FrameLoader::restoreScrollPositionAndViewState): Add needed early return.
547
548 2007-05-14  Mitz Pettel  <mitz@webkit.org>
549
550         Reviewed by Dave Hyatt.
551
552         - fix http://bugs.webkit.org/show_bug.cgi?id=13603
553           style leaks in washingtonpost.com
554           also known as http://bugs.webkit.org/show_bug.cgi?id=8750
555           w3c.org: incorrect recovery from unclosed <a> elements
556           also known as http://bugs.webkit.org/show_bug.cgi?id=12808
557           Handling of misnested tags results in entire page appearing as link
558           also known as http://bugs.webkit.org/show_bug.cgi?id=12861
559           Post text renders as link
560
561         Test: fast/parser/residual-style-close-across-n-blocks.html
562
563         * html/HTMLParser.cpp:
564         (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): Changed to
565         deal with multiple block crossings instead of bailing out, by doing multiple
566         reparenting passes, starting from the outermost block.
567
568 2007-05-14  Mitz Pettel  <mitz@webkit.org>
569
570         Reviewed by Darin.
571
572         - fix http://bugs.webkit.org/show_bug.cgi?id=13711
573           REGRESSION - Bookmark Bar text rendering changed
574
575         No test possible since this patch affects only Safari chrome.
576
577         * platform/Font.cpp:
578         (WebCore::Font::Font): Initialize m_isPlatformFont according to whether
579         the Font object is derived from a FontPlatformData or not.
580         * platform/Font.h:
581         (WebCore::Font::isPlatformFont): Added. Returns whether this Font was
582         derived from a platform font.
583         * platform/mac/FontCacheMac.mm:
584         (WebCore::FontCache::getFontDataForCharacters): Changed to not enable
585         synthetic bold and italic in the fallback fonts if the original font
586         was derived from a platform font.
587
588 2007-05-14  Sam Weinig  <sam@webkit.org>
589
590         Reviewed by Alice!
591
592         - Patch for http://bugs.webkit.org/show_bug.cgi?id=13541
593           REGRESSION: Setting a DOMString attribute to JS null in the 
594           JS bindings should default to converting to the empty string
595
596           Convert JS null to the empty string when passing it to an attribute that takes
597           a DOMString.
598
599         Test: fast/dom/document-attribute-js-null.html
600         Test: fast/dom/element-attribute-js-null.html
601
602         * bindings/js/kjs_dom.cpp:
603         (KJS::DOMNode::putValueProperty):
604         * bindings/js/kjs_html.cpp:
605         (KJS::JSHTMLDocument::putValueProperty):
606         (KJS::JSHTMLElement::objectSetter):
607         (KJS::JSHTMLElement::embedSetter):
608         (KJS::JSHTMLElement::tableSetter):
609         (KJS::JSHTMLElement::tableCaptionSetter):
610         (KJS::JSHTMLElement::tableColSetter):
611         (KJS::JSHTMLElement::tableSectionSetter):
612         (KJS::JSHTMLElement::tableRowSetter):
613         (KJS::JSHTMLElement::tableCellSetter):
614         (KJS::JSHTMLElement::frameSetSetter):
615         (KJS::JSHTMLElement::frameSetter):
616         (KJS::JSHTMLElement::iFrameSetter):
617         (KJS::JSHTMLElement::marqueeSetter):
618         (KJS::JSHTMLElement::putValueProperty):
619         * bindings/js/kjs_html.h:
620         * dom/Document.idl:
621         * dom/Node.idl:
622         * html/HTMLAnchorElement.idl:
623         * html/HTMLAppletElement.idl:
624         * html/HTMLAreaElement.idl:
625         * html/HTMLBRElement.idl:
626         * html/HTMLBaseElement.idl:
627         * html/HTMLBaseFontElement.idl:
628         * html/HTMLBlockquoteElement.idl:
629         * html/HTMLBodyElement.idl:
630         * html/HTMLButtonElement.idl:
631         * html/HTMLDivElement.idl:
632         * html/HTMLDocument.idl:
633         * html/HTMLElement.idl:
634         * html/HTMLEmbedElement.idl:
635         * html/HTMLFontElement.idl:
636         * html/HTMLFormElement.idl:
637         * html/HTMLFrameElement.idl:
638         * html/HTMLFrameSetElement.idl:
639         * html/HTMLHRElement.idl:
640         * html/HTMLHeadElement.idl:
641         * html/HTMLHeadingElement.idl:
642         * html/HTMLHtmlElement.idl:
643         * html/HTMLIFrameElement.idl:
644         * html/HTMLImageElement.idl:
645         * html/HTMLInputElement.idl:
646         * html/HTMLIsIndexElement.idl:
647         * html/HTMLLIElement.idl:
648         * html/HTMLLabelElement.idl:
649         * html/HTMLLegendElement.idl:
650         * html/HTMLLinkElement.idl:
651         * html/HTMLMapElement.idl:
652         * html/HTMLMetaElement.idl:
653         * html/HTMLModElement.idl:
654         * html/HTMLOListElement.idl:
655         * html/HTMLObjectElement.idl:
656         * html/HTMLOptGroupElement.idl:
657         * html/HTMLOptionElement.idl:
658         * html/HTMLParagraphElement.idl:
659         * html/HTMLParamElement.idl:
660         * html/HTMLQuoteElement.idl:
661         * html/HTMLScriptElement.idl:
662         * html/HTMLSelectElement.idl:
663         * html/HTMLStyleElement.idl:
664         * html/HTMLTableCaptionElement.idl:
665         * html/HTMLTableCellElement.idl:
666         * html/HTMLTableColElement.idl:
667         * html/HTMLTableElement.idl:
668         * html/HTMLTableRowElement.idl:
669         * html/HTMLTableSectionElement.idl:
670         * html/HTMLTextAreaElement.idl:
671         * html/HTMLTitleElement.idl:
672         * html/HTMLUListElement.idl:
673
674 2007-05-14  Geoffrey Garen  <ggaren@apple.com>
675
676         Trying to fix the Qt build.
677
678         * WebCore.pro:
679
680 2007-05-14  Geoffrey Garen  <ggaren@apple.com>
681
682         Reviewed by Oliver Hunt.
683         
684         Some improvements on my last patch, suggested by Darin.
685
686         * history/PageCache.cpp:
687         (WebCore::PageCache::autoreleaseNow): Swap with an empty set instead of 
688         building up an array and then calling clear(). This is slightly more 
689         efficient and the code is cleaner.
690
691 2007-05-14  Justin Garcia  <justin.garcia@apple.com>
692
693         Reviewed by darin
694         
695         <rdar://problem/5136696> Selection is removed when focusing a node in another frame
696         <rdar://problem/5192388> WordPress: Can't insert links/images
697         
698         Don't clear a selection when changing focus if the new
699         focus node is in a different frame than the old selection.
700
701         * dom/Document.cpp:
702         (WebCore::Document::setFocusedNode): Moved code to clear 
703         selections to the FocusController, since it is Page level 
704         and will know about the frame/document that contained the 
705         old selection. Moved code to call shouldEndEditing to the 
706         FocusController because selections are now cleared before
707         calling Document::setFocusedNode and shouldEndEditing must
708         be called before selections are cleared.
709         * dom/Element.cpp:
710         (WebCore::Element::blur): Call FocusController::setFocusNode
711         instead of Document::setFocusNode, if possible.
712         * page/EventHandler.cpp:
713         (WebCore::EventHandler::dispatchMouseEvent): Ditto.
714         * page/FocusController.cpp:
715         (WebCore::relinquishesEditingFocus): Moved from Document.cpp.
716         (WebCore::clearSelectionIfNeeded): Ditto.  Don't clear if
717         the old selection is in a frame that's different than the 
718         one that contains the new focus node.
719         (WebCore::FocusController::setFocusedNode): Moved code
720         here from Document::setFocusedNode.
721         * page/Frame.cpp:
722         (WebCore::Frame::setFocusedNodeIfNeeded): Call
723         FocusController::setFocusNode.
724
725 2007-05-14  Geoffrey Garen  <ggaren@apple.com>
726
727         Reviewed by Darin Adler.
728         
729         Next step toward fixing <rdar://problem/5055182> The back cache has no 
730         global cap.
731         
732         Created a PageCache singleton. Right now, it only handles the timer-based
733         deallocation of cached pages. I plan to add HistoryItem->CachedPage tracking
734         and eviction logic in later patches.
735
736         Updated for renames and file changes:
737
738         * WebCore.exp:
739         * WebCore.xcodeproj/project.pbxproj:
740         * history/BackForwardList.cpp:
741         (WebCore::BackForwardList::setPageCacheSize):
742         (WebCore::BackForwardList::clearPageCache):
743
744         Removed global timed release code, moved into new PageCache class, since
745         it's eventually going to be in charge of deciding when things are released:
746         
747         * history/HistoryItem.cpp:
748         (WebCore::HistoryItem::setCachedPage):
749         * history/HistoryItem.h:
750
751         Folded into PageCache:
752         
753         * history/HistoryItemTimer.cpp: Removed.
754         * history/HistoryItemTimer.h: Removed.
755
756         New singleton. Right now, it just handles timed release of cached pages:
757         
758         * history/PageCache.cpp: Added.
759         (WebCore::pageCache):
760         (WebCore::PageCache::PageCache):
761         (WebCore::PageCache::autoreleaseNowOrReschedule):
762         (WebCore::PageCache::autoreleaseNow):
763         (WebCore::PageCache::autorelease):
764         * history/PageCache.h: Added.
765
766 2007-05-14  Adele Peterson  <adele@apple.com>
767
768         Reviewed by Darin.
769
770         Fix for <rdar://problem/5200081> Repro crash in PopupMenu::show clicking popup menu button after reload
771
772         * platform/mac/PopupMenuMac.mm: (WebCore::PopupMenu::show): Added call to dismissPopup so the cell gets unattached properly.
773
774 2007-05-14  Adele Peterson  <adele@apple.com>
775
776         Reviewed by Darin.
777
778         Remove incorrect assertion.
779
780         * page/FrameView.cpp: (WebCore::FrameView::setContentsPos):
781
782 2007-05-14  Anders Carlsson  <andersca@apple.com>
783
784         Reviewed by Geoff.
785
786         <rdar://problem/5172056> Regression: cannot open txt file, get broken image
787
788         Never let plug-ins override text/plain.
789         
790         * dom/DOMImplementation.cpp:
791         (WebCore::DOMImplementation::createDocument):
792
793 2007-05-14  Zack Rusin  <zrusin@trolltech.com>
794
795         Reviewed by Simon.
796
797         Do some magic to get better dependency tracking for header
798         files in the qmake project files.
799
800         * ChangeLog:
801
802 2007-05-14  Lars Knoll <lars@trolltech.com>
803
804         Reviewed by Zack
805
806         Required updates after Maciej's frame change.
807
808         * loader/FrameLoader.cpp:
809         (WebCore::FrameLoader::mainReceivedCompleteError):
810               Call checkLoadCompleted() at the end of the method. Without it
811               we never get the loadDone() signal on the Qt port.
812         * platform/network/qt/ResourceHandleManagerQt.cpp:
813         (WebCore::ResourceHandleManager::receivedFinished):
814               Don't pass a null error to didFail().
815
816 2007-05-14  Darin Adler  <darin@apple.com>
817
818         Reviewed by Antti.
819
820         - fix <rdar://problem/3109180> VIP: after go back, page jumps after loading even if I scrolled while loading
821
822         * history/CachedPage.cpp: (WebCore::CachedPage::clear): Call clearFrame rather than
823         clearPart -- the "part" term was leftover prehistoric terminology.
824
825         * loader/FrameLoader.cpp:
826         (WebCore::FrameLoader::open): Call setWasScrolledByUser(false) on the page, so that we
827         can detect any user scrolling that happens during the "go back" process.
828         (WebCore::FrameLoader::restoreScrollPositionAndViewState): Don't scroll if the view's
829         wasScrolledByUser flag is set.
830         (WebCore::FrameLoader::loadItem): Call setWasScrolledByUser(false) false when we do
831         a new "load" (actually just a scroll) using the same frame. Also moved the line of code that
832         sets m_currentHistoryItem to make this code path mroe similar to recursiveGoToItem.
833         (WebCore::FrameLoader::recursiveGoToItem): Ditto.
834
835         * page/Frame.cpp:
836         (WebCore::Frame::~Frame): Call clearFrame rather than stting m_frame directly.
837         (WebCore::Frame::sendScrollEvent): Call setWasScrolledByUser(true) on FrameView. The FrameView
838         itself knows to ignore this if the scrolling is being done programmatically instead of by the user.
839
840         * page/FrameView.h: Added wasScrolledByUser and setWasScrolledByUser. Also removed unneeded
841         include and class forward declarations, renamed clearPart to clearFrame, removed uneeded function
842         haveDelayedLayoutScheduled, and removed unneeded friend declarations.
843         * page/FrameView.cpp:
844         (WebCore::FrameViewPrivate::FrameViewPrivate): Added m_inProgrammaticScroll and m_wasScrolledByUser.
845         (WebCore::FrameViewPrivate::reset): Set m_wasScrolledByUser to false.
846         (WebCore::FrameView::clearFrame): Renamed from clearPart.
847         (WebCore::FrameView::scrollRectIntoViewRecursively): Added code to set the m_inProgrammaticScroll flag.
848         (WebCore::FrameView::setContentsPos): Ditto.
849         (WebCore::FrameView::wasScrolledByUser): Added.
850         (WebCore::FrameView::setWasScrolledByUser): Added. Does nothing if called when m_inProgrammaticScroll
851         is true.
852
853 2007-05-14  Darin Adler  <darin@apple.com>
854
855         Reviewed by Antti.
856
857         - <rdar://problem/4865655> REGRESSION: find function does not work for the character ß
858
859         The trick was to fold case consistently in the CircularSearchBuffer class.
860
861         The problem was that we were folding the search target string with full case folding and
862         the characters of the text we were searching with simple case folding. We now use full
863         case folding in both cases.
864
865         * editing/TextIterator.cpp:
866         (WebCore::CircularSearchBuffer::CircularSearchBuffer): Changed the buffer to be a
867         Vector<UChar>. Added a Vector<bool> to record which characters were starts of characters
868         in the text we are searching. Changed the cursor to be an int rather than a pointer.
869         (WebCore::CircularSearchBuffer::append): New function that knows how to append multiple
870         characters when folding case turns one character into many -- uses the full foldCase
871         rather than the simplified single-character foldCase. Also removed the append function
872         that did multiple characters at once; that was part of an optimization we don't need.
873         (WebCore::CircularSearchBuffer::isMatch): Instead of asserting that the buffer is full,
874         changed this to return false if it's not full, which lets us fill up the buffer with
875         the normal loop. Also return false if the start of the buffer is half-way through a
876         case-folded character and updated this since m_cursor is now an integer.
877         (WebCore::CircularSearchBuffer::length): This returns the length in non-case-folded
878         characters of the characters that were appended, which may not be the same as the length
879         of the original target string. To do that we have to total up the character start
880         booleans for the current state of the circular buffer.
881         (WebCore::findPlainText): Streamlined the logic in a few ways: 1) Moved more of the
882         return value setup to the top of the function so it could be shared with the early
883         error exit. 2) Removed the separate "fill the buffer" logic, which allowed me to
884         remove some of the functions from CircularSearchBuffer and eliminated the need for
885         two nested loops. 3) Replaced the CharacterIterator and bool that were used to record
886         the location we found with integers matchStart and matchLength. 4) Got rid of the use
887         of goto since we don't have two nested loops any more.
888
889 2007-05-14  Andrew Wellington  <proton@wiretapped.net>
890
891         Reviewed by Darin.
892
893         Fix http://bugs.webkit.org/show_bug.cgi?id=13275
894         Safari crashed when trying to login using the windows live contact control
895
896         Check for cleared windowObj in JSAbstractEventListener::handleEvent
897
898         * bindings/js/kjs_events.cpp:
899         (KJS::JSAbstractEventListener::handleEvent):
900
901 2007-05-13  Alexey Proskuryakov  <ap@webkit.org>
902
903         Reviewed by Darin.
904
905         http://bugs.webkit.org/show_bug.cgi?id=13690
906         JavaScript Form Validation issue on Banco do Brasil site
907
908         Test: fast/forms/input-setvalue-selection.html
909
910         * html/HTMLInputElement.cpp:
911         (WebCore::HTMLInputElement::setValue): In other browsers, changing textInput.value
912         always moves the insertion point past the text. In 10.4.9 WebKit, this only worked
913         for inactive controls, and it never worked in ToT.
914
915 2007-05-13  Brady Eidson  <beidson@apple.com>
916
917         Reviewed by Mitz
918
919         http://bugs.webkit.org/show_bug.cgi?id=13701
920
921         Since HTMLInputElements register themselves with their Document for special handling, if their document
922         ever changes then bad things can happen.
923
924         Unfortunately, with adoptNode, the document can change.  This has been a long standing crasher with all 
925         input fields but was given recent high visibility by r21430
926
927         The solution is to add functionality for a Node to react to its owner document changing via a pair of 
928         virtual callbacks.  Then we can tap into those callbacks in HTMLInputElement.
929
930         No layout test possible until http://bugs.webkit.org/show_bug.cgi?id=13672 is resolved
931
932         * dom/Node.cpp:
933         (WebCore::Node::setDocument): Call willMoveToNewOwnerDocument and didMoveToNewOwnerDocument
934
935         * dom/Node.h:
936         (WebCore::Node::willMoveToNewOwnerDocument): Virtual callback to a node for before an owner document change
937         (WebCore::Node::didMoveToNewOwnerDocument): Virtual callback to a node for after an owner document change
938
939         * html/HTMLInputElement.cpp:
940         (WebCore::HTMLInputElement::~HTMLInputElement): Unconditionally unregister both for both form state
941           and the cache restoration callback
942         (WebCore::HTMLInputElement::setInputType): Change registration with the document only if we're in one
943         (WebCore::HTMLInputElement::attach): Don't bother registering for the callback here - that will be
944           handled by setInputType() or by a change in owner document
945         (WebCore::HTMLInputElement::willMoveToNewOwnerDocument): Unregister with the old owner document
946         (WebCore::HTMLInputElement::didMoveToNewOwnerDocument): Register with the new owner document
947         * html/HTMLInputElement.h:
948
949 2007-05-13  Darin Adler  <darin@apple.com>
950
951         * platform/mac/TextBreakIteratorInternalICUMac.mm: Fix comment typo.
952
953 2007-05-13  Rob Buis  <buis@kde.org>
954
955         Reviewed by Darin.
956
957         http://bugs.webkit.org/show_bug.cgi?id=13529
958         DOM3 keyIdentifier text is incorrect
959
960         Use 4 digits for the Unicode based key identifiers.
961
962         * html/HTMLButtonElement.cpp:
963         (WebCore::HTMLButtonElement::defaultEventHandler):
964         * html/HTMLInputElement.cpp:
965         (WebCore::HTMLInputElement::defaultEventHandler):
966         * html/HTMLSelectElement.cpp:
967         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
968         * page/EventHandler.cpp:
969         (WebCore::EventHandler::defaultKeyboardEventHandler):
970         * page/gdk/EventHandlerGdk.cpp:
971         (WebCore::isKeyboardOptionTab):
972         * page/mac/EventHandlerMac.mm:
973         (WebCore::isKeyboardOptionTab):
974         * page/qt/EventHandlerQt.cpp:
975         (WebCore::isKeyboardOptionTab):
976         * platform/gdk/KeyEventGdk.cpp:
977         (WebCore::keyIdentifierForGdkKeyCode):
978         * platform/mac/KeyEventMac.mm:
979         (WebCore::keyIdentifierForKeyEvent):
980         * platform/qt/PlatformKeyboardEventQt.cpp:
981         (WebCore::keyIdentifierForQtKeyCode):
982         * platform/win/KeyEventWin.cpp:
983         (WebCore::keyIdentifierForWindowsKeyCode):
984         * platform/wx/KeyEventWin.cpp:
985         (WebCore::keyIdentifierForWindowsKeyCode):
986         * platform/wx/KeyboardEventWx.cpp:
987         (WebCore::keyIdentifierForWxKeyCode):
988
989 2007-05-12  Darin Adler  <darin@apple.com>
990
991         Reviewed by Antti.
992
993         - fix <rdar://problem/5174903> Safari crashes opening the attached webarchive (made by OmniWeb)
994
995         * loader/icon/IconLoader.cpp:
996         (WebCore::IconLoader::didReceiveResponse): Check ResourceHandle for nil before calling url() on it.
997         (WebCore::IconLoader::didFail): Ditto.
998         (WebCore::IconLoader::didFinishLoading): Ditto.
999
1000 2007-05-12  Rob Buis  <buis@kde.org>
1001
1002         Reviewed by Oliver.
1003
1004         Cleanup, get rid of the SVGStyledElement::view() call.
1005
1006         * ksvg2/svg/SVGClipPathElement.cpp:
1007         (WebCore::SVGClipPathElement::canvasResource):
1008         * ksvg2/svg/SVGFEFloodElement.cpp:
1009         (WebCore::SVGFEFloodElement::filterEffect):
1010         * ksvg2/svg/SVGGradientElement.cpp:
1011         (WebCore::SVGGradientElement::buildStops):
1012         * ksvg2/svg/SVGStyledElement.cpp:
1013         * ksvg2/svg/SVGStyledElement.h:
1014
1015 2007-05-12  Mitz Pettel  <mitz@webkit.org>
1016
1017         Reviewed by Hyatt.
1018
1019         - fix http://bugs.webkit.org/show_bug.cgi?id=13680
1020           Incomplete repaint of focus ring around continuation
1021
1022         Test: fast/repaint/continuation-after-outline.html
1023
1024         * rendering/RenderFlow.cpp:
1025         (WebCore::RenderFlow::absoluteClippedOverflowRect):
1026
1027 2007-05-12  Oliver Hunt  <oliver@apple.com>
1028
1029         Reviewed by Hyatt.
1030
1031         <rdar://problem/4728842> Can't drag-and-drop files onto <input type="file">
1032         
1033         This patch allows a file to be dropped on to a file input field.  There
1034         are a few changes for data handling and a  few to allow the data to be
1035         threaded to the appropriate places.
1036
1037         * page/DragController.cpp:
1038         (WebCore::asFileInput):
1039            When dropping a file onto a file input we may mouse over either 
1040            the element itself, or the contained button element.  This method
1041            returns the base element for the file input in either of these
1042            cases.
1043         (WebCore::DragController::tryDocumentDrag):
1044            Don't try to set the drag caret to a file input.
1045         (WebCore::DragController::concludeDrag):
1046            Handle dropping onto a file input element.
1047         (WebCore::DragController::canProcessDrag):
1048            We can now process a file being dragged onto a file input element.
1049            
1050         * platform/DragData.h:
1051            New accessors
1052            
1053         * platform/gdk/DragDataGdk.cpp:
1054         (WebCore::DragData::containsFiles):
1055         (WebCore::DragData::asFilenames):
1056            Link stubs.
1057            
1058         * platform/mac/DragDataMac.mm:
1059         (WebCore::DragData::containsFiles):
1060         (WebCore::DragData::asFilenames):
1061            Implement new accessors
1062         (WebCore::DragData::containsCompatibleContent):
1063            Update containsCompatibleContent to allow standalone files.
1064           
1065         * platform/qt/DragDataQt.cpp:
1066         (WebCore::DragData::containsFiles):
1067         (WebCore::DragData::asFilenames):
1068            Link stubs
1069                       
1070         * rendering/RenderFileUploadControl.cpp:
1071         (WebCore::RenderFileUploadControl::receiveDroppedFile):
1072         * rendering/RenderFileUploadControl.h:
1073            For security reasons we don't have an api to allow us to set 
1074            a value directly on a file input -- attempts to do so are
1075            blocked.  By adding a method to set the target through the 
1076            render we bypass such restrictions, and ensure the renderer
1077            is updated correctly.
1078
1079 2007-05-12  Mitz Pettel  <mitz@webkit.org>
1080
1081         Reviewed by Hyatt.
1082
1083         - fix http://bugs.webkit.org/show_bug.cgi?id=13695
1084           REGRESSION (r21387): Replaced elements' highlight rects are wrongly positioned
1085
1086         Test: fast/replaced/selection-rect.html
1087
1088         Also fixes the same problem with list markers, covered by existing test
1089         fast/lists/markers-in-selection.html.
1090
1091         * rendering/RenderListMarker.cpp:
1092         (WebCore::RenderListMarker::selectionRect):
1093         * rendering/RenderReplaced.cpp:
1094         (WebCore::RenderReplaced::selectionRect):
1095
1096 2007-05-12  Mitz Pettel  <mitz@webkit.org>
1097
1098         Reviewed by Darin.
1099
1100         - fix http://bugs.webkit.org/show_bug.cgi?id=13685
1101           REGRESSION (r21368-r21388): Highlighting text in scrolled textareas behaves oddly
1102
1103         Test: fast/repaint/text-selection-rect-in-overflow.html
1104
1105         * rendering/RenderText.cpp:
1106         (WebCore::RenderText::selectionRect):
1107
1108 2007-05-12  Brady Eidson  <beidson@apple.com>
1109
1110         Rubber stamped by Mitz
1111
1112         * html/HTMLInputElement.cpp:
1113         (WebCore::HTMLInputElement::attach): unregister->register - I screwed this one up in last minute renaming
1114           before committing  :(
1115
1116 2007-05-11  Brady Eidson  <beidson@apple.com>
1117
1118         Reviewed by Darin and Geoff
1119
1120         Fix for http://bugs.webkit.org/show_bug.cgi?id=13630
1121         and
1122         <rdar://problem/4873628>
1123
1124         Back/Forward cache should work with pages with login fields.
1125
1126         First change is to relocate the "useSecureKeyboardEntry" flag to the document.  This lets
1127         it persist through page cache transitions and it is truly a per-document concept more than
1128         per-frame anyways since its the document that has a password field, not the frame.
1129
1130         Second change is to introduce the concept of an Element getting a "didRestoreFromCache()" callback.
1131         The idea is for elements to register with the document if they need work to be done when the
1132         page comes out of the back/forward cache.  Currently the only client of this service is 
1133         HTMLInputElements that are input type == PASSWORD.  Such an element's implementation for this
1134         method is to call reset()
1135
1136         Finally, after a page is restored from the cache we have the document send the didRestoreFromCache()
1137         callback to its registered Elements.  The whole design is to clear the password fields after 
1138         restoring the page instead of when caching the page because we want to defer work for the common
1139         case - there shouldn't be extra work here just to navigate away from a page when the common case
1140         is that you'll never go back!
1141
1142         No layout tests possible until http://bugs.webkit.org/show_bug.cgi?id=13672 is resolved
1143
1144         * dom/Document.cpp:
1145         (WebCore::Document::Document):
1146         (WebCore::Document::registerForDidRestoreFromCacheCallback): Add an Element to the special page-restoration callback list
1147         (WebCore::Document::unregisterForDidRestoreFromCacheCallback): Remove such an element
1148         (WebCore::Document::didRestoreFromCache): Called by FrameLoader - dispatch to all the registered elements
1149         (WebCore::Document::setUseSecureKeyboardEntryWhenActive): Set the local flag and call updateSecureKeyboardEntryIfActive
1150           on the Frame
1151         (WebCore::Document::useSecureKeyboardEntryWhenActive): Return the flag
1152
1153         * dom/Document.h:
1154         (WebCore::Document::unregisterFormElementWithState): Renamed
1155
1156         * dom/Element.h:
1157         (WebCore::Element::didRestoreFromCache): Added virtual base method
1158
1159         * html/HTMLInputElement.cpp:
1160         (WebCore::HTMLInputElement::~HTMLInputElement): Deregister from the document if inputType == PASSWORD
1161         (WebCore::HTMLInputElement::dispatchFocusEvent): Set the flag on the document, not the frame
1162         (WebCore::HTMLInputElement::dispatchBlurEvent): Ditto
1163         (WebCore::HTMLInputElement::setInputType): If changing to/from PASSWORD, register/deregister in the document accordingly
1164         (WebCore::HTMLInputElement::attach): Call registerForDidRestoreFromCacheCallback(this) instead of passwordFieldAdded()
1165         (WebCore::HTMLInputElement::didRestoreFromCache): Call reset();
1166         * html/HTMLInputElement.h:
1167
1168         * html/HTMLSelectElement.cpp:
1169         (WebCore::HTMLSelectElement::~HTMLSelectElement): Renamed deregisterFormElementWithState to unregisterFormElementWithState
1170         * html/HTMLTextAreaElement.cpp:
1171         (WebCore::HTMLTextAreaElement::~HTMLTextAreaElement): Ditto
1172
1173         * loader/FrameLoader.cpp:
1174         (WebCore::FrameLoader::canCachePage): Remove the check for password fields - they're allowed now!
1175         (WebCore::FrameLoader::opened): Tell the document to dispatch to the registered elements
1176         (WebCore::FrameLoader::saveDocumentState): Remove the check for password fields.  Turns out that when we grab a copy a the
1177           form state we're only copying the state of form elements that are registered with the Document - and that set 
1178           explicitly excludes Password elements
1179
1180         * page/Frame.cpp:
1181         (WebCore::Frame::setDocument): If the frame is active, set the setUseSecureKeyboardEntry based on the setting contained
1182           in the new document
1183         (WebCore::Frame::updateSecureKeyboardEntryIfActive): Notification for the secure entry flag changing - if the Frame is
1184           active, then update to the new setting from the document
1185         (WebCore::Frame::setIsActive): Grab the useSecureKeyboardEntry flag from the document instead of FramePrivate
1186         (WebCore::FramePrivate::FramePrivate):
1187         * page/Frame.h:
1188         * page/FramePrivate.h:
1189
1190 2007-05-12  David Hyatt  <hyatt@apple.com>
1191
1192         FIx for 13696.  Rework residual style to be much more aggressive about reopening.  Added
1193         a comprehensive test case of HTML tags to guarantee we match Firefox.  We now have an exclusion
1194         set rather than an inclusion set, so unknown future tags will also participate in residual style.
1195
1196         Reviewed by olliej
1197
1198         fast/invalid/residual-style.html
1199
1200 2007-05-12  David Hyatt  <hyatt@apple.com>
1201
1202         Fix for bug 12740, bmw.com doesn't work.  We were missing a rule that is covered by the HTML5
1203         parsing spec.  A <table> encountered while inside stray table content should close up the
1204         table responsible for the stray content and start the new table as a sibling of the first.
1205
1206         Reviewed by mjs
1207
1208         fast/invalid/table-inside-stray-table-content.html
1209
1210 2007-05-12  Eric Seidel  <eric@webkit.org>
1211
1212         Reviewed by mjs.
1213
1214         Crash starting Safari with JavaScript disabled.
1215         http://bugs.webkit.org/show_bug.cgi?id=13691
1216         
1217         Test: none possible.
1218
1219         * page/mac/FrameMac.mm:
1220         (WebCore::Frame::cleanupPlatformScriptObjects): NULL check d->m_script
1221
1222 2007-05-11  David Hyatt  <hyatt@apple.com>
1223
1224         Fix for http://bugs.webkit.org/show_bug.cgi?id=13688, Colloquy is broken!
1225
1226         Make sure to adjust the baseline of a percentage height table cell's row if the
1227         cell flexes (and lowers the baseline).
1228
1229         Reviewed by olliej
1230
1231         fast/tables/vertical-align-baseline-readjust.html
1232
1233         (WebCore::RenderTableSection::calcRowHeight):
1234         (WebCore::RenderTableSection::layoutRows):
1235         * rendering/RenderTableSection.h:
1236         (WebCore::RenderTableSection::getBaseline):
1237         
1238 2007-05-11  David Hyatt  <hyatt@apple.com>
1239
1240         Make sure focus rings are always using the exterior style, regardless
1241         of what the OS default is.
1242
1243         Reviewed by beth
1244
1245         * rendering/RenderThemeMac.mm:
1246         (WebCore::RenderThemeMac::checkbox):
1247         (WebCore::RenderThemeMac::radio):
1248         (WebCore::RenderThemeMac::popupButton):
1249         (WebCore::RenderThemeMac::search):
1250         (WebCore::RenderThemeMac::sliderThumbHorizontal):
1251         (WebCore::RenderThemeMac::sliderThumbVertical):
1252
1253 2007-05-11  Oliver Hunt  <oliver@apple.com>
1254
1255         Reviewed by Hyatt.
1256         
1257         <rdar://problem/5195473> REGRESSION: "Curly quote" fails to 
1258         be displayed correctly even when META tag specifies charset=x-mac-roman
1259
1260
1261         * platform/TextCodecICU.cpp:
1262         (WebCore::TextCodecICU::registerExtendedEncodingNames):
1263         Register the xmacroman encoding
1264
1265 2007-05-11  Maciej Stachowiak  <mjs@apple.com>
1266
1267         Reviewed by Hyatt.
1268
1269         REGRESSION (r21367): Crash due to null document deref when closing bookmarks
1270         http://bugs.webkit.org/show_bug.cgi?id=13662
1271
1272         * loader/FrameLoader.cpp:
1273         (WebCore::FrameLoader::provisionalLoadStarted): Remove some useless and now harmful
1274         code - there's no need to clear in this case.
1275
1276 2007-05-11  Oliver Hunt  <oliver@apple.com>
1277
1278         GDK Build fix
1279
1280         * ChangeLog:
1281         * dom/Document.cpp:
1282         (WebCore::Document::importNode):
1283
1284 2007-05-11  Maciej Stachowiak  <mjs@apple.com>
1285
1286         Reviewed by Geoff.
1287         
1288         - fixed <rdar://problem/5197621> closing second window crashed webkit (13660)
1289         http://bugs.webkit.org/show_bug.cgi?id=13660
1290
1291         No test case; not testable.
1292
1293         * page/mac/FrameMac.mm:
1294         (WebCore::Frame::cleanupPlatformScriptObjects): Check if the interpreter is null;
1295         if so, we don't want to do work that may lazily create it while the Frame is being
1296         destroyed.
1297
1298 2007-05-11  Oliver Hunt  <oliver@apple.com>
1299
1300         Reviewed by Brady.
1301         
1302         <rdar://problem/5017375> WebKit should disable SVG in Dashboard
1303         
1304         Prevents an SVG document or element from being created when in
1305         dashboard compatibility mode.
1306         
1307         Manually parsing, or using XHR to created a document removes our 
1308         ability to detect Dashboard compatibility mode, so we also perform
1309         the check when importing nodes from one document into another.
1310
1311         * dom/DOMImplementation.cpp:
1312         (WebCore::DOMImplementation::createDocument):
1313           Don't create an SVGDocument if we're in dashboard compatibility mode
1314           
1315         * dom/Document.cpp:
1316         (WebCore::Document::importNode):
1317           Don't import SVG nodes if we're in dashboard compatibility mode
1318           
1319         * ksvg2/scripts/make_names.pl:
1320           Don't create SVG elements for documents that are in dashboard
1321           compatibility mode
1322
1323 2007-05-11  Holger Hans Peter Freyther  <zecke@selfish.org>
1324
1325         Reviewed by Maciej.
1326
1327         Bug 13676: [cairo/gdk] Provide implementation for ImageBufferCairo
1328         http://bugs.webkit.org/show_bug.cgi?id=13676
1329
1330         There are no test cases that explicitly cover platform/graphics at present.
1331
1332         * platform/graphics/ImageBuffer.h: Add cairo bits
1333         * platform/graphics/cairo/ImageBufferCairo.cpp: Untested implementation of the ImagerBuffer using the image_surface
1334         (WebCore::ImageBuffer::create): Create a reasonable sized surface
1335         (WebCore::ImageBuffer::ImageBuffer): Use a cairo_surface and create a GraphicsContext. GraphicsContext takes the cairo_t ownership
1336         (WebCore::ImageBuffer::~ImageBuffer): Unref the surface
1337         (WebCore::ImageBuffer::context): simply return the GraphicsContext, it should be possible to directly draw on it.
1338
1339 2007-05-11  Mitz Pettel  <mitz@webkit.org>
1340
1341         Release build fix.
1342
1343         * platform/mac/ShapeArabic.c:
1344         (shapeArabic):
1345
1346 2007-05-11  Geoffrey Garen  <ggaren@apple.com>
1347
1348         Reviewed by Darin Adler.
1349
1350         Removed +[WebScriptObject scriptObjectForJSObject:frame:] because the
1351         WebScriptObject API has some serious limitations that make it not ready
1352         to be used everywhere the C API is used. Hopefully we can add a good
1353         ObjC API in the future that doesn't suffer from this problem.
1354         
1355         Preliminary notes about these limitations are in <rdar://problem/4876466>.
1356
1357         * bindings/objc/WebScriptObject.mm:
1358         * bindings/objc/WebScriptObjectPendingPublic.h:
1359
1360 2007-05-11  Mitz Pettel  <mitz@webkit.org>
1361
1362         Reviewed by Darin.
1363
1364         - fix http://bugs.webkit.org/show_bug.cgi?id=13635
1365           REGRESSION: Cannot log in to webmail.co.za account
1366
1367         Test: fast/dom/HTMLOptionElement/option-text.html
1368
1369         Despite the specification that the 'text' attribute of HTMLOptionElement
1370         is "the text contained within the option element", other browsers return
1371         the text as displayed in the list box or popup, which is without leading,
1372         trailing and collapsible whitespace.
1373
1374         * html/HTMLOptionElement.cpp:
1375         (WebCore::HTMLOptionElement::text): Moved the code to trim and collapse
1376         whitespace and replace backslashes with the currency symbol into this
1377         function.
1378         (WebCore::HTMLOptionElement::optionText): Left only the code that adds
1379         the leading spaces for grouped options. Removed code that, in quirks mode,
1380         displayed the label if the option element contained no text. That behavior
1381         did not match WinIE and the description of the expected behavior in
1382         fast/forms/HTMLOptionElement_label06.html.
1383
1384 2007-05-11  Mitz Pettel  <mitz@webkit.org>
1385
1386         Reviewed by Darin.
1387
1388         - fix http://bugs.webkit.org/show_bug.cgi?id=13572
1389           Arabic characters are not correctly joined when using Arial
1390
1391         No tests added because standard fonts do not use the character-based shaping
1392         code path.
1393
1394         Added shapeArabic(), a private version of u_shapeArabic() from ICU,
1395         patched to shape Arabic characters used in Persian, Urdu, Sindhi, etc.
1396         (whose contextual forms belong to the Arabic Presentation Forms-A block).
1397
1398         * WebCore.xcodeproj/project.pbxproj: Added ShapeArabic.{c,h}.
1399         * platform/mac/FontMac.mm:
1400         (WebCore::shapeArabic): Changed to call shapeArabic() instead of u_shapeArabic().
1401         * platform/mac/ShapeArabic.c: Added. Based on ushape.c from ICU, with
1402         additional shaping data and logic for Arabic Presentation Forms-A. Removed
1403         many options that are not used in WebKit and code that malloc()ed a temporary
1404         buffer and reversed the string.
1405         (changeLamAlef):
1406         (specialChar):
1407         (getLink):
1408         (isTashkeelChar):
1409         (shapeUnicode):
1410         (shapeArabic):
1411         * platform/mac/ShapeArabic.h: Added.
1412
1413 2007-05-11  Darin Adler  <darin@apple.com>
1414
1415         Reviewed by Mitz.
1416
1417         - fix http://bugs.webkit.org/show_bug.cgi?id=7452
1418           <rdar://problem/3211749> line breaks ignored after <wbr> in <pre> block (affects livejournal.com)
1419
1420         - fix http://bugs.webkit.org/show_bug.cgi?id=10657
1421           <rdar://problem/4274588> <wbr> tags are ignored
1422
1423         - fix http://bugs.webkit.org/show_bug.cgi?id=12689
1424           <wbr> :before/:after content causes line break
1425
1426         - fix <rdar://problem/5127366> DOM tree isn't correct when parsing with <wbr>
1427
1428         Test: fast/text/wbr-pre.html
1429         Test: fast/text/wbr.html
1430         Test: fast/css-generated-content/wbr-with-before-content.html
1431         Test: fast/parser/parse-wbr.html
1432
1433         * html/HTMLElement.h:
1434         * html/HTMLElement.cpp:
1435         (WebCore::HTMLElement::endTagRequirement): Use the same end tag requirement for a <wbr>
1436         element as for a <br> element, TagStatusForbidden.
1437         (WebCore::HTMLElement::tagPriority): Use the same priority for a <wbr> element as for a
1438         <br> element, 0.
1439         (WebCore::HTMLElement::createRenderer): Added. Create a RenderWordBreak to trigger the
1440         new rendering code paths.
1441
1442         * rendering/RenderFlow.h: Add a virtual isWordBreak so we can detect RenderWordBreak.
1443
1444         * rendering/RenderWordBreak.h: Added.
1445         * rendering/RenderWordBreak.cpp: Added.
1446
1447         * WebCore.pro: Added new files.
1448         * WebCore.xcodeproj/project.pbxproj: Added new files.
1449         * WebCoreSources.bkl: Added new files.
1450
1451         * rendering/RenderBlock.cpp: (WebCore::RenderBlock::calcInlinePrefWidths): Reset the
1452         line when we hit a <wbr>.
1453         * rendering/bidi.cpp: (WebCore::RenderBlock::findNextLineBreak): Add a line break when
1454         we hit a <wbr>.
1455
1456         * dom/Node.cpp: (Node::createRendererIfNeeded): Fix a null check for the case where
1457         createRenderer returns 0 even though rendererIsNeeded returned true. I can't reproduce
1458         it on demand, but while running layout tests I hit this once. Since there was already
1459         a null check here, I rearranged it so it guards all the code that uses the renderer.
1460         Later we might want to figure out under exactly what circumstances rendererIsNeeded
1461         will return true but createRenderer return 0 and consider eliminating them.
1462
1463 2007-05-11  David Hyatt  <hyatt@apple.com>
1464
1465         Fix for bug 13675, focus rings don't repaint properly on editable
1466         continuations.
1467
1468         Reviewed by olliej
1469
1470         (WebCore::InlineFlowBox::paint):
1471         * rendering/RenderBlock.cpp:
1472         (WebCore::RenderBlock::paintObject):
1473         (WebCore::continuationOutlineTable):
1474         (WebCore::RenderBlock::addContinuationWithOutline):
1475         (WebCore::RenderBlock::paintContinuationOutlines):
1476         * rendering/RenderBlock.h:
1477         * rendering/RenderBox.cpp:
1478         (WebCore::RenderBox::absoluteClippedOverflowRect):
1479         * rendering/RenderObject.cpp:
1480         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
1481         (WebCore::RenderObject::absoluteOutlineBox):
1482
1483 2007-05-11  Rob Buis  <buis@kde.org>
1484
1485         Reviewed by Oliver.
1486
1487         Cleanups mostly inspired by Coverage results.
1488
1489         * ksvg2/css/SVGCSSParser.cpp:
1490         (WebCore::CSSParser::parseSVGValue):
1491         (WebCore::CSSParser::parseSVGStrokeDasharray):
1492         * ksvg2/css/SVGRenderStyleDefs.cpp:
1493         (StyleFillData::operator==):
1494         * ksvg2/svg/SVGColor.cpp:
1495         (WebCore::SVGColor::colorFromRGBColorString):
1496
1497 2007-05-11  Holger Freyther <freyther@kde.org>
1498
1499         Reviewed by Mark Rowe.
1500
1501         Move libcurl configuration into WebKit.pri so it will be used by GdkLauncher.
1502
1503         * WebCore.pro:
1504
1505 2007-05-10  David Hyatt  <hyatt@apple.com>
1506
1507         <rdar://problem/5015522> Bounds rectangle of unloaded images is 
1508         drawn briefly while loading
1509         
1510         When the image is null and has no size, don't draw the grey
1511         rectangles or alt text any more.  Wait for an actual error to
1512         occur with the image before we start showing alt text and borders.
1513
1514         (Images with no source set at all will continue to show alt text and
1515         borders immediately.)
1516
1517         Reviewed by bradee-oh
1518
1519         * rendering/RenderImage.cpp:
1520         (WebCore::RenderImage::paint):
1521
1522 2007-05-10  Mitz Pettel  <mitz@webkit.org>
1523
1524         Reviewed by Darin.
1525
1526         - fix http://bugs.webkit.org/show_bug.cgi?id=13655
1527           Incomplete repaint when text-shadow is used in a render layer with explicit height
1528
1529         Test: fast/repaint/layer-full-repaint.html
1530
1531         Removed custom repaint logic from RenderLayer. repaintAfterLayoutIfNeeded()
1532         knows how to do everything we need now. The only catch is that we cannot
1533         rely on its "do a full repaint if the object needs layout" behavior, since
1534         by the time we call it, the needs layout flag has been reset. The solution
1535         is to cache the need for a full repaint in the layer.
1536
1537         * page/FrameView.cpp:
1538         (WebCore::FrameView::layout): Removed call to checkForRepaintOnResize().
1539         * rendering/RenderLayer.cpp:
1540         (WebCore::RenderLayer::checkForRepaintOnResize): Removed.
1541         (WebCore::RenderLayer::RenderLayer): Replaced the m_repaintOverflowOnResize
1542         flag with a m_needsFullRepaint flag, which indicates that the layer needs
1543         to do a full repaint in the next call to updateLayerPositions().
1544         (WebCore::RenderLayer::updateLayerPositions): Simplified the repaint logic.
1545         Either call repaintAfterLayoutIfNeeded() or do a full repaint, depending on
1546         m_needsFullRepaint.
1547         * rendering/RenderLayer.h:
1548         (WebCore::RenderLayer::setNeedsFullRepaint):
1549         * rendering/RenderObject.cpp:
1550         (WebCore::RenderObject::setNeedsLayout): Mark the layer for full repaint.
1551
1552 2007-05-10  Justin Garcia  <justin.garcia@apple.com>
1553
1554         Reviewed by ggaren
1555
1556         <rdar://problem/5195166> Incorrect proposedRange DOMRange passed to WebViewEditing delegate
1557         
1558         In setModifyBias, we must cache the start and the end 
1559         because the calls to setBase and setExtent can modify 
1560         them (added a testcase).
1561         The temporary SelectionController that we use in modify() to
1562         produce the proposed range that will be passed to 
1563         shouldChangeSelectedDOMRange must have the same m_modifyBias
1564         as the original SelectionController, or else when the 
1565         modification is performed, setModifyBias can swap the base 
1566         and the extent incorrectly (added a testcase).
1567         Renamed m_modifyBias to m_lastChangeWasHorizontalExtension.
1568         Renamed setModifyBias to willBeModified.
1569
1570         * editing/SelectionController.cpp:
1571         (WebCore::SelectionController::SelectionController):
1572         (WebCore::SelectionController::setSelection):
1573         (WebCore::SelectionController::willBeModified):
1574         (WebCore::SelectionController::modify):
1575         * editing/SelectionController.h:
1576         (WebCore::SelectionController::setLastChangeWasHorizontalExtension):
1577         * page/EventHandler.cpp:
1578         (WebCore::EventHandler::handleMousePressEventSingleClick):
1579         (WebCore::EventHandler::updateSelectionForMouseDragOverPosition):
1580
1581 2007-05-10  Geoffrey Garen  <ggaren@apple.com>
1582
1583         Reviewed by Darin Adler.
1584
1585         "IconDatabase::sharedIconDatabase()" => "iconDatabase()" for terseness,
1586         in the style of WebCore::cache().
1587
1588         * WebCore.exp:
1589         * history/HistoryItem.cpp: Removed retainIconInDatabase because calling
1590         "retain" in order to release something is really confusing and, now that
1591         iconDatabase() is more terse, we don't need this helper to shorten the
1592         syntax. (The isEmpty() check is also done by the database, so we don't 
1593         need it either.)
1594
1595         (WebCore::IconDatabase::~IconDatabase): ASSERT that our destructor isn't
1596         called. We're a singleton, so it's confusing to have tear-down code.
1597
1598 2007-05-10  Adele Peterson  <adele@apple.com>
1599
1600         Reviewed by Hyatt.
1601
1602         WebCore part of fix for <rdar://problem/4100616> Doing a "find" in RSS doesn't scroll to result
1603
1604         Test: fast/overflow/scroll-nested-positioned-layer-in-overflow.html
1605
1606         Merged visibleSelectionRect into selectionRect.  selectionRect() now takes an argument to determine
1607         whether or not to return a rect that clips to the visible content.  This change makes all of the implementations of selectionRect
1608         consistent by having them all consider the repaint rect when clipping to visible content.
1609
1610         * page/Frame.cpp:
1611         (WebCore::Frame::revealSelection): Call selectionRect with clipToVisibleContent = false, so we can get a rect that's not visible to reveal.
1612         (WebCore::Frame::selectionRect): Added clipToVisibleContent argument, and merged visibleSelectionRect into this method.
1613         (WebCore::Frame::setIsActive): Use selectionRect instead of visibleSelectionRect.
1614         * page/Frame.h:
1615         * page/mac/FrameMac.mm: (WebCore::Frame::selectionImage): Update layout before creating the image.  Use selectionRect instead of visibleSelectionRect.
1616         * page/DragController.cpp: (WebCore::dragLocForSelectionDrag): Use selectionRect instead of visibleSelectionRect.
1617
1618         * rendering/RenderBR.h: (WebCore::RenderBR::selectionRect): Updated argument.
1619         * rendering/RenderBlock.h: (WebCore::RenderBlock::selectionRect): ditto.
1620         * rendering/RenderSVGInlineText.cpp: (WebCore::RenderSVGInlineText::selectionRect): ditto.
1621         * rendering/RenderSVGInlineText.h: ditto.
1622         * rendering/RenderObject.h: 
1623         (WebCore::RenderObject::selectionRect): ditto.
1624         (WebCore::RenderObject::SelectionInfo::SelectionInfo): ditto.
1625         * rendering/RenderView.cpp:
1626         (WebCore::RenderView::selectionRect): ditto.
1627         (WebCore::RenderView::setSelection): ditto.
1628         * rendering/RenderView.h:
1629
1630         * rendering/RenderText.h:
1631         * rendering/RenderText.cpp: (WebCore::RenderText::selectionRect): Only call computeAbsoluteRepaintRect when clipping to visible content.
1632         Otherwise, just adjust the rect to the correct position.
1633         * rendering/RenderListMarker.h:
1634         * rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::selectionRect):
1635           To match what we do in RenderText, if we're trying to clip to visible content, just call computeAbsoluteRepaintRect.
1636         * rendering/RenderReplaced.h:
1637         * rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::selectionRect): ditto.
1638
1639         * rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollRectToVisible): Check for a parent layer at the beginning, so we can try to scroll all of our parent layers 
1640           first, before trying to scroll the top level view.  Also, don't try to scroll overflow layers that have -webkit-line-clamp restricting the height.
1641           This will prevent us from revealing text hidden by the slider in Safari RSS.
1642
1643         * WebCore.exp: Update symbols for WebKit.
1644
1645 2007-05-10  David Hyatt  <hyatt@apple.com>
1646
1647         Fix for:
1648
1649         <rdar://problem/5195272> REGRESSION: broke outline rings for continuations 
1650         with empty inline containers
1651         
1652         http://bugs.webkit.org/show_bug.cgi?id=13667
1653
1654         Make sure to only include collapsed top/bottom margins of the block portion
1655         of the continuation if we know for sure that we have inline line boxes before
1656         and after that would prevent the collapse from going further.
1657
1658         In plain English: the focus rings were too tall. :)
1659
1660         Reviewed by beth
1661
1662         * rendering/RenderFlow.cpp:
1663         (WebCore::RenderFlow::addFocusRingRects):
1664
1665 2007-05-10  David Hyatt  <hyatt@apple.com>
1666
1667         Fix for:
1668
1669         <rdar://problem/5067235> REGRESSION: Excessively wide table, impossible to resize
1670
1671         The table used white-space: pre-wrap, which is supported only by WebKit.  There
1672         was a bug with the computation of min pref width for pre-wrap text.
1673
1674         Reviewed by mitzpettel
1675
1676         fast/text/white-space/pre-wrap-line-test.html
1677
1678         * rendering/RenderText.cpp:
1679         (WebCore::RenderText::calcPrefWidths):
1680
1681 2007-05-10  Brady Eidson  <beidson@apple.com>
1682
1683         Reviewed by Oliver
1684
1685         Cleanup from my earlier Java Applet patch.  We should keep a central location to query if 
1686         a mime type counts as a Java Applet
1687
1688         * html/HTMLObjectElement.cpp:
1689         (WebCore::HTMLObjectElement::containsJavaApplet): Query MimeTypeRegistry on the type
1690
1691         * platform/MimeTypeRegistry.cpp:
1692         (WebCore::MimeTypeRegistry::isSupportedImageMIMEType): Update style
1693         (WebCore::MimeTypeRegistry::isSupportedImageResourceMIMEType): Ditto
1694         (WebCore::MimeTypeRegistry::isSupportedNonImageMIMEType): Ditto
1695         (WebCore::MimeTypeRegistry::isJavaAppletMIMEType): Perform the Java Applet check
1696         * platform/MimeTypeRegistry.h:
1697
1698         * rendering/RenderPartObject.cpp:
1699         (WebCore::RenderPartObject::updateWidget): Query MimeTypeRegistry on the type
1700
1701 2007-05-10  Patti Hoa  <patti@apple.com>
1702
1703         Reviewed by Darin.
1704         
1705         <rdar://problem/4720109> Sentence textMarker methods do not work well with empty lines
1706         
1707         * bridge/mac/WebCoreAXObject.mm:
1708         (-[WebCoreAXObject doAXNextSentenceEndTextMarkerForTextMarker:]):
1709         (-[WebCoreAXObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
1710         When a marker position is given, the sentence ax methods automatically shift position by one to make sure
1711         not to ask for the current sentence again.  This is generally fine except when the position
1712         shift over an empty line break, which is should be considered a separate sentence. In this case, 
1713         if we used the shifted position to ask for sentence boundary, ICU parser is not given the text data
1714         containing the newline to correctly determine the sentence boundary.  Since the ax sentence method is 
1715         explicitly shifting the position to ask for sentence boundary, it should make sure not to skip over important
1716         character that can be a standalone sentence.
1717         * editing/visible_units.cpp:
1718         (WebCore::nextBoundary):
1719         When determining boundary, don't stop on a collapsed range, such as newline.  
1720         Just pick the next valid position to use as boundary.
1721
1722 2007-05-10  Maciej Stachowiak  <mjs@apple.com>
1723
1724         Reviewed by Oliver.
1725
1726         - WebCore part of fix for:
1727         <rdar://problem/5063277> blank screen after login to Citibank Online (accessing document before frame starts loading cancels load)
1728         <rdar://problem/5159541> REGRESSION (r20972): Wall Street Journal pages replaced by advertisements (13465)
1729
1730         The basic approach is to have Frames start out containing an empty document instead of absolutely nothing,
1731         so there is no need to initialize them on demand. Various side effects of that cause both of these bugs.
1732         
1733         However, this caused many regressions so I had to fix the fallout.
1734         
1735         * WebCore.exp: fix symbol exports
1736         * bindings/js/kjs_window.cpp:
1737         (KJS::createNewWindow): useless "created" bool (we don't need it here)
1738         (KJS::WindowFunc::callAsFunction): detect if we created a new frame, because if so,
1739         we need to initialize the domain (can't count on it not having a document), also
1740         don't try to make a new document for it.
1741         Also, stop properly.
1742         * css/cssstyleselector.cpp:
1743         (WebCore::CSSStyleSelector::CSSStyleSelector): don't count on document having a view here
1744         * html/HTMLObjectElement.cpp:
1745         (WebCore::HTMLObjectElement::isImageType): Ask client, to match how other <object> renderer
1746         decisions are made.
1747         * loader/FrameLoader.cpp:
1748         (WebCore::FrameLoader::FrameLoader): Initialize new data members
1749         (WebCore::FrameLoader::init): Do the slightly tricky sequence of steps to properly make
1750         an empty document with everything hooked up.
1751         (WebCore::FrameLoader::createWindow): Added "created" bool.
1752         (WebCore::FrameLoader::stopLoading): (whitespace change)
1753         (WebCore::FrameLoader::begin): Don't try to create an empty document.
1754         (WebCore::FrameLoader::finishedParsing): If creating an initial empty document, don't
1755         do any of this work.
1756         (WebCore::FrameLoader::checkCompleted): Do checkLoadComplete() as well.
1757         (WebCore::FrameLoader::baseURL): don't check for null document
1758         (WebCore::FrameLoader::baseTarget): ditto
1759         (WebCore::FrameLoader::completeURL): ditto
1760         (WebCore::FrameLoader::didTellBridgeAboutLoad): ditto
1761         (WebCore::FrameLoader::scheduleLocationChange): determine duringLoad differently; doc won't
1762         be null.
1763         (WebCore::FrameLoader::gotoAnchor): don't check for null document
1764         (WebCore::FrameLoader::canTarget): don't check for null document
1765         (WebCore::FrameLoader::stopForUserCancel): new method for explicit stops like window.stop().
1766         (WebCore::FrameLoader::transitionToCommitted): check for pre-loaded state properly
1767         (WebCore::FrameLoader::createEmptyDocument): removed
1768         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): don't send delegate callbacks when making initial
1769         doc.
1770         (WebCore::FrameLoader::tokenizerProcessedData): Assume document; just checkCompleted now that it
1771         does checkLoadComplete.
1772         (WebCore::FrameLoader::receivedMainResourceError): assume document
1773         (WebCore::FrameLoader::saveDocumentState): Assume there's a document except during initial load
1774         (WebCore::FrameLoader::mainReceivedCompleteError): do checkCompleted, not checkLoadComplete
1775         (WebCore::FrameLoader::continueLoadWithData): assume document
1776         * loader/FrameLoader.h:
1777         * loader/MainResourceLoader.cpp:
1778         (WebCore::MainResourceLoader::receivedError): Add more ref protection and do things in a slightly
1779         different order.
1780         * page/DOMWindow.cpp:
1781         (WebCore::DOMWindow::document): don't force document creation, just assert there is one.
1782         * page/Frame.cpp:
1783         (WebCore::Frame::init): Added init method.
1784         (WebCore::Frame::pageDestroyed): when a frame is removed, make sure to check if the parent is
1785         done loading.
1786         * page/Frame.h:
1787         * page/mac/WebCoreFrameBridge.mm:
1788         (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]): No need to force
1789         document.
1790         (-[WebCoreFrameBridge aeDescByEvaluatingJavaScriptFromString:]): ditto
1791         * platform/graphics/svg/SVGImage.cpp:
1792         (WebCore::SVGImage::dataChanged): init the frame
1793         * rendering/RenderPart.cpp:
1794         (WebCore::RenderPart::updateWidgetPosition): If a subframe needs layout, then lay it out even
1795         if the bounds did not change; the content size might be wrong.
1796         * rendering/RenderTreeAsText.cpp:
1797         (WebCore::externalRepresentation): Don't crash if the frame lacks a view.
1798
1799 2007-05-10  David Hyatt  <hyatt@apple.com>
1800
1801         Fix for:
1802
1803         <rdar://problem/5146757> REGRESSION: div that wrapped to screen width in 
1804         tiger no longer wraps
1805         
1806         http://bugs.webkit.org/show_bug.cgi?id=13654
1807
1808         Reviewed by mitz
1809
1810         fast/text/whitespace/normal-after-nowrap-breaking.html
1811
1812         * rendering/RenderBlock.cpp:
1813         (WebCore::RenderBlock::calcInlinePrefWidths):
1814
1815 2007-05-10  David Hyatt  <hyatt@apple.com>
1816
1817         Fix for:
1818
1819         <rdar://problem/4778099> Links with nested continuations fail to 
1820         paint their outlines (11255)
1821         
1822         http://bugs.webkit.org/show_bug.cgi?id=11255
1823
1824         Fix multiple bugs with outline painting of continuations to ensure that
1825         all combos work (empty/full inline - block with/without margins - 
1826         empty/full inline).
1827
1828         Reviewed by mitz
1829
1830         fast/inline/continuation-outlines.html
1831
1832         * rendering/RenderBlock.cpp:
1833         (WebCore::RenderBlock::paintObject):
1834         * rendering/RenderFlow.cpp:
1835         (WebCore::RenderFlow::addFocusRingRects):
1836
1837 2007-05-10  David Hyatt  <hyatt@apple.com>
1838
1839         Fix for:
1840
1841         <rdar://problem/5193529> REGRESSION: RTL Overflows scrollbar not showing 
1842         when they should be
1843         
1844         Fallout from fix for bug 11926.  Make sure to restrict the fix to the
1845         RenderView for now, since the full-blown overflow case is pretty involved.
1846
1847         Reviewed by mitzpettel
1848
1849         fast/overflow/unreachable-content-bug-rtl.html
1850
1851         * rendering/RenderBlock.cpp:
1852         (WebCore::RenderBlock::lowestPosition):
1853         (WebCore::RenderBlock::rightmostPosition):
1854         (WebCore::RenderBlock::leftmostPosition):
1855
1856 2007-05-10  Brady Eidson <beidson@apple.com>
1857
1858         Reviewed by Oliver
1859
1860         Fix for http://bugs.webkit.org/show_bug.cgi?id=13636 and <rdar://problem/5190816>
1861
1862         When creating the applets collection, be sure to only count Objects if they contain
1863         a java applet
1864
1865         * html/HTMLCollection.cpp:
1866         (WebCore::HTMLCollection::traverseNextItem): Add the qualifier for Objects that 
1867           containsJavaApplet() must be true
1868
1869         * html/HTMLObjectElement.cpp:
1870         (WebCore::HTMLObjectElement::containsJavaApplet): Check this Object element and inner
1871           nodes for any Java applets
1872         * html/HTMLObjectElement.h: 
1873
1874 2007-05-10  David Hyatt  <hyatt@apple.com>
1875
1876         Fix for:
1877
1878         <rdar://problem/4694859> SAP: HTML tags with overflow:hidden consume
1879         space on page, do not consume space in Firefox (11926)
1880
1881         http://bugs.webkit.org/show_bug.cgi?id=11926
1882
1883         Make sure that unreachable objects along one axis (e.g., top/left) do not
1884         contribute to the scrollable area in the opposite axis (e.g., right/bottom).
1885
1886         Reviewed by olliej
1887
1888         fast/overflow/unreachable-content-test.html
1889
1890         * rendering/RenderBlock.cpp:
1891         (WebCore::RenderBlock::lowestPosition):
1892         (WebCore::RenderBlock::rightmostPosition):
1893         (WebCore::RenderBlock::leftmostPosition):
1894
1895 2007-05-10  David Hyatt  <hyatt@apple.com>
1896
1897         Fix for:
1898
1899         <rdar://problem/4656825> REGRESSION: Japanese TV time table widget:
1900         part of the number in background has been cut off.
1901
1902         Now that opacity uses a tight bounding box to clip, we need to make sure
1903         to factor spillout caused by negative letter spacing into our right
1904         overflow.  Latch on to the code that does this already for text-stroke
1905         and text-shadow.
1906
1907         Reviewed by olliej
1908
1909         fast/text/letter-spacing-negative-opacity.html
1910
1911        * rendering/InlineFlowBox.cpp:
1912         (WebCore::InlineFlowBox::placeBoxesHorizontally):
1913
1914 2007-05-10  Geoffrey Garen  <ggaren@apple.com>
1915
1916         Reviewed by Maciej Stachowiak.
1917         
1918         More fix-ups to the WebScriptObject/WebScripting APIs, related to
1919         <rdar://problem/5140447> API for fetching JSGlobalContextRef from WebView 
1920         or WebFrame
1921
1922         * bindings/objc/WebScriptObject.h: Fully specified the surprising rules for
1923         type conversion between JavaScript and ObjC.
1924         * bindings/objc/WebScriptObject.mm: Added up-call accessor to WebFrame.
1925         This is kind of stinky, but I'm OK with it because eventually all of this
1926         code should move up into WebKit.
1927         (+[WebScriptObject scriptObjectForJSObject:frame:]):
1928         (-[WebScriptObject valueForKey:]):
1929         (-[WebScriptObject JSObject]): 
1930             - Added _rootObject check because if _rootObject returns NULL it means 
1931             that _imp is no longer GC protected, so it's not safe to use. 
1932             - Added _isSafeScript check because that's what WebScriptObject methods
1933             typically do, even though the value of doing so isn't clear to me.
1934         * bindings/objc/WebScriptObjectPendingPublic.h: Added WebFrame* parameter
1935         to -scriptObjectForJSObject:. This is required to wrap JS objects that
1936         are not already in the wrapper cache. It would be nice to remove this
1937         limitation of WebScriptObject some day.
1938         * page/mac/FrameMac.mm:
1939         (WebCore::Frame::cleanupPlatformScriptObjects): Force removal of m_windowScriptObject
1940         from the cache, to avoid retrieving the m_windowScriptObject from the previous
1941         page on a new page load. (It would be non-functional in that case.)
1942
1943 2007-05-10  David Hyatt  <hyatt@apple.com>
1944
1945         Fix for <rdar://problem/5183697>.
1946
1947         http://bugs.webkit.org/show_bug.cgi?id=13576
1948
1949         Make sure verticalPositionHint is not called on an inline-block from
1950         content inside the inline-block (like text).
1951
1952         Reviewed by olliej
1953
1954         fast/inline-block/inline-block-vertical-align.html
1955
1956         * rendering/RenderObject.cpp:
1957         (WebCore::RenderObject::verticalPositionHint):
1958         * rendering/RenderText.cpp:
1959         (WebCore::RenderText::verticalPositionHint):
1960         * rendering/RenderThemeMac.mm:
1961         (WebCore::RenderThemeMac::setFontFromControlSize):
1962
1963 2007-05-09  Holger Freyther <zecke@selfish.org>
1964
1965         Reviewed by Mark Rowe.
1966
1967         Gdk build fix with SVG enabled.  Stub out ImageBufferCairo.
1968
1969         * WebCore.pro: Build ImageBufferCairo.cpp
1970         * platform/graphics/cairo/ImageBufferCairo.cpp: Added.
1971         (WebCore::ImageBuffer::create):
1972         (WebCore::ImageBuffer::~ImageBuffer):
1973         (WebCore::ImageBuffer::context):
1974
1975 2007-05-08  Justin Garcia  <justin.garcia@apple.com>
1976
1977         Reviewed by darin
1978         
1979         <rdar://problem/5017613> Style changes don't effect fully selected ToDo content
1980
1981         * editing/ApplyStyleCommand.cpp:
1982         (WebCore::ApplyStyleCommand::applyInlineStyle):
1983         Use a for loop instead of while(1).
1984         Simplify loop termination using Range::pastEndNode.
1985         Don't handle the start.node() == end.node() case 
1986         specially, it's unnecessary.
1987         Apply the style change to fully selected plaintext-only
1988         regions, not with wrapper spans inside the region, but 
1989         by changing the element's inline style declaration.
1990         Don't descend into nodes whose children we should ignore.
1991
1992 2007-05-09  Adele Peterson  <adele@apple.com>
1993
1994         Reviewed by Hyatt.
1995
1996         Fix for <rdar://problem/5113578> REGRESSION: textfields that set the height but not the font 
1997         look different from IE & FF because the font is small
1998
1999         For plain text fields, don't stretch the inner text box.  Center it vertically in the field.
2000
2001         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::layout):
2002
2003 2007-05-09  Atul Mehrotra  <atul.mehrotra@celunite.com>
2004
2005         Gdk build fix.
2006
2007         * platform/gdk/TemporaryLinkStubs.cpp:
2008         (Editor::newGeneralClipboard):
2009
2010 2007-05-09  Mitz Pettel  <mitz@webkit.org>
2011
2012         Reviewed by Dave Hyatt.
2013
2014         - fix http://bugs.webkit.org/show_bug.cgi?id=13037
2015           REGRESSION: Copy-on-scroll not reset properly after back/forward navigation
2016
2017         * page/FrameView.cpp:
2018         (WebCore::FrameViewPrivate::FrameViewPrivate): Moved initialization of
2019         m_slowRepaintObjectCount here.
2020         (WebCore::FrameViewPrivate::reset): Do not reset the slow repaint object
2021         count here.
2022         (WebCore::FrameView::useSlowRepaints):
2023         (WebCore::FrameView::addSlowRepaintObject):
2024         (WebCore::FrameView::removeSlowRepaintObject): Added an assertion that the
2025         object count is positive.
2026         * rendering/RenderObject.cpp:
2027         (WebCore::RenderObject::setStyle): Corrected a mix up between old and new
2028         style, which caused the object count to be decremented when it was supposed
2029         to be incremented and vice versa.
2030
2031 2007-05-09  Peter Müller <pm@one.com>
2032
2033         Reviewed by Dave Hyatt.
2034
2035         Changed the hardcoded colors that are used for CSS 2.1 system colors.
2036         Previous colors had numerous conflicts in semantic pairs, which
2037         made text invisible in highlight, info and menu colored areas.
2038         The new hardcoded colors are inspired by Aqua.
2039
2040         Ideally these colors should be fetched through AppKit instead,
2041         though I am not sure if it is possible to make a 1:1 mapping
2042         between CSS2.1 system colors and Mac OS X.
2043
2044         * css/cssstyleselector.cpp:
2045         (WebCore::):
2046
2047 2007-05-09  Lars Knoll <lars@trolltech.com>
2048
2049         Fix the Qt build.
2050
2051         * editing/qt/EditorQt.cpp:
2052
2053 2007-05-08  Geoffrey Garen  <ggaren@apple.com>
2054
2055         Reviewed by Darin Adler.
2056         
2057         More fix-ups to the WebScriptObject/WebScripting APIs, related to
2058         <rdar://problem/5140447> API for fetching JSGlobalContextRef from WebView 
2059         or WebFrame
2060         
2061         1. Added -scriptObjectForJSObject: SPI so you can bridge back from JavaScriptCore
2062         to WebScriptObject.
2063         
2064         2. Fixed WebScriptObject bridging so that you always get the same WebScriptObject
2065         for a JSObject (like in the DOM). This makes -scriptObjectForJSObject: a
2066         lot more coherent as an API.
2067
2068         * bindings/objc/DOMInternal.mm: Renamed wrapperCache to DOMWrapperCache
2069         to distinguish from the JSWrapperCache. Added typedef for readability.
2070         (WebCore::getDOMWrapper):
2071         (WebCore::addDOMWrapper):
2072         (WebCore::removeDOMWrapper):
2073         * bindings/objc/WebScriptObject.mm: Added JSWrapperCache, which works just
2074         like the DOMWrapperCache.
2075         (WebCore::getJSWrapper):
2076         (WebCore::addJSWrapper):
2077         (WebCore::removeJSWrapper):
2078         (WebCore::createJSWrapper):
2079         (+[WebScriptObject scriptObjectForJSObject:]): This is the new API. It attempts
2080         to return a specific DOM wrapper object, or, barring that, it returns a 
2081         generic WebScriptObject.
2082         (+[WebScriptObject scriptObjectForJSObject:originRootObject:rootObject:]):
2083         Added this method to support our old WebScriptObject security and leak 
2084         checking model, even though it doesn't work very well. 
2085         (-[WebScriptObject _setImp:originRootObject:rootObject:]):
2086         (-[WebScriptObject dealloc]):
2087         (-[WebScriptObject finalize]):
2088         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
2089         * bindings/objc/WebScriptObjectPendingPublic.h:
2090         * bindings/objc/WebScriptObjectPrivate.h:
2091         * page/mac/FrameMac.mm:
2092         (WebCore::Frame::windowScriptObject): Changed to use the new API. This
2093         fixes a bug where the object sent to -windowScriptObjectAvailable: and returned
2094         from -windowScriptObject could not be round-tripped.
2095
2096 2007-05-09  Mark Rowe  <mrowe@apple.com>
2097
2098         Build fix.
2099
2100         * editing/Editor.cpp:
2101         (WebCore::findFirstGrammarDetailInRange): Use unsigned rather than int.
2102         (WebCore::findFirstBadGrammarInRange): Cast to unsigned in assertion.
2103         (WebCore::isRangeUngrammatical): Remove unused variables.
2104
2105 2007-05-08  Oliver Hunt  <oliver@apple.com>
2106
2107         Reviewed by Darin.
2108         
2109         Fix <rdar://problem/5188938> arc method on Canvas causes hang or crash
2110         
2111         Workaround bad behaviour of CGPathAddArc when passed inf as start or
2112         end angles.
2113
2114         * platform/graphics/cg/PathCG.cpp:
2115         (WebCore::Path::addArc):
2116
2117 2007-05-08  Darin Adler  <darin@apple.com>
2118
2119         Reviewed by Hyatt and Hatcher.
2120
2121         - fix auto-activation code path so Tiger and Leopard aren't different
2122
2123         * platform/mac/WebFontCache.mm: (+[WebFontCache fontWithFamily:traits:size:]):
2124         Do the auto-activation dance first before doing anything else, and ignore the
2125         font that it returns.
2126
2127 2007-05-08  Steve Falkenburg  <sfalken@apple.com>
2128
2129         Reviewed by Darin.
2130
2131         Moved most spelling/grammar logic to C++.  Now calls through to
2132         WebKit to actually invoke NSSpellChecker.
2133
2134         * editing/Editor.cpp:
2135         (WebCore::Editor::ignoreSpelling): Added (ported from EditorMac).
2136         (WebCore::Editor::learnSpelling): Added (ported from EditorMac).
2137         (WebCore::findFirstMisspellingInRange): Added (ported from EditorMac).
2138         (WebCore::paragraphAlignedRangeForRange): Added (ported from EditorMac).
2139         (WebCore::findFirstGrammarDetailInRange): Added (ported from EditorMac).
2140         (WebCore::findFirstBadGrammarInRange): Added (ported from EditorMac).
2141         (WebCore::Editor::advanceToNextMisspelling): Added (ported from EditorMac).
2142         (WebCore::Editor::isSelectionMisspelled): Added (ported from EditorMac).
2143         (WebCore::isRangeUngrammatical): Added (ported from EditorMac).
2144         (WebCore::Editor::isSelectionUngrammatical): Added (ported from EditorMac).
2145         (WebCore::Editor::guessesForUngrammaticalSelection): Added (ported from EditorMac).
2146         (WebCore::Editor::guessesForMisspelledSelection): Added (ported from EditorMac).
2147         (WebCore::Editor::showSpellingGuessPanel): Added (ported from EditorMac).
2148         (WebCore::Editor::spellingPanelIsShowing): Added (ported from EditorMac).
2149         (WebCore::Editor::markMisspellingsAfterTypingToPosition): Added (ported from EditorMac).
2150         (WebCore::markAllMisspellingsInRange): Added (ported from EditorMac).
2151         (WebCore::markAllBadGrammarInRange): Added (ported from EditorMac).
2152         (WebCore::markMisspellingsOrBadGrammar): Added (ported from EditorMac).
2153         (WebCore::Editor::markMisspellings): Added (ported from EditorMac).
2154         (WebCore::Editor::markBadGrammar): Added (ported from EditorMac).
2155         * editing/mac/EditorMac.mm: Removed Objective C version of spelling/grammar calls.
2156
2157 2007-05-08  Steve Falkenburg  <sfalken@apple.com>
2158
2159         Reviewed by Ada.
2160
2161         Slight modification to last editor method fix.
2162
2163         * bridge/EditorClient.h:
2164         * platform/gdk/EditorClientGdk.cpp:
2165         (WebCore::EditorClientGdk::updateSpellingUIWithGrammarString):
2166         * platform/gdk/EditorClientGdk.h:
2167         * platform/graphics/svg/SVGImageEmptyClients.h:
2168         (WebCore::SVGEmptyEditorClient::updateSpellingUIWithGrammarString):
2169
2170 2007-05-08  Alexey Proskuryakov  <ap@webkit.org>
2171
2172         Reviewed by Hyatt.
2173
2174         http://bugs.webkit.org/show_bug.cgi?id=13480
2175         window.Attr is undefined
2176
2177         Test: fast/dom/Window/attr-constructor.html
2178
2179         * dom/Attr.idl:
2180         * dom/CDATASection.idl:
2181         * dom/CharacterData.idl:
2182         * dom/Comment.idl:
2183         * dom/DOMImplementation.idl:
2184         * dom/DocumentType.idl:
2185         * dom/Entity.idl:
2186         * dom/EntityReference.idl:
2187         * dom/Notation.idl:
2188         * dom/ProcessingInstruction.idl:
2189         * dom/Text.idl:
2190         Added GenerateConstructor.
2191
2192         * page/DOMWindow.idl: Added constructor properties for DOM interfaces.
2193
2194 2007-05-07  Geoffrey Garen  <ggaren@apple.com>
2195
2196         Reviewed by Maciej Stachowiak.
2197
2198         Fixed <rdar://problem/5140447> API for fetching JSGlobalContextRef from 
2199         WebView or WebFrame
2200         
2201         Added support for new -[WebScriptObject JSObject] and -[WebFrame globalContext]
2202         APIs.
2203         
2204         Also fixed some more cases of <rdar://problem/4395622> API: 
2205         WebScriptObject.h incorrectly reports that -isSelectorExcludedFromWebScript 
2206         returns NO by default, and generally cleaned up that documentation.
2207
2208         * WebCore.exp: A lot of the diff here is from sorting.
2209         * WebCore.xcodeproj/project.pbxproj:
2210         * bindings/objc/WebScriptObject.h:
2211         * bindings/objc/WebScriptObject.mm:
2212         (-[WebScriptObject JSObject]):
2213         * bindings/objc/WebScriptObjectPendingPublic.h: Added.
2214
2215 2007-05-08  Lars Knoll <lars@trolltech.com>
2216
2217         Reviewed by Hyatt.
2218
2219         Fix valgrind reported uninitialized memory read.
2220
2221         * rendering/RenderText.cpp:
2222         (WebCore::RenderText::RenderText):
2223
2224 2007-05-07  Justin Garcia  <justin.garcia@apple.com>
2225
2226         Reviewed by oliver
2227
2228         <rdar://problem/4895428> Can't drag selected ToDo
2229         
2230         The user tries to drag a selection by mousing down
2231         on the editable part of a ToDo, which is focusable,
2232         since it is an editable node within non-editable 
2233         content.  But we focus focusable elements on mouse 
2234         down, and focusing the editable piece blows away 
2235         the selection and prevents the drag. This is how 
2236         IE behaves, but content seems generally difficult 
2237         to drag in IE, so this doesn't make it any worse.
2238         
2239         Since focus doesn't appear to be cancelable, either
2240         with a DOM event or an editing delegate, I fixed this
2241         by delaying the focus of focusable nodes that are 
2242         selected and inside an already focused node.  The 
2243         node will be focused if the user mouses up without 
2244         doing any dragging because the mouse up sets a
2245         selection, which calls setFocusNodeIfNeeded.
2246
2247         * page/EventHandler.cpp:
2248         (WebCore::EventHandler::dispatchMouseEvent):
2249
2250 2007-05-07  Atul Mehrotra <atul.mehrotra@celunite.com>
2251
2252         Reviewed by Maciej.
2253
2254         GDK Build fix
2255
2256         * platform/gdk/TemporaryLinkStubs.cpp:
2257
2258 2007-05-07  Oliver Hunt  <oliver@apple.com>
2259
2260         Reviewed by Maciej.
2261
2262         Correcting comparisons to handle NaN in the same manner
2263         as other Canvas methods.
2264
2265         * html/CanvasRenderingContext2D.cpp:
2266         (WebCore::CanvasRenderingContext2D::arcTo):
2267         (WebCore::CanvasRenderingContext2D::arc):
2268           Correcting arc/arcTo to match the WHAT WG draft.
2269         (WebCore::CanvasRenderingContext2D::rect):
2270         (WebCore::CanvasRenderingContext2D::clearRect):
2271         (WebCore::CanvasRenderingContext2D::fillRect):
2272         (WebCore::CanvasRenderingContext2D::strokeRect):
2273
2274 2007-05-07  David Hyatt  <hyatt@apple.com>
2275
2276         Add some comments to the glyph/font code (patch from MarvinD, tweaked by
2277         me to correct a few bits and to make it forward-compatible with the work
2278         going on in 3315.
2279
2280         Reviewed by me
2281
2282         * ChangeLog:
2283         * platform/Font.cpp:
2284         (WebCore::Font::glyphDataForCharacter):
2285         * platform/GlyphPageTreeNode.cpp:
2286         (WebCore::GlyphPageTreeNode::initializePage):
2287         * platform/GlyphPageTreeNode.h:
2288
2289 2007-05-07  Justin Garcia  <justin.garcia@apple.com>
2290
2291         Fix layout test failures.
2292
2293         * editing/SelectionController.cpp:
2294         (WebCore::SelectionController::contains): Use comparePositions
2295         instead of Range::comparePoint, because comparePositions can
2296         handle positions inside shadow trees.
2297
2298 2007-05-07  Justin Garcia  <justin.garcia@apple.com>
2299
2300         Reviewed by darin
2301         
2302         <rdar://problem/4895428> Can't drag selected To Do if it is not showing a due date
2303         
2304         The code in SelectionController::contains returned false 
2305         incorrectly if the selection end just after a table 
2306         and the position was inside that table.
2307
2308         * editing/SelectionController.cpp:
2309         (WebCore::SelectionController::contains): Compare the position with the
2310         ends of the selection and then use Range::comparePoint.
2311
2312 2007-05-07  Darin Adler  <darin@apple.com>
2313
2314         - rolling out setInnerHTML optimization until I can figure out why tests are failing
2315
2316 2007-05-07  Darin Adler  <darin@apple.com>
2317
2318         Reviewed by Hyatt.
2319
2320         - fix http://bugs.webkit.org/show_bug.cgi?id=13602
2321           Amazon product pages keep repainting over and over again
2322
2323         Optimize setInnerHTML, setOuterHTML, and setInnerText so they don't change the DOM at all
2324         if they don't need to.
2325
2326         Test: fast/dom/HTMLElement/set-inner-outer-optimization.html
2327
2328         * html/HTMLElement.cpp:
2329         (WebCore::equal): Added. Helper function that compares two Text nodes or two NamedAttrMap
2330         attribute maps.
2331         (WebCore::shallowEqual): Added. Helper function that compares two Element nodes or two
2332         arbitrary nodes.
2333         (WebCore::replaceChildrenWithFragment): Added. Helper function used by setInnerHTML and
2334         setInnerText. Optimizes the cases where all the nodes are the same, where both the current
2335         and the new content are single text nodes, and where the current content is a single node
2336         that can be replaced with replaceChild.
2337         (WebCore::replaceChildrenWithText): Added. Helper function used by setInnerText. Optimizes
2338         the case where the current content is a single text node or a single node that can be
2339         replaced with replaceChild.
2340         (WebCore::HTMLElement::setInnerHTML): Changed to call replaceChildrenWithFragment.
2341         (WebCore::HTMLElement::setOuterHTML): Added special case to optimize when the new content
2342         exactly matches the current node.
2343         (WebCore::HTMLElement::setInnerText): Changed to call replaceChildrenWithText in a few
2344         cases instead of doing removeChildren/appendChild. Changed code that was using
2345         DeprecatedString to instead use String. Changed general case to use a document fragment
2346         and replaceChildrenWithFragment.
2347
2348         * dom/CharacterData.cpp: (WebCore::CharacterData::dispatchModifiedEvent):
2349         Fixed bug where we would not dispatch the DOMSubtreeModified event unless someone
2350         was registered for the DOMCharacterDataModified event. Caused trouble in the test.
2351
2352 2007-05-06  Darin Adler  <darin@apple.com>
2353
2354         - blind try at fixing the Qt build
2355
2356         * platform/qt/TextBreakIteratorQt.cpp: (WebCore::sentenceBreakIterator):
2357         Added a placeholder.
2358
2359 2007-05-06  Darin Adler  <darin@apple.com>
2360
2361         Reviewed by Hyatt.
2362
2363         - fix http://bugs.webkit.org/show_bug.cgi?id=13537
2364           Canvex example starts rendering strangely after a while
2365
2366         * html/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::drawImage):
2367         Don't raise an exception if the source or destination rectangle is empty.
2368
2369 2007-05-06  Darin Adler  <darin@apple.com>
2370
2371         Reviewed by Hyatt.
2372
2373         - fix <rdar://problem/4585593> REGRESSION: Some 2-byte characters in printed page
2374           header are drawn with too-large font and clipped
2375
2376         Doesn't affect text within web pages, so no layout test.
2377
2378         * platform/mac/FontCacheMac.mm: (WebCore::FontCache::getFontDataForCharacters):
2379         Base the substitute font on the FontPlatformData rather than the FontDescription.
2380         Before, it was a mix of both. This works properly for fonts where we have no
2381         FontDescription and is also more internally consistent.
2382
2383 2007-05-06  Darin Adler  <darin@apple.com>
2384
2385         Reviewed by Hyatt.
2386
2387         - http://bugs.webkit.org/show_bug.cgi?id=13606
2388           some functions are virtual that don't need to be
2389
2390         * dom/Node.h: Made first/lastChild be inline functions that call virtual functions.
2391         This lets us hide the functions with another inline function in a derived class,
2392         yet still override the behavior here in the base class by overriding the virtual
2393         functions too.
2394         * dom/Node.cpp:
2395         (WebCore::Node::virtualFirstChild): Renamed virtual functions. There are now
2396         non-virtual inline functions that call these virtual functions.
2397         (WebCore::Node::virtualLastChild): Ditto.
2398
2399         * dom/ContainerNode.h: Added non-virtual first/lastChild functions that hide the ones
2400         inherited from the Node class; these also replace the fastFirst/LastChild functions,
2401         and transparently give callers the faster form if they have a pointer of the right
2402         type. But still override the virtual functions named virtualFirst/LastChild, because
2403         those can still be called through a Node*. Removed the "fast" from the names of
2404         fastSetFirst/LastChild.
2405         * dom/ContainerNode.cpp:
2406         (WebCore::ContainerNode::virtualFirstChild): Renamed virtual functions. There are now
2407         also non-virtual inline versions.
2408         (WebCore::ContainerNode::virtualLastChild): Ditto.
2409
2410         * dom/CharacterData.cpp: Removed implementations of data and length functons.
2411         * dom/CharacterData.h: Made data, setData, length, substringData, appendData,
2412         insertData, deleteData, and replaceData all non-virtual, and made data and length
2413         both be inline.
2414
2415         * dom/NamedAttrMap.h: (WebCore::NamedAttrMap::attributeItem): Removed a null check
2416         from this function. If the length of the map is known to be greater than 0, then
2417         the null check isn't needed. But if the length of the map hasn't been checked at all,
2418         then it's unsafe to call this function since it doesn't range check the array
2419         index. Thus the null check is never needed. I also looked at all callers.
2420
2421         * dom/Attr.cpp: (WebCore::Attr::createTextChild):
2422         * dom/Document.cpp: (WebCore::Document::recalcStyle):
2423         * dom/Element.cpp: (WebCore::Element::recalcStyle):
2424         * ksvg2/svg/SVGElement.cpp:
2425         (WebCore::SVGElement::haveLoadedRequiredResources):
2426         Removed "fast" prefix from calls to fastFirst/LastChild and fastSetFirst/LastChlld.
2427         It's not needed any more -- you still get fast behavior if the pointer has a type
2428         that's ContainerNode or derived from it.
2429
2430 2007-05-06  Mitz Pettel  <mitz@webkit.org>
2431
2432         Reviewed by Hyatt.
2433
2434         - fix http://bugs.webkit.org/show_bug.cgi?id=13557
2435           Crash when dragging selection over absolutely positioned generated content on block element
2436
2437         Test: fast/css-generated-content/positioned-background-hit-test-crash.html
2438
2439         * rendering/RenderLayer.cpp:
2440         (WebCore::RenderLayer::enclosingElement): Added. Factored out of hitTestLayer().
2441         (WebCore::RenderLayer::hitTestLayer): Implemented the fix for <rdar://problem/3552346>
2442         from r6106 to the self hit test as well, namely: return the enclosing element
2443         for generated positioned content.
2444         * rendering/RenderLayer.h:
2445
2446 2007-05-06  Alexey Proskuryakov  <ap@webkit.org>
2447
2448         Reviewed by Darin.
2449
2450         http://bugs.webkit.org/show_bug.cgi?id=13584
2451         <script> code wrongly assumes requests can't fail
2452
2453         Test: fast/loader/unloadable-script.html
2454
2455         * html/HTMLScriptElement.cpp:
2456         (WebCore::HTMLScriptElement::parseMappedAttribute):
2457         (WebCore::HTMLScriptElement::insertedIntoDocument):
2458         Check the return value of requestScript().
2459
2460 2007-05-06  Alexey Proskuryakov  <ap@webkit.org>
2461
2462         Reviewed by Darin.
2463
2464         http://bugs.webkit.org/show_bug.cgi?id=13304
2465         REGRESSION(14784): WebKit doesn't dynamically reflect changes to the highlight color in System Preferences
2466
2467         Implemented a notification observer that invalidates cached system colors.
2468
2469         No automated test possible.
2470
2471         * rendering/RenderTheme.cpp:
2472         (WebCore::RenderTheme::activeSelectionBackgroundColor):
2473         (WebCore::RenderTheme::inactiveSelectionBackgroundColor):
2474         (WebCore::RenderTheme::platformColorsDidChange):
2475         * rendering/RenderTheme.h:
2476         * rendering/RenderThemeMac.h:
2477         * rendering/RenderThemeMac.mm:
2478         (-[WebCoreRenderThemeNotificationObserver initWithTheme:WebCore::]):
2479         (-[WebCoreRenderThemeNotificationObserver systemColorsDidChange:]):
2480         (WebCore::theme):
2481         (WebCore::RenderThemeMac::RenderThemeMac):
2482         (WebCore::RenderThemeMac::~RenderThemeMac):
2483         (WebCore::RenderThemeMac::checkbox):
2484         (WebCore::RenderThemeMac::radio):
2485         (WebCore::RenderThemeMac::button):
2486         (WebCore::RenderThemeMac::popupButton):
2487         (WebCore::RenderThemeMac::search):
2488         (WebCore::RenderThemeMac::sliderThumbHorizontal):
2489         (WebCore::RenderThemeMac::sliderThumbVertical):
2490
2491 2007-05-05  Rob Buis  <buis@kde.org>
2492
2493         Reviewed by Oliver.
2494
2495         http://bugs.webkit.org/show_bug.cgi?id=13592
2496         parseMappedAttribute inconsistency
2497
2498         Do not use local vars in parseMappedAttribute for attr name and value.
2499
2500         * ksvg2/svg/SVGAnimateMotionElement.cpp:
2501         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
2502         * ksvg2/svg/SVGAnimateTransformElement.cpp:
2503         (WebCore::SVGAnimateTransformElement::parseMappedAttribute):
2504         * ksvg2/svg/SVGAnimationElement.cpp:
2505         (WebCore::SVGAnimationElement::parseMappedAttribute):
2506         * ksvg2/svg/SVGCircleElement.cpp:
2507         (WebCore::SVGCircleElement::parseMappedAttribute):
2508         * ksvg2/svg/SVGClipPathElement.cpp:
2509         (WebCore::SVGClipPathElement::parseMappedAttribute):
2510         * ksvg2/svg/SVGCursorElement.cpp:
2511         (WebCore::SVGCursorElement::parseMappedAttribute):
2512         * ksvg2/svg/SVGEllipseElement.cpp:
2513         (WebCore::SVGEllipseElement::parseMappedAttribute):
2514         * ksvg2/svg/SVGExternalResourcesRequired.cpp:
2515         (WebCore::SVGExternalResourcesRequired::parseMappedAttribute):
2516         * ksvg2/svg/SVGGradientElement.cpp:
2517         (WebCore::SVGGradientElement::parseMappedAttribute):
2518         * ksvg2/svg/SVGImageElement.cpp:
2519         (WebCore::SVGImageElement::parseMappedAttribute):
2520         * ksvg2/svg/SVGLineElement.cpp:
2521         (WebCore::SVGLineElement::parseMappedAttribute):
2522         * ksvg2/svg/SVGLinearGradientElement.cpp:
2523         (WebCore::SVGLinearGradientElement::parseMappedAttribute):
2524         * ksvg2/svg/SVGMarkerElement.cpp:
2525         (WebCore::SVGMarkerElement::parseMappedAttribute):
2526         * ksvg2/svg/SVGMaskElement.cpp:
2527         (WebCore::SVGMaskElement::parseMappedAttribute):
2528         * ksvg2/svg/SVGPathElement.cpp:
2529         (WebCore::SVGPathElement::parseMappedAttribute):
2530         * ksvg2/svg/SVGPatternElement.cpp:
2531         (WebCore::SVGPatternElement::parseMappedAttribute):
2532         * ksvg2/svg/SVGRadialGradientElement.cpp:
2533         (WebCore::SVGRadialGradientElement::parseMappedAttribute):
2534         * ksvg2/svg/SVGRectElement.cpp:
2535         (WebCore::SVGRectElement::parseMappedAttribute):
2536         * ksvg2/svg/SVGSVGElement.cpp:
2537         (WebCore::SVGSVGElement::parseMappedAttribute):
2538         * ksvg2/svg/SVGScriptElement.cpp:
2539         (WebCore::SVGScriptElement::parseMappedAttribute):
2540         * ksvg2/svg/SVGStopElement.cpp:
2541         (WebCore::SVGStopElement::parseMappedAttribute):
2542         * ksvg2/svg/SVGTests.cpp:
2543         (WebCore::SVGTests::parseMappedAttribute):
2544         * ksvg2/svg/SVGTextContentElement.cpp:
2545         (WebCore::SVGTextContentElement::parseMappedAttribute):
2546         * ksvg2/svg/SVGTextPositioningElement.cpp:
2547         (WebCore::SVGTextPositioningElement::parseMappedAttribute):
2548         * ksvg2/svg/SVGUseElement.cpp:
2549         (WebCore::SVGUseElement::parseMappedAttribute):
2550         * ksvg2/svg/SVGViewElement.cpp:
2551         (WebCore::SVGViewElement::parseMappedAttribute):
2552         * ksvg2/svg/SVGZoomAndPan.cpp:
2553         (WebCore::SVGZoomAndPan::parseMappedAttribute):
2554
2555 2007-05-05  Oliver Hunt  <oliver@apple.com>
2556
2557         Reviewed by Hyatt.
2558
2559         Initialise default fill with Color::black rather than parsing
2560         the string "black"
2561
2562         * ksvg2/svg/SVGPaint.cpp:
2563         (WebCore::SVGPaint::defaultFill):
2564
2565 2007-05-04  Steve Falkenburg  <sfalken@apple.com>
2566
2567         Reviewed by Oliver.
2568
2569         Use TextBreakIterator for sentence breaking instead of TextBoundaries.
2570
2571         * WebCore.xcodeproj/project.pbxproj: Added TextBreakIeratorInternalICUMac.mm
2572         * editing/visible_units.cpp:
2573         (WebCore::startSentenceBoundary): Call TextBreakIterator instead of TextBoundaries.
2574         (WebCore::endSentenceBoundary): Call TextBreakIterator instead of TextBoundaries.
2575         (WebCore::previousSentencePositionBoundary): Call TextBreakIterator instead of TextBoundaries.
2576         (WebCore::nextSentencePositionBoundary): Call TextBreakIterator instead of TextBoundaries.
2577         * platform/TextBoundaries.h: Removed findSentenceBoundary, findNextSentenceFromIndex.
2578         * platform/TextBreakIterator.h: Added sentenceBreakIterator.
2579         * platform/TextBreakIteratorICU.cpp:
2580         (WebCore::setUpIterator): Add locale parameter (needed to maintain functionality that TextBoundaries code had).
2581         (WebCore::characterBreakIterator): Pass en_us for locale (same as old code).
2582         (WebCore::wordBreakIterator): Pass en_us for locale (same as old code).
2583         (WebCore::lineBreakIterator): Pass en_us for locale (same as old code).
2584         (WebCore::sentenceBreakIterator): Added.
2585         * platform/TextBreakIteratorInternalICU.h: Added.
2586         * platform/gdk/TemporaryLinkStubs.cpp: Removed findNextSentenceFromIndex, findSentenceBoundary.
2587         (WebCore::currentTextBreakLocaleID): Added stub.
2588         * platform/mac/TextBoundaries.mm: Removed currentTextBreakLocaleID, findSentenceBoundary, findNextSentenceFromIndex.
2589         * platform/mac/TextBreakIteratorInternalICUMac.mm: Added.
2590         (WebCore::currentTextBreakLocaleID): Moved from TextBoundaries.mm
2591         * platform/qt/TextBoundaries.cpp: Removed findNextSentenceFromIndex, findSentenceBoundary.
2592
2593 2007-05-04  Adele Peterson  <adele@apple.com>
2594
2595         Reviewed by Hyatt.
2596
2597         Fix for <rdar://problem/5116871> REGRESSION: Can't select options in widget's listbox
2598
2599         Don't use user-select to determine whether or not options can be selected in listboxes.
2600         This will match Firefox behavior for -moz-user-select.
2601
2602         * html/HTMLSelectElement.cpp:
2603         (WebCore::HTMLSelectElement::canSelectAll):
2604         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
2605
2606 2007-05-04  Geoffrey Garen  <ggaren@apple.com>
2607
2608         Reviewed by Tim Hatcher.
2609
2610         First step in fixing <rdar://problem/5055182> The back cache has no global cap
2611
2612         Stop giving SnapBack infinite cache-ability. Instead, make SnapBack rely
2613         on the underlying back cache.
2614
2615         * WebCore.exp:
2616         * history/HistoryItem.cpp:
2617         (WebCore::HistoryItem::HistoryItem):
2618         * history/HistoryItem.h:
2619         * loader/FrameLoader.cpp:
2620         (WebCore::FrameLoader::purgePageCache):
2621
2622 2007-05-04  Geoffrey Garen  <ggaren@apple.com>
2623
2624         Reviewed by Brady Eidson.
2625         
2626         Removed export of clearPageCache(), since it was unused externally. I plan
2627         to remove its use from WebCore eventually, too.
2628
2629         Removed usesPageCache(), since it was unused and it duplicated pageCacheSize().
2630
2631         * WebCore.exp:
2632         * history/BackForwardList.cpp:
2633         * history/BackForwardList.h: Moved statics to the top of the class definition.
2634         * loader/FrameLoader.cpp:
2635         (WebCore::FrameLoader::canCachePage):
2636
2637 2007-05-04  Anders Carlsson  <andersca@apple.com>
2638
2639         Reviewed by Antti.
2640
2641         <rdar://problem/5179977> Use the correct URLs when dispatching delegate methods for data loads.
2642
2643         Restore behavior to matching release WebKit by adding a response URL to SubstituteData. If a nil base URL is
2644         passed, set the _request_ URL to "about:blank", but the response URL to a generated "applewebdata" URL.
2645
2646         * loader/FrameLoader.cpp:
2647         (WebCore::FrameLoader::commitProvisionalLoad):
2648         First, check for the SubstituteData's response URL.
2649
2650         (WebCore::FrameLoader::continueAfterNavigationPolicy):
2651         No need to special case applewebdata URLs here, they're only used in the response.
2652
2653         * loader/MainResourceLoader.cpp:
2654         (WebCore::MainResourceLoader::handleDataLoadNow):
2655         If the substitute data has a response URL, use it.
2656
2657         (WebCore::MainResourceLoader::loadNow):
2658         Only load "about:blank" as an empty document if there's no substitute data.
2659
2660         * loader/SubstituteData.h:
2661         (WebCore::SubstituteData::SubstituteData):
2662         (WebCore::SubstituteData::responseURL):
2663         Add responseURL member to SubstituteData.
2664
2665 2007-05-03  Steve Falkenburg  <sfalken@apple.com>
2666
2667         Reviewed by Oliver.
2668
2669         Add missing user description parameter to spelling-related editor client method.
2670
2671         * bridge/EditorClient.h:
2672         * platform/gdk/EditorClientGdk.cpp:
2673         (WebCore::EditorClientGdk::updateSpellingUIWithGrammarString):
2674         * platform/gdk/EditorClientGdk.h:
2675         * platform/graphics/svg/SVGImageEmptyClients.h:
2676         (WebCore::SVGEmptyEditorClient::updateSpellingUIWithGrammarString):
2677
2678 2007-05-03  Brady Eidson  <beidson@apple.com>
2679
2680         Reviewed by Oliver
2681
2682         Resolve an outstanding FIXME in Loader::numRequests()
2683
2684         Before, numRequests() would iterate through the list of requests pending load and the list of currently
2685         loading requests and tally up a count matching the current DocLoader.
2686
2687         I noticed while studying and cleaning up the loader code that numRequests() is potentially very hot!
2688         Indeed load a complex site with many resources and multiple frames, and this method gets called very often,
2689         tallying up this number every time.
2690
2691         The FIXME was to keep a collection of Requests mapped to each DocLoader.  In reality, since this map would
2692         simply be used for retrieving a count, that was overkill.  Keeping a request count in the DocLoader itself
2693         along with maintaining that count in Loader as requests come and go is a much better way to do this.
2694
2695         * loader/DocLoader.cpp:
2696         (WebCore::DocLoader::DocLoader):
2697         (WebCore::DocLoader::incrementRequestCount):
2698         (WebCore::DocLoader::decrementRequestCount):
2699         (WebCore::DocLoader::requestCount): Emulate the defunct Loader::numRequests()
2700         * loader/DocLoader.h:
2701
2702         * loader/FrameLoader.cpp:
2703         (WebCore::numRequests): Call DocLoader::requestCount() directly
2704         (WebCore::FrameLoader::checkCompleted): Use numRequests()
2705
2706         * loader/loader.cpp:
2707         (WebCore::Loader::load): Increment the DocLoader's request count
2708         (WebCore::Loader::servePendingRequests): If the SubresourceLoader failed to create, decrement the count
2709         (WebCore::Loader::didFinishLoading): If the Request is not Multipart, decrement the count
2710         (WebCore::Loader::didFail): If the Request is not Multipart, decrement the count
2711         (WebCore::Loader::didReceiveResponse): If the Request becomes Multipart, decrement the count
2712         (WebCore::Loader::cancelRequests): Decrement the count for the pending requests being tossed, and ASSERT the
2713           count is zero after all requests have been cancelled
2714         * loader/loader.h:
2715
2716 2007-05-03  Geoffrey Garen  <ggaren@apple.com>
2717
2718         Reviewed by Brady Eidson.
2719         
2720         Some cleanup in preparation for fixing <rdar://problem/5055182> The 
2721         back/forward cache has no global cap
2722
2723         * loader/FrameLoader.cpp:
2724         (WebCore::FrameLoader::provisionalLoadStarted): Moved "Can I cache this
2725         page?" logic to canCachePage(). Moved "I am caching this page" logic to
2726         cachePageToHistoryItem().
2727         (WebCore::FrameLoader::canCachePage): Moved above logic here.
2728         (WebCore::FrameLoader::cachePageToHistoryItem): Removed bogus NULL check
2729         and failure return value. Moved above logic here. Don't call setCachedPage()
2730         until the CachedPage is fully constructed.
2731         (WebCore::FrameLoader::purgePageCache): Removed comment that duplicated
2732         the function name.
2733         * loader/FrameLoader.h:
2734
2735 2007-05-03  Justin Garcia  <justin.garcia@apple.com>
2736
2737         Reviewed by harrison.
2738
2739         <rdar://problem/5120281> CrashTracer: [USER] 1 crash in Mail at WebCore::CSSComputedStyleDeclaration::copyInheritableProperties() const
2740
2741         Problem is that checkAncestor and lastClosed can be nil when createMarkup is called unrendered nodes, and that was not checked for.
2742         
2743         * editing/markup.cpp:
2744         (WebCore::createMarkup):
2745         Nil-check checkAncestor and lastClosed.
2746
2747 2007-05-03  Timothy Hatcher  <timothy@apple.com>
2748
2749         Reviewed by Kevin.
2750
2751         <rdar://problem/5016318> Contextual menu item for opening links is missing in compose windows but present in viewer
2752
2753         Add the Open Link, Open Link in New Window, Download Linked File and Copy Link menu
2754         items to the content editable context menu.
2755
2756         * platform/ContextMenu.cpp:
2757         (WebCore::ContextMenu::populate):
2758
2759 2007-05-03  Holger Freyther <freyther@kde.org>
2760
2761         Reviewed by Zack, landed by Simon.
2762         This is bugzilla bug 13499.
2763
2764         * WebCore.pro: Place the Qt port into the qt-port scope, add the Gdk port
2765
2766 2007-05-03  Adele Peterson  <adele@apple.com>
2767
2768         Use BUILDING_ON_TIGER.
2769
2770         * page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry):
2771
2772 2007-05-03  Brady Eidson  <beidson@apple.com>
2773
2774         Reviewed by Darin
2775
2776         Some more minor cleanup that resolves a FIXME and ditches another pointless method
2777
2778         No change in functionality == no layout test
2779
2780         * loader/FrameLoader.cpp:
2781         (WebCore::FrameLoader::commitProvisionalLoad):  Updated a comment
2782         (WebCore::FrameLoader::continueLoadAfterWillSubmitForm): Folded startLoading() into this method
2783         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): continueAfterWillSubmitForm becomes continueLoadAfterWillSubmitForm
2784         * loader/FrameLoader.h: Removed startLoading()
2785
2786 2007-05-03  Adele Peterson  <adele@apple.com>
2787
2788         Reviewed by Tim Hatcher.
2789
2790         Fix for <rdar://problem/4727607> REGRESSION: KeyScript is deprecated, need a new solution for forcing Roman input for password fields on Leopard
2791
2792         * page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry):
2793         Use TSMSetDocumentProperty and TSMRemoveDocumentProperty on Leopard disable and enable non-ascii input sources.
2794
2795 2007-05-03  Brady Eidson  <beidson@apple.com>
2796
2797         Reviewed by Anders
2798
2799         commitProvisionalLoad() was the name of two methods.
2800         One of them was private and only called from one other private place.
2801         This was driving me crazy.  I had to change that.
2802
2803         No change in functionality == no layout test
2804
2805         * loader/FrameLoader.cpp:
2806         (WebCore::FrameLoader::transitionToCommitted): roll commitProvisionalLoad() into this method
2807         * loader/FrameLoader.h: Removed commitProvisionalLoad()
2808
2809 2007-05-03  Darin Adler  <darin@apple.com>
2810
2811         Reviewed by Anders.
2812
2813         - make ICU initialization lazy to speed up application start-up time
2814           (when it includes an initial webpage load)
2815
2816         * platform/TextCodecICU.h: Replaced registerEncodingNames and
2817         registerCodecs with registerBaseEncodingNames, registerBaseCodecs,
2818         registerExtendedEncodingNames, and registerExtendedCodecs.
2819         * platform/TextCodecICU.cpp:
2820         (WebCore::newTextCodecICU): Moved up to the top of the file.
2821         (WebCore::TextCodecICU::registerBaseEncodingNames): Added. Registers
2822         just UTF-8.
2823         (WebCore::TextCodecICU::registerBaseCodecs): Ditto.
2824         (WebCore::TextCodecICU::registerExtendedEncodingNames): Renamed.
2825         (WebCore::TextCodecICU::registerExtendedCodecs): Ditto.
2826         (WebCore::TextCodecICU::createICUConverter): Compare with the name
2827         "GBK" in a way that does not require extending the maps.
2828
2829         * platform/TextEncoding.cpp:
2830         (WebCore::TextEncoding::usesVisualOrdering): Added code so this will
2831         just return false if we haven't used any extended encoding names yet.
2832         The result will be correct, and we won't ask for an encoding name that
2833         will require registering the extended encoding names.
2834         (WebCore::TextEncoding::isJapanese): Ditto.
2835         (WebCore::TextEncoding::backslashAsCurrencySymbol): Ditto, but return
2836         a backslash instead of false.
2837
2838         * platform/TextEncodingRegistry.h: Added a new function named
2839          noExtendedTextEncodingNameUsed.
2840         * platform/TextEncodingRegistry.cpp:
2841         (WebCore::buildBaseTextCodecMaps): Added. Registers the base encodings,
2842         including Latin-1 because it's the default, and the UTF encodings.
2843         (WebCore::extendTextCodecMaps): Added. Registers all the other encodings.
2844         (WebCore::newTextCodec): Removed the all to buildTextCodecMap because
2845         we always build the map when making the canonical encoding name.
2846         (WebCore::atomicCanonicalTextEncodingName): Changed code to build only
2847         the base maps at first, then extend the maps the first time we run into
2848         a name we don't know.
2849         (WebCore::noExtendedTextEncodingNameUsed): Added.
2850
2851 2007-05-03  Mark Rowe  <mrowe@apple.com>
2852
2853         Qt build fix.  In r21185 the Qt version of WebCore::scaleDragImage was
2854         updated to have the incorrect signature.
2855
2856         * platform/qt/DragImageQt.cpp:
2857         (WebCore::scaleDragImage):
2858
2859 2007-05-02  Beth Dakin  <bdakin@apple.com>
2860
2861         * dom/Node.h: Just fixing a variable name because it's driving me 
2862         mad.
2863
2864 2007-05-02  Beth Dakin  <bdakin@apple.com>
2865
2866         Reviewed by Hyatt.
2867
2868         Fix for <rdar://problem/4513966> Never-ending identical repaint @ 
2869         orbitz.com (Safari eating 85% CPU)
2870
2871         We need to be a little bit more savvy about when we do a FULL style 
2872         recalc since it can be unnecessary and expensive.
2873
2874         * css/CSSMutableStyleDeclaration.cpp:
2875         (WebCore::CSSMutableStyleDeclaration::setChanged): Now takes a 
2876         StyleChangeType as a parameter.
2877         (WebCore::CSSMutableStyleDeclaration::setProperty): Send 
2878         InlineStyleChange as the paramter. This is the optimization!
2879         * css/CSSMutableStyleDeclaration.h: setChanged takes a 
2880         StyleChangeType as a parameter.
2881         * dom/Document.cpp: setChanged now takes a StyleChangeType instead 
2882         of a bool.
2883         (WebCore::Document::recalcStyle): Same.
2884         * dom/Element.cpp: 
2885         (WebCore::Element::recalcStyle): This is the fix!! Only set change 
2886         to Force is we use descendant rules AND it's a FullStyleChange.
2887         * dom/Node.cpp: m_hasStyle was an unused bit on Node, so this patch 
2888         gets rid of it and uses that extra bit for m_changed to be a 
2889         StyleChangeType instead of a bool.
2890         (WebCore::Node::Node):
2891         (WebCore::Node::setChanged):
2892         (WebCore::Node::dump):
2893         * dom/Node.h: Same.
2894         (WebCore::): Define the StyleChangeType enum.
2895         (WebCore::Node::hasClass):
2896         (WebCore::Node::changed):
2897         (WebCore::Node::styleChangeType):
2898         (WebCore::Node::setHasClass):
2899         * dom/StyledElement.cpp:
2900         (WebCore::StyledElement::parseMappedAttribute): Don't bother 
2901         calling setHasStyle() since m_hasStyle is gone now. It was never 
2902         used, and this was the only place it was set.
2903         * dom/Text.cpp:
2904         (WebCore::Text::recalcStyle): setChanged now takes a 
2905         StyleChangeType instead of a bool.
2906         * html/HTMLFrameSetElement.cpp:
2907         (WebCore::HTMLFrameSetElement::recalcStyle): Same.
2908         * html/HTMLSelectElement.cpp:
2909         (WebCore::HTMLSelectElement::restoreState): Same.
2910         (WebCore::HTMLSelectElement::reset): Same.
2911         * html/HTMLTextAreaElement.cpp:
2912         (WebCore::HTMLTextAreaElement::setValue): Same.
2913         * ksvg2/misc/SVGTimer.cpp:
2914         (WebCore::SVGTimer::applyAnimations): Same.
2915         * ksvg2/svg/SVGUseElement.cpp:
2916         (WebCore::SVGUseElement::recalcStyle): Same.
2917         * platform/graphics/svg/SVGResource.cpp:
2918         (WebCore::SVGResource::repaintClients): Same.
2919
2920 2007-05-02  David Harrison  <harrison@apple.com>
2921
2922         Reviewed by Antti.
2923
2924         <rdar://problem/4859132> Grammar must always be checked in entire-sentence chunks, and shouldn't show markers for current sentence
2925
2926         Restore the remainder of the original fix now that blocking bug rdar://5174862 is addressed.
2927
2928         John made the original patch on 2007-04-10, but this fell prey to rdar://5157329.
2929         Justin backed out the whole patch on 2007-04-30 to avoid the crash.
2930         Justin then restored most of the original patch, but used word granularity instead, to keep the build working.
2931         I just addressed the root cause of rdar://5157329 in rdar://5174862.
2932         This patch switches the temp uses of word granularity back to sentence granularity.
2933         
2934         * editing/mac/EditorMac.mm:
2935         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
2936         * page/Frame.cpp:
2937         (WebCore::Frame::respondToChangedSelection):
2938
2939 2007-05-02  David Harrison  <harrison@apple.com>
2940
2941         Reviewed by Antti.
2942
2943         <rdar://problem/5174862> Crash resulting from DeprecatedString::insert()
2944         
2945         Test added: editing/selection/move-by-sentence-001.html
2946
2947         * editing/visible_units.cpp:
2948         (WebCore::previousBoundary):
2949         (WebCore::nextBoundary):
2950         Use a UChar Vector instead of DeprecatedString.
2951         Avoid creating an extra string for secure bullet replacement unless it is actually needed.
2952         
2953         * platform/DeprecatedString.cpp:
2954         (WebCore::DeprecatedString::insert):
2955         Call forceUnicode() before setLength(), so that only the unicode buffer is resized.
2956
2957        (WebCore::DeprecatedString::setLength):
2958         Adjust the unicode buffer even if the ascii buffer is valid.
2959         
2960 2007-05-02  Mitz Pettel  <mitz@webkit.org>
2961
2962         Reviewed by Brady.
2963
2964         - http://bugs.webkit.org/show_bug.cgi?id=13564
2965           Remove friend class FrameLoader from Frame
2966
2967         No test added since there is no change in functionality.
2968
2969         * loader/FrameLoader.cpp:
2970         (WebCore::FrameLoader::didOpenURL):
2971         (WebCore::FrameLoader::begin):
2972         (WebCore::FrameLoader::open):
2973         * loader/FrameLoader.h: Made clear() private.
2974         * page/Frame.cpp:
2975         (WebCore::Frame::setDocument): Changed the argument into a PassRefPtr.
2976         * page/Frame.h:
2977         * xml/XSLTProcessor.cpp:
2978         (WebCore::XSLTProcessor::createDocumentFromSource):
2979
2980 2007-05-02  Mitz Pettel  <mitz@webkit.org>
2981
2982         Reviewed by Dave Hyatt.
2983
2984         - fix http://bugs.webkit.org/show_bug.cgi?id=9276
2985           Quirksmode: Image swap resize bug
2986
2987         Test: fast/replaced/image-resize-width.html
2988
2989         * rendering/RenderImage.cpp:
2990         (WebCore::RenderImage::imageChanged): Moved the call to dirtyPrefWidths()
2991         before the call to calcWidth().
2992
2993 2007-05-02  David Hyatt  <hyatt@apple.com>
2994
2995         Fix for bug 13566, broken Dashboard widgets.  setPrefWidthsDirty did
2996         the wrong thing for text children of a positioned element.
2997
2998         Reviewed by mitz
2999
3000         fast/block/positioning/pref-width-change.html
3001
3002         * rendering/RenderObject.cpp:
3003         (WebCore::RenderObject::setPrefWidthsDirty):
3004
3005 2007-05-01  Darin Adler  <darin@apple.com>
3006
3007         * rendering/RenderReplaced.cpp: Fix typo in a comment.
3008
3009 2007-05-01  David Hyatt  <hyatt@apple.com>
3010
3011         Fix for 13558, crash when using absolutely positioned generated content
3012         inside an inline.
3013
3014         Reviewed by darin
3015
3016         fast/css-generated-content/absolute-position-inside-inline.html
3017
3018         * rendering/RenderContainer.cpp:
3019         (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
3020
3021 2007-05-01  Justin Garcia  <justin.garcia@apple.com>
3022
3023         Reviewed by darin
3024
3025         <rdar://problem/5002441> 
3026         Pressing space key does nothing above quoted content or a signature
3027         
3028         Inserting a space under these circumstances inserts a single 
3029         text node containing a regular space and then does a layout. 
3030         That space isn't rendered (which is correct).  Whitespace 
3031         rebalancing is supposed to correct it but failed.  It replaces 
3032         the space with a non-breaking space, but that change doesn't 
3033         dirty line boxes (9441) and so the space isn't rendered.
3034         
3035         This workaround turns all incoming spaces into non-breaking 
3036         spaces before they're inserted (they're rebalanced after 
3037         insertion and turned back into regular spaces if possible).
3038
3039         * editing/InsertTextCommand.cpp:
3040         (WebCore::InsertTextCommand::prepareForTextInsertion): Removed
3041         an old irrelevant FIXME.
3042         (WebCore::InsertTextCommand::input): Turn incoming spaces into
3043         non breaking spaces before inserting them.
3044         
3045 2007-05-01  Darin Adler  <darin@apple.com>
3046
3047         Reviewed by Hyatt.
3048
3049         - fix http://bugs.webkit.org/show_bug.cgi?id=13559
3050           REGRESSION: Canvas aspect ratio is incorrect
3051
3052         - remove intrinsicWidth/Height functions from RenderObject
3053
3054         Test: fast/canvas/canvas-size-change-after-layout.html
3055
3056         * html/HTMLCanvasElement.cpp:
3057         (WebCore::HTMLCanvasElement::createRenderer): Removed code to set
3058         the intrinsic size, because the renderer now takes care of this
3059         in its constructor.
3060         (WebCore::HTMLCanvasElement::reset): Instead of calling the
3061         setIntrinsicWidth/Height functions, call canvasSizeChanged, which
3062         takes care of layout, but only if the size actually changed. Also
3063         call repaint if the contents of the canvas changed.
3064
3065         * rendering/RenderApplet.h:
3066         * rendering/RenderApplet.cpp: (WebCore::RenderApplet::intrinsicSize):
3067         Override the new intrinsicSize function. This override still doesn't
3068         make sense, so left a FIXME in here.
3069
3070         * rendering/RenderBox.h: Added an intrinsicSize function here to replace
3071         the intrinsicWidth/Height functions removed from RenderObject.
3072         * rendering/RenderBox.cpp:
3073         (WebCore::RenderBox::calcReplacedWidthUsing): Use intrinsicSize instead
3074         of intrinsicWidth.
3075         (WebCore::RenderBox::calcReplacedHeightUsing): Ditto, but for height.
3076
3077         * rendering/RenderHTMLCanvas.h: Changed the constructor parameter to be
3078         an HTMLCanvasElement* instead of Node*. Also added a canvasSizeChanged
3079         function.
3080         * rendering/RenderHTMLCanvas.cpp:
3081         (WebCore::RenderHTMLCanvas::RenderHTMLCanvas): Pass an initial intrinsic
3082         size based on the current size of the canvas element. This is now the
3083         responsibility of the renderer and the DOM element calls the canvasSizeChanged
3084         function when the size changes.
3085         (WebCore::RenderHTMLCanvas::paint): Removed checks of the type of the element,
3086         and used the node() function because we don't have to worry about the anonymous
3087         case in this class.
3088         (WebCore::RenderHTMLCanvas::canvasSizeChanged): Added. Changes the size and
3089         then calls setNeedsLayout and setPrefWidthsDirty as needed. I based the logic
3090         here on careful reading of RenderImage::imageChanged.
3091
3092         * rendering/RenderImage.cpp:
3093         (WebCore::RenderImage::RenderImage): Pass a default intrinsic size of 0,0
3094         instead of calling setIntrinsicWidth/Height.
3095         (WebCore::RenderImage::setImageSizeForAltText): Call the new intrinsic size
3096         functions instead of the width/height ones. Simplifies the logic since we
3097         handle both dimensions at once.
3098         (WebCore::RenderImage::imageChanged): Ditto.
3099         (WebCore::RenderImage::layout): Ditto.
3100         (WebCore::RenderImage::calcAspectRatioWidth): Ditto.
3101         (WebCore::RenderImage::calcAspectRatioHeight): Ditto.
3102
3103         * rendering/RenderObject.h: Removed intrinsicWidth/Height virtual functions.
3104
3105         * rendering/RenderReplaced.h: Replaced intrinsicWidth, intrinsicHeight,
3106         setIntrinsicWidth, setIntrinsicHeight, m_intrinsicWidth, and m_intrinsicHeight
3107         with intrinsicSize, setIntrinsicSize, and m_intrinsicSize.
3108         * rendering/RenderReplaced.cpp:
3109         (WebCore::RenderReplaced::RenderReplaced): Added a second contructor that takes
3110         an intrinsic size parameter. Also updated constructor since the intrinsic size
3111         is now an IntSize instead of two integers.
3112         (WebCore::RenderReplaced::intrinsicSize): Added. No point in making this inline
3113         because it's a virtual function.
3114         (WebCore::RenderReplaced::setIntrinsicSize): Added. Didn't make this inline,
3115         partly because in the future we might want this to be more than just a simple
3116         setter function, factoring in common code used in both RenderImage and
3117         RenderHTMLCanvas.
3118
3119         * rendering/RenderWidget.h: Removed a stray using declaration that wasn't needed.
3120
3121 2007-05-01  David Hyatt  <hyatt@apple.com>
3122
3123         Fix for hang when incorrectly trying to add before/after content to
3124         a <select>.  Disallow generated content in all selects and also turn it
3125         off for <input> buttons.
3126
3127         Reviewed by aroben
3128
3129         * rendering/RenderBlock.cpp:
3130         (WebCore::RenderBlock::setStyle):
3131         * rendering/RenderButton.cpp:
3132         (WebCore::RenderButton::canHaveChildren):
3133         * rendering/RenderButton.h:
3134
3135 2007-05-01  Darin Adler  <darin@apple.com>
3136
3137         Reviewed by Hyatt.
3138
3139         - removed the m_implicit bit from Node, freeing up a bit
3140
3141         - fixed <rdar://problem/5172607> XML parser is creating implicit tbody elements
3142         - fixed <rdar://problem/5172596> HTML-parser-created tbody elements are being
3143           ignored when processing CSS child rules
3144
3145         Test: fast/css/child-selector-implicit-tbody.html
3146
3147         * css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::checkSelector):
3148         Removed code that used to look at implicitNode(), which no longer exists.
3149
3150         * css/html4.css: Added a style rule to handle cases where we have a tr
3151         inside a table with no intervening table section.
3152
3153         * dom/Node.h: Removed the bit.
3154         * dom/Node.cpp:
3155         (WebCore::Node::Node): Don't initialize the bit.
3156         (WebCore::Node::dump): Don't dump the bit.
3157
3158         * dom/XMLTokenizer.cpp:
3159         (WebCore::XMLTokenizer::startElementNs): Remove the code that made a
3160         table body element. This is handled in the render tree, the DOM tree
3161         should not be mangled.
3162         (WebCore::XMLTokenizer::endElementNs): Removed code that used to look at
3163         implicitNode(), which no longer exists.
3164
3165         * html/HTMLElementFactory.cpp: (WebCore::tableSectionConstructor):
3166         Removed boolean parameter that was passed to the HTMLTableSectionElement
3167         constructor.
3168         * html/HTMLParser.cpp: (WebCore::HTMLParser::handleError): Ditto.
3169         * html/HTMLTableElement.cpp:
3170         (WebCore::HTMLTableElement::createTHead): Ditto.
3171         (WebCore::HTMLTableElement::createTFoot): Ditto.
3172         (WebCore::HTMLTableElement::insertRow): Changed to return a PassRefPtr,
3173         because it's possible the row could be removed from the table by JavaScript
3174         code responding to DOM mutation events before the function returns. Just
3175         something I noticed by code inspection.
3176
3177         * html/HTMLTableSectionElement.cpp:
3178         (WebCore::HTMLTableSectionElement::HTMLTableSectionElement): Removed
3179         boolean "implicit" parameter to the constructor.
3180         (WebCore::HTMLTableSectionElement::insertRow): Changed to return a
3181         PassRefPtr for the same reason cited above.
3182
3183         * html/HTMLTableElement.h: Changed the return value of insertRow to be
3184         a PassRefPtr.
3185         * html/HTMLTableSectionElement.h: Ditto.
3186
3187 2007-04-30  David Hyatt  <hyatt@apple.com>
3188
3189         Fix for bug 12691, generated content and display: table-cell duplicates
3190         content on a size change.  Make sure that the code to update before/after
3191         content is smart enough to drill into anonymous containers to find the
3192         old child.
3193
3194         Reviewed by olliej
3195
3196         Added fast/css-generated-content/table-cell-before-content.html
3197
3198         * rendering/RenderBlock.cpp:
3199         (WebCore::RenderBlock::setStyle):
3200         * rendering/RenderButton.cpp:
3201         (WebCore::RenderButton::updateBeforeAfterContent):
3202         * rendering/RenderButton.h:
3203         * rendering/RenderContainer.cpp:
3204         (WebCore::RenderContainer::beforeAfterContainer):
3205         (WebCore::RenderContainer::updateBeforeAfterContent):
3206         (WebCore::RenderContainer::updateBeforeAfterContentForObject):
3207         * rendering/RenderContainer.h:
3208         * rendering/RenderInline.cpp:
3209         (WebCore::RenderInline::setStyle):
3210         (WebCore::RenderInline::addChildToFlow):
3211         (WebCore::RenderInline::splitInlines):
3212
3213 2007-04-30  Jungshik Shin <jungshik.shin@gmail.com>
3214
3215         Reviewed by justin
3216         
3217         <http://bugs.webkit.org/show_bug.cgi?id=13552>
3218         comment to Range::comparePoint in dom/Range.cpp has 
3219         '0xD0' in place of '-': leading to a compiler warning
3220
3221         * dom/Range.cpp:
3222         (WebCore::Range::comparePoint):
3223
3224 2007-04-30  Justin Garcia  <justin.garcia@apple.com>
3225
3226         Reviewed by darin
3227
3228         <rdar://problem/4875189> List gets deleted when replacing contents
3229
3230         * editing/ReplaceSelectionCommand.cpp:
3231         (WebCore::ReplaceSelectionCommand::doApply): Don't expand
3232         to include elements, like lists, when deleting a selection 
3233         to replace it.
3234
3235 2007-04-30  Justin Garcia  <justin.garcia@apple.com>
3236
3237         Reviewed by ggaren
3238         
3239         Buildfix.  Leave in grammar checking machinery to 
3240         keep WebKit building on other platforms but don't
3241         operate on sentence sized chunks so that we don't
3242         re-introduce 5157329.
3243
3244         * editing/Editor.h:
3245         * editing/mac/EditorMac.mm:
3246         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
3247         (WebCore::markMisspellingsOrBadGrammar):
3248         (WebCore::Editor::markMisspellings):
3249         (WebCore::Editor::markBadGrammar):
3250         * page/Frame.cpp:
3251         (WebCore::Frame::respondToChangedSelection):
3252
3253 2007-04-30  Justin Garcia  <justin.garcia@apple.com>
3254
3255         Reviewed by darin
3256
3257         <rdar://problem/5168598> 
3258         Crash when deleting a link inside an input field
3259         
3260         Deletion code tries to update one of its positions to keep 
3261         it valid and nullifies it.  Later in mergeParagraphs we try 
3262         to find out if it's valid by checking to see if it's still in 
3263         the document and crash.
3264         
3265         The fix is just to not bother keeping the position, 
3266         m_upstreamStart, valid, since after the point in the code 
3267         under examination, it doesn't need to be valid anymore.  
3268         Besides, code to update DeleteSelectionCommand's positions 
3269         should go in the functions that handle the content removal 
3270         that might invalid them (there are already FIXMEs about this).
3271         
3272         Also, users shouldn't be able to insert links (or any rich content)
3273         into plaintext-only regions like text fields, even if those
3274         text fields are inside richly editable regions.  This is a 
3275         separate bug and is filed as 5171552.
3276
3277         * editing/DeleteSelectionCommand.cpp:
3278         (WebCore::DeleteSelectionCommand::handleGeneralDelete): Don't
3279         bother updating m_upstreamStart.
3280
3281 2007-04-30  Patti Hoa  <patti@apple.com>
3282
3283         Reviewed by Dave Hyatt.
3284         
3285         <rdar://problem/5108546> REGRESSION: Zoom follows keyboard focus does not work
3286
3287         * WebCore.xcodeproj/project.pbxproj:
3288         Add new file SelectionControllerMac.mm
3289         * dom/Document.cpp:
3290         (WebCore::Document::updateSelection):
3291         Move the code to fire off AXSelectedTextChanged notification to a new method notifyAccessibilityForSelectionChange in SelectionControllerMac.mm
3292         * editing/SelectionController.cpp:
3293         (WebCore::SelectionController::setSelection):
3294         call notifyAccessibilityForSelectionChange to handle firing of accessibility notification and zoomFocusChange
3295         * editing/SelectionController.h:
3296         Add notifyAccessibilityForSelectionChange method for Mac platform
3297         * platform/Widget.h:
3298         * platform/mac/WidgetMac.mm:
3299         (WebCore::Widget::convertToScreenCoordinate):
3300         Add a helper routine that takes IntPoint in local coordinate and convert that to screen coordinate
3301
3302 2007-04-30  Justin Garcia  <justin.garcia@apple.com>
3303
3304         Reviewed by harrison
3305
3306         <rdar://problem/5157329> 
3307         REGRESSION: Crash at WTF::fastFree() when arrowing or deleting backward through editable text (13493)
3308         
3309         Backing out the changes for 4859132.
3310
3311         * editing/Editor.h:
3312         * editing/mac/EditorMac.mm:
3313         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
3314         (WebCore::Editor::markMisspellings):
3315         * page/Frame.cpp:
3316         (WebCore::Frame::respondToChangedSelection):
3317
3318 2007-04-29  Antti Koivisto  <antti@apple.com>
3319
3320         Reviewed by Oliver.
3321
3322         Fix <rdar://problem/5169261>
3323         REGRESSION: Google Maps zooming too sensitive when using two fingers on trackpad
3324         
3325         Use line based delta values when generating DOM wheel events, use pixel deltas
3326         for scrolling only.
3327         
3328         No test case, requires user interaction and specific hardware.
3329
3330         * page/EventHandler.cpp:
3331         (WebCore::EventHandler::handleWheelEvent):
3332         * platform/PlatformWheelEvent.h:
3333         (WebCore::PlatformWheelEvent::continuousDeltaX):
3334         (WebCore::PlatformWheelEvent::continuousDeltaY):
3335         * platform/mac/WheelEventMac.mm:
3336         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
3337
3338 2007-04-29  Oliver Hunt  <oliver@apple.com>
3339
3340         Reviewed by Brady.
3341
3342         Build fix for experimental features build
3343
3344         * rendering/RenderForeignObject.cpp:
3345
3346 2007-04-29  Mitz Pettel  <mitz@webkit.org>
3347
3348         Reviewed by Dave Hyatt.
3349
3350         - fix http://bugs.webkit.org/show_bug.cgi?id=13544
3351           REGRESSION (r21120): Member profile frame not erased at Yahoo! Answers
3352
3353         Test: fast/repaint/layer-hide-when-needs-layout.html
3354
3355         * rendering/RenderObject.cpp:
3356         (WebCore::RenderObject::setStyle): If we get a layout hint, we count on
3357         layout() or updateLayerPositions() to repaint. In the case of a layer
3358         going invisible, however, we need to repaint here since neither of the
3359         above will do it.
3360
3361 2007-04-29  Oliver Hunt  <oliver@apple.com>
3362
3363         Reviewed by Steve.
3364
3365         Fix for <rdar://problem/5126393> REGRESSION (r19672-19697): Safari drag image drags at original size (13261)
3366
3367         Added logic to ensure that when we create the drag image
3368         we're looking at the rendered image size.
3369
3370         * page/DragController.cpp:
3371         (WebCore::DragController::doImageDrag):
3372           Pass the rendered image size to fitDragImageToMaxSize
3373
3374         * platform/DragImage.cpp:
3375         (WebCore::fitDragImageToMaxSize):
3376            Need to do scaling relative to rendered image size
3377
3378         * platform/DragImage.h:
3379            scaleDragImage needs x and y scales to allow for them to be
3380            scaled seperately on a page
3381
3382         * platform/gdk/DragImageGdk.cpp:
3383         (WebCore::scaleDragImage):
3384            Prevent build bustage
3385
3386         * platform/mac/DragImageMac.mm:
3387         (WebCore::scaleDragImage):
3388            scale width and height independently
3389
3390         * platform/qt/DragImageQt.cpp:
3391         (WebCore::scaleDragImage):
3392            Prevent build bustage
3393
3394 2007-04-29  Darin Adler  <darin@apple.com>
3395
3396         Reviewed by Adele.
3397
3398         - fix the Gmail part of http://bugs.webkit.org/show_bug.cgi?id=12798
3399           and <rdar://problem/4118559>
3400
3401         This patch changes things so that resizing can make things larger than their
3402         initial size, but not smaller. I believe this resolves the problem for Gmail,
3403         but you can still get strange behavior if you have a small right-aligned <textarea>.
3404
3405         * rendering/RenderLayer.cpp:
3406         (WebCore::RenderLayer::resize): Rewrote to use more IntPoint and IntSize and add
3407         in a new minimum-size algorithm. This function now has the side effect of storing
3408         a new minimumSizeForResizing in the element being resized, and respects any existing
3409         minimum as well.
3410         (WebCore::RenderLayer::offsetFromResizeCorner): Reversed this so it converts the
3411         point into coordinates relative to the resize corner, hence negative numbers mean
3412         the point is above and to the left. This is used only in the algorithm above.
3413
3414         * dom/Element.h: Removed unneeded include of Attr.h, and added forward declarations
3415         as needed. Removed all friend declarations; there was no need for any of them.
3416         Tweaked formatting of various declarations and removed unneeded parameter names.
3417         Made as much as possible private, and a couple things public to avoid the need for
3418         friend classes. Added minimumSizeForResizing, setMinimumSizeForResizing, rareData,
3419         and createRareData functions.
3420
3421         * dom/Element.cpp:
3422         (WebCore::rareDataMap): Added. Function to return the single global map.
3423         (WebCore::rareDataFromMap): Added. For use by inlined functions to get the
3424         data from the map in the case where it's present.
3425         (WebCore::ElementRareData::ElementRareData): Added.
3426         (WebCore::Element::~Element): Added code to delete the element from the rare
3427         data map when appropriate.
3428         (WebCore::Element::rareData): Added.
3429         (WebCore::Element::createRareData): Added.
3430         (WebCore::Element::setAttributeNodeNS): Got rid of the old inline version of this,
3431         since it was the sole reason we had to include Attr.h in Element.h.
3432         (WebCore::Element::minimumSizeForResizing): Added. Accesses rare data.
3433         (WebCore::Element::setMinimumSizeForResizing): Ditto.
3434
3435         * dom/Node.h: Renamed the m_specified bit since it's now used for two purposes.
3436         Its new long name is m_attrWasSpecifiedOrElementHasRareData.
3437
3438         * dom/Attr.cpp: (WebCore::Attr::Attr): Updated for bit name change.
3439         * dom/Attr.h:
3440         (WebCore::Attr::specified): Ditto.
3441         (WebCore::Attr::setSpecified): Added, since setting the bit directly is pretty ugly now.
3442         * dom/Document.cpp: (WebCore::Document::adoptNode): Updated for bit name change.
3443         * dom/Node.cpp:
3444         (WebCore::Node::Node): Ditto.
3445         (WebCore::Node::dump): Ditto.
3446
3447         * dom/NamedAttrMap.cpp: (WebCore::NamedAttrMap::isReadOnlyNode): Moved out of line,
3448         since this was the sole reason we had to include Element.h in NamedAttrMap.h.
3449
3450         * html/HTMLElement.cpp:
3451         (WebCore::HTMLElement::nodeName): Changed to use tagQName() since that's a public
3452         way to do something that's now private.
3453         (WebCore::HTMLElement::cloneNode): Ditto.
3454
3455         * dom/Attribute.cpp:
3456         * dom/NamedAttrMap.h:
3457         * dom/NamedMappedAttrMap.cpp:
3458         * dom/StyledElement.h:
3459         * html/HTMLTokenizer.h:
3460         * xml/XPathFunctions.cpp:
3461         * xml/XPathStep.cpp:
3462         Updated includes, and other administrivia.
3463
3464 2007-04-29  Mitz Pettel  <mitz@webkit.org>
3465
3466         Reviewed by Darin and Hyatt.
3467
3468         - http://bugs.webkit.org/show_bug.cgi?id=13487
3469           Implement O(1) absoluteClippedOverflowRect and absoluteOutlineBox during layout for a possible speed gain
3470
3471         Test for a bug fixed by this patch: fast/repaint/intermediate-layout-position-clip.html
3472
3473         By keeping track of the total translation and clip during layout, absolutePosition and
3474         computeAbsoluteRepaintRect become O(1).
3475
3476         * WebCore.pro: Added LayoutState.cpp
3477         * WebCore.vcproj/WebCore/WebCore.vcproj: Added LayoutState.{cpp,h}
3478         * WebCore.xcodeproj/project.pbxproj: Added LayoutState.{cpp,h}
3479         * WebCoreSources.bkl: Added LayoutState.cpp
3480         * page/FrameView.cpp:
3481         (WebCore::FrameView::layout): When doing subtree layout, push an initial layout state for the
3482         layout root.
3483         * rendering/LayoutState.cpp: Added. A LayoutState corresponding to a box consists of the origin of
3484         its coordinate system in view coordinates and possibly the clip rect, in view coordinates, which
3485         applies to its children.
3486         (WebCore::LayoutState::LayoutState):
3487         (WebCore::LayoutState::destroy):
3488         (WebCore::throw):
3489         (WebCore::LayoutState::operator delete):
3490         * rendering/LayoutState.h: Added.
3491         (WebCore::LayoutState::LayoutState):
3492         * rendering/RenderBlock.cpp:
3493         (WebCore::RenderBlock::layoutBlock): Factored out the "only positioned objects" case into
3494         layoutOnlyPositionedObjects(). Added code to push/pop LayoutState, unless we have columns, in
3495         which case we disable/enable LayoutState. Removed the translation by the layout delta
3496         of the old absolute rects, since that is now integral to absoluteClippedOverflowRect() and
3497         absoluteOutlineBox().
3498         (WebCore::RenderBlock::layoutOnlyPositionedObjects): Added this helper function that checks for
3499         and handles the case where only positioned objects need layout. Returns true in that case.
3500         (WebCore::RenderBlock::repaintOverhangingFloats): Disabled LayoutState when repainting floats, since
3501         they may belong to other containers.
3502         (WebCore::RenderBlock::updateFirstLetter): Disabled LayoutState when adding and removing from the
3503         first letter container, since it may be different than ourselves.
3504         * rendering/RenderBlock.h:
3505         * rendering/RenderBox.cpp:
3506         (WebCore::RenderBox::setStyle): Minor cleanup: changed element()->document() to the equivalent document().
3507         (WebCore::RenderBox::offsetForPositionedInContainer): Added. Factored out common code from
3508         absolutePosition, computeAbsoluteRepaintRect and RenderLayer::updateLayerPosition into this function.
3509         (WebCore::RenderBox::absolutePosition): Added an O(1) code path when this function is called during
3510         layout (and LayoutState has not been disabled). Factored out some code into
3511         offsetForPositionedInContainer.
3512         (WebCore::RenderBox::absoluteClippedOverflowRect): Added the layout delta here, so callers don't need
3513         to.
3514         (WebCore::RenderBox::computeAbsoluteRepaintRect): Added an O(1) code path when this function is called