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