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