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