This patch dramatically reduces the memory consumed by animated images. ...
[WebKit-https.git] / WebCore / ChangeLog
1 2007-03-08  David Hyatt  <hyatt@apple.com>
2
3         This patch dramatically reduces the memory consumed by animated images.  For large animated GIFs (defined for
4         now as >1mb in terms of decoded frame buffer size), we will now aggressively flush previous frames of the
5         animated GIF and just re-decode them on the fly if the animation loops.
6
7         Whenever a large animated GIF has its animation reset, we will also just throw out everything and start
8         the animation over (in order to get rid of any cached detritus held in the ImageSource).
9
10         With this patch and the sample GIF used to test, WebKit's memory consumption went from 160MB down to 16MB.
11
12         Reviewed by mjs
13
14         * platform/graphics/BitmapImage.cpp:
15         (WebCore::BitmapImage::destroyDecodedData):
16         (WebCore::BitmapImage::resetAnimation):
17         (WebCore::BitmapImage::advanceAnimation):
18         * platform/graphics/ImageSource.h:
19         * platform/graphics/cg/ImageSourceCG.cpp:
20         (WebCore::ImageSource::~ImageSource):
21         (WebCore::ImageSource::clear):
22
23 2007-03-08  Alexey Proskuryakov  <ap@webkit.org>
24
25         Reviewed by Darin.
26
27         http://bugs.webkit.org/show_bug.cgi?id=13006
28         XPath string-value is broken for some node types
29
30         Test: fast/xpath/string-value.html
31
32         * xml/XPathUtil.cpp:
33         (WebCore::XPath::stringValue): Fix it :-)
34
35 2007-03-07  Anders Carlsson  <acarlsson@apple.com>
36
37         Reviewed by Adam.
38
39         <rdar://problem/4981000> 
40         http://bugs.webkit.org/show_bug.cgi?id=12634
41         REGRESSION: crash loading web archive (12634)
42         
43         The reason this bug wasn't always reproducible is that it involved sending an event to a plugin while 
44         the page was loading. Before we send the event to the plugin we defer loads. The problem was that
45         MainResourceLoader::setDefersLoad would not work with data loads.
46         
47         * loader/DocumentLoader.cpp:
48         (WebCore::DocumentLoader::setRequest):
49         Only set m_committed to false if we also have a valid unreachable URL.
50         
51         * loader/MainResourceLoader.cpp:
52         (WebCore::MainResourceLoader::setDefersLoading):
53         Make sure to stop and start data loads.
54
55 2007-03-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
56
57         Not reviewed.
58
59         Gdk build fixes.
60
61         * platform/gdk/EditorClientGdk.cpp:
62         (WebCore::EditorClientGdk::handleKeypress): renamed
63         (WebCore::EditorClientGdk::handleInputMethodKeypress): add a stub
64         * platform/gdk/EditorClientGdk.h:
65         * platform/graphics/cairo/ImageSourceCairo.cpp:
66         (WebCore::ImageSource::destroyFrameAtIndex): add a stub
67
68 2007-03-07  Alexey Proskuryakov  <ap@webkit.org>
69
70         Reviewed by Darin.
71
72         http://bugs.webkit.org/show_bug.cgi?id=13004
73         Repeatedly calling XPathExpression.evaluate() causes crashes or memory leaks
74
75         Removed XPath::Expression::optimize() and related methods, since they were buggy and almost useless.
76         Merged doEvaluate() into evaluate(), since this was all evaluate() was doing after the above changes.
77
78         Test: fast/xpath/evaluate-twice.html
79
80         * xml/XPathExpression.cpp:
81         (WebCore::XPathExpression::evaluate):
82         * xml/XPathExpressionNode.cpp:
83         (WebCore::XPath::Expression::Expression):
84         (WebCore::XPath::Expression::~Expression):
85         * xml/XPathExpressionNode.h:
86         * xml/XPathFunctions.cpp:
87         (WebCore::XPath::FunLast::evaluate):
88         (WebCore::XPath::FunPosition::evaluate):
89         (WebCore::XPath::FunId::evaluate):
90         (WebCore::XPath::FunLocalName::evaluate):
91         (WebCore::XPath::FunNamespaceURI::evaluate):
92         (WebCore::XPath::FunName::evaluate):
93         (WebCore::XPath::FunCount::evaluate):
94         (WebCore::XPath::FunString::evaluate):
95         (WebCore::XPath::FunConcat::evaluate):
96         (WebCore::XPath::FunStartsWith::evaluate):
97         (WebCore::XPath::FunContains::evaluate):
98         (WebCore::XPath::FunSubstringBefore::evaluate):
99         (WebCore::XPath::FunSubstringAfter::evaluate):
100         (WebCore::XPath::FunSubstring::evaluate):
101         (WebCore::XPath::FunStringLength::evaluate):
102         (WebCore::XPath::FunNormalizeSpace::evaluate):
103         (WebCore::XPath::FunTranslate::evaluate):
104         (WebCore::XPath::FunBoolean::evaluate):
105         (WebCore::XPath::FunNot::evaluate):
106         (WebCore::XPath::FunTrue::evaluate):
107         (WebCore::XPath::FunLang::evaluate):
108         (WebCore::XPath::FunFalse::evaluate):
109         (WebCore::XPath::FunNumber::evaluate):
110         (WebCore::XPath::FunSum::evaluate):
111         (WebCore::XPath::FunFloor::evaluate):
112         (WebCore::XPath::FunCeiling::evaluate):
113         (WebCore::XPath::FunRound::evaluate):
114         * xml/XPathPath.cpp:
115         (WebCore::XPath::Filter::evaluate):
116         (WebCore::XPath::LocationPath::evaluate):
117         (WebCore::XPath::Path::evaluate):
118         * xml/XPathPath.h:
119         * xml/XPathPredicate.cpp:
120         (WebCore::XPath::Number::evaluate):
121         (WebCore::XPath::StringExpression::evaluate):
122         (WebCore::XPath::Negative::evaluate):
123         (WebCore::XPath::NumericOp::evaluate):
124         (WebCore::XPath::EqTestOp::evaluate):
125         (WebCore::XPath::LogicalOp::evaluate):
126         (WebCore::XPath::Union::evaluate):
127         * xml/XPathPredicate.h:
128         * xml/XPathStep.cpp:
129         * xml/XPathStep.h:
130         * xml/XPathVariableReference.cpp:
131         (WebCore::XPath::VariableReference::evaluate):
132         * xml/XPathVariableReference.h:
133
134 2007-03-07  Sam Weinig  <sam@webkit.org>
135
136         Reviewed by Tim H.
137
138         Remove unused #import from Objective-C bindings and cleanup the order of #imports.
139
140         * bindings/scripts/CodeGeneratorObjC.pm:
141
142 2007-03-07  Sam Weinig  <sam@webkit.org>
143
144         Reviewed by Tim H.
145
146         Make sure the baseURI attribute generates for private Objective-C bindings.
147
148         * dom/Node.idl:
149
150 2007-03-07  Anders Carlsson  <acarlsson@apple.com>
151
152         Reviewed by Maciej.
153
154         <rdar://problem/4874059>
155         REGRESSION: Painter IX:register - Crash in WebCore:: ResourceLoader::willSendRequest()
156
157         If a load is done from inside of an error delegate method that is called because we cancel another load, 
158         the first load should be ignored since this is what shipping WebKit does. 
159         
160         (Actually, it does load the page in the data source but doesn't do anything with it since the data source
161         won't have a web frame).
162         
163         * loader/FrameLoader.cpp:
164         (WebCore::FrameLoader::load):
165         Just bail out if m_isStoppingLoad is true.
166
167 2007-03-07  David Hyatt  <hyatt@apple.com>
168
169         Use CGImageRelease instead of CFRelease.
170
171         Reviewed by aroben
172
173         * platform/graphics/cg/ImageCG.cpp:
174         (WebCore::FrameData::clear):
175         * platform/graphics/cg/ImageSourceCG.cpp:
176         (WebCore::ImageSource::destroyFrameAtIndex):
177
178 2007-03-07  David Hyatt  <hyatt@apple.com>
179
180         Fix a regression where the cache size overflows because of a double
181         subtraction per resource when they got removed from the cache.  Add an
182         assert to adjustSize to detect this case in the future.
183
184         Fix ImageSourceCG so that when we flush decoded data from our cache that
185         we also flush it from the ImageSource.
186
187         Reviewed by mjs
188
189         * loader/Cache.cpp:
190         (WebCore::Cache::adjustSize):
191         * platform/graphics/BitmapImage.cpp:
192         (WebCore::BitmapImage::~BitmapImage):
193         (WebCore::BitmapImage::destroyDecodedData):
194         * platform/graphics/Image.h:
195         * platform/graphics/ImageSource.h:
196         * platform/graphics/cg/ImageSourceCG.cpp:
197         (WebCore::ImageSource::setData):
198         (WebCore::ImageSource::destroyFrameAtIndex):
199
200 2007-03-07  Mitz Pettel  <mitz@webkit.org>
201
202         Reviewed by Darin.
203
204         - fix http://bugs.webkit.org/show_bug.cgi?id=13002
205           Incomplete repaint of inset outlines
206
207         Test: fast/repaint/outline-inset.html
208
209         * rendering/RenderObject.cpp:
210         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
211
212 2007-03-07  Oliver Hunt  <oliver@apple.com>
213
214         Reviewed by Antti.
215
216         Reset mouse down/drag state variables on mouse button release
217         
218         Fixes <rdar://problem/5044654>: Drag out of some QuickTime plug-ins converting into image drag
219
220         * page/EventHandler.cpp:
221         (WebCore::EventHandler::handleMouseReleaseEvent):
222
223 2007-03-07  Adele Peterson  <adele@apple.com>
224
225         Reviewed by Darin.
226
227         WebCore part of fix for:
228         http://bugs.webkit.org/show_bug.cgi?id=10871
229         http://bugs.webkit.org/show_bug.cgi?id=12677
230         <rdar://problem/4823129> REGRESSION: IME key events different in nightly
231         <rdar://problem/4759563> REGRESSION: Return key is always sent when you confirm a clause in kotoeri
232
233         * page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler): Call handleInputMethodKeypress before actually dispatching the keypress event
234           so that input methods have a chance to handle the event.  
235           If the input method handles the event (by marking or unmarking text), then we don't need to send the keypress event.
236           If an input method doesn't handle the event, then we'll save the data we need to perform the correct action (like what text to insert or what selector to use) 
237           when we dispatch the keypress event.
238
239         * dom/KeyboardEvent.h: Added Mac-specific KeypressCommand struct, so we can store command info during handleInputMethodKeypress, and use it during handleKeypress.
240         (WebCore::KeyboardEvent::keypressCommand):
241         (WebCore::KeyboardEvent::setKeypressCommand):
242
243         * bridge/EditorClient.h:
244         * editing/Editor.cpp:
245         (WebCore::Editor::handleKeypress): Changed handleKeyPress to handleKeypress.
246         (WebCore::Editor::handleInputMethodKeypress): Added.
247         * editing/Editor.h:
248
249         * platform/graphics/svg/SVGImageEmptyClients.h:
250         (WebCore::SVGEmptyEditorClient::handleKeypress): Changed handleKeyPress to handleKeypress.
251         (WebCore::SVGEmptyEditorClient::handleInputMethodKeypress): Added.
252
253 2007-03-07  Anders Carlsson  <acarlsson@apple.com>
254
255         Reviewed by Brady.
256
257         Remove some methods in FrameLoader that just calls down to the active document loader. Since each
258         resource loader now has a pointer to its document loader, we can just call directly to the
259         document loader.
260
261         * WebCore.exp:
262         * loader/FrameLoader.cpp:
263         * loader/FrameLoader.h:
264         * loader/MainResourceLoader.cpp:
265         (WebCore::MainResourceLoader::willSendRequest):
266         (WebCore::MainResourceLoader::didReceiveResponse):
267         * loader/SubresourceLoader.cpp:
268         (WebCore::SubresourceLoader::SubresourceLoader):
269         (WebCore::SubresourceLoader::didFinishLoading):
270         (WebCore::SubresourceLoader::didFail):
271         (WebCore::SubresourceLoader::didCancel):
272         * loader/mac/NetscapePlugInStreamLoaderMac.mm:
273         (WebCore::NetscapePlugInStreamLoader::didFinishLoading):
274         (WebCore::NetscapePlugInStreamLoader::didFail):
275         (WebCore::NetscapePlugInStreamLoader::didCancel):
276
277 2007-03-06  Geoffrey Garen  <ggaren@apple.com>
278
279         Reviewed by Maciej Stachowiak.
280         
281         Fixed <rdar://problem/4576242> | http://bugs.webkit.org/show_bug.cgi?id=12586
282         PAC file: malloc deadlock sometimes causes a hang @ www.apple.com/pro/profiles/ (12586)
283         
284         No test because this is very difficult to repro, and the new ASSERTs in 
285         JavaScriptCore catch the underlying cause while running normal layout tests.
286         
287         This is a modified version of r14752 on the branch.
288         
289         The fix is to use a bit inside each node, instead of a hash table, to track 
290         which node subtrees are in the process of being marked. This avoids a call 
291         to malloc inside mark().
292         
293         * bindings/js/kjs_binding.cpp:
294         (KJS::domObjects):
295         (KJS::domNodesPerDocument):
296         * bindings/js/kjs_dom.cpp:
297         (KJS::DOMNode::mark):
298         * dom/Node.cpp:
299         (WebCore::Node::Node):
300         * dom/Node.h:
301
302 2007-03-06  David Hyatt  <hyatt@apple.com>
303
304         This patch reworks the WebCore memory cache to significantly reduce the amount of memory consumed by
305         images in the cache and to enhance the accuracy of the cache size as an absolute bound for the objects
306         contained within it.  WebCore's memory use over time should significantly improve as a result of these
307         changes.
308
309         Cached resources now have both an encoded size (the original data stream) and a decoded size (an estimate of
310         the amount of memory consumed by an expanded version of that resource, e.g., the decoded frames of an image).
311         Both sizes now count towards the total size of the object and towards the allowed memory cache total.
312
313         By including both totals the reported size of resources will now be larger, and the cache will therefore become
314         much more aggressive about flushing.
315
316         Objects are stored in size-adjusted and popularity-aware LRU lists as before, but encoded size is now always
317         used when determining the correct LRU list.
318
319         The flush algorithm for the memory cache has been rewritten to first destroy decoded data before evicting
320         resources.  By being able to compact its resources without evicting them, the memory cache can now hold many more
321         unique resources (encoded) in the same amount of space.  Depending on how much of a hit we want to take from
322         re-decoding images, the memory cache could in theory have its size significantly reduced now while still holding
323         more resources than it did at the larger size!
324
325         Reviewed by mjs
326
327         * WebCore.xcodeproj/project.pbxproj:
328         * loader/Cache.cpp:
329         (WebCore::Cache::requestResource):
330         (WebCore::Cache::prune):
331         (WebCore::Cache::remove):
332         (WebCore::Cache::lruListFor):
333         (WebCore::Cache::adjustSize):
334         * loader/Cache.h:
335         * loader/CachedCSSStyleSheet.cpp:
336         (WebCore::CachedCSSStyleSheet::data):
337         * loader/CachedImage.cpp:
338         (WebCore::CachedImage::CachedImage):
339         (WebCore::CachedImage::allReferencesRemoved):
340         (WebCore::CachedImage::clear):
341         (WebCore::CachedImage::data):
342         (WebCore::CachedImage::destroyDecodedData):
343         (WebCore::CachedImage::decodedSize):
344         (WebCore::CachedImage::decodedSizeChanged):
345         (WebCore::CachedImage::shouldPauseAnimation):
346         * loader/CachedImage.h:
347         * loader/CachedResource.cpp:
348         (WebCore::CachedResource::CachedResource):
349         (WebCore::CachedResource::deref):
350         (WebCore::CachedResource::setEncodedSize):
351         * loader/CachedResource.h:
352         (WebCore::CachedResource::allReferencesRemoved):
353         (WebCore::CachedResource::size):
354         (WebCore::CachedResource::encodedSize):
355         (WebCore::CachedResource::decodedSize):
356         (WebCore::CachedResource::destroyDecodedData):
357         * loader/CachedScript.cpp:
358         (WebCore::CachedScript::data):
359         * loader/CachedXSLStyleSheet.cpp:
360         (WebCore::CachedXSLStyleSheet::data):
361         * platform/graphics/BitmapImage.cpp:
362         (WebCore::BitmapImage::BitmapImage):
363         (WebCore::BitmapImage::~BitmapImage):
364         (WebCore::BitmapImage::destroyDecodedData):
365         (WebCore::BitmapImage::pruneDecodedDataIfNeeded):
366         (WebCore::BitmapImage::cacheFrame):
367         (WebCore::BitmapImage::setNativeData):
368         (WebCore::BitmapImage::shouldAnimate):
369         (WebCore::BitmapImage::advanceAnimation):
370         * platform/graphics/BitmapImage.h:
371         (WebCore::BitmapImage::decodedSize):
372         * platform/graphics/Image.cpp:
373         (WebCore::Image::Image):
374         * platform/graphics/Image.h:
375         (WebCore::Image::destroyDecodedData):
376         (WebCore::Image::decodedSize):
377         (WebCore::Image::imageObserver):
378         * platform/graphics/ImageAnimationObserver.h: Removed.
379         * platform/graphics/ImageObserver.h: Added.
380         (WebCore::ImageObserver::~ImageObserver):
381         * platform/graphics/svg/SVGImage.cpp:
382         (WebCore::SVGImage::SVGImage):
383         * platform/graphics/svg/SVGImage.h:
384
385 2007-03-06  Alexey Proskuryakov  <ap@webkit.org>
386
387         Reviewed by Sam Weinig.
388
389         http://bugs.webkit.org/show_bug.cgi?id=12987
390         Fix and import 4XPath test_numeric_expr.html
391
392         * xml/XPathPredicate.cpp:
393         (WebCore::XPath::Negative::doEvaluate): Convert the argument to number.
394         (WebCore::XPath::NumericOp::doEvaluate): Convert the arguments to numbers. Use a correct operation for mod.
395         * xml/XPathStep.cpp:
396         (WebCore::XPath::Step::nodesInAxis): Do not append parent node if there is none.
397         * xml/XPathValue.cpp:
398         (WebCore::XPath::Value::toNumber): Do not convert to DeprecatedString just to trim whitespace and to convert to double.
399         * platform/DeprecatedString.cpp:
400         (WebCore::DeprecatedStringData::makeAscii): Added a FIXME about unreliable makeAscii() behavior.
401
402 2007-03-06  Maciej Stachowiak  <mjs@apple.com>
403
404         Reviewed by Adele.
405
406         <rdar://problem/4619663> REGRESSION (NativePopup): Popup menu doesn't draw at the correct vertical position (9816)
407         
408         * platform/mac/PopupMenuMac.mm:
409         (WebCore::PopupMenu::show): Make a temporary dummy view with the
410         passed in rect, since AppKit will use the view bounds to determine
411         what area to exclude when popping up a menu moved to the top of
412         the screen.
413
414 2007-03-06  Geoffrey Garen  <ggaren@apple.com>
415
416         Reviewed by Maciej Stachowiak.
417
418         Fixed all known crashers exposed by run-webkit-tests --threaded [*]. See 
419         JavaScriptCore ChangeLog for more details.
420
421         * bindings/js/kjs_binding.cpp:
422         (KJS::domNodesPerDocument): Added thread safety ASSERT.
423         (KJS::ScriptInterpreter::mark): Removed obsolete logic for marking unsafe
424         objects when collecting on a secondary thread. The Collector takes care
425         of this now.
426
427         * bindings/js/kjs_binding.h:
428         (KJS::DOMObject::DOMObject): Used new API for specifying that WebCore
429         objects should be garbage collected on the main thread only.
430
431         * bindings/js/kjs_window.cpp:
432         (KJS::ScheduledAction::execute): Moved JSLock to cover implementedsCall() call,
433         which, for some subclasses, ends up allocating garbage collected objects.
434         (This fix was speculative. I didn't actually see a crash from this.)
435         (KJS::Window::timerFired): Added JSLock around ScheduleAction destruction,
436         since it destroys a KJS::List.
437
438         * bindings/objc/WebScriptObject.mm:
439         (-[WebScriptObject setException:]): Added JSLock. (This fix was speculative. 
440         I didn't actually see a crash from this.)
441
442         * bridge/mac/WebCoreScriptDebugger.mm:
443         (-[WebCoreScriptCallFrame evaluateWebScript:]): Added JSLock. (This fix 
444         was speculative. I didn't actually see a crash from this.)
445
446         * dom/Document.cpp:
447         (WebCore::Document::~Document): Added JSLock around modification to 
448         domNodesPerDocument(), which can be accessed concurrently during garbage 
449         collection.
450         * dom/Node.cpp:
451         (WebCore::Node::setDocument): ditto.
452         
453         [*] fast/js/toString-stack-overflow.html is an exception. --threaded mode
454         crashes this test because it causes the garbage collector to run frequently,
455         and this test crashes if you happen to garbage collect while it's running.
456         This is a known issue with stack overflow during the mark phase. It's
457         not related to threading.
458
459 2007-03-06  Mark Rowe  <mrowe@apple.com>
460
461         Reviewed by Sam Weinig.
462
463         Fix http://bugs.webkit.org/show_bug.cgi?id=12942
464         Bug 12942: ASSERTION FAILURE: qantas.com.au changing selected item in <select> via JS
465
466         Test: fast/dom/select-selectedIndex-bug-12942.html.
467
468         * html/HTMLSelectElement.cpp:
469         (WebCore::HTMLSelectElement::recalcListItems): Reset m_lastOnChangeIndex when recalculating list items.
470         * html/HTMLSelectElement.h:
471
472 2007-03-06  Brady Eidson  <beidson@apple.com>
473
474         Rubberstamped by Kevin Decker
475
476         20,000!
477
478         * ChangeLog: Point out revision 20,000
479
480 2007-03-06  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
481
482         Not reviewed.
483
484         Gdk build fix.
485
486         * loader/gdk/FrameLoaderClientGdk.cpp: update userAgent() signature.
487         (WebCore::FrameLoaderClientGdk::userAgent):
488         * loader/gdk/FrameLoaderClientGdk.h: ditto.
489
490 2007-03-06  Mitz Pettel  <mitz@webkit.org>
491
492         Reviewed by Adele.
493
494         - fix http://bugs.webkit.org/show_bug.cgi?id=12986
495           REGRESSION(NativeListBox): Listboxes not updated when resized dynamically
496
497         Test: fast/forms/select-change-listbox-size.html
498
499         * html/HTMLSelectElement.cpp:
500         (WebCore::HTMLSelectElement::parseMappedAttribute): Reattach on list box size change.
501
502 2007-03-06  Mitz Pettel  <mitz@webkit.org>
503
504         Reviewed by Dave Hyatt.
505
506         - fix http://bugs.webkit.org/show_bug.cgi?id=12885
507           REGRESSION (r19696): Incomplete background repaint
508
509         Tests: fast/repaint/content-into-overflow.html
510                fast/repaint/overflow-into-content.html
511
512         Changed repaintAfterLayoutIfNeeded() to take, in addition to the clipped overflow
513         rect, the unclipped border box plus outline, and to repaint any areas that
514         were added or removed from that box, in addition to any areas added or removed
515         from the clipped overflow rect.
516
517         * platform/graphics/svg/SVGResourceMarker.cpp:
518         (WebCore::SVGResourceMarker::draw):
519         * rendering/RenderBlock.cpp:
520         (WebCore::RenderBlock::layoutBlock):
521         * rendering/RenderBox.cpp:
522         (WebCore::RenderBox::absoluteClippedOverflowRect): Renamed getAbsoluteRepaintRect() to
523         this.
524         * rendering/RenderBox.h:
525         * rendering/RenderFlexibleBox.cpp:
526         (WebCore::RenderFlexibleBox::layoutBlock):
527         * rendering/RenderFlow.cpp:
528         (WebCore::RenderFlow::absoluteClippedOverflowRect):
529         * rendering/RenderFlow.h:
530         * rendering/RenderForeignObject.cpp:
531         (WebCore::RenderForeignObject::layout):
532         * rendering/RenderHTMLCanvas.cpp:
533         (WebCore::RenderHTMLCanvas::layout):
534         * rendering/RenderImage.cpp:
535         (WebCore::RenderImage::layout):
536         * rendering/RenderLayer.cpp:
537         (WebCore::RenderLayer::RenderLayer):
538         (WebCore::RenderLayer::checkForRepaintOnResize):
539         (WebCore::RenderLayer::updateLayerPositions):
540         * rendering/RenderLayer.h:
541         * rendering/RenderObject.cpp:
542         (WebCore::RenderObject::repaint):
543         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
544         (WebCore::RenderObject::getAbsoluteRepaintRectWithOutline):
545         (WebCore::RenderObject::absoluteClippedOverflowRect):
546         (WebCore::RenderObject::absoluteOutlineBox):
547         * rendering/RenderObject.h:
548         * rendering/RenderPath.cpp:
549         (WebCore::RenderPath::layout):
550         (WebCore::RenderPath::absoluteClippedOverflowRect):
551         (WebCore::RenderPath::absoluteRects):
552         (WebCore::RenderPath::drawMarkersIfNeeded):
553         * rendering/RenderPath.h:
554         * rendering/RenderSVGContainer.cpp:
555         (WebCore::RenderSVGContainer::layout):
556         (WebCore::RenderSVGContainer::absoluteClippedOverflowRect):
557         (WebCore::RenderSVGContainer::absoluteRects):
558         * rendering/RenderSVGContainer.h:
559         * rendering/RenderSVGHiddenContainer.cpp:
560         (WebCore::RenderSVGHiddenContainer::absoluteClippedOverflowRect):
561         * rendering/RenderSVGHiddenContainer.h:
562         * rendering/RenderSVGImage.cpp:
563         (WebCore::RenderSVGImage::imageChanged):
564         (WebCore::RenderSVGImage::absoluteClippedOverflowRect):
565         (WebCore::RenderSVGImage::absoluteRects):
566         * rendering/RenderSVGImage.h:
567         * rendering/RenderSVGText.cpp:
568         (WebCore::RenderSVGText::absoluteClippedOverflowRect):
569         (WebCore::RenderSVGText::layout):
570         (WebCore::RenderSVGText::absoluteRects):
571         * rendering/RenderSVGText.h:
572         * rendering/RenderTable.cpp:
573         (WebCore::RenderTable::layout):
574         * rendering/RenderTableCell.cpp:
575         (WebCore::RenderTableCell::absoluteClippedOverflowRect):
576         * rendering/RenderTableCell.h:
577         * rendering/RenderTableCol.cpp:
578         (WebCore::RenderTableCol::absoluteClippedOverflowRect):
579         * rendering/RenderTableCol.h:
580         * rendering/RenderTableRow.cpp:
581         (WebCore::RenderTableRow::absoluteClippedOverflowRect):
582         * rendering/RenderTableRow.h:
583         * rendering/RenderText.cpp:
584         (WebCore::RenderText::absoluteClippedOverflowRect):
585         * rendering/RenderText.h:
586
587 2007-03-06  Ian Eng <ian.eng.webkit@gmail.com>
588
589         Reviewed by Maciej.
590
591         - fixed http://bugs.webkit.org/show_bug.cgi?id=12720
592         Bug 12720: Re-defining window.location.toString function keeps re-loading forever
593
594         * bindings/js/kjs_window.cpp:
595         Disallow replacing functions in LocationTable, and return early without updating URL.
596
597 2007-03-06  Kevin McCullough  <kmccullough@apple.com>
598
599         Reviewed by Darin.
600
601         <http://bugs.webkit.org/show_bug.cgi?id=12686>
602         REGRESSION: Bloglines.com Feeds tab cannot expand folders in TOT
603         - Now all class constructors implement implementsHasInstance.
604
605         * bindings/scripts/CodeGeneratorJS.pm:
606
607 2007-03-07  Nikolas Zimmermann  <zimmermann@kde.org>
608
609         Reviewed by Rob & Oliver.
610
611         Preparations for the new SVG text engine.
612
613         Handle baseline-shift / kerning css values correctly.
614         Recognize missing svg presentation attribute "font-size-adjust".
615         Add all missing svg<->css property mappings in mapToEntry().
616
617         Doesn't affect any layout test (as these properties are not used w/o my text patch).
618         While I'm at it, unify the macro names (RS_ -> SVG_RS_) & cleanup style a bit.
619
620         * ksvg2/css/CSSPropertyNames.in:
621         * ksvg2/css/SVGCSSParser.cpp:
622         (WebCore::CSSParser::parseSVGValue):
623         * ksvg2/css/SVGCSSStyleSelector.cpp:
624         (WebCore::CSSStyleSelector::applySVGProperty):
625         * ksvg2/css/SVGRenderStyle.cpp:
626         (WebCore::SVGRenderStyle::SVGRenderStyle):
627         (WebCore::SVGRenderStyle::operator==):
628         (WebCore::SVGRenderStyle::inheritedNotEqual):
629         (WebCore::SVGRenderStyle::inheritFrom):
630         * ksvg2/css/SVGRenderStyle.h:
631         (WebCore::SVGRenderStyle::NonInheritedFlags::):
632         (WebCore::SVGRenderStyle::setBitDefaults):
633         * ksvg2/css/SVGRenderStyleDefs.cpp:
634         (StyleTextData::StyleTextData):
635         (StyleTextData::operator==):
636         (StyleMiscData::StyleMiscData):
637         (StyleMiscData::operator==):
638         * ksvg2/css/SVGRenderStyleDefs.h:
639         (WebCore::):
640         (WebCore::StyleTextData::operator!=):
641         * ksvg2/svg/SVGStyledElement.cpp:
642         (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName):
643
644 2007-03-06  Justin Garcia  <justin.garcia@apple.com>
645
646         Reviewed by kevin
647         
648         <http://bugs.webkit.org/show_bug.cgi?id=12245>
649         FCKeditor: Remove Format sometimes doesn't work
650         <rdar://problem/4786404>
651         Underline style is not removed from selection after performing Remove Format
652
653         * editing/Editor.cpp:
654         (WebCore::Editor::removeFormattingAndStyle): Re-wrote this.
655
656 2007-03-07  Nikolas Zimmermann  <zimmermann@kde.org>
657
658         Reviewed by Oliver.
659
660         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12979
661         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12981
662
663         Guard against registering pending resources with empty id.
664         Be careful with calling recalcStyle() in SVGUseElement, when change is "Detach" we
665         have to use special code, as calling attach() on the shadow tree root element will crash,
666         because it has no (direct) parent node, only a shadow parent node element.
667
668         * ksvg2/misc/SVGDocumentExtensions.cpp:
669         (WebCore::SVGDocumentExtensions::addPendingResource):
670         * ksvg2/svg/SVGUseElement.cpp:
671         (WebCore::SVGUseElement::recalcStyle):
672
673 2007-03-06  Kevin Decker  <kdecker@apple.com>
674
675         Reviewed by Adele.
676
677         Fixed: <rdar://problem/5041660> REGRESSION: <keygen> element broken, prevents users from signing up for Thawte email certs
678         
679         * bindings/objc/DOM.mm:
680         (WebCore::createElementClassMap): Added <keygen> to the DOM bindings so it can be accessed from Objective-C.
681         * css/html4.css: Apply the look of the <select> element to <keygen>.
682         * html/HTMLElementFactory.cpp:
683         (WebCore::keygenConstructor): Added. 
684         (WebCore::createFunctionMap): Added keygen.
685         * html/HTMLSelectElement.cpp: Made const typeAheadTimeout variable static const. 
686         (WebCore::HTMLSelectElement::HTMLSelectElement):  Fix both HTMLSelectElement constructors to initialize the
687          same number of member variables. The fact that some fields were not initialized could (and would) crash the
688          keygen element when selecting different items. Also removed m_typedString(String()) from the constructor
689          initialization because this is not needed.
690
691 2007-03-06  Kevin McCullough  <kmccullough@apple.com>
692
693         Reviewed by Darin.
694
695         - Rename a function to clarify its purpose.
696
697         * WebCore.exp:
698         * loader/FrameLoader.cpp:
699         (WebCore::FrameLoader::registerURLSchemeAsLocal):
700         * loader/FrameLoader.h:
701
702 2007-03-06  Adam Roben  <aroben@apple.com>
703
704         Build fix.
705
706         * WebCore.exp: Updated symbols.
707
708 2007-03-06  Adam Roben  <aroben@apple.com>
709
710         Reviewed by Anders.
711
712         Added a parameter to all StringTruncator methods to specify whether
713         rounding hacks should be on or off.
714
715         No layout test possible.
716
717         * platform/StringTruncator.cpp:
718         (WebCore::stringWidth): Added disableRoundingHacks parameter.
719         (WebCore::truncateString): Ditto.
720         (WebCore::StringTruncator::centerTruncate): Ditto.
721         (WebCore::StringTruncator::rightTruncate): Ditto.
722         (WebCore::StringTruncator::width): Ditto.
723         * platform/StringTruncator.h: Ditto.
724         * platform/mac/FileChooserMac.mm:
725         (WebCore::FileChooser::basenameForWidth): Pass in false to
726         centerTruncate so that the truncation matches the way the text will be
727         rendered.
728
729 2007-03-06  Anders Carlsson  <acarlsson@apple.com>
730
731         Reviewed by Maciej.
732
733         <rdar://problem/5035045>
734         REGRESSION: WebKit browser doesn't display image at http://www.metoffice.gov.uk/weather/satellite/index.html
735         
736         It turns out WinIE does allow you to access images by their id as special document properties. However, this is only
737         allowed when the element also has a name attribute. The value of the name attribute is ignored and can even be empty!
738         
739         * bindings/js/kjs_html.cpp:
740         (KJS::JSHTMLDocument::namedItemGetter):
741         Return jsUndefined() if the collection is empty.
742         
743         * html/HTMLImageElement.cpp:
744         (WebCore::HTMLImageElement::parseMappedAttribute):
745         (WebCore::HTMLImageElement::insertedIntoDocument):
746         (WebCore::HTMLImageElement::removedFromDocument):
747         * html/HTMLImageElement.h:
748         Add the id attribute value to the extra named item map.
749         
750         * html/HTMLNameCollection.cpp:
751         (WebCore::HTMLNameCollection::traverseNextItem):
752         Check for images with name attributes that match, as well as elements with id attributes that match where
753         the element also has a name attribute.
754
755 2007-03-06  Anders Carlsson  <acarlsson@apple.com>
756
757         Reviewed by Adam.
758
759         WebCore part of patch to make it possible to have different user agents for different URLs.
760
761         * bindings/js/kjs_navigator.cpp:
762         (KJS::Navigator::getValueProperty):
763         * bindings/js/kjs_proxy.cpp:
764         (WebCore::KJSProxy::initScriptIfNeeded):
765         * loader/DocumentLoader.cpp:
766         (WebCore::DocumentLoader::setLoading):
767         * loader/FrameLoader.cpp:
768         (WebCore::FrameLoader::userAgent):
769         (WebCore::FrameLoader::loadResourceSynchronously):
770         (WebCore::FrameLoader::applyUserAgent):
771         * loader/FrameLoader.h:
772         * loader/FrameLoaderClient.h:
773         * platform/graphics/svg/SVGImageEmptyClients.h:
774         (WebCore::SVGEmptyFrameLoaderClient::userAgent):
775
776 2007-03-05  Kevin McCullough  <kmccullough@apple.com>
777
778         Reviewed by Mark and Dave H.
779
780         - rdar://problem/5038491
781         An oversight of the security fix that prevented remote from loading local is that it
782         prevents user style sheets when the site is remote.  This fixes that.
783
784         * loader/Cache.cpp: Propogate and check user style sheet flag.
785         (WebCore::createResource):
786         (WebCore::Cache::requestResource):
787         * loader/Cache.h: Propogate user style sheet flag.
788         * loader/CachedCSSStyleSheet.cpp: Propogate user style sheet flag.
789         (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
790         * loader/CachedCSSStyleSheet.h: Propogate user style sheet flag.
791         * loader/DocLoader.cpp: Propogate user style sheet flag.
792         (WebCore::DocLoader::requestResource):
793         * loader/SubresourceLoader.cpp: Propogate and check user style sheet flag.
794         (WebCore::SubresourceLoader::create):
795         * loader/SubresourceLoader.h: Add check for user style sheet flag.
796         * loader/loader.cpp: Propogate user style sheet flag.
797         (WebCore::Loader::load):
798         (WebCore::Loader::servePendingRequests):
799         * loader/loader.h: Propogate user style sheet flag.
800
801 2007-03-06  Nikolas Zimmermann  <zimmermann@kde.org>
802
803         Reviewed by Darin.
804
805         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12936 (Master bug used to track all current use problems.)
806
807         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12926 (transform attribute not respected in nested <use> elements)
808         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12267 (getElementById broken for <use>)
809         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12916 (use instance in symbol definition does not work)
810         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12917 (mouseout event does not occur after scaling use instance)
811         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12838 (SVG <use> DOM broken for script)
812
813         Added test: svg/custom/use-nested-transform.svg
814         Added test: svg/custom/struct-use-09-b.svg (not yet official W3C-SVG-1.1 testcase)
815         Fixes test: svg/custom/use-elementInstance-event-target.svg (rectangle now turns green on first click)
816
817         Fix all (except one) known <use> bug. The remaining bug (12630) is not crucical at all.
818         Enable <use> again as default SVG feature, as discussed on webkit-dev.
819
820         dom/Element.cpp needed following tweak: set hasParentStyle to true, if there is no parentNode
821         available - which happens for <use> nodes, as it's a shadow node. This fixes recalcStyle behaviour.
822         Override recalcStyle() in SVGUseElement, and properly forward the call to the shadow tree root element.
823         The shadow tree now receives proper style updates (without having to recreate the whole tree!).
824
825         Override attributeChanged() in SVGUseElement and only call notifyAttributeChange if one of x/y/width/height/xlink:href
826         attribute changed - otherwhise we'll end up recreating the tree for every transform/style/(non-existing-attribute) change.
827
828         Do not override transform in nested use situations, but correctly append (right-sided) the translation of the <use> element.
829         Some cosmetic fixes: don't add transform="translate(0 0)" attributes if both x/y values are null in the shadow tree.
830
831         Factor out logic for replacing symbol/svg tags in the shadow tree, and also invoke it during expandUseElementsInShadowTree -
832         otherwhise <symbol><use xlink:href="#someOtherSymbol"></symbol> the <use> gets expanded to a <symbol>. Though no one expands
833         the <symbol> element - and we're end up in hitting an assertion. Avoid that.
834
835         * bindings/js/JSSVGElementWrapperFactory.cpp:
836         * bindings/js/kjs_dom.cpp:
837         (KJS::toJS):
838         * bindings/objc/DOM.mm:
839         (WebCore::createElementClassMap):
840         * dom/Element.cpp:
841         (WebCore::Element::recalcStyle):
842         * ksvg2/svg/SVGElement.cpp:
843         (WebCore::shadowTreeParentElementForShadowTreeElement):
844         (WebCore::SVGElement::dispatchEvent):
845         * ksvg2/svg/SVGElementInstance.cpp:
846         * ksvg2/svg/SVGElementInstance.h:
847         * ksvg2/svg/SVGElementInstance.idl:
848         * ksvg2/svg/SVGElementInstanceList.cpp:
849         * ksvg2/svg/SVGElementInstanceList.h:
850         * ksvg2/svg/SVGElementInstanceList.idl:
851         * ksvg2/svg/SVGStyledElement.cpp:
852         (WebCore::SVGStyledElement::notifyAttributeChange):
853         (WebCore::SVGStyledElement::updateElementInstance):
854         * ksvg2/svg/SVGStyledElement.h:
855         * ksvg2/svg/SVGUseElement.cpp:
856         (WebCore::SVGUseElement::attributeChanged):
857         (WebCore::SVGUseElement::notifyAttributeChange):
858         (WebCore::SVGUseElement::recalcStyle):
859         (WebCore::SVGUseElement::buildPendingResource):
860         (WebCore::SVGUseElement::buildShadowTreeForSymbolTag):
861         (WebCore::SVGUseElement::alterShadowTreeForSVGTag):
862         (WebCore::SVGUseElement::buildShadowTree):
863         (WebCore::SVGUseElement::expandUseElementsInShadowTree):
864         (WebCore::SVGUseElement::attachShadowTree):
865         * ksvg2/svg/SVGUseElement.h:
866         * ksvg2/svg/SVGUseElement.idl:
867         * ksvg2/svg/svgtags.in:
868
869 2007-03-05  Brady Eidson  <beidson@apple.com>
870
871         Reviewed by John
872
873         Fixes <rdar://problem/4974258>
874         Adds some key null checking
875
876         * bindings/js/kjs_html.cpp:
877         (KJS::JSHTMLElement::implementsCall): Null check doc/frame
878         * bindings/objc/DOMInternal.mm:
879         (-[WebScriptObject _initializeScriptDOMNodeImp]): Null check doc/frame
880
881 2007-03-06  Nikolas Zimmermann  <zimmermann@kde.org>
882
883         Reviewed by Darin.
884
885         Path::normalAngleAtLength() / Path::pointAtLength() don't work correctly.
886         pointAtLength() was not implemented, basically and normalAngleAtLength()
887         had a bug in the tangent slope calculation.
888
889         The normalAngleAtLength() stuff can only be tested with my local textPath support.
890         New LayoutTest: svg/custom/path-textPath-simulation.svg
891
892         * platform/graphics/Path.cpp:
893         (WebCore::pathLengthApplierFunction):
894         * platform/graphics/PathTraversalState.cpp:
895         (WebCore::PathTraversalState::quadraticBezierTo):
896         (WebCore::PathTraversalState::cubicBezierTo):
897         * platform/graphics/PathTraversalState.h:
898         (WebCore::PathTraversalState::):
899
900 2007-03-05  Alexey Proskuryakov  <ap@webkit.org>
901
902         Reviewed by Darin.
903
904         http://bugs.webkit.org/show_bug.cgi?id=12970
905         Fix and import 4XPath test_core_functions.html test
906
907         * xml/XPathExpression.cpp:
908         (WebCore::XPathExpression::evaluate): Fully initialize the evaluation context.
909
910         * xml/XPathFunctions.cpp:
911         (WebCore::XPath::FunSubstring::doEvaluate): Fixed handling of edge cases.
912         (WebCore::XPath::FunRound::round): Reimplemented to match the spec; exposed FunRound::round() to be used in
913         other functions.
914
915 2007-03-05  Alexey Proskuryakov  <ap@webkit.org>
916
917         Reviewed by Darin.
918
919         http://bugs.webkit.org/show_bug.cgi?id=12954
920         XPath relative operations are implemented incorrectly
921
922         * xml/XPathPredicate.cpp:
923         (WebCore::XPath::NumericOp::doEvaluate):
924         (WebCore::XPath::EqTestOp::compare):
925         (WebCore::XPath::EqTestOp::doEvaluate):
926         Reimplemented relative equality operations to match the spec.
927
928         * xml/XPathPredicate.h:
929         (WebCore::XPath::NumericOp::):
930         (WebCore::XPath::EqTestOp::):
931         Moved relative operations to EqTestOp.
932
933         * xml/XPathGrammar.y:
934         * xml/XPathParser.cpp:
935         (WebCore::XPath::Parser::nextTokenInternal):
936         (WebCore::XPath::Parser::lex):
937         Adapted for the above changes.
938
939 2007-03-05  Mark Rowe  <mrowe@apple.com>
940
941         Reviewed by Lars.
942
943         Fix http://bugs.webkit.org/show_bug.cgi?id=12947
944         Bug 12947: REGRESSION: ASSERTION FAILED: maxWidth >= 0 in StringTruncator.cpp:109 in WebCore::truncateString()
945
946         Handle nil window correctly in toUserSpace and toDeviceSpace.  On Intel Macs a message to nil that returns a
947         float will return 0.0.  We use this as the divisor in calculating a scale factor, which results in NaN being
948         introduced into our rect.
949
950         * platform/mac/ScreenMac.mm:
951         (WebCore::toUserSpace):
952         (WebCore::toDeviceSpace):
953
954 2007-03-05  Rob Buis  <buis@kde.org>
955
956         Reviewed by Darin.
957
958         http://bugs.webkit.org/show_bug.cgi?id=12868
959         parts of the CSS classes in this simple SVG example are not applied
960
961         Make sure the xml stylesheets are parsed in strict mode.
962
963         * dom/ProcessingInstruction.cpp:
964         (WebCore::ProcessingInstruction::parseStyleSheet):
965
966 2007-03-04  Adele Peterson  <adele@apple.com>
967
968         Reviewed by Darin.
969
970         Change to dispatch the keypress event during the defaultEventHandler for keydown events.  This matches IE behavior.
971         This is preparation for fixing event dispatch with input methods (http://bugs.webkit.org/show_bug.cgi?id=10871)
972
973         Test: fast/events/keydown-keypress-preventDefault.html
974
975         * dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler): Call the defaultKeyboardEventHandler for keydown events.
976         * page/EventHandler.cpp:
977         (WebCore::eventTargetNodeForDocument): Return 0 instead of false since the return type in EventTargetNode.
978         (WebCore::EventHandler::keyEvent): Removed dispatch of keypress event, since this is now done in the default event handler.
979         (WebCore::EventHandler::defaultKeyboardEventHandler): For keydown events, create and dispatch a keypress event.
980
981 2007-03-04  Alexey Proskuryakov  <ap@webkit.org>
982
983         Reviewed by Nikolas Zimmermann (yay!).
984
985         http://bugs.webkit.org/show_bug.cgi?id=12962
986         4XPath tests crash on lang() function
987
988         Covered by 4XPath tests, to be landed later.
989
990         * platform/StringImpl.cpp:
991         (WebCore::StringImpl::reverseFind): Do not crash with empty strings.
992         * xml/XPathFunctions.cpp:
993         (WebCore::XPath::FunLang::doEvaluate): Do not crash when an element has no
994         attributes. Use a proper namespace for xml:lang (not sure where "xms" came from).
995         Rewrote the algorithm for suffix removing to match the spec.
996
997 2007-03-02  Anders Carlsson  <acarlsson@apple.com>
998
999         Reviewed by Darin.
1000
1001         <rdar://problem/5028165> 
1002         http://bugs.webkit.org/show_bug.cgi?id=12915
1003         REGRESSION: XMLHttpRequest.abort() does not stop loading (12915)
1004         
1005         * loader/DocumentLoader.cpp:
1006         (WebCore::DocumentLoader::stopLoading):
1007         Save the value of m_loading since calling FrameLoader::stopLoading could set it to false.
1008         
1009         * loader/SubresourceLoader.cpp:
1010         (WebCore::SubresourceLoader::didCancel):
1011         * loader/SubresourceLoader.h:
1012         Get rid of didCancel now, it's not needed anymore.
1013         
1014         * xml/xmlhttprequest.cpp:
1015         (WebCore::XMLHttpRequest::abort):
1016         Call cancel() instead of stopLoading(). Also, set m_aborted to true so the XMLHttpRequest object
1017         won't be dereferenced in didFail when aborting.
1018
1019 2007-03-04  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
1020
1021         Reviewed by Nikolas Zimmermann.
1022
1023         Move ScrollView stubs to ScrollViewGdk.cpp
1024
1025         * platform/gdk/FrameGdk.h: remove comment that no longer makes sense
1026         * platform/gdk/ScrollViewGdk.cpp:
1027         (WebCore::ScrollView::addChild):
1028         (WebCore::ScrollView::removeChild):
1029         (WebCore::ScrollView::scrollPointRecursively):
1030         (WebCore::ScrollView::inWindow):
1031         (WebCore::ScrollView::wheelEvent):
1032         (WebCore::ScrollView::updateScrollbars):
1033         (WebCore::ScrollView::updateScrollInfo):
1034         (WebCore::ScrollView::windowToContents):
1035         (WebCore::ScrollView::contentsToWindow):
1036         (WebCore::ScrollView::scrollbarUnderMouse):
1037         * platform/gdk/TemporaryLinkStubs.cpp:
1038
1039 2007-03-02  Kevin McCullough  <kmccullough@apple.com>
1040
1041         Reviewed by Geoff.
1042
1043         - rdar://problem/4922454
1044         - This fixes a security issue by making remote referrers not able to access local
1045         resources, unless they register their schemes to be treated as local. The result is
1046         that those schemes can access local resources and cannot be accessed by remote
1047         referrers.
1048         Because this behavior is new a link-on-or-after check is made to determine if the
1049         app should use the older, less safe, behavior.
1050
1051         * WebCore.exp: added exported functions
1052         * bindings/objc/DOM.mm: consolodated function to base class
1053         (-[DOMElement image]):
1054         (-[DOMElement _imageTIFFRepresentation]):
1055         * dom/Document.cpp: Cache the document's ability to load local resources.
1056         (WebCore::Document::Document):
1057         (WebCore::Document::setURL):
1058         (WebCore::Document::shouldBeAllowedToLoadLocalResources):
1059         (WebCore::Document::stylesheetLoaded):
1060         * dom/Document.h: Cache the docuent's ability to load local resources.
1061         (WebCore::Document::getPendingSheet):
1062         (WebCore::Document::isAllowedToLoadLocalResources):
1063         * html/HTMLImageLoader.cpp: Moved functionality into base class.
1064         (WebCore::HTMLImageLoader::updateFromElement):
1065         (WebCore::HTMLImageLoader::dispatchLoadEvent):
1066         * html/HTMLLinkElement.cpp: Handles null returns correctly now.
1067         * html/HTMLTokenizer.cpp: Moved functionality into base class.
1068         (WebCore::HTMLTokenizer::notifyFinished):
1069         * ksvg2/misc/SVGImageLoader.cpp: Moved functionality into base class.
1070         (WebCore::SVGImageLoader::dispatchLoadEvent):
1071         * loader/Cache.cpp: Checks if the cached resource can be loaded.
1072         (WebCore::Cache::requestResource):
1073         * loader/CachedCSSStyleSheet.cpp: Moved functionality into base class.
1074         (WebCore::CachedCSSStyleSheet::ref):
1075         (WebCore::CachedCSSStyleSheet::error):
1076         * loader/CachedImage.cpp: Moved functionality into base class.
1077         (WebCore::CachedImage::CachedImage):
1078         * loader/CachedImage.h: Moved functionality into base class.
1079         (WebCore::CachedImage::canRender):
1080         * loader/CachedResource.cpp: Cache if the CachedResource should be treated as local
1081         (WebCore::CachedResource::CachedResource):
1082         * loader/CachedResource.h: Moved functionality into base class.
1083         (WebCore::CachedResource::errorOccurred):
1084         (WebCore::CachedResource::shouldTreatAsLocal):
1085         * loader/CachedScript.cpp: Moved functionality into base class.
1086         (WebCore::CachedScript::CachedScript):
1087         * loader/CachedScript.h: Moved functionality into base class.
1088         (WebCore::CachedScript::schedule):
1089         * loader/CachedXBLDocument.cpp: Moved functionality into base class.
1090         (WebCore::CachedXBLDocument::error):
1091         * loader/CachedXSLStyleSheet.cpp: Moved functionality into base class.
1092         (WebCore::CachedXSLStyleSheet::error):
1093         * loader/FrameLoader.cpp: See comments for each function below.
1094         (WebCore::FrameLoader::loadSubframe): Use new canLoad.
1095         (WebCore::FrameLoader::restrictAccessToLocal): return value of linked-on-or-after check.
1096         (WebCore::FrameLoader::setRestrictAccessToLocal): set value for linked-on-or-after check.
1097         (WebCore::localSchemes): Return set of schemes that are to be treated as local.
1098         (WebCore::FrameLoader::loadPlugin): Use new canLoad.
1099         (WebCore::FrameLoader::canLoad): Now multiple functions that each do the same work but some can take advantage of the cached values, if they were computed previously.
1100         (WebCore::FrameLoader::shouldHideReferrer): Extracted out the logic to determine if the referrer should be hidden so it is only calculated when needed.
1101         (WebCore::FrameLoader::loadResourceSynchronously): No longer calls canLoad to get hideReferrer info.
1102         (WebCore::FrameLoader::registerSchemeAsLocal): Functionality to register a scheme to be treated as local.
1103         (WebCore::FrameLoader::treatURLAsLocal): Given a URL this function determines if it should be treated as local.
1104         * loader/FrameLoader.h: Declared functions for this security fix.  See above.
1105         * loader/MainResourceLoader.cpp: Optized order of bools to regain performance.
1106         (WebCore::MainResourceLoader::continueAfterContentPolicy):
1107         * loader/SubresourceLoader.cpp: Now restricts remote from loading local resources.
1108         (WebCore::SubresourceLoader::create):
1109         * page/EventHandler.cpp: Moved functionality into base class.
1110         (WebCore::selectCursor):
1111         * platform/KURL.cpp: KURLs need to check all the registered schemes now.
1112         (WebCore::KURL::isLocalFile):
1113         * rendering/HitTestResult.cpp: Moved functionality into base class.
1114         (WebCore::HitTestResult::image):
1115         * rendering/RenderImage.cpp: Moved functionality into base class.
1116         (WebCore::RenderImage::setCachedImage):
1117         (WebCore::RenderImage::imageChanged):
1118         (WebCore::RenderImage::paint):
1119         (WebCore::RenderImage::layout):
1120         (WebCore::RenderImage::calcAspectRatioWidth):
1121         (WebCore::RenderImage::calcAspectRatioHeight):
1122         * rendering/RenderImage.h: Moved functionality into base class.
1123         (WebCore::RenderImage::errorOccurred):
1124         * rendering/RenderListItem.cpp: Moved functionality into base class.
1125         (WebCore::RenderListItem::setStyle):
1126         * rendering/RenderListMarker.cpp: Moved functionality into base class.
1127         (WebCore::RenderListMarker::isImage):
1128         * xml/xmlhttprequest.cpp: Check doc's cached value instead of determining independently.
1129         (WebCore::XMLHttpRequest::urlMatchesDocumentDomain):
1130
1131 2007-03-02  Justin Garcia  <justin.garcia@apple.com>
1132
1133         Reviewed by kevin
1134         
1135         <rdar://problem/5028447>
1136         REGRESSION: Gmail Editor: Copied message text pastes at the wrong font size
1137
1138         * editing/markup.cpp:
1139         (WebCore::createMarkup): The style of the div that holds
1140         a fully selected body's styles didn't include styles inherited
1141         from the body's ancestors.
1142         
1143 2007-03-02  Justin Garcia  <justin.garcia@apple.com>
1144
1145         Reviewed by harrison
1146
1147         <rdar://problem/4545040>
1148         innerHTML does not HTML-escape text nodes inside PRE elements
1149         <rdar://problem/5027857>
1150         Pasting into Mail from Safari's view-source window renders the HTML
1151
1152         * editing/HTMLInterchange.cpp:
1153         (WebCore::convertHTMLTextToInterchangeFormat): Send this function
1154         the node that the text comes from as a parameter.  It shouldn't convert
1155         '\n's to spaces/nbsps if the text is coming from text where newlines are
1156         preserved.
1157         * editing/HTMLInterchange.h:
1158         * editing/markup.cpp:
1159         (WebCore::startMarkup): Escape text inside the children of PREs.
1160
1161 2007-03-02  Sam Weinig  <sam@webkit.org>
1162
1163         Reviewed by Anders.
1164
1165         Try to fix the Qt build.
1166
1167         * platform/qt/TemporaryLinkStubs.cpp: Add stubs.
1168         (WebCore::searchMenuNoRecentSearchesText):
1169         (WebCore::searchMenuRecentSearchesText):
1170         (WebCore::searchMenuClearRecentSearchesText):
1171         (WebCore::AXWebAreaText):
1172         (WebCore::AXLinkText):
1173         (WebCore::AXListMarkerText):
1174         (WebCore::AXImageMapText):
1175         (WebCore::AXHeadingText):
1176
1177 2007-03-02  David Harrison  <harrison@apple.com>
1178
1179         Suggested by Darin.
1180
1181         A more efficient solution to rdar://4961431.
1182
1183         * bridge/mac/WebCoreAXObject.mm:
1184         (-[WebCoreAXObject accessibilityIsIgnored]):
1185
1186 2007-03-01  Justin Garcia  <justin.garcia@apple.com>
1187
1188         Reviewed by john
1189         
1190         <rdar://problem/5032095>
1191         Gmail Editor: Copied text pastes on a new line instead of current line
1192         
1193         Start merge failed to occur because positionAtStartOfInsertedContent
1194         had a bug.
1195
1196         * editing/ReplaceSelectionCommand.cpp:
1197         (WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent):
1198         Was failing when inserting <span><div>foo/div></span>. Return the 
1199         inserted content's first VisiblePosition.
1200
1201 2007-03-02  Dave Hyatt  <hyatt@apple.com>
1202
1203         Fix crasher in glyph map code (buffer overrun).
1204
1205         Reviewed by darin
1206
1207         * platform/win/GlyphPageTreeNodeWin.cpp:
1208         (WebCore::GlyphPage::fill):
1209
1210 2007-03-01  Antti Koivisto  <antti@apple.com>
1211
1212         Reviewed by Maciej.
1213
1214         Fix for http://bugs.webkit.org/show_bug.cgi?id=12895
1215         REGRESSION: imagemap: pointer cursor is shown everywhere
1216         <rdar://problem/5028163>
1217  
1218         Image with imagemap should never itself be URLElement in hit test results. 
1219                
1220         No layout test, cursor state can't be captured.
1221
1222         * rendering/RenderLayer.cpp:
1223         (WebCore::RenderLayer::hitTest):
1224
1225 2007-03-01  Antti Koivisto  <antti@apple.com>
1226
1227         Reviewed by Maciej.
1228         
1229         Fix http://bugs.webkit.org/show_bug.cgi?id=12690
1230         REGRESSION: can not log in to bank of america with TOT webkit
1231         <rdar://problem/4990044>
1232         
1233         and http://bugs.webkit.org/show_bug.cgi?id=12604
1234         REGRESSION: After closing the "Would you like to save password" sheet, the form fails 
1235         to submit automatically at http://www.mac.com/WebObjects/HomePage.woa
1236         <rdar://problem/4871752>
1237         
1238         and http://bugs.webkit.org/show_bug.cgi?id=12020
1239         REGRESSION: Flickr uploading broken
1240         <rdar://problem/4928662>
1241         
1242         Turn protection against multiple forms submission back on. This approach is buggy 
1243         but it is way better than not having it at all. Not protecting against this
1244         breaks number of major sites.
1245         
1246         * bridge/mac/WebCoreAXObject.mm:
1247         (-[WebCoreAXObject accessibilityPerformAction:]):
1248         * loader/FrameLoader.cpp:
1249         (WebCore::FrameLoader::resetMultipleFormSubmissionProtection):
1250         (WebCore::FrameLoader::submitForm):
1251         (WebCore::FrameLoader::receivedMainResourceError):
1252         * loader/FrameLoader.h:
1253         * page/EventHandler.cpp:
1254         (WebCore::EventHandler::keyEvent):
1255         * page/Frame.cpp:
1256         (WebCore::Frame::setView):
1257         * page/mac/EventHandlerMac.mm:
1258         (WebCore::EventHandler::mouseDown):
1259
1260 2007-03-01  Kevin McCullough  <kmccullough@apple.com>
1261
1262         Reviewed by Adam.
1263
1264         - Added the test case: external-script-URL-location.html
1265         - Fix an issue where the url of a document is null after an open if the document
1266         has no parent.
1267
1268         * dom/Document.cpp:
1269         (WebCore::Document::open):
1270
1271 2007-03-01  Anders Carlsson  <acarlsson@apple.com>
1272
1273         Reviewed by Darin.
1274
1275         <rdar://problem/4960250> 
1276         http://bugs.webkit.org/show_bug.cgi?id=11627
1277         REGRESSION: Reproducible crash at IMDb in WebCore::FrameLoader::stopLoadingSubframes
1278         
1279         In rare cases, we could end up calling checkLoadComplete twice for the same frame. This would cause the 
1280         didFailProvisionalLoad delegate method to be called twice for the same frame, and also cause the provisional document loader
1281         to be reset to null when other code wasn't expecting it.
1282         
1283         This regressed in revision 10904 with the fix for <rdar://problem/4184719>. The fix is to only call stopLoading on the frame
1284         if either the document loader is loading, or the document is still being parsed. I've verified that the bug is still fixed and
1285         that no leaks occur.
1286         
1287         * loader/DocumentLoader.cpp:
1288         (WebCore::DocumentLoader::stopLoading):
1289
1290 2007-03-01  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
1291
1292         Reviewed by Darin.
1293
1294         Fix ARM crash due to accessing non-4-byte-aligned memory
1295         as 32-bit values.
1296
1297         * platform/AtomicString.cpp:
1298         (WebCore::UCharBufferTranslator::equal):
1299
1300 2007-03-01  David Harrison  <harrison@apple.com>
1301
1302         Reviewed by Darin.
1303
1304         <rdar://problem/5033905> Have the DOM secondary thread check raise an exception by default
1305
1306         * platform/mac/ThreadCheck.mm:
1307         (WebCore::_WebCoreThreadViolationCheck):
1308         Initialize threadViolationIsException to true.
1309
1310 2007-03-01  Brady Eidson  <beidson@apple.com>
1311
1312         Reviewed by Darin
1313
1314         <rdar://problem/5030628> - Crash opening a new window with the
1315         "New windows open to the same page" pref set
1316
1317         * history/HistoryItem.cpp:
1318         (WebCore::HistoryItem::HistoryItem): Set the m_subItems vector capacity correctly
1319
1320 2007-03-01  Alexey Proskuryakov  <ap@webkit.org>
1321
1322         Reviewed by Maciej.
1323
1324         http://bugs.webkit.org/show_bug.cgi?id=12801
1325         Assertion failure in createMarkup() (root) when doing Select All, Copy in an SVG document
1326
1327         Test: editing/pasteboard/createMarkup-assert.xml
1328
1329         * editing/markup.cpp:
1330         (WebCore::createMarkup): Removed the assertion, because it's wrong in a non-HTML world.
1331
1332 2007-02-28  Adam Roben  <aroben@apple.com>
1333
1334         Reviewed by Oliver and Hyatt.
1335
1336         Fix <rdar://problem/5024233> Crash while using Find on empty document
1337
1338         No layout test possible, as this involves a null document.
1339
1340         * dom/Range.cpp:
1341         (WebCore::rangeOfContents): Added an ASSERT.
1342         * page/Frame.cpp:
1343         (WebCore::Frame::findString): Added a null-check for document().
1344         (WebCore::Frame::markAllMatchesForText): Ditto.
1345
1346 2007-02-28  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
1347
1348         Not reviewed - simple gdk build fix.
1349
1350         Add stubs for newly introduced localized strings.
1351
1352         * platform/gdk/TemporaryLinkStubs.cpp:
1353         (WebCore::searchMenuNoRecentSearchesText):
1354         (WebCore::searchMenuRecentSearchesText):
1355         (WebCore::searchMenuClearRecentSearchesText):
1356
1357 2007-02-28  Brady Eidson  <beidson@apple.com>
1358
1359         Reviewed by Beth
1360
1361         Move the Thread Safety Check functions into their own header for export to WebKit
1362
1363         * WebCore.exp: Export the function
1364         * WebCore.xcodeproj/project.pbxproj: 
1365         * bindings/scripts/CodeGeneratorObjC.pm: Include the new header
1366         * platform/Logging.h: Move stuff to ThreadCheck.h
1367         * platform/ThreadCheck.h: Added.
1368         * platform/mac/LoggingMac.mm: Move stuff to ThreadCheck.mm
1369         * platform/mac/ThreadCheck.mm: Added.
1370         (WebCore::_WebCoreThreadViolationCheck):
1371         (WebCoreReportThreadViolation):
1372
1373 2007-02-28  Beth Dakin  <bdakin@apple.com>
1374
1375         Reviewed by Brady.
1376
1377         Fix for http://bugs.webkit.org/show_bug.cgi?id=12923 REGRESSION: 
1378         Assertion failure copying standalone image
1379
1380         * platform/mac/PasteboardMac.mm:
1381         (WebCore::Pasteboard::writeImage): Use the CachedImage as the 
1382         resource. This makes more sense anyway. There is no need to null-
1383         check the renderer or the CachedImage since we return early if 
1384         there is no Image* and the HitTestResult::image() function checks 
1385         for these things.
1386
1387 2007-02-28  Adele Peterson  <adele@apple.com>
1388
1389         Reviewed by Beth.
1390
1391         Fix for <rdar://problem/4887423> REGRESSION: search results popup menu strings are not localized
1392         and <rdar://problem/3517227> accessibility-related strings in WebCore are not localized
1393
1394         Use localized strings from WebKit instead of hard coded strings.
1395
1396         * bridge/mac/WebCoreAXObject.mm: (-[WebCoreAXObject roleDescription]):
1397         * page/mac/WebCoreViewFactory.h:
1398         * platform/LocalizedStrings.h:
1399         * platform/mac/LocalizedStringsMac.mm:
1400         (WebCore::searchMenuNoRecentSearchesText):
1401         (WebCore::searchMenuRecentSearchesText):
1402         (WebCore::searchMenuClearRecentSearchesText):
1403         (WebCore::AXWebAreaText):
1404         (WebCore::AXLinkText):
1405         (WebCore::AXListMarkerText):
1406         (WebCore::AXImageMapText):
1407         (WebCore::AXHeadingText):
1408         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::itemText):
1409
1410 2007-02-27  Antti Koivisto  <antti@apple.com>
1411
1412         Reviewed by Maciej.
1413
1414         - fix http://bugs.webkit.org/show_bug.cgi?id=12911
1415         GoogleDocs: Ordered lists don't update immediately when start attribute changed
1416         
1417         Update list marker value when start attribute changes.
1418
1419         * html/HTMLOListElement.cpp:
1420         (WebCore::HTMLOListElement::parseMappedAttribute):
1421
1422 2007-02-28  Nikolas Zimmermann  <zimmermann@kde.org>
1423
1424         Reviewed by Maciej.
1425
1426         Corrected the use of the new ENABLE() macros in some ksvg2/svg files.
1427         Add new build-webkit flags "--(no-)xpath" / "--(no-)xslt", to be able
1428         to switch off build features easily. Also add "--(no-)svg-experimental-features"
1429         flag, to be able to test filters/animations/use/foreignObject easily.
1430
1431         * DerivedSources.make:
1432         * ksvg2/scripts/make_names.pl:
1433         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
1434         * ksvg2/svg/SVGStyledElement.cpp:
1435         * ksvg2/svg/SVGUseElement.cpp:
1436
1437 2007-02-28  Rob Buis  <buis@kde.org>
1438
1439         Reviewed by Maciej.
1440
1441         http://bugs.webkit.org/show_bug.cgi?id=12609
1442         Any SVG element will create renderers even when children of HTML elements
1443
1444         Allow creation of svg renderers only when parent is SVG, except for
1445         the <svg> element.
1446
1447         * ksvg2/svg/SVGAElement.h:
1448         * ksvg2/svg/SVGAnimationElement.h:
1449         * ksvg2/svg/SVGCircleElement.h:
1450         * ksvg2/svg/SVGClipPathElement.h:
1451         (WebCore::SVGClipPathElement::rendererIsNeeded):
1452         * ksvg2/svg/SVGDefsElement.cpp:
1453         * ksvg2/svg/SVGDefsElement.h:
1454         * ksvg2/svg/SVGDescElement.h:
1455         (WebCore::SVGDescElement::rendererIsNeeded):
1456         * ksvg2/svg/SVGElement.cpp:
1457         * ksvg2/svg/SVGEllipseElement.h:
1458         * ksvg2/svg/SVGFilterElement.h:
1459         (WebCore::SVGFilterElement::rendererIsNeeded):
1460         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
1461         (WebCore::SVGFilterPrimitiveStandardAttributes::rendererIsNeeded):
1462         * ksvg2/svg/SVGForeignObjectElement.h:
1463         * ksvg2/svg/SVGGElement.h:
1464         * ksvg2/svg/SVGGradientElement.h:
1465         * ksvg2/svg/SVGImageElement.h:
1466         * ksvg2/svg/SVGLineElement.h:
1467         * ksvg2/svg/SVGMarkerElement.h:
1468         * ksvg2/svg/SVGMaskElement.h:
1469         * ksvg2/svg/SVGPathElement.h:
1470         * ksvg2/svg/SVGPatternElement.h:
1471         * ksvg2/svg/SVGPolyElement.h:
1472         * ksvg2/svg/SVGRectElement.h:
1473         * ksvg2/svg/SVGStopElement.h:
1474         * ksvg2/svg/SVGStyledElement.cpp:
1475         (WebCore::SVGStyledElement::rendererIsNeeded):
1476         * ksvg2/svg/SVGStyledElement.h:
1477         * ksvg2/svg/SVGSwitchElement.h:
1478         * ksvg2/svg/SVGSymbolElement.h:
1479         (WebCore::SVGSymbolElement::rendererIsNeeded):
1480         * ksvg2/svg/SVGTRefElement.h:
1481         * ksvg2/svg/SVGTSpanElement.h:
1482         * ksvg2/svg/SVGTextElement.h:
1483         * ksvg2/svg/SVGTitleElement.h:
1484         (WebCore::SVGTitleElement::rendererIsNeeded):
1485         * ksvg2/svg/SVGUseElement.h:
1486         * ksvg2/svg/SVGViewElement.h:
1487         (WebCore::SVGViewElement::rendererIsNeeded):
1488
1489 2007-02-28  Rob Buis  <buis@kde.org>
1490
1491         Reviewed by Maciej.
1492
1493         http://bugs.webkit.org/show_bug.cgi?id=12913
1494         Markers do not render in webkit when it misses markerWidth or markerHeight attribute
1495
1496         Set defaults for markerWidth/markerHeight so markers that do not specify them render.
1497
1498         * ksvg2/svg/SVGMarkerElement.cpp:
1499         (WebCore::SVGMarkerElement::SVGMarkerElement):
1500
1501 2007-02-27  Anders Carlsson  <acarlsson@apple.com>
1502
1503         * loader/ResourceLoader.cpp:
1504         (WebCore::ResourceLoader::~ResourceLoader):
1505         Remove comment.
1506
1507 2007-02-27  Justin Garcia  <justin.garcia@apple.com>
1508
1509         Reviewed by oliver
1510
1511         <rdar://problem/5027300>
1512         REGRESSION: Images inserted with align left/right are lost
1513
1514         * editing/ReplaceSelectionCommand.cpp:
1515         (WebCore::ReplaceSelectionCommand::shouldMerge):
1516         Don't attempt to merge to or from a position before 
1517         or after a block because it will be a no-op and
1518         lead to infinite recursion.
1519         In this case it instead resulted in content loss because 
1520         of bugs in start/endOfParagraph (5027702).
1521         * editing/visible_units.cpp: Added two FIXMEs for
1522         the problems with start/endOfParagraph.
1523
1524 2007-02-27  Anders Carlsson  <acarlsson@apple.com>
1525
1526         Reviewed by Geoff.
1527
1528         Make resource load delegate methods pass the right document loader.
1529         
1530         * loader/FrameLoader.cpp:
1531         (WebCore::FrameLoader::willSendRequest):
1532         (WebCore::FrameLoader::didReceiveResponse):
1533         (WebCore::FrameLoader::didReceiveData):
1534         (WebCore::FrameLoader::didFailToLoad):
1535         (WebCore::FrameLoader::didFinishLoad):
1536         (WebCore::FrameLoader::didReceiveAuthenticationChallenge):
1537         (WebCore::FrameLoader::didCancelAuthenticationChallenge):
1538         Use the resource loader's document loader instead of the active one.
1539         
1540         * loader/MainResourceLoader.cpp:
1541         (WebCore::MainResourceLoader::receivedError):
1542         Make it so we send the frame load delegate method before the resource load delegate method.
1543         This was a regression from 2.0 and was caused by the fix to rdar://problem/4609195. Because the way the loader
1544         now works, both delegate methods will be called.
1545         
1546         * loader/ResourceLoader.cpp:
1547         (WebCore::ResourceLoader::ResourceLoader):
1548         * loader/ResourceLoader.h:
1549         (WebCore::ResourceLoader::documentLoader):
1550         Add document loader pointer to ResourceLoader.
1551
1552 2007-02-27  Mitz Pettel  <mitz@webkit.org>
1553
1554         Reviewed by Hyatt.
1555
1556         - fix http://bugs.webkit.org/show_bug.cgi?id=12910
1557           REGRESSION (r18756-r18765): list-bullet doesn't redraw properly when changing the list's content using JavaScript
1558
1559         Test: fast/repaint/list-marker.html
1560
1561         * rendering/RenderListItem.cpp:
1562         (WebCore::RenderListItem::positionListMarker): Add the marker to the visual
1563         overflow of all its ancestor blocks up to the list item. This needs to be
1564         done here since the marker is positioned only after those blocks have been
1565         laid out.
1566
1567 2007-02-27  Antti Koivisto  <antti@apple.com>
1568
1569         Reviewed by Hyatt.
1570         
1571         - fix http://bugs.webkit.org/show_bug.cgi?id=12918
1572         REGRESSION: Google Finance dropdown Flickers
1573         <rdar://4988039>
1574         
1575         If a node dies while mouse is over it, it is still supposed to receive
1576         mouseout event (wasn't case in Tiger webkit). However this event should 
1577         not propagate to any other nodes. This patch matches Firefox behavior in
1578         this respect.
1579
1580         * dom/EventTargetNode.cpp:
1581         (WebCore::EventTargetNode::dispatchGenericEvent):
1582
1583 2007-02-27  Geoffrey Garen  <ggaren@apple.com>
1584
1585         Reviewed by Maciej Stachowiak.
1586         
1587         Fixed http://bugs.webkit.org/show_bug.cgi?id=12659 | <rdar://problem/4954306>
1588         JS objects not collected after closing window @ ebay.com/maps.google.com
1589
1590         Garbage collect in the KJSProxy destructor, after clearing our reference
1591         to the interpreter, because that's when the interpreter has torn down fully.
1592
1593         (Technically speaking, we can't *prove* that we have the only reference to 
1594         our interpreter, but that's how it works in practice, and manual garbage 
1595         collection is just an opportunistic optimization, so it's OK for it to 
1596         work in practice even if it can't be proven in theory.)
1597         
1598         Layout tests pass. No leaks reported.
1599
1600         * bindings/js/kjs_proxy.cpp:
1601         (WebCore::KJSProxy::~KJSProxy):
1602         * bindings/js/kjs_proxy.h:
1603         * page/Page.cpp:
1604         (WebCore::Page::~Page): Merged pageDestroyed() calls. Moved debug-only
1605         code to the bottom.
1606         * page/Frame.cpp:
1607         (WebCore::Frame::~Frame): Don't call getObject() because globalObject()
1608         returns a JSObject* already, and the call can leave a pointer to the Window
1609         object on the stack. Don't check for NULL because it is an invariant of
1610         JavaScriptCore that no JSObject* can be NULL. Do use a volatile pointer
1611         for w because the 'w = 0' assignment just screams to the compiler, "Don't
1612         generate any code for me!"
1613
1614 2007-02-27  Rob Buis  <buis@kde.org>
1615
1616         Reviewed by David Hyatt.
1617
1618         http://bugs.webkit.org/show_bug.cgi?id=4128
1619         !important is ignored in inline styling.
1620
1621         Handle properties with !important flag better in inline
1622         style declarations.
1623
1624         * css/CSSMutableStyleDeclaration.cpp:
1625         (WebCore::CSSMutableStyleDeclaration::addParsedProperties):
1626
1627 2007-02-27  David Hyatt  <hyatt@apple.com>
1628
1629         Bug 11435.  Make sure RenderViews always paintBoxDecorations.  They used to before I removed RenderView's
1630         paint method.  This fix restores the original behavior.
1631
1632         Reviewed by mitz
1633
1634         * rendering/RenderBox.cpp:
1635         (WebCore::RenderBox::setStyle):
1636
1637 2007-02-27  David Hyatt  <hyatt@apple.com>
1638
1639         Fix for bug 12094, make sure setMinMaxKnown starts off false for the weird/rare case of empty
1640         plaintext documents (which really are buggy and should be fixed to generate root elements).
1641
1642         Reviewed by mitz
1643
1644         * rendering/RenderView.cpp:
1645         (WebCore::RenderView::RenderView):
1646
1647 2007-02-27  Dex Deacon  <occupant4@gmail.com>
1648
1649         Reviewed by Darin.
1650
1651         Fixed the case where a BackForwardList of capacity==1 would grow without bound.
1652
1653         * history/BackForwardList.cpp:
1654         (WebCore::BackForwardList::addItem):
1655
1656 2007-02-22  Lars Naesbye Christensen  <lars@naesbye.dk>
1657
1658         Reviewed by Maciej.
1659
1660         http://bugs.webkit.org/show_bug.cgi?id=12848
1661         Help cursor should have a white outline
1662
1663         * Resources/helpCursor.png:
1664
1665 2007-02-27  Alexey Proskuryakov  <ap@webkit.org>
1666
1667         Reviewed by Maciej.
1668
1669         http://bugs.webkit.org/show_bug.cgi?id=12594
1670         REGRESSION: Strange highlight in active input area
1671
1672         No automated test possible.
1673
1674         * rendering/InlineTextBox.cpp:
1675         (WebCore::InlineTextBox::paint): Restore a check lost in r12792.
1676
1677 2007-02-27  Darin Adler  <darin@apple.com>
1678
1679         Reviewed by Mitz.
1680
1681         - fix http://bugs.webkit.org/show_bug.cgi?id=12908
1682           crash in http/tests/incremental/frame-focus-before-load.html
1683
1684         * page/mac/EventHandlerMac.mm: (WebCore::EventHandler::focusDocumentView):
1685         Add null checks.
1686
1687 2007-02-27  Darin Adler  <darin@apple.com>
1688
1689         Reviewed by Alexey.
1690
1691         - fix http://bugs.webkit.org/show_bug.cgi?id=12909
1692           should use ICU, not TEC, for MacRoman decoding
1693
1694         * platform/TextCodecICU.cpp: (WebCore::TextCodecICU::registerEncodingNames):
1695         Add "macroman" as an alias for "macintosh". We have seen that in use in mail,
1696         although I'm not sure it's used on the web.
1697
1698         * platform/mac/mac-encodings.txt: Remove MacRoman line, which was added back
1699         as part of the patch for bug 4971226. But by adding it to this file rather
1700         than the ICU codec, we get it only on Mac OS X. And long term we are trying to
1701         get rid of the use of TEC entirely, so we want this file to be as empty as
1702         possible.
1703
1704 2007-02-27  Rob Buis  <buis@kde.org>
1705
1706         Reviewed by Maciej.
1707
1708         http://bugs.webkit.org/show_bug.cgi?id=12905
1709         Not all svg shapes should support markers
1710
1711         Restrict marker usage to svg shapes polyline, polygon, line and path.
1712
1713         * ksvg2/svg/SVGLineElement.h:
1714         (WebCore::SVGLineElement::supportsMarkers):
1715         * ksvg2/svg/SVGPathElement.h:
1716         (WebCore::SVGPathElement::supportsMarkers):
1717         * ksvg2/svg/SVGPolyElement.h:
1718         (WebCore::SVGPolyElement::supportsMarkers):
1719         * ksvg2/svg/SVGStyledElement.h:
1720         (WebCore::SVGStyledElement::supportsMarkers):
1721         * rendering/RenderPath.cpp:
1722         (WebCore::RenderPath::paint):
1723
1724 2007-02-26  Adele Peterson  <adele@apple.com>
1725
1726         Reviewed by Lars.
1727
1728         Fix for http://bugs.webkit.org/show_bug.cgi?id=12902
1729         <rdar://problem/5012679> REGRESSION: Pressing return key doesn't 
1730         move caret to next line after applying a font color in GMail
1731
1732         Test: fast/frames/iframe-window-focus-2.html
1733
1734         * page/EventHandler.h: Make focusDocumentView public.
1735         * page/Frame.cpp: (WebCore::Frame::focusWindow): Instead of just setting the focused frame,
1736           we should set also focus the document view.  The bug here was that since the subframe view
1737           wasn't the first responder, the key down event was going to the wrong frame.
1738
1739 2007-02-26  Maciej Stachowiak  <mjs@apple.com>
1740
1741         Reviewed by Oliver.
1742
1743         - fixed <rdar://problem/4946881> Recursive loop with <marker> not caught, crashes in WebCore::SVGPaintServer::draw (11244)
1744         http://bugs.webkit.org/show_bug.cgi?id=11244
1745
1746         * platform/graphics/svg/SVGResourceMarker.cpp:
1747         (WebCore::SVGResourceMarker::draw): Use a HashSet to guard against
1748         reference cycles.
1749
1750 2007-02-26  Maciej Stachowiak  <mjs@apple.com>
1751
1752         Reviewed by Kevin McCullough.
1753
1754         - fix Qt build for earlier SVG changes.
1755
1756         * platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
1757
1758 2007-02-26  Oliver Hunt  <oliver@apple.com>
1759
1760         Reviewed by Maciej.
1761
1762         Fix for <rdar://problem/4827378>: Canvas with large height 
1763         uses lots of memory, computer almost stops responding
1764          
1765         Put cap on maximum area of canvas, size is similar too the 
1766         maximum size allowed by firefox (firefox seems to to cut off 
1767         at area == 32767 * 9358). 
1768
1769         Also protect renderer against the possibility of a null context
1770         (this was triggering a CG warning)
1771
1772         * html/HTMLCanvasElement.cpp:
1773         (WebCore::HTMLCanvasElement::createDrawingContext):
1774            Apply maximum canvas area
1775         (WebCore::HTMLCanvasElement::createPlatformImage):
1776            Protect against null CG Context
1777
1778 2007-02-26  Mitz Pettel  <mitz@webkit.org>
1779
1780         Reviewed by Antti Koivisto.
1781
1782         - fix http://bugs.webkit.org/show_bug.cgi?id=12899
1783           Ordered lists not updating dynamically with new styles
1784
1785         Test: fast/lists/list-style-type-dynamic-change.html
1786
1787         * rendering/RenderListMarker.cpp:
1788         (WebCore::RenderListMarker::setStyle): Made changing the marker type trigger
1789         updating of the marker.
1790
1791 2007-02-26  Adele Peterson  <adele@apple.com>
1792
1793         Reviewed by Maciej.
1794
1795         Fix for <rdar://problem/5012761> REGRESSION: form submit invokes wrong event handler
1796
1797         Test: fast/events/submit-reset-nested-bubble.html
1798
1799         * dom/EventTargetNode.h: Made handleLocalEvents virtual.
1800         * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::handleLocalEvents): If we're
1801           not in the capture phase, and the target is a different form, and we're handling
1802           the submitEvent or the resetEvent, then stop propagation of the event.  This matches
1803           Firefox behavior.  You can only get in this situation if misnested tags cause
1804           forms to be nested.
1805         * html/HTMLFormElement.h: Added handleLocalEvents.
1806
1807 2007-02-26  Darin Adler  <darin@apple.com>
1808
1809         Reviewed by Oliver Hunt.
1810
1811         - <rdar://problem/5021555> TextCodecICU does not use fallback mappings; it should
1812
1813         * platform/TextCodecICU.cpp: (WebCore::TextCodecICU::createICUConverter):
1814         Added a call to ucnv_setFallback(TRUE).
1815
1816 2007-02-26  Oliver Hunt  <oliver@apple.com>
1817
1818         Reviewed by Adam.
1819
1820         Fix for rdar://problem/5021127 
1821
1822         Need to add null check to node -- original Obj-C didn't need 
1823         the null check due to the Obj-C null messaging semantics
1824
1825         * editing/Editor.cpp:
1826         (WebCore::Editor::shouldInsertFragment):
1827
1828 2007-02-26  David Hyatt  <hyatt@apple.com>
1829
1830         Make text files render using white-space: pre-wrap instead of white-space: pre.
1831         
1832         Reviewed by aroben
1833
1834         * loader/TextDocument.cpp:
1835         (WebCore::TextTokenizer::write):
1836
1837 2007-02-26  David Hyatt  <hyatt@apple.com>
1838
1839         Back out the change to add fullyClippedContentRect.  The layout test
1840         was actually showing more correct results.
1841
1842         * page/Frame.cpp:
1843         (WebCore::Frame::visibleSelectionRect):
1844         (WebCore::Frame::setIsActive):
1845         (WebCore::Frame::markAllMatchesForText):
1846         * platform/ScrollView.h:
1847         * platform/mac/ScrollViewMac.mm:
1848         * rendering/RenderLayer.cpp:
1849         (WebCore::RenderLayer::scrollRectToVisible):
1850
1851 2007-02-26  David Hyatt  <hyatt@apple.com>
1852
1853         Add support for a new property called -webkit-border-fit.  This property
1854         has two values: border and lines.  The "border" value means the border and
1855         background paint normally at the border box level.  The "lines" value indicates
1856         that the border and background should shrink dynamically to snugly hug the
1857         line boxes of normal flow descendants.
1858
1859         Reviewed by darin
1860
1861         fast/borders/border-fit.html
1862
1863         * WebCore.xcodeproj/project.pbxproj:
1864         * css/CSSComputedStyleDeclaration.cpp:
1865         (WebCore::):
1866         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1867         * css/CSSPropertyNames.in:
1868         * css/CSSValueKeywords.in:
1869         * css/cssparser.cpp:
1870         (WebCore::CSSParser::parseValue):
1871         * css/cssstyleselector.cpp:
1872         (WebCore::CSSStyleSelector::applyProperty):
1873         * rendering/RenderBlock.cpp:
1874         (WebCore::RenderBlock::adjustForBorderFit):
1875         (WebCore::RenderBlock::borderFitAdjust):
1876         * rendering/RenderBlock.h:
1877         * rendering/RenderBox.cpp:
1878         (WebCore::RenderBox::paintBoxDecorations):
1879         * rendering/RenderBox.h:
1880         (WebCore::RenderBox::borderFitAdjust):
1881         * rendering/RenderStyle.cpp:
1882         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
1883         (WebCore::StyleRareNonInheritedData::operator==):
1884         (WebCore::RenderStyle::diff):
1885         * rendering/RenderStyle.h:
1886         (WebCore::):
1887         (WebCore::RenderStyle::borderFit):
1888         (WebCore::RenderStyle::setBorderFit):
1889         (WebCore::RenderStyle::initialBorderFit):
1890
1891 2007-02-26  Adam Roben  <aroben@apple.com>
1892
1893         Reviewed by Darin.
1894
1895         Build fix.
1896
1897         * rendering/RenderTreeAsText.cpp: Can't use #ifndef with ENABLE() macro.
1898
1899 2007-02-26  Adele Peterson  <adele@apple.com>
1900
1901         Reviewed by Adam.
1902
1903         Fix for <rdar://problem/4990700> Safari always crashes when attempting to edit/view 
1904         Yahoo pipes in WebCore::HTMLSelectElement::optionToListIndex
1905
1906         Test: fast/forms/select-out-of-bounds-index.html
1907
1908         * html/HTMLSelectElement.cpp:
1909         (WebCore::HTMLSelectElement::setSelectedIndex): If we're about to deselect all options, then set m_lastOnChangeIndex to -1.
1910         (WebCore::HTMLSelectElement::optionToListIndex): Moved listSize to a local variable.  Rewrote using a simpler for-loop to prevent out-of-bounds errors.
1911
1912 2007-02-26  Anders Carlsson  <acarlsson@apple.com>
1913
1914         Reviewed by Geoff.
1915
1916         <rdar://problem/4816376>
1917         REGRESSION: NetNewsWire 3.0 - Crashes in WebDocumentLoaderMac::attachToFrame() (12674)
1918         
1919         * loader/FrameLoader.cpp:
1920         (WebCore::FrameLoader::reload):
1921         Remove call to setPolicyDocumentLoader here, it's set by the ::load function that we end up calling.
1922
1923 2007-02-26  Maciej Stachowiak  <mjs@apple.com>
1924
1925         Reviewed by Lars.
1926
1927         - fixed <rdar://problem/5021698> Disable experimental SVG features (12883)
1928         
1929         I added an ENABLE_SVG_EXPERIMENTAL_FEATURES define to guard all use of the experimental
1930         features, and used it to guard relevant tag names, elements, JS bindings and renderers.
1931         
1932         I also converted all the existing optional feature defines to
1933         ENABLE_FOO instead of FOO_SUPPORT since that is the more standard
1934         way to do it in open source projects and works with the handy new
1935         ENABLE() macro.
1936
1937         * CMakeLists.txt:
1938         * DerivedSources.make:
1939         * Projects/gdk/webcore-gdk.bkl:
1940         * WebCore.pro:
1941         * WebCore.vcproj/WebCore/WebCore.vcproj:
1942         * WebCore.vcproj/WebCore/build-generated-files.sh:
1943         * WebCore.xcodeproj/project.pbxproj:
1944         * bindings/js/JSCustomXPathNSResolver.cpp:
1945         * bindings/js/JSCustomXPathNSResolver.h:
1946         * bindings/js/JSSVGElementWrapperFactory.cpp:
1947         * bindings/js/JSSVGElementWrapperFactory.h:
1948         * bindings/js/JSSVGMatrixCustom.cpp:
1949         * bindings/js/JSSVGPODTypeWrapper.h:
1950         * bindings/js/JSSVGPathSegCustom.cpp:
1951         * bindings/js/JSSVGPathSegListCustom.cpp:
1952         * bindings/js/JSSVGPointListCustom.cpp:
1953         * bindings/js/JSXSLTProcessor.cpp:
1954         * bindings/js/JSXSLTProcessor.h:
1955         * bindings/js/kjs_binding.cpp:
1956         (KJS::setDOMException):
1957         * bindings/js/kjs_css.cpp:
1958         (KJS::toJS):
1959         * bindings/js/kjs_dom.cpp:
1960         (KJS::toJS):
1961         * bindings/js/kjs_html.cpp:
1962         (KJS::HTMLElementFunction::callAsFunction):
1963         * bindings/js/kjs_proxy.cpp:
1964         * bindings/js/kjs_proxy.h:
1965         * bindings/js/kjs_window.cpp:
1966         (KJS::Window::getValueProperty):
1967         * bindings/objc/DOM.mm:
1968         (WebCore::createElementClassMap):
1969         (+[DOMNode _nodeWith:WebCore::]):
1970         * bindings/objc/DOMCSS.mm:
1971         (+[DOMCSSValue _CSSValueWith:WebCore::]):
1972         * bindings/objc/DOMCustomXPathNSResolver.h:
1973         * bindings/objc/DOMCustomXPathNSResolver.mm:
1974         * bindings/objc/DOMEvents.mm:
1975         (+[DOMEvent _eventWith:WebCore::]):
1976         * bindings/objc/DOMInternal.h:
1977         * bindings/objc/DOMSVGPathSegInternal.mm:
1978         * bindings/objc/DOMXPath.mm:
1979         * bindings/objc/ExceptionHandlers.mm:
1980         (WebCore::raiseDOMException):
1981         * bindings/objc/PublicDOMInterfaces.h:
1982         * bindings/scripts/CodeGeneratorJS.pm:
1983         * bindings/scripts/CodeGeneratorObjC.pm:
1984         * config.h:
1985         * css/CSSGrammar.y:
1986         * css/CSSStyleDeclaration.cpp:
1987         (WebCore::propertyID):
1988         * css/StyleBase.h:
1989         * css/cssparser.cpp:
1990         (WebCore::CSSParser::parseValue):
1991         * css/cssparser.h:
1992         * css/cssstyleselector.cpp:
1993         (WebCore::CSSStyleSelector::loadDefaultStyle):
1994         (WebCore::CSSStyleSelector::initForStyleResolve):
1995         (WebCore::checkPseudoState):
1996         (WebCore::CSSStyleSelector::adjustRenderStyle):
1997         (WebCore::CSSStyleSelector::applyProperty):
1998         * css/cssstyleselector.h:
1999         * dom/DOMImplementation.cpp:
2000         (WebCore::DOMImplementation::hasFeature):
2001         (WebCore::DOMImplementation::createDocument):
2002         * dom/Document.cpp:
2003         (WebCore::Document::Document):
2004         (WebCore::Document::~Document):
2005         (WebCore::Document::createElement):
2006         (WebCore::Document::implicitClose):
2007         (WebCore::Document::recalcStyleSelector):
2008         (WebCore::Document::createEvent):
2009         * dom/Document.h:
2010         * dom/Document.idl:
2011         * dom/Event.cpp:
2012         * dom/Event.h:
2013         * dom/EventTarget.cpp:
2014         * dom/EventTarget.h:
2015         * dom/MappedAttributeEntry.h:
2016         (WebCore::):
2017         * dom/Node.cpp:
2018         (WebCore::Node::createRendererIfNeeded):
2019         (WebCore::Node::shadowAncestorNode):
2020         * dom/Node.h:
2021         * dom/ProcessingInstruction.cpp:
2022         (WebCore::ProcessingInstruction::ProcessingInstruction):
2023         (WebCore::ProcessingInstruction::checkStyleSheet):
2024         (WebCore::ProcessingInstruction::setCSSStyleSheet):
2025         * dom/ProcessingInstruction.h:
2026         * dom/Text.cpp:
2027         (WebCore::Text::createRenderer):
2028         * dom/XMLTokenizer.cpp:
2029         (WebCore::XMLTokenizer::startElementNs):
2030         (WebCore::XMLTokenizer::endElementNs):
2031         (WebCore::XMLTokenizer::processingInstruction):
2032         (WebCore::XMLTokenizer::end):
2033         (WebCore::XMLTokenizer::insertErrorMessageBlock):
2034         * dom/XMLTokenizer.h:
2035         * html/HTMLEmbedElement.cpp:
2036         * html/HTMLEmbedElement.h:
2037         * html/HTMLObjectElement.cpp:
2038         * html/HTMLObjectElement.h:
2039         * ksvg2/css/SVGCSSParser.cpp:
2040         * ksvg2/css/SVGCSSStyleSelector.cpp:
2041         * ksvg2/css/SVGRenderStyle.cpp:
2042         * ksvg2/css/SVGRenderStyle.h:
2043         * ksvg2/css/SVGRenderStyleDefs.cpp:
2044         * ksvg2/css/SVGRenderStyleDefs.h:
2045         * ksvg2/events/JSSVGLazyEventListener.cpp:
2046         * ksvg2/events/JSSVGLazyEventListener.h:
2047         * ksvg2/events/SVGZoomEvent.cpp:
2048         * ksvg2/events/SVGZoomEvent.h:
2049         * ksvg2/misc/KCanvasRenderingStyle.cpp:
2050         * ksvg2/misc/KCanvasRenderingStyle.h:
2051         * ksvg2/misc/PointerEventsHitRules.cpp:
2052         * ksvg2/misc/PointerEventsHitRules.h:
2053         * ksvg2/misc/SVGDocumentExtensions.cpp:
2054         * ksvg2/misc/SVGDocumentExtensions.h:
2055         * ksvg2/misc/SVGImageLoader.cpp:
2056         * ksvg2/misc/SVGImageLoader.h:
2057         * ksvg2/misc/SVGTimer.cpp:
2058         * ksvg2/misc/SVGTimer.h:
2059         * ksvg2/misc/TimeScheduler.cpp:
2060         * ksvg2/misc/TimeScheduler.h:
2061         * ksvg2/scripts/make_names.pl:
2062         * ksvg2/svg/ColorDistance.cpp:
2063         * ksvg2/svg/ColorDistance.h:
2064         * ksvg2/svg/GradientAttributes.h:
2065         * ksvg2/svg/LinearGradientAttributes.h:
2066         * ksvg2/svg/PatternAttributes.h:
2067         * ksvg2/svg/RadialGradientAttributes.h:
2068         * ksvg2/svg/SVGAElement.cpp:
2069         * ksvg2/svg/SVGAElement.h:
2070         * ksvg2/svg/SVGAngle.cpp:
2071         * ksvg2/svg/SVGAngle.h:
2072         * ksvg2/svg/SVGAnimateColorElement.cpp:
2073         * ksvg2/svg/SVGAnimateColorElement.h:
2074         * ksvg2/svg/SVGAnimateElement.cpp:
2075         * ksvg2/svg/SVGAnimateElement.h:
2076         * ksvg2/svg/SVGAnimateElement.idl:
2077         * ksvg2/svg/SVGAnimateMotionElement.cpp:
2078         * ksvg2/svg/SVGAnimateMotionElement.h:
2079         * ksvg2/svg/SVGAnimateTransformElement.cpp:
2080         * ksvg2/svg/SVGAnimateTransformElement.h:
2081         * ksvg2/svg/SVGAnimateTransformElement.idl:
2082         * ksvg2/svg/SVGAnimatedPathData.cpp:
2083         * ksvg2/svg/SVGAnimatedPathData.h:
2084         * ksvg2/svg/SVGAnimatedPoints.cpp:
2085         * ksvg2/svg/SVGAnimatedPoints.h:
2086         * ksvg2/svg/SVGAnimatedTemplate.h:
2087         * ksvg2/svg/SVGAnimationElement.cpp:
2088         * ksvg2/svg/SVGAnimationElement.h:
2089         * ksvg2/svg/SVGCircleElement.cpp:
2090         * ksvg2/svg/SVGCircleElement.h:
2091         * ksvg2/svg/SVGClipPathElement.cpp:
2092         * ksvg2/svg/SVGClipPathElement.h:
2093         * ksvg2/svg/SVGColor.cpp:
2094         * ksvg2/svg/SVGColor.h:
2095         * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
2096         * ksvg2/svg/SVGComponentTransferFunctionElement.h:
2097         * ksvg2/svg/SVGCursorElement.cpp:
2098         * ksvg2/svg/SVGCursorElement.h:
2099         * ksvg2/svg/SVGDefsElement.cpp:
2100         * ksvg2/svg/SVGDefsElement.h:
2101         * ksvg2/svg/SVGDescElement.cpp:
2102         * ksvg2/svg/SVGDescElement.h:
2103         * ksvg2/svg/SVGDocument.cpp:
2104         * ksvg2/svg/SVGDocument.h:
2105         * ksvg2/svg/SVGElement.cpp:
2106         (WebCore::SVGElement::dispatchEvent):
2107         * ksvg2/svg/SVGElement.h:
2108         * ksvg2/svg/SVGElementInstance.cpp:
2109         * ksvg2/svg/SVGElementInstance.h:
2110         * ksvg2/svg/SVGElementInstance.idl:
2111         * ksvg2/svg/SVGElementInstanceList.cpp:
2112         * ksvg2/svg/SVGElementInstanceList.h:
2113         * ksvg2/svg/SVGElementInstanceList.idl:
2114         * ksvg2/svg/SVGEllipseElement.cpp:
2115         * ksvg2/svg/SVGEllipseElement.h:
2116         * ksvg2/svg/SVGException.h:
2117         * ksvg2/svg/SVGExternalResourcesRequired.cpp:
2118         * ksvg2/svg/SVGExternalResourcesRequired.h:
2119         * ksvg2/svg/SVGFEBlendElement.cpp:
2120         * ksvg2/svg/SVGFEBlendElement.h:
2121         * ksvg2/svg/SVGFEBlendElement.idl:
2122         * ksvg2/svg/SVGFEColorMatrixElement.cpp:
2123         * ksvg2/svg/SVGFEColorMatrixElement.h:
2124         * ksvg2/svg/SVGFEColorMatrixElement.idl:
2125         * ksvg2/svg/SVGFEComponentTransferElement.cpp:
2126         * ksvg2/svg/SVGFEComponentTransferElement.h:
2127         * ksvg2/svg/SVGFEComponentTransferElement.idl:
2128         * ksvg2/svg/SVGFECompositeElement.cpp:
2129         * ksvg2/svg/SVGFECompositeElement.h:
2130         * ksvg2/svg/SVGFECompositeElement.idl:
2131         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
2132         * ksvg2/svg/SVGFEDiffuseLightingElement.h:
2133         * ksvg2/svg/SVGFEDiffuseLightingElement.idl:
2134         * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
2135         * ksvg2/svg/SVGFEDisplacementMapElement.h:
2136         * ksvg2/svg/SVGFEDisplacementMapElement.idl:
2137         * ksvg2/svg/SVGFEDistantLightElement.cpp:
2138         * ksvg2/svg/SVGFEDistantLightElement.h:
2139         * ksvg2/svg/SVGFEDistantLightElement.idl:
2140         * ksvg2/svg/SVGFEFloodElement.cpp:
2141         * ksvg2/svg/SVGFEFloodElement.h:
2142         * ksvg2/svg/SVGFEFloodElement.idl:
2143         * ksvg2/svg/SVGFEFuncAElement.cpp:
2144         * ksvg2/svg/SVGFEFuncAElement.h:
2145         * ksvg2/svg/SVGFEFuncAElement.idl:
2146         * ksvg2/svg/SVGFEFuncBElement.cpp:
2147         * ksvg2/svg/SVGFEFuncBElement.h:
2148         * ksvg2/svg/SVGFEFuncBElement.idl:
2149         * ksvg2/svg/SVGFEFuncGElement.cpp:
2150         * ksvg2/svg/SVGFEFuncGElement.h:
2151         * ksvg2/svg/SVGFEFuncGElement.idl:
2152         * ksvg2/svg/SVGFEFuncRElement.cpp:
2153         * ksvg2/svg/SVGFEFuncRElement.h:
2154         * ksvg2/svg/SVGFEFuncRElement.idl:
2155         * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
2156         * ksvg2/svg/SVGFEGaussianBlurElement.h:
2157         * ksvg2/svg/SVGFEGaussianBlurElement.idl:
2158         * ksvg2/svg/SVGFEImageElement.cpp:
2159         * ksvg2/svg/SVGFEImageElement.h:
2160         * ksvg2/svg/SVGFEImageElement.idl:
2161         * ksvg2/svg/SVGFELightElement.cpp:
2162         * ksvg2/svg/SVGFELightElement.h:
2163         * ksvg2/svg/SVGFEMergeElement.cpp:
2164         * ksvg2/svg/SVGFEMergeElement.h:
2165         * ksvg2/svg/SVGFEMergeElement.idl:
2166         * ksvg2/svg/SVGFEMergeNodeElement.cpp:
2167         * ksvg2/svg/SVGFEMergeNodeElement.h:
2168         * ksvg2/svg/SVGFEMergeNodeElement.idl:
2169         * ksvg2/svg/SVGFEOffsetElement.cpp:
2170         * ksvg2/svg/SVGFEOffsetElement.h:
2171         * ksvg2/svg/SVGFEOffsetElement.idl:
2172         * ksvg2/svg/SVGFEPointLightElement.cpp:
2173         * ksvg2/svg/SVGFEPointLightElement.h:
2174         * ksvg2/svg/SVGFEPointLightElement.idl:
2175         * ksvg2/svg/SVGFESpecularLightingElement.cpp:
2176         * ksvg2/svg/SVGFESpecularLightingElement.h:
2177         * ksvg2/svg/SVGFESpecularLightingElement.idl:
2178         * ksvg2/svg/SVGFESpotLightElement.cpp:
2179         * ksvg2/svg/SVGFESpotLightElement.h:
2180         * ksvg2/svg/SVGFESpotLightElement.idl:
2181         * ksvg2/svg/SVGFETileElement.cpp:
2182         * ksvg2/svg/SVGFETileElement.h:
2183         * ksvg2/svg/SVGFETileElement.idl:
2184         * ksvg2/svg/SVGFETurbulenceElement.cpp:
2185         * ksvg2/svg/SVGFETurbulenceElement.h:
2186         * ksvg2/svg/SVGFETurbulenceElement.idl:
2187         * ksvg2/svg/SVGFilterElement.cpp:
2188         * ksvg2/svg/SVGFilterElement.h:
2189         * ksvg2/svg/SVGFilterElement.idl:
2190         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp:
2191         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
2192         * ksvg2/svg/SVGFitToViewBox.cpp:
2193         * ksvg2/svg/SVGFitToViewBox.h:
2194         * ksvg2/svg/SVGForeignObjectElement.cpp:
2195         * ksvg2/svg/SVGForeignObjectElement.h:
2196         * ksvg2/svg/SVGForeignObjectElement.idl:
2197         * ksvg2/svg/SVGGElement.cpp:
2198         * ksvg2/svg/SVGGElement.h:
2199         * ksvg2/svg/SVGGradientElement.cpp:
2200         * ksvg2/svg/SVGGradientElement.h:
2201         * ksvg2/svg/SVGImageElement.cpp:
2202         * ksvg2/svg/SVGImageElement.h:
2203         * ksvg2/svg/SVGLangSpace.cpp:
2204         * ksvg2/svg/SVGLangSpace.h:
2205         * ksvg2/svg/SVGLength.cpp:
2206         * ksvg2/svg/SVGLength.h:
2207         * ksvg2/svg/SVGLengthList.cpp:
2208         * ksvg2/svg/SVGLengthList.h:
2209         * ksvg2/svg/SVGLineElement.cpp:
2210         * ksvg2/svg/SVGLineElement.h:
2211         * ksvg2/svg/SVGLinearGradientElement.cpp:
2212         * ksvg2/svg/SVGLinearGradientElement.h:
2213         * ksvg2/svg/SVGList.h:
2214         * ksvg2/svg/SVGListTraits.h:
2215         * ksvg2/svg/SVGLocatable.cpp:
2216         (WebCore::SVGLocatable::nearestViewportElement):
2217         (WebCore::SVGLocatable::farthestViewportElement):
2218         * ksvg2/svg/SVGLocatable.h:
2219         * ksvg2/svg/SVGMPathElement.cpp:
2220         * ksvg2/svg/SVGMPathElement.h:
2221         * ksvg2/svg/SVGMarkerElement.cpp:
2222         * ksvg2/svg/SVGMarkerElement.h:
2223         * ksvg2/svg/SVGMaskElement.cpp:
2224         * ksvg2/svg/SVGMaskElement.h:
2225         * ksvg2/svg/SVGMetadataElement.cpp:
2226         * ksvg2/svg/SVGMetadataElement.h:
2227         * ksvg2/svg/SVGNumberList.cpp:
2228         * ksvg2/svg/SVGNumberList.h:
2229         * ksvg2/svg/SVGPaint.cpp:
2230         * ksvg2/svg/SVGPaint.h:
2231         * ksvg2/svg/SVGParserUtilities.cpp:
2232         * ksvg2/svg/SVGParserUtilities.h:
2233         * ksvg2/svg/SVGPathElement.cpp:
2234         * ksvg2/svg/SVGPathElement.h:
2235         * ksvg2/svg/SVGPathSeg.h:
2236         * ksvg2/svg/SVGPathSegArc.cpp:
2237         * ksvg2/svg/SVGPathSegArc.h:
2238         * ksvg2/svg/SVGPathSegClosePath.cpp:
2239         * ksvg2/svg/SVGPathSegClosePath.h:
2240         * ksvg2/svg/SVGPathSegCurvetoCubic.cpp:
2241         * ksvg2/svg/SVGPathSegCurvetoCubic.h:
2242         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.cpp:
2243         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h:
2244         * ksvg2/svg/SVGPathSegCurvetoQuadratic.cpp:
2245         * ksvg2/svg/SVGPathSegCurvetoQuadratic.h:
2246         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.cpp:
2247         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h:
2248         * ksvg2/svg/SVGPathSegLineto.cpp:
2249         * ksvg2/svg/SVGPathSegLineto.h:
2250         * ksvg2/svg/SVGPathSegLinetoHorizontal.cpp:
2251         * ksvg2/svg/SVGPathSegLinetoHorizontal.h:
2252         * ksvg2/svg/SVGPathSegLinetoVertical.cpp:
2253         * ksvg2/svg/SVGPathSegLinetoVertical.h:
2254         * ksvg2/svg/SVGPathSegList.cpp:
2255         * ksvg2/svg/SVGPathSegList.h:
2256         * ksvg2/svg/SVGPathSegMoveto.cpp:
2257         * ksvg2/svg/SVGPathSegMoveto.h:
2258         * ksvg2/svg/SVGPatternElement.cpp:
2259         * ksvg2/svg/SVGPatternElement.h:
2260         * ksvg2/svg/SVGPointList.cpp:
2261         * ksvg2/svg/SVGPointList.h:
2262         * ksvg2/svg/SVGPolyElement.cpp:
2263         * ksvg2/svg/SVGPolyElement.h:
2264         * ksvg2/svg/SVGPolygonElement.cpp:
2265         * ksvg2/svg/SVGPolygonElement.h:
2266         * ksvg2/svg/SVGPolylineElement.cpp:
2267         * ksvg2/svg/SVGPolylineElement.h:
2268         * ksvg2/svg/SVGPreserveAspectRatio.cpp:
2269         * ksvg2/svg/SVGPreserveAspectRatio.h:
2270         * ksvg2/svg/SVGRadialGradientElement.cpp:
2271         * ksvg2/svg/SVGRadialGradientElement.h:
2272         * ksvg2/svg/SVGRectElement.cpp:
2273         * ksvg2/svg/SVGRectElement.h:
2274         * ksvg2/svg/SVGRenderingIntent.h:
2275         * ksvg2/svg/SVGSVGElement.cpp:
2276         * ksvg2/svg/SVGSVGElement.h:
2277         * ksvg2/svg/SVGScriptElement.cpp:
2278         * ksvg2/svg/SVGScriptElement.h:
2279         * ksvg2/svg/SVGSetElement.cpp:
2280         * ksvg2/svg/SVGSetElement.h:
2281         * ksvg2/svg/SVGStopElement.cpp:
2282         * ksvg2/svg/SVGStopElement.h:
2283         * ksvg2/svg/SVGStringList.cpp:
2284         * ksvg2/svg/SVGStringList.h:
2285         * ksvg2/svg/SVGStylable.cpp:
2286         * ksvg2/svg/SVGStylable.h:
2287         * ksvg2/svg/SVGStyleElement.cpp:
2288         * ksvg2/svg/SVGStyleElement.h:
2289         * ksvg2/svg/SVGStyledElement.cpp:
2290         (WebCore::SVGStyledElement::notifyAttributeChange):
2291         * ksvg2/svg/SVGStyledElement.h:
2292         * ksvg2/svg/SVGStyledLocatableElement.cpp:
2293         * ksvg2/svg/SVGStyledLocatableElement.h:
2294         * ksvg2/svg/SVGStyledTransformableElement.cpp:
2295         * ksvg2/svg/SVGStyledTransformableElement.h:
2296         * ksvg2/svg/SVGSwitchElement.cpp:
2297         * ksvg2/svg/SVGSwitchElement.h:
2298         * ksvg2/svg/SVGSymbolElement.cpp:
2299         * ksvg2/svg/SVGSymbolElement.h:
2300         * ksvg2/svg/SVGTRefElement.cpp:
2301         * ksvg2/svg/SVGTRefElement.h:
2302         * ksvg2/svg/SVGTSpanElement.cpp:
2303         * ksvg2/svg/SVGTSpanElement.h:
2304         * ksvg2/svg/SVGTests.cpp:
2305         * ksvg2/svg/SVGTests.h:
2306         * ksvg2/svg/SVGTextContentElement.cpp:
2307         * ksvg2/svg/SVGTextContentElement.h:
2308         * ksvg2/svg/SVGTextElement.cpp:
2309         * ksvg2/svg/SVGTextElement.h:
2310         * ksvg2/svg/SVGTextPositioningElement.cpp:
2311         * ksvg2/svg/SVGTextPositioningElement.h:
2312         * ksvg2/svg/SVGTitleElement.cpp:
2313         * ksvg2/svg/SVGTitleElement.h:
2314         * ksvg2/svg/SVGTransform.cpp:
2315         * ksvg2/svg/SVGTransform.h:
2316         * ksvg2/svg/SVGTransformDistance.cpp:
2317         * ksvg2/svg/SVGTransformDistance.h:
2318         * ksvg2/svg/SVGTransformList.cpp:
2319         * ksvg2/svg/SVGTransformList.h:
2320         * ksvg2/svg/SVGTransformable.cpp:
2321         * ksvg2/svg/SVGTransformable.h:
2322         * ksvg2/svg/SVGURIReference.cpp:
2323         * ksvg2/svg/SVGURIReference.h:
2324         * ksvg2/svg/SVGUnitTypes.h:
2325         * ksvg2/svg/SVGUseElement.cpp:
2326         * ksvg2/svg/SVGUseElement.h:
2327         * ksvg2/svg/SVGUseElement.idl:
2328         * ksvg2/svg/SVGViewElement.cpp:
2329         * ksvg2/svg/SVGViewElement.h:
2330         * ksvg2/svg/SVGZoomAndPan.cpp:
2331         * ksvg2/svg/SVGZoomAndPan.h:
2332         * ksvg2/svg/svgtags.in:
2333         * loader/Cache.cpp:
2334         (WebCore::createResource):
2335         (WebCore::Cache::getStatistics):
2336         * loader/Cache.h:
2337         * loader/CachedImage.cpp:
2338         (WebCore::CachedImage::createImage):
2339         * loader/CachedResource.h:
2340         (WebCore::CachedResource::):
2341         * loader/CachedResourceClient.h:
2342         * loader/CachedXBLDocument.cpp:
2343         * loader/CachedXBLDocument.h:
2344         * loader/CachedXSLStyleSheet.cpp:
2345         * loader/CachedXSLStyleSheet.h:
2346         * loader/DocLoader.cpp:
2347         * loader/DocLoader.h:
2348         * page/DOMWindow.idl:
2349         * page/EventHandler.cpp:
2350         (WebCore::EventHandler::handleMouseMoveEvent):
2351         (WebCore::selectCursor):
2352         * page/Frame.cpp:
2353         (WebCore::Frame::Frame):
2354         * page/PageState.cpp:
2355         (WebCore::PageState::PageState):
2356         (WebCore::PageState::restore):
2357         * platform/MimeTypeRegistry.cpp:
2358         (WebCore::initialiseSupportedNonImageMimeTypes):
2359         * platform/graphics/FloatPoint3D.cpp:
2360         * platform/graphics/FloatPoint3D.h:
2361         * platform/graphics/ImageBuffer.cpp:
2362         (WebCore::ImageBuffer::renderSubtreeToImage):
2363         * platform/graphics/svg/SVGImage.cpp:
2364         * platform/graphics/svg/SVGImage.h:
2365         * platform/graphics/svg/SVGImageEmptyClients.h:
2366         * platform/graphics/svg/SVGPaintServer.cpp:
2367         * platform/graphics/svg/SVGPaintServer.h:
2368         * platform/graphics/svg/SVGPaintServerGradient.cpp:
2369         * platform/graphics/svg/SVGPaintServerGradient.h:
2370         * platform/graphics/svg/SVGPaintServerLinearGradient.cpp:
2371         * platform/graphics/svg/SVGPaintServerLinearGradient.h:
2372         * platform/graphics/svg/SVGPaintServerPattern.cpp:
2373         * platform/graphics/svg/SVGPaintServerPattern.h:
2374         * platform/graphics/svg/SVGPaintServerRadialGradient.cpp:
2375         * platform/graphics/svg/SVGPaintServerRadialGradient.h:
2376         * platform/graphics/svg/SVGPaintServerSolid.cpp:
2377         * platform/graphics/svg/SVGPaintServerSolid.h:
2378         * platform/graphics/svg/SVGResource.cpp:
2379         * platform/graphics/svg/SVGResource.h:
2380         * platform/graphics/svg/SVGResourceClipper.cpp:
2381         * platform/graphics/svg/SVGResourceClipper.h:
2382         * platform/graphics/svg/SVGResourceFilter.cpp:
2383         * platform/graphics/svg/SVGResourceFilter.h:
2384         * platform/graphics/svg/SVGResourceMarker.cpp:
2385         * platform/graphics/svg/SVGResourceMarker.h:
2386         * platform/graphics/svg/SVGResourceMasker.cpp:
2387         * platform/graphics/svg/SVGResourceMasker.h:
2388         * platform/graphics/svg/cg/CgSupport.cpp:
2389         * platform/graphics/svg/cg/CgSupport.h:
2390         * platform/graphics/svg/cg/RenderPathCg.cpp:
2391         * platform/graphics/svg/cg/SVGPaintServerCg.cpp:
2392         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
2393         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
2394         * platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp:
2395         * platform/graphics/svg/cg/SVGResourceClipperCg.cpp:
2396         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
2397         * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
2398         * platform/graphics/svg/filters/SVGDistantLightSource.h:
2399         * platform/graphics/svg/filters/SVGFEBlend.cpp:
2400         * platform/graphics/svg/filters/SVGFEBlend.h:
2401         * platform/graphics/svg/filters/SVGFEColorMatrix.cpp:
2402         * platform/graphics/svg/filters/SVGFEColorMatrix.h:
2403         * platform/graphics/svg/filters/SVGFEComponentTransfer.cpp:
2404         * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
2405         * platform/graphics/svg/filters/SVGFEComposite.cpp:
2406         * platform/graphics/svg/filters/SVGFEComposite.h:
2407         * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
2408         * platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
2409         * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
2410         * platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
2411         * platform/graphics/svg/filters/SVGFEDisplacementMap.cpp:
2412         * platform/graphics/svg/filters/SVGFEDisplacementMap.h:
2413         * platform/graphics/svg/filters/SVGFEFlood.cpp:
2414         * platform/graphics/svg/filters/SVGFEFlood.h:
2415         * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
2416         * platform/graphics/svg/filters/SVGFEGaussianBlur.h:
2417         * platform/graphics/svg/filters/SVGFEImage.cpp:
2418         * platform/graphics/svg/filters/SVGFEImage.h:
2419         * platform/graphics/svg/filters/SVGFEMerge.cpp:
2420         * platform/graphics/svg/filters/SVGFEMerge.h:
2421         * platform/graphics/svg/filters/SVGFEMorphology.cpp:
2422         * platform/graphics/svg/filters/SVGFEMorphology.h:
2423         * platform/graphics/svg/filters/SVGFEOffset.cpp:
2424         * platform/graphics/svg/filters/SVGFEOffset.h:
2425         * platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
2426         * platform/graphics/svg/filters/SVGFESpecularLighting.h:
2427         * platform/graphics/svg/filters/SVGFETile.h:
2428         * platform/graphics/svg/filters/SVGFETurbulence.cpp:
2429         * platform/graphics/svg/filters/SVGFETurbulence.h:
2430         * platform/graphics/svg/filters/SVGFilterEffect.cpp:
2431         * platform/graphics/svg/filters/SVGFilterEffect.h:
2432         * platform/graphics/svg/filters/SVGLightSource.cpp:
2433         * platform/graphics/svg/filters/SVGLightSource.h:
2434         * platform/graphics/svg/filters/SVGPointLightSource.h:
2435         * platform/graphics/svg/filters/SVGSpotLightSource.h:
2436         * platform/graphics/svg/filters/cg/SVGFEBlendCg.mm:
2437         * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
2438         * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
2439         * platform/graphics/svg/filters/cg/SVGFECompositeCg.mm:
2440         * platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm:
2441         * platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm:
2442         * platform/graphics/svg/filters/cg/SVGFEFloodCg.mm:
2443         * platform/graphics/svg/filters/cg/SVGFEGaussianBlurCg.mm:
2444         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
2445         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm:
2446         * platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
2447         * platform/graphics/svg/filters/cg/SVGFEMergeCg.mm:
2448         * platform/graphics/svg/filters/cg/SVGFEOffsetCg.mm:
2449         * platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm:
2450         * platform/graphics/svg/filters/cg/SVGFETileCg.mm:
2451         * platform/graphics/svg/filters/cg/SVGFilterEffectCg.mm:
2452         * platform/graphics/svg/qt/SVGPaintServerGradientQt.cpp:
2453         * platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp:
2454         * platform/graphics/svg/qt/SVGPaintServerPatternQt.cpp:
2455         * platform/graphics/svg/qt/SVGPaintServerQt.cpp:
2456         * platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp:
2457         * platform/graphics/svg/qt/SVGPaintServerSolidQt.cpp:
2458         * platform/graphics/svg/qt/SVGResourceClipperQt.cpp:
2459         * platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
2460         * platform/graphics/svg/qt/SVGResourceMaskerQt.cpp:
2461         * rendering/HitTestResult.cpp:
2462         (WebCore::HitTestResult::absoluteImageURL):
2463         (WebCore::HitTestResult::absoluteLinkURL):
2464         (WebCore::HitTestResult::isLiveLink):
2465         * rendering/RenderForeignObject.cpp:
2466         * rendering/RenderForeignObject.h:
2467         * rendering/RenderLayer.cpp:
2468         (WebCore::RenderLayer::isTransparent):
2469         * rendering/RenderObject.cpp:
2470         (WebCore::RenderObject::containingBlock):
2471         * rendering/RenderObject.h:
2472         * rendering/RenderPath.cpp:
2473         * rendering/RenderPath.h:
2474         * rendering/RenderSVGBlock.cpp:
2475         * rendering/RenderSVGBlock.h:
2476         * rendering/RenderSVGContainer.cpp:
2477         * rendering/RenderSVGContainer.h:
2478         * rendering/RenderSVGGradientStop.cpp:
2479         * rendering/RenderSVGGradientStop.h:
2480         * rendering/RenderSVGHiddenContainer.cpp:
2481         * rendering/RenderSVGHiddenContainer.h:
2482         * rendering/RenderSVGImage.cpp:
2483         * rendering/RenderSVGImage.h:
2484         * rendering/RenderSVGInline.cpp:
2485         * rendering/RenderSVGInline.h:
2486         * rendering/RenderSVGInlineText.cpp:
2487         * rendering/RenderSVGInlineText.h:
2488         * rendering/RenderSVGTSpan.cpp:
2489         * rendering/RenderSVGTSpan.h:
2490         * rendering/RenderSVGText.cpp:
2491         * rendering/RenderSVGText.h:
2492         * rendering/RenderStyle.cpp:
2493         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
2494         (WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData):
2495         (WebCore::StyleRareNonInheritedData::operator==):
2496         (WebCore::RenderStyle::RenderStyle):
2497         (WebCore::RenderStyle::inheritFrom):
2498         (WebCore::RenderStyle::operator==):
2499         (WebCore::RenderStyle::inheritedNotEqual):
2500         (WebCore::RenderStyle::diff):
2501         * rendering/RenderStyle.h:
2502         * rendering/RenderText.cpp:
2503         (WebCore::RenderText::setStyle):
2504         (WebCore::RenderText::setTextInternal):
2505         * rendering/RenderTreeAsText.cpp:
2506         (WebCore::write):
2507         (WebCore::externalRepresentation):
2508         * rendering/SVGInlineFlowBox.cpp:
2509         * rendering/SVGInlineFlowBox.h:
2510         * rendering/SVGRenderTreeAsText.cpp:
2511         * rendering/SVGRenderTreeAsText.h:
2512         * rendering/SVGRootInlineBox.cpp:
2513         * rendering/SVGRootInlineBox.h:
2514         * rendering/bidi.cpp:
2515         (WebCore::shouldPreserveNewline):
2516         (WebCore::RenderBlock::findNextLineBreak):
2517         * webcore-base.bkl:
2518         * xml/NativeXPathNSResolver.cpp:
2519         * xml/NativeXPathNSResolver.h:
2520         * xml/XPathEvaluator.cpp:
2521         * xml/XPathEvaluator.h:
2522         * xml/XPathExpression.cpp:
2523         * xml/XPathExpression.h:
2524         * xml/XPathExpressionNode.cpp:
2525         * xml/XPathExpressionNode.h:
2526         * xml/XPathFunctions.cpp:
2527         * xml/XPathFunctions.h:
2528         * xml/XPathGrammar.y:
2529         * xml/XPathNSResolver.cpp:
2530         * xml/XPathNSResolver.h:
2531         * xml/XPathNamespace.cpp:
2532         * xml/XPathNamespace.h:
2533         * xml/XPathParser.cpp:
2534         * xml/XPathParser.h:
2535         * xml/XPathPath.cpp:
2536         * xml/XPathPath.h:
2537         * xml/XPathPredicate.cpp:
2538         * xml/XPathPredicate.h:
2539         * xml/XPathResult.cpp:
2540         * xml/XPathResult.h:
2541         * xml/XPathStep.cpp:
2542         * xml/XPathStep.h:
2543         * xml/XPathUtil.cpp:
2544         * xml/XPathUtil.h:
2545         * xml/XPathValue.cpp:
2546         * xml/XPathValue.h:
2547         * xml/XPathVariableReference.cpp:
2548         * xml/XPathVariableReference.h:
2549         * xml/XSLImportRule.cpp:
2550         * xml/XSLImportRule.h:
2551         * xml/XSLStyleSheet.cpp:
2552         * xml/XSLStyleSheet.h:
2553         * xml/XSLTProcessor.cpp:
2554         * xml/XSLTProcessor.h:
2555
2556 2007-02-25  Mitz Pettel  <mitz@webkit.org>
2557
2558         Reviewed by David Hyatt.
2559
2560         - fix http://bugs.webkit.org/show_bug.cgi?id=12886
2561           Crash with Scriptalicious javascript library
2562
2563         Test: fast/dynamic/float-withdrawal.html
2564
2565         * rendering/RenderBlock.cpp:
2566         (WebCore::RenderBlock::layoutBlockChildren): Detect when a child block had
2567         intruding floats in a previous layout, and in that case force it to relayout.
2568
2569 2007-02-25  David Hyatt  <hyatt@apple.com>
2570
2571         Revert my change to the default fill color.  Just set the color to transparent explicitly when
2572         drawing textarea resizer frames.
2573
2574         * platform/graphics/GraphicsContext.cpp:
2575         (WebCore::GraphicsContextState::GraphicsContextState):
2576         * rendering/RenderLayer.cpp:
2577         (WebCore::RenderLayer::paintOverflowControls):
2578
2579 2007-02-25  Sam Weinig  <sam@webkit.org>
2580
2581         Update forgotten files.
2582
2583         * rendering/RenderLayer.cpp:
2584         (WebCore::RenderLayer::updateLayerPosition):
2585
2586 2007-02-25  David Hyatt  <hyatt@apple.com>
2587
2588         Fix for regression caused by changing the containing block of positioned elements with no positioned ancestor
2589         to be the initial containing block (represented in our tree by the RenderView).  Rework RenderView's layout
2590         to have very few special cases.   Now it will just relayout its children when the width/height of the
2591         view actually changes.  Positioned elements no longer get a special additional layout, since width/height
2592         adjustments are caught by the base class already anyway.
2593
2594         Reviewed by mjs, darin
2595
2596         * rendering/RenderBlock.cpp:
2597         (WebCore::RenderBlock::layoutBlock):
2598         * rendering/RenderFlexibleBox.cpp:
2599         (WebCore::RenderFlexibleBox::layoutBlock):
2600         (WebCore::RenderFlexibleBox::layoutVerticalBox):
2601         * rendering/RenderView.cpp:
2602         (WebCore::RenderView::RenderView):
2603         (WebCore::RenderView::layout):
2604         * rendering/RenderView.h:
2605
2606 2007-02-25  Maciej Stachowiak  <mjs@apple.com>
2607
2608         Not reviewed, build fix.
2609
2610         - fix build breakage
2611
2612         * platform/gdk/ScrollViewGdk.cpp:
2613         (WebCore::ScrollView::fullyClippedContentRect):
2614         * platform/qt/ScrollViewQt.cpp:
2615         (WebCore::ScrollView::fullyClippedContentRect):
2616
2617 2007-02-24  Maciej Stachowiak  <mjs@apple.com>
2618
2619         Reviewed by Adam.
2620
2621         - fixed layout test failure in fast/overflow/scrollRevealButton
2622         
2623         I added a new ScrollView method, fullyClippedContentRect, that vies the content rect
2624         as clipped by all ancestor scroll views, not just this one. Currently it only works
2625         correctly on mac however. visibleContentRect, only accounting for the clipping from
2626         this particular scroll view, is sufficient for most purposes.
2627
2628         * page/Frame.cpp:
2629         (WebCore::Frame::visibleSelectionRect):
2630         (WebCore::Frame::setIsActive):
2631         (WebCore::Frame::markAllMatchesForText):
2632         * platform/ScrollView.h:
2633         * platform/gdk/ScrollViewGdk.cpp:
2634         (WebCore::ScrolView::fullyClippedContentRect):
2635         * platform/mac/ScrollViewMac.mm:
2636         (WebCore::ScrollView::fullyClippedContentRect):
2637         * platform/qt/ScrollViewQt.cpp:
2638         (WebCore::ScrolView::fullyClippedContentRect):
2639         * rendering/RenderLayer.cpp:
2640         (WebCore::RenderLayer::scrollRectToVisible):
2641
2642 2007-02-24  Adam Roben  <aroben@apple.com>
2643
2644         Reviewed by Steve.
2645
2646         "Look Up in Dictionary" context menu item should be Mac-only for now,
2647         since it's only implemented on that platform (<rdar://problem/5021468>)
2648
2649         * platform/ContextMenu.cpp:
2650         (WebCore::ContextMenu::populate): Wrap all instances of the dictionary
2651         menu item in #if PLATFORM(MAC).
2652
2653 2007-02-24  Geoffrey Garen  <ggaren@apple.com>
2654
2655         Reviewed by Darin Adler.
2656         
2657         Fixed <rdar://problem/4987649> leaks in BidiRun::operator new seen while 
2658         running WebKit unit tests
2659         
2660         In bidi.cpp, some functions allocate BidiRuns and put them in a global data
2661         structure, while others uses the BidiRuns in the global data structure. 
2662         The caller is responsible for knowing which functions may allocate runs
2663         and which may use them, and calling deleteBidiRuns() at the appropriate time.
2664
2665         The fix is to add some calls to deleteBidiRuns() where they were missing.
2666         
2667         I also added a BidiRun counter because these two leaks were introduced by
2668         our two bidi.cpp experts, so the odds that leaks will creep in again
2669         in the future seem pretty high.
2670
2671         * rendering/bidi.cpp:
2672         (WebCore::RenderBlock::bidiReorderCharacters): Added  missing call to
2673         deleteBidiRuns().
2674         (WebCore::BidiRunCounter::~BidiRunCounter):
2675         (WebCore::BidiRun::operator delete):
2676         (WebCore::RenderBlock::layoutInlineChildren): Added missing call to
2677         deleteBidiRuns(). Moved call to deleteBidiRuns() to same scope as call to
2678         bidiReorderLine(), to emphasize that they go together like new/delete.
2679         In theory, the old code was just as good, but I didn't want to rely on
2680         theory.
2681
2682 2007-02-24  David Harrison  <harrison@apple.com>
2683
2684         Reviewed by Kevin.
2685
2686         <rdar://problem/4961431> Image with empty string alt tag should be ignored
2687
2688         * bridge/mac/WebCoreAXObject.mm:
2689         (-[WebCoreAXObject accessibilityIsIgnored]):
2690         Ignore img element that has an alt attribute, but that string is empty.
2691
2692 2007-02-24  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
2693
2694         Reviewed by Adam Roben.
2695
2696         Gdk improvements.
2697
2698         * platform/gdk/FrameGdk.cpp: only scroll on keydown, not both keydown and keyup.
2699         (WebCore::FrameGdk::keyPress):
2700         (WebCore::FrameGdk::handleGdkEvent):
2701         (WebCore::Frame::print):
2702         (WebCore::Frame::issueTransposeCommand):
2703         (WebCore::Frame::respondToChangedSelection):
2704         (WebCore::Frame::cleanupPlatformScriptObjects):
2705         (WebCore::Frame::dragImageForSelection):
2706         * platform/network/gdk/ResourceHandleManager.cpp: don't free memory that
2707         doesn't belong to us.
2708         (WebCore::ResourceHandleManager::downloadTimerCallback):
2709
2710 2007-02-23  Kevin Decker <kdecker@apple.com>
2711
2712         Reviewed by Anders.
2713
2714         Fixed: <rdar://problem/4971226> REGRESSION: Replying to closed HTML mail message does not quote original body (12503)
2715         
2716         There were two problems here:
2717         
2718         * page/mac/WebCoreFrameBridge.mm:
2719         (+[WebCoreFrameBridge stringWithData:textEncodingName:]): The old code said  "if there is no text encoding name than
2720          assume WindowsLatin1 (iso-8859-1) and try to decode that". That's not sufficient because it doesn't handle the fallback
2721          case for unknown encodings. This method will now attempt to decode using WindowsLatin1 for unknown encoding types.
2722         * platform/mac/mac-encodings.txt: Added the missing "macroman" encoding type. 
2723
2724 2007-02-23  Mitz Pettel  <mitz@webkit.org>
2725
2726         Reviewed by Maciej.
2727
2728         - fix http://bugs.webkit.org/show_bug.cgi?id=12856
2729           REGRESSION (r13685): Canceling the suggestion popup does not revert the change
2730
2731         * editing/ReplaceSelectionCommand.cpp:
2732         (WebCore::ReplaceSelectionCommand::doApply): If the fragment to be inserted
2733         is empty, first delete the selection, and only then bail out. 
2734
2735 2007-02-23  Anders Carlsson  <acarlsson@apple.com>
2736
2737         Reviewed by Adam.
2738
2739         <rdar://problem/5001923> 
2740         REGRESSION: Crash when navigating forward from an error page in WebFrameLoaderClient::dispatchDidReceiveContentLength
2741
2742         Fix an error that was introduced in revision r18541. We should check if the provisional document loader 
2743         has an unreachable URL, not the actual document loader.
2744         
2745         * loader/FrameLoader.cpp:
2746         (WebCore::FrameLoader::updateHistoryForCommit):
2747
2748 2007-02-23  Mitz Pettel  <mitz@webkit.org>
2749
2750         Reviewed by Darin.
2751
2752         - fix http://bugs.webkit.org/show_bug.cgi?id=12823
2753           REGRESSION(r16968-16977): unable to prevent selection by cancelling "selectstart" event
2754
2755         Test: fast/events/selectstart-during-autoscroll.html
2756
2757         * rendering/RenderLayer.cpp:
2758         (WebCore::RenderLayer::autoscroll): Invoke the renderer's shouldSelect() --
2759         which dispatches the selection DOM event and gives it a chance to cancel
2760         the selection -- before updating the selection during autoscroll.
2761
2762 2007-02-23  Oliver Hunt  <oliver@apple.com>
2763
2764         Reviewed by Adam.
2765
2766         Fix for http://bugs.webkit.org/show_bug.cgi?id=12870
2767
2768         It turns out short circuiting DragData::containsURL() was bad
2769  
2770         * manual-tests/directory-drop-on-view.html: Added.
2771         * platform/mac/DragDataMac.mm:
2772         (WebCore::DragData::containsURL):
2773
2774 2007-02-23  Maciej Stachowiak  <mjs@apple.com>
2775
2776         Reviewed by Mitz.
2777
2778         - 12.5% speedup on BenchJS test 6
2779         Partial fix for http://bugs.webkit.org/show_bug.cgi?id=12866
2780         
2781         It turns out that calling documentVisibleRect on an NSScrollView is pretty expensive,
2782         and calling visibleRect even more so. Take measures to call them less often.
2783
2784         * platform/mac/ScrollViewMac.mm:
2785         (WebCore::ScrollView::visibleContentRect): Use documentVisibleRect when possible.
2786         (WebCore::ScrollView::updateContents): Use visibleContentRect to be able to use
2787         documentVisibleRect when possible.
2788         * rendering/RenderView.cpp:
2789         (WebCore::RenderView::repaintViewRectangle): Don't get or intersect with viewRect
2790         if we don't have a parent frame, since the ScrollView will do that anyway. Also,
2791         don't get contentX and contentY separately since they are in the viewRect already.
2792         (WebCore::RenderView::viewRect): Use visibleContentRect instead of getting each
2793         coordinate individually, to avoid calling documentVisibleRect repeatedly.
2794
2795 2007-02-23  Maciej Stachowiak  <mjs@apple.com>
2796
2797         Reviewed by Mitz.
2798
2799         - 2% speedup on BenchJS test 6
2800         Partial fix for http://bugs.webkit.org/show_bug.cgi?id=12866
2801
2802         * css/CSSPrimitiveValue.cpp:
2803         (WebCore::CSSPrimitiveValue::cssText): Use format() instead of
2804         number() followed by append of a constant string.
2805
2806 2007-02-22  George Staikos  <staikos@kde.org>
2807
2808         Fix the Qt build.
2809
2810         * platform/qt/ClipboardQt.cpp:
2811         (WebCore::ClipboardQt::ClipboardQt):
2812
2813 2007-02-22  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
2814
2815         Reviewed by Adam Roben, who never sleeps.
2816
2817         To avoid code duplication, move notImplementedGdk() macro to a separate
2818         header file. Remove existing notImplementedGdk() macros and replace
2819         remaining notImplemented() to notImplementedGdk() in gdk code.
2820
2821         * loader/gdk/DocumentLoaderGdk.cpp:
2822         (WebCore::DocumentLoader::getResponseModifiedHeader):
2823         * loader/gdk/FrameLoaderClientGdk.cpp:
2824         (WebCore::FrameLoaderClientGdk::hasWebView):
2825         (WebCore::FrameLoaderClientGdk::hasFrameView):
2826         * page/gdk/ContextMenuClientGdk.cpp:
2827         (WebCore::ContextMenuClientGdk::contextMenuDestroyed):
2828         (WebCore::ContextMenuClientGdk::getCustomMenuFromDefaultItems):
2829         (WebCore::ContextMenuClientGdk::contextMenuItemSelected):
2830         (WebCore::ContextMenuClientGdk::downloadURL):
2831         (WebCore::ContextMenuClientGdk::copyImageToClipboard):
2832         (WebCore::ContextMenuClientGdk::searchWithGoogle):
2833         (WebCore::ContextMenuClientGdk::lookUpInDictionary):
2834         (WebCore::ContextMenuClientGdk::speak):
2835         (WebCore::ContextMenuClientGdk::stopSpeaking):
2836         * page/gdk/EventHandlerGdk.cpp:
2837         * platform/gdk/CursorGdk.cpp:
2838         (WebCore::Cursor::Cursor):
2839         * platform/gdk/EditorClientGdk.cpp:
2840         * platform/gdk/NotImplementedGdk.h: Added.
2841         * platform/gdk/PopupMenuGdk.cpp:
2842         (WebCore::PopupMenu::PopupMenu):
2843         (WebCore::PopupMenu::~PopupMenu):
2844         (WebCore::PopupMenu::show):
2845         (WebCore::PopupMenu::hide):
2846         (WebCore::PopupMenu::updateFromElement):
2847         * platform/gdk/RenderThemeGdk.cpp:
2848         * platform/gdk/ScreenGdk.cpp:
2849         (WebCore::screenDepth):
2850         (WebCore::screenDepthPerComponent):
2851         (WebCore::screenIsMonochrome):
2852         (WebCore::screenRect):
2853         (WebCore::screenAvailableRect):
2854         * platform/gdk/TemporaryLinkStubs.cpp:
2855         * platform/graphics/gdk/ImageGdk.cpp:
2856         (WebCore::Image::drawPattern):
2857         * platform/network/gdk/ResourceHandleCurl.cpp:
2858         (WebCore::ResourceHandle::setDefersLoading):
2859         * platform/network/gdk/ResourceHandleManager.cpp:
2860         (WebCore::ResourceHandleManager::setupPUT):
2861         (WebCore::ResourceHandleManager::setupPOST):
2862
2863 2007-02-22  Ian Eng  <ian.eng.webkit@gmail.com>
2864
2865         Reviewed by Maciej.
2866
2867         - Patch for http://bugs.webkit.org/show_bug.cgi?id=12850
2868           Leaks >10k objects
2869
2870         and
2871
2872         - http://bugs.webkit.org/show_bug.cgi?id=12853
2873           add a EventListener leak counter
2874
2875         Problem: RemoveEventListener leaks memory if the listener is not
2876         registered.
2877         Fix: Added Window::findJSEventListener function w/o creating a 
2878         JSEventListener; Renamed getJSEventListener to findOrCreateJSEventListener;
2879
2880         As an enhancement, added a leak counter for EventListeners.
2881
2882         Added a test case, LayoutTests/fast/events/remove-event-listener.html.
2883
2884         * WebCore/bindings/js/kjs_dom.cpp:
2885         * WebCore/bindings/js/kjs_window.h:
2886         * WebCore/bindings/js/kjs_window.cpp:
2887         * WebCore/bindings/js/kjs_event.cpp: Add a leak counter.
2888         * WebCore/bindings/js/JSXMLHttpRequest.cpp:
2889         * LayoutTests/fast/events/remove-event-listener.html:
2890
2891 2007-02-22  Anders Carlsson  <acarlsson@apple.com>
2892
2893         Reviewed by Geoff.
2894
2895         <rdar://problem/4998203> 
2896         REGRESSION: Back-forward list gets messed up when navigating to error pages with back-forward cache turned off
2897         
2898         * loader/FrameLoader.cpp:
2899         (WebCore::FrameLoader::load):
2900         Remove call to setPolicyDocumentLoader(), the policy document loader is set immediately after, and setting it before 
2901         calling shouldReloadToHandleUnreachableURL causes us to get the wrong URL.
2902         
2903         (WebCore::FrameLoader::shouldReloadToHandleUnreachableURL):
2904         Check if the unreachable URL is equal to the document loader's request.
2905         
2906         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
2907         Check the provisional document loader's unreachable URL.
2908
2909 2007-02-22  Justin Garcia  <justin.garcia@apple.com>
2910
2911         Reviewed by darin
2912         
2913         <rdar://problem/5007143>
2914         REGRESSION: WebKit doesn't remember horizontal position of caret when moving forward by line
2915
2916         * editing/SelectionController.cpp:
2917         (WebCore::SelectionController::SelectionController): Initialize 
2918         m_xPosForVerticalArrowNavigation.
2919         (WebCore::SelectionController::setSelection): Call the new setter.
2920         (WebCore::SelectionController::modifyMovingRightForward): For line
2921         and paragraph granularities, use the saved xPosForVerticalArrowNavigation 
2922         even if the old selection was a range. Use the x position of the 
2923         *start*, not the end of the selection if there is no saved 
2924         xPosForVerticalArrowNavigation.  This matches TextEdit's behavior.
2925         (WebCore::SelectionController::modifyMovingLeftBackward): For line
2926         and paragraph granularities, use the saved xPosForVerticalArrowNavigation 
2927         even if the old selection was a range.
2928         (WebCore::SelectionController::modify): Preserve the xPosForVerticalArrowNavigation
2929         for line and paragraph granularities.
2930         (WebCore::SelectionController::xPosForVerticalArrowNavigation): Removed
2931         the recalc bool because it is now always false.
2932         (WebCore::SelectionController::setXPosForVerticalArrowNavigation): Added.
2933         * editing/SelectionController.h: Moved m_xPosForVerticalArrowNavigation
2934         from Frame.
2935         * page/Frame.cpp: Moved m_xPosForVerticalArrowNavigation to SelectionController.
2936         * page/Frame.h: Ditto.
2937         * page/FramePrivate.h: Ditto.
2938
2939 2007-02-22  Beth Dakin  <bdakin@apple.com>
2940
2941         Reviewed by Adam. Manual test added.
2942
2943         Fix for http://bugs.webkit.org/show_bug.cgi?id=12399 REGRESSION: 
2944         Unable to prevent default context menu from appearing. <rdar://
2945         problem/5017416>
2946
2947         This problem appeared because of two facets of the current context 
2948         menu design. First, all context menu events are now considered to 
2949         be "swallowed" since we take care of building up the regular 
2950         context menu through the defaultEventHandler(). Second, the context 
2951         menu controller holds onto it's context menu until a new one is 
2952         created. There would be logistical problems changing this since 
2953         AppKit relies on the menu being around for as long as it is
2954         visible on the screen and we don't get any notification once the 
2955         menu is popped-down.
2956
2957         This patch fixes the problem by giving WebKit a way to clear the 
2958         controller's context menu. WebKit now clears the menu before it 
2959         propagates a new context menu event through the DOM.
2960
2961         * WebCore.exp:
2962         * manual-tests/DOMContextMenuEvent.html: Added.
2963         * page/ContextMenuController.cpp:
2964         (WebCore::ContextMenuController::clearContextMenu):
2965         * page/ContextMenuController.h:
2966
2967 2007-02-22  John Sullivan  <sullivan@apple.com>
2968
2969         Reviewed by Kevin and Adele
2970         
2971         - fixed <rdar://problem/4129417> Need final art for textarea's resize corner
2972         
2973         This probably broke some layout pixel tests since the image changed. I'm going to
2974         track those down in a moment (non-trivial since there are a bunch failing for other
2975         reasons).
2976
2977         * Resources/textAreaResizeCorner.tiff:
2978         new art
2979
2980         * Resources/deleteButton.tiff:
2981         * Resources/deleteButtonPressed.tiff:
2982         these got smaller when I ran compress-tiffs on this directory
2983         
2984 2007-02-22  Oliver Hunt  <oliver@apple.com>
2985
2986         Reviewed by Ada, Lou and Steve.
2987
2988         Moving basic components of ClipboardMac to Clipboard, 
2989         last of the basic common code merge will come later (namely setting the 
2990         drag element/image).
2991         
2992         Tidying up in DragController including a few bad PassRefPtr uses and
2993         removing unnecessary accessors.  Also initialise fields properly to
2994         fix <rdar:/problems/5014889>
2995
2996         * dom/Clipboard.cpp:
2997         (WebCore::Clipboard::Clipboard):
2998           New constructor
2999           
3000         * dom/Clipboard.h:
3001         (WebCore::Clipboard::isForDragging):
3002         (WebCore::Clipboard::dragLocation):
3003         (WebCore::Clipboard::dragImage):
3004         (WebCore::Clipboard::dragImageElement):
3005           Exposing common data
3006           
3007         * page/DragController.cpp:
3008         (WebCore::DragController::DragController):
3009           Initialise m_isHandlingDrag (oops)
3010         (WebCore::documentFragmentFromDragData):
3011         (WebCore::DragController::tryDocumentDrag):
3012           Fixing PassRefPtr misuse
3013         (WebCore::DragController::canProcessDrag):
3014         (WebCore::DragController::startDrag):
3015         (WebCore::DragController::doSystemDrag):
3016           Make sure we're using the correct coordinate space
3017           
3018         * page/EventHandler.cpp:
3019         (WebCore::EventHandler::handleDrag):
3020           Reset drag source correctly
3021           
3022         * platform/mac/ClipboardMac.h:
3023         * platform/mac/ClipboardMac.mm:
3024         (WebCore::ClipboardMac::ClipboardMac):
3025           update constructor to use new Clipboard constructor
3026
3027 2007-02-22  Adele Peterson  <adele@apple.com>
3028
3029         Reviewed by Darin.
3030
3031         Fix for <rdar://problem/5014970> 9A374: Tabs don't work in the message body
3032
3033         Test: fast/events/keypress-insert-tab.html
3034
3035         * page/EventHandler.cpp: (WebCore::EventHandler::defaultTextInputEventHandler):
3036           If the defaultTabEventHandler doesn't handle the event, then go on to the insertText case.
3037
3038 2007-02-22  Timothy Hatcher  <timothy@apple.com>
3039
3040         Reviewed by Darin.
3041
3042         <rdar://problem/4948887> REGRESSION: Correct differences in public DOM API that inadvertently changed in Leopard
3043
3044         * bindings/objc/PublicDOMInterfaces.h: Changes return types for two size properties, adds deprecated DOMEventTarget methods.
3045         * bindings/scripts/CodeGeneratorObjC.pm: Fixed public API checking for protocols, adds support for ConvertToString.
3046         * dom/EventTarget.idl: Marks addEventListener and removeEventListener with the OldStyleObjC attribute.
3047         * html/HTMLBaseFontElement.idl: Changes the size property to a DOMString for ObjC only.
3048         * html/HTMLInputElement.idl: Changes the size property to a DOMString for ObjC only.
3049         * html/HTMLOptionsCollection.idl: Changes the length property to be unsigned.
3050
3051 2007-02-22  Adele Peterson  <adele@apple.com>
3052
3053         Reviewed by John.
3054
3055         Fix <rdar://problem/5016969> REGRESSION: "Check Spelling As You Type" context menu item is never checked
3056
3057         * platform/ContextMenu.cpp: (WebCore::ContextMenu::checkOrEnableIfNeeded): Set shouldCheck for ContextMenuItemTagCheckSpellingWhileTyping.
3058
3059 2007-02-22  Antti Koivisto  <antti@apple.com>
3060
3061         Reviewed by Darin.
3062
3063         - fix http://bugs.webkit.org/show_bug.cgi?id=11447
3064         REGRESSION(NativeListBox): List not scrolled to preselected option
3065         <rdar://problem/4957463>
3066         
3067         Initiate scroll when selected <option> is added to <select>.
3068
3069         * html/HTMLOptionElement.cpp:
3070         (WebCore::HTMLOptionElement::insertedIntoDocument):
3071         * html/HTMLOptionElement.h:
3072         * html/HTMLSelectElement.cpp:
3073         (WebCore::HTMLSelectElement::notifyOptionSelected):
3074         (WebCore::HTMLSelectElement::updateListBoxSelection):
3075         (WebCore::HTMLSelectElement::scrollToSelection):
3076         * html/HTMLSelectElement.h:
3077
3078 2007-02-22  Zack Rusin  <zrusin@trolltech.com>
3079
3080         Reviewed by Lars
3081
3082         Fix sites with fixed positioned backgrounds.
3083
3084         * platform/qt/ScrollViewQt.cpp:
3085         (WebCore::ScrollView::setStaticBackground):
3086
3087 2007-02-22  Zack Rusin  <zrusin@trolltech.com>
3088
3089         Reviewed by Lars
3090
3091         Properly implement canvas/scrollview's. Get
3092         rid of ScrollViewCanvas and replace it with
3093         a tailor abstractscrollview (now in qwebframe).
3094         Scrolling of pages is finally completely smooth.
3095
3096         * WebCore.pro:
3097         * platform/ScrollView.h:
3098         * platform/qt/ScrollViewCanvasQt.cpp: Removed.
3099         * platform/qt/ScrollViewCanvasQt.h: Removed.
3100         * platform/qt/ScrollViewQt.cpp:
3101         (WebCore::ScrollView::ScrollView):
3102         (WebCore::ScrollView::setScrollArea):
3103         (WebCore::ScrollView::updateContents):
3104         (WebCore::ScrollView::resizeContents):
3105         (WebCore::ScrollView::contentsWidth):
3106         (WebCore::ScrollView::contentsHeight):
3107         (WebCore::ScrollView::contentsToWindow):
3108         (WebCore::ScrollView::windowToContents):
3109         (WebCore::ScrollView::addChild):
3110         * platform/qt/WidgetQt.cpp:
3111         (WebCore::WidgetPrivate::canvas):
3112         (WebCore::WidgetPrivate::parentScroll):
3113         (WebCore::WidgetPrivate::setGeometry):
3114         (WebCore::WidgetPrivate::geometry):
3115         (WebCore::Widget::frameGeometry):
3116         (WebCore::Widget::setQWidget):
3117         (WebCore::Widget::setFrameGeometry):
3118
3119 2007-02-21  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
3120
3121         Reviewed by Adam Roben.
3122
3123         Improve notImplemented() macro for gdk. Rename to notImplementedGdk() to
3124         give it a unique name (so that it doesn't clash with notImplemented()
3125         for other platforms).
3126         Make it print a given warning only once, so that frequently called
3127         functions don't clutter the output.
3128         Don't print the warning if DISABLE_NI_WARNING env variable is set.
3129
3130         * loader/gdk/FrameLoaderClientGdk.cpp:
3131         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveAuthenticationChallenge):
3132         (WebCore::FrameLoaderClientGdk::dispatchDidCancelAuthenticationChallenge):
3133         (WebCore::FrameLoaderClientGdk::dispatchWillSendRequest):
3134         (WebCore::FrameLoaderClientGdk::assignIdentifierToInitialRequest):
3135         (WebCore::FrameLoaderClientGdk::createPlugin):
3136         (WebCore::FrameLoaderClientGdk::createFrame):
3137         (WebCore::FrameLoaderClientGdk::redirectDataToPlugin):
3138         (WebCore::FrameLoaderClientGdk::createJavaAppletWidget):
3139         (WebCore::FrameLoaderClientGdk::objectContentType):
3140         (WebCore::FrameLoaderClientGdk::overrideMediaType):
3141         (WebCore::FrameLoaderClientGdk::windowObjectCleared):
3142         (WebCore::FrameLoaderClientGdk::hasWebView):
3143         (WebCore::FrameLoaderClientGdk::hasFrameView):
3144         (WebCore::FrameLoaderClientGdk::frameLoadCompleted):
3145         (WebCore::FrameLoaderClientGdk::saveViewStateToItem):
3146         (WebCore::FrameLoaderClientGdk::restoreViewState):
3147         (WebCore::FrameLoaderClientGdk::privateBrowsingEnabled):
3148         (WebCore::FrameLoaderClientGdk::makeDocumentView):
3149         (WebCore::FrameLoaderClientGdk::makeRepresentation):
3150         (WebCore::FrameLoaderClientGdk::forceLayout):
3151         (WebCore::FrameLoaderClientGdk::forceLayoutForNonHTML):
3152         (WebCore::FrameLoaderClientGdk::setCopiesOnScroll):
3153         (WebCore::FrameLoaderClientGdk::detachedFromParent1):
3154         (WebCore::FrameLoaderClientGdk::detachedFromParent2):
3155         (WebCore::FrameLoaderClientGdk::detachedFromParent3):
3156         (WebCore::FrameLoaderClientGdk::detachedFromParent4):
3157         (WebCore::FrameLoaderClientGdk::loadedFromPageCache):
3158         (WebCore::FrameLoaderClientGdk::dispatchDidHandleOnloadEvents):
3159         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveServerRedirectForProvisionalLoad):
3160         (WebCore::FrameLoaderClientGdk::dispatchDidCancelClientRedirect):
3161         (WebCore::FrameLoaderClientGdk::dispatchWillPerformClientRedirect):
3162         (WebCore::FrameLoaderClientGdk::dispatchDidChangeLocationWithinPage):
3163         (WebCore::FrameLoaderClientGdk::dispatchWillClose):
3164         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveIcon):
3165         (WebCore::FrameLoaderClientGdk::dispatchDidStartProvisionalLoad):
3166         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveTitle):
3167         (WebCore::FrameLoaderClientGdk::dispatchDidCommitLoad):
3168         (WebCore::FrameLoaderClientGdk::dispatchDidFinishDocumentLoad):
3169         (WebCore::FrameLoaderClientGdk::dispatchDidFirstLayout):
3170         (WebCore::FrameLoaderClientGdk::dispatchShow):
3171         (WebCore::FrameLoaderClientGdk::cancelPolicyCheck):
3172         (WebCore::FrameLoaderClientGdk::dispatchDidLoadMainResource):
3173         (WebCore::FrameLoaderClientGdk::revertToProvisionalState):
3174         (WebCore::FrameLoaderClientGdk::clearUnarchivingState):
3175         (WebCore::FrameLoaderClientGdk::willChangeTitle):
3176         (WebCore::FrameLoaderClientGdk::finishedLoading):
3177         (WebCore::FrameLoaderClientGdk::finalSetupForReplace):
3178         (WebCore::FrameLoaderClientGdk::setDefersLoading):
3179         (WebCore::FrameLoaderClientGdk::isArchiveLoadPending):
3180         (WebCore::FrameLoaderClientGdk::cancelPendingArchiveLoad):
3181         (WebCore::FrameLoaderClientGdk::clearArchivedResources):
3182         (WebCore::FrameLoaderClientGdk::canHandleRequest):
3183         (WebCore::FrameLoaderClientGdk::canShowMIMEType):
3184         (WebCore::FrameLoaderClientGdk::representationExistsForURLScheme):
3185         (WebCore::FrameLoaderClientGdk::generatedMIMETypeForURLScheme):
3186         (WebCore::FrameLoaderClientGdk::provisionalLoadStarted):
3187         (WebCore::FrameLoaderClientGdk::didFinishLoad):
3188         (WebCore::FrameLoaderClientGdk::prepareForDataSourceReplacement):
3189         (WebCore::FrameLoaderClientGdk::setTitle):
3190         (WebCore::FrameLoaderClientGdk::setDocumentViewFromPageCache):
3191         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveContentLength):
3192         (WebCore::FrameLoaderClientGdk::dispatchDidFinishLoading):
3193         (WebCore::FrameLoaderClientGdk::dispatchDidFailLoading):
3194         (WebCore::FrameLoaderClientGdk::dispatchDidLoadResourceFromMemoryCache):
3195         (WebCore::FrameLoaderClientGdk::dispatchDidFailProvisionalLoad):
3196         (WebCore::FrameLoaderClientGdk::dispatchDidFailLoad):
3197         (WebCore::FrameLoaderClientGdk::download):
3198         (WebCore::FrameLoaderClientGdk::cancelledError):
3199         (WebCore::FrameLoaderClientGdk::cannotShowURLError):
3200         (WebCore::FrameLoaderClientGdk::interruptForPolicyChangeError):
3201         (WebCore::FrameLoaderClientGdk::cannotShowMIMETypeError):
3202         (WebCore::FrameLoaderClientGdk::fileDoesNotExistError):
3203         (WebCore::FrameLoaderClientGdk::shouldFallBack):
3204         (WebCore::FrameLoaderClientGdk::willUseArchive):
3205         (WebCore::FrameLoaderClientGdk::saveDocumentViewToPageCache):
3206         (WebCore::FrameLoaderClientGdk::canCachePage):
3207         (WebCore::FrameLoaderClientGdk::dispatchCreatePage):
3208         (WebCore::FrameLoaderClientGdk::dispatchUnableToImplementPolicy):
3209         (WebCore::FrameLoaderClientGdk::setMainDocumentError):
3210         (WebCore::FrameLoaderClientGdk::startDownload):
3211         (WebCore::FrameLoaderClientGdk::updateGlobalHistoryForStandardLoad):
3212         (WebCore::FrameLoaderClientGdk::updateGlobalHistoryForReload):
3213         (WebCore::FrameLoaderClientGdk::shouldGoToHistoryItem):
3214         * page/gdk/EventHandlerGdk.cpp:
3215         (WebCore::EventHandler::passMouseDownEventToWidget):
3216         (WebCore::EventHandler::eventActivatedView):
3217         (WebCore::EventHandler::passSubframeEventToSubframe):
3218         (WebCore::EventHandler::passWheelEventToWidget):
3219         (WebCore::EventHandler::createDraggingClipboard):
3220         * platform/gdk/EditorClientGdk.cpp:
3221         (WebCore::EditorClientGdk::shouldDeleteRange):
3222         (WebCore::EditorClientGdk::isContinuousSpellCheckingEnabled):
3223         (WebCore::EditorClientGdk::isGrammarCheckingEnabled):
3224         (WebCore::EditorClientGdk::spellCheckerDocumentTag):
3225         (WebCore::EditorClientGdk::shouldBeginEditing):
3226         (WebCore::EditorClientGdk::shouldEndEditing):
3227         (WebCore::EditorClientGdk::shouldInsertText):
3228         (WebCore::EditorClientGdk::shouldChangeSelectedRange):
3229         (WebCore::EditorClientGdk::shouldApplyStyle):
3230         (WebCore::EditorClientGdk::didBeginEditing):
3231         (WebCore::EditorClientGdk::respondToChangedContents):
3232         (WebCore::EditorClientGdk::didEndEditing):
3233         (WebCore::EditorClientGdk::didWriteSelectionToPasteboard):
3234         (WebCore::EditorClientGdk::didSetSelectionTypesForPasteboard):
3235         (WebCore::EditorClientGdk::selectWordBeforeMenuEvent):
3236         (WebCore::EditorClientGdk::isEditable):
3237         (WebCore::EditorClientGdk::registerCommandForUndo):
3238         (WebCore::EditorClientGdk::registerCommandForRedo):
3239         (WebCore::EditorClientGdk::clearUndoRedoOperations):
3240         (WebCore::EditorClientGdk::canUndo):
3241         (WebCore::EditorClientGdk::canRedo):
3242         (WebCore::EditorClientGdk::undo):
3243         (WebCore::EditorClientGdk::redo):
3244         (WebCore::EditorClientGdk::shouldInsertNode):
3245         (WebCore::EditorClientGdk::pageDestroyed):
3246         (WebCore::EditorClientGdk::smartInsertDeleteEnabled):
3247         (WebCore::EditorClientGdk::toggleContinuousSpellChecking):
3248         (WebCore::EditorClientGdk::textFieldDidBeginEditing):
3249         (WebCore::EditorClientGdk::textFieldDidEndEditing):
3250         (WebCore::EditorClientGdk::textDidChangeInTextField):
3251         (WebCore::EditorClientGdk::doTextFieldCommandFromEvent):
3252         (WebCore::EditorClientGdk::textWillBeDeletedInTextField):
3253         (WebCore::EditorClientGdk::textDidChangeInTextArea):
3254         * platform/gdk/RenderThemeGdk.cpp:
3255         (WebCore::RenderThemeGdk::setCheckboxSize):
3256         (WebCore::RenderThemeGdk::setRadioSize):
3257         (WebCore::RenderThemeGdk::adjustTextFieldStyle):
3258         * platform/gdk/TemporaryLinkStubs.cpp:
3259         (FrameView::updateBorder):
3260         (Widget::setEnabled):
3261         (Widget::isEnabled):
3262         (Widget::focusPolicy):
3263         (Widget::enableFlushDrawing):
3264         (Widget::disableFlushDrawing):
3265         (Widget::lockDrawingFocus):
3266         (Widget::unlockDrawingFocus):
3267         (Widget::removeFromParent):
3268         (Widget::paint):
3269         (Widget::setIsSelected):
3270         (Widget::invalidate):
3271         (Widget::invalidateRect):
3272         (PlatformMouseEvent::PlatformMouseEvent):
3273         (WebCore::findNextSentenceFromIndex):
3274         (WebCore::findSentenceBoundary):
3275         (WebCore::findNextWordFromIndex):
3276         (ChromeClientGdk::chromeDestroyed):
3277         (ChromeClientGdk::windowRect):
3278         (ChromeClientGdk::setWindowRect):
3279         (ChromeClientGdk::pageRect):
3280         (ChromeClientGdk::scaleFactor):
3281         (ChromeClientGdk::focus):
3282         (ChromeClientGdk::unfocus):
3283         (ChromeClientGdk::createWindow):
3284         (ChromeClientGdk::createModalDialog):
3285         (ChromeClientGdk::show):
3286         (ChromeClientGdk::canRunModal):
3287         (ChromeClientGdk::runModal):
3288         (ChromeClientGdk::setToolbarsVisible):
3289         (ChromeClientGdk::toolbarsVisible):
3290         (ChromeClientGdk::setStatusbarVisible):
3291         (ChromeClientGdk::statusbarVisible):
3292         (ChromeClientGdk::setScrollbarsVisible):
3293         (ChromeClientGdk::scrollbarsVisible):
3294         (ChromeClientGdk::setMenubarVisible):
3295         (ChromeClientGdk::menubarVisible):
3296         (ChromeClientGdk::setResizable):
3297         (ChromeClientGdk::closeWindowSoon):
3298         (ChromeClientGdk::canTakeFocus):
3299         (ChromeClientGdk::takeFocus):
3300         (ChromeClientGdk::canRunBeforeUnloadConfirmPanel):
3301         (ChromeClientGdk::addMessageToConsole):
3302         (ChromeClientGdk::runBeforeUnloadConfirmPanel):
3303         (ChromeClientGdk::runJavaScriptAlert):
3304         (ChromeClientGdk::runJavaScriptConfirm):
3305         (ChromeClientGdk::runJavaScriptPrompt):
3306         (ChromeClientGdk::setStatusbarText):
3307         (ChromeClientGdk::shouldInterruptJavaScript):
3308         (ChromeClientGdk::tabsToLinks):
3309         (ChromeClientGdk::windowResizerRect):
3310         (ChromeClientGdk::addToDirtyRegion):
3311         (ChromeClientGdk::scrollBackingStore):
3312         (ChromeClientGdk::updateBackingStore):
3313         (PlugInInfoStore::createPluginInfoForPluginAtIndex):
3314         (PlugInInfoStore::pluginCount):
3315         (WebCore::PlugInInfoStore::supportsMIMEType):
3316         (WebCore::refreshPlugins):
3317         (SearchPopupMenu::saveRecentSearches):
3318         (SearchPopupMenu::loadRecentSearches):
3319         (SearchPopupMenu::SearchPopupMenu):
3320         (PlatformScrollbar::PlatformScrollbar):
3321         (PlatformScrollbar::~PlatformScrollbar):
3322         (PlatformScrollbar::setEnabled):
3323         (PlatformScrollbar::paint):
3324         (PlatformScrollbar::updateThumbPosition):
3325         (PlatformScrollbar::updateThumbProportion):
3326         (PlatformScrollbar::setRect):
3327         (FileChooser::FileChooser):
3328         (FileChooser::~FileChooser):
3329         (FileChooser::openFileChooser):
3330         (FileChooser::basenameForWidth):
3331         (ResourceHandle::willLoadFromCache):
3332         (ResourceHandle::loadsBlocked):
3333         (ResourceHandle::loadResourceSynchronously):
3334         (Icon::Icon):
3335         (Icon::~Icon):
3336         (Icon::newIconForFile):
3337         (Icon::paint):
3338         (Font::drawComplexText):
3339         (Font::floatWidthForComplexText):
3340         (Font::offsetForPositionForComplexText):
3341         (PageCache::close):
3342         (Editor::ignoreSpelling):
3343         (Editor::learnSpelling):
3344         (Editor::isSelectionUngrammatical):
3345         (Editor::isSelectionMisspelled):
3346         (Editor::guessesForMisspelledSelection):
3347         (Editor::guessesForUngrammaticalSelection):
3348         (Editor::markMisspellingsAfterTypingToPosition):
3349         (Editor::newGeneralClipboard):
3350         (Pasteboard::generalPasteboard):
3351         (Pasteboard::writeSelection):
3352         (Pasteboard::writeURL):
3353         (Pasteboard::writeImage):
3354         (Pasteboard::clear):
3355         (Pasteboard::canSmartReplace):
3356         (Pasteboard::documentFragment):
3357         (Pasteboard::plainText):
3358         (Pasteboard::Pasteboard):
3359         (Pasteboard::~Pasteboard):
3360         (ContextMenu::ContextMenu):
3361         (ContextMenu::~ContextMenu):
3362         (ContextMenu::appendItem):
3363         (ContextMenuItem::ContextMenuItem):
3364         (ContextMenuItem::~ContextMenuItem):
3365         (ContextMenuItem::releasePlatformDescription):
3366         (ContextMenuItem::type):
3367         (ContextMenuItem::setType):
3368         (ContextMenuItem::action):
3369         (ContextMenuItem::setAction):
3370         (ContextMenuItem::title):
3371         (ContextMenuItem::setTitle):
3372         (ContextMenuItem::platformSubMenu):
3373         (ContextMenuItem::setSubMenu):
3374         (ContextMenuItem::setChecked):
3375         (ContextMenuItem::setEnabled):
3376         (WebCore::supportedKeySizes):
3377         (WebCore::systemBeep):
3378         (WebCore::userIdleTime):
3379
3380 2007-02-21  Antti Koivisto  <antti@apple.com>
3381
3382         Reviewed by Hyatt.
3383
3384         - fix http://bugs.webkit.org/show_bug.cgi?id=12820
3385         REGRESSION (r19706): Caret not painted after popup, failing editing/pasteboard/4641033
3386
3387         Yet another attempt to figure out exactly who should paint the caret.
3388
3389         * editing/SelectionController.cpp:
3390         (WebCore::SelectionController::isInsideNode):
3391         * editing/SelectionController.h:
3392         * rendering/RenderBlock.cpp:
3393         (WebCore::RenderBlock::paintCaret):
3394
3395 2007-02-21  Mitz Pettel  <mitz@webkit.org>
3396
3397         Reviewed by Hyatt.
3398
3399         - fix http://bugs.webkit.org/show_bug.cgi?id=12818
3400           REGRESSION (r19148): shacknews.com does not render completely
3401
3402         Test: fast/dynamic/staticY-marking-parents-regression.html
3403
3404         Changed calls to setChildNeedsLayout(true) during layout to
3405         setChildNeedsLayout(true, false). Prior to r19148, the default behavior
3406         of marking containers did not matter because the caller was the container
3407         and was already marked, but r19148 added marking of the parent of
3408         objects with static Y, which can be different from the caller and not
3409         necessarily marked already.
3410
3411         * rendering/RenderBlock.cpp:
3412         (WebCore::RenderBlock::collapseMargins):
3413         (WebCore::RenderBlock::clearFloatsIfNeeded):
3414         (WebCore::RenderBlock::layoutBlockChildren):
3415         * rendering/RenderBox.cpp:
3416         (WebCore::RenderBox::setStaticY):
3417         * rendering/RenderFlexibleBox.cpp:
3418         (WebCore::RenderFlexibleBox::layoutVerticalBox):
3419
3420 2007-02-21  Brady Eidson  <beidson@apple.com>
3421
3422         Reviewed by Dave Harrison
3423
3424         <rdar://problem/5014313> - Crash in FrameLoader::restoreScrollPositionAndViewState() 
3425         after regaining network connection
3426
3427         * loader/FrameLoader.cpp:
3428         (WebCore::FrameLoader::restoreScrollPositionAndViewState):  Leave an assertion for debug
3429         build exploration, but gracefully handle the release build case
3430
3431 2007-02-21  Timothy Hatcher  <timothy@apple.com>
3432
3433         Rubber-stamped by Darin.
3434
3435         * bindings/objc/PublicDOMInterfaces.h: Add missing classes that are really public.
3436         Also adds the deprecated selector for getComputedStyle: on DOMDocument.
3437
3438 2007-02-21  Justin Garcia  <justin.garcia@apple.com>
3439
3440         Reviewed by john
3441         
3442         <rdar://problem/5012665>
3443         Removing indent from list moves the caret to the line below
3444
3445         Selection preservation during indent, outdent and list 
3446         operations uses rangeFromLocationAndLength.  Ranges returned 
3447         by rangeFromLocationAndLength were incorrect for locations 
3448         just before the line breaks that are emitted after blocks.  
3449         This is because TextIterator emitted bad ranges for these line 
3450         breaks (ranges that started and ended *after* the block).  
3451         The fix corrects the start but not the end.  This is acceptible 
3452         because there is code in rangeFromLocationAndLength that corrects 
3453         the ends of runs using the start of the run and VisiblePosition 
3454         creation.
3455         
3456         * editing/TextIterator.cpp:
3457         (WebCore::TextIterator::exitNode): Emit a position *inside* 
3458         the block, after its contents.
3459
3460 2007-02-21  Adele Peterson  <adele@apple.com>
3461
3462         Reviewed by Darin.
3463
3464         Fix for <rdar://problem/4999030> Indexing into select element to get to items in the options collection is broken
3465
3466         Test: fast/forms/select-index-setter.html
3467
3468         Added indexSetter for HTMLSelectElement.
3469
3470         * WebCore.xcodeproj/project.pbxproj: Added JSHTMLSelectElementCustom.h
3471
3472         * bindings/js/JSHTMLOptionsCollectionCustom.cpp: (WebCore::JSHTMLOptionsCollection::indexSetter):
3473           Moved code to selectIndexSetter so it can be shared between these classes.
3474         * bindings/js/JSHTMLSelectElementCustom.cpp:
3475         (WebCore::selectIndexSetter): Added.  Moved from JSHTMLOptionsCollection::indexSetter.
3476         (WebCore::JSHTMLSelectElement::indexSetter): Calls selectIndexSetter.
3477         * bindings/js/JSHTMLSelectElementCustom.h: Added.
3478         * html/HTMLSelectElement.idl: Added HasCustomIndexSetter keyword.
3479
3480         * bindings/scripts/CodeGeneratorJS.pm: When generating "put" methods, if the propertyName is a number, call the indexSetter first,
3481           and then call the version of lookupPut that will also try to use the parent's lookup table.  This matches the order of our
3482           old code, before we autogenerated the JSHTMLSelectElement class.
3483
3484 2007-02-21  George Staikos  <staikos@kde.org>
3485
3486         Reviewed by Zack.
3487
3488         Add files to the build.
3489
3490         * WebCore.pro:
3491
3492 2007-02-21  Zack Rusin  <zrusin@trolltech.com>
3493
3494         Reviewed by Lars
3495
3496         Implementing popups for the Qt platform.
3497
3498         * WebCore.pro:
3499         * platform/PopupMenu.h:
3500         * platform/Widget.h:
3501         * platform/qt/PopupMenuQt.cpp:
3502         (WebCore::PopupMenu::PopupMenu):
3503         (WebCore::PopupMenu::clear):
3504         (WebCore::PopupMenu::populate):
3505         (WebCore::PopupMenu::show):
3506         (WebCore::PopupMenu::hide):
3507         * platform/qt/QWebPopup.cpp: Added.
3508         (WebCore::QWebPopup::QWebPopup):
3509         (WebCore::QWebPopup::exec):
3510         (WebCore::QWebPopup::hideEvent):
3511         (WebCore::QWebPopup::activeChanged):
3512         * platform/qt/QWebPopup.h: Added.
3513         * platform/qt/WidgetQt.cpp:
3514         (WebCore::Widget::canvas):
3515
3516 2007-02-21  George Staikos  <staikos@kde.org>
3517
3518         Reviewed by Zack.
3519
3520         Remove unneeded hack now.
3521
3522         * platform/qt/RenderThemeQt.cpp:
3523         (WebCore::RenderThemeQt::setCheckboxSize):
3524
3525 2007-02-21  Zack Rusin  <zrusin@trolltech.com>
3526
3527         Reviewed by Lars
3528
3529         Fix rendering of lineedits and remove the spurious
3530         padding on push-buttons.
3531
3532         * platform/qt/RenderThemeQt.cpp:
3533         (WebCore::RenderThemeQt::baselinePosition):
3534         (WebCore::RenderThemeQt::adjustTextFieldStyle):
3535         (WebCore::RenderThemeQt::sizeForFont):
3536         (WebCore::RenderThemeQt::setButtonPadding):
3537
3538 2007-02-21  Zack Rusin  <zrusin@trolltech.com>
3539
3540         Fix compilation.
3541
3542         * platform/qt/PasteboardQt.cpp:
3543         (WebCore::Pasteboard::writeURL):
3544         (WebCore::Pasteboard::writeImage):
3545
3546 2007-02-20  Adam Roben  <aroben@apple.com>
3547
3548         Preemptive build fix.
3549