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