f447b137c09115cfc94b764f9cb770cd5c6d7544
[WebKit-https.git] / WebCore / ChangeLog
1 2006-07-31  Maciej Stachowiak  <mjs@apple.com>
2
3         Rubber-stamped by Tim Hatcher.
4
5         - renamed TransferJob to ResourceLoader
6
7         * Projects/gdk/webcore-gdk.bkl:
8         * WebCore.vcproj/WebCore/WebCore.vcproj:
9         * WebCore.xcodeproj/project.pbxproj:
10         * WebCoreSources.bkl:
11         * bridge/mac/FrameMac.mm:
12         * bridge/mac/WebCoreResourceLoaderImp.h:
13         * bridge/mac/WebCoreResourceLoaderImp.mm:
14         (-[WebCoreResourceLoaderImp redirectedToURL:]):
15         (-[WebCoreResourceLoaderImp addData:]):
16         (-[WebCoreResourceLoaderImp finishJobAndHandle:]):
17         * bridge/win/FrameWin.cpp:
18         * dom/XMLTokenizer.cpp:
19         (WebCore::openFunc):
20         * loader/Cache.cpp:
21         * loader/LoaderFunctions.h:
22         * loader/loader.cpp:
23         (WebCore::Loader::servePendingRequests):
24         (WebCore::Loader::receivedAllData):
25         (WebCore::Loader::receivedResponse):
26         (WebCore::Loader::receivedData):
27         (WebCore::Loader::cancelRequests):
28         (WebCore::Loader::jobForRequest):
29         * loader/loader.h:
30         * loader/mac/LoaderFunctionsMac.mm:
31         (WebCore::ServeSynchronousRequest):
32         * platform/ResourceLoader.cpp: Added.
33         (WebCore::ResourceLoader::ResourceLoader):
34         (WebCore::ResourceLoader::isErrorPage):
35         (WebCore::ResourceLoader::error):
36         (WebCore::ResourceLoader::setError):
37         (WebCore::ResourceLoader::queryMetaData):
38         (WebCore::ResourceLoader::addMetaData):
39         (WebCore::ResourceLoader::kill):
40         (WebCore::ResourceLoader::url):
41         (WebCore::ResourceLoader::postData):
42         (WebCore::ResourceLoader::method):
43         (WebCore::ResourceLoader::client):
44         * platform/ResourceLoader.h: Added.
45         (WebCore::ResourceLoader::getInternal):
46         * platform/ResourceLoaderClient.h: Added.
47         (WebCore::ResourceLoaderClient::~ResourceLoaderClient):
48         (WebCore::ResourceLoaderClient::receivedRedirect):
49         (WebCore::ResourceLoaderClient::receivedResponse):
50         (WebCore::ResourceLoaderClient::receivedData):
51         (WebCore::ResourceLoaderClient::receivedAllData):
52         * platform/ResourceLoaderInternal.h: Added.
53         (WebCore::ResourceLoaderInternal::ResourceLoaderInternal):
54         * platform/TransferJob.cpp: Removed.
55         * platform/TransferJob.h: Removed.
56         * platform/TransferJobClient.h: Removed.
57         * platform/TransferJobInternal.h: Removed.
58         * platform/gdk/FrameGdk.cpp:
59         (WebCore::FrameGdk::openURL):
60         (WebCore::FrameGdk::urlSelected):
61         (WebCore::FrameGdk::receivedData):
62         (WebCore::FrameGdk::receivedAllData):
63         * platform/gdk/FrameGdk.h:
64         * platform/gdk/ResourceLoaderCurl.cpp: Added.
65         (WebCore::ResourceLoaderInternal::~ResourceLoaderInternal):
66         (WebCore::ResourceLoader::~ResourceLoader):
67         (WebCore::ResourceLoader::start):
68         (WebCore::ResourceLoader::cancel):
69         * platform/gdk/ResourceLoaderManager.cpp: Added.
70         (WebCore::ResourceLoaderManager::ResourceLoaderManager):
71         (WebCore::ResourceLoaderManager::get):
72         (WebCore::ResourceLoaderManager::useSimpleTransfer):
73         (WebCore::writeCallback):
74         (WebCore::ResourceLoaderManager::downloadTimerCallback):
75         (WebCore::ResourceLoaderManager::remove):
76         (WebCore::ResourceLoaderManager::add):
77         (WebCore::ResourceLoaderManager::cancel):
78         * platform/gdk/ResourceLoaderManager.h: Added.
79         * platform/gdk/TemporaryLinkStubs.cpp:
80         (WebCore::ServeSynchronousRequest):
81         (WebCore::ResourceLoader::assembleResponseHeaders):
82         (WebCore::ResourceLoader::retrieveCharset):
83         * platform/gdk/TransferJobCurl.cpp: Removed.
84         * platform/gdk/TransferJobManager.cpp: Removed.
85         * platform/gdk/TransferJobManager.h: Removed.
86         * platform/mac/ResourceLoaderMac.mm: Added.
87         (WebCore::ResourceLoaderInternal::~ResourceLoaderInternal):
88         (WebCore::ResourceLoader::~ResourceLoader):
89         (WebCore::ResourceLoader::start):
90         (WebCore::ResourceLoader::assembleResponseHeaders):
91         (WebCore::ResourceLoader::retrieveCharset):
92         (WebCore::ResourceLoader::setLoader):
93         (WebCore::ResourceLoader::receivedResponse):
94         (WebCore::ResourceLoader::cancel):
95         * platform/mac/TransferJobMac.mm: Removed.
96         * platform/win/ResourceLoaderWin.cpp: Added.
97         (WebCore::addToOutstandingJobs):
98         (WebCore::lookupResourceLoader):
99         (WebCore::ResourceLoaderWndProc):
100         (WebCore::initializeOffScreenResourceLoaderWindow):
101         (WebCore::ResourceLoaderInternal::~ResourceLoaderInternal):
102         (WebCore::ResourceLoader::~ResourceLoader):
103         (WebCore::ResourceLoader::start):
104         (WebCore::ResourceLoader::fileLoadTimer):
105         (WebCore::ResourceLoader::cancel):
106         * platform/win/ResourceLoaderWin.h: Added.
107         * platform/win/TemporaryLinkStubs.cpp:
108         (WebCore::ServeSynchronousRequest):
109         (WebCore::ResourceLoader::assembleResponseHeaders):
110         (WebCore::ResourceLoader::retrieveCharset):
111         * platform/win/TransferJobWin.cpp: Removed.
112         * platform/win/TransferJobWin.h: Removed.
113         * xml/XSLTProcessor.cpp:
114         (WebCore::docLoaderFunc):
115         * xml/xmlhttprequest.cpp:
116         (WebCore::XMLHttpRequest::send):
117         (WebCore::XMLHttpRequest::receivedAllData):
118         (WebCore::XMLHttpRequest::receivedRedirect):
119         (WebCore::XMLHttpRequest::receivedData):
120         * xml/xmlhttprequest.h:
121
122 2006-07-31  Darin Adler  <darin@apple.com>
123
124         Reviewed by Hyatt.
125
126         - removed obsolete cell margin hack
127
128         * rendering/RenderBox.cpp: (WebCore::RenderBox::calcVerticalMargins):
129         Set top and bottom margins to 0 for table cells instead of -16384.
130         No effect on layout (including layout tests).
131
132         * css/CSSComputedStyleDeclaration.cpp:
133         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
134         Added a few comments about differences between this class and the
135         what the CSS specification says about computed style.
136
137 2006-07-31  Mark Rowe  <opendarwin.org@bdash.net.nz>
138
139         Reviewed by Maciej.
140
141         http://bugzilla.opendarwin.org/show_bug.cgi?id=9738
142         Bug 9738: Unqualified :hover selector ignored in strict parsing mode
143
144         * css/cssstyleselector.cpp:
145         (WebCore::CSSStyleSelector::checkSelector): Restrict the :hover and :active
146         exclusion based on onlyHoverActive to quirks mode.
147
148 2006-07-31  David Hyatt  <hyatt@apple.com>
149
150         Fix for bug 10179, digg.com scrolls slowly.  Improve fixed positioning
151         and fixed backgrounds so that a count of them is kept on the FrameView.
152         This allows us to switch slow scrolling on and off as these objects come
153         and go.
154
155         * css/cssstyleselector.cpp:
156         (WebCore::CSSStyleSelector::adjustRenderStyle):
157         (WebCore::CSSStyleSelector::applyProperty):
158         * page/FrameView.cpp:
159         (WebCore::FrameViewPrivate::reset):
160         (WebCore::FrameView::layout):
161         (WebCore::FrameView::useSlowRepaints):
162         (WebCore::FrameView::setUseSlowRepaints):
163         (WebCore::FrameView::addSlowRepaintObject):
164         (WebCore::FrameView::removeSlowRepaintObject):
165         * page/FrameView.h:
166         * rendering/RenderBox.cpp:
167         (WebCore::RenderBox::paintBackgroundExtended):
168         * rendering/RenderObject.cpp:
169         (WebCore::RenderObject::setStyle):
170         * rendering/RenderView.cpp:
171         (WebCore::RenderView::paintBoxDecorations):
172
173 2006-07-31  David Hyatt  <hyatt@apple.com>
174
175         Begin disentangling of scrollbar logic in preparation for engine-implemented
176         scrollbars.  Split ScrollBar into two classes, an abstract base (still named
177         ScrollBar) and a new PlatformScrollBar subclass.  This subclass is used only
178         by platforms that want to continue to use a platform scrollbar (rather than
179         the engine one).
180
181         Reviewed by darin
182
183         * WebCore.xcodeproj/project.pbxproj:
184         * html/HTMLCanvasElement.h:
185         * page/Frame.cpp:
186         * platform/PlatformScrollBar.h: Added.
187         (WebCore::PlatformScrollBar::isWidget):
188         * platform/ScrollBar.h:
189         (WebCore::ScrollBarClient::~ScrollBarClient):
190         (WebCore::ScrollBar::~ScrollBar):
191         (WebCore::ScrollBar::orientation):
192         (WebCore::ScrollBar::value):
193         (WebCore::ScrollBar::client):
194         * platform/mac/PlatformScrollBarMac.mm: Added.
195         (-[WebCoreScrollBar initWithPlatformScrollBar:]):
196         (-[WebCoreScrollBar detachPlatformScrollBar]):
197         (-[WebCoreScrollBar scroll:]):
198         (-[WebCoreScrollBar widget]):
199         (-[WebCoreScrollBar mouseDown:]):
200         (WebCore::PlatformScrollBar::PlatformScrollBar):
201         (WebCore::PlatformScrollBar::~PlatformScrollBar):
202         (WebCore::PlatformScrollBar::setScrollBarValue):
203         (WebCore::PlatformScrollBar::setKnobProportion):
204         (WebCore::PlatformScrollBar::scrollbarHit):
205         (WebCore::PlatformScrollBar::width):
206         (WebCore::PlatformScrollBar::height):
207         (WebCore::PlatformScrollBar::setRect):
208         (WebCore::PlatformScrollBar::setEnabled):
209         (WebCore::PlatformScrollBar::paint):
210         * platform/mac/ScrollBarMac.mm: Removed.
211         * platform/mac/WebCoreTextArea.mm:
212         * rendering/RenderBlock.cpp:
213         (WebCore::RenderBlock::isPointInScrollbar):
214         * rendering/RenderFormElement.cpp:
215         * rendering/RenderLayer.cpp:
216         (WebCore::RenderLayer::horizontalScrollbarWidget):
217         (WebCore::RenderLayer::verticalScrollbarWidget):
218         (WebCore::RenderLayer::valueChanged):
219         (WebCore::RenderLayer::setHasHorizontalScrollbar):
220         (WebCore::RenderLayer::setHasVerticalScrollbar):
221         (WebCore::RenderLayer::positionScrollbars):
222         * rendering/RenderLayer.h:
223         * rendering/RenderWidget.h:
224
225 2006-07-31  Adele Peterson  <adele@apple.com>
226
227         Reviewed by John and Anders.
228
229         - Fix for <rdar://problem/4380576> onChange does not get called when field changed by return key
230
231         Test: fast/forms/onchange-enter-submit.html
232
233         Blur (which will fire onChange appropriately) before submitting a form when pressing Enter.
234         This matches the sequence of events fired in WinIE.
235
236         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
237         * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::defaultEventHandler):
238
239 2006-07-31  Geoffrey Garen  <ggaren@apple.com>
240
241         Reviewed by Kevin.
242
243         Moved string debug function outside of the WebCore namespace so that it's
244         easier to call in the debugger. I will never doubt Darin again (x100).
245
246         * platform/String.cpp:
247         (string):
248
249 2006-07-31  David Hyatt  <hyatt@apple.com>
250
251         Partial fix for 5453.  Improve overflow so that when it changes
252         dynamically from scroll/auto to hidden that we properly hide the
253         scrollbars.  Also refine the dirty dashboard region updating so that
254         it only happens if the scrollbars genuinely come and go.
255
256         Also eliminate the extra repaint of the entire block.  This should not be
257         necessary, since the scrollbars repaint themselves already and children
258         will repaint already if they move.
259
260         Reviewed by darin
261
262         Adding test case from bug into fast/overflow/dynamic-hidden.html
263
264         * rendering/RenderLayer.cpp:
265         (WebCore::RenderLayer::setHasHorizontalScrollbar):
266         (WebCore::RenderLayer::setHasVerticalScrollbar):
267         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
268
269 2006-07-31  Graham Dennis  <graham.dennis@gmail.com>
270
271         Reviewed by justin
272         
273         <http://bugzilla.opendarwin.org/show_bug.cgi?id=9507>
274         Empty style spans created in applyInlineStyle
275         
276         Improves paste fidelity because some of these empty font/style spans had a non-zero
277         size and were messing up the layout of pasted content:
278         <rdar://problem/4515463>
279         REGRESSION: Blot and Mail both do a very poor job of pasting the main www.apple.com page   
280
281         * editing/ApplyStyleCommand.cpp:
282         (WebCore::ApplyStyleCommand::applyInlineStyle): Use the adjusted start node instead 
283         of start.node().  Don't do any application if the endpoints are swapped.  Adjust
284         endNode if the start node is a descendant of it, so that the pre-order traversal will
285         terminate properly.
286
287 2006-07-31  Geoffrey Garen  <ggaren@apple.com>
288
289         Reviewed by Darin.
290
291         * platform/String.cpp:
292         (WebCore::string): Added a debugging function to create a String from a
293         const char*.
294
295 2006-07-31  Anders Carlsson  <acarlsson@apple.com>
296
297         * css/CSSPrimitiveValue.cpp:
298         Fix windows build.
299
300 2006-07-31  Geoffrey Garen  <ggaren@apple.com>
301
302         Reinstating my last change. Everything builds now.
303         
304 2006-07-31  Geoffrey Garen  <ggaren@apple.com>
305
306         Backing out my last change because it causes a build failure in some
307         configurations. This seems to be the cleanest way to get svn to cooperate.
308
309 2006-07-31  Geoffrey Garen  <ggaren@apple.com>
310
311         Reviewed by Maciej.
312
313         Moved files around to make WebCore's structure clearer
314         and easier to explain.
315
316         DerivedSources/JS* -> bindings/js/DerivedSources/ (so JS* files
317         show up when you search inside bindings/js/, but are marked, at
318         the same time, as files that you should not edit manually)
319
320         WebCore+SVG/DOMList.h -> ksvg2/svg/ (only files inside ksvg2/svg/
321         use DOMList.h)
322
323         icon -> loader/icon
324
325         I tested that everything still builds.
326
327 2006-07-30  Darin Adler  <darin@apple.com>
328
329         Reviewed by Tim Hatcher.
330
331         - some improvements for the benefit of the style pane of the inspector
332
333         * css/CSSComputedStyleDeclaration.cpp: Removed background-position
334         and border-spacing from the list of properties that show up in
335         computed style, because of background-position-x, background-position-y,
336         -webkit-border-horizontal-spacing and -webkit-border-vertical-spacing.
337         (WebCore::valueForLength): Added handling for undefinedLength, intrinsic,
338         and min-intrinsic.
339         (WebCore::primitiveValueFromLength): Removed code that would add a
340         space to the string for no good reason.
341         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Added a
342         special case for a line clamp of -1, which should come back as "none"
343         rather than an actual "-1".
344         (WebCore::CSSComputedStyleDeclaration::length): Return 0 if the
345         declaration has no corresponding node or no renderer.
346         (WebCore::CSSComputedStyleDeclaration::item): Check against length()
347         so that the two stay consistent rather than using a constant.
348
349         * css/CSSPrimitiveValue.cpp:
350         (WebCore::isCSSTokenizerIdentifier): Added.
351         (WebCore::isCSSTokenizerURL): Added.
352         (WebCore::quoteString): Added.
353         (WebCore::quoteStringIfNeeded): Changed to quote strings in many more
354         cases -- any cases where they would not parse in the CSS parser otherwise.
355         The main case this affects is font names with spaces in them.
356         (WebCore::quoteURLIfNeeded): Added.
357         (WebCore::CSSPrimitiveValue::cssText): Use quoteURLIfNeeded in the case
358         where we're making the text form of a URI.
359
360         * css/tokenizer.flex: Whitespace tweaks to line things up better.
361
362 2006-07-30  Eric Seidel  <eric@eseidel.com>
363
364         Reviewed by gramps!
365
366         Remove some unused SVG code.
367
368         * ksvg2/ecma/Ecma.cpp: Removed.
369         * ksvg2/ecma/Ecma.h: Removed.
370         * ksvg2/ecma/GlobalObject.cpp: remove a couple dead functions.
371         * ksvg2/ecma/GlobalObject.h: add a comment about this dead code.
372         * ksvg2/ecma/SVGLookup.h: Removed.
373
374 2006-07-29  Darin Adler  <darin@apple.com>
375
376         - Removed tabs from these source files that still had them.
377           We don't use them; that way source files look fine in editors
378           that have tabs set to 8 spaces or to 4 spaces.
379         - Removed allow-tabs Subversion property from the files too.
380
381         * bindings/objc/WebScriptObject.h:
382         * bindings/objc/WebScriptObject.mm:
383         * platform/FontData.cpp:
384
385 2006-07-29  Sam Weinig  <sam.weinig@gmail.com>
386
387         Reviewed by Darin.
388
389         - patch for http://bugzilla.opendarwin.org/show_bug.cgi?id=10080
390           Adopt pedantic changes from the Unity project to improve 
391           cross-compiler compatibility
392
393           Changes include:
394           * Removing trailing semicolon from namespace braces.
395           * Removing trailing comma from last enum declaration.
396           * Updating to match style guidelines.
397           * Adding missing newline to the end of the file.
398           * Turning on gcc warning for missing newline at the end of a source file
399             (GCC_WARN_ABOUT_MISSING_NEWLINE in Xcode, -Wnewline in gcc).
400           * Alphabetical sorting of Xcode source list files.
401           * Use abs() function from <math.h> instead of ABS() macro.
402           * Use C-style comments instead of C++ comments in files that might
403             be included by either C or C++ files.
404           * Use -numeric_limits<double>::infinity() instead of -HUGE_VAL.
405
406         * WebCore+SVG/DOMList.h:
407         * WebCore.xcodeproj/project.pbxproj:
408         * WebCorePrefix.h:
409         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
410         * bindings/js/JSXSLTProcessor.h:
411         * bindings/js/kjs_domnode.h:
412         (KJS::DOMNode::):
413         * bindings/objc/DOMCSS.h:
414         (-[DOMCSSValue enum]):
415         * bindings/objc/DOMCore.h:
416         (-[DOMImplementation createDocument:::]):
417         * bindings/objc/DOMEvents.h:
418         (-[DOMOverflowEvent enum]):
419         * bindings/objc/DOMRange.h:
420         * bindings/objc/DOMTraversal.h:
421         * bindings/objc/DOMXPath.h:
422         (-[DOMXPathNSResolver lookupNamespaceURI:]):
423         * bridge/mac/WebCoreFrameBridge.h:
424         * bridge/mac/WebCoreKeyboardAccess.h:
425         * css/makeprop:
426         * css/makevalues:
427         * dom/ChildNodeList.h:
428         * dom/DocPtr.h:
429         * dom/Document.h:
430         (WebCore::Document::):
431         * dom/DocumentMarker.h:
432         (WebCore::DocumentMarker::):
433         (WebCore::DocumentMarker::operator==):
434         (WebCore::DocumentMarker::operator!=):
435         * dom/EventTargetNode.h:
436         * dom/KeyboardEvent.h:
437         (WebCore::KeyboardEvent::):
438         * dom/NameNodeList.h:
439         (WebCore::NameNodeList::rootNodeChildrenChanged):
440         * dom/QualifiedName.cpp:
441         * editing/TypingCommand.h:
442         (WebCore::TypingCommand::):
443         * editing/UnlinkCommand.h:
444         (WebCore::UnlinkCommand::editingAction):
445         * html/FormDataList.h:
446         (WebCore::FormDataListItem::FormDataListItem):
447         (WebCore::FormDataList::appendData):
448         * html/HTMLBlockquoteElement.h:
449         * html/HTMLDivElement.h:
450         * html/HTMLFormElement.h:
451         * html/HTMLHRElement.h:
452         * html/HTMLHeadingElement.h:
453         * html/HTMLMarqueeElement.h:
454         * html/HTMLParagraphElement.h:
455         * html/HTMLPlugInElement.h:
456         * html/HTMLPreElement.h:
457         * html/HTMLTokenizer.h:
458         (WebCore::HTMLTokenizer::State::):
459         * icon/IconDatabase.cpp:
460         * icon/SQLStatement.cpp:
461         * kcanvas/KCanvasFilters.h:
462         (WebCore::):
463         (WebCore::KCanvasPoint3F::KCanvasPoint3F):
464         (WebCore::KCanvasFilter::KCanvasFilter):
465         (WebCore::KCanvasFilter::~KCanvasFilter):
466         (WebCore::KCanvasFilterEffect::~KCanvasFilterEffect):
467         (WebCore::KCComponentTransferFunction::KCComponentTransferFunction):
468         (WebCore::KCanvasFEConvolveMatrix::KCanvasFEConvolveMatrix):
469         (WebCore::KCLightSource::KCLightSource):
470         (WebCore::KCDistantLightSource::KCDistantLightSource):
471         (WebCore::KCPointLightSource::KCPointLightSource):
472         (WebCore::KCSpotLightSource::KCSpotLightSource):
473         (WebCore::KCanvasFEDiffuseLighting::KCanvasFEDiffuseLighting):
474         (WebCore::KCanvasFEDisplacementMap::KCanvasFEDisplacementMap):
475         (WebCore::KCanvasFEImage::KCanvasFEImage):
476         (WebCore::KCanvasFESpecularLighting::KCanvasFESpecularLighting):
477         * kcanvas/RenderSVGImage.h:
478         * kcanvas/device/quartz/KRenderingDeviceQuartz.h:
479         * ksvg2/css/SVGRenderStyle.h:
480         (WebCore::SVGRenderStyle::InheritedFlags::):
481         (WebCore::SVGRenderStyle::NonInheritedFlags::):
482         * ksvg2/css/SVGRenderStyleDefs.h:
483         (WebCore::):
484         * ksvg2/events/SVGZoomEvent.h:
485         * ksvg2/ksvg.h:
486         (WebCore::):
487         * ksvg2/misc/KCanvasRenderingStyle.h:
488         * ksvg2/misc/SVGImageLoader.h:
489         * ksvg2/scripts/make_names.pl:
490         * ksvg2/svg/SVGAElement.h:
491         * ksvg2/svg/SVGAngle.h:
492         * ksvg2/svg/SVGAnimateColorElement.h:
493         * ksvg2/svg/SVGAnimateElement.h:
494         * ksvg2/svg/SVGAnimateTransformElement.h:
495         * ksvg2/svg/SVGAnimatedAngle.h:
496         * ksvg2/svg/SVGAnimatedBoolean.h:
497         * ksvg2/svg/SVGAnimatedColor.h:
498         * ksvg2/svg/SVGAnimatedEnumeration.h:
499         * ksvg2/svg/SVGAnimatedInteger.h:
500         * ksvg2/svg/SVGAnimatedLength.h:
501         * ksvg2/svg/SVGAnimatedLengthList.h:
502         * ksvg2/svg/SVGAnimatedNumber.h:
503         * ksvg2/svg/SVGAnimatedNumberList.h:
504         * ksvg2/svg/SVGAnimatedPathData.h:
505         * ksvg2/svg/SVGAnimatedPoints.h:
506         * ksvg2/svg/SVGAnimatedPreserveAspectRatio.h:
507         * ksvg2/svg/SVGAnimatedRect.h:
508         * ksvg2/svg/SVGAnimatedString.h:
509         * ksvg2/svg/SVGAnimatedTemplate.h:
510         * ksvg2/svg/SVGAnimatedTransformList.h:
511         * ksvg2/svg/SVGAnimationElement.cpp:
512         (SVGAnimationElement::calculateCurrentValueItem):
513         (SVGAnimationElement::calculateRelativeTimePercentage):
514         * ksvg2/svg/SVGAnimationElement.h:
515         (WebCore::):
516         * ksvg2/svg/SVGCircleElement.h:
517         * ksvg2/svg/SVGClipPathElement.h:
518         * ksvg2/svg/SVGColor.h:
519         * ksvg2/svg/SVGComponentTransferFunctionElement.h:
520         * ksvg2/svg/SVGCursorElement.h:
521         * ksvg2/svg/SVGDOMImplementation.h:
522         * ksvg2/svg/SVGDefsElement.h:
523         * ksvg2/svg/SVGDescElement.h:
524         * ksvg2/svg/SVGDocument.h:
525         * ksvg2/svg/SVGElement.h:
526         (WebCore::SVGElement::rendererIsNeeded):
527         (WebCore::svg_dynamic_cast):
528         * ksvg2/svg/SVGElementInstance.h:
529         * ksvg2/svg/SVGElementInstanceList.h:
530         * ksvg2/svg/SVGEllipseElement.h:
531         * ksvg2/svg/SVGExternalResourcesRequired.h:
532         * ksvg2/svg/SVGFEBlendElement.h:
533         * ksvg2/svg/SVGFEColorMatrixElement.h:
534         * ksvg2/svg/SVGFEComponentTransferElement.h:
535         * ksvg2/svg/SVGFECompositeElement.h:
536         * ksvg2/svg/SVGFEDiffuseLightingElement.h:
537         * ksvg2/svg/SVGFEDisplacementMapElement.h:
538         * ksvg2/svg/SVGFEDistantLightElement.h:
539         * ksvg2/svg/SVGFEFloodElement.h:
540         * ksvg2/svg/SVGFEFuncAElement.h:
541         * ksvg2/svg/SVGFEFuncBElement.h:
542         * ksvg2/svg/SVGFEFuncGElement.h:
543         * ksvg2/svg/SVGFEFuncRElement.h:
544         * ksvg2/svg/SVGFEGaussianBlurElement.h:
545         * ksvg2/svg/SVGFEImageElement.h:
546         * ksvg2/svg/SVGFELightElement.h:
547         * ksvg2/svg/SVGFEMergeElement.h:
548         * ksvg2/svg/SVGFEMergeNodeElement.h:
549         * ksvg2/svg/SVGFEOffsetElement.h:
550         * ksvg2/svg/SVGFEPointLightElement.h:
551         * ksvg2/svg/SVGFESpecularLightingElement.h:
552         * ksvg2/svg/SVGFESpotLightElement.h:
553         * ksvg2/svg/SVGFETileElement.h:
554         * ksvg2/svg/SVGFETurbulenceElement.h:
555         * ksvg2/svg/SVGFilterElement.h:
556         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
557         * ksvg2/svg/SVGFitToViewBox.h:
558         * ksvg2/svg/SVGForeignObjectElement.cpp:
559         * ksvg2/svg/SVGForeignObjectElement.h:
560         * ksvg2/svg/SVGGElement.h:
561         * ksvg2/svg/SVGGradientElement.h:
562         * ksvg2/svg/SVGHelper.h:
563         (WebCore::):
564         * ksvg2/svg/SVGImageElement.h:
565         * ksvg2/svg/SVGLangSpace.h:
566         * ksvg2/svg/SVGLength.h:
567         * ksvg2/svg/SVGLengthList.h:
568         * ksvg2/svg/SVGLineElement.h:
569         * ksvg2/svg/SVGLinearGradientElement.h:
570         * ksvg2/svg/SVGList.h:
571         * ksvg2/svg/SVGLocatable.h:
572         * ksvg2/svg/SVGMarkerElement.h:
573         * ksvg2/svg/SVGMaskElement.h:
574         * ksvg2/svg/SVGMatrix.h:
575         * ksvg2/svg/SVGNumber.h:
576         * ksvg2/svg/SVGNumberList.h:
577         * ksvg2/svg/SVGPaint.h:
578         * ksvg2/svg/SVGPathElement.h:
579         * ksvg2/svg/SVGPathSeg.h:
580         * ksvg2/svg/SVGPathSegArc.h:
581         * ksvg2/svg/SVGPathSegClosePath.h:
582         * ksvg2/svg/SVGPathSegCurvetoCubic.h:
583         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h:
584         * ksvg2/svg/SVGPathSegCurvetoQuadratic.h:
585         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h:
586         * ksvg2/svg/SVGPathSegLineto.h:
587         * ksvg2/svg/SVGPathSegLinetoHorizontal.h:
588         * ksvg2/svg/SVGPathSegLinetoVertical.h:
589         * ksvg2/svg/SVGPathSegList.h:
590         * ksvg2/svg/SVGPathSegMoveto.h:
591         * ksvg2/svg/SVGPatternElement.h:
592         * ksvg2/svg/SVGPoint.h:
593         * ksvg2/svg/SVGPointList.h:
594         * ksvg2/svg/SVGPolyElement.h:
595         * ksvg2/svg/SVGPolygonElement.h:
596         * ksvg2/svg/SVGPolylineElement.h:
597         * ksvg2/svg/SVGPreserveAspectRatio.h:
598         * ksvg2/svg/SVGRadialGradientElement.h:
599         * ksvg2/svg/SVGRect.h:
600         * ksvg2/svg/SVGRectElement.h:
601         * ksvg2/svg/SVGSVGElement.h:
602         * ksvg2/svg/SVGScriptElement.h:
603         * ksvg2/svg/SVGSetElement.h:
604         * ksvg2/svg/SVGStopElement.h:
605         * ksvg2/svg/SVGStringList.h:
606         * ksvg2/svg/SVGStylable.h:
607         * ksvg2/svg/SVGStyleElement.h:
608         * ksvg2/svg/SVGStyledElement.h:
609         (WebCore::SVGStyledElement::rendererIsNeeded):
610         (WebCore::SVGStyledElement::canvasResource):
611         * ksvg2/svg/SVGStyledLocatableElement.h:
612         * ksvg2/svg/SVGStyledTransformableElement.h:
613         * ksvg2/svg/SVGSwitchElement.h:
614         * ksvg2/svg/SVGSymbolElement.h:
615         * ksvg2/svg/SVGTRefElement.h:
616         * ksvg2/svg/SVGTSpanElement.h:
617         * ksvg2/svg/SVGTests.h:
618         * ksvg2/svg/SVGTextContentElement.h:
619         * ksvg2/svg/SVGTextElement.h:
620         * ksvg2/svg/SVGTextPositioningElement.h:
621         * ksvg2/svg/SVGTitleElement.h:
622         * ksvg2/svg/SVGTransform.h:
623         * ksvg2/svg/SVGTransformList.h:
624         * ksvg2/svg/SVGTransformable.h:
625         * ksvg2/svg/SVGURIReference.h:
626         * ksvg2/svg/SVGUseElement.h:
627         * ksvg2/svg/SVGViewElement.h:
628         * ksvg2/svg/SVGZoomAndPan.h:
629         * ksvg2/svg/svgpathparser.h:
630         * page/Frame.h:
631         (WebCore::):
632         * platform/AffineTransform.h:
633         * platform/FontCache.cpp:
634         (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
635         * platform/FontData.cpp:
636         (WebCore::FontData::FontData):
637         * platform/FontData.h:
638         * platform/TextBox.h:
639         (WebCore::TextBox::):
640         * platform/Timer.cpp:
641         (WebCore::TimerBase::heapPop):
642         * platform/mac/FontCacheMac.mm:
643         * platform/mac/GlyphMapMac.cpp:
644         * platform/mac/WebFontCache.mm:
645         (betterChoice):
646         * rendering/DeprecatedRenderSelect.cpp:
647         (WebCore::DeprecatedRenderSelect::setWidgetWritingDirection):
648         * rendering/EllipsisBox.h:
649         * rendering/RenderBR.h:
650         (WebCore::RenderBR::renderName):
651         (WebCore::RenderBR::width):
652         * rendering/RenderBlock.h:
653         (WebCore::):
654         * rendering/RenderFlexibleBox.h:
655         * rendering/RenderFlow.h:
656         (WebCore::RenderFlow::RenderFlow):
657         * rendering/RenderFrame.cpp:
658         * rendering/bidi.h:
659         * rendering/break_lines.cpp:
660
661 2006-07-29  Rob Buis  <buis@kde.org>
662
663         Reviewed by Geoff.
664
665         http://bugzilla.opendarwin.org/show_bug.cgi?id=10151
666         ghostmap XHTML + SVG fails due to javascript undefined exception
667
668         Make sure document.URL works when called from a non-HTML document.
669
670         * bindings/js/kjs_html.cpp:
671         (KJS::JSHTMLDocument::getValueProperty):
672         * bindings/js/kjs_html.h:
673         (KJS::JSHTMLDocument::):
674         * dom/Document.idl:
675
676 2006-07-29  Mike Emmel  <mike.emmel@gmail.com>
677
678         Reviewed and tweaked by Darin.
679
680         - fixes for Linux build
681           (still might not compile, since Darin tweaked but was unable to test).
682
683         * WebCoreSources.bkl: Added some new sources, removed some obsolete ones.
684         * Projects/gdk/webcore-gdk.bkl: Added RenderPopupMenuGdk.cpp
685
686         * html/HTMLPlugInElement.h: Removed incorrect syntax with class name
687         before ::.
688
689         * platform/gdk/FrameGdk.h:
690         * platform/gdk/FrameGdk.cpp: Updated parameters of constructor. Moved a couple stubs
691         out of this file.
692         * platform/gdk/RenderPopupMenuGdk.h: Added.
693         * platform/gdk/RenderPopupMenuGdk.cpp: Added. Just a file full of empty stubs.
694         * platform/gdk/RenderThemeGdk.h:
695         * platform/gdk/RenderThemeGdk.cpp: (WebCore::RenderThemeGdk::createPopupMenu): Added.
696
697         * platform/gdk/TemporaryLinkStubs.cpp: Add some new stubs.
698
699 2006-07-29  Mark Rowe  <opendarwin.org@bdash.net.nz>
700
701         Reviewed by Darin.
702
703         http://bugzilla.opendarwin.org/show_bug.cgi?id=10022
704         Bug 10022: REGRESSION: Crash in WebCore::XMLTokenizer::characters
705
706         * dom/XMLTokenizer.cpp:
707         (WebCore::XMLTokenizer::resumeParsing): If the write() call resulted in new callbacks being
708         added, don't call through to end() just yet.
709
710 2006-07-29  Mitz Pettel  <opendarwin.org@mitzpettel.com>
711
712         Reviewed by John Sullivan.
713
714         - manual test for http://bugzilla.opendarwin.org/show_bug.cgi?id=9984
715           ASSERTION FAILURE: _private->mouseDownEvent != nil
716           (WebKit/WebView/WebHTMLView.m:4863 -[WebHTMLView(WebInternal) _delegateDragSourceActionMask])
717
718         * manual-tests/subview-click-assertion.html: Added.
719
720 2006-07-29  Andrew Wellington  <proton@wiretapped.net>
721
722         Reviewed by Darin.
723
724         Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=8587 / <rdar://problem/4631844>
725         REGRESSION: {display:list-item} items outside an ol or ul element don't number correctly
726
727         * rendering/RenderListItem.cpp:
728         (WebCore::enclosingList): If no real list element is found, use parent instead.
729         (WebCore::previousListItem): Check list elements to see if they are list items -- the
730         old code assumed that a list would never be a list item but this is entirely possible
731         with CSS and especially with the new rule that means any DOM element could act as a list.
732
733 2006-07-29  Alexey Proskuryakov  <ap@nypop.com>
734
735         Reviewed by Darin.
736
737         Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=10147
738         REGRESSION: custom attribute values set via javascript are not persistent
739
740         Test: fast/dom/Element/setAttribute-case-insensitivity.html
741
742         * dom/Element.cpp:
743         (WebCore::Element::setAttribute): Use the lowercased localName for retrieving the old value, too.
744
745 2006-07-28  Timothy Hatcher  <timothy@apple.com>
746
747         Suggested by Darin.
748
749         Moving the implementation of isContentEditable to the
750         the WebPrivate category.
751
752         * bindings/objc/DOM.mm:
753         (-[DOMNode isContentEditable]):
754
755 2006-07-28  Justin Garcia  <justin.garcia@apple.com>
756
757         Reviewed by levi
758         
759         First part of:
760         <rdar://problem/4515463>
761         REGRESSION: Blot and Mail both do a very poor job of pasting the main www.apple.com page
762         
763         Migrate to isBlock and enclosingBlock.
764         Changed RendereringInfo::isBlock and ReplacementFragment::isBlock
765         to wasBlock so that they don't conflict with isBlock and because
766         it's more descriptive.
767
768         * editing/ReplaceSelectionCommand.cpp:
769         (WebCore::ReplacementFragment::mergeStartNode):
770         (WebCore::ReplacementFragment::wasBlock):
771         (WebCore::ReplacementFragment::saveRenderingInfo):
772         (WebCore::ReplacementFragment::renderedBlocks):
773         (WebCore::RenderingInfo::RenderingInfo):
774         (WebCore::ReplaceSelectionCommand::shouldMergeStart):
775         (WebCore::ReplaceSelectionCommand::doApply):
776         * editing/ReplaceSelectionCommand.h:
777         (WebCore::RenderingInfo::wasBlock):
778
779 2006-07-27  Justin Garcia  <justin.garcia@apple.com>
780
781         Reviewed by levi
782         
783         More changes for:
784         <rdar://problem/4242293>
785         Poor paste fidelity of http://www.google.com/
786
787         * editing/markup.cpp:
788         (WebCore::needInterchangeNewlineAfter): Added.
789         (WebCore::createMarkup): 
790         Only add an interchangeNewline if we're annotating for interchange.  Can't test 
791         this until we expose createMarkup in non-annotate mode (I'd expose Range::toHTML).
792         Remove the FIXME about prepending the interchangeNewline before creating the rest 
793         of the markup.  Its correct to surround the interchangeNewline in ancestors of the
794         adjusted startNode.
795         Fixed the check to see if an interchangeNewline is needed (!inSameBlock).  This would
796         add an interchangeNewline for a selection that started before a table.
797         Removed the workaround for the bug where markup for a table was not included when 
798         selecting the contents of a table, since this change fixes the general problem of 
799         markup for ancestors of the startNode being left out.
800         Don't leave out ancestors of the startNode as we leave their subtrees.  Execute the
801         code to include them even if we closed ancestors in the ancestorsToClose list.
802
803 2006-07-28  Timothy Hatcher  <timothy@apple.com>
804
805         Reviewed by John.
806
807         Adding isContentEditable to DOMNode's private category. 
808
809         * bindings/objc/DOMPrivate.h:
810
811 2006-07-28  Alexey Proskuryakov  <ap@nypop.com>
812
813         Rolling out http://bugzilla.opendarwin.org/show_bug.cgi?id=6010 because of failing layout tests.
814         Add better SVGLoad event support.
815
816         * dom/EventTargetNode.cpp:
817         (WebCore::EventTargetNode::dispatchGenericEvent):
818         * html/HTMLImageLoader.cpp:
819         (WebCore::HTMLImageLoader::dispatchLoadEvent):
820         * html/HTMLImageLoader.h:
821         * ksvg2/misc/SVGImageLoader.cpp:
822         (WebCore::SVGImageLoader::SVGImageLoader):
823         * ksvg2/misc/SVGImageLoader.h:
824         * ksvg2/svg/SVGAElement.cpp:
825         (WebCore::SVGAElement::parseMappedAttribute):
826         * ksvg2/svg/SVGAnimatedBoolean.h:
827         * ksvg2/svg/SVGElement.cpp:
828         (WebCore::SVGElement::SVGElement):
829         (WebCore::SVGElement::parseMappedAttribute):
830         * ksvg2/svg/SVGElement.h:
831         (WebCore::SVGElement::adjustViewportClipping):
832         (WebCore::SVGElement::closeRenderer):
833         (WebCore::SVGElement::rendererIsNeeded):
834         (WebCore::SVGElement::isClosed):
835         (WebCore::svg_dynamic_cast):
836         * ksvg2/svg/SVGExternalResourcesRequired.h:
837         * ksvg2/svg/SVGImageElement.cpp:
838         (SVGImageElement::SVGImageElement):
839         * ksvg2/svg/SVGImageElement.h:
840         * ksvg2/svg/SVGSVGElement.cpp:
841         (WebCore::SVGSVGElement::parseMappedAttribute):
842         * ksvg2/svg/SVGScriptElement.cpp:
843         (SVGScriptElement::SVGScriptElement):
844         (SVGScriptElement::parseMappedAttribute):
845         (SVGScriptElement::executeScript):
846         * xml/xmlhttprequest.cpp:
847         (WebCore::XMLHttpRequest::callReadyStateChangeListener):
848
849 2006-07-28  Adele Peterson  <adele@apple.com>
850
851         Rolling out http://bugzilla.opendarwin.org/show_bug.cgi?id=9753 because of failing layout tests.
852         SVG with width and height 100% leaves room for scrollbar on the right.
853
854         * kcanvas/RenderPath.cpp:
855         * kcanvas/RenderPath.h:
856         * kcanvas/RenderSVGContainer.cpp:
857         (WebCore::RenderSVGContainer::layout):
858         * ksvg2/svg/SVGCircleElement.cpp:
859         * ksvg2/svg/SVGCircleElement.h:
860         * ksvg2/svg/SVGEllipseElement.cpp:
861         * ksvg2/svg/SVGEllipseElement.h:
862         * ksvg2/svg/SVGLineElement.cpp:
863         * ksvg2/svg/SVGLineElement.h:
864         * ksvg2/svg/SVGRectElement.cpp:
865         * ksvg2/svg/SVGRectElement.h:
866         * ksvg2/svg/SVGStyledElement.h:
867
868 2006-07-27  Eric Seidel  <eric@eseidel.com>
869
870         Reviewed by darin.
871         
872         Add better SVGLoad event support.
873         http://bugzilla.opendarwin.org/show_bug.cgi?id=6010
874         There will still need to be additional support added for <link> and <script> elements.
875         Not all of the error -> loaded -> error transition cases work yet.
876
877         * dom/EventTargetNode.cpp:
878         (WebCore::EventTargetNode::dispatchGenericEvent):
879         * html/HTMLImageLoader.cpp:
880         (WebCore::HTMLImageLoader::dispatchLoadEvent):
881         * html/HTMLImageLoader.h:
882         (WebCore::HTMLImageLoader::haveFiredLoadEvent):
883         (WebCore::HTMLImageLoader::setHaveFiredLoadEvent):
884         * ksvg2/misc/SVGImageLoader.cpp:
885         (WebCore::SVGImageLoader::SVGImageLoader):
886         (WebCore::SVGImageLoader::dispatchLoadEvent):
887         * ksvg2/misc/SVGImageLoader.h:
888         * ksvg2/svg/SVGAElement.cpp:
889         (WebCore::SVGAElement::parseMappedAttribute):
890         * ksvg2/svg/SVGAnimatedBoolean.h:
891         * ksvg2/svg/SVGElement.cpp:
892         (WebCore::SVGElement::SVGElement):
893         (WebCore::SVGElement::parseMappedAttribute):
894         (WebCore::SVGElement::haveLoadedRequiredResources):
895         (WebCore::SVGElement::sendSVGLoadEventIfPossible):
896         (WebCore::SVGElement::closeRenderer):
897         * ksvg2/svg/SVGElement.h:
898         (WebCore::SVGElement::rendererIsNeeded):
899         (WebCore::svg_dynamic_cast):
900         * ksvg2/svg/SVGExternalResourcesRequired.h:
901         * ksvg2/svg/SVGImageElement.cpp:
902         (SVGImageElement::SVGImageElement):
903         (SVGImageElement::haveLoadedRequiredResources):
904         * ksvg2/svg/SVGImageElement.h:
905         * ksvg2/svg/SVGSVGElement.cpp:
906         (WebCore::SVGSVGElement::parseMappedAttribute):
907         * ksvg2/svg/SVGScriptElement.cpp:
908         (WebCore::SVGScriptElement::SVGScriptElement):
909         (WebCore::SVGScriptElement::parseMappedAttribute):
910         (WebCore::SVGScriptElement::executeScript):
911         * xml/xmlhttprequest.cpp:
912         (WebCore::XMLHttpRequest::callReadyStateChangeListener): use new Event() instead of createEvent
913
914 2006-07-27  Mitz Pettel  <opendarwin.org@mitzpettel.com>
915
916         Reviewed by Anders.
917
918         - http://bugzilla.opendarwin.org/show_bug.cgi?id=10135
919           Cleanup: remove useless parameters from RenderObject::position()
920
921         No test possible (no functionality change)
922
923         * rendering/RenderBox.cpp:
924         (WebCore::RenderBox::position):
925         * rendering/RenderBox.h:
926         * rendering/RenderObject.h:
927         (WebCore::RenderObject::position):
928         * rendering/RenderTableRow.h:
929         (WebCore::RenderTableRow::position):
930         * rendering/RenderTableSection.h:
931         (WebCore::RenderTableSection::position):
932         * rendering/RenderText.cpp:
933         (WebCore::RenderText::position):
934         * rendering/RenderText.h:
935         * rendering/bidi.cpp:
936         (WebCore::RenderBlock::constructLine):
937         (WebCore::RenderBlock::computeVerticalPositionsForLine):
938
939 2006-07-27  Rob Buis  <buis@kde.org>
940
941         Reviewed by Maciej.
942
943         http://bugzilla.opendarwin.org/show_bug.cgi?id=9753
944         SVG with width and height 100% leaves room for scrollbar on the right.
945
946         Relayout children of svg containers, except svg shapes that do not depend on percentages.
947
948         * kcanvas/RenderPath.cpp: (WebCore::RenderPath::hasPercentageValues):
949         * kcanvas/RenderPath.h:
950         * kcanvas/RenderSVGContainer.cpp: (WebCore::RenderSVGContainer::layout):
951         * ksvg2/svg/SVGCircleElement.cpp: (SVGCircleElement::hasPercentageValues):
952         * ksvg2/svg/SVGCircleElement.h:
953         * ksvg2/svg/SVGEllipseElement.cpp: (WebCore::SVGEllipseElement::hasPercentageValues):
954         * ksvg2/svg/SVGEllipseElement.h:
955         * ksvg2/svg/SVGLineElement.cpp: (SVGLineElement::hasPercentageValues):
956         * ksvg2/svg/SVGLineElement.h:
957         * ksvg2/svg/SVGRectElement.cpp: (WebCore::SVGRectElement::hasPercentageValues):
958         * ksvg2/svg/SVGRectElement.h:
959         * ksvg2/svg/SVGStyledElement.h: (WebCore::SVGStyledElement::hasPercentageValues):
960
961 2006-07-27  Justin Garcia  <justin.garcia@apple.com>
962
963         Reviewed by levi
964         
965         <rdar://problem/4242293>
966         Poor paste fidelity of http://www.google.com/
967
968         * editing/ApplyStyleCommand.cpp:
969         (WebCore::ApplyStyleCommand::applyInlineStyle):  Fixed crasher with nil-check.
970         * editing/markup.cpp:
971         (WebCore::startMarkup): Style information wasn't added to an element if it had
972         attributes but no style attribute.
973
974 2006-07-27  Alexander Kellett  <lypanov@kde.org>
975
976         Reviewed by Darin.
977
978         - fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=9867
979           REGRESSION: code that modifies form element in Firefox modifies form attribute in WebKit
980
981         * bindings/scripts/CodeGeneratorJS.pm: add new attribute - HasOverridingNameGetter
982         * html/HTMLFormElement.idl:
983
984 2006-07-27  Rob Buis  <buis@kde.org>
985
986         Reviewed by Anders.
987
988         http://bugzilla.opendarwin.org/show_bug.cgi?id=8992
989         Some HTML DOM attributes have incorrect types
990
991         Adjust idl and dom source code for HTMLImageElement and
992         HTMLBaseFontElement to choose correct type for
993         HTMLImageElement::border and HTMLBaseFontElement::size
994         attributes.
995
996         * html/HTMLBaseFontElement.cpp:
997         (WebCore::HTMLBaseFontElement::size):
998         (WebCore::HTMLBaseFontElement::setSize):
999         * html/HTMLBaseFontElement.h:
1000         * html/HTMLBaseFontElement.idl:
1001         * html/HTMLImageElement.cpp:
1002         (WebCore::HTMLImageElement::border):
1003         (WebCore::HTMLImageElement::setBorder):
1004         * html/HTMLImageElement.h:
1005         * html/HTMLImageElement.idl:
1006
1007 2006-07-27  Justin Garcia  <justin.garcia@apple.com>
1008
1009         Reviewed by levi
1010         
1011         <rdar://problem/4628409>
1012         Safari crashes in CompositeEditCommand::removeBlockPlaceholder entering text in a web page form
1013
1014         * editing/CompositeEditCommand.cpp:
1015         (WebCore::CompositeEditCommand::removeBlockPlaceholder): 
1016         A script on the page shrinks the textarea down to zero rows just
1017         before insertion.  That gives the shadow div a zero height, removing
1018         [div, 0] as a candidate for a VisiblePosition.  Then 
1019         InsertTextCommand::input() tries to create a VisiblePosition from 
1020         [div, 0] and fails.  A nil check is a quick fix.  Another might
1021         be to make positions where there is a caret selection candidates.
1022         Another might be to make any [div, 0] where div is a shadow div inside
1023         a form element a candidate.
1024
1025 2006-07-27  Graham Dennis  <graham.dennis@gmail.com>
1026
1027         Reviewed by Darin.
1028
1029         - fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=10094
1030           Japanese characters improperly rendering in TOT
1031           
1032         Test: fast/encoding/denormalised-voiced-japanese-chars.html
1033
1034         * platform/Font.cpp:
1035         (WebCore::WidthIterator::advance): pass currentCharacter to normalizeVoicingMarks
1036         (WebCore::WidthIterator::normalizeVoicingMarks): turn the currentCharacter variable
1037         into an argument as WidthIterator::advance doesn't update m_currentCharacter while
1038         looping
1039
1040 2006-07-27  Eric Seidel  <eric@eseidel.com>
1041
1042         Reviewed by ap.
1043
1044         Complex entities seem to fail on TOT
1045         http://bugzilla.opendarwin.org/show_bug.cgi?id=6390
1046         Use an alternative work-around to an XML Entity parsing bug.
1047
1048         * dom/XMLTokenizer.cpp:
1049         (WebCore::XMLTokenizer::write):
1050         (WebCore::hackAroundLibXMLEntityBug): added.
1051         (WebCore::startElementNsHandler):
1052         (WebCore::endElementNsHandler):
1053         (WebCore::charactersHandler):
1054         (WebCore::processingInstructionHandler):
1055         (WebCore::cdataBlockHandler):
1056         (WebCore::commentHandler):
1057         (WebCore::getEntityHandler):
1058
1059 2006-07-27  Rob Buis  <buis@kde.org>
1060
1061         Reviewed by Darin.
1062
1063         http://bugzilla.opendarwin.org/show_bug.cgi?id=9938
1064         Fix viewBox issues in Hixie's test
1065
1066         Do a more accurate and quicker job of parsing the viewBox
1067         attribute. Handle properly on negative width/height and
1068         invalid syntax in general.
1069
1070         * ksvg2/svg/SVGFitToViewBox.cpp:
1071         (SVGFitToViewBox::parseViewBox):
1072
1073 2006-07-27  Eric Seidel  <eric@eseidel.com>
1074
1075         Reviewed by ap.
1076
1077         Enables getSVGDocument() support for HTMLObjectElement and HTMLEmbedElement
1078         http://bugzilla.opendarwin.org/show_bug.cgi?id=9237
1079         This patch does not try to autogenerate anything, but enables the SVG functionality.
1080         Also fix HTMLObjectElement vspace and hspace to be numbers instead of strings to match IE & Firefox.
1081
1082         * bindings/js/kjs_dom.cpp:
1083         (KJS::toJS):
1084         * bindings/js/kjs_html.cpp:
1085         (KJS::JSHTMLElement::objectGetter):
1086         (KJS::HTMLElementFunction::callAsFunction):
1087         (KJS::JSHTMLElement::objectSetter):
1088         * bindings/js/kjs_html.h:
1089         (KJS::JSHTMLElement::):
1090         * dom/Document.h:
1091         (WebCore::Document::isSVGDocument):
1092         * html/HTMLEmbedElement.cpp:
1093         (WebCore::HTMLEmbedElement::contentDocument):
1094         (WebCore::HTMLEmbedElement::getSVGDocument):
1095         * html/HTMLEmbedElement.h:
1096         * html/HTMLObjectElement.cpp:
1097         (WebCore::HTMLObjectElement::HTMLObjectElement):
1098         (WebCore::HTMLObjectElement::getInstance):
1099         (WebCore::HTMLObjectElement::parseMappedAttribute):
1100         (WebCore::HTMLObjectElement::contentDocument):
1101         (WebCore::HTMLObjectElement::rendererIsNeeded):
1102         (WebCore::HTMLObjectElement::createRenderer):
1103         (WebCore::HTMLObjectElement::setCode):
1104         (WebCore::HTMLObjectElement::setArchive):
1105         (WebCore::HTMLObjectElement::setBorder):
1106         (WebCore::HTMLObjectElement::setCodeBase):
1107         (WebCore::HTMLObjectElement::setCodeType):
1108         (WebCore::HTMLObjectElement::setData):
1109         (WebCore::HTMLObjectElement::hspace):
1110         (WebCore::HTMLObjectElement::setHspace):
1111         (WebCore::HTMLObjectElement::setStandby):
1112         (WebCore::HTMLObjectElement::setType):
1113         (WebCore::HTMLObjectElement::setUseMap):
1114         (WebCore::HTMLObjectElement::vspace):
1115         (WebCore::HTMLObjectElement::setVspace):
1116         (WebCore::HTMLObjectElement::getSVGDocument):
1117         * html/HTMLObjectElement.h:
1118         * ksvg2/svg/SVGDocument.h:
1119         (WebCore::SVGDocument::isSVGDocument):
1120         * rendering/RenderWidget.h:
1121         (WebCore::RenderWidget::frameView):
1122
1123 2006-07-26  Alexey Proskuryakov  <ap@nypop.com>
1124
1125         Reviewed by Darin.
1126
1127         Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9901
1128         XSLTProcessor cannot parse text nodes for INPUT ELEMENTS in an XSLT stylesheet
1129
1130         Test: fast/js/xhtml-serialize.html
1131
1132         * editing/markup.cpp:
1133         (WebCore::endMarkup): If the element has child nodes, write a closing tag even if it 
1134         is not permitted in HTML, to make it valid XML.
1135
1136 2006-07-26  Alice Liu  <alice.liu@apple.com>
1137
1138         Reviewed by John Sullivan (and Kevin and Timo).
1139
1140         landing this patch for John et al.  
1141         Fixed <rdar://problem/4651380> REGRESSION (9A232->9A234): existing web clips don't render if you restart Dashboard
1142
1143         * page/FrameView.cpp:
1144         (WebCore::FrameView::layout):
1145         moved the call to didFirstLayout to above the check for needsLayout
1146         because we need to call didFirstLayout for every webview, not just
1147         ones we think need layout.  
1148
1149 2006-07-26  Justin Garcia  <justin.garcia@apple.com>
1150
1151         Reviewed by darin
1152         
1153         <rdar://problem/4652788>
1154         REGRESSION: Can't change size or style of any text in message body
1155
1156         * dom/Node.cpp:
1157         (WebCore::Node::isContentRichlyEditable): Mimic Node::isContentEditable.
1158         * html/HTMLElement.cpp:
1159         (WebCore::HTMLElement::isContentRichlyEditable): First check
1160         the frame for editability, then userModify, like what
1161         HTMLElement::isContentEditable() does.
1162         * html/HTMLElement.h:
1163
1164 2006-07-26  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1165
1166         Reviewed by ap.
1167
1168         - fix debug-only information() string for table cells
1169
1170         * rendering/RenderObject.cpp:
1171         (WebCore::RenderObject::information):
1172
1173 2006-07-25  David Harrison  <harrison@apple.com>
1174
1175         Reviewed by timo and Darin.
1176
1177         <rdar://problem/4618584> "Paste and Match Style" is not working in Mail (add SPI)
1178         
1179         * WebCore.xcodeproj/project.pbxproj:
1180         * bridge/mac/WebCoreFrameBridge.h:
1181         * bridge/mac/WebCoreFrameBridge.mm:
1182         (-[WebCoreFrameBridge replaceSelectionWithNode:selectReplacement:smartReplace:matchStyle:]):
1183         Add matchStyle parameter for use by WebKit.
1184
1185 2006-07-25  Justin Garcia  <justin.garcia@apple.com>
1186
1187         Reviewed by adele
1188         
1189         <rdar://problem/4649560>
1190         REGRESSION: Can't Select All when the body is contentEditable="true"
1191
1192         * editing/VisiblePosition.cpp:
1193         (WebCore::VisiblePosition::canonicalPosition): Allow descent from a non-editable html
1194         element into an editable body as a convenience.
1195
1196 2006-07-25  Justin Garcia  <justin.garcia@apple.com>
1197
1198         Reviewed by darin
1199         
1200         <rdar://problem/4468458> Incoming HTML message is editable <body contenteditable="true">
1201
1202         * dom/Document.cpp:
1203         (WebCore::Document::inDesignMode): Removed some spaces.
1204         * page/Frame.cpp:
1205         (WebCore::Frame::applyEditingStyleToElement): Just add CSS properties needed for editing.
1206         (WebCore::Frame::removeEditingStyleFromElement): Made this a no-op, we'll remove
1207         it eventually.
1208
1209 2006-07-25  David Kilzer  <ddkilzer@kilzer.net>
1210
1211         Reviewed by Darin.
1212
1213         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9717
1214           Replace IDL ConvertUndefinedToTrue parameter attribute with Optional attribute
1215
1216         No test added because there is no change in functionality.
1217
1218         * bindings/js/kjs_binding.cpp: Removed valueToBooleanTreatUndefinedAsTrue() method.
1219         * bindings/js/kjs_binding.h: Ditto.
1220         * bindings/scripts/CodeGeneratorJS.pm: Removed support for ConvertUndefinedToTrue parameter attribute.
1221         * dom/Element.h: Set default value to true for scrollIntoView() and scrollIntoViewIfNeeded() arguments.
1222         * dom/Element.idl: Replaced ConvertUndefinedToTrue attribute with Optional attribute.
1223           Fixed name of scrollIntoViewIfNeeded() argument to match implementation.
1224         * page/DOMWindow.idl: Replaced ConvertUndefinedToTrue attribute with Optional attribute.
1225
1226 2006-07-24  Dan Waylonis  <waylonis@google.com>
1227
1228         Reviewed and tweaked a bunch by Darin.
1229
1230         Test: plugins/bindings-test.html
1231
1232         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9902
1233           jsNull and NSNull not properly converted between JS and ObjC
1234
1235         * bindings/objc/WebScriptObject.mm:
1236         (+[WebScriptObject _convertValueToObjcValue:originExecutionContext:executionContext:]):
1237         Added case that converts jsNull to NSNull.
1238
1239 2006-07-24  Darin Adler  <darin@apple.com>
1240
1241         Reviewed by Adele and Justin.
1242
1243         - fix <rdar://problem/4613616> REGRESSION: some spaces typed in <textarea> are posted as non-breaking spaces (9630)
1244           http://bugzilla.opendarwin.org/show_bug.cgi?id=9630
1245         - also fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=9939
1246           REGRESSION: Pasting text into native text area with newline at end does not preserve newline
1247         - removed some uses of DeprecatedPtrList in the markup code
1248
1249         Test: fast/forms/textarea-type-spaces.html
1250         Test: fast/forms/textarea-paste-newline.html
1251
1252         * bindings/objc/DOMHTML.mm: (-[DOMHTMLDocument createDocumentFragmentWithText:]):
1253         Updated call to pass a range -- in this case it is the range of the entire document,
1254         so this will not handle the whitespace properly.
1255
1256         * bridge/mac/WebCoreFrameBridge.h: Added range context parameter to the
1257         documentFragmentWithText: method, so we can handle whitespace properly.
1258         * bridge/mac/WebCoreFrameBridge.mm:
1259         (-[WebCoreFrameBridge nodesFromList:]): Changed from DeprecatedPtrList to Vector.
1260         (-[WebCoreFrameBridge markupStringFromNode:nodes:]): Ditto.
1261         (-[WebCoreFrameBridge markupStringFromRange:nodes:]): Ditto.
1262         (-[WebCoreFrameBridge documentFragmentWithText:inContext:]): Added range context
1263         parameter -- pass it on to createFragmentFromText.
1264         (-[WebCoreFrameBridge documentFragmentWithNodesAsParagraphs:]): Changed from
1265         DeprecatedPtrList to Vector.
1266         (-[WebCoreFrameBridge replaceSelectionWithText:selectReplacement:smartReplace:]):
1267         Pass the range of the current selection as context when creating the fragment.
1268
1269         * dom/Position.cpp: (WebCore::Position::inRenderedText): Replace range check with
1270         a call to the new containsCaretOffset function -- helps make the caret work right when
1271         it is past the end of the last line in a textarea.
1272
1273         * editing/CompositeEditCommand.cpp:
1274         (WebCore::CompositeEditCommand::rebalanceWhitespaceAt): Don't do anything if the
1275         style does not call for collapsing whitespace.
1276         (WebCore::CompositeEditCommand::rebalanceWhitespace): Call replaceWhitespaceAt
1277         to share code, including the new logic mentioned above.
1278
1279         * editing/InsertLineBreakCommand.cpp: (WebCore::InsertLineBreakCommand::doApply):
1280         Use a text node instead of a break element when inserting and the style is preserveNewline.
1281
1282         * editing/JSEditor.cpp: (WebCore::execRemoveFormat): Pass the selection range
1283         to createFragmentFromText.
1284
1285         * editing/RebalanceWhitespaceCommand.cpp: (WebCore::RebalanceWhitespaceCommand::doApply):
1286         Assert that we're in a style that collapses whitespace. It's the caller's responsibility
1287         not to call otherwise.
1288
1289         * editing/ReplaceSelectionCommand.h: Removed unused destructor, type, isSingleTextNode,
1290         isTreeFragment, m_type, and added a context parameter to inertFragmentForTestRendering.
1291         Also changed the constructor to take a selection rather than a pointer to the root
1292         editable element, replaced removeEndBRIfNeeded with shouldRemoveEndBR and removed an
1293         unused parameter from shouldMergeEnd.
1294         * editing/ReplaceSelectionCommand.cpp:
1295         (WebCore::ReplacementFragment::ReplacementFragment): Removed code to set up m_type.
1296         Compute root editable element from passed-in selection. Used the start of the selection
1297         as a base node for style purposes for the test rendering. Removed the special case
1298         "single text node" alternative to createFragmentFromText in the plain text case, since
1299         createFragmentFromText now handles that correctly.
1300         (WebCore::ReplacementFragment::insertFragmentForTestRendering): Copy the whitespace
1301         property from the source location when creating a temporary element for test rendering.
1302         (WebCore::ReplacementFragment::shouldMergeEnd): Removed unneeded boolean
1303         parameter fragmentHadInterchangeNewlineAtEnd, which is always false.
1304         (WebCore::ReplaceSelectionCommand::doApply): Update for ReplacementFragment changes,
1305         change code to not remove end BR when it can be re-used instead, don't call the
1306         paragraph separator insertion when the position is at the start of a paragraph already,
1307         removed redundant computation of identical "next" value, removed unneeded boolean
1308         parameter to shouldMergeEnd, add case for merging when all we need to do is to delete
1309         a newline character, removed unneeded code to set insertionPos after all code that uses
1310         it, and  use spaces instead of non-breaking spaces when doing smart paste if the
1311         context is one where we do not collapse white space.
1312         (WebCore::ReplaceSelectionCommand::shouldRemoveEndBR): Renamed and changed to return
1313         a boolean instead of doing the removal.
1314
1315         * editing/markup.h: Use Vector instead of DeprecatedPtrList. Change the
1316         createFragmentFromText function to take a range for context instead of a document.
1317         * editing/markup.cpp:
1318         (WebCore::markup): Use Vector instead of DeprecatedPtrList.
1319         (WebCore::createMarkup): Ditto.
1320         (WebCore::createParagraphContentsFromString): Remove unneeded document parameter
1321         and changed a couple places to use isEmpty instead of comparing with "".
1322         (WebCore::createFragmentFromText): Given the new context parameter, if the context
1323         is one that preserves newlines, then use "\n" instead of <br> elements.
1324         (WebCore::createFragmentFromNodes): Use Vector instead of DeprecatedPtrList.
1325
1326         * html/HTMLElement.cpp: (WebCore::HTMLElement::setInnerText): Do not use <br>
1327         elements if the context of this node is one where we preserve newlines.
1328
1329         * rendering/InlineTextBox.h:
1330         * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::containsCaretOffset):
1331         Added. Implements the appropriate rule for determining if a caret position is
1332         in this line or not. Returns true for both one line and the next in cases where
1333         affinity must be considered to determine which line the caret is on.
1334
1335         * rendering/RenderText.h: Make atLineWrap no longer be a member function.
1336         * rendering/RenderText.cpp:
1337         (WebCore::atLineWrap): Remove special rule about preserveNewline and isLineBreak,
1338         which will no longer apply due to the new containsCaretOffset function logic.
1339         (WebCore::RenderText::caretRect): Use containsCaretOffset.
1340         (WebCore::RenderText::inlineBox): Ditto.
1341
1342         * rendering/RenderTextControl.cpp:
1343         (WebCore::RenderTextControl::updateFromElement): Make a placeholder <br> element
1344         after calling setInnerText so that the last newline in the string has the effect
1345         we expect outside the HTML world (an additional line).
1346         (WebCore::RenderTextControl::setSelectionRange): Set granularity of the selection
1347         too. The layout tests caught this problem, which needs a better solution long term.
1348         (WebCore::RenderTextControl::text): Call textContent with the parameter false
1349         so it will not include newlines for <br> elements. Now the only <br> element
1350         that will ever be in the shadow DOM tree is the one to prevent collapsing, and
1351         that one should not show up in the text value.
1352
1353         * rendering/bidi.cpp: (WebCore::RenderBlock::findNextLineBreak): Took a rule
1354         that specifically called out the pre whitespace mode and made it work for all
1355         the modes that preserve newlines. This makes sure we get a last line box for
1356         text after the last "\n" even in cases where there is no <br> afterward.
1357
1358         * editing/DeleteSelectionCommand.cpp:
1359         (WebCore::DeleteSelectionCommand::fixupWhitespace):
1360         * editing/InsertParagraphSeparatorCommand.cpp:
1361         (WebCore::InsertParagraphSeparatorCommand::doApply):
1362         Added assertions to make sure we don't do anything when we're not collapsing
1363         whitespace.
1364
1365         * html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::setDefaultValue):
1366         Changed to use Vector instead of DeprecatedPtrList.
1367
1368         * editing/HTMLInterchange.cpp: Removed obsolete comment.
1369
1370         * loader/Cache.h: Removed a stray include.
1371
1372 2006-07-24  Adele Peterson  <adele@apple.com>
1373
1374         Reviewed by Justin.
1375
1376         - Fix for <rdar://problem/4632132> Changing style of content with mixed editability fails
1377
1378         Test: * editing/style/apple-style-editable-mix.html
1379
1380         * dom/Node.cpp: (WebCore::Node::isContentRichlyEditable): Doesn't need to check the editable root.  It now just
1381           checks the user modify property of its own renderer, since that is inherited.
1382         * editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::applyInlineStyle): If the end position is in a table,
1383         Adjust the end node to the last descendant of the table, so we don't skip over any runs.
1384
1385 2006-07-24  Darin Adler  <darin@apple.com>
1386
1387         Reviewed by Hyatt.
1388
1389         - implement String::createCFString
1390
1391         * WebCore.xcodeproj/project.pbxproj: Added StringImplMac.mm and StringMac.mm.
1392
1393         * bindings/objc/DOMInternal.mm: Moved NSString conversion functions out of here.
1394
1395         * platform/mac/StringImplMac.mm: Added. Moved NSString conversion members here
1396         and added the CFStringRef ones.
1397         * platform/mac/StringMac.mm: Added. Ditto.
1398
1399 2006-07-24  David Hyatt  <hyatt@apple.com>
1400
1401         Two bug fixes.
1402
1403         (1) Make sure to mark positioned objects that depend on line position to
1404         mark themselves as needing layout when their line box placeholder gets
1405         repositioned.
1406
1407         * rendering/RenderBox.cpp:
1408         (WebCore::RenderBox::position):
1409        
1410         (2) Improve highlighting to factor the inflation into overflow so that
1411         invalidation and repainting will work properly.
1412
1413         * rendering/RootInlineBox.cpp:
1414         (WebCore::RootInlineBox::addHighlightOverflow):
1415         * rendering/RootInlineBox.h:
1416         * rendering/bidi.cpp:
1417         (WebCore::RenderBlock::layoutInlineChildren):
1418
1419 2006-07-24  Anders Carlsson  <acarlsson@apple.com>
1420
1421         Reviewed by Adele.
1422
1423         <rdar://problem/4641824> REGRESSION: Wikipedia widget fails to complete a search after pressing return key
1424         
1425         * html/HTMLInputElement.cpp:
1426         (WebCore::HTMLInputElement::defaultEventHandler):
1427         Don't eat enter events for search fields that have no enclosing form; they need to be passed to AppKit so
1428         that onsearch can be invoked.
1429         
1430         * manual-tests/onsearch-enter.html: Added.
1431
1432 2006-07-24  Dave MacLachlan  <dmaclach@mac.com>
1433
1434         Reviewed by Darin and Alexey.
1435         
1436         Fix for: <http://bugzilla.opendarwin.org/show_bug.cgi?id=8425> 
1437         and <http://bugzilla.opendarwin.org/show_bug.cgi?id=6947>
1438
1439         Test: svg/custom/non-opaque-filters.svg
1440
1441         * kcanvas/device/quartz/KCanvasFilterQuartz.mm:
1442         (WebCore::KCanvasFilterQuartz::prepareFilter):
1443         We create an autorelease pool so we can control the deallocation of the
1444         CIContext that we're creating. The CIContext retains the CGContext that 
1445         you pass it internally so when the CIContext is released, the 
1446         CGContext is released as well.
1447         This is all fine and dandy unless you wrap the creation of the CIFilter
1448         with a pair of CGBegin/EndTransparencyLayer calls which swap the context
1449         out from underneath you. So if you start with context A, 
1450         CGBeginTransparencyLayer swaps it out and gives you B. You create a CIFilter
1451         with it and add a reference to B. CGEndTransparencyLayer swaps out B and
1452         gives you back A. Autorelease pool comes and cleans up the Filter, and calls
1453         release on A, but A never got the refcount in the first place. B did. BOOM!
1454         So we create a pool, then do a retain, then release the pool so that we 
1455         don't have to worry about the pool releasing it at a later time.
1456         See <rdar://problem/4647735> for reduction of CGEndTransparencyLayer case
1457
1458 2006-07-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1459
1460         Reviewed by Hyatt.
1461
1462         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9669
1463           Incomplete repaint when changing an inline's border
1464
1465         Test: fast/repaint/line-overflow.html
1466
1467         * rendering/RenderBlock.h:
1468         * rendering/bidi.cpp:
1469         (WebCore::RenderBlock::layoutInlineChildren): Added repaintTop and repaintBottom
1470         variables to track the vertical edges of the area that changed, accounting for
1471         lines that were deleted, inserted or moved. Removed unnecessary updating of
1472         m_overflowHeight.
1473         (WebCore::RenderBlock::determineStartPosition): Removed unnecessary updating of
1474         m_overflowHeight.
1475         (WebCore::RenderBlock::determineEndPosition):
1476         (WebCore::RenderBlock::matchedEndLine): Added repaintTop and repaintBottom
1477         arguments, which this method updates to account for deleted lines.
1478         (WebCore::RenderBlock::checkLinesForOverflow): Removed outdated FIXME.
1479
1480 2006-07-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1481
1482         Reviewed by Darin.
1483
1484         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=10075
1485           REGRESSION: Reversed pop-up text in visually-ordered Hebrew pages
1486
1487         Test: fast/forms/select-visual-hebrew.html
1488
1489         * css/html4.css: Set "-webkit-rtl-ordering: logical" on select elements.
1490
1491 2006-07-24  Alexey Proskuryakov  <ap@nypop.com>
1492
1493         Reviewed by Darin.
1494
1495         Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=10009
1496         REGRESSION: Schubert-IT PDF Plug-in not working for full page (works in frames)
1497
1498         * page/Frame.cpp:
1499         (WebCore::Frame::begin): Give PDF plugins a chance to handle frame content, before ImageDocument
1500         claims it.
1501
1502 2006-07-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1503
1504         Reviewed by Darin.
1505
1506         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=10083
1507           REGRESSION (r15584): editing/selection/select-from-textfield-outwards failing
1508
1509         * rendering/RenderBlock.cpp:
1510         (WebCore::RenderBlock::positionForCoordinates): Added back change from the fix
1511         for bug 9312: For coordinates outside a replaced object, return the position
1512         just before (after) the element if the coordinates are above or to the left (below
1513         or to the right).
1514
1515 2006-07-23  Mark Rowe  <opendarwin.org@bdash.net.nz>
1516
1517         Reviewed by maciej.
1518
1519         Bug 9686: [Drosera] Need the ability to break into Drosera on Javascript exceptions
1520         http://bugzilla.opendarwin.org/show_bug.cgi?id=9686
1521
1522         WebCore portion of the fix.
1523
1524         * bridge/mac/WebCoreScriptDebugger.h:
1525         (-[WebScriptDebugger exceptionRaised:sourceId:line::]): Add delegate method.
1526         * bridge/mac/WebCoreScriptDebugger.mm:
1527         (WebCoreScriptDebuggerImp::exception): Call delegate method when an exception is raised.
1528
1529 2006-07-23  Alice Liu  <alice.liu@apple.com>
1530
1531         Reviewed by Adele.
1532         Actually Adele figured out how to fix the layout test failures.  Landing this patch for her.  Layout test failures exposed but not caused by  r15584 (my patch earlier today).
1533
1534         * editing/visible_units.cpp:
1535         (WebCore::previousLinePosition):
1536         When setting selection endpoints, don't traverse down into nodes where editing would ignore its contents. Use the parent node instead.  
1537         (WebCore::nextLinePosition):
1538         same as above
1539
1540 2006-07-23  David Harrison  <harrison@apple.com>
1541
1542         Reviewed by timo.
1543
1544         <rdar://problem/4646759> Mail crash editing To Do - WebCore::InsertTextCommand::prepareForTextInsertion
1545         
1546         * Test: editing/deleting/delete-mixed-editable-content-001.html
1547
1548         * editing/visible_units.cpp:
1549         (WebCore::startOfParagraph):
1550         Respect editable boundary the same way endOfParagraph does.
1551
1552 2006-07-23  Beth Dakin  <bdakin@apple.com>
1553
1554         Reviewed by Maciej. (Patch by me, Maciej, and Harrison.)
1555
1556         Fix for <rdar://problem/4529398> WebCore crashes when pasting rich 
1557         text - WebCore::InlineBox::root()
1558
1559         The initial rendering crash was due to a render object having a 
1560         stale reference to an inline box that had already been deleted and 
1561         then recreated in the exact same location in memory. (Crazy, I 
1562         know.) The situation seemed pretty specific to list markers 
1563         according to Hyatt according to Maciej, so that is what I patched 
1564         specifically. Fixing this crash unearthed a separate editing crash 
1565         where we were trying to insert a block into itself. I worked on 
1566         that with Maciej and Harrison, and Harrison came up with a fix.
1567
1568         * editing/CompositeEditCommand.cpp:
1569         (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): This is the fix for the editing crash. If paragraphStart is an atomic 
1570         node, insert the new block into the parent instead.
1571         * rendering/InlineBox.cpp:
1572         (WebCore::InlineBox::isChildOfParent): This function is for 
1573         posterity. It will help keep the linebox tree in check.
1574         * rendering/InlineBox.h:
1575         * rendering/InlineFlowBox.cpp:
1576         (WebCore::InlineFlowBox::addToLine): Added assert.
1577         (WebCore::InlineFlowBox::deleteLine): Added assert.
1578         * rendering/ListMarkerBox.cpp:
1579         (WebCore::ListMarkerBox::destroy): If this has a parent, call 
1580         removeChild on this.
1581         (WebCore::ListMarkerBox::operator delete):
1582         * rendering/ListMarkerBox.h:
1583
1584 2006-07-23  Alice Liu  <alice.liu@apple.com>
1585
1586         Reviewed by Darin.
1587
1588         fixed <rdar://problem/4617841> REGRESSION (NativeTextField): You can move keyboard focus to a field without getting insertion point
1589
1590         * rendering/RenderBlock.cpp:
1591         (WebCore::RenderBlock::positionForCoordinates):
1592         removed some unnecessary vertical position checks and added a fudge factor to be more forgiving for clicks near lines.
1593         * rendering/RenderTextControl.cpp:
1594         (WebCore::RenderTextControl::nodeAtPoint):
1595         added implementation
1596         * rendering/RenderTextControl.h:
1597         added function protocol
1598
1599 2006-07-23  Adele Peterson  <adele@apple.com>
1600
1601         Reviewed by Darin.
1602
1603         Updating fix from last checkin.
1604
1605         * rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::layoutVerticalBox):
1606         Only tell the view about this flexbox if there isn't another flexbox already cached.
1607
1608 2006-07-23  Adele Peterson  <adele@apple.com>
1609
1610         Reviewed by Maciej.
1611
1612         - Fix for <rdar://problem/4644614> REGRESSION: Typing, pasting or dragging in new text areas causes unnecessary scrolling
1613
1614         * rendering/RenderBlock.cpp: (WebCore::RenderBlock::layoutBlock): Don't updateScrollInfoAfterLayout if an ancestor flexible box is just on
1615         its first layout.
1616         * rendering/RenderFlexibleBox.cpp:
1617         (WebCore::RenderFlexibleBox::layoutBlock): ditto.
1618         (WebCore::RenderFlexibleBox::layoutVerticalBox): Let the view know if this flex box is doing its first pass at layout.
1619
1620         * rendering/RenderView.cpp: (WebCore::RenderView::RenderView): Caches a flexible box that's doing its first layout.
1621         * rendering/RenderView.h:
1622         (WebCore::RenderView::setFlexBoxInFirstLayout):
1623         (WebCore::RenderView::flexBoxInFirstLayout):
1624
1625 2006-07-22  Alexey Proskuryakov  <ap@nypop.com>
1626
1627         Reviewed by Darin.
1628
1629         Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=10038
1630         REGRESSION: Length of navigator.mimeTypes collection returns number of installed plugins, not number 
1631         of registered mime types
1632
1633         * bindings/js/kjs_navigator.cpp:
1634         (KJS::MimeTypes::getValueProperty): Return the length of the mime types vector, not the plugins one.
1635         (KJS::MimeTypes::getOwnPropertySlot): Fixed another typo, which prevented MimeTypes::getValueProperty()
1636         from even being called.
1637
1638 2006-07-21  Maciej Stachowiak  <mjs@apple.com>
1639
1640         Reviewed by Adele and Tim Omernick.
1641
1642         <rdar://problem/4641004> 9A224: Safari crashes in WebCore::RenderMenuList::showPopup when changing a input select field to input text field
1643
1644         Couldn't figure out how to make layout test, here's a manual test:
1645         * manual-tests/remove-select-onchange.html: Added.
1646         
1647         * rendering/RenderMenuList.cpp:
1648         (WebCore::RenderMenuList::showPopup): Don't add the RenderPopupMenu to the render
1649         tree so it doesn't get destroyed if we do.
1650         
1651         The remaining changes are to let the RenderPopupMenu know its menu list w/o having
1652         to be in the render tree:
1653         
1654         * rendering/RenderPopupMenu.cpp:
1655         (WebCore::RenderPopupMenu::RenderPopupMenu):
1656         * rendering/RenderPopupMenu.h:
1657         (WebCore::RenderPopupMenu::menuList):
1658         * rendering/RenderPopupMenuMac.h:
1659         * rendering/RenderPopupMenuMac.mm:
1660         (WebCore::RenderPopupMenuMac::RenderPopupMenuMac):
1661         * rendering/RenderPopupMenuWin.h:
1662         (WebCore::RenderPopupMenuWin::RenderPopupMenuWin):
1663         * rendering/RenderTheme.h:
1664         * rendering/RenderThemeMac.h:
1665         * rendering/RenderThemeMac.mm:
1666         (WebCore::RenderThemeMac::createPopupMenu):
1667         * rendering/RenderThemeWin.cpp:
1668         (WebCore::RenderThemeWin::createPopupMenu):
1669         * rendering/RenderThemeWin.h:
1670
1671 2006-07-21  Adele Peterson  <adele@apple.com>
1672
1673         Reviewed by Darin.
1674
1675         Fix for: <rdar://problem/4643238> REGRESSION: Can't set insertion point at the end of a line of text
1676
1677         Test: fast/forms/textarea-scrolled-endline-caret.html
1678
1679         * rendering/RenderBlock.cpp: (WebCore::RenderBlock::positionForCoordinates):
1680         When looking for the closest line box, take the scroll offset into account.
1681
1682 2006-07-21  Tim Omernick  <timo@apple.com>
1683
1684         Reviewed by Geoff & Maciej.
1685
1686         <rdar://problem/4632505> REGRESSION: Crash at WebCore::Widget::getView() const + 6
1687
1688         Geoff is working on a layout test for this.
1689
1690         * bridge/mac/FrameMac.mm:
1691         (WebCore::FrameMac::focusWindow):
1692         (WebCore::FrameMac::unfocusWindow):
1693         Check for a NULL view.  The view can be NULL if the frame has not yet loaded any data.  This fixes the crash, but the behavior is still
1694         wrong -- we should focus the frame once it gets a view.  I've filed <rdar://problem/4645685> to track that.  It's not as urgent as this
1695         crasher.
1696         
1697 2006-07-21  Maciej Stachowiak  <mjs@apple.com>
1698
1699         Reviewed by Darin.
1700
1701         <rdar://problem/4523976> REGRESSION (NativeTextField): Crash occurs when choosing "Undo Typing" after typing and setting the value
1702
1703         * rendering/RenderTextControl.cpp:
1704         (WebCore::RenderTextControl::updateFromElement): Clear the undo
1705         chain when the text control contents have been set
1706         programmatically.
1707         * bridge/mac/FrameMac.mm:
1708         (WebCore::FrameMac::clearUndoRedoOperations): Before clearing undo
1709         stack, close all open undo groups and then open an equal number,
1710         since otherwise NSUndoManager ends up in an inconsistent state
1711         leading to uncaught ObjC exceptions.
1712
1713 2006-07-21  Beth Dakin  <bdakin@apple.com>
1714         
1715         Reviewed by Darin.
1716
1717         Just moving this assertion down a couple of lines. It was hitting 
1718         every time you try to print a page because we put it too early in 
1719         the function.
1720
1721         * bridge/mac/WebCoreFrameBridge.mm:
1722         (-[WebCoreFrameBridge drawRect:]):
1723
1724 2006-07-21  Justin Garcia  <justin.garcia@apple.com>
1725
1726         Reviewed by levi
1727         
1728         <rdar://problem/4548238>
1729         REGRESSION: Can't remove the first OL/UL list item in a Mail's compose window
1730
1731         * editing/CompositeEditCommand.cpp:
1732         (WebCore::CompositeEditCommand::breakOutOfEmptyListItem): 
1733         Moved from InsertParagraphSeparator.  Does its own typing style restoration.
1734         * editing/CompositeEditCommand.h:
1735         * editing/InsertParagraphSeparatorCommand.cpp:
1736         (WebCore::InsertParagraphSeparatorCommand::doApply): Call breakOutOfEmptyListItem.
1737         * editing/TypingCommand.cpp:
1738         (WebCore::TypingCommand::deleteKeyPressed): Call breakOutOfEmptyListItem if
1739         the endingSelection is at the start of an editable region.
1740         * editing/htmlediting.cpp:
1741         (WebCore::embeddedSublist): Moved from InsertParagraphSeparator.
1742         (WebCore::appendedSublist): Ditto.
1743         (WebCore::enclosingEmptyListItem): Ditto.
1744         * editing/htmlediting.h:
1745
1746 === Safari-521.20 ===
1747
1748 2006-07-21  Tim Omernick  <timo@apple.com>
1749
1750         Reviewed by Beth Dakin & John Sullivan.
1751
1752         <rdar://problem/4633717> 9A218: Reproducible crash in -[NSScroller mouseDown:]
1753
1754         Beth is in the middle of making a layout test for this; she will land it soon.
1755
1756         * platform/mac/ScrollBarMac.mm:
1757         (ScrollBar::~ScrollBar):
1758         Call Widget::removeFromSuperview() rather than -removeFromSuperview directly on the scroll bar view.
1759         Widget::removeFromSuperview() obeys the "mustStayInWindow" flag, which is set while tracking the mouse
1760         in view-based widgets to prevent their destruction while the tracking is in progress.
1761         I searched around WebCore and this is the only Widget subclass that directly removes its view rather
1762         than using removeFromSuperview().
1763
1764 2006-07-21  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1765
1766         Reviewed by Darin.
1767
1768         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9312
1769           REGRESSION: Selection bug in new text fields when selecting past the first letter
1770
1771         Test: editing/selection/select-from-textfield-outwards.html
1772
1773         * editing/Selection.cpp:
1774         (WebCore::Selection::adjustForEditableContent): Added code to handle the case
1775         where the selection starts (resp. ends) in the last (resp. first) visual position
1776         inside an editable root.
1777         * editing/htmlediting.cpp:
1778         (WebCore::comparePositions): Fixed the case of comparing a position inside a shadow
1779         tree with a position in the shadow ancestor.
1780         * rendering/RenderBlock.cpp:
1781         (WebCore::RenderBlock::positionForCoordinates): For coordinates outside a replaced
1782         object, return the position just before (after) the element if the coordinates are above or
1783         to the left (below or to the right).
1784         * rendering/RenderObject.cpp:
1785         (WebCore::RenderObject::caretMaxOffset): Changed to return 1 for replaced objects.
1786         * rendering/RenderText.cpp:
1787         (WebCore::RenderText::positionForCoordinates): Changed to return the last position
1788         in the lowest text box if the y coordinate is below all text boxes.
1789
1790 2006-07-21  Geoffrey Garen  <ggaren@apple.com>
1791
1792         Reviewed by Darin.
1793         
1794         - Fixed <rdar://problem/4507265> REGRESSION: overlays don't work on 
1795         HousingMaps.com (Google Maps-based site)
1796         
1797         - Made style.filter undetectable, like document.all.
1798         
1799         Unfortunately, the SVG spec-makers invented a CSS attribute named 'filter',
1800         which conflicts with IE's custom CSS attribute by the same name. Web programs 
1801         like the Google maps API test for style.filter, and assume it's the IE 
1802         style.filter if they find it, so we need to make style.filter undetectable 
1803         to avoid breaking them.
1804         
1805         An alternative solution would be to hotwire a delorean, go back in time,
1806         and beg the web standards makers to make standards that work on the web.
1807
1808         * bindings/js/kjs_css.cpp:
1809         (KJS::DOMCSSStyleDeclaration::cssPropertyGetter):
1810
1811 2006-07-20  Justin Garcia  <justin.garcia@apple.com>
1812
1813         Reviewed by john
1814         
1815         <rdar://problem/4641033>
1816         REGRESSION: Pasting from web pages into Mail (or Blot) often loses most of the content
1817         
1818         * editing/markup.cpp:
1819         (WebCore::createMarkup): We surround the currently accumulated markup with markup 
1820         for ancestors of the startNode when the pre-order traversal leaves the trees rooted 
1821         at those ancestors.  We assumed that any ancestors of the current node not in the 
1822         ancestorsToClose list were those kind of ancestors.  But we don't add renderer-less 
1823         containers to the ancestorsToClose list.  So, we were incorrectly surrounding the 
1824         currently accumulated markup with markup for render-less containers.  Most of the
1825         content at apple.com was being put inside an <optgroup> inside a <select> element.  
1826         Then on Paste createContextualFragment would drop it.
1827
1828 2006-07-21  Anders Carlsson  <acarlsson@apple.com>
1829
1830         Reviewed by Geoff.
1831
1832         * dom/Document.h:
1833         (WebCore::Document::):
1834         * dom/EventTargetNode.cpp:
1835         (WebCore::EventTargetNode::addEventListener):
1836         * page/FrameView.cpp:
1837         (WebCore::FrameView::layout):
1838         * rendering/RenderLayer.cpp:
1839         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
1840         Only dispatch overflowchanged events if overflowchanged event listeners have been registered on the document.
1841
1842 2006-07-20  Anders Carlsson  <acarlsson@apple.com>
1843
1844         Reviewed by Geoff.
1845
1846         <rdar://problem/4637807> REGRESSION: "Features & Options" page at volvocars.us fails
1847
1848         * xml/XSLTProcessor.cpp:
1849         (WebCore::xsltParamArrayFromParameterMap):
1850         Turns out parameters never worked. String parameters need to be escaped so we create a transform context,
1851         add the parameters to it quoted and then use xsltApplyStylesheetUser which lets us pass the transform context to it.
1852         This also works around a bug in libxslt where a hash table isn't allocated.
1853
1854 2006-07-20  Alice Liu  <alice.liu@apple.com>
1855
1856         Reviewed by Tim Omernick.
1857
1858         Fixed <rdar://problem/4621649> repro crash: Upload link causes crash on pages.google.com in Frame::nodeForWidget
1859         added manual test because there is no way to change the value of an <input type=file> via the DOM.  It's not supported because it's a security risk. 
1860
1861         * manual-tests/remove-input-file-onchange.html: Added.
1862         * platform/mac/FileButtonMac.mm:
1863         (-[WebFileChooserButton chooseFilename:]):
1864         swapped the calls to changeFilename and bridgeForWidget because changeFilename will destroy the widget that is accessed in bridgeForWidget 
1865
1866 2006-07-20  Alice Liu  <alice.liu@apple.com>
1867
1868         Reviewed by Adele.
1869
1870         Fixed <rdar://problem/4532113> REGRESSION (NativeTextField): Crash occurs after modifying field then reloading page -[FormDelegate frameLayoutHasChanged:]
1871         added a manual test because of the need to use AutoFill.
1872
1873         * dom/Node.h:
1874         (WebCore::Node::aboutToUnload):
1875         added virtual function prototype
1876         * html/HTMLInputElement.cpp:
1877         (WebCore::HTMLInputElement::aboutToUnload):
1878         added implementation that sends textFieldDidEndEditing notification
1879         * html/HTMLInputElement.h:
1880         added virtual function prototype
1881         * manual-tests/input-type-file-autocomplete-frame-1.html: Added.
1882         * manual-tests/input-type-file-autocomplete-frame-2.html: Added.
1883         * manual-tests/input-type-file-autocomplete-refresh.html: Added.
1884         * page/Frame.cpp:
1885         (WebCore::Frame::stopLoading):
1886         before unloading, call aboutToUnload on the current focused node
1887
1888 2006-07-20  Brady Eidson  <beidson@apple.com>
1889
1890         Reviewed by Maciej
1891
1892         fixed <rdar://problem/4611303> REGRESSION: repro crash in WebCore::EventTargetNode::dispatchWindowEvent at aeropostale.com
1893         There was an attempt to deref an EventListener that got cleaned up in GC.  Changing Document's EventListener list from 
1894         vanilla ptrs to refptrs to prevent GC, following EventTargetNode's proven example.
1895
1896         * dom/Document.cpp:
1897         (WebCore::Document::Document):
1898         (WebCore::Document::clear):
1899         (WebCore::Document::handleWindowEvent):
1900         (WebCore::Document::getHTMLWindowEventListener):
1901         (WebCore::Document::removeHTMLWindowEventListener):
1902         (WebCore::Document::removeWindowEventListener):
1903         (WebCore::Document::hasWindowEventListener):
1904         Changed all of the list iterators to work with RefPtrs instead of vanilla ptrs
1905
1906         * dom/Document.h:
1907         Changed the EventListener list to be a vanilla pointer list to a refptr list
1908
1909 2006-07-20  John Sullivan  <sullivan@apple.com>
1910
1911         Reviewed by Maciej
1912
1913         - WebCore part of fix for:
1914         <rdar://problem/4557386> REGRESSION (419.3-521.19): repro Safari world leak involving 
1915         closing tabs after clicking in a web page
1916         
1917         * bridge/mac/WebCoreFrameBridge.h:
1918         (-[WebCoreFrameBridge textViewWasFirstResponderAtMouseDownTime:])
1919         renamed to be more specific (formerly wasFirstResponderAtMouseDownTime:)
1920         * bridge/mac/FrameMac.mm:
1921         (WebCore::FrameMac::passMouseDownEventToWidget):
1922         updated for name change
1923
1924 2006-07-19  Alexey Proskuryakov  <ap@nypop.com>
1925
1926         Reviewed by Darin.
1927
1928         Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8272
1929         Use of window.open & window.close can cause crash
1930
1931         * platform/PlatformMouseEvent.h:
1932         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
1933         * platform/mac/PlatformMouseEventMac.mm:
1934         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
1935         The default constructor now creates a "zero" event, and a new one was added to create the "current" one.
1936
1937         * bridge/mac/FrameMac.mm:
1938         (WebCore::FrameMac::handleMouseMoveEvent):
1939         * rendering/RenderFormElement.cpp:
1940         (WebCore::RenderFormElement::clicked): 
1941         Updated for the above changes.
1942
1943         * platform/gdk/MouseEventGdk.cpp:
1944         * platform/gdk/TemporaryLinkStubs.cpp:
1945         (PlatformMouseEvent::PlatformMouseEvent):
1946         * platform/win/MouseEventWin.cpp:
1947         * platform/win/TemporaryLinkStubs.cpp:
1948         (PlatformMouseEvent::PlatformMouseEvent):
1949         Trying not to break other platforms.
1950
1951         * manual-tests/invalid-mouse-event.html: Added.
1952
1953 2006-07-20  Maciej Stachowiak  <mjs@apple.com>
1954         
1955         Reviewed by Anders.
1956
1957         - delete line that I only commented in the last patch - meant to do this before landing
1958
1959         * html/HTMLFrameElement.cpp:
1960         (WebCore::HTMLFrameElement::close): 
1961
1962 2006-07-19  Maciej Stachowiak  <mjs@apple.com>
1963
1964         Reviewed by Geoff.
1965
1966         - fixed <rdar://problem/4634484> REGRESSION: Project Change Request form should have vertical scroll bar, but doesn't
1967         
1968         I couldn't figure out how to make an automated test case for this,
1969         or even a manual one. It seems to be timing-related in some way.
1970
1971         * html/HTMLFrameElement.cpp:
1972         (WebCore::HTMLFrameElement::close): detach the child frame from
1973         its element, not the frame containing this element.
1974
1975 2006-07-20  Anders Carlsson  <acarlsson@apple.com>
1976
1977         Reviewed by Darin.
1978
1979         * bridge/mac/FrameMac.mm:
1980         (WebCore::FrameMac::nextKeyViewInFrame):
1981         Hold a ref to the node in case it gets destroyed by an event handler.
1982
1983 2006-07-19  Mark Rowe  <opendarwin.org@bdash.net.nz>
1984
1985         Reviewed by Darin.
1986
1987         http://bugzilla.opendarwin.org/show_bug.cgi?id=10021
1988         Bug 10021: REGRESSION: Stack overflow due to infinite recursion in 
1989         Image::checkForSolidColor
1990
1991         * platform/Image.cpp:
1992         (WebCore::Image::cacheFrame): Don't call checkForSolidColor unless 
1993         the frame was decoded successfully.
1994
1995 2006-07-19  Adele Peterson  <adele@apple.com>
1996
1997         Reviewed by Maciej.
1998
1999         - Fix for: 
2000         <rdar://problem/4422657> REGRESSION: member name field or password field should have focus after loading webmail.mac.com (7405)
2001         http://bugzilla.opendarwin.org/show_bug.cgi?id=7405
2002
2003         <rdar://problem/4614181> REGRESSION: Crash in WebCore::RenderTextField::text() when quoting post at the Ars Technica forum (9707)
2004         http://bugzilla.opendarwin.org/show_bug.cgi?id=9707
2005
2006         Needs an http test. (http://bugzilla.opendarwin.org/show_bug.cgi?id=10020)
2007
2008         These bugs were both cases where focus() was called on an element which didn't have a renderer yet because stylesheets hadn't finished loading yet.
2009         Now, we detect this case and let setFocusNode be called.  And when the stylesheet finishes loading, and the element attaches, a timer will fire, 
2010         which will cause the correct selection & scrolling behavior to occur. 
2011
2012         This fix removes selection and scrolling behavior from the focus method.  This code is now in a new method, updateFocusAppearance.
2013         updateFocusAppearance can now be called directly from focus(), but it can also be called when a timer fires.  This timer gets set
2014         up when an element attaches, and its already been focused by the focus method.  We have to use a timer, because updateFocusAppearance can cause
2015         a layout to happen, and we don't want that to happen in the middle of attach().
2016
2017         * bindings/objc/DOM.mm: (-[DOMElement isFocused]): Added SPI for autofill.
2018         * bindings/objc/DOMPrivate.h:
2019
2020         * dom/Element.cpp:
2021         (WebCore::Element::Element): Initializes timer and needFocusAppearanceUpdate bool.
2022         (WebCore::Element::attach): Checks needsFocusAppearanceUpdate, and if the node is focused, then starts the timer.
2023         (WebCore::Element::focus): Updated to check supportsFocus before calling setFocusNode, 
2024         and only requiring the element to be focusable now before updating focus appearance.
2025         (WebCore::Element::updateFocusAppearance): Added. Separates the selection, and the scrolling from focusing the node.
2026         (WebCore::Element::updateFocusAppearanceTimerFired): Stops the timer, and if the element is focusable, calls updateFocusAppearance.
2027         (WebCore::Element::stopUpdateFocusAppearanceTimer):  Cancels timer, and setsNeedsFocusAppearanceUpdate(false).
2028         (WebCore::Element::detach): Calls stopUpdateFocusAppearanceTimer.
2029         (WebCore::Element::blur): ditto.
2030         * dom/Element.h:
2031         (WebCore::Element::needsFocusAppearanceUpdate): Added so the timer only fires when focus() methods have caused an element to be focused.
2032         (WebCore::Element::setNeedsFocusAppearanceUpdate): Added so focus methods can set this flag.
2033
2034         * dom/Node.h: (WebCore::Node::supportsFocus): Added.  Base class just calls isFocusable.
2035         * html/HTMLAnchorElement.h: Added supportsFocus.
2036         * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::supportsFocus): Added. Checks for the case where stylesheets haven't loaded yet,
2037         so we can still focus the node without a renderer, and when it gets a renderer, we'll update the focus appearance.
2038         * html/HTMLGenericFormElement.h: (WebCore::HTMLGenericFormElement::supportsFocus): ditto.
2039         * html/HTMLGenericFormElement.cpp: Removed include of Document.h since this is now in the header.
2040
2041         * html/HTMLInputElement.cpp:
2042         (WebCore::HTMLInputElement::focus): Updated to check supportsFocus before calling setFocusNode, 
2043         and only requiring the element to be focusable now before updating focus appearance.
2044         (WebCore::HTMLInputElement::updateFocusAppearance): Added. Separates the selection, and the scrolling from focusing the node.
2045         * html/HTMLInputElement.h:
2046
2047         * html/HTMLTextAreaElement.cpp:
2048         (WebCore::HTMLTextAreaElement::focus): Updated to check supportsFocus before calling setFocusNode, 
2049         and only requiring the element to be focusable now before updating focus appearance.
2050         (WebCore::HTMLTextAreaElement::updateFocusAppearance): Added. Separates the selection, and the scrolling from focusing the node.
2051         * html/HTMLTextAreaElement.h:
2052
2053 2006-07-19  Justin Garcia  <justin.garcia@apple.com>
2054
2055         Reviewed by levi
2056         
2057         <rdar://problem/4631972>
2058         REGRESSION: Mail crashes when pasting entire contents of http://www.apple.com/support/ into a new mail message
2059
2060         * dom/Position.cpp:
2061         (WebCore::Position::upstream): Deployed isBlock and enclosingBlock.
2062         (WebCore::Position::downstream): Ditto.
2063         * editing/CompositeEditCommand.cpp:
2064         (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): Ditto.
2065         * editing/htmlediting.cpp:
2066         (WebCore::canHaveChildrenForEditing): Added !iframe.
2067         (WebCore::isBlock): Added, returns !node->renderer()->isInline()
2068         (WebCore::enclosingBlock): Added.
2069         * editing/htmlediting.h:
2070
2071 2006-07-19  Anders Carlsson  <acarlsson@apple.com>
2072
2073         Reviewed by Adele.
2074
2075         <rdar://problem/4631272> REGRESSION: Crash tabbing out of hostname field at autorestore.apple.com
2076         
2077         * bridge/mac/FrameMac.mm:
2078         (WebCore::FrameMac::nextKeyViewInFrame):
2079         Take into account that focus handlers can cause a node's renderer to be destroyed.
2080         
2081 2006-07-19  David Hyatt  <hyatt@apple.com>
2082
2083         Fix for 4638376.  The 1x1 solid color image optimization was broken when
2084         I re-architected image.  This patch restores the optimization for CG.  Cairo
2085         will still need the optimization.
2086
2087         Reviewed by darin
2088
2089         WARNING: NO TEST CASES ADDED OR CHANGED (need test cases still)
2090
2091         * platform/Image.cpp:
2092         (WebCore::Image::Image):
2093         (WebCore::Image::invalidateData):
2094         (WebCore::Image::cacheFrame):
2095         * platform/Image.h:
2096         (WebCore::Image::setIsPDF):
2097         * platform/cairo/ImageCairo.cpp:
2098         (WebCore::Image::checkForSolidColor):
2099         * platform/mac/ImageMac.mm:
2100         (WebCore::Image::initNativeData):
2101         (WebCore::Image::invalidateNativeData):
2102         (WebCore::Image::checkForSolidColor):
2103         (WebCore::Image::draw):
2104         (WebCore::Image::drawTiled):
2105
2106 2006-07-19  Justin Garcia  <justin.garcia@apple.com>
2107
2108         Reviewed by levi
2109         
2110         <rdar://problem/4613519>
2111         REGRESSION: Pasting text in native text area inserts text one character before it should (9527)
2112
2113         * editing/InsertParagraphSeparatorCommand.cpp:
2114         (WebCore::InsertParagraphSeparatorCommand::doApply): Turn into an InsertLineBreakCommand instead of bailing
2115         if the enclosingBlockFlowElement doesn't have a parent.
2116
2117 2006-07-19  David Harrison  <harrison@apple.com>
2118
2119         Reviewed by Tim Hatcher.
2120
2121         <rdar://problem/4629307> -[DOMRange markupString] does not include the initial table element if it is at the beginning of the range
2122         <rdar://problem/4062218> pasting in contents of web.apple.com strips off the <table> element from the first table
2123         
2124         Better patch than previous checkin.
2125
2126         * test: editing/pasteboard/paste-table-003.html
2127         
2128         * editing/markup.cpp:
2129         (WebCore::createMarkup):
2130         Make sure to include the table when including a tbody.
2131
2132 === Safari-521.19 ===
2133
2134 2006-07-19  David Harrison  <harrison@apple.com>
2135
2136         Reviewed by Tim Hatcher.
2137
2138         <rdar://problem/4629307> -[DOMRange markupString] does not include the initial table element if it is at the beginning of the range
2139
2140         No test case as this can only be reproduced through ObjC APIs.
2141
2142         * editing/markup.cpp:
2143         (WebCore::createMarkup):
2144         Adjust the range for ancestor markup handling when main loop skips first node.
2145
2146 2006-07-18  David Hyatt  <hyatt@apple.com>
2147
2148         Fix for radar 4611287, make resizable text fields opt-in rather than
2149         opt-out.  Open source users will need to write the pref into their defaults
2150         to see the resizers on textareas now.
2151
2152         Reviewed by mjs and adele
2153
2154         * WebCore.xcodeproj/project.pbxproj:
2155         * bridge/mac/WebCoreSettings.mm:
2156         (-[WebCoreSettings setTextAreasAreResizable:]):
2157         * css/cssparser.cpp:
2158         (WebCore::CSSParser::parseValue):
2159         * css/cssstyleselector.cpp:
2160         (WebCore::CSSStyleSelector::applyProperty):
2161         * css/html4.css:
2162
2163 2006-07-18  Anders Carlsson  <acarlsson@apple.com>
2164
2165         Reviewed by Darin.
2166
2167         http://bugzilla.opendarwin.org/show_bug.cgi?id=9959
2168         REGRESSION: iframes stop rendering after 200th one on successive reloads
2169         
2170         * html/HTMLFrameElement.cpp:
2171         (WebCore::HTMLFrameElement::attach):
2172         (WebCore::HTMLFrameElement::close):
2173         * html/HTMLIFrameElement.cpp:
2174         (WebCore::HTMLIFrameElement::insertedIntoDocument):
2175         (WebCore::HTMLIFrameElement::willRemove):
2176         Remove calls to incrementFrameCount and decrementFrameCount.
2177         
2178         * page/Frame.cpp:
2179         (WebCore::Frame::Frame):
2180         Call incrementFrameCount here.
2181         
2182         (WebCore::Frame::~Frame):
2183         Call disconnectOwnerElement.
2184         
2185         (WebCore::Frame::disconnectOwnerElement):
2186         Call decrementFrameCount here.
2187         
2188 2006-07-18  Alexey Proskuryakov  <ap@nypop.com>
2189
2190         Reviewed by Darin.
2191
2192         Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9013
2193         Let correct CSS custom cursor declarations parse
2194
2195         * css/cssparser.cpp:
2196         (WebCore::CSSParser::parseValue): Ignore any values following a custom CSS cursor URI, instead of
2197         requiring that it is the only one in the list (which is actually illegal, according to the spec). 
2198         This is only a temporary hack, with a real implementation to follow in bug 6001/6002.
2199
2200         * manual-tests/custom-cursors.html: Added a test for this issue.
2201         * manual-tests/resources/helpCursor.tiff: A cursor image used in the test.
2202
2203 2006-07-18  Timothy Hatcher  <timothy@apple.com>
2204
2205         Reviewed by Anders.
2206         
2207         <rdar://problem/4636216> NetNewsWire fails to launch on 9A224 - missing symbols
2208         
2209         WebCore needs to add -sub_library libobjc to maintain
2210         backwards compatibility with binaries linked with WebKit
2211         before JavaScriptCore moved out of WebKit.
2212
2213         * WebCore.xcodeproj/project.pbxproj:
2214
2215 2006-07-18  Mitz Pettel  <opendarwin.org@mitzpettel.com>
2216
2217         Reviewed by Justin.
2218
2219         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9978
2220           REGRESSION (r12949-r12988): Clicking the first letter on a line places the caret at the end of the previous line
2221
2222         Test: editing/selection/click-start-of-line.html
2223
2224         * rendering/RenderText.cpp:
2225         (WebCore::RenderText::positionForCoordinates): Changed to return downstream
2226         affinity if the x coordinate is to the left of the middle of the first character
2227         in the text box.
2228
2229 2006-07-18  Anders Carlsson  <acarlsson@apple.com>
2230
2231         Reviewed by Darin.
2232
2233         http://bugzilla.opendarwin.org/show_bug.cgi?id=9695
2234         <rdar://problem/4614085> 
2235         TOT REGRESSION: NativeTextArea: Text area does not respond to Cmd-UpArrow/Cmd-DownArrow (9695)
2236         
2237         * editing/SelectionController.cpp:
2238         (WebCore::SelectionController::modifyExtendingRightForward):
2239         (WebCore::SelectionController::modifyMovingRightForward):
2240         (WebCore::SelectionController::modifyExtendingLeftBackward):
2241         (WebCore::SelectionController::modifyMovingLeftBackward):
2242         If the caret is inside an editable region, the beginning/end of the document should actually be the
2243         beginning/end of the editable region.
2244
2245 2006-07-17  Tim Omernick  <timo@apple.com>
2246
2247         Reviewed by Maciej.
2248
2249         <rdar://problem/4612079> need a way to prevent pages from scrolling to reveal elements that are focused
2250         by script
2251
2252         * bridge/mac/WebCoreFrameBridge.h:
2253         * bridge/mac/WebCoreFrameBridge.mm:
2254         (-[WebCoreFrameBridge setProhibitsScrolling:]):
2255         * page/Frame.cpp:
2256         (WebCore::Frame::prohibitsScrolling):
2257         (WebCore::Frame::setProhibitsScrolling):
2258         * page/Frame.h:
2259         * page/FramePrivate.h:
2260         (WebCore::FramePrivate::FramePrivate):
2261         * page/FrameView.cpp:
2262         (WebCore::FrameView::scrollPointRecursively):
2263         (WebCore::FrameView::setContentsPos):
2264         * page/FrameView.h:
2265         * platform/ScrollView.h:
2266
2267 2006-07-17  Maciej Stachowiak  <mjs@apple.com>
2268
2269         Reviewed by Dave Harrison.
2270         
2271         - fixed <rdar://problem/4618089> Blot crashes when I paste in all the contents of http://www.apple.com/startpage/
2272
2273         * editing/htmlediting.cpp:
2274         (WebCore::editingIgnoresContent):
2275
2276 2006-07-17  Justin Garcia  <justin.garcia@apple.com>
2277
2278         Reviewed by levi
2279         
2280         <rdar://problem/4621728>
2281         REGRESSION: Selecting by dragging down creates selection in wrong direction, with certain steps
2282         <rdar://problem/4604932>
2283         REGRESSION: Dragging too far left on a line will select all lines above it.
2284  
2285         No layout test because of 9980.
2286
2287         * rendering/RenderBlock.cpp:
2288         (WebCore::RenderBlock::positionForCoordinates): Don't return positions inside editable roots
2289         for coordinates outside those roots, except for coordinates outside a document that is entirely 
2290         editable.
2291
2292 2006-07-17  Timothy Hatcher  <timothy@apple.com>
2293
2294         Reviewed by Darin.
2295
2296         <rdar://problem/4635281> JSCanvasRenderingContext2D::drawImage needs to initialize the exception code to zero
2297
2298         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
2299         (WebCore::JSCanvasRenderingContext2D::drawImage): initialize ec to zero
2300         * html/CanvasRenderingContext2D.cpp:
2301         (WebCore::CanvasRenderingContext2D::drawImage): initialize ec before earlier return
2302
2303 2006-07-17  Timothy Hatcher  <timothy@apple.com>
2304
2305         Reviewed by Maciej.
2306
2307         <rdar://problem/4634874> WebScriptObject and WebUndefined are no longer defined by WebKit
2308
2309         Moves WebScriptObject and WebUndefined to WebCore.
2310
2311         * WebCore.exp:
2312         * WebCore.xcodeproj/project.pbxproj:
2313         * bindings/objc/DOM.mm:
2314         * bindings/objc/DOMCore.h:
2315         * bindings/objc/DOMInternal.mm:
2316         * bindings/objc/DOMUtility.mm:
2317         * bindings/objc/WebScriptObject.mm: Added.
2318         (+[WebUndefined allocWithZone:]):
2319         (-[WebUndefined initWithCoder:]):
2320         (-[WebUndefined encodeWithCoder:]):
2321         (-[WebUndefined copyWithZone:]):
2322         * bindings/objc/WebScriptObjectPrivate.h: Added.
2323         * bridge/mac/FrameMac.mm:
2324         * bridge/mac/WebCoreScriptDebugger.mm:
2325
2326 2006-07-17  David Hyatt  <hyatt@apple.com>
2327
2328         Back out the fix for 5564, since it turns out font:x-small; is a pretty
2329         prominent IE-specific CSS hack.  Because Web sites rely on IE's incorrect
2330         font parsing as a means of also correcting IE's incorrect font size rules.
2331
2332         This fixes Yahoo.com.
2333
2334         Reviewed by darin
2335
2336         * css/cssparser.cpp:
2337         (WebCore::CSSParser::parseFont):
2338
2339 2006-07-17  Justin Garcia  <justin.garcia@apple.com>
2340
2341         Reviewed by levi
2342         
2343         <rdar://problem/4618389> REGRESSION: After applying a link to the last word of a sentence, a new selection is created at the start of the sentence
2344         
2345         * dom/Document.cpp:
2346         (WebCore::Document::updateSelection):
2347
2348 2006-07-17  Maciej Stachowiak  <mjs@apple.com>
2349
2350         Reviewed by Beth.
2351         
2352         <rdar://problem/4604946> REGRESSION: 'checkboxRef.checked = true' fires onchange event in Leopard
2353
2354         * html/HTMLInputElement.cpp:
2355         (WebCore::HTMLInputElement::setChecked):
2356         (WebCore::HTMLInputElement::preDispatchEventHandler):
2357         * html/HTMLInputElement.h:
2358
2359 2006-07-16  David Kilzer  <ddkilzer@kilzer.net>
2360
2361         Reviewed by Darin.
2362
2363         - fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=9954
2364           REGRESSION: document.dir should return empty string in <head>
2365
2366         Test: fast/dom/document-dir-property.html
2367
2368         * bindings/js/kjs_html.cpp:
2369         (KJS::JSHTMLDocument::getValueProperty): Return an empty string instead of an
2370         undefined value for an unset document.dir property.
2371
2372 2006-07-16  David Kilzer  <ddkilzer@kilzer.net>
2373
2374         Reviewed by Darin.
2375
2376         * dom/NodeFilter.idl:
2377         Removed "No newline at end of file" that snuck in as part of the "apply patch" process.
2378         * manual-tests/input-empty-on-focus.html:
2379         Removed "Property changes" that snuck in as part of the "apply patch" process.
2380
2381 2006-07-16  Darin Adler  <darin@apple.com>
2382
2383         Reviewed by John Sullivan.
2384
2385         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9943
2386           <rdar://problem/4590613>
2387           REGRESSION (Tiger-TOT): menus are offset to the right at http://movies.aol.com/movie-photo-bts/superman-returns
2388
2389         The problem turns out to be the fact that body.offsetLeft is returning a non-zero value.
2390         I have no idea why the menus worked in Tiger Safari, because body.offsetLeft behavior has not changed.
2391         Presumably some other bug that we fixed had been compensating.
2392
2393         Test: fast/html/body-offset-properties.html
2394
2395         * rendering/RenderObject.cpp:
2396         (WebCore::RenderObject::offsetLeft): Always return 0 for any object without an offsetParent.
2397         (WebCore::RenderObject::offsetTop): Ditto.
2398         (WebCore::RenderObject::offsetParent): Return 0 for the body (treat as a special case).
2399
2400 2006-07-16  Beth Dakin  <bdakin@apple.com>
2401
2402         Reviewed by Maciej.
2403
2404         Fix for <rdar://problem/4616595> REGRESSION: Problems with world 
2405         clock widget clock hand motion on 9A211 + 4604574
2406
2407         The second hand on the widget was jiggling because the rotation was 
2408         messing up the use of the affine transformation matrix while 
2409         rounding to pixel boundaries in device space. We are mainly 
2410         concerned with rounding to pixel boundaries with the scale in mind, 
2411         so this patch extracts the scale to device space from the matrix, 
2412         and rounds to pixel boundaries using only the scale. This doesn't 
2413         seem like it is a perfect solution, but it definitely solves the 
2414         immediate problem. We will probably need to re-address what should 
2415         happen to avoid pixel cracks with rotations at non-integral scale 
2416         factors. 
2417
2418         * platform/cg/GraphicsContextCG.cpp:
2419         (WebCore::GraphicsContext::roundToDevicePixels):
2420
2421 2006-07-15  Darin Adler  <darin@apple.com>
2422
2423         - fix mistake from fix for 8952 that was breaking layout tests
2424
2425         * editing/SelectionController.cpp: (WebCore::SelectionController::nodeWillBeRemoved):
2426         Justin was right! I changed the behavior of the function by accident. Changed it
2427         back so that it doesn't blow away the selection on the DOM side in the case where
2428         it didn't before.
2429
2430         I will write 100 times on the blackboard: "When Justin says something about editing,
2431         assume he is right."
2432
2433 2006-07-15  Darin Adler  <darin@apple.com>
2434
2435         - try to fix Windows build
2436
2437         * WebCore.vcproj/WebCore/WebCore.vcproj: Added StreamingTextDecoderICU.cpp/h.
2438
2439 2006-07-15  Darin Adler  <darin@apple.com>
2440
2441         Reviewed by John Sullivan.
2442
2443         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8952
2444           <rdar://problem/4575185>
2445           REGRESSION: crash on drag of highlighted Google custom home page modules
2446
2447         Test: fast/dynamic/move-node-with-selection.html
2448
2449         * editing/SelectionController.cpp: (WebCore::SelectionController::nodeWillBeRemoved):
2450         Call updateRendering before calling clearSelection(), since it's important to do any
2451         work beforehand, and there are calls inside clearSelection that will indirectly do an
2452         updateRendering. Also change code to make fewer assumptions about object lifetime.
2453
2454 2006-07-15  Darin Adler  <darin@apple.com>
2455
2456         Reviewed by John Sullivan.
2457
2458         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8587
2459           <rdar://problem/4631844>
2460           REGRESSION: {display:list-item} on items outside an ol or ul element no longer causes incremental numbering
2461
2462         Test: fast/lists/numeric-markers-outside-list.html
2463
2464         * rendering/RenderListItem.cpp: (WebCore::previousListItem):
2465         Look for list items, even when we're outside any list.
2466
2467 2006-07-15  Adele Peterson  <adele@apple.com>
2468
2469         Reviewed by John.
2470
2471         - Fix for <rdar://problem/4593970> REGRESSION (NativeTextField): autofill menu disappears after typing a 2nd character
2472
2473         This was caused by composite editing commands, (like typing or pasting) that include a DeleteCommand, being
2474         interpreted by the form delegate as an actual delete.  This fix doesn't notify the form delegate if the deletion is
2475         part of an editing command to replace the selected text.
2476
2477         * editing/DeleteSelectionCommand.h: Added m_replace to keep track of whether this deletion is 
2478           part of a composite command to replace the text being deleted.
2479         * editing/DeleteSelectionCommand.cpp:
2480         (WebCore::DeleteSelectionCommand::DeleteSelectionCommand): Initialize m_replace.
2481         (WebCore::DeleteSelectionCommand::doApply): Only notify the form delegate of the deletion if the text is not being replaced.
2482         * editing/CompositeEditCommand.h:
2483         * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::deleteSelection): 
2484           Added replace argument to construct DeleteSelectionCommand.
2485           
2486         * editing/InsertTextCommand.cpp: (WebCore::InsertTextCommand::input): Call deleteSelection with replace argument.
2487         * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::doApply): ditto.
2488
2489 2006-07-15  Geoffrey Garen  <ggaren@apple.com>
2490
2491         Reviewed by Maciej, tweaked to match Darin's patch.
2492         
2493         - Fixed <rdar://problem/4631837> REGRESSION: Reproducible crash on 
2494         FCKeditor demo (9911)
2495         
2496         * WebCore.xcodeproj/project.pbxproj:
2497         * bindings/js/kjs_html.cpp:
2498         (KJS::JSHTMLDocument::putValueProperty): Check for a null body element before
2499         forwarding the put request to it. I confirmed that no other parts of the 
2500         file use 'body' or 'bodyElement' without checking for null. 
2501         
2502         Also, use 'body' rather than 'bodyElement' because dir can bet set on 
2503         any element, not just HTMLBodyElement.
2504
2505 2006-07-15  Darin Adler  <darin@apple.com>
2506
2507         Reviewed by Adele.
2508
2509         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8871
2510           <rdar://problem/4575417>
2511           REGRESSION: Pressing Enter/Return in a text input removes the selected text
2512
2513         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9743
2514           <rdar://problem/4614228>
2515           REGRESSION: crash dispatching JavaScript-created keyboard event to input element
2516
2517         * bridge/mac/FrameMac.mm: (WebCore::FrameMac::doTextFieldCommandFromEvent):
2518         Add a null check to fix the crash, and a FIXME explaining why this is not necessarily
2519         enough for the future.
2520
2521         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
2522         Consume Enter key keypress events even if the element is not in a form.
2523
2524         * platform/mac/KeyEventMac.mm: (WebCore::keyIdentifierForKeyEvent): Added \n to the
2525         characters that turn into "Enter". Actual keyboard events always are \r or \003 on
2526         the Macintosh, but in layout tests we can use \n, and everything other than the
2527         code path here works, so worth fixing.
2528
2529 2006-07-15  Darin Adler  <darin@apple.com>
2530
2531         Reviewed by John Sullivan.
2532
2533         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9883
2534           <rdar://problem/4631821>
2535           REGRESSION: NativePopups don't work correctly in some forum software
2536
2537         Test: fast/forms/select-selected.html
2538
2539         * rendering/RenderMenuList.h:
2540         * rendering/RenderMenuList.cpp:
2541         (WebCore::RenderMenuList::updateFromElement): Added code to map the selected option
2542         index to a list index before using it to index into the list.
2543         (WebCore::RenderMenuList::showPopup): Added code to map the selection option index
2544         to a list index before passing it to the menu renderer.
2545         (WebCore::RenderMenuList::valueChanged): Added code to map the list index back to a
2546         option index before calling setSelectedIndex (that function takes an option index).
2547
2548 2006-07-15  Darin Adler  <darin@apple.com>
2549
2550         Reviewed by John Sullivan.
2551
2552         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9928
2553           REGRESSION: Text Encoding menu inoperative (after gcc protocol build fix)
2554
2555         * bindings/objc/DOM.mm:
2556         (-[DOMNode addEventListener:::]): Moved into DOMEventTarget category.
2557         (-[DOMNode removeEventListener:::]): Ditto.
2558         (-[DOMNode dispatchEvent:]): Ditto.
2559
2560         * WebCore.xcodeproj/project.pbxproj: Allow Xcode to do its thing.
2561
2562 2006-07-15  Maciej Stachowiak  <mjs@apple.com>
2563
2564         Reviewed by Anders.
2565
2566         <rdar://problem/4632144> REGRESSION: table column tests failing as a result of very recent fix
2567
2568         * rendering/RenderTable.cpp:
2569         (WebCore::RenderTable::addChild): columns and colgroups are valid children of a table too, not
2570         just table sections!
2571
2572 2006-07-15  Anders Carlsson  <acarlsson@apple.com>
2573
2574         Reviewed by Darin.
2575
2576         http://bugzilla.opendarwin.org/show_bug.cgi?id=9866
2577         <rdar://problem/4631561>
2578         REGRESSION: Repro crash from mangleme using iframe, only from server.
2579         
2580         * html/HTMLIFrameElement.cpp:
2581         (WebCore::HTMLIFrameElement::attach):
2582         Add null check for contentFrame() since content frames won't be created for invalid URLs.        
2583
2584 2006-07-14  Alexey Proskuryakov  <ap@nypop.com>
2585
2586         Reviewed by Darin.
2587
2588         Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=4195
2589         REGRESSION: KOI8-U encoding no longer supported.
2590
2591         Tests:
2592         * http/tests/misc/BOM-override.pl
2593         * http/tests/misc/BOM-override-script.html
2594         * fast/encoding/charset-koi8-u.html
2595         * fast/encoding/charset-x-nextstep.html
2596
2597         Restored a TEC code path for encodings that are not supported by ICU (but which currently
2598         passes all layout tests even by itself with ICU disabled). A lot of refactoring is 
2599         still needed - most importantly, round-tripping encoding names via CFStringEncoding 
2600         makes little sense now.
2601
2602         * WebCore.exp:
2603         * bridge/mac/WebCoreTextDecoder.h: Removed.
2604         * bridge/mac/WebCoreTextDecoder.mm: Removed.
2605         WebCoreTextDecoder was not used anywhere since WebTextView was moved into WebCore.
2606
2607         * loader/Decoder.cpp:
2608         (Decoder::Decoder):
2609         (Decoder::setEncodingName):
2610         (Decoder::decode):
2611         Use StreamingTextDecoder::create().
2612
2613         * platform/StreamingTextDecoder.cpp:
2614         (WebCore::StreamingTextDecoder::create):
2615         (WebCore::StreamingTextDecoder::~StreamingTextDecoder):
2616         * platform/StreamingTextDecoder.h:
2617         StreamingTextDecoder is just an abstract interface to implementations now.
2618
2619         * platform/StreamingTextDecoderICU.cpp: Added.
2620         (WebCore::StreamingTextDecoderICU::StreamingTextDecoderICU):
2621         (WebCore::StreamingTextDecoderICU::~StreamingTextDecoderICU):
2622         (WebCore::StreamingTextDecoderICU::releaseICUConverter):
2623         (WebCore::StreamingTextDecoderICU::textEncodingSupported):
2624         (WebCore::StreamingTextDecoderICU::convertUTF16):
2625         (WebCore::StreamingTextDecoderICU::convertIfASCII):
2626         (WebCore::StreamingTextDecoderICU::createICUConverter):
2627         (WebCore::StreamingTextDecoderICU::appendOmittingBOM):
2628         (WebCore::StreamingTextDecoderICU::convertUsingICU):
2629         (WebCore::StreamingTextDecoderICU::convert):
2630         (WebCore::StreamingTextDecoderICU::toUnicode):
2631         (WebCore::StreamingTextDecoderICU::fromUnicode):
2632         * platform/StreamingTextDecoderICU.h: Added.
2633         Renamed from StreamingTextDecoder; added a way to tell whether the encoding is actually
2634         supported by the decoder; minor cleanup.
2635
2636         * platform/TextEncoding.cpp:
2637         (WebCore::TextEncoding::effectiveEncoding): Moved from StreamingTextDecoder.
2638         (WebCore::TextEncoding::toUnicode): Use StreamingTextDecoder::create().
2639         (WebCore::TextEncoding::fromUnicode): Moved to StreamingTextDecoderICU.
2640         
2641         * platform/TextEncoding.h: Changed __APPLE__ to PLATFORM(MAC); added effectiveEncoding().
2642
2643         * platform/mac/StreamingTextDecoderMac.cpp: Added.
2644         (WebCore::StreamingTextDecoderMac::StreamingTextDecoderMac):
2645         (WebCore::StreamingTextDecoderMac::~StreamingTextDecoderMac):
2646         (WebCore::StreamingTextDecoderMac::releaseTECConverter):
2647         (WebCore::StreamingTextDecoderMac::textEncodingSupported):
2648         (WebCore::StreamingTextDecoderMac::convertUTF16):
2649         (WebCore::StreamingTextDecoderMac::convertIfASCII):
2650         (WebCore::StreamingTextDecoderMac::createTECConverter):
2651         (WebCore::StreamingTextDecoderMac::appendOmittingBOM):
2652         (WebCore::StreamingTextDecoderMac::convertOneChunkUsingTEC):
2653         (WebCore::StreamingTextDecoderMac::convertUsingTEC):
2654         (WebCore::StreamingTextDecoderMac::convert):
2655         (WebCore::StreamingTextDecoderMac::toUnicode):
2656         (WebCore::StreamingTextDecoderMac::fromUnicode):
2657         * platform/mac/StreamingTextDecoderMac.h: Added.
2658         (WebCore::StreamingTextDecoderMac::convert):
2659         This is a TEC+CFString code path for decoding, basically restored from a year-old revision.
2660
2661         * platform/mac/TextEncodingMac.cpp: Removed. Code moved to StreamingTextDecoderMac.
2662
2663         * WebCore.xcodeproj/project.pbxproj:
2664
2665 === Safari-521.17 ===
2666
2667 2006-07-14  Timothy Hatcher  <timothy@apple.com>
2668
2669         <rdar://problem/4623957> SWB: gcc-5412 (new?) objc warning causes WebCore project failure
2670
2671         Made a DOMNode category in DOMEvents.h that lets DOMNode conform to the
2672         DOMEventTarget protocol that works with GCC 5412.
2673
2674         Removed forward declarations of WebCoreWidgetHolder and imported WebCoreWidgetHolder.h.
2675
2676         Removed all <Cocoa/Cocoa.h> and <Foundation/Foundation.h> imports in other headers,
2677         we import <Cocoa/Cocoa.h> in the prefix header for ObjC.
2678
2679         * WebCore.xcodeproj/project.pbxproj:
2680         * bindings/objc/DOMCore.h:
2681         * bindings/objc/DOMEvents.h:
2682         * bridge/mac/FormDataMac.h:
2683         * bridge/mac/WebCoreAXObject.h:
2684         * bridge/mac/WebCoreCache.h:
2685         * bridge/mac/WebCoreEncodings.h:
2686         * bridge/mac/WebCoreFrameBridge.h:
2687         * bridge/mac/WebCoreFrameNamespaces.h:
2688         * bridge/mac/WebCoreJavaScript.h:
2689         * bridge/mac/WebCorePageBridge.h:
2690         * bridge/mac/WebCorePageState.h:
2691         * bridge/mac/WebCoreResourceLoader.h:
2692         * bridge/mac/WebCoreScriptDebugger.h:
2693         * bridge/mac/WebCoreSettings.h:
2694         * bridge/mac/WebCoreStringTruncator.h:
2695         * bridge/mac/WebCoreStringTruncator.mm:
2696         * bridge/mac/WebCoreTextDecoder.h:
2697         * bridge/mac/WebDashboardRegion.h:
2698         * kcanvas/device/quartz/KRenderingDeviceQuartz.mm:
2699         * platform/mac/CookieJar.mm:
2700         * platform/mac/DeprecatedStringMac.mm:
2701         * platform/mac/FontDataMac.mm:
2702         * platform/mac/FoundationExtras.h:
2703         * platform/mac/TextBoundaries.mm:
2704         * platform/mac/WebCoreHistory.h:
2705         * platform/mac/WebCoreHistory.m:
2706         * platform/mac/WebCoreKeyGenerator.h:
2707         * platform/mac/WebCoreTextArea.h:
2708         * platform/mac/WebCoreTextField.h:
2709         * platform/mac/WebCoreTextRenderer.h:
2710         * platform/mac/WebCoreView.h:
2711         * platform/mac/WebCoreWidgetHolder.h:
2712
2713 2006-07-14  Geoffrey Garen  <ggaren@apple.com>
2714
2715         Reviewed by Maciej.
2716
2717         - Updated ScriptInterpreter to work with Interpreter ref-counting in 
2718         JavaScriptCore.
2719
2720         (KJS::ScriptInterpreter::~ScriptInterpreter): Now protected to catch
2721         manual delete.
2722
2723 2006-07-14  Anders Carlsson  <acarlsson@apple.com>
2724
2725         Reviewed by Adele and Justin.
2726
2727         http://bugzilla.opendarwin.org/show_bug.cgi?id=9658
2728         <rdar://problem/4613948>
2729         REGRESSION: Check Spelling does not work in textarea elements
2730         
2731         * bridge/mac/FrameMac.mm:
2732         (WebCore::FrameMac::advanceToNextMisspelling):
2733         Don't use setStartBefore or setEndAfter on the search range because for shadow trees, there
2734         is no notion of before and after. Instead, use setStart and setEnd and pass in the start and end
2735         indices respectively.
2736         
2737         * dom/Range.cpp:
2738         (WebCore::Range::checkNodeBA):
2739         Allow range operations on shadow trees.
2740
2741         * manual-tests/form-element-spelling.html: Added.
2742
2743 2006-07-14  Beth Dakin  <bdakin@apple.com>
2744
2745         Reviewed by Hyatt.
2746
2747         Fix for <rdar://problem/4621660> REGRESSION: Safari crashing in 
2748         WebCore::FrameView::updateOverflowStatus
2749
2750         m_viewportRenderer is never initialized for framesets, and it 
2751         shouldn't be. So we just need to nil-check for it in 
2752         updateOverflowStatus() and return early.
2753
2754         * page/FrameView.cpp:
2755         (WebCore::FrameView::updateOverflowStatus): Nil check.
2756
2757 2006-07-14  Adele Peterson  <adele@apple.com>
2758
2759         RS by Darin.
2760
2761         Backing out fix for <rdar://problem/4604703> 
2762         REGRESSION (NativeTextField): Focus is not removed from password field after I ctrl-click into a different field
2763
2764         Darin had a better fix in WebKit for this.
2765
2766         * bridge/mac/FrameMac.mm: (WebCore::FrameMac::sendContextMenuEvent):
2767
2768 2006-07-14  Adele Peterson  <adele@apple.com>
2769
2770         Reviewed by Darin.
2771
2772         - Fix for <rdar://problem/4614054> REGRESSION: Safari submits forms when the Return key is hit to complete inline inputs
2773
2774         * page/Frame.h: (WebCore::Frame::inputManagerHasMarkedText): Added.
2775         * bridge/mac/FrameMac.h: ditto.
2776         * bridge/mac/FrameMac.mm: (WebCore::FrameMac::inputManagerHasMarkedText): Added. Asks the input manager if there's marked text.
2777         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler): For text fields, don't submit the form on Enter
2778         if the input manager says there's marked text.  I added this code for all text field paths.  For widgets, WebCoreTextField.mm
2779         has code to deal with this case.  But as we convert search, password, and isindex, they will need to do this check too.
2780
2781 2006-07-14  Mitz Pettel  <opendarwin.org@mitzpettel.com>
2782
2783         Reviewed by Darin.
2784
2785         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9907
2786           REGRESSION (r15418): editing/pasteboard/paste-table-001 fails in pixel  mode
2787
2788         * rendering/RenderText.cpp:
2789         (WebCore::RenderText::caretRect): Fixed the calculation of the max/min allowed caret
2790         position.
2791
2792 2006-07-14  Mitz Pettel  <opendarwin.org@mitzpettel.com>
2793
2794         Reviewed by Darin.
2795
2796         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9905
2797           REGRESSION (r15404-r15415): Repro crash when pressing delete in an empty editable div
2798
2799         Test: editing/deleting/delete-at-start-or-end.html
2800
2801         * editing/TypingCommand.cpp:
2802         (WebCore::TypingCommand::deleteKeyPressed): Added null check.
2803         (WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.
2804
2805 2006-07-14  David Kilzer  <ddkilzer@kilzer.net>
2806
2807         Reviewed by Geoffrey.
2808
2809         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9903
2810           Simplify logic in JSHTMLOptionsCollection::setLength() by using no-arg getNumber()
2811
2812         No test cases since there is no change in functionality.
2813
2814         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
2815         (WebCore::JSHTMLOptionsCollection::setLength):  Simplified logic by using the
2816         no-argument getNumber() method.
2817
2818 2006-07-14  Geoffrey Garen  <ggaren@apple.com>
2819
2820         Reviewed by Adele.
2821
2822         - Build fix: don't need BLOCK_OBJC_EXCEPTIONS because we already have
2823         one surrounding this function, and the nested one makes the compiler
2824         think our local variable is volatile (seems like a compiler bug to me).
2825         
2826         * bridge/mac/FrameMac.mm:
2827         (WebCore::FrameMac::sendContextMenuEvent):
2828
2829 2006-07-14  Timothy Hatcher  <timothy@apple.com>
2830
2831         Reviewed by Maciej.
2832
2833         Make JavaScriptCore a public framework. Adjusted the paths.
2834
2835         * WebCore.xcodeproj/project.pbxproj:
2836
2837 2006-07-14  Maciej Stachowiak  <mjs@apple.com>
2838
2839         Reviewed by Hyatt.
2840
2841         - fixed <rdar://problem/4567031> REGRESSION: Crash at WebCore::RenderBlock::createLineBoxes (seems to be a security hole?)
2842         
2843         I also fixed all the similar crash / assertion failure cases I could think of.
2844
2845         * dom/Node.cpp:
2846         (WebCore::Node::nextRendererWithSameParent): Helper function for some of the above.
2847         * dom/Node.h:
2848         * rendering/RenderTable.cpp:
2849         (WebCore::RenderTable::addChild): Don't allow inserting forms when not in
2850         an HTML document, since we don't need that quirk and because parsing won't
2851         do certain render tree fixups. Also watch out for case when inserting before
2852         the renderer of a misnested child.
2853         * rendering/RenderTableRow.cpp:
2854         (WebCore::RenderTableRow::addChild): ditto
2855         * rendering/RenderTableSection.cpp:
2856         (WebCore::RenderTableSection::addChild): ditto
2857
2858 2006-07-13  Adele Peterson  <adele@apple.com>
2859
2860         Reviewed by Maciej.
2861
2862         - Fix for <rdar://problem/4604703> 
2863         REGRESSION (NativeTextField): Focus is not removed from password field after I ctrl-click into a different field
2864
2865         Test:
2866         * manual-tests/password-ctrl-click-lose-focus.html: Added.
2867
2868         * bridge/mac/FrameMac.mm: (WebCore::FrameMac::sendContextMenuEvent):
2869         If we're about to set a selection in the current view, make sure its the first responder.
2870         In this case, this will cause the password field to resign first responder at the right time.
2871
2872 2006-07-13  Mitz Pettel  <opendarwin.org@mitzpettel.com>
2873
2874         Reviewed by Hyatt.
2875
2876         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9670
2877           REGRESSION: RTL white-space:pre-wrap text is offset to the right
2878
2879         Test: fast/text/international/rtl-white-space-pre-wrap.html
2880
2881         * rendering/RenderText.cpp:
2882         (WebCore::RenderText::caretRect): Fixed LTR case and added the RTL case
2883         of clipping the caret position to the text box when the caret is after
2884         the trailing space of an autowrapped line.
2885         * rendering/bidi.cpp:
2886         (WebCore::RenderBlock::computeHorizontalPositionsForLine): Changed to truncate-
2887         to-fit the logically last text box if it contains the trailing spaces of an
2888         autowrapped line. 
2889         (WebCore::RenderBlock::bidiReorderLine): Remember the logically last text run.
2890         In the case of autowrapped text with white space that overflows beyond the line,
2891         the last text run is the one containing the overflowing white space.
2892         (WebCore::RenderBlock::findNextLineBreak): Split overflowing white space on a
2893         line that autowraps only after white space into a separate text run.
2894
2895 2006-07-13  David Harrison  <harrison@apple.com>
2896
2897         Reviewed by Dave Hyatt.
2898
2899         <rdar://problem/4624203> -webkit-highlight should be behind images
2900
2901         * rendering/RenderImage.cpp:
2902         (WebCore::RenderImage::paint):
2903         * rendering/RenderListMarker.cpp:
2904         (WebCore::RenderListMarker::paint):
2905         * rendering/RenderWidget.cpp:
2906         (WebCore::RenderWidget::paint):
2907         Call custom highlighter before painting the image, marker, or widget.
2908
2909 2006-07-13  David Harrison  <harrison@apple.com>
2910
2911         Reviewed by Justin and Levi.
2912
2913         <rdar://problem/4620743> REGRESSION: Option-Delete doesn't delete words during typing
2914
2915         * Tests:
2916         editing/deleting/delete-by-word-001.html
2917         editing/deleting/delete-by-word-002.html
2918
2919         * editing/TypingCommand.cpp:
2920         (WebCore::TypingCommand::deleteKeyPressed):
2921         (WebCore::TypingCommand::forwardDeleteKeyPressed):
2922         (WebCore::TypingCommand::doApply):
2923         * editing/TypingCommand.h:
2924         Delete and forward delete to use specified granularity.
2925         Undo of delete and forward delete to select what had been deleted (non-char granularity only).
2926         
2927         * page/Frame.cpp:
2928         (WebCore::Frame::setSelection):
2929         Close typing and end style even if selection is not changing.
2930         * page/Frame.h:
2931         Remove unused setSelection parameter keepTypingStyle.
2932
2933 2006-07-12  Levi Weintraub  <lweintraub@apple.com>
2934
2935         Reviewed by justin
2936
2937         <rdar://problem/4622763> Deleting from beginning of paragraph following a table deletes rather than selects the table
2938
2939         * editing/DeleteSelectionCommand.cpp:
2940         (WebCore::DeleteSelectionCommand::initializeStartEnd): Added selection expansion for HRs.
2941         (WebCore::DeleteSelectionCommand::initializePositionData): Now uses enclosingBlockFlowOrTableElement
2942         instead of enclosingBlockFlowElement.
2943         (WebCore::DeleteSelectionCommand::removeNode): Use to identify that we need a placeholder
2944         when the start or end block is removed.
2945         (WebCore::DeleteSelectionCommand::handleGeneralDelete): Added check for canHaveChildrenForEditing
2946         to keep things like HRs from being given children.
2947         (WebCore::DeleteSelectionCommand::doApply): Switched to use member variable for needPlaceholder.
2948         * editing/DeleteSelectionCommand.h: Made needPlaceholder a member variable.
2949         * editing/TypingCommand.cpp:
2950         (WebCore::TypingCommand::deleteKeyPressed): Fixed selection bug for tables and open typing commands.
2951         (WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.
2952         * editing/htmlediting.cpp:
2953         (WebCore::editingIgnoresContent): Added check for HRs, since it's not considered a widget.
2954         * editing/visible_units.cpp:
2955         (WebCore::startOfParagraph): Fix for HRs and tables.
2956         (WebCore::endOfParagraph): Ditto.
2957
2958 2006-07-13  Alexey Proskuryakov  <ap@nypop.com>
2959
2960         Reviewed by Darin.
2961
2962         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9880
2963           Memory leaks running DOM-Hanoi
2964
2965         No change in behavior, thus no test included.
2966
2967         * bridge/mac/FrameMac.mm:
2968         (WebCore::FrameMac::setStatusBarText): Use a local autorelease pool to release the temporaries - 
2969         the test runs non-stop, and the enclosing pool doesn't get a chance to be drained.
2970
2971 2006-07-12  Mitz Pettel  <opendarwin.org@mitzpettel.com>
2972
2973         Reviewed by Adele.
2974
2975         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9862
2976           REGRESSION: GMail: Crash in RenderView::repaintViewRectangle when spoofing as FF
2977         - see also <rdar://problem/4622407>
2978
2979         Test: fast/frames/repaint-display-none-crash.html
2980
2981         * rendering/RenderView.cpp:
2982         (WebCore::RenderView::repaintViewRectangle): Added null checking of the owner element's
2983         renderer, which can be null if the iframe is set to display:none.
2984
2985 2006-07-12  Justin Garcia  <justin.garcia@apple.com>
2986
2987         Reviewed by levi
2988         
2989         <rdar://problem/4509393>
2990         selected DOM range starts with <object>, 0 offset but selection should include the <object>
2991
2992         * editing/ReplaceSelectionCommand.cpp:
2993         (WebCore::ReplaceSelectionCommand::shouldMergeStart): 
2994         Don't pull content out of a table cell.
2995         * editing/htmlediting.cpp:
2996         (WebCore::editingIgnoresContent): Added <select> nodes.
2997         (WebCore::rangeCompliantEquivalent): Convert [node, 0] positions to positionBeforeNode(node)
2998         for more types of nodes.
2999         * rendering/RenderContainer.cpp:
3000         (WebCore::RenderContainer::positionForCoordinates): 
3001         Fix a crasher when right clicking on an anonymous table.
3002
3003 2006-07-12  John Sullivan  <sullivan@apple.com>
3004
3005         Reviewed by Brady Eidson
3006         
3007         - fixed <rdar://problem/4611164> REGRESSION: Crash occurs when undoing a series of 
3008         misspelled words (WebCore::RenderObject::repaint(bool)
3009
3010         * dom/Document.cpp:
3011         (WebCore::Document::removeMarkers):
3012         put (it - markers.begin()) in a local variable before altering markers, in every case where this was
3013         happening. One of the cases like this was fixed a while back, but other cases were
3014         either missed at that time or crept in since. 
3015
3016 2006-07-13  Anders Carlsson  <acarlsson@apple.com>
3017
3018         Reviewed by Justin.
3019
3020         http://bugzilla.opendarwin.org/show_bug.cgi?id=9663
3021         REGRESSION (r14948-r14956): Selection in text field remains highlighted when the text field loses focus
3022         
3023         * dom/Document.cpp:
3024         (WebCore::Document::updateSelection):
3025         Don't return early if the selection is empty.
3026
3027 2006-07-12  Anders Carlsson  <acarlsson@apple.com>
3028
3029         Reviewed by Adele.
3030
3031         <rdar://problem/4614656> REGRESSION: onpaste() handlers don't run for textarea elements
3032         
3033         * bridge/mac/FrameMac.mm:
3034         (WebCore::FrameMac::dispatchCPPEvent):
3035         If the element is a shadow node, dispatch the event to its real parent.
3036
3037         * manual-tests/textarea-onpaste.html: Added.
3038
3039 2006-07-12  Beth Dakin  <bdakin@apple.com>
3040
3041         Reviewed by Anders.
3042
3043         Fix for layout test regressions after my check-in last night. Just 
3044         a silly mistake where I should have asked if we were NOT printing 
3045         instead of if we were in the listbox code.
3046
3047         * WebCore.xcodeproj/project.pbxproj: Project file wars. Back to 
3048         XCode 2.3
3049         * platform/mac/ListBoxMac.mm:
3050         (itemTextRenderer): Inverted check.
3051         (groupLabelTextRenderer): Inverted check.
3052
3053 2006-07-12  Darin Adler  <darin@apple.com>
3054
3055         Reviewed by Maciej.
3056
3057         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9806
3058           <rdar://problem/4622622>
3059           REGRESSION: Large rowspan causes WebKit to call abort()
3060
3061         Test: fast/table/large-rowspan-crash.html
3062
3063         * rendering/RenderTableSection.cpp:
3064         (WebCore::RenderTableSection::ensureRows):
3065         Use sizeof(RowStruct) instead of sizeof(int).
3066         Clearly we'll need something better to solve this completely.
3067         I expect another smaller, but still huge, value will still cause a problem.
3068
3069 2006-07-12  Anders Carlsson  <acarlsson@apple.com>
3070
3071         Reviewed by Maciej.
3072
3073         <rdar://problem/4586665> REGRESSION: autorestore.apple.com: Crashes Safari in WebCore::Widget::client() const
3074
3075         * bridge/mac/FrameMac.h:
3076         Add focusCallResultedInViewBeingCreated argument. 
3077         
3078         * bridge/mac/FrameMac.mm:
3079         (WebCore::FrameMac::nextKeyViewInFrame):
3080         If the call to focus() caused the node to get a native widget, set focusCallResultedInViewBeingCreated to true.
3081         
3082         (WebCore::FrameMac::nextKeyViewInFrameHierarchy):
3083         Don't reset the focus node if focusCallResultedInViewBeingCreated is true. Also, add magic to prevent setting
3084         a text field as the first responder if its field editor already is the current first responder.
3085         
3086         * page/FrameView.cpp:
3087         (WebCore::FrameView::handleMousePressEvent):
3088         In some cases, get the event target node again after dispatching the mouse event.
3089
3090 2006-07-12  Beth Dakin  <bdakin@apple.com>
3091
3092         Reviewed by Adele.
3093
3094         Fix for <rdar://problem/4615765> Input[type='search' fields 
3095         initially render too large in Widgets
3096
3097         Fundamentally, the problem here is that we were miscalculating 
3098         things because [NSGraphicsContext currentContextDrawingToScreen] 
3099         was evaluating to false when widgets first load. We only ever used 
3100         this check, however, to determine if we were printing or not, so it 
3101         should not have evaluated to false for loading in Dashbaord. 
3102         Instead, if we query the RenderView about whether or not we are 
3103         printing, we will get the right answer.
3104
3105         No test case added since this appears only to affect Dashboard.
3106
3107         * bridge/mac/WebCoreFrameBridge.mm:
3108         (-[WebCoreFrameBridge drawRect:]): Ask the RenderView if we are 
3109         printing instead. This is not part of the actual bug fix, but it 
3110         seems wise to get rid of all calls to [NSGraphicsContext 
3111         currentContextDrawingToScreen] when we are just trying to determine 
3112         if we are printing or not.
3113         * platform/mac/ListBoxMac.mm:
3114         (itemTextRenderer):This function now takes a boolean, isPrinting.
3115         (groupLabelTextRenderer): Same as above.
3116         (ListBox::sizeForNumberOfLines): Ask the RenderView if we are 
3117         printing.
3118         (-[WebCoreTableView drawRow:clipRect:]): Same as above.
3119         * platform/mac/PopUpButtonMac.mm:
3120         (PopUpButton::sizeHint): Same as above.
3121         * platform/mac/TextFieldMac.mm:
3122         (-[NSSearchFieldCell _addStringToRecentSearches:]):
3123         * rendering/RenderLineEdit.cpp: Same as above.
3124
3125 2006-07-12  Adele Peterson  <adele@apple.com>
3126
3127         Reviewed by Maciej.
3128
3129         Fix for: http://bugzilla.opendarwin.org/show_bug.cgi?id=9813
3130         OPTION text can paint over select element's scrollbar
3131
3132         Test: fast/forms/option-text-clip.html
3133
3134         * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::paintObject):
3135         When calculating the clip to apply to the button text, also consider padding.
3136         In the future, we may have separate renderers for the text part, and the arrow part
3137         of the control, and then the separation should be natural.  For now, we use padding.
3138
3139 2006-07-11  David Kilzer  <ddkilzer@kilzer.net>
3140
3141         Windows build fix.  Reviewed by NOBODY.
3142
3143         * WebCore.vcproj/WebCore/WebCore.vcproj:  Added JSHTMLOptionsCollection.cpp/h
3144         and JSHTMLOptionsCollectionCuston.cpp.  VC++ Express realphabetized the file list.
3145
3146 2006-07-11  Darin Adler  <darin@apple.com>
3147
3148         Reviewed by Adele.
3149
3150         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9809
3151           <rdar://problem/4619515>
3152           focus ring fails to appear on select element after choosing item from popup
3153
3154         - includes http://bugzilla.opendarwin.org/show_bug.cgi?id=9853
3155           improvements to select element, including some storage leak fixes
3156
3157         * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::index): Use a const
3158         reference for the list items, so we don't have to copy a vector.
3159         * html/HTMLSelectElement.cpp:
3160         (WebCore::HTMLSelectElement::selectedIndex): Ditto.
3161         (WebCore::HTMLSelectElement::setSelectedIndex): Ditto.
3162         (WebCore::HTMLSelectElement::length): Ditto.
3163         (WebCore::HTMLSelectElement::remove): Ditto.
3164         (WebCore::HTMLSelectElement::value): Ditto.
3165         (WebCore::HTMLSelectElement::setValue): Ditto.
3166         (WebCore::HTMLSelectElement::stateValue): Ditto.
3167         (WebCore::HTMLSelectElement::restoreState): Ditto.
3168         (WebCore::HTMLSelectElement::appendFormData): Ditto.
3169         (WebCore::HTMLSelectElement::optionToListIndex): Ditto.
3170         (WebCore::HTMLSelectElement::listToOptionIndex): Ditto.
3171         (WebCore::HTMLSelectElement::recalcListItems): Made const, with the appropriate
3172         fields mutable.
3173         (WebCore::HTMLSelectElement::reset): Use a const reference for
3174         the list items, so we don't have to copy the vector. Remove the call to
3175         setSelectionChanged for the RenderMenuList case.
3176         (WebCore::HTMLSelectElement::notifyOptionSelected): Ditto, on both counts.
3177         (WebCore::HTMLSelectElement::defaultEventHandler): Call focus() before showing
3178         the pop-up.
3179         * html/HTMLSelectElement.h: The RenderMenuList class is no longer a friend.
3180         Changed the listItems function to return a const reference to the vector so
3181         it no longer copies the vector. Removed the const_cast to the call to
3182         recalcListItems and changed it to a const member function. Made m_recalcListItems
3183         mutable.
3184         * rendering/DeprecatedRenderSelect.cpp:
3185         (WebCore::DeprecatedRenderSelect::updateFromElement): Removed an unnecessary call
3186         to recalcListItems, which is called automatically. Use a const reference for the
3187         list items so we don't have to copy a vector.
3188         (WebCore::DeprecatedRenderSelect::layout): Ditto.
3189         (WebCore::DeprecatedRenderSelect::selectionChanged): Ditto.
3190         (WebCore::DeprecatedRenderSelect::updateSelection): Ditto.
3191         * rendering/RenderMenuList.cpp:
3192         (WebCore::RenderMenuList::RenderMenuList): Updated for renamed data members.
3193         (WebCore::RenderMenuList::createInnerBlock): Ditto.
3194         (WebCore::RenderMenuList::addChild): Ditto.
3195         (WebCore::RenderMenuList::removeChild): Ditto.
3196         (WebCore::RenderMenuList::setStyle): Ditto. Also removed code to set the style
3197         on the pop-up menu, because it's created with the correct style and destroyed
3198         before it a style change could occur.
3199         (WebCore::RenderMenuList::updateFromElement): Rearranged code to compute the
3200         maximum width in a simpler fashion, and to not bother trying to maintain
3201         the "selected" flags on the elements, since the HTMLSelectElement class
3202         takes care of that. Store the width as an int. Call setText to set the text
3203         based on the selected element's option text.
3204         (WebCore::RenderMenuList::paintObject): Don't check m_inner when setting
3205         up the clip -- always set up the clip.
3206         (WebCore::RenderMenuList::calcMinMaxWidth): Use m_optionsWidth directly
3207         instead of calling ceilf on m_longestWidth.
3208         (WebCore::RenderMenuList::showPopup): Don't use m_popupMenu to store the
3209         menu -- instead keep the pointer in a local variable. Get the selected
3210         index from the HTMLSelectElement.
3211         (WebCore::RenderMenuList::valueChanged): Call HTMLSelectElement::setSelectedIndex
3212         to do most of the work.
3213         * rendering/RenderMenuList.h: Renamed m_inner to m_innerBlock. Removed
3214         m_popupMenu, m_size, m_selectionChanged, and m_selectedIndex. Renamed
3215         m_longestWidth to m_optionsWidth and changed it to be an int. Removed
3216         unneeded override of removeLeftoverAnonymousBoxes function. Removed
3217         unneeded selectionChanged, setSelectionChanged, updateSelection, and
3218         hasPopupMenu functions. Removed extra includes.
3219         * rendering/RenderPopupMenu.cpp: (WebCore::RenderPopupMenu::populate):
3220         Change to iterate the list items instead of iterating all children
3221         of the select node.
3222         * rendering/RenderPopupMenu.h: Renamed getRenderMenuList to menuList.
3223         * rendering/RenderPopupMenuMac.mm:
3224         (WebCore::RenderPopupMenuMac::populate): Moved code to clear and create
3225         the pop-up here from the caller. Removed an extra retain that would cause
3226         the NSPopUpButtonCell to leak.
3227         (WebCore::RenderPopupMenuMac::showPopup): Removed unnecessary code to
3228         create the pop-up, which is now in populate, and also the call to the
3229         clear function, for the same reason. Reorganized code to make it a bit
3230         more readable. Removed an unnecessary if to check if frame is nil.
3231         Used a RefPtr to make sure we don't make a call on a frame after it's
3232         deleted. As part of the reorganization fixed a problem where we'd retain
3233         the event and then return early without releasing it in one case.
3234         (WebCore::RenderPopupMenuMac::addSeparator): Tweaked a little.
3235         (WebCore::RenderPopupMenuMac::addGroupLabel): Grouped all the code to
3236         manage the NSMenu at the bottom of the function.
3237         (WebCore::RenderPopupMenuMac::addOption): Ditto.
3238
3239 2006-07-11  Justin Garcia  <justin.garcia@apple.com>
3240
3241         Reviewed by levi
3242         
3243         <rdar://problem/4620686>
3244         REGRESSION: Mispelling markers are still displayed when using the delete key to place caret into a misspelled word
3245
3246         * bridge/mac/FrameMac.mm:
3247         (WebCore::FrameMac::respondToChangedSelection): Remove markers from newAdjacentWords 
3248         even if oldAdjacentWords is equal to newAdjacentWords.  This happens during a deletion.
3249         
3250
3251 2006-07-11  Tim Omernick  <timo@apple.com>
3252
3253         Reviewed by NOBODY (build fix)
3254
3255         * bindings/objc/DOMPrivate.h:
3256         Don't @class NPObject; that breaks files that actually #import <JavaScriptCore/npruntime.h>, since the NPObject
3257         there is of a different type.
3258         Also clarified a highly misleading comment from my last commit.  I meant to clarify the comment
3259         before landing.
3260
3261 2006-07-12  Anders Carlsson  <acarlsson@apple.com>
3262
3263         Reviewed by Geoff.
3264
3265         http://bugzilla.opendarwin.org/show_bug.cgi?id=9635
3266         REGRESSION: Crash when adding to cart at <http://www.yemeksepeti.com/>
3267         
3268         * html/HTMLTokenizer.cpp:
3269         (WebCore::HTMLTokenizer::scriptHandler):
3270         Don't load external scripts if the parser is stopped.
3271         
3272         * manual-tests/open-close-tokenizer-crash.html: Added.
3273         * manual-tests/resources/empty-file.js: Added.
3274         * manual-tests/resources/open-close-tokenizer-crash.html: Added.
3275         Add manual test.
3276
3277 2006-07-11  John Sullivan  <sullivan@apple.com>
3278
3279         Reviewed by Kevin, Timo O, Brady, Darin, and Hyatt (whee!)
3280
3281         - added support for creating a selection image with white text
3282
3283         * rendering/RenderObject.h:
3284         (WebCore::):
3285         add PaintRestriction enum
3286         (WebCore::RenderObject::PaintInfo::PaintInfo):
3287         add forceWhiteText boolean to PaintInfo struct
3288
3289         * page/FramePrivate.h:
3290         (WebCore::FramePrivate::FramePrivate):
3291         replaced m_selectionOnly bool with m_paintRestriction, which also handles forcing the
3292         text to white
3293
3294         * page/Frame.cpp:
3295         (WebCore::Frame::paint):
3296         updated to use & pass m_paintRestriction where it used to use & pass just m_selectionOnly
3297
3298         * bridge/mac/FrameMac.h:
3299         * bridge/mac/FrameMac.mm:
3300         (WebCore::FrameMac::selectionImage):
3301         now takes forceWhiteText parameter, stored in FramePrivate as part of PaintRestriction
3302
3303         * bridge/mac/WebCoreFrameBridge.h:
3304         * bridge/mac/WebCoreFrameBridge.mm:
3305         (-[WebCoreFrameBridge selectionImageForcingWhiteText:]):
3306         renamed from selectionImage, now takes forceWhiteText parameter, which is passed
3307         down into Frame
3308
3309         * rendering/RenderLayer.h:
3310         * rendering/RenderLayer.cpp:
3311         (WebCore::RenderLayer::paint):
3312         use a PaintRestriction value where we used to use a selectionOnly bool
3313         (WebCore::RenderLayer::paintLayer):
3314         ditto; also stores forceWhiteText in PaintInfo struct
3315
3316         * kcanvas/KCanvasResources.cpp:
3317         (WebCore::KCanvasMarker::draw):
3318         updated for changed signature of PaintInfo constructor
3319
3320         * ksvg2/svg/SVGMaskElement.cpp:
3321         (WebCore::SVGMaskElement::drawMaskerContent):
3322         ditto
3323
3324         * ksvg2/svg/SVGPatternElement.cpp:
3325         (WebCore::SVGPatternElement::drawPatternContentIntoTile):
3326         ditto
3327
3328         * rendering/InlineTextBox.cpp:
3329         (WebCore::InlineTextBox::paint):
3330         paint with white text color if forceWhiteText is set in PaintInfo struct
3331
3332 2006-07-11  Tim Omernick  <timo@apple.com>
3333
3334         Reviewed by Anders.
3335
3336         <http://bugzilla.opendarwin.org/show_bug.cgi?id=9843>:
3337         Give Netscape plug-ins access to their own DOM element
3338
3339         * html/HTMLPlugInElement.h:
3340         Just import JSC headers on Mac.  The NPObject and Bindings::Instance stuff is only used on Mac anyway.
3341         Changed __APPLE__ to PLATFORM(MAC).
3342         Added m_NPObject ivar.
3343         * html/HTMLPlugInElement.cpp:
3344         (WebCore::HTMLPlugInElement::HTMLPlugInElement):
3345         Initialize the NPObject.
3346         (WebCore::HTMLPlugInElement::~HTMLPlugInElement):
3347         Release the NPObject when the element is destroyed.
3348         (WebCore::HTMLPlugInElement::createNPObject):
3349         Creates an NPObject for the element.
3350         (WebCore::HTMLPlugInElement::getNPObject):
3351         Returns the NPObject for the element, creating and caching it if necessary.
3352
3353         * html/HTMLAppletElement.h:
3354         Changed __APPLE__ to PLATFORM(MAC).
3355         * html/HTMLAppletElement.cpp:
3356         ditto
3357         * html/HTMLEmbedElement.h:
3358         ditto
3359         * html/HTMLEmbedElement.cpp:
3360         ditto
3361         * html/HTMLObjectElement.h:
3362         ditto
3363         * html/HTMLObjectElement.cpp:
3364         ditto
3365
3366         * bindings/objc/DOMPrivate.h:
3367         Added -[DOMElement _NPObject].
3368
3369         * bindings/objc/DOM.mm:
3370         (-[DOMElement _NPObject]):
3371         Returns the NPObject for the element.  Since this is only needed by the Netscape plug-in API, you can only get 
3372         the NPObject for applet, embed, and object elements.
3373         
3374 2006-07-11  Adele Peterson  <adele@apple.com>
3375
3376         Reviewed by Hyatt.
3377
3378         - Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=9861
3379         REGRESSION: Can't dynamically change list box to popup
3380         
3381         and updated fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=9859
3382         REGRESSION: Can't dynamically change popup to list box
3383
3384         The original fix for 9859 was in the renderer, and I think we can catch the change
3385         earlier in the element to detach and reattach.
3386
3387         I also did some cleanup to remove the PopupButton code path from DeprecatedRenderSelect
3388
3389         Test: fast/forms/select-change-listbox-to-popup.html
3390
3391         * html/HTMLSelectElement.cpp:
3392         (WebCore::HTMLSelectElement::parseMappedAttribute): If the new attribute value is going to require us to change from listbox to popup or vice versa,
3393         and we're already attached, then detach and reattach to create the correct renderer.  If we're not attached, then we'll create the correct renderer
3394         when we attach.
3395         (WebCore::HTMLSelectElement::recalcStyle): Updated shouldUseMenuList since it no longer takes a RenderStyle.
3396         (WebCore::HTMLSelectElement::isKeyboardFocusable): ditto.
3397         (WebCore::HTMLSelectElement::isMouseFocusable): ditto.
3398         (WebCore::HTMLSelectElement::createRenderer): ditto.
3399         (WebCore::HTMLSelectElement::setRecalcListItems): ditto.
3400         (WebCore::HTMLSelectElement::reset): ditto.
3401         (WebCore::HTMLSelectElement::notifyOptionSelected): ditto.
3402         (WebCore::HTMLSelectElement::defaultEventHandler): ditto.
3403
3404         * html/HTMLSelectElement.h: (WebCore::HTMLSelectElement::shouldUseMenuList):
3405         This method no longer takes a RenderStyle.  That was leftover from when we used to use the appearance
3406         to determine whether or not to use the new menu list implementation.
3407
3408         * rendering/DeprecatedRenderSelect.h: Removed PopupButton code path.
3409         * rendering/DeprecatedRenderSelect.cpp:
3410         (WebCore::DeprecatedRenderSelect::DeprecatedRenderSelect):
3411         (WebCore::DeprecatedRenderSelect::setWidgetWritingDirection):
3412         (WebCore::DeprecatedRenderSelect::updateFromElement):
3413         (WebCore::DeprecatedRenderSelect::baselinePosition):
3414         (WebCore::DeprecatedRenderSelect::layout):
3415         (WebCore::DeprecatedRenderSelect::updateSelection):
3416
3417         * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::updateFromElement):
3418         Backed out previous fix since this is now done in HTMLSelectElement.
3419
3420 2006-07-11  Adele Peterson  <adele@apple.com>
3421
3422         Reviewed by Hyatt.
3423
3424         Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=9859
3425         REGRESSION: Can't dynamically change popup to list box
3426
3427         Test: fast/forms/select-change-popup-to-listbox.html
3428
3429         * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::updateFromElement):
3430         If the select element has the multiple property set, or has a size > 1, then it
3431         really should be a list box, so we detach and attach the element so it creates the
3432         correct type of renderer.
3433
3434 2006-07-11  John Sullivan  <sullivan@apple.com>
3435
3436         Reviewed by Beth Dakin and Tim Omernick
3437
3438         - fixed <rdar://problem/4622794> HiDPI: dragging the selection in Safari can show pixel cracks 
3439         at non-integral scale factors
3440
3441         * bridge/mac/FrameMac.mm:
3442         (WebCore::FrameMac::imageFromRect):
3443         round image rect in window coordinate space
3444
3445 2006-07-10  Darin Adler  <darin@apple.com>
3446
3447         Reviewed by Geoff.
3448
3449         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9811
3450           rdar://problem/4619572
3451           OPTION text contained in OPTGROUP appears at the wrong size
3452
3453         * dom/Node.h:
3454         * dom/Node.cpp: (WebCore::Node::renderStyle): Made a const member function.
3455         The derived classes were overriding with const member functions, and I could
3456         change either this or the derived -- decided to do this.
3457
3458 2006-07-10  Darin Adler  <darin@apple.com>
3459
3460         Reviewed by Geoff.
3461
3462         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9810
3463           rdar://problem/4619534
3464           OPTGROUP label text is using the default font instead of Lucida Grande
3465
3466         * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::setFontFromControlSize):
3467         Code wants the family name, but was calling fontName, which is not the same thing.
3468         Also removed the unneeded conversion to DeprecatedString.
3469
3470 === Safari-521.16 ===
3471
3472 2006-07-10  David Kilzer  <ddkilzer@kilzer.net>
3473
3474         Reviewed by Darin.
3475
3476         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9179
3477           Implement select.options.add() method
3478
3479         Tests:
3480         - fast/dom/select-selectedIndex-multiple.html
3481         - fast/dom/select-selectedIndex.html
3482         - fast/js/select-options-add.html
3483
3484         * DerivedSources.make: Added JSHTMLOptionsCollection.h.
3485         * ForwardingHeaders/kjs/operations.h: Added.
3486         * WebCore.xcodeproj/project.pbxproj: Added new source files.
3487         * bindings/js/JSHTMLOptionsCollectionCustom.cpp: Added.
3488         (WebCore::JSHTMLOptionsCollection::length):
3489         (WebCore::JSHTMLOptionsCollection::setLength):
3490         (WebCore::JSHTMLOptionsCollection::indexSetter):
3491         * bindings/js/kjs_html.cpp: Removed JSHTMLOptionsCollection implementation.
3492         Renamed classes and methods for consistency.
3493         (KJS::JSHTMLElement::selectGetter):
3494         (KJS::JSHTMLElement::put):
3495         (KJS::JSHTMLElement::selectSetter):
3496         (KJS::JSHTMLCollection::JSHTMLCollection):
3497         (KJS::JSHTMLCollectionProtoFunc::callAsFunction):
3498         (KJS::getHTMLOptionsCollection):
3499         * bindings/js/kjs_html.h: Ditto.
3500         * bindings/scripts/CodeGeneratorJS.pm: Added support for HasCustomIndexSetter class attribute.
3501         Added support for Optional parameter attribute, which makes generated code assume overloaded
3502         implementation methods are available for a JavaScript function with optional arguments.  Changed
3503         local 'impl' variables to 'imp' so that impl() methods could be called without class designation.
3504         * html/HTMLOptionElement.idl: Added GenerateNativeConverter attribute.
3505         * html/HTMLOptionsCollection.cpp: Added methods used by generated JSHTMLOptionsCollection class.
3506         (WebCore::HTMLOptionsCollection::HTMLOptionsCollection):
3507         (WebCore::HTMLOptionsCollection::add):
3508         (WebCore::HTMLOptionsCollection::selectedIndex):
3509         (WebCore::HTMLOptionsCollection::setSelectedIndex):
3510         (WebCore::HTMLOptionsCollection::setLength):
3511         * html/HTMLOptionsCollection.h: Ditto.
3512         * html/HTMLOptionsCollection.idl: Added.
3513
3514 2006-07-10  David Harrison  <harrison@apple.com>
3515
3516         Reviewed by Dave Hyatt.
3517
3518         <rdar://problem/4602408> -webkit-highlight needs to support images and elements other than text
3519
3520         * rendering/RenderBox.cpp:
3521         (WebCore::RenderBox::paintCustomHighlight):
3522         * rendering/RenderBox.h:
3523         Utility for subclasses.
3524         
3525         * rendering/RenderImage.cpp:
3526         (WebCore::RenderImage::paint):
3527         Custom highlight in front of images.
3528         
3529         * rendering/RenderListMarker.cpp:
3530         (WebCore::RenderListMarker::paint):
3531         Custom highlight in front of list markers.
3532
3533         * rendering/RenderWidget.cpp:
3534         (WebCore::RenderWidget::paint):
3535         Custom highlight in front of objects.
3536
3537 2006-07-10  David Hyatt  <hyatt@apple.com>
3538
3539         <rdar://problem/4620557> REGRESSION: In a mail message, text isn't painted
3540         correctly after choosing Redo Typing
3541
3542         Better fix for repainting issue with positioned objects when height
3543         changes.  Optimize when only a positioned child changes so that we don't
3544         incorrectly do normal flow layout.
3545
3546         Reviewed by darin
3547
3548         * WebCore.xcodeproj/project.pbxproj:
3549         * rendering/RenderBlock.cpp:
3550         (WebCore::RenderBlock::layoutBlock):
3551         * rendering/RenderFlexibleBox.cpp:
3552         (WebCore::RenderFlexibleBox::layoutBlock):
3553         * rendering/RenderTable.cpp:
3554         (WebCore::RenderTable::layout):
3555         * rendering/RenderView.cpp:
3556         (WebCore::RenderView::layout):
3557         * rendering/bidi.cpp:
3558         (WebCore::RenderBlock::layoutInlineChildren):
3559
3560 2006-07-10  Adele Peterson  <adele@apple.com>
3561
3562         Reviewed by Beth.
3563
3564         - Fix for <rdar://problem/4621442> REGRESSION (NativePopup) : Popup menus aren't drawn correctly on page at orbitz.com; cheaptickets.com
3565
3566         Test: fast/forms/select-style.html
3567
3568         * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::isControlStyled):
3569         Don't let popups be style-able for now.  We'll allow it later, when we
3570         have a good way to handle border & backgrounds and still having it look like a control.
3571
3572 2006-07-10  Justin Garcia  <justin.garcia@apple.com>
3573
3574         Reviewed by harrison
3575         
3576         <rdar://problem/4619260>
3577         9A213 + Safari 521.15.1 Crash with To Do's alarm icon (WebCore::maxDeepOffset(WebCore::Node const*) )
3578         <rdar://problem/4619841>
3579         REGRESSION: Dragging selection over input field results in a crash (WebCore::maxDeepOffset(WebCore::Node const*)
3580
3581         * WebCore.xcodeproj/project.pbxproj:
3582         * editing/Selection.cpp:
3583         (WebCore::Selection::adjustForEditableContent): Iterate using next/previousVisuallyDistinctCandidate 
3584         instead of traverseNext/Previous node because we were skipping positions.  Jump out of shadow trees.  
3585         Migrate to isEditablePosition instead of isContentEditable.
3586         
3587
3588 2006-07-10  Beth Dakin  <bdakin@apple.com>
3589
3590         Reviewed by Adele.
3591
3592         Shuffling comments around from my last check-in to make things read 
3593         more clearly.
3594
3595         * page/DOMWindow.h:
3596         * page/DOMWindow.idl:
3597
3598 2006-07-10  Beth Dakin  <bdakin@apple.com>
3599
3600         Reviewed by Darin.
3601
3602         Fix for <rdar://problem/4621095> The should be a way to 
3603         access the user interface scale factor through the DOM
3604
3605         window.devicePixelRatio returns the user interface scale factor.
3606
3607         * page/DOMWindow.cpp:
3608         (WebCore::DOMWindow::devicePixelRatio):
3609         * page/DOMWindow.h:
3610         * page/DOMWindow.idl:
3611
3612 2006-07-10  Brady Eidson  <beidson@apple.com>
3613
3614         Reviewed by Alexey
3615
3616         Resolved the console error messages people got from the new DB even if they didn't have it enabled
3617
3618         * icon/IconDatabase.cpp:
3619         (WebCore::IconDatabase::pruneUnreferencedIcons):
3620         (WebCore::IconDatabase::pruneUnretainedIcons):
3621         Added quick check to bail if the DB isn't open
3622
3623 2006-07-10  David Harrison  <harrison@apple.com>
3624
3625         Reviewed by Tim Hatcher
3626
3627         Partial fix for...
3628         <rdar://problem/4619260> 9A213 + Safari 521.15.1 Crash with To Do's alarm icon (WebCore::maxDeepOffset(WebCore::Node const*) )
3629         
3630         * editing/Selection.cpp:
3631         (WebCore::Selection::adjustForEditableContent):
3632         Allow for node being 0.  This is a bandaid fix to prevent the crash.  It will still assert in a debug build.  See bug for more info.
3633
3634 2006-07-10  Mitz Pettel  <opendarwin.org@mitzpettel.com>
3635
3636         Reviewed by Darin.
3637
3638         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9808
3639           REGRESSION: Incorrect layout (and ERROR) when forcing ATSU For All Text
3640
3641         * manual-tests/ATSU-bad-layout.html: Added.
3642         * platform/mac/FontMac.mm:
3643         (WebCore::Font::floatWidthForComplexText): Return 0 immediately for empty runs.
3644
3645 2006-07-10  Darin Adler  <darin@apple.com>
3646
3647         - try to fix the no-SVG build
3648
3649         * ksvg2/misc/SVGImageLoader.cpp: Move namespace brace inside the #if.
3650
3651 2006-07-10  Darin Adler  <darin@apple.com>
3652
3653         Reviewed by Anders.
3654
3655         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9833
3656           REGRESSION: Reproducible crash: RenderMenuList.cpp:58: failed assertion `!m_first'
3657
3658         * manual-tests/empty-title-popup.html: Added.
3659
3660         * rendering/RenderMenuList.h: Add createInnerBlock.
3661         * rendering/RenderMenuList.cpp:
3662         (WebCore::RenderMenuList::createInnerBlock): Factored out of addChild.
3663         (WebCore::RenderMenuList::addChild): Call createInnerBlock.
3664         (WebCore::RenderMenuList::setText): Changed parameter type.
3665         (WebCore::RenderMenuList::showPopup): Call createInnerBlock before calling
3666         the parent class's addChild.
3667
3668 2006-07-10  Rob Buis  <buis@kde.org>
3669
3670         Reviewed by Maciej via IRC.
3671
3672         Make sure the attributes are calculated against viewport width value,
3673         as defined in the spec.  http://paste.lisp.org/display/22342
3674
3675         * ksvg2/svg/SVGEllipseElement.cpp:
3676         (WebCore::SVGEllipseElement::rx): Changed LM_HEIGHT to LM_WIDTH.
3677         * ksvg2/svg/SVGLineElement.cpp:
3678         (SVGLineElement::x2): Ditto.
3679
3680 2006-07-10  Beth Dakin  <bdakin@apple.com>
3681
3682         Reviewed by Maciej.
3683
3684         Fix for <rdar://problem/4610314> Support the CSS3 content property 
3685         for images
3686
3687         This patch provides initial support for the CSS3 content property. 
3688         It lacks support for any content other than images, and only allows 
3689         content for elements that seemed safe for now.
3690
3691         * css/cssstyleselector.cpp:
3692         (WebCore::CSSStyleSelector::applyProperty): Remove restrictions for 
3693         just :before and :after
3694         * html/HTMLBRElement.cpp:
3695         (WebCore::HTMLBRElement::createRenderer):
3696         * html/HTMLFrameSetElement.cpp:
3697         (WebCore::HTMLFrameSetElement::createRenderer):
3698         * html/HTMLImageElement.cpp:
3699         (WebCore::HTMLImageElement::createRenderer):
3700         * html/HTMLLegendElement.cpp:
3701         (WebCore::HTMLLegendElement::createRenderer):
3702         * rendering/RenderImage.cpp:
3703         (WebCore::RenderImage::RenderImage):
3704         (WebCore::RenderImage::setCachedImage): Don't allow the image to be 
3705         set this way if it was already set with the content property.
3706         * rendering/RenderImage.h:
3707         (WebCore::RenderImage::setIsAnonymousImage): Anonymous images are 
3708         those set through the content property.
3709         (WebCore::RenderImage::isAnonymousImage):
3710         * rendering/RenderObject.cpp:
3711         (WebCore::RenderObject::createObject): If there is content 
3712         specified, create a RenderImage with the content and initialize the 
3713         cached image to whatever was specified in the CSS.
3714
3715 2006-07-10  Brady Eidson  <beidson@apple.com>
3716
3717         Reviewed by NOBODY (Build Fix!)
3718
3719         * icon/SiteIcon.cpp:
3720         (SiteIcon::getImage):
3721         Release build made an "unused variable" warning, which is, of course, an error.  fixed that.
3722
3723 2006-07-10  Brady Eidson  <beidson@apple.com>
3724
3725         Reviewed by Maciej
3726
3727         SQLite Icon DB now fully replicates functionality of the old DB, including pruning to keep unused
3728         information out to keep down disk usage.  For now, it is still off by default, as the critical
3729         feature of importing old icons into the new DB is still unrealized.
3730         If you'd like to test, add #define ICONDEBUG to your WebKitPrefix.h
3731
3732         * icon/IconDatabase.cpp:
3733         (WebCore::IconDatabase::IconDatabase):
3734         (WebCore::IconDatabase::open):
3735           -Sets up a timer for initial pruning
3736         (WebCore::IconDatabase::iconForPageURL):
3737           -Switched away from "dirty blob hack" as the problem is provisionally solved
3738         (WebCore::IconDatabase::retainIconForURL):
3739         (WebCore::IconDatabase::releaseIconForURL):
3740           -Same as found in WebKit
3741         (WebCore::IconDatabase::totalRetainCountForIconURL):
3742           -Adds up all retainers of icon
3743         (WebCore::IconDatabase::forgetIconForIconURLFromDatabase):
3744           -Wipes an Icon table entry out
3745         (WebCore::IconDatabase::establishTemporaryIconIDForIconURL):
3746         (WebCore::IconDatabase::establishTemporaryIconIDForEscapedIconURL):
3747         (WebCore::IconDatabase::establishIconIDForIconURL):
3748         (WebCore::IconDatabase::establishIconIDForEscapedIconURL):
3749           -Added ability to get an iconID without creating a new one if a lookup is all
3750            that is genuinely wanted
3751         (WebCore::IconDatabase::pruneUnreferencedIcons):
3752         (WebCore::IconDatabase::pruneUnretainedIcons):
3753           -Called on a timer on DB startup to clean it out
3754         * icon/IconDatabase.h:
3755         * icon/SiteIcon.cpp:
3756         (SiteIcon::SiteIcon):
3757         (SiteIcon::~SiteIcon):
3758           -Deletes the image on deletion
3759         (SiteIcon::getImage):
3760           -Cut down on no-longer-necessary debug info
3761
3762 2006-07-10  Anders Carlsson  <acarlsson@apple.com>
3763
3764         Reviewed by Adele.
3765
3766         http://bugzilla.opendarwin.org/show_bug.cgi?id=9245
3767         Quirksmode: Incorrect handling of disabled BUTTON elements
3768
3769         * html/HTMLButtonElement.cpp:
3770         (WebCore::HTMLButtonElement::defaultEventHandler):
3771         Don't call prepareSubmit if the element is disabled.
3772
3773         * html/HTMLInputElement.cpp:
3774         (WebCore::HTMLInputElement::defaultEventHandler):
3775         Don't call prepareSubmit if the element is disabled.
3776
3777 2006-07-10  Darin Adler  <darin@apple.com>
3778
3779         - try to fix Windows build
3780
3781         * platform/win/TemporaryLinkStubs.cpp: Put a few functions in the WebCore namespace.
3782         * platform/gdk/TemporaryLinkStubs.cpp: Ditto.
3783
3784 2006-07-10  Darin Adler  <darin@apple.com>
3785
3786         Reviewed by Geoff.
3787
3788         - fix failures seen in layout tests
3789
3790         * bindings/js/kjs_dom.cpp: (KJS::toJS): Restore one of the few WebCore:: prefixes
3791         that really needed to be there -- because we have two classes named JSHTMLDocument
3792         at the moment! (One in KJS and one in WebCore namespace.)
3793
3794 2006-07-10  Darin Adler  <darin@apple.com>
3795
3796         - try to fix Windows build
3797
3798         * rendering/RenderLayer.h: Correct a forward declaration of ScrollBar.
3799
3800 2006-07-09  Adele Peterson  <adele@apple.com>
3801
3802         Reviewed by Maciej.
3803
3804         Fix for <rdar://problem/4463835> Switch to use new popup menu implementation for <select>
3805
3806         * css/html4.css: Added style for new selects, and for list boxes.
3807         * html/HTMLSelectElement.h: (WebCore::HTMLSelectElement::shouldUseMenuList): Removed check for appearance so new popups can be styled.
3808    
3809         * rendering/RenderMenuList.cpp:
3810         (WebCore::RenderMenuList::setStyle): Removed padding.  This is now set by the theme.
3811         (WebCore::RenderMenuList::calcMinMaxWidth): Now takes minimum text size into account.
3812         * rendering/RenderMenuList.h: Removed baselinePosition since we're letting the theme calculate that.
3813
3814         * rendering/RenderTheme.cpp: (WebCore::RenderTheme::isControlContainer): Added menuList as a ControlContainer, 
3815         so RenderThemeMac will compute its baseline.
3816         * rendering/RenderTheme.h: (WebCore::RenderTheme::minimumTextSize): Added.
3817         * rendering/RenderThemeMac.h: Added minimumTextSize, setPopupPaddingFromControlSize, popupButtonSizes, popupButtonMargins, popupButtonPadding.
3818         Removed sizeOfArrowControl. 
3819         * rendering/RenderThemeMac.mm:
3820         (WebCore::): Added enum for padding.
3821         (WebCore::RenderThemeMac::adjustRepaintRect): Now inflates rect to account for control shadow.
3822         (WebCore::RenderThemeMac::baselinePosition): Now calculates baseline for menulist.
3823         (WebCore::RenderThemeMac::popupButtonMargins): Tweaked values.
3824         (WebCore::RenderThemeMac::popupButtonSizes): Added.
3825         (WebCore::RenderThemeMac::popupButtonPadding): Added, so different padding can be set for different control sizes.
3826         (WebCore::RenderThemeMac::setPopupPaddingFromControlSize): Added.
3827         (WebCore::RenderThemeMac::paintMenuList): Now inflates rect to account for control shadow.
3828         (WebCore::RenderThemeMac::adjustMenuListStyle): Resets border, sets padding, sets control size.
3829         (WebCore::RenderThemeMac::setPopupButtonCellState): Removed unnecessary class name.
3830         (WebCore::RenderThemeMac::minimumTextSize): Added.
3831
3832 2006-07-09  Darin Adler  <darin@apple.com>
3833
3834         - add back "unused code" for plain text fields, still used by <isindex>!
3835
3836         * platform/TextField.h:
3837         * platform/mac/TextFieldMac.mm:
3838         * platform/mac/WebCoreTextField.h:
3839         * platform/mac/WebCoreTextField.mm:
3840         * rendering/RenderLineEdit.cpp:
3841
3842 2006-07-09  Darin Adler  <darin@apple.com>
3843
3844         Reviewed by Tim Hatcher.
3845
3846         - put more into the WebCore namespace
3847         - removed unused code for plain text fields
3848
3849         Put more classes, class templates, enums, functions, and constants into
3850         the WebCore namespace, including all the headers in the platform directory.
3851
3852         Removed lots of unneeded "WebCore::" qualifiers and "using" directives.
3853
3854         Added some "WebCore::" qualifiers in a few places.
3855
3856         Removed "uses WebCore::" in headers that we said we'd remove "when
3857         everything is in the WebCore namespace".
3858
3859         * bindings/js/JSDOMParser.cpp:
3860         * bindings/js/JSHTMLElementWrapperFactory.cpp:
3861         * bindings/js/JSXSLTProcessor.cpp:
3862         * bindings/js/kjs_binding.cpp:
3863         * bindings/js/kjs_css.cpp:
3864         * bindings/js/kjs_dom.cpp:
3865         * bindings/js/kjs_dom.h:
3866         * bindings/js/kjs_events.cpp:
3867         * bindings/js/kjs_proxy.h:
3868         * bindings/js/kjs_window.h:
3869         * bindings/objc/DOM.mm:
3870         * bridge/History.h:
3871         * bridge/JavaAppletWidget.h:
3872         * bridge/mac/FormDataMac.h:
3873         * bridge/mac/FormDataMac.mm:
3874         * bridge/mac/WebCoreAXObject.mm:
3875         * bridge/mac/WebCoreEncodings.mm:
3876         * bridge/mac/WebCoreFrameBridge.h:
3877         * bridge/mac/WebCoreIconDatabaseBridge.mm:
3878         * bridge/mac/WebCorePageState.h:
3879         * bridge/mac/WebCoreScriptDebugger.mm:
3880         * bridge/mac/WebCoreSettings.h:
3881         * css/CSSGrammar.y:
3882         * css/CSSPageRule.cpp:
3883         * css/CSSPageRule.h:
3884         * css/MediaList.cpp:
3885         * css/cssstyleselector.h:
3886         * dom/Clipboard.h:
3887         * dom/Document.cpp:
3888         * dom/Document.h:
3889         * dom/EventTargetNode.h:
3890         * dom/Node.cpp:
3891         * dom/Node.h:
3892         * dom/Position.h:
3893         * dom/Range.cpp:
3894         * dom/XMLTokenizer.cpp:
3895         * editing/AppendNodeCommand.h:
3896         * editing/ApplyStyleCommand.cpp:
3897         * editing/BreakBlockquoteCommand.cpp:
3898         * editing/BreakBlockquoteCommand.h:
3899         * editing/CompositeEditCommand.cpp:
3900         * editing/CompositeEditCommand.h:
3901         * editing/CreateLinkCommand.h:
3902         * editing/DeleteFromTextNodeCommand.h:
3903         * editing/DeleteSelectionCommand.h:
3904         * editing/FormatBlockCommand.h:
3905         * editing/HTMLInterchange.cpp:
3906         * editing/HTMLInterchange.h:
3907         * editing/IndentOutdentCommand.h:
3908         * editing/InsertIntoTextNodeCommand.h:
3909         * editing/InsertLineBreakCommand.h:
3910         * editing/InsertListCommand.h:
3911         * editing/InsertNodeBeforeCommand.h:
3912         * editing/InsertTextCommand.cpp:
3913         * editing/InsertTextCommand.h:
3914         * editing/JSEditor.cpp:
3915         * editing/JSEditor.h:
3916         * editing/JoinTextNodesCommand.h:
3917         * editing/MergeIdenticalElementsCommand.cpp:
3918         * editing/MergeIdenticalElementsCommand.h:
3919         * editing/ModifySelectionListLevel.h:
3920         * editing/MoveSelectionCommand.h:
3921         * editing/RebalanceWhitespaceCommand.h:
3922         * editing/RemoveNodeAttributeCommand.h:
3923         * editing/RemoveNodeCommand.h:
3924         * editing/RemoveNodePreservingChildrenCommand.h:
3925         * editing/ReplaceSelectionCommand.h:
3926         * editing/SetNodeAttributeCommand.h:
3927         * editing/SplitElementCommand.cpp:
3928         * editing/SplitElementCommand.h:
3929         * editing/SplitTextNodeCommand.cpp:
3930         * editing/SplitTextNodeCommand.h:
3931         * editing/SplitTextNodeContainingElementCommand.h:
3932         * editing/TypingCommand.cpp:
3933         * editing/TypingCommand.h:
3934         * editing/UnlinkCommand.h:
3935         * editing/VisiblePosition.cpp:
3936         * editing/WrapContentsInDummySpanCommand.cpp:
3937         * editing/WrapContentsInDummySpanCommand.h:
3938         * editing/markup.cpp:
3939         * editing/markup.h:
3940         * html/HTMLAnchorElement.cpp:
3941         * html/HTMLBodyElement.cpp:
3942         * html/HTMLButtonElement.h:
3943         * html/HTMLCollection.h:
3944         * html/HTMLDocument.h:
3945         * html/HTMLEmbedElement.cpp:
3946         * html/HTMLFormElement.cpp:
3947         * html/HTMLFormElement.h:
3948         * html/HTMLFrameElement.cpp:
3949         * html/HTMLFrameSetElement.cpp:
3950         * html/HTMLKeygenElement.cpp:
3951         * html/HTMLLabelElement.cpp:
3952         * html/HTMLObjectElement.cpp:
3953         * html/HTMLObjectElement.h:
3954         * html/HTMLTableElement.cpp:
3955         * html/HTMLTablePartElement.cpp:
3956         * icon/IconDatabase.h:
3957         * kcanvas/KCanvasPath.h:
3958         * kcanvas/KCanvasResources.cpp:
3959         * kcanvas/KCanvasResources.h:
3960         * kcanvas/KCanvasTreeDebug.cpp:
3961         * kcanvas/KCanvasTreeDebug.h:
3962         * kcanvas/RenderSVGContainer.cpp:
3963         * kcanvas/RenderSVGText.h:
3964         * kcanvas/device/KRenderingPaintServer.h:
3965         * kcanvas/device/KRenderingPaintServerGradient.h:
3966         * kcanvas/device/KRenderingPaintServerSolid.cpp:
3967         * ksvg2/misc/SVGImageLoader.cpp:
3968         * ksvg2/svg/SVGElement.cpp:
3969         * ksvg2/svg/SVGElement.h:
3970         * ksvg2/svg/SVGForeignObjectElement.cpp:
3971         * ksvg2/svg/SVGForeignObjectElement.h:
3972         * ksvg2/svg/SVGImageElement.cpp:
3973         * ksvg2/svg/SVGPoint.h:
3974         * ksvg2/svg/SVGStylable.h:
3975         * ksvg2/svg/SVGTRefElement.cpp:
3976         * ksvg2/svg/SVGTRefElement.h:
3977         * ksvg2/svg/SVGTSpanElement.cpp:
3978         * ksvg2/svg/SVGTSpanElement.h:
3979         * ksvg2/svg/SVGTextElement.h:
3980         * ksvg2/svg/svgpathparser.cpp:
3981         * ksvg2/svg/svgpathparser.h:
3982         * loader/Cache.h:
3983         * loader/DocLoader.h:
3984         * loader/LoaderFunctions.h:
3985         * loader/mac/LoaderFunctionsMac.mm:
3986         * page/Frame.h:
3987         * page/FrameView.h:
3988         * page/Page.h:
3989         * page/Settings.h:
3990         * platform/AffineTransform.cpp:
3991         * platform/AffineTransform.h:
3992         * platform/Arena.cpp:
3993         * platform/Arena.h:
3994         * platform/CookieJar.h:
3995         * platform/DeprecatedCString.cpp:
3996         * platform/DeprecatedCString.h:
3997         * platform/DeprecatedPtrList.h:
3998         * platform/DeprecatedPtrListImpl.cpp:
3999         * platform/DeprecatedPtrListImpl.h:
4000         * platform/DeprecatedPtrQueue.h:
4001         * platform/DeprecatedString.cpp:
4002         * platform/DeprecatedString.h:
4003         * platform/DeprecatedStringList.cpp:
4004         * platform/DeprecatedStringList.h:
4005         * platform/DeprecatedValueList.h:
4006         * platform/DeprecatedValueListImpl.cpp:
4007         * platform/DeprecatedValueListImpl.h:
4008         * platform/FileButton.h:
4009         * platform/FloatPoint.h:
4010         * platform/FloatRect.h:
4011         * platform/FloatSize.h:
4012         * platform/FontData.h:
4013         * platform/FontFallbackList.h:
4014         * platform/GraphicsContext.h:
4015         * platform/IntPoint.h:
4016         * platform/IntRect.h:
4017         * platform/IntSize.h:
4018         * platform/KURL.cpp:
4019         * platform/KURL.h:
4020         * platform/ListBox.h:
4021         * platform/Logging.cpp:
4022         * platform/Logging.h:
4023         * platform/Pen.h:
4024         * platform/PopUpButton.h:
4025         * platform/RegularExpression.cpp:
4026         * platform/RegularExpression.h:
4027         * platform/SSLKeyGenerator.h:
4028         * platform/ScrollBar.h:
4029         * platform/SegmentedString.h:
4030         * platform/Shared.h:
4031         * platform/Slider.h:
4032         * platform/StringImpl.h:
4033         * platform/TextBox.h:
4034         * platform/TextField.h:
4035         * platform/TextStream.cpp:
4036         * platform/TextStream.h:
4037         * platform/TransferJob.h:
4038         * platform/TransferJobClient.h:
4039         * platform/Widget.h:
4040         * platform/cg/AffineTransformCG.cpp:
4041         * platform/mac/ClipboardMac.h:
4042         * platform/mac/ClipboardMac.mm:
4043         * platform/mac/DeprecatedStringListMac.mm:
4044         * platform/mac/FontCacheMac.mm:
4045         * platform/mac/KURLMac.mm:
4046         * platform/mac/ListBoxMac.mm:
4047         * platform/mac/PopUpButtonMac.mm:
4048         * platform/mac/SSLKeyGeneratorMac.mm:
4049         * platform/mac/TextBoxMac.mm:
4050         * platform/mac/TextFieldMac.mm:
4051         * platform/mac/WebCoreTextArea.h:
4052         * platform/mac/WebCoreTextArea.mm:
4053         * platform/mac/WebCoreTextField.h:
4054         * platform/mac/WebCoreTextField.mm:
4055         * rendering/DeprecatedRenderSelect.h:
4056         * rendering/RenderArena.cpp:
4057         * rendering/RenderArena.h:
4058         * rendering/RenderBlock.cpp:
4059         * rendering/RenderBox.cpp:
4060         * rendering/RenderContainer.cpp:
4061         * rendering/RenderFlexibleBox.cpp:
4062         * rendering/RenderFlow.cpp:
4063         * rendering/RenderLayer.cpp:
4064         * rendering/RenderLineEdit.cpp:
4065         * rendering/RenderObject.h:
4066         * rendering/RenderStyle.cpp:
4067         * rendering/RenderStyle.h:
4068         * rendering/RenderText.cpp:
4069         * rendering/RenderTextFragment.cpp:
4070         * rendering/RenderTheme.h:
4071         * rendering/RenderTreeAsText.cpp:
4072         * rendering/RenderTreeAsText.h:
4073         * rendering/RenderView.h:
4074         * rendering/bidi.h:
4075         * xml/XSLStyleSheet.cpp:
4076         * xml/XSLTProcessor.cpp:
4077
4078 2006-07-09  Geoffrey Garen  <ggaren@apple.com>
4079
4080         Reviewed by Beth.
4081
4082         * bindings/js/kjs_window.cpp:
4083         (KJS::Window::clear): Garbage collect after reinitalizing the global
4084         object, not before, since the reinitialization tends to create garbage.
4085
4086 2006-07-09  Timothy Hatcher  <timothy@apple.com>
4087
4088         Reviewed by Darin.
4089
4090         Bug 9820: Move new DOM API that has been through API review to public headers
4091         http://bugzilla.opendarwin.org/show_bug.cgi?id=9820
4092
4093         * bindings/objc/DOM.mm:
4094         (-[DOMElement focus]):
4095         (-[DOMElement blur]):
4096         (-[DOMRange text]):
4097         (-[DOMRange _text]):
4098         * bindings/objc/DOMCSS.mm:
4099         (-[DOMRGBColor color]):
4100         (-[DOMRGBColor _color]):
4101         * bindings/objc/DOMCore.h:
4102         * bindings/objc/DOMEvents.h:
4103         * bindings/objc/DOMExtensions.h:
4104         * bindings/objc/DOMHTML.mm:
4105         (-[DOMHTMLElement titleDisplayString]):
4106         (-[DOMHTMLDocument createDocumentFragmentWithMarkupString:baseURL:]):
4107         (-[DOMHTMLDocument createDocumentFragmentWithText:]):
4108         (-[DOMHTMLDocument _createDocumentFragmentWithMarkupString:baseURLString:]):
4109         (-[DOMHTMLDocument _createDocumentFragmentWithText:]):
4110         * bindings/objc/DOMPrivate.h:
4111         * bindings/objc/DOMXPath.h:
4112         * bindings/objc/DOMXPath.mm:
4113
4114 2006-07-09  Beth Dakin  <bdakin@apple.com>
4115
4116         Reviewed by Maciej.
4117
4118         Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=9749 A 
4119         nested content editable div causes unnecessary screen redraws.
4120         
4121         We were repainting too much because we were deciding that we needed 
4122         a full layout because we didn't have a first line box. Our code 
4123         used to hold a lot of assumptions that positioned elements would 
4124         always have line boxes, but I fixed a few bugs a while back that 
4125         appeared because this assumption isn't true. This assumption was 
4126         also causing the extra redraws because the check meant that we 
4127         would decide to do a full layout for any positioned element that 
4128         did not have any line&nb