initial import
[vuplus_webkit] / Source / WebCore / ChangeLog-2007-10-14
1 2007-10-14  Eric Seidel  <eric@webkit.org>
2
3         Reviewed by aroben.
4
5         Remove senseless malloc from paintOutline
6         No tests needed, no functional change.
7
8         * rendering/RenderFlow.cpp:
9         (WebCore::RenderFlow::paintOutline): remove unneeded malloc
10
11 2007-10-13  Eric Seidel  <eric@webkit.org>
12
13         Reviewed by Mark Rowe.
14
15         Fix SVGSVGElement::currentView() to not leak by using an OwnPtr.
16         This fix is incompatible with changes eventually needed for supporting
17         SVGSVGElement.currentView in the bindings (that needs a ref'd object)
18         There are also several parser crashers in SVGViewSpec, but those will be fixed
19         in my next patch.
20         
21         Leak fix only, no additional tests needed.
22
23         * ksvg2/svg/SVGSVGElement.cpp:
24         (WebCore::SVGSVGElement::currentView): call .get() and .set()
25         * ksvg2/svg/SVGSVGElement.h: use OwnPtr
26
27 2007-10-13  Oliver Hunt  <oliver@apple.com>
28
29         Reviewed by Maciej.
30
31         Fixing a few testcases by enabling SVG_EXPERIMENTAL on windows, and making the
32         required fixes and corrections.
33
34         * WebCore.vcproj/WebCore.vcproj:
35         * WebCore.vcproj/build-generated-files.sh:
36         * bindings/scripts/CodeGeneratorJS.pm:
37         * ksvg2/scripts/make_names.pl:
38         * ksvg2/svg/SVGColor.cpp:
39         (WebCore::SVGColor::colorFromRGBColorString):
40         * page/DOMWindow.idl:
41         * platform/graphics/svg/cg/SVGResourceFilterCg.cpp:
42         * platform/win/WebCoreTextRenderer.cpp:
43
44 2007-10-12  Darin Adler  <darin@apple.com>
45
46         Reviewed by Sam.
47
48         - more float/int conversion (to try to get the old builbot up)
49
50         * rendering/RenderSVGRoot.cpp:
51         (WebCore::RenderSVGRoot::layout): Cast to int.
52         (WebCore::RenderSVGRoot::applyContentTransforms): Ditto.
53         (WebCore::RenderSVGRoot::nodeAtPoint): Ditto.
54
55 2007-10-12  Justin Garcia  <justin.garcia@apple.com>
56
57         Reviewed by Harrison.
58         
59         <rdar://problem/5483370> GoogleDocs: Deleting cell text in a table row also removes any empty rows beneath the row being edited
60         <rdar://problem/5482524> GoogleDocs: A hang occurs when applying list to selected table
61         
62         * editing/DeleteSelectionCommand.cpp:
63         (WebCore::DeleteSelectionCommand::removePreviouslySelectedEmptyTableRows):
64         * editing/InsertListCommand.cpp:
65         (WebCore::InsertListCommand::modifyRange):
66         (WebCore::InsertListCommand::doApply):
67
68 2007-10-12  Darin Adler  <darin@apple.com>
69
70         - fix another float/int conversion
71
72         * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
73         (WebCore::SVGResourceMasker::applyMask): Explicitly cast to int.
74
75 2007-10-12  Darin Adler  <darin@apple.com>
76
77         Reviewed by Oliver Hunt.
78
79         - fix float/int conversions that cause warnings on older versions
80           of gcc (like the version currently being used on the PowerPC
81           buildbot slave)
82
83         * rendering/RenderPath.cpp:
84         (WebCore::RenderPath::paint): Explicitly cast to int.
85         (WebCore::RenderPath::addFocusRingRects): Use enclosingIntRect
86         to convert a FloatRect to an IntRect.
87         * rendering/SVGRootInlineBox.cpp:
88         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
89         Use 0 for the initial value of an int, rather than 0.0f.
90         (WebCore::svgTextStyleForInlineTextBox): Explicitly cast to int.
91         (WebCore::applyTextAnchorToTextChunk): Ditto.
92
93 2007-10-12  Oliver Hunt  <oliver@apple.com>
94
95         Reviewed by Mark.
96
97         Cast zoom factor to int as the original patch did.  This is necessary to appease some versions of gcc.
98
99         * ksvg2/svg/SVGSVGElement.cpp:
100         (WebCore::SVGSVGElement::setCurrentScale):
101
102 2007-10-12  Eric Seidel  <eric@webkit.org>
103
104         Reviewed by Mark Rowe.
105
106         Fix leaks in SVG code from feature-branch.
107
108         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
109         (WebCore::SVGFEDiffuseLightingElement::filterEffect):
110         * ksvg2/svg/SVGFEFloodElement.cpp:
111         (WebCore::SVGFEFloodElement::filterEffect):
112         * ksvg2/svg/SVGFESpecularLightingElement.cpp:
113         (WebCore::SVGFESpecularLightingElement::filterEffect):
114         * ksvg2/svg/SVGGradientElement.cpp:
115         (WebCore::SVGGradientElement::buildStops):
116         * ksvg2/svg/SVGStyledElement.cpp:
117         (WebCore::SVGStyledElement::resolveStyle): always refs style
118         * platform/graphics/cg/ImageBufferCG.cpp:
119         (WebCore::ImageBuffer::create): fastFree buffer if CG Context creation fails
120
121 2007-10-12  Mark Rowe  <mrowe@apple.com>
122
123         Windows, Gtk and Qt build fixes.  Add new files to projects.
124
125         * WebCore.pro:
126         * WebCore.vcproj/WebCore.vcproj:
127
128 === Start merge of feature-branch 2007-10-12 ===
129
130 2007-10-11  Oliver Hunt  <oliver@apple.com>
131
132         Reviewed by Sam.
133
134         Bug 15469: feature branch has 100's of implicit double -> float conversions
135
136         Re-enable -Wshorten-64-to-32, and make required code changes to make us build sanely again.
137         
138         * WebCore.xcodeproj/project.pbxproj:
139         * bindings/js/JSSVGMatrixCustom.cpp:
140         (WebCore::JSSVGMatrix::translate):
141         (WebCore::JSSVGMatrix::scale):
142         (WebCore::JSSVGMatrix::scaleNonUniform):
143         (WebCore::JSSVGMatrix::rotate):
144         (WebCore::JSSVGMatrix::skewX):
145         (WebCore::JSSVGMatrix::skewY):
146         * bindings/scripts/CodeGeneratorJS.pm:
147         * bindings/scripts/CodeGeneratorObjC.pm:
148         * ksvg2/css/SVGRenderStyle.cpp:
149         (WebCore::SVGRenderStyle::cssPrimitiveToLength):
150         * ksvg2/css/SVGRenderStyle.h:
151         * ksvg2/svg/SVGAnimateMotionElement.cpp:
152         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
153         (WebCore::SVGAnimateMotionElement::updateAnimatedValue):
154         (WebCore::parsePoint):
155         (WebCore::SVGAnimateMotionElement::calculateFromAndToValues):
156         * ksvg2/svg/SVGAnimationElement.cpp:
157         (WebCore::SVGAnimationElement::parseKeyNumbers):
158         (WebCore::parseKeySplines):
159         * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
160         (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
161         (WebCore::SVGComponentTransferFunctionElement::parseMappedAttribute):
162         * ksvg2/svg/SVGFECompositeElement.cpp:
163         (WebCore::SVGFECompositeElement::SVGFECompositeElement):
164         (WebCore::SVGFECompositeElement::parseMappedAttribute):
165         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
166         (WebCore::SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement):
167         (WebCore::SVGFEDiffuseLightingElement::parseMappedAttribute):
168         * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
169         (WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
170         (WebCore::SVGFEDisplacementMapElement::parseMappedAttribute):
171         * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
172         (WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement):
173         (WebCore::SVGFEGaussianBlurElement::parseMappedAttribute):
174         * ksvg2/svg/SVGFELightElement.cpp:
175         (WebCore::SVGFELightElement::SVGFELightElement):
176         (WebCore::SVGFELightElement::parseMappedAttribute):
177         * ksvg2/svg/SVGFEOffsetElement.cpp:
178         (WebCore::SVGFEOffsetElement::SVGFEOffsetElement):
179         (WebCore::SVGFEOffsetElement::parseMappedAttribute):
180         * ksvg2/svg/SVGFESpecularLightingElement.cpp:
181         (WebCore::SVGFESpecularLightingElement::SVGFESpecularLightingElement):
182         (WebCore::SVGFESpecularLightingElement::parseMappedAttribute):
183         * ksvg2/svg/SVGFETurbulenceElement.cpp:
184         (WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
185         (WebCore::SVGFETurbulenceElement::parseMappedAttribute):
186         * ksvg2/svg/SVGFitToViewBox.cpp:
187         (WebCore::SVGFitToViewBox::parseMappedAttribute):
188         * ksvg2/svg/SVGFitToViewBox.h:
189         * ksvg2/svg/SVGLength.cpp:
190         (WebCore::SVGLength::setValueAsString):
191         (WebCore::SVGLength::PercentageOfViewport):
192         * ksvg2/svg/SVGNumber.idl:
193         * ksvg2/svg/SVGNumberList.cpp:
194         (WebCore::SVGNumberList::parse):
195         * ksvg2/svg/SVGNumberList.h:
196         * ksvg2/svg/SVGParserUtilities.cpp:
197         (WebCore::_parseNumber):
198         (WebCore::parseNumber):
199         (WebCore::pointsListFromSVGData):
200         (WebCore::PathBuilder::svgMoveTo):
201         (WebCore::PathBuilder::svgLineTo):
202         (WebCore::PathBuilder::svgCurveToCubic):
203         (WebCore::SVGPathSegListBuilder::svgMoveTo):
204         (WebCore::SVGPathSegListBuilder::svgLineTo):
205         (WebCore::SVGPathSegListBuilder::svgLineToHorizontal):
206         (WebCore::SVGPathSegListBuilder::svgLineToVertical):
207         (WebCore::SVGPathSegListBuilder::svgCurveToCubic):
208         (WebCore::SVGPathSegListBuilder::svgCurveToCubicSmooth):
209         (WebCore::SVGPathSegListBuilder::svgCurveToQuadratic):
210         (WebCore::SVGPathSegListBuilder::svgCurveToQuadraticSmooth):
211         (WebCore::SVGPathSegListBuilder::svgArcTo):
212         * ksvg2/svg/SVGParserUtilities.h:
213         * ksvg2/svg/SVGPathElement.cpp:
214         (WebCore::SVGPathElement::SVGPathElement):
215         * ksvg2/svg/SVGSVGElement.cpp:
216         (WebCore::SVGSVGElement::pixelUnitToMillimeterX):
217         (WebCore::SVGSVGElement::pixelUnitToMillimeterY):
218         * ksvg2/svg/SVGSVGElement.h:
219         * ksvg2/svg/SVGTransformDistance.cpp:
220         (WebCore::SVGTransformDistance::addToSVGTransform):
221         (WebCore::SVGTransformDistance::distance):
222         * ksvg2/svg/SVGTransformDistance.h:
223         * ksvg2/svg/SVGTransformable.cpp:
224         (WebCore::SVGTransformable::parseTransformValue):
225         * ksvg2/svg/SVGViewSpec.cpp:
226         (WebCore::SVGViewSpec::parseViewSpec):
227         * platform/graphics/svg/SVGResourceFilter.cpp:
228         (WebCore::SVGResourceFilter::filterBBoxForItemBBox):
229         * platform/graphics/svg/cg/CgSupport.cpp:
230         (WebCore::applyStrokeStyleToContext):
231         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
232         (WebCore::SVGPaintServerPattern::setup):
233         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
234         (WebCore::SVGResourceFilter::applyFilter):
235         * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
236         (WebCore::SVGComponentTransferFunction::SVGComponentTransferFunction):
237         * platform/graphics/svg/filters/SVGFEComposite.cpp:
238         (WebCore::SVGFEComposite::SVGFEComposite):
239         * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
240         (WebCore::SVGFEConvolveMatrix::SVGFEConvolveMatrix):
241         * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
242         (WebCore::SVGFEDiffuseLighting::SVGFEDiffuseLighting):
243         * platform/graphics/svg/filters/SVGFEFlood.cpp:
244         (WebCore::SVGFEFlood::SVGFEFlood):
245         * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
246         (WebCore::SVGFEGaussianBlur::SVGFEGaussianBlur):
247         * platform/graphics/svg/filters/SVGFEMorphology.cpp:
248         (WebCore::SVGFEMorphology::SVGFEMorphology):
249         * platform/graphics/svg/filters/SVGFEOffset.cpp:
250         (WebCore::SVGFEOffset::SVGFEOffset):
251         * platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
252         (WebCore::SVGFESpecularLighting::SVGFESpecularLighting):
253         * platform/graphics/svg/filters/SVGFETurbulence.cpp:
254         (WebCore::SVGFETurbulence::SVGFETurbulence):
255         * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
256         (WebCore::SVGFEColorMatrix::getCIFilter):
257         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm:
258         (WebCore::getVectorForChannel):
259         (WebCore::getLightVectors):
260         * platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
261         (WebCore::SVGFEImage::getCIFilter):
262         * rendering/RenderPath.cpp:
263         (WebCore::RenderPath::drawMarkersIfNeeded):
264         * rendering/RenderSVGImage.cpp:
265         (WebCore::RenderSVGImage::paint):
266         * rendering/RenderSVGInlineText.cpp:
267         (WebCore::RenderSVGInlineText::computeAbsoluteRectForRange):
268         * rendering/RenderSVGRoot.cpp:
269         (WebCore::RenderSVGRoot::applyContentTransforms):
270         (WebCore::RenderSVGRoot::calcViewport):
271         (WebCore::RenderSVGRoot::nodeAtPoint):
272         * rendering/RenderSVGText.cpp:
273         (WebCore::RenderSVGText::absoluteRects):
274         (WebCore::RenderSVGText::relativeBBox):
275         * rendering/RenderSVGTextPath.cpp:
276         * rendering/SVGCharacterLayoutInfo.cpp:
277         (WebCore::calculateBaselineShift):
278         (WebCore::SVGCharacterLayoutInfo::SVGCharacterLayoutInfo):
279         (WebCore::SVGCharacterLayoutInfo::processedChunk):
280         (WebCore::SVGCharacterLayoutInfo::nextPathLayoutPointAndAngle):
281         (WebCore::SVGCharacterLayoutInfo::addLayoutInformation):
282         * rendering/SVGCharacterLayoutInfo.h:
283         * rendering/SVGInlineTextBox.cpp:
284         (WebCore::SVGInlineTextBox::calculateGlyphBoundaries):
285         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
286         (WebCore::pathForDecoration):
287         * rendering/SVGRenderTreeAsText.cpp:
288         (WebCore::writeStyle):
289         * rendering/SVGRootInlineBox.cpp:
290         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
291         (WebCore::applyTextAnchorToTextChunk):
292         (WebCore::SVGRootInlineBox::buildLayoutInformation):
293         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
294
295 2007-10-11  Andrew Wellington  <proton@wiretapped.net>
296
297         Reviewed by Eric Seidel.
298
299         Fix for http://bugs.webkit.org/show_bug.cgi?id=15076
300         "deg2rad has multiple definitions"
301         
302         Use deg2rad, rad2deg, deg2grad, grad2deg, rad2grad, grad2rad
303         from wtf where appropriate.
304         
305         No test cases as this doesn't change behaviour.
306         
307         Change based on original patch by Rob Buis.
308
309         * ksvg2/svg/SVGAngle.cpp:
310         (WebCore::SVGAngle::calculate):
311         (WebCore::SVGAngle::convertToSpecifiedUnits):
312         (WebCore::SVGAngle::todeg):
313         (WebCore::SVGAngle::torad):
314         * platform/graphics/AffineTransform.cpp:
315         (WebCore::AffineTransform::rotateFromVector):
316         (WebCore::AffineTransform::skewX):
317         (WebCore::AffineTransform::skewY):
318         * platform/graphics/cg/AffineTransformCG.cpp:
319         (WebCore::AffineTransform::rotate):
320         * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
321         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
322         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm:
323         * rendering/RenderPath.cpp:
324         (WebCore::drawMarkerWithData):
325
326 2007-10-11  Nikolas Zimmermann  <zimmermann@kde.org>
327
328         Reviewed by Oliver.
329
330         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6421 (<text> textLength attribute is not respected)
331         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6422 (<text> lengthAdjust attribute is not respected)
332
333         Implement textLength and full lengthAdjust (both 'spacing' & 'spacingAndGlyphs' mode)
334         for <text> & <tspan> & friends. <textPath> is still todo, as it's special.
335
336         Also fix usage of cummulatedGlyphWidth/Height in SVGInlineTextBox, calculateGlyphBoundaries was
337         supposed to be used in the distance calculations, to take per character transformations into account (ie. rotation).
338
339         Fixes: svg/W3C-SVG-1.1/text-text-01-b.svg (complelty fixed the single W3C textLength testcase)
340         Partly fixed: svg/batik/text/textOnPathSpaces.svg (kerning support missing)
341         Partly fixed: svg/batik/text/textLayout.svg (word-letter spacing & textLength is todo)
342
343         * ksvg2/svg/SVGTextContentElement.cpp:
344         (WebCore::SVGTextContentElement::SVGTextContentElement):
345         (WebCore::SVGTextContentElement::parseMappedAttribute):
346         * rendering/SVGCharacterLayoutInfo.cpp:
347         (WebCore::SVGCharacterLayoutInfo::nextPathLayoutPointAndAngle):
348         * rendering/SVGCharacterLayoutInfo.h:
349         (WebCore::SVGTextChunk::SVGTextChunk):
350         (WebCore::SVGTextChunkWalker::operator()):
351         * rendering/SVGInlineTextBox.cpp:
352         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
353         (WebCore::SVGInlineTextBoxSelectionRectWalker::chunkPortionCallback):
354         (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
355         * rendering/SVGRootInlineBox.cpp:
356         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
357         (WebCore::cummulatedWidthOrHeightOfTextChunk):
358         (WebCore::cummulatedWidthOfTextChunk):
359         (WebCore::cummulatedHeightOfTextChunk):
360         (WebCore::applyTextAnchorToTextChunk):
361         (WebCore::applyTextLengthCorrectionToTextChunk):
362         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
363         (WebCore::SVGRootInlineBox::buildTextChunks):
364         (WebCore::SVGRootInlineBox::layoutTextChunks):
365         (WebCore::SVGRootInlineBox::walkTextChunks):
366
367 2007-10-11  Oliver Hunt  <oliver@apple.com>
368
369         Reviewed by Niko.
370
371         Fix for Bug 15468: Parsing of numbers and lists is too lenient in SVG
372
373         Correct parsing of numbers, number lists, and length lists in SVG.
374
375         * ksvg2/svg/SVGLength.cpp:
376         (WebCore::SVGLength::setValueAsString):
377         * ksvg2/svg/SVGLength.h:
378         * ksvg2/svg/SVGLengthList.cpp:
379         (WebCore::SVGLengthList::parse):
380         * ksvg2/svg/SVGParserUtilities.cpp:
381         (WebCore::parseNumber):
382
383 2007-10-11  Allan Sandfeld Jensen  <sandfeld@kde.org>
384  
385          Reviewed by Maciej and Eric.
386  
387          Implement CSS selector combinators nondeterministic matching. 
388          Fixes http://bugs.webkit.org/show_bug.cgi?id=3428
389  
390          * css/CSSStyleSelector.cpp:
391          (WebCore::CSSStyleSelector::matchRulesForList):
392          (WebCore::CSSStyleSelector::checkSelector): Split the function and make the second part recursive
393          (WebCore::CSSStyleSelector::checkOneSelector): Handle pseodo-elements rules and hoveractive quirks 
394          here instead of in checkSelector.
395          * css/CSSStyleSelector.h:
396  
397 2007-10-10  Eric Seidel  <eric@webkit.org>
398
399         Reviewed by Nikolas Zimmermann.
400         
401         Fix the SVG dom so that rect.x.baseVal = rect.x.baseVal like it should.
402         http://bugs.webkit.org/show_bug.cgi?id=14150
403
404         Test: svg/dom/animated-tearoff-equlity.xhtml
405
406         * ksvg2/svg/SVGAnimatedTemplate.h:
407         (WebCore::SVGAnimatedTypeWrapperKey::SVGAnimatedTypeWrapperKey):
408         (WebCore::SVGAnimatedTypeWrapperKey::operator==):
409         (WebCore::SVGAnimatedTypeWrapperKeyHash::hash):
410         (WebCore::SVGAnimatedTypeWrapperKeyHash::equal):
411         (WebCore::SVGAnimatedTypeWrapperKeyHashTraits::deletedValue):
412         (WebCore::SVGAnimatedTypeWrapperKeyHashTraits::emptyValue):
413         (WebCore::SVGAnimatedTemplate::~SVGAnimatedTemplate):
414         (WebCore::SVGAnimatedTemplate::wrapperCache):
415         (WebCore::SVGAnimatedTemplate::forgetWrapper):
416         (WebCore::lookupOrCreateWrapper):
417         * ksvg2/svg/SVGElement.h:
418
419 2007-10-10  Oliver Hunt  <oliver@apple.com>
420
421         Reviewed by Maciej.
422
423         Leopard build fix -- SVGDocument should not trty to make read/write properties read-only
424
425         Remove those API definitions SVGDocument now inherits from Document
426
427         * ksvg2/svg/SVGDocument.idl:
428
429 2007-10-10  Eric Seidel  <eric@webkit.org>
430
431         Reviewed by Oliver.
432
433         Make renderers pull localTransform instead of depending on DOM elements to push
434         This allows for cleaner invalidation code, and makes writing animation easier.
435         Also fixed a tiny bug in SVGRenderImage focus ring calculations while there
436         
437         Updated test results for svg/custom/focus-ring.svg
438
439         * WebCore.xcodeproj/project.pbxproj:
440         * ksvg2/svg/SVGAElement.cpp:
441         (WebCore::SVGAElement::createRenderer):
442         * ksvg2/svg/SVGAnimateMotionElement.cpp:
443         (WebCore::SVGAnimateMotionElement::applyAnimatedValueToElement):
444         * ksvg2/svg/SVGAnimateTransformElement.cpp:
445         (WebCore::SVGAnimateTransformElement::applyAnimatedValueToElement):
446         * ksvg2/svg/SVGClipPathElement.cpp:
447         (WebCore::SVGClipPathElement::canvasResource):
448         * ksvg2/svg/SVGElement.h:
449         * ksvg2/svg/SVGGElement.cpp:
450         (WebCore::SVGGElement::createRenderer):
451         * ksvg2/svg/SVGImageElement.cpp:
452         * ksvg2/svg/SVGLocatable.cpp:
453         (WebCore::SVGLocatable::getCTM):
454         (WebCore::SVGLocatable::getScreenCTM):
455         * ksvg2/svg/SVGMarkerElement.cpp:
456         (WebCore::SVGMarkerElement::canvasResource):
457         (WebCore::SVGMarkerElement::notifyAttributeChange):
458         * ksvg2/svg/SVGSVGElement.h:
459         * ksvg2/svg/SVGStyledElement.cpp:
460         (WebCore::SVGStyledElement::rendererIsNeeded):
461         (WebCore::SVGStyledElement::notifyResourceParentIfExistant):
462         * ksvg2/svg/SVGStyledElement.h:
463         (WebCore::SVGStyledElement::style):
464         * ksvg2/svg/SVGStyledTransformableElement.cpp:
465         (WebCore::SVGStyledTransformableElement::animatedLocalTransform):
466         (WebCore::SVGStyledTransformableElement::parseMappedAttribute):
467         (WebCore::SVGStyledTransformableElement::notifyAttributeChange):
468         (WebCore::SVGStyledTransformableElement::createRenderer):
469         * ksvg2/svg/SVGStyledTransformableElement.h:
470         (WebCore::SVGStyledTransformableElement::toPathData):
471         * ksvg2/svg/SVGSwitchElement.cpp:
472         (WebCore::SVGSwitchElement::createRenderer):
473         * ksvg2/svg/SVGTRefElement.cpp:
474         (WebCore::SVGTRefElement::updateReferencedText):
475         * ksvg2/svg/SVGTextElement.cpp:
476         (WebCore::SVGTextElement::parseMappedAttribute):
477         (WebCore::SVGTextElement::animatedLocalTransform):
478         * ksvg2/svg/SVGTextElement.h:
479         * ksvg2/svg/SVGTextPathElement.cpp:
480         * ksvg2/svg/SVGTextPathElement.h:
481         * ksvg2/svg/SVGTransformable.cpp:
482         (WebCore::SVGTransformable::getCTM):
483         (WebCore::SVGTransformable::getScreenCTM):
484         * ksvg2/svg/SVGTransformable.h:
485         * ksvg2/svg/SVGUseElement.cpp:
486         (WebCore::SVGUseElement::createRenderer):
487         (WebCore::SVGUseElement::attachShadowTree):
488         * platform/graphics/AffineTransform.h:
489         (WebCore::AffineTransform::operator!=):
490         * platform/graphics/svg/SVGResourceMarker.cpp:
491         (WebCore::SVGResourceMarker::setMarker):
492         * platform/graphics/svg/SVGResourceMarker.h:
493         * rendering/RenderForeignObject.cpp:
494         (WebCore::RenderForeignObject::calculateLocalTransform):
495         (WebCore::RenderForeignObject::layout):
496         * rendering/RenderForeignObject.h:
497         (WebCore::RenderForeignObject::localTransform):
498         * rendering/RenderObject.cpp:
499         * rendering/RenderObject.h:
500         * rendering/RenderPath.cpp:
501         (WebCore::RenderPath::RenderPath):
502         (WebCore::RenderPath::localTransform):
503         (WebCore::RenderPath::calculateLocalTransform):
504         (WebCore::RenderPath::layout):
505         * rendering/RenderPath.h:
506         * rendering/RenderSVGContainer.cpp:
507         (WebCore::RenderSVGContainer::localTransform):
508         (WebCore::RenderSVGContainer::calculateLocalTransform):
509         (WebCore::RenderSVGContainer::layout):
510         * rendering/RenderSVGContainer.h:
511         * rendering/RenderSVGImage.h:
512         (WebCore::RenderSVGImage::localTransform):
513         * rendering/RenderSVGText.cpp:
514         (WebCore::RenderSVGText::calculateLocalTransform):
515         (WebCore::RenderSVGText::layout):
516         * rendering/RenderSVGText.h:
517         (WebCore::RenderSVGText::isSVGText):
518         (WebCore::RenderSVGText::localTransform):
519         * rendering/RenderSVGTextPath.cpp:
520         (WebCore::RenderSVGTextPath::layoutPath):
521         (WebCore::RenderSVGTextPath::startOffset):
522         (WebCore::RenderSVGTextPath::exactAlignment):
523         (WebCore::RenderSVGTextPath::stretchMethod):
524         * rendering/RenderSVGTextPath.h:
525         * rendering/RenderSVGTransformableContainer.cpp: Added.
526         (WebCore::RenderSVGTransformableContainer::RenderSVGTransformableContainer):
527         (WebCore::RenderSVGTransformableContainer::calculateLocalTransform):
528         * rendering/RenderSVGTransformableContainer.h: Added.
529         * rendering/RenderSVGViewportContainer.h:
530
531 2007-10-10  Oliver Hunt  <oliver@apple.com>
532
533         Reviewed by Eric.
534
535         Bug 15451: SVGStyledElement must unregister itself from Resources on detach
536         
537         Use a global hashtable to maintain the relationship between the
538         various SVG resources and their clients, across dom updates, etc.
539
540         * ksvg2/svg/SVGStyledElement.cpp:
541         (WebCore::SVGStyledElement::detach):
542         * ksvg2/svg/SVGStyledElement.h:
543         * platform/graphics/svg/SVGPaintServer.h:
544         * platform/graphics/svg/SVGResource.cpp:
545         (WebCore::ResourceSet::ResourceSet):
546         (WebCore::clientMap):
547         (WebCore::SVGResource::~SVGResource):
548         (WebCore::SVGResource::invalidate):
549         (WebCore::SVGResource::removeClient):
550         (WebCore::SVGResource::addClient):
551         * platform/graphics/svg/SVGResource.h:
552         (WebCore::):
553         (WebCore::SVGResource::isPaintServer):
554         (WebCore::SVGResource::isFilter):
555         (WebCore::SVGResource::isClipper):
556         (WebCore::SVGResource::isMarker):
557         (WebCore::SVGResource::isMasker):
558         * platform/graphics/svg/SVGResourceClipper.h:
559         (WebCore::SVGResourceClipper::resourceType):
560         * platform/graphics/svg/SVGResourceFilter.h:
561         * platform/graphics/svg/SVGResourceMarker.h:
562         * platform/graphics/svg/SVGResourceMasker.h:
563
564 2007-10-10  Mark Rowe  <mrowe@apple.com>
565
566         Windows build fix after r26109.
567
568         * WebCore.vcproj/WebCore.vcproj:
569
570 2007-10-10  Oliver Hunt  <oliver@apple.com>
571
572         Reviewed by Eric.
573
574         Fix Bug 15433: Filters do not repaint when base resources change/update
575
576         SVGFEImage now actually responds to image updates, and triggers a repaint.
577
578         * platform/graphics/svg/SVGResource.h:
579         * platform/graphics/svg/filters/SVGFEImage.cpp:
580         (WebCore::SVGFEImage::setCachedImage):
581           Don't re-set the image lest we want to trigger infinite recursion.
582         (WebCore::SVGFEImage::imageChanged):
583           Image change means we need to tell our clients to repaint
584         * platform/graphics/svg/filters/SVGFEImage.h:
585         * rendering/SVGRenderSupport.cpp:
586         (WebCore::prepareToRenderSVGContent):
587           make sure that users of filters are registered.
588
589 2007-10-09  Eric Seidel  <eric@webkit.org>
590
591         Reviewed by Alp.
592
593         Track changes in r26109 to fix the Gtk+ build.
594
595         * WebCore.pro:
596
597 2007-10-09  Alexey Proskuryakov  <ap@webkit.org>
598
599         Reviewed by Anders.
600
601         http://bugs.webkit.org/show_bug.cgi?id=15436
602         Wrong node order for XPath reverse axes
603
604         Test: fast/xpath/reverse-axes.html
605
606         * xml/XPathStep.cpp:
607         (WebCore::XPath::Step::nodesInAxis): Do not prematurely sort reverse
608         axes. Generate preceding axis nodes in reversed document order.
609
610 2007-10-09  Alexey Proskuryakov  <ap@webkit.org>
611
612         Reviewed by Mitz.
613
614         http://bugs.webkit.org/show_bug.cgi?id=15437
615         XPath substring-after function is broken
616
617         Test: fast/xpath/substring-after.html
618
619         * xml/XPathFunctions.cpp:
620         (WebCore::XPath::FunSubstringAfter::evaluate): Fix it for real this time, hopefully.
621
622 2007-10-09  Rob Buis  <buis@kde.org>
623
624         Reviewed by Eric.
625
626         http://bugs.webkit.org/show_bug.cgi?id=15080
627         <use> element not refresh after adding objects by script in referrer
628
629         Update shadow tree when elements are added/removed from a tree
630         that is referenced by a <use>.
631
632         * ksvg2/svg/SVGStyledElement.cpp:
633         (WebCore::SVGStyledElement::childrenChanged):
634         * ksvg2/svg/SVGStyledElement.h:
635
636 2007-10-09  Rob Buis  <buis@kde.org>
637
638         Reviewed by Maciej.
639
640         http://bugs.webkit.org/show_bug.cgi?id=15088
641         HTMLOptionElement.selected returns false when parent HTMLSelectElement is "display: none" until parent's .selectedIndex is accessed
642
643         Make sure the list items are up to date when there is no renderer.
644
645         * html/HTMLSelectElement.cpp:
646         (WebCore::HTMLSelectElement::recalcStyle):
647
648 2007-10-08  Eric Seidel  <eric@webkit.org>
649
650         Reviewed by Oliver.
651
652         Build fix.  Fix circular build rule for CSS*.in files evident on clean build.
653
654         * DerivedSources.make:
655         * WebCore.xcodeproj/project.pbxproj:
656         * ksvg2/css/CSSPropertyNames.in: Removed.
657         * ksvg2/css/CSSValueKeywords.in: Removed.
658         * ksvg2/css/SVGCSSPropertyNames.in: Copied from ksvg2/css/CSSPropertyNames.in.
659         * ksvg2/css/SVGCSSValueKeywords.in: Copied from ksvg2/css/CSSValueKeywords.in.
660
661 2007-10-08  Eric Seidel  <eric@webkit.org>
662
663         Reviewed by hyatt.
664
665         Implement getComputedStyle support for SVG CSS values
666         http://bugs.webkit.org/show_bug.cgi?id=15422
667         
668         This also unifies SVG and non-SVG CSS hash lookups. A unified hash
669         solves correctness problems as well as offers improved speed.
670         
671         Test: svg/css/getComputedStyle-basic.xhtml
672
673         * DerivedSources.make: unify SVG and non-SVG CSS hash files
674         * WebCore.xcodeproj/project.pbxproj: remove old SVG CSS hash files
675         * css/CSSComputedStyleDeclaration.cpp:
676         (WebCore::):
677         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): call getPropertyCSSValue
678         * css/CSSComputedStyleDeclaration.h: add getPropertyCSSValue
679         * css/CSSGrammar.y:
680         * css/CSSParser.cpp:
681         (WebCore::CSSParser::parseValue):
682         * css/CSSStyleDeclaration.cpp:
683         (WebCore::propertyID):
684         * css/CSSStyleSelector.cpp:
685         (WebCore::CSSStyleSelector::applyProperty):
686         * ksvg2/css/CSSPropertyNames.in: remove font-size-adjust
687         * ksvg2/css/SVGCSSComputedStyleDeclaration.cpp: Added.
688         (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue): added.
689         * ksvg2/css/SVGCSSParser.cpp:
690         (WebCore::CSSParser::parseSVGValue):
691         * ksvg2/css/SVGCSSStyleSelector.cpp:
692         (WebCore::CSSStyleSelector::applySVGProperty):
693         * ksvg2/scripts/cssmakeprops: Removed.
694         * ksvg2/scripts/cssmakevalues: Removed.
695         * ksvg2/svg/SVGAnimationElement.cpp:
696         * ksvg2/svg/SVGStyledElement.cpp:
697         (WebCore::mapAttributeToCSSProperty):
698         (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName): remove font-size-adjust
699
700 2007-10-08  Sam Weinig  <sam@webkit.org>
701
702         Reviewed by Steve Falkenburg;
703
704         Fix for <rdar://problem/5519698> CrashTracer: [USER] 47 crashes in Safari at com.apple.WebCore: WebCore::XMLTokenizer::lineNumber const + 9
705
706         Test: fast/innerHTML/innerHTML-script-tag-crash.xhtml
707
708         * dom/XMLTokenizer.cpp:
709         (WebCore::XMLTokenizer::lineNumber): Return 1 when there is no context.
710         (WebCore::XMLTokenizer::columnNumber): ditto.
711
712 2007-10-08  Alexey Proskuryakov  <ap@webkit.org>
713
714         * platform/mac/FontPlatformDataMac.mm:
715         (WebCore::FontPlatformData::setFont): Restored one of the -1 checks removed in
716         the previous change - we do need to check m_font!
717
718 2007-10-08  Alexey Proskuryakov  <ap@webkit.org>
719
720         Reviewed by Darin.
721
722         http://bugs.webkit.org/show_bug.cgi?id=15397
723         Layout tests freeze in HashTable::lookup
724
725         Fixes a DRT freeze on PowerPC.
726
727         * platform/mac/FontPlatformDataMac.mm:
728         (WebCore::FontPlatformData::FontPlatformData): Don't ask for a size of a nil font,
729         the result is undefined.
730         (WebCore::FontPlatformData::setFont): Ditto. Also removed some checks for -1 that
731         were not sufficient, and thus likely unnecessary,
732
733 2007-10-07  Nikolas Zimmermann  <zimmermann@kde.org>
734
735         Reviewed by Eric.
736
737         Fix some issues with rotation & baseline-shift, when spanning
738         across <tspan> elements. Highlighted by the existing batik tests.
739
740         * rendering/SVGCharacterLayoutInfo.cpp:
741         (WebCore::SVGCharacterLayoutInfo::SVGCharacterLayoutInfo):
742         (WebCore::SVGCharacterLayoutInfo::processedChunk):
743         (WebCore::SVGChar::characterTransform):
744         * rendering/SVGCharacterLayoutInfo.h:
745         * rendering/SVGInlineTextBox.cpp:
746         (WebCore::SVGInlineTextBox::calculateGlyphBoundaries):
747         (WebCore::SVGInlineTextBox::paintCharacters):
748         (WebCore::SVGInlineTextBox::paintDecoration):
749         * rendering/SVGRootInlineBox.cpp:
750         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
751
752 2007-10-07  Mark Rowe  <mrowe@apple.com>
753
754         Reviewed by Maciej.
755
756         Bug 5122: Need an equivalent of Mozilla's DOMContentLoaded event
757         http://bugs.webkit.org/show_bug.cgi?id=5122
758
759         This is based on a patch by Daniel Peebles (pumpkingod@gmail.com).
760
761         Test: http/tests/loading/DOMContentLoaded-event.html
762
763         * dom/Document.cpp:
764         (WebCore::Document::finishedParsing): Dispatch the DOMContentLoaded event when parsing completes.
765         * dom/EventNames.h:  Add DOMContentLoaded to the list of events.
766
767 2007-10-07  Alexey Proskuryakov  <ap@webkit.org>
768
769         Reviewed by Eric Seidel.
770
771         http://bugs.webkit.org/show_bug.cgi?id=15368
772         xsl:import fails when preceded by comment
773
774         Test: fast/xsl/import-after-comment.xml
775
776         * xml/XSLStyleSheet.cpp:
777         (WebCore::XSLStyleSheet::loadChildSheets): It's OK for xsl:import to be preceded by
778         non-element nodes.
779
780 2007-10-07  Vincent Ricard  <magic@magicninja.org>
781
782         Reviewed by Maciej.  Landed by eseidel.
783
784         http://bugs.webkit.org/show_bug.cgi?id=15062
785         Implement document.compatMode
786
787         Tests: fast/dom/compatMode-AlmostStrict.html
788                fast/dom/compatMode-Compat.html
789                fast/dom/compatMode-Strict.html
790
791         * html/HTMLDocument.cpp:
792         (WebCore::HTMLDocument::compatMode):
793         * html/HTMLDocument.h:
794         * html/HTMLDocument.idl:
795
796 2007-10-07  Sam Weinig  <sam@webkit.org>
797
798         Reviewed by Darin & Nikolas.  Landed by eseidel.
799
800         Patch for http://bugs.webkit.org/show_bug.cgi?id=14455
801         Autogenerate the JS bindings for the StyleSheetList
802
803         * DerivedSources.make:
804         * WebCore.pro:
805         * WebCore.vcproj/WebCore.vcproj:
806         * WebCore.xcodeproj/project.pbxproj:
807         * bindings/js/JSStyleSheetListCustom.cpp: Added.
808         (WebCore::JSStyleSheetList::canGetItemsForName):
809         (WebCore::JSStyleSheetList::nameGetter):
810         * bindings/js/kjs_css.cpp:
811         * bindings/js/kjs_css.h:
812         * bindings/objc/DOMUtility.mm:
813         * bindings/scripts/CodeGeneratorJS.pm:
814         * css/StyleSheetList.cpp:
815         (WebCore::StyleSheetList::StyleSheetList):
816         (WebCore::StyleSheetList::documentDestroyed):
817         (WebCore::StyleSheetList::getNamedItem):
818         * css/StyleSheetList.h: Add Document member variable and
819         getNamedItem function to accommodate the odd javascript 
820         name getter functionality.
821         * css/StyleSheetList.idl:
822         * dom/Document.cpp:
823         (WebCore::Document::Document):
824         (WebCore::Document::~Document):
825         * page/DOMWindow.idl: Add StyleSheetListConstructor
826
827 2007-10-07  Lars Naesbye Christensen  <lars@naesbye.dk>
828
829         Reviewed by Eric Seidel.
830
831         make CSS cell cursor more mac-like
832         http://bugs.webkit.org/show_bug.cgi?id=15325
833
834         * Resources/cellCursor.png:
835
836 2007-10-06  Eric Seidel  <eric@webkit.org>
837
838         Reviewed by Oliver.
839         
840         SVG does not correctly handle onfocusin, onfocusout or onactivate
841         http://bugs.webkit.org/show_bug.cgi?id=12573
842
843         Test: svg/W3C-SVG-1.1/script-handle-02-b.svg
844
845         * ksvg2/svg/SVGElement.cpp:
846         (WebCore::SVGElement::parseMappedAttribute):
847         * ksvg2/svg/svgattrs.in: add onfocusin, onfocusout and onactivate
848
849 2007-10-06  Nikolas Zimmermann  <zimmermann@kde.org>
850
851         Reviewed by Oliver.
852
853         Never pass null input images to CICrop filter.
854
855         * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
856         (WebCore::SVGFEComponentTransfer::getCIFilter):
857         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
858
859 2007-10-06  Mark Rowe  <mrowe@apple.com>
860
861         Reviewed by Alp Toker.
862
863         Gtk+ build fix and minor code cleanup.
864
865         * WebCore.pro:
866         * platform/gtk/FontCacheGtk.cpp:
867         (WebCore::FontCache::getLastResortFallbackFont):
868         (WebCore::FontCache::fontExists):
869
870 2007-10-06  Alexey Proskuryakov  <ap@webkit.org>
871
872         Reviewed by Mitz.
873
874         http://bugs.webkit.org/show_bug.cgi?id=15380
875         XPath: id('foo') doesn't resolve correctly
876
877         Test: fast/xpath/id-simple.html
878
879         * xml/XPathFunctions.cpp:
880         (WebCore::XPath::FunId::evaluate): Fixed a logic error in id() parameter parsing.
881
882 2007-10-06  Alexey Proskuryakov  <ap@webkit.org>
883
884         Reviewed by Darin.
885
886         Patch for http://bugs.webkit.org/show_bug.cgi?id=13707
887         REGRESSION: JavaScript exceptions on quotes.burntelectrons.org
888
889         http://bugs.webkit.org/show_bug.cgi?id=12628
890         document.body is not supported in XHTML documents
891
892         http://bugs.webkit.org/show_bug.cgi?id=14213
893         On page with MIME type application/xhtml+xml, cookie don't work
894
895         Moved a bunch of methods and properties from HTMLDocument down into Document to make
896         them available for all documents (xml, svg).
897         What was kept in HTMLDocument:
898         - some methods and properties that are not in HTML5 (yet?);
899         - open/write/writeln/close, as they will need to be modified to work on XML documents, and aren't
900         of much use for those anyway;
901         - designMode, because its definition in HTML5 is incompatible with our implementation.
902
903         Covered by existing tests.
904
905         * bindings/js/JSDocumentCustom.cpp:
906         (WebCore::JSDocument::location):
907         (WebCore::JSDocument::setLocation):
908         * bindings/js/JSHTMLDocumentCustom.cpp:
909         * bindings/objc/PublicDOMInterfaces.h:
910         * dom/Document.cpp:
911         (WebCore::Document::setBody):
912         (WebCore::Document::cookie):
913         (WebCore::Document::setCookie):
914         (WebCore::Document::lastModified):
915         * dom/Document.h:
916         (WebCore::Document::title):
917         * dom/Document.idl:
918         * html/HTMLDocument.cpp:
919         * html/HTMLDocument.h:
920         * html/HTMLDocument.idl:
921
922 2007-10-06  Eric Seidel  <eric@webkit.org>
923
924         Reviewed by Oliver Hunt.
925
926         RenderSVGContainer (<g>) should not repaint when its bounds change (unless it has a filter)
927         http://bugs.webkit.org/show_bug.cgi?id=15388
928         This makes the Sun Lively Kernel invalidate only what it should!
929         
930         No tests possible in DRT.
931
932         * ksvg2/svg/SVGCircleElement.cpp:
933         (WebCore::SVGCircleElement::notifyAttributeChange): replace call to rebuildRenderer
934         * ksvg2/svg/SVGEllipseElement.cpp:
935         (WebCore::SVGEllipseElement::notifyAttributeChange): replace call to rebuildRenderer
936         * ksvg2/svg/SVGImageElement.cpp:
937         (WebCore::SVGImageElement::notifyAttributeChange): replace call to rebuildRenderer
938         (WebCore::SVGImageElement::hasRelativeValues): implemented
939         * ksvg2/svg/SVGImageElement.h:
940         * ksvg2/svg/SVGLineElement.cpp:
941         (WebCore::SVGLineElement::notifyAttributeChange): replace call to rebuildRenderer
942         * ksvg2/svg/SVGPathElement.cpp:
943         (WebCore::SVGPathElement::notifyAttributeChange): replace call to rebuildRenderer
944         * ksvg2/svg/SVGPolyElement.cpp:
945         (WebCore::SVGPolyElement::notifyAttributeChange): replace call to rebuildRenderer
946         * ksvg2/svg/SVGRectElement.cpp:
947         (WebCore::SVGRectElement::notifyAttributeChange): replace call to rebuildRenderer
948         * ksvg2/svg/SVGStyledElement.cpp:
949         * ksvg2/svg/SVGStyledElement.h:
950         (WebCore::SVGStyledElement::hasRelativeValues): default to true instead
951         * ksvg2/svg/SVGStyledTransformableElement.cpp:
952         (WebCore::SVGStyledTransformableElement::updateLocalTransform): don't layout if no change
953         * ksvg2/svg/SVGStyledTransformableElement.h:
954         * ksvg2/svg/SVGTransform.h:
955         * rendering/RenderPath.cpp:
956         (WebCore::RenderPath::layout):
957         * rendering/RenderPath.h:
958         * rendering/RenderSVGContainer.cpp:
959         (WebCore::RenderSVGContainer::layout):
960         (WebCore::RenderSVGContainer::selfWillPaint): return true if have a filter
961         (WebCore::RenderSVGContainer::paint):
962         * rendering/RenderSVGContainer.h:
963         * rendering/RenderSVGHiddenContainer.cpp:
964         (WebCore::RenderSVGHiddenContainer::layout):
965         * rendering/RenderSVGRoot.cpp:
966         (WebCore::RenderSVGRoot::layout):
967         * rendering/RenderSVGViewportContainer.cpp:
968         (WebCore::RenderSVGViewportContainer::layout):
969         (WebCore::RenderSVGViewportContainer::calcViewport): use floats
970
971 2007-10-06  Rob Buis  <buis@kde.org>
972
973         Reviewed by Eric.
974
975         Use document() instead of ownerDocument() and a few other cleanups.
976
977         * ksvg2/misc/SVGDocumentExtensions.cpp:
978         (WebCore::SVGDocumentExtensions::mapInstanceToElement):
979         * ksvg2/svg/SVGCircleElement.cpp:
980         (WebCore::SVGCircleElement::notifyAttributeChange):
981         * ksvg2/svg/SVGClipPathElement.cpp:
982         (WebCore::SVGClipPathElement::notifyAttributeChange):
983         * ksvg2/svg/SVGElementInstance.cpp:
984         (WebCore::containsUseChildNode):
985         * ksvg2/svg/SVGEllipseElement.cpp:
986         (WebCore::SVGEllipseElement::notifyAttributeChange):
987         * ksvg2/svg/SVGGradientElement.cpp:
988         (WebCore::SVGGradientElement::notifyAttributeChange):
989         * ksvg2/svg/SVGImageElement.cpp:
990         (WebCore::SVGImageElement::notifyAttributeChange):
991         * ksvg2/svg/SVGLineElement.cpp:
992         (WebCore::SVGLineElement::notifyAttributeChange):
993         * ksvg2/svg/SVGMarkerElement.cpp:
994         (WebCore::SVGMarkerElement::notifyAttributeChange):
995         * ksvg2/svg/SVGMaskElement.cpp:
996         (WebCore::SVGMaskElement::notifyAttributeChange):
997         * ksvg2/svg/SVGPathElement.cpp:
998         (WebCore::SVGPathElement::notifyAttributeChange):
999         * ksvg2/svg/SVGPatternElement.cpp:
1000         (WebCore::SVGPatternElement::notifyAttributeChange):
1001         * ksvg2/svg/SVGPolyElement.cpp:
1002         (WebCore::SVGPolyElement::notifyAttributeChange):
1003         * ksvg2/svg/SVGRectElement.cpp:
1004         (WebCore::SVGRectElement::notifyAttributeChange):
1005         * ksvg2/svg/SVGStopElement.cpp:
1006         (WebCore::SVGStopElement::notifyAttributeChange):
1007
1008 2007-10-05  Eric Seidel  <eric@webkit.org>
1009
1010         Reviewed by Oliver Hunt.
1011
1012         SVG invalidates way too much during layout()
1013         http://bugs.webkit.org/show_bug.cgi?id=14003
1014
1015         * ksvg2/svg/SVGElement.cpp:
1016         (WebCore::SVGElement::ownerSVGElement): simplify if
1017         (WebCore::SVGElement::viewportElement): simplify if
1018         * rendering/RenderSVGContainer.cpp:
1019         (WebCore::RenderSVGContainer::layout): only layout children if parent changed
1020         * rendering/RenderSVGRoot.cpp:
1021         (WebCore::RenderSVGRoot::layout): only layout children when size changes
1022         * rendering/RenderSVGText.cpp:
1023         (WebCore::RenderSVGText::layout): hack to avoid bad RenderBlock::layout code
1024         * rendering/RenderSVGViewportContainer.cpp:
1025         (WebCore::RenderSVGViewportContainer::layout): don't use RenderSVGContainer::layout()
1026
1027 2007-10-05  Oliver Hunt  <oliver@apple.com>
1028
1029         Reviewed by Eric.
1030
1031         30%+ performance improvement for svg embedded in xhtml
1032
1033         Relayout internal to SVG was incorrectly being propagated to
1034         the containing xhtml element, which subsequently resulted in
1035         a full paint of the SVG, rather than just the dirty regions.
1036
1037         * rendering/RenderObject.cpp:
1038         (WebCore::objectIsRelayoutBoundary):
1039         (WebCore::RenderObject::markContainingBlocksForLayout):
1040
1041 2007-10-03  Eric Seidel  <eric@webkit.org>
1042
1043         Reviewed by Maciej.
1044         
1045         http://bugs.webkit.org/show_bug.cgi?id=12310
1046         Remove static variables from removeAllChildren causing crash.
1047         removeAllChildren now iterates over the entire tree instead of recursing.
1048         Also (according to Maciej) a possible 1-2% speedboost on HTML iBench.
1049
1050         Test: fast/images/svg-background-crash-on-refresh.html
1051
1052         * WebCore.xcodeproj/project.pbxproj:
1053         * dom/ContainerNode.cpp:
1054         (WebCore::addChildNodesToDeletionQueue):
1055         (WebCore::ContainerNode::removeAllChildren): use new addChildNodesToDeletionQueue
1056
1057 2007-10-03  David Hyatt  <hyatt@apple.com>
1058
1059         Land support for the CSS @font-face rule.  This patch allows custom fonts
1060         to be downloaded from the Web and rendered in Web pages.  Right now only
1061         TrueType fonts are supported.  Proprietary formats like .eot are not
1062         supported.
1063
1064         Reviewed by Eric Seidel
1065
1066         Many tests will be coming in a future landing.
1067
1068         * WebCore.base.exp:
1069         Expose some more stuff for WebKit, caused by font restructuring.
1070
1071         * WebCore.xcodeproj/project.pbxproj:
1072         Add all the new font face files.
1073
1074         * css/CSSComputedStyleDeclaration.cpp:
1075         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1076         Make sure to ignore the 'src' property of @font-face rules.
1077
1078         * css/CSSFontFace.cpp: Added.
1079         (WebCore::CSSFontFace::CSSFontFace):
1080         (WebCore::CSSFontFace::~CSSFontFace):
1081         (WebCore::CSSFontFace::isLoaded):
1082         (WebCore::CSSFontFace::isValid):
1083         (WebCore::CSSFontFace::addSource):
1084         (WebCore::CSSFontFace::fontLoaded):
1085         (WebCore::CSSFontFace::getFontData):
1086         * css/CSSFontFace.h: Added.
1087         A CSSFontFace is a composite object.  It consists of multiple font-face sources, where each source represents either a remote or local
1088         file in a @font-face rule's src list.
1089
1090         * css/CSSFontFaceRule.cpp:
1091         (WebCore::CSSFontFaceRule::setDeclaration):
1092         (WebCore::CSSFontFaceRule::cssText):
1093         * css/CSSFontFaceRule.h:
1094         The implementation of the @font-face rule itself in the CSS sheet back end.
1095         
1096         * css/CSSFontFaceSource.cpp: Added.
1097         (WebCore::CSSFontFaceSource::CSSFontFaceSource):
1098         (WebCore::CSSFontFaceSource::~CSSFontFaceSource):
1099         (WebCore::CSSFontFaceSource::pruneTable):
1100         (WebCore::CSSFontFaceSource::isLoaded):
1101         (WebCore::CSSFontFaceSource::isValid):
1102         (WebCore::CSSFontFaceSource::fontLoaded):
1103         (WebCore::CSSFontFaceSource::getFontData):
1104         * css/CSSFontFaceSource.h: Added.
1105         (WebCore::CSSFontFaceSource::string):
1106         (WebCore::CSSFontFaceSource::setFontFace):
1107         A font face source represents a single remote or local font.  If it represents a remote font than it wraps a CachedFont.
1108         
1109         * css/CSSFontFaceSrcValue.cpp: Added.
1110         (WebCore::CSSFontFaceSrcValue::isSupportedFormat):
1111         (WebCore::CSSFontFaceSrcValue::cssText):
1112         * css/CSSFontFaceSrcValue.h: Added.
1113         (WebCore::CSSFontFaceSrcValue::m_isLocal):
1114         (WebCore::CSSFontFaceSrcValue::~CSSFontFaceSrcValue):
1115         (WebCore::CSSFontFaceSrcValue::resource):
1116         (WebCore::CSSFontFaceSrcValue::format):
1117         (WebCore::CSSFontFaceSrcValue::isLocal):
1118         (WebCore::CSSFontFaceSrcValue::setFormat):
1119         Used in parsing.  Represents the parsed form of the src value that can then be used to build up a CSSFontFace.
1120
1121         * css/CSSFontSelector.cpp: Added.
1122         (WebCore::CSSFontSelector::CSSFontSelector):
1123         (WebCore::CSSFontSelector::~CSSFontSelector):
1124         (WebCore::CSSFontSelector::isEmpty):
1125         (WebCore::CSSFontSelector::docLoader):
1126         (WebCore::hashForFont):
1127         (WebCore::CSSFontSelector::addFontFaceRule):
1128         (WebCore::CSSFontSelector::fontLoaded):
1129         (WebCore::CSSFontSelector::getFontData):
1130         * css/CSSFontSelector.h: Added.
1131         The CSS font selector is the object that selects the correct font given a specified font family.  It builds up a database of CSSFontFaces that can then be handed
1132         back.
1133
1134         * css/CSSGrammar.y:
1135         * css/CSSParser.cpp:
1136         (WebCore::CSSParser::parseValue):
1137         (WebCore::CSSParser::parseFontFaceSrc):
1138         (WebCore::CSSParser::createFontFaceRule):
1139         * css/CSSParser.h:
1140         Modify the CSS grammar to now understand @font-face rules.
1141
1142         * css/CSSPropertyNames.in:
1143         Add the src property.
1144
1145         * css/CSSStyleSelector.cpp:
1146         (WebCore::CSSStyleSelector::CSSStyleSelector):
1147         (WebCore::CSSStyleSelector::styleForElement):
1148         (WebCore::CSSStyleSelector::updateFont):
1149         (WebCore::CSSRuleSet::addRulesFromSheet):
1150         (WebCore::CSSStyleSelector::applyProperty):
1151         (WebCore::CSSStyleSelector::ensureFontSelector):
1152         * css/CSSStyleSelector.h:
1153         (WebCore::CSSStyleSelector::fontSelector):
1154         The style selector now creates a font selector object and feeds it the appropriate information when @font-face rules are encountered.
1155     
1156         * dom/Document.cpp:
1157         (WebCore::Document::recalcStyle):
1158         Patch the update method now that it takes a font selector argument.
1159     
1160         * loader/Cache.cpp:
1161         (WebCore::createResource):
1162         (WebCore::Cache::getStatistics):
1163         * loader/Cache.h:
1164         Teach the Cache about CachedFonts.
1165
1166         * loader/CachedFont.cpp: Added.
1167         (WebCore::CachedFont::CachedFont):
1168         (WebCore::CachedFont::~CachedFont):
1169         (WebCore::CachedFont::ref):
1170         (WebCore::CachedFont::data):
1171         (WebCore::CachedFont::beginLoadIfNeeded):
1172         (WebCore::CachedFont::ensureCustomFontData):
1173         (WebCore::CachedFont::platformDataFromCustomData):
1174         (WebCore::CachedFont::allReferencesRemoved):
1175         (WebCore::CachedFont::checkNotify):
1176         (WebCore::CachedFont::error):
1177         * loader/CachedFont.h: Added.
1178         (WebCore::CachedFont::schedule):
1179         The implementation of CachedFont.  This represents the downloaded resource and has all the raw font data.
1180
1181         * loader/CachedResource.h:
1182         (WebCore::CachedResource::):
1183         * loader/CachedResourceClient.h:
1184         (WebCore::CachedResourceClient::fontLoaded):
1185         Add a new fontLoaded method for clients of cached resources to track when fonts finish downloading.
1186     
1187         * loader/DocLoader.cpp:
1188         (WebCore::DocLoader::requestFont):
1189         * loader/DocLoader.h:
1190          Add the ability to request a font.
1191
1192         * platform/Font.cpp:
1193         (WebCore::Font::operator==):
1194         (WebCore::Font::update):
1195         (WebCore::Font::drawText):
1196         * platform/Font.h:
1197         * platform/FontCache.cpp:
1198         (WebCore::FontCache::getFontData):
1199         * platform/FontCache.h:
1200         * platform/FontData.cpp:
1201         (WebCore::FontData::FontData):
1202         * platform/FontData.h:
1203         (WebCore::FontData::isCustomFont):
1204         (WebCore::FontData::isLoading):
1205         * platform/FontFallbackList.cpp:
1206         (WebCore::FontFallbackList::FontFallbackList):
1207         (WebCore::FontFallbackList::invalidate):
1208         (WebCore::FontFallbackList::fontDataAt):
1209         * platform/FontFallbackList.h:
1210         (WebCore::FontFallbackList::loadingCustomFonts):
1211         (WebCore::FontFallbackList::fontSelector):
1212         * platform/FontSelector.h: Added.
1213         (WebCore::FontSelector::~FontSelector):
1214         * platform/GlyphPageTreeNode.cpp:
1215         (WebCore::GlyphPageTreeNode::getRoot):
1216         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
1217         (WebCore::GlyphPageTreeNode::~GlyphPageTreeNode):
1218         (WebCore::GlyphPageTreeNode::initializePage):
1219         (WebCore::GlyphPageTreeNode::getChild):
1220         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
1221         * platform/GlyphPageTreeNode.h:
1222         (WebCore::GlyphPageTreeNode::GlyphPageTreeNode):
1223         (WebCore::GlyphPageTreeNode::page):
1224         * platform/PopupMenuClient.h:
1225         * platform/mac/FontCacheMac.mm:
1226         (WebCore::FontCache::getFontDataForCharacters):
1227         (WebCore::FontCache::getLastResortFallbackFont):
1228         (WebCore::FontCache::fontExists):
1229         (WebCore::FontCache::createFontPlatformData):
1230         * platform/mac/FontCustomPlatformData.cpp: Added.
1231         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
1232         (WebCore::FontCustomPlatformData::fontPlatformData):
1233         (WebCore::createFontCustomPlatformData):
1234         * platform/mac/FontCustomPlatformData.h: Added.
1235         (WebCore::FontCustomPlatformData::FontCustomPlatformData):
1236         * platform/mac/FontDataMac.mm:
1237         (WebCore::initFontData):
1238         (WebCore::FontData::platformInit):
1239         (WebCore::FontData::smallCapsFontData):
1240         (WebCore::FontData::platformWidthForGlyph):
1241         (WebCore::FontData::checkShapesArabic):
1242         * platform/mac/FontMac.mm:
1243         (WebCore::initializeATSUStyle):
1244         (WebCore::Font::drawGlyphs):
1245         * platform/mac/FontPlatformData.h:
1246         (WebCore::FontPlatformData::FontPlatformData):
1247         (WebCore::FontPlatformData::hash):
1248         (WebCore::FontPlatformData::operator==):
1249         * platform/mac/FontPlatformDataMac.mm: Added.
1250         (WebCore::FontPlatformData::FontPlatformData):
1251         (WebCore::~FontPlatformData):
1252         (WebCore::FontPlatformData::setFont):
1253         * platform/mac/WebCoreSystemInterface.h:
1254         * platform/mac/WebCoreSystemInterface.mm:
1255         * platform/win/FontCacheWin.cpp:
1256         (WebCore::FontCache::getLastResortFallbackFont):
1257         (WebCore::FontCache::fontExists):
1258         * platform/win/FontCustomPlatformData.cpp: Added.
1259         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
1260         (WebCore::FontCustomPlatformData::fontPlatformData):
1261         (WebCore::getData):
1262         (WebCore::releaseData):
1263         (WebCore::getBytesWithOffset):
1264         (WebCore::createFontCustomPlatformData):
1265         * platform/win/FontCustomPlatformData.h: Added.
1266         (WebCore::FontCustomPlatformData::FontCustomPlatformData):
1267         * platform/win/FontDataWin.cpp:
1268         (WebCore::FontData::platformInit):
1269         (WebCore::FontData::platformDestroy):
1270         (WebCore::FontData::smallCapsFontData):
1271         (WebCore::FontData::containsCharacters):
1272         (WebCore::FontData::determinePitch):
1273         * platform/win/FontPlatformData.h:
1274         (WebCore::FontPlatformData::FontPlatformData):
1275         (WebCore::FontPlatformData::hash):
1276         (WebCore::FontPlatformData::operator==):
1277         * platform/win/FontPlatformDataWin.cpp:
1278         (WebCore::FontPlatformData::FontPlatformData):
1279         * platform/win/PopupMenuWin.cpp:
1280         (WebCore::PopupMenu::paint):
1281         Changes to platform to support rendering of custom fonts.  Too large to go into, but for ports, the relevant object to implement is
1282         FontCustomPlatformData (to get the data loaded into your native font format), and then you have to patch your other font objects to know
1283         how to use the font.
1284
1285         * rendering/RenderListBox.cpp:
1286         (WebCore::RenderListBox::updateFromElement):
1287         (WebCore::RenderListBox::paintItemForeground):
1288         * rendering/RenderMenuList.cpp:
1289         (WebCore::RenderMenuList::fontSelector):
1290         * rendering/RenderMenuList.h:
1291         * rendering/RenderTextControl.cpp:
1292         (WebCore::RenderTextControl::fontSelector):
1293         * rendering/RenderTextControl.h:
1294         * rendering/RenderThemeMac.mm:
1295         (WebCore::RenderThemeMac::setFontFromControlSize):
1296         * rendering/RenderThemeSafari.cpp:
1297         (WebCore::RenderThemeSafari::setFontFromControlSize):
1298         Patches for update now taking a font selector argument.
1299     
1300 2007-10-03  Rob Buis  <buis@kde.org>
1301
1302         Reviewed by Eric.
1303
1304         Remove unneeded code and other cleanups.
1305
1306         * ksvg2/svg/SVGScriptElement.cpp:
1307         (WebCore::SVGScriptElement::parseMappedAttribute):
1308         * ksvg2/svg/SVGScriptElement.h:
1309
1310 2007-10-03  Rob Buis  <buis@kde.org>
1311
1312         Reviewed by Maciej.
1313
1314         http://bugs.webkit.org/show_bug.cgi?id=15260
1315         Any styles defined after <element> {<property>:%} style are ignored by Safari
1316     
1317         Add dummy rule to skip constructions like width: %.
1318
1319         * css/CSSGrammar.y:
1320
1321 2007-10-03  Mark Rowe  <mrowe@apple.com>
1322
1323         Reviewed by Lars.
1324
1325         Get Gtk+ port building on the feature branch.
1326
1327         * WebCore.pro:
1328         * ksvg2/svg/SVGSVGElement.cpp:
1329         * platform/graphics/svg/cairo/RenderPathCairo.cpp:
1330         (WebCore::RenderPath::strokeContains):
1331         * platform/graphics/svg/cairo/SVGPaintServerCairo.cpp:
1332         (WebCore::SVGPaintServer::draw):
1333         (WebCore::SVGPaintServer::renderPath):
1334         * platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp:
1335         (WebCore::SVGPaintServerSolid::setup):
1336         * platform/graphics/svg/cairo/SVGResourceMaskerCairo.cpp:
1337         (WebCore::SVGResourceMasker::applyMask):
1338         * rendering/SVGCharacterLayoutInfo.cpp:
1339         * rendering/SVGInlineTextBox.cpp:
1340         * rendering/SVGRootInlineBox.cpp:
1341
1342 2007-10-02  Alexey Proskuryakov  <ap@webkit.org>
1343
1344         Reviewed by Maciej.
1345
1346         http://bugs.webkit.org/show_bug.cgi?id=15102
1347         XMLHttpRequests should dispatch a readystatechange event.
1348
1349         Test: http/tests/xmlhttprequest/readystatechange.html
1350
1351         * xml/XMLHttpRequest.cpp:
1352         (WebCore::XMLHttpRequest::callReadyStateChangeListener): Added readystatechange
1353         event support. Fixed the function to dispatch the same event to all listeners
1354         instead of creating a new copy for each one. Changed bubbling/cancelability of
1355         load and readystatechange events to match Firefox.
1356
1357 2007-10-02  Eric Seidel  <eric@webkit.org>
1358
1359         Reviewed by Oliver Hunt.
1360
1361         http://bugs.webkit.org/show_bug.cgi?id=13828
1362         Fixes svg/custom/rootmost-svg-xy-attrs.xhtml
1363
1364         * WebCore.xcodeproj/project.pbxproj: fix warning about SVGDOM.h
1365         * ksvg2/svg/SVGSVGElement.cpp:
1366         (WebCore::SVGSVGElement::viewport): use new isOutermostSVG()
1367         (WebCore::SVGSVGElement::getCTM): use isOutermostSVG()
1368         (WebCore::SVGSVGElement::getScreenCTM): use isOutermostSVG()
1369         (WebCore::SVGSVGElement::createRenderer): use isOutermostSVG()
1370         (WebCore::SVGSVGElement::isOutermostSVG):
1371         * ksvg2/svg/SVGSVGElement.h: add isOutermostSVG
1372         * rendering/RenderSVGRoot.cpp:
1373         (WebCore::RenderSVGRoot::calcViewport): ignore x/y
1374
1375 2007-10-02  Maciej Stachowiak  <mjs@apple.com>
1376
1377         Reviewed by Mitz.
1378         
1379         - Avoid uselessly serializing CSS property values on replacement for 10% CK DOM speedup
1380         http://bugs.webkit.org/show_bug.cgi?id=15340
1381
1382         * css/CSSMutableStyleDeclaration.cpp:
1383         (WebCore::CSSMutableStyleDeclaration::removeProperty): Don't generate return value unless needed.
1384         (WebCore::CSSMutableStyleDeclaration::setProperty): Use the no-return version appropriately.
1385         * css/CSSMutableStyleDeclaration.h:
1386         (WebCore::CSSMutableStyleDeclaration::removeProperty): New version with no return value.
1387
1388 2007-10-02  Maciej Stachowiak  <mjs@apple.com>
1389
1390         Reviewed by Oliver.
1391
1392         - Use Vector<UChar> instead of DeprecatedString for innerHTML, for 35% speedup on CK DOM test
1393         http://bugs.webkit.org/show_bug.cgi?id=15339
1394
1395         Rewrote both versions of createMarkup to build based on
1396         Vector<UChar> instead of String. Also other miscellaneous
1397         speedups (mainly content strings are now encoded in a way that
1398         doesn't take a function call per character, and switch is avoided).
1399         
1400         This also causes a functional change - we no longer escape '>' since this was unnecessary and it's faster
1401         to avoid testing for it. See updated test results.
1402         
1403         * editing/markup.cpp:
1404         (WebCore::appendString):
1405         (WebCore::appendAttributeValue):
1406         (WebCore::escapeContentText):
1407         (WebCore::appendEscapedContent):
1408         (WebCore::appendDeprecatedString):
1409         (WebCore::appendQuotedURLAttributeValue):
1410         (WebCore::stringValueForRange):
1411         (WebCore::ucharRange):
1412         (WebCore::appendUCharRange):
1413         (WebCore::appendNamespace):
1414         (WebCore::appendStartMarkup):
1415         (WebCore::getStartMarkup):
1416         (WebCore::appendEndMarkup):
1417         (WebCore::getEndMarkup):
1418         (WebCore::appendMarkup):
1419         (WebCore::joinMarkups):
1420         (WebCore::createMarkup):
1421         * editing/markup.h:
1422         * page/mac/WebCoreFrameBridge.mm:
1423         (-[WebCoreFrameBridge markupStringFromNode:nodes:]):
1424         (-[WebCoreFrameBridge markupStringFromRange:nodes:]):
1425
1426 2007-10-02  Maciej Stachowiak  <mjs@apple.com>
1427
1428         Reviewed by Eric.
1429         
1430         - fixed "innerHTML updates layout every time (very bad if adding to it in a loop)"
1431         http://bugs.webkit.org/show_bug.cgi?id=15326
1432         (65% speedup on Celtic Kane JS 2007 DOM test)
1433
1434         * editing/markup.cpp:
1435         (WebCore::createMarkup): The Node version of this function currently never uses
1436         the render tree, so don't bother to update layout. This is the version used for
1437         innerHTML.
1438
1439 2007-10-02  Nicholas Shanks  <webkit@nickshanks.com>
1440
1441         Reviewed by eseidel & hyatt.
1442
1443         Add support for CSS3 values 'start' and 'end' to text-align property.
1444
1445         * css/cssparser.cpp:
1446         (WebCore::CSSParser::parseValue): allow start and end values
1447         * css/cssstyleselector.cpp:
1448         (WebCore::CSSStyleSelector::applyProperty): handle start and end values
1449
1450 2007-10-01  Oliver Hunt  <oliver@apple.com>
1451
1452         Reviewed by Mark.
1453
1454         Enable Experimental SVG features by default when building from Xcode
1455
1456         * Configurations/WebCore.xcconfig:
1457
1458 2007-10-01  Eric Seidel  <eric@webkit.org>
1459
1460         Reviewed by Oliver Hunt.
1461
1462         This only affects Debug builds, and the ability to save SVGs as WebArchives
1463         neither are testable via DumpRenderTree.
1464
1465         * Configurations/WebCore.xcconfig: change where Xcode looks for WebCore.exp
1466         * DerivedSources.make: adds SVG symbols to WebCore.exp when necessary
1467         * WebCore.SVG.exp: Added.
1468         * WebCore.exp: moved to WebCore.base.exp
1469         * WebCore.xcodeproj/project.pbxproj: updated to reflect moved files
1470         * bindings/objc/DOMSVGExecption.h: moved to DOMSVGException.h
1471
1472 2007-10-01  Eric Seidel  <eric@webkit.org>
1473
1474         Reviewed by olliej.
1475
1476         Make feature-branch build again with ENABLE_SVG_EXPERIMENTAL_FEATURES
1477         Needed a double -> float change to make the new filter types build.
1478
1479         Build fix, no test cases.
1480
1481         * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
1482         * ksvg2/svg/SVGComponentTransferFunctionElement.h:
1483         * ksvg2/svg/SVGFECompositeElement.cpp:
1484         * ksvg2/svg/SVGFECompositeElement.h:
1485         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
1486         * ksvg2/svg/SVGFEDiffuseLightingElement.h:
1487         * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
1488         * ksvg2/svg/SVGFEDisplacementMapElement.h:
1489         * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
1490         * ksvg2/svg/SVGFEGaussianBlurElement.h:
1491         * ksvg2/svg/SVGFELightElement.cpp:
1492         * ksvg2/svg/SVGFELightElement.h:
1493         * ksvg2/svg/SVGFEOffsetElement.cpp:
1494         * ksvg2/svg/SVGFEOffsetElement.h:
1495         * ksvg2/svg/SVGFESpecularLightingElement.cpp:
1496         * ksvg2/svg/SVGFESpecularLightingElement.h:
1497         * ksvg2/svg/SVGFETurbulenceElement.cpp:
1498         * ksvg2/svg/SVGFETurbulenceElement.h:
1499
1500 2007-09-30  Julien  <julien.chaffraix@gmail.com>
1501
1502         Reviewed by aroben & eseidel.
1503
1504         fix http://bugs.webkit.org/show_bug.cgi?id=14898
1505
1506         getAllResponseHeaders() separates each header with a CR LF according to the specification
1507
1508         Test: http/tests/xmlhttprequest/xmlhttprequest-crlf-getAllResponseHeader.html
1509
1510         * xml/XMLHttpRequest.cpp:
1511         (WebCore::XMLHttpRequest::getAllResponseHeaders):
1512
1513 2007-09-28  Eric Seidel  <eric@webkit.org>
1514
1515         Reviewed by Sam Wenig.
1516
1517         ASSERT when dragging <svg:image> with non-null prefix
1518         http://bugs.webkit.org/show_bug.cgi?id=15308
1519
1520         * bindings/objc/DOM.mm:
1521         (WebCore::lookupElementClass): added
1522         (WebCore::elementClass): use new lookupElementClass function
1523
1524 2007-09-25  Eric Seidel  <eric@webkit.org>
1525
1526         Reviewed by Mark Rowe.
1527
1528         I managed to break the SVG build when fixing the --no-svg build for
1529         http://bugs.webkit.org/show_bug.cgi?id=15281
1530         This adds the appropriate DOMSVG headers to the copy headers phase
1531         (in fixing the no-svg build I mistakenly re-marked them project-only)
1532
1533         * WebCore.xcodeproj/project.pbxproj:
1534
1535 2007-09-25  Eric Seidel  <eric@webkit.org>
1536
1537         Reviewed by Rob Buis.
1538
1539         Already tested by SVG/W3C-SVG-1.1/linking-a-07-t.svg
1540
1541         * ksvg2/svg/SVGAElement.cpp:
1542         (WebCore::SVGAElement::defaultEventHandler): properly pass along target values
1543
1544 2007-09-22  Oliver Hunt  <oliver@apple.com>
1545
1546         Reviewed by NOBODY (Build fix).
1547
1548         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
1549         (WebCore::SVGPaintServerGradient::teardown):
1550         (WebCore::SVGPaintServerGradient::renderPath):
1551         * rendering/SVGRootInlineBox.cpp:
1552         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
1553
1554 2007-09-09  Nikolas Zimmermann  <zimmermann@kde.org>
1555
1556         Reviewed by Oliver.
1557
1558         Rework <pattern> support to take overflow & viewBox into account.
1559         Also fix all possible combinations of patternUnits/patternContentUnits, tested by several batik testcases.
1560         (Status: <mask>, <pattern>, <linearGradient>, <radialGradient>, <filter> regions work perfectly. <clipPath> is sill todo)
1561
1562         While I'm at it, add a very helpful debugging tool "dumpCGOutputImage" and rename "dumpOutputImage" to "dumpCIOutputImage".
1563         Also fix possible null image buffer problems. (ie. large alloc)
1564
1565         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12221 (Webkit ToT fails to render this pattern example)
1566
1567         * ksvg2/svg/PatternAttributes.h:
1568         (WebCore::PatternAttributes::PatternAttributes):
1569         (WebCore::PatternAttributes::x):
1570         (WebCore::PatternAttributes::y):
1571         (WebCore::PatternAttributes::width):
1572         (WebCore::PatternAttributes::height):
1573         (WebCore::PatternAttributes::setX):
1574         (WebCore::PatternAttributes::setY):
1575         (WebCore::PatternAttributes::setWidth):
1576         (WebCore::PatternAttributes::setHeight):
1577         * ksvg2/svg/SVGPatternElement.cpp:
1578         (WebCore::SVGPatternElement::buildPattern):
1579         (WebCore::SVGPatternElement::collectPatternProperties):
1580         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
1581         (WebCore::SVGPaintServerGradient::setup):
1582         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
1583         (WebCore::patternCallback):
1584         (WebCore::SVGPaintServerPattern::setup):
1585         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
1586         (WebCore::dumpCIOutputImage):
1587         (WebCore::dumpCGOutputImage):
1588
1589 2007-09-05  Nikolas Zimmermann  <zimmermann@kde.org>
1590
1591         Reviewed by Oliver.
1592
1593         Fix <mask> in userSpaceOnUse coordinates. Verified by new testcase taken from Batik.
1594
1595         * ksvg2/svg/SVGMaskElement.cpp:
1596         (WebCore::SVGMaskElement::drawMaskerContent):
1597
1598 2007-09-03  Nikolas Zimmermann  <zimmermann@kde.org>
1599
1600         Reviewed by Oliver.
1601
1602         Rewrite text painting code path, to be based on "text chunks" instead of using the InlineBox* hierarchy.
1603         This allows us to reuse paint servers as long as possible - and to actually paint in the way didacted by the spec.
1604
1605         This also implements advanced SVG text decorations (ie. stroked/filled decos with gradient/pattern).
1606         Fixes: http://bugs.webkit.org/show_bug.cgi?id=7200 (Gradient appears and disappears in SVG when text is off screen)
1607
1608         Fixes paint server usage on text paths. (ie. styled text paths, with gradients/filters).
1609
1610         * platform/graphics/svg/SVGPaintServer.h:
1611         * platform/graphics/svg/SVGPaintServerGradient.h:
1612         * platform/graphics/svg/cg/SVGPaintServerCg.cpp:
1613         (WebCore::SVGPaintServer::draw):
1614         (WebCore::SVGPaintServer::renderPath):
1615         (WebCore::SVGPaintServer::strokePath):
1616         (WebCore::SVGPaintServer::clipToStrokePath):
1617         (WebCore::SVGPaintServer::fillPath):
1618         (WebCore::SVGPaintServer::clipToFillPath):
1619         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
1620         (WebCore::findTextRootObject):
1621         (WebCore::SVGPaintServerGradient::teardown):
1622         (WebCore::SVGPaintServerGradient::renderPath):
1623         (WebCore::SVGPaintServerGradient::handleBoundingBoxModeAndGradientTransformation):
1624         (WebCore::SVGPaintServerGradient::setup):
1625         * platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp:
1626         (WebCore::SVGPaintServerSolid::setup):
1627         * platform/graphics/svg/qt/SVGPaintServerQt.cpp:
1628         (WebCore::SVGPaintServer::draw):
1629         (WebCore::SVGPaintServer::renderPath):
1630         * rendering/RenderSVGInlineText.cpp:
1631         * rendering/RenderSVGTSpan.cpp:
1632         * rendering/RenderSVGText.cpp:
1633         * rendering/RenderSVGTextPath.cpp:
1634         * rendering/SVGCharacterLayoutInfo.h:
1635         (WebCore::SVGTextChunkWalkerBase::~SVGTextChunkWalkerBase):
1636         (WebCore::SVGTextChunkWalker::SVGTextChunkWalker):
1637         (WebCore::SVGTextChunkWalker::operator()):
1638         (WebCore::SVGTextChunkWalker::start):
1639         (WebCore::SVGTextChunkWalker::end):
1640         (WebCore::SVGTextChunkWalker::setupFill):
1641         (WebCore::SVGTextChunkWalker::setupStroke):
1642         * rendering/SVGInlineFlowBox.h:
1643         * rendering/SVGInlineTextBox.cpp:
1644         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::SVGInlineTextBoxClosestCharacterToPositionWalker):
1645         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
1646         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::character):
1647         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::offset):
1648         (WebCore::SVGInlineTextBoxSelectionRectWalker::SVGInlineTextBoxSelectionRectWalker):
1649         (WebCore::SVGInlineTextBoxSelectionRectWalker::chunkPortionCallback):
1650         (WebCore::SVGInlineTextBoxSelectionRectWalker::selectionRect):
1651         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
1652         (WebCore::SVGInlineTextBox::selectionRect):
1653         (WebCore::SVGInlineTextBox::paintCharacters):
1654         (WebCore::SVGInlineTextBox::paintSelection):
1655         (WebCore::pathForDecoration):
1656         (WebCore::SVGInlineTextBox::paintDecoration):
1657         * rendering/SVGInlineTextBox.h:
1658         * rendering/SVGRenderSupport.cpp:
1659         (WebCore::prepareToRenderSVGContent):
1660         * rendering/SVGRenderSupport.h:
1661         * rendering/SVGRootInlineBox.cpp:
1662         (WebCore::SVGRootInlineBoxPaintWalker::SVGRootInlineBoxPaintWalker):
1663         (WebCore::SVGRootInlineBoxPaintWalker::~SVGRootInlineBoxPaintWalker):
1664         (WebCore::SVGRootInlineBoxPaintWalker::teardownFillPaintServer):
1665         (WebCore::SVGRootInlineBoxPaintWalker::teardownStrokePaintServer):
1666         (WebCore::SVGRootInlineBoxPaintWalker::chunkStartCallback):
1667         (WebCore::SVGRootInlineBoxPaintWalker::chunkEndCallback):
1668         (WebCore::SVGRootInlineBoxPaintWalker::chunkSetupFillCallback):
1669         (WebCore::SVGRootInlineBoxPaintWalker::chunkSetupStrokeCallback):
1670         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
1671         (WebCore::SVGRootInlineBox::paint):
1672         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
1673         (WebCore::addPaintServerToTextDecorationInfo):
1674         (WebCore::SVGRootInlineBox::retrievePaintServersForTextDecoration):
1675         (WebCore::SVGRootInlineBox::walkTextChunks):
1676         * rendering/SVGRootInlineBox.h:
1677
1678 2007-08-27  Nikolas Zimmermann  <zimmermann@kde.org>
1679
1680         Reviewed by Mitz.
1681
1682         Expose unitsPerEm() in Font classes.
1683         This is needed to implement SVG's advanced text decorations. We won't draw lines for text-decorations
1684         but fillable & strokable rectangles with a certain height, computed through unitsPerEm & font size.
1685
1686         * platform/Font.cpp:
1687         (WebCore::Font::unitsPerEm):
1688         * platform/Font.h:
1689         * platform/FontData.h:
1690         (WebCore::FontData::unitsPerEm):
1691         * platform/gdk/FontDataGdk.cpp:
1692         (WebCore::FontData::platformInit):
1693         * platform/mac/FontDataMac.mm:
1694         (WebCore::FontData::platformInit):
1695         * platform/qt/FontDataQt.cpp:
1696         (WebCore::FontData::platformInit):
1697         * platform/win/FontDataWin.cpp:
1698         (WebCore::FontData::platformInit):
1699         * platform/wx/FontDataWx.cpp:
1700         (WebCore::FontData::platformInit):
1701
1702 2007-08-27  Oliver Hunt  <oliver@apple.com>
1703
1704         Reviewed by NOBODY (Build fix).
1705
1706         Initialise iterators to appease gcc
1707
1708         * rendering/SVGInlineTextBox.cpp:
1709         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
1710
1711 2007-08-22  Rob Buis  <buis@kde.org>
1712
1713         Reviewed by Sam.
1714
1715         http://bugs.webkit.org/show_bug.cgi?id=12059
1716         SVG colors have two separate parsing paths (one CSS and one SVGColor::setRGBColor)
1717
1718         Reuse the css parser as much as possible in setRGBColor.
1719
1720         * css/cssparser.cpp:
1721         (WebCore::CSSParser::parseColor):
1722         * css/cssparser.h:
1723         * editing/ApplyStyleCommand.cpp:
1724         (WebCore::StyleChange::checkForLegacyHTMLStyleChange):
1725         * html/CanvasGradient.cpp:
1726         (WebCore::CanvasGradient::addColorStop):
1727         * html/CanvasRenderingContext2D.cpp:
1728         (WebCore::CanvasRenderingContext2D::setShadow):
1729         (WebCore::CanvasRenderingContext2D::applyShadow):
1730         * html/CanvasStyle.cpp:
1731         (WebCore::CanvasStyle::applyStrokeColor):
1732         (WebCore::CanvasStyle::applyFillColor):
1733         * ksvg2/svg/SVGColor.cpp:
1734         (WebCore::SVGColor::colorFromRGBColorString):
1735
1736 2007-08-21  Nikolas Zimmermann  <zimmermann@kde.org>
1737
1738         Reviewed by Oliver.
1739
1740         Large SVG filter rework. Bring it back in a useable state.
1741
1742         Fixes: http://bugs.webkit.org/show_bug.cgi?id=5527 (Filters need subregion support)
1743         Fixes: http://bugs.webkit.org/show_bug.cgi?id=5579 (WebKit+SVG renders full-filters-example incorrectly)
1744         Fixes: http://bugs.webkit.org/show_bug.cgi?id=5976 (filterUnits="userSpaceOnUse" is broken (breaking feTile test case))
1745         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12064 (Need function for manual style-resolution for things like gradient stops)
1746
1747         filters-blend-01-b.svg & filters-example-01-b.svg & filters-displace-01-b.svg & filters-diffuse-01-f.svg are fixed now.
1748
1749         In detail:
1750         - flood-color & flood-opacity have been incorrectly resolved on the <feBlend> parent element!
1751         - sizing of filter region was truncated in some cases, as the bbox was used to resolve the needed filter region instead of the filter rect
1752         - add subregion support to all filter primitives (primitiveUnits & filterUnits handled in all cases)
1753         - WKDisplacmentMap.cikernel incorrectly flipped the y-axis.
1754         - Correctly specify default values for all filter primitives in ksvg2/svg!
1755         - Initialize all variables of the SVGFE* classes in platform/graphics/svg/filters.
1756         - Fix 'flood-color' initial value (was set to the _stop_ color initial value)
1757           -> both initial values were pointing to 'black' though, so it was no visible problem.
1758         - Parse 'lighting-color' css property, no more hacking in SVGFEDiffuseLighting.
1759           -> Correct it's initial from black to white value fixes SVG lighting filters!
1760         - Add diffuseConstant support to feDiffuseLighting filter.
1761         - Centralize manual style resolution (needed for stop-color, flood-color & flood-opacity, lighting-color)
1762
1763         * ksvg2/css/SVGCSSParser.cpp:
1764         * ksvg2/css/SVGCSSStyleSelector.cpp:
1765         (WebCore::CSSStyleSelector::applySVGProperty):
1766         * ksvg2/css/SVGRenderStyle.h:
1767         * ksvg2/css/SVGRenderStyleDefs.cpp:
1768         (StyleMiscData::StyleMiscData):
1769         (StyleMiscData::operator==):
1770         * ksvg2/css/SVGRenderStyleDefs.h:
1771         * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
1772         (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
1773         * ksvg2/svg/SVGFEBlendElement.cpp:
1774         (WebCore::SVGFEBlendElement::SVGFEBlendElement):
1775         (WebCore::SVGFEBlendElement::filterEffect):
1776         * ksvg2/svg/SVGFEBlendElement.h:
1777         * ksvg2/svg/SVGFEColorMatrixElement.cpp:
1778         (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
1779         (WebCore::SVGFEColorMatrixElement::filterEffect):
1780         * ksvg2/svg/SVGFEColorMatrixElement.h:
1781         * ksvg2/svg/SVGFEComponentTransferElement.cpp:
1782         (WebCore::SVGFEComponentTransferElement::filterEffect):
1783         * ksvg2/svg/SVGFEComponentTransferElement.h:
1784         * ksvg2/svg/SVGFECompositeElement.cpp:
1785         (WebCore::SVGFECompositeElement::SVGFECompositeElement):
1786         (WebCore::SVGFECompositeElement::parseMappedAttribute):
1787         (WebCore::SVGFECompositeElement::filterEffect):
1788         * ksvg2/svg/SVGFECompositeElement.h:
1789         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
1790         (WebCore::SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement):
1791         (WebCore::SVGFEDiffuseLightingElement::parseMappedAttribute):
1792         (WebCore::SVGFEDiffuseLightingElement::filterEffect):
1793         * ksvg2/svg/SVGFEDiffuseLightingElement.h:
1794         * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
1795         (WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
1796         (WebCore::SVGFEDisplacementMapElement::filterEffect):
1797         * ksvg2/svg/SVGFEDisplacementMapElement.h:
1798         * ksvg2/svg/SVGFEDistantLightElement.cpp:
1799         (WebCore::SVGFEDistantLightElement::SVGFEDistantLightElement):
1800         * ksvg2/svg/SVGFEDistantLightElement.h:
1801         * ksvg2/svg/SVGFEFloodElement.cpp:
1802         (WebCore::SVGFEFloodElement::filterEffect):
1803         * ksvg2/svg/SVGFEFloodElement.h:
1804         * ksvg2/svg/SVGFEFuncAElement.cpp:
1805         * ksvg2/svg/SVGFEFuncAElement.h:
1806         * ksvg2/svg/SVGFEFuncBElement.cpp:
1807         * ksvg2/svg/SVGFEFuncBElement.h:
1808         * ksvg2/svg/SVGFEFuncGElement.cpp:
1809         (WebCore::SVGFEFuncGElement::SVGFEFuncGElement):
1810         * ksvg2/svg/SVGFEFuncGElement.h:
1811         * ksvg2/svg/SVGFEFuncRElement.cpp:
1812         * ksvg2/svg/SVGFEFuncRElement.h:
1813         * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
1814         (WebCore::SVGFEGaussianBlurElement::filterEffect):
1815         * ksvg2/svg/SVGFEGaussianBlurElement.h:
1816         * ksvg2/svg/SVGFEImageElement.cpp:
1817         (WebCore::SVGFEImageElement::notifyFinished):
1818         (WebCore::SVGFEImageElement::filterEffect):
1819         * ksvg2/svg/SVGFEImageElement.h:
1820         * ksvg2/svg/SVGFELightElement.cpp:
1821         (WebCore::SVGFELightElement::SVGFELightElement):
1822         * ksvg2/svg/SVGFELightElement.h:
1823         * ksvg2/svg/SVGFEMergeElement.cpp:
1824         (WebCore::SVGFEMergeElement::filterEffect):
1825         * ksvg2/svg/SVGFEMergeElement.h:
1826         * ksvg2/svg/SVGFEMergeNodeElement.cpp:
1827         * ksvg2/svg/SVGFEMergeNodeElement.h:
1828         * ksvg2/svg/SVGFEOffsetElement.cpp:
1829         (WebCore::SVGFEOffsetElement::filterEffect):
1830         * ksvg2/svg/SVGFEOffsetElement.h:
1831         * ksvg2/svg/SVGFEPointLightElement.h:
1832         * ksvg2/svg/SVGFESpecularLightingElement.cpp:
1833         (WebCore::SVGFESpecularLightingElement::SVGFESpecularLightingElement):
1834         (WebCore::SVGFESpecularLightingElement::parseMappedAttribute):
1835         (WebCore::SVGFESpecularLightingElement::filterEffect):
1836         (WebCore::SVGFESpecularLightingElement::updateLights):
1837         * ksvg2/svg/SVGFESpecularLightingElement.h:
1838         * ksvg2/svg/SVGFESpotLightElement.cpp:
1839         (WebCore::SVGFESpotLightElement::lightSource):
1840         * ksvg2/svg/SVGFESpotLightElement.h:
1841         * ksvg2/svg/SVGFETileElement.cpp:
1842         (WebCore::SVGFETileElement::filterEffect):
1843         * ksvg2/svg/SVGFETileElement.h:
1844         * ksvg2/svg/SVGFETurbulenceElement.cpp:
1845         (WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
1846         (WebCore::SVGFETurbulenceElement::filterEffect):
1847         * ksvg2/svg/SVGFETurbulenceElement.h:
1848         * ksvg2/svg/SVGFilterElement.cpp:
1849         (WebCore::SVGFilterElement::canvasResource):
1850         * ksvg2/svg/SVGFilterElement.h:
1851         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp:
1852         (WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
1853         (WebCore::SVGFilterPrimitiveStandardAttributes::setStandardAttributes):
1854         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
1855         * ksvg2/svg/SVGGradientElement.cpp:
1856         (WebCore::SVGGradientElement::buildStops):
1857         * ksvg2/svg/SVGStyledElement.cpp:
1858         (WebCore::SVGStyledElement::resolveStyle):
1859         * ksvg2/svg/SVGStyledElement.h:
1860         * platform/graphics/svg/SVGResourceFilter.cpp:
1861         (WebCore::SVGResourceFilter::addFilterEffect):
1862         (WebCore::SVGResourceFilter::filterBBoxForItemBBox):
1863         * platform/graphics/svg/SVGResourceFilter.h:
1864         (WebCore::SVGResourceFilter::xBoundingBoxMode):
1865         (WebCore::SVGResourceFilter::setXBoundingBoxMode):
1866         (WebCore::SVGResourceFilter::yBoundingBoxMode):
1867         (WebCore::SVGResourceFilter::setYBoundingBoxMode):
1868         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
1869         (WebCore::SVGResourceFilter::SVGResourceFilter):
1870         (WebCore::SVGResourceFilter::createFilterEffect):
1871         (WebCore::SVGResourceFilter::prepareFilter):
1872         (WebCore::dumpOutputImage):
1873         (WebCore::SVGResourceFilter::applyFilter):
1874         (WebCore::SVGResourceFilter::getCIFilterStack):
1875         (WebCore::SVGResourceFilter::imageForName):
1876         (WebCore::SVGResourceFilter::setImageForName):
1877         (WebCore::SVGResourceFilter::setOutputImage):
1878         (WebCore::alphaImageForImage):
1879         (WebCore::SVGResourceFilter::inputImage):
1880         * platform/graphics/svg/filters/SVGDistantLightSource.h:
1881         * platform/graphics/svg/filters/SVGFEBlend.cpp:
1882         (WebCore::SVGFEBlend::SVGFEBlend):
1883         * platform/graphics/svg/filters/SVGFEBlend.h:
1884         * platform/graphics/svg/filters/SVGFEColorMatrix.cpp:
1885         (WebCore::SVGFEColorMatrix::SVGFEColorMatrix):
1886         * platform/graphics/svg/filters/SVGFEColorMatrix.h:
1887         * platform/graphics/svg/filters/SVGFEComponentTransfer.cpp:
1888         (WebCore::SVGFEComponentTransfer::SVGFEComponentTransfer):
1889         * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
1890         (WebCore::SVGComponentTransferFunction::SVGComponentTransferFunction):
1891         * platform/graphics/svg/filters/SVGFEComposite.cpp:
1892         (WebCore::SVGFEComposite::SVGFEComposite):
1893         * platform/graphics/svg/filters/SVGFEComposite.h:
1894         * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
1895         (WebCore::SVGFEConvolveMatrix::SVGFEConvolveMatrix):
1896         * platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
1897         * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
1898         (WebCore::SVGFEDiffuseLighting::SVGFEDiffuseLighting):
1899         * platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
1900         * platform/graphics/svg/filters/SVGFEDisplacementMap.cpp:
1901         (WebCore::SVGFEDisplacementMap::SVGFEDisplacementMap):
1902         * platform/graphics/svg/filters/SVGFEDisplacementMap.h:
1903         * platform/graphics/svg/filters/SVGFEFlood.cpp:
1904         (WebCore::SVGFEFlood::SVGFEFlood):
1905         * platform/graphics/svg/filters/SVGFEFlood.h:
1906         * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
1907         (WebCore::SVGFEGaussianBlur::SVGFEGaussianBlur):
1908         * platform/graphics/svg/filters/SVGFEGaussianBlur.h:
1909         * platform/graphics/svg/filters/SVGFEImage.cpp:
1910         (WebCore::SVGFEImage::SVGFEImage):
1911         * platform/graphics/svg/filters/SVGFEImage.h:
1912         * platform/graphics/svg/filters/SVGFEMerge.cpp:
1913         * platform/graphics/svg/filters/SVGFEMerge.h:
1914         (WebCore::SVGFEMerge::SVGFEMerge):
1915         * platform/graphics/svg/filters/SVGFEMorphology.cpp:
1916         (WebCore::SVGFEMorphology::SVGFEMorphology):
1917         * platform/graphics/svg/filters/SVGFEMorphology.h:
1918         * platform/graphics/svg/filters/SVGFEOffset.cpp:
1919         (WebCore::SVGFEOffset::SVGFEOffset):
1920         * platform/graphics/svg/filters/SVGFEOffset.h:
1921         * platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
1922         (WebCore::SVGFESpecularLighting::SVGFESpecularLighting):
1923         * platform/graphics/svg/filters/SVGFESpecularLighting.h:
1924         * platform/graphics/svg/filters/SVGFETile.h:
1925         (WebCore::SVGFETile::SVGFETile):
1926         * platform/graphics/svg/filters/SVGFETurbulence.cpp:
1927         (WebCore::SVGFETurbulence::SVGFETurbulence):
1928         * platform/graphics/svg/filters/SVGFETurbulence.h:
1929         * platform/graphics/svg/filters/SVGFilterEffect.cpp:
1930         (WebCore::SVGFilterEffect::SVGFilterEffect):
1931         (WebCore::SVGFilterEffect::primitiveBBoxForFilterBBox):
1932         (WebCore::SVGFilterEffect::filter):
1933         (WebCore::SVGFilterEffect::setFilter):
1934         * platform/graphics/svg/filters/SVGFilterEffect.h:
1935         (WebCore::SVGFilterEffect::xBoundingBoxMode):
1936         (WebCore::SVGFilterEffect::setXBoundingBoxMode):
1937         (WebCore::SVGFilterEffect::yBoundingBoxMode):
1938         (WebCore::SVGFilterEffect::setYBoundingBoxMode):
1939         (WebCore::SVGFilterEffect::widthBoundingBoxMode):
1940         (WebCore::SVGFilterEffect::setWidthBoundingBoxMode):
1941         (WebCore::SVGFilterEffect::heightBoundingBoxMode):
1942         (WebCore::SVGFilterEffect::setHeightBoundingBoxMode):
1943         * platform/graphics/svg/filters/SVGLightSource.cpp:
1944         * platform/graphics/svg/filters/SVGLightSource.h:
1945         * platform/graphics/svg/filters/SVGPointLightSource.h:
1946         (WebCore::SVGPointLightSource::SVGPointLightSource):
1947         * platform/graphics/svg/filters/SVGSpotLightSource.h:
1948         (WebCore::SVGSpotLightSource::SVGSpotLightSource):
1949         * platform/graphics/svg/filters/cg/SVGFEBlendCg.mm:
1950         (WebCore::SVGFEBlend::getCIFilter):
1951         * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
1952         (WebCore::SVGFEColorMatrix::getCIFilter):
1953         * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
1954         (WebCore::filterForComponentFunc):
1955         (WebCore::SVGFEComponentTransfer::getCIFilter):
1956         * platform/graphics/svg/filters/cg/SVGFECompositeCg.mm:
1957         (WebCore::SVGFEComposite::getCIFilter):
1958         * platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm:
1959         (WebCore::SVGFEDiffuseLighting::getCIFilter):
1960         * platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm:
1961         (WebCore::SVGFEDisplacementMap::getCIFilter):
1962         * platform/graphics/svg/filters/cg/SVGFEFloodCg.mm:
1963         (WebCore::SVGFEFlood::getCIFilter):
1964         * platform/graphics/svg/filters/cg/SVGFEGaussianBlurCg.mm:
1965         (WebCore::SVGFEGaussianBlur::getCIFilter):
1966         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
1967         * platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
1968         (WebCore::SVGFEImage::getCIFilter):
1969         * platform/graphics/svg/filters/cg/SVGFEMergeCg.mm:
1970         (WebCore::SVGFEMerge::getCIFilter):
1971         * platform/graphics/svg/filters/cg/SVGFEOffsetCg.mm:
1972         (WebCore::SVGFEOffset::getCIFilter):
1973         * platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm:
1974         (WebCore::SVGFESpecularLighting::getCIFilter):
1975         * platform/graphics/svg/filters/cg/SVGFETileCg.mm:
1976         (WebCore::SVGFETile::getCIFilter):
1977         * platform/graphics/svg/filters/cg/SVGFilterEffectCg.mm:
1978         (WebCore::SVGFilterEffect::getCIFilter):
1979         * platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.cikernel:
1980         * platform/graphics/svg/filters/cg/WKDisplacementMapFilter.cikernel:
1981         * platform/graphics/svg/filters/cg/WKSpotLightFilter.m:
1982         (-[WKSpotLightFilter outputImage]):
1983         * platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
1984         (WebCore::SVGResourceFilter::createFilterEffect):
1985
1986 2007-08-20  Rob Buis  <buis@kde.org>
1987
1988         Reviewed by Nikolas.
1989
1990         http://bugs.webkit.org/show_bug.cgi?id=14924
1991         rotated rect with pattern draws incorrectly
1992
1993         Use the bounding box before transformation.
1994
1995         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
1996         (WebCore::SVGPaintServerPattern::setup):
1997
1998 2007-08-19  Rob Buis  <buis@kde.org>
1999
2000         Reviewed by Nikolas.
2001
2002         http://bugs.webkit.org/show_bug.cgi?id=14926
2003         WebKit has 'em' length handling problems related to CSS properties
2004
2005         Parse the properties in inline style attributes non-strict for SVG.
2006
2007         * dom/StyledElement.cpp:
2008         (WebCore::StyledElement::createInlineStyleDecl):
2009
2010 2007-08-17  Rob Buis  <buis@kde.org>
2011
2012         Reviewed by Oliver.
2013
2014         http://bugs.webkit.org/show_bug.cgi?id=14927
2015         use element in SVG does not render after parent is displayed off and on
2016
2017         Also detach the shadow tree when detaching the <use>.
2018
2019         * ksvg2/svg/SVGUseElement.cpp:
2020         (WebCore::SVGUseElement::detach):
2021         * ksvg2/svg/SVGUseElement.h:
2022
2023 2007-08-10  Nikolas Zimmermann  <zimmermann@kde.org>
2024
2025         Reviewed by Rob.
2026
2027         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14153
2028
2029         Final, long-awaited RenderSVGContainer split. Make RenderSVGContainer really a simple
2030         container without special cases for inner <svg> elements or <marker>. Create a new
2031         RenderSVGViewportContainer class handling these cases now.
2032
2033         * WebCore.xcodeproj/project.pbxproj:
2034         * ksvg2/svg/SVGMarkerElement.cpp:
2035         (WebCore::SVGMarkerElement::createRenderer):
2036         * ksvg2/svg/SVGSVGElement.cpp:
2037         (WebCore::SVGSVGElement::createRenderer):
2038         * ksvg2/svg/SVGSVGElement.h:
2039         * rendering/RenderSVGContainer.cpp:
2040         (WebCore::RenderSVGContainer::layout):
2041         (WebCore::RenderSVGContainer::applyContentTransforms):
2042         (WebCore::RenderSVGContainer::applyAdditionalTransforms):
2043         (WebCore::RenderSVGContainer::paint):
2044         (WebCore::RenderSVGContainer::viewportTransform):
2045         (WebCore::RenderSVGContainer::relativeBBox):
2046         (WebCore::RenderSVGContainer::nodeAtPoint):
2047         * rendering/RenderSVGContainer.h:
2048         * rendering/RenderSVGRoot.cpp:
2049         * rendering/RenderSVGViewportContainer.cpp: Added.
2050         (WebCore::RenderSVGViewportContainer::RenderSVGViewportContainer):
2051         (WebCore::RenderSVGViewportContainer::~RenderSVGViewportContainer):
2052         (WebCore::RenderSVGViewportContainer::layout):
2053         (WebCore::RenderSVGViewportContainer::paint):
2054         (WebCore::RenderSVGViewportContainer::applyContentTransforms):
2055         (WebCore::RenderSVGViewportContainer::applyAdditionalTransforms):
2056         (WebCore::RenderSVGViewportContainer::viewport):
2057         (WebCore::RenderSVGViewportContainer::calcViewport):
2058         (WebCore::RenderSVGViewportContainer::viewportTransform):
2059         (WebCore::RenderSVGViewportContainer::absoluteTransform):
2060         (WebCore::RenderSVGViewportContainer::nodeAtPoint):
2061         * rendering/RenderSVGViewportContainer.h: Added.
2062         (WebCore::RenderSVGViewportContainer::isSVGContainer):
2063         (WebCore::RenderSVGViewportContainer::renderName):
2064
2065 2007-08-10  Nikolas Zimmermann  <zimmermann@kde.org>
2066
2067         Reviewed by Oliver & Rob.
2068
2069         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12501 (SVG Text fails to respect opacity, fill-opacity and stroke-opacity)
2070         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14045 (Incorrect support for opacity, fill-opacity and stroke-opacity)
2071
2072         Based on an older patch from Rob, this fixes SVG text opacity as well as group opacity for solid fills & gradients.
2073         The pattern changes are still missing a testcase (need to wait for Antoine Quint for that).
2074
2075         * platform/graphics/svg/SVGResourceFilter.h:
2076         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
2077         (WebCore::SVGPaintServerGradient::setup):
2078         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
2079         (WebCore::SVGPaintServerPattern::setup):
2080         * platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp:
2081         (WebCore::colorFromFloatComponents):
2082         (WebCore::SVGPaintServerSolid::setup):
2083         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
2084         (WebCore::SVGResourceFilter::SVGResourceFilter):
2085         (WebCore::SVGResourceFilter::prepareFilter):
2086         (WebCore::SVGResourceFilter::applyFilter):
2087         * rendering/RenderPath.cpp:
2088         (WebCore::RenderPath::paint):
2089         * rendering/RenderSVGContainer.cpp:
2090         (WebCore::RenderSVGContainer::paint):
2091         (WebCore::RenderSVGContainer::absoluteClippedOverflowRect):
2092         * rendering/RenderSVGImage.cpp:
2093         (WebCore::RenderSVGImage::paint):
2094         (WebCore::RenderSVGImage::absoluteClippedOverflowRect):
2095         * rendering/RenderSVGRoot.cpp:
2096         (WebCore::RenderSVGRoot::paint):
2097         * rendering/RenderSVGText.cpp:
2098         (WebCore::RenderSVGText::absoluteClippedOverflowRect):
2099         * rendering/SVGRenderSupport.cpp:
2100         (WebCore::prepareToRenderSVGContent):
2101         (WebCore::finishRenderSVGContent):
2102         * rendering/SVGRenderSupport.h:
2103         * rendering/SVGRootInlineBox.cpp:
2104         (WebCore::prepareTextRendering):
2105         (WebCore::SVGRootInlineBox::paint):
2106         (WebCore::SVGRootInlineBox::paintChildInlineFlowBox):
2107
2108 2007-08-08  Rob Buis  <buis@kde.org>
2109
2110         Reviewed by Nikolas.
2111
2112         http://bugs.webkit.org/show_bug.cgi?id=11909
2113         Regression: large SVG from Illustrator comes out blank
2114
2115         Fix last issue with the Illustrator file by making relativeBBox
2116         calculation take into account viewBox.
2117
2118         * rendering/RenderSVGContainer.cpp:
2119         (WebCore::RenderSVGContainer::relativeBBox):
2120         * rendering/RenderSVGRoot.cpp:
2121         (WebCore::RenderSVGRoot::relativeBBox):
2122
2123 2007-08-08  Nikolas Zimmermann  <zimmermann@kde.org>
2124
2125         Reviewed by Oliver.
2126
2127         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14896 (SVG InlineText/Flow box sizes don't take rotated glyphs into account)
2128
2129         Introduce new helper function calculateGlyphBoundaries, which takes into account any per-character transformation.
2130         This fixes box size calculations in svg/W3C-SVG-1.1/text-text-07-t.svg, svg/batik/text/textEffect3.svg (rotated glyphs)
2131         -> These strings can be properly selected now, just as well as text path elements.
2132
2133         * rendering/SVGInlineTextBox.cpp:
2134         (WebCore::SVGInlineTextBox::calculateGlyphBoundaries):
2135         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
2136         (WebCore::SVGInlineTextBox::nodeAtPoint):
2137         (WebCore::SVGInlineTextBox::selectionRect):
2138         * rendering/SVGInlineTextBox.h:
2139         * rendering/SVGRootInlineBox.cpp:
2140         (WebCore::SVGRootInlineBox::layoutInlineBoxes):
2141
2142 2007-08-08  Nikolas Zimmermann  <zimmermann@kde.org>
2143
2144         Reviewed by Oliver.
2145
2146         Fixes: http://bugs.webkit.org/show_bug.cgi?id=13909 (SVG text selection doesn't work with RTL text)
2147
2148         Use drawHighlightForText() to draw the selection, instead of my home-brewn solution.
2149         Affected code in SVGRootInlineBox::paintSelectionForTextBox. Removed not anymore needed
2150         helper function cummulatedWidthOfSelectionRange.
2151
2152         Dump all contained InlineTextBox(es) in SVGRenderTreeAsText, take into account multiple
2153         child text boxes in ie. a RenderSVGInlineText objects (which happens for RTL text and
2154         LTR text cases where newlines were involved - see changed testcase results.)
2155         This affects a lot of LTR tests which actually had more than one child text box, that
2156         wasn't taken properly into account before (in terms of selection, not rendering.)
2157
2158         Fix selection for RTL text by taking box start offsets into account in closestCharacterToPosition()
2159         and by offering RTL text selection special cases in svgCharacterHitsPosition().
2160
2161         Centralized the creation of a TextStyle object for text selection/painting in a new helper function
2162         svgTextStyleForInlineTextBox. Add new helper functions calculateGlyphWidth/calculateGlyphHeight to
2163         centralize these calculations -> use these new helpers everywhere to avoid code duplication.
2164
2165         A single fix in bidi.cpp was needed to fix SVG's unicode-bidi/direction handling, to fix text-intro-02-b.svg.
2166         SVG didacts that the 'direction' attribute is ignored if unicode-bidi is set to 'normal' (default).
2167         Discussed with Mitz.
2168
2169         * rendering/RenderSVGInlineText.cpp:
2170         (WebCore::RenderSVGInlineText::positionForCoordinates):
2171         * rendering/SVGInlineTextBox.cpp:
2172         (WebCore::SVGInlineTextBox::calculateGlyphWidth):
2173         (WebCore::SVGInlineTextBox::calculateGlyphHeight):
2174         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
2175         (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
2176         (WebCore::SVGInlineTextBox::nodeAtPoint):
2177         (WebCore::SVGInlineTextBox::selectionRect):
2178         * rendering/SVGInlineTextBox.h:
2179         * rendering/SVGRenderTreeAsText.cpp:
2180         (WebCore::writeSVGInlineTextBox):
2181         (WebCore::writeSVGInlineText):
2182         * rendering/SVGRootInlineBox.cpp:
2183         (WebCore::cummulatedWidthOfInlineBoxCharacterRange): Take box start offset into account.
2184         (WebCore::svgTextStyleForInlineTextBox): New helper function.
2185         (WebCore::totalAdvanceOfInlineTextBox): Take box start offset into account.
2186         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox): Ditto. (correctly calculate advance values in RTL mode!)
2187         (WebCore::SVGRootInlineBox::paintSelectionForTextBox): Use GraphicsContext drawHighlightForText() instead of self-made hacks.
2188         (WebCore::SVGRootInlineBox::paintCharacterRangeForTextBox): Use new helper function svgTextStyleForInlineTextBox.
2189         * rendering/SVGRootInlineBox.h:
2190         * rendering/bidi.cpp: Add special case for SVG.
2191         (WebCore::RenderBlock::layoutInlineChildren):
2192
2193 2007-07-30  Nikolas Zimmermann  <zimmermann@kde.org>
2194
2195         Reviewed by Oliver & Rob.
2196
2197         Enable SVG textPath selection. Actually build chunks for them instead of
2198         ignoring them - was easier than I thought. Respect per-character transformation
2199         when calculating the chunk boundaries for the selection rectangles. Also fixes
2200         selection rect drawing of rotated characters.
2201
2202         Next thing todo is to unify the glyph size calculations, as per-glyph transformations
2203         are not respected when calculating flow box sizes in SVGRootInlineBox.
2204  
2205         * rendering/RenderObject.h:
2206         (WebCore::RenderObject::isSVGHiddenContainer):
2207         * rendering/RenderSVGHiddenContainer.h:
2208         (WebCore::RenderSVGHiddenContainer::isSVGHiddenContainer):
2209         * rendering/RenderSVGInlineText.cpp:
2210         (WebCore::isChildOfHiddenContainer):
2211         (WebCore::RenderSVGInlineText::selectionRect):
2212         (WebCore::RenderSVGInlineText::computeAbsoluteRectForRange):
2213         * rendering/SVGCharacterLayoutInfo.h:
2214         (WebCore::SVGTextChunk::SVGTextChunk):
2215         (WebCore::SVGTextChunkLayoutInfo::SVGTextChunkLayoutInfo):
2216         * rendering/SVGInlineTextBox.cpp:
2217         (WebCore::SVGInlineTextBox::selectionRect):
2218         * rendering/SVGRootInlineBox.cpp:
2219         (WebCore::applyTextAnchorToTextChunk):
2220         (WebCore::SVGRootInlineBox::buildTextChunks):
2221
2222 2007-07-25  Rob Buis  <buis@kde.org>
2223
2224         Reviewed by Nikolas.
2225
2226         http://bugs.webkit.org/show_bug.cgi?id=14312
2227         Removing an attribute has no effect on SVG
2228
2229         Update the transform matrix also when transform attribute is empty.
2230
2231         * ksvg2/svg/SVGStyledTransformableElement.cpp:
2232         (WebCore::SVGStyledTransformableElement::updateLocalTransform):
2233
2234 2007-07-26  Nikolas Zimmermann  <zimmermann@kde.org>
2235
2236         Reviewed by Oliver.
2237
2238         Unify absoluteRects() of RenderSVGTSpan & RenderSVGTextPath.
2239         The RenderSVGTextPath one was still using the old, wrong concept.
2240
2241         * rendering/RenderSVGTSpan.cpp: Remove unused params tx, ty, while I'm at it.
2242         (WebCore::RenderSVGTSpan::absoluteRects):
2243         * rendering/RenderSVGTextPath.cpp:
2244         (WebCore::RenderSVGTextPath::absoluteRects):
2245
2246 2007-07-25  Nikolas Zimmermann  <zimmermann@kde.org>
2247
2248         Reviewed by Sam.
2249
2250         Let <textPath> be recognized within the ObjC bindings.
2251         Forgot to add that months ago.
2252
2253         * bindings/objc/DOM.mm:
2254         (WebCore::createElementClassMap):
2255         * bindings/objc/DOMInternal.h:
2256         * bindings/objc/DOMSVG.h:
2257
2258 2007-07-25  Nikolas Zimmermann  <zimmermann@kde.org>
2259
2260         Reviewed by Oliver.
2261
2262         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14065
2263
2264         Fix all known bugs regarding to SVG text selection, when embedded in XHTML.
2265         Also fix inspecting <text> elements when embedded in XHTML. (WebInspector)
2266
2267         Short story: selectionRect() & friends are special in terms of the "HTML parent translation".
2268         Caused by ie. CSS translation like "left: 50px; top: 50px" when <svg> is a child of a <div>.
2269         For non-textual objects like RenderPath, we can easily add a translation to a new coordinate
2270         space in RenderSVGRoot::applyContentTransformations() and we're done with it.
2271
2272         Same for painting text, but text selection makes problems in this concept.
2273         We have to remove the 'html parent translation' from our selection rects that we return
2274         from RenderSVGText & RenderSVGInlineText. Hopefully all issues are fixed now.
2275
2276         Long story:
2277         - RenderSVGRoot::nodeAtPoint didn't take the parent 'scroll offset' into account. We exited
2278           too early, because the overflow rect wasn't correctly sized. Fixed.
2279         - RenderSVGRoot::absoluteRects() can't return the absoluteClippedOverflowRect() as it includes
2280           the 'html parent translation', which needs to be removed, otherwhise the painted rects are off
2281           when inspecting with WebInspector. -> Pass down absoluteRects() call to it's children..
2282         - RenderSVGText::absoluteRects() can't use absoluteClippedOverflowRect() for the same reason.
2283         - Add RenderSVGInlineText::computeAbsoluteRectForRange() function - shared by absoluteRects() and
2284           selectionRect() - and remove the 'html parent translation' there by asking the RenderSVGRoot
2285           object for the correct offsets.
2286
2287         This lead to nasty bugs showing that SVGInlineTextBox::selectionRect() wasn't actually returning
2288         correct rectangles. It couldn't work for text chunks the way it was implemented. Fixed by implementing
2289         it exactly the same way that closestCharacterToPosition() was done - could share more code later on.
2290
2291         * rendering/RenderSVGInlineText.cpp:
2292         (WebCore::RenderSVGInlineText::absoluteRects):
2293         (WebCore::RenderSVGInlineText::selectionRect):
2294         (WebCore::RenderSVGInlineText::computeAbsoluteRectForRange):
2295         * rendering/RenderSVGInlineText.h:
2296         * rendering/RenderSVGRoot.cpp:
2297         (WebCore::RenderSVGRoot::absoluteRects):
2298         (WebCore::RenderSVGRoot::nodeAtPoint):
2299         * rendering/RenderSVGText.cpp:
2300         (WebCore::RenderSVGText::absoluteRects):
2301         * rendering/SVGCharacterLayoutInfo.h: Removed unused variable 'bool selected'
2302         * rendering/SVGInlineTextBox.cpp:
2303         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
2304         (WebCore::SVGInlineTextBox::nodeAtPoint):
2305         (WebCore::SVGInlineTextBox::selectionRect):
2306         * rendering/SVGRootInlineBox.cpp: Add 'findSVGRootObject' helper function.
2307         (WebCore::findSVGRootObject):
2308         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
2309         (WebCore::SVGRootInlineBox::paintSelectionForTextBox): Remove unused tx/ty parameters.
2310         (WebCore::SVGRootInlineBox::paintChildInlineTextBox):
2311         (WebCore::SVGRootInlineBox::paintCharacterRangeForTextBox):
2312         * rendering/SVGRootInlineBox.h:
2313
2314 2007-07-17  Nikolas Zimmermann  <zimmermann@kde.org>
2315
2316         Build fix. Not reviewed.
2317
2318         Rob forgot to land the changes to SVGResourceMarker in his last commit.
2319
2320         * platform/graphics/svg/SVGResourceMarker.cpp:
2321         (WebCore::SVGResourceMarker::draw):
2322
2323 2007-07-17  Rob Buis  <buis@kde.org>
2324
2325         Reviewed by Nikolas.
2326
2327         http://bugs.webkit.org/show_bug.cgi?id=5996
2328         SVG <view> is unimplemented
2329
2330         Implement <view> and refactor the code in the svg renderer container classes.
2331
2332         * WebCore.xcodeproj/project.pbxproj:
2333         * ksvg2/svg/SVGDocument.cpp:
2334         (WebCore::SVGDocument::zoomAndPanEnabled): Take into account currentView for zoom/pan
2335         * ksvg2/svg/SVGDocument.h:
2336         * ksvg2/svg/SVGFEImageElement.cpp:
2337         (WebCore::SVGFEImageElement::parseMappedAttribute):
2338         * ksvg2/svg/SVGFitToViewBox.cpp:
2339         (WebCore::SVGFitToViewBox::parseViewBox):
2340         (WebCore::SVGFitToViewBox::parseMappedAttribute):
2341         * ksvg2/svg/SVGFitToViewBox.h:
2342         * ksvg2/svg/SVGImageElement.cpp:
2343         (WebCore::SVGImageElement::parseMappedAttribute):
2344         * ksvg2/svg/SVGLocatable.h:
2345         * ksvg2/svg/SVGMarkerElement.cpp:
2346         (WebCore::SVGMarkerElement::createRenderer):
2347         (WebCore::SVGMarkerElement::notifyAttributeChange):
2348         * ksvg2/svg/SVGPreserveAspectRatio.cpp:
2349         (WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio):
2350         * ksvg2/svg/SVGPreserveAspectRatio.h:
2351         * ksvg2/svg/SVGSVGElement.cpp:
2352         (WebCore::SVGSVGElement::SVGSVGElement):
2353         (WebCore::SVGSVGElement::currentView):
2354         (WebCore::SVGSVGElement::parseMappedAttribute):
2355         (WebCore::SVGSVGElement::createRenderer):
2356         (WebCore::SVGSVGElement::viewBoxToViewTransform):
2357         (WebCore::SVGSVGElement::inheritViewAttributes):
2358         * ksvg2/svg/SVGSVGElement.h:
2359         * ksvg2/svg/SVGTransformable.cpp:
2360         (WebCore::SVGTransformable::parseTransformAttribute):
2361         * ksvg2/svg/SVGTransformable.h:
2362         * ksvg2/svg/SVGViewElement.cpp:
2363         (WebCore::SVGViewElement::parseMappedAttribute):
2364         * ksvg2/svg/SVGViewElement.h:
2365         * ksvg2/svg/SVGViewSpec.cpp: Added.
2366         (WebCore::SVGViewSpec::SVGViewSpec):
2367         (WebCore::SVGViewSpec::~SVGViewSpec):
2368         (WebCore::SVGViewSpec::setTransform):
2369         (WebCore::SVGViewSpec::setViewBoxString):
2370         (WebCore::SVGViewSpec::setPreserveAspectRatioString):
2371         (WebCore::SVGViewSpec::setViewTargetString):
2372         (WebCore::SVGViewSpec::viewTarget):
2373         (WebCore::SVGViewSpec::contextElement):
2374         (WebCore::):
2375         (WebCore::SVGViewSpec::parseViewSpec):
2376         * ksvg2/svg/SVGViewSpec.h: Added.
2377         (WebCore::SVGViewSpec::transform):
2378         (WebCore::SVGViewSpec::viewTargetString):
2379         * ksvg2/svg/SVGZoomAndPan.cpp:
2380         (WebCore::SVGZoomAndPan::parseMappedAttribute):
2381         (WebCore::):
2382         (WebCore::SVGZoomAndPan::parseZoomAndPan):
2383         * ksvg2/svg/SVGZoomAndPan.h:
2384         * loader/FrameLoader.cpp:
2385         (WebCore::FrameLoader::gotoAnchor):
2386         * page/Frame.cpp:
2387         (WebCore::Frame::setZoomFactor): do not zoom when it is disabled
2388         * rendering/RenderSVGContainer.cpp:
2389         (WebCore::RenderSVGContainer::RenderSVGContainer):
2390         (WebCore::RenderSVGContainer::paint):
2391         (WebCore::RenderSVGContainer::viewportTransform):
2392         * rendering/RenderSVGContainer.h:
2393         * rendering/RenderSVGRoot.cpp:
2394         (WebCore::RenderSVGRoot::RenderSVGRoot):
2395         (WebCore::RenderSVGRoot::applyContentTransforms):
2396         (WebCore::RenderSVGRoot::paint):
2397         (WebCore::RenderSVGRoot::absoluteTransform):
2398         (WebCore::RenderSVGRoot::localTransform):
2399         * rendering/RenderSVGRoot.h:
2400
2401 2007-07-16  Nikolas Zimmermann  <zimmermann@kde.org>
2402
2403         Reviewed by Rob.
2404
2405         Fixes: http://bugs.webkit.org/show_bug.cgi?id=13611 (Crash in setAttributeNS setting href of SVG <use> to nonexistent symbol)
2406         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14631 (<use> doesn't deep-expand <symbol> elements.)
2407
2408         Rework <use> on <foreignObject> cases, to not just ignore these cases, but actually proceed and skip <fO> objects
2409         from the resulting cloned tree. This fixes parts of "treasure_map.svg" (no bug report availabe on that one, private "testcase").
2410
2411         Fix assertion happening with <use> on <g> containing <symbol>. Introduce expandSymbolElementsInShadowTree()
2412         concept, just like it's done for <use> on <use>, to deep-replace all <symbol> elements by <svg>, as demanded
2413         by the spec. This only worked on <use> on <symbol> direct cases so far.
2414
2415         Added testcase: svg/custom/use-on-g-containing-foreignObject-and-image.svg (testcase for treasure_map.svg)
2416                         svg/custom/use-on-disallowed-foreign-object-5.svg (<use> on <symbol> containg <foreignObject>)
2417                         svg/custom/use-on-disallowed-foreign-object-6.svg (<use> on <g> containing <svg> containing <foreignObject>)
2418                         svg/custom/use-on-disallowed-foreign-object-7.svg (<use> on <g> containing <symbol> containing <foreignObject>)
2419                         svg/custom/use-scripting-changes-to-nonexistant-href.svg
2420
2421         * ksvg2/svg/SVGUseElement.cpp:
2422         (WebCore::isDisallowedElement):
2423         (WebCore::subtreeContainsDisallowedElement):
2424         (WebCore::SVGUseElement::buildPendingResource):
2425         (WebCore::SVGUseElement::buildInstanceTree):
2426         (WebCore::SVGUseElement::removeDisallowedElementsFromSubtree):
2427         (WebCore::SVGUseElement::buildShadowTree):
2428         (WebCore::SVGUseElement::expandUseElementsInShadowTree):
2429         (WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
2430         * ksvg2/svg/SVGUseElement.h:
2431
2432 2007-07-15  Nikolas Zimmermann  <zimmermann@kde.org>
2433
2434         Reviewed by Rob.
2435
2436         Fix invisible-text-after-scrolling.xhtml regression. Scroll offset not
2437         taken into account properly. Also fix RenderSVGInlineText::selectionRect(),
2438         so that SVG text can be selected, when being embedded in XHTML.
2439
2440         * rendering/RenderSVGInlineText.cpp:
2441         (WebCore::RenderSVGInlineText::selectionRect):
2442         * rendering/RenderSVGRoot.cpp:
2443         (WebCore::RenderSVGRoot::applyContentTransforms):
2444
2445 2007-07-15  Nikolas Zimmermann  <zimmermann@kde.org>
2446
2447         Reviewed by Oliver.
2448
2449         Fixes: http://bugs.webkit.org/show_bug.cgi?id=5940 (<svg> inside <body> incorrectly extends over top/bottom borders)
2450         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14145 (RenderSVGContainer should not inherit from RenderContainer)
2451
2452         Make RenderSVGContainer inherit from RenderObject directly, instead of RenderContainer.
2453         Itdoes a lot of things that we don't need for SVG, and by removing this inheritance
2454         we can finally fix the differences about SVG object positioning, as we don't need
2455         parent translation (tx/ty). Fixes SVG text rendering within XHTML.
2456
2457         Fix requireLayer() function on RenderSVGRoot, as it can actually be a layer now.
2458         This change is based on Rob's patch at 5940 - fixing z-order indexing.
2459
2460         Change RenderSVGRoot renderName() and update all layout tests, because of this change.
2461         
2462         Fix absoluteRects() function for RenderSVGInlineText & RenderSVGTSpan.
2463         Checked extensively using WebInspector, to assure all rects are correctly displayed.
2464
2465         Testcases fixed: junk-data.svg, missing-xlink.svg hixie/013.xml (all regressions!)
2466         (junk-data.svg & missing-xlink.svg previously relied on SVG text painting out of <svg> overflow rect.
2467          Fix these testcases, as within this new RenderSVGContainer concept, that bug is now fixed, and breaks them)
2468
2469         Testcases added: custom/absolute-sized-svg-in-xhtml.xhtml, custom/inline-svg-in-xhtml.xml (Mozilla XTech demo)
2470
2471         * ksvg2/svg/SVGSVGElement.cpp:
2472         (WebCore::SVGSVGElement::parseMappedAttribute):
2473         * rendering/RenderObject.cpp:
2474         (WebCore::RenderObject::containingBlock):
2475         * rendering/RenderObject.h:
2476         (WebCore::RenderObject::isSVGRoot):
2477         * rendering/RenderPath.cpp:
2478         (WebCore::RenderPath::paint):
2479         (WebCore::RenderPath::addFocusRingRects):
2480         * rendering/RenderSVGContainer.cpp:
2481         (WebCore::RenderSVGContainer::RenderSVGContainer):
2482         (WebCore::RenderSVGContainer::canHaveChildren):
2483         (WebCore::RenderSVGContainer::addChild):
2484         (WebCore::RenderSVGContainer::removeChild):
2485         (WebCore::RenderSVGContainer::destroy):
2486         (WebCore::RenderSVGContainer::destroyLeftoverChildren):
2487         (WebCore::RenderSVGContainer::removeChildNode):
2488         (WebCore::RenderSVGContainer::appendChildNode):
2489         (WebCore::RenderSVGContainer::insertChildNode):
2490         (WebCore::RenderSVGContainer::layout):
2491         (WebCore::RenderSVGContainer::calcReplacedWidth):
2492         (WebCore::RenderSVGContainer::calcReplacedHeight):
2493         (WebCore::RenderSVGContainer::applyContentTransforms):
2494         (WebCore::RenderSVGContainer::paint):
2495         (WebCore::RenderSVGContainer::absoluteTransform):
2496         (WebCore::RenderSVGContainer::nodeAtPoint):
2497         * rendering/RenderSVGContainer.h:
2498         (WebCore::RenderSVGContainer::firstChild):
2499         (WebCore::RenderSVGContainer::lastChild):
2500         (WebCore::RenderSVGContainer::width):
2501         (WebCore::RenderSVGContainer::height):
2502         (WebCore::RenderSVGContainer::moveChildNode):
2503         (WebCore::RenderSVGContainer::calcPrefWidths):
2504         * rendering/RenderSVGHiddenContainer.cpp:
2505         (WebCore::RenderSVGHiddenContainer::RenderSVGHiddenContainer):
2506         (WebCore::RenderSVGHiddenContainer::paint):
2507         (WebCore::RenderSVGHiddenContainer::absoluteRects):
2508         (WebCore::RenderSVGHiddenContainer::relativeBBox):
2509         * rendering/RenderSVGHiddenContainer.h:
2510         * rendering/RenderSVGImage.cpp:
2511         (WebCore::RenderSVGImage::paint):
2512         * rendering/RenderSVGInline.cpp:
2513         (WebCore::RenderSVGInline::RenderSVGInline):
2514         * rendering/RenderSVGInlineText.cpp:
2515         (WebCore::RenderSVGInlineText::absoluteRects):
2516         * rendering/RenderSVGRoot.cpp:
2517         (WebCore::RenderSVGRoot::applyContentTransforms):
2518         (WebCore::RenderSVGRoot::paint):
2519         (WebCore::RenderSVGRoot::addFocusRingRects):
2520         * rendering/RenderSVGRoot.h:
2521         (WebCore::RenderSVGRoot::isSVGRoot):
2522         (WebCore::RenderSVGRoot::renderName):
2523         * rendering/RenderSVGTSpan.cpp:
2524         (WebCore::RenderSVGTSpan::RenderSVGTSpan):
2525         (WebCore::RenderSVGTSpan::absoluteRects):
2526         * rendering/RenderSVGTextPath.cpp:
2527         (WebCore::RenderSVGTextPath::absoluteRects):
2528         * rendering/RenderTreeAsText.cpp:
2529         (WebCore::write):
2530         * rendering/SVGRenderTreeAsText.cpp:
2531         (WebCore::operator<<):
2532         (WebCore::write):
2533         * rendering/SVGRenderTreeAsText.h:
2534
2535 2007-07-11  Nikolas Zimmermann  <zimmermann@kde.org>
2536
2537         Reviewed by Sam.
2538
2539         Remove all "SVGElement* m_context" parameters spread over SVG primitives
2540         (like SVGAngle, SVGPreserveAspectRatio, SVGTransformList, ...)
2541
2542         This is all handled by the JS generation in the bindings now, leading
2543         to a faster static rendering codepaths, and easier handling of the dynamic
2544         parts like JS scripting. Remove the mystified genericContext() concept alltogether.
2545
2546         * bindings/js/JSSVGMatrixCustom.cpp: Adapt to the context() change.
2547         (WebCore::JSSVGMatrix::multiply):
2548         (WebCore::JSSVGMatrix::inverse):
2549         (WebCore::JSSVGMatrix::translate):
2550         (WebCore::JSSVGMatrix::scale):
2551         (WebCore::JSSVGMatrix::scaleNonUniform):
2552         (WebCore::JSSVGMatrix::rotate):
2553         (WebCore::JSSVGMatrix::rotateFromVector):
2554         (WebCore::JSSVGMatrix::flipX):
2555         (WebCore::JSSVGMatrix::flipY):
2556         (WebCore::JSSVGMatrix::skewX):
2557         (WebCore::JSSVGMatrix::skewY):
2558         * bindings/js/JSSVGPODTypeWrapper.h: Remove all nAC() calls here!
2559         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::commitChange):
2560         (WebCore::JSSVGPODTypeWrapperCreatorForList::JSSVGPODTypeWrapperCreatorForList):
2561         (WebCore::JSSVGPODTypeWrapperCreatorForList::~JSSVGPODTypeWrapperCreatorForList):
2562         * bindings/js/JSSVGPathSegCustom.cpp: Adapt to the context() change.
2563         (WebCore::toJS):
2564         * bindings/js/JSSVGPathSegListCustom.cpp: Ditto.
2565         (WebCore::JSSVGPathSegList::clear):
2566         (WebCore::JSSVGPathSegList::initialize):
2567         (WebCore::JSSVGPathSegList::getItem):
2568         (WebCore::JSSVGPathSegList::insertItemBefore):
2569         (WebCore::JSSVGPathSegList::replaceItem):
2570         (WebCore::JSSVGPathSegList::removeItem):
2571         (WebCore::JSSVGPathSegList::appendItem):
2572         * bindings/js/JSSVGPointListCustom.cpp: Ditto.
2573         (WebCore::JSSVGPointList::clear):
2574         (WebCore::JSSVGPointList::initialize):
2575         (WebCore::JSSVGPointList::getItem):
2576         (WebCore::JSSVGPointList::insertItemBefore):
2577         (WebCore::JSSVGPointList::replaceItem):
2578         (WebCore::JSSVGPointList::removeItem):
2579         (WebCore::JSSVGPointList::appendItem): 
2580         * bindings/js/JSSVGTransformListCustom.cpp: Ditto.
2581         (WebCore::JSSVGTransformList::clear):
2582         (WebCore::JSSVGTransformList::initialize):
2583         (WebCore::JSSVGTransformList::getItem):
2584         (WebCore::JSSVGTransformList::insertItemBefore):
2585         (WebCore::JSSVGTransformList::replaceItem):
2586         (WebCore::JSSVGTransformList::removeItem):
2587         (WebCore::JSSVGTransformList::appendItem):
2588         * bindings/js/kjs_binding.h: Add new cacheSVGDOMObject, taking third parameter: context.
2589         (KJS::cacheSVGDOMObject):
2590         * bindings/scripts/CodeGeneratorJS.pm: Change generation to step aways from genericContext().
2591         * ksvg2/misc/SVGDocumentExtensions.h: Kill all genericContext() stuff.
2592         (WebCore::SVGDocumentExtensions::hasBaseValue):
2593         * ksvg2/svg/SVGAngle.cpp: Kill context parameter.
2594         (WebCore::SVGAngle::SVGAngle):
2595         * ksvg2/svg/SVGAngle.h: ditto.
2596         * ksvg2/svg/SVGFEImageElement.cpp: SVG classes don't get context params passed anymore.
2597         (WebCore::SVGFEImageElement::SVGFEImageElement):
2598         * ksvg2/svg/SVGFitToViewBox.cpp: Ditto.
2599         (WebCore::SVGFitToViewBox::SVGFitToViewBox):
2600         * ksvg2/svg/SVGGradientElement.cpp: Ditto.
2601         (WebCore::SVGGradientElement::SVGGradientElement):
2602         * ksvg2/svg/SVGImageElement.cpp: Ditto.
2603         (WebCore::SVGImageElement::SVGImageElement):
2604         * ksvg2/svg/SVGMarkerElement.cpp: Ditto.
2605         (WebCore::SVGMarkerElement::SVGMarkerElement):
2606         (WebCore::SVGMarkerElement::parseMappedAttribute):
2607         * ksvg2/svg/SVGPathElement.cpp: Ditto.
2608         (WebCore::SVGPathElement::pathSegList):
2609         * ksvg2/svg/SVGPathSegList.cpp: Kill context parameter.
2610         (WebCore::SVGPathSegList::SVGPathSegList):
2611         * ksvg2/svg/SVGPathSegList.h:
2612         * ksvg2/svg/SVGPatternElement.cpp: SVG classes don't get context params passed anymore.
2613         (WebCore::SVGPatternElement::SVGPatternElement):
2614         * ksvg2/svg/SVGPointList.cpp: Kill context parameter.
2615         (SVGPointList::SVGPointList):
2616         * ksvg2/svg/SVGPointList.h:
2617         * ksvg2/svg/SVGPolyElement.cpp: SVG classes don't get context params passed anymore.
2618         (WebCore::SVGPolyElement::points):
2619         * ksvg2/svg/SVGPreserveAspectRatio.cpp: Kill context parameter.
2620         (WebCore::SVGPreserveAspectRatio::SVGPreserveAspectRatio):
2621         (WebCore::SVGPreserveAspectRatio::setAlign):
2622         (WebCore::SVGPreserveAspectRatio::setMeetOrSlice):
2623         (WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio):
2624         * ksvg2/svg/SVGPreserveAspectRatio.h:
2625         * ksvg2/svg/SVGSVGElement.cpp: SVG classes don't get cntext params passed anymore.
2626         (WebCore::SVGSVGElement::createSVGAngle):
2627         * ksvg2/svg/SVGStyledTransformableElement.cpp: Ditto.
2628         (WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
2629         * ksvg2/svg/SVGTextElement.cpp: Ditto.
2630         (WebCore::SVGTextElement::SVGTextElement):
2631         * ksvg2/svg/SVGTransformList.cpp: Kill context parameter.
2632         (SVGTransformList::SVGTransformList):
2633         * ksvg2/svg/SVGTransformList.h:
2634
2635 2007-07-10  Nikolas Zimmermann  <zimmermann@kde.org>
2636
2637         Reviewed by Sam.
2638
2639         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11167.
2640
2641         Recognize <textPath> in SVG JS bindings.
2642         Add JSSVGTextPathElement to JSSVGElementWrapperFactory.
2643
2644         Add SVGException.idl just for the JS generation.
2645         Turn on all SVG JS constructors and add them to DOMWindow.idl.
2646
2647         Testcase added: LayoutTests/svg/custom/js-svg-constructors.svg
2648     
2649         * DerivedSources.make: Add JSSVGException.h
2650         * WebCore.xcodeproj/project.pbxproj: Correct paths for DOM/JS*SVGTextPathElement
2651         * bindings/scripts/CodeGeneratorJS.pm: Forward port hash fix from trunk.
2652         * bindings/js/JSSVGElementWrapperFactory.cpp: Add JSSVGTextPathElement support
2653         * ksvg2/svg/SVGComponentTransferFunctionElement.idl:
2654         * ksvg2/svg/SVGTextPathElement.h:
2655         * ksvg2/svg/SVGException.h:
2656         * ksvg2/svg/SVGException.idl: Added.
2657         * ksvg2/svg/SVGFEBlendElement.idl:
2658         * ksvg2/svg/SVGFEColorMatrixElement.idl:
2659         * ksvg2/svg/SVGFECompositeElement.idl:
2660         * ksvg2/svg/SVGFEDisplacementMapElement.idl:
2661         * ksvg2/svg/SVGFETurbulenceElement.idl:
2662         * ksvg2/svg/SVGGradientElement.idl:
2663         * ksvg2/svg/SVGMarkerElement.idl:
2664         * ksvg2/svg/SVGTextContentElement.idl:
2665         * ksvg2/svg/SVGTextPathElement.idl:
2666         * page/DOMWindow.idl: Recognize new js svg constructors.
2667
2668 2007-06-28  Rob Buis  <buis@kde.org>
2669
2670         Reviewed by Maciej.
2671
2672         http://bugs.webkit.org/show_bug.cgi?id=14241
2673         SVG <image> with height or width less than 1 fails to render image
2674
2675         Keep extra member vars to get width/height as floats for accurate
2676         calculations.
2677
2678         * rendering/RenderSVGImage.cpp:
2679         (WebCore::RenderSVGImage::adjustRectsForAspectRatio):
2680         (WebCore::RenderSVGImage::paint):
2681         (WebCore::RenderSVGImage::calcWidth):
2682         (WebCore::RenderSVGImage::calcHeight):
2683         * rendering/RenderSVGImage.h:
2684
2685 2007-06-26  Rob Buis  <buis@kde.org>
2686
2687         Reviewed by Maciej.
2688
2689         http://bugs.webkit.org/show_bug.cgi?id=9976
2690         Fix negative width issue in Hixie's test
2691
2692         Refuse to render zero or negative width/height.
2693
2694         * rendering/RenderSVGContainer.cpp:
2695         (WebCore::RenderSVGContainer::paint):
2696         * rendering/RenderSVGRoot.cpp:
2697         (WebCore::RenderSVGRoot::paint):
2698
2699 2007-06-26  Rob Buis  <buis@kde.org>
2700
2701         Reviewed by Maciej.
2702
2703         http://bugs.webkit.org/show_bug.cgi?id=12062
2704         WebCore does not handle CSS-specified fill fallback correctly
2705
2706         Implement fallback for fill and stroke.
2707
2708         * ksvg2/css/SVGCSSParser.cpp:
2709         (WebCore::CSSParser::parseSVGValue):
2710         * ksvg2/svg/SVGPaint.cpp:
2711         (WebCore::SVGPaint::SVGPaint):
2712         * ksvg2/svg/SVGPaint.h:
2713         * platform/graphics/svg/SVGPaintServer.cpp:
2714         (WebCore::SVGPaintServer::fillPaintServer):
2715         (WebCore::SVGPaintServer::strokePaintServer):
2716
2717 2007-06-20  Rob Buis  <buis@kde.org>
2718
2719         Reviewed by Eric.
2720
2721         http://bugs.webkit.org/show_bug.cgi?id=14157
2722         Rotated shape has wrong gradient rendering
2723
2724         Use the untransformed bbox in objectBoundingBoxMode. Also
2725         don't do objectBoundingBoxMode should the bbox width ort height
2726         be zero.
2727
2728         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
2729         (WebCore::SVGPaintServerGradient::teardown):
2730         (WebCore::SVGPaintServerGradient::renderPath):
2731
2732 2007-06-20  Nikolas Zimmermann  <zimmermann@kde.org>
2733
2734         Reviewed by Eric & Oliver.
2735
2736         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14198
2737
2738         Reeanble <foreignObject>. Explicitely disallow <use> on <foreignObject>
2739         as it may lead to bad problems. 
2740
2741         While I'm at it disallow <use> on any non-svg element.
2742
2743         * bindings/js/JSSVGElementWrapperFactory.cpp:
2744         * bindings/objc/DOM.mm:
2745         (WebCore::createElementClassMap):
2746         * ksvg2/svg/SVGForeignObjectElement.cpp:
2747         * ksvg2/svg/SVGForeignObjectElement.h:
2748         * ksvg2/svg/SVGForeignObjectElement.idl:
2749         * ksvg2/svg/SVGLocatable.cpp:
2750         (WebCore::SVGLocatable::nearestViewportElement):
2751         (WebCore::SVGLocatable::farthestViewportElement):
2752         * ksvg2/svg/SVGUseElement.cpp:
2753         (WebCore::SVGUseElement::buildPendingResource):
2754         * ksvg2/svg/svgtags.in:
2755         * rendering/RenderForeignObject.cpp:
2756
2757 2007-06-19  Rob Buis  <buis@kde.org>
2758
2759         Reviewed by Oliver.
2760
2761         http://bugs.webkit.org/show_bug.cgi?id=14144
2762         All tx/ty (parentX/parentY) usage should be removed from SVG renders
2763         http://bugs.webkit.org/show_bug.cgi?id=13981
2764         <br> prevents click handler from firing
2765
2766         Fix the hit testing issues by making RenderSVGRoot take its m_x, m_y
2767         into account in the absolute transform.
2768
2769         * rendering/RenderPath.cpp:
2770         (WebCore::RenderPath::absoluteRects):
2771         (WebCore::RenderPath::nodeAtPoint):
2772         * rendering/RenderSVGImage.cpp:
2773         (WebCore::RenderSVGImage::nodeAtPoint):
2774         * rendering/RenderSVGRoot.cpp:
2775         (WebCore::RenderSVGRoot::absoluteTransform):
2776         (WebCore::RenderSVGRoot::nodeAtPoint):
2777
2778 2007-06-16  Nikolas Zimmermann  <zimmermann@kde.org>
2779
2780         Reviewed by Eric.
2781
2782         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14015 (SVGTransformList::initialize() has no effect)
2783
2784         Fix SVGTransformList usage in SVG DOM exposed to JS.
2785         This also fixes SVG space invaders including most repainting issues. (still some unrelated ones left)
2786
2787         This is basically the _same_ fix applied to SVGPointList some months ago. We just forgot
2788         to add JSSVGTransformListCustom when switching from SVGTransform* -> SVGTransform (POD type).
2789
2790         * WebCore.xcodeproj/project.pbxproj:
2791         * bindings/js/JSSVGTransformListCustom.cpp: Added.
2792         (WebCore::JSSVGTransformList::clear):
2793         (WebCore::JSSVGTransformList::initialize):
2794         (WebCore::JSSVGTransformList::getItem):
2795         (WebCore::JSSVGTransformList::insertItemBefore):
2796         (WebCore::JSSVGTransformList::replaceItem):
2797         (WebCore::JSSVGTransformList::removeItem):
2798         (WebCore::JSSVGTransformList::appendItem):
2799         * ksvg2/svg/SVGCircleElement.cpp:
2800         (WebCore::SVGCircleElement::notifyAttributeChange):
2801         * ksvg2/svg/SVGEllipseElement.cpp:
2802         (WebCore::SVGEllipseElement::notifyAttributeChange):
2803         * ksvg2/svg/SVGGradientElement.cpp:
2804         (WebCore::SVGGradientElement::SVGGradientElement):
2805         * ksvg2/svg/SVGImageElement.cpp:
2806         (WebCore::SVGImageElement::notifyAttributeChange):
2807         * ksvg2/svg/SVGLineElement.cpp:
2808         (WebCore::SVGLineElement::notifyAttributeChange):
2809         * ksvg2/svg/SVGPathElement.cpp:
2810         (WebCore::SVGPathElement::notifyAttributeChange):
2811         * ksvg2/svg/SVGPatternElement.cpp:
2812         (WebCore::SVGPatternElement::SVGPatternElement):
2813         * ksvg2/svg/SVGPolyElement.cpp:
2814         (WebCore::SVGPolyElement::notifyAttributeChange):
2815         * ksvg2/svg/SVGRectElement.cpp:
2816         (WebCore::SVGRectElement::notifyAttributeChange):
2817         * ksvg2/svg/SVGStyledTransformableElement.cpp:
2818         (WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
2819         (WebCore::SVGStyledTransformableElement::notifyAttributeChange):
2820         * ksvg2/svg/SVGStyledTransformableElement.h:
2821         * ksvg2/svg/SVGTextElement.cpp:
2822         (WebCore::SVGTextElement::SVGTextElement):
2823         * ksvg2/svg/SVGTransformList.cpp:
2824         (SVGTransformList::SVGTransformList):
2825         (SVGTransformList::context):
2826         * ksvg2/svg/SVGTransformList.h:
2827         * ksvg2/svg/SVGTransformList.idl:
2828
2829 2007-06-15  Nikolas Zimmermann  <zimmermann@kde.org>
2830
2831         Reviewed by Eric.
2832
2833         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14155
2834
2835         JSSVGMatrix was not working properly.
2836         "matrix.translate(10, 10)" actually altered 'matrix' instead of returning a
2837         new SVGMatrix object, as described in SVG 1.1 specification.
2838
2839         * bindings/js/JSSVGMatrixCustom.cpp:
2840         (WebCore::JSSVGMatrix::multiply):
2841         (WebCore::JSSVGMatrix::inverse):
2842         (WebCore::JSSVGMatrix::translate):
2843         (WebCore::JSSVGMatrix::scale):
2844         (WebCore::JSSVGMatrix::scaleNonUniform):
2845         (WebCore::JSSVGMatrix::rotate):
2846         (WebCore::JSSVGMatrix::flipX):
2847         (WebCore::JSSVGMatrix::flipY):
2848         (WebCore::JSSVGMatrix::skewX):
2849         (WebCore::JSSVGMatrix::skewY):
2850         * ksvg2/svg/SVGMatrix.idl:
2851
2852 2007-06-15  Eric Seidel  <eric@webkit.org>
2853
2854         Reviewed by Niko.
2855
2856         Fix the release build.
2857
2858         * rendering/SVGRootInlineBox.cpp:
2859         (WebCore::applyTextAnchorToTextChunk):
2860
2861 2007-06-15  Rob Buis  <buis@kde.org>
2862
2863         Reviewed by Eric.
2864
2865         http://bugs.webkit.org/show_bug.cgi?id=14051
2866         <svg:image> fails to position correctly when <svg> is inside an inline <div>
2867
2868         Leave parent translation to the containers.
2869
2870         * rendering/RenderSVGImage.cpp:
2871         (WebCore::RenderSVGImage::paint):
2872
2873 2007-06-15  Nikolas Zimmermann  <zimmermann@kde.org>
2874
2875         Reviewed by Eric.
2876
2877         Fixes: http://bugs.webkit.org/show_bug.cgi?id=13963
2878
2879         Fix SVG space invaders. It actually highlighted a bad problem with our JSSVGPODTypeWrapper's.
2880         Introduce a new "2nd-level cache" for all readwrite POD properties. Subsequent calls to ie.
2881         myRect.x.baseVal.value don't create a new wrapper everytime, but are properly cached now.
2882         This leads to a massive reduction in created wrappers.
2883
2884         * bindings/js/JSSVGMatrixCustom.cpp:
2885         (WebCore::JSSVGMatrix::inverse):
2886         (WebCore::JSSVGMatrix::rotateFromVector):
2887         * bindings/js/JSSVGPODTypeWrapper.h:
2888         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::JSSVGPODTypeWrapperCreatorReadWrite):
2889         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::~JSSVGPODTypeWrapperCreatorReadWrite):
2890         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::operator PODType):
2891         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::commitChange):
2892         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::JSSVGPODTypeWrapperCreatorReadOnly):
2893         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::~JSSVGPODTypeWrapperCreatorReadOnly):
2894         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::operator PODType):
2895         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::commitChange):
2896         (WebCore::JSSVGPODTypeWrapperCreatorForList::JSSVGPODTypeWrapperCreatorForList):
2897         (WebCore::JSSVGPODTypeWrapperCreatorForList::commitChange):
2898         (WebCore::PODTypeReadWriteHashInfo::PODTypeReadWriteHashInfo):
2899         (WebCore::PODTypeReadWriteHashInfo::operator==):
2900         (WebCore::PODTypeReadWriteHashInfoHash::hash):
2901         (WebCore::PODTypeReadWriteHashInfoHash::equal):
2902         (WebCore::PODTypeReadWriteHashInfoTraits::deletedValue):
2903         (WebCore::PODTypeReadWriteHashInfoTraits::emptyValue):
2904         (WebCore::JSSVGPODTypeWrapperCache::readWriteHashMap):
2905         (WebCore::JSSVGPODTypeWrapperCache::lookupOrCreateWrapper):
2906         (WebCore::JSSVGPODTypeWrapperCache::forgetWrapper):
2907         * bindings/js/JSSVGPointListCustom.cpp:
2908         (WebCore::JSSVGPointList::removeItem):
2909         * bindings/scripts/CodeGeneratorJS.pm:
2910
2911 2007-06-14  Eric Seidel  <eric@webkit.org>
2912
2913         Reviewed by Niko.
2914
2915         Text gradients are broken on feature branch
2916         http://bugs.webkit.org/show_bug.cgi?id=14142
2917
2918         * rendering/SVGRenderSupport.cpp:
2919         (WebCore::prepareToRenderSVGContent):
2920         * rendering/SVGRootInlineBox.cpp:
2921         (WebCore::prepareTextRendering):
2922         (WebCore::SVGRootInlineBox::paint):
2923         (WebCore::SVGRootInlineBox::paintInlineBoxes):
2924         (WebCore::SVGRootInlineBox::paintChildInlineTextBox):
2925         (WebCore::SVGRootInlineBox::paintChildInlineFlowBox):
2926         * rendering/SVGRootInlineBox.h:
2927
2928 2007-06-14  Nikolas Zimmermann  <zimmermann@kde.org>
2929
2930         Reviewed by Sam.
2931
2932         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11273
2933
2934         Implement pixelUnitToMillimeterX(), pixelUnitToMillimeterY() in SVGSVGElement.
2935         Use cssPixelsPerInch, just like done in CSSPrimitiveValue & SVGLength.
2936
2937         * ksvg2/svg/SVGSVGElement.cpp:
2938         (WebCore::SVGSVGElement::pixelUnitToMillimeterX):
2939         (WebCore::SVGSVGElement::pixelUnitToMillimeterY):
2940
2941 2007-06-14  Rob Buis  <buis@kde.org>
2942
2943         Reviewed by Eric.
2944
2945         http://bugs.webkit.org/show_bug.cgi?id=9752
2946         %-sizing of elements with a html parent is broken
2947
2948         Calculate width/height for length percentages when embedded in xhtml.
2949
2950         * ksvg2/svg/SVGLength.cpp:
2951         (WebCore::SVGLength::PercentageOfViewport):
2952
2953 2007-06-14  Rob Buis  <buis@kde.org>
2954
2955         Build fix.
2956
2957         * rendering/SVGCharacterLayoutInfo.cpp:
2958
2959 2007-06-14  Rob Buis  <buis@kde.org>
2960
2961         Reviewed by Eric.
2962
2963         http://bugs.webkit.org/show_bug.cgi?id=12207
2964         RenderSVGContainer should be split into multiple classes
2965         http://bugs.webkit.org/show_bug.cgi?id=14125
2966         KCanvasRenderingStyle should be removed
2967
2968         Introduce the RenderSVGRoot class and kill the KCanvas enums.
2969
2970         * WebCore.xcodeproj/project.pbxproj:
2971         * ksvg2/css/SVGRenderStyle.cpp:
2972         (WebCore::SVGRenderStyle::cssPrimitiveToLength):
2973         * ksvg2/css/SVGRenderStyle.h:
2974         * ksvg2/misc/KCanvasRenderingStyle.cpp: Removed.
2975         * ksvg2/misc/KCanvasRenderingStyle.h: Removed.
2976         * ksvg2/svg/SVGMarkerElement.cpp:
2977         (WebCore::SVGMarkerElement::createRenderer):
2978         (WebCore::SVGMarkerElement::notifyAttributeChange):
2979         * ksvg2/svg/SVGSVGElement.cpp:
2980         (WebCore::SVGSVGElement::createRenderer):
2981         * ksvg2/svg/SVGSVGElement.h:
2982         * platform/graphics/svg/SVGPaintServer.cpp:
2983         (WebCore::sharedSolidPaintServer):
2984         (WebCore::SVGPaintServer::fillPaintServer):
2985         (WebCore::SVGPaintServer::strokePaintServer):
2986         (WebCore::dashArrayFromRenderingStyle):
2987         * platform/graphics/svg/SVGPaintServer.h:
2988         * platform/graphics/svg/cg/CgSupport.cpp:
2989         (WebCore::applyStrokeStyleToContext):
2990         * platform/graphics/svg/cg/RenderPathCg.cpp:
2991         (WebCore::RenderPath::strokeContains):
2992         * rendering/RenderPath.cpp:
2993         (WebCore::RenderPath::fillContains):
2994         (WebCore::fillAndStrokePath):
2995         (WebCore::RenderPath::drawMarkersIfNeeded):
2996         * rendering/RenderSVGContainer.cpp:
2997         (WebCore::RenderSVGContainer::requiresLayer):
2998         (WebCore::RenderSVGContainer::layout):
2999         (WebCore::RenderSVGContainer::applyContentTransforms):
3000         (WebCore::RenderSVGContainer::paint):
3001         (WebCore::RenderSVGContainer::setAlign):
3002         (WebCore::RenderSVGContainer::align):
3003         (WebCore::RenderSVGContainer::viewportTransform):
3004         (WebCore::RenderSVGContainer::absoluteTransform):
3005         (WebCore::RenderSVGContainer::getAspectRatio):
3006         * rendering/RenderSVGContainer.h:
3007         * rendering/RenderSVGInlineText.cpp:
3008         * rendering/RenderSVGRoot.cpp: Added.
3009         (WebCore::RenderSVGRoot::RenderSVGRoot):
3010         (WebCore::RenderSVGRoot::~RenderSVGRoot):
3011         (WebCore::RenderSVGRoot::localTransform):
3012         (WebCore::RenderSVGRoot::setLocalTransform):
3013         (WebCore::RenderSVGRoot::requiresLayer):
3014         (WebCore::RenderSVGRoot::lineHeight):
3015         (WebCore::RenderSVGRoot::baselinePosition):
3016         (WebCore::RenderSVGRoot::layout):
3017         (WebCore::RenderSVGRoot::applyContentTransforms):
3018         (WebCore::RenderSVGRoot::paint):
3019         (WebCore::RenderSVGRoot::viewport):
3020         (WebCore::RenderSVGRoot::calcViewport):
3021         (WebCore::RenderSVGRoot::setViewBox):
3022         (WebCore::RenderSVGRoot::viewBox):
3023         (WebCore::RenderSVGRoot::setAlign):
3024         (WebCore::RenderSVGRoot::align):
3025         (WebCore::RenderSVGRoot::viewportTransform):
3026         (WebCore::RenderSVGRoot::absoluteClippedOverflowRect):
3027         (WebCore::RenderSVGRoot::addFocusRingRects):
3028         (WebCore::RenderSVGRoot::absoluteRects):
3029         (WebCore::RenderSVGRoot::absoluteTransform):
3030         (WebCore::RenderSVGRoot::fillContains):
3031         (WebCore::RenderSVGRoot::strokeContains):
3032         (WebCore::RenderSVGRoot::relativeBBox):
3033         (WebCore::RenderSVGRoot::setSlice):
3034         (WebCore::RenderSVGRoot::slice):
3035         (WebCore::RenderSVGRoot::getAspectRatio):
3036         (WebCore::RenderSVGRoot::nodeAtPoint):
3037         * rendering/RenderSVGRoot.h: Added.
3038         (WebCore::RenderSVGRoot::isSVGContainer):
3039         (WebCore::RenderSVGRoot::renderName):
3040         * rendering/RenderSVGTSpan.cpp:
3041         * rendering/RenderSVGText.cpp:
3042         (WebCore::RenderSVGText::relativeBBox):
3043         * rendering/SVGRenderTreeAsText.cpp:
3044         (WebCore::operator<<):
3045         (WebCore::writeStyle):
3046         * rendering/SVGRootInlineBox.cpp:
3047         (WebCore::SVGRootInlineBox::paint):
3048         (WebCore::SVGRootInlineBox::paintInlineBoxes):
3049
3050 2007-06-12  Nikolas Zimmermann  <zimmermann@kde.org>
3051
3052         Reviewed by Eric.
3053
3054         Fix regression: SVG images drawn in the wrong paint phase.
3055
3056         * rendering/RenderSVGImage.cpp:
3057         (WebCore::RenderSVGImage::paint):
3058
3059 2007-06-11  Rob Buis  <buis@kde.org>
3060
3061         Reviewed by weinig.
3062
3063         http://bugs.webkit.org/show_bug.cgi?id=14064
3064         fill property is reported as type SVGColor
3065
3066         Do the checks in the right order.
3067
3068         * bindings/js/kjs_css.cpp:
3069         (KJS::toJS):
3070
3071 2007-06-07  Rob Buis  <buis@kde.org>
3072
3073         Reviewed by Eric.
3074
3075         http://bugs.webkit.org/show_bug.cgi?id=12122
3076         SVGPathElement should not inherit from SVGPathParser
3077
3078         Use path builders for building Path and PathSegLists.
3079
3080         * ksvg2/svg/SVGAnimateMotionElement.cpp:
3081         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
3082         * ksvg2/svg/SVGParserUtilities.cpp:
3083         (WebCore::pointsListFromSVGData):
3084         (WebCore::SVGPathParser::~SVGPathParser):
3085         (WebCore::SVGPathParser::svgLineToHorizontal):
3086         (WebCore::SVGPathParser::svgLineToVertical):
3087         (WebCore::SVGPathParser::svgCurveToCubicSmooth):
3088         (WebCore::SVGPathParser::svgCurveToQuadratic):
3089         (WebCore::SVGPathParser::svgCurveToQuadraticSmooth):
3090         (WebCore::SVGPathParser::svgArcTo):
3091         (WebCore::PathBuilder::build):
3092         (WebCore::PathBuilder::svgMoveTo):
3093         (WebCore::PathBuilder::svgLineTo):
3094         (WebCore::PathBuilder::svgCurveToCubic):
3095         (WebCore::PathBuilder::svgClosePath):
3096         (WebCore::pathFromSVGData):
3097         (WebCore::SVGPathSegListBuilder::build):
3098         (WebCore::SVGPathSegListBuilder::svgMoveTo):
3099         (WebCore::SVGPathSegListBuilder::svgLineTo):
3100         (WebCore::SVGPathSegListBuilder::svgLineToHorizontal):
3101         (WebCore::SVGPathSegListBuilder::svgLineToVertical):
3102         (WebCore::SVGPathSegListBuilder::svgCurveToCubic):
3103         (WebCore::SVGPathSegListBuilder::svgCurveToCubicSmooth):
3104         (WebCore::SVGPathSegListBuilder::svgCurveToQuadratic):
3105         (WebCore::SVGPathSegListBuilder::svgCurveToQuadraticSmooth):
3106         (WebCore::SVGPathSegListBuilder::svgArcTo):
3107         (WebCore::SVGPathSegListBuilder::svgClosePath):
3108         (WebCore::pathSegListFromSVGData):
3109         * ksvg2/svg/SVGParserUtilities.h:
3110         * ksvg2/svg/SVGPathElement.cpp:
3111         (WebCore::SVGPathElement::SVGPathElement):
3112         (WebCore::SVGPathElement::parseMappedAttribute):
3113         * ksvg2/svg/SVGPathElement.h:
3114         * ksvg2/svg/SVGPolyElement.cpp:
3115         (WebCore::SVGPolyElement::SVGPolyElement):
3116         (WebCore::SVGPolyElement::parseMappedAttribute):
3117         * ksvg2/svg/SVGPolyElement.h:
3118
3119 2007-06-06  Eric Seidel  <eric@webkit.org>
3120
3121         Reviewed by olliej.
3122
3123         Add support for tabbing between links in an SVG file
3124         Also add support for drawing a focus ring around focused svg content.
3125         http://bugs.webkit.org/show_bug.cgi?id=8823
3126         
3127         Layout test is blocked by http://bugs.webkit.org/show_bug.cgi?id=14027
3128
3129         * css/svg.css:
3130         * ksvg2/svg/SVGAElement.cpp:
3131         (WebCore::SVGAElement::defaultEventHandler):
3132         (WebCore::SVGAElement::supportsFocus):
3133         (WebCore::SVGAElement::isFocusable):
3134         (WebCore::SVGAElement::isMouseFocusable):
3135         (WebCore::SVGAElement::isKeyboardFocusable):
3136         * ksvg2/svg/SVGAElement.h:
3137
3138 2007-06-06  Eric Seidel  <eric@webkit.org>
3139
3140         Reviewed by olliej.
3141
3142         Make SVG (mostly) support CSS outline property (and thus focus rings)
3143         http://bugs.webkit.org/show_bug.cgi?id=10849
3144
3145         Test: svg/custom/focus-ring.svg
3146
3147         * rendering/RenderPath.cpp:
3148         (WebCore::RenderPath::paint):
3149         (WebCore::RenderPath::addFocusRingRects):
3150         * rendering/RenderPath.h:
3151         * rendering/RenderSVGContainer.cpp:
3152         (WebCore::RenderSVGContainer::paint):
3153         (WebCore::RenderSVGContainer::addFocusRingRects):
3154         * rendering/RenderSVGContainer.h:
3155         * rendering/RenderSVGImage.cpp:
3156         (WebCore::RenderSVGImage::paint):
3157         (WebCore::RenderSVGImage::addFocusRingRects):
3158         * rendering/RenderSVGImage.h:
3159
3160 2007-06-06  Eric Seidel  <eric@webkit.org>
3161
3162         Reviewed by weinig.
3163         
3164         Break out common SVG rendering logic into prepareToRenderSVGContent in SVGRenderSupport
3165
3166         No test cases should be changed by this.
3167
3168         * WebCore.xcodeproj/project.pbxproj:
3169         * rendering/RenderPath.cpp:
3170         (WebCore::fillAndStrokePath):
3171         (WebCore::RenderPath::paint):
3172         * rendering/RenderSVGContainer.cpp:
3173         (WebCore::RenderSVGContainer::RenderSVGContainer):
3174         (WebCore::RenderSVGContainer::requiresLayer):
3175         (WebCore::RenderSVGContainer::isOutermostSVG):
3176         (WebCore::RenderSVGContainer::layout):
3177         (WebCore::RenderSVGContainer::applyContentTransforms):
3178         (WebCore::RenderSVGContainer::paint):
3179         (WebCore::RenderSVGContainer::viewportTransform):
3180         (WebCore::RenderSVGContainer::absoluteTransform):
3181         * rendering/RenderSVGContainer.h:
3182         * rendering/RenderSVGImage.cpp:
3183         (WebCore::RenderSVGImage::paint):
3184         (WebCore::RenderSVGImage::translationForAttributes):
3185         * rendering/SVGRenderSupport.cpp: Added.
3186         (WebCore::prepareToRenderSVGContent):
3187         * rendering/SVGRenderSupport.h: Added.
3188         * rendering/SVGRootInlineBox.cpp:
3189         (WebCore::prepareTextRendering):
3190         (WebCore::SVGRootInlineBox::paint):
3191         (WebCore::SVGRootInlineBox::paintInlineBoxes):
3192
3193 2007-06-06  Rob Buis  <buis@kde.org>
3194
3195         Reviewed by Eric.
3196
3197         http://bugs.webkit.org/show_bug.cgi?id=13976
3198         getPresentationAttribute not implemented
3199
3200         Implement getPresentationAttribute.
3201
3202         * ksvg2/svg/SVGStylable.h:
3203         * ksvg2/svg/SVGStylable.idl:
3204         * ksvg2/svg/SVGStyledElement.cpp:
3205         (WebCore::SVGStyledElement::getPresentationAttribute):
3206         * ksvg2/svg/SVGStyledElement.h:
3207
3208 2007-06-06  Rob Buis  <buis@kde.org>
3209
3210         Reviewed by olliej and eric.
3211
3212         http://bugs.webkit.org/show_bug.cgi?id=12430
3213         SVG has two transform parsers when it should have one.
3214
3215         Refactor SVGTransformable parser so SVGAnimateTransformElement can reuse it better.
3216
3217         * ksvg2/svg/SVGAnimateTransformElement.cpp:
3218         (WebCore::SVGAnimateTransformElement::calculateFromAndToValues):
3219         * ksvg2/svg/SVGAnimateTransformElement.h:
3220         * ksvg2/svg/SVGTransformable.cpp:
3221         (WebCore::):
3222         (WebCore::SVGTransformable::parseTransformValue):
3223         (WebCore::SVGTransformable::parseTransformAttribute):
3224         * ksvg2/svg/SVGTransformable.h:
3225
3226 2007-06-05  Eric Seidel  <eric@webkit.org>
3227
3228         Reviewed by olliej.
3229
3230         Commit files missing from previous commit, oops!
3231         
3232         * platform/graphics/svg/SVGResourceMasker.cpp:
3233         (WebCore::SVGResourceMasker::SVGResourceMasker):
3234         (WebCore::SVGResourceMasker::invalidate):
3235         * platform/graphics/svg/SVGResourceMasker.h:
3236         * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
3237         (WebCore::SVGResourceMasker::applyMask):
3238
3239 2007-06-01  Eric Seidel  <eric@webkit.org>
3240
3241         Reviewed by olliej.
3242
3243         Add support for maskUnits and maskContentUnits
3244         http://bugs.webkit.org/show_bug.cgi?id=12568
3245         
3246         This is covered by the W3C tests (including mask-intro01)
3247
3248         * ksvg2/svg/SVGMaskElement.cpp:
3249         (WebCore::SVGMaskElement::SVGMaskElement):
3250         (WebCore::SVGMaskElement::parseMappedAttribute):
3251         (WebCore::SVGMaskElement::drawMaskerContent):
3252         (WebCore::SVGMaskElement::canvasResource):
3253         (WebCore::SVGMaskElement::notifyAttributeChange):
3254         * ksvg2/svg/SVGMaskElement.h:
3255         * ksvg2/svg/SVGMaskElement.idl:
3256         * platform/graphics/svg/SVGResourceMasker.cpp:
3257         (WebCore::SVGResourceMasker::SVGResourceMasker):
3258         (WebCore::SVGResourceMasker::invalidate):
3259         * platform/graphics/svg/SVGResourceMasker.h:
3260         * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
3261         (WebCore::SVGResourceMasker::applyMask):
3262
3263 2007-06-01  Eric Seidel  <eric@webkit.org>
3264
3265         Reviewed by lars.
3266         
3267         Cursor does not change to hand over links containing <use>
3268         http://bugs.webkit.org/show_bug.cgi?id=12630
3269
3270         Test: manual-tests/svg-link-hover-use.svg
3271
3272         * manual-tests/svg-link-hover-use.svg: Added.
3273         * rendering/RenderLayer.cpp:
3274         (WebCore::RenderLayer::hitTest): use eventParentNode instead of parentNode
3275
3276 2007-06-01  Eric Seidel  <eric@webkit.org>
3277
3278         Reviewed by olliej.
3279
3280         SVG is not correctly respecting scroll during hit testing
3281         http://bugs.webkit.org/show_bug.cgi?id=13083
3282
3283         Test: svg/custom/scroll-hit-test.svg
3284
3285         * rendering/RenderPath.cpp:
3286         (WebCore::RenderPath::nodeAtPoint):
3287         * rendering/RenderSVGContainer.cpp:
3288         (WebCore::RenderSVGContainer::nodeAtPoint):
3289
3290 2007-06-01  Eric Seidel  <eric@webkit.org>
3291
3292         Reviewed by hyatt.
3293
3294         Fix for: http://bugs.webkit.org/show_bug.cgi?id=12187
3295
3296         Tests: fast/dom/attribute-case-sensitivity.html, fast/dom/attribute-case-sensitivity2.xhtml
3297
3298         * dom/Element.cpp:
3299         (WebCore::shouldIgnoreAttributeCase): check to make sure element is an HTMLElement
3300         (WebCore::Element::getAttribute):
3301         (WebCore::Element::setAttribute):
3302         (WebCore::Element::removeAttribute):
3303         (WebCore::Element::getAttributeNode):
3304         (WebCore::Element::hasAttribute):
3305         * dom/NamedAttrMap.cpp:
3306         (WebCore::shouldIgnoreAttributeCase):
3307         (WebCore::NamedAttrMap::getNamedItem):
3308         (WebCore::NamedAttrMap::removeNamedItem):
3309
3310 2007-05-31  Eric Seidel  <eric@webkit.org>
3311
3312         Reviewed by Niko.
3313
3314         Links are activated based on mouse down events instead of click events
3315         http://bugs.webkit.org/show_bug.cgi?id=12570
3316         
3317         Test: svg/custom/prevent-default.svg
3318
3319         * html/HTMLAnchorElement.cpp: use MiddleButton and RightButton instead of 1 and 2
3320         (WebCore::HTMLAnchorElement::defaultEventHandler):
3321         * ksvg2/svg/SVGAElement.cpp:
3322         (WebCore::SVGAElement::defaultEventHandler): make it function more like the HTML side
3323
3324 2007-05-30  Rob Buis  <buis@kde.org>
3325
3326         Reviewed by Darin.
3327
3328         http://bugs.webkit.org/show_bug.cgi?id=11272
3329         Implement currentScale(), setCurrentScale() and currentTranslate() in SVGSVGElement
3330
3331         Allow zooming and panning, thereby implementing the above methods.
3332
3333         * ksvg2/svg/SVGDocument.cpp:
3334         (WebCore::SVGDocument::zoomAndPanEnabled):
3335         (WebCore::SVGDocument::startPan):
3336         (WebCore::SVGDocument::updatePan):
3337         * ksvg2/svg/SVGDocument.h:
3338         * ksvg2/svg/SVGSVGElement.cpp:
3339         (WebCore::SVGSVGElement::currentScale):
3340         (WebCore::SVGSVGElement::setCurrentScale):
3341         (WebCore::SVGSVGElement::currentTranslate):
3342         (WebCore::SVGSVGElement::setCurrentTranslate):
3343         * ksvg2/svg/SVGSVGElement.h:
3344         * page/EventHandler.cpp:
3345         (WebCore::EventHandler::EventHandler):
3346         (WebCore::EventHandler::handleMousePressEvent):
3347         (WebCore::EventHandler::handleMouseMoveEvent):
3348         (WebCore::EventHandler::handleMouseReleaseEvent):
3349         * page/EventHandler.h:
3350         * page/Frame.cpp:
3351         (WebCore::Frame::setZoomFactor):
3352         * rendering/RenderSVGContainer.cpp:
3353         (WebCore::RenderSVGContainer::layout):
3354         (WebCore::RenderSVGContainer::paint):
3355         (WebCore::RenderSVGContainer::absoluteTransform):
3356
3357 2007-05-30  Nikolas Zimmermann  <zimmermann@kde.org>
3358
3359         Reviewed by Oliver.
3360
3361         Fix regression: gradient on fill of text works again!
3362
3363         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
3364         (WebCore::SVGPaintServerGradient::teardown):
3365
3366 2007-05-29  Nikolas Zimmermann  <zimmermann@kde.org>
3367
3368         Reviewed by Oliver.
3369
3370         Fix "jumpy" selection by correcting the way svgCharacterHitsPosition works.
3371         I basically mixed up the "closest character to position" logic.
3372
3373         * rendering/RenderSVGInlineText.cpp: Only call svgCharacterHitsPosition for the firstTextBox -> it handles all children anyway.
3374         (WebCore::RenderSVGInlineText::positionForCoordinates):
3375         * rendering/SVGInlineTextBox.cpp:
3376         (WebCore::SVGInlineTextBox::closestCharacterToPosition): Fix logic - was really broken!
3377         (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
3378         (WebCore::SVGInlineTextBox::nodeAtPoint): Do not use svgCharacterHitsPosition here - too accurate!
3379                                                   We don't want to loose the 'text' cursor if one is just between two characters.
3380
3381 2007-05-24  Nikolas Zimmermann  <zimmermann@kde.org>
3382
3383         Reviewed by Oliver.
3384
3385         Add new code path dumping SVG text engine specific layout test results.
3386         Finally the dumped results are actually accurate and respond to the
3387         rendered glyphs. This has never been correct so far.
3388
3389         * rendering/RenderTreeAsText.cpp:
3390         (WebCore::quoteAndEscapeNonPrintables):
3391         (WebCore::write):
3392         * rendering/RenderTreeAsText.h:
3393         * rendering/SVGInlineTextBox.h:
3394         * rendering/SVGRenderTreeAsText.cpp:
3395         (WebCore::operator<<):
3396         (WebCore::containsInlineTextBox):
3397         (WebCore::writeSVGInlineText):
3398         (WebCore::write):
3399         * rendering/SVGRenderTreeAsText.h:
3400         * rendering/SVGRootInlineBox.cpp:
3401         (WebCore::topLeftPositionOfCharacterRange):
3402         (WebCore::cummulatedWidthOfInlineBoxCharacterRange):
3403         (WebCore::cummulatedHeightOfInlineBoxCharacterRange):
3404         (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
3405         * rendering/SVGRootInlineBox.h:
3406
3407 2007-05-20  Nikolas Zimmermann  <zimmermann@kde.org>
3408
3409         Reviewed by Oliver.
3410
3411         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12698 (SVG text needs a special per-character layout mode.)
3412
3413         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6420 (<text> does not respect x,y offset lists)
3414         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6425 (<textPath> element not implemented)
3415         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6481 (text-anchor (vertical) does not work in SVG text elements)
3416         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11941 (REGRESSION: Missing text stroke in svg/W3C-SVG-1.1/text-deco-01-b.svg)
3417         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12376 (glyph rotation in text/tspan not implemented)
3418         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12377 (multiple dx and dy attributes not respected in text and tspan elements)
3419         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12574 (<text> does not handle baseline-shift correctly)
3420
3421         Introduce new experimental SVG text engine - after 5+ months of hacking.
3422
3423         Add textPath support, absolute positioned SVG characters, vertical text,
3424         text rotation, baseline-shift, text chunks spanning <tspan>'s etc.
3425
3426         Check my Flickr page for screenshots: http://www.flickr.com/photos/43532360@N00 (a bit outdated)
3427
3428         Fixes/Improvments:
3429         - animate-elem-40-t.svg (x/y lists respected on <text> now)
3430         - interact-cursor-01-f.svg (text-anchor correctly handled in <text><a> situations)
3431         - struct-frag-05-t.svg (ditto)
3432         - text-align-02-b.svg (baseline-shift recognized)
3433         - text-align-04-b.svg (textPath displayed)
3434         - text-align-05-b.svg (text-anchor & vertical text handled correctly)
3435         - text-align-06-b.svg (baseline-shift & vertical text handled correctly)
3436         - text-deco-01-b.svg (longstanding regression fixed for text-decoration)
3437         - text-path-01-b.svg (all textPaths are displayed correctly)
3438         - text-text-04-t.svg (all x/y/dx/dy list situations work fine now)
3439         - text-text-05-t.svg (ditto)
3440         - text-text-06-t.svg (ditto)
3441         - text-text-07-t.svg (rotation works fine now)
3442         - text-tspan-01-b.svg (per character placment works great in all situations)
3443
3444         Most files using text-anchor show 0.5-1% differences because the shift offset calculation is more correct now.
3445
3446         Regressions:    
3447         - Gradient on fill is broken (on stroke works) -> this is a regression (easy to fix soon)
3448           js-late-gradient-and-object-creation.svg & js-late-gradient-creation.svg & pservers-grad-08-b.svg & pservers-grad-11-b.svg are broken
3449
3450         Complete list of missing things:
3451         - 'textLength' / 'lengthAdjust' properties on <text>/<tspan> not yet handled.
3452         - 'dominant-baseline / alignment-baseline missing (neither FF/Opera/Batik support this)
3453         - 'kerning' property ignored
3454         - 'glyph-orientation-vertical' / 'glyph-orientation-horizontal' not yet handled.
3455         - Hebrew text selection broken (discontinous selection doesn't work)
3456         - <textPath> doesn't yet participate in text selection
3457         - <textPath> 'text-anchor' handling is flawed
3458         - <textPath> doesn't yet handle 'method' / 'spacing' properties
3459         - 'letter-spacing' / 'word-spacing' is still handled in the "legacy" mode. That means it only works
3460           for simple cases -> won't work for textPath's for instance
3461         - SVG fonts (<altGlyph>, <font> ..... tons more)
3462
3463         * DerivedSources.make: Add DOM/JSSVGTextPathElement.h to build
3464         * WebCore.xcodeproj/project.pbxproj: Add textPath related files to build
3465         * css/svg.css: Correct white-space default setting for textPath element
3466         * ksvg2/svg/SVGFEFloodElement.cpp: Missing include (experimental build was broken)
3467         * ksvg2/svg/SVGTSpanElement.cpp: Recognize textPath children.
3468         (WebCore::SVGTSpanElement::childShouldCreateRenderer):
3469         * ksvg2/svg/SVGTextElement.cpp: Ditto.
3470         (WebCore::SVGTextElement::childShouldCreateRenderer):
3471         * ksvg2/svg/SVGTextPathElement.cpp: Added.
3472         (WebCore::SVGTextPathElement::SVGTextPathElement):
3473         (WebCore::SVGTextPathElement::~SVGTextPathElement):
3474         (WebCore::SVGTextPathElement::parseMappedAttribute):
3475         (WebCore::SVGTextPathElement::createRenderer):
3476         (WebCore::SVGTextPathElement::childShouldCreateRenderer):
3477         (WebCore::SVGTextPathElement::insertedIntoDocument):
3478         (WebCore::SVGTextPathElement::buildPendingResource):
3479         (WebCore::SVGTextPathElement::attach):
3480         * ksvg2/svg/SVGTextPathElement.h: Added.
3481         (WebCore::):
3482         (WebCore::SVGTextPathElement::rendererIsNeeded):
3483         (WebCore::SVGTextPathElement::contextElement):
3484         * ksvg2/svg/SVGTextPathElement.idl: Added.
3485         * ksvg2/svg/svgtags.in: Add textPath tag.
3486         * rendering/InlineTextBox.cpp: Make two methods non static to share with SVG.
3487         (WebCore::correctedTextColor):
3488         (WebCore::updateGraphicsContext):
3489         * rendering/InlineTextBox.h:
3490         * rendering/RenderSVGInlineText.cpp: Special positionForCoordinates() implementation. Stub caretRect() for SVG.
3491         (WebCore::RenderSVGInlineText::selectionRect):
3492         (WebCore::RenderSVGInlineText::caretRect):
3493         (WebCore::RenderSVGInlineText::positionForCoordinates):
3494         * rendering/RenderSVGInlineText.h:
3495         * rendering/RenderSVGTextPath.cpp: Added.
3496         (WebCore::RenderSVGTextPath::RenderSVGTextPath):
3497         (WebCore::RenderSVGTextPath::layoutPath):
3498         (WebCore::RenderSVGTextPath::setLayoutPath):
3499         (WebCore::RenderSVGTextPath::startOffset):
3500         (WebCore::RenderSVGTextPath::setStartOffset):
3501         (WebCore::RenderSVGTextPath::exactAlignment):
3502         (WebCore::RenderSVGTextPath::setExactAlignment):
3503         (WebCore::RenderSVGTextPath::stretchMethod):
3504         (WebCore::RenderSVGTextPath::setStretchMethod):
3505         (WebCore::RenderSVGTextPath::absoluteRects):
3506         * rendering/RenderSVGTextPath.h: Added.
3507         (WebCore::RenderSVGTextPath::renderName):
3508         * rendering/RenderText.cpp: Fix indention and use StringImpl::empty() instead of creating an empty string manually.
3509         (WebCore::RenderText::setTextInternal):
3510         * rendering/RootInlineBox.h: Add virtual no-op computePerCharacterLayoutInformation().
3511         (WebCore::RootInlineBox::computePerCharacterLayoutInformation):
3512         * rendering/SVGCharacterLayoutInfo.cpp: Added.
3513         (WebCore::calculateBaselineShift):
3514         (WebCore::SVGCharacterLayoutInfo::SVGCharacterLayoutInfo):
3515         (WebCore::SVGCharacterLayoutInfo::xValueAvailable):
3516         (WebCore::SVGCharacterLayoutInfo::yValueAvailable):
3517         (WebCore::SVGCharacterLayoutInfo::dxValueAvailable):
3518         (WebCore::SVGCharacterLayoutInfo::dyValueAvailable):
3519         (WebCore::SVGCharacterLayoutInfo::angleValueAvailable):
3520         (WebCore::SVGCharacterLayoutInfo::baselineShiftValueAvailable):
3521         (WebCore::SVGCharacterLayoutInfo::xValueNext):
3522         (WebCore::SVGCharacterLayoutInfo::yValueNext):
3523         (WebCore::SVGCharacterLayoutInfo::dxValueNext):
3524         (WebCore::SVGCharacterLayoutInfo::dyValueNext):
3525         (WebCore::SVGCharacterLayoutInfo::angleValueNext):
3526         (WebCore::SVGCharacterLayoutInfo::baselineShiftValueNext):
3527         (WebCore::SVGCharacterLayoutInfo::processedSingleCharacter):
3528         (WebCore::SVGCharacterLayoutInfo::processedChunk):
3529         (WebCore::SVGCharacterLayoutInfo::nextPathLayoutPointAndAngle):
3530         (WebCore::SVGCharacterLayoutInfo::inPathLayout):
3531         (WebCore::SVGCharacterLayoutInfo::setInPathLayout):
3532         (WebCore::SVGCharacterLayoutInfo::addLayoutInformation):
3533         (WebCore::SVGCharacterLayoutInfo::addStackContent):
3534         (WebCore::SVGCharacterLayoutInfo::xStackWalk):
3535         (WebCore::SVGCharacterLayoutInfo::yStackWalk):
3536         (WebCore::SVGCharacterLayoutInfo::dxStackWalk):
3537         (WebCore::SVGCharacterLayoutInfo::dyStackWalk):
3538         (WebCore::SVGCharacterLayoutInfo::angleStackWalk):
3539         (WebCore::SVGCharacterLayoutInfo::baselineShiftStackWalk):
3540         * rendering/SVGCharacterLayoutInfo.h: Added.
3541         (WebCore::PositionedVector::Type):
3542         (WebCore::PositionedVector::position):
3543         (WebCore::PositionedVector::advance):
3544         (WebCore::PositionedVector::valueAtCurrentPosition):
3545         (WebCore::SVGCharacterLayoutInfo::):
3546         (WebCore::SVGInlineBoxCharacterRange::SVGInlineBoxCharacterRange):
3547         (WebCore::SVGInlineBoxCharacterRange::isOpen):
3548         (WebCore::SVGInlineBoxCharacterRange::isClosed):
3549         (WebCore::SVGTextChunk::SVGTextChunk):
3550         (WebCore::SVGTextChunkLayoutInfo::SVGTextChunkLayoutInfo):
3551         * rendering/SVGInlineFlowBox.cpp: Make all methods no-ops when using the new text engine.
3552         (WebCore::SVGInlineFlowBox::paint):
3553         (WebCore::SVGInlineFlowBox::placeBoxesHorizontally):
3554         (WebCore::SVGInlineFlowBox::verticallyAlignBoxes):
3555         * rendering/SVGInlineFlowBox.h:
3556         * rendering/SVGInlineTextBox.cpp: Add new text selection / character hit detection related code.
3557         (WebCore::SVGInlineTextBox::SVGInlineTextBox):
3558         (WebCore::SVGInlineTextBox::selectionTop):
3559         (WebCore::SVGInlineTextBox::svgRootInlineBox):
3560         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
3561         (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
3562         (WebCore::SVGInlineTextBox::offsetForPosition):
3563         (WebCore::SVGInlineTextBox::positionForOffset):
3564         (WebCore::SVGInlineTextBox::nodeAtPoint):
3565         (WebCore::SVGInlineTextBox::selectionRect):
3566         * rendering/SVGInlineTextBox.h:
3567         * rendering/SVGRootInlineBox.cpp: The heart of the new text engine lives here.
3568         (WebCore::prepareTextRendering):
3569         (WebCore::isVerticalWritingMode):
3570         (WebCore::SVGRootInlineBox::paint):
3571         (WebCore::SVGRootInlineBox::placeBoxesHorizontally):
3572         (WebCore::SVGRootInlineBox::verticallyAlignBoxes):
3573         (WebCore::SVGRootInlineBox::cummulatedWidthOfSelectionRange):
3574         (WebCore::cummulatedWidthOfInlineBoxCharacterRange):
3575         (WebCore::cummulatedWidthOfTextChunk):
3576         (WebCore::cummulatedHeightOfTextChunk):
3577         (WebCore::applyTextAnchorToTextChunk):
3578         (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
3579         (WebCore::totalAdvanceOfInlineTextBox):
3580         (WebCore::totalAdvanceOfInlineBox):
3581         (WebCore::SVGRootInlineBox::buildLayoutInformation):
3582         (WebCore::SVGRootInlineBox::layoutInlineBoxes):
3583         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
3584         (WebCore::SVGRootInlineBox::buildTextChunks):
3585         (WebCore::SVGRootInlineBox::svgTextChunks):
3586         (WebCore::SVGRootInlineBox::layoutTextChunks):
3587         (WebCore::SVGRootInlineBox::paintSelectionForTextBox):
3588         (WebCore::SVGRootInlineBox::paintInlineBoxes):
3589         (WebCore::SVGRootInlineBox::paintCharacterRangeForTextBox):
3590         * rendering/SVGRootInlineBox.h:
3591         * rendering/bidi.cpp: Call the new computePerCharacterLayoutInformation() method.
3592         (WebCore::RenderBlock::layoutInlineChildren):
3593
3594 2007-05-10  Eric Seidel  <eric@webkit.org>
3595
3596         Reviewed by olliej.
3597
3598         http://bugs.webkit.org/show_bug.cgi?id=11931
3599         PathCG fails to hit on unclosed sub-paths
3600
3601         Test: svg/custom/hit-test-unclosed-subpaths.svg
3602
3603         * platform/graphics/cg/PathCG.cpp:
3604         (WebCore::copyClosingSubpathsApplierFunction):
3605         (WebCore::copyCGPathClosingSubpaths):
3606         (WebCore::Path::contains): use new copy & close function
3607
3608 === End merge of feature-branch 2007-10-12 ===
3609
3610 2007-10-11  Jon Honeycutt  <jhoneycutt@apple.com>
3611
3612         Reviewed by Anders.
3613
3614         Handle a race condition that could arise if a plugin was loaded while it
3615         was scheduled to be freed: check whether the timer that schedules
3616         library frees is active in PluginPackageWin::load().
3617
3618         * plugins/win/PluginPackageWin.cpp:
3619         (WebCore::PluginPackageWin::freeLibrarySoon): Added assertions
3620         (WebCore::PluginPackageWin::freeLibraryTimerFired): Added assertion
3621         (WebCore::PluginPackageWin::load): If we are scheduled to free this
3622         library, cancel the timer, and don't call LoadLibrary
3623
3624 2007-10-11  Justin Garcia  <justin.garcia@apple.com>
3625
3626         Reviewed by Harrison.
3627
3628         <rdar://problem/5483567> REGRESSION (Tiger only): Pasting words copied from TextEdit in Mail adds extra newline
3629         
3630         * editing/ReplaceSelectionCommand.cpp:
3631         (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Added.
3632         We would like to insert the fragment as-is if possible, but AppKit on Tiger
3633         creates fragments from RTF data that have carriage returns and spaces at the
3634         beginning and end, and those need to be removed since they'll interfere with 
3635         paragraph merging.
3636         (WebCore::ReplaceSelectionCommand::doApply):
3637         * editing/ReplaceSelectionCommand.h:
3638
3639 2007-10-10  Justin Garcia  <justin.garcia@apple.com>
3640
3641         Reviewed by Maciej.
3642         
3643         <rdar://problem/5521237> Pasting a word copied from TextEdit after a regular, breaking space, adds a leading newline
3644         
3645         * editing/CompositeEditCommand.cpp:
3646         (WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit):
3647         Fixed a typo.
3648
3649 2007-10-10  Jon Honeycutt  <jhoneycutt@apple.com>
3650
3651         Reviewed by Darin.
3652
3653         <rdar://5530519> REGRESSION (303-310A18): Crash when closing tab with
3654         pdf file (Reader 7 only)
3655
3656         Reader 7 subclasses its parent window, so posting a WM_DESTROY to this
3657         window puts us in plugin code. When the plugin forwards the message
3658         back to the original window proc, and we free the plugin library from
3659         there, we will jump back to code we just freed when we return, so delay 
3660         calling FreeLibrary at least until the next message loop
3661
3662         * plugins/win/PluginPackageWin.cpp:
3663         (WebCore::PluginPackageWin::freeLibrarySoon): Start a timer to free the
3664         plugin library
3665         (WebCore::PluginPackageWin::freeLibraryTimerFired): Free the library
3666         (WebCore::PluginPackageWin::PluginPackageWin): Initialize the timer that
3667         will free this library
3668         (WebCore::PluginPackageWin::unloadWithoutShutdown): Call
3669         freeLibrarySoon()
3670         * plugins/win/PluginPackageWin.h: Added m_freeLibraryTimer
3671
3672 2007-10-11  Ada Chan  <adachan@apple.com>
3673
3674         <rdar://problem/5534421> 
3675         Switched to using wkGetDefaultHTTPCookieStorage() and removed some cookie-related
3676         methods we no longer need in ResourceHandle.
3677         
3678         <rdar://problem/5244261> "Never" cookie policy was ignored on windows
3679         Need to set the cookie accept policy on each CFURLRequest.
3680         
3681         Reviewed by Oliver.
3682
3683         * platform/network/ResourceHandle.h:
3684         * platform/network/cf/ResourceHandleCFNet.cpp:
3685         (WebCore::makeFinalRequest):
3686         * platform/network/cf/ResourceRequestCFNet.cpp:
3687         (WebCore::ResourceRequest::doUpdatePlatformRequest):
3688         * platform/network/win/CookieJarWin.cpp:
3689         (WebCore::setCookies):
3690         (WebCore::cookies):
3691         (WebCore::cookiesEnabled):
3692
3693 2007-10-11  Mark Rowe  <mrowe@apple.com>
3694
3695         Reviewed by Tim Hatcher.
3696
3697         Fix for <rdar://problem/5488678>.  Disable debugging symbols in production builds for 10.4
3698         PowerPC to prevent a huge STABS section from being generated.
3699
3700         * Configurations/Base.xcconfig:
3701
3702 2007-10-11  Lars Knoll  <lars@trolltech.com>
3703
3704         Reviewed by Erik Seidel and Simon.
3705
3706         Ensure that setting innerHTML on an element doesn't do
3707         weird things with the document.
3708         Fixes most issues with http://bugs.webkit.org/show_bug.cgi?id=15456
3709
3710         Test: fast/innerHTML/innerHTML-changing-document-properties.xhtml
3711
3712         * dom/XMLTokenizer.cpp:
3713         (WebCore::XMLTokenizer::write):
3714         (WebCore::XMLTokenizer::startDocument):
3715         (WebCore::XMLTokenizer::end):
3716         (WebCore::):
3717
3718 2007-10-10  George Staikos  <staikos@kde.org>
3719
3720         Reviewed by Adam Roben.
3721
3722         Fix Qt build on Win32 with VS2005.
3723
3724         * loader/FTPDirectoryDocument.cpp:
3725         (WebCore::processFileDateString):
3726         * loader/FTPDirectoryParser.cpp:
3727         (WebCore::parseOneFTPLine):
3728
3729 2007-10-10  Alice Liu  <alice.liu@apple.com>
3730
3731         Reviewed by Geoff Garen.
3732
3733         Fixed <rdar://5464402> Crash when running fast/frames/onload-remove-iframe-crash.html in DRT
3734         createFrame() now returns a RefPtr instead of a raw Frame pointer. 
3735         Making this change improves the way we handle frames on Windows webkit. 
3736
3737         * loader/FrameLoader.cpp:
3738         (WebCore::FrameLoader::loadSubframe):
3739         * loader/FrameLoaderClient.h:
3740         * platform/graphics/svg/SVGImageEmptyClients.h:
3741         (WebCore::SVGEmptyFrameLoaderClient::createFrame):
3742
3743 2007-10-10  Simon Hausmann  <hausmann@kde.org>
3744
3745         Reviewed by Lars.
3746
3747         Fix compilation using gcc 4.3. Header files have been reorganized and as a result some extra
3748         includes are needed for INT_MAX, std::auto_ptr and the like.
3749
3750         WARNING: NO TEST CASES ADDED OR CHANGED
3751
3752         * bridge/AXObjectCache.h:
3753         * ksvg2/misc/SVGDocumentExtensions.h:
3754         * platform/Base64.cpp:
3755         * platform/graphics/svg/SVGPaintServerPattern.h:
3756         * platform/graphics/svg/SVGResourceMasker.h:
3757
3758 2007-10-08  Sam Weinig  <sam@webkit.org>
3759
3760         Reviewed by Steve Falkenburg.
3761
3762         Fix for <rdar://problem/5519698> CrashTracer: [USER] 47 crashes in Safari at com.apple.WebCore: WebCore::XMLTokenizer::lineNumber const + 9
3763
3764         Test: fast/innerHTML/innerHTML-script-tag-crash.xhtml
3765
3766         * dom/XMLTokenizer.cpp:
3767         (WebCore::XMLTokenizer::lineNumber): Return 1 when there is no context.
3768         (WebCore::XMLTokenizer::columnNumber): ditto.
3769
3770 2007-10-08  Adam Roben  <aroben@apple.com>
3771
3772         Fix Bug 15305: Crash when dragging an image when "load images automatically" preference is off
3773
3774         http://bugs.webkit.org/show_bug.cgi?id=15305
3775         <rdar://problem/5524774>
3776
3777         Reviewed by Eric Seidel.
3778
3779         No test possible: to reproduce this you have to change a WebKit
3780         preference and reload the page. See
3781         http://bugs.webkit.org/show_bug.cgi?id=15414
3782
3783         * platform/win/ClipboardWin.cpp:
3784         (WebCore::createGlobalImageFileDescriptor): ASSERT that we have an
3785         image and that it has a SharedBuffer.
3786         (WebCore::writeImageToDataObject): The fix: null-check imageBuffer.
3787
3788 2007-10-05  Geoffrey Garen  <ggaren@apple.com>
3789
3790         Reviewed by Sam Weinig.
3791         
3792         New fix for <rdar://problem/5522487> REGRESSION: With JavaScript 
3793         disabled, any page load causes a crash in PropertyMap::put
3794         
3795         Explicitly remove the "document" property from the window. The old 
3796         solution would leave a stale "document" property around after JavaScript
3797         was re-enabled.
3798
3799         The architecture for disabling JavaScript could use some consolidation. 
3800         It seems wrong that a script proxy even exists when JavaScript is 
3801         disabled. It also seems wrong that so many individual call sites are 
3802         responsible for checking whether JavaScript is enabled. I've filed a 
3803         bug about this: http://bugs.webkit.org/show_bug.cgi?id=15385.
3804
3805         * bindings/js/kjs_proxy.cpp:
3806         (WebCore::KJSProxy::clearDocumentWrapper):
3807         * bindings/js/kjs_proxy.h:
3808         * page/Frame.cpp:
3809         (WebCore::Frame::setDocument):
3810
3811 2007-10-05  Jon Honeycutt  <jhoneycutt@apple.com>
3812
3813         Reviewed by Anders.
3814
3815         <rdar://5520913> Ticketmaster.com doesn't display correctly (Flash
3816         related?)
3817
3818         The plugin is requesting files that don't exist on the server, and
3819         we are passing the 404 error page to the plugin. This change cancels the
3820         stream if the response code indicates a failure.
3821
3822         This is a port of the safari / mac code.
3823
3824         * loader/win/NetscapePlugInStreamLoaderWin.cpp:
3825         (WebCore::NetscapePlugInStreamLoader::didReceiveResponse): If the
3826         response code indicates a failure, cancel the stream
3827
3828 2007-10-05  Geoffrey Garen  <ggaren@apple.com>
3829
3830         Reviewed by Sam Weinig.
3831         
3832         Fixed <rdar://problem/5522487> REGRESSION: With JavaScript disabled, 
3833         any page load causes a crash in PropertyMap::put
3834         
3835         The problem was that we were using JavaScript when JavaScript was
3836         disabled. The architecture for disabling JavaScript could use some
3837         consolidation, but this is the simplest, safest change for now.
3838         
3839         Currently passing layout tests still pass.
3840
3841         * bindings/js/kjs_proxy.cpp:
3842         (WebCore::KJSProxy::updateDocumentWrapper):
3843
3844 2007-10-04  Beth Dakin  <bdakin@apple.com>
3845
3846         Reviewed by John Sullivan.
3847
3848         Fix for <rdar://problem/5441823> REGRESSION (r25142, Tiger only): 
3849         Vertical scroll bar not redrawn properly when going back in history 
3850         (15033)
3851
3852         This fix if-defs r25142 to be Leopard-only since it causes 
3853         correctness issues on Tiger and does not seem to have any 
3854         performance impact on Tiger either.
3855
3856         * loader/FrameLoader.cpp:
3857         (WebCore::FrameLoader::transitionToCommitted):
3858
3859 2007-10-05  Ada Chan  <adachan@apple.com>
3860
3861         <rdar://problem/5436617> Favicons sometimes don't show up even when they are
3862         in the database
3863         - A client can try to retain an icon for a page before the database is actually
3864         opened.  Since isOpened() is not a requirement to retain an icon, remove the check
3865         for that.  Instead, we'll check to make sure whether this database is enabled
3866         before proceeding.
3867
3868         Reviewed by Brady.
3869
3870         * loader/icon/IconDatabase.cpp:
3871         (WebCore::IconDatabase::retainIconForPageURL):
3872         (WebCore::IconDatabase::releaseIconForPageURL): only check isOpen() before we
3873         schedule for a sync.
3874
3875 2007-10-05  Lars Knoll  <lars@trolltech.com>
3876
3877         Reviewed by olliej.
3878
3879         fix a hang in editing/selection/extend-by-word-002.html
3880
3881         * platform/qt/TextBreakIteratorQt.cpp:
3882         (WebCore::CharBreakIteratorQt::next):
3883         (WebCore::characterBreakIterator):
3884
3885 2007-10-04  Mark Rowe  <mrowe@apple.com>
3886
3887         Reviewed by Oliver.
3888
3889         Switch to default level of debugging symbols to resolve <rdar://problem/5488678>.
3890         The "full" level appears to offer no observable benefits even though the documentation
3891         suggests it be used for dead code stripping.  This should also decrease link times.
3892
3893         * Configurations/Base.xcconfig:
3894
3895 2007-10-04  Adele Peterson  <adele@apple.com>
3896
3897         Reviewed by Darin.
3898
3899         WebCore part of fix for <rdar://problem/5369017> REGRESSION: Can't tab to webview that doesn't have editable content
3900
3901         * page/FocusController.h: Added FocusDirection argument.
3902         * page/FocusController.cpp: (WebCore::FocusController::setInitialFocus):
3903           Use FocusDirection argument instead of key modifiers to send direction to advanceFocus.
3904         * WebCore.exp: Updated symbol.
3905
3906 2007-10-04  Kevin Decker  <kdecker@apple.com>
3907
3908         Reviewed by John.
3909         
3910         <rdar://problems/5516309>
3911         
3912         * page/FrameView.cpp:
3913         (WebCore::FrameView::updateControlTints): Avoid the expense of updating tints on controls for the
3914         empty-window case since this can take a significant amount of time even on windows that have no
3915         content at all. Note this fix specifically optimizes the empty window/tab case; for a more broad
3916         fix John wrote up rdar://problem/5521050.
3917
3918 2007-10-04  Darin Adler  <darin@apple.com>
3919
3920         * page/Frame.h: Put functions into categories to indicate other classes
3921         we'd like to move them into in the future. Just organizational -- no code
3922         change.
3923
3924 2007-10-04  Lars Knoll  <lars@trolltech.com>
3925
3926         Reviewed by maciej.
3927
3928         fix a crash in the FrameLoader that can happen under certain
3929         conditions in the Qt port.
3930
3931         Test: fast/loader/iframe-crash-on-missing-image.xhtml
3932
3933         * loader/FrameLoader.cpp:
3934         (WebCore::FrameLoader::receivedMainResourceError):
3935
3936 2007-10-03  Alp Toker  <alp@atoker.com>
3937
3938         Reviewed by Adam.
3939
3940         http://bugs.webkit.org/show_bug.cgi?id=14726
3941         [gtk] API design. Mapping the WebView delegates to signals.
3942
3943         Change the API namespace of the Gtk+ port from 'WebKitGtk' to 'WebKit'.
3944
3945         * WebCore.pro:
3946
3947 2007-10-03  Alp Toker  <alp@atoker.com>
3948
3949         Reviewed by Eric.
3950
3951         http://bugs.webkit.org/show_bug.cgi?id=14129
3952         [CAIRO] Support the canvas element
3953
3954         Add a new canvas implementation using Cairo for rendering.
3955
3956         * html/CanvasGradient.cpp:
3957         (WebCore::CanvasGradient::CanvasGradient):
3958         (WebCore::CanvasGradient::~CanvasGradient):
3959         (WebCore::CanvasGradient::addColorStop):
3960         (WebCore::CanvasGradient::platformShading):
3961         * html/CanvasGradient.h:
3962         * html/CanvasRenderingContext2D.cpp:
3963         (WebCore::CanvasRenderingContext2D::setFillStyle):
3964         (WebCore::CanvasRenderingContext2D::fill):
3965         (WebCore::CanvasRenderingContext2D::stroke):
3966         (WebCore::CanvasRenderingContext2D::fillRect):
3967         (WebCore::CanvasRenderingContext2D::drawImage):
3968         (WebCore::CanvasRenderingContext2D::applyStrokePattern):
3969         * html/CanvasStyle.cpp:
3970         (WebCore::CanvasStyle::applyStrokeColor):
3971         * html/HTMLCanvasElement.cpp:
3972         (WebCore::HTMLCanvasElement::~HTMLCanvasElement):
3973         (WebCore::HTMLCanvasElement::reset):
3974         (WebCore::HTMLCanvasElement::paint):
3975         (WebCore::HTMLCanvasElement::createDrawingContext):
3976         (WebCore::HTMLCanvasElement::createPlatformImage):
3977         * html/HTMLCanvasElement.h:
3978
3979 2007-10-03  Lars Knoll  <lars@trolltech.com>
3980
3981         Signed off by olliej.
3982
3983         move WebKitQt to WebKit/qt for consistency with the other ports.
3984
3985         WARNING: NO TEST CASES ADDED OR CHANGED
3986
3987         * WebCore.pro:
3988
3989 2007-10-02  Sam Weinig  <sam@webkit.org>
3990
3991         Reviewed by Oliver and Adam.
3992
3993         Patch for <rdar://problem/5506968> Fail to DnD local file with non-ascii character in path from desktop to Safari (can open it with file menu)
3994
3995         Use CoreFoundation to do the conversion from path to URL, as the Windows API was not
3996         correctly converting to UTF-8 and we know CFURL will.
3997
3998         * platform/win/ClipboardUtilitiesWin.cpp:
3999         (WebCore::urlFromPath):
4000         (WebCore::getURL):
4001
4002 2007-10-02  Tristan O'Tierney  <tristan@apple.com>
4003
4004         Reviewed by Darin Adler.
4005
4006         <rdar://problem/5511842> REGRESSION: Webkit stops responding while loading Apple Store Canada page (15304)
4007         
4008         Included the NSSynchronousURLConnection_PrivateMode mode, in addition to the default run loop modes
4009         as an acceptable mode when using performSelectorOnMainThread with our syncronous url callbacks.
4010
4011         * platform/network/mac/ResourceHandleMac.mm:
4012         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
4013         Added NSSynchronousURLConnection_PrivateMode to the list of accepted modes.
4014
4015 2007-10-02  Darin Adler  <darin@apple.com>
4016
4017         Reviewed by Adam.
4018
4019         - add support for GDI objects to OwnPtr; I plan to use this
4020           to fix some GDI handle leaks
4021
4022         * css/CSSGrammar.y: Change parser to avoid macro that conflicts
4023         with macro defined in Windows system headers: FLOAT. This is needed
4024         because OwnPtr.h will now include <windows.h>.
4025         * css/CSSParser.cpp: (WebCore::CSSParser::lex): Ditto.
4026         * css/tokenizer.flex: Ditto.
4027
4028         * platform/win/CursorWin.cpp: (WebCore::Cursor::Cursor):
4029         Use OwnPtr for a few HBITMAP objects as a test case.
4030
4031         * platform/win/COMPtr.h: (COMPtr::COMPtr): Fix so that we can use
4032         Query with other COMPtr. Before this would not compile if it was
4033         ever instantiated.
4034
4035 2007-10-02  Steve Falkenburg  <sfalken@apple.com>
4036
4037         Reviewed by Adam, Ada.
4038
4039         Fix leak of GDI handle when we call MLANG.
4040
4041         * platform/win/FontCacheWin.cpp:
4042         (WebCore::FontCache::getFontDataForCharacters):
4043
4044 2007-10-02  Lars Knoll  <lars@trolltech.com>
4045
4046         Reviewed by Olliej.
4047
4048         The cookies() method should only return the value of the
4049         cookie, not additional info such as the expiration date.
4050
4051         * platform/qt/CookieJarQt.cpp:
4052         (WebCore::cookies):
4053
4054 2007-10-01  Lars Knoll  <lars@trolltech.com>
4055
4056         Reviewed by Eric.
4057
4058         Fix a wrong extension mapping in the MIMETypeRegistry and identify about: url's as frames in the FrameLoaderClient.
4059
4060         * platform/qt/MIMETypeRegistryQt.cpp:
4061         (WebCore::):
4062
4063 2007-10-01  Justin Garcia  <justin.garcia@apple.com>
4064
4065         Reviewed by Harrison.
4066
4067         <rdar://problem/5516183> REGRESSION: Creating a ToDo on an incoming message fails
4068         
4069         Rolling out r25721.
4070
4071         * editing/ReplaceSelectionCommand.cpp:
4072         (WebCore::ReplaceSelectionCommand::doApply):
4073         * editing/ReplaceSelectionCommand.h:
4074
4075 2007-10-01  Beth Dakin  <bdakin@apple.com>
4076
4077         Reviewed by Adam.
4078
4079         Fix for <rdar://problem/5515426> NetNewsWire 3 crashes at launch in 
4080         WebCore::FrameView::layout (other repro scenarios too)
4081
4082         The new call to updateWidget() that we added to FrameView::layout() 
4083         can destroy the RenderPartObject. And so we were crashing on the 
4084         subsequent call to updateWidgetPosition(). This patch fixes that by 
4085         checking to make sure the RenderPartObject is still in the HashSet 
4086         after updateWidget(). Because m_widgetUpdateSet can be modified 
4087         during the call to updateWidget(), we need it to be intact while we 
4088         are iterating through the copy, so we cannot use the HashSet::swap 
4089         call we were using before. This patch instead uses a Vector to 
4090         iterate through the HashSet data and calls clear() on the HashSet 
4091         at the end.
4092
4093         * page/FrameView.cpp:
4094         (WebCore::FrameView::layout):
4095
4096 2007-10-01  Eli Fidler  <eli@staikos.net>
4097
4098         Reviewed by George Staikos.
4099
4100         Switch bogus assert to a conditional and return.  This case happens
4101         when a widget is hidden.
4102
4103         * platform/qt/WidgetQt.cpp:
4104         (WebCore::Widget::invalidateRect):
4105
4106 2007-09-30  Darin Adler  <darin@apple.com>
4107
4108         Reviewed by Maciej.
4109
4110         - tone down the assertion I asked Harrison to include in his fix for
4111           <rdar://problem/5511128>; it's OK to re-ref and deref the document
4112           as long as you do so after the children are done being destroyed
4113
4114         No effect on release builds. Assertion change only.
4115
4116         Besides the changes listed below, renamed m_hasDeleted flag to
4117         m_deletionHasBegun.
4118
4119         * dom/ContainerNode.cpp: (WebCore::ContainerNode::removeAllChildren):
4120         Added code to set the m_deletionHasBegun flag and some assertions
4121         that test its state.
4122
4123         * dom/Document.h: Removed m_hasDeleted -- we now use m_deletionHasBegun
4124         in the base class TreeShared.
4125         * dom/Document.cpp:
4126         (WebCore::Document::Document): Removed initialization of m_hasDeleted.
4127         (WebCore::Document::removedLastRef): Added code to clear
4128         m_inRemovedLastRefFunction if we end up deciding not to delete this.
4129
4130         * platform/Shared.h:
4131         (WebCore::TreeShared::TreeShared): Added m_deletionHasBegun in addition to
4132         m_inRemovedLastRefFunction (formerly named m_hasRemovedLastRef).
4133         (WebCore::TreeShared::~TreeShared): Assert that m_deletionHasBegun is true.
4134         (WebCore::TreeShared::ref): Assert neither flag is true.
4135         (WebCore::TreeShared::deref): Ditto.
4136         (WebCore::TreeShared::hasOneRef): Ditto.
4137         (WebCore::TreeShared::removedLastRef): Made private. Added code to
4138         set m_hasDeleted to true. Also removed cast; since this class template
4139         has a virtual destructor, we don't need to cast before calling delete.
4140
4141 2007-09-29  Holger Hans Peter Freyther  <zecke@selfish.org>
4142
4143         Reviewed by Mark.
4144
4145         -Fix http://bugs.webkit.org/show_bug.cgi?id=13226.
4146         Remove Bakefiles from svn.
4147
4148         * Projects/gdk/webcore-gdk.bkl: Removed.
4149         * Projects/wx/webcore-wx.bkl: Removed.
4150         * WebCoreSources.bkl: Removed.
4151         * webcore-base.bkl: Removed.
4152
4153 2007-09-28  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
4154
4155         Reviewed by Mark.
4156
4157         -Fix http://bugs.webkit.org/show_bug.cgi?id=15254.
4158
4159         * platform/gtk/RenderThemeGtk.cpp:
4160         (WebCore::RenderThemeGtk::determineState):
4161             - Apply state if control is readonly
4162             - Added state GTK_STATE_SELECTED of object is checked
4163             - Apply GTK_STATE_ACTIVE if RenderObject isFocused()
4164         (WebCore::RenderThemeGtk::paintTextField):
4165         (WebCore::RenderThemeGtk::gtkEntry):
4166             - Implemented theme-aware text field based on gtk/gtkentry.c implementation
4167
4168 2007-09-29  Holger Hans Peter Freyther  <zecke@selfish.org>
4169
4170         Reviewed by Eric.
4171
4172         Build fix for Mac Gtk+ and Qt builds. In revision 25798 changing
4173         XSLTProcessor.cpp was forgotten.
4174
4175         * xml/XSLTProcessor.cpp: Use PLATFORM(MAC) instead of PLATFORM(DARWIN)
4176
4177 2007-09-29  Adam Roben  <aroben@apple.com>
4178
4179         Fix <rdar://4965715> Horizontal scrollwheel scrolling moves in opposite direction on Vista
4180
4181         Reviewed by Sam.
4182
4183         No regression test possible.
4184
4185         * platform/win/WheelEventWin.cpp:
4186         (WebCore::PlatformWheelEvent::PlatformWheelEvent): Use a negative
4187         delta when scrolling right to match EventHandler's expectations (which
4188         are based on AppKit).
4189
4190 2007-09-28  Kevin Decker  <kdecker@apple.com>
4191
4192         Reviewed by Mark Rowe
4193
4194         Build fix for Mac Gtk+ and Qt builds.
4195         
4196         * xml/XSLStyleSheet.cpp: Use PLATFORM(MAC) instead of PLATFORM(DARWIN)
4197         * xml/XSLTExtensions.cpp: Ditto.
4198
4199 2007-09-28  David Harrison  <harrison@apple.com>
4200
4201         Reviewed by Darin Adler.
4202
4203         <rdar://problem/5511128> Crash closing or reloading this SVG
4204
4205         * dom/ContainerNode.cpp:
4206         (WebCore::dispatchChildInsertionEvents):
4207         (WebCore::dispatchChildRemovalEvents):
4208         Use DocPtr instead of RefPtr, since these events are dispatched
4209         when the Document is being being torn down by removedLastRef().
4210
4211         * dom/DocPtr.h:
4212         (WebCore::DocPtr::DocPtr):
4213         Fix longstanding typo in template so that the DocPtr(DocPtr) constructor can be used.
4214
4215         * dom/Document.cpp:
4216         (WebCore::Document::Document):
4217         (WebCore::Document::removedLastRef):
4218         * dom/Document.h:
4219         (WebCore::Document::selfOnlyRef):
4220         (WebCore::Document::selfOnlyDeref):
4221         * platform/Shared.h:
4222         (WebCore::Shared::Shared):
4223         (WebCore::Shared::ref):
4224         (WebCore::Shared::deref):
4225         (WebCore::Shared::hasOneRef):
4226         (WebCore::TreeShared::TreeShared):
4227         (WebCore::TreeShared::ref):
4228         (WebCore::TreeShared::deref):
4229         (WebCore::TreeShared::hasOneRef):
4230         (WebCore::TreeShared::refCount):
4231         Add debug-only checks for a document being ref-counted while being deleted.
4232
4233 2007-09-27  Kevin McCullough  <kmccullough@apple.com>
4234
4235         Reviewed by Darin.
4236
4237         - <rdar://5261371> Nothing downloaded when exporting bookmarks from iGoogle web history
4238
4239         Function for use by WebKit. Currently used only on Windows.
4240
4241         * platform/network/ResourceResponse.cpp:
4242         (WebCore::ResourceResponse::isAttachment):
4243         * platform/network/ResourceResponse.h:
4244
4245 2007-09-27  Mitz Pettel  <mitz@webkit.org>
4246
4247         Reviewed by Dave Hyatt.
4248
4249         - fix http://bugs.webkit.org/show_bug.cgi?id=15262
4250           REGRESSION: Margin-top:18px is pushing down the multiple select list box outside the div.
4251
4252         Reflected in existing tests.
4253
4254         * css/html4.css: Changed listboxes to use border-box sizing, to match Firefox,
4255         WinIE and apparently also Safari 2.
4256
4257 2007-09-27  Kevin Decker  <kdecker@apple.com>
4258
4259         <rdar://problem/5493093>
4260     
4261         Rubber stamped by John Sullivan.
4262         
4263         * WebCore.order: Added.
4264         * WebCore.xcodeproj/project.pbxproj:  We're changing from using an order file built by another team to using one
4265          we actually check into our project repository. Linker settings for Symbol Ordering Flags have been updated
4266          accordingly.
4267          
4268 2007-09-27  Antti Koivisto  <antti@apple.com>
4269
4270         Reviewed by Geoff.
4271         
4272         Fix for <rdar://problem/5499125>
4273         REGRESSION (r21367): After launching Kidzui beta, a webview frame fails to appear in its main window
4274         
4275         If window object properties were modified when it had initial empty document (synchronously after 
4276         window.open() for example) those modifications were lost when the real document was switched in.
4277         
4278         Match Firefox behavior where window properties are not cleared if the inital document and the loaded one
4279         have matching security domains.
4280
4281         Tests: fast/dom/Window/window-early-properties.html
4282                http/tests/security/window-properties-clear-domain.html
4283                http/tests/security/window-properties-clear-port.html
4284                http/tests/security/window-properties-pass.html
4285
4286         * WebCore.exp:
4287         * loader/FrameLoader.cpp:
4288         (WebCore::FrameLoader::FrameLoader):
4289         (WebCore::FrameLoader::init):
4290         (WebCore::FrameLoader::clear):
4291         (WebCore::FrameLoader::isSecureTransition):
4292         (WebCore::FrameLoader::begin):
4293         * loader/FrameLoader.h:
4294         If we are transitioning from initial empty document to the final one, do a domain security check
4295         between old security policy URL and new URL. If that passes don't clear script proxy and script objects.
4296         
4297         * bindings/js/kjs_proxy.cpp:
4298         (WebCore::KJSProxy::updateDocumentWrapper):
4299         * bindings/js/kjs_proxy.h:
4300         * page/Frame.cpp:
4301         (WebCore::Frame::setDocument):
4302         Since we don't always clear window properties anymore, we need to update the document property to point to
4303         the newly created one. 
4304         
4305 2007-09-27  Kevin Decker  <kdecker@apple.com>
4306
4307         Reviewed by Darin.
4308
4309         <rdar://problem/5493093>
4310         
4311         * WebCore.xcodeproj/project.pbxproj: Removed libxslt from statically linked frameworks.
4312         * platform/mac/SoftLinking.h: Formatting tweakes, added SOFT_LINK_LIBRARY, and if'def for 
4313         PLATFORM(DARWIN)
4314         * xml/XSLStyleSheet.cpp: Soft-linked libxslt.
4315         * xml/XSLTExtensions.cpp: Removed the call to xsltGenericError, and added a FIXME comment stating
4316         that it might be helpful to push any errors from xmlXPathNewValueTree up to the Javascript Console. 
4317         * xml/XSLTProcessor.cpp: Soft-linked libxslt.
4318         
4319 2007-09-27  Adele Peterson  <adele@apple.com>
4320
4321         Reviewed by Brady.
4322
4323         Fix for <rdar://problem/5453350> REGRESSION (r18541, Tiger only): Refreshing a cached https page does not reload CSS and JavaScript resources
4324         http://bugs.webkit.org/show_bug.cgi?id=15121
4325
4326         * loader/FrameLoader.cpp: (WebCore::FrameLoader::addExtraFieldsToRequest): Now sets the cache policy to ReloadIgnoringCacheData.  Without setting the cache policy,
4327         the default policy in this case was ReturnCacheDataElseLoad.  If we're in a situation where the resource is in the cache, we want to make sure to avoid loading from the cache in this case.
4328
4329 2007-09-27  Timothy Hatcher  <timothy@apple.com>
4330
4331         Reviewed by Darin.
4332
4333         <rdar://problem/5199546> CrashTracer: [REGRESSION] 8216 crashes in Safari at com.apple.WebCore: WebCore::ResourceHandle::client const + 6
4334
4335         On Tiger NSURLConnection can sometimes call the connection:willCacheResponse: delegate method on
4336         a secondary thread instead of the main thread. This was never an issue before, since the implementation 
4337         of this method was very simple and thread safe.
4338
4339         The fix is to block during connection:willCacheResponse: and perform the work on the main thread.
4340         We need to block since this delegate method needs to return a result. If we are already on the
4341         main thread (which sometimes we are), the method does nothing different. If we are on a secondary
4342         thread, we make a mutable dictionary to hold all the arguments and later the result object.
4343         Then performSelectorOnMainThread:withObject: using the _callConnectionWillCacheResponseWithInfo:
4344         selector. This new method just pulls the arguments out for the dictionary and calls the real
4345         connection:willCacheResponse: delegate method (this time on the main thread). The result is stored
4346         in the dictionary, and when performSelectorOnMainThread:withObject: finishes the result is pulled
4347         out and returned.
4348
4349         * platform/network/mac/ResourceHandleMac.mm:
4350         (-[WebCoreResourceHandleAsDelegate _callConnectionWillCacheResponseWithInfo:]):
4351         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
4352
4353 2007-09-27  David Hyatt  <hyatt@apple.com>
4354
4355         Update to reflect the minimal WebKitSystemInterface changes required
4356         to support @font-face.
4357
4358         Reviewed by john
4359
4360         * platform/mac/FontDataMac.mm:
4361         (WebCore::FontData::platformInit):
4362         (WebCore::FontData::platformWidthForGlyph):
4363         * platform/mac/WebCoreSystemInterface.h:
4364         * platform/mac/WebCoreSystemInterface.mm:
4365
4366 2007-09-26  Darin Adler  <darin@apple.com>
4367
4368         - fix Windows build
4369
4370         * platform/win/ClipboardWin.cpp:
4371         (WebCore::writeURL): Add a check for empty URL. Remove the check for invalid URL.
4372         (WebCore::ClipboardWin::setData): Remove the check for invalid URL.
4373         * plugins/win/PluginViewWin.cpp:
4374         (WebCore::PluginViewWin::start): Check for empty URL instead of invalid URL.
4375         (WebCore::PluginViewWin::load): Same here.
4376
4377 2007-09-26  Darin Adler  <darin@apple.com>
4378
4379         Reviewed by John Sullivan.
4380
4381         - fix <rdar://problem/5491054> REGRESSION (Mail, plain-text only): Nothing happens
4382           when you click on rdar://<num>&<num> links (or AOL links in Safari)
4383
4384         Remove the non-useful concept of a "malformed"/"invalid" URL.
4385
4386         There are URLs we can parse, and others we can't, but that's not sufficient to
4387         determine if we should try to work with the URL. It's entirely possible that
4388         a so-called "malformed" URL will work just fine if it's passed to the right
4389         software.
4390
4391         * platform/KURL.h: Removed isMalformed() and isValid().
4392
4393         * loader/Cache.cpp: (WebCore::Cache::requestResource): Removed unneeded check
4394         if the URL is valid. But do check for an empty URL just to guarantee we don't
4395         trip up with a null string. It's possible we can remove this empty URL check
4396         later, but it's less risky to leave the empty string behavior alone for now.
4397
4398         * loader/FrameLoader.cpp:
4399         (WebCore::FrameLoader::urlSelected): Removed unneeded check if the URL is valid.
4400         Back on 2007-07-08, we realized that we needed to allow empty URLs. But we also
4401         need to allow other URLs here. This is the code path from the Mail case.
4402         (WebCore::FrameLoader::submitForm): Replaced URL validity check with a check
4403         for an empty URL (same reasoning as for requestResource above).
4404
4405         * page/InspectorController.cpp: (WebCore::InspectorResource::type):
4406         * rendering/RenderObject.cpp: (WebCore::RenderObject::addPDFURLRect):
4407         Removed unneeded check for an invalid URL. In both of these cases it's definitely
4408         safe to allow event an empty URL.
4409
4410 2007-09-26  George Staikos  <staikos@kde.org>
4411
4412         Reviewed by John Sullivan.
4413
4414         Only highlight the applicable portion of the text run for a search
4415         highlight.  No way to make a testcase for this presently.
4416
4417         * rendering/InlineTextBox.cpp:
4418         (WebCore::InlineTextBox::paintTextMatchMarker):
4419
4420 2007-09-25  David Kilzer  <ddkilzer@webkit.org>
4421
4422         Reviewed by Adam.
4423
4424         - Fix http://bugs.webkit.org/show_bug.cgi?id=14885
4425           LGPL'ed files contain incorrect FSF address
4426
4427         * LICENSE-LGPL-2:
4428         * LICENSE-LGPL-2.1:
4429         * WebCorePrefix.h:
4430         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
4431         * bindings/js/JSDOMWindowCustom.cpp:
4432         * bindings/js/JSDocumentCustom.cpp:
4433         * bindings/js/JSHTMLCollectionCustom.cpp:
4434         * bindings/js/JSHTMLElementWrapperFactory.cpp:
4435         * bindings/js/JSHTMLElementWrapperFactory.h:
4436         * bindings/js/JSHTMLInputElementBase.cpp:
4437         * bindings/js/JSHTMLInputElementBase.h:
4438         * bindings/js/JSHTMLOptionElementConstructor.cpp:
4439         * bindings/js/JSHTMLOptionElementConstructor.h:
4440         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
4441         * bindings/js/JSHTMLSelectElementCustom.cpp:
4442         * bindings/js/JSNodeFilterCondition.cpp:
4443         * bindings/js/JSNodeFilterCondition.h:
4444         * bindings/js/JSNodeIteratorCustom.cpp:
4445         * bindings/js/JSSVGElementWrapperFactory.cpp:
4446         * bindings/js/JSSVGElementWrapperFactory.h:
4447         * bindings/js/JSSVGMatrixCustom.cpp:
4448         * bindings/js/JSSVGPathSegCustom.cpp:
4449         * bindings/js/JSSVGPathSegListCustom.cpp:
4450         * bindings/js/JSSVGPointListCustom.cpp:
4451         * bindings/js/JSTreeWalkerCustom.cpp:
4452         * bindings/js/JSXMLHttpRequest.cpp:
4453         * bindings/js/JSXMLHttpRequest.h:
4454         * bindings/js/kjs_binding.cpp:
4455         * bindings/js/kjs_binding.h:
4456         * bindings/js/kjs_css.cpp:
4457         * bindings/js/kjs_css.h:
4458         * bindings/js/kjs_dom.cpp:
4459         * bindings/js/kjs_dom.h:
4460         * bindings/js/kjs_events.cpp:
4461         * bindings/js/kjs_events.h:
4462         * bindings/js/kjs_html.cpp:
4463         * bindings/js/kjs_html.h:
4464         * bindings/js/kjs_navigator.cpp:
4465         * bindings/js/kjs_navigator.h:
4466         * bindings/js/kjs_proxy.cpp:
4467         * bindings/js/kjs_proxy.h:
4468         * bindings/js/kjs_window.cpp:
4469         * bindings/js/kjs_window.h:
4470         * bindings/objc/DOMImplementationFront.cpp:
4471         * bindings/objc/DOMImplementationFront.h:
4472         * bindings/scripts/CodeGenerator.pm:
4473         * bindings/scripts/CodeGeneratorJS.pm:
4474         * bindings/scripts/CodeGeneratorObjC.pm:
4475         * bindings/scripts/IDLParser.pm:
4476         * bindings/scripts/IDLStructure.pm:
4477         * bindings/scripts/generate-bindings.pl:
4478         * config.h:
4479         * css/CSSBorderImageValue.cpp:
4480         * css/CSSBorderImageValue.h:
4481         * css/CSSCharsetRule.cpp:
4482         * css/CSSCharsetRule.h:
4483         * css/CSSCharsetRule.idl:
4484         * css/CSSComputedStyleDeclaration.cpp:
4485         * css/CSSComputedStyleDeclaration.h:
4486         * css/CSSCursorImageValue.cpp:
4487         * css/CSSCursorImageValue.h:
4488         * css/CSSFontFaceRule.cpp:
4489         * css/CSSFontFaceRule.h:
4490         * css/CSSFontFaceRule.idl:
4491         * css/CSSGrammar.y:
4492         * css/CSSHelper.cpp:
4493         * css/CSSHelper.h:
4494         * css/CSSImageValue.cpp:
4495         * css/CSSImageValue.h:
4496         * css/CSSImportRule.cpp:
4497         * css/CSSImportRule.h:
4498         * css/CSSImportRule.idl:
4499         * css/CSSInheritedValue.cpp:
4500         * css/CSSInheritedValue.h:
4501         * css/CSSInitialValue.cpp:
4502         * css/CSSInitialValue.h:
4503         * css/CSSMediaRule.cpp:
4504         * css/CSSMediaRule.h:
4505         * css/CSSMediaRule.idl:
4506         * css/CSSMutableStyleDeclaration.cpp:
4507         * css/CSSMutableStyleDeclaration.h:
4508         * css/CSSNamespace.h:
4509         * css/CSSPageRule.cpp:
4510         * css/CSSPageRule.h:
4511         * css/CSSPageRule.idl:
4512         * css/CSSParser.cpp:
4513         * css/CSSParser.h:
4514         * css/CSSPrimitiveValue.cpp:
4515         * css/CSSPrimitiveValue.h:
4516         * css/CSSPrimitiveValue.idl:
4517         * css/CSSProperty.cpp:
4518         * css/CSSProperty.h:
4519         * css/CSSQuirkPrimitiveValue.h:
4520         * css/CSSRule.cpp:
4521         * css/CSSRule.h:
4522         * css/CSSRule.idl:
4523         * css/CSSRuleList.cpp:
4524         * css/CSSRuleList.h:
4525         * css/CSSSelector.cpp:
4526         * css/CSSSelector.h:
4527         * css/CSSStyleDeclaration.cpp:
4528         * css/CSSStyleDeclaration.h:
4529         * css/CSSStyleDeclaration.idl:
4530         * css/CSSStyleRule.cpp:
4531         * css/CSSStyleRule.h:
4532         * css/CSSStyleRule.idl:
4533         * css/CSSStyleSelector.cpp:
4534         * css/CSSStyleSelector.h:
4535         * css/CSSStyleSheet.cpp:
4536         * css/CSSStyleSheet.h:
4537         * css/CSSStyleSheet.idl:
4538         * css/CSSUnknownRule.h:
4539         * css/CSSUnknownRule.idl:
4540         * css/CSSValue.h:
4541         * css/CSSValue.idl:
4542         * css/CSSValueList.cpp:
4543         * css/CSSValueList.h:
4544         * css/Counter.h:
4545         * css/Counter.idl:
4546         * css/DashboardRegion.h:
4547         * css/FontFamilyValue.cpp:
4548         * css/FontFamilyValue.h:
4549         * css/FontValue.cpp:
4550         * css/FontValue.h:
4551         * css/MediaFeatureNames.cpp:
4552         * css/MediaFeatureNames.h:
4553         * css/MediaList.cpp:
4554         * css/MediaList.h:
4555         * css/Pair.h:
4556         * css/RGBColor.idl:
4557         * css/Rect.h:
4558         * css/Rect.idl:
4559         * css/ShadowValue.cpp:
4560         * css/ShadowValue.h:
4561         * css/StyleBase.cpp:
4562         * css/StyleBase.h:
4563         * css/StyleList.cpp:
4564         * css/StyleList.h:
4565         * css/StyleSheet.cpp:
4566         * css/StyleSheet.h:
4567         * css/StyleSheet.idl:
4568         * css/StyleSheetList.cpp:
4569         * css/StyleSheetList.h:
4570         * css/StyleSheetList.idl:
4571         * css/html4.css:
4572         * css/make-css-file-arrays.pl:
4573         * css/makegrammar.pl:
4574         * css/makeprop.pl:
4575         * css/maketokenizer:
4576         * css/makevalues.pl:
4577         * css/quirks.css:
4578         * dom/AtomicStringList.h:
4579         * dom/Attr.cpp:
4580         * dom/Attr.h:
4581         * dom/Attr.idl:
4582         * dom/Attribute.cpp:
4583         * dom/Attribute.h:
4584         * dom/BeforeUnloadEvent.cpp:
4585         * dom/BeforeUnloadEvent.h:
4586         * dom/CDATASection.cpp:
4587         * dom/CDATASection.h:
4588         * dom/CDATASection.idl:
4589         * dom/CSSMappedAttributeDeclaration.cpp:
4590         * dom/CSSMappedAttributeDeclaration.h:
4591         * dom/CharacterData.cpp:
4592         * dom/CharacterData.h:
4593         * dom/CharacterData.idl:
4594         * dom/ChildNodeList.cpp:
4595         * dom/ChildNodeList.h:
4596         * dom/Clipboard.h:
4597         * dom/ClipboardEvent.cpp:
4598         * dom/ClipboardEvent.h:
4599         * dom/Comment.cpp:
4600         * dom/Comment.h:
4601         * dom/Comment.idl:
4602         * dom/ContainerNode.cpp:
4603         * dom/ContainerNode.h:
4604         * dom/DOMImplementation.cpp:
4605         * dom/DOMImplementation.h:
4606         * dom/DOMImplementation.idl:
4607         * dom/DocPtr.h:
4608         * dom/Document.cpp:
4609         * dom/Document.h:
4610         * dom/Document.idl:
4611         * dom/DocumentFragment.cpp:
4612         * dom/DocumentFragment.h:
4613         * dom/DocumentFragment.idl:
4614         * dom/DocumentMarker.h:
4615         * dom/DocumentType.cpp:
4616         * dom/DocumentType.h:
4617         * dom/DocumentType.idl:
4618         * dom/EditingText.cpp:
4619         * dom/EditingText.h:
4620         * dom/Element.cpp:
4621         * dom/Element.h:
4622         * dom/Element.idl:
4623         * dom/Entity.cpp:
4624         * dom/Entity.h:
4625         * dom/Entity.idl:
4626         * dom/EntityReference.cpp:
4627         * dom/EntityReference.h:
4628         * dom/EntityReference.idl:
4629         * dom/Event.cpp:
4630         * dom/Event.h:
4631         * dom/Event.idl:
4632         * dom/EventListener.h:
4633         * dom/EventListener.idl:
4634         * dom/EventNames.cpp:
4635         * dom/EventNames.h:
4636         * dom/EventTarget.idl:
4637         * dom/EventTargetNode.cpp:
4638         * dom/EventTargetNode.h:
4639         * dom/ExceptionCode.h:
4640         * dom/KeyboardEvent.cpp:
4641         * dom/KeyboardEvent.h:
4642         * dom/KeyboardEvent.idl:
4643         * dom/MappedAttribute.cpp:
4644         * dom/MappedAttribute.h:
4645         * dom/MappedAttributeEntry.h:
4646         * dom/MouseEvent.cpp:
4647         * dom/MouseEvent.h:
4648         * dom/MouseEvent.idl:
4649         * dom/MouseRelatedEvent.cpp:
4650         * dom/MouseRelatedEvent.h:
4651         * dom/MutationEvent.cpp:
4652         * dom/MutationEvent.h:
4653         * dom/MutationEvent.idl:
4654         * dom/NameNodeList.cpp:
4655         * dom/NameNodeList.h:
4656         * dom/NamedAttrMap.cpp:
4657         * dom/NamedAttrMap.h:
4658         * dom/NamedMappedAttrMap.cpp:
4659         * dom/NamedMappedAttrMap.h:
4660         * dom/NamedNodeMap.h:
4661         * dom/NamedNodeMap.idl:
4662         * dom/Node.cpp:
4663         * dom/Node.h:
4664         * dom/Node.idl:
4665         * dom/NodeFilter.cpp:
4666         * dom/NodeFilter.h:
4667         * dom/NodeFilter.idl:
4668         * dom/NodeFilterCondition.cpp:
4669         * dom/NodeFilterCondition.h:
4670         * dom/NodeIterator.cpp:
4671         * dom/NodeIterator.h:
4672         * dom/NodeIterator.idl:
4673         * dom/NodeList.cpp:
4674         * dom/NodeList.h:
4675         * dom/NodeList.idl:
4676         * dom/Notation.cpp:
4677         * dom/Notation.h:
4678         * dom/Notation.idl:
4679         * dom/ProcessingInstruction.cpp:
4680         * dom/ProcessingInstruction.h:
4681         * dom/ProcessingInstruction.idl:
4682         * dom/QualifiedName.cpp:
4683         * dom/QualifiedName.h:
4684         * dom/Range.cpp:
4685         * dom/Range.h:
4686         * dom/Range.idl:
4687         * dom/RangeException.h:
4688         * dom/RangeException.idl:
4689         * dom/RegisteredEventListener.cpp:
4690         * dom/RegisteredEventListener.h:
4691         * dom/StyleElement.cpp:
4692         * dom/StyleElement.h:
4693         * dom/StyledElement.cpp:
4694         * dom/StyledElement.h:
4695         * dom/Text.cpp:
4696         * dom/Text.h:
4697         * dom/Text.idl:
4698         * dom/Tokenizer.h:
4699         * dom/Traversal.cpp:
4700         * dom/Traversal.h:
4701         * dom/TreeWalker.cpp:
4702         * dom/TreeWalker.h:
4703         * dom/TreeWalker.idl:
4704         * dom/UIEvent.cpp:
4705         * dom/UIEvent.h:
4706         * dom/UIEvent.idl:
4707         * dom/UIEventWithKeyState.cpp:
4708         * dom/UIEventWithKeyState.h:
4709         * dom/WheelEvent.cpp:
4710         * dom/WheelEvent.h:
4711         * dom/WheelEvent.idl:
4712         * dom/XMLTokenizer.cpp:
4713         * dom/XMLTokenizer.h:
4714         * html/FormDataList.cpp:
4715         * html/FormDataList.h:
4716         * html/HTMLAnchorElement.cpp:
4717         * html/HTMLAnchorElement.h:
4718         * html/HTMLAnchorElement.idl:
4719         * html/HTMLAppletElement.cpp:
4720         * html/HTMLAppletElement.h:
4721         * html/HTMLAppletElement.idl:
4722         * html/HTMLAreaElement.cpp:
4723         * html/HTMLAreaElement.h:
4724         * html/HTMLAreaElement.idl:
4725         * html/HTMLBRElement.cpp:
4726         * html/HTMLBRElement.h:
4727         * html/HTMLBRElement.idl:
4728         * html/HTMLBaseElement.cpp:
4729         * html/HTMLBaseElement.h:
4730         * html/HTMLBaseElement.idl:
4731         * html/HTMLBaseFontElement.cpp:
4732         * html/HTMLBaseFontElement.h:
4733         * html/HTMLBaseFontElement.idl:
4734         * html/HTMLBlockquoteElement.cpp:
4735         * html/HTMLBlockquoteElement.h:
4736         * html/HTMLBlockquoteElement.idl:
4737         * html/HTMLBodyElement.cpp:
4738         * html/HTMLBodyElement.h:
4739         * html/HTMLBodyElement.idl:
4740         * html/HTMLButtonElement.cpp:
4741         * html/HTMLButtonElement.h:
4742         * html/HTMLButtonElement.idl:
4743         * html/HTMLCollection.cpp:
4744         * html/HTMLCollection.h:
4745         * html/HTMLCollection.idl:
4746         * html/HTMLDListElement.cpp:
4747         * html/HTMLDListElement.h:
4748         * html/HTMLDListElement.idl:
4749         * html/HTMLDirectoryElement.cpp:
4750         * html/HTMLDirectoryElement.h:
4751         * html/HTMLDirectoryElement.idl:
4752         * html/HTMLDivElement.cpp:
4753         * html/HTMLDivElement.h:
4754         * html/HTMLDivElement.idl:
4755         * html/HTMLDocument.cpp:
4756         * html/HTMLDocument.h:
4757         * html/HTMLDocument.idl:
4758         * html/HTMLElement.cpp:
4759         * html/HTMLElement.h:
4760         * html/HTMLElement.idl:
4761         * html/HTMLElementFactory.cpp:
4762         * html/HTMLElementFactory.h:
4763         * html/HTMLEmbedElement.cpp:
4764         * html/HTMLEmbedElement.h:
4765         * html/HTMLEmbedElement.idl:
4766         * html/HTMLEntityNames.gperf:
4767         * html/HTMLFieldSetElement.cpp:
4768         * html/HTMLFieldSetElement.h:
4769         * html/HTMLFieldSetElement.idl:
4770         * html/HTMLFontElement.cpp:
4771         * html/HTMLFontElement.h:
4772         * html/HTMLFontElement.idl:
4773         * html/HTMLFormCollection.cpp:
4774         * html/HTMLFormCollection.h:
4775         * html/HTMLFormElement.cpp:
4776         * html/HTMLFormElement.h:
4777         * html/HTMLFormElement.idl:
4778         * html/HTMLFrameElement.cpp:
4779         * html/HTMLFrameElement.h:
4780         * html/HTMLFrameElement.idl:
4781         * html/HTMLFrameElementBase.cpp:
4782         * html/HTMLFrameElementBase.h:
4783         * html/HTMLFrameOwnerElement.cpp:
4784         * html/HTMLFrameOwnerElement.h:
4785         * html/HTMLFrameSetElement.cpp:
4786         * html/HTMLFrameSetElement.h:
4787         * html/HTMLFrameSetElement.idl:
4788         * html/HTMLGenericFormElement.cpp:
4789         * html/HTMLGenericFormElement.h:
4790         * html/HTMLHRElement.cpp:
4791         * html/HTMLHRElement.h:
4792         * html/HTMLHRElement.idl:
4793         * html/HTMLHeadElement.cpp:
4794         * html/HTMLHeadElement.h:
4795         * html/HTMLHeadElement.idl:
4796         * html/HTMLHeadingElement.cpp:
4797         * html/HTMLHeadingElement.h:
4798         * html/HTMLHeadingElement.idl:
4799         * html/HTMLHtmlElement.cpp:
4800         * html/HTMLHtmlElement.h:
4801         * html/HTMLHtmlElement.idl:
4802         * html/HTMLIFrameElement.cpp:
4803         * html/HTMLIFrameElement.h:
4804         * html/HTMLIFrameElement.idl:
4805         * html/HTMLImageElement.cpp:
4806         * html/HTMLImageElement.h:
4807         * html/HTMLImageElement.idl:
4808         * html/HTMLImageLoader.cpp:
4809         * html/HTMLImageLoader.h:
4810         * html/HTMLInputElement.cpp:
4811         * html/HTMLInputElement.h:
4812         * html/HTMLInputElement.idl:
4813         * html/HTMLIsIndexElement.cpp:
4814         * html/HTMLIsIndexElement.h:
4815         * html/HTMLIsIndexElement.idl:
4816         * html/HTMLKeygenElement.cpp:
4817         * html/HTMLKeygenElement.h:
4818         * html/HTMLLIElement.cpp:
4819         * html/HTMLLIElement.h:
4820         * html/HTMLLIElement.idl:
4821         * html/HTMLLabelElement.cpp:
4822         * html/HTMLLabelElement.h:
4823         * html/HTMLLabelElement.idl:
4824         * html/HTMLLegendElement.cpp:
4825         * html/HTMLLegendElement.h:
4826         * html/HTMLLegendElement.idl:
4827         * html/HTMLLinkElement.cpp:
4828         * html/HTMLLinkElement.h:
4829         * html/HTMLLinkElement.idl:
4830         * html/HTMLMapElement.cpp:
4831         * html/HTMLMapElement.h:
4832         * html/HTMLMapElement.idl:
4833         * html/HTMLMarqueeElement.cpp:
4834         * html/HTMLMarqueeElement.h:
4835         * html/HTMLMarqueeElement.idl:
4836         * html/HTMLMenuElement.cpp:
4837         * html/HTMLMenuElement.h:
4838         * html/HTMLMenuElement.idl:
4839         * html/HTMLMetaElement.cpp:
4840         * html/HTMLMetaElement.h:
4841         * html/HTMLMetaElement.idl:
4842         * html/HTMLModElement.cpp:
4843         * html/HTMLModElement.h:
4844         * html/HTMLModElement.idl:
4845         * html/HTMLNameCollection.cpp:
4846         * html/HTMLNameCollection.h:
4847         * html/HTMLOListElement.cpp:
4848         * html/HTMLOListElement.h:
4849         * html/HTMLOListElement.idl:
4850         * html/HTMLObjectElement.cpp:
4851         * html/HTMLObjectElement.h:
4852         * html/HTMLObjectElement.idl:
4853         * html/HTMLOptGroupElement.cpp:
4854         * html/HTMLOptGroupElement.h:
4855         * html/HTMLOptGroupElement.idl:
4856         * html/HTMLOptionElement.cpp:
4857         * html/HTMLOptionElement.h:
4858         * html/HTMLOptionElement.idl:
4859         * html/HTMLOptionsCollection.cpp:
4860         * html/HTMLOptionsCollection.h:
4861         * html/HTMLOptionsCollection.idl:
4862         * html/HTMLParagraphElement.cpp:
4863         * html/HTMLParagraphElement.h:
4864         * html/HTMLParagraphElement.idl:
4865         * html/HTMLParamElement.cpp:
4866         * html/HTMLParamElement.h:
4867         * html/HTMLParamElement.idl:
4868         * html/HTMLParser.cpp:
4869         * html/HTMLParser.h:
4870         * html/HTMLPlugInElement.cpp:
4871         * html/HTMLPlugInElement.h:
4872         * html/HTMLPreElement.cpp:
4873         * html/HTMLPreElement.h:
4874         * html/HTMLPreElement.idl:
4875         * html/HTMLQuoteElement.cpp:
4876         * html/HTMLQuoteElement.h:
4877         * html/HTMLQuoteElement.idl:
4878         * html/HTMLScriptElement.cpp:
4879         * html/HTMLScriptElement.h:
4880         * html/HTMLScriptElement.idl:
4881         * html/HTMLSelectElement.cpp:
4882         * html/HTMLSelectElement.h:
4883         * html/HTMLSelectElement.idl:
4884         * html/HTMLStyleElement.cpp:
4885         * html/HTMLStyleElement.h:
4886         * html/HTMLStyleElement.idl:
4887         * html/HTMLTableCaptionElement.cpp:
4888         * html/HTMLTableCaptionElement.h:
4889         * html/HTMLTableCaptionElement.idl:
4890         * html/HTMLTableCellElement.cpp:
4891         * html/HTMLTableCellElement.h:
4892         * html/HTMLTableCellElement.idl:
4893         * html/HTMLTableColElement.cpp:
4894         * html/HTMLTableColElement.h:
4895         * html/HTMLTableColElement.idl:
4896         * html/HTMLTableElement.cpp:
4897         * html/HTMLTableElement.h:
4898         * html/HTMLTableElement.idl:
4899         * html/HTMLTablePartElement.cpp:
4900         * html/HTMLTablePartElement.h:
4901         * html/HTMLTableRowElement.cpp:
4902         * html/HTMLTableRowElement.h:
4903         * html/HTMLTableRowElement.idl:
4904         * html/HTMLTableSectionElement.cpp:
4905         * html/HTMLTableSectionElement.h:
4906         * html/HTMLTableSectionElement.idl:
4907         * html/HTMLTextAreaElement.cpp:
4908         * html/HTMLTextAreaElement.h:
4909         * html/HTMLTextAreaElement.idl:
4910         * html/HTMLTitleElement.cpp:
4911         * html/HTMLTitleElement.h:
4912         * html/HTMLTitleElement.idl:
4913         * html/HTMLTokenizer.cpp:
4914         * html/HTMLTokenizer.h:
4915         * html/HTMLUListElement.cpp:
4916         * html/HTMLUListElement.h:
4917         * html/HTMLUListElement.idl:
4918         * ksvg2/css/SVGCSSParser.cpp:
4919         * ksvg2/css/SVGCSSStyleSelector.cpp:
4920         * ksvg2/css/SVGRenderStyle.cpp:
4921         * ksvg2/css/SVGRenderStyle.h:
4922         * ksvg2/css/SVGRenderStyleDefs.cpp:
4923         * ksvg2/css/SVGRenderStyleDefs.h:
4924         * ksvg2/events/JSSVGLazyEventListener.cpp:
4925         * ksvg2/events/JSSVGLazyEventListener.h:
4926         * ksvg2/events/SVGZoomEvent.cpp:
4927         * ksvg2/events/SVGZoomEvent.h:
4928         * ksvg2/misc/KCanvasRenderingStyle.cpp:
4929         * ksvg2/misc/KCanvasRenderingStyle.h:
4930         * ksvg2/misc/PointerEventsHitRules.cpp:
4931         * ksvg2/misc/PointerEventsHitRules.h:
4932         * ksvg2/misc/SVGDocumentExtensions.cpp:
4933         * ksvg2/misc/SVGDocumentExtensions.h:
4934         * ksvg2/misc/SVGImageLoader.cpp:
4935         * ksvg2/misc/SVGImageLoader.h:
4936         * ksvg2/misc/SVGTimer.cpp:
4937         * ksvg2/misc/SVGTimer.h:
4938         * ksvg2/misc/TimeScheduler.cpp:
4939         * ksvg2/misc/TimeScheduler.h:
4940         * ksvg2/scripts/cssmakeprops:
4941         * ksvg2/scripts/cssmakevalues:
4942         * ksvg2/svg/ColorDistance.cpp:
4943         * ksvg2/svg/ColorDistance.h:
4944         * ksvg2/svg/GradientAttributes.h:
4945         * ksvg2/svg/LinearGradientAttributes.h:
4946         * ksvg2/svg/PatternAttributes.h:
4947         * ksvg2/svg/RadialGradientAttributes.h:
4948         * ksvg2/svg/SVGAElement.cpp:
4949         * ksvg2/svg/SVGAElement.h:
4950         * ksvg2/svg/SVGAngle.cpp:
4951         * ksvg2/svg/SVGAngle.h:
4952         * ksvg2/svg/SVGAngle.idl:
4953         * ksvg2/svg/SVGAnimateColorElement.cpp:
4954         * ksvg2/svg/SVGAnimateColorElement.h:
4955         * ksvg2/svg/SVGAnimateElement.cpp:
4956         * ksvg2/svg/SVGAnimateElement.h:
4957         * ksvg2/svg/SVGAnimateMotionElement.cpp:
4958         * ksvg2/svg/SVGAnimateMotionElement.h:
4959         * ksvg2/svg/SVGAnimateTransformElement.cpp:
4960         * ksvg2/svg/SVGAnimateTransformElement.h:
4961         * ksvg2/svg/SVGAnimatedPathData.cpp:
4962         * ksvg2/svg/SVGAnimatedPathData.h:
4963         * ksvg2/svg/SVGAnimatedPoints.cpp:
4964         * ksvg2/svg/SVGAnimatedPoints.h:
4965         * ksvg2/svg/SVGAnimatedTemplate.h:
4966         * ksvg2/svg/SVGAnimationElement.cpp:
4967         * ksvg2/svg/SVGAnimationElement.h:
4968         * ksvg2/svg/SVGCircleElement.cpp:
4969         * ksvg2/svg/SVGCircleElement.h:
4970         * ksvg2/svg/SVGClipPathElement.cpp:
4971         * ksvg2/svg/SVGClipPathElement.h:
4972         * ksvg2/svg/SVGColor.cpp:
4973         * ksvg2/svg/SVGColor.h:
4974         * ksvg2/svg/SVGColor.idl:
4975         * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
4976         * ksvg2/svg/SVGComponentTransferFunctionElement.h:
4977         * ksvg2/svg/SVGCursorElement.cpp:
4978         * ksvg2/svg/SVGCursorElement.h:
4979         * ksvg2/svg/SVGDefsElement.cpp:
4980         * ksvg2/svg/SVGDefsElement.h:
4981         * ksvg2/svg/SVGDescElement.cpp:
4982         * ksvg2/svg/SVGDescElement.h:
4983         * ksvg2/svg/SVGDocument.cpp:
4984         * ksvg2/svg/SVGDocument.h:
4985         * ksvg2/svg/SVGDocument.idl:
4986         * ksvg2/svg/SVGElement.cpp:
4987         * ksvg2/svg/SVGElement.h:
4988         * ksvg2/svg/SVGElement.idl:
4989         * ksvg2/svg/SVGElementInstance.cpp:
4990         * ksvg2/svg/SVGElementInstance.h:
4991         * ksvg2/svg/SVGElementInstanceList.cpp:
4992         * ksvg2/svg/SVGElementInstanceList.h:
4993         * ksvg2/svg/SVGEllipseElement.cpp:
4994         * ksvg2/svg/SVGEllipseElement.h:
4995         * ksvg2/svg/SVGException.h:
4996         * ksvg2/svg/SVGExternalResourcesRequired.cpp:
4997         * ksvg2/svg/SVGExternalResourcesRequired.h:
4998         * ksvg2/svg/SVGFEBlendElement.cpp:
4999         * ksvg2/svg/SVGFEBlendElement.h:
5000         * ksvg2/svg/SVGFEColorMatrixElement.cpp:
5001         * ksvg2/svg/SVGFEColorMatrixElement.h:
5002         * ksvg2/svg/SVGFEComponentTransferElement.cpp:
5003         * ksvg2/svg/SVGFEComponentTransferElement.h:
5004         * ksvg2/svg/SVGFECompositeElement.cpp:
5005         * ksvg2/svg/SVGFECompositeElement.h:
5006         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
5007         * ksvg2/svg/SVGFEDiffuseLightingElement.h:
5008         * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
5009         * ksvg2/svg/SVGFEDisplacementMapElement.h:
5010         * ksvg2/svg/SVGFEDistantLightElement.cpp:
5011         * ksvg2/svg/SVGFEDistantLightElement.h:
5012         * ksvg2/svg/SVGFEFloodElement.cpp:
5013         * ksvg2/svg/SVGFEFloodElement.h:
5014         * ksvg2/svg/SVGFEFuncAElement.cpp:
5015         * ksvg2/svg/SVGFEFuncAElement.h:
5016         * ksvg2/svg/SVGFEFuncBElement.cpp:
5017         * ksvg2/svg/SVGFEFuncBElement.h:
5018         * ksvg2/svg/SVGFEFuncGElement.cpp:
5019         * ksvg2/svg/SVGFEFuncGElement.h:
5020         * ksvg2/svg/SVGFEFuncRElement.cpp:
5021         * ksvg2/svg/SVGFEFuncRElement.h:
5022         * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
5023         * ksvg2/svg/SVGFEGaussianBlurElement.h:
5024         * ksvg2/svg/SVGFEImageElement.cpp:
5025         * ksvg2/svg/SVGFEImageElement.h:
5026         * ksvg2/svg/SVGFELightElement.cpp:
5027         * ksvg2/svg/SVGFELightElement.h:
5028         * ksvg2/svg/SVGFEMergeElement.cpp:
5029         * ksvg2/svg/SVGFEMergeElement.h:
5030         * ksvg2/svg/SVGFEMergeNodeElement.cpp:
5031         * ksvg2/svg/SVGFEMergeNodeElement.h:
5032         * ksvg2/svg/SVGFEOffsetElement.cpp:
5033         * ksvg2/svg/SVGFEOffsetElement.h:
5034         * ksvg2/svg/SVGFEPointLightElement.cpp:
5035         * ksvg2/svg/SVGFEPointLightElement.h:
5036         * ksvg2/svg/SVGFESpecularLightingElement.cpp:
5037         * ksvg2/svg/SVGFESpecularLightingElement.h:
5038         * ksvg2/svg/SVGFESpotLightElement.cpp:
5039         * ksvg2/svg/SVGFESpotLightElement.h:
5040         * ksvg2/svg/SVGFETileElement.cpp:
5041         * ksvg2/svg/SVGFETileElement.h:
5042         * ksvg2/svg/SVGFETurbulenceElement.cpp:
5043         * ksvg2/svg/SVGFETurbulenceElement.h:
5044         * ksvg2/svg/SVGFilterElement.cpp:
5045         * ksvg2/svg/SVGFilterElement.h:
5046         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp:
5047         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
5048         * ksvg2/svg/SVGFitToViewBox.cpp:
5049         * ksvg2/svg/SVGFitToViewBox.h:
5050         * ksvg2/svg/SVGForeignObjectElement.cpp:
5051         * ksvg2/svg/SVGForeignObjectElement.h:
5052         * ksvg2/svg/SVGGElement.cpp:
5053         * ksvg2/svg/SVGGElement.h:
5054         * ksvg2/svg/SVGGradientElement.cpp:
5055         * ksvg2/svg/SVGGradientElement.h:
5056         * ksvg2/svg/SVGImageElement.cpp:
5057         * ksvg2/svg/SVGImageElement.h:
5058         * ksvg2/svg/SVGLangSpace.cpp:
5059         * ksvg2/svg/SVGLangSpace.h:
5060         * ksvg2/svg/SVGLength.cpp:
5061         * ksvg2/svg/SVGLength.h:
5062         * ksvg2/svg/SVGLength.idl:
5063         * ksvg2/svg/SVGLengthList.cpp:
5064         * ksvg2/svg/SVGLengthList.h:
5065         * ksvg2/svg/SVGLineElement.cpp:
5066         * ksvg2/svg/SVGLineElement.h:
5067         * ksvg2/svg/SVGLinearGradientElement.cpp:
5068         * ksvg2/svg/SVGLinearGradientElement.h:
5069         * ksvg2/svg/SVGList.h:
5070         * ksvg2/svg/SVGListTraits.h:
5071         * ksvg2/svg/SVGLocatable.cpp:
5072         * ksvg2/svg/SVGLocatable.h:
5073         * ksvg2/svg/SVGMPathElement.cpp:
5074         * ksvg2/svg/SVGMPathElement.h:
5075         * ksvg2/svg/SVGMarkerElement.cpp:
5076         * ksvg2/svg/SVGMarkerElement.h:
5077         * ksvg2/svg/SVGMaskElement.cpp:
5078         * ksvg2/svg/SVGMaskElement.h:
5079         * ksvg2/svg/SVGMatrix.idl:
5080         * ksvg2/svg/SVGMetadataElement.cpp:
5081         * ksvg2/svg/SVGMetadataElement.h:
5082         * ksvg2/svg/SVGMetadataElement.idl:
5083         * ksvg2/svg/SVGNumber.idl:
5084         * ksvg2/svg/SVGNumberList.cpp:
5085         * ksvg2/svg/SVGNumberList.h:
5086         * ksvg2/svg/SVGPaint.cpp:
5087         * ksvg2/svg/SVGPaint.h:
5088         * ksvg2/svg/SVGParserUtilities.cpp:
5089         * ksvg2/svg/SVGParserUtilities.h:
5090         * ksvg2/svg/SVGPathElement.cpp:
5091         * ksvg2/svg/SVGPathElement.h:
5092         * ksvg2/svg/SVGPathSeg.h:
5093         * ksvg2/svg/SVGPathSegArc.cpp:
5094         * ksvg2/svg/SVGPathSegArc.h:
5095         * ksvg2/svg/SVGPathSegClosePath.cpp:
5096         * ksvg2/svg/SVGPathSegClosePath.h:
5097         * ksvg2/svg/SVGPathSegCurvetoCubic.cpp:
5098         * ksvg2/svg/SVGPathSegCurvetoCubic.h:
5099         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.cpp:
5100         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h:
5101         * ksvg2/svg/SVGPathSegCurvetoQuadratic.cpp:
5102         * ksvg2/svg/SVGPathSegCurvetoQuadratic.h:
5103         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.cpp:
5104         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h:
5105         * ksvg2/svg/SVGPathSegLineto.cpp:
5106         * ksvg2/svg/SVGPathSegLineto.h:
5107         * ksvg2/svg/SVGPathSegLinetoHorizontal.cpp:
5108         * ksvg2/svg/SVGPathSegLinetoHorizontal.h:
5109         * ksvg2/svg/SVGPathSegLinetoVertical.cpp:
5110         * ksvg2/svg/SVGPathSegLinetoVertical.h:
5111         * ksvg2/svg/SVGPathSegList.cpp:
5112         * ksvg2/svg/SVGPathSegList.h:
5113         * ksvg2/svg/SVGPathSegMoveto.cpp:
5114         * ksvg2/svg/SVGPathSegMoveto.h:
5115         * ksvg2/svg/SVGPatternElement.cpp:
5116         * ksvg2/svg/SVGPatternElement.h:
5117         * ksvg2/svg/SVGPoint.idl:
5118         * ksvg2/svg/SVGPointList.cpp:
5119         * ksvg2/svg/SVGPointList.h:
5120         * ksvg2/svg/SVGPolyElement.cpp:
5121         * ksvg2/svg/SVGPolyElement.h:
5122         * ksvg2/svg/SVGPolygonElement.cpp:
5123         * ksvg2/svg/SVGPolygonElement.h:
5124         * ksvg2/svg/SVGPolylineElement.cpp:
5125         * ksvg2/svg/SVGPolylineElement.h:
5126         * ksvg2/svg/SVGPreserveAspectRatio.cpp:
5127         * ksvg2/svg/SVGPreserveAspectRatio.h:
5128         * ksvg2/svg/SVGRadialGradientElement.cpp:
5129         * ksvg2/svg/SVGRadialGradientElement.h:
5130         * ksvg2/svg/SVGRect.idl:
5131         * ksvg2/svg/SVGRectElement.cpp:
5132         * ksvg2/svg/SVGRectElement.h:
5133         * ksvg2/svg/SVGRenderingIntent.h:
5134         * ksvg2/svg/SVGSVGElement.cpp:
5135         * ksvg2/svg/SVGSVGElement.h:
5136         * ksvg2/svg/SVGSVGElement.idl:
5137         * ksvg2/svg/SVGScriptElement.cpp:
5138         * ksvg2/svg/SVGScriptElement.h:
5139         * ksvg2/svg/SVGSetElement.cpp:
5140         * ksvg2/svg/SVGSetElement.h:
5141         * ksvg2/svg/SVGStopElement.cpp:
5142         * ksvg2/svg/SVGStopElement.h:
5143         * ksvg2/svg/SVGStringList.cpp:
5144         * ksvg2/svg/SVGStringList.h:
5145         * ksvg2/svg/SVGStylable.cpp:
5146         * ksvg2/svg/SVGStylable.h:
5147         * ksvg2/svg/SVGStyleElement.cpp:
5148         * ksvg2/svg/SVGStyleElement.h:
5149         * ksvg2/svg/SVGStyledElement.cpp:
5150         * ksvg2/svg/SVGStyledElement.h:
5151         * ksvg2/svg/SVGStyledLocatableElement.cpp:
5152         * ksvg2/svg/SVGStyledLocatableElement.h:
5153         * ksvg2/svg/SVGStyledTransformableElement.cpp:
5154         * ksvg2/svg/SVGStyledTransformableElement.h:
5155         * ksvg2/svg/SVGSwitchElement.cpp:
5156         * ksvg2/svg/SVGSwitchElement.h:
5157         * ksvg2/svg/SVGSymbolElement.cpp:
5158         * ksvg2/svg/SVGSymbolElement.h:
5159         * ksvg2/svg/SVGTRefElement.cpp:
5160         * ksvg2/svg/SVGTRefElement.h:
5161         * ksvg2/svg/SVGTSpanElement.cpp:
5162         * ksvg2/svg/SVGTSpanElement.h:
5163         * ksvg2/svg/SVGTests.cpp:
5164         * ksvg2/svg/SVGTests.h:
5165         * ksvg2/svg/SVGTextContentElement.cpp:
5166         * ksvg2/svg/SVGTextContentElement.h:
5167         * ksvg2/svg/SVGTextElement.cpp:
5168         * ksvg2/svg/SVGTextElement.h:
5169         * ksvg2/svg/SVGTextPositioningElement.cpp:
5170         * ksvg2/svg/SVGTextPositioningElement.h:
5171         * ksvg2/svg/SVGTitleElement.cpp:
5172         * ksvg2/svg/SVGTitleElement.h:
5173         * ksvg2/svg/SVGTransform.cpp:
5174         * ksvg2/svg/SVGTransform.h:
5175         * ksvg2/svg/SVGTransform.idl:
5176         * ksvg2/svg/SVGTransformDistance.cpp:
5177         * ksvg2/svg/SVGTransformDistance.h:
5178         * ksvg2/svg/SVGTransformList.cpp:
5179         * ksvg2/svg/SVGTransformList.h:
5180         * ksvg2/svg/SVGTransformable.cpp:
5181         * ksvg2/svg/SVGTransformable.h:
5182         * ksvg2/svg/SVGURIReference.cpp:
5183         * ksvg2/svg/SVGURIReference.h:
5184         * ksvg2/svg/SVGUnitTypes.h:
5185         * ksvg2/svg/SVGUseElement.cpp:
5186         * ksvg2/svg/SVGUseElement.h:
5187         * ksvg2/svg/SVGViewElement.cpp:
5188         * ksvg2/svg/SVGViewElement.h:
5189         * ksvg2/svg/SVGZoomAndPan.cpp:
5190         * ksvg2/svg/SVGZoomAndPan.h:
5191         * loader/Cache.cpp:
5192         * loader/Cache.h:
5193         * loader/CachedCSSStyleSheet.cpp:
5194         * loader/CachedCSSStyleSheet.h:
5195         * loader/CachedImage.cpp:
5196         * loader/CachedImage.h:
5197         * loader/CachedResource.cpp:
5198         * loader/CachedResource.h:
5199         * loader/CachedResourceClient.h:
5200         * loader/CachedResourceClientWalker.cpp:
5201         * loader/CachedResourceClientWalker.h:
5202         * loader/CachedScript.cpp:
5203         * loader/CachedScript.h:
5204         * loader/CachedXBLDocument.cpp:
5205         * loader/CachedXBLDocument.h:
5206         * loader/CachedXSLStyleSheet.cpp:
5207         * loader/CachedXSLStyleSheet.h:
5208         * loader/DocLoader.cpp:
5209         * loader/DocLoader.h:
5210         * loader/FTPDirectoryParser.cpp:
5211         * loader/FTPDirectoryParser.h:
5212         * loader/Request.cpp:
5213         * loader/Request.h:
5214         * loader/TextResourceDecoder.cpp:
5215         * loader/TextResourceDecoder.h:
5216         * loader/loader.cpp:
5217         * loader/loader.h:
5218         * page/Chrome.cpp:
5219         * page/Chrome.h:
5220         * page/ChromeClient.h:
5221         * page/Frame.cpp:
5222         * page/Frame.h:
5223         * page/FramePrivate.h:
5224         * page/FrameTree.cpp:
5225         * page/FrameTree.h:
5226         * page/FrameView.cpp:
5227         * page/FrameView.h:
5228         * page/MouseEventWithHitTestResults.cpp:
5229         * page/MouseEventWithHitTestResults.h:
5230         * page/Page.cpp:
5231         * page/Page.h:
5232         * page/Plugin.h:
5233         * page/mac/ChromeMac.mm:
5234         * platform/Arena.cpp:
5235         * platform/Arena.h:
5236         * platform/AtomicString.cpp:
5237         * platform/AtomicString.h:
5238         * platform/AtomicStringImpl.h:
5239         * platform/BidiContext.cpp:
5240         * platform/BidiContext.h:
5241         * platform/BidiResolver.h:
5242         * platform/Font.cpp:
5243         * platform/Font.h:
5244         * platform/FontData.h:
5245         * platform/FontDescription.h:
5246         * platform/FontFallbackList.h:
5247         * platform/PlatformString.h:
5248         * platform/PopupMenu.h:
5249         * platform/PopupMenuClient.h:
5250         * platform/SearchPopupMenu.h:
5251         * platform/SegmentedString.cpp:
5252         * platform/SegmentedString.h:
5253         * platform/Shared.h:
5254         * platform/StaticConstructors.h:
5255         * platform/String.cpp:
5256         * platform/StringHash.h:
5257         * platform/StringImpl.cpp:
5258         * platform/StringImpl.h:
5259         * platform/TextBreakIterator.h:
5260         * platform/TextBreakIteratorICU.cpp:
5261         * platform/TextBreakIteratorInternalICU.h:
5262         * platform/TextStyle.h:
5263         * platform/UnicodeRange.cpp:
5264         * platform/UnicodeRange.h:
5265         * platform/cf/StringCF.cpp:
5266         * platform/cf/StringImplCF.cpp:
5267         * platform/graphics/FloatPoint3D.cpp:
5268         * platform/graphics/FloatPoint3D.h:
5269         * platform/graphics/Icon.h:
5270         * platform/graphics/IntSizeHash.h:
5271         * platform/graphics/PathTraversalState.cpp:
5272         * platform/graphics/cairo/CairoPath.h:
5273         * platform/graphics/cairo/PathCairo.cpp:
5274         * platform/graphics/mac/IconMac.mm:
5275         * platform/graphics/qt/IconQt.cpp:
5276         * platform/graphics/svg/SVGResourceFilter.cpp:
5277         * platform/graphics/svg/SVGResourceFilter.h:
5278         * platform/graphics/svg/cg/SVGPaintServerCg.cpp:
5279         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
5280         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
5281         * platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp:
5282         * platform/graphics/svg/filters/SVGDistantLightSource.h:
5283         * platform/graphics/svg/filters/SVGFEBlend.cpp:
5284         * platform/graphics/svg/filters/SVGFEBlend.h:
5285         * platform/graphics/svg/filters/SVGFEColorMatrix.cpp:
5286         * platform/graphics/svg/filters/SVGFEColorMatrix.h:
5287         * platform/graphics/svg/filters/SVGFEComponentTransfer.cpp:
5288         * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
5289         * platform/graphics/svg/filters/SVGFEComposite.cpp:
5290         * platform/graphics/svg/filters/SVGFEComposite.h:
5291         * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
5292         * platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
5293         * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
5294         * platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
5295         * platform/graphics/svg/filters/SVGFEDisplacementMap.cpp:
5296         * platform/graphics/svg/filters/SVGFEDisplacementMap.h:
5297         * platform/graphics/svg/filters/SVGFEFlood.cpp:
5298         * platform/graphics/svg/filters/SVGFEFlood.h:
5299         * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
5300         * platform/graphics/svg/filters/SVGFEGaussianBlur.h:
5301         * platform/graphics/svg/filters/SVGFEImage.cpp:
5302         * platform/graphics/svg/filters/SVGFEImage.h:
5303         * platform/graphics/svg/filters/SVGFEMerge.cpp:
5304         * platform/graphics/svg/filters/SVGFEMerge.h:
5305         * platform/graphics/svg/filters/SVGFEMorphology.cpp:
5306         * platform/graphics/svg/filters/SVGFEMorphology.h:
5307         * platform/graphics/svg/filters/SVGFEOffset.cpp:
5308         * platform/graphics/svg/filters/SVGFEOffset.h:
5309         * platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
5310         * platform/graphics/svg/filters/SVGFESpecularLighting.h:
5311         * platform/graphics/svg/filters/SVGFETile.h:
5312         * platform/graphics/svg/filters/SVGFETurbulence.cpp:
5313         * platform/graphics/svg/filters/SVGFETurbulence.h:
5314         * platform/graphics/svg/filters/SVGFilterEffect.cpp:
5315         * platform/graphics/svg/filters/SVGFilterEffect.h:
5316         * platform/graphics/svg/filters/SVGLightSource.cpp:
5317         * platform/graphics/svg/filters/SVGLightSource.h:
5318         * platform/graphics/svg/filters/SVGPointLightSource.h:
5319         * platform/graphics/svg/filters/SVGSpotLightSource.h:
5320         * platform/graphics/svg/filters/cg/SVGFEBlendCg.mm:
5321         * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
5322         * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
5323         * platform/graphics/svg/filters/cg/SVGFECompositeCg.mm:
5324         * platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm:
5325         * platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm:
5326         * platform/graphics/svg/filters/cg/SVGFEFloodCg.mm:
5327         * platform/graphics/svg/filters/cg/SVGFEGaussianBlurCg.mm:
5328         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
5329         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm:
5330         * platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
5331         * platform/graphics/svg/filters/cg/SVGFEMergeCg.mm:
5332         * platform/graphics/svg/filters/cg/SVGFEOffsetCg.mm:
5333         * platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm:
5334         * platform/graphics/svg/filters/cg/SVGFETileCg.mm:
5335         * platform/graphics/svg/filters/cg/SVGFilterEffectCg.mm:
5336         * platform/graphics/svg/qt/RenderPathQt.cpp:
5337         * platform/graphics/svg/qt/SVGPaintServerGradientQt.cpp:
5338         * platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp:
5339         * platform/graphics/svg/qt/SVGPaintServerPatternQt.cpp:
5340         * platform/graphics/svg/qt/SVGPaintServerQt.cpp:
5341         * platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp:
5342         * platform/graphics/svg/qt/SVGPaintServerSolidQt.cpp:
5343         * platform/graphics/svg/qt/SVGResourceClipperQt.cpp:
5344         * platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
5345         * platform/graphics/svg/qt/SVGResourceMaskerQt.cpp:
5346         * platform/graphics/win/IconWin.cpp:
5347         * platform/gtk/FontPlatformData.h:
5348         * platform/gtk/FontPlatformDataGtk.cpp:
5349         * platform/gtk/PopupMenuGtk.cpp:
5350         * platform/gtk/RenderThemeGtk.cpp:
5351         * platform/gtk/RenderThemeGtk.h:
5352         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
5353         * platform/image-decoders/png/PNGImageDecoder.cpp:
5354         * platform/mac/FontMac.mm:
5355         * platform/mac/FontPlatformData.h:
5356         * platform/mac/LocalCurrentGraphicsContext.h:
5357         * platform/mac/LocalCurrentGraphicsContext.mm:
5358         * platform/mac/PopupMenuMac.mm:
5359         * platform/mac/SearchPopupMenuMac.mm:
5360         * platform/mac/StringImplMac.mm:
5361         * platform/mac/StringMac.mm:
5362         * platform/mac/TextBreakIteratorInternalICUMac.mm:
5363         * platform/network/FormData.cpp:
5364         * platform/network/FormData.h:
5365         * platform/qt/FileChooserQt.cpp:
5366         * platform/qt/FontQt.cpp:
5367         * platform/qt/MenuEventProxy.h:
5368         * platform/qt/PlugInInfoStoreQt.cpp:
5369         * platform/qt/PopupMenuQt.cpp:
5370         * platform/qt/QWebPopup.cpp:
5371         * platform/qt/QWebPopup.h:
5372         * platform/qt/RenderThemeQt.cpp:
5373         * platform/qt/RenderThemeQt.h:
5374         * platform/qt/SearchPopupMenuQt.cpp:
5375         * platform/qt/TextBreakIteratorQt.cpp:
5376         * platform/qt/WheelEventQt.cpp:
5377         * platform/win/FontPlatformData.h:
5378         * platform/win/FontPlatformDataWin.cpp:
5379         * platform/win/PopupMenuWin.cpp:
5380         * platform/win/SearchPopupMenuWin.cpp:
5381         * platform/win/TextBreakIteratorInternalICUWin.cpp:
5382         * rendering/AutoTableLayout.cpp:
5383         * rendering/AutoTableLayout.h:
5384         * rendering/CounterNode.cpp:
5385         * rendering/CounterNode.h:
5386         * rendering/DataRef.h:
5387         * rendering/EllipsisBox.cpp:
5388         * rendering/EllipsisBox.h:
5389         * rendering/FixedTableLayout.cpp:
5390         * rendering/FixedTableLayout.h:
5391         * rendering/GapRects.h:
5392         * rendering/HitTestRequest.h:
5393         * rendering/HitTestResult.cpp:
5394         * rendering/HitTestResult.h:
5395         * rendering/InlineBox.cpp:
5396         * rendering/InlineBox.h:
5397         * rendering/InlineFlowBox.cpp:
5398         * rendering/InlineFlowBox.h:
5399         * rendering/InlineRunBox.h:
5400         * rendering/InlineTextBox.cpp:
5401         * rendering/InlineTextBox.h:
5402         * rendering/Length.h:
5403         * rendering/ListMarkerBox.cpp:
5404         * rendering/ListMarkerBox.h:
5405         * rendering/RenderApplet.cpp:
5406         * rendering/RenderApplet.h:
5407         * rendering/RenderArena.cpp:
5408         * rendering/RenderArena.h:
5409         * rendering/RenderBR.cpp:
5410         * rendering/RenderBR.h:
5411         * rendering/RenderBlock.cpp:
5412         * rendering/RenderBlock.h:
5413         * rendering/RenderBox.cpp:
5414         * rendering/RenderBox.h:
5415         * rendering/RenderButton.cpp:
5416         * rendering/RenderButton.h:
5417         * rendering/RenderContainer.cpp:
5418         * rendering/RenderContainer.h:
5419         * rendering/RenderCounter.cpp:
5420         * rendering/RenderCounter.h:
5421         * rendering/RenderFieldset.cpp:
5422         * rendering/RenderFieldset.h:
5423         * rendering/RenderFileUploadControl.cpp:
5424         * rendering/RenderFileUploadControl.h:
5425         * rendering/RenderFlexibleBox.cpp:
5426         * rendering/RenderFlexibleBox.h:
5427         * rendering/RenderFlow.cpp:
5428         * rendering/RenderFlow.h:
5429         * rendering/RenderForeignObject.cpp:
5430         * rendering/RenderForeignObject.h:
5431         * rendering/RenderFrame.cpp:
5432         * rendering/RenderFrame.h:
5433         * rendering/RenderFrameSet.cpp:
5434         * rendering/RenderFrameSet.h:
5435         * rendering/RenderImage.cpp:
5436         * rendering/RenderImage.h:
5437         * rendering/RenderInline.cpp:
5438         * rendering/RenderInline.h:
5439         * rendering/RenderLayer.cpp:
5440         * rendering/RenderLayer.h:
5441         * rendering/RenderLegend.cpp:
5442         * rendering/RenderLegend.h:
5443         * rendering/RenderListItem.cpp:
5444         * rendering/RenderListItem.h:
5445         * rendering/RenderListMarker.cpp:
5446         * rendering/RenderListMarker.h:
5447         * rendering/RenderMenuList.cpp:
5448         * rendering/RenderMenuList.h:
5449         * rendering/RenderObject.cpp:
5450         * rendering/RenderObject.h:
5451         * rendering/RenderPart.cpp:
5452         * rendering/RenderPart.h:
5453         * rendering/RenderPartObject.cpp:
5454         * rendering/RenderPartObject.h:
5455         * rendering/RenderPath.cpp:
5456         * rendering/RenderPath.h:
5457         * rendering/RenderReplaced.cpp:
5458         * rendering/RenderReplaced.h:
5459         * rendering/RenderSVGBlock.cpp:
5460         * rendering/RenderSVGBlock.h:
5461         * rendering/RenderSVGContainer.cpp:
5462         * rendering/RenderSVGContainer.h:
5463         * rendering/RenderSVGGradientStop.cpp:
5464         * rendering/RenderSVGGradientStop.h:
5465         * rendering/RenderSVGHiddenContainer.cpp:
5466         * rendering/RenderSVGHiddenContainer.h:
5467         * rendering/RenderSVGImage.cpp:
5468         * rendering/RenderSVGImage.h:
5469         * rendering/RenderSVGInline.cpp:
5470         * rendering/RenderSVGInline.h:
5471         * rendering/RenderSVGInlineText.cpp:
5472         * rendering/RenderSVGInlineText.h:
5473         * rendering/RenderSVGTSpan.cpp:
5474         * rendering/RenderSVGTSpan.h:
5475         * rendering/RenderSVGText.cpp:
5476         * rendering/RenderSVGText.h:
5477         * rendering/RenderSlider.cpp:
5478         * rendering/RenderSlider.h:
5479         * rendering/RenderStyle.cpp:
5480         * rendering/RenderStyle.h:
5481         * rendering/RenderTable.cpp:
5482         * rendering/RenderTable.h:
5483         * rendering/RenderTableCell.cpp:
5484         * rendering/RenderTableCell.h:
5485         * rendering/RenderTableCol.cpp:
5486         * rendering/RenderTableCol.h:
5487         * rendering/RenderTableRow.cpp:
5488         * rendering/RenderTableRow.h:
5489         * rendering/RenderTableSection.cpp:
5490         * rendering/RenderTableSection.h:
5491         * rendering/RenderText.cpp:
5492         * rendering/RenderText.h:
5493         * rendering/RenderTextControl.cpp:
5494         * rendering/RenderTextControl.h:
5495         * rendering/RenderTextFragment.cpp:
5496         * rendering/RenderTextFragment.h:
5497         * rendering/RenderTheme.cpp:
5498         * rendering/RenderTheme.h:
5499         * rendering/RenderThemeMac.h:
5500         * rendering/RenderThemeMac.mm:
5501         * rendering/RenderThemeSafari.cpp:
5502         * rendering/RenderThemeSafari.h:
5503         * rendering/RenderThemeWin.cpp:
5504         * rendering/RenderThemeWin.h:
5505         * rendering/RenderView.cpp:
5506         * rendering/RenderView.h:
5507         * rendering/RenderWidget.cpp:
5508         * rendering/RenderWidget.h:
5509         * rendering/RootInlineBox.cpp:
5510         * rendering/RootInlineBox.h:
5511         * rendering/SVGInlineFlowBox.cpp:
5512         * rendering/SVGInlineFlowBox.h:
5513         * rendering/SVGInlineTextBox.cpp:
5514         * rendering/SVGInlineTextBox.h:
5515         * rendering/SVGRootInlineBox.cpp:
5516         * rendering/SVGRootInlineBox.h:
5517         * rendering/TableLayout.h:
5518         * rendering/bidi.cpp:
5519         * rendering/bidi.h:
5520         * rendering/break_lines.cpp:
5521         * rendering/break_lines.h:
5522         * xml/DOMParser.cpp:
5523         * xml/DOMParser.h:
5524         * xml/DOMParser.idl:
5525         * xml/XMLHttpRequest.cpp:
5526         * xml/XMLHttpRequest.h:
5527         * xml/XMLSerializer.cpp:
5528         * xml/XMLSerializer.h:
5529         * xml/XMLSerializer.idl:
5530         * xml/XPathEvaluator.idl:
5531         * xml/XPathExpression.idl:
5532         * xml/XPathNSResolver.idl:
5533         * xml/XPathResult.idl:
5534         * xml/XSLImportRule.cpp:
5535         * xml/XSLImportRule.h:
5536         * xml/XSLStyleSheet.cpp:
5537         * xml/XSLStyleSheet.h:
5538         * xml/XSLTProcessor.cpp:
5539         * xml/XSLTProcessor.h:
5540
5541 2007-09-25  Darin Adler  <darin@apple.com>
5542
5543         Reviewed by Harrison.
5544
5545         - fix <rdar://problem/5503225> CrashTracer: [USER] 2 crashes in Dashcode
5546           at com.apple.WebCore: WebCore::Frame::document const + 0
5547
5548         * page/FrameView.cpp: (WebCore::FrameView::updateControlTints):
5549         Added null check.
5550
5551 2007-09-25  Beth Dakin  <bdakin@apple.com>
5552
5553         Reviewed by Darin.
5554
5555         Fixes http://bugs.webkit.org/show_bug.cgi?id=15282 r25726 caused 
5556         plugins/mouse-events.html to fail
5557
5558         * page/FrameView.cpp:
5559         (WebCore::FrameView::layout): We need to call 
5560         updateWidgetPosition() after updating each widget.
5561
5562 2007-09-25  Anders Carlsson  <andersca@apple.com>
5563
5564         Build fix.
5565         
5566         * page/Chrome.cpp:
5567         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
5568
5569 2007-09-25  Anders Carlsson  <andersca@apple.com>
5570
5571         Reviewed by Geoff.
5572
5573         <rdar://problem/5283916>
5574         JavaScript timers may be firing while JavaScript alerts are displayed.
5575         
5576         Pause JavaScript timeouts while calling UI delegate methods that might show dialogs.
5577         
5578         * page/Chrome.cpp:
5579         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
5580         (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
5581
5582 2007-09-26  Holger Hans Peter Freyther  <zecke@selfish.org>
5583
5584         Reviewed by Anders.
5585
5586         Implement PopupMenu using GtkMenu.
5587
5588         * platform/PopupMenu.h:
5589         * platform/gtk/PopupMenuGtk.cpp:
5590         (WebCore::PopupMenu::PopupMenu):
5591         (WebCore::PopupMenu::~PopupMenu):
5592         (WebCore::PopupMenu::show):
5593         (WebCore::PopupMenu::hide):
5594         (WebCore::PopupMenu::updateFromElement):
5595         (WebCore::PopupMenu::itemWritingDirectionIsNatural):
5596         (WebCore::PopupMenu::menuItemActivated):
5597         (WebCore::PopupMenu::menuUnmapped):
5598         (WebCore::PopupMenu::menuPositionFunction):
5599         (WebCore::PopupMenu::menuRemoveItem):
5600
5601 2007-09-23  Holger Hans Peter Freyther  <zecke@selfish.org>
5602
5603         Rubber stamped by Mark.
5604
5605         Obey the Coding-Style and move the asterisk to the
5606         left to be part of the type.
5607
5608         * platform/gtk/RenderThemeGtk.h:
5609
5610 2007-09-25  Beth Dakin  <bdakin@apple.com>
5611
5612         Reviewed by Darin.
5613
5614         Fix for <rdar://problem/5466459> CrashTracer: [USER] 1 crash in 
5615         NetNewsWire at com.apple.WebCore: WebCore::bidiNext + 485 (15241)
5616
5617         Mitz discovered that this crash appeared because r25128 made it 
5618         possible for RenderPartObject::updateWidget() to be called during 
5619         layout. updateWidget() can, through a series of calls, cause an 
5620         attach/detach to happen, which is very bad in the middle of a 
5621         layout and is what led to this crash. This patch fixes that by 
5622         having the FrameView keep track of a queue of RenderPartObjects 
5623         that need to call updateWidget(), and it goes through the queue 
5624         calling updateWidget() as soon as layout is done.
5625
5626         * page/FrameView.cpp: We only want to call updateWidget() if we are 
5627         not in a nested layout. Unfortunately, the existing variables on 
5628         FrameViewPrivate do not have exactly the information that we need, 
5629         so I added nestedLayoutCount.
5630         (WebCore::FrameViewPrivate::reset): Reset nestedLayoutCount.
5631         (WebCore::FrameView::layout): Increment nestedLayoutCount once we 
5632         have gotten through all of the early returns. Call updateWidget() 
5633         after layout is nestedLayoutCount is 1 and there are widgets to 
5634         update. Decrement nestedLayoutCount at the end.
5635         (WebCore::FrameView::addWidgetToUpdate):
5636         (WebCore::FrameView::removeWidgetToUpdate):
5637         * page/FrameView.h:
5638         * rendering/RenderPartObject.cpp:
5639         (WebCore::RenderPartObject::~RenderPartObject): Remove this from 
5640         the FrameView's update set.
5641         (WebCore::RenderPartObject::layout): Instead of calling 
5642         updateWidget() immediately, add this to the update widget set on 
5643         FrameView.
5644         * rendering/RenderPartObject.h:
5645
5646 2007-09-25  David Kilzer  <ddkilzer@webkit.org>
5647
5648         Reviewed by Mark Rowe.
5649
5650         - fix http://bugs.webkit.org/show_bug.cgi?id=15275
5651           SVG dependency on WebCore/dom/XMLTokenizer.cpp
5652
5653         * dom/XMLTokenizer.cpp: Moved #include "SVGStyleElement.h" into #if ENABLE(SVG).
5654
5655 2007-09-25  Justin Garcia  <justin.garcia@apple.com>
5656
5657         Reviewed by Darin.
5658
5659         <rdar://problem/5483567> 
5660         REGRESSION (Tiger only, workaround in AppKit on Leopard): Pasting words copied from TextEdit in Mail adds extra newline
5661         
5662         * editing/ReplaceSelectionCommand.cpp:
5663         (WebCore::ReplaceSelectionCommand::removeUnrenderedNodes): Added.
5664         (WebCore::ReplaceSelectionCommand::doApply): Call removeUnrenderedNodes
5665         to prevent unrendered spaces from interfering with paragraph merging.
5666         * editing/ReplaceSelectionCommand.h:
5667
5668 2007-09-24  Steve Falkenburg  <sfalken@apple.com>
5669
5670         Reviewed by Darin.
5671
5672         - fix <rdar://problem/5502513>
5673
5674         * platform/win/FontCacheWin.cpp:
5675         (WebCore::FontCache::getFontLinkInterface):
5676         Roll back this file; the old code leaked a global COM object, but that's
5677         no big deal and the new code caused a crash on quit.
5678
5679 2007-09-24  Anders Carlsson  <andersca@apple.com>
5680
5681         Reviewed by Adam.
5682
5683         <rdar://problem/5494608>
5684         Seed: Safari will follow links in Flash movies without clicking.
5685
5686         Make sure to handle mouseover and mouseout so the plug-in can track when the mouse is over it.
5687                 
5688         * plugins/win/PluginViewWin.cpp:
5689         (WebCore::PluginViewWin::handleMouseEvent):
5690
5691 2007-09-24  Mike Fenton  <mike@staikos.net>
5692
5693         Reviewed by George Staikos.
5694
5695         Switch to using a QImage instead of a QPixmap to make transparency work.
5696
5697         * html/CanvasRenderingContext2D.cpp:
5698         (WebCore::CanvasRenderingContext2D::drawImage):
5699         * html/HTMLCanvasElement.cpp:
5700         (WebCore::HTMLCanvasElement::paint):
5701         (WebCore::HTMLCanvasElement::createDrawingContext):
5702         (WebCore::HTMLCanvasElement::createPlatformImage):
5703         * html/HTMLCanvasElement.h:
5704
5705 2007-09-21  Kevin McCullough  <kmccullough@apple.com>
5706
5707         Reviewed by Sam.
5708
5709         - Updated project files to not use Edit and Continue for Debug Information since it doesn't work and breaks some functionality.
5710
5711         * WebCore.vcproj/WebCore.vcproj:
5712
5713 2007-09-24  Brady Eidson  <beidson@apple.com>
5714
5715         Reviewed by John Sullivan
5716
5717         * loader/icon/IconDatabase.cpp:
5718         (WebCore::IconDatabase::iconForPageURL): Assert the page url is non-null
5719
5720 2007-09-20  Holger Hans Peter Freyther  <zecke@selfish.org>
5721
5722         Rubber stamped by Adam.
5723
5724         Renamed files from *Gdk to *Gtk (see #14732) using the
5725         work of Juan A. Suarez Romero as a base.
5726
5727         GDK -> GTK
5728
5729         * Projects/gdk/webcore-gdk.bkl:
5730         * WebCore.pro:
5731         * WebCoreSources.bkl:
5732         * loader/gdk: Removed.
5733         * loader/gdk/DocumentLoaderGdk.cpp: Removed.
5734         * loader/gtk: Added.
5735         * loader/gtk/DocumentLoaderGdk.cpp: Removed.
5736         * loader/gtk/DocumentLoaderGtk.cpp: Added.
5737         * page/FrameView.cpp:
5738         * page/FrameView.h:
5739         * page/gdk: Removed.
5740         * page/gdk/DragControllerGdk.cpp: Removed.
5741         * page/gdk/EventHandlerGdk.cpp: Removed.
5742         * page/gdk/FrameGdk.cpp: Removed.
5743         * page/gtk: Added.
5744         * page/gtk/DragControllerGdk.cpp: Removed.
5745         * page/gtk/DragControllerGtk.cpp: Added.
5746         * page/gtk/EventHandlerGdk.cpp: Removed.
5747         * page/gtk/EventHandlerGtk.cpp: Added.
5748         (WebCore::EventHandler::createDraggingClipboard):
5749         * page/gtk/FrameGdk.cpp: Removed.
5750         * page/gtk/FrameGtk.cpp: Added.
5751         * platform/ContextMenuItem.h:
5752         * platform/Cursor.h:
5753         * platform/DragData.h:
5754         * platform/DragImage.h:
5755         * platform/FontData.h:
5756         * platform/NotImplemented.h:
5757         * platform/PlatformKeyboardEvent.h:
5758         * platform/PlatformMenuDescription.h:
5759         * platform/PlatformMouseEvent.h:
5760         * platform/PlatformWheelEvent.h:
5761         * platform/ScrollView.h:
5762         * platform/Widget.h:
5763         * platform/gdk: Removed.
5764         * platform/gdk/ClipboardGdk.cpp: Removed.
5765         * platform/gdk/ClipboardGdk.h: Removed.
5766         * platform/gdk/ContextMenuGdk.cpp: Removed.
5767         * platform/gdk/ContextMenuItemGdk.cpp: Removed.
5768         * platform/gdk/CookieJarGdk.cpp: Removed.
5769         * platform/gdk/CursorGdk.cpp: Removed.
5770         * platform/gdk/DragDataGdk.cpp: Removed.
5771         * platform/gdk/DragImageGdk.cpp: Removed.
5772         * platform/gdk/FileChooserGdk.cpp: Removed.
5773         * platform/gdk/FileSystemGdk.cpp: Removed.
5774         * platform/gdk/FontCacheGdk.cpp: Removed.
5775         * platform/gdk/FontDataGdk.cpp: Removed.
5776         * platform/gdk/FontGdk.cpp: Removed.
5777         * platform/gdk/FontPlatformData.h: Removed.
5778         * platform/gdk/FontPlatformDataGdk.cpp: Removed.
5779         * platform/gdk/GlyphPageTreeNodeGdk.cpp: Removed.
5780         * platform/gdk/KeyEventGdk.cpp: Removed.
5781         * platform/gdk/KeyboardCodes.h: Removed.
5782         * platform/gdk/LocalizedStringsGdk.cpp: Removed.
5783         * platform/gdk/LoggingGdk.cpp: Removed.
5784         * platform/gdk/MIMETypeRegistryGdk.cpp: Removed.
5785         * platform/gdk/MouseEventGdk.cpp: Removed.
5786         * platform/gdk/PasteboardGdk.cpp: Removed.
5787         * platform/gdk/PlatformScreenGdk.cpp: Removed.
5788         * platform/gdk/PlatformScrollBar.h: Removed.
5789         * platform/gdk/PlatformScrollBarGdk.cpp: Removed.
5790         * platform/gdk/PopupMenuGdk.cpp: Removed.
5791         * platform/gdk/RenderThemeGdk.cpp: Removed.
5792         * platform/gdk/RenderThemeGdk.h: Removed.
5793         * platform/gdk/ScrollViewGdk.cpp: Removed.
5794         * platform/gdk/SearchPopupMenuGdk.cpp: Removed.
5795         * platform/gdk/SharedTimerLinux.cpp: Removed.
5796         * platform/gdk/SoundGdk.cpp: Removed.
5797         * platform/gdk/SystemTimeLinux.cpp: Removed.
5798         * platform/gdk/TemporaryLinkStubs.cpp: Removed.
5799         * platform/gdk/WheelEventGdk.cpp: Removed.
5800         * platform/gdk/WidgetGdk.cpp: Removed.
5801         * platform/graphics/GraphicsContext.h:
5802         * platform/graphics/cairo/GraphicsContextCairo.cpp:
5803         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
5804         (WebCore::GraphicsContext::setPlatformFont):
5805         * platform/graphics/gdk: Removed.
5806         * platform/graphics/gdk/IconGdk.cpp: Removed.
5807         * platform/graphics/gdk/ImageGdk.cpp: Removed.
5808         * platform/graphics/gtk: Added.
5809         * platform/graphics/gtk/IconGdk.cpp: Removed.
5810         * platform/graphics/gtk/IconGtk.cpp: Added.
5811         * platform/graphics/gtk/ImageGdk.cpp: Removed.
5812         * platform/graphics/gtk/ImageGtk.cpp: Added.
5813         * platform/gtk: Added.
5814         * platform/gtk/ClipboardGdk.cpp: Removed.
5815         * platform/gtk/ClipboardGdk.h: Removed.
5816         * platform/gtk/ClipboardGtk.cpp: Added.
5817         (WebCore::ClipboardGtk::ClipboardGtk):
5818         (WebCore::ClipboardGtk::~ClipboardGtk):
5819         (WebCore::ClipboardGtk::clearData):
5820         (WebCore::ClipboardGtk::clearAllData):
5821         (WebCore::ClipboardGtk::getData):
5822         (WebCore::ClipboardGtk::setData):
5823         (WebCore::ClipboardGtk::types):
5824         (WebCore::ClipboardGtk::dragLocation):
5825         (WebCore::ClipboardGtk::dragImage):
5826         (WebCore::ClipboardGtk::setDragImage):
5827         (WebCore::ClipboardGtk::dragImageElement):
5828         (WebCore::ClipboardGtk::setDragImageElement):
5829         (WebCore::ClipboardGtk::createDragImage):
5830         (WebCore::ClipboardGtk::declareAndWriteDragImage):
5831         (WebCore::ClipboardGtk::writeURL):
5832         (WebCore::ClipboardGtk::writeRange):
5833         (WebCore::ClipboardGtk::hasData):
5834         * platform/gtk/ClipboardGtk.h: Added.
5835         * platform/gtk/ContextMenuGdk.cpp: Removed.
5836         * platform/gtk/ContextMenuGtk.cpp: Added.
5837         * platform/gtk/ContextMenuItemGdk.cpp: Removed.
5838         * platform/gtk/ContextMenuItemGtk.cpp: Added.
5839         * platform/gtk/CookieJarGdk.cpp: Removed.
5840         * platform/gtk/CookieJarGtk.cpp: Added.
5841         * platform/gtk/CursorGdk.cpp: Removed.
5842         * platform/gtk/CursorGtk.cpp: Added.
5843         * platform/gtk/DragDataGdk.cpp: Removed.
5844         * platform/gtk/DragDataGtk.cpp: Added.
5845         * platform/gtk/DragImageGdk.cpp: Removed.
5846         * platform/gtk/DragImageGtk.cpp: Added.
5847         * platform/gtk/FileChooserGdk.cpp: Removed.
5848         * platform/gtk/FileChooserGtk.cpp: Added.
5849         * platform/gtk/FileSystemGdk.cpp: Removed.
5850         * platform/gtk/FileSystemGtk.cpp: Added.
5851         * platform/gtk/FontCacheGdk.cpp: Removed.
5852         * platform/gtk/FontCacheGtk.cpp: Added.
5853         * platform/gtk/FontDataGdk.cpp: Removed.
5854         * platform/gtk/FontDataGtk.cpp: Added.
5855         * platform/gtk/FontGdk.cpp: Removed.
5856         * platform/gtk/FontGtk.cpp: Added.
5857         * platform/gtk/FontPlatformDataGdk.cpp: Removed.
5858         * platform/gtk/FontPlatformDataGtk.cpp: Added.
5859         * platform/gtk/GlyphPageTreeNodeGdk.cpp: Removed.
5860         * platform/gtk/GlyphPageTreeNodeGtk.cpp: Added.
5861         * platform/gtk/KeyEventGdk.cpp: Removed.
5862         * platform/gtk/KeyEventGtk.cpp: Added.
5863         * platform/gtk/LocalizedStringsGdk.cpp: Removed.
5864         * platform/gtk/LocalizedStringsGtk.cpp: Added.
5865         * platform/gtk/LoggingGdk.cpp: Removed.
5866         * platform/gtk/LoggingGtk.cpp: Added.
5867         * platform/gtk/MIMETypeRegistryGdk.cpp: Removed.
5868         * platform/gtk/MIMETypeRegistryGtk.cpp: Added.
5869         * platform/gtk/MouseEventGdk.cpp: Removed.
5870         * platform/gtk/MouseEventGtk.cpp: Added.
5871         * platform/gtk/PasteboardGdk.cpp: Removed.
5872         * platform/gtk/PasteboardGtk.cpp: Added.
5873         * platform/gtk/PlatformScreenGdk.cpp: Removed.
5874         * platform/gtk/PlatformScreenGtk.cpp: Added.
5875         * platform/gtk/PlatformScrollBarGdk.cpp: Removed.
5876         * platform/gtk/PlatformScrollBarGtk.cpp: Added.
5877         * platform/gtk/PopupMenuGdk.cpp: Removed.
5878         * platform/gtk/PopupMenuGtk.cpp: Added.
5879         * platform/gtk/RenderThemeGdk.cpp: Removed.
5880         * platform/gtk/RenderThemeGdk.h: Removed.
5881         * platform/gtk/RenderThemeGtk.cpp: Added.
5882         (WebCore::theme):
5883         (WebCore::RenderThemeGtk::RenderThemeGtk):
5884         (WebCore::RenderThemeGtk::close):
5885         (WebCore::RenderThemeGtk::addIntrinsicMargins):
5886         (WebCore::RenderThemeGtk::supportsFocus):
5887         (WebCore::RenderThemeGtk::determineState):
5888         (WebCore::RenderThemeGtk::determineShadow):
5889         (WebCore::RenderThemeGtk::getThemeData):
5890         (WebCore::RenderThemeGtk::setCheckboxSize):
5891         (WebCore::RenderThemeGtk::paintCheckbox):
5892         (WebCore::RenderThemeGtk::setRadioSize):
5893         (WebCore::RenderThemeGtk::paintRadio):
5894         (WebCore::RenderThemeGtk::paintButton):
5895         (WebCore::RenderThemeGtk::adjustTextFieldStyle):
5896         (WebCore::RenderThemeGtk::paintTextField):
5897         (WebCore::RenderThemeGtk::paintTextArea):
5898         (WebCore::RenderThemeGtk::adjustButtonStyle):
5899         (WebCore::RenderThemeGtk::systemFont):
5900         (WebCore::RenderThemeGtk::gtkButton):
5901         (WebCore::RenderThemeGtk::gtkCheckbox):
5902         (WebCore::RenderThemeGtk::gtkRadioButton):
5903         (WebCore::RenderThemeGtk::gtkWindowContainer):
5904         * platform/gtk/RenderThemeGtk.h: Added.
5905         * platform/gtk/ScrollViewGdk.cpp: Removed.
5906         * platform/gtk/ScrollViewGtk.cpp: Added.
5907         * platform/gtk/SearchPopupMenuGdk.cpp: Removed.
5908         * platform/gtk/SearchPopupMenuGtk.cpp: Added.
5909         * platform/gtk/SoundGdk.cpp: Removed.
5910         * platform/gtk/SoundGtk.cpp: Added.
5911         * platform/gtk/WheelEventGdk.cpp: Removed.
5912         * platform/gtk/WheelEventGtk.cpp: Added.
5913         * platform/gtk/WidgetGdk.cpp: Removed.
5914         * platform/gtk/WidgetGtk.cpp: Added.
5915         * platform/network/ResourceHandle.h:
5916
5917 2007-09-23  Rob Buis  <buis@kde.org>
5918
5919         Reviewed by Hyatt.
5920
5921         http://bugs.webkit.org/show_bug.cgi?id=15025
5922         Background repeat css property is not inherited from parent if unspecified
5923
5924         Don't let invalid url specification in background shorthand make
5925         the entire shorthand invalid.
5926
5927         * css/CSSParser.cpp:
5928         (WebCore::CSSParser::parseBackgroundImage):
5929         (WebCore::CSSParser::parseBackgroundProperty):
5930         * css/CSSParser.h:
5931
5932 2007-09-22  Adam Roben  <aroben@apple.com>
5933
5934         Fix Bug 15251: REGRESSION: <input type=range> doesn't respond to form.reset() or setting input.value
5935
5936         http://bugs.webkit.org/show_bug.cgi?id=15251
5937         <rdar://5498169>
5938
5939         Reviewed by Maciej.
5940
5941         Test: fast/forms/range-reset.html
5942
5943         * html/HTMLInputElement.cpp:
5944         (WebCore::HTMLInputElement::storesValueSeparateFromAttribute): <input
5945         type=range> should be storing its value separately from the value
5946         attribute, as do all of our variable-input input types.
5947
5948 2007-09-21  Mark Rowe  <mrowe@apple.com>
5949
5950         Build fix for non-Mac platforms after r25697.
5951         
5952         Rename Frame::cleanupPlatformScriptObjects to Frame::clearPlatformScriptObjects.
5953
5954         * bridge/win/FrameWin.cpp:
5955         * page/gdk/FrameGdk.cpp:
5956         * page/qt/FrameQt.cpp:
5957         * platform/wx/TemporaryLinkStubs.cpp:
5958
5959 2007-09-21  Adele Peterson  <adele@apple.com>
5960
5961         Reviewed by Sam.
5962
5963         Fix for <rdar://problem/5497357> REGRESSION: Safari doesn't show the month days on AirFrance reservation page
5964
5965         Test: fast/dom/HTMLSelectElement/options-collection-set-string-length.html
5966
5967         * bindings/js/JSHTMLOptionsCollectionCustom.cpp: (WebCore::JSHTMLOptionsCollection::setLength):
5968           Convert the value to a number.  We already have code here to check if the value is not a number.
5969           This matches other browsers, which allow a string value to be used to set the length.
5970
5971 2007-09-21  Timothy Hatcher  <timothy@apple.com>
5972
5973         Reviewed by Darin.
5974
5975         <rdar://problem/5491013> REGRESSION: -[WebView windowScriptObject] returns a dummy object or nil if a page hasn't loaded
5976
5977         Calling -[WebView windowScriptObject] before the page loads would give you nil. This behavior didn't match Tiger.
5978         The API behavior in Tiger let you get the window script object once and keep ahold of it as long as you needed it.
5979         The window object would remain valid even after page loads. This change restores the Tiger behavior.
5980
5981         <rdar://problem/5495790> NULL dereference crash beneath Bindings::RootObject::interpreter when saving Dashcode document
5982
5983         The changes to WebScriptObject's _isSafeScript call also fixed the crash in Dashcode.
5984
5985         * bindings/objc/WebScriptObject.mm:
5986         (-[WebScriptObject _setOriginRootObject:andRootObject:]): New method used to update the the root objects,
5987         so the WebScriptObject can still be used after a page load.
5988         (-[WebScriptObject _isSafeScript]): Call [self _rootObject] instead of accessing the data member directly.
5989         DOMNode has an override for the _rootObject method, and it can return 0 when _private->_rootObject
5990         is non-zero. We would return YES here when it wasn't safe and later crash with my modified layout tests.
5991         Checking _rootObject first prevents other calls sites from needing to check for a valid root object,
5992         this fixed the Dashcode crash.
5993         (-[WebScriptObject _imp]): Ditto.
5994
5995         * bindings/objc/WebScriptObjectPrivate.h: Add _setOriginRootObject:andRootObject:.
5996
5997         * loader/FrameLoader.cpp:
5998         (WebCore::FrameLoader::clear): Call the renamed clearScriptObjects function.
5999         (WebCore::FrameLoader::dispatchWindowObjectAvailable): Some gratuitous code cleanup.
6000
6001         * page/Frame.cpp:
6002         (WebCore::Frame::clearScriptObjects): Renamed cleanupScriptObject to clearScriptObjects.
6003         Call clearPlatformScriptObjects last so m_bindingRootObject is already NULL.
6004         (WebCore::Frame::windowScriptNPObject): Hold a JSLock before accessing the window. This
6005         change is unrelated to the bug, but should be fixed.
6006
6007         * page/mac/FrameMac.mm:
6008         (WebCore::Frame::windowScriptObject): Return a script object even if the interpreter is NULL.
6009         This resotres the Tiger behavior of always being able to access the window object.
6010         (WebCore::Frame::clearPlatformScriptObjects): Keep the window script object around, and update
6011         the root objects for the window script object.
6012
6013         * page/Frame.h: Rename cleanupScriptObject to clearScriptObjects.
6014         * page/FramePrivate.h: Use a RetainPtr for m_windowScriptObject.
6015
6016 2007-09-21  Mike Fenton  <mike@staikos.net>
6017
6018         Reviewed by George Staikos.
6019
6020         Fix styled pen support by not clobbering QPen properties.
6021
6022         * html/CanvasStyle.cpp:
6023         (WebCore::CanvasStyle::applyStrokeColor):
6024         (WebCore::CanvasStyle::applyFillColor):
6025
6026 2007-09-21  Oliver Hunt  <oliver@apple.com>
6027
6028         Reviewed by Tristan and Darin
6029
6030         http://bugs.webkit.org/show_bug.cgi?id=15239
6031         <rdar://problem/5491955> REGRESSION (r25547): With Hanin IME, one cannot input characters into forms (15239)
6032         
6033         This problem was caused by the setComposition method failing to clear
6034         the composition markers in the presence of an empty string.  This would 
6035         result in the caret being locked within the 0 length bounds of the "composition"
6036         and so preventing basic keyboard interaction.
6037
6038         * editing/Editor.cpp:
6039         (WebCore::Editor::setComposition):
6040
6041 2007-09-21  Adele Peterson  <adele@apple.com>
6042
6043         Reviewed by Tristan.
6044
6045         Fix for <rdar://problem/5497346> "Check spelling when I click Send" crashes on stationery messages every time
6046
6047         No test. I wasn't able to find a way to get this to occur with Safari or DumpRenderTree.
6048
6049         * editing/Editor.cpp: (WebCore::Editor::advanceToNextMisspelling): Updated comment.
6050         * editing/htmlediting.cpp:
6051         (WebCore::firstEditablePositionAfterPositionInRoot): Only return the root position if its editable.
6052         (WebCore::maxDeepOffset): Added nil check & assert.
6053
6054 2007-09-21  Anders Carlsson  <andersca@apple.com>
6055
6056         Reviewed by Steve.
6057
6058         <rdar://problem/5404339>
6059         Site redirects continuosly, starving UI thread, causing app to hang.
6060         
6061         Use GetQueueStatus to see if there are input messages in the queue that aren't being processed.
6062         If so, use a low-priority timer instead of PostMessage.
6063         
6064         * platform/win/SharedTimerWin.cpp:
6065         (WebCore::setSharedTimerFireTime):
6066
6067 2007-09-22  Darin Adler  <darin@apple.com>
6068
6069         Reviewed by Anders.
6070
6071         - add QueryInterface capabilities to COMPtr
6072
6073         * platform/win/COMPtr.h:
6074         (COMPtr::COMPtr): Added constructor that takes a Query tag and
6075         does an appropriate QueryInterface.
6076         (COMPtr::query): Added function to do a queryInterface.
6077         (COMPtr::copyQueryInterfaceRef): Added private helper used by
6078         both of the above. Note that when the query fails you get a 0,
6079         which is the same thing you get if a 0 pointer is passed in.
6080
6081         * platform/win/FontCacheWin.cpp:
6082         (WebCore::FontCache::getFontLinkInterface): Convert to using
6083         the new query as a test case. Also eliminate the unnecessary
6084         second global variable and use COMPtr objects rather than just
6085         leaking references.
6086
6087         * platform/win/WCDataObject.h: Removed unneeded include and
6088         using statements.
6089
6090 2007-09-21  Anders Carlsson  <andersca@apple.com>
6091
6092         Reviewed by Adam.
6093
6094         <rdar://problem/5494790>
6095         clicking any link in the Flash regions at bananarepublic.com results in bad page
6096
6097         Don't replace the frame contents, the Mac version doesn't do this.
6098         
6099         * plugins/win/PluginViewWin.cpp:
6100         (WebCore::PluginViewWin::performRequest):
6101
6102 2007-09-21  Anders Carlsson  <andersca@apple.com>
6103
6104         Reviewed by Darin.
6105
6106         <rdar://problem/5496700>
6107         Repro crash loading http://www.tivo.com/whatistivo/tivohd/index.html
6108
6109         Don't continue if the plug-in cancelled the stream.
6110                 
6111         * loader/win/NetscapePlugInStreamLoaderWin.cpp:
6112         (WebCore::NetscapePlugInStreamLoader::didReceiveResponse):
6113
6114 2007-09-21  Kevin Decker  <kdecker@apple.com>
6115
6116         * platform/mac/SoftLinking.h: Build fix; added necessary #imports. 
6117
6118 2007-09-21  Kevin Decker  <kdecker@apple.com>
6119
6120         Reviewed by Darin Adler.
6121
6122         * WebCore.xcodeproj/project.pbxproj: Added SoftLinking.h to the project.
6123         * platform/mac/SoftLinking.h: Contains a new macro; useful in helping to lazily load frameworks.
6124
6125 2007-09-20  Ada Chan  <adachan@apple.com>
6126
6127         <rdar://problem/5477240> Regression: Footer is too high in print preview
6128         Make computePageRectsForFrame() return the height of the page adjusted for margins.
6129
6130         Reviewed by Steve.
6131
6132         * bridge/win/FrameWin.cpp:
6133         (WebCore::computePageRectsForFrame):
6134         * bridge/win/FrameWin.h:
6135
6136 2007-09-19  Kevin McCullough  <kmccullough@apple.com>
6137
6138         Reviewed by Hyatt.
6139
6140         - <rdar://problem/5101991> Avril Lavigne music player comes up in a window with scrollbars
6141         - Implementing missing scrollbar functionality to allow turning off scrollbars correctly.
6142
6143         * platform/ScrollView.h:
6144         * platform/win/ScrollViewWin.cpp:
6145         (WebCore::ScrollView::ScrollViewPrivate::setAllowsScrolling):
6146         (WebCore::ScrollView::ScrollViewPrivate::allowsScrolling):
6147         (WebCore::ScrollView::updateScrollbars):
6148         (WebCore::ScrollView::setAllowsScrolling):
6149         (WebCore::ScrollView::allowsScrolling):
6150
6151 2007-09-20  Brady Eidson  <beidson@apple.com>
6152
6153         Reviewed by Dave Hyatt
6154
6155         <rdar://problem/5245981> - No favicon shows up for cnet.com
6156         
6157         CNet's favicon has two images in it - a 32x32 white square, and a 16x16 image that is their actual icon
6158         Till now on Windows we've always gone straight for the first image in an icon for the favicon, now we
6159         actually do proper size matching
6160
6161         * platform/graphics/BitmapImage.h:
6162
6163         * platform/graphics/Image.h:
6164         (WebCore::Image::getHBITMAPOfSize): 
6165         (WebCore::Image::drawFrameMatchingSourceSize): Search through the frames of the image for the correct size
6166
6167         * platform/graphics/win/ImageWin.cpp:
6168         (WebCore::BitmapImage::getHBITMAP):
6169         (WebCore::BitmapImage::getHBITMAPOfSize):
6170         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
6171
6172 2007-09-20  Steve Falkenburg  <sfalken@apple.com>
6173
6174         Reviewed by Brady.
6175
6176         Call ascii() instead of utf8() from debug logging code to avoid threading
6177         issues associated w/ converting to UTF8.
6178
6179         * loader/icon/IconDatabase.cpp:
6180         (WebCore::makeAllDirectories):
6181         (WebCore::IconDatabase::retainIconForPageURL):
6182         (WebCore::IconDatabase::releaseIconForPageURL):
6183         (WebCore::IconDatabase::setIconDataForIconURL):
6184         (WebCore::IconDatabase::setIconURLForPageURL):
6185         (WebCore::IconDatabase::loadDecisionForIconURL):
6186         (WebCore::IconDatabase::getOrCreatePageURLRecord):
6187         (WebCore::IconDatabase::iconDatabaseSyncThread):
6188         (WebCore::IconDatabase::performOpenInitialization):
6189         (WebCore::IconDatabase::checkIntegrity):
6190         (WebCore::IconDatabase::performURLImport):
6191         (WebCore::IconDatabase::readFromDatabase):
6192         (WebCore::IconDatabase::writeToDatabase):
6193         (WebCore::readySQLStatement):
6194         (WebCore::IconDatabase::setIconURLForPageURLInSQLDatabase):
6195         (WebCore::IconDatabase::setIconIDForPageURLInSQLDatabase):
6196         (WebCore::IconDatabase::removePageURLFromSQLDatabase):
6197         (WebCore::IconDatabase::getIconIDForIconURLFromSQLDatabase):
6198         (WebCore::IconDatabase::addIconURLToSQLDatabase):
6199         (WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
6200         (WebCore::IconDatabase::removeIconFromSQLDatabase):
6201         (WebCore::IconDatabase::writeIconSnapshotToSQLDatabase):
6202
6203 2007-09-20  Mike Fenton  <mike@staikos.net>
6204
6205         Reviewed by George Staikos.
6206
6207         Implement gradients and more of canvas for Qt.  Style changes and some
6208         of the stroking fixes by George.
6209
6210         * html/CanvasGradient.cpp:
6211         (WebCore::CanvasGradient::CanvasGradient):
6212         (WebCore::CanvasGradient::~CanvasGradient):
6213         (WebCore::CanvasGradient::addColorStop):
6214         (WebCore::CanvasGradient::platformShading):
6215         * html/CanvasGradient.h:
6216         * html/CanvasRenderingContext2D.cpp:
6217         (WebCore::CanvasRenderingContext2D::fill):
6218         (WebCore::CanvasRenderingContext2D::stroke):
6219         (WebCore::CanvasRenderingContext2D::fillRect):
6220         (WebCore::CanvasRenderingContext2D::applyFillPattern):
6221
6222 2007-09-20  Rob Buis  <buis@kde.org>
6223
6224         Reviewed by Mitz.
6225
6226         http://bugs.webkit.org/show_bug.cgi?id=15235
6227         Options can not be removed from a Select element with OptGroup's using JavaScript
6228         <rdar://problem/5494123>
6229
6230         Remove HTMLOptionElement children against the proper parent node.
6231
6232         * html/HTMLSelectElement.cpp:
6233         (WebCore::HTMLSelectElement::remove):
6234
6235 2007-09-19  John Sullivan  <sullivan@apple.com>
6236
6237         Reviewed by Darin Adler.
6238         
6239         - WebCore part of speculative fix for <rdar://problem/5490627>, about crashes constructing a
6240           String using the values filled in by checkSpellingOfString()
6241
6242         * editing/Editor.cpp:
6243         (WebCore::findFirstMisspellingInRange):
6244         initialize out parameters the way we do elsewhere; add many assertions for improper results
6245         from checkSpellingOfString(); don't create a String at all until we've checked all the ways
6246         that checkSpellingOfString() results could indicate invalid string, even the unexpected ones;
6247         as an optimization, don't construct a String at all when looping through to mark all instances.
6248
6249 2007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6250
6251         Reviewed by Adam.
6252
6253         There is no need to have FTPDirectoryDocument stubs. We can
6254         compile FTPDirectoryDocument.cpp and FTPDirectoryTokenizer.cpp
6255         instead.
6256
6257         * WebCore.pro:
6258         * platform/gdk/TemporaryLinkStubs.cpp:
6259         * platform/qt/TemporaryLinkStubs.cpp:
6260
6261 2007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6262
6263         Reviewed by Adam.
6264
6265         Remove includes that are not needed.
6266
6267         * platform/gdk/TemporaryLinkStubs.cpp:
6268
6269 2007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6270
6271         Reviewed by Adam.
6272
6273         Move the Pasteboard stubs to PasteboardGdk.cpp.
6274
6275         * WebCore.pro:
6276         * platform/gdk/PasteboardGdk.cpp: Added.
6277         (WebCore::Pasteboard::generalPasteboard):
6278         (WebCore::Pasteboard::writeSelection):
6279         (WebCore::Pasteboard::writeURL):
6280         (WebCore::Pasteboard::writeImage):
6281         (WebCore::Pasteboard::clear):
6282         (WebCore::Pasteboard::canSmartReplace):
6283         (WebCore::Pasteboard::documentFragment):
6284         (WebCore::Pasteboard::plainText):
6285         (WebCore::Pasteboard::Pasteboard):
6286         * platform/gdk/TemporaryLinkStubs.cpp:
6287
6288 2007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6289
6290         Reviewed by Adam.
6291
6292         Move the Icon stubs to IconGdk.cpp
6293
6294         * WebCore.pro:
6295         * platform/gdk/TemporaryLinkStubs.cpp:
6296         * platform/graphics/gdk/IconGdk.cpp: Added.
6297         (WebCore::Icon::Icon):
6298         (WebCore::Icon::~Icon):
6299         (WebCore::Icon::newIconForFile):
6300
6301 2007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6302
6303         Reviewed by Adam.
6304
6305         Move the Font stubs to FontGdk.cpp
6306
6307         * platform/gdk/FontGdk.cpp:
6308         (WebCore::Font::drawComplexText):
6309         (WebCore::Font::floatWidthForComplexText):
6310         (WebCore::Font::offsetForPositionForComplexText):
6311         (WebCore::Font::selectionRectForComplexText):
6312         * platform/gdk/TemporaryLinkStubs.cpp:
6313
6314 2007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6315
6316         Reviewed by Adam.
6317
6318         Move the SearchPopupMenu stubs to SearchPopupMenuGdk.cpp
6319
6320         * WebCore.pro:
6321         * platform/gdk/SearchPopupMenuGdk.cpp: Added.
6322         (WebCore::SearchPopupMenu::SearchPopupMenu):
6323         (WebCore::SearchPopupMenu::saveRecentSearches):
6324         (WebCore::SearchPopupMenu::loadRecentSearches):
6325         (WebCore::SearchPopupMenu::enabled):
6326         * platform/gdk/TemporaryLinkStubs.cpp:
6327
6328 2007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6329
6330         Reviewed by Adam.
6331
6332         Move the ContextMenu and ContextMenuItem stubs to
6333         ContextMenuGdk.cpp and ContextMenuItemGdk.cpp.
6334
6335         * WebCore.pro:
6336         * platform/gdk/ContextMenuGdk.cpp: Added.
6337         (WebCore::ContextMenu::ContextMenu):
6338         (WebCore::ContextMenu::~ContextMenu):
6339         (WebCore::ContextMenu::appendItem):
6340         (WebCore::ContextMenu::setPlatformDescription):
6341         (WebCore::ContextMenu::platformDescription):
6342         (WebCore::ContextMenu::releasePlatformDescription):
6343         * platform/gdk/ContextMenuItemGdk.cpp: Added.
6344         (WebCore::ContextMenuItem::ContextMenuItem):
6345         (WebCore::ContextMenuItem::~ContextMenuItem):
6346         (WebCore::ContextMenuItem::releasePlatformDescription):
6347         (WebCore::ContextMenuItem::type):
6348         (WebCore::ContextMenuItem::setType):
6349         (WebCore::ContextMenuItem::action):
6350         (WebCore::ContextMenuItem::setAction):
6351         (WebCore::ContextMenuItem::title):
6352         (WebCore::ContextMenuItem::setTitle):
6353         (WebCore::ContextMenuItem::platformSubMenu):
6354         (WebCore::ContextMenuItem::setSubMenu):
6355         (WebCore::ContextMenuItem::setChecked):
6356         * platform/gdk/TemporaryLinkStubs.cpp:
6357
6358 2007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6359
6360         Reviewed by Adam.
6361
6362         Implement the WebCore::fileSize function using g_stat.
6363
6364         * platform/gdk/FileSystemGdk.cpp:
6365         (WebCore::fileSize):
6366         * platform/gdk/TemporaryLinkStubs.cpp:
6367
6368 2007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6369
6370         Reviewed by Adam.
6371
6372         Move the ResourceHandle stubs from TemporaryLinkStubs
6373         to the ResourceHandleCurl.cpp file. This affects the
6374         Gtk+ and wx port as they share the curl implementation.
6375
6376
6377         * platform/gdk/TemporaryLinkStubs.cpp:
6378         * platform/network/curl/ResourceHandleCurl.cpp:
6379         (WebCore::ResourceHandle::willLoadFromCache):
6380         (WebCore::ResourceHandle::loadsBlocked):
6381         * platform/wx/TemporaryLinkStubs.cpp:
6382
6383 2007-09-17  Holger Hans Peter Freyther  <zecke@selfish.org>
6384
6385         Reviewed by Mark.
6386
6387         Take http://bugs.webkit.org/show_bug.cgi?id=15221 into account
6388         and change the variable names from nameSystem to systemName and
6389         change the name of the function to stringByAdoptingFileSystemRepresentation.
6390
6391         * platform/gdk/FileChooserGdk.cpp:
6392         (WebCore::stringByAdoptingFileSystemRepresentation):
6393         (WebCore::FileChooser::basenameForWidth):
6394
6395 2007-09-19  Sam Weinig  <sam@webkit.org>
6396
6397         Reviewed by Geoff Garen.
6398
6399         Fix <rdar://problem/5492141> Assertion in isdigit() on windows Safari
6400
6401         Test: fast/css/hexColor-isDigit-assert.html
6402
6403         * platform/DeprecatedString.cpp:
6404         (WebCore::isCharacterAllowedInBase): Check that the character is ascii 
6405         to avoid an assertions on Windows.
6406
6407 2007-09-19  Anders Carlsson  <andersca@apple.com>
6408
6409         Reviewed by Geoff.
6410
6411         <rdar://problem/5489879>
6412         Combination of real player with high connection quality in selecting player makes Safari quit.
6413         
6414         Prevent the Real Player plug-in from calling the window proc recursively.
6415         
6416         * plugins/win/PluginViewWin.cpp:
6417         (WebCore::PluginViewWin::wndProc):
6418         (WebCore::PluginViewWin::setNPWindowRect):
6419         (WebCore::PluginViewWin::determineQuirks):
6420         (WebCore::PluginViewWin::PluginViewWin):
6421         * plugins/win/PluginViewWin.h:
6422         (WebCore::):
6423
6424 2007-09-18  Adele Peterson  <adele@apple.com>
6425
6426         Reviewed by Maciej.
6427
6428         Fix for <rdar://problem/5472062> -webkit-user-select: none makes selection difficult
6429         and for <rdar://problem/5472056> REGRESSION: Cannot type into edit fields on a form (sccsheriff.org)
6430
6431         Tests:
6432
6433         This fix has a few steps:
6434         1) Removes the ignore value for the -webkit-user-select property.  We now decide when to prevent selection from starting by calling canStartSelection on the node.
6435         2) Implements canStartSelection which returns false for all elements that used to have -webkit-user-select:ignore set, true for content editable nodes, 
6436            and walks up the tree to ask the parent before allowing selection to be started on any other nodes.
6437         3) We used to disallow selection from starting within -webkit-user-select:none blocks, but now we only use canStartSelection for that.  This will allow easy selections
6438            in cases like iChat where there's a mix of selectable and non-selectable content.
6439         4) Makes -webkit-user-select inherited.  After removing the "ignore" value, -webkit-user-select would behave like it was inherited anyways since we already allowed the text value to override the none value.
6440
6441
6442         * css/html4.css: Removed all usage of -webkit-user-select: ignore.  This is now handled internally with canStartSelection().
6443           Now -webkit-user-select won't be unintentionally overridden by nodes that don't want to allow selection to be started, but do want to honor the -webkit-user-select to
6444           determine whether or not selection is allowed at all.
6445
6446         * editing/SelectionController.cpp: (WebCore::SelectionController::selectAll):
6447           Don't try to determine whether selection is allowed inside the root node here.  VisiblePosition and Selection creation will keep Selection endpoints out of -webkit-user-select:none regions.
6448         
6449         * dom/Node.h:
6450         * dom/Node.cpp: (WebCore::Node::canStartSelection): Added. Always allows selection to be started in a content editable node.  If there's a parent, ask the parent if starting a selection is allowed.
6451           If there's no parent, default to allowing selection.
6452         * html/HTMLAnchorElement.h:
6453         * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::canStartSelection): Added. If its not a link, then calls the base class. Disallows selection for non-editable links.
6454           Allows selection for editable links.
6455           This logic used to be done in CSSStyleSelector by changing the user-select property.
6456         * html/HTMLButtonElement.h: (WebCore::HTMLButtonElement::canStartSelection): Added. Disallows selection from starting in buttons.
6457         * html/HTMLImageElement.h: (WebCore::HTMLImageElement::canStartSelection): Added. Disallows selection from starting in images.
6458         * html/HTMLInputElement.h:
6459         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::canStartSelection): Added. Disallows selection from anything that's not a text field.  Text fields call up to the base class.
6460           When they're editable, text controls will always be selectable because of the case for content editable content. Otherwise, they'll respect their parent element's decision about starting a selection. 
6461         * html/HTMLSelectElement.h: (WebCore::HTMLSelectElement::canStartSelection): Added. Disallows selection from starting in popup buttons.
6462
6463         * page/EventHandler.cpp:
6464         (WebCore::EventHandler::selectClosestWordFromMouseEvent): Use canMouseDownStartSelect instead of the ambiguously named shouldSelect().
6465         (WebCore::EventHandler::handleMousePressEventTripleClick): ditto.
6466         (WebCore::EventHandler::handleMousePressEventSingleClick): ditto.
6467         (WebCore::EventHandler::updateSelectionForMouseDrag): Use canMouseDragExtendSelect.
6468         (WebCore::EventHandler::selectCursor): Paint an ibeam in any region that allows you to click to create a selection.
6469         (WebCore::EventHandler::canMouseDownStartSelect): Now fires the selectStart event, and calls canStartSelection instead of checking the user-select property.
6470         (WebCore::EventHandler::canMouseDragExtendSelect): This is identical to canMouseDownStartSelect because of 12823, even though it seems strange that we would fire the selectStart event here.
6471         * page/EventHandler.h:
6472         * page/FocusController.cpp: (WebCore::clearSelectionIfNeeded): Calls canStartSelection instead of checking the user-select property to decide when to prevent selection creation. 
6473         * rendering/RenderObject.cpp: (WebCore::RenderObject::draggableNode): ditto.
6474         * rendering/RenderObject.h: Removed helper methods that are no longer needed.
6475
6476         * rendering/RenderStyle.h: Made userSelect inherited.  After removing the "ignore" value, -webkit-user-select would behave like it was inherited 
6477           anyways since we already allowed the text value to override the none value.
6478           Removed the SELECT_AUTO and SELECT_IGNORE values since they're no longer used.
6479         (WebCore::):
6480         (WebCore::RenderStyle::userSelect):
6481         (WebCore::RenderStyle::setUserSelect):
6482         (WebCore::RenderStyle::initialUserSelect):
6483         * rendering/RenderStyle.cpp:
6484         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
6485         (WebCore::StyleRareNonInheritedData::operator==):
6486         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
6487         (WebCore::StyleRareInheritedData::operator==):
6488         (WebCore::RenderStyle::diff):
6489
6490         * css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Remove case for SELECT_AUTO and SELECT_IGNORE
6491         * css/CSSStyleSelector.cpp:
6492         (WebCore::CSSStyleSelector::adjustRenderStyle):  Remove adjustment for links.  This is now handled in HTMLAnchorElement::canStartSelection.
6493         (WebCore::CSSStyleSelector::applyProperty): Map CSS_VAL_AUTO to SELECT_TEXT.  Remove CSS_VAL_IGNORE.
6494
6495 2007-09-18  Timothy Hatcher  <timothy@apple.com>
6496
6497         Reviewed by Darin.
6498
6499         <rdar://problem/5478250> REGRESSION: After pasting text copied from Mail subject and typing return, the cursor disappears because of negative left margin
6500
6501         When pasting text from the Mail subject line, the RTF pasteboard contains text that has a first line negative indent along with a
6502         paragraph indent that has a counteracting positive indent. This results in the first line being flush left justified, and the remaining
6503         wrapped lines being indented. When this is converted to a DOM fragment, AppKit makes a block element with a margin-left and a negative
6504         text-indent that matches the RTF. So far this is all correct behavior.
6505
6506         When this content is pasted on the line of an existing paragraph that has content, ReplaceSelectionCommand will decided to merge the paragraphs.
6507         This will convert the block element to a style span that has all inherited style properties. These inherited properties will still contain block
6508         properties that have no affect on inline elements. These block properties will hang around on the style span and will get cloned to new block
6509         elements if the user hit return on that line. The new block elements would then have the text-indent but not the margin-left, so the text would be
6510         hidden off the left edge of the page.
6511
6512         In the end, we should never hang on to block-only properties in our style spans. This cuts out meaningless properties and prevents properties
6513         from magically affecting blocks later if the style is cloned for a new block element during a future editing operation.
6514
6515         * editing/ReplaceSelectionCommand.cpp:
6516         (WebCore::ReplaceSelectionCommand::removeRedundantStyles): Remove any inherited block properties that are now in the span's style.
6517         * editing/markup.cpp:
6518         (WebCore::createMarkup): Ditto.
6519
6520 2007-09-18  Dave Hyatt  <hyatt@apple.com>
6521
6522         Land a UnicodeRange helper class (ported from Mozilla) that we are going to use to prepare for making
6523         language-sensitive fallback choices for fonts.
6524
6525         Reviewed by olliej
6526
6527         * WebCore.vcproj/WebCore.vcproj:
6528         * platform/UnicodeRange.cpp: Added.
6529         (WebCore::):
6530         (WebCore::findCharUnicodeRange):
6531         (WebCore::langGroupFromUnicodeRange):
6532         * platform/UnicodeRange.h: Added.
6533
6534 2007-09-18  Dave Hyatt  <hyatt@apple.com>
6535
6536         Fix a bug in my previous patch.  Make sure to select the old font back into the HDC and to also release the HDC.
6537        
6538         Reviewed by aroben
6539
6540         * platform/win/FontCacheWin.cpp:
6541         (WebCore::FontCache::getFontDataForCharacters):
6542
6543 2007-09-18  Sam Weinig  <sam@webkit.org>
6544
6545         Reviewed by Darin.
6546
6547         Patch for <rdar://problem/5488478> Safari crashes when passing null to Range.insertNode()
6548
6549         Test: fast/dom/Range-insertNode-crash.html
6550
6551         * dom/Range.cpp:
6552         (WebCore::Range::insertNode): Null check the passed in node to insert.
6553
6554 2007-09-18  Mike Fenton  <mike@staikos.net>
6555
6556         Reviewed by George Staikos.
6557
6558         Retain the pen properties when changing one aspect of the pen.
6559
6560         * html/CanvasStyle.cpp:
6561         (WebCore::CanvasStyle::applyStrokeColor):
6562
6563 2007-09-18  Mike Fenton  <mike@staikos.net>
6564
6565         Reviewed by George Staikos.
6566
6567         Make <canvas> work in more cases by restarting the painter after we
6568         finish painting, and restoring the pen and opacity.
6569
6570         * html/HTMLCanvasElement.cpp:
6571         (WebCore::HTMLCanvasElement::paint):
6572
6573 2007-09-18  Mitz Pettel  <mitz@webkit.org>
6574
6575         Reviewed by Darin.
6576
6577         - fix http://bugs.webkit.org/show_bug.cgi?id=15169
6578           Freeze on Google maps using the "Dig a hole" tool
6579           <rdar://problem/5477414>
6580
6581         Test: fast/dom/CSSStyleDeclaration-empty-string-property.html
6582
6583         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
6584         (WebCore::cssPropertyName): Added an early return if the property name
6585         is the empty string, thus avoiding a loop that is not prepared for that
6586         case.
6587
6588 2007-09-19  Darin Adler <darin@apple.com>
6589
6590         Reviewed by Adam.
6591
6592         - fix <rdar://problem/5415734> <select> draws incorrectly if size of menu options
6593           is changed after it pops up once
6594
6595         * platform/win/PopupMenuWin.cpp:
6596         (WebCore::PopupMenu::PopupMenu): Removed unnecessary initialization of IntRect.
6597         (WebCore::PopupMenu::show): Check that the clientRect is empty instead of checking
6598         the entire windowRect -- this fixes a bug where we pop up a tiny 2-pixel high black
6599         box when you click on an empty menu.
6600         (WebCore::PopupMenu::visibleItems): Base the number of items on the client rect
6601         instead of the window rect. Rounding down means this would have worked anyway, but
6602         it's more correct to do it this way.
6603         (WebCore::PopupMenu::paint): Deallocate the bitmap so it gets reallocated if it
6604         has the wrong width or height (or if GetObject returns false, which should not
6605         happen in practice).
6606
6607 2007-09-18  David Harrison  <harrison@apple.com>
6608
6609         Reviewed by Darin.
6610
6611         <rdar://problem/5486974> REGRESSION(r25373): 1/4 second to doubleclick word in GMail when using Kotoeri IM, also slow in other IMs (15163)
6612
6613         Updated tests:
6614         * fast/dom/Window/window-xy-properties-expected.txt:
6615         * fast/dom/plugin-attributes-enumeration-expected.txt:
6616         * fast/events/onerror-bubbling-expected.txt:
6617         * fast/events/related-target-expected.txt:
6618         * fast/forms/select-namedItem-expected.txt:
6619         * fast/table/incomplete-table-in-fragment-2-expected.txt:
6620         * fast/table/incomplete-table-in-fragment-hang-expected.txt:
6621         * fast/table/large-rowspan-crash-expected.txt:
6622         * plugins/embed-attributes-setting-expected.txt:
6623
6624         * editing/TextIterator.cpp:
6625         (WebCore::TextIterator::shouldRepresentNodeOffsetZero):
6626         Avoid VisiblePosition check if the current node is a descendant
6627         of the start container and the start offset was 0. In that case
6628         we already had enough context to correctly decide whether to emit
6629         a newline after a preceding block. We chose not to emit
6630         (m_haveEmitted is false), so don't second guess that.
6631             
6632         (WebCore::TextIterator::exitNode):
6633         Changed some comments.
6634
6635 2007-09-17  Geoffrey Garen  <ggaren@apple.com>
6636
6637         Reviewed by Darin Adler.
6638
6639         Speculative fix for <rdar://problem/5479443> REGRESSION: Hang due to 
6640         infinite JS recursion on close @ engadget.com (onunload-based ad)
6641         
6642         If page is NULL, shouldInterruptScript now returns true, so you can't 
6643         get stuck in a state in which a script executes forever without putting 
6644         up a UI to ask if it should stop.
6645
6646         * bindings/js/kjs_binding.cpp:
6647         (KJS::ScriptInterpreter::shouldInterruptScript):
6648
6649 2007-09-17  Dave Hyatt  <hyatt@apple.com>
6650
6651         Fix for bug 14743, missing glyphs on many international sites because of MLang's tiny cache.
6652         
6653         Bypass Mlang's cache entirely.  Get the mapped font from MLang, obtain the font name, and then feed
6654         the name back into our own system so that it gets created and cached again without MLang being involved.
6655         Then free up the font obtained from MLang immediately so that its cache just remains empty.
6656            
6657         Reviewed by aroben
6658
6659         * platform/FontData.h:
6660         (WebCore::FontData::isSystemFont):
6661         * platform/win/FontCacheWin.cpp:
6662         (WebCore::FontCache::getFontDataForCharacters):
6663         * platform/win/FontDataWin.cpp:
6664         (WebCore::FontData::platformInit):
6665         (WebCore::FontData::platformDestroy):
6666         * platform/win/UniscribeController.cpp:
6667         (WebCore::UniscribeController::shapeAndPlaceItem):
6668         
6669 2007-09-17  Adam Roben  <aroben@apple.com>
6670
6671         Fix <rdar://5423441> Should get focus ring color from SafariTheme
6672
6673         Reviewed by Hyatt.
6674
6675         No regression test possible.
6676
6677         * WebCore.vcproj/WebCore.vcproj: Added ColorSafari.cpp.
6678         * platform/graphics/win/ColorSafari.cpp: Added.
6679         (WebCore::makeRGBAFromCGColor): Added.
6680         (WebCore::focusRingColor): Added. Gets the focus ring color from
6681         SafariTheme if SafariTheme has support for it.
6682         (WebCore::setFocusRingColorChangeFunction): Added.
6683         * platform/win/TemporaryLinkStubs.cpp: Removed focus ring color
6684         functions.
6685
6686 2007-09-17  Anders Carlsson  <andersca@apple.com>
6687
6688         Fix Windows build.
6689
6690         * WebCore.vcproj/WebCore.vcproj:
6691         * loader/NetscapePlugInStreamLoader.h:
6692
6693 2007-09-17  Anders Carlsson  <andersca@apple.com>
6694
6695         Fix Mac build.
6696         
6697         * loader/NetscapePlugInStreamLoader.cpp:
6698         * loader/NetscapePlugInStreamLoader.h:
6699         * loader/win/NetscapePlugInStreamLoaderWin.cpp: Copied from loader/NetscapePlugInStreamLoader.cpp.
6700
6701 2007-09-17  Anders Carlsson  <andersca@apple.com>
6702
6703         Reviewed by Adam.
6704
6705         <rdar://problem/5483346>
6706         crash at vw.com WebCore::PluginViewWin::disconnectStream.
6707         
6708         The following events would lead to this crash:
6709         
6710         1. a plug-in stream finishes loading and calls NPP_DestroyStream.
6711         2. the DestroyStream handler calls NPN_Evaluate, submitting a form through JavaScript.
6712         3. A new page is going to be loaded and DocumentLoader::stopLoading is called.
6713         4. DocumentLoader::stopLoading will stop all loader, including the one that is done loading!
6714         
6715         The fix is to port NetscapePluginStreamLoader over from the Mac code and use it instead. This fixes the crash
6716         because it disassociates the stream loader with the document loader _before_ calling NPP_DestroyStream, whereas
6717         SubresourceLoader does this _after_ calling NPP_DestroyStream. 
6718         
6719         * loader/NetscapePlugInStreamLoader.cpp:
6720         (WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
6721         (WebCore::NetscapePlugInStreamLoader::~NetscapePlugInStreamLoader):
6722         (WebCore::NetscapePlugInStreamLoader::create):
6723         (WebCore::NetscapePlugInStreamLoader::isDone):
6724         (WebCore::NetscapePlugInStreamLoader::releaseResources):
6725         (WebCore::NetscapePlugInStreamLoader::didReceiveResponse):
6726         (WebCore::NetscapePlugInStreamLoader::didReceiveData):
6727         (WebCore::NetscapePlugInStreamLoader::didFinishLoading):
6728         (WebCore::NetscapePlugInStreamLoader::didFail):
6729         (WebCore::NetscapePlugInStreamLoader::didCancel):
6730         * loader/NetscapePlugInStreamLoader.h:
6731         (WebCore::NetscapePlugInStreamLoaderClient::didFinishLoading):
6732         * plugins/win/PluginStreamWin.cpp:
6733         (WebCore::PluginStreamWin::start):
6734         (WebCore::PluginStreamWin::didReceiveResponse):
6735         (WebCore::PluginStreamWin::didReceiveData):
6736         (WebCore::PluginStreamWin::didFail):
6737         (WebCore::PluginStreamWin::didFinishLoading):
6738         * plugins/win/PluginStreamWin.h:
6739         * plugins/win/PluginViewWin.cpp:
6740         (WebCore::PluginViewWin::load):
6741
6742 2007-09-17  Anders Carlsson  <andersca@apple.com>
6743
6744         Reviewed by Adam.
6745
6746         <rdar://problem/5483839>
6747         Crash loading http://www.microsoft.com if Silverlight 1.0 is installed.
6748         
6749         Work around a problem in our NPRuntime implementation by never unloading the silverlight plug-in dll.
6750         
6751         * plugins/win/PluginViewWin.cpp:
6752         (WebCore::PluginViewWin::~PluginViewWin):
6753         (WebCore::PluginViewWin::determineQuirks):
6754         * plugins/win/PluginViewWin.h:
6755         (WebCore::):
6756
6757 2007-09-17  Brady Eidson  <beidson@apple.com>
6758
6759         Reviewed by John Sullivan
6760
6761         Fix for http://bugs.webkit.org/show_bug.cgi?id=15178
6762         and
6763         <rdar://problem/5474001>
6764
6765         The stress test proves that this was an overzealous ASSERT.  It is very possible to mark an icon
6766         for addition to the on-disk database and then mark it for removal before it is ever written out.  
6767         This is not an error and was already handled gracefully
6768
6769         * loader/icon/IconDatabase.cpp:
6770         (WebCore::IconDatabase::removeIconFromSQLDatabase): Don't ASSERT of log if the icon wasn't on disk
6771
6772 2007-09-17  Brady Eidson  <beidson@apple.com>
6773
6774         Reviewed by Oliver
6775
6776         <rdar://problem/5487048> - ASSERT in stress test in IconDatabase
6777
6778         If a PageURLRecord went away, it never clears its URL from the IconRecord it retained.
6779
6780         * loader/icon/PageURLRecord.cpp:
6781         (WebCore::PageURLRecord::~PageURLRecord): Set the icon record to 0, clearing the page url
6782         * loader/icon/PageURLRecord.h: Add the destructor
6783
6784 2007-09-17  Antti Koivisto  <antti@apple.com>
6785
6786         Reviewed by Darin.
6787         
6788         Fix <rdar://problem/5480050>
6789         Leopard9A551 with Dashcode 112: Dashcode crash when dragging image into canvas.
6790         
6791         If @import stylesheet was modified through CSS DOM style selector would not get updated. This
6792         could lead to crashes.
6793
6794         Test: fast/css/import-style-update.html
6795
6796         * css/CSSStyleSheet.cpp:
6797         (WebCore::CSSStyleSheet::styleSheetChanged):
6798
6799 2007-09-17  Anders Carlsson  <andersca@apple.com>
6800
6801         Reviewed by Adam.
6802
6803         <rdar://problem/5421997>
6804         http://bugs.webkit.org/show_bug.cgi?id=14247
6805         Display problem with Flash - image does not stop changing
6806         
6807         Port the manual load code over from the Mac version.
6808
6809         * plugins/win/PluginDatabaseWin.cpp:
6810         (WebCore::PluginDatabaseWin::createPluginView):
6811         * plugins/win/PluginDatabaseWin.h:
6812         Add load manually parameter.
6813         
6814         * plugins/win/PluginStreamWin.cpp:
6815         (WebCore::PluginStreamWin::stop):
6816         If we're loading manually, cancel the main resource load.
6817          
6818         (WebCore::PluginStreamWin::destroyStream):
6819         Don't disconnect the stream if we're loading manually.
6820         
6821         * plugins/win/PluginViewWin.cpp:
6822         (WebCore::PluginViewWin::setFrameGeometry):
6823         Always call updateWindow()
6824         
6825         (WebCore::PluginViewWin::PluginViewWin):
6826         Initialize loadManually.
6827         
6828         (WebCore::PluginViewWin::init):
6829         Don't set the width and height of the window here since it will make the plug-in HWND show briefly
6830         before it's been positioned.
6831         
6832         (WebCore::PluginViewWin::didReceiveResponse):
6833         Create the manual stream.
6834         
6835         (WebCore::PluginViewWin::didReceiveData):
6836         (WebCore::PluginViewWin::didFinishLoading):
6837         (WebCore::PluginViewWin::didFail):
6838         Call through to the manual stream.
6839         
6840         * plugins/win/PluginViewWin.h:
6841
6842 2007-09-16  Sam Weinig  <sam@webkit.org>
6843
6844         Reviewed by Maciej.
6845
6846         Fix for http://bugs.webkit.org/show_bug.cgi?id=14693
6847         document.width/height doesn't force layout
6848
6849         Test: fast/dom/document-width-height-force-layout.html
6850
6851         * html/HTMLDocument.cpp:
6852         (WebCore::HTMLDocument::width): Force layout.
6853         (WebCore::HTMLDocument::height): ditto.
6854         * html/HTMLDocument.h:
6855
6856 2007-09-15  Holger Hans Peter Freyther  <zecke@selfish.org>
6857
6858         Reviewed by Mark.
6859
6860         Convert the filenames from WebCore::String to the filesystem encoding
6861         and vice versa using g_filename_{from,to}_utf8 functions. Also add the needed NULL
6862         checks for the return values where glib and gtk+ can return NULL.
6863
6864         * platform/gdk/FileChooserGdk.cpp:
6865         (WebCore::convertToStringByAdoptingTheFilesystemRepresentation):
6866         (WebCore::FileChooser::openFileChooser):
6867         (WebCore::FileChooser::basenameForWidth):
6868
6869 2007-09-15  Holger Hans Peter Freyther  <zecke@selfish.org>
6870
6871         Reviewed by Mark.
6872
6873         Use the new WebCore::String::fromUTF8 function to create
6874         the labels.
6875
6876         * platform/gdk/LocalizedStringsGdk.cpp:
6877         (WebCore::submitButtonDefaultLabel):
6878         (WebCore::inputElementAltText):
6879         (WebCore::resetButtonDefaultLabel):
6880         (WebCore::searchableIndexIntroduction):
6881         (WebCore::fileButtonChooseFileLabel):
6882         (WebCore::fileButtonNoFileSelectedLabel):
6883         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
6884         (WebCore::contextMenuItemTagDownloadLinkToDisk):
6885         (WebCore::contextMenuItemTagCopyLinkToClipboard):
6886         (WebCore::contextMenuItemTagOpenImageInNewWindow):
6887         (WebCore::contextMenuItemTagDownloadImageToDisk):
6888         (WebCore::contextMenuItemTagCopyImageToClipboard):
6889         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
6890         (WebCore::contextMenuItemTagCopy):
6891         (WebCore::contextMenuItemTagGoBack):
6892         (WebCore::contextMenuItemTagGoForward):
6893         (WebCore::contextMenuItemTagStop):
6894         (WebCore::contextMenuItemTagReload):
6895         (WebCore::contextMenuItemTagCut):
6896         (WebCore::contextMenuItemTagPaste):
6897         (WebCore::contextMenuItemTagNoGuessesFound):
6898         (WebCore::contextMenuItemTagIgnoreSpelling):
6899         (WebCore::contextMenuItemTagLearnSpelling):
6900         (WebCore::contextMenuItemTagSearchWeb):
6901         (WebCore::contextMenuItemTagLookUpInDictionary):
6902         (WebCore::contextMenuItemTagOpenLink):
6903         (WebCore::contextMenuItemTagIgnoreGrammar):
6904         (WebCore::contextMenuItemTagSpellingMenu):
6905         (WebCore::contextMenuItemTagShowSpellingPanel):
6906         (WebCore::contextMenuItemTagCheckSpelling):
6907         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
6908         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
6909         (WebCore::contextMenuItemTagFontMenu):
6910         (WebCore::contextMenuItemTagBold):
6911         (WebCore::contextMenuItemTagItalic):
6912         (WebCore::contextMenuItemTagUnderline):
6913         (WebCore::contextMenuItemTagOutline):
6914         (WebCore::contextMenuItemTagWritingDirectionMenu):
6915         (WebCore::contextMenuItemTagDefaultDirection):
6916         (WebCore::contextMenuItemTagLeftToRight):
6917         (WebCore::contextMenuItemTagRightToLeft):
6918         (WebCore::contextMenuItemTagInspectElement):
6919         (WebCore::searchMenuNoRecentSearchesText):
6920         (WebCore::searchMenuRecentSearchesText):
6921         (WebCore::searchMenuClearRecentSearchesText):
6922
6923 2007-09-15  Holger Hans Peter Freyther  <zecke@selfish.org>
6924
6925         Reviewed by Mark.
6926
6927         Add WebCore::String::fromUTF8 to convert from UTF-8
6928         to a WebCore::String. This is meant to be used by
6929         the Gtk+ port and the signature and implementation
6930         is similiar to the one of DeprecatedString.
6931
6932         * platform/PlatformString.h:
6933         * platform/String.cpp:
6934         (WebCore::String::fromUTF8):
6935
6936 2007-09-13  Holger Hans Peter Freyther  <zecke@selfish.org>
6937
6938         Reviewed by Anders.
6939
6940         Implement the fileExists and deleteFile functions
6941         using glib.
6942
6943         * WebCore.pro:
6944         * platform/gdk/FileSystemGdk.cpp: Added.
6945         (WebCore::fileExists):
6946         * platform/gdk/TemporaryLinkStubs.cpp:
6947
6948 2007-09-16  David Harrison  <harrison@apple.com>
6949
6950         Reviewed by Darin.
6951
6952         <rdar://problem/5472125> REGRESSION (9A535-9A548): No VO cursor shown when navigating in a mail message body
6953
6954         The problem was that the visible units code was mishandling non-editable content, generating null
6955         VisiblePositions instead of the actual boundary VisiblePositions.
6956         
6957         Updated tests:
6958         * fast/dom/Window/window-xy-properties-expected.txt:
6959         * fast/dom/plugin-attributes-enumeration-expected.txt:
6960         * fast/events/onerror-bubbling-expected.txt:
6961         * fast/events/related-target-expected.txt:
6962         * fast/forms/select-namedItem-expected.txt:
6963         * fast/table/incomplete-table-in-fragment-2-expected.txt:
6964         * fast/table/incomplete-table-in-fragment-hang-expected.txt:
6965         * fast/table/large-rowspan-crash-expected.txt:
6966         * plugins/embed-attributes-setting-expected.txt:
6967        
6968         Source Changes:
6969         * editing/VisiblePosition.cpp:
6970         (WebCore::VisiblePosition::next):
6971         (WebCore::VisiblePosition::previous):
6972         (WebCore::VisiblePosition::honorEditableBoundaryAtOrBefore):
6973         (WebCore::VisiblePosition::honorEditableBoundaryAtOrAfter):
6974         Rename firstEditablePositionAtOrAfter to honorEditableBoundaryAtOrAfter.
6975         Rename firstEditablePositionAtOrBefore to honorEditableBoundaryAtOrBefore.
6976         Changed these two functions to handle non-editable positions.
6977         
6978         * editing/VisiblePosition.h:
6979         * editing/visible_units.cpp:
6980         (WebCore::previousWordPosition):
6981         (WebCore::nextWordPosition):
6982         (WebCore::positionAvoidingFirstPositionInTable):
6983         (WebCore::startPositionForLine):
6984         (WebCore::startOfLine):
6985         (WebCore::endOfLine):
6986         (WebCore::previousSentencePosition):
6987         (WebCore::nextSentencePosition):
6988         Rename firstEditablePositionAtOrAfter to honorEditableBoundaryAtOrAfter.
6989         Rename firstEditablePositionAtOrBefore to honorEditableBoundaryAtOrBefore.
6990         Also, startOfLine() now calls positionAvoidingFirstPositionInTable() in the empty block early return case.
6991         positionAvoidingFirstPositionInTable() was the logic startOfLine() used in the normal case. Now in a reusable function.
6992
6993 2007-09-14  Oliver Hunt  <oliver@apple.com>
6994
6995         Reviewed by Adam.
6996
6997         Mac doesn't have any kind of not implemented macro, so we'll actually implement
6998         fileSize.
6999
7000         * platform/mac/FileSystemMac.mm:
7001         (WebCore::fileSize):
7002
7003 2007-09-14  Timothy Hatcher  <timothy@apple.com>
7004
7005         Initialize m_dialogArguments to 0. Fixes the newly crashing layout tests.
7006
7007         * bindings/js/kjs_window.cpp:
7008         (KJS::WindowPrivate::WindowPrivate):
7009
7010 2007-09-14  Oliver Hunt  <oliver@apple.com>
7011
7012         Reviewed by Brady, John H.
7013
7014         <rdar://problem/5483632> File system operation wrappers are unimplemented on windows
7015         
7016         Implement Windows versions of fileExists and deleteFile. 
7017         Also corrects fileSize to use a 64-bit version of stat.
7018
7019         * platform/win/FileSystemWin.cpp:
7020         (WebCore::fileSize):  
7021           Renamed argument to be more consistent with others.
7022           And converted to _stat32i64 to allow 64-bit filesizes
7023         (WebCore::fileExists):
7024         (WebCore::deleteFile):
7025         * platform/win/TemporaryLinkStubs.cpp:
7026
7027 2007-09-14  Oliver Hunt  <oliver@apple.com>
7028
7029         Reviewed by Sam and Geoff.
7030
7031         <rdar://problem/5333272> Cannot upload files when path contains 
7032         non-ascii/multibyte characters
7033
7034         We can't use _stat to determine file size on Windows as it may not 
7035         correctly handle multibyte characters, so we have to use _wstat.
7036         
7037         In deference to the fact that we may one day use the FormDataStreamCFNet.cpp
7038         on Mac i've wrapped the call to _wstat with a generic fileSize
7039         method in FileSystem.h
7040
7041         * WebCore.vcproj/WebCore.vcproj:
7042         * platform/FileSystem.h:
7043         * platform/network/cf/FormDataStreamCFNet.cpp:
7044         * platform/win/FileSystemWin.cpp: Added.
7045         (WebCore::setHTTPBody):
7046         * platform/gdk/TemporaryLinkStubs.cpp:
7047         * platform/mac/FileSystemMac.mm:
7048         (WebCore::fileSize):
7049         * platform/qt/TemporaryLinkStubs.cpp:
7050
7051 2007-09-14  Timothy Hatcher  <timothy@apple.com>
7052
7053         Reviewed by Sam.
7054
7055         <rdar://problem/5472970> REGRESSION (r24276): TinyMCE popups show an empty window with no content
7056
7057         Accessing the document of a window before the load finished would cause the window
7058         object to hold onto the initial empty document, and never switch over to the real document
7059         once the load finished. This regression was caused by r24276 which added a check to prevent
7060         clearing the window object when the load finished. The absence of this clear allowed the
7061         dialogArguments set with showModalDialog to persist on the window after the load. However,
7062         not clearing the window would keep other properties (and the empty document object) around.
7063
7064         So the fix is to store away the dialog arguments that were passed to showModalDialog and
7065         put them back on the window object in the dialogArguments property each time
7066         the window is cleared.
7067
7068         * bindings/js/kjs_window.cpp:
7069         (KJS::createWindow): No longer put dialogArguments on the window here.
7070         (KJS::showModalDialog): Put dialogArguments on the window and call
7071         setDialogArgumentsAndReturnValueSlot to remember the arguments.
7072         (KJS::Window::clear): Put m_dialogArguments back on the window as dialogArguments.
7073         (KJS::WindowFunc::callAsFunction): Call the new setDialogArgumentsAndReturnValue.
7074         (KJS::Window::setDialogArgumentsAndReturnValue): Store the arguments in m_dialogArguments.
7075         * bindings/js/kjs_window.h: Rename setReturnValueSlot to setDialogArgumentsAndReturnValueSlot.
7076         * manual-tests/modal-dialog-arguments.html: Confirmed that this test still passes.
7077
7078         Reverted r24276 which was all the changes in FrameLoader.cpp and FrameLoader.h.
7079
7080         * loader/FrameLoader.cpp:
7081         (WebCore::FrameLoader::FrameLoader): Remove m_shouldClearWindowProperties.
7082         (WebCore::FrameLoader::createWindow): Remove the call to setShouldClearWindowProperties.
7083         (WebCore::FrameLoader::clear): No longer check m_shouldClearWindowProperties, clear the
7084         window whenever clearWindowProperties is set.
7085         (WebCore::FrameLoader::begin): Remove m_shouldClearWindowProperties.
7086         (WebCore::FrameLoader::open): Ditto.
7087         * loader/FrameLoader.h: Remove m_shouldClearWindowProperties.
7088
7089 2007-09-14  Brady Eidson  <beidson@apple.com>
7090
7091         How about a build fix that works on *all* platforms?
7092
7093         * platform/Threading.h:
7094         (WebCore::initializeThreading):
7095
7096 2007-09-14  Brady Eidson  <beidson@apple.com>
7097
7098         Roll out my previous build fix and just make the stupid thing inline
7099         (I knew there was something easier but oh boy, no coffee yet... weinig?)
7100
7101 2007-09-14  Brady Eidson  <beidson@apple.com>
7102
7103         Rubberstamped by Mark Rowe
7104
7105         Add the logging channel I just created to the initialize list on Mac
7106
7107         * platform/mac/LoggingMac.mm:
7108         (WebCore::InitializeLoggingChannelsIfNecessary):
7109
7110 2007-09-14  Brady Eidson  <beidson@apple.com>
7111
7112         Build fix
7113
7114         That method can't go in the header, apparently
7115
7116         * platform/Threading.h:
7117         * platform/gdk/TemporaryLinkStubs.cpp:
7118         (WebCore::initializeThreading):
7119         * platform/mac/Threading.mm:
7120         (WebCore::initializeThreading):
7121         * platform/qt/TemporaryLinkStubs.cpp:
7122         (WebCore::initializeThreading):
7123
7124 2007-09-14  Brady Eidson  <beidson@apple.com>
7125
7126         Reviewed by Darin
7127
7128         -Add callOnMainThread() implementation to Windows
7129
7130         * WebCore.vcproj/WebCore.vcproj:
7131         
7132         * loader/icon/IconDatabase.cpp:
7133         (WebCore::IconDatabase::open): Call initializeThreading() from the main thread before kicking off the secondary thread
7134         
7135         * platform/Logging.cpp: Added Threading logging channel
7136         (WebCore::):
7137         * platform/Logging.h: Ditto
7138         
7139         * platform/Threading.h:
7140         (WebCore::initializeThreading): Added - only needs Windows impl for now
7141         * platform/win/ThreadingWin.cpp: Added.
7142         (WebCore::callFunctionsOnMainThread): Calls each function currently in the main-thread queue
7143         (WebCore::ThreadingWindowWndProc):
7144         (WebCore::initializeThreading): Creates a message-only window to use for callOnMainThread()
7145         (WebCore::callOnMainThread): Queues the function to be called and posts a message to the threading
7146           window such that the function-call-queue can be addressed
7147         
7148         * platform/win/TemporaryLinkStubs.cpp:
7149         (WebCore::signedPublicKeyAndChallengeString):
7150         
7151 2007-09-14  Anders Carlsson  <andersca@apple.com>
7152
7153         Reviewed by Adam.
7154
7155         <rdar://problem/5316743>
7156         Safari does not handle filename parameter of content-disposition
7157         
7158         Use CFURLResponseCopySuggestedFilename instead of our own hand-rolled implementation. 
7159         
7160         While we do return the correct filename in all cases I've tried, using CFNetwork is better because
7161         it might handle corner cases that we don't.
7162         
7163         * platform/network/cf/ResourceResponseCFNet.cpp:
7164         (WebCore::ResourceResponse::doUpdateResourceResponse):
7165         
7166 2007-09-14  Geoffrey Garen  <ggaren@apple.com>
7167
7168         Reviewed by Adam Roben.
7169
7170         Fixed http://bugs.webkit.org/show_bug.cgi?id=15209
7171         Sometimes removing an iframe from the DOM does not remove its frame 
7172         from the page
7173
7174         * loader/FrameLoader.cpp:
7175         (WebCore::FrameLoader::requestFrame): Use the contentFrame pointer
7176         directly instead of searching for a frame by the frame element's name, 
7177         because the frame element's name may have changed. (Another reason to do
7178         this is that it's just plain more straight-forward and efficient.)
7179
7180 2007-09-14  Darin Adler  <darin@apple.com>
7181
7182         Reviewed by Mitz and Kevin Decker.
7183
7184         - fix http://bugs.webkit.org/show_bug.cgi?id=15197
7185           <rdar://problem/5478271> REGRESSION: Some Yahoo text entry fields
7186           render as lines rather than text entry boxes
7187
7188         Test: fast/forms/textarea-rows-cols.html
7189
7190         * html/HTMLTextAreaElement.cpp:
7191         (WebCore::HTMLTextAreaElement::HTMLTextAreaElement): Use constants for the default number
7192         of rows and columns.
7193         (WebCore::HTMLTextAreaElement::parseMappedAttribute): If rows/cols attribute has a value
7194         that's missing, non-numeric, or zero, then use the default value. Also check for the
7195         case where the effective value of the attribute isn't changing.
7196
7197 2007-09-14  Sven Herzberg  <sven@imendio.com>
7198
7199         Reviewed by George.
7200
7201         Don't maintain obsolete code, fixes:
7202         http://bugs.webkit.org/show_bug.cgi?id=15215
7203
7204         * platform/gdk/FontPlatformData.cpp: remove static
7205         FontPlatformData::list() (isn't used at any place)
7206
7207 2007-09-14  Sven Herzberg  <sven@imendio.com>
7208
7209         Reviewed by Adam Roben.
7210
7211         Don't use fontconfig types if necessary, fixes:
7212         http://bugs.webkit.org/show_bug.cgi?id=15203
7213
7214         * platform/gdk/FontPlatformData.cpp: don't use an FcBool to store the
7215         initialized state, use a plain c++ bool instead
7216
7217 2007-09-13  Brady Eidson  <beidson@apple.com>
7218
7219         Reviewed by Maciej
7220
7221         <rdar://problem/5480437> - No site icon at launch and related error messages
7222
7223         The error message was actually indicative of a larger bug that might've resulted in icons getting
7224         improperly pruned because they were never added to the set of retained page URLs.
7225
7226         To solve the no-icon-at-launch problem, we send the "didReceiveIcon:" delegate call for every page 
7227         load that has an icon, whether the icon comes in from network, from disk, or was already in ram
7228
7229         * loader/FrameLoader.cpp:
7230         (WebCore::FrameLoader::startIconLoader): Always send the didReceiveIcon delegate call when an icon's 
7231           image data is known
7232
7233         * loader/icon/IconDatabase.cpp:
7234         (WebCore::IconDatabase::retainIconForPageURL): Much more accurately track the set of retained pages by
7235           adding them when their retain count moves from 0 to 1
7236
7237         * loader/icon/PageURLRecord.h:
7238         (WebCore::PageURLRecord::retain): Correctly distinguish the "retain count just went from 0 to 1" case
7239           in the return value
7240
7241 2007-09-13  Brady Eidson  <beidson@apple.com>
7242
7243         Rubberstamped by Geoff and Maciej
7244
7245         Fix MSVC build warning due to out of range data in a char array
7246
7247         * loader/icon/IconDatabase.cpp:
7248         (WebCore::IconDatabase::defaultIcon): The buffer is now unsigned data
7249
7250         * platform/SharedBuffer.cpp:
7251         (WebCore::SharedBuffer::SharedBuffer): Add the "unsigned char*" c'tor
7252         * platform/SharedBuffer.h:
7253
7254 2007-09-13  Darin Adler  <darin@apple.com>
7255
7256         Reviewed by Oliver.
7257
7258         - fix <rdar://problem/5470457> REGRESSION: Input method inline hole is mishandled in text
7259           <input> elements with maxlength limit
7260
7261         * editing/Editor.h: Moved MarkedTextUnderline here and renamed it CompositionUnderline.
7262         Moved the rest of the marked text API here and used the term that will be more familiar
7263         to those on platforms other than Macintosh, "composition". This helps prevent confusion
7264         with the other kinds of mark -- the emacs "mark" and spelling/grammar marks. Also
7265         cleaned up the conditionals a bit for the Macintosh-specific parts of this header.
7266
7267         * editing/Editor.cpp:
7268         (WebCore::Editor::Editor): Updated for name change.
7269         (WebCore::Editor::clear): Added. To be called by FrameLoader::clear().
7270         (WebCore::Editor::insertTextWithoutSendingTextEvent): Removed code to make inserted
7271         text replace the marked text range -- we now deal with this explicitly by not
7272         calling this function to replace marked text. Also removed unneeded code that was
7273         specific to the use of this to replace the marked text.
7274         (WebCore::Editor::selectComposition): Renamed from selectMarkedText. Updated since
7275         the composition range is not stored as a Range.
7276         (WebCore::Editor::confirmComposition): Added. To be called when changing a composition
7277         into actual text. Unlike the old code path, deletes the composition first, then inserts
7278         the text, triggering the normal insertion code path and events. This is helpful because
7279         it means the inserted text will be truncated by the <input> element, for example.
7280         (WebCore::Editor::confirmCompositionWithoutDisturbingSelection): Added.
7281         (WebCore::Editor::setComposition): Added. To be called when changing the composition.
7282         Takes parameters for the underlines and selection. Unlike the old code path, this passes
7283         a flag down that indicates the inserted text is part of a composition. This is helpful
7284         because we don't send the event that will cause the <input> element to do truncation.
7285         It's also a better API for future improvements to our input method handling.
7286         (WebCore::Editor::revealSelectionAfterEditingOperation): Updated for name change.
7287         (WebCore::Editor::setIgnoreCompositionSelectionChange): Ditto.
7288         (WebCore::Editor::compositionRange): Added. Needed now that the composition is not
7289         stored as a Range.
7290         (WebCore::Editor::getCompositionSelection): Added.
7291
7292         * editing/TypingCommand.h:
7293         * editing/TypingCommand.cpp: (WebCore::TypingCommand::insertText):
7294         Added an insertedTextIsComposition parameter, and don't send the BeforeTextInsertedEvent
7295         if it's true.
7296
7297         * loader/FrameLoader.cpp: (WebCore::FrameLoader::clear): Replaced the Macintosh-specific
7298         call to setMarkedTextRange with a call to the new Editor::clear().
7299
7300         * page/Frame.h:
7301         * page/Frame.cpp:
7302         * page/FramePrivate.h:
7303         * page/mac/FrameMac.mm:
7304         Removed the marked text code. It was streamlined and moved to Editor, except for the
7305         Mac-specific code, which was moved into WebKit.
7306
7307         * page/mac/WebCoreFrameBridge.h:
7308         * page/mac/WebCoreFrameBridge.mm: Removed some now-unneeded marked text code.
7309         (-[WebCoreFrameBridge markedTextNSRange]): Updated for name/API change.
7310
7311         * rendering/InlineTextBox.h:
7312         * rendering/InlineTextBox.cpp:
7313         (WebCore::InlineTextBox::paint): Updated marked text code for name changes, and also
7314         streamlined the code a bit for the case where there is no composition.
7315         (WebCore::InlineTextBox::paintCompositionBackground): Name change.
7316         (WebCore::InlineTextBox::paintCompositionUnderline): Ditto.
7317
7318         * rendering/RenderTextControl.h:
7319         * rendering/RenderTextControl.cpp:
7320         (WebCore::RenderTextControl::finishText): Added. Helper function shared by the
7321         (WebCore::RenderTextControl::text):
7322         (WebCore::getNextSoftBreak):
7323         (WebCore::RenderTextControl::textWithHardLineBreaks):
7324
7325         * platform/CharacterNames.h: Added newlineCharacter.
7326
7327         * dom/Range.h: Remove the now-unneeded version of toString that converts <br>
7328         elements into newlines.
7329         * dom/Range.cpp:
7330         (WebCore::Range::toString): Changed this to use a Vector<UChar> instead of
7331         a String so it will not have pathological reallocation performance, and removed
7332         the <br> feature.
7333         (WebCore::Range::pastEndNode): Made this return 0 when there is no start node.
7334         This bit of extra robustness guarantees you can't do a null dereference if the
7335         start node is 0 and the end node is not. Not sure this case really exists.
7336
7337         * page/ContextMenuController.cpp: (ContextMenuController::contextMenuItemSelected):
7338         Removed a semi-bogus use of Range::toString(true). The right function to use here
7339         is plainText().
7340
7341         * bridge/EditorClient.h: Removed obsolete markedTextAbandoned function.
7342
7343         * WebCore.exp: Updated for above changes. 
7344
7345 2007-09-13  Anders Carlsson  <andersca@apple.com>
7346
7347         Reviewed by Adam and Geoff.
7348
7349         <rdar://problem/5304000>
7350         Windows Safari doesn't always call NPP_SetWindow() for NPAPI plugins.
7351         
7352         This does two things:
7353         
7354         1. Makes sure that the plug-in get the correct initial size.
7355         
7356         2. Always updates the size of the HWND, even if the widget size didn't change. This is because
7357         the widget size can be different before the HWND has been created.
7358         
7359         * plugins/win/PluginDatabaseWin.cpp:
7360         (WebCore::PluginDatabaseWin::createPluginView):
7361         * plugins/win/PluginDatabaseWin.h:
7362         * plugins/win/PluginViewWin.cpp:
7363         (WebCore::PluginViewWin::setFrameGeometry):
7364         (WebCore::PluginViewWin::PluginViewWin):
7365         * plugins/win/PluginViewWin.h:
7366
7367 2007-09-13  Kevin McCullough  <kmccullough@apple.com>
7368
7369         Reviewed by Geof, Sam, Adam, Hyatt, Darin.
7370
7371         - <rdar://problem/5480234> JS setTimeout function requires a second argument
7372         - Removed check for number of arguments in setTimeout to behave like other browsers.
7373         - Added layoutTest setTimeout-no-arguments.html
7374
7375         * bindings/js/kjs_window.cpp:
7376         (KJS::WindowFunc::callAsFunction):
7377
7378 2007-09-13   Dave Hyatt  <hyatt@apple.com>
7379
7380         Some minor Windows font improvements before I make the larger changes.
7381         
7382         Reviewed by aroben, weinig
7383
7384         * platform/win/FontCacheWin.cpp:
7385         (WebCore::FontCache::getFontDataForCharacters):
7386         Don't use the currently selected font in the HDC when passing priority code pages to MLANG.  Make
7387         sure to use ACP code pages instead so that there won't be any confusion regarding traditional vs.
7388         simplified chinese, etc.
7389
7390         * platform/win/FontDataWin.cpp:
7391         (WebCore::FontData::containsCharacters):
7392         Rewrite containsCharacters so that it isn't glyph-dependent (since CG doesn't shape, this call is
7393         rejecting fonts that it shouldn't).  Re-implement this method in terms of MLang and use code page
7394         testing.
7395         
7396         * platform/win/UniscribeController.cpp:
7397         (WebCore::UniscribeController::itemizeShapeAndPlace):
7398         Add some comments to explain the additional item in the items array.
7399        
7400         (WebCore::UniscribeController::shape):
7401         Fix up the missing glyph check when doing uniscribe shaping.  Only wgDefault matters as far as doing
7402         font fallback.
7403         
7404 2007-09-13  kuchhal  <kuchhal@yahoo.com>
7405
7406         Reviewed, tweaked and landed by Anders.
7407
7408         <rdar://problem/5461153> 
7409         http://bugs.webkit.org/show_bug.cgi?id=15143
7410         Crash seen on Windows
7411         
7412         Null check frame before calling Frame::settings.
7413         
7414         * loader/PluginDocument.cpp:
7415         (WebCore::PluginTokenizer::writeRawData):
7416
7417 2007-09-12  Holger Hans Peter Freyther  <zecke@selfish.org>
7418
7419         Reviewed by Mark.
7420
7421         Implement the FileChooser for the WebKit/Gtk+ port by using
7422         the GtkFileChooserDialog and g_path_get_basename to get the
7423         basename for the current filename.
7424
7425
7426         * WebCore.pro:
7427         * platform/gdk/FileChooserGdk.cpp: Added.
7428         (WebCore::FileChooser::FileChooser):
7429         (WebCore::FileChooser::~FileChooser):
7430         (WebCore::FileChooser::openFileChooser):
7431         (WebCore::FileChooser::basenameForWidth):
7432         * platform/gdk/TemporaryLinkStubs.cpp:
7433
7434 2007-09-12  Holger Hans Peter Freyther  <zecke@selfish.org>
7435
7436         Reviewed by Mark.
7437
7438         Move the "string" functions from the TemporaryLinkStubs.cpp
7439         to LocalizedStringsGdk.cpp and implement them using the text
7440         from the win port and glib-i18n (gettext).
7441
7442         * platform/gdk/LocalizedStringsGdk.cpp: Added.
7443         (WebCore::submitButtonDefaultLabel):
7444         (WebCore::inputElementAltText):
7445         (WebCore::resetButtonDefaultLabel):
7446         (WebCore::searchableIndexIntroduction):
7447         (WebCore::fileButtonChooseFileLabel):
7448         (WebCore::fileButtonNoFileSelectedLabel):
7449         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
7450         (WebCore::contextMenuItemTagDownloadLinkToDisk):
7451         (WebCore::contextMenuItemTagCopyLinkToClipboard):
7452         (WebCore::contextMenuItemTagOpenImageInNewWindow):
7453         (WebCore::contextMenuItemTagDownloadImageToDisk):
7454         (WebCore::contextMenuItemTagCopyImageToClipboard):
7455         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
7456         (WebCore::contextMenuItemTagCopy):
7457         (WebCore::contextMenuItemTagGoBack):
7458         (WebCore::contextMenuItemTagGoForward):
7459         (WebCore::contextMenuItemTagStop):
7460         (WebCore::contextMenuItemTagReload):
7461         (WebCore::contextMenuItemTagCut):
7462         (WebCore::contextMenuItemTagPaste):
7463         (WebCore::contextMenuItemTagNoGuessesFound):
7464         (WebCore::contextMenuItemTagIgnoreSpelling):
7465         (WebCore::contextMenuItemTagLearnSpelling):
7466         (WebCore::contextMenuItemTagSearchWeb):
7467         (WebCore::contextMenuItemTagLookUpInDictionary):
7468         (WebCore::contextMenuItemTagOpenLink):
7469         (WebCore::contextMenuItemTagIgnoreGrammar):
7470         (WebCore::contextMenuItemTagSpellingMenu):
7471         (WebCore::contextMenuItemTagShowSpellingPanel):
7472         (WebCore::contextMenuItemTagCheckSpelling):
7473         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
7474         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
7475         (WebCore::contextMenuItemTagFontMenu):
7476         (WebCore::contextMenuItemTagBold):
7477         (WebCore::contextMenuItemTagItalic):
7478         (WebCore::contextMenuItemTagUnderline):
7479         (WebCore::contextMenuItemTagOutline):
7480         (WebCore::contextMenuItemTagWritingDirectionMenu):
7481         (WebCore::contextMenuItemTagDefaultDirection):
7482         (WebCore::contextMenuItemTagLeftToRight):
7483         (WebCore::contextMenuItemTagRightToLeft):
7484         (WebCore::contextMenuItemTagInspectElement):
7485         (WebCore::searchMenuNoRecentSearchesText):
7486         (WebCore::searchMenuRecentSearchesText):
7487         (WebCore::searchMenuClearRecentSearchesText):
7488         (WebCore::unknownFileSizeText):
7489         * platform/gdk/TemporaryLinkStubs.cpp:
7490
7491 2007-09-10  Holger Hans Peter Freyther  <zecke@selfish.org>
7492
7493         Reviewed by Mark.
7494
7495         EventHandlerGdk::createDraggingClipboard must succeed otherwise an
7496         ASSERT is hit. Add Clipboard stubs for the Gdk/Gtk+ port and
7497         instantiate ClipboardGdk from the EventHandlerGdk to make the ASSERT
7498         go away. In contrast to the Windows and Mac port this clipboard is not
7499         inheriting CachedResourceClient. This was proposed by Oliver.
7500
7501         * WebCore.pro:
7502         * page/gdk/EventHandlerGdk.cpp:
7503         * platform/gdk/ClipboardGdk.cpp: Added.
7504         (WebCore::ClipboardGdk::ClipboardGdk):
7505         (WebCore::ClipboardGdk::~ClipboardGdk):
7506         (WebCore::ClipboardGdk::clearData):
7507         (WebCore::ClipboardGdk::clearAllData):
7508         (WebCore::ClipboardGdk::getData):
7509         (WebCore::ClipboardGdk::setData):
7510         (WebCore::ClipboardGdk::types):
7511         (WebCore::ClipboardGdk::dragLocation):
7512         (WebCore::ClipboardGdk::dragImage):
7513         (WebCore::ClipboardGdk::setDragImage):
7514         (WebCore::ClipboardGdk::dragImageElement):
7515         (WebCore::ClipboardGdk::setDragImageElement):
7516         (WebCore::ClipboardGdk::createDragImage):
7517         (WebCore::ClipboardGdk::declareAndWriteDragImage):
7518         (WebCore::ClipboardGdk::writeURL):
7519         (WebCore::ClipboardGdk::writeRange):
7520         (WebCore::ClipboardGdk::hasData):
7521         * platform/gdk/ClipboardGdk.h: Added.
7522
7523 2007-09-12  Oliver Hunt  <oliver@apple.com>
7524
7525         Reviewed by Adam.
7526
7527         Corrections missed in previous revision
7528
7529         * platform/Cursor.h:
7530         * platform/win/CursorWin.cpp:
7531         (WebCore::loadCursorByName):
7532
7533 2007-09-12  Oliver Hunt  <oliver@apple.com>
7534
7535         Reviewed by Adam.
7536
7537         Fixing 
7538             <rdar://problem/5018591> Windows doesn't have a standard vertical text cursor
7539             <rdar://problem/5224996> Add zoom in and zoom out cursors
7540
7541         Added SharedCursor for CursorWin so we can correctly track lifetime of custom/image
7542         based cursors, such as the vertical text and zooming cursors.
7543
7544         * platform/Cursor.h:
7545         (WebCore::SharedCursor::SharedCursor):
7546         (WebCore::SharedCursor::~SharedCursor):
7547         (WebCore::SharedCursor::nativeCursor):
7548         * platform/win/CursorWin.cpp:
7549         (WebCore::Cursor::Cursor):
7550         (WebCore::loadCursorByName):
7551         (WebCore::loadSharedCursor):
7552         (WebCore::pointerCursor):
7553         (WebCore::crossCursor):
7554         (WebCore::handCursor):
7555         (WebCore::iBeamCursor):
7556         (WebCore::waitCursor):
7557         (WebCore::helpCursor):
7558         (WebCore::eastResizeCursor):
7559         (WebCore::northResizeCursor):
7560         (WebCore::northEastResizeCursor):
7561         (WebCore::northWestResizeCursor):
7562         (WebCore::southResizeCursor):
7563         (WebCore::southEastResizeCursor):
7564         (WebCore::southWestResizeCursor):
7565         (WebCore::westResizeCursor):
7566         (WebCore::northSouthResizeCursor):
7567         (WebCore::eastWestResizeCursor):
7568         (WebCore::northEastSouthWestResizeCursor):
7569         (WebCore::northWestSouthEastResizeCursor):
7570         (WebCore::columnResizeCursor):
7571         (WebCore::rowResizeCursor):
7572         (WebCore::moveCursor):
7573         (WebCore::verticalTextCursor):
7574         (WebCore::progressCursor):
7575         (WebCore::notAllowedCursor):
7576         (WebCore::zoomInCursor):
7577         (WebCore::zoomOutCursor):
7578         * platform/win/WidgetWin.cpp:
7579         (WebCore::Widget::setCursor):
7580
7581 2007-09-12  Brady Eidson  <beidson@apple.com>
7582
7583         Reviewed by Geoff Garen
7584
7585         <rdar://problem/5478577> - Further improve cold launch time with Icon Database changes
7586
7587         * loader/icon/IconDatabase.cpp:
7588         (WebCore::IconDatabase::open): Store the directory and full path for later usage and access in the API, respectively
7589           Move the makeAllDirectories() call to the background thread.
7590         (WebCore::IconDatabase::IconDatabase): Don't set up the timer here...
7591         (WebCore::IconDatabase::scheduleOrDeferSyncTimer): Create the timer on demand
7592         (WebCore::IconDatabase::iconDatabaseSyncThread): makeAllDirectories() here where it's not as expensive
7593         (WebCore::IconDatabase::cleanupSyncThread): Cleanup the directory as well as full path
7594
7595         * loader/icon/IconDatabase.h: m_syncTimer becomes an OwnPtr, and we add the database directory
7596           as a member to set it on the main thread and act with it on the background thread
7597
7598 2007-09-12  Justin Garcia  <justin.garcia@apple.com>
7599
7600         Reviewed by Tristan.
7601
7602         <rdar://problem/5469868> 
7603         GoogleDocs: A hang occurs when applying list styling to a selection in a <table>
7604         
7605         When list insertion moves selected paragraphs into list items, it relies on 
7606         the selection preservation code inside moveParagraphs to iterate over the 
7607         selected paragraphs.  If a selection is ever restored incorrectly (before
7608         the original, or inside the original) list insertion will go into an infinite loop.
7609         
7610         In this hang, a table was selected and the selection preservation code incorrectly
7611         restored a selection, placing it inside the table.
7612         
7613         The bug was that a TextIterator, when being used for selection preservation, must
7614         emit a character between every VisiblePosition in the Range used to create the
7615         iterator.
7616         
7617         * editing/TextIterator.cpp:
7618         (WebCore::TextIterator::TextIterator): Renamed the boolean that we use for 
7619         selection preservation.  It used to be m_emitForReplacedElements because
7620         we believed that replaced elements were the only case where TextIterators
7621         should have emitted differently when used for selection preservation.
7622         (WebCore::TextIterator::handleReplacedElement): Ditto.
7623         (WebCore::TextIterator::shouldRepresentNodeOffsetZero): Represent the 
7624         position before block tables, but only if we are emitting for selection 
7625         preservation.
7626         (WebCore::TextIterator::shouldEmitSpaceBeforeAndAfterNode): We should emit 
7627         a space before and after block tables if we are emitting for selection 
7628         preservation (because we have VisiblePositions before and after them).
7629         (WebCore::TextIterator::handleNonTextNode): Use a renamed variable.
7630         * editing/TextIterator.h: Made shouldEmitSpaceBeforeAndAfterNode a member
7631         function, because whether or not we emit spaces before and after a block
7632         table depends we're emitting for selection preservation.
7633
7634 2007-09-12  Beth Dakin  <bdakin@apple.com>
7635
7636         Reviewed by Hyatt.
7637
7638         Fix for <rdar://problem/5464998> REGRESSION (9A543): Using Sort 
7639         options takes you back to search screen on zappos.com
7640
7641         The current mechanism for preserving form elements across removes 
7642         did not work in the case where the input was moved by the parser to 
7643         be out of scope of the form. This fixes that problem by having the 
7644         parser keep track of the preserve boolean rather than the current 
7645         form element.
7646
7647         * dom/Tokenizer.h:
7648         (WebCore::Tokenizer::isHTMLTokenizer): New function.
7649         * html/HTMLFormElement.cpp:
7650         (WebCore::HTMLFormElement::HTMLFormElement): Get rid of 
7651         m_preserveAcrossRemove.
7652         * html/HTMLFormElement.h:
7653         (WebCore::HTMLFormElement::isMalformed): Get rid of 
7654         m_preserveAcrossRemove.
7655         * html/HTMLGenericFormElement.cpp:
7656         (WebCore::HTMLGenericFormElement::removedFromTree): Ask the parser 
7657         if it is currently handling residual style rather than asking the 
7658         form if it wants to preserveAcrossRemove.
7659         * html/HTMLParser.cpp:
7660         (WebCore::HTMLParser::HTMLParser): New boolean to initialize.
7661         (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): Set 
7662         m_handlingResidualStyleAcrossBlocks to true at the beginning and 
7663         false at the end.
7664         * html/HTMLParser.h:
7665         (WebCore::HTMLParser::isHandlingResidualStyleAcrossBlocks):
7666         * html/HTMLTokenizer.h:
7667         (WebCore::HTMLTokenizer::isHTMLTokenizer):
7668         (WebCore::HTMLTokenizer::htmlParser):
7669
7670 2007-09-12  George Staikos  <staikos@kde.org>
7671
7672         Fix compilation in some configurations for patch I reviewed and missed
7673         this option on.
7674
7675         * platform/qt/CursorQt.cpp:
7676         (WebCore::Cursor::Cursor):
7677
7678 2007-09-12  Brady Eidson  <beidson@apple.com>
7679
7680         Reviewed by Tim Hatcher and Kevin Decker
7681
7682         <rdar://problem/5367045> - Launch time regression due to accessing resource from a different bundle
7683
7684         When the default icon was moved from WebKit to WebCore, we had to access an entirely new bundle on launch which
7685         measurably increased time during launch accessing the disk.
7686
7687         Instead of moving it back to the WebKit bundle, lets make launch time even faster by compiling in the icon.
7688
7689         * Resources/urlIcon.tiff: Removed.
7690
7691         * WebCore.xcodeproj/project.pbxproj: Removed urlIcon.tiff
7692
7693         * loader/icon/IconDatabase.cpp:
7694         (WebCore::IconDatabase::defaultIcon): Compile in the icon data here.
7695
7696 2007-09-12  Adam Roben  <aroben@apple.com>
7697
7698         Always specify that slider thumbs are small when painting with SafariTheme
7699
7700         This is the only size we support.
7701
7702         Reviewed by Sam.
7703
7704         * rendering/RenderThemeSafari.cpp:
7705         (WebCore::RenderThemeSafari::paintSliderThumb):
7706
7707 2007-09-12  Brady Eidson  <beidson@apple.com>
7708
7709         Reviewed by Darin
7710
7711         <rdar://problem/5474753> - ASSERT in IconDatabase ReadySQLStatement
7712
7713         * loader/icon/IconDatabase.cpp:
7714         (WebCore::readySQLStatement): This is a LOG_ERROR situation, not really an ASSERT situation
7715
7716 2007-09-12  Adam Roben  <aroben@apple.com>
7717
7718         Don't ask SafariTheme to draw focus rings around text controls
7719
7720         We do this ourselves.
7721
7722         Reviewed by Oliver.
7723
7724         * rendering/RenderThemeSafari.cpp:
7725
7726 2007-09-11  Brady Eidson  <beidson@apple.com>
7727
7728         Reviewed by Darin
7729
7730         <rdar://problem/5475639> and http://bugs.webkit.org/show_bug.cgi?id=15185 -
7731         Prevent two WebKits from fighting over the database schema in the future in case it ever changes again
7732
7733         By telling the "older schema" WebKit to simply close itself and not bother to do any icon related stuff
7734         if the database schema is newer, we prevent the possibility of an older webkit run side-by-side with a newer
7735         WebKit causing icon database issues.
7736
7737         * loader/icon/IconDatabase.cpp:
7738         (WebCore::IconDatabase::defaultDatabaseFilename): Rev the icon database filename to be "WebpageIcons.db"  The name is
7739           more appropriate for what is actually stored in the file, and since we're already not converting v5 to v6 icons, 
7740           making this leap now makes sense and gives us a good "future-proof" baseline
7741         (WebCore::isValidDatabase): Change the validity check to be "less then" instead of "not equal to" - the
7742           "greater than" case is now handled in performOpenInitialization()
7743         (WebCore::IconDatabase::performOpenInitialization): If the schema version is greater than the current, then
7744           close the database as to not conflict with the newer version.  Also noted that the integrity check failure 
7745           should actually close the sql database, not the icondatabase
7746         (WebCore::IconDatabase::syncThreadMainLoop): If termination has already been requested, skip straight to cleanup
7747         (WebCore::IconDatabase::cleanupSyncThread): More correctly set the "sync thread running" flag to false here,
7748           as the thread can now decide to exit on its own
7749
7750 2007-09-12  Mike Fenton <mike@staikos.net>
7751
7752         Reviewed by George Staikos.
7753
7754         Patch from Mike Fenton to allow custom cursors.
7755
7756         * platform/qt/CursorQt.cpp:
7757
7758 2007-09-11  Kevin Decker <kdecker@apple.com>
7759
7760         Reviewed by Oliver Hunt.
7761
7762         Fixed: <rdar://problem/5472402> crash due to infinite recursion in expandUseElementsInShadowTree on SVG from wikipedia
7763
7764         * ksvg2/svg/SVGUseElement.cpp: Added SVG_EXPERIMENTAL #ifdef for expandUseElementsInShadowTree().
7765         (WebCore::SVGUseElement::buildPendingResource): Ditto.
7766         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements): Tweaked an ASSERT to not fire on non-experimental builds.
7767         * ksvg2/svg/SVGUseElement.h: Added SVG_EXPERIMENTAL #ifdef for expandUseElementsInShadowTree().
7768
7769 2007-09-11  Brady Eidson  <beidson@apple.com>
7770
7771         Reviewed by Maciej
7772
7773         Fix for <rdar://problem/5473046> - Crash when resetting all icons
7774
7775         Originally I'd written the "reset all icons" to be synchronous on the main thread, but it
7776         was decided that it should be async since it involved I/O.  Turns out it needs to be... both!
7777         Synchronous removal of all in-memory records of icons, and then continue and clean up the 
7778         on-disk database on the background thread.
7779
7780         Also, it turns out that resetting all the page url retain counts should *not* be part of 
7781         "reset all icons" because it breaks various contracts the API makes about maintaining retain counts.
7782
7783         The problem that occured here was removing all the icons, then all the history items that were 
7784         removed as part of "Reset Safari..." would try to release their icon, but their icon doesn't exist
7785         anymore.
7786
7787         We get around this by simply leaving the in-memory page url records and retain counts alone - they
7788         are still wiped from disk.
7789
7790         * loader/icon/IconDatabase.cpp:
7791         (WebCore::IconDatabase::removeAllIcons): Clear in-memory records of all icons then tell the thread to
7792           wipe the on-disk tables
7793         (WebCore::IconDatabase::removeAllIconsOnThread): Only do the disk cleanup - in-memory maintenance is
7794           handled on the main thread
7795         (WebCore::IconDatabase::cleanupSyncThread): Now that it's possible for new "icons to be written to disk"
7796           to appear while on-disk deleting is occuring, let the cleanup procedure perform 1 final write *after*
7797           it does the remove all icons
7798         * loader/icon/IconDatabase.h: Removed unused lock and condition
7799
7800         * loader/icon/PageURLRecord.cpp:
7801         (WebCore::PageURLRecord::setIconRecord): Allow setting a NULL icon record, so a PageURLRecord can be
7802           cleared as part of removeAllIcons()
7803
7804 2007-09-11  Tristan O'Tierney  <tristan@apple.com>
7805
7806         Reviewed by David Harrison.
7807         
7808         <rdar://problem/5467203> CrashTracer: [USER] 1 crash in Mail at <unknown binary>: WebCore::Range::startContainer const
7809
7810         * editing/SelectionController.cpp:
7811         (WebCore::SelectionController::addRange):
7812         (WebCore::SelectionController::setSelectedRange):
7813         Added a check to make sure the passed in Range* value is not null
7814         before performing operations on it.
7815
7816 2007-09-11  Justin Garcia  <justin.garcia@apple.com>
7817
7818         Reviewed by Maciej.
7819         
7820         <rdar://problem/5458246> 
7821         GoogleDocs: A hang occurs when applying list styling to selection that contains a <HR>
7822         
7823         List insertion moves selected paragraphs into list items, and relies on the selection
7824         preservation code inside moveParagraphs to iterate over the selected paragraphs.
7825         When list insertion would try to listify a paragraph that came after a list item 
7826         containing an <hr>, the selection preservation code would set an incorrect ending 
7827         selection because of a TextIterator bug, and we would try to listify the same 
7828         paragraph over and over.
7829         
7830         * editing/CompositeEditCommand.cpp:
7831         (WebCore::CompositeEditCommand::moveParagraphs): Pass range compliant equivalents to
7832         the Range constructor here.  The position [hr, 0] is not a valid DOM Range endpoint 
7833         for example.
7834         * editing/TextIterator.cpp:
7835         (WebCore::shouldEmitSpaceForNode): Added.
7836         (WebCore::TextIterator::handleNonTextNode): Emit a space to represent a horizontal rule,
7837         since it has VisiblePositions before and after it, but only for TextIterators used for
7838         selection preservation, so innerText will be unaffected.
7839
7840 2007-09-11  Ada Chan  <adachan@apple.com>
7841
7842         <rdar://problem/5472130> Support NTLM authentication via CFNetwork.
7843
7844         Reviewed by Darin.
7845
7846         * platform/network/ProtectionSpace.h:
7847         (WebCore::):
7848         * platform/network/cf/AuthenticationCF.cpp:
7849         (WebCore::createCF):
7850         (WebCore::core):
7851
7852 2007-09-11  Darin Adler  <darin@apple.com>
7853
7854         Rubber-stamped by Dave Harrison.
7855
7856         - fixed pasteboard types here to match WebKit and use constants instead of
7857           WebKitSystemInterface
7858
7859         * platform/mac/PasteboardMac.mm: Use constants for all pasteboard type strings.
7860
7861         * platform/mac/WebCoreSystemInterface.h: Removed wkCreateURLPasteboardFlavorTypeName
7862         and wkCreateURLNPasteboardFlavorTypeName.
7863
7864 2007-09-11  Sven Herzberg  <sven@imendio.com>
7865
7866         Reviewed by Mark.
7867
7868         Remove unnecessary fields in FontPlatformData
7869         http://bugs.webkit.org/show_bug.cgi?id=15177
7870
7871         * platform/gdk/FontDataGdk.cpp: removed the destroy code of the fields
7872         that have been removed
7873         * platform/gdk/FontPlatformData.h: removed m_fontFace, m_fontMatrix
7874         and m_options; hask on m_scaledFont
7875         * platform/gdk/FontPlatformDataGdk.cpp: simplified setFont() by using
7876         m_scaledFont only; turned the former struct members into local
7877         variables
7878
7879 2007-09-11  George Staikos  <staikos@kde.org>
7880
7881         Reviewed by Anders.
7882
7883         Work around gcc bug with some old gcc versions.
7884
7885         * platform/qt/WidgetQt.cpp:
7886         (WebCore::Widget::convertToContainingWindow):
7887         (WebCore::Widget::convertFromContainingWindow):
7888
7889 2007-09-10  Mitz Pettel  <mitz@webkit.org>
7890
7891         Reviewed by Maciej Stachowiak.
7892
7893         - fix http://bugs.webkit.org/show_bug.cgi?id=15157
7894           Image defined in background-position: top center gets unexpectedly truncated
7895           <rdar://problem/5469095>
7896
7897         Test: fast/repaint/body-background-image.html
7898
7899         * rendering/RenderBox.cpp:
7900         (WebCore::RenderBox::imageChanged): Refined the logic for when the root takes
7901         over painting the background, to match paintBoxDecorations(). In particular,
7902         if the root has defined a background, the body should paint its own background.
7903
7904 2007-09-10  David Harrison  <harrison@apple.com>
7905
7906         Reviewed by Kevin and Tristan.
7907
7908         Tests added:
7909         * editing/pasteboard/paste-into-anchor-text.html: Added.
7910         * editing/pasteboard/paste-table-cells.html: Added.
7911
7912         Source changes:
7913         * editing/CompositeEditCommand.cpp:
7914         (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
7915         Nil check enclosingAnchor.
7916         
7917         * editing/ReplaceSelectionCommand.cpp:
7918         (WebCore::ReplaceSelectionCommand::removeNodeAndPruneAncestors):
7919         New. Keeps m_firstNodeInserted and m_lastLeafInserted updated.
7920         
7921         (WebCore::ReplaceSelectionCommand::negateStyleRulesThatAffectAppearance):
7922         Added a comment.
7923         
7924         (WebCore::ReplaceSelectionCommand::removeRedundantStyles):
7925         Let ReplaceSelectionCommand::removeNodeAndPruneAncestors() update the nodes.
7926          
7927         (WebCore::ReplaceSelectionCommand::doApply):
7928         Pass originalVisPosBeforeEndBR to shouldRemoveEndBR()
7929         
7930         (WebCore::ReplaceSelectionCommand::shouldRemoveEndBR):
7931         Don't remove the br if nothing was inserted.
7932         
7933         * editing/ReplaceSelectionCommand.h:
7934         Add VisiblePosition parameter to shouldRemoveEndBR()
7935         
7936         * editing/markup.cpp:
7937         (WebCore::createMarkup):
7938         Wrap orphan tr element with a table element, just like we were doing
7939         for tobody elements.
7940
7941 2007-09-10  David Kilzer  <ddkilzer@apple.com>
7942
7943         Rubberstamped by Kevin Decker.
7944
7945         No test required since there is no change in functionality.
7946
7947         * history/BackForwardList.cpp:
7948         (WebCore::BackForwardList::BackForwardList): Fix misspelling of DefaultCapacitiy to DefaultCapacity.
7949
7950 2007-09-10  Mitz Pettel  <mitz@webkit.org>
7951
7952         Reviewed by Adele Peterson.
7953
7954         - fix http://bugs.webkit.org/show_bug.cgi?id=15156
7955           REGRESSION (r24594-r24668): The bottom of styled <select> button text is clipped out
7956           <rdar://problem/5464301>
7957
7958         Test: fast/forms/menulist-clip.html
7959
7960         * rendering/RenderMenuList.cpp:
7961         (WebCore::RenderMenuList::controlClipRect): Use correct coordinates for
7962         the inner block's content rect.
7963
7964 2007-09-10  Brady Eidson  <beidson@apple.com>
7965
7966         Reviewed by Darin, Sam, Oliver, Geoff, probably others - what a fun one to review!
7967
7968         <rdar://problem/5471641> - URLs get the wrong icon
7969
7970         Turns out sqlite3_reset() doesn't clear bindings, so previously bound icons were being
7971         written out for pages without icons.  Easy fix!
7972
7973         * loader/icon/IconDatabase.cpp:
7974         (WebCore::IconDatabase::writeIconSnapshotToSQLDatabase): For null icons, manually
7975           bind NULL - otherwise, the previously bound icon will be written out to disk
7976
7977         * loader/icon/SQLStatement.cpp:
7978         (WebCore::SQLStatement::bindNull): Access to sqlite3_bind_null
7979         * loader/icon/SQLStatement.h:
7980
7981 2007-09-10  Anders Carlsson  <andersca@apple.com>
7982
7983         Reviewed by Oliver and Darin.
7984
7985         <rdar://problem/5468613>
7986         Using shockwave pages first time after plugin install crashed safari in PluginPing.
7987         
7988         Only restore the window proc if the plugin didn't override it.
7989         
7990         * plugins/win/PluginViewWin.cpp:
7991         (WebCore::PluginViewWin::stop):
7992
7993 2007-09-10  Justin Garcia  <justin.garcia@apple.com>
7994
7995         Reviewed by Darin.
7996
7997         <rdar://problem/5467405> 
7998         Revert back behavior of -webkit-user-select to fix widget selection problems
7999         
8000         Rolled out r25086 and r25057.  I will be re-opening:
8001         <rdar://problem/5333725> -webkit-user-select: none makes selection difficult
8002         Which we will either to defer or fix by introducing a new value of -webkit-user-select.
8003         <rdar://problem/5370059> REGRESSION: Cannot type into edit fields on a form (sccsheriff.org)
8004         Which we will either defer or fix with Adele's patch that doesn't involve making 
8005         -webkit-user-select inherited.
8006
8007         * css/CSSComputedStyleDeclaration.cpp:
8008         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
8009         * css/CSSStyleSelector.cpp:
8010         (WebCore::CSSStyleSelector::adjustRenderStyle):
8011         (WebCore::CSSStyleSelector::applyProperty):
8012         * editing/SelectionController.cpp:
8013         (WebCore::SelectionController::selectAll):
8014         * page/EventHandler.cpp:
8015         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
8016         (WebCore::EventHandler::handleMousePressEventTripleClick):
8017         (WebCore::EventHandler::handleMousePressEventSingleClick):
8018         (WebCore::EventHandler::updateSelectionForMouseDrag):
8019         (WebCore::EventHandler::selectCursor):
8020         (WebCore::EventHandler::canMouseDownStartSelect):
8021         * page/EventHandler.h:
8022         * rendering/RenderObject.cpp:
8023         (WebCore::selectStartNode):
8024         (WebCore::RenderObject::canSelect):
8025         (WebCore::RenderObject::shouldSelect):
8026         (WebCore::RenderObject::draggableNode):
8027         * rendering/RenderObject.h:
8028         * rendering/RenderStyle.cpp:
8029         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
8030         (WebCore::StyleRareNonInheritedData::operator==):
8031         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
8032         (WebCore::StyleRareInheritedData::operator==):
8033         (WebCore::RenderStyle::diff):
8034         * rendering/RenderStyle.h:
8035         (WebCore::):
8036         (WebCore::RenderStyle::userSelect):
8037         (WebCore::RenderStyle::setUserSelect):
8038         (WebCore::RenderStyle::initialUserSelect):
8039
8040 2007-09-10  Antti Koivisto  <antti@apple.com>
8041
8042         Reviewed by Kevin.
8043
8044         Fix <rdar://problem/5444866>
8045         REGRESSION: missing text in Acrobat "Getting Started" screen due to change in load ordering of large resources
8046         
8047         Make external scripts loaded using file: wait until all style sheet loads have completed before executing. 
8048         Fixes a class of problems where there is a dependency between script and stylesheet and results would effectively 
8049         get randomized based on which order the resources arrived. In Tiger file loads were effectively serialized by
8050         lower level components, which is why this regressed. 
8051
8052         Test: http/tests/local/stylesheet-and-script-load-order.html
8053
8054         * dom/Document.cpp:
8055         (WebCore::Document::removePendingSheet):
8056         * dom/Tokenizer.h:
8057         (WebCore::Tokenizer::executeScriptsWaitingForStylesheets):
8058         * html/HTMLTokenizer.cpp:
8059         (WebCore::HTMLTokenizer::HTMLTokenizer):
8060         (WebCore::HTMLTokenizer::begin):
8061         (WebCore::HTMLTokenizer::executeScriptsWaitingForStylesheets):
8062         (WebCore::HTMLTokenizer::notifyFinished):
8063         * html/HTMLTokenizer.h:
8064
8065 2007-09-08  David Smith  <catfish.man@gmail.com>
8066
8067         Reviewed by Maciej Stachowiak.
8068         
8069         http://bugs.webkit.org/show_bug.cgi?id=15148
8070         Bug 15148: Poor performance on crazy DOM raytracer
8071         
8072         Switch data structures to avoid quadratic behavior.
8073
8074         * rendering/RenderBlock.cpp:
8075         (WebCore::RenderBlock::layoutPositionedObjects): Update for ListHashSet
8076         (WebCore::RenderBlock::markPositionedObjectsForLayout): Update for ListHashSet
8077         (WebCore::RenderBlock::insertPositionedObject): Use ListHashSet to avoid expensive uniqueing
8078         (WebCore::RenderBlock::removePositionedObject): Update for ListHashSet
8079         (WebCore::RenderBlock::removePositionedObjects): Update for ListHashSet
8080         (WebCore::RenderBlock::lowestPosition): Update for ListHashSet
8081         (WebCore::RenderBlock::rightmostPosition): Update for ListHashSet
8082         (WebCore::RenderBlock::leftmostPosition): Update for ListHashSet
8083         (WebCore::RenderBlock::rightBottom): Update for ListHashSet
8084         * rendering/RenderBlock.h: Change m_positionedObjects from DeprecatedPtrList to ListHashSet
8085
8086 2007-09-09  Brady Eidson <beidson@apple.com>
8087
8088         Rubberstamped by Darin
8089
8090         pthread_main_np() is a Darwin thing, not a Mac thing
8091
8092         * loader/icon/IconDatabase.cpp:
8093         (WebCore::IconDatabase::IconDatabase):
8094
8095 2007-09-09  Holger Hans Peter Freyther  <zecke@selfish.org>
8096
8097         Build fix for Gtk+ by adding WebCore::callOnMainThread to the TemporaryLinkStubs.
8098
8099         * platform/gdk/TemporaryLinkStubs.cpp:
8100         (WebCore::callOnMainThread):
8101
8102 2007-09-08  George Staikos  <staikos@kde.org>
8103
8104         Reviewed by Olliej.
8105
8106         Separate out and implement FileSystem functions,  and stub out the
8107         icondatabase function for future implementation.
8108
8109         * WebCore.pro:
8110         * platform/qt/FileSystemQt.cpp: Added.
8111         (WebCore::fileExists):
8112         (WebCore::deleteFile):
8113         * platform/qt/TemporaryLinkStubs.cpp:
8114         * platform/qt/ThreadingQt.cpp: Added.
8115         (WebCore::callOnMainThread):
8116
8117 2007-09-08  Mark Rowe  <mrowe@apple.com>
8118
8119         Build fix for when ENABLE(ICONDATABASE) is not set.
8120
8121         * loader/icon/IconDatabaseNone.cpp:
8122         (WebCore::IconDatabase::~IconDatabase):
8123
8124 2007-09-08  Mark Rowe  <mrowe@apple.com>
8125
8126         More fixes for the Qt and Gtk builds.
8127
8128         * WebCore.pro: Update for file changes.
8129         * loader/icon/IconDatabase.cpp: Include errno.h for EDEADLK.
8130         * loader/icon/PageURLRecord.h:
8131
8132 2007-09-08  Justin Garcia  <justin.garcia@apple.com>
8133
8134         Backing my change back in without the changes to VisiblePosition::next 
8135         and previous that weren't necessary to fix the bug and were causing some
8136         layout test failures.  Most of the failures appeared to be fixes but I
8137         want more time to investigate and have to move to on to another task.
8138
8139         * editing/Selection.cpp:
8140         (WebCore::Selection::validate):
8141         * editing/visible_units.cpp:
8142         (WebCore::endOfWord):
8143
8144 2007-09-08  Brady Eidson  <beidson@apple.com>
8145
8146         Reviewed by Mark Rowe
8147
8148         Fix the _NSAutoreleaseNoPool() errors on launch - We were using NSFileManager on the secondary
8149         thread with no NSAutoreleasePool in place
8150
8151         * loader/icon/IconDatabase.cpp:
8152         (WebCore::IconDatabase::iconDatabaseSyncThread):
8153
8154 2007-09-08  Sam Weinig  <sam@webkit.org>
8155
8156         Add fix to the correct file.
8157
8158         * loader/icon/SQLDatabase.h:
8159         * loader/icon/SQLStatement.h:
8160
8161 2007-09-08  Sam Weinig  <sam@webkit.org>
8162
8163         Fix Windows build.
8164
8165         * loader/icon/SQLStatement.h: Disable boolean conversion warning.
8166
8167 2007-09-08  Brady Eidson  <beidson@apple.com>
8168
8169         Build fix for non-Mac platforms that use Icon Database
8170
8171         * loader/icon/IconDatabase.cpp:
8172         (WebCore::IconDatabase::IconDatabase): Apparently only Mac has the beauty that is pthread_main_np()
8173
8174 2007-09-08  Mark Rowe  <mrowe@apple.com>
8175
8176         Build fix.
8177
8178         * WebCore.xcodeproj/project.pbxproj: Headers used up in WebKit need to be be "private" rather than "project".
8179
8180 2007-09-08  Brady Eidson  <beidson@apple.com>
8181
8182         Reviewed by Darin
8183
8184         <rdar://problem/5434431> - Asynchronous Icon Database
8185
8186         The IconDatabase API was originally designed to be fully asynchronous - if an icon wasn't read in from disk
8187         when you asked for it, you would be notified when it was.
8188
8189         Safari 2 did writes on a background thread, but reads blocked the main thread.
8190
8191         The current WebCore implementation using SQLite attempted to get rid of the background thread by defering expensive 
8192         writes via timers, but falls short in moderate to extreme usage cases
8193
8194         Time to make the IconDatabase live up to it's fully asynchronous destiny.
8195
8196         This should -
8197         - Make the browser instantly usable while converting Safari 2 icons in the background occurs
8198         - Remedy any UI slowness/blocking when on slow network home directories
8199         - Remedy random UI slowness, pauses, and stutters do to random I/O occurring at the exact wrong time or under heavy
8200           disk usage from swapping or other apps on the system
8201         - Allow certain long-running procedures to be interruptible (Safari 2 import, reading icons in from disk when trying to quit, etc)
8202
8203         This will have a noticeable effect on current Safari 2 and Safari 3 beta browsers, including icons not appearing in bookmarks, history,
8204         or the location field the first time they're asked for, as current released Safari's don't properly listen for these async notifations.  
8205         The second time such a menu or view is brought up, the icon should be there.
8206
8207         Additionally this includes a SQLite schema change which will be a lot more efficient but will result in the loss of current SQLite icons.
8208         Converting from Safari 2 style icons will still work.
8209
8210         WebCore, welcome to multi-threadedness
8211
8212         * WebCore.exp:
8213         * WebCore.xcodeproj/project.pbxproj:
8214         * WebCore.vcproj/WebCore.vcproj:
8215
8216         * loader/DocumentLoader.cpp:
8217         (WebCore::DocumentLoader::iconLoadDecisionAvailable): Called when an Icon becomes available that was requested by this 
8218           DocumentLoader (to support the webView:didReceiveIcon: delegate call in WebKit)
8219         * loader/DocumentLoader.h:
8220
8221         * loader/FrameLoader.cpp:
8222         (WebCore::FrameLoader::iconLoadDecisionAvailable): Called from the DocumentLoaders who get notified - if the FrameLoader 
8223           ends up not caring because the WebView has transitioned to a new page, nothing occurs.  Otherwise, the FrameLoader possibly
8224           starts it Icon Loader and possibly sends the webView:didReceiveIcon: delegate call
8225         (WebCore::FrameLoader::startIconLoader): Instead of "Yes, load the icon now" or "No, don't load it" there is a third possibility -
8226           "You might be asked to load your icon later."  Add supporting logic for receiving this state, and being called a second time
8227           when the load decision is finally available.
8228         * loader/FrameLoader.h:
8229
8230         * loader/FrameLoaderClient.h: Added "registerForIconNotification" which is a way to tell WebViews "The icon you are interested in might
8231           become available via the generic WebIconDatabaseDidAddIconNotification instead of a targeted delegate call"
8232           A WebView can then receive the generic notification and pass on it's own targeted delegate call.
8233
8234         * loader/icon/IconDataCache.cpp: Removed.
8235         * loader/icon/IconDataCache.h: Removed.
8236
8237         * loader/icon/IconDatabase.cpp:
8238         (WebCore::urlForLogging): Cut a URL down in length for sane logging and debugging
8239         (WebCore::defaultClient): Return the default, empty IconDatabaseClient incase the API doesn't set one.
8240
8241         Following block of methods are for the Main thread's usage -
8242         (WebCore::IconDatabase::setClient):
8243         (WebCore::makeAllDirectories): Small optimization that checks to see if the entire path exists already, and doesn't try to loop
8244           through each patch component if the full path is already present
8245         (WebCore::IconDatabase::open): Makes all directories to the target path and kicks off the background thread - nothing more.
8246         (WebCore::IconDatabase::close): Signals the thread to quit and waits for it to do so
8247         (WebCore::IconDatabase::removeAllIcons): Purge the icon database
8248         (WebCore::IconDatabase::iconForPageURL):
8249         (WebCore::IconDatabase::readIconForPageURLFromDisk):
8250         (WebCore::IconDatabase::iconURLForPageURL):
8251         (WebCore::IconDatabase::defaultIcon):
8252         (WebCore::IconDatabase::retainIconForPageURL):
8253         (WebCore::IconDatabase::releaseIconForPageURL):
8254         (WebCore::IconDatabase::setIconDataForIconURL):
8255         (WebCore::IconDatabase::setIconURLForPageURL):
8256         (WebCore::IconDatabase::loadDecisionForIconURL): Determine if an icon loader should load now.  If the decision is "maybe later", then
8257           mark the DocumentLoader to be notified later when the final decision is available.
8258         (WebCore::IconDatabase::iconDataKnownForIconURL): Determine if the actual image data has been read from disk (or set from the loader) for 
8259           icon URL in question
8260         (WebCore::IconDatabase::setEnabled):
8261         (WebCore::IconDatabase::isEnabled):
8262         (WebCore::IconDatabase::setPrivateBrowsingEnabled):
8263         (WebCore::IconDatabase::isPrivateBrowsingEnabled):
8264         (WebCore::IconDatabase::delayDatabaseCleanup): Restore this method from a year ago, as asynchronous pruning of icons can now occur on a 
8265           background thread.
8266         (WebCore::IconDatabase::allowDatabaseCleanup):
8267         (WebCore::IconDatabase::checkIntegrityBeforeOpening):
8268         (WebCore::IconDatabase::pageURLMappingCount):
8269         (WebCore::IconDatabase::retainedPageURLCount):
8270         (WebCore::IconDatabase::iconRecordCount):
8271         (WebCore::IconDatabase::iconRecordCountWithData):
8272         (WebCore::IconDatabase::IconDatabase):
8273         (WebCore::IconDatabase::~IconDatabase):
8274         (WebCore::IconDatabase::notifyPendingLoadDecisions): Tell all the registered DocumentLoaders "Hey, we've read in all URL mappings from disk,
8275           so check to see if you are interested in any of them"
8276         (WebCore::IconDatabase::notifyPendingLoadDecisionsInternal):
8277         (WebCore::IconDatabase::wakeSyncThread): Wake the sync thread, if it is idle
8278         (WebCore::IconDatabase::scheduleOrDeferSyncTimer): Even though we're on a background thread, we still defer writing out to disk during
8279           periods of high activity
8280         (WebCore::IconDatabase::syncTimerFired): Call wakeSyncThread()
8281
8282         Following block of methods may be used by either thread -
8283         (WebCore::IconDatabase::isOpen):
8284         (WebCore::IconDatabase::databasePath):
8285         (WebCore::IconDatabase::defaultDatabaseFilename):
8286         (WebCore::IconDatabase::getOrCreateIconRecord):
8287         (WebCore::IconDatabase::getOrCreatePageURLRecord):
8288
8289         Following block of methods are used by the secondary thread only -
8290         (WebCore::IconDatabase::importIconURLForPageURL): For the Safari 2 import procedure - write a URL mapping directly out to disk
8291         (WebCore::IconDatabase::importIconDataForIconURL): For the Safari 2 import procedure - write an Icon directly out to disk
8292         (WebCore::IconDatabase::shouldStopThreadActivity): To check and see if the thread should stop what it is doing now to do something
8293           more important (such as quit, or delete all icons)
8294         (WebCore::IconDatabase::iconDatabaseSyncThreadStart):
8295         (WebCore::IconDatabase::iconDatabaseSyncThread): Entry point for the background thread
8296         (WebCore::databaseVersionNumber):
8297         (WebCore::isValidDatabase):
8298         (WebCore::createDatabaseTables):
8299         (WebCore::IconDatabase::performOpenInitialization): Open and validate the SQLite database, making sure it's schema jives with what
8300           is expected
8301         (WebCore::IconDatabase::checkIntegrity):
8302         (WebCore::IconDatabase::performURLImport): Import all the Page URL -> Icon URL mappings from the database.  Done "1st thing" on startup,
8303           this is necessary to be able to give the loader decisions about whether or not it should load icons from the network
8304         (WebCore::IconDatabase::syncThreadMainLoop): Main loop - sleeps until woken up, then does a read cycle and a write cycle until both cycles
8305           do no work - then it goes back to sleep.
8306         (WebCore::IconDatabase::readFromDatabase): Reads icons from the database that clients are waiting on
8307         (WebCore::IconDatabase::writeToDatabase): Writes any changes page -> icon url mappings to disk, as well as any new image data that has 
8308           been received from the loader
8309         (WebCore::IconDatabase::pruneUnretainedIcons): Done only once, and only after the first write to the database, this procedure removes all
8310           icons and page URLs from disk that haven't been retained by any client.  Note that the prune can be delayed by utilizing delayDatabaseCleanup()
8311         (WebCore::IconDatabase::checkForDanglingPageURLs): Usually part of the prune procedure, prunes any pages who point to icons that no longer exist 
8312           in the database
8313         (WebCore::IconDatabase::removeAllIconsOnThread): Completely purge both the on-disk and in memory records of all icons
8314         (WebCore::IconDatabase::deleteAllPreparedStatements): Part of removeAllIcons and the thread cleanup procedure
8315         (WebCore::IconDatabase::cleanupSyncThread): Write out any last remaining writes to disk, close the database, and then end the thread
8316         (WebCore::IconDatabase::imported): Checks the DB to see if the Safari 2 import has occured
8317         (WebCore::IconDatabase::setImported): Sets the "Safari 2 imported" flag
8318         (WebCore::readySQLStatement):
8319         (WebCore::IconDatabase::setIconURLForPageURLInSQLDatabase): This and the following "SQLDatabase" suffixed methods are pretty self explanatory
8320         (WebCore::IconDatabase::setIconIDForPageURLInSQLDatabase):
8321         (WebCore::IconDatabase::removePageURLFromSQLDatabase):
8322         (WebCore::IconDatabase::getIconIDForIconURLFromSQLDatabase):
8323         (WebCore::IconDatabase::addIconURLToSQLDatabase):
8324         (WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
8325         (WebCore::IconDatabase::removeIconFromSQLDatabase):
8326         (WebCore::IconDatabase::writeIconSnapshotToSQLDatabase):
8327         * loader/icon/IconDatabase.h:
8328
8329         * loader/icon/IconDatabaseClient.h: Added.
8330         (WebCore::IconDatabaseClient::~IconDatabaseClient):
8331         (WebCore::IconDatabaseClient::performImport): Perform the Safari 2 import, implemented by WebKit
8332         (WebCore::IconDatabaseClient::dispatchDidRemoveAllIcons): Send the API notification
8333         (WebCore::IconDatabaseClient::dispatchDidAddIconForPageURL): Ditto
8334
8335         * loader/icon/IconDatabaseNone.cpp: Best attempt to keep non icon-DB platforms building
8336         (WebCore::IconDatabase::defaultDatabaseFilename):
8337         (WebCore::IconDatabase::readIconForPageURLFromDisk):
8338         (WebCore::IconDatabase::loadDecisionForIconURL):
8339         (WebCore::IconDatabase::iconDataKnownForIconURL):
8340         (WebCore::IconDatabase::setIconURLForPageURL):
8341         (WebCore::IconDatabase::isEnabled):
8342         (WebCore::IconDatabase::delayDatabaseCleanup):
8343         (WebCore::IconDatabase::allowDatabaseCleanup):
8344         (WebCore::IconDatabase::setClient):
8345
8346         * loader/icon/IconRecord.cpp: Added.
8347         (WebCore::IconRecord::IconRecord): IconRecord used to be "IconDataCache" - it is merely a container for the url, timestamp, and image for a site icon.
8348           It is Shared, and therefore ref counted - PageURLRecords are the owning containers.  This is a tricky way to track how many page urls are retaining 
8349           an IconRecord and therefore tracking when we should try to get rid of one.
8350         (WebCore::IconRecord::~IconRecord):
8351         (WebCore::IconRecord::image):
8352         (WebCore::IconRecord::setImageData):
8353         (WebCore::IconRecord::loadImageFromResource):
8354         (WebCore::IconRecord::imageDataStatus): Return whether the image data hasn't been read yet, exists in memory, or is absent (site with no icon)
8355         (WebCore::IconRecord::snapshot): Returns a snapshot of the icon's data - url, timestamp, and image data - to be written to disk
8356         * loader/icon/IconRecord.h: Added.
8357         (WebCore::IconSnapshot::IconSnapshot):
8358         (WebCore::IconRecord::getTimestamp):
8359         (WebCore::IconRecord::setTimestamp):
8360         (WebCore::IconRecord::iconURL):
8361         (WebCore::IconRecord::retainingPageURLs):
8362
8363         * loader/icon/PageURLRecord.cpp: Added.
8364         (WebCore::PageURLRecord::PageURLRecord): PageURLRecord is fundamentally a pairing of a Page URL to an Icon.  It has manual ref counting for the sake
8365           of "retainIconForPageURL" and "releaseIconForPageURL", and can provide a quick snapshot of it's Page URL -> Icon URL mapping for writing to
8366           the database
8367         (WebCore::PageURLRecord::setIconRecord):
8368         (WebCore::PageURLRecord::snapshot):
8369         * loader/icon/PageURLRecord.h: Added.
8370         (WebCore::PageURLSnapshot::PageURLSnapshot):
8371         (WebCore::PageURLRecord::url):
8372         (WebCore::PageURLRecord::PageURLRecord::iconRecord):
8373         (WebCore::PageURLRecord::retain):
8374         (WebCore::PageURLRecord::release):
8375         (WebCore::PageURLRecord::retainCount):
8376
8377         * platform/SharedBuffer.cpp:
8378         (WebCore::SharedBuffer::copy): Added a deep copy method for the purposes of handing icon data across the thread boundary into the icon database
8379         * platform/SharedBuffer.h:
8380
8381         * platform/graphics/svg/SVGImageEmptyClients.h:
8382         (WebCore::SVGEmptyFrameLoaderClient::registerForIconNotification):
8383
8384         * platform/win/TemporaryLinkStubs.cpp:
8385         (WebCore::callOnMainThread): Only other IconDatabase utilizing platform - keep their build going
8386
8387 2007-09-07  David Kilzer  <ddkilzer@apple.com>
8388
8389         Reviewed by Timothy Hatcher.
8390
8391         Housekeeping.  No test required.
8392
8393         * bindings/objc/WebScriptObjectInternal.h: Removed unused file.
8394         * bindings/objc/WebScriptObjectPrivate.h: Updated copyright statement.
8395
8396 2007-09-07  Justin Garcia  <justin.garcia@apple.com>
8397         
8398         Rolling out my changes from r25421 while I investigate the layout test failures
8399         they caused.
8400         
8401         * editing/Selection.cpp:
8402         (WebCore::Selection::validate):
8403         * editing/VisiblePosition.cpp:
8404         (WebCore::VisiblePosition::next):
8405         (WebCore::VisiblePosition::previous):
8406         (WebCore::VisiblePosition::lastEditablePositionAtOrBefore):
8407         (WebCore::VisiblePosition::firstEditablePositionAtOrAfter):
8408         * editing/VisiblePosition.h:
8409         * editing/visible_units.cpp:
8410         (WebCore::endOfWord):
8411         (WebCore::previousWordPosition):
8412         (WebCore::nextWordPosition):
8413         (WebCore::startOfLine):
8414         (WebCore::endOfLine):
8415         (WebCore::previousSentencePosition):
8416         (WebCore::nextSentencePosition):
8417
8418 2007-09-05  Geoffrey Garen  <ggaren@apple.com>
8419
8420         Reviewed by Darin Adler, Maciej Stachowiak, Mark Rowe, Tim Hatcher.
8421         
8422         Fixed <rdar://problem/5326009> Make non-browser WebKit clients have no 
8423         memory cache, or a very tiny one
8424
8425         Added a client callback to notify WebKit when the first navigation has
8426         taken place. "Navigation" here means a transition from one page to 
8427         another that ends up in the back/forward list.
8428         
8429         WebKit Mac uses this notification to grow its cache model under certain
8430         circumstances.
8431         
8432         * loader/FrameLoader.cpp:
8433         (WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
8434         * loader/FrameLoaderClient.h:
8435
8436         * platform/graphics/svg/SVGImageEmptyClients.h:
8437         (WebCore::SVGEmptyFrameLoaderClient::didPerformFirstNavigation): Ah, 
8438         SVGEmptyFrameLoaderClient, my old friend. 
8439
8440 2007-09-07  Adele Peterson  <adele@apple.com>
8441
8442         Reviewed by Dave Harrison.
8443
8444         Fix for <rdar://problem/5428427> Wrong characters are re-converted after doing reconversion with Kotoeri
8445
8446         Revert change for<rdar://problem/5279521> and add nil checks for the result of TextIterator::rangeFromLocationAndLength
8447         TextIterator::exitNode shouldn't require the m_lastTextNode to be true, but we can't change that without making the logic in _web_attributedStringFromRange match.
8448         We'll get that for free when we switch to use TextIterator in _web_attributedStringFromRange.
8449
8450         * editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::applyBlockStyle): Added nil checks.
8451         * editing/IndentOutdentCommand.cpp: (WebCore::IndentOutdentCommand::indentRegion): ditto.
8452         * editing/TextIterator.cpp: (WebCore::TextIterator::exitNode): Re-added check for m_lastTextNode before emitting newline.
8453
8454 2007-09-07  Ada Chan  <adachan@apple.com>
8455
8456         <rdar://problem/5395928> Need to be able to handle context menu item selection by index
8457         
8458         Reviewed by Beth.
8459
8460         * platform/ContextMenu.h: Added method to retrieve context menu item by index
8461         * platform/win/ContextMenuWin.cpp:
8462         (WebCore::ContextMenu::ContextMenu): call setPlatformDescription() since that will handle
8463         adding the MNS_NOTIFYBYPOS style to the context menu.
8464         (WebCore::contextMenuItemByIdOrPosition): helper method so we don't have to duplicate code
8465         between itemWithAction() and itemAtIndex().
8466         (WebCore::ContextMenu::itemWithAction):
8467         (WebCore::ContextMenu::itemAtIndex):
8468         (WebCore::ContextMenu::setPlatformDescription): add MNS_NOTIFYBYPOS style to the context menu
8469         so we will get notified by menu position through WM_MENUCOMMAND when the item is selected.
8470
8471 2007-09-07  Justin Garcia  <justin.garcia@apple.com>
8472
8473         Reviewed by Darin.
8474         
8475         <rdar://problem/5057506> Double-clicking after ToDo content doesn't select the paragraph break
8476         
8477         * editing/Selection.cpp:
8478         (WebCore::Selection::validate):
8479         Moved the code that moves across a paragraph boundary
8480         when expanding selections by word granularity from
8481         endOfWord to here.
8482         In the word and paragraph granularity cases, if the 
8483         end of the selection is at the end of the last paragraph 
8484         in the last cell of a block table, expand it so that 
8485         it ends at the start of the paragraph after the table, 
8486         instead of just after the table, so that ToDo content 
8487         gets the same double/tripled click behavior that normal 
8488         paragraphs get (added two testcases).
8489         When expanding the selection to include paragraph
8490         breaks, pass VisiblePosition::next true so that it
8491         doesn't change editability.
8492         * editing/VisiblePosition.cpp:
8493         (WebCore::VisiblePosition::next): Renamed the bool because it's now also
8494         used to keep non-editable positions non-editable.
8495         (WebCore::VisiblePosition::previous): Ditto.
8496         (WebCore::VisiblePosition::lastPositionWithSameEditabilityAtOrBefore):
8497         Renamed this function and made it also work with non-editable positions.
8498         (WebCore::VisiblePosition::firstPositionWithSameEditabilityAtOrAfter):
8499         Ditto.
8500         * editing/VisiblePosition.h:
8501         * editing/visible_units.cpp:
8502         (WebCore::endOfWord): Called the renamed function.
8503         (WebCore::previousWordPosition): Ditto.
8504         (WebCore::nextWordPosition): Ditto.
8505         (WebCore::startOfLine): Ditto.
8506         (WebCore::endOfLine): Ditto.
8507         (WebCore::previousSentencePosition): Ditto.
8508         (WebCore::nextSentencePosition): Ditto.
8509
8510 2007-09-07  Brady Eidson  <beidson@apple.com>
8511
8512         Reviewed by Sam
8513
8514         <rdar://problem/5089241> - ASSERT and other funky effects in IconLoader with large 404 pages
8515
8516         There were two problems:
8517         1 - I originally didn't expect SubresourceLoader to keep pulling in data after it received a 404 response,
8518             but if the server sends back a complex 404 page, the loader did just that.  That could result in the 
8519             IconLoader "finishing" twice
8520         2 - In this case, the long messy 404 page would be committed to the database as image data.  This would 
8521             result in wasted space on disk, wasted space in RAM, and wasting processor time trying to parse 50k+
8522             of HTML as image data
8523
8524         Fix is two parts - 1, monitor the "m_loadIsInProgress" flag and 2, make ::finishLoading() take an actual 
8525         SharedBuffer argument that is what should be committed to the database so the ResourceHandle is unnecessary
8526
8527         * loader/icon/IconLoader.cpp:
8528         (WebCore::IconLoader::didReceiveResponse): If the response is not valid, commit null data 
8529         (WebCore::IconLoader::didFail): If we've already finished loading once (the 404 response), don't
8530           finish again!
8531         (WebCore::IconLoader::didFinishLoading): Ditto
8532         (WebCore::IconLoader::finishLoading): Take a SharedBuffer argumnt as the actual data to commit
8533         * loader/icon/IconLoader.h: Add a SharedBuffer arg to ::finishLoading()
8534
8535 2007-09-07  Brady Eidson  <beidson@apple.com>
8536
8537         Reviewed by Darin
8538
8539         Inline the in-header definitions for non-Mac platforms
8540
8541         * platform/AutodrainedPool.h:
8542         (WebCore::AutodrainedPool::AutodrainedPool):
8543         (WebCore::AutodrainedPool::~AutodrainedPool):
8544         (WebCore::AutodrainedPool::cycle):
8545
8546 2007-09-07  Brady Eidson  <beidson@apple.com>
8547
8548         Reviewed by Darin
8549
8550         Add some AutoreleasePool and Threading utilities in preparation for the multi-threaded
8551         fix for <rdar://problem/5434431>
8552
8553         AutodrainedPool wraps an NSAutoreleasePool and tracks a "cycle" count.  This allows clients
8554         in WebCore to simply call ::cycle() and after a preset number of iterations the pool will drain
8555         and recreate the underlying NSAutoreleasePool
8556    
8557         Threading utilities include C++ wrappers for pthread mutexes and conditions, as well as a generic
8558         "callOnMainThread()" function for any non-main thread to use.
8559
8560         * platform/AutodrainedPool.h: Added.  
8561         (WebCore::AutodrainedPool::AutodrainedPool): Empty implementations for all non-mac platforms
8562         (WebCore::AutodrainedPool::~AutodrainedPool): ditto
8563         (WebCore::AutodrainedPool::cycle): ditto
8564         * platform/mac/AutodrainedPool.mm: Added.
8565         (WebCore::AutodrainedPool::AutodrainedPool): 
8566         (WebCore::AutodrainedPool::~AutodrainedPool):
8567         (WebCore::AutodrainedPool::cycle): Keep track of number of cycles, and drain/recreate the pool if the
8568           cycle limit is hit
8569
8570         * platform/Threading.h: Added.
8571         (WebCore::Mutex::Mutex): C++ wrapper for pthread_mutex
8572         (WebCore::Mutex::~Mutex):
8573         (WebCore::Mutex::lock):
8574         (WebCore::Mutex::tryLock):
8575         (WebCore::Mutex::unlock):
8576         (WebCore::MutexLocker::MutexLocker): Handles automatically locking/unlocking a Mutex (for early returns
8577           from a function, for example)
8578         (WebCore::MutexLocker::~MutexLocker):
8579         (WebCore::ThreadCondition::ThreadCondition): C++ wrapper for pthread_condition
8580         (WebCore::ThreadCondition::~ThreadCondition):
8581         (WebCore::ThreadCondition::wait):
8582         (WebCore::ThreadCondition::signal):
8583         (WebCore::ThreadCondition::broadcast):
8584         * platform/mac/Threading.mm: Added.
8585         (-[WebCoreFunctionWrapper initWithFunction:]): Obj-C implementation of "callOnMainThread"
8586         (-[WebCoreFunctionWrapper _call]):
8587         (WebCore::callOnMainThread):
8588
8589 2007-09-07  George Staikos  <staikos@kde.org>
8590
8591         Fix typo.
8592
8593         * loader/ProgressTracker.h:
8594         (WebCore::ProgressTracker::totalPageAndResourceBytesToLoad):
8595
8596 2007-09-07  Qing Zhao  <qing@staikos.net>
8597
8598         Reviewed by Anders and George.
8599
8600         Add accessors for these two variables.
8601
8602         * loader/ProgressTracker.h:
8603         (WebCore::ProgressTracker::totalPageAndResourseBytesToLoad):
8604         (WebCore::ProgressTracker::totalBytesReceived):
8605
8606 2007-09-06  Tristan O'Tierney  <tristan@apple.com>
8607
8608         Reviewed by Maciej Stachowiak.
8609         
8610         <rdar://problem/5333496> Back button stopped working on sfgate.com (14957)
8611         
8612         This fix is specifically targted to address sfgate.com and reuters.com with minimal
8613         impact to other areas of the frameloader.  It does not cause any regression tests to fail.
8614         I've added two layout tests: One to detect this particular bug, and one to address
8615         a secondary issue: if an iframe navigation occurs during onload by a timeout an
8616         additional history item is added, similarly to firefox.  We tried to match firefox
8617         more than IE with this fix but did gain a little bit of IE compatability.
8618
8619         Tests: http/tests/navigation/onload-navigation-iframe-timeout.html
8620                http/tests/navigation/onload-navigation-iframe.html
8621
8622         * dom/Document.h:
8623         (WebCore::Document::processingLoadEvent):
8624         Return the m_processingLoadEvent boolean so FrameLoader knows
8625         that the document is in the middle of calling <body onload>
8626         
8627         * html/HTMLFrameOwnerElement.cpp:
8628         (WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement):
8629         * html/HTMLFrameOwnerElement.h:
8630         (WebCore::HTMLFrameOwnerElement::createdByParser):
8631         (WebCore::HTMLFrameOwnerElement::setCreatedByParser):
8632         Added support for a new member variable of frame elements: m_createdByParser.
8633         This lets us specifically target the fix to only iframes created via JS
8634         and not in-document.
8635         
8636         * loader/FrameLoader.cpp:
8637         (WebCore::FrameLoader::FrameLoader):
8638         Initialize m_navigationDuringLoad to false
8639         
8640         (WebCore::FrameLoader::provisionalLoadStarted):
8641         Determine if the load we're about to start is occuring during
8642         an onload.
8643         
8644         (WebCore::FrameLoader::updateHistoryForStandardLoad):
8645         If the current frameloader is for a child frame, and the navigation is occuring
8646         during an onload update the current history item rather than adding a new one.
8647         
8648         * loader/FrameLoader.h:
8649         Added a new member variable, m_navigationDuringLoad to track
8650         the navigation status during the on load, rather than trying to determine
8651         the status after (which is nearly impossible due to a new runloop spin).
8652
8653 2007-09-06  David Kilzer  <ddkilzer@apple.com>
8654
8655         Reviewed by Darin.
8656
8657         The implementation of BackForwardList::clearPageCache() was removed in r21793.
8658         It's now safe to remove it from the header.
8659
8660         * history/BackForwardList.h: Removed clearPageCache().
8661
8662 2007-09-06  Anders Carlsson  <andersca@apple.com>
8663
8664         Reviewed by Ada.
8665
8666         <rdar://problem/5457844>
8667         Crash when using mouse wheel with plug-ins disabled.
8668
8669         Null check the widget.
8670
8671         * page/EventHandler.cpp:
8672         (WebCore::EventHandler::handleWheelEvent):
8673
8674 2007-09-06  Anders Carlsson  <andersca@apple.com>
8675
8676         Reviewed by Mitz.
8677
8678         Small tweak.
8679         
8680         * plugins/win/PluginStreamWin.cpp:
8681         (WebCore::PluginStreamWin::startStream):
8682
8683 2007-09-06  Anders Carlsson  <andersca@apple.com>
8684
8685         Reviewed by Adam and Steve.
8686
8687         <rdar://problem/5459321>
8688         ADOBE: Safari 3 on Windows is passing bogus values in stream->headers in NPP_NewStream, causing Flash Player to crash.
8689         
8690         Serialize the headers into a stream and pass it to NPP_NewStream in stream->headers.
8691         
8692         * plugins/win/PluginStreamWin.cpp:
8693         (WebCore::PluginStreamWin::startStream):
8694         * plugins/win/PluginStreamWin.h:
8695
8696 2007-09-06  Darin Adler  <darin@apple.com>
8697
8698         Reviewed by Hyatt.
8699
8700         - fix http://bugs.webkit.org/show_bug.cgi?id=15153
8701           REGRESSION: Assertion failure in FrameView::scheduleRelayout() (m_frame->view() == this)
8702
8703         Back out the willRemove() part of the previous patch.
8704         It was incorrect and not needed to fix the bug anyway.
8705
8706         * dom/Document.cpp: (WebCore::Document::detach): Remove willRemove().
8707
8708         * loader/FrameLoader.cpp: (WebCore::FrameLoader::clear): Put the willRemove() call
8709         back here where it was originally before the previous fix.
8710
8711         * history/CachedPage.cpp: (WebCore::CachedPage::clear):
8712         * page/Frame.cpp:
8713         (WebCore::Frame::setView):
8714         (WebCore::Frame::setDocument):
8715         Added FIXMEs about the fact that we call detach() on the document but not willRemove().
8716
8717 2007-09-05  Timothy Hatcher  <timothy@apple.com>
8718
8719         Reviewed by Darin.
8720
8721         Changed the blocked exception log message to match AppKit's blocked exception message.
8722
8723         * platform/mac/BlockExceptions.mm:
8724         (ReportBlockedObjCException):
8725
8726 2007-09-06  Darin Adler  <darin@apple.com>
8727
8728         Reviewed by Hyatt.
8729
8730         - <rdar://problem/5457865> REGRESSION (9A527): Safari crashes when opening a page
8731           that immediately redirects to a PDF
8732
8733         I don't know how to make an automated test that trips over this.
8734
8735         The immediate cause of this regression was making a back/forward list entry in
8736         this case. Earlier, the quick redirect would not results in a separate entry.
8737         That's possibly a bug too, but it's better to fix the crash first.
8738
8739         The page cache was putting the document into a strange state: Still attached but
8740         with the renderer set to 0. There was no good reason to do this, so got rid of it.
8741         Moved the responsibility to the caller of not calling detach() when moving into
8742         the page cache. This is more of a frame loader thing than a document thing.
8743
8744         * dom/Document.cpp: (WebCore::Document::detach): Added assertions that this is
8745         only called on a document that's attached and not in the page cache. Also moved
8746         the call to willRemove in here, so that callers can't make the mistake of not
8747         calling that function. Removed the incorrectly-positioned code that made this
8748         function do less if it was called on a document in the page cache.
8749
8750         * history/CachedPage.cpp: (WebCore::CachedPage::clear): Removed the code to handle
8751         a document with a renderer of 0. There was no need to put the document into this
8752         state. Any document in the page cache will always be "attached".
8753
8754         * loader/FrameLoader.cpp: (WebCore::FrameLoader::clear): Added a check to prevent
8755         from calling an unnecessary cancelParsing() on a document that's in the page cache
8756         and guard the call to detach() with a check of attached(), like all other calls to
8757         detach() on DOM objects.
8758
8759         * page/Frame.cpp:
8760         (WebCore::Frame::setView): Added a missing check of attached(), like all other
8761         calls to detach() on DOM objects. Also added code to not call detach() on the
8762         document when it's in the page cache.
8763         (WebCore::Frame::setDocument): This call site already had the attached() check,
8764         but was missing the page cache check.
8765
8766 2007-09-05  David Harrison  <harrison@apple.com>
8767
8768         Reviewed by Darin.
8769
8770         Follow up on my fix for <rdar://problem/5306171>.
8771         My first patch (r25373) broke svg/custom/stroke-width-click.svg.
8772
8773         * editing/TextIterator.cpp:
8774         (WebCore::TextIterator::shouldRepresentNodeOffsetZero):
8775         Add currPos.isNotNull() check because positions in non-html content (like svg)
8776         do not have visible positions, and we don't want to emit for them either.
8777
8778 2007-09-06  Mitz Pettel  <mitz@webkit.org>
8779
8780         Reviewed by Adam Roben.
8781
8782         - fix http://bugs.webkit.org/show_bug.cgi?id=14685
8783           <rdar://problem/5349755> text-align affects <select> button but not its drop-down menu
8784
8785         * platform/PlatformString.h:
8786         (WebCore::String::defaultWritingDirection):
8787         * platform/StringImpl.cpp:
8788         (WebCore::StringImpl::defaultWritingDirection): Moved textDirectionForParagraph()
8789         from RenderMenuList.cpp here.
8790         * platform/StringImpl.h:
8791         * platform/win/PopupMenuWin.cpp:
8792         (WebCore::PopupMenu::itemWritingDirectionIsNatural): Changed to return 'true'.
8793         (WebCore::PopupMenu::paint): Changed to use natural directionality for menu
8794         items.
8795         * rendering/RenderMenuList.cpp:
8796         (WebCore::RenderMenuList::adjustInnerStyle): Use defaultWritingDirection.
8797
8798 2007-09-06  Maciej Stachowiak  <mjs@apple.com>
8799
8800         Reviewed by Oliver Hunt.
8801
8802         - fixed <rdar://problem/5455457> REGRESSION (9A527-9A535): Colloquy crash on launch in WebCoreScriptDebugger initWithDelegate (with announce.js plug-in installed)
8803
8804         * page/mac/FrameMac.mm:
8805         (WebCore::Frame::windowScriptObject): Ensure that -[WebView
8806         windowScriptObject] and -[WebFrame windowObject] return null until
8807         the windowScriptObjectAvailable: delegate method is sent.
8808
8809 2007-09-05  David Harrison  <harrison@apple.com>
8810
8811         Reviewed by Kevin Decker.
8812
8813         <rdar://problem/5306171> Mail: The first return after an attachment in multipart/mixed message is lost
8814
8815         Test added: editing/selection/toString-1.html
8816         
8817         Source changes:
8818         * editing/TextIterator.cpp:
8819         (WebCore::TextIterator::shouldRepresentNodeOffsetZero):
8820         - Remove outdated and erroneous check for m_lastTextNode.
8821         - Fix VisiblePosition check to look for line diff. Simple position diff gives the
8822         wrong answer when the start is table/0 and the current is the first position
8823         inside the content of the table.
8824
8825 2007-09-04  Brett Wilson  <brettw@chromium.org>
8826
8827         Reviewed by Maciej Stachowiak.
8828
8829         http://bugs.webkit.org/show_bug.cgi?id=15072
8830         Bug 15072: Fix ImageDecoder.cpp to not copy incoming data
8831
8832         Change ImageDecoder::setData to take a SharedBuffer*.
8833
8834         * platform/graphics/cairo/ImageSourceCairo.cpp:
8835         (WebCore::ImageSource::setData):
8836         * platform/image-decoders/ImageDecoder.h:
8837         (WebCore::RGBA32Buffer::bytes):
8838         (WebCore::RGBA32Buffer::height):
8839         (WebCore::ImageDecoder::setData):
8840         * platform/image-decoders/gif/GIFImageDecoder.cpp:
8841         (WebCore::GIFImageDecoder::setData):
8842         (WebCore::GIFImageDecoder::frameCount):
8843         (WebCore::GIFImageDecoder::decode):
8844         (WebCore::GIFImageDecoder::decodingHalted):
8845         (WebCore::GIFImageDecoder::initFrameBuffer):
8846         * platform/image-decoders/gif/GIFImageDecoder.h:
8847         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
8848         (WebCore::JPEGImageDecoder::setData):
8849         (WebCore::JPEGImageDecoder::decode):
8850         * platform/image-decoders/jpeg/JPEGImageDecoder.h:
8851         * platform/image-decoders/png/PNGImageDecoder.cpp:
8852         (WebCore::PNGImageDecoder::setData):
8853         (WebCore::PNGImageDecoder::decode):
8854         (WebCore::PNGImageDecoder::headerAvailable):
8855         (WebCore::PNGImageDecoder::rowAvailable):
8856         * platform/image-decoders/png/PNGImageDecoder.h:
8857
8858 2007-09-04  David Hyatt  <hyatt@apple.com>
8859
8860         Fix for <rdar://problem/5271213>, resizing iChat window is slower than in
8861         Tiger. This patch implements a fast scaling mode that can be used by
8862         WebViews, e.g., during window resizing.
8863
8864         Reviewed by John Sullivan
8865
8866         * WebCore.exp:
8867         * WebCore.xcodeproj/project.pbxproj:
8868         * page/Frame.cpp:
8869         (WebCore::FramePrivate::FramePrivate):
8870         * page/Page.cpp:
8871         (WebCore::Page::Page):
8872         (WebCore::Page::inLowQualityImageInterpolationMode):
8873         (WebCore::Page::setInLowQualityImageInterpolationMode):
8874         * page/Page.h:
8875         * platform/graphics/GraphicsContext.cpp:
8876         (WebCore::GraphicsContext::drawImage):
8877         * platform/graphics/GraphicsContext.h:
8878         (WebCore::GraphicsContext::setUseLowQualityImageInterpolation):
8879         (WebCore::GraphicsContext::useLowQualityImageInterpolation):
8880         * platform/graphics/cg/GraphicsContextCG.cpp:
8881         (WebCore::GraphicsContext::setUseLowQualityImageInterpolation):
8882         (WebCore::GraphicsContext::useLowQualityImageInterpolation):
8883         * rendering/RenderImage.cpp:
8884         (WebCore::RenderImage::paint):
8885
8886 2007-09-04  Brady Eidson  <beidson@apple.com>
8887
8888         Reviewed by Adam
8889
8890         Some SQLite tweaks for debugging
8891         -In debug builds, track the thread that opened the database and enforce that any statements
8892          that operate on the SQLDatabase do so from the thread that opened it
8893         -Track whether or not a transaction is in progress for the SQLDatabase to find cases where
8894          someone opens a new transaction while there is still one outstanding (a SQLite logic error)
8895
8896         * loader/icon/SQLDatabase.cpp:
8897         (WebCore::SQLDatabase::SQLDatabase): 
8898         (WebCore::SQLDatabase::open): Track the opening thread.  Also, return false if the DB failed to
8899           open instead of trying to run a PRAGMA on it!
8900         (WebCore::SQLDatabase::close): Reset the opening thread
8901         * loader/icon/SQLDatabase.h:
8902         (WebCore::SQLDatabase::transactionInProgress): 
8903         (WebCore::SQLDatabase::sqlite3Handle): For access to the raw sqlite3* handle to do a thread
8904           safety check
8905
8906         * loader/icon/SQLStatement.cpp:
8907         (WebCore::SQLStatement::prepare): Use the new sqlite3Handle accessor
8908         (WebCore::SQLStatement::step): Ditto
8909
8910         * loader/icon/SQLTransaction.cpp:
8911         (WebCore::SQLTransaction::SQLTransaction): Removed the c'tor form that could automatically
8912           begin the transaction - never used and shouldn't be in practice!
8913         (WebCore::SQLTransaction::begin): Maintain the transaction-in-progress flag on the DB
8914         (WebCore::SQLTransaction::commit): Ditto
8915         (WebCore::SQLTransaction::rollback): Ditto
8916         * loader/icon/SQLTransaction.h:
8917
8918 2007-09-04  David Harrison  <harrison@apple.com>
8919
8920         Reviewed by Maciej and John.
8921
8922         <rdar://problem/5452675> CrashTracer: [USER] 10 crashes in Mail at com.apple.WebCore: WebCore::Node::nodeIndex const + 6
8923
8924         * editing/InsertParagraphSeparatorCommand.cpp:
8925         (WebCore::InsertParagraphSeparatorCommand::doApply):
8926         Adjust pos to pos.downstream() after the refNode is calculated, but before the insertion. Doing it earlier
8927         undid the logic of positionAvoidingSpecialElementBoundary(). The downstream is still needed just to set the
8928         ending selection.
8929
8930 2007-09-04  Antti Koivisto  <antti@apple.com>
8931
8932         Reviewed by Maciej.
8933         
8934         Fix <rdar://problem/5452112>
8935         REGRESSION: Initially focused textfield on www.mac.com login page has no insertion point, and doesn't accept typed characters
8936         
8937         Use updateLayoutIgnorePendingStylesheets() instead of updateLayout(). We need to have rendering to set input focus.
8938
8939         Test: fast/forms/focus-style-pending.html
8940
8941         * dom/Element.cpp:
8942         (WebCore::Element::focus):
8943
8944 2007-09-04  Girish Ramakrishnan  <girish@trolltech.com>
8945
8946         Reviewed by Simon.
8947
8948         Fixed Qt build on Windows
8949
8950         * html/HTMLFormElement.cpp:
8951         (WebCore::pathGetFilename):
8952
8953 2007-09-03  David Harrison  <harrison@apple.com>
8954
8955         Reviewed by Kevin Decker.
8956
8957         <rdar://problem/5456785> REGRESSION (r15963-r15970): Heading text not placed in VoiceOver Item Chooser (15132)
8958
8959         * bridge/mac/WebCoreAXObject.mm:
8960         (-[WebCoreAXObject title]):
8961         For headings, return the text under the element instead of nil.
8962
8963 2007-08-20  Oleg Sukhodolsky <son.two@gmail.com>
8964
8965         Reviewed by Mark.
8966
8967         WebKitQt/WebCoreSupport should not be added to INCLUDEPATH for gdk-port
8968
8969         * WebCore.pro:
8970
8971 2007-09-03  Mark Rowe  <mrowe@apple.com>
8972
8973         Reviewed by Tim Hatcher.
8974
8975         <rdar://problem/5452164> Production build with in symbols directory has no debug info
8976
8977         Enable debug symbol generation on all build configurations.  Production builds are stripped
8978         of symbols by Xcode during deployment post-processing.
8979
8980         * Configurations/Base.xcconfig:
8981         * WebCore.xcodeproj/project.pbxproj:
8982
8983 2007-09-02  Brady Eidson  <beidson@apple.com>
8984
8985         Reviewed by John Sullivan and Mark Rowe
8986
8987         Groundwork for support for monitoring IconDatabase in-memory statistics
8988
8989         * WebCore.exp:
8990         * loader/icon/IconDatabase.cpp:
8991         (WebCore::IconDatabase::pageURLMappingCount): Stub for now
8992         (WebCore::IconDatabase::retainedPageURLCount): Ditto
8993         (WebCore::IconDatabase::iconRecordCount): Ditto
8994         (WebCore::IconDatabase::iconRecordCountWithData): Ditto
8995         * loader/icon/IconDatabase.h:
8996
8997 2007-09-02  Mark Rowe  <mrowe@apple.com>
8998
8999         Reviewed by Antti.
9000
9001         <rdar://problem/5454704> WebKit seems to get too-narrow widths for "Monotype Corsiva", so lays out incorrectly
9002
9003         * platform/mac/FontDataMac.mm:
9004         (WebCore::FontData::determinePitch): Work around NSFont incorrectly reporting Monotype Corsiva as fixed pitch.
9005
9006 2007-09-01  Darin Adler  <darin@apple.com>
9007
9008         - rolled out fix for bug 12988 because it broke getElementById in a layout test
9009           I'm working on a new fix.
9010
9011         * dom/Document.cpp: Rolled out.
9012
9013 2007-09-01  Oliver Hunt  <oliver@apple.com>
9014
9015         Reviewed by Sam.
9016
9017         <rdar://problem/5344848> IME is incorrectly used for key events when on non-editable regions
9018
9019         Adding a new EditorClient method so it is possible to inform WebKit of focus changes.
9020         Also added new virtual method Node::shouldUseInputMethod to allow us to trivially check
9021         whether an input method should be used when processing input for the currently focused
9022         Node.
9023
9024         * bridge/EditorClient.h:
9025         * dom/Node.cpp:
9026         (WebCore::Node::shouldUseInputMethod):
9027         * dom/Node.h:
9028         * html/HTMLInputElement.cpp:
9029         (WebCore::HTMLInputElement::shouldUseInputMethod):
9030         * html/HTMLInputElement.h:
9031         * html/HTMLTextAreaElement.cpp:
9032         (WebCore::HTMLTextAreaElement::shouldUseInputMethod):
9033         * html/HTMLTextAreaElement.h:
9034         * page/FocusController.cpp:
9035         (WebCore::FocusController::setFocusedNode):
9036         * platform/graphics/svg/SVGImageEmptyClients.h:
9037         (WebCore::SVGEmptyEditorClient::setInputMethodState):
9038
9039 2007-09-01  Rob Buis  <buis@kde.org>
9040
9041         Reviewed by Darin.
9042
9043         http://bugs.webkit.org/show_bug.cgi?id=12988
9044         First element (in document order) is not returned when other duplicate ID-ed elements were created first
9045
9046         Reset the element id cache when id's are added or removed and there
9047         are duplicates for that id.
9048
9049         Tests: fast/dom/duplicate-ids-document-order.html
9050
9051         * dom/Document.cpp:
9052         (WebCore::Document::getElementById):
9053         (WebCore::Document::addElementById):
9054         (WebCore::Document::removeElementById):
9055
9056 2007-09-01  Rob Buis  <buis@kde.org>
9057
9058         Reviewed by Darin.
9059
9060         http://bugs.webkit.org/show_bug.cgi?id=15083
9061         Some symbols in WebKit do not need to be exported
9062
9063         Do not export these symbols.
9064
9065         * dom/QualifiedName.cpp:
9066         (WebCore::hashComponents):
9067         * dom/XMLTokenizer.cpp:
9068         (WebCore::toString):
9069         (WebCore::getTokenizer):
9070         * history/HistoryItem.cpp:
9071         (WebCore::defaultNotifyHistoryItemChanged):
9072         * platform/Arena.cpp:
9073         (WebCore::CeilingLog2):
9074         * platform/graphics/Color.cpp:
9075         (WebCore::calcHue):
9076         * platform/graphics/Path.cpp:
9077         (WebCore::pathLengthApplierFunction):
9078         * platform/graphics/cg/PathCG.cpp:
9079         (WebCore::CGPathToCFStringApplierFunction):
9080         (WebCore::CFStringFromCGPath):
9081         * rendering/RenderText.cpp:
9082         (WebCore::isSpaceAccordingToStyle):
9083
9084 2007-08-31  Alice Liu  <alice.liu@apple.com>
9085
9086         Reviewed by Tim Hatcher.
9087
9088         Fixed <rdar://problem/5420682> Mail crashes at WebCore::InsertLineBreakCommand::doApply() after dropping a selected image over container's close box
9089
9090         * editing/DeleteButtonController.cpp:
9091         (WebCore::DeleteButtonController::show):
9092         Factored out the code in ::show() that created and styled the elements of the Deletion UI
9093
9094         (WebCore::DeleteButtonController::createDeletionUI):
9095         Neglecting to move the append of the deletionUI elements into the same clause that handles the creation
9096         of them ended up creating multiple elements at were repeatedly appended to the target, resulting in a 
9097         bloated table deletion UI which was slow to show and hide. 
9098
9099         * editing/DeleteButtonController.h:
9100         (WebCore::DeleteButtonController::enabled):
9101         Restore this function to how it used to be pre-r25305, sans asserts
9102
9103         * editing/EditCommand.cpp:
9104         Add disable/enable sandwich when undoing/redoing commands too
9105         (WebCore::EditCommand::unapply):
9106         (WebCore::EditCommand::reapply):
9107
9108 2007-08-31  Antti Koivisto  <antti@apple.com>
9109
9110         Reviewed by Anders.
9111
9112         Fix <rdar://problem/5452943>
9113         REGRESSION (r25283): Reproducible crash in HTMLObjectElement::getInstance under guard malloc
9114         
9115         Calling updateLayoutIgnorePendingStylesheets() may do arbitrary things to render tree so
9116         no RenderObjects can be cached over it.
9117
9118         * html/HTMLEmbedElement.cpp:
9119         (WebCore::findWidgetRenderer):
9120         (WebCore::HTMLEmbedElement::getInstance):
9121         * html/HTMLObjectElement.cpp:
9122         (WebCore::HTMLObjectElement::getInstance):
9123
9124 2007-08-31  Anders Carlsson  <andersca@apple.com>
9125
9126         Reviewed by Mitz.
9127
9128         <rdar://problem/5443936>
9129         Crash after QT movie completes playback at apple.com/imac
9130         
9131         If the plug-in or one of its children have focus, set it to NULL to prevent the web view window from getting the focus, 
9132         which can cause a layout to happen while in HTMLObjectElement::detach. (This is what we do on the Mac).
9133         
9134         * plugins/win/PluginViewWin.cpp:
9135         (WebCore::PluginViewWin::setParent):
9136
9137 2007-08-30  Adele Peterson  <adele@apple.com>
9138
9139         Reviewed by Justin.
9140
9141         Fix for <rdar://problem/5450600> REGRESSION: can't paste in textfield if its in a body that has user-select:none set (affects widgets)
9142
9143         Test: editing/pasteboard/paste-plaintext-user-select-none.html
9144
9145         * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplacementFragment::insertFragmentForTestRendering):
9146           Copy the user-select style from the current selection node and apply it so it is considered during the test rendering.
9147           This is important since we recently changed user-select to be inherited.  When we consider valid VisiblePositions for the test rendering,
9148           we need to have the correct user-select value that will actually be used for the real insertion.
9149
9150 2007-08-31  Anders Carlsson  <andersca@apple.com>
9151
9152         Reviewed by Oliver.
9153
9154         <rdar://problem/5423939>
9155         http://bugs.webkit.org/show_bug.cgi?id=15013
9156         ASSERTION FAILED !m_inDestructor in WebCore::Shared<WebCore::PluginStreamWin>::ref() on Windows
9157         
9158         Protect the stream in case it's destroyed by the plug-in.
9159         
9160         * plugins/win/PluginStreamWin.cpp:
9161         (WebCore::PluginStreamWin::didReceiveData):
9162
9163 a2007-08-31  Darin Adler  <darin@apple.com>
9164
9165         Reviewed by Anders.
9166
9167         - http://bugs.webkit.org/show_bug.cgi?id=15122
9168
9169         * editing/htmlediting.cpp: (WebCore::avoidIntersectionWithNode):
9170         Change assertion so that it only fires when actually modifying the selection.
9171         This isn't nearly as helpful, because the old assertion could catch potential
9172         problems in more cases, but it's not obvious how to do better.
9173
9174 2007-08-30  Oliver Hunt  <oliver@apple.com>
9175
9176         Reviewed by Adam.
9177         
9178         <rdar://problem/5430772> REGRESSION(303-310A5) list items do not show with mouse over on istweb.apple.com/quack.apple.com
9179         
9180         VC++ treats bitfields as signed members, so Node::m_styleChange would be
9181         sign extended if it was assigned the value FullStyleChange.  This caused
9182         style recalculation to stop propagating.  
9183         
9184         We work around this VC++ oddity by storing the enum as an unsigned, and
9185         casting back to StyleChangeType in the getter.
9186                 
9187         Test: fast/css/hover-affects-child.html
9188
9189         * dom/Node.h:
9190         (WebCore::Node::styleChangeType):
9191
9192 2007-08-29  Justin Garcia  <justin.garcia@apple.com>
9193
9194         Reviewed by Darin.
9195
9196         <rdar://problem/5368833> 
9197         REGRESSION: Pasting a triple-clicked line of quoted text at the top of a message adds an extra, quoted line
9198
9199         * editing/CompositeEditCommand.cpp:
9200         (WebCore::CompositeEditCommand::insertParagraphSeparator): Added an option for
9201         using a plain div to hold the new paragraph, instead of a clone of the previous
9202         block.
9203         * editing/CompositeEditCommand.h:
9204         * editing/InsertParagraphSeparatorCommand.cpp: Ditto.
9205         (WebCore::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): Ditto.
9206         (WebCore::InsertParagraphSeparatorCommand::doApply): Ditto.
9207         * editing/InsertParagraphSeparatorCommand.h:
9208         * editing/ReplaceSelectionCommand.cpp:
9209         (WebCore::ReplaceSelectionCommand::doApply): Use a default block element when creating
9210         new paragraphs, so that empty paragraphs don't contain the block style of the previous
9211         one.
9212         Don't expand collapsed brs at the end of inserted content, this was the root of the bug.
9213         We'd copy <blockquote>hello<br></blockquote><br class="Apple-interchange-newline">
9214         and get an extra paragraph.  The removed code used to make sure that if the copied 
9215         selection ends with a paragraph break that is represented in the copied markup by a 
9216         regular br (not an interchange newline br), that that paragraph break appears in the 
9217         pasted content, but shouldMergeEnd, which was introduced after this code was written, 
9218         now takes care of that.
9219         (WebCore::ReplaceSelectionCommand::shouldRemoveEndBR): Inserted content should always
9220         displace placeholder brs, even if that inserted content ends with a br.
9221         * editing/markup.cpp:
9222         (WebCore::needInterchangeNewlineAfter): This code failed to add an interchange newline
9223         if the user copied <div>hello</div><br>, only don't add an interchange newline when
9224         copying ^hello<br>^<br>, because then the copied paragraph break will already be 
9225         represented in the copied markup by a br.
9226         (WebCore::createMarkup):
9227
9228 2007-08-30  David Harrison  <harrison@apple.com>
9229
9230         Reviewed by Darin.
9231
9232         <rdar://problem/5423900> Seed: safari crashes on submit feedback page in -[WebCoreAXObject isAttachment]
9233
9234         * bridge/mac/WebCoreAXObject.mm:
9235         (-[WebCoreAXObject isAttachment]):
9236         Add nil check since element could be detached.
9237
9238 2007-08-30  Mitz Pettel  <mitz@webkit.org>
9239
9240         Reviewed by Dave Hyatt.
9241
9242         - fix http://bugs.webkit.org/show_bug.cgi?id=13282
9243           <rdar://problem/5126392> REGRESSION (NativePopUp): Rightmost character cut off in pop-up menu
9244
9245         * rendering/RenderMenuList.cpp:
9246         (WebCore::RenderMenuList::updateOptionsWidth): When measuring option text, use
9247         the same WebCore run rounding behavior that is used to draw it in the popup button.
9248
9249 2007-08-30  Riku Voipio  <riku.voipio@iki.fi>
9250
9251         Reviewed by Dave Kilzer.
9252
9253         Better ARM defines.
9254
9255         * platform/DeprecatedString.h: Update comments to reflect the
9256         change and update test to fit changes to Platform.h.
9257
9258 2007-08-30  Darin Adler  <darin@apple.com>
9259
9260         Reviewed by Tim Hatcher.
9261
9262         - fix http://bugs.webkig.org/show_bug.cgi?id=14981
9263           DEBUG builds of WebKit hang videwing Yahoo! Mail messages
9264           with ~5 MB text attachment
9265
9266         * rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::checkConsistency):
9267         * rendering/RenderFlow.cpp: (WebCore::RenderFlow::checkConsistency):
9268         * rendering/RenderText.cpp: (WebCore::RenderText::checkConsistency):
9269         Put the actual consistency check inside an ifdef. If you need it you can
9270         turn it on. There's still some function call overhead in builds that don't
9271         have NDEBUG defined, but that's worth it so we can turn this on and off
9272         without recompiling the world.
9273
9274         - small code style improvement to recently changed function
9275
9276         * editing/TextIterator.cpp: (WebCore::plainTextToMallocAllocatedBuffer):
9277         Use a typedef and make_pair to make the code dealing with the pair simpler to read.
9278
9279 2007-08-30  Simon Hausmann  <hausmann@kde.org>
9280
9281         Reviewed by Zack.
9282
9283         Fix Qt/Gdk build. gcc on Linux at least doesn't like initializing
9284         variables between jumps with goto ("jump to label foo crosses
9285         initialization of bar").
9286
9287         * editing/TextIterator.cpp:
9288         (WebCore::plainTextToMallocAllocatedBuffer):
9289
9290 2007-08-30  Darin Adler  <darin@apple.com>
9291
9292         Reviewed by Antti.
9293  
9294         - fix <rdar://problem/5423270> CrashTracer: [USER] 1 crash in Safari at com.apple.WebCore:
9295           WebCore::plainTextToMallocAllocatedBuffer + 762
9296
9297         * editing/TextIterator.cpp: (WebCore::plainTextToMallocAllocatedBuffer):
9298         Check for a malloc failure and exit the function if it failed.
9299
9300 2007-08-29  Anders Carlsson  <andersca@apple.com>
9301
9302         Reviewed by Oliver.
9303
9304         <rdar://problem/5404329>
9305         Plugin content starves WM_TIMER events on UI thread (affects idle behavior of app) on http://www.vincent-vella.com/, http://www.sagmeister.com/
9306         
9307         Add a tiny delay to invalidation timer to prevent it from starving other timers.
9308         
9309         * plugins/win/PluginViewWin.cpp:
9310         (WebCore::PluginViewWin::invalidateRect):
9311
9312 2007-08-29  Darin Adler  <darin@apple.com>
9313
9314         Reviewed by Adele.
9315
9316         * editing/htmlediting.cpp: (WebCore::avoidIntersectionWithNode):
9317         Fix an assert that was firing for me all the time when doing editing operations.
9318
9319 2007-08-29  Anders Carlsson <andersca@apple.com>
9320
9321         Reviewed by Adam.
9322
9323         <rdar://problem/5386098>
9324         Repro hang with some Flash plugin content (http://dougmccune.com/blog/2007/07/25/coming-to-flexcamp-at-adobe/)
9325         
9326         In some cases, Flash ends up starving the main loop by sending a lot of WM_USER + 1 messages. Throttle these
9327         messages so they won't end up hanging the web browser.
9328         
9329         * plugins/win/PluginViewWin.cpp:
9330         (WebCore::PluginMessageThrottlerWin::PluginMessageThrottlerWin):
9331         (WebCore::PluginMessageThrottlerWin::~PluginMessageThrottlerWin):
9332         (WebCore::PluginMessageThrottlerWin::appendMessage):
9333         (WebCore::PluginMessageThrottlerWin::messageThrottleTimerFired):
9334         (WebCore::PluginMessageThrottlerWin::allocateMessage):
9335         (WebCore::PluginMessageThrottlerWin::isInlineMessage):
9336         (WebCore::PluginMessageThrottlerWin::freeMessage):
9337         (WebCore::PluginViewWndProc):
9338         (WebCore::PluginViewWin::wndProc):
9339         (WebCore::PluginViewWin::determineQuirks):
9340         * plugins/win/PluginViewWin.h:
9341         (WebCore::):
9342         (WebCore::PluginViewWin::pluginWndProc):
9343
9344 2007-08-29  Beth Dakin  <bdakin@apple.com>
9345
9346         Reviewed by Hyatt.
9347
9348         Fix for <rdar://problem/5436800> REGRESSION: PLT is 1.5% slower due 
9349         to r24593 and r25098
9350
9351         In r25098, we only called setCreatedByParser for XML! This patch 
9352         calls it for HTML too, and takes care of the performance 
9353         regression.
9354
9355         * html/HTMLElementFactory.cpp:
9356         (WebCore::styleConstructor):
9357
9358 2007-08-29  Antti Koivisto  <antti@apple.com>
9359
9360         Reviewed by Mitz.
9361         
9362         Fix <rdar://problem/5425951>
9363         REGRESSION: change to updateLayoutIgnorePendingStylesheets causes SAP Portal page to render wrong
9364         
9365         If new nodes have been added or style recalc has been done with style sheets still pending, some nodes 
9366         may not have had their real style calculated yet. Normally this state gets cleaned when style sheets arrive 
9367         but in updateLayoutIgnorePendingStylesheets() we need to do full style recalc to get up-to-date style immediatly.
9368         
9369         Added a document flag to track if there are any nodes that did not have their real style calculated due to
9370         pending stylesheets.
9371
9372         Test: fast/dynamic/style-access-late-stylesheet-load.html
9373
9374         * css/CSSStyleSelector.cpp:
9375         (WebCore::CSSStyleSelector::styleForElement):
9376         * dom/Document.cpp:
9377         (WebCore::Document::Document):
9378         (WebCore::Document::recalcStyle):
9379         (WebCore::Document::updateLayoutIgnorePendingStylesheets):
9380         * dom/Document.h:
9381         (WebCore::Document::setHasNodesWithPlaceholderStyle):
9382
9383 2007-08-29  Alice Liu  <alice.liu@apple.com>
9384
9385         Reviewed by Maciej.
9386
9387         We disable the DeleteButton UI before applying any editing commands.
9388         This patch simply moves those disable/enable calls to a more correct place, closer to the actual application of the editing command. 
9389
9390         * editing/EditCommand.cpp:
9391         (WebCore::EditCommand::apply):
9392         (WebCore::applyCommand):
9393
9394 2007-08-28  Alice Liu  <alice.liu@apple.com>
9395
9396         fixed <rdar://problem/5420682> Mail crashes at WebCore::InsertLineBreakCommand::doApply() 
9397                                        after dropping a selected image over container's close box
9398
9399         Reviewed by Darin and Maciej.
9400
9401         * editing/DeleteButtonController.cpp:
9402         (WebCore::DeleteButtonController::show):
9403         (WebCore::DeleteButtonController::hide):
9404         * editing/DeleteButtonController.h:
9405         (WebCore::DeleteButtonController::enabled):
9406         General changes made to DeleteButtonController: when hiding, it's not necessary to clear out 
9407         the m_containerElement and m_target, especially since to fix this bug we need to keep 
9408         their values around.  It's sufficient to just detach the container from target.
9409
9410         * editing/EditCommand.cpp:
9411         (WebCore::EditCommand::EditCommand):
9412         Move the selection out of the deletion UI since we don't want to expose the deletion UI to any editing.
9413
9414         * editing/Editor.cpp:
9415         (WebCore::Editor::rangeForPoint):
9416         Move the range out of the deletion UI since we don't want to expose the deletion UI to any editing.
9417
9418         * editing/htmlediting.cpp:
9419         * editing/htmlediting.h:
9420         (WebCore::avoidIntersectionWithNode):
9421         Moved function that operates on Range from markup.cpp to here
9422         Added new implementation for function that operates on Selection
9423
9424         * editing/markup.cpp:
9425         (WebCore::createMarkup):
9426         Moved function out of this file to htmlediting.cpp, and renamed to avoidIntersectionWithNode
9427
9428 2007-08-29  David Hyatt  <hyatt@apple.com>
9429
9430         Fix for 5441281, remove our dependency on cursor rects and drag margins
9431         in AppKit for a large performance boost on the PLT and iBench.
9432
9433         Reviewed by darin
9434
9435         * platform/mac/WidgetMac.mm:
9436         (WebCore::safeRemoveFromSuperview):
9437         (WebCore::Widget::addToSuperview):
9438         Suppress the resetting of drag margins when views are added and removed.
9439
9440         (WebCore::Widget::setCursor):
9441         Just use NSCursor's set method to immediately set the cursor.  We no longer
9442         rely on NSScrollView/NSClipView setDocumentCursor, since that is implemented
9443         using cursor rects.
9444
9445 2007-08-29  Rick  <rick@writhe.org.uk>
9446
9447         Reviewed by Tim Hatcher.
9448
9449         Fix http://bugs.webkit.org/show_bug.cgi?id=14853
9450         Bug 14853: Incorrect implementation of ArrayImpl's equality operator
9451
9452         * platform/ArrayImpl.cpp:
9453         (WebCore::ArrayImpl::operator==):
9454         Fixed typo so that correct variable is used in equality comparison.
9455
9456 2007-08-29  Peter Kasting  <pkasting@google.com>
9457
9458         Reviewed by Maciej.
9459
9460         - fix http://bugs.webkit.org/show_bug.cgi?id=15096
9461         Move the GIF frame duration minimum check into the various
9462         ImageSource*.cpp backends and use the same values as
9463         ImageSourceCG.cpp.
9464
9465         * platform/graphics/cairo/ImageSourceCairo.cpp:
9466         (WebCore::ImageSource::frameDurationAtIndex):
9467         * platform/graphics/qt/ImageSourceQt.cpp:
9468         (WebCore::ImageSource::frameDurationAtIndex):
9469         * platform/image-decoders/gif/GIFImageReader.cpp:
9470         (GIFImageReader::read):
9471
9472 2007-08-29  Peter Kasting  <pkasting@google.com>
9473
9474         Reviewed by Maciej.
9475
9476         - fix http://bugs.webkit.org/show_bug.cgi?id=15097
9477         Make PNGImageDecoder.cpp size its frame buffer vector in its
9478         constructor, so it never throws decoded image data away no matter
9479         what order its functions are called in.
9480
9481         * platform/image-decoders/png/PNGImageDecoder.cpp:
9482         (WebCore::PNGImageDecoder::PNGImageDecoder):
9483         (WebCore::PNGImageDecoder::frameBufferAtIndex):
9484         (WebCore::PNGImageDecoder::decode):
9485         (WebCore::PNGImageDecoder::rowAvailable):
9486         (WebCore::PNGImageDecoder::pngComplete):
9487
9488 2007-08-29  Peter Kasting  <pkasting@google.com>
9489
9490         Reviewed by Maciej.
9491
9492         - fix http://bugs.webkit.org/show_bug.cgi?id=15104
9493         Don't double-compensate for sizeof(unsigned) when making a buffer
9494         overflow check in the GIF decoder.  Now interlaced GIFs don't
9495         sometimes get nothing/garbage in some of the bottom rows.
9496
9497         * platform/image-decoders/gif/GIFImageDecoder.cpp:
9498         (WebCore::GIFImageDecoder::haveDecodedRow):
9499
9500 2007-08-28  Sam Weinig  <sam@webkit.org>
9501
9502         Reviewed by Darin.
9503
9504         Update fix landed in r25249 to account for XMLHttpRequest, which can also be EventTargets.
9505
9506         Tests: http/tests/security/listener/xss-XMLHttpRequest-addEventListener.html
9507                http/tests/security/listener/xss-XMLHttpRequest-shortcut.html
9508
9509         * bindings/js/JSXMLHttpRequest.cpp:
9510         (KJS::JSXMLHttpRequest::putValueProperty): Use the Window object associated with document's frame, not the active Window.
9511         (KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction): ditto
9512         * xml/XMLHttpRequest.h:
9513         (WebCore::XMLHttpRequest::document): Expose Document member so bindings can access the correct frame.
9514
9515 2007-08-28  Anders Carlsson  <andersca@apple.com>
9516
9517         Reviewed by Darin.
9518
9519         <rdar://problem/5424866> Bottom portion of any Web Clip widget appears transparent
9520
9521         Restore the previous behavior, creating plug-ins on attach, for WebKit plug-ins. Netscape plug-ins
9522         are still created during the first layout.
9523         
9524         * html/HTMLEmbedElement.cpp:
9525         (WebCore::HTMLEmbedElement::getInstance):
9526         Only call layout if the renderer doesn't have a widget.
9527         
9528         * html/HTMLObjectElement.cpp:
9529         (WebCore::HTMLObjectElement::getInstance):
9530         Likewise.
9531         
9532         * loader/FrameLoader.cpp:
9533         (WebCore::FrameLoader::shouldUsePlugin):
9534         Update for enum change.
9535         
9536         * loader/FrameLoaderTypes.h:
9537         Add ObjectContentNetscapePlugin and ObjectContentOtherPlugin.
9538         
9539         * page/mac/WebCoreFrameBridge.h:
9540         Get rid of the enum here, we can use the one in FrameLoaderTypes.h
9541         
9542         * rendering/RenderPartObject.cpp:
9543         (WebCore::RenderPartObject::updateWidget):
9544         Only create the plug-in if it's not a Netscape plug-in.
9545         
9546         (WebCore::RenderPartObject::layout):
9547         Fix indentation.
9548         
9549 2007-08-28  David Harrison  <harrison@apple.com>
9550
9551         Reviewed by Darin.
9552
9553         <rdar://problem/5415006> Command Left in a To Do causes caret to disappear
9554
9555         The selection was ending up inside non-editable content at the To Do Options
9556         arrow image, rather then at the editable position just to the left of that image.
9557         The problem was that startPositionForLine looked only at line boxes, and there
9558         is no linebox for the editable position at the far left of a To Do, which is
9559         a table. Addressed by having startPositionForLine use table offset 0 instead
9560         of the first VisiblePosition inside the table.
9561         
9562         Found and fixed the similar case with option-left (move by word position).
9563         
9564         Test cases:
9565         * editing/selection/mixed-editability-8.html: Added.
9566         * editing/selection/mixed-editability-9.html: Added.
9567
9568         Source changes:
9569         * editing/SelectionController.cpp:
9570         (WebCore::SelectionController::modifyMovingLeftBackward):
9571         
9572         * editing/VisiblePosition.cpp:
9573         (WebCore::VisiblePosition::next):
9574         (WebCore::VisiblePosition::previous):
9575         (WebCore::VisiblePosition::stayInEditableContentLeft):
9576         (WebCore::VisiblePosition::stayInEditableContentRight):
9577         Factored stayInEditableContentLeft() and stayInEditableContentRight()
9578         out of previous() and next().
9579         
9580         * editing/VisiblePosition.h:
9581         Declare stayInEditableContentLeft() and stayInEditableContentRight().
9582
9583         * editing/visible_units.cpp:
9584         (WebCore::previousWordPosition):
9585         (WebCore::nextWordPosition):
9586         (WebCore::startOfLine):
9587         (WebCore::endOfLine):
9588         (WebCore::previousSentencePosition):
9589         (WebCore::nextSentencePosition):
9590         Call stayInEditableContentLeft() or stayInEditableContentRight(), as 
9591         appropriate, so prevent crossing from editable content into
9592         uneditable content.
9593         
9594         (WebCore::startPositionForLine):
9595         Use table offset 0 instead of the first VisiblePosition in the table.
9596         
9597 2007-08-28  Mark Rowe  <mrowe@apple.com>
9598
9599         Reviewed by Darin Adler.
9600
9601         <rdar://problem/5443453> Decreasing history expiration time from 1 year to 1 week can lead to long hang while icon database syncs
9602
9603         Perform the sync inside a SQLite transaction.  This drops the time taken for the sync from over 90s to under half a second in the
9604         extreme case of over 90,000 URLs being pruned.
9605
9606         * loader/icon/IconDatabase.cpp:
9607         (WebCore::IconDatabase::syncDatabase):
9608
9609 2007-08-28  Mark Rowe  <mrowe@apple.com>
9610
9611         Reviewed by Darin Adler.
9612
9613         <rdar://problem/5437983> Loading history containing 100,000 entries adds 20s to Safari's startup
9614
9615         Add a new constructor for HistoryItem that initializes the alternate title.  This prevents WebHistoryItem
9616         in WebKit from having explicitly set the display title, which triggers a history item changed notification
9617         to be posted, for each history item loaded.
9618
9619         * WebCore.exp:
9620         * history/HistoryItem.cpp:
9621         (WebCore::HistoryItem::HistoryItem):
9622         * history/HistoryItem.h:
9623
9624 2007-08-28  Anders Carlsson  <andersca@apple.com>
9625
9626         Reviewed by Darin.
9627
9628         <rdar://problem/5298296> XMLHttpRequest readyState 3 & responseText buffer issues
9629         
9630         Add a shouldContentSniff flag to ResourceLoader and ResourceHandle and have XMLHttpRequest 
9631         pass in false when creating its subresource loader.
9632         
9633         * WebCore.exp:
9634         * loader/MainResourceLoader.cpp:
9635         (WebCore::MainResourceLoader::MainResourceLoader):
9636         (WebCore::MainResourceLoader::loadNow):
9637         * loader/ResourceLoader.cpp:
9638         (WebCore::ResourceLoader::ResourceLoader):
9639         (WebCore::ResourceLoader::load):
9640         * loader/ResourceLoader.h:
9641         * loader/SubresourceLoader.cpp:
9642         (WebCore::SubresourceLoader::SubresourceLoader):
9643         (WebCore::SubresourceLoader::create):
9644         * loader/SubresourceLoader.h:
9645         * loader/mac/NetscapePlugInStreamLoaderMac.mm:
9646         (WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
9647         * platform/mac/WebCoreSystemInterface.h:
9648         * platform/mac/WebCoreSystemInterface.mm:
9649         * platform/network/ResourceHandle.cpp:
9650         (WebCore::ResourceHandle::ResourceHandle):
9651         (WebCore::ResourceHandle::create):
9652         * platform/network/ResourceHandle.h:
9653         * platform/network/ResourceHandleInternal.h:
9654         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
9655         * platform/network/mac/ResourceHandleMac.mm:
9656         (WebCore::ResourceHandle::start):
9657         * xml/XMLHttpRequest.cpp:
9658         (WebCore::XMLHttpRequest::send):
9659
9660 2007-08-27  Steve Falkenburg  <sfalken@apple.com>
9661
9662         Added getter for committedFirstRealDocumentLoad.
9663         
9664         Reviewed by Maciej.
9665
9666         * loader/FrameLoader.h: Added committedFirstRealDocumentLoad.
9667         (WebCore::FrameLoader::committedFirstRealDocumentLoad): Added.
9668
9669 2007-08-27  Antti Koivisto  <antti@apple.com>
9670
9671         Reviewed by Maciej.
9672         
9673         Fix <rdar://problem/5433144>
9674         REGRESSION: Unable to click "Select" link at Expedia for car rentals
9675         
9676         javascript: URLs need special handling when serializing. Escaping them like
9677         normal attribute values can do bad things. Try hard to not escape anything,
9678         escape quote characters only if really necessary. Try to match Firefox.
9679
9680         Test: fast/innerHTML/javascript-url.html
9681
9682         * editing/markup.cpp:
9683         (WebCore::urlAttributeToQuotedString):
9684         (WebCore::startMarkup):
9685
9686 2007-08-27  David Hyatt  <hyatt@apple.com>
9687
9688         Fix for 5441224, micro-optimizations to improve the PLT by 1%.
9689
9690         Reviewed by Darin
9691
9692         * css/CSSStyleSelector.cpp:
9693         (WebCore::CSSStyleSelector::canShareStyleWithElement):
9694         * platform/mac/FontMac.mm:
9695         (WebCore::Font::drawGlyphs):
9696         * rendering/RenderInline.cpp:
9697         (WebCore::RenderInline::requiresLayer):
9698         * rendering/RenderObject.cpp:
9699         (WebCore::RenderObject::isBody):
9700         * rendering/RenderObject.h:
9701         (WebCore::RenderObject::renderArena):
9702         (WebCore::RenderObject::isRoot):
9703
9704 2007-08-27  Mitz Pettel  <mitz@webkit.org>
9705
9706         Reviewed by Darin.
9707
9708         - fix http://bugs.webkit.org/show_bug.cgi?id=15091
9709           Crash in RenderBlock::skipWhitespace during layout <rdar://problem/5439631> 
9710
9711         Test: fast/replaced/applet-disabled-positioned.html
9712
9713         * html/HTMLAppletElement.cpp:
9714         (WebCore::HTMLAppletElement::createRenderer): Changed to call
9715         RenderObject::createObject(), which accounts for style.
9716
9717 2007-08-26  Antti Koivisto  <antti@apple.com>
9718
9719         Reviewed by Darin.
9720         
9721         Fix for <rdar://problem/5433726>
9722         Mail crash at WebCore::Frame::styleForSelectionStart() when deleting a selection in a HTML message (http://www.yahoo.com/)
9723
9724         Test: editing/style/temporary-span-crash.html
9725
9726         * page/Frame.cpp:
9727         (WebCore::Frame::styleForSelectionStart):
9728         Temporary span created here might not have renderer if document has style sheet that makes it display:none.
9729         Set display:inline explicitly in spans style attribute. This temporary span does not need to get its display 
9730         value from actual document style sheets. Null check the renderer too to be sure.
9731
9732
9733 2007-08-24  Sam Weinig  <sam@webkit.org>
9734
9735         Reviewed by Adele.
9736
9737         Fix for <rdar://problem/5426142>
9738
9739         Use the EventTarget's frame when creating the EventListener.
9740
9741         Tests: http/tests/security/listener/xss-JSTargetNode-onclick-addEventListener.html
9742                http/tests/security/listener/xss-JSTargetNode-onclick-shortcut.html
9743                http/tests/security/listener/xss-window-onclick-addEventListener.html
9744                http/tests/security/listener/xss-window-onclick-shortcut.html
9745
9746         * bindings/js/JSEventTargetNode.cpp:
9747         (WebCore::JSEventTargetNode::setListener):
9748         (WebCore::JSEventTargetNodePrototypeFunction::callAsFunction):
9749         * bindings/js/kjs_window.cpp:
9750         (KJS::WindowFunc::callAsFunction):
9751
9752 2007-08-25  Mitz Pettel  <mitz@webkit.org>
9753
9754         Reviewed by Sam Weinig.
9755
9756         - fix http://bugs.webkit.org/show_bug.cgi?id=15077
9757           REGRESSION: Cannot drag selected text out of a background window
9758
9759         * manual-tests/drag-out-of-background-window.html: Added.
9760         * page/EventHandler.cpp:
9761         (WebCore::EventHandler::eventMayStartDrag): Added missing coordinate
9762         conversion.
9763
9764 2007-08-25  Rob Buis  <buis@kde.org>
9765
9766         Reviewed by Darin.
9767
9768         http://bugs.webkit.org/show_bug.cgi?id=14848
9769         DOM table rules are not updated when changed
9770
9771         On a dynamic rules attr change, mark the table cells and
9772         their ancestors (up to and including the table tag) as
9773         changed.
9774
9775         Tests: fast/table/rules-attr-dynchange1.html
9776                fast/table/rules-attr-dynchange2.html
9777
9778         * html/HTMLTableElement.cpp:
9779         (WebCore::isTableCellAncestor):
9780         (WebCore::setTableCellsChanged):
9781         (WebCore::HTMLTableElement::parseMappedAttribute):
9782
9783 2007-08-25  Adele Peterson  <adele@apple.com>
9784
9785         Reviewed by Mitz.
9786
9787         Fix for http://bugs.webkit.org/show_bug.cgi?id=15073
9788         <rdar://problem/5426557> REGRESSION: Can no longer drag text from textareas
9789         
9790         Test: fast/forms/drag-out-of-textarea.html
9791
9792         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControlInnerBlock::nodeAtPoint):
9793           Only restricts hit testing if the placeholder text is visible.
9794         * rendering/RenderTextControl.h: (WebCore::RenderTextControl::placeholderIsVisible): Added. 
9795
9796 2007-08-25  Peter Kasting  <pkasting@google.com>
9797
9798         Reviewed by Sam Weinig.
9799
9800         Part 2 of http://bugs.webkit.org/show_bug.cgi?id=14967.
9801         Eliminate all remaining implicit conversions of wtf::Vector<T> to T*.  Where code was
9802         previously checking that the Vector's data pointer was non-NULL, check !Vector::isEmpty()
9803         instead.
9804
9805         * bindings/js/kjs_navigator.cpp:
9806         (KJS::PluginBase::cachePluginDataIfNecessary):
9807         * loader/mac/LoaderNSURLExtras.m:
9808         (suggestedFilenameWithMIMEType):
9809         * page/FrameView.cpp:
9810         (WebCore::FrameView::~FrameView):
9811         (WebCore::FrameView::pauseScheduledEvents):
9812         (WebCore::FrameView::resumeScheduledEvents):
9813         (WebCore::FrameView::dispatchScheduledEvents):
9814         * platform/mac/PlugInInfoStoreMac.mm:
9815         (WebCore::PlugInInfoStore::createPluginInfoForPluginAtIndex):
9816
9817 2007-08-25  Mitz Pettel  <mitz@webkit.org>
9818
9819         Rubber-stamped by Adam Roben
9820
9821         - remove unused file
9822
9823         * platform/win/MouseEventWin.cpp: Removed.
9824
9825 2007-08-25  Jasper Bryant-Greene  <m@ni.ac.nz>
9826
9827         Reviewed by Oliver Hunt.
9828
9829         Set paintingDisabled to true in Cairo's GraphicsContext constructor
9830         when passed a null PlatformGraphicsContext.
9831
9832         * platform/graphics/cairo/GraphicsContextCairo.cpp:
9833         (WebCore::GraphicsContext::GraphicsContext):
9834
9835 2007-08-25  Mitz Pettel  <mitz@webkit.org>
9836
9837         Reviewed by Dave Hyatt.
9838
9839         - fix http://bugs.webkit.org/show_bug.cgi?id=15056
9840           REGRESSION (r21472): Digg Podcasts Episodes Render "Digg" counter incorrectly
9841
9842         Covered by fast/parser/residual-style-close-across-n-blocks.html
9843
9844         * html/HTMLParser.cpp:
9845         (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): If the
9846         residual style was closed before anything else in the block (so it does
9847         not apply to anything inside the block) avoid creating an empty element for
9848         it inside the block.
9849
9850 2007-08-25  Mitz Pettel  <mitz@webkit.org>
9851
9852         Reviewed by Dave Hyatt.
9853
9854         - fix http://bugs.webkit.org/show_bug.cgi?id=14972
9855           Moving cursor down in contentEditable section fails if styled line-height:1em
9856
9857         Test: editing/selection/move-by-line-003.html
9858
9859         * rendering/RenderText.cpp:
9860         (WebCore::RenderText::positionForCoordinates): Changed hit testing so that each
9861         line is tested for hits between its overflow top and the next line's overflow top.
9862         This matches RenderBlock::positionForCoordinates.
9863
9864 2007-08-25  Mitz Pettel  <mitz@webkit.org>
9865
9866         Reviewed by Justin.
9867
9868         - fix http://bugs.webkit.org/show_bug.cgi?id=14792
9869           <rdar://problem/5367763> REGRESSION: Copy inserts carriage return in middle of selection
9870
9871         Test: editing/pasteboard/newlines-around-floating-or-positioned.html
9872
9873         * editing/TextIterator.cpp:
9874         (WebCore::shouldEmitNewlinesBeforeAndAfterNode): Do not emit newlines around
9875         floating or positioned blocks. This behavior seems to match WinIE's.
9876
9877 2007-08-23  Justin Garcia  <justin.garcia@apple.com>
9878
9879         Reviewed by Darin.
9880         
9881         <rdar://problem/5432254> GoogleDocs: A hang occurs when applying list style to selected table
9882         
9883         * editing/DeleteSelectionCommand.cpp:
9884         (WebCore::DeleteSelectionCommand::handleGeneralDelete): If the position
9885         that marked the start of the range to delete has been removed from the
9886         document, and it was inside the node that holds the position that marks
9887         the end of the range to delete, don't remove any children of that node,
9888         because we don't know how many to remove.  For example, if the end is
9889         [a, 5] and the start was in some descendant of a and was removed, don't
9890         remove any of the children of a.  We will now refuse to remove some content
9891         incorrectly, but that's less dangerous than removing content incorrectly.
9892         Long term we need to update these positions as we remove content from the 
9893         document, but that seems like a more risky change.  Added a testcase.
9894         * editing/InsertListCommand.cpp:
9895         (WebCore::InsertListCommand::modifyRange): If the end of the selection to 
9896         modify is just after a table, and if the start of the selection is inside 
9897         that table, the last paragraph that we'll want modify is the last one inside 
9898         the table, not the paragraph that contains the table itself. Adjust 
9899         startOfLastParagraph here to avoid infinite recursion.
9900
9901 2007-08-24  Anders Carlsson  <andersca@apple.com>
9902
9903         Reviewed by Geoff.
9904
9905         <rdar://problem/5430165>
9906         REGRESSION: Dynamically loaded images fail to load
9907
9908         * html/HTMLImageLoader.cpp:
9909         (WebCore::HTMLImageLoader::HTMLImageLoader):
9910         Initialize the m_elementIsProtected member.
9911
9912         (WebCore::HTMLImageLoader::~HTMLImageLoader):
9913         Assert that the element is not protected.
9914         
9915         (WebCore::HTMLImageLoader::setLoadingImage):
9916         If the image is not null, protect the element. Otherwise, unprotect it.
9917         
9918         (WebCore::HTMLImageLoader::dispatchLoadEvent):
9919         Unprotect the element here.
9920
9921         (WebCore::HTMLImageLoader::protectElement):
9922         (WebCore::HTMLImageLoader::unprotectElement):
9923         New methods which protect and unprotect the element.
9924         
9925         * html/HTMLImageLoader.h:
9926
9927 2007-08-24  Kevin McCullough  <kmccullough@apple.com>
9928
9929         - Updated ChangeLog
9930
9931 2007-08-24  Beth Dakin  <bdakin@apple.com>
9932
9933         Reviewed by Hyatt and Adele.
9934
9935         Fix for <rdar://problem/5417203> Google Gmail 1.0 widget - unread 
9936         count is missing
9937
9938         * rendering/FixedTableLayout.cpp:
9939         (WebCore::FixedTableLayout::calcWidthArray): Calc pref widths for 
9940         our cells, if needed.
9941
9942 2007-08-24  Kevin McCullough  <kmccullough@apple.com>
9943
9944         Reviewed by Darin.
9945
9946         <rdar://problem/5437038> 1 credential object leaked for each call to credentialWithUser:password:persistence
9947         - Use initWithUser instead of credentialWithUser because credentialWithUser leaks.
9948
9949         * platform/network/mac/AuthenticationMac.mm:
9950         (WebCore::mac):
9951         * platform/network/mac/ResourceHandleMac.mm:
9952         (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
9953         (-[WebCoreSynchronousLoader connection:didReceiveAuthenticationChallenge:]):
9954
9955 2007-08-24  Jon Honeycutt  <jhoneycutt@apple.com>
9956
9957         Reviewed by Darin.
9958
9959         <rdar://problem/5433236> Print preview of empty txt file crashes Safari
9960         Fix: Adjust computePageRectsForFrame to always return at least one 
9961         page rect, even if document height is zero.
9962
9963         * WebCore.vcproj/WebCore.vcproj:
9964         * bridge/win/FrameWin.h: Added Vector& parameter to 
9965         computePagesRectsForFrame; changed its return type to void.
9966         * bridge/win/FrameWin.cpp:
9967         (WebCore::computePageRectsForFrame): Reordered the loop that inserts
9968         rects into the vector.
9969
9970 2007-08-24  Antti Koivisto  <antti@apple.com>
9971
9972         Reviewed by Oliver
9973
9974         Fix <rdar://problem/5393758>
9975         Crash in WebCore::FontData::platformInit
9976         
9977         Null check glyph page. 
9978         
9979         If font has somehow failed to initialize it is possible to have null glyph page. Based on
9980         crash dumps this seems to occasionally happen when running Mail under guard malloc. 
9981         
9982         No test case, I don't know how to get to this state.
9983
9984         * platform/FontData.cpp:
9985         (WebCore::FontData::FontData):
9986         * platform/mac/FontDataMac.mm:
9987         (WebCore::FontData::platformInit):
9988
9989 2007-08-24  George Wright  <george.wright@collabora.co.uk>
9990
9991         Reviewed by Oliver.
9992
9993         http://bugs.webkit.org/show_bug.cgi?id=15071
9994         [cairo] SVG skews are incorrect
9995
9996         Fix Cairo implementation of AffineTransform::shear so that shearing is
9997         done in the correct direction.
9998
9999         * platform/graphics/cairo/AffineTransformCairo.cpp:
10000         (WebCore::AffineTransform::shear):
10001
10002 2007-08-23  Anders Carlsson  <andersca@apple.com>
10003
10004         Reviewed by Steve.
10005
10006         If necessary, re-set the window proc after each call to NPP_SetWindow. This is to ensure that
10007         our window proc is always run even if a plug-in subclasses the window and replaces the window proc.
10008         
10009         Also, make sure that the default window proc is of type ASCII so we can eliminate the 
10010         * plugins/win/PluginViewWin.cpp:
10011         (WebCore::registerPluginView):
10012         (WebCore::PluginViewWndProc):
10013         (WebCore::PluginViewWin::setNPWindowRect):
10014         (WebCore::PluginViewWin::stop):
10015         (WebCore::PluginViewWin::determineQuirks):
10016         (WebCore::PluginViewWin::PluginViewWin):
10017         (WebCore::PluginViewWin::init):
10018         * plugins/win/PluginViewWin.h:
10019         (WebCore::):
10020         (WebCore::PluginViewWin::pluginWndProc):
10021
10022 2007-08-23  Justin Garcia  <justin.garcia@apple.com>
10023
10024         Reviewed by Adele.
10025
10026         <rdar://problem/5156801> REGRESSION: Crash at DeleteSelectionCommand::doApply() when deleting table content
10027
10028         * editing/DeleteSelectionCommand.cpp:
10029         (WebCore::DeleteSelectionCommand::handleGeneralDelete): Use a RefPtr
10030         for node.  If the node to be removed contains the selection, and if
10031         the next node to be removed (nextNode) is inside the deletion UI,
10032         removing node will remove nextNode from the document.  nextNode is
10033         a RefPtr, but node isn't and when nextNode falls out of scope the node
10034         that node points to will be destroyed and we'll end up using a stale pointer.
10035         Long term we should probably just disable the deletion UI before editing 
10036         operations because the undo of the removal of node in the situation 
10037         described above relies on the presence of the deletion UI, but it isn't 
10038         present because its added and removed in a non-undoable way.
10039
10040 2007-08-23  Mitz Pettel  <mitz@webkit.org>
10041
10042         Reviewed by Darin.
10043
10044         - fix http://bugs.webkit.org/show_bug.cgi?id=14899
10045           !d->m_view->needsLayout() in Frame::paint() (Causes assert)
10046
10047         WebKit copies the width and height attributes of an <embed> to its
10048         nearest <object> ancestor. This used to be done in updateWidget(), but
10049         that could lead to the document being dirty right after layout and
10050         before painting. The patch moves the copying of the attributes to when
10051         the <embed> is inserted into the document or its attributes change.
10052
10053         * html/HTMLEmbedElement.cpp:
10054         (WebCore::HTMLEmbedElement::insertedIntoDocument):
10055         (WebCore::HTMLEmbedElement::attributeChanged):
10056         * html/HTMLEmbedElement.h:
10057         * manual-tests/bugzilla-14899.html: Added.
10058         * rendering/RenderPartObject.cpp:
10059         (WebCore::RenderPartObject::updateWidget):
10060
10061 2007-08-22  Anders Carlsson  <andersca@apple.com>
10062
10063         Reviewed by Darin and Oliver.
10064
10065         <rdar://problem/5422410>
10066         http://bugs.webkit.org/show_bug.cgi?id=15019
10067         REGRESSION (r25124-r25140): New posts and hot topics won't show at mobile01.com
10068
10069         Remove the call to checkCallImplicitClose(). Calling it in loadPlugin is bad for two reasons:
10070         
10071         1. It could cause onload to be dispatched even when the page has subresources that are still
10072         loading, such as images.
10073         
10074         2. Now that loadPlugin is called during layout, it could cause onload to be dispatched during
10075         layout, which can execute javascript and do pretty much anything while the render tree is in an
10076         inconsistent state.
10077         
10078         * loader/FrameLoader.cpp:
10079         (WebCore::FrameLoader::loadPlugin):
10080
10081 2007-08-22  Anders Carlsson  <andersca@apple.com>
10082
10083         Reviewed by Adam.
10084
10085         <rdar://problem/5430584>
10086         http://bugs.webkit.org/show_bug.cgi?id=15053        
10087         WebKit does not check Windows Registry HKEY_CURRENT_USER for NPAPI plugin locations
10088         
10089         * plugins/win/PluginDatabaseWin.cpp:
10090         (WebCore::addPluginsFromRegistry):
10091         (WebCore::PluginDatabaseWin::getPluginsInPaths):
10092
10093 2007-08-22  Justin Garcia  <justin.garcia@apple.com>
10094
10095         Reviewed by Adam.
10096         
10097         <rdar://problem/5418891> CrashTracer: [USER] 1 crash in Mail at -[WebViewEditor webView:shouldInsertText:replacingDOMRange:givenAction:]
10098
10099         * editing/BreakBlockquoteCommand.cpp:
10100         (WebCore::BreakBlockquoteCommand::doApply): We're reusing the topBlockquote
10101         variable.  Null it out first.  If there is no new topBlockquote and we don't null
10102         it out first, we'll assume that there was a new one and crash.
10103
10104 2007-08-22  Kevin McCullough  <kmccullough@apple.com>
10105
10106         Reviewed by Adele.
10107
10108         - rdar:5423067 Reapplyingthe change but only when the text area is in focus.
10109
10110         * html/HTMLTextAreaElement.cpp:
10111         (WebCore::HTMLTextAreaElement::setValue):
10112
10113 2007-08-21  David Hyatt  <hyatt@apple.com>
10114
10115         Fix for <rdar://problem/5249757> Painting of JPGs in WebKit is too slow.
10116
10117         Use a new Leopard API for fast tiling of images.  We only use this API
10118         when the whole image is being tiled and when the current CGImageRef to tile
10119         has a size that matches the size of the whole image.
10120
10121         We can optimize border-image in the future by adding a cache of the 9
10122         sub-images.
10123
10124         Reviewed by darin
10125
10126         * platform/graphics/cg/ImageCG.cpp:
10127         (WebCore::Image::drawPattern):
10128
10129 2007-08-22  Kevin McCullough  <kmccullough@apple.com>
10130
10131         - Rolling back since I need to update some layouttests this change breaks.
10132
10133         * html/HTMLTextAreaElement.cpp:
10134         (WebCore::HTMLTextAreaElement::setValue):
10135
10136 2007-08-21  Kevin McCullough  <kmccullough@apple.com>
10137
10138         Reviewed by Geof, Adam, Hyatt, Maciej and Oliver.
10139
10140         - In order to match the behavior of the other major browsers, selection is moved to the end of the text value when a change occurs to the contents of a text area instead of remembering the location of the selection.
10141         - <rdar://problem/5423067> gmail is super annoying when trying to add a new name to the TO, CC or BCC fields
10142
10143         * html/HTMLTextAreaElement.cpp:
10144         (WebCore::HTMLTextAreaElement::setValue):
10145
10146 2007-08-21  Adam Roben  <aroben@apple.com>
10147
10148         Build fix for Mac
10149
10150         Keep FrameView::layoutIfNeededRecursive Windows- and Gtk-only for now
10151         (sadly). This will have to wait until we merge ScrollView and FrameView.
10152
10153         Reviewed by NOBODY.
10154
10155         * page/FrameView.cpp:
10156         * page/FrameView.h:
10157
10158 2007-08-21  Adam Roben  <aroben@apple.com>
10159
10160         Fix an ASSERT when using Find in Page
10161
10162         Reviewed by Darin.
10163
10164         No test possible.
10165
10166         * bridge/win/FrameWin.cpp:
10167         (WebCore::imageFromSelection): Make sure to update layout before
10168         painting so we don't hit an ASSERT in painting code (Frame::selectionImage
10169         in FrameMac.mm does this as well).
10170
10171 2007-08-21  Adam Roben  <aroben@apple.com>
10172
10173         Made FrameView::layoutIfNeededRecursive available to all platforms
10174
10175         Currently it's only used on Gtk+ and Windows.
10176
10177         Reviewed by Darin.
10178
10179         * page/FrameView.cpp: Removed #ifdef.
10180         * page/FrameView.h: Ditto.
10181
10182 2007-08-21  Adele Peterson  <adele@apple.com>
10183
10184         Build fix for release build.
10185
10186         * rendering/AutoTableLayout.cpp:
10187         (WebCore::AutoTableLayout::calcEffectiveWidth):
10188         (WebCore::AutoTableLayout::layout):
10189
10190 2007-08-21  Mitz Pettel  <mitz@webkit.org>
10191
10192         Reviewed by Darin.
10193
10194         - fix http://bugs.webkit.org/show_bug.cgi?id=15010
10195           <rdar://problem/5423956> REGRESSION (r25000-r25065): Table rendering broken by a recent nightly
10196
10197         Test: fast/table/max-width-integer-overflow.html
10198
10199         Avoid integer overflows when dealing with maximum widths by
10200         1) using floating point arithmetic when summing or multiplying column max widths
10201         2) capping max widths at INT_MAX / 2
10202
10203         * rendering/AutoTableLayout.cpp:
10204         (WebCore::AutoTableLayout::calcPrefWidths):
10205         (WebCore::AutoTableLayout::calcEffectiveWidth):
10206         (WebCore::AutoTableLayout::layout):
10207
10208 2007-08-20  John Sullivan  <sullivan@apple.com>
10209
10210         Reviewed by Adam Roben
10211
10212         WebCore part of fix for: 
10213         <rdar://problem/5417777> WebKit focus ring color no longer matches system focus rings
10214         
10215         Adele wrote the first version of this patch. No test cases added because I made sure the 
10216         layout tests are unaffected. Two additional bug fixes were made in passing, but neither 
10217         of them had any effect on any known real-world case, and both were too difficult to write 
10218         test cases for to be worthwhile.
10219
10220         * WebCore.exp:
10221         added symbols for these new functions so WebKit can call them
10222         
10223         * WebCore.xcodeproj/project.pbxproj:
10224         updated for new file
10225         
10226         * platform/graphics/mac/ColorMac.h: Added.
10227         New file to hold the increasing amount of Mac-specific color stuff.
10228         
10229         * platform/graphics/Color.h:
10230         removed #if PLATFORM(MAC) code, which is now in ColorMac.h
10231         
10232         * platform/graphics/mac/ColorMac.mm:
10233         (WebCore::makeRGBAFromNSColor):
10234         new static function to convert an NSColor object to an RGBA32 struct
10235         (WebCore::colorFromNSColor):
10236         new public function to convert an NSColor object to a WebCore-style Color object
10237         (WebCore::focusRingColor):
10238         Uses (cached) systemFocusRingColor instead of hardwired values, unless usesTestModeFocusRingColor is true,
10239         in which case it uses the old hardwired color
10240         (WebCore::usesTestModeFocusRingColor):
10241         returns value of global var
10242         (WebCore::setUsesTestModeFocusRingColor):
10243         sets value of global var
10244         (+[WebCoreControlTintObserver controlTintDidChange]):
10245         Uses [NSColor keyboardFocusIndicatorColor] to set systemFocusRingColor; don't compile if COLORMATCH_EVERYTHING
10246         is set since we don't know what it would take to satisfy this state.
10247
10248         * bindings/objc/DOMRGBColor.mm:
10249         now includes ColorMac.h to account for moved declarations
10250         * bridge/mac/WebCoreAXObject.mm:
10251         ditto
10252         
10253         * page/mac/FrameMac.mm:
10254         (WebCore::convertAttributesToUnderlines):
10255         now uses new colorFromNSColor. The old code was swapping G & B, but it didn't matter in practice because
10256         this function is only used to convert the color of an input manager's marked text underline, which is always black
10257         
10258         * page/mac/WebCoreFrameBridge.mm:
10259         (-[WebCoreFrameBridge setBaseBackgroundColor:]):
10260         now uses new colorFromNSColor. The old code was swapping G & B, but it didn't matter in practice because
10261         this function is only called with a grayscale color perhaps containing an alpha value
10262                 
10263         * rendering/RenderView.cpp:
10264         (WebCore::RenderView::paintBoxDecorations):
10265         just updated a comment
10266
10267 2007-08-20  Mitz Pettel  <mitz@webkit.org>
10268
10269         Reviewed by Dave Hyatt.
10270
10271         - fix http://bugs.webkit.org/show_bug.cgi?id=15023
10272           REGRESSION (r21113-r21143): JavaScript tooltip rendering bug
10273
10274         Test: fast/repaint/layer-visibility.html
10275
10276         * rendering/RenderLayer.cpp:
10277         (WebCore::RenderLayer::setHasVisibleContent): Cache the layer's
10278         rects when it changes to visible.
10279
10280 2007-08-20  Kevin Decker <kdecker@apple.com>
10281
10282         Reviewed by Anders.
10283
10284         Fixed: <rdar://problem/5325262> REGRESSION (Tiger-Leopard): PictureTalk plug-in doesn't work
10285
10286         The problem was that this particular plug-in handles "text/ptf", but WebCore wasn't giving the plug-in a chance to load
10287         any type with "text/"
10288
10289         * dom/DOMImplementation.cpp:
10290         (WebCore::DOMImplementation::createDocument): Allow plug-ins to once again use "text/" MIME types, but only if the MIME
10291         type is not "text/plain". Disallowing plug-ins to use text/plain prevents plug-ins from hijacking a fundamental type 
10292         that the browser is expected to handle, and also serves as an optimization to prevent loading the plug-in database in 
10293         the common case.
10294
10295 2007-08-20  Adam Roben  <aroben@apple.com>
10296
10297         Remove workarounds for <rdar://problem/5386894> now that it's been fixed
10298
10299         Reviewed by Darin.
10300
10301         Tests: fast/loader/local-svg-parsed-as-svg.svg
10302                fast/loader/local-xhtml-parsed-as-xhtml.xhtml
10303
10304         * platform/network/cf/ResourceResponseCFNet.cpp:
10305         (WebCore::ResourceResponse::doUpdateResourceResponse): Removed hackish
10306         workaround.
10307
10308 2007-08-20  Anders Carlsson  <andersca@apple.com>
10309
10310         Reviewed by Adam.
10311
10312         <rdar://problem/5412988>
10313         Crash when visiting http://www.rockonflash.com/blog/?p=58
10314         
10315         * plugins/win/PluginViewWin.cpp:
10316         (WebCore::PluginViewWin::updateWindow):
10317         Just return if the plugin view hasn't been inserted in the hierarchy yet.
10318
10319 2007-08-20  Holger Hans Peter Freyther  <zecke@selfish.org>
10320
10321         Reviewed by Zack.
10322
10323         Do not define svg as ImageMIMEType if we can use ksvg2.
10324
10325         * platform/MIMETypeRegistry.cpp:
10326         (WebCore::initialiseSupportedImageMIMETypes):
10327
10328 2007-08-19  Adam Roben  <aroben@apple.com>
10329
10330         Gtk+ build fix.
10331
10332         * platform/gdk/TemporaryLinkStubs.cpp: Removed const.
10333
10334 2007-08-19  Adam Roben  <aroben@apple.com>
10335
10336         Fix <rdar://5395835> REGRESSION (r24527): Context menu for edit fields is missing "Font & Writing Direction"
10337
10338         The problem was that ContextMenuItem::setSubMenu was just copying the
10339         HMENU from the ContextMenu passed in on Windows, but that HMENU was
10340         later getting destroyed when the ContextMenu went out of scope.
10341
10342         I added a new ContextMenu::releasePlatformDescription method that is
10343         used in setSubMenu instead. I think an ultimately better design would
10344         be for setSubMenu to take ownership of the ContextMenu that's passed in
10345         (as should insertItem and appendItem), but I decided to be conservative
10346         and just make the changes needed to fix the bug.
10347
10348         Reviewed by Darin.
10349
10350         No test possible.
10351
10352         * platform/ContextMenu.h: Added releasePlatformDescription.
10353         * platform/gdk/TemporaryLinkStubs.cpp: Added stub implementation.
10354         * platform/mac/ContextMenuMac.mm:
10355         (WebCore::ContextMenu::releasePlatformDescription): Implemented, though
10356         it's never called on this platform.
10357         * platform/qt/ContextMenuQt.cpp:
10358         (WebCore::ContextMenu::releasePlatformDescription): Ditto.
10359         * platform/win/ContextMenuItemWin.cpp:
10360         (WebCore::ContextMenuItem::setSubMenu): Call releasePlatformDescription
10361         since we need to take ownership of the HMENU.
10362         * platform/win/ContextMenuWin.cpp:
10363         (WebCore::ContextMenu::releasePlatformDescription): Implemented.
10364
10365 2007-08-18  Maciej Stachowiak  <mjs@apple.com>
10366
10367         Reviewed by Darin.
10368
10369         - fixed <rdar://problem/5198272> REGRESSION: PLT 1.5% slower due to r21367 (change to start frames with empty documents)
10370         
10371         There were three main cuases of extra time due to creating the initial empty document:
10372         
10373         1) Creating an extra WebHTMLView and swapping it for a new one for each frame created.
10374         2) Parsing the minimal markup for the initial document's contents.
10375         3) Clearing the Window object an extra time and dispatching the corresponding delegate method.
10376         
10377         The WebCore part of the fixes addresses 2 and 3.
10378         
10379         * loader/FrameLoader.cpp:
10380         (WebCore::FrameLoader::init): Don't parse "<html><body>" for the initial
10381         empty document; it turns out not to be needed.
10382         (WebCore::FrameLoader::dispatchWindowObjectAvailable): Don't 
10383         dispatch the delegate if we haven't created a ScriptInterpreter yet.
10384         * bindings/js/kjs_proxy.cpp:
10385         (WebCore::KJSProxy::initScriptIfNeeded): Dispatch the window object
10386         delegate when we first create the interpreter, since that is now done
10387         lazily.
10388         * loader/FrameLoader.h:
10389         (WebCore::FrameLoader::committingFirstRealLoad): Helper for WebKit
10390         to know when to reuse a WebHTMLView.
10391
10392 2007-08-19  Mitz Pettel  <mitz@webkit.org>
10393
10394         Reviewed by Adam Roben.
10395
10396         - fix http://bugs.webkit.org/show_bug.cgi?id=15008
10397           ASSERTION FAILED: !firstLineBox() == !lastLineBox() setting content on image
10398
10399         Test: fast/images/text-content-crash-2.html
10400
10401         * html/HTMLImageLoader.cpp:
10402         (WebCore::HTMLImageLoader::setImage): Added a check that the renderer is an
10403         image.
10404         (WebCore::HTMLImageLoader::updateFromElement): Ditto.
10405         (WebCore::HTMLImageLoader::notifyFinished): Ditto.
10406
10407 2007-08-17  Maciej Stachowiak  <mjs@apple.com>
10408
10409         Reviewed by Darin.
10410
10411         - WebCore part of fix to scrollbar suppression hack for Leopard
10412
10413         * loader/FrameLoader.cpp:
10414         (WebCore::FrameLoader::transitionToCommitted): Suppress scrollbars earlier, so it happens
10415         before any potential view swap.
10416
10417 2007-08-17  Antti Koivisto  <antti@apple.com>
10418
10419         Reviewed by Hyatt.
10420         
10421         Fix <rdar://problem/5403773>
10422         CrashTracer: [USER] 88 crashes in Safari at com.apple.WebCore: WebCore::RenderTableSection::paint + 846
10423
10424         * rendering/RenderBlock.cpp:
10425         (WebCore::RenderBlock::removePositionedObjects):
10426         
10427         Fix crash in http://www.infobae.com/interior/home.html
10428         Positioned objects removed from m_positionedObjects would in some cases not get added back to any 
10429         positioned objects list. Adding objects happens in block layout but since layout was not invalidated 
10430         correctly in removePositionedObjects() it would not get invoked. As a result some positioned objects 
10431         would stay in layout dirty state leading to crashes and other bad things.
10432         
10433         * rendering/RenderTableSection.cpp:
10434         (WebCore::RenderTableSection::paint):
10435         
10436         Add needLayout() guard to eliminate this class of crashes from release builds. 
10437         Assert commented out for now since one existing layout test can't handle it.
10438
10439 2007-08-17  Kevin Decker <kdecker@apple.com>
10440
10441         Code change by Darin, landed and reviewed by me.
10442
10443         Fixed: <rdar://problem/5252836> Adobe Help Viewer: Japanese characters in the Help Tree structure are shown as garbage
10444         Added fast/encoding/namespace-tolerance.html test.
10445
10446         * loader/TextResourceDecoder.cpp:
10447         (WebCore::TextResourceDecoder::checkForHeadCharset): Slightly loosen the charset decoder heuristic by tweaking it
10448         to ignore namespaces. This restores compatibility to documents which (1) use namespace prefixes on HTML elements
10449         (2) specify a non-latin charset and (3) contain non-latin characters.
10450         
10451         Added fast/encoding/namespace-tolerance.html test.
10452         
10453 2007-08-17  Anders Carlsson  <andersca@apple.com>
10454
10455         Reviewed by Dave Hyatt.
10456         
10457         <rdar://problem/5379040>
10458         REGRESSION (Tiger-Leopard): ADOBE: Safari calls NPP_SetWindow with bad values sometimes
10459
10460         Instantiate plug-ins during the first layout instead of doing so when creating the renderer.
10461         This ensures that the plug-in widget will have a correct initial size.
10462         
10463         * html/HTMLEmbedElement.cpp:
10464         (WebCore::HTMLEmbedElement::getInstance):
10465         Force a layout if the plug-in doesn't have an instance.
10466         
10467         (WebCore::HTMLEmbedElement::attach):
10468         Pass true to updateWidget, causing it to only create a widget if it won't be a plug-in.
10469         
10470         * html/HTMLIFrameElement.cpp:        
10471         (WebCore::HTMLIFrameElement::attach):
10472         Pass false to updateWidget, this will only create subframes anyway.
10473         
10474         * html/HTMLObjectElement.cpp:
10475         (WebCore::HTMLObjectElement::getInstance):
10476         Force a layout if the plug-in doesn't have an instance.
10477         
10478         (WebCore::HTMLObjectElement::attach):
10479         Pass true to updateWidget, causing it to only create a widget if it won't be a plug-in.
10480         
10481         * loader/FrameLoader.cpp:
10482         (WebCore::FrameLoader::loadPlugin):
10483         Get the size from the renderer and pass it to the client.
10484         
10485         * loader/FrameLoaderClient.h:
10486         * page/mac/WebCoreFrameBridge.h:
10487         * platform/graphics/svg/SVGImageEmptyClients.h:
10488         (WebCore::SVGEmptyFrameLoaderClient::createPlugin):
10489         Update declarations.
10490         
10491         * rendering/RenderPart.cpp:
10492         (WebCore::RenderPart::setWidget):
10493         No need to mark the renderer as dirty here.
10494         
10495         * rendering/RenderPartObject.h:
10496         * rendering/RenderPartObject.cpp:
10497         (WebCore::RenderPartObject::updateWidget):
10498         Add a parameter, onlyCreateNonPlugins. If this is true the widget 
10499         will only be created if it's not a plug-in.
10500         
10501         (WebCore::RenderPartObject::layout):
10502         Call updateWidget here if m_widget is 0, causing the plug-in to be instantiated.
10503         
10504 2007-08-17  Oliver Hunt  <oliver@apple.com>
10505
10506         Reviewed by Maciej.
10507
10508         http://bugs.webkit.org/show_bug.cgi?id=14189
10509         <rdar://problem/5319511> REPRODUCIBLE CRASH: Canvas createPattern(canvas, ...) crashes on Windows (14189)
10510
10511         Ensure that we actually retain the CG pattern correctly.
10512
10513         Credit to Henry Mason <hmason@mac.com> for finding the cause of this.
10514
10515         * html/CanvasPattern.cpp:
10516         (WebCore::CanvasPattern::~CanvasPattern):
10517         (WebCore::CanvasPattern::createPattern):
10518         * html/CanvasPattern.h:
10519         (WebCore::CanvasPattern::platformImage):
10520
10521 2007-08-16  Geoffrey Garen  <ggaren@apple.com>
10522
10523         Build fix. (Maybe?)
10524         
10525         * loader/Cache.cpp:
10526         (WebCore::Cache::pruneLiveResources):
10527         (WebCore::Cache::pruneDeadResources):
10528
10529 2007-08-16  Justin Garcia  <justin.garcia@apple.com>
10530
10531         Reviewed by Harrison.
10532
10533         <rdar://problem/5378473> 
10534         REGRESSION: Undoing a deletion that is part of an open typing command fails to reinsert the caret
10535         
10536         We recently made Undo of a series of deletes select all of the 
10537         characters that were deleted, not just the most recently deleted
10538         character.  But the code that did this set a new starting selection 
10539         after every delete, even those that were part of an open typing 
10540         command that started with character insertions or forward deletes, 
10541         operations that when undone, remove the starting selection being 
10542         set from the document.
10543         
10544         After this change we only set a new starting selection if the open typing
10545         command was opened by a backward delete. The new behavior matches TextEdit.  
10546         We don't do something similar or forward deletes because TextEdit opens 
10547         and closes a new typing command on forward delete (added a FIXME about this).
10548
10549         * editing/TypingCommand.cpp:
10550         (WebCore::TypingCommand::TypingCommand): Initialize 
10551         m_openedByBackwardDelete.
10552         (WebCore::TypingCommand::forwardDeleteKeyPressed): Added a FIXME about
10553         how in TextEdit, forward deletes open and close a new typing command.
10554         (WebCore::TypingCommand::doApply): Set m_openedByBackwardDelete
10555         appropriately.
10556         (WebCore::TypingCommand::deleteKeyPressed): Only set the starting
10557         selection if this delete is the first one in an open typing command
10558         or one in a series of deletes that opened the typing command.
10559         * editing/TypingCommand.h: Added m_openedByBackwardDelete.
10560
10561 2007-08-13  Geoffrey Garen  <ggaren@apple.com>
10562
10563         Reviewed by Dave Hyatt.
10564         
10565         Tweaked the cache eviction model to better balance between live and 
10566         dead resources.
10567         
10568         For the sake of avoiding evictions during the PLT, the old model 
10569         required the sum of dead and live resources to grow to twice the cache 
10570         capacity before evicting, and would then evict dead or live down to 0 
10571         if necessary. This was a too-high high water mark, which would nullify 
10572         much of the value of eviction, and a too-low low water mark, which 
10573         would nullify much of the value of the LRU-SP strategy.
10574         
10575         This patch changes the model in 3 ways.
10576         
10577         1. The new model for dead resources is a flexible window with a fixed 
10578         minimum and maximum. The dead resource window is big when live resource 
10579         pressure is small, and vice versa. This has the immediate advantage of
10580         cutting the high water mark by up to 50%. It also enables the following
10581         tunable optimizations in future patches:
10582             a. A dead resource limit of 0 for clients who want that. (Just set
10583             the fixed maximum to 0.)
10584             b. A much higher low water mark. (Just set the fixed minimum to, 
10585             say, 25% of the cache's capacity.)
10586             c. A much lower high water mark for users who browse simple pages
10587             in one tab. (Just set the fixed maximum to, say, 50% of the cache's
10588             capacity.)
10589         
10590         I plan to make the changes that actually take advantage of these 
10591         tunable optimizations in another check-in.
10592
10593         The new model won't hurt the PLT because it will notice the PLT's low
10594         live resource size, and up the dead resource capacity in response. For
10595         the same reason, the new model should establish a good balance in 
10596         real-world use.
10597         
10598         2. Live resource eviction is now based on size(), not encodedSize().
10599         So, a page with lots of large, encoded images will start evicting 
10600         resources, if necessary, even before all the images paint. This allows 
10601         you to more accurately stipulate an exact high water mark.
10602         
10603         3. When pruning, prune to a small percentage below capacity, to avoid
10604         just having to prune again immediately.
10605
10606         Layout tests pass. PLT shows no regression.
10607
10608         * history/PageCache.cpp:
10609         (WebCore::PageCache::releaseAutoreleasedPagesNow): Updated for rename.
10610
10611         * loader/Cache.cpp: Implemented the algorithm explained above.
10612         * loader/Cache.h: Removed explicit tracking of decoded data size, since
10613         it was unused.
10614
10615         * loader/CachedResource.cpp: ditto on tracking of decoded data size
10616
10617 2007-08-16  Darin Adler  <darin@apple.com>
10618
10619         Reviewed by Tim Hatcher.
10620
10621         - fix <rdar://problem/5415029> In Mail, a crash occurs at WebCore::Node::isDescendantOf()
10622           when attempting to delete a selection in a table
10623
10624         The bug was caused by createMarkup trying to operate on a range that
10625         has an endpoint in the delete button DOM, because it removes that DOM
10626         during its operation! Still working on a regression test -- it's hard
10627         to make the kind of bad selection that's needed with the DOM, so I might
10628         have to use the eventSender.
10629
10630         * editing/DeleteButtonController.h: Made some of the identifiers private.
10631         We can make them public if we need to use them. Added a getter function
10632         for the container element so we can figure out if a given node is inside
10633         the DOM added for the delete button.
10634
10635         * editing/markup.cpp:
10636         (WebCore::moveEndpointsBeforeNode): Added. General purpose helper function
10637         that moves endpoints of a range to before a given node -- we do this before
10638         removing the delete button, so the endpoint is where the delete button was,
10639         rather than having an endpoint that's not in the document.
10640         (WebCore::createMarkup): Always return empty string, not null string.
10641         Get the document by calling ownerDocument on the range rather than getting
10642         the document of the commonAncestorContainer. That's because we need to
10643         get at the delete button before calling commonAncestorContainer. Call
10644         moveEndpointsBeforeNode to move the range endpoints out of the delete
10645         button interface before calling disable() which will remove it from the
10646         DOM if it's in there. Added an early return for the case where commonAncestor
10647         is non-0. If this happens, we would crash later because pastEndNode would
10648         not be in the tree. This change alone would prevent the crash, but we'd get
10649         bad markup, so we need the moveEndpointsBeforeNode fix. Added null checks
10650         for the frame to the range version as in the single-node version so this
10651         won't crash immediately on documents that are not in a frame. For the
10652         single-node version, added a check if a ndoe of 0 and a node inside the
10653         delete button user interface, and return the empty string for those cases.
10654
10655 2007-08-16  Justin Garcia  <justin.garcia@apple.com>
10656
10657         Reviewed by Maciej.
10658         
10659         <rdar://problem/5378847> After creating and removing a ToDo, the caret disappears as soon as I start to type
10660         
10661         * editing/InsertTextCommand.cpp:
10662         (WebCore::InsertTextCommand::input): A whitespace text node inserted by Mail
10663         when a ToDo is removed is completely removed by deleteInsignificantWhitespace,
10664         and since it contains the text insertion position, insertion fails.
10665         Save the position before the node where text insertion will occur,
10666         and if that node is removed, use the saved position for insertion.
10667
10668 2007-08-16  Darin Adler  <darin@apple.com>
10669
10670         Reviewed by Adele.
10671
10672         - fix <rdar://problem/5413488> REGRESSION: every DOM element is about 40
10673           bytes bigger because it has a Timer
10674
10675         Moved the timer to the document from the element.
10676
10677         * dom/Document.h: Made frame() inline. Added updateFocusApperanceSoon(),
10678         cancelFocusAppearanceUpdate(), m_updateFocusAppearanceTimer,
10679         clearXMLVersion(), and updateFocusAppearanceTimerFired(). Also made
10680         everything that was previously protected be private instead.
10681         * dom/Document.cpp:
10682         (WebCore::Document::Document): Initialize m_updateFocusAppearanceTimer.
10683         (WebCore::Document::updateFocusAppearanceSoon): Added. Starts timer.
10684         (WebCore::Document::cancelFocusAppearanceUpdate): Added. Stops timer.
10685         (WebCore::Document::updateFocusAppearanceTimerFired): Added. If the
10686         focused node is a focusable element, then calls
10687         updateFocusAppearance(false) on it.
10688
10689         * dom/Element.h: Removed default value of the boolean parameter to
10690         updateFocusAppareance. Removed needsFocusAppearanceUpdate(),
10691         setNeedsFocusAppearanceUpdate(), updateFocusAppearanceTimerFired(),
10692         stopUpdateFocusAppearanceTimer(), m_updateFocusAppearanceTimer, and
10693         m_needsFocusAppearanceUpdate. Added
10694         updateFocusAppearanceSoonAfterAttach() and cancelFocusAppearanceUpdate().
10695         * dom/Element.cpp:
10696         (WebCore::ElementRareData::ElementRareData): Added initializer for
10697         m_needsFocusAppearanceUpdateSoonAfterAttach.
10698         (WebCore::Element::Element): Removed initializers for
10699         m_updateFocusAppearanceTimer and m_needsFocusAppearanceUpdate.
10700         (WebCore::Element::attach): Updated code that starts the focus
10701         appearance timer to instead call updateFocusAppearanceSoon() on the
10702         document.
10703         (WebCore::Element::detach): Replaced call to
10704         stopUpdateFocusAppearanceTimer with call to cancelFocusAppearanceUpdate.
10705         (WebCore::Element::focus): Added check for node that's already focused,
10706         to match the logic that's in the derived classes. This makes it safe for
10707         us to remove the override in the derived classes. Also replaced the code
10708         that called setNeedsFocusAppearanceUpdate(true) with code to set the
10709         rare data flag m_needsFocusAppearanceUpdateSoonAfterAttach and added a
10710         call to cancelFocusAppearanceUpdate() in the case where there's no focus
10711         appearance update.
10712         (WebCore::Element::blur): Replaced call to
10713         stopUpdateFocusAppearanceTimer with call to cancelFocusAppearanceUpdate.
10714         (WebCore::Element::cancelFocusAppearanceUpdate): Added. Sets
10715         m_needsFocusAppearanceUpdateSoonAfterAttach to false, and then calls
10716         cancelFocusAppearanceUpdate() on the document, but only if the element
10717         is the focused node of the document.
10718
10719         * html/HTMLDocument.cpp:
10720         (WebCore::HTMLDocument::HTMLDocument): Replaced code that sets
10721         m_xmlVersion directly with a call to a new inline clearXMLVersion()
10722         function.
10723         (WebCore::HTMLDocument::setCookie): Replaced use of m_policyBaseURL with
10724         policyBaseURL().
10725         (WebCore::HTMLDocument::createTokenizer): Replaced uses of m_frame with
10726         frame().
10727         (WebCore::HTMLDocument::determineParseMode): Replaced code that sets
10728         pMode and hMode directly with calls to setParseMode and setHTMLMode.
10729         Replaced use of m_styleSelector with styleSelector().
10730
10731         * html/HTMLInputElement.h: Removed now-unneed override of focus().
10732         Removed default value of the boolean parameter to updateFocusAppareance.
10733         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::updateFocusAppearance):
10734         Pass the restorePreviousSelection boolean through -- while it's ignored,
10735         it no longer has a default value.
10736
10737         * html/HTMLTextAreaElement.h: Removed now-unneed override of focus().
10738         Removed default value of the boolean parameter to updateFocusAppareance.
10739         * html/HTMLTextAreaElement.cpp: Ditto.
10740
10741         * WebCore.exp: Removed the Document::frame() symbol, since it's now inline.
10742
10743 2007-08-15  Antti Koivisto  <antti@apple.com>
10744
10745         Reviewed by Maciej.
10746         
10747         Fix <rdar://problem/5388936>
10748         Crash while setting display:none for a table cell with selection
10749         
10750         Super class destroy() could (through some selection code in removeChild()) trigger section recalc 
10751         in middle of RenderTableCell::destroy(), cleaning section dirty bit. This would later crash in 
10752         layout since cell grid would still have refence to the dead cell.
10753         
10754         Ensure table sections are dirty when leaving destroy method.
10755         
10756         I can't figure out tests for row and section changes but they look like
10757         they could crash in similar way as cell.
10758
10759         * rendering/RenderTableCell.cpp:
10760         (WebCore::RenderTableCell::destroy):
10761         * rendering/RenderTableRow.cpp:
10762         (WebCore::RenderTableRow::destroy):
10763         * rendering/RenderTableSection.cpp:
10764         (WebCore::RenderTableSection::destroy):
10765
10766 2007-08-15  Maciej Stachowiak  <mjs@apple.com>
10767
10768         Reviewed by Geoff.
10769
10770         <rdar://problem/5389696> leak of 32-byte NSData object (and more?) in WebIconDatabase code path with each refresh of http://www.apple.com
10771         
10772         * platform/graphics/BitmapImage.h: Use RetainPtr for m_nsImage and m_tiffRep
10773         * platform/graphics/mac/ImageMac.mm:
10774         (WebCore::BitmapImage::initPlatformData): No need to do anything now
10775         (WebCore::BitmapImage::invalidatePlatformData): Simplify
10776         (WebCore::BitmapImage::getTIFFRepresentation): Use RetainPtr to avoid leaks
10777         (WebCore::BitmapImage::getNSImage): Use RetainPtr to avoid leaks
10778
10779 2007-08-15  Darin Adler  <darin@apple.com>
10780
10781         Reviewed by Anders.
10782
10783         - fix <rdar://problem/5094895> REGRESSION (r19094): JavaScript timers don't
10784           work inside showModalDialog; caret also doesn't blink
10785
10786         * platform/Timer.h: Added fireTimersInNestedEventLoop.
10787         * platform/Timer.cpp:
10788         (WebCore::TimerBase::fireTimers): Added code to exit if the timersReadyToFire
10789         is cleared. This indicates that someone fired the timers in the nested event
10790         loop, so we should not fire any more timers ourselves.
10791         (WebCore::TimerBase::fireTimersInNestedEventLoop): Added. Sets timersReadyToFire
10792         to 0 so we won't return early and do nothing if the shared timer first. Then
10793         calls updateSharedTimer() so the shared timer will get scheduled as needed based
10794         on any pending timers.
10795
10796         * page/Chrome.cpp: (WebCore::Chrome::runModal): Call
10797         fireTimersInNestedEventLoop before calling runModal on the client.
10798
10799         * manual-tests/modal-dialog.html: Added a test that uses a timeout.
10800         * manual-tests/show-modal-dialog-test.html: Fixed a typo.
10801
10802 2007-08-15  Justin Garcia  <justin.garcia@apple.com>
10803
10804         Reviewed by Darin.
10805         
10806         http://bugs.webkit.org/show_bug.cgi?id=14971
10807         REGRESSION: cannot select reporter's e-mail in bugzilla
10808
10809         * page/EventHandler.cpp:
10810         (WebCore::EventHandler::canMouseDragExtendSelect): Allow drag-selecting inside
10811         a -webkit-user-select:ignore region.
10812
10813 2007-08-15  Beth Dakin  <bdakin@apple.com>
10814
10815         Reviewed by Hyatt.
10816
10817         Rolling back in. I made a silly mistake in XMLTokenizer that caused 
10818         this patch to crash SVG tests. It's fixed now!
10819
10820         Refactor of change for <rdar://problem/5404899> REGRESSION: Mail 
10821         crash in WebCore::FontFallbackList::fontDataAt() after dragging 
10822         image into text multiple times
10823
10824         The original fix that I made last night prevents the pending style 
10825         sheet count from being incremented until the element is in the 
10826         document. This fix prevents the style sheet from loading at all 
10827         until it is in the document.
10828
10829         Here is the fix.
10830         * dom/StyleElement.cpp:
10831         (WebCore::StyleElement::insertedIntoDocument): Call process.
10832         (WebCore::StyleElement::removedFromDocument): This can be reverted 
10833         to its original state before my patch last night.
10834         (WebCore::StyleElement::process): childrenChanged is now called 
10835         process. Return early if your not in the document.
10836         (WebCore::StyleElement::createSheet): Revert change from last 
10837         night. The inDocument check is now in caller childrenChanged.
10838         * dom/StyleElement.h: insertedIntoDocument() must now accept an 
10839         element in addition to a document.
10840
10841         This is an optimization to prevent calling updateStyleSelector() 
10842         too frequently.
10843         * dom/XMLTokenizer.cpp:
10844         (WebCore::XMLTokenizer::startElementNs):
10845         * html/HTMLStyleElement.cpp:
10846         (WebCore::HTMLStyleElement::HTMLStyleElement):
10847         (WebCore::HTMLStyleElement::finishedParsing):
10848         (WebCore::HTMLStyleElement::insertedIntoDocument):
10849         (WebCore::HTMLStyleElement::childrenChanged):
10850         (WebCore::HTMLStyleElement::sheetLoaded):
10851         * html/HTMLStyleElement.h:
10852         * ksvg2/svg/SVGStyleElement.cpp:
10853         (WebCore::SVGStyleElement::SVGStyleElement):
10854         (WebCore::SVGStyleElement::finishedParsing):
10855         (WebCore::SVGStyleElement::insertedIntoDocument):
10856         (WebCore::SVGStyleElement::childrenChanged):
10857         (WebCore::SVGStyleElement::sheetLoaded):
10858         * ksvg2/svg/SVGStyleElement.h:
10859         (WebCore::SVGStyleElement::setCreatedByParser):
10860
10861         This is a name change. Document::stylesheetLoaded() 
10862         is now Document::removePendingSheet()
10863         * dom/Document.cpp:
10864         (WebCore::Document::removePendingSheet):
10865         * dom/Document.h:
10866         * dom/ProcessingInstruction.cpp:
10867         (WebCore::ProcessingInstruction::sheetLoaded):
10868         * html/HTMLLinkElement.cpp:
10869         (WebCore::HTMLLinkElement::~HTMLLinkElement):
10870         (WebCore::HTMLLinkElement::setDisabledState):
10871         (WebCore::HTMLLinkElement::process):
10872         (WebCore::HTMLLinkElement::sheetLoaded):
10873         * page/Frame.cpp:
10874         (WebCore::UserStyleSheetLoader::~UserStyleSheetLoader):
10875         (WebCore::UserStyleSheetLoader::setCSSStyleSheet):
10876
10877         This is another name change. closeRenderer() is now 
10878         finishedParsing()
10879         * dom/Node.h:
10880         (WebCore::Node::finishedParsing):
10881         * dom/XMLTokenizer.cpp:
10882         (WebCore::XMLTokenizer::endElementNs):
10883         (WebCore::):
10884         * html/HTMLAppletElement.cpp:
10885         (WebCore::HTMLAppletElement::finishedParsing):
10886         * html/HTMLAppletElement.h:
10887         * html/HTMLGenericFormElement.cpp:
10888         (WebCore::HTMLFormControlElementWithState::finishedParsing):
10889         * html/HTMLGenericFormElement.h:
10890         * html/HTMLObjectElement.cpp:
10891         (WebCore::HTMLObjectElement::finishedParsing):
10892         * html/HTMLObjectElement.h:
10893         * html/HTMLParser.cpp:
10894         (WebCore::HTMLParser::insertNode):
10895         (WebCore::HTMLParser::popOneBlockCommon):
10896         * html/HTMLScriptElement.cpp:
10897         (WebCore::HTMLScriptElement::finishedParsing):
10898         * html/HTMLScriptElement.h:
10899         (WebCore::HTMLStyleElement::setCreatedByParser):
10900         * ksvg2/svg/SVGAnimationElement.cpp:
10901         (WebCore::SVGAnimationElement::finishedParsing):
10902         * ksvg2/svg/SVGAnimationElement.h:
10903         * ksvg2/svg/SVGElement.cpp:
10904         (WebCore::SVGElement::finishedParsing):
10905         * ksvg2/svg/SVGElement.h:
10906
10907 2007-08-15  David Harrison  <harrison@apple.com>
10908
10909         Reviewed by Antti Koivisto.
10910
10911         <rdar://problem/5411803> Bumpercar crashes when loading a partial URL (FrameLoader::receivedMainResourceError())
10912
10913         * loader/MainResourceLoader.cpp:
10914         (WebCore::MainResourceLoader::receivedError):
10915         Nil check for the FrameLoader.
10916
10917 2007-08-14  Steve Falkenburg  <sfalken@apple.com>
10918
10919         <rdar://problem/5411482> Windows user agent language always returns "en"
10920         
10921         Implement defaultLanguage().
10922
10923         Reviewed by Oliver.
10924
10925         * WebCore.vcproj/WebCore.vcproj: Added Language.cpp.
10926         * platform/win/Language.cpp: Added.
10927         (WebCore::localeInfo): Added.
10928         (WebCore::defaultLanguage): Added.
10929         * platform/win/TemporaryLinkStubs.cpp: Remove defaultLanguage stub.
10930
10931 2007-08-14  Sam Weinig  <sam@webkit.org>
10932
10933         Reviewed by Geoff and Oliver.
10934
10935         Fix for <rdar://problem/5267870>
10936         Mangleme: Reproducible assertion failure in -[WebCoreFrameBridge installInFrame:]
10937
10938         - Change embed/plugin code path to detach the frame on willRemove instead of detach.
10939           This matches what frame and iframe do.
10940
10941         Test: http/tests/misc/embedCrasher.html
10942
10943         * html/HTMLPlugInElement.cpp:
10944         (WebCore::HTMLPlugInElement::willRemove):
10945         * html/HTMLPlugInElement.h:
10946
10947 2007-08-14  Adele Peterson  <adele@apple.com>
10948
10949         Reviewed by Maciej.
10950
10951         Fix for <rdar://problem/5370059> REGRESSION: Cannot type into edit fields on a form (sccsheriff.org)
10952
10953         This change makes -webkit-user-select an inherited css property.  For "user-select: none" we were already 
10954         acting like it was an inheritable property, where we let user-select:text on the children override its parent's user-select:none.
10955         By making user-select really inherited (instead of inherited for some values), we eliminate the need for crawling up the tree to see 
10956         if an ancestor has user-select ignore set.
10957
10958         * page/EventHandler.cpp: (WebCore::EventHandler::canMouseDownStartSelect):
10959           Now that user-select is inherited, you don't need to walk up the render tree looking for ancestors with user-select:ignore set.
10960
10961         * css/CSSStyleSelector.cpp: Eliminate SELECT_AUTO.
10962         (WebCore::CSSStyleSelector::adjustRenderStyle):
10963         (WebCore::CSSStyleSelector::applyProperty):
10964         * css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
10965
10966         * rendering/RenderStyle.h:
10967         (WebCore::): Eliminate SELECT_AUTO.  Make userSelect inherited.
10968         (WebCore::RenderStyle::userSelect):
10969         (WebCore::RenderStyle::setUserSelect):
10970         (WebCore::RenderStyle::initialUserSelect):
10971         * rendering/RenderStyle.cpp:
10972         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
10973         (WebCore::StyleRareNonInheritedData::operator==):
10974         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
10975         (WebCore::StyleRareInheritedData::operator==):
10976         (WebCore::RenderStyle::diff):
10977
10978 2007-08-15  Peter Kasting  <pkasting@google.com>
10979
10980         Reviewed by Darin.
10981         
10982         http://bugs.webkit.org/show_bug.cgi?id=14967 part 1 - Eliminate most implicit
10983         conversions of wtf::Vector<T> to T* by explicitly calling .data()
10984
10985         * html/HTMLSelectElement.cpp:
10986         (WebCore::HTMLSelectElement::saveState):
10987         * platform/KURL.cpp:
10988         (WebCore::KURL::KURL):
10989         (WebCore::KURL::init):
10990         (WebCore::KURL::decode_string):
10991         (WebCore::KURL::parse):
10992         (WebCore::KURL::encode_string):
10993         * platform/cf/KURLCFNet.cpp:
10994         (WebCore::KURL::KURL):
10995         * platform/mac/KURLMac.mm:
10996         (WebCore::KURL::KURL):
10997         * rendering/RenderFrameSet.cpp:
10998         (WebCore::RenderFrameSet::layOutAxis):
10999
11000 2007-08-14  Ricci Adams  <iccir@apple.com>
11001
11002         Reviewed by Darin, Hyatt.
11003
11004         - fix <rdar://problem/5407795> -apple-line-clamp should never display less than one line
11005
11006         * rendering/RenderFlexibleBox.cpp:(WebCore::RenderFlexibleBox::layoutVerticalBox): Use
11007         max to make sure it never computes a minimum of less than one line.
11008
11009 2007-08-14  Brady Eidson  <beidson@apple.com>
11010
11011         Reviewed by Darin, John, Maciej, Oliver, and Tim
11012
11013         <rdar://problem/5394708> - Crash on launch with corrupt icon database
11014
11015         The main part of the fix is to not disable SQLite's default level of protection - to leave the sync options at their normal,
11016         mostly safe levels.  
11017
11018         But in case lightning strikes at the exact right moment and someone ends up with a corrupt database, add some support code to
11019         detect that condition and recover from it.  
11020
11021         This is mainly accomplished by exposing the "PRAGMA integrity_check;" facilities of sqlite through IconDatabase SPI as well as
11022         running that integrity check if a journal file is detected at launch (a strong indication that the last quit was not clean).
11023         There's also a method exposed to allow clients to tell the icon database "I suspect something bad happened, please check integrity"
11024
11025         * loader/icon/IconDatabase.cpp:
11026         (WebCore::IconDatabase::checkIntegrityBeforeOpening): Allow clients to suggest an integrity check
11027         (WebCore::IconDatabase::open): Add a check to see if the journal file for the database exists.  If it does, run the integrity
11028           check.  Also run the check if a client has suggested it to be necessary.
11029           If the integrity-check fails, we sadly have to destroy the database and recreate from scratch.
11030           Also - quite importantly - do not adjust the default sync preferences for the SQLDatabase.  They were an optimization that 
11031           might have been valid at one time but no longer affects any benchmarks we care about.
11032         (WebCore::IconDatabase::checkIntegrity): Perform the SQLite integrity_check pragma
11033         * loader/icon/IconDatabase.h:
11034
11035         * loader/icon/IconDatabaseNone.cpp:
11036         (WebCore::IconDatabase::checkIntegrity): Keep IconDatabaseNone users building
11037         (WebCore::IconDatabase::checkIntegrityBeforeOpening): Ditto
11038
11039         * loader/icon/SQLDatabase.cpp:
11040         (WebCore::SQLDatabase::open): Make a copy of the path string so we don't accidentally mutate anyone else's string on ::close()
11041
11042         * platform/FileSystem.h: Added. Begin a long-needed platform file system abstraction
11043         * platform/mac/FileSystemMac.mm: Added.
11044         (WebCore::fileExists): Check if a file exists
11045         (WebCore::deleteFile): Delete a file
11046
11047         * platform/gdk/TemporaryLinkStubs.cpp:
11048         (WebCore::fileExists):
11049         (WebCore::deleteFile):
11050         * platform/qt/TemporaryLinkStubs.cpp:
11051         (WebCore::fileExists):
11052         (WebCore::deleteFile):
11053         * platform/win/TemporaryLinkStubs.cpp:
11054         (WebCore::fileExists):
11055         (WebCore::deleteFile):
11056
11057         * WebCore.exp:
11058         * WebCore.xcodeproj/project.pbxproj:
11059
11060 2007-08-14  Jon Honeycutt  <jhoneycutt@apple.com>
11061
11062         Reviewed by Steve.
11063
11064         Build fix for Windows.
11065
11066         * html/HTMLFormElement.cpp:
11067
11068 2007-08-14  George Staikos  <staikos@kde.org>
11069
11070         Only connect the menu signal once.
11071
11072         * platform/qt/ContextMenuQt.cpp:
11073         (WebCore::ContextMenu::ContextMenu):
11074         (WebCore::ContextMenu::insertItem):
11075
11076 2007-08-14  Justin Garcia  <justin.garcia@apple.com>
11077
11078         Reviewed by Tim.
11079
11080         <rdar://problem/5408255> REGRESSION: In Mail, clicking the containing element's UI closebox doesn't delete element
11081
11082         * editing/DeleteButtonController.cpp:
11083         (WebCore::DeleteButtonController::show): Use -webkit-user-select:ignore for
11084         the deletion UI.
11085
11086 2007-08-14  Antti Koivisto  <antti@apple.com>
11087
11088         Reviewed by Darin.
11089         
11090         Fix <rdar://problem/5143183>
11091         Air Mail postmark shows up wrong in Firefox due to use of CSS background-position-x/y
11092         
11093         Safari was using non-standard background-position-x/y properties when serializing style, both normal 
11094         and computed. As a result Safari generated CSS would not render correctly in Firefox. 
11095         
11096         Use standard background-position property instead.
11097
11098         * css/CSSComputedStyleDeclaration.cpp:
11099         (WebCore::):
11100         * css/CSSMutableStyleDeclaration.cpp:
11101         (WebCore::CSSMutableStyleDeclaration::cssText):
11102
11103 2007-08-14  Sam Weinig  <sam@webkit.org>
11104
11105         Reviewed by Brady and Dr. Harrison.
11106
11107         Fix typo.  'whitespace' property is spelled 'white-space'.
11108
11109         * page/inspector/inspector.css:
11110
11111 2007-08-13  Beth Dakin  <bdakin@apple.com>
11112
11113         Reviewed by Maciej.
11114
11115         Fix for <rdar://problem/5404899> REGRESSION: Mail crash in 
11116         WebCore::FontFallbackList::fontDataAt() after dragging image into 
11117         text multiple times
11118
11119         We were crashing because style information was not up-to-date. This 
11120         patch fixes the problem in two ways:
11121
11122         Style information was not up to date at the time of the crash 
11123         because the document thought there was still a pending style sheet. 
11124         The pending style sheet counter was incremented when a call to 
11125         cloneNode from Mail cloned a style node with an imported style 
11126         sheet. Because Mail disables the cache, the style sheet did not 
11127         load immediately for the cloned node, and we do not check again to 
11128         see if it has loaded in time to decrement the pending style sheet 
11129         counter before the crash point. The fix here is only to increment 
11130         the pending style sheet counter for elements that are already in 
11131         the document.
11132         * dom/StyleElement.cpp:
11133         (WebCore::StyleElement::insertedIntoDocument): If we have a CSS 
11134         style sheet that is currently loading, increment the pending style 
11135         sheet counter. This should keep the counter accurate in the case 
11136         where a style node is cloned and then immediately inserted into the 
11137         document.
11138         (WebCore::StyleElement::removedFromDocument): If we have a CSS 
11139         style sheet that is currently loading, decrement the pending style 
11140         sheet count. This is required to keep the correct balance, given 
11141         the change above.
11142         (WebCore::StyleElement::createSheet): Only addPendingSheet() and 
11143         checkLoaded() if we are in the document.
11144
11145         Here is Darin's original fix. It seems worth keeping this fix too. 
11146         Font style information should not cause a crash if there are still 
11147         pending style sheets. This is good belt-and-suspenders in case 
11148         there is another way to run into this bug with a wacky timing 
11149         issue.
11150         * css/CSSStyleSelector.cpp:
11151         (WebCore::CSSStyleSelector::styleForElement): Update the font.
11152
11153 2007-08-13  Alexey Proskuryakov  <ap@webkit.org>
11154
11155         Reviewed by Darin.
11156
11157         http://bugs.webkit.org/show_bug.cgi?id=14635
11158         rdar://problem/5340188
11159         Uploading file with non-ASCII character in path fails
11160
11161         File upload cannot be tested in DumpRenderTree.
11162
11163         * html/HTMLFormElement.cpp:
11164         (WebCore::pathGetFilename): A cross-platform helper that extracts a file name from a path.
11165         (WebCore::HTMLFormElement::formData): Use the above helper instead of code that doesn't
11166         work on Windows.
11167
11168 2007-08-13  Alexey Proskuryakov  <ap@webkit.org>
11169
11170         Reviewed by Darin.
11171
11172         http://bugs.webkit.org/show_bug.cgi?id=14951
11173         REGRESSION: page interpreted as UTF-8 because of stray <?xml> after <head>
11174
11175         Test: fast/encoding/misplaced-xml-declaration.html
11176
11177         * loader/TextResourceDecoder.cpp:
11178         (WebCore::TextResourceDecoder::checkForHeadCharset): Only honor XML declaration
11179         at the very beginning of the file.
11180
11181 2007-08-13  Oliver Hunt  <oliver@apple.com>
11182
11183         rs=sam
11184
11185         Correct accidentally modified code.
11186
11187         * platform/mac/FontDataMac.mm:
11188         (WebCore::FontData::platformInit):
11189
11190 2007-08-13  Adele Peterson  <adele@apple.com>
11191
11192         Reviewed by Brady.
11193
11194         Fix for http://bugs.webkit.org/show_bug.cgi?id=14746
11195         <rdar://problem/5401041> REGRESSION: Form state not saved for forms that submit via HTTPS even if they do not contain a password field
11196
11197         * loader/FrameLoader.cpp: (WebCore::FrameLoader::saveDocumentState): Restore our old behavior that will save form state for secure forms.
11198           This will also match Firefox behavior.
11199
11200         * dom/Document.cpp: Removed secureFormAdded(), secureFormRemoved(), hasSecureForm() which are no longer used.
11201         * dom/Document.h:
11202         * html/HTMLFormElement.cpp:
11203         (WebCore::HTMLFormElement::attach):
11204         (WebCore::HTMLFormElement::parseMappedAttribute):
11205
11206 2007-08-13  Oliver Hunt  <oliver@apple.com>
11207
11208         Reviewed by Maciej.
11209
11210         <rdar://problem/5386183> REGRESSION (9A504-9A508): Underline of inline hole is too thin 
11211         on Japanese DotMac page
11212         
11213         Hack the line metrics for the Hiragino font families so that they always allow space for
11214         the marked text underline.
11215         
11216         * platform/mac/FontDataMac.mm:
11217         (WebCore::FontData::platformInit):
11218
11219 2007-08-13  David Hyatt  <hyatt@apple.com>
11220
11221         Reviewed by aroben
11222  
11223         <rdar://problem/5400446> messed up content on calendar.yahoo.com and my.yahoo.com
11224
11225         Fix some more bad assumptions about <html> being the first child of the document now that we
11226         properly support HTML5's model (where a comment node preceding <html> will in fact be its sibling).
11227
11228         * html/HTMLParser.cpp:
11229         (WebCore::HTMLParser::handleError):
11230         (WebCore::HTMLParser::createHead):
11231
11232 2007-08-13  Justin Garcia  <justin.garcia@apple.com>
11233
11234         Reviewed by Darin.
11235         
11236         <rdar://problem/5333725> -webkit-user-select: none makes selection difficult
11237         
11238         Let users create selections if they mouse down in a -webkit-user-select:none
11239         region, just (continue to) disallow selection endpoints in those regions, and
11240         don't paint those regions as selected if they are fully enclosed by a selection. 
11241         For example, in xxyyyxx where x is -webkit-user-select:none, a user can mouse down
11242         between the first two xs and drag across yyy to the second two xs to create a 
11243         selection xx^yyy^xx.
11244         
11245         * editing/SelectionController.cpp:
11246         (WebCore::SelectionController::selectAll): Allow selectAll inside a root
11247         that has -webkit-user-select:none, because it may contain content that
11248         is selectable (VisiblePosition and Selection creation will keep Selection
11249         endpoints out of -webkit-user-select:none regions).
11250         * page/EventHandler.cpp:
11251         (WebCore::EventHandler::selectClosestWordFromMouseEvent): Use canMouseDownStartSelect
11252         instead of the ambiguously named shouldSelect().
11253         (WebCore::EventHandler::handleMousePressEventTripleClick): Ditto.
11254         (WebCore::EventHandler::handleMousePressEventSingleClick): Ditto.
11255         (WebCore::EventHandler::updateSelectionForMouseDrag): Use canMouseDragExtendSelect.
11256         (WebCore::EventHandler::selectCursor): Paint an ibeam in -webkit-user-select:none regions,
11257         because you can click in those regions to create a selection.
11258         (WebCore::EventHandler::canMouseDownStartSelect): Now fires the selectStart event, and
11259         returns true in -webkit-user-select: none regions.
11260         (WebCore::EventHandler::canMouseDragExtendSelect): This is identical to 
11261         canMouseDownStartSelect because of 12823, even though it seems strange that we would fire 
11262         the selectStart event here.
11263         * page/EventHandler.h:
11264         * rendering/RenderObject.cpp:
11265         (WebCore::RenderObject::draggableNode): Only -webkit-user-select:ignore regions will
11266         prevent selection creation.
11267         * rendering/RenderObject.h:
11268
11269 2007-08-13  Anders Carlsson  <andersca@apple.com>
11270
11271         Reviewed by Maciej.
11272
11273         <rdar://problem/5360748>
11274         REGRESSION (r21002-r21003): Flash widget sniffer doesn't work (affects iWeb)
11275
11276         Don't check whether the document is being parsed or not, because the node list
11277         could be accessed after the document has finished parsing.
11278         
11279         * dom/Node.cpp:
11280         (WebCore::Node::registerNodeList):
11281
11282 2007-08-13  Lars Knoll  <lars@trolltech.com>
11283
11284         Reviewed by Simon.
11285
11286         no need to update regions that are not visible on the webpage.
11287
11288         * platform/qt/ScrollViewQt.cpp:
11289         (WebCore::ScrollView::updateContents):
11290
11291 2007-08-12  Maciej Stachowiak  <mjs@apple.com>
11292
11293         Reviewed by Darin and Sam.
11294         
11295         <rdar://problem/5395213> cross-domain access to individual components of location object should be denied.
11296
11297         * bindings/js/kjs_window.cpp:
11298         (KJS::Location::put): Add the appropriate cross-domain access checks.
11299
11300 2007-08-12  Darin Adler  <darin@apple.com>
11301
11302         Reviewed by John Sullivan.
11303
11304         - fix <rdar://problem/5403724> REGRESSION: text inputs are not scrolled to make inline input visible (14912)
11305
11306         * editing/Editor.h: Made setIgnoreMarkedTextSelectionChange no longer inline.
11307         It now has a side effect of revealing the selection when you set it to false.
11308         Added private revealSelectionAfterEditingOperation helper.
11309         * editing/Editor.cpp:
11310         (WebCore::Editor::deleteRange): Calls revealSelectionAfterEditingOperation instead
11311         of calling m_frame->revealSelection directly.
11312         (WebCore::Editor::replaceSelectionWithFragment): Ditto.
11313         (WebCore::Editor::insertOrderedList): Ditto.
11314         (WebCore::Editor::insertUnorderedList): Ditto.
11315         (WebCore::Editor::increaseSelectionListLevel): Ditto.
11316         (WebCore::Editor::increaseSelectionListLevelOrdered): Ditto.
11317         (WebCore::Editor::increaseSelectionListLevelUnordered): Ditto.
11318         (WebCore::Editor::decreaseSelectionListLevel): Ditto.
11319         (WebCore::Editor::insertLineBreak): Ditto.
11320         (WebCore::Editor::insertParagraphSeparator): Ditto.
11321         (WebCore::Editor::replaceMarkedText): Ditto.
11322         (WebCore::Editor::revealSelectionAfterEditingOperation): Added. Calls revealSelection,
11323         unless we are in the ignoreMarkedTextSelectionChange state. If we are in that state,
11324         we're in the middle of a composite editing operation and we shouldn't try to scroll
11325         to reveal the selection until the operation is done.
11326         (WebCore::Editor::setIgnoreMarkedTextSelectionChange): Made no longer inline. If
11327         changing the state from true to false, then calls revealSelectionAfterEditingOperation.
11328
11329         * WebCore.exp: Add new entry point for no-longer-inline setter function.
11330
11331 2007-08-12  Geoffrey Garen  <ggaren@apple.com>
11332
11333         Reviewed by Maciej Stachowiak, Dave Hyatt.
11334         
11335         Changed the dead resource LRU-SP algorithm to measure an object's
11336         total size, not just its encoded size. This will allow us to make 
11337         better decisions about what data to evict when the cache is small. For 
11338         example, the PLT can now run with a 16MB cache without fully evicting
11339         any resources.
11340         
11341         (Previously, we had assumed that decoded size would be an OK estimate
11342         of encoded size, but that is not true of GIF, whose decoded size can be 
11343         orders of magnitude greater than its encoded size.)
11344         
11345         Subtly, destroying a resource's decoded data now increases its recency 
11346         by moving it to the head of a smaller LRU list. This is slightly odd,
11347         but, since all resources get the same treatment, it shouldn't hurt 
11348         the eviction algorithm.
11349
11350         * history/PageCache.cpp:
11351         (WebCore::PageCache::releaseAutoreleasedPagesNow): Make sure that a
11352         dead resource eviction doesn't happen until we've released all of our
11353         dead pages. Otherwise, the cache will make terrible decisions about 
11354         what to evict because all of our dead resources will seem live.
11355
11356         * loader/Cache.cpp:
11357         (WebCore::Cache::Cache):
11358         (WebCore::Cache::pruneLiveResources):
11359         (WebCore::Cache::pruneDeadResources): Removed call to 
11360         removeFromLiveDecodedResourcesList because this happens automatically
11361         now as a part of the process of changing the resource's decoded size.
11362         (WebCore::Cache::lruListFor): *** The key change. *** Compute the 
11363         appropriate LRU list based on total size, not encoded size.
11364         (WebCore::Cache::dumpLRULists): Added debug logging function to help
11365         visualize the cache.
11366
11367         * loader/Cache.h:
11368         (WebCore::Cache::setDeadResourcePruneEnabled):
11369         (WebCore::Cache::deadResourcePruneEnabled):
11370
11371         * loader/CachedImage.cpp: Moved decoded size tracking code from here
11372         up into the base class. Currently, only CachedImage has a use for that
11373         functionality, but other subclasses might need it in the future, and
11374         the base class is already responsible for similar code related to 
11375         encoded size tracking.
11376         (WebCore::CachedImage::decodedSizeChanged):
11377         * loader/CachedImage.h:
11378
11379         * loader/CachedResource.cpp:
11380         (WebCore::CachedResource::CachedResource):
11381         (WebCore::CachedResource::setDecodedSize): Move us in the LRU-SP list
11382         just like setEncodedSize does, since decoded size counts now, too.
11383         (WebCore::CachedResource::setEncodedSize): Changed slightly to match
11384         the style of setDecodedSize.
11385
11386         * loader/CachedResource.h:
11387         (WebCore::CachedResource::decodedSize):
11388
11389 2007-08-11  Mitz Pettel  <mitz@webkit.org>
11390
11391         Reviewed by Darin.
11392
11393         - fix http://bugs.webkit.org/show_bug.cgi?id=13670
11394           <rdar://problem/5399619> Table misrender when one of the TDs has width=100%
11395
11396         Tests: fast/table/100-percent-cell-width.html
11397                fast/table/percent-widths-stretch.html
11398
11399         * rendering/AutoTableLayout.cpp:
11400         (WebCore::AutoTableLayout::calcPrefWidths): Changed the value used instead of
11401         0% to avoid division by zero from 1% to less than 0.01%. Removed code that
11402         added 0.5px to non-percent widths when calculating the scaling factor. The
11403         latter change is covered by the percent-widths-stretch test, where the new
11404         results match both WinIE 7 and Firefox 3.
11405
11406 2007-08-11  Darin Adler  <darin@apple.com>
11407
11408         Reviewed by Antti.
11409
11410         - fix <rdar://problem/5266535> REGRESSION: <img> inside <map> no longer allowed in strict mode
11411           (breaks chemicalelements.com)
11412
11413         Test: fast/parser/strict-img-in-map.html
11414
11415         * html/HTMLMapElement.cpp: (WebCore::HTMLMapElement::checkDTD): Removed FIXME saying this
11416         code is strange, since this code matches the HTML 4 specification almost exactly. Made
11417         <img> elements allowed even in strict mode and added small comments to clarify what comes
11418         from the DTD and what is non-standard.
11419
11420 2007-08-11  Holger Hans Peter Freyther  <zecke@selfish.org>
11421
11422         Reviewed by Anders.
11423
11424         Implement passing events to a subframe. The code is copied from
11425         the windows port and passSubframeEventToSubframe was removed as it
11426         is not called and it is not avilable in the windows port as well.
11427
11428         * page/gdk/EventHandlerGdk.cpp:
11429         (WebCore::EventHandler::passMousePressEventToSubframe):
11430         (WebCore::EventHandler::passMouseMoveEventToSubframe):
11431         (WebCore::EventHandler::passMouseReleaseEventToSubframe):
11432
11433 2007-08-11  Holger Hans Peter Freyther  <zecke@selfish.org>
11434
11435         Reviewed by Lars.
11436
11437         GdkEventKey::string is not supposed to be used. The length
11438         of this string is zero for non ascii characters. Use the
11439         gdk_unicode_to_keyval to convert the keyval to a UChar and construct
11440         a String. This change makes it possible to input non ascii
11441         characters.
11442
11443         * platform/gdk/KeyEventGdk.cpp:
11444         (WebCore::keyIdentifierForGdkKeyCode):
11445         (WebCore::singleCharacterString):
11446         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
11447
11448 2007-08-11  Andrew Wellington  <proton@wiretapped.net>
11449
11450         Reviewed by Mark Rowe.
11451         
11452         Fix http://bugs.webkit.org/show_bug.cgi?id=14645
11453         getPropertyValue should be case insensitive
11454         
11455         When we get the propertyID for a given string we convert to lowercase.
11456         
11457         This also applies to setProperty, removeProperty and others.
11458         
11459         * css/CSSStyleDeclaration.cpp:
11460         (WebCore::propertyID):
11461
11462 2007-08-11  Mark Rowe  <mrowe@apple.com>
11463
11464         Build fix.  Change "#ifdef PLATFORM(GDK)" to "#if PLATFORM(GDK)".
11465
11466         * page/FrameView.cpp:
11467         * page/FrameView.h:
11468
11469 2007-08-11  Holger Hans Peter Freyther  <zecke@selfish.org>
11470
11471         Reviewed by Adam.
11472
11473         Copy the WebFrame::layoutIfNeededRecursive method of the windows port
11474         to FrameView to be used by the Gtk+ port. Simplify the implementation due
11475         moving it to the FrameView class.
11476
11477         Implement the ScrollView::children() method for the Gtk+ port and make it
11478         available to the FrameView as children() is used within the layoutIfNeededRecursive method.
11479
11480         * page/FrameView.cpp:
11481         (WebCore::FrameView::layoutIfNeededRecursive):
11482         * page/FrameView.h:
11483         * platform/ScrollView.h:
11484         * platform/gdk/ScrollViewGdk.cpp:
11485
11486 2007-08-11  Holger Hans Peter Freyther  <zecke@selfish.org>
11487
11488         Reviewed by Adam.
11489
11490         To fix text selection make the PlatformMouseEvent set the pressed
11491         button even when moving the mouse.
11492         
11493         Add building of the WebKit::DragClient stubs as they are needed to
11494         make text selection work.
11495
11496         * WebCore.pro:
11497         * platform/gdk/MouseEventGdk.cpp:
11498         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
11499
11500 2007-08-10  Anders Carlsson  <andersca@apple.com>
11501
11502         Reviewed by Darin and Maciej.
11503
11504         <rdar://problem/5360748>
11505         REGRESSION(r21002-r21003) Flash widget sniffer doesn't work
11506         
11507         Add a per-document NodeList counter. When parsing, only call notifyNodeListsChildrenChanged
11508         if the document has node lists. Also, make sure to reset the cache when the node list count has 
11509         been 0 and a new node list is registered to avoid any stale cache information.
11510         
11511         * dom/ContainerNode.cpp:
11512         (WebCore::ContainerNode::addChild):
11513         * dom/Document.cpp:
11514         (WebCore::Document::Document):
11515         * dom/Document.h:
11516         (WebCore::Document::addNodeList):
11517         (WebCore::Document::removeNodeList):
11518         (WebCore::Document::hasNodeLists):
11519         * dom/Node.cpp:
11520         (WebCore::Node::registerNodeList):
11521         (WebCore::Node::unregisterNodeList):
11522
11523 2007-08-10  Timothy Hatcher  <timothy@apple.com>
11524
11525         Reviewed by Adam.
11526
11527         <rdar://problem/5394449> Stop using some Carbon UI APIs for 64 bit
11528
11529         Disable NPObject use in 64-bit on Mac OS X.
11530
11531         * Configurations/WebCore.xcconfig: Add a framework search path to the sub-framworks of Carbon.
11532         * WebCore.xcodeproj/project.pbxproj: Filter out the Frame::windowScriptNPObject() symbol in 64-bit.
11533         * bindings/objc/DOM.mm:
11534         (-[DOMElement _NPObject]): Return null in 64-bit.
11535         * config.h: Set WTF_USE_NPOBJECT to 0 in 64-bit Mac OS X.
11536         * page/Frame.cpp:
11537         (WebCore::Frame::cleanupScriptObjects): Add more #if USE(NPOBJECT) blocks where needed.
11538         * page/Frame.h: Ditto.
11539         * page/mac/FrameMac.mm:
11540         (WebCore::Frame::createScriptInstanceForWidget): Ditto.
11541         * page/mac/WebCoreFrameBridge.h: Ditto.
11542         * page/mac/WebCoreFrameBridge.mm: Ditto.
11543
11544 2007-08-10  Mitz Pettel  <mitz@webkit.org>
11545
11546         Reviewed by Justin.
11547
11548         - fix <rdar://problem/5397344> http://bugs.webkit.org/show_bug.cgi?id=14911
11549           REGRESSION: Clicking in pasted text doesn't position the insertion point correctly
11550
11551         Test: editing/selection/inline-closest-leaf-child.html
11552
11553         * rendering/RootInlineBox.cpp:
11554         (WebCore::RootInlineBox::closestLeafChildForXPos): Return the last leaf if
11555         it's the closest match, or if no other leaf matches (for example if all
11556         leaves are list markers or non-editable where editable is required).
11557
11558 2007-08-10  Anders Carlsson  <andersca@apple.com>
11559
11560         Reviewed by Geoff.
11561
11562         <rdar://problem/5390568> 
11563         REGRESSION: -[WebFrame loadHTMLString:baseURL:] leaks the data source.
11564         
11565         Revert the fix for <rdar://problem/5133420> which caused us to not cancel 
11566         substitute data loads. It's better to remove the assertion in the WebKit layer.
11567         
11568         * loader/ResourceLoader.cpp:
11569         (WebCore::ResourceLoader::didCancel):
11570
11571 2007-08-10  Sam Weinig  <sam@webkit.org>
11572
11573         Rubber-stamped by Adam Roben.
11574
11575         Fix Windows, Qt and Gtk build.
11576
11577         * WebCore.pro:
11578         * WebCore.vcproj/WebCore.vcproj:
11579
11580 2007-08-09  Sam Weinig  <sam@webkit.org>
11581
11582         Reviewed by Maciej.
11583
11584         Fix for <rdar://problem/5395618>
11585
11586         Use checkNodeSecurity when setting the 'src' or 'location' attribute of an
11587         iframe or frame element.  
11588
11589         * WebCore.xcodeproj/project.pbxproj:
11590         * bindings/js/JSAttrCustom.cpp: Added.
11591         (WebCore::JSAttr::setValue): Call checkNodeSecurity for attributes with a current iframe or frame
11592         ownerElement when setting src to a javascript: URL.
11593         * bindings/js/JSElementCustom.cpp: Added.
11594         (WebCore::allowSettingSrcToJavascriptURL):
11595         (WebCore::JSElement::setAttribute): Call checkNodeSecurity when element is a frame or iframe and 
11596         setting he src attribute to a javascript: URL.
11597         (WebCore::JSElement::setAttributeNode): Ditto.
11598         (WebCore::JSElement::setAttributeNS): Ditto.
11599         (WebCore::JSElement::setAttributeNodeNS): Ditto.
11600         * bindings/js/JSHTMLFrameElementCustom.cpp: Added.
11601         (WebCore::allowSettingJavascriptURL):
11602         (WebCore::JSHTMLFrameElement::setSrc): Call checkNodeSecurity when setting to a javascript: URL.
11603         (WebCore::JSHTMLFrameElement::setLocation): Ditto.
11604         * bindings/js/JSHTMLIFrameElementCustom.cpp: Added.
11605         (WebCore::JSHTMLIFrameElement::setSrc): Call checkNodeSecurity when setting to a javascript: URL.
11606         * bindings/scripts/CodeGeneratorJS.pm: Add support for [CustomGetter] and [CustomSetter]
11607         * dom/Attr.idl:
11608         * dom/Element.idl:
11609         * html/HTMLFrameElement.idl:
11610         * html/HTMLIFrameElement.idl:
11611
11612 2007-08-10  Holger Hans Peter Freyther  <zecke@selfish.org>
11613
11614         Reviewed by Anders.
11615
11616         Make the containingWindow a GtkContainer and make use of the
11617         GtkWidget::window instead of the GtkLayout::bin_window.
11618
11619         * platform/Widget.h:
11620         * platform/gdk/PlatformScreenGdk.cpp:
11621         (WebCore::screenDepth):
11622         * platform/gdk/ScrollViewGdk.cpp:
11623         (WebCore::ScrollView::updateContents):
11624         (WebCore::ScrollView::update):
11625         * platform/gdk/WidgetGdk.cpp:
11626         (WebCore::Widget::setContainingWindow):
11627         (WebCore::Widget::setCursor):
11628
11629 2007-08-10  Simon Hausmann  <hausmann@kde.org>
11630
11631         Reviewed by Lars.
11632
11633         Revert r24699 as it broke timers. The precision of QTime::toTime_t() is just seconds, which is not good enough. Revert back
11634         to the old implementation and use the simple implementation of currentTime() from win/ for the Qt/Windows build (fingers crossed :)
11635
11636         * WebCore.pro:
11637         * platform/qt/SystemTimeQt.cpp:
11638         (WebCore::currentTime):
11639
11640 2007-08-10  Simon Hausmann  <hausmann@kde.org>
11641
11642         Reviewed by Lars.
11643
11644         Recognize .htm as valid extension for text/html.
11645
11646         * platform/qt/MIMETypeRegistryQt.cpp:
11647         (WebCore::):
11648
11649 2007-08-10  Lars Knoll  <lars@trolltech.com>
11650
11651         Reviewed by Simon.
11652
11653         remove an assertion that leads to crashes. The whole design of WidgetQt and ScrollViewQt needs to be reevaluated soon anyways.
11654
11655         * platform/qt/ScrollViewQt.cpp:
11656
11657 2007-08-10  Mark Rowe  <mrowe@apple.com>
11658
11659         Fix the Mac build.
11660
11661         * ForwardingHeaders/bindings/runtime_object.h: Added.
11662
11663 2007-08-10  Simon Hausmann  <hausmann@kde.org>
11664
11665         Reviewed by Lars.
11666
11667         Make sure -fno-strict-aliasing is also added for mkspecs like linux-g++-64.
11668
11669         * WebCore.pro:
11670
11671 2007-08-10  Simon Hausmann  <hausmann@kde.org>
11672
11673         Reviewed by Lars.
11674
11675         Enable JavaScript bindings for HTML Object/Applet elements in the Qt port.
11676
11677         * WebCore.pro:
11678         * bindings/js/kjs_dom.cpp:
11679         * html/HTMLAppletElement.h:
11680         * html/HTMLEmbedElement.h:
11681         * page/qt/FrameQt.cpp:
11682         (WebCore::Frame::createScriptInstanceForWidget):
11683
11684 2007-08-10  Mitz Pettel  <mitz@webkit.org>
11685
11686         Reviewed by Dave Hyatt.
11687
11688         - fix http://bugs.webkit.org/show_bug.cgi?id=14798
11689           Incorrect bidi reordering of neutrals and digits after RTL embed
11690           and other bugs in the bidi algorithm.
11691
11692         Test: fast/text/international/bidi-neutral-run.html
11693
11694         Fixed several bugs in resolving the embedding level of runs of neutral
11695         characters. Changed the logic to rely on the eor direction only for
11696         the number types, and otherwise consider the last strong type.
11697
11698         * platform/BidiContext.h:
11699         (WebCore::BidiContext::BidiContext): Added an ASSERT.
11700         * platform/BidiResolver.h:
11701         (WebCore::::embed):
11702         (WebCore::::createBidiRunsForLine):
11703         * platform/graphics/GraphicsContext.cpp:
11704         (WebCore::TextRunIterator::atEnd): Changed to return true instead of
11705         crashing when called on the empty iterator.
11706
11707 2007-08-09  Mark Rowe  <mrowe@apple.com>
11708
11709         Reviewed by Antti.
11710
11711         <rdar://problem/5400709> Versioning in debug and release builds should include minor and tiny version before +
11712
11713         * Configurations/Version.xcconfig:
11714         * WebCore.xcodeproj/project.pbxproj: Add a shell script phase to make to dependency between
11715         Version.xcconfig and Info.plist explicit to Xcode.
11716
11717 2007-08-09  Mitz Pettel  <mitz@webkit.org>
11718
11719         Reviewed by Justin Garcia.
11720
11721         - fix http://bugs.webkit.org/show_bug.cgi?id=14347
11722           REGRESSION (r21291): Initiating a drag near the edge of a selection deselects it
11723
11724         Test: editing/selection/contains-boundaries.html
11725
11726         * editing/SelectionController.cpp:
11727         (WebCore::SelectionController::contains): Changed to return true for the
11728         selection boundaries too.
11729
11730 2007-08-09  Mitz Pettel  <mitz@webkit.org>
11731
11732         Reviewed by Dave Hyatt.
11733
11734         - fix http://bugs.webkit.org/show_bug.cgi?id=14742
11735           Document::recalcStyle(Force) called for every updateStyleIgnorePendingStylesheets while waiting for stylesheets
11736           <rdar://problem/5376306>
11737
11738         updateStyleSelector() is normally called when something changes that factors
11739         into the style selector. However, updateLayoutIgnorePendingStylesheets() calls it for
11740         a different reason, namely to account for all the preceding changes that were ignored
11741         because of the early return in updateStyleSelector(). After that, the early return
11742         can no longer occur, so changes are accounted for as they happen, and
11743         updateLayoutIgnorePendingStylesheets() does not need to call updateStyleSelector()
11744         again.
11745
11746         * dom/Document.cpp:
11747         (WebCore::Document::updateLayoutIgnorePendingStylesheets): Call updateStyleSelector()
11748         only before the first layout.
11749
11750 2007-08-09  Mitz Pettel  <mitz@webkit.org>
11751
11752         Reviewed by Adam Roben.
11753
11754         - fix http://bugs.webkit.org/show_bug.cgi?id=14362
11755           Opening a select list always highlights first element in list
11756
11757         * platform/win/PopupMenuWin.cpp:
11758         (WebCore::PopupWndProc): Track the mouse only inside the popup.
11759
11760 2007-08-09  Mitz Pettel  <mitz@webkit.org>
11761
11762         Reviewed by Dave Hyatt.
11763
11764         - fix http://bugs.webkit.org/show_bug.cgi?id=14875
11765           Textarea with nowrap - left/right nav, Up/down nav both hide text
11766
11767         Test: fast/layers/scroll-rect-to-visible.html
11768
11769         * rendering/RenderLayer.cpp:
11770         (WebCore::RenderLayer::scrollRectToVisible): Account for borders and scroll bars.
11771
11772 2007-08-09  Geoffrey Garen  <ggaren@apple.com>
11773
11774         Reviewed by Dave Hyatt.
11775         
11776         Refactored live decoded resource eviction to be more modular / 
11777         encapsulated. 
11778         
11779         This fixes one known place where we forgot to hook into the live 
11780         decoded eviction mechanism -- canvas. There might be other, unknown 
11781         places. In a canvas test page, which I broke off from the Safari 
11782         pageout test, I saw an RPRVT reduction of ~10MB.
11783         
11784         A few renames:
11785         - "m_lastLiveAccessTime" => "m_lastDecodedAccessTime" because the data
11786         point we're recording is access to the resource in decoded form.
11787         
11788         - "liveResourceAccessed" => "didAccessDecodedData" for the same reason.
11789
11790         - "pruneAllResources" => "pruneDeadResources" because this function 
11791         does not prune live resources.
11792         
11793         And the fix:
11794         Instead of updating cache metadata at the call site whenver drawing an 
11795         image, just have an image notify its observer whenever it draws. The 
11796         observer, which is a CachedResource, can then update the metadata.
11797         
11798         * loader/Cache.cpp: Renames
11799         * loader/Cache.h: Removed stale declarations, updated comments
11800         * loader/CachedImage.cpp:
11801         (WebCore::CachedImage::didDraw): Implemented didDraw to update cache
11802         metadata whenever our image draws.
11803         * loader/CachedImage.h: Grouped parts of the ImageObserver interface.
11804         * loader/CachedResource.cpp:
11805         (WebCore::CachedResource::CachedResource):
11806         (WebCore::CachedResource::deref):
11807         (WebCore::CachedResource::didAccessDecodedData): Made this function
11808         slightly more modular by allowing the caller to provide a time stamp.
11809         In theory, not all CachedResources will necessarily want to use the 
11810         current paint time stamp.
11811         * platform/graphics/cg/ImageCG.cpp:
11812         (WebCore::BitmapImage::draw): Notify our observer that we drew.
11813         (WebCore::Image::drawPattern): ditto
11814         * platform/graphics/cg/PDFDocumentImage.cpp:
11815         (WebCore::PDFDocumentImage::draw): ditto
11816         * platform/graphics/svg/SVGImage.cpp:
11817         (WebCore::SVGImage::draw): ditto
11818         
11819         Removed old code at image drawing call sites:
11820         
11821         * rendering/RenderBox.cpp:
11822         (WebCore::RenderBox::paintBackgroundExtended):
11823         * rendering/RenderImage.cpp:
11824         (WebCore::RenderImage::paint):
11825         * rendering/RenderListMarker.cpp:
11826         (WebCore::RenderListMarker::paint):
11827         * rendering/RenderObject.cpp:
11828         (WebCore::RenderObject::paintBorderImage):
11829
11830 2007-08-10  Holger Hans Peter Freyther  <zecke@selfish.org>
11831
11832         Reviewed by Adam.
11833
11834         Move the various *ClientGdk.{h,cpp} away from the WebCore directory as
11835         of http://bugs.webkit.org/show_bug.cgi?id=14727.
11836
11837         * WebCore.pro:
11838         * platform/gdk/TemporaryLinkStubs.cpp:
11839
11840 2007-08-09  Anders Carlsson  <andersca@apple.com>
11841
11842         Reviewed by Maciej.
11843
11844         <rdar://problem/5400029> iframes with an image src rarely load image
11845         
11846         Don't try to shrink standalone images in subframes. The resize event is not 
11847         sent for subframes which screws up the shrink-to-fit logic.
11848         
11849         * loader/ImageDocument.cpp:
11850         (WebCore::ImageDocument::createDocumentStructure):
11851         (WebCore::ImageDocument::imageChanged):
11852         (WebCore::ImageDocument::shouldShrinkToFit):
11853         * loader/ImageDocument.h:
11854
11855 2007-08-10  Holger Hans Peter Freyther  <zecke@selfish.org>
11856
11857         Reviewed by Adam.
11858
11859         Implement FrameLoaderClientGdk::createFrame mostly by copying
11860         the windows implementation. A method similiar to WebFrame::loadURLIntoChild
11861         was not introduced instead we have a simplified version similiar to the
11862         one of the Qt port.
11863
11864         Remove building of WebKit/gtk/webkitgtkframedata.{cpp,h}.
11865
11866         * WebCore.pro:
11867         * loader/gdk/FrameLoaderClientGdk.cpp:
11868         (WebCore::FrameLoaderClientGdk::createFrame):
11869
11870 2007-08-10  Holger Hans Peter Freyther  <zecke@selfish.org>
11871
11872         Reviewed by Adam.
11873
11874         Use the ScrollView/Widget design of the Windows port to only use one
11875         native window for the whole page. This will make it possible to implement
11876         FrameLoaderClientGdk::createFrame.
11877
11878         In contrast to the windows port the ScrollBars are GtkWidgets. To paint them
11879         at the right position we need to position them correctly. To not scroll the
11880         ScrollBar's belonging to the ScrollView a ScrollViewScrollbar is introduced with
11881         a different geometryChanged method.
11882
11883         To allow the Gtk+ way of scrolling the ScrollView allows to get GtkAdjustments
11884         set. In this case no ScrollViewScrollbar will be created.
11885
11886
11887         * platform/ScrollView.h:
11888         * platform/Widget.h:
11889         * platform/gdk/PlatformScreenGdk.cpp:
11890         (WebCore::screenDepth):
11891         * platform/gdk/PlatformScrollBar.h:
11892         * platform/gdk/PlatformScrollBarGdk.cpp:
11893         (PlatformScrollbar::PlatformScrollbar):
11894         (PlatformScrollbar::~PlatformScrollbar):
11895         (PlatformScrollbar::setRect):
11896         (PlatformScrollbar::geometryChanged):
11897         * platform/gdk/ScrollViewGdk.cpp:
11898         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
11899         (WebCore::ScrollView::ScrollViewPrivate::~ScrollViewPrivate):
11900         (WebCore::ScrollViewScrollbar::ScrollViewScrollbar):
11901         (WebCore::ScrollViewScrollbar::geometryChanged):
11902         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
11903         (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
11904         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
11905         (WebCore::ScrollView::ScrollViewPrivate::adjustmentChanged):
11906         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
11907         (WebCore::ScrollView::ScrollViewPrivate::windowClipRect):
11908         (WebCore::ScrollView::setGtkAdjustments):
11909         (WebCore::ScrollView::updateContents):
11910         (WebCore::ScrollView::update):
11911         (WebCore::ScrollView::visibleWidth):
11912         (WebCore::ScrollView::resizeContents):
11913         (WebCore::ScrollView::contentsX):
11914         (WebCore::ScrollView::scrollOffset):
11915         (WebCore::ScrollView::maximumScroll):
11916         (WebCore::ScrollView::scrollBy):
11917         (WebCore::ScrollView::suppressScrollbars):
11918         (WebCore::ScrollView::setHScrollbarMode):
11919         (WebCore::ScrollView::setVScrollbarMode):
11920         (WebCore::ScrollView::setScrollbarsMode):
11921         (WebCore::ScrollView::setFrameGeometry):
11922         (WebCore::ScrollView::addChild):
11923         (WebCore::ScrollView::removeChild):
11924         (WebCore::ScrollView::scrollRectIntoViewRecursively):
11925         (WebCore::ScrollView::wheelEvent):
11926         (WebCore::ScrollView::updateScrollbars):
11927         (WebCore::ScrollView::windowToContents):
11928         (WebCore::ScrollView::contentsToWindow):
11929         (WebCore::ScrollView::scrollbarUnderMouse):
11930         (WebCore::ScrollView::convertChildToSelf):
11931         (WebCore::ScrollView::convertSelfToChild):
11932         (WebCore::ScrollView::paint):
11933         (WebCore::ScrollView::geometryChanged):
11934         (WebCore::ScrollView::scroll):
11935         (WebCore::ScrollView::addToDirtyRegion):
11936         (WebCore::ScrollView::scrollBackingStore):
11937         (WebCore::ScrollView::updateBackingStore):
11938         * platform/gdk/WidgetGdk.cpp:
11939         (WebCore::WidgetPrivate::gdkDrawable):
11940         (WebCore::Widget::Widget):
11941         (WebCore::Widget::setContainingWindow):
11942         (WebCore::Widget::containingWindow):
11943         (WebCore::Widget::frameGeometry):
11944         (WebCore::Widget::setFrameGeometry):
11945         (WebCore::Widget::setParent):
11946         (WebCore::Widget::parent):
11947         (WebCore::Widget::setCursor):
11948         (WebCore::Widget::show):
11949         (WebCore::Widget::hide):
11950         (WebCore::Widget::removeFromParent):
11951         (WebCore::Widget::paint):
11952         (WebCore::Widget::invalidate):
11953         (WebCore::Widget::invalidateRect):
11954         (WebCore::Widget::convertToContainingWindow):
11955         (WebCore::Widget::convertFromContainingWindow):
11956         (WebCore::Widget::convertChildToSelf):
11957         (WebCore::Widget::convertSelfToChild):
11958         (WebCore::Widget::suppressInvalidation):
11959         (WebCore::Widget::setSuppressInvalidation):
11960
11961 2007-08-09  Adele Peterson  <adele@apple.com>
11962
11963         Fix by Brady, reviewed by me.
11964
11965         Fix for <rdar://problem/5380697> connection:willSendRequest:redirectResponse: is called on every NSURLConnection
11966
11967         * platform/network/mac/ResourceHandleMac.mm: (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
11968           Work around a behavior change in CFNetwork where willSendRequest gets called more often by returning early.
11969
11970 2007-08-09  Darin Adler  <darin@apple.com>
11971
11972         Reviewed by Antti.
11973
11974         - fix <rdar://problem/4889753> REGRESSION: Selection doesn't continue with drag selecting
11975           when autoscrolling vertically (in Notes as well as Safari)
11976
11977         The bug doesn't happen inside DumpRenderTree, so I was unable to make an automated
11978         regression test.
11979
11980         * manual-tests/autoscroll-when-outside-window.html: Added.
11981
11982         * rendering/RenderLayer.cpp: (WebCore::RenderLayer::autoscroll): Removed unneeded null
11983         check for the layer's renderer and the document, neither of which can be null. Call
11984         the new updateSelectionForMouseDrag instead of doing selection updating here.
11985
11986         * page/EventHandler.h:
11987         * page/EventHandler.cpp:
11988         (WebCore::EventHandler::handleMouseDraggedEvent): Refactored most of the logic
11989         about updating the selection into updateSelectionForMouseDrag.
11990         (WebCore::EventHandler::updateSelectionForMouseDrag): Added. The public version of
11991         this function takes no parameters, and is for use from auto-scrolling code. The
11992         private version of this function takes node and point parameters and contains the
11993         shared code, including everything from updateSelectionForMouseDragOverPosition.
11994         Aside from the code motion, variable name changes, and sharing more code, this
11995         differs from the old code in RenderLayer::autoscroll in the following ways:
11996
11997           1) The old code did hit testing only in the layer that was auto-scrolling,
11998              and the new code instead starts the hit testing at the root layer, which is
11999              better because it's the same thing we do for mouse moved events. Further,
12000              the code to do this by calling convertToLayerCoords had a bug  because the
12001              x and y variables were uninitialized.
12002           2) The old code passed false for active to HitTestRequest, which was wrong.
12003              The new code passes true. This flag needs to be true for hit testing done
12004              while the mouse is down and false for hit testing done while the mouse is up.
12005           3) The old code did not have the SVG-specific logic to match the mouse moved case.
12006           4) The old code wouldn't do any selection updating if the return value from hitTest
12007              was false, which is incorrect. The new code ignores the return value as it should.
12008
12009 2007-08-08  Beth Dakin  <bdakin@apple.com>
12010
12011         Reviewed by Geoff Garen.
12012
12013         Fx for <rdar://problem/5286443>, http://bugs.webkit.org/
12014         show_bug.cgi?id=14268 REGRESSION: Radio buttons don't stay selected 
12015         due to unclosed <label> tags
12016
12017         This patch maintains the behavior that allows <label> tags to nest. 
12018         This matches WinIE, and appears to match the spec, since the spec 
12019         does not explicitly say that they cannot nest. It fixes the bug 
12020         instead by calling setDefaultHandled() in two places it should have 
12021         been called anyway. This keeps the appropriate button checked as 
12022         the event bubbles.
12023
12024         * html/HTMLInputElement.cpp:
12025         (WebCore::HTMLInputElement::postDispatchEventHandler):
12026         * html/HTMLLabelElement.cpp:
12027         (WebCore::HTMLLabelElement::defaultEventHandler):
12028
12029 2007-08-08  Justin Garcia  <justin.garcia@apple.com>
12030
12031         Reviewed by Oliver.
12032
12033         <rdar://problem/5387578> Crash at ReplaceSelectionCommand::doApply() when pasting just after table cell content
12034         
12035         ReplaceSelectionCommand::doApply() inserts a line break before insertion
12036         to prevent block nesting.  InsertLineBreakCommand::doApply was accidently
12037         destroying a text node when it removed insignificant whitespace and then
12038         setting a nil endingSelection().
12039
12040         * editing/InsertLineBreakCommand.cpp:
12041         (WebCore::InsertLineBreakCommand::doApply): If insignificant whitespace
12042         removal removes textNode from the document, insert a text node containing
12043         the non-breaking space we were attempting to insert and then insert it
12044         at the position that the removed textNode occupied.
12045
12046 2007-08-08  Geoffrey Garen  <ggaren@apple.com>
12047
12048         Reviewed by Maciej Stachowiak.
12049
12050         Added a thrash check to live decoded resource eviction.
12051         
12052         Here's the strategy: Stamp every image with its paint time. Don't evict 
12053         a live decoded resource until another resource paints with a reasonably
12054         (1 second) larger time stamp. 
12055         
12056         If no other resource paints, or another resource paints, but very soon 
12057         after the resource in question, the resource in question is very likely 
12058         to paint again soon. In fact, it's probably still on screen. So we 
12059         leave it alone. (Previously, we evicted it on a timer, but that would 
12060         evict a resource that was still on screen, hurting speed without 
12061         helping memory use.)
12062
12063         In theory, this algorithm allows a single large resource or closely 
12064         related set of resources to linger in the live decoded cache even 
12065         though the cache is over its limit. However, that can only happen as 
12066         long as no other resource ever paints again, which guarantees an 
12067         absolute cap on cache memory usage from then on. Also, the resources 
12068         will only linger as long as they remain live. Upon going dead, they 
12069         will flush. Also, these circumstances are so rare that they are almost 
12070         impossible to encounter in the wild. So don't sweat it.
12071         
12072         Stop evicting if the next resource painted too recently:
12073         
12074         * loader/Cache.cpp:
12075         (WebCore::Cache::pruneLiveResources):
12076         * loader/CachedResource.cpp:
12077         (WebCore::CachedResource::CachedResource):
12078         (WebCore::CachedResource::liveResourceAccessed):
12079         * loader/CachedResource.h:
12080
12081         Track the paint time stamp in Frame. We do this to give a consistent
12082         stamp to all resources painted in a single paint operation (in case the
12083         operation takes a significant amount of time), and to avoid excessive 
12084         calls to system time functions, which hurt the PLT:
12085
12086         * page/Frame.cpp:
12087         (WebCore::Frame::paint):
12088         * page/Frame.h:
12089         (WebCore::Frame::currentPaintTimeStamp):
12090
12091 2007-08-08  Sam Weinig  <sam@webkit.org>
12092
12093         Reviewed by Adam Roben.
12094
12095         Update project file to reflect the moving of character-sets.txt
12096         and make-charset-table.pl to platform/mac a while ago.
12097
12098         * WebCore.xcodeproj/project.pbxproj:
12099
12100 2007-08-08  Justin Garcia  <justin.garcia@apple.com>
12101
12102         Reviewed by Harrison.
12103
12104         <rdar://problem/5390681> WebKit asserts when deleting To Do content selected with a double-click
12105         
12106         * dom/Position.cpp:
12107         (WebCore::Position::trailingWhitespacePosition): Use VisiblePosition::characterAfter
12108         to look for a trailing space.  The old code would incorrectly return a position before
12109         a non-editable space if it had a collapsed space before it.
12110
12111 2007-08-08  Sam Weinig  <sam@webkit.org>
12112
12113         Reviewed by Brady.
12114
12115         Make protocol and host compares case-insensitive.
12116
12117         * bindings/js/kjs_window.cpp:
12118         (KJS::Window::isSafeScript):
12119         * dom/Document.cpp:
12120         (WebCore::Document::initSecurityPolicyURL):
12121         * platform/DeprecatedString.cpp:
12122         (WebCore::equalIgnoringCase):
12123         * platform/DeprecatedString.h:
12124         (WebCore::equalIgnoringCase):
12125
12126 2007-08-08  Justin Garcia  <justin.garcia@apple.com>
12127
12128         Reviewed by Harrison.
12129
12130         <rdar://problem/5390681> WebKit asserts when deleting To Do content selected with a double-click
12131
12132         * dom/Position.cpp:
12133         (WebCore::Position::leadingWhitespacePosition): Added checks to prevent expansion across editable an boundary.
12134         (WebCore::Position::trailingWhitespacePosition): Ditto.
12135
12136 2007-08-08  Adele Peterson  <adele@apple.com>
12137
12138         Reviewed by John.
12139
12140         Fix for <rdar://problem/5393798> 100% reproducible crash in WebCore::Scrollbar::setValue
12141
12142         * page/EventHandler.cpp: (WebCore::EventHandler::handleMousePressEvent):
12143           If the hit testing originally determined the event was in a scrollbar, 
12144           refetch the MouseEventWithHitTestResults in case the scrollbar widget was destroyed when the mouse event was handled.
12145
12146 2007-08-08  Sam Weinig  <sam@webkit.org>
12147
12148         Reviewed by Geoff Garen.
12149
12150         Fix for <rdar://problem/5354635>
12151
12152         Match Firefox's model for data: URLs by not allowing them script access
12153         to any frames other then itself.
12154
12155         * bindings/js/kjs_window.cpp:
12156         (KJS::Window::isSafeScript):
12157         * dom/Document.cpp:
12158         (WebCore::Document::initSecurityPolicyURL):
12159
12160 2007-08-08  Darin Adler  <darin@apple.com>
12161
12162         Reviewed by Kevin Decker.
12163
12164         - fix for <rdar://problem/5390708> CrashTracer: [USER] 27 crashes in Safari at
12165           com.apple.WebCore: WTF::HashMap<etc>::set + 68, beneath pruneUnretainedIconsAtStartup
12166
12167         * loader/icon/IconDatabase.cpp: (WebCore::IconDatabase::pruneUnretainedIconsOnStartup):
12168         Eliminate an unnecessary HashMap from the implementation; we can just use the
12169         m_pageURLToRetainCount map directly. This simplifies the code and allows us to handle
12170         the empty string, which otherwise poses a problem for HashMap.
12171
12172 2007-08-08  Antti Koivisto  <antti@apple.com>
12173
12174         Reviewed by Darin.
12175         
12176         Fix for <rdar://problem/5391576>
12177         Malformed table innerHTML causes Safari to crash in HTMLParser::handleError (14894)
12178         
12179         Add null checks to protect against 
12180         
12181         e.innerHTML = "<tr>text</tr>";
12182         
12183         type cases. Normal assumptions about document tree structure don't hold when parsing 
12184         fragments. Results don't match Firefox in all cases. It seems to have some sort of 
12185         anything-goes fragment parsing mode.
12186         
12187         * html/HTMLParser.cpp:
12188         (WebCore::HTMLParser::handleError):
12189
12190 2007-08-07  Kevin McCullough  <kmccullough@apple.com>
12191
12192         Reviewed by Maciej and Hyatt.
12193
12194         - <rdar://problem/4976879> REGRESSION: Safari doesn't work with Zimbra enhanced login.
12195         - Reverting a previous change, and modifying how documents are created so that we better match other browsers behavior with respect to namespaceURIs.
12196
12197         * WebCore.xcodeproj/project.pbxproj:
12198         * dom/DOMImplementation.cpp:
12199         (WebCore::DOMImplementation::createDocument):
12200         * dom/Document.cpp:
12201         (WebCore::Document::Document):
12202         (WebCore::Document::createElement):
12203         * dom/Document.h:
12204         * html/HTMLDocument.cpp:
12205         (WebCore::HTMLDocument::createElement):
12206         * html/HTMLDocument.h:
12207
12208 2007-08-08  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
12209
12210         Reviewed and landed by Brady
12211
12212         Fixes <http://bugs.webkit.org/show_bug.cgi?id=13422>
12213
12214         Bug 13422: REGRESSION: Page reload loses page position
12215
12216         * loader/FrameLoader.cpp:
12217         (WebCore::FrameLoader::updateHistoryForReload):
12218
12219 2007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
12220
12221         Reviewed by Niko.
12222
12223         Be paranoid and disconnect from the signal before going away.
12224
12225         * platform/gdk/PlatformScrollBarGdk.cpp:
12226         (PlatformScrollbar::~PlatformScrollbar):
12227
12228 2007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
12229
12230         Reviewed by Niko.
12231
12232         Use GraphicsContext::translatePoint in RenderThemeGdk to paint at the
12233         right position.
12234         This is needed as the Gtk+ theming code does not know about the translation
12235         of the GraphicsContext.
12236
12237         * platform/gdk/RenderThemeGdk.cpp:
12238         (WebCore::RenderThemeGdk::paintCheckbox):
12239         (WebCore::RenderThemeGdk::paintRadio):
12240         (WebCore::RenderThemeGdk::paintButton):
12241
12242 2007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
12243
12244         Reviewed by Niko.
12245
12246         Implement Widget::paint for the Gtk port. This is needed to paint
12247         Widgets in z-order. The original GdkEventExpose is stored within the
12248         GraphicsContext and then used to draw the children. This is similiar
12249         to gtk_container_propagate_expose but we try to honor the GraphicsConntext
12250         translation.
12251
12252         * platform/gdk/WidgetGdk.cpp:
12253         (WebCore::Widget::paint):
12254         * platform/graphics/GraphicsContext.h:
12255         * platform/graphics/cairo/GraphicsContextCairo.cpp:
12256         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
12257         (WebCore::GraphicsContext::setGdkExposeEvent):
12258         (WebCore::GraphicsContext::gdkExposeEvent):
12259         (WebCore::GraphicsContext::gdkDrawable):
12260         (WebCore::GraphicsContext::translatePoint):
12261
12262 2007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
12263
12264         Reviewed by Oliver Hunt.
12265
12266         Implement PlatformScrollbar by calling ScrollBar::setValue from 
12267         gtkValueChange connected to the value-changed signal of the
12268         GtkAdjustment.
12269         Update 'value' of the GtkAdjustment in updateThumbPosition and
12270         set upper, page-increment, step-increment and page_size in
12271         updateThumbProportion.
12272
12273         This is from bug http://bugs.webkit.org/show_bug.cgi?id=14795.
12274
12275         * platform/gdk/PlatformScrollBar.h:
12276         * platform/gdk/PlatformScrollBarGdk.cpp:
12277         (PlatformScrollbar::PlatformScrollbar):
12278         (PlatformScrollbar::updateThumbPosition):
12279         (PlatformScrollbar::updateThumbProportion):
12280         (PlatformScrollbar::gtkValueChanged):
12281
12282 2007-08-07  Geoffrey Garen  <ggaren@apple.com>
12283
12284         Reviewed by Maciej Stachowiak. Based on earlier review from Dave Hyatt.
12285
12286         First chunk of work for <rdar://problem/5326009> Make non-browser 
12287         WebKit clients have no memory cache, or a very tiny one
12288         
12289         Layout tests pass.
12290         
12291         Removed decodedSizeWillChange mechanism because my last patch to
12292         change the live resources list to a strict LRU model made that code
12293         vestigial.
12294         
12295         Renamed "liveResourcesList" and related stuff => 
12296         "liveDecodedResourcesList" because only live resources with decoded 
12297         data are kept in the list.
12298
12299         * loader/CachedImage.cpp:
12300         (WebCore::CachedImage::decodedSizeChanged): Only add ourselves to the
12301         list if we're live, our decoded size has grown, and we're not in the 
12302         list already. (Otherwise, either we're not live, we're not decoded,
12303         or we're already in the list.)
12304
12305         * loader/CachedResource.cpp:
12306         (WebCore::CachedResource::liveResourceAccessed): Only re-insert
12307         ourselves into the list if we're already there. (In theory, this should
12308         be always, but it's a little more clear to check.)
12309
12310 2007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
12311
12312         Reviewed by Adam.
12313
12314         Kill class FrameGdk and move the stubs to page/gdk/FrameGdk.cpp and the
12315         remainings into WebKitGtkFrame.
12316         The DRT functionality of class FrameGdk is currently lost.
12317
12318         * WebCore.pro:
12319         * loader/gdk/FrameLoaderClientGdk.cpp:
12320         * loader/gdk/FrameLoaderClientGdk.h:
12321         * page/gdk/FrameGdk.cpp: Renamed from WebCore/platform/gdk/FrameGdk.cpp.
12322         (WebCore::Frame::issueTransposeCommand):
12323         (WebCore::Frame::cleanupPlatformScriptObjects):
12324         (WebCore::Frame::dragImageForSelection):
12325         (WebCore::Frame::dashboardRegionsChanged):
12326         * platform/gdk/FrameGdk.h: Removed.
12327         * platform/gdk/TemporaryLinkStubs.cpp: Removed Frame stub, added the loadResourceIntoArray stub
12328         * platform/gdk/WidgetGdk.cpp:
12329
12330 2007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
12331
12332         Reviewed by Adam.
12333
12334         Remove the event handling code and move it to WebKit/gtk/Api/webkitgtkpage.cpp
12335
12336         * platform/gdk/FrameGdk.cpp:
12337         * platform/gdk/FrameGdk.h:
12338
12339 2007-08-07  Holger Hans Peter Freyther  <zecke@selfish.org>
12340
12341         Reviewed by Niko.
12342
12343         Switch from the generic union GdkEvent to the specific struct GdkEvent*. This is needed
12344         to make WebKitGtkPage handle the events by reimplementing the default handlers in the near
12345         future.
12346
12347         * platform/PlatformKeyboardEvent.h:
12348         * platform/PlatformMouseEvent.h:
12349         * platform/PlatformWheelEvent.h:
12350         * platform/gdk/FrameGdk.cpp:
12351         (WebCore::FrameGdk::handleGdkEvent):
12352         * platform/gdk/KeyEventGdk.cpp:
12353         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
12354         * platform/gdk/MouseEventGdk.cpp:
12355         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
12356         * platform/gdk/WheelEventGdk.cpp:
12357         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
12358
12359 2007-08-07  George Staikos  <staikos@kde.org>
12360
12361         Some QStyles don't handle negative maximum well (crash)
12362
12363         * platform/qt/PlatformScrollBarQt.cpp:
12364         (WebCore::PlatformScrollbar::paint):
12365
12366 2007-08-07  Antti Koivisto  <antti@apple.com>
12367
12368         Reviewed by Hyatt.
12369
12370         Fix <rdar://problem/5102553>
12371         Mail spins trying to display or edit a specific long plain text message in WebCore::TimerBase::...
12372
12373         Calling removeLeftoverAnonymousBoxes() from RenderBlock::addChildToFlow() made adding children
12374         O(n^2) in simple cases (repeated <div><div></div></div> for example).
12375         
12376         I couldn't find any limited fix so here is a more complete one. It removes iterating/recursing 
12377         removeLeftoverAnonymousBoxes() method altogether. Instead of hunting around wildly, just get 
12378         rid of anonymous boxes with block children when they occur.
12379
12380         * rendering/RenderBlock.cpp:
12381         (WebCore::RenderBlock::addChildToFlow):
12382         * rendering/RenderButton.h:
12383         (WebCore::RenderButton::removeLeftoverAnonymousBlock):
12384         * rendering/RenderContainer.cpp:
12385         (WebCore::RenderContainer::removeLeftoverAnonymousBlock):
12386         * rendering/RenderContainer.h:
12387         * rendering/RenderObject.cpp:
12388         (WebCore::RenderObject::handleDynamicFloatPositionChange):
12389         (WebCore::RenderObject::removeLeftoverAnonymousBlock):
12390         * rendering/RenderObject.h:
12391         * rendering/RenderTextControl.h:
12392         (WebCore::RenderTextControl::removeLeftoverAnonymousBlock):
12393
12394 2007-08-06  Sam Weinig  <sam@webkit.org>
12395
12396         Reviewed by Maciej.
12397
12398         Fix for <rdar://problem/5354689>
12399
12400         - Use document variable to determine permissions instead
12401           of traversing the frame tree. 
12402
12403         * bindings/js/kjs_window.cpp:
12404         (KJS::Window::isSafeScript):
12405         * dom/Document.cpp:
12406         (WebCore::Document::Document):
12407         (WebCore::Document::initSecurityPolicyURL):
12408         * dom/Document.h:
12409         (WebCore::Document::securityPolicyURL):
12410         * loader/FrameLoader.cpp:
12411         (WebCore::FrameLoader::setOpener): We must re-initialize the
12412         safeScript URL when setting the opener because the opener was
12413         not known at Document construction.
12414
12415 2007-08-06  David Hyatt  <hyatt@apple.com>
12416
12417         Make sure to clear out the parent of the ellipsis box so that it doesn't
12418         trigger the consistency check for line boxes.
12419
12420         Reviewed by darin
12421
12422         * ChangeLog:
12423         * rendering/RootInlineBox.cpp:
12424         (WebCore::RootInlineBox::detachEllipsisBox):
12425
12426 2007-08-06  David Hyatt  <hyatt@apple.com>
12427
12428         Back out fix for <rdar://problem/5366582> and replace it with the correct
12429         fix.  Make sure to delete the line box tree before splitting an inline flow
12430         into a continuation.  The added layout test for the original checkin covers
12431         the problem.
12432
12433         Reviewed by beth
12434
12435         * rendering/RenderBlock.cpp:
12436         (WebCore::RenderBlock::makeChildrenNonInline):
12437         Back out fix.
12438
12439         * rendering/RenderFlow.cpp:
12440         (WebCore::RenderFlow::destroy):
12441         Back out fix.
12442
12443         * rendering/RenderInline.cpp:
12444         (WebCore::RenderInline::splitFlow):
12445         Here's the new fix.
12446
12447 2007-08-06  Geoffrey Garen  <ggaren@apple.com>
12448
12449         Reviewed by Darin Adler.
12450         
12451         Touching a file to force a re-build.
12452
12453 2007-08-06  Darin Adler  <darin@apple.com>
12454
12455         - fix release build
12456
12457         * rendering/RenderText.h: (WebCore::RenderText::checkConsistency):
12458         Add missing const.
12459
12460 2007-08-06  Darin Adler  <darin@apple.com>
12461
12462         Reviewed by Maciej.
12463
12464         - fix <rdar://problem/5366582> crash on it.eurosport.yahoo.com page
12465
12466         Test: fast/dynamic/inline-to-block-crash.html
12467
12468         I added some consistency checks for the line box tree, which helped me figure out
12469         what was going on with this bug pretty quickly.
12470
12471         * rendering/RenderBlock.cpp: (WebCore::RenderBlock::makeChildrenNonInline):
12472         This is the actual fix. If the block needs layout, then don't try to delete the line
12473         box tree because it's going to be rebuilt as part of layout. More importantly, the
12474         child list in the tree is no good, so we will crash if we try to delete here.
12475
12476         * rendering/RenderFlow.cpp: (WebCore::RenderFlow::destroy):
12477         Here's a second fix. We have the same issue in the code that handles anonymous
12478         blocks -- if it's already running as part of layout, we can't walk through the
12479         already partly destroyed line box tree. This crashed in one of the layout tests.
12480
12481         * rendering/InlineBox.h: Made more fields private, since I wanted to do a bit more
12482         work in setters. Made setNextOnLine() and setPrevOnLine() assert that the box has a
12483         parent. Made parent() assert that the parent is good. Also removed the unused
12484         isChildOfParent() function.
12485         * rendering/InlineBox.cpp: (WebCore::InlineBox::~InlineBox): At destruction time, if
12486         we are still attached to a parent, tag that parent as having a "bad" child list.
12487
12488         * rendering/InlineFlowBox.h: Added m_reasonForBadChildList, checkConsistency(),
12489         setHasBadChildList(), and hasBadChildList(). Also changed firstChild() and lastChild() so
12490         they call checkConsistency() and made all the fields private instead of protected.
12491         * rendering/InlineFlowBox.cpp:
12492         (WebCore::InlineFlowBox::addToLine): Added consistency checks before and after adding a
12493         box to the line. Also checked that next and prev start out as 0. Changed manipulation of
12494         next and prev to use accessor functions.
12495         (WebCore::InlineFlowBox::removeChild): Added consistency checks before and after removing
12496         the box from the line.
12497         (WebCore::InlineFlowBox::deleteLine): Use firstChild() instead of getting at m_firstChild
12498         directly so we get a consistency check. Also set the parent to 0 before destroying so that
12499         the assertion in ~InlineBox will work properly.
12500         (WebCore::InlineFlowBox::extractLine): Ditto.
12501         (WebCore::InlineFlowBox::attachLine): Ditto.
12502         (WebCore::InlineFlowBox::adjustPosition): Ditto.
12503         (WebCore::InlineFlowBox::checkConsistency): Added. Checks consistency of the child list by
12504         looking at the parent, next, and prev pointers. Also asserts that we are not yet in the
12505         "bad" child list state, which happens if one of our children is destroyed without removing
12506         it from our list; that's normal, but once it happens we can't look at our child list again.
12507
12508         * rendering/InlineTextBox.h:
12509         * rendering/InlineTextBox.cpp: Remove unnneeded destroy/new/delete functions -- these are
12510         inherited from the InlineBox base class and don't need to be defined again.
12511
12512         * rendering/RenderFlow.h:
12513         * rendering/RenderFlow.cpp:
12514         (WebCore::RenderFlow::~RenderFlow): Assert that there are no children to confirm that we
12515         didn't leak something.
12516         (WebCore::RenderFlow::extractLineBox): Added consistency checks before and after removing
12517         a run of boxes from the list.
12518         (WebCore::RenderFlow::attachLineBox): Added consistency checks before and after adding
12519         a box to the list.
12520         (WebCore::RenderFlow::removeLineBox): Added consistency checks before and after removing
12521         a box from the list.
12522         (WebCore::RenderFlow::createInlineBox): Added consistency checks before and after adding
12523         a box to the list.
12524         (WebCore::RenderFlow::checkConsistency): Added.
12525
12526         * rendering/RenderText.h:
12527         * rendering/RenderText.cpp:
12528         (WebCore::RenderText::~RenderText): Assert that there are no children to confirm that we
12529         didn't leak something.
12530         (WebCore::RenderText::extractTextBox): Added consistency checks before and after removing
12531         a run of boxes from the list.
12532         (WebCore::RenderText::attachTextBox): Added consistency checks before and after adding
12533         a box to the list.
12534         (WebCore::RenderText::removeTextBox): Added consistency checks before and after removing
12535         a box from the list.
12536         (WebCore::RenderText::deleteTextBoxes): Added code to call setHasBadChildList since this
12537         destroys line boxes without informing the parent.
12538         (WebCore::RenderText::checkConsistency): Added.
12539
12540 2007-08-06  Adele Peterson  <adele@apple.com>
12541
12542         Reviewed by Darin.
12543
12544         Fix for <rdar://problem/5382483> REGRESSION: <select> element's text is clipped when a CSS line-height is specified
12545
12546         Don't honor line-height for styled popup buttons.  We already don't honor line-height for unstyled popups
12547         and since IE and FF don't honor it at all for popups, we shouldn't either.
12548
12549         * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::adjustMenuListButtonStyle):
12550         * rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::adjustMenuListButtonStyle):
12551
12552 2007-08-06  Antti  <antti@apple.com>
12553
12554         Reviewed by Darin.
12555
12556         Fix <rdar://problem/5378214>
12557         Mail crashes at RenderLayer::paintLayer() when dragging a selection over To Do text
12558         
12559         ObjC interface does not guarantee that Document::updateRendering() gets called after
12560         modification are made to document. This can lead to situation where paint()
12561         is invoked with document still dirty which can then crash in number of interesting ways.
12562         
12563         - add hasChangedChild() as needsLayout() condition. layout() will then call recalcStyle() 
12564           catching most cases and making sure document is not dirty when entering painting.
12565         - protect recalcStyle() and layout() from being executed during painting. There are some
12566           cases needsLayout() protection does not cover.
12567         
12568         No layout test, these states are very hard or impossible to reach using Javascript interface
12569         (which generally guarantees that updateRendering() is done right after execution).
12570
12571         * dom/Document.cpp:
12572         (WebCore::Document::recalcStyle):
12573         * page/Frame.cpp:
12574         (WebCore::Frame::paint):
12575         (WebCore::Frame::setPaintRestriction):
12576         (WebCore::Frame::isPainting):
12577         (WebCore::FramePrivate::FramePrivate):
12578         * page/Frame.h:
12579         * page/FramePrivate.h:
12580         * page/FrameView.cpp:
12581         (WebCore::FrameView::layout):
12582         (WebCore::FrameView::needsLayout):
12583
12584 2007-08-05  Maciej Stachowiak  <mjs@apple.com>
12585
12586         Reviewed by Darin Adler.
12587         
12588         <rdar://problem/5369110> CrashTracer: [USER] reproducible crash opening particular mail messages
12589
12590         * platform/network/mac/ResourceHandleMac.mm:
12591         (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]): Make sure to retain
12592         self for the body of this method. Otherwise, the willSendRequest could trigger events which will
12593         cancel the connection, and we access ivars after this point.
12594         (-[WebCoreSynchronousLoader connection:willSendRequest:redirectResponse:]): retain and release
12595         in the right order.
12596
12597 2007-08-04  Adam Roben  <aroben@apple.com>
12598
12599         Another workaround for <rdar://problem/5386894>
12600
12601         Reviewed by Sam.
12602
12603         This fixed ~150 failing tests.
12604
12605         * platform/network/cf/ResourceResponseCFNet.cpp:
12606         (WebCore::ResourceResponse::doUpdateResourceResponse): Hardcode the
12607         MIME type for .svg files as well.
12608
12609 2007-08-04  Adam Roben  <aroben@apple.com>
12610
12611         Workaround for <rdar://problem/5386894> CFURLResponseGetMIMEType returns "text/html" for local .xhtml and .xml files
12612
12613         Reviewed by Sam.
12614
12615         This fixes ~350 failing tests.
12616
12617         * platform/network/cf/ResourceResponseCFNet.cpp:
12618         (WebCore::ResourceResponse::doUpdateResourceResponse): Use a workaround
12619         identical to the one in ResourceResponseMac.mm, but include .xml files
12620         as well.
12621
12622 2007-08-04  David Kilzer  <ddkilzer@webkit.org>
12623
12624         Reviewed by Oliver.
12625
12626         - fix for http://bugs.webkit.org/show_bug.cgi?id=14882
12627           <rdar://problem/5386550> REGRESSION (r24866): text/plain documents are always downloaded
12628
12629         The supportedNonImageMimeTypes list is used to determine which MIME types may be viewed
12630         within the web browser (e.g., plug-ins add their own MIME types to the list during
12631         initialization), so we must add "text/plain" and "text/" back to the list.  Since
12632         this change would then break DOMImplementation::isTextMIMEType(), that method was reverted
12633         to its original form and MIMETypeRegistry::shouldTreatAsText() was removed.
12634
12635         * dom/DOMImplementation.cpp:
12636         (WebCore::DOMImplementation::isTextMIMEType): Revert to previous version.
12637         * platform/MIMETypeRegistry.cpp:
12638         (WebCore::initialiseSupportedNonImageMimeTypes): Added back "text/plain" and "text/" to the list.
12639         (WebCore::MIMETypeRegistry::shouldTreatAsText): Removed.
12640         * platform/MIMETypeRegistry.h:
12641
12642 2007-08-03  Brady Eidson  <beidson@apple.com>
12643
12644         Reviewed by Oliver
12645
12646         Fix for http://bugs.webkit.org/show_bug.cgi?id=14824 and <rdar://problem/5372989>
12647
12648         Two issues - 
12649         1 - The WebCore MIMEType registry was designed assuming the list of types would never change
12650             That is false, as WebKit has API and SPI calls which directly mutate the MIMETypeRegistry
12651         2 - DOMImplementation didn't consult the registry for any MIMEType that started with "text/", 
12652             instead maintaining it's own hard coded rules
12653
12654         * dom/DOMImplementation.cpp:
12655         (WebCore::DOMImplementation::isTextMIMEType): For now, call through to the MIMETypeRegistry
12656           until we decided a different fate for this function
12657
12658         * platform/MIMETypeRegistry.cpp:
12659         (WebCore::initialiseSupportedNonImageMimeTypes):  "SupportedNonImageMIMETypes" is really a misnomer for 
12660           "MIMETypes we should show as HTML" but that line has slowly been blurred since Tiger.  In an attempt
12661           to start to unblur it, remove "text/" and "text/plain"
12662         (WebCore::MIMETypeRegistry::shouldTreatAsText):  The decision is very close to the old DOMImplementation 
12663           method, except we don't automatically hand off "text/" types as true if they are in the set of supported
12664           MIMETypes
12665         (WebCore::MIMETypeRegistry::getSupportedImageMIMETypes): Non-const (can be changed!)
12666         (WebCore::MIMETypeRegistry::getSupportedImageResourceMIMETypes): Non-const (can be changed!)
12667         (WebCore::MIMETypeRegistry::getSupportedNonImageMIMETypes): Non-const (can be changed!)
12668         * platform/MIMETypeRegistry.h:
12669
12670 2007-08-03  Adele Peterson  <adele@apple.com>
12671
12672         Reviewed by Adam.
12673
12674         Fix for <rdar://problem/5345862> CrashTracer: [USER] 4 crashes in Safari at com.apple.WebCore: WebCore::Frame::isContentEditable const + 10
12675
12676         Couldn't reproduce the problem, but a nil check for the frame should fix this.
12677
12678         * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::adjustRenderStyle):
12679
12680 2007-08-03  Anders Carlsson  <andersca@apple.com>
12681
12682         Reviewed by Oliver.
12683
12684         <rdar://problem/5383286>
12685         XMLHTTPRequest does not return 401 when user cancels authentication dialog (affects .Mac)
12686         
12687         * loader/ResourceLoader.h:
12688         Make receivedCancellation virtual.
12689         
12690         * loader/SubresourceLoader.cpp:
12691         (WebCore::SubresourceLoader::receivedCancellation):
12692         Call SubresourceLoaderClient::receivedCancellation.
12693         
12694         * xml/XMLHttpRequest.cpp:
12695         (WebCore::XMLHttpRequest::receivedCancellation):
12696         Save the failure response.
12697
12698 2007-08-03  Anders Carlsson  <andersca@apple.com>
12699
12700         Reviewed by Geoff.
12701
12702         <rdar://problem/5374393> 
12703         Image change on disk not noticed by WebView; -[WebCache setDisabled:] used to cause a reload every time
12704         
12705         This is essentially a better fix for the crash in <rdar://problem/5362783>.
12706         
12707         * loader/DocLoader.cpp:
12708         (WebCore::DocLoader::requestResource):
12709         If the resource already exists in the m_docResources map, remove it and disassociate it from the doc loader.
12710
12711 2007-08-03  Oliver Hunt  <oliver@apple.com>
12712
12713         Reviewed by Geoff.
12714
12715         <rdar://problem/5375190> Mail crashed in WebCore::CachedImage::imageSize() const when viewing a particular message
12716
12717         Fix the uncached load path to confirm that the type of resource being 
12718         returned actually matches the type that was requested.
12719
12720         Also make sure we never create a resource in the Cache for invalid urls.
12721
12722         * loader/Cache.cpp:
12723         (WebCore::Cache::requestResource):
12724         * loader/DocLoader.cpp:
12725         (WebCore::DocLoader::requestResource):
12726
12727 2007-08-03  Mitz Pettel  <mitz@webkit.org>
12728
12729         Reviewed by Adele.
12730
12731         - fix http://bugs.webkit.org/show_bug.cgi?id=14879
12732           REGRESSION: First item in select (pop-up menu) is displayed even if another item was selected via JavaScript
12733
12734         Test: fast/forms/menulist-deselect-update.html
12735
12736         * html/HTMLOptionElement.cpp:
12737         (WebCore::HTMLOptionElement::setSelected): Reordered to allow setSelectedIndex() to call setChanged().
12738
12739 2007-08-03  Anders Carlsson  <andersca@apple.com>
12740
12741         Reviewed by Darin.
12742
12743         <rdar://problem/5286444>
12744         http://bugs.webkit.org/show_bug.cgi?id=14269
12745         REGRESSION: Gmail links stop working after computer sleep
12746         
12747         Add a PowerNotifier object that takes care of resetting and firing the shared timer when coming
12748         back from sleep.
12749         
12750         * platform/mac/SharedTimerMac.cpp:
12751         (-[PowerNotifier init]):
12752         (-[PowerNotifier didWake:]):
12753         (WebCore::setSharedTimerFireTime):
12754
12755 2007-08-04  Mark Rowe  <mrowe@apple.com>
12756
12757         Windows build fix.
12758
12759         * rendering/RenderTextControl.cpp: Don't use the same name for two arguments.
12760
12761 2007-08-03  Mitz Pettel  <mitz@webkit.org>
12762
12763         Reviewed by Darin.
12764
12765         - fix http://bugs.webkit.org/show_bug.cgi?id=14653
12766           REGRESSION (r23994): No caret is drawn after clicking a search field's placeholder text
12767           <rdar://problem/5383841>
12768
12769         Test: fast/forms/search-click-in-placeholder.html
12770
12771         Defined a subclass of RenderBlock that never hit-tests children for use in
12772         text controls. This avoids returning placeholder text as the hit node.
12773         Since text controls cannot contain inline elements, there is no harm in
12774         doing that unconditionally, and not just in the case that the field is
12775         showing placeholder text.
12776
12777         * rendering/RenderTextControl.cpp:
12778         (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
12779         (WebCore::RenderTextControlInnerBlock::~RenderTextControlInnerBlock):
12780         (WebCore::RenderTextControlInnerBlock::nodeAtPoint):
12781         (WebCore::RenderTextControl::createSubtreeIfNeeded):
12782
12783 2007-08-02  Oliver Hunt  <oliver@apple.com>
12784
12785         Reviewed by Geoff
12786
12787         Fix for <rdar://problem/5369332> Xcode crashes while selecting a hyperlink within a AppleScript dictionary (WebCore::Font::drawGlyphBuffer)
12788
12789         There were many places where we were not correctly retaining/releasing the
12790         NSFont object stored in the C++ PlatformFontData object, this resulted in
12791         the GC incorrectly collecting the NSFont.
12792
12793         This patch fixes the problem by prevent direct modification of the PlatformFontData
12794         font pointer, allowing us to enforce correct CFRetain/Release behaviour.
12795
12796         * platform/FontData.h:
12797         (WebCore::FontData::getNSFont):
12798         * platform/mac/FontCacheMac.mm:
12799         (WebCore::FontCache::getFontDataForCharacters):
12800         (WebCore::FontCache::createFontPlatformData):
12801         * platform/mac/FontDataMac.mm:
12802         (WebCore::initFontData):
12803         (WebCore::FontData::platformInit):
12804         (WebCore::FontData::platformDestroy):
12805         (WebCore::FontData::smallCapsFontData):
12806         (WebCore::FontData::containsCharacters):
12807         (WebCore::FontData::determinePitch):
12808         (WebCore::FontData::platformWidthForGlyph):
12809         (WebCore::FontData::checkShapesArabic):
12810         * platform/mac/FontMac.mm:
12811         (WebCore::initializeATSUStyle):
12812         (WebCore::overrideLayoutOperation):
12813         (WebCore::Font::drawGlyphs):
12814         * platform/mac/FontPlatformData.h:
12815         (WebCore::FontPlatformData::FontPlatformData):
12816         (WebCore::FontPlatformData::~FontPlatformData):
12817         (WebCore::FontPlatformData::hash):
12818         (WebCore::FontPlatformData::operator==):
12819         (WebCore::FontPlatformData::font):
12820         (WebCore::FontPlatformData::setFont):
12821
12822 2007-08-03  Antti Koivisto  <antti@apple.com>
12823
12824         Oops, this change wasn't supposed to be commited.
12825
12826         * page/mac/WebCoreFrameBridge.mm:
12827         (-[WebCoreFrameBridge setBaseBackgroundColor:]):
12828
12829 2007-08-02  Antti Koivisto  <antti@apple.com>
12830
12831         Reviewed by Darin.
12832
12833         <rdar://problem/5355951>
12834         plainText() fragments TCMalloc heap badly on large pages
12835         
12836         also likely fixes some cases of
12837         <rdar://problem/5335382>
12838         CrashTracer: [REGRESSION] 73 crashes in Safari at com.apple.WebCore: WebCore::DeprecatedStringData::increaseUnicodeSize + 52
12839         
12840         If you load http://dscoder.com/test.txt with WebKit build with TCMalloc and system malloc you see that
12841         Safari RPRVT with TCMalloc is 118.8MB
12842         Safari RPRVT with system malloc is 69.7MB
12843         
12844         Difference is almost entirely caused by heap fragmentation from a full document plainText() call (for indexing purposes).
12845         
12846         The patch helps in two ways:
12847         - construct plainText string in pieces to avoid O(n^2) reallocs
12848         - allocate buffers using system malloc so they can be returned back to OS and don't fragment and grow TCMalloc heap
12849     
12850         This shrinks http://dscoder.com/test.txt RPRVT to 79.0MB and makes full document plainText() take 50ms instead of 500ms.
12851         The benefits are not limited to extreme cases, web pages above ~200kB can show substantial improvement in RPRVT.
12852
12853         * editing/TextIterator.cpp:
12854         (WebCore::plainTextToMallocAllocatedBuffer):
12855         (WebCore::plainText):
12856         * editing/TextIterator.h:
12857         * page/mac/WebCoreFrameBridge.mm:
12858         (-[WebCoreFrameBridge selectedString]):
12859         (-[WebCoreFrameBridge stringForRange:]):
12860
12861 2007-08-02  David Hyatt  <hyatt@apple.com>
12862
12863         Fix for 5374437, allow comment nodes to be the child of a document.
12864         Refine the check to always make a root element to check documentElement()
12865         rather than firstChild(), since a comment node could be present as the
12866         firstChild() now.
12867
12868         Reviewed by Tim Hatcher
12869
12870         * html/HTMLDocument.cpp:
12871         (WebCore::HTMLDocument::childAllowed):
12872         * html/HTMLParser.cpp:
12873         (WebCore::HTMLParser::finished):
12874
12875 2007-08-02  Antti Koivisto  <antti@apple.com>
12876
12877         Reviewed by Darin.
12878         
12879         <rdar://problem/5228138>
12880         REGRESSION(Leopard): test failures: tests that test Georgian numbering
12881
12882         Fix to Georgian number tables to get CSS2.1 test results right. Font has relevant characters now 
12883         which revealed that results were actually wrong. 
12884
12885         * rendering/RenderListMarker.cpp:
12886         (WebCore::toGeorgian):
12887
12888 2007-08-02  Ada Chan  <adachan@apple.com>
12889
12890         Reviewed by Steve.
12891
12892         <rdar://problem/5079175> Added parameters headerHeight and footerHeight to 
12893         computePageRectsForFrame() so we can account for the header and footer when
12894         calculating page heights for this frame.
12895
12896         * bridge/win/FrameWin.cpp:
12897         (WebCore::computePageRectsForFrame):
12898         * bridge/win/FrameWin.h:
12899
12900 2007-08-02  Alice Liu  <alice.liu@apple.com>
12901
12902         Reviewed by Kevin McCullough.
12903
12904         fixed <rdar://problem/5310312> REGRESSION: javascript is mis-escaped at http://labs.zarate.org/passwd causing bookmarklet to break
12905         
12906         * WebCore.exp:
12907         expose some calls for WebKit to call. 
12908         * manual-tests/JavaScript-bookmarklets.html: Added.
12909
12910 2007-08-01  Adam Treat  <treat@kde.org>
12911
12912         Reviewed by George Staikos.
12913
12914         Add an interface to manage global history for clients
12915
12916         * WebCore.pro:
12917         * platform/qt/TemporaryLinkStubs.cpp:
12918
12919 2007-08-01  Adam Treat  <treat@kde.org>
12920
12921         Reviewed by George Staikos.
12922
12923         Do not call update or paint from inside a paint event.
12924
12925         * platform/qt/ScrollViewQt.cpp:
12926         (WebCore::ScrollView::updateContents):
12927         * platform/qt/WidgetQt.cpp:
12928         (WebCore::Widget::invalidateRect):
12929
12930 2007-08-01  Timothy Hatcher  <timothy@apple.com>
12931
12932         Reviewed by Justin.
12933
12934         <rdar://problem/5376156> Mail crash in DeleteButtonController::hide() when dropping selected image on DIV's border
12935
12936         Add the container element back so the selection can not touch the deletion UI nodes. The container
12937         has style to prevent user selection, user drag and user modification.
12938
12939         * editing/DeleteButtonController.cpp:
12940         (WebCore::DeleteButtonController::show): Make the container node, and append the button and outline elements.
12941         (WebCore::DeleteButtonController::hide): Remove the container elements and null out the other nodes.
12942         * editing/DeleteButtonController.h:
12943
12944 2007-08-01  Steve Falkenburg  <sfalken@apple.com>
12945
12946         Build mod: Fix sln to match configs in vcproj.
12947         
12948         Reviewed by Adam.
12949
12950         * WebCore.vcproj/WebCore.make:
12951
12952 2007-07-31  David Harrison  <harrison@apple.com>
12953
12954         Reviewed by Justin.
12955
12956         <rdar://problem/5362659> CrashTracer: [USER] 11 crashes in Mail at WebCore::InsertLineBreakCommand::doApply()
12957
12958         The problem was that deleting with the X control leaves the selection inside the fragment that was deleted.
12959
12960         * editing/DeleteButtonController.cpp:
12961         (WebCore::DeleteButtonController::deleteTarget):
12962         Because the deletion UI only appears when the selection is entirely
12963         within the target, we unconditionally update the selection to be
12964         a caret where the target had been.
12965
12966 2007-07-31  Adele Peterson  <adele@apple.com>
12967
12968         Reviewed by Hyatt.
12969
12970          Fix for <rdar://problem/5339395> REGRESSION:http://sudokucraving.com does not render grid correctly
12971
12972         * rendering/RenderTextControl.h: (WebCore::RenderTextControl::hasControlClip): Clip for search fields.
12973         * rendering/RenderTextControl.cpp:
12974         (WebCore::RenderTextControl::controlClipRect): Added a control clip so the search field's cancel button and magnifier glass
12975          never draw outside the control's bounds.
12976         (WebCore::RenderTextControl::calcPrefWidths): Only include the inner box's padding when calculating the min/max width without using calcContentBoxWidth.
12977          Our old behavior was causing that inner padding to get counted twice.  Also, no need to add in the border
12978          for an inner box that can't be controlled from outside this class.
12979         * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::calcPrefWidths): ditto.
12980
12981 2007-07-31  Anders Carlsson  <andersca@apple.com>
12982
12983         Reviewed by Geoff.
12984
12985         Speculative fix for <rdar://problem/5359695> 
12986         REGRESSION (Tiger Beta): Multiple crashes in WebCore::Widget::getView() const + 6
12987                 
12988         * page/EventHandler.cpp:
12989         (WebCore::EventHandler::updateDragAndDrop):
12990         Null check the frame view.
12991
12992 2007-07-31  Timothy Hatcher  <timothy@apple.com>
12993
12994         Reviewed by Oliver and Beth.
12995
12996         <rdar://problem/5211271> ADOBE Leopard 9A410: At the first Launching InDesign after deactivate, EULA page gets blanked.
12997
12998         Rename needsAcrobatFrameReloadingQuirk to needsAdobeFrameReloadingQuirk, since this now applies to more Adobe applications.
12999
13000         * WebCore.exp:
13001         * page/Settings.cpp:
13002         (WebCore::Settings::Settings):
13003         (WebCore::Settings::setNeedsAdobeFrameReloadingQuirk):
13004         * page/Settings.h:
13005         (WebCore::Settings::needsAcrobatFrameReloadingQuirk):
13006
13007 2007-07-31  Matt Perry  <mpComplete@gmail.com>
13008
13009         Reviewed by Brady and Darin, tweaked by Brady, landed by Brady
13010
13011         Fix for http://bugs.webkit.org/show_bug.cgi?id=14757 and <rdar://problem/5364692>
13012         HTMLTokenizer::processingData implementation is incorrect
13013
13014         * html/HTMLTokenizer.cpp:
13015         (WebCore::HTMLTokenizer::processingData): Made it also return true if the HTMLTokenizer was inside the write() call.
13016         * loader/FrameLoader.cpp:
13017         (WebCore::FrameLoader::FrameLoader):
13018         (WebCore::FrameLoader::checkLoadCompleteTimerFired):
13019         (WebCore::FrameLoader::scheduleCheckLoadComplete):
13020         (WebCore::FrameLoader::stopForUserCancel): Changed a call to checkLoadComplete to be asynchronous, since
13021         stopForUserCancel can be called while parsing.
13022         * loader/FrameLoader.h:
13023
13024 2007-07-31  Anders Carlsson  <andersca@apple.com>
13025
13026         Reviewed by Geoff.
13027
13028         <rdar://problem/5371582>
13029         REGRESSION: PLT .5% slower due to r24451 (copying HTMLCollection objects)
13030         
13031         Make the hash maps store CollectionInfo pointers to reduce amount of copying when
13032         inserting/rehashing etc.
13033         
13034         * dom/Document.cpp:
13035         (WebCore::Document::~Document):
13036         (WebCore::Document::nameCollectionInfo):
13037         * dom/Document.h:
13038
13039 2007-07-31  Sam Weinig  <sam@webkit.org>
13040
13041         Reviewed by Mitz.
13042
13043         Fix for http://bugs.webkit.org/show_bug.cgi?id=14825
13044         Non-integer hsl() colours are ignored
13045
13046         * css/CSSParser.cpp:
13047         (WebCore::CSSParser::parseHSLParameters): Parse hue as a Number,
13048         not an Integer. 
13049
13050 2007-07-30  Justin Garcia  <justin.garcia@apple.com>
13051
13052         Reviewed by Darin.
13053
13054         <rdar://problem/5369009> Crash due to infinite recursion in moveParagraphs on delete
13055         
13056         After the delete, we moved content into the previous block, and a style
13057         rule turned a style span in the moved content into a block, throwing
13058         moveParagraphs into infinite recursion, as it continually tried and failed
13059         to get the style span into the same paragraph as the content just before it.
13060         
13061         Added a method to ReplaceSelectionCommand to keep inserted style spans 
13062         from turning into blocks because of style rules.  Will add code to prevent
13063         other kinds of content from changing appearance because of style rules,
13064         post-Leopard (5371536). Also added a bool to ReplaceSelectionCommand's 
13065         constructor to guard against infinite recursion.
13066
13067         * editing/CompositeEditCommand.cpp:
13068         (WebCore::CompositeEditCommand::moveParagraphs):
13069         * editing/JSEditor.cpp:
13070         * editing/ReplaceSelectionCommand.cpp:
13071         (WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand):
13072         (WebCore::ReplaceSelectionCommand::negateStyleRulesThatEffectAppearance):
13073         (WebCore::ReplaceSelectionCommand::doApply):
13074         * editing/ReplaceSelectionCommand.h:
13075
13076 2007-07-30  Anders Carlsson  <andersca@apple.com>
13077
13078         Reviewed by Brady.
13079
13080         <rdar://problem/5371515>
13081         BitmapImage::getTIFFRepresentation() bug results in favicons not working at many sites
13082
13083         Don't bail out if a single frame is invalid.
13084         
13085         * platform/graphics/mac/ImageMac.mm:
13086         (WebCore::BitmapImage::getTIFFRepresentation):
13087
13088 2007-07-30  Adele Peterson  <adele@apple.com>
13089
13090         Reviewed by Darin.
13091
13092         Fix for <rdar://problem/5274937> Safari 3 breaks Missing Sync's WebKit code by crashing
13093
13094         * loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::continueAfterContentPolicy): Nil check for the FrameLoader.
13095
13096 2007-07-30  Anders Carlsson  <andersca@apple.com>
13097
13098         Reviewed by Darin.
13099
13100         <rdar://problem/5370710> 
13101         REGRESSION: After switching from Bookmark view, the Find Banner won't appear while displaying a PDF file
13102
13103         Add a hasHTMLView to FrameLoaderClient. This is only useful for clients who can show different views for different
13104         MIME types and URL schemes.
13105         
13106         * loader/FrameLoader.cpp:
13107         (WebCore::FrameLoader::transitionToCommitted):
13108         Call delegate methods here if the current view is not a HTML view.
13109         
13110         * loader/FrameLoaderClient.h:
13111         (WebCore::FrameLoaderClient::hasHTMLView):
13112
13113 2007-07-30  Sam Weinig  <sam@webkit.org>
13114
13115         Reviewed by Maciej.
13116
13117         Fix for <rdar://problem/5363896>
13118         REGRESSION: Setting document.domain does not override port-based cross-frame security checks -- breaks SAP NetWeaver
13119
13120         Updates the results for:
13121             http/tests/security/cross-frame-access-port-explicit-domain.html
13122             http/tests/security/cross-frame-access-protocol-explicit-domain.html
13123
13124         * bindings/js/kjs_window.cpp:
13125         (KJS::createWindow): Use the new setDomainInternal method.
13126         (KJS::Window::isSafeScript): Don't set check the port or protocol 
13127         if both documents have explicitly set document.domain in the DOM
13128         and the those domains are equal.
13129         * dom/Document.cpp:
13130         (WebCore::Document::Document):
13131         (WebCore::Document::setDomain): Remove force parameter and change 
13132         all calls that relied on it use the new setDomainInternal method
13133         which does the same thing.
13134         (WebCore::Document::setDomainInternal): 
13135         * dom/Document.h: Add new m_domainWasSetInDOM variable and accessor.
13136         (WebCore::Document::domainWasSetInDOM):
13137         * loader/FrameLoader.cpp:
13138         (WebCore::FrameLoader::checkCallImplicitClose): Use the new setDomainInternal method. 
13139
13140 2007-07-30  Justin Garcia  <justin.garcia@apple.com>
13141
13142         Reviewed by Tristan.
13143         
13144         <rdar://problem/5098931> Attachments are lost when they are moved into a ToDo after a delete
13145         
13146         Added an editor client method for asking whether or not it is
13147         OK to merge content after a delete.
13148
13149         * bridge/EditorClient.h:
13150         * editing/DeleteSelectionCommand.cpp:
13151         (WebCore::DeleteSelectionCommand::mergeParagraphs): Ask if the 
13152         merge is allowed.
13153         * platform/gdk/EditorClientGdk.cpp: 
13154         (WebCore::EditorClientGdk::shouldMoveRangeAfterDelete): Added a method stub.
13155         * platform/gdk/EditorClientGdk.h:
13156         * platform/graphics/svg/SVGImageEmptyClients.h: 
13157         (WebCore::SVGEmptyEditorClient::shouldMoveRangeAfterDelete): Ditto.
13158
13159 2007-07-30  Alexey Proskuryakov  <ap@webkit.org>
13160
13161         Reviewed by Anders.
13162
13163         <rdar://problem/5352526>
13164         http://bugs.webkit.org/show_bug.cgi?id=14704
13165         REGRESSION: sync XMLHttpRequest.send() raises an exception for failed authentication
13166
13167         Test: http/tests/xmlhttprequest/failed-auth.html
13168
13169         * platform/network/mac/ResourceHandleMac.mm:
13170         (WebCore::ResourceHandle::loadResourceSynchronously): Make the fake response better match the real one
13171         in case of failed authentication. Unfortunately, NSURLConnection doesn't give us the real response.
13172
13173         * xml/XMLHttpRequest.cpp:
13174         (WebCore::XMLHttpRequest::send): If the response has an HTTP code in it, then the error wasn't
13175         a network one, and an exception shouldn't be raised.
13176
13177 2007-07-30  Anders Carlsson  <andersca@apple.com>
13178
13179         Reviewed by Darin.
13180
13181         <rdar://problem/4942372> REGRESSION: Anchor links in Mail don't work anymore
13182         
13183         Make it possible for KURL to handle addig fragments to non-hierarchical URLs
13184         such as mailto: and cid:.
13185     
13186         * platform/KURL.cpp:
13187         (WebCore::KURL::init):
13188         If the base URL is not hierarchical but the relative URL is a fragment, then 
13189         allow parsing it.
13190         
13191         (WebCore::KURL::parse):
13192         If the URL is not hierarchical, set the fragment start and end positions correctly.
13193
13194 2007-07-30  Simon Hausmann  <hausmann@kde.org>
13195
13196         Reviewed by Lars.
13197
13198         On Windows make sure the dll also ends up in $$OUTPUT_DIR/bin, so that QtLauncher can find it.
13199
13200         * WebCore.pro:
13201
13202 2007-07-30  Simon Hausmann  <hausmann@kde.org>
13203
13204         Reviewed by Lars.
13205
13206         Removed the __BUILDING_QT ifdef in JSStringRef.h and changed UChar for the Qt build to use wchar_t on Windows.
13207
13208         * platform/TextEncoding.cpp:
13209         (WebCore::TextEncoding::encode):
13210
13211 2007-07-30  Simon Hausmann  <hausmann@kde.org>
13212
13213         Reviewed by Lars.
13214
13215         Don't link against libxml/libxslt unless we really need it.
13216
13217         * WebCore.pro:
13218
13219 2007-07-29  Tristan O'Tierney  <tristan@apple.com>
13220
13221         Reviewed by Oliver Hunt.
13222
13223         <rdar://problem/5369282> REGRESSION: DOMHTMLInput throwing exception due to missing _isEdited method
13224
13225         * bindings/objc/DOMHTML.mm:
13226         (-[DOMHTMLInputElement _isEdited]):
13227         (-[DOMHTMLTextAreaElement _isEdited]):
13228         * bindings/objc/DOMPrivate.h:
13229         Renamed _isUserEdited to _isEdited.
13230
13231 2007-07-29  Adam Treat  <treat@kde.org>
13232
13233         Reviewed by George Staikos.
13234
13235         Correctly set the update rect for the scrollbars when they are invalidated.
13236         Do not paint entire page for each scroll delta.  Cache the dirty regions
13237         when webkit calls ScrollView::updateContents as webkit expects the paint
13238         routine to use the dirty regions bounding rect.
13239
13240         These changes greatly reduce the cpu load as we are no longer painting the
13241         entire page for each 1px scroll :P
13242
13243         * platform/qt/ScrollViewQt.cpp:
13244         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
13245         (WebCore::ScrollView::updateContents):
13246         (WebCore::ScrollView::paint):
13247         * platform/qt/WidgetQt.cpp:
13248         (WebCore::Widget::invalidateRect):
13249
13250 2007-07-29  Adele Peterson  <adele@apple.com>
13251
13252         Reviewed by John.
13253
13254         WebCore part of fix for <rdar://problem/5102522> REGRESSION: Can't tab to webview that doesn't have editable content (affects Safari, preview pane in Mail)
13255
13256         * WebCore.exp:
13257         * page/FocusController.cpp:
13258         (WebCore::FocusController::setInitialFocus): Added.
13259         (WebCore::FocusController::advanceFocus): Don't give the focus back to the chrome if this is the initial focus.
13260         * page/FocusController.h:
13261
13262 2007-07-29  Adam Treat  <treat@kde.org>
13263
13264         Reviewed by Alexey Proskuryakov.
13265
13266         WebCore::Widget::setParent should be virtual.
13267         It is reimplemented in ScrollViewQt for instance.
13268
13269         * platform/Widget.h:
13270
13271 2007-07-29  Alp Toker  <alp.toker@collabora.co.uk>
13272
13273         Reviewed by bdash.
13274
13275         http://bugs.webkit.org/show_bug.cgi?id=14711 (revisited)
13276         RenderThemeGdk's buttons are state-agnostic (pressed, hovered)
13277
13278         Generalize shadow state into a function.
13279         use a GtkHBox to work around a theme bug (thanks to Nigel Tao).
13280
13281         * platform/gdk/RenderThemeGdk.cpp:
13282         (WebCore::RenderThemeGdk::determineShadow):
13283         (WebCore::RenderThemeGdk::paintCheckbox):
13284         (WebCore::RenderThemeGdk::paintRadio):
13285         (WebCore::RenderThemeGdk::paintButton):
13286         (WebCore::RenderThemeGdk::gtkWindowContainer):
13287         * platform/gdk/RenderThemeGdk.h:
13288
13289 2007-07-27  Adele Peterson  <adele@apple.com>
13290
13291         Reviewed by Darin. 
13292
13293         Temporary fix for Windows to prevent crashing on all frame pages.  Darin
13294         is working on a more permanent fix.
13295
13296         * loader/FrameLoader.cpp:
13297
13298 2007-07-27  Adam Treat  <treat@kde.org>
13299
13300         Reviewed by David Hyatt.
13301
13302         Fix crash when using QtWebKit canvas support.
13303
13304         * ChangeLog:
13305         * html/HTMLCanvasElement.cpp:
13306         (WebCore::HTMLCanvasElement::reset):
13307
13308 2007-07-27  Darin Adler  <darin@apple.com>
13309
13310         * rendering/RenderLayer.cpp: Rolled out accidentally-checked-in code.
13311
13312 2007-07-27  Darin Adler  <darin@apple.com>
13313
13314         Reviewed by John Sullivan.
13315
13316         - fix <rdar://problem/5261393> In Mail the plain text alternatives to messages with attachments show weird little OBJ thingies
13317
13318         The "weird little thingies" are U+FFFC characters. It's good to render them as zero-width, the way we do
13319         with control characters -- helps Mail and doesn't hurt web browsing.
13320
13321         Test: fast/text/zero-width-characters.html
13322
13323         * platform/CharacterNames.h: Add names for leftToRightMark, rightToLeftMark, and objectReplacementCharacter.
13324         * platform/GlyphPageTreeNode.cpp: (WebCore::GlyphPageTreeNode::initializePage): Give objectReplacementCharacter
13325         zero width in the same way we do it for the various other characters.
13326
13327 2007-07-27  Lars Knoll <lars@trolltech.com>
13328
13329         Reviewed by Zack
13330
13331         Enable XSLT support for the gtk port.
13332
13333         * WebCore.pro:
13334
13335 2007-07-27  Zack Rusin  <zack@kde.org>
13336
13337         Reviewed by Zack and Lars.
13338
13339         Premature end after finishing parsing is a fatal error.
13340
13341         * dom/XMLTokenizer.cpp:
13342         (WebCore::XMLTokenizer::end):
13343
13344 2007-07-27  Lars Knoll  <lars@trolltech.com>
13345
13346         Reviewed by Zack and Lars.
13347
13348         Simplify conversions that go from a QStringRef to a WebCore::String to not use a temporary QString.
13349
13350         * dom/XMLTokenizer.cpp:
13351         (WebCore::):
13352
13353 2007-07-27  Zack Rusin  <zack@kde.org>
13354
13355         Reviewed by Zack and Lars.
13356
13357         Fix entity handling in the main document content (attributes still broken)
13358
13359         * dom/XMLTokenizer.cpp:
13360         (WebCore::):
13361
13362 2007-07-27  Lars Knoll  <lars@trolltech.com>
13363
13364         Reviewed by Zack and Lars.
13365
13366         Correctly convert a null QString into a null WebCore::String. Add a String(const QStringRef&) constructor so that we can avoid converting QStringRef via QString to WebCore::String.
13367
13368         * dom/XMLTokenizer.cpp:
13369         (WebCore::):
13370         * platform/PlatformString.h:
13371         * platform/qt/StringQt.cpp:
13372         (WebCore::String::String):
13373
13374 2007-07-27  Zack Rusin  <zack@kde.org>
13375
13376         Reviewed by Zack and Lars.
13377
13378         Parse version and encoding of the xml document.
13379
13380         * dom/XMLTokenizer.cpp:
13381         (WebCore::XMLTokenizer::write):
13382
13383 2007-07-27  Zack Rusin  <zack@kde.org>
13384
13385         Reviewed by Zack and Lars.
13386
13387         Correctly or semi-correctly parse the public and system id.
13388
13389         Patch from Lars.
13390
13391         * dom/XMLTokenizer.cpp:
13392         (WebCore::):
13393
13394 2007-07-27  Zack Rusin  <zack@kde.org>
13395
13396         Reviewed by Zack and Lars.
13397
13398         Fix uri parsing for attributes.
13399
13400         * dom/XMLTokenizer.cpp:
13401         (WebCore::):
13402
13403 2007-07-27  Zack Rusin  <zack@kde.org>
13404
13405         Reviewed by Zack and Lars.
13406
13407         Fixing qualified name parsing - from Lars.
13408
13409         * dom/XMLTokenizer.cpp:
13410         (WebCore::XMLTokenizer::insertErrorMessageBlock):
13411         (WebCore::):
13412
13413 2007-07-27  Zack Rusin  <zack@kde.org>
13414
13415         Reviewed by Zack and Lars.
13416
13417         Parse dtd's
13418
13419         * dom/XMLTokenizer.cpp:
13420         (WebCore::XMLTokenizer::resumeParsing):
13421         (WebCore::):
13422         * dom/XMLTokenizer.h:
13423
13424 2007-07-27  Zack Rusin  <zack@kde.org>
13425
13426         Reviewed by Zack and Lars.
13427
13428         Implement error handling.
13429
13430         Add our copyrights
13431
13432         * dom/XMLTokenizer.cpp:
13433         (WebCore::XMLTokenizer::handleError):
13434         (WebCore::XMLTokenizer::end):
13435         (WebCore::):
13436         * dom/XMLTokenizer.h:
13437
13438 2007-07-27  Zack Rusin  <zack@kde.org>
13439
13440         Reviewed by Zack and Lars.
13441
13442         Making the stylesheets work (plus everything else basically)
13443
13444         * dom/XMLTokenizer.cpp:
13445         (WebCore::XMLTokenizer::write):
13446         (WebCore::XMLTokenizer::insertErrorMessageBlock):
13447         (WebCore::):
13448         * dom/XMLTokenizer.h:
13449
13450 2007-07-27  Zack Rusin  <zack@kde.org>
13451
13452         Reviewed by Zack and Lars.
13453
13454         Remove the libxml dependency when not compiling with XSLT.
13455
13456         Just ifdefing, displaying xml doesn't work.
13457
13458         * WebCore.pro:
13459         * dom/XMLTokenizer.cpp:
13460         (WebCore::XMLTokenizer::XMLTokenizer):
13461         (WebCore::XMLTokenizer::write):
13462         (WebCore::XMLTokenizer::startElementNs):
13463         (WebCore::XMLTokenizer::enterText):
13464         (WebCore::XMLTokenizer::exitText):
13465         (WebCore::XMLTokenizer::initializeParserContext):
13466         (WebCore::XMLTokenizer::end):
13467         (WebCore::XMLTokenizer::lineNumber):
13468         (WebCore::XMLTokenizer::columnNumber):
13469         (WebCore::XMLTokenizer::stopParsing):
13470         (WebCore::XMLTokenizer::resumeParsing):
13471         (WebCore::):
13472         * dom/XMLTokenizer.h:
13473
13474 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13475
13476         Reviewed by Zack.
13477
13478         Work around bug in the moc when used as preprocessor for generating the bindings. -DFOO=1 is needed instead of -DFOO
13479         to make the <hash>if FOO conditional match.
13480
13481         * WebCore.pro:
13482
13483 2007-07-27  Patrick Hanna  <phanna@email.unc.edu>
13484
13485         Reviewed by Darin Adler.
13486
13487         Change PluginBase::refresh to be static and update PluginsFunc::callAsFunction accordingly. Now we no longer
13488         allocate an instance of a JSObject subclass on the stack which could lead to a crash during garbage collection.
13489
13490         * bindings/js/kjs_navigator.cpp:
13491         (KJS::PluginsFunc::callAsFunction):
13492
13493 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13494
13495         Done with and reviewed by Lars and Zack.
13496
13497         Fix snprintf hack for the Qt/Windows build with mingw-gcc. MingW has snprintf, so we don't need this helper function.
13498
13499         * page/FrameTree.cpp:
13500         * platform/DeprecatedString.cpp:
13501         (WebCore::DeprecatedString::format):
13502         * platform/String.cpp:
13503         (WebCore::String::format):
13504
13505 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13506
13507         Done with and reviewed by Lars and Zack.
13508
13509         Make the DocTypeStrings.cpp generation work with MingW. Cleaned it up to be a regular extra compiler at the same time.
13510
13511         * WebCore.pro:
13512
13513 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13514
13515         Done with and reviewed by Lars and Zack.
13516
13517         MingW build fixes: Do the "OBJECTS_TRAILING_SLASH" trick not only for win32-msvc but for all win32 mkspecs. Added LIB/INCLUDE hack from Qt to make us pick up 3rdparty libraries such as libxml from these environment variables.
13518
13519         * WebCore.pro:
13520
13521 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13522
13523         Done with and reviewed by Lars and Zack.
13524
13525         Use $(MOVE) instead of mv to eliminated the shell dependency and replaced the long shell line to call bison and modify the css grammar file with a few lines of portable perl code.
13526
13527         * WebCore.pro:
13528         * css/makegrammar.pl: Added.
13529
13530 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13531
13532         Done with and reviewed by Lars and Zack.
13533
13534         On make install on Windows copy the dll into the bin dir.
13535
13536         * WebCore.pro:
13537
13538 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13539
13540         Done with and reviewed by Lars and Zack.
13541
13542         Link in libxml and libxslt on Windows.
13543
13544         * WebCore.pro:
13545
13546 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13547
13548         Done with and reviewed by Lars and Zack.
13549
13550         Temporarily disable the ICO support for the Qt build on Windows.
13551
13552         * WebCore.pro:
13553         * platform/graphics/qt/ImageDecoderQt.cpp:
13554
13555 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13556
13557         Done with and reviewed by Lars and Zack.
13558
13559         Fix evaluation with ActiveState Perl 5.6. Somehow it tried to treat nameEntries as array.
13560
13561         * bindings/scripts/CodeGeneratorJS.pm:
13562
13563 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13564
13565         Done with and reviewed by Lars and Zack.
13566
13567         Fix compilation with MSVC in the Qt build (missing header files).
13568
13569         * loader/icon/IconDatabaseNone.cpp:
13570         * platform/graphics/svg/SVGImage.cpp:
13571
13572 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13573
13574         Done with and reviewed by Lars and Zack.
13575
13576         Disable the favicon database on Windows for now, to eliminate the sqlite dependency.
13577
13578         * WebCore.pro:
13579
13580 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13581
13582         Done with and reviewed by Lars and Zack.
13583
13584         Added custom preprocessor support to make_names.pl and use the moc for it in the Qt build.
13585
13586         * WebCore.pro:
13587         * ksvg2/scripts/make_names.pl:
13588
13589 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13590
13591         Done with and reviewed by Lars and Zack.
13592
13593         Disable the batch mode for nmake to work around the clash of Node.c and Node.cpp both mapping to Node.obj
13594
13595         * WebCore.pro:
13596
13597 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13598
13599         Done with and reviewed by Lars and Zack.
13600
13601         Fix compilation under Windows (removed sys/time.h dependency, use Qt instead).
13602
13603         * platform/qt/SystemTimeQt.cpp:
13604
13605 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13606
13607         Done with and reviewed by Lars and Zack.
13608
13609         Fix compilation on Windows.
13610
13611         * platform/graphics/qt/PathQt.cpp:
13612
13613 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13614
13615         Done with and reviewed by Lars and Zack.
13616
13617         Fix generation of ColorData.c on Windows.
13618
13619         * WebCore.pro:
13620
13621 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13622
13623         Done with and reviewed by Lars and Zack.
13624
13625         Fix compilation under Qt/Windows.
13626
13627         * loader/icon/IconDatabase.cpp:
13628         (WebCore::IconDatabase::open):
13629
13630 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13631
13632         Done with and reviewed by Lars and Zack.
13633
13634         Changed extendedAttributes to be a variable instead of a hash directly. Required to work with ActiveState perl.
13635
13636         * bindings/scripts/IDLStructure.pm:
13637
13638 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13639
13640         Done with and reviewed by Lars and Zack.
13641
13642         Fix header guard generation for CSSGrammar.h under Windows
13643
13644         * WebCore.pro:
13645
13646 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13647
13648         Done with and reviewed by Lars and Zack.
13649
13650         Fix build with moc as preprocessor. Don't rely the preprocessor preserving whitespace at the beginning of lines.
13651
13652         * bindings/scripts/IDLParser.pm:
13653
13654 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13655
13656         Done with and reviewed by Lars and Zack.
13657
13658         Make make-css-file-arrays.pl work on Windows by not calling /usr/bin/gcc as preprocessor for the Qt build.
13659
13660         * WebCore.pro:
13661         * css/make-css-file-arrays.pl:
13662
13663 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13664
13665         Done with and reviewed by Lars and Zack.
13666
13667         More gperf commandline fixes for Windows.
13668
13669         * WebCore.pro:
13670
13671 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13672
13673         Done with and reviewed by Lars and Zack.
13674
13675         More quoting fixes for perl under Windows.
13676
13677         * WebCore.pro:
13678
13679 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13680
13681         Done with and reviewed by Lars and Zack.
13682
13683         Fix command quoting under Windows
13684
13685         * WebCore.pro:
13686
13687 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13688
13689         Done with and reviewed by Lars and Zack.
13690
13691         Fix cssmakeprops and cssmakevalue scripts to work on Windows without cygwin perl. Avoid inplace substitutions and direct invocation of /bin/sh. Also call gperf with arguments that GnuWin32's gperf understands.
13692
13693         * ksvg2/scripts/cssmakeprops:
13694         * ksvg2/scripts/cssmakevalues:
13695
13696 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13697
13698         Done with and reviewed by Lars and Zack.
13699
13700         Beautiful hacks to make more of the extra compiler magic work under Windows outside of cygwin.
13701
13702         * WebCore.pro:
13703
13704 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13705
13706         Done with and reviewed by Lars and Zack.
13707
13708         Correctly propagate the custom preprocessor option through the idl parser and the codegenerator.
13709
13710         * bindings/scripts/CodeGenerator.pm:
13711         * bindings/scripts/generate-bindings.pl:
13712
13713 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13714
13715         Done with and reviewed by Lars and Zack.
13716
13717         When constructing the absolute path when searching for IDL files in the list of search paths don't prepend a slash if $SOURCEROOT as environment variable is not set. In the Qt build we pass absolute search paths already and we don't set SOURCEROOT. Under Unix that gives a double slash for the directory which works fine, under Windows we get /c:\webkit\foo which of course does not work.
13718
13719         * bindings/scripts/CodeGenerator.pm:
13720
13721 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13722
13723         Done with and reviewed by Lars and Zack.
13724
13725         Relax the regular expression that tries to find constant declarations in the IDL source to not require leading whitespace. This makes it work with preprocessors that happen to eliminate leading whitespace.
13726
13727         * bindings/scripts/IDLParser.pm:
13728
13729 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13730
13731         Done with and reviewed by Lars and Zack.
13732
13733         Try to use the moc as preprocessor for the IDL bindings generator
13734
13735         * WebCore.pro:
13736
13737 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13738
13739         Done with and reviewed by Lars and Zack.
13740
13741         Make it possible to specify the preprocessor the bindings generator uses instead of hardcoding /usr/bin/gcc (which is of course no option on Windows). Also try to use a more portable and Windows friendly way of opening the reading pipe to the preprocessor.
13742
13743         * bindings/scripts/IDLParser.pm:
13744         * bindings/scripts/generate-bindings.pl:
13745
13746 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13747
13748         Done with and reviewed by Lars and Zack.
13749
13750         Don't use stdout redirection for make_names.pl as it doesn't work under Windows perl (outside cygwin).
13751
13752         * ksvg2/scripts/make_names.pl:
13753
13754 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13755
13756         Done with and reviewed by Lars and Zack.
13757
13758         Fix DocTypeStrings.cpp generation to work on Windows with cmd.exe
13759
13760         * WebCore.pro:
13761
13762 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13763
13764         Reviewed by Lars.
13765
13766         Work around aliasing bugs in WebCore by compiling with -fno-strict-aliasing for gcc builds for now.
13767
13768         * WebCore.pro:
13769
13770 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13771
13772         Reviewed by Lars.
13773
13774         Use -Wreturn-type only when compiling with g++
13775
13776         * WebCore.pro:
13777
13778 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13779
13780         Reviewed by Zack.
13781
13782         Don't use pkg-config on Windows for the Qt build
13783
13784         * WebCore.pro:
13785
13786 2007-07-27  Simon Hausmann  <hausmann@kde.org>
13787
13788         Reviewed by Zack.
13789
13790         Fix compilation with MSVC.
13791
13792         * platform/graphics/qt/ImageDecoderQt.cpp:
13793
13794 2007-07-26  Tristan O'Tierney  <tristan@apple.com>
13795
13796         Reviewed by Anders Carlsson.
13797
13798         <rdar://problem/5350019> REGRESSION: Pages on milliyet.com are added to Back list when visited, causing Back button to just reload
13799
13800         * loader/FrameLoader.cpp:
13801         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
13802         If the policy action is FrameLoadTypeRedirectLockHistory, don't add the frame load url to the history.
13803
13804 2007-07-26  Anders Carlsson  <andersca@apple.com>
13805
13806         Reviewed by Geoff.
13807
13808         Add a FIXME about caching pages with plug-ins that have outstanding NPObjects.
13809         
13810         * loader/FrameLoader.cpp:
13811         (WebCore::FrameLoader::canCachePage):
13812
13813 2007-07-26  David Hyatt  <hyatt@apple.com>
13814
13815         FIx for <rdar://problem/5289721> CrashTracer: [REGRESSION] 2658 crashes in Safari at com.apple.WebCore: WebCore::RenderInline::height const + 16
13816
13817         Adding a null check for now and an assert.  We don't know how/why this
13818         bug happens, but hopefully the assert will help people to reproduce.
13819
13820         Reviewed by kevin
13821
13822         * rendering/RenderInline.cpp:
13823         (WebCore::RenderInline::height):
13824
13825 2007-07-26  Anders Carlsson  <andersca@apple.com>
13826
13827         Reviewed by Oliver.
13828
13829         <rdar://problem/5362783>
13830         In Mail, a crash occurs at WTF::fastMalloc() when attempting to create a new HTML message from http://nytimes.com/
13831         
13832         If the cache is disabled and there is already a resource with the given URL, return it instead of creating a new one.
13833         
13834         * loader/DocLoader.cpp:
13835         (WebCore::DocLoader::requestResource):
13836
13837 2007-07-26  Adele Peterson  <adele@apple.com>
13838
13839         Reviewed by Geoff. 
13840
13841         Build fix.
13842
13843         * platform/network/cf/ResourceRequest.h:
13844
13845 2007-07-26  Anders Carlsson  <andersca@apple.com>
13846
13847         Reviewed by John Sullivan.
13848
13849         <rdar://problem/5349389> 
13850         Some frame load delegate methods not called when loading a page from the BF cache
13851         
13852         These calls were moved to FrameLoader::begin, which is never called for pages loaded
13853         from the BF cache. This happened in revision 24490.
13854          
13855         * loader/FrameLoader.cpp:
13856         (WebCore::FrameLoader::transitionToCommitted):
13857         Call delegate methods if the load is from the BF cache.
13858
13859 2007-07-26  Kevin McCullough  <kmccullough@apple.com>
13860
13861         Reviewed by Darin, Geoff and Sam.
13862
13863         - <rdar://problem/5150461> Resizing the window larger than the screen causes no resize.
13864         - We now better match the behavior of other browsers.
13865
13866         * bindings/js/kjs_window.cpp:
13867         (KJS::constrainToVisible):
13868         (KJS::WindowFunc::callAsFunction):
13869
13870 2007-07-26  Tristan O'Tierney  <tristan@apple.com>
13871
13872         Reviewed by Adele Peterson.
13873         
13874         <rdar://problem/5359921> WebCore should maintain a dirty flag for confirmation on unsaved changes
13875
13876         * bindings/objc/DOMHTML.mm:
13877         (-[DOMHTMLInputElement _isUserEdited]):
13878         (-[DOMHTMLTextAreaElement _isUserEdited]):
13879         Renamed _isEdited to _isUserEdited since the functionality is now different
13880         
13881         * bindings/objc/DOMPrivate.h:
13882         Renamed _isEdited to _isUserEdited.
13883         
13884         * rendering/RenderTextControl.cpp:
13885         (WebCore::RenderTextControl::RenderTextControl):
13886         Defaulted m_userEdited to false
13887         
13888         (WebCore::RenderTextControl::updateFromElement):
13889         Set m_userEdited to false, since the change wasn't triggered first by an edit
13890         
13891         (WebCore::RenderTextControl::subtreeHasChanged):
13892         Set m_userEdited to true, since it has been touched by the user
13893         
13894         * rendering/RenderTextControl.h:
13895         (WebCore::RenderTextControl::isUserEdited):
13896         (WebCore::RenderTextControl::setUserEdited):
13897         Added two new methods to set/return the userEdited boolean value.
13898         
13899 2007-07-26  Geoffrey Garen  <ggaren@apple.com>
13900
13901         Reviewed by Beth Dakin.
13902
13903         Fixed NULL-dereference crash seen on buildbot.
13904         
13905         No bug filed because this is a part of <rdar://problem/5241167>.
13906
13907         * history/PageCache.h:
13908         (WebCore::PageCache::get): NULL-check HistoryItems passed to get()
13909         and remove(), to match the old semantics of HashMap. For clarity,
13910         ASSERT that add() is not called with NULL arguments.
13911
13912 2007-07-26  Anders Carlsson  <andersca@apple.com>
13913
13914         Reviewed by Oliver Hunt.
13915
13916         <rdar://problem/5361106> Crash in user style sheet when loading webpage
13917
13918         Null check m_frame.
13919         
13920         * dom/Document.cpp:
13921         (WebCore::Document::stylesheetLoaded):
13922
13923 2007-07-26  Geoffrey Garen  <ggaren@apple.com>
13924
13925         Used `svn merge -r24646:24645' to revert project changes I accidentally
13926         checked in.
13927
13928         * WebCore.xcodeproj/project.pbxproj:
13929
13930 2007-07-26  Geoffrey Garen  <ggaren@apple.com>
13931
13932         Reviewed by Darin Adler.
13933
13934         Fixed <rdar://problem/5241167> REGRESSION: PLT 1% slower due to r21793 
13935         (global page cache cap)
13936         
13937         I just measured a .1%-.2% regression in PLT average, but a .4% win in 
13938         PLT fastest run, so I think this regression is licked.
13939
13940         Surprisingly, the combination of wtf data structures I originally used 
13941         for PageCache turned out to be too slow, so I reworked PageCache to use
13942         a hand-crafted linked list for LRU tracking (instead of ListHashSet), 
13943         to store its CachedPages in the HistoryItems to which they corresponded 
13944         (instead of using a HashMap), and to ref/deref HistoryItems manually
13945         (instead of using RefPtr, which would ref once for every reference in 
13946         the linked list).
13947
13948         * history/HistoryItem.h: Added data members for PageCache data. Made
13949         PageCache a friend so it could access them. Ideally (from an 
13950         encapsulation perspective), we would store this data an independent 
13951         structure, but that's just too slow.
13952
13953         * history/PageCache.cpp: Added a hand-crafted linked list for LRU 
13954         tracking.
13955         (WebCore::PageCache::PageCache):
13956         (WebCore::PageCache::add): Adopt the HistoryItem's ref when it's added.
13957         (WebCore::PageCache::remove): deref() the Historyitem when it's 
13958         removed.
13959         (WebCore::PageCache::prune):
13960         (WebCore::PageCache::addToLRUList):
13961         (WebCore::PageCache::removeFromLRUList):
13962
13963         * history/PageCache.h:
13964         (WebCore::PageCache::get): Inlined just in case.
13965
13966 2007-07-26  Adam Treat  <treat@kde.org>
13967
13968         Reviewed by George Staikos.
13969
13970         Launch the context menu in the right place.
13971
13972         * platform/qt/ContextMenuQt.cpp:
13973         (WebCore::ContextMenu::setPlatformDescription):
13974
13975 2007-07-25  Maciej Stachowiak  <mjs@apple.com>
13976
13977         Reviewed by Mark.
13978
13979         - follow-up to previous change to avoid assertion failures in debug
13980         
13981         * xml/XMLHttpRequest.cpp:
13982         (WebCore::XMLHttpRequest::getResponseText): hold JSLock when needed
13983         (WebCore::XMLHttpRequest::open): ditto
13984         (WebCore::XMLHttpRequest::didFinishLoading): ditto
13985         (WebCore::XMLHttpRequest::didReceiveData): ditto
13986         * xml/XMLHttpRequest.h:
13987
13988 2007-07-25  Anders Carlsson  <andersca@apple.com>
13989
13990         Reviewed by Darin.
13991
13992         <rdar://problem/5327912> 
13993         iDisk: Web iDisk & main iDisk appear blank
13994         
13995         Prepend any remaining text that scripts might have written.
13996         
13997         * html/HTMLTokenizer.cpp:
13998         (WebCore::HTMLTokenizer::scriptExecution):
13999
14000 2007-07-25  Kevin McCullough  <kmccullough@apple.com>
14001
14002         Reviewed by Tim, Darin, Oliver.
14003
14004         - <rdar://problem/5329440> REGRESSION: Clicking links with the feed:// protocol in Safari 3 does nothing
14005         - Check for file:// urls when clicking links, not block all schemes that are treated as local.
14006
14007         * loader/FrameLoader.cpp:
14008         (WebCore::FrameLoader::load):
14009
14010 2007-07-25  Maciej Stachowiak  <mjs@apple.com>
14011
14012         Reviewed by Darin.
14013
14014         - fixed <rdar://problem/5300291> Optimize GC to reclaim big, temporary objects (like XMLHttpRequest.responseXML) quickly
14015         
14016         With this plus related JavaScriptCore changes, a number of XMLHttpRequest situations that
14017         result in huge data sets are addressed, including a single huge responseXML on an XMR done
14018         repeatedly, or accessing responseText repeatedly during loading of a single large XHR.
14019         
14020         In addition to the GC changes in JavaScriptCore, I changed responseText to be stored as a
14021         KJS::UString instead of a WebCore::String so that the JavaScript responseText value can
14022         share the buffer (indeed multiple intermediate responseTexts can share its buffer).
14023
14024         
14025         First of all, here's some manual test cases that will each blow out the process VM without this fix,
14026         but will settle into decent steady state with.
14027         
14028         * manual-tests/memory: Added.
14029         * manual-tests/memory/MessageUidsAlreadyDownloaded2: Added.
14030         * manual-tests/memory/string-growth.html: Added.
14031         * manual-tests/memory/xhr-multiple-requests-responseText.html: Added.
14032         * manual-tests/memory/xhr-multiple-requests-responseXML.html: Added.
14033         * manual-tests/memory/xhr-multiple-requests.html: Added.
14034         * manual-tests/memory/xhr-repeated-string-access.xml: Added.
14035
14036         And here's the actual code changes:
14037         
14038         * WebCore.xcodeproj/project.pbxproj:
14039         * bindings/js/JSDocumentCustom.cpp:
14040         (WebCore::toJS): Record extra cost if the document is frameless (counting the nodes
14041         doesn't make a measurable performance difference here in any case I could find)
14042         * bindings/js/JSXMLHttpRequest.cpp:
14043         (KJS::JSXMLHttpRequest::getValueProperty): Adjust for the fact that ressponseText
14044         is now stored as a UString.
14045         * bindings/js/kjs_binding.cpp:
14046         (KJS::jsOwnedStringOrNull): New helper.
14047         * bindings/js/kjs_binding.h:
14048         * xml/XMLHttpRequest.cpp:
14049         (WebCore::XMLHttpRequest::getResponseText): It's a UString!
14050         (WebCore::XMLHttpRequest::getResponseXML): handle the fact that m_responseText
14051         is a UString.
14052         (WebCore::XMLHttpRequest::XMLHttpRequest): ditto.
14053         (WebCore::XMLHttpRequest::abort): call dropProtection
14054         (WebCore::XMLHttpRequest::didFinishLoading): call dropProtection
14055         (WebCore::XMLHttpRequest::dropProtection): after removing our GC protection,
14056         report extra cost of this XHR's responseText buffer.
14057         * xml/XMLHttpRequest.h:
14058
14059 2007-07-25  Timothy Hatcher  <timothy@apple.com>
14060
14061         Reviewed by Brady.
14062
14063         <rdar://problem/4796657> table deletion outline does not always follow the table size as editing occurs inside
14064
14065         Change the outline element to position itself automaticlly using the top, left, bottom and right CSS properties.
14066         This made the container element redundant, so it has been removed. Now the outline element and the delete button
14067         both get appended to the target element and positioned based on that container element. This removes the need
14068         to update the width and height when the target contents changed.
14069
14070         * editing/DeleteButtonController.cpp:
14071         (WebCore::DeleteButtonController::show): Change the style properties and remove the container element.
14072         (WebCore::DeleteButtonController::hide): Remove the button and outline from the target element.
14073         * editing/DeleteButtonController.h: Removed updateOutlineStyle, respondToChangedContents and m_containerElement.
14074         * editing/Editor.cpp:
14075         (WebCore::Editor::respondToChangedContents): Remove the call to DeleteButtonController respondToChangedContents.
14076
14077 2007-07-25  Anders Carlsson  <andersca@apple.com>
14078
14079         Reviewed by Darin.
14080
14081         <rdar://problem/5344471>
14082         CrashTracer: [USER] 1 crash in Mail at WebCore::PluginTokenizer::writeRawData(char const*, int)
14083         
14084         Make sure to layout so we'll have a renderer. Also null-check the renderer for extra safety.
14085         
14086         * loader/PluginDocument.cpp:
14087         (WebCore::PluginTokenizer::writeRawData):
14088
14089 2007-07-25  Brett Wilson  <brettw@chromium.org>
14090
14091         Reviewed by Maciej, Darin.
14092
14093         - http://bugs.webkit.org/show_bug.cgi?id=14030
14094
14095         Add ResourceHandle::setClient to resolve some messiness with handle
14096         releasing. Clear the client when ResourceLoader is going to release
14097         the handle to prevent crashes in the case where somebody still holds a
14098         reference (this doesn't seem to currently happen in practice). Add
14099         NULL-checking for ResourceHandle implementations using the client.
14100
14101         * loader/ResourceLoader.cpp:
14102         (WebCore::ResourceLoader::releaseResources):
14103         * platform/network/ResourceHandle.cpp:
14104         (WebCore::ResourceHandle::fireBlockedFailure):
14105         (WebCore::ResourceHandle::setClient):
14106         * platform/network/ResourceHandle.h:
14107         * platform/network/cf/ResourceHandleCFNet.cpp:
14108         (WebCore::willSendRequest):
14109         (WebCore::didReceiveResponse):
14110         (WebCore::didReceiveData):
14111         (WebCore::didFinishLoading):
14112         (WebCore::didFail):
14113         (WebCore::willCacheResponse):
14114         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
14115         (WebCore::ResourceHandle::receivedCancellation):
14116         * platform/network/mac/ResourceHandleMac.mm:
14117         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
14118         (WebCore::ResourceHandle::didCancelAuthenticationChallenge):
14119         (WebCore::ResourceHandle::receivedCancellation):
14120         (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
14121         (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
14122         (-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]):
14123         (-[WebCoreResourceHandleAsDelegate connection:willStopBufferingData:]):
14124         (-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]):
14125         (-[WebCoreResourceHandleAsDelegate connection:didFailWithError:]):
14126         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
14127
14128 2007-07-25  Maxime Britto  <mbritto@pleyo.com>
14129
14130         Reviewed by Darin.
14131
14132         - fix http://bugs.webkit.org/show_bug.cgi?id=11756
14133           REGRESSION: link targeting a frame in another window does not work
14134           <rdar://problem/5286420>
14135
14136         Test: http/tests/navigation/target-frame-from-window.html
14137
14138         Fix a typo error to really compare the present domain to the domain of the parent of the targeted frame.
14139
14140         * loader/FrameLoader.cpp: (WebCore::FrameLoader::canTarget):
14141
14142 2007-07-25  Mitz Pettel  <mitz@webkit.org>
14143
14144         Reviewed by Darin.
14145
14146         - fix http://bugs.webkit.org/show_bug.cgi?id=14758
14147           REGRESSION: Repeated text after line break on facebook.com
14148
14149         Test: fast/text/reset-emptyRun.html
14150
14151         * platform/BidiResolver.h:
14152         (WebCore::::deleteRuns): Re-add a line that was removed for no reason at all
14153         during refactoring in r24485.
14154         * rendering/bidi.cpp:
14155         (WebCore::BidiState::deleteRuns): Ditto.
14156
14157 2007-07-24  Oliver Hunt  <oliver@apple.com>
14158
14159         Reviewed by Adam and Justin.
14160
14161         <rdar://problem/5141779> WebView editableDOMRangeForPoint: & moveDragCaretToPoint: returns last position in DOMText range
14162
14163         Remove bridge implementation for editableDOMRangeForPoint: and moveDragCaretToPoint:. 
14164         Now use cross-platform code Editor::rangeForPoint and DragController::placeDragCaret instead.
14165         This required lifting local code from DragController.cpp into the shared methods
14166         Frame::visiblePositionForPoint and Frame::documentAtPoint.
14167
14168         * WebCore.exp:
14169         * editing/Editor.cpp:
14170         (WebCore::Editor::rangeForPoint):
14171         * editing/Editor.h:
14172         * page/DragController.cpp:
14173         (WebCore::DragController::dragEnded):
14174         (WebCore::DragController::performDrag):
14175         (WebCore::DragController::dragEnteredOrUpdated):
14176         (WebCore::DragController::tryDocumentDrag):
14177         (WebCore::DragController::operationForLoad):
14178         (WebCore::setSelectionToDragCaret):
14179         (WebCore::DragController::concludeDrag):
14180         (WebCore::DragController::placeDragCaret):
14181         * page/DragController.h:
14182         * page/Frame.cpp:
14183         (WebCore::Frame::visiblePositionForPoint):
14184         (WebCore::Frame::documentAtPoint):
14185         * page/Frame.h:
14186         * page/mac/WebCoreFrameBridge.h:
14187         * page/mac/WebCoreFrameBridge.mm:
14188
14189 2007-07-24  Sam Weinig  <sam@webkit.org>
14190
14191         Rubber-stamped by Adam Roben.
14192
14193         Remove unused .strip files.
14194
14195         * WebCore.xcodeproj/project.pbxproj:
14196
14197 2007-07-24  Adele Peterson  <adele@apple.com>
14198
14199         Reviewed by Hyatt.
14200
14201         Fix for <rdar://problem/5308492> Computed width for elements with box-sizing: border-box is not equal to the width set in the CSS
14202
14203         Test: fast/css/getComputedStyle-border-box.html
14204
14205         * css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
14206           For the width and height properties, when you get the value from the renderer, use the renderer's box sizing value to determine the size.
14207
14208 2007-07-24  Anders Carlsson  <andersca@apple.com>
14209
14210         Reviewed by Kevin Decker.
14211
14212         <rdar://problem/5355781>
14213         REGRESSION: reproducible crash in CoreFoundation!CFRunLoopFinished on Flash pages
14214         
14215         Null check the loader.
14216         
14217         * plugins/win/PluginStreamWin.cpp:
14218         (WebCore::PluginStreamWin::start):
14219
14220 2007-07-24  Adele Peterson  <adele@apple.com>
14221
14222         Reviewed by Hyatt and Adam.
14223
14224         Fix for <rdar://problem/5130590> REGRESSION: style="width:1px" on <select> element no longer hides the element
14225
14226         Removed hack that forced large padding on popup buttons.  Now we put that padding in the inner block, so that
14227         the specified width will be honored.
14228
14229         * rendering/RenderMenuList.cpp:
14230         (WebCore::RenderMenuList::adjustInnerStyle): Set the padding on the inner block based on the metrics provided by the theme.
14231         (WebCore::RenderMenuList::controlClipRect): Clip to the intersection of the inner content box and the outer content box.
14232          This will leave room for the arrows which sit in the inner box padding, and if the inner box ever spills out of the outer box, 
14233          that will get clipped too.
14234         (WebCore::RenderMenuList::calcPrefWidths):  Add in the inner box's padding and border to the pref widths.
14235
14236         * rendering/RenderThemeMac.mm:
14237         (WebCore::RenderThemeMac::paintMenuList): Only inflate the rect for the shadow if the rect is big enough to fit the whole control.
14238          Also, on Leopard, the NSCell will draw outside of a small rect, so add a clip for that case.
14239         (WebCore::RenderThemeMac::paintMenuListButton): Restrict font scale to make sure the arrows will actually fit in the bounds vertically.
14240          Don't draw the arrows if they won't fit horizontally.  Reset padding.  Since WinIE doesn't honor padding for popups, its not critical to
14241          support padding at this time.
14242         (WebCore::RenderThemeMac::adjustMenuListStyle): Don't set the padding here.  Instead, we're going to set the padding on the inner block of the select.
14243         (WebCore::RenderThemeMac::adjustMenuListButtonStyle): ditto.
14244         (WebCore::RenderThemeMac::popupInternalPaddingLeft): Added.  Provides internal padding values for RenderMenuList.
14245         (WebCore::RenderThemeMac::popupInternalPaddingRight): ditto.
14246         (WebCore::RenderThemeMac::popupInternalPaddingTop): ditto.
14247         (WebCore::RenderThemeMac::popupInternalPaddingBottom): ditto.
14248         * rendering/RenderThemeMac.h:
14249
14250         * rendering/RenderThemeSafari.cpp:  The same changes that were made to RenderThemeMac were made here, with variations for the arrow differences.
14251           This code should be refactored and shared, but now did not seem like the right time to do that refactoring.
14252         (WebCore::RenderThemeSafari::paintMenuList):
14253         (WebCore::RenderThemeSafari::paintMenuListButton):
14254         (WebCore::RenderThemeSafari::adjustMenuListStyle):
14255         (WebCore::RenderThemeSafari::popupInternalPaddingLeft):
14256         (WebCore::RenderThemeSafari::popupInternalPaddingRight):
14257         (WebCore::RenderThemeSafari::popupInternalPaddingTop):
14258         (WebCore::RenderThemeSafari::popupInternalPaddingBottom):
14259         (WebCore::RenderThemeSafari::adjustMenuListButtonStyle):
14260         * rendering/RenderThemeSafari.h:
14261
14262         * rendering/RenderTheme.h: Added to provide internal padding values for RenderMenuList.
14263         (WebCore::RenderTheme::popupInternalPaddingLeft):
14264         (WebCore::RenderTheme::popupInternalPaddingRight):
14265         (WebCore::RenderTheme::popupInternalPaddingTop):
14266         (WebCore::RenderTheme::popupInternalPaddingBottom):
14267
14268 2007-07-24  Lars Knoll  <lars@trolltech.com>
14269
14270         Reviewed by Adam Roben & David Kilzer.
14271
14272         replace the makeprop and makevalues shell scripts by equivalent perl versions. This is required to remove the last shell dependency when building QtWebKit on Windows.
14273
14274         * DerivedSources.make:
14275         * WebCore.pro:
14276         * WebCore.xcodeproj/project.pbxproj:
14277         * css/makeprop: Added.
14278         * css/makeprop.pl: Removed.
14279         * css/makevalues: Added.
14280         * css/makevalues.pl: Removed.
14281
14282 2007-07-24  Beth Dakin  <bdakin@apple.com>
14283
14284         Reviewed by Darin.
14285
14286         Fix for http://bugs.webkit.org/show_bug.cgi?id=14714 REGRESSION: 
14287         ASSERTION FAILED: i < size() in Vector.h:401 on negative -webkit-
14288         column-width
14289         - and -
14290         http://bugs.webkit.org/show_bug.cgi?id=14718 REGRESSION: ASSERTION 
14291         FAILED: i < size() in Vector.h:401 on zero -webkit-column-count
14292
14293         * rendering/RenderBlock.cpp:
14294         (WebCore::RenderBlock::calcColumnWidth): Make 1 the minimum value 
14295         for column-width and column-count. Since the spec does not address 
14296         what to do with negative values for these properties, we are 
14297         patching the rendering code instead of the parser.
14298
14299 2007-07-24  Anders Carlsson  <andersca@apple.com>
14300
14301         Reviewed by Steve.
14302         
14303         <rdar://problem/5355403>
14304         REGRESSION: 303A2 does not display pdf files with AdobeReader 8.1
14305         
14306         Close the file before handing off the file name to the plug-in.
14307         
14308         * plugins/win/PluginStreamWin.cpp:
14309         (WebCore::PluginStreamWin::destroyStream):
14310
14311 2007-07-24  Alp Toker  <alp.toker@collabora.co.uk>
14312
14313         Reviewed by Adam.
14314
14315         http://bugs.webkit.org/show_bug.cgi?id=14711
14316         RenderThemeGdk's buttons are state-agnostic (pressed, hovered)
14317
14318         Remove unnecessary label from widget instances.
14319         Render check and radio widgets correctly.
14320         Determine the widget state and render it appropriately.
14321
14322         * platform/gdk/RenderThemeGdk.cpp:
14323         (WebCore::RenderThemeGdk::determineState):
14324         (WebCore::RenderThemeGdk::paintCheckbox):
14325         (WebCore::RenderThemeGdk::paintRadio):
14326         (WebCore::RenderThemeGdk::paintButton):
14327         (WebCore::RenderThemeGdk::gtkButton):
14328         (WebCore::RenderThemeGdk::gtkCheckbox):
14329         (WebCore::RenderThemeGdk::gtkRadioButton):
14330         * platform/gdk/RenderThemeGdk.h:
14331
14332 2007-07-24  Mark Rowe  <mrowe@apple.com>
14333
14334         Reviewed by Antti.
14335
14336         <rdar://problem/5356666> NSMenuItem's seen leaking on buildbot
14337
14338         * platform/mac/ContextMenuItemMac.mm:
14339         (WebCore::ContextMenuItem::releasePlatformDescription): Transfer ownership from the RetainPtr's CF-based retain
14340         count to the Foundation retain count so that callers of releasePlatformDescription can use -[NSObject release]
14341         to dispose of it in a manner that won't leak under Obj-C GC.
14342         * platform/mac/ContextMenuMac.mm:
14343         (WebCore::ContextMenu::appendItem): Release platformItem as we were transferred its ownership by releasePlatformDescription.
14344         (WebCore::ContextMenu::insertItem): ditto.
14345
14346 2007-07-24  Mitz Pettel  <mitz@webkit.org>
14347
14348         Reviewed by Darin.
14349
14350         - fix http://bugs.webkit.org/show_bug.cgi?id=14684
14351           Hebrew text in Safari chrome is reversed (LTR instead of RTL)
14352
14353         Test: fast/text/drawBidiText.html
14354
14355         * WebCore.pro:
14356         * WebCore.vcproj/WebCore.vcproj:
14357         * WebCore.xcodeproj/project.pbxproj:
14358         * WebCoreSources.bkl:
14359         * manual-tests/chrome-bidi-text.html: Added.
14360         * manual-tests/resources/chrome-bidi-text-window.html: Added.
14361         * platform/BidiReorderCharacters.cpp: Removed.
14362         * platform/BidiReorderCharacters.h: Removed.
14363         * platform/BidiResolver.h:
14364         (WebCore::BidiCharacterRun::start): Added accessor method.
14365         (WebCore::BidiCharacterRun::stop): Ditto.
14366         (WebCore::BidiCharacterRun::level): Ditto.
14367         (WebCore::BidiCharacterRun::next): Ditto.
14368         (WebCore::::appendRun): Added default implementation.
14369         * platform/TextStyle.h:
14370         (WebCore::TextStyle::setDirectionalOverride): Added accessor method.
14371         * platform/graphics/GraphicsContext.cpp:
14372         (WebCore::TextRunIterator::TextRunIterator): Added. A BidiResolver-
14373         compliant iterator over the characters in a TextRun.
14374         (WebCore::TextRunIterator::offset):
14375         (WebCore::TextRunIterator::increment):
14376         (WebCore::TextRunIterator::atEnd):
14377         (WebCore::TextRunIterator::current):
14378         (WebCore::TextRunIterator::direction):
14379         (WebCore::TextRunIterator::operator==):
14380         (WebCore::TextRunIterator::operator!=):
14381         (WebCore::GraphicsContext::drawBidiText): Added. Applies the Unicode
14382         Bidi Algorithm to the text and draws the resulting unidirectional runs
14383         in the right order and with the right directionality.
14384         * platform/graphics/GraphicsContext.h:
14385         * platform/win/PopupMenuWin.cpp:
14386         (WebCore::PopupMenu::paint): Replaced the use of a character buffer
14387         and BidiReorderCharacters with calling to drawBidiText(). Removed special
14388         handling of '-webkit-rtl-ordering:visual' because that CSS property is an
14389         implementation detail of WebCore's visual Hebrew support, and the UA stylesheet
14390         sets it to 'logical' for this form control. Authors can specify the ordering
14391         using the 'direction' and 'unicode-bidi' properties.
14392         * platform/win/WebCoreTextRenderer.cpp:
14393         (WebCore::isOneLeftToRightRun): Added. Checks if the text consists of
14394         a single left-to-right run, in which case it requires no bidi processing.
14395         (WebCore::doDrawTextAtPoint): Changed to call drawBidiText if the text
14396         is not entirely left-to-right.
14397         * rendering/RenderFileUploadControl.cpp:
14398         (WebCore::RenderFileUploadControl::paintObject): Replaced the use of a
14399         character buffer in BidiReorderCharacters with calling to drawBidiText().
14400         Removed special handling of '-webkit-rtl-ordering:visual' for the same reason
14401         stated above.
14402         * rendering/RenderListBox.cpp:
14403         (WebCore::RenderListBox::paintItemForeground): Ditto. Also changed the
14404         run-rounding modes used when drawing to match those used when measuring.
14405
14406 2007-07-23  Oliver Hunt  <oliver@apple.com>
14407
14408         Reviewed by Steve.
14409
14410         Windows build fix, remove superfluous !
14411
14412         * page/EventHandler.cpp:
14413         (WebCore::EventHandler::keyEvent):
14414
14415 2007-07-23  Adam Roben  <aroben@apple.com>
14416
14417         Add an assignment operator for BString that takes a BSTR
14418
14419         Reviewed by Geoff and Oliver.
14420
14421         * platform/win/BString.cpp:
14422         (WebCore::BString::operator=):
14423         * platform/win/BString.h:
14424
14425 2007-07-23  Justin Garcia  <justin.garcia@apple.com>
14426
14427         Reviewed by Geoff.
14428         
14429         <rdar://problem/5354455> Word selection when right-clicking can be confusing (14728)
14430
14431         * page/EventHandler.cpp:
14432         (WebCore::EventHandler::sendContextMenuEvent): In non-editable content,
14433         only do word selection over text.  In editable content, we will continue
14434         to select images, line breaks and other elements on right-clicks, to match 
14435         TextEdit.  For now, in editable content, we'll live with the cases where 
14436         positionForPoint creates selections that aren't underneath the mouse.  These
14437         aren't regressions because we've always done word selection on right clicks
14438         in editable content.
14439
14440 2007-07-23  Anders Carlsson  <andersca@apple.com>
14441
14442         Reviewed by Oliver.
14443
14444         <rdar://problem/5335354>
14445         REGRESSION(r21359-r21368): Can't edit inside RTEF editable region
14446         
14447         If Document::open is called and there's a pending load that has not yet started,
14448         that load should be cancelled.
14449         
14450         * dom/Document.cpp:
14451         (WebCore::Document::open):
14452
14453 2007-07-23  Timothy Hatcher  <timothy@apple.com>
14454
14455         Reviewed by Hyatt.
14456
14457         <rdar://problem/5242145> REGRESSION: Clicking on symbol in documentation often doesn't scroll to symbol
14458
14459         A renderer for the anchor wasn't always available at the time parsing finished. So we need
14460         to bail out of gotoAnchor if stylesheets are pending and remember to call gotoAnchor later
14461         once all of the pending stylesheets load.
14462
14463         * dom/Document.cpp:
14464         (WebCore::Document::Document): Initialize m_gotoAnchorNeededAfterStylesheetsLoad to false.
14465         (WebCore::Document::stylesheetLoaded): If we have no more pending stylesheets, call gotoAnchor if needed.
14466         * dom/Document.h:
14467         (WebCore::Document::gotoAnchorNeededAfterStylesheetsLoad): New method.
14468         (WebCore::Document::setGotoAnchorNeededAfterStylesheetsLoad): Ditto.
14469         * loader/FrameLoader.cpp:
14470         (WebCore::FrameLoader::gotoAnchor): Bail early if the document still has pending stylesheets.
14471         * loader/FrameLoader.h: Make gotoAnchor() public.
14472
14473 2007-07-23  John Sullivan  <sullivan@apple.com>
14474
14475         Reviewed by Darin
14476         
14477         - fixed <rdar://problem/5327887> Printing Mail note (or Safari page) with misspelled word prints red underline
14478
14479         * rendering/InlineTextBox.cpp:
14480         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
14481         When printing, bail out without doing any work. Also moved a couple of lines down below another early
14482         bailout since they were pointless above it.
14483
14484 2007-07-23  Oliver Hunt  <oliver@apple.com>
14485
14486         Reviewed by Darin.
14487         
14488         <rdar://problem/5353577> WebKit key event behaviour needs to better match other browsers keyevent behaviour
14489         <rdar://problem/5352152> REGRESSION (24399-24479): Pressing Enter in a search field at apple.com no longer starts a search with Korean IM
14490         <rdar://problem/5352649> WebKit should send keyDown event on autorepeat keyDowns
14491         http://bugs.webkit.org/show_bug.cgi?id=14690
14492
14493         Perform Input Method call first so that our behaviour is determined by whether or not 
14494         the input method has actually handle the event, rather than by making guesses based 
14495         on the existences of marked text.  This fixes issues with IMs that have side effects
14496         even on events they do not handle.
14497
14498         Refactored the code in order to improve clarity given the hoisting required by performing
14499         the IM call earlier.
14500
14501         * page/EventHandler.cpp:
14502         (WebCore::EventHandler::keyEvent):
14503
14504 2007-07-23  Anders Carlsson  <andersca@apple.com>
14505
14506         Reviewed by Darin.
14507
14508         <rdar://problem/5045711> 
14509         http://bugs.webkit.org/show_bug.cgi?id=12938
14510         Google calendar settings page crashes
14511         
14512         Move handling of checked radio buttons to a new class, HTMLFormElement::CheckedRadioButtons. 
14513         Each <form> element has an instance of this class. For radio buttons without a containing 
14514         form, the document has an instance of HTMLFormElement::CheckedRadioButtons where the
14515         state of those radio buttons will be stored.
14516         be stored.
14517         
14518         This also fixes another bug where removing a checked radio button that does not have a
14519         containing form would not remove the radio button from the checked radio buttons map,
14520         which could lead to a crash due to a dangling pointer.
14521         
14522         * dom/Document.cpp:
14523         (WebCore::Document::~Document):
14524         * dom/Document.h:
14525         (WebCore::Document::checkedRadioButtons):
14526         * html/HTMLFormElement.cpp:
14527         (WebCore::HTMLFormElement::registerFormElement):
14528         (WebCore::HTMLFormElement::removeFormElement):
14529         (WebCore::HTMLFormElement::CheckedRadioButtons::didCheckButton):
14530         (WebCore::HTMLFormElement::CheckedRadioButtons::checkedButtonForGroup):
14531         (WebCore::HTMLFormElement::CheckedRadioButtons::removeButtonIfChecked):
14532         * html/HTMLFormElement.h:
14533         (WebCore::HTMLFormElement::checkedRadioButtons):
14534         * html/HTMLGenericFormElement.cpp:
14535         (WebCore::HTMLGenericFormElement::insertedIntoTree):
14536         * html/HTMLInputElement.cpp:
14537         (WebCore::HTMLInputElement::~HTMLInputElement):
14538         (WebCore::checkedRadioButtons):
14539         (WebCore::HTMLInputElement::isKeyboardFocusable):
14540         (WebCore::HTMLInputElement::setInputType):
14541         (WebCore::HTMLInputElement::parseMappedAttribute):
14542         (WebCore::HTMLInputElement::setChecked):
14543         (WebCore::HTMLInputElement::preDispatchEventHandler):
14544         (WebCore::HTMLInputElement::willMoveToNewOwnerDocument):
14545         * manual-tests/remove-form-node-with-radio-buttons-crash.html: Added.
14546
14547 2007-07-23  David Hyatt  <hyatt@apple.com>
14548
14549         Fix for 5350587, hang in iExploder text 8101.  The code that painted outlines for continuations was buggy
14550         in that it assumed the chain was always inline-block-inline, but this is only true for the innermost chained
14551         continuation.  To make this more robust, we always just use the inline's containing block's containing block,
14552         which should be guaranteed to enclose all renderers in the continuation chain.  In addition, there is now a
14553         null check (to guarantee no more hangs) and an assert (to check if we hit this situation again where the block
14554         used to paint does not properly enclose the continuation chain).
14555
14556         Reviewed by beth
14557
14558         fast/inline/outline-continuation.html
14559
14560         * rendering/RenderBlock.cpp:
14561         (WebCore::RenderBlock::paintContinuationOutlines):
14562         * rendering/InlineFlowBox.cpp:
14563         (WebCore::RenderInline::paint):
14564
14565 2007-07-22  Holger Hans Peter Freyther  <zecke@selfish.org>
14566
14567         Reviewed by Adam.
14568
14569         WARNING: NO TEST CASES ADDED OR CHANGED
14570
14571         Add the WebKit/Gtk API to the buildsystem, ask qmake to create a
14572         pkg-config file and install headers and libraries.
14573
14574         Start to emit signals from FrameLoaderClientGdk, hide the kit Frame
14575         inside the the FrameLoaderClientGdk.
14576
14577         Move ChromeClientGdk to WebKit/gtk/WebCoreSupport
14578
14579         * WebCore.pro:
14580         * loader/gdk/FrameLoaderClientGdk.cpp:
14581         * loader/gdk/FrameLoaderClientGdk.h:
14582         * platform/gdk/ChromeClientGdk.h: Removed.
14583         * platform/gdk/FrameGdk.cpp: Remove code not belonging here
14584         * platform/gdk/FrameGdk.h:
14585         * platform/gdk/ScrollViewGdk.cpp: The gdkDrawable won't exist at that time and it is fine
14586         * platform/gdk/TemporaryLinkStubs.cpp: Removed ChromeClientGdk stubs
14587
14588 2007-07-22  Maciej Stachowiak  <mjs@apple.com>
14589
14590         Reviewed by Adam.
14591
14592         <rdar://problem/5353174> REGRESSION: 1% JavaScript performance regression fro Window refactoring (14717)
14593         http://bugs.webkit.org/show_bug.cgi?id=14717
14594         
14595         * bindings/js/kjs_window.cpp:
14596         * bindings/js/kjs_window.h:
14597         (KJS::Window::impl): inlined
14598         * page/DOMWindow.cpp:
14599         * page/DOMWindow.h:
14600         (WebCore::DOMWindow::frame): inlined
14601
14602 2007-07-22  Darin Adler  <darin@apple.com>
14603
14604         * platform/ContextMenu.cpp: Added missing include.
14605
14606 2007-07-22  Sam Weinig  <sam@webkit.org>
14607
14608         Reviewed by Darin.
14609
14610         Fix for http://bugs.webkit.org/show_bug.cgi?id=14682
14611         REGRESSION(24285-24399): alerts do not appear at W3C RTL test page
14612
14613         Test: fast/dom/Window/window-function-name-getter-precedence.html
14614
14615         * bindings/js/JSDOMWindowCustom.cpp:
14616         (WebCore::JSDOMWindow::customGetOwnPropertySlot): Make sure to return functions
14617         before the custom name getter.
14618
14619 2007-07-22  Darin Adler  <darin@apple.com>
14620
14621         Reviewed by Adam.
14622
14623         - fix <rdar://problem/5353263> ContextMenuItem and ContextMenu objects leaking (seen on buildbot)
14624
14625         * platform/ContextMenu.cpp:
14626         (WebCore::separatorItem): Return an auto_ptr instead of a raw pointer, since this function
14627         creates an object that's the caller's responsibility to delete.
14628         (WebCore::createAndAppendFontSubMenu): Create the context menu on the stack, not the heap,
14629         since setSubMenu does not take ownership, and hence the objects were leaking.
14630         (WebCore::createAndAppendSpellingAndGrammarSubMenu): Ditto.
14631         (WebCore::createAndAppendSpellingSubMenu): Ditto.
14632         (WebCore::createAndAppendSpeechSubMenu): Ditto.
14633         (WebCore::createAndAppendWritingDirectionSubMenu): Ditto.
14634
14635 2007-07-22  Darin Adler  <darin@apple.com>
14636
14637         Reviewed by Kevin Decker.
14638
14639         - fix <rdar://problem/5126394> REGRESSION: Crash after clicking back button in test application (13250)
14640           http://bugs.webkit.org/show_bug.cgi?id=13250
14641
14642         * bindings/objc/WebScriptObject.mm:
14643         (_didExecute): Removed unnecessary check for isValid() since the _rootObject method already
14644         takes care of that check.
14645         (-[WebScriptObject _imp]): Made this return 0 if there is not a valid rootObject.
14646         (-[WebScriptObject _isSafeScript]): Made this always return false if there is not a valid
14647         rootObject, eliminating the need to check _rootObject for nil if the code is checking _isSafeScript.
14648         (-[WebScriptObject callWebScriptMethod:withArguments:]): Removed check of _rootObject, since it's
14649         immediately followed by a check of _isSafeScript. Removed awkward conversion of name from NSString *
14650         to KJS::Identifier and did it using WebCore::String instead -- makes it clear that there's no
14651         arbitrary JavaScript execution after _isSafeScript and before _imp, so we don't need to null-check
14652         the _imp pointer. Added a second check of _isSafeScript after calling get to get the function
14653         object, since arbitrary changes could occur in there, including navigation to a new frame.
14654         This also takes care of null checking the second call to _imp.
14655         (-[WebScriptObject evaluateWebScript:]): Removed check of _rootObject, since it's
14656         immediately followed by a check of _isSafeScript. Removed awkward conversion of script from NSString *
14657         to KJS::Identifier and did it using WebCore::String instead -- makes it clear that there's no
14658         arbitrary JavaScript execution after _isSafeScript and before _imp, so we don't need to null-check
14659         the _imp pointer.
14660         (-[WebScriptObject setValue:forKey:]): Removed check of _rootObject, since it's
14661         immediately followed by a check of _isSafeScript. Removed awkward conversion of key from NSString *
14662         to KJS::Identifier and did it using WebCore::String instead -- makes it clear that there's no
14663         arbitrary JavaScript execution after _isSafeScript and before _imp, so we don't need to null-check
14664         the _imp pointer.
14665         (-[WebScriptObject valueForKey:]): Ditto.
14666         (-[WebScriptObject removeWebScriptKey:]): Ditto.
14667         (-[WebScriptObject stringRepresentation]): Removed check of _rootObject, since it's
14668         immediately followed by a check of _isSafeScript. Removed unnecessary local variable
14669         and const_cast from the call to the _imp method.
14670         (-[WebScriptObject webScriptValueAtIndex:]): Removed check of _rootObject, since it's
14671         immediately followed by a check of _isSafeScript.
14672         (-[WebScriptObject setWebScriptValueAtIndex:value:]): Ditto.
14673         (-[WebScriptObject JSObject]): Ditto.
14674
14675 2007-07-22  Darin Adler  <darin@apple.com>
14676
14677         Reviewed by Anders Carlsson and John Sullivan.
14678
14679         - speculative fix for <rdar://problem/5337500> CrashTracer: [USER] 4 crashes in Mail
14680           at WebCore::HTMLImageElement::isURLAttribute(WebCore::Attribute*) const
14681
14682         * editing/markup.cpp: Added AttributeChange class.
14683         (WebCore::completeURLs): Changed function so that all the URL completion is done in
14684         a separate pass after finding all the URL attributes. This is safer, since actually
14685         applying an attribute change could have any arbitrary effect on the document; it's
14686         tricky to iterate a document while it's being modified and we don't have the checks
14687         here that would be needed to make that work in pathological cases.
14688
14689 2007-07-18  Darin Adler  <darin@apple.com>
14690
14691         Reviewed by Adam.
14692
14693         - fix <rdar://problem/5350604> REGRESSION: Crash in inspector controller code after
14694           clicking back button in test application (14337)
14695
14696         * page/InspectorController.cpp: (WebCore::InspectorController::addScriptResource):
14697         Replace an assertion that was firing with some code that at least doesn't immediately crash.
14698
14699 2007-07-22  Darin Adler  <darin@apple.com>
14700
14701         Reviewed by Anders.
14702
14703         - improve the fix for <rdar://problem/5298816> Crash redirecting message,
14704           in -[SharedBufferData initWithSharedBuffer:]; fixes a crash seen on the buildbot
14705
14706         * loader/DocLoader.cpp: (WebCore::DocLoader::~DocLoader): Call setDocLoader(0) on all
14707         the resources so they don't try to use a stale DocLoader pointer later.
14708
14709 2007-07-21  Mitz Pettel  <mitz@webkit.org>
14710
14711         Reviewed by Sam Weinig.
14712
14713         - fixed typos and markup in the following manual tests
14714
14715         * manual-tests/accidental-strict-mode.html:
14716         * manual-tests/caretScrolling.html:
14717         * manual-tests/close-on-closedWindow.html:
14718
14719 2007-07-21  Sam Weinig  <sam@webkit.org>
14720
14721         Reviewed by Mitz.
14722
14723         Patch for <rdar://problem/5352013>
14724         The computed style for background-position is wrong for the initial value
14725
14726         - Set the initial value for background-position-x and background-position-y (and
14727           therefore background-position) to 0% instead of 0px.
14728
14729         * rendering/RenderStyle.cpp:
14730         (WebCore::BackgroundLayer::BackgroundLayer):
14731         * rendering/RenderStyle.h:
14732         (WebCore::RenderStyle::initialBackgroundXPosition):
14733         (WebCore::RenderStyle::initialBackgroundYPosition):
14734
14735 2007-07-20  Brady Eidson  <beidson@apple.com>
14736
14737         Reviewed by Adele and Andersca
14738
14739         <rdar://problem/5336105> - WebBackForwardList created from scratch is unusable (always leads to crash)
14740
14741         * WebCore.exp: Export the BackForwardList c'tor so WebKit can create one explicitly
14742
14743 2007-07-20  Sam Weinig  <sam@webkit.org>
14744
14745         Reviewed by Beth Dakin.
14746
14747         Fix for <rdar://problem/5351901>
14748         Computed value of border-position should return a CSSValueList, not a CSSPrimitiveValue
14749
14750         - Return a space separated CSSValueList for background-position
14751           instead of a CSSPrimitiveValue (string type).
14752         - Remove the "else if (renderer)" case as it never returns a different
14753           value than just calling length.value().
14754         - Make background-position-x and background-position-y behave like
14755           background-position.  Fix case of initial value return 'auto' instead
14756           of 0.
14757
14758         Test: fast/css/getComputedStyle-background-position.html
14759
14760         * css/CSSComputedStyleDeclaration.cpp:
14761         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
14762
14763 2007-07-20  Geoffrey Garen  <ggaren@apple.com>
14764
14765         Build fix for non-Mac platforms.
14766         
14767         * bindings/js/GCController.cpp:
14768
14769 2007-07-20  Anders Carlsson  <andersca@apple.com>
14770
14771         Reviewed by Darin.
14772
14773         If the style sheet requested is a user style sheet, don't store it in the DocLoader's resource map;
14774         user style sheets can outlive their doc loaders.
14775
14776         * loader/DocLoader.cpp:
14777         (WebCore::DocLoader::requestCSSStyleSheet):
14778
14779 2007-07-20  Justin Garcia  <justin.garcia@apple.com>
14780
14781         Reviewed by Darin.
14782
14783         <rdar://problem/5109817> Ctrl-click on word in non-editable text doesn't select it
14784         
14785         * bridge/EditorClient.h: Removed a client method for enabling/disabling
14786         word selection on right clicks.
14787         * editing/Editor.cpp: Ditto.
14788         * editing/Editor.h:
14789         * page/EventHandler.cpp:
14790         (WebCore::EventHandler::sendContextMenuEvent): Select the
14791         word underneath the mouse regardless of whether its editable.
14792
14793 2007-07-20  Ada Chan  <adachan@apple.com>
14794
14795         Reviewed by Darin and Adam.
14796
14797         <rdar://problem/5338385> Fixed infinite loop in ScrollView::scrollRectIntoViewRecursively().
14798         Also removed an unused local variable.
14799
14800         * platform/win/ScrollViewWin.cpp:
14801         (WebCore::ScrollView::scrollRectIntoViewRecursively):
14802
14803 2007-07-21  Antti  <antti@apple.com>
14804
14805         Reviewed by Darin.
14806         
14807         Fix <rdar://problem/5305788>
14808         REGRESSION: Safari sometimes loads IE-specific stylesheet on www.apaema.org
14809         
14810         Pick the preferred style sheet set based on document order even if the sheet is still loading. Previously 
14811         the set was chosen based on which stylesheet happened to arrive first. Just fix the problem at hand 
14812         and resist urge to start refactoring this function.
14813
14814         * dom/Document.cpp:
14815         (WebCore::Document::recalcStyleSelector):
14816
14817 2007-07-20  Sam Weinig  <sam@webkit.org>
14818
14819         Reviewed by Darin.
14820
14821         Fix for <rdar://problem/5351252>
14822         Computed value for -webkit-background-size and border-spacing
14823         should be space separated CSSValueLists.
14824
14825         * css/CSSComputedStyleDeclaration.cpp:
14826         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
14827
14828 2007-07-20  Geoffrey Garen  <ggaren@apple.com>
14829
14830         Suggested by Darin Adler.
14831         
14832         Slight tweak to my last commit: changed gcController() to return a 
14833         reference instead of a pointer.
14834
14835 2007-07-20  Geoffrey Garen  <ggaren@apple.com>
14836
14837         Reviewed by Darin Adler.
14838         
14839         Fixed http://bugs.webkit.org/show_bug.cgi?id=12900 Page tear-down 
14840         forces garbage collection once per frame
14841
14842         Also fixed <rdar://problem/5286989> GC on window close does not always 
14843         bring the JS object count down to 0
14844         
14845         Implemented a 0-delay GC timer in WebCore. Instead of forcing GC
14846         immediately, code that thinks it has created a lot of garbage starts
14847         the timer. This has two advantages: 
14848
14849         1) Multiple GCs can coalesce. In my pathological test case, this 
14850         improves performance by an order of magnitude. 
14851         
14852         2) Conservative marking is less likely to keep alive important dead
14853         objects, like the window object, because the stack is small and free of
14854         JS processing when the timer fires.
14855
14856         Added GCController.h/.cpp, sometimes blindly:
14857         * WebCore.pro:
14858         * WebCore.vcproj/WebCore.vcproj:
14859         * WebCore.xcodeproj/project.pbxproj:
14860         * WebCoreSources.bkl:
14861
14862         Added singleton that implements GC on a 0-delay timer:
14863         * bindings/js/GCController.h: Added.
14864         * bindings/js/GCController.cpp: Added.
14865         
14866         Changed Collector::collect() calls below to call to the singleton:
14867         * bindings/js/kjs_proxy.cpp:
14868         (WebCore::KJSProxy::~KJSProxy):
14869         * bindings/js/kjs_window.cpp:
14870         (KJS::Window::clear):
14871         * history/CachedPage.cpp:
14872         (WebCore::CachedPage::clear):
14873         
14874         * page/Frame.cpp:
14875         (WebCore::Frame::~Frame): Removed previous slightly hackish attempt to
14876         avoid conservative marking of the window object.
14877
14878 2007-07-20  Anders Carlsson  <andersca@apple.com>
14879     
14880         Reviewed by Darin.
14881
14882         <rdar://problem/5298816> Crash redirecting message, in -[SharedBufferData initWithSharedBuffer:]
14883         
14884         Have cached resources keep track of what DocLoader they belong to. This is so that they can remove themselves
14885         from the DocLoader's resource map when they're destroyed when the cache is disabled.
14886         
14887         * html/HTMLImageLoader.cpp:
14888         (WebCore::HTMLImageLoader::updateFromElement):
14889         * loader/Cache.cpp:
14890         (WebCore::Cache::requestResource):
14891         * loader/CachedResource.cpp:
14892         (WebCore::CachedResource::CachedResource):
14893         (WebCore::CachedResource::~CachedResource):
14894         * loader/CachedResource.h:
14895         (WebCore::CachedResource::setDocLoader):
14896
14897 2007-07-20  Brady Eidson  <beidson@apple.com>
14898
14899         Reviewed by Darin
14900
14901         <rdar://problem/5153021> and http://bugs.webkit.org/show_bug.cgi?id=13364
14902
14903         The issue here was that if a document in a subframe was loaded from a URL, but then a script did 
14904         document.open or document.write during parsing, we would overwrite the document's url and baseurl 
14905         with the parent frame's url.  WRONG!
14906
14907         * dom/Document.cpp:
14908         (WebCore::Document::open): Only set the url and baseURL in document.open if they are still empty or about:blank
14909
14910 2007-07-20  Maciej Stachowiak  <mjs@apple.com>
14911
14912         Reviewed by Oliver.
14913
14914         <rdar://problem/5326303> REGRESSION: blur event fires upon navigating away from a page with focused element
14915
14916
14917         
14918         The proximate cause was the recent change to keep focus on the
14919         WebHTMLView when switching views. But the reason this happend was
14920         that didCommitLoadForFrame got called at a time when the new view
14921         was in place, but the old document was still there. This was a
14922         longstanding problem with the delegate, and fixing it cleans it
14923         up.
14924
14925         * loader/FrameLoader.cpp:
14926         (WebCore::FrameLoader::begin): Don't send dispatchWindowObjectAvailable if
14927         caller asked not to (this is to allow order of delegates to be the same).
14928         (WebCore::FrameLoader::transitionToCommitted): Don't emit didCommitLoadForFrame here.
14929         (WebCore::FrameLoader::receivedFirstData): Instead do it here, after calling begin(),
14930         so the new document is set up.
14931         * loader/FrameLoader.h: Add new optional parameter to begin().
14932
14933 2007-07-20  Sam Weinig  <sam@webkit.org>
14934
14935         Reviewed by Beth Dakin.
14936
14937         Update for fix for http://bugs.webkit.org/show_bug.cgi?id=14646
14938         <rdar://problem/5340449>
14939
14940         - Return a CSSValueList instead of CSSValue (with a Pair type) for
14941           computed values of border radii.
14942         - Add ability to CSSValueList to print out a space separated list
14943           instead of a comma.
14944         - Add border radii to list of computed styles that we create and can
14945           iterate over.
14946
14947         * css/CSSComputedStyleDeclaration.cpp:
14948         (WebCore::):
14949         (WebCore::getBorderRadiusCornerValue):
14950         * css/CSSValueList.cpp:
14951         (WebCore::CSSValueList::CSSValueList):
14952         (WebCore::CSSValueList::cssText):
14953         * css/CSSValueList.h:
14954
14955 2007-07-20  Mitz Pettel  <mitz@webkit.org>
14956
14957         Reviewed by Darin.
14958
14959         - http://bugs.webkit.org/show_bug.cgi?id=14626
14960           Make bidiReorderCharacters independent of RenderBlock
14961
14962         No layout test possible because there is no change in functionality.
14963
14964         This patch generalizes RenderBlock's implementation of the Unicode Bidi Algorithm
14965         in the form of the BidiResolver class template. An instance of a BidiResolver class
14966         can generate a sequence of runs with corresponding level and override attributes,
14967         given a range specified by start and end iterators. The iterators can optionally
14968         call back to the BidiResolver instance to push or pop explicit embedding levels.
14969
14970         The patch replaces BidiState with a specialization of BidiResolver that uses
14971         BidiIterators and generates BidiRuns. It also eliminates some of the file statics
14972         in bidi.cpp, instead relying on BidiResolver data members.
14973
14974         The patch makes the BidiContext part of BidiStatus, thus making BidiStatus the
14975         entire state that needs to be saved and restored in order to restart the bidi
14976         algorithm at a given point. Previously, you had to keep and pass around two
14977         separate structures, namely the BidiContext and the BidiStatus.
14978
14979         bidiReorderCharacters is implemented without relying on render objects, using
14980         a BidiResolver specialization that uses simple character buffer iterators and
14981         simple run structures.
14982
14983         * WebCore.pro:
14984         * WebCore.vcproj/WebCore.vcproj:
14985         * WebCore.xcodeproj/project.pbxproj:
14986         * WebCoreSources.bkl:
14987         * platform/BidiContext.cpp: Added.
14988         (WebCore::operator==):
14989         * platform/BidiContext.h: Added.
14990         (WebCore::BidiContext::BidiContext):
14991         (WebCore::BidiContext::ref):
14992         (WebCore::BidiContext::deref):
14993         (WebCore::BidiContext::parent):
14994         (WebCore::BidiContext::level):
14995         (WebCore::BidiContext::dir):
14996         (WebCore::BidiContext::override):
14997         * platform/BidiReorderCharacters.cpp: Added.
14998         (WebCore::CharacterBufferIterator::CharacterBufferIterator):
14999         (WebCore::CharacterBufferIterator::offset):
15000         (WebCore::CharacterBufferIterator::increment):
15001         (WebCore::CharacterBufferIterator::atEnd):
15002         (WebCore::CharacterBufferIterator::current):
15003         (WebCore::CharacterBufferIterator::direction):
15004         (WebCore::CharacterBufferIterator::operator==):
15005         (WebCore::CharacterBufferIterator::operator!=):
15006         (WebCore::::appendRun):
15007         (WebCore::bidiReorderCharacters):
15008         * platform/BidiReorderCharacters.h: Added.
15009         * platform/BidiResolver.h: Added.
15010         (WebCore::BidiStatus::BidiStatus):
15011         (WebCore::operator==):
15012         (WebCore::operator!=):
15013         (WebCore::BidiCharacterRun::BidiCharacterRun):
15014         (WebCore::BidiCharacterRun::reversed):
15015         (WebCore::BidiCharacterRun::dirOverride):
15016         (WebCore::BidiCharacterRun::next):
15017         (WebCore::BidiResolver::):
15018         (WebCore::BidiResolver::context):
15019         (WebCore::BidiResolver::setContext):
15020         (WebCore::BidiResolver::setLastDir):
15021         (WebCore::BidiResolver::setLastStrongDir):
15022         (WebCore::BidiResolver::setEorDir):
15023         (WebCore::BidiResolver::dir):
15024         (WebCore::BidiResolver::setDir):
15025         (WebCore::BidiResolver::status):
15026         (WebCore::BidiResolver::setStatus):
15027         (WebCore::BidiResolver::adjustEmbedding):
15028         (WebCore::BidiResolver::setAdjustEmbedding):
15029         (WebCore::BidiResolver::firstRun):
15030         (WebCore::BidiResolver::lastRun):
15031         (WebCore::BidiResolver::runCount):
15032         (WebCore::::embed):
15033         (WebCore::::deleteRuns):
15034         (WebCore::::reverseRuns):
15035         (WebCore::::createBidiRunsForLine):
15036         * platform/win/PopupMenuWin.cpp:
15037         (WebCore::PopupMenu::paint):
15038         * rendering/RenderBlock.h:
15039         * rendering/RenderFileUploadControl.cpp:
15040         (WebCore::RenderFileUploadControl::paintObject):
15041         * rendering/RenderListBox.cpp:
15042         (WebCore::RenderListBox::paintItemForeground):
15043         * rendering/RootInlineBox.cpp:
15044         (WebCore::RootInlineBox::childRemoved):
15045         (WebCore::RootInlineBox::lineBreakBidiStatus):
15046         (WebCore::RootInlineBox::setLineBreakInfo):
15047         * rendering/RootInlineBox.h:
15048         (WebCore::RootInlineBox::RootInlineBox):
15049         * rendering/bidi.cpp:
15050         (WebCore::BidiIterator::BidiIterator):
15051         (WebCore::BidiState::deleteRuns):
15052         (WebCore::operator==):
15053         (WebCore::operator!=):
15054         (WebCore::bidiNext):
15055         (WebCore::bidiFirst):
15056         (WebCore::BidiState::addRun):
15057         (WebCore::appendRunsForObject):
15058         (WebCore::BidiState::appendRun):
15059         (WebCore::RenderBlock::constructLine):
15060         (WebCore::RenderBlock::computeHorizontalPositionsForLine):
15061         (WebCore::RenderBlock::computeVerticalPositionsForLine):
15062         (WebCore::RenderBlock::bidiReorderLine):
15063         (WebCore::buildCompactRuns):
15064         (WebCore::RenderBlock::layoutInlineChildren):
15065         (WebCore::RenderBlock::determineStartPosition):
15066         (WebCore::RenderBlock::determineEndPosition):
15067         (WebCore::RenderBlock::matchedEndLine):
15068         (WebCore::RenderBlock::skipWhitespace):
15069         * rendering/bidi.h:
15070         (WebCore::BidiRun::BidiRun):
15071         (WebCore::BidiRun::next):
15072
15073 2007-07-20  Darin Adler  <darin@apple.com>
15074
15075         Reviewed by John Sullivan.
15076
15077         - fix for <rdar://problem/5331723> <rdar://problem/5331723> Safari gives error
15078           103 for URLs that Adobe Lightroom's Preview feature produces, with ":1" in the hostname
15079
15080         Test: fast/loader/file-URL-with-port-number.html
15081
15082         * platform/network/ResourceHandle.cpp: (WebCore::ResourceHandle::portAllowed):
15083         Don't do any port blocking for file URLs.
15084
15085 2007-07-20  Mitz Pettel  <mitz@webkit.org>
15086
15087         Reviewed by Darin.
15088
15089         - fix http://bugs.webkit.org/show_bug.cgi?id=14689
15090           REGRESSION (3.0.2-TOT): <select> menu items have incorrect background color
15091
15092         * manual-tests/item-background.html: Added.
15093         * platform/PopupMenuClient.h:
15094         * platform/graphics/Color.cpp:
15095         (WebCore::blendComponent): Renamed the static method blend() to this.
15096         (WebCore::Color::blend): Added. Compositing (in "normal" or "source over"
15097         blend mode) B.blend(C) over A is equivalent to compositing C over the
15098         result of compositing B over A.
15099         (WebCore::Color::blendWithWhite): Changed for the above rename.
15100         * platform/graphics/Color.h:
15101         * platform/win/PopupMenuWin.cpp:
15102         (WebCore::PopupMenu::paint): Changed to use itemBackgroundColor().
15103         * rendering/RenderMenuList.cpp:
15104         (WebCore::RenderMenuList::itemBackgroundColor): Added. Returns the color
15105         that would result from overlaying the item's background color over the
15106         menu's background color over solid white. Note that clientStyle() cannot
15107         be used for the menu's background color, since background color is not
15108         inherited by the inner block (the regression resulted from changing
15109         clientStyle() to return the inner block's style), and that the color
15110         returned from this method is guaranteed to be opaque.
15111         * rendering/RenderMenuList.h:
15112         * rendering/RenderTextControl.cpp:
15113         (WebCore::RenderTextControl::itemBackgroundColor): Added.
15114         * rendering/RenderTextControl.h:
15115
15116 2007-07-20  Rob Buis  <buis@kde.org>
15117
15118         Reviewed by Darin.
15119
15120         http://bugs.webkit.org/show_bug.cgi?id=14642
15121         REGRESSION(r24064-24096): Reflection type effect in canvas tag broke
15122
15123         Do not stop the fill/stroke operation when encountering an empty path.
15124
15125         * html/CanvasRenderingContext2D.cpp:
15126         (WebCore::CanvasRenderingContext2D::fill):
15127         (WebCore::CanvasRenderingContext2D::stroke):
15128
15129 2007-07-20  Lars Knoll  <lars@trolltech.com>
15130
15131         Reviewed by Simon.
15132
15133         Remove some files that are not used anymore.
15134
15135         * platform/qt/FontCacheQt.cpp: Removed.
15136         * platform/qt/FontDataQt.cpp: Removed.
15137         * platform/qt/FontPlatformData.h: Removed.
15138         * platform/qt/FontPlatformDataQt.cpp: Removed.
15139         * platform/qt/GlyphPageTreeNodeQt.cpp: Removed.
15140
15141 2007-07-20  Lars Knoll  <lars@trolltech.com>
15142
15143         Reviewed by Simon.
15144
15145         use the correct font for spaces.
15146
15147         * platform/qt/FontQt.cpp:
15148         (WebCore::generateComponents):
15149
15150 2007-07-20  Lars Knoll  <lars@trolltech.com>
15151
15152         Reviewed by Simon.
15153
15154         spaces where not correctly taken into account for both offsetForPosition and selectionRectForText. Because of that selections sort of worked in LTR text, but completely failed in RTL.
15155
15156         * platform/qt/FontQt.cpp:
15157         (WebCore::TextRunComponent::isSpace):
15158         (WebCore::TextRunComponent::TextRunComponent):
15159         (WebCore::generateComponents):
15160         (WebCore::Font::drawText):
15161         (WebCore::Font::offsetForPosition):
15162         (WebCore::Font::selectionRectForText):
15163
15164 2007-07-20  Lars Knoll  <lars@trolltech.com>
15165
15166         Reviewed by Simon.
15167
15168         fix up some smaller issues in selection handling. It's still not perfect and selections in mixed rtl/ltr text are still broken, but it's getting there.
15169
15170         * platform/qt/FontQt.cpp:
15171         (WebCore::Font::offsetForPosition):
15172         (WebCore::cursorToX):
15173         (WebCore::Font::selectionRectForText):
15174
15175 2007-07-20  Lars Knoll  <lars@trolltech.com>
15176
15177         Reviewed by Simon.
15178
15179         make offsetForPosition and selectionRectForText work correctly with small caps.
15180
15181         * platform/qt/FontQt.cpp:
15182         (WebCore::Font::offsetForPosition):
15183         (WebCore::cursorToX):
15184         (WebCore::Font::selectionRectForText):
15185
15186 2007-07-20  Lars Knoll  <lars@trolltech.com>
15187
15188         Reviewed by Simon.
15189
15190         clip the drawn text correctly when needed.
15191
15192         * platform/qt/FontQt.cpp:
15193         (WebCore::Font::drawText):
15194
15195 2007-07-20  Lars Knoll  <lars@trolltech.com>
15196
15197         Reviewed by Simon.
15198
15199         Fix offsetForPosition and selectionRectForText methods.
15200
15201         * platform/qt/FontQt.cpp:
15202         (WebCore::Font::offsetForPosition):
15203         (WebCore::cursorToX):
15204         (WebCore::Font::selectionRectForText):
15205
15206 2007-07-20  Lars Knoll  <lars@trolltech.com>
15207
15208         Reviewed by Simon.
15209
15210         fix BiDi text rendering.
15211
15212         * platform/qt/FontQt.cpp:
15213         (WebCore::TextRunComponent::TextRunComponent):
15214         (WebCore::generateComponents):
15215         (WebCore::Font::drawText):
15216
15217 2007-07-20  Mark Rowe  <mrowe@apple.com>
15218
15219         Reviewed by Maciej.
15220
15221         Move FTPDirectoryTokenizer::m_templateDocumentData to be a function-scoped static
15222         to avoid creating a global initializer.  This fixes the build for x86_64.
15223
15224         * loader/FTPDirectoryDocument.cpp:
15225         (WebCore::FTPDirectoryTokenizer::loadDocumentTemplate):
15226
15227 2007-07-19  Geoffrey Garen  <ggaren@apple.com>
15228
15229         Reviewed by Maciej Stachowiak.
15230         
15231         Fixed <rdar://problem/5347849> Cache eviction of live decoded data is 
15232         thrash-y
15233         
15234         The solution here is to evict live decoded data based on a strict LRU
15235         model. This should work well as a "scrolling window."
15236
15237         With this patch, I see a substantial reduction in CPU while scrolling
15238         through a page with large images on a low memory system. Layout tests
15239         pass.
15240
15241         * loader/Cache.h: Changed from a size-based vector of LRU lists to a
15242         single LRU list in order to implement strict LRU.
15243         
15244         * loader/CachedResource.h: Removed tracking of access count, since that
15245         was the old cache eviction model.
15246
15247 2007-07-19  Oliver Hunt  <oliver@apple.com>
15248
15249         Reviewed by Maciej.
15250
15251         <rdar://problem/5076807> REGRESSION: Can't undo conversion of inline text (by hitting ESC)
15252         <rdar://problem/5346167> DOM key events triggered during IME composition differ in webkit/mac vs all windows browsers
15253
15254         We now basically match the behaviour of IE/Windows. This means that during composition keydown and autorepeat
15255         keys generate keydown events with a keyCode of 229, which correlates to the windows VK_PROCESSKEY message.
15256         keyup events are generated with the keyCode of the actual key that was pressed.
15257
15258         The only difference is on the first keydown of a composition, in which IE will use keyCode == 229, and we will
15259         send an event with the keyCode for the actual key that was pressed.
15260
15261         * page/EventHandler.cpp:
15262         (WebCore::EventHandler::keyEvent):
15263         * platform/PlatformKeyboardEvent.h:
15264         (WebCore::PlatformKeyboardEvent::setWindowsKeyCode):
15265
15266 2007-07-19  Brady Eidson  <beidson@apple.com>
15267
15268         Reviewed by Sam
15269
15270         <rdar://problem/5134929> REGRESSION: Colon detected as delimiting an empty port is stripped
15271
15272         The fix for this was in KURL::parse() which had a slightly changed rule that would strip the colon if there
15273         was no port.
15274
15275         An additional canonicalization fix was made in window.location.host to match the expected behavior of leaving
15276         the colon in place - before this fix, if the colon was there but no port was there, we'd see the port as 0.
15277
15278         * bindings/js/kjs_window.cpp:
15279         (KJS::Location::put): Call setHostAndPort instead of setHost and setPort seperately
15280
15281         * manual-tests/location-host-canonicalization.html: Added.
15282
15283         * platform/KURL.cpp:
15284         (WebCore::KURL::setHostAndPort): Set the host and port as one string component then reparse the URL
15285         (WebCore::KURL::parse): Change one line to consider the empty colon as part of the host name
15286         * platform/KURL.h:
15287
15288 2007-07-19  Anders Carlsson  <andersca@apple.com>
15289
15290         Reviewed by Adam.
15291
15292         <rdar://problem/5288617>
15293         Crash playing a very large QuickTime movie in Safari
15294         
15295         <rdar://problem/5271174>
15296         http://bugs.webkit.org/show_bug.cgi?id=14148
15297         LEAK: Serious memory consumption and leak when loading QT movies.
15298         
15299         Don't keep plugin stream data in memory since some plugin resources (like QT movies)
15300         can be really big. If a plug-in wants data in a file, create a file and write data to it 
15301         as it's coming from the wire, instead of using a big buffer.
15302         
15303         * loader/ResourceLoader.cpp:
15304         (WebCore::ResourceLoader::ResourceLoader):
15305         (WebCore::ResourceLoader::addData):
15306         (WebCore::ResourceLoader::willStopBufferingData):
15307         * loader/ResourceLoader.h:
15308         (WebCore::ResourceLoader::setShouldBufferData):
15309         * plugins/win/PluginStreamWin.cpp:
15310         (WebCore::PluginStreamWin::PluginStreamWin):
15311         (WebCore::PluginStreamWin::start):
15312         (WebCore::PluginStreamWin::startStream):
15313         (WebCore::PluginStreamWin::destroyStream):
15314         (WebCore::PluginStreamWin::didReceiveData):
15315         (WebCore::PluginStreamWin::didFinishLoading):
15316         * plugins/win/PluginStreamWin.h:
15317
15318 2007-07-19  Geoffrey Garen  <ggaren@apple.com>
15319
15320         Reviewed by Darin Adler.
15321         
15322         Fixed <rdar://problem/5348384> Restore old return value behavior of 
15323         stringByEvaluatingJavaScriptFromString
15324         
15325         Return an empty string unless you have a string, boolean, or number
15326         result.
15327
15328         * WebCore.xcodeproj/project.pbxproj:
15329         * page/mac/WebCoreFrameBridge.mm:
15330         (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
15331
15332 2007-07-19  Darin Adler  <darin@apple.com>
15333
15334         Reviewed by Alexey.
15335
15336         - fix http://bugs.webkit.org/show_bug.cgi?id=14666
15337           remove unused xxx-encodings.txt for all platforms other than Mac
15338
15339         * platform/gdk/gdk-encodings.txt: Removed.
15340         * platform/win/win-encodings.txt: Removed.
15341         * platform/wx/wx-encodings.txt: Removed.
15342
15343         * platform/character-sets.txt: Moved into mac subdirectory since it's only used for Mac; at some
15344         point I hope to remove it completely.
15345         * platform/make-charset-table.pl: Ditto.
15346         * platform/mac/character-sets.txt: Copied from platform/character-sets.txt.
15347         * platform/mac/make-charset-table.pl: Copied from platform/make-charset-table.pl.
15348
15349         * DerivedSources.make: Moved CharsetData.cpp into the MACOS section.
15350         Changed the build rule to use Mac-specific paths for everything and got rid of
15351         make variables.
15352
15353         * WebCore.vcproj/build-generated-files.sh: Removed code to set ENCODINGS_FILE and ENCODINGS_PREFIX.
15354         * WebCore.xcodeproj/project.pbxproj: Ditto.
15355         * make-generated-sources.sh: Ditto.
15356
15357         * Projects/gdk/webcore-gdk.bkl: Removed code to pass gdk-encodings.txt to make-generated-sources.sh.
15358         * Projects/wx/webcore-wx.bkl: Ditto, but for wx-encodings.txt.
15359
15360 2007-07-19  Antti  <antti@apple.com>
15361
15362         Reviewed by Darin.
15363
15364         Fix <rdar://problem/5257371>
15365         Dashcode Client crash when clicking on placemarks in Maps widget in WebCore::DeprecatedPtrListImpl::addIterator
15366         
15367         FlexibleBoxes should never have inline children. Don't move children out from last remaining anonymous block.
15368
15369         * rendering/RenderBlock.cpp:
15370         (WebCore::RenderBlock::removeChild): real fix
15371         * rendering/RenderFlexibleBox.cpp:
15372         (WebCore::RenderFlexibleBox::layoutVerticalBox): just to be sure, this is checked elsewhere too
15373
15374 2007-07-19  Anders Carlsson  <andersca@apple.com>
15375
15376         Reviewed by Darin.
15377
15378         <rdar://problem/5322268>
15379         Safari Crash at http://www.exlibrisgroup.com/sfx_openurl.htm
15380         
15381         Add a real copy constructor and assignment operator for CollectionInfo
15382         so that the vectors in the cache maps will be copied correctly.
15383         
15384         * html/HTMLCollection.cpp:
15385         (WebCore::HTMLCollection::CollectionInfo::CollectionInfo):
15386         (WebCore::HTMLCollection::CollectionInfo::swap):
15387         * html/HTMLCollection.h:
15388         (WebCore::HTMLCollection::CollectionInfo::operator=):
15389         (WebCore::HTMLCollection::CollectionInfo::copyCacheMap):
15390
15391 2007-07-19  David Hyatt  <hyatt@apple.com>
15392
15393         Fix for 5237574, Colloquy main view does not size correctly.  Make
15394         sure to reset the baseilne when calculating a row's height/baseline, so
15395         that old values don't stick around.
15396
15397         Reviewed by Tim Hatcher
15398
15399         * rendering/RenderTableSection.cpp:
15400         (WebCore::RenderTableSection::calcRowHeight):
15401
15402 2007-07-19  Antti  <antti@apple.com>
15403
15404         Reviewed by John.
15405         
15406         Fix <rdar://problem/5346697>
15407         REGRESSION(r23773): Visibile children on invisible layer are not painted (fast/layers/layer-visibility.html fails)
15408         
15409         Test m_hasVisibleContent instead of renderer()->style()->visibility(). 
15410         This takes children into account too.
15411
15412         Regression spotted by Mitz.
15413
15414         * rendering/RenderLayer.cpp:
15415         (WebCore::RenderLayer::paintLayer):
15416
15417 2007-07-18  Oliver Hunt  <oliver@apple.com>
15418
15419         Rubber stamped by maciej
15420
15421         Rollout patch from r24437.
15422
15423         * page/EventHandler.cpp:
15424         (WebCore::EventHandler::keyEvent):
15425
15426 2007-07-18  Oliver Hunt  <oliver@apple.com>
15427
15428         Reviewed by Kevin M.
15429
15430         Fix for <rdar://problem/5346167> DOM key events triggered during
15431                 IME composition differ in webkit/mac vs all windows browsers
15432
15433         We no longer send DOM key events during IME composition.  This behaviour 
15434         matches the behaviour of WebKit/Win.
15435
15436         * page/EventHandler.cpp:
15437         (WebCore::EventHandler::keyEvent):
15438
15439 2007-07-18  Sam Weinig  <sam@webkit.org>
15440
15441         Reviewed by Oliver.
15442
15443         Fix for http://bugs.webkit.org/show_bug.cgi?id=14646
15444         WebKit border radius properties are unavailable via JavaScript
15445
15446         Test: fast/dom/getComputedStyle-borderRadius.html
15447
15448         * css/CSSComputedStyleDeclaration.cpp:
15449         (WebCore::getBorderRadiusCornerValue): Helper function that returns a single value if
15450         width and the height of the corner radius are equal, and otherwise a pair.
15451         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
15452
15453 2007-07-18  Anders Carlsson  <andersca@apple.com>
15454
15455         Reviewed by Darin.
15456
15457         <rdar://problem/5262136> Double form repost alert going forward on britishairways.com
15458         
15459         When checking if the request has changed and a new policy callback needs to be sent, 
15460         ignore the request headers. NSURLConnection in Leopard will always call willSendRequest,
15461         with a request that was different from the one passed to -[NSURLConnection connectionWithRequest:]
15462         (a few Accept headers are added).
15463
15464         * loader/FrameLoader.cpp:
15465         (WebCore::FrameLoader::checkNavigationPolicy):
15466         * platform/network/ResourceRequestBase.cpp:
15467         (WebCore::equalIgnoringHeaderFields):
15468         (WebCore::operator==):
15469         * platform/network/ResourceRequestBase.h:
15470
15471 2007-07-18  Anders Carlsson  <andersca@apple.com>
15472
15473         Reviewed by Darin.
15474
15475         <rdar://problem/5340098>
15476         http://bugs.webkit.org/show_bug.cgi?id=13366
15477         REGRESSION (r10935): AOL beta music player doesn't play
15478
15479         The AOL beta music player has a typo, causing it to create an <embed"> element inside of
15480         an <object> element
15481         Because of this, it will not be treated as an embed tag, so its name will not be added
15482         to the document's named item map. Furthermore, since the <object> contains a child that
15483         is not a <param>, the object's name won't be added either.
15484         
15485         The (somewhat ugly) fix is to add <object> to the named map only if it has <param> or
15486         unknown elements as children.
15487         
15488         * html/HTMLObjectElement.cpp:
15489         (WebCore::HTMLObjectElement::updateDocNamedItem):
15490
15491 2007-07-18  Timothy Hatcher  <timothy@apple.com>
15492
15493         Reviewed by Adam.
15494
15495         <rdar://problem/5343767> Should have a way to disable the Web Inspector
15496
15497         This change facilitates the ability to turn the Web Inspector on and off.
15498
15499         Makes the InspectorClient be required to create a new Page. This also means that
15500         InspectorController will never be NULL. Adds a new function on Page to test
15501         if the inspector is enabled.
15502
15503         * WebCore.exp: New symbol for the Page constructor.
15504         * WebCore.pro: Add InspectorClientGdk.cpp.
15505         * WebCoreSources.bkl: ditto.
15506         * html/HTMLDocument.cpp:
15507         (WebCore::HTMLDocument::createTokenizer):
15508         * loader/FrameLoader.cpp:
15509         (WebCore::FrameLoader::detachFromParent): Don't null check the InspectorCOntroller.
15510         (WebCore::FrameLoader::dispatchDidCommitLoad): Ditto.
15511         (WebCore::FrameLoader::dispatchAssignIdentifierToInitialRequest): Ditto.
15512         (WebCore::FrameLoader::dispatchWillSendRequest): Ditto.
15513         (WebCore::FrameLoader::dispatchDidReceiveResponse): Ditto.
15514         (WebCore::FrameLoader::dispatchDidReceiveContentLength): Ditto.
15515         (WebCore::FrameLoader::dispatchDidFinishLoading): Ditto.
15516         (WebCore::FrameLoader::dispatchDidLoadResourceFromMemoryCache): Ditto.
15517         * page/ContextMenuController.cpp:
15518         (WebCore::ContextMenuController::handleContextMenuEvent): Ask the InspectorController if it is enabled.
15519         (WebCore::ContextMenuController::contextMenuItemSelected): Ditto.
15520         * page/InspectorController.cpp:
15521         (WebCore::InspectorController::enabled): Ask the Page's settings if developer extras are enabled.
15522         (WebCore::InspectorController::inspect): Check if the InspectorController is enabled.
15523         (WebCore::InspectorController::focusNode): Ditto.
15524         (WebCore::InspectorController::highlight): Ditto.
15525         (WebCore::InspectorController::hideHighlight): Ditto.
15526         (WebCore::InspectorController::addMessageToConsole): Ditto.
15527         (WebCore::InspectorController::attachWindow): Ditto.
15528         (WebCore::InspectorController::detachWindow): Ditto.
15529         (WebCore::InspectorController::windowScriptObjectAvailable): Ditto.
15530         (WebCore::InspectorController::didCommitLoad): Ditto.
15531         (WebCore::InspectorController::frameDetachedFromParent): Ditto.
15532         (WebCore::InspectorController::didLoadResourceFromMemoryCache): Ditto.
15533         (WebCore::InspectorController::identifierForInitialRequest): Ditto.
15534         (WebCore::InspectorController::willSendRequest): Ditto.
15535         (WebCore::InspectorController::didReceiveResponse): Ditto.
15536         (WebCore::InspectorController::didReceiveContentLength): Ditto.
15537         (WebCore::InspectorController::didFinishLoading): Ditto.
15538         (WebCore::InspectorController::didFailLoading): Ditto.
15539         * page/InspectorController.h:
15540         * page/Page.cpp:
15541         (WebCore::Page::Page): Require an InspectorClient.
15542         (WebCore::Page::~Page): Always call pageDestroyed on the InspectorController.
15543         (WebCore::Page::inspectorEnabled): Check the WebCore settings if the developer extras are enabled.
15544         * page/Page.h:
15545         * page/gdk/InspectorClientGdk.cpp: Added.
15546         (WebCore::InspectorClientGdk::inspectorDestroyed): Empty stub calling notImplemented.
15547         (WebCore::InspectorClientGdk::createPage): Ditto.
15548         (WebCore::InspectorClientGdk::showWindow): Ditto.
15549         (WebCore::InspectorClientGdk::closeWindow): Ditto.
15550         (WebCore::InspectorClientGdk::attachWindow): Ditto.
15551         (WebCore::InspectorClientGdk::detachWindow): Ditto.
15552         (WebCore::InspectorClientGdk::highlight): Ditto.
15553         (WebCore::InspectorClientGdk::hideHighlight): Ditto.
15554         (WebCore::InspectorClientGdk::inspectedURLChanged): Ditto.
15555         * page/gdk/InspectorClientGdk.h: Added.
15556         * platform/graphics/svg/SVGImage.cpp:
15557         (WebCore::SVGImage::dataChanged): Pass in a dummy InspectorClient.
15558         * platform/graphics/svg/SVGImageEmptyClients.h:
15559         (WebCore::SVGEmptyInspectorClient::~SVGEmptyInspectorClient): Empty dummy implementation.
15560         (WebCore::SVGEmptyInspectorClient::inspectorDestroyed): Ditto.
15561         (WebCore::SVGEmptyInspectorClient::createPage): Ditto.
15562         (WebCore::SVGEmptyInspectorClient::showWindow): Ditto.
15563         (WebCore::SVGEmptyInspectorClient::closeWindow): Ditto.
15564         (WebCore::SVGEmptyInspectorClient::attachWindow): Ditto.
15565         (WebCore::SVGEmptyInspectorClient::detachWindow): Ditto.
15566         (WebCore::SVGEmptyInspectorClient::highlight): Ditto.
15567         (WebCore::SVGEmptyInspectorClient::hideHighlight): Ditto.
15568         (WebCore::SVGEmptyInspectorClient::inspectedURLChanged): Ditto.
15569
15570 2007-07-18  Anders Carlsson  <andersca@apple.com>
15571
15572         Make some headers private instead of project.
15573         
15574         * WebCore.xcodeproj/project.pbxproj:
15575
15576 2007-07-18  John Sullivan  <sullivan@apple.com>
15577
15578         Reviewed by Maciej and Kevin Decker
15579
15580         - fixed <rdar://problem/5315926> REGRESSION: ~.4% PLT regression from r23949 (canonicalization change)
15581
15582         * loader/mac/LoaderNSURLExtras.m:
15583         (canonicalURL):
15584         Rolled out the fix for 5249730 that caused this regression. 5249730 is addressed a different way now.
15585
15586 2007-07-18  Sam Weinig  <sam@webkit.org>
15587
15588         Build fix.
15589
15590         * WebCore.xcodeproj/project.pbxproj:
15591         * loader/gdk/FrameLoaderClientGdk.cpp:
15592         (WebCore::FrameLoaderClientGdk::objectContentType):
15593         * platform/graphics/win/ImageWin.cpp:
15594         * platform/network/cf/ResourceResponseCFNet.cpp:
15595         * platform/win/ClipboardWin.cpp:
15596         (WebCore::createGlobalImageFileDescriptor):
15597
15598 2007-07-18  Sam Weinig  <sam@webkit.org>
15599
15600         Rubber-stamped by Adam Roben.
15601
15602         Rename MimeTypeRegistry to MIMETypeRegistry and xmlhttprequest to XMLHttpRequest
15603
15604         * WebCore.exp:
15605         * WebCore.pro:
15606         * WebCore.vcproj/WebCore.vcproj:
15607         * bindings/js/JSXMLHttpRequest.cpp:
15608         * bindings/js/kjs_binding.cpp:
15609         * bindings/js/kjs_dom.cpp:
15610         * dom/Document.cpp:
15611         * html/HTMLFormElement.cpp:
15612         (WebCore::HTMLFormElement::formData):
15613         * html/HTMLObjectElement.cpp:
15614         (WebCore::HTMLObjectElement::containsJavaApplet):
15615         * loader/FrameLoader.cpp:
15616         (WebCore::FrameLoader::requestObject):
15617         * loader/mac/LoaderNSURLExtras.m:
15618         (suggestedFilenameWithMIMEType):
15619         * platform/MIMETypeRegistry.cpp: Copied from platform/MimeTypeRegistry.cpp.
15620         (WebCore::initialiseSupportedImageMIMETypes):
15621         (WebCore::initialiseMIMETypeRegistry):
15622         (WebCore::MIMETypeRegistry::getMIMETypeForPath):
15623         (WebCore::MIMETypeRegistry::isSupportedImageMIMEType):
15624         (WebCore::MIMETypeRegistry::isSupportedImageResourceMIMEType):
15625         (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType):
15626         (WebCore::MIMETypeRegistry::isJavaAppletMIMEType):
15627         (WebCore::MIMETypeRegistry::getSupportedImageMIMETypes):
15628         (WebCore::MIMETypeRegistry::getSupportedImageResourceMIMETypes):
15629         (WebCore::MIMETypeRegistry::getSupportedNonImageMIMETypes):
15630         * platform/MIMETypeRegistry.h: Copied from platform/MimeTypeRegistry.h.
15631         * platform/MimeTypeRegistry.cpp: Removed.
15632         * platform/MimeTypeRegistry.h: Removed.
15633         * platform/gdk/MIMETypeRegistryGdk.cpp: Copied from platform/gdk/MimeTypeRegistryGdk.cpp.
15634         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
15635         * platform/gdk/MimeTypeRegistryGdk.cpp: Removed.
15636         * platform/graphics/BitmapImage.cpp:
15637         * platform/graphics/Image.cpp:
15638         (WebCore::Image::supportsType):
15639         * platform/mac/DragDataMac.mm:
15640         * platform/mac/MIMETypeRegistryMac.mm: Copied from platform/mac/MimeTypeRegistryMac.mm.
15641         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
15642         (WebCore::MIMETypeRegistry::getExtensionsForMIMEType):
15643         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
15644         * platform/mac/MimeTypeRegistryMac.mm: Removed.
15645         * platform/mac/PasteboardMac.mm:
15646         (WebCore::Pasteboard::writeImage):
15647         * platform/qt/MIMETypeRegistryQt.cpp: Copied from platform/qt/MimeTypeRegistryQt.cpp.
15648         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
15649         * platform/qt/MimeTypeRegistryQt.cpp: Removed.
15650         * platform/win/MIMETypeRegistryWin.cpp: Copied from platform/win/MimeTypeRegistryWin.cpp.
15651         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
15652         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
15653         * platform/win/MimeTypeRegistryWin.cpp: Removed.
15654         * rendering/RenderPartObject.cpp:
15655         (WebCore::RenderPartObject::updateWidget):
15656         * xml/xmlhttprequest.cpp: Removed.
15657         * xml/xmlhttprequest.h: Removed.
15658         * xml/XMLHttpRequest.cpp: Copied from xml/xmlhttprequest.cpp.
15659         * xml/XMLHttpRequest.h: Copied from xml/xmlhttprequest.h.
15660
15661 2007-07-18  Sam Weinig  <sam@webkit.org>
15662
15663         Rubber-stamped by Adam Roben.
15664
15665         Rename csshelper.h, csshelper.cpp, cssparser.h, cssparser.cpp,
15666         cssstyleselector.h, and cssstyleselector.cpp to be CamelCase.
15667
15668         * WebCore.pro:
15669         * WebCore.vcproj/WebCore.vcproj:
15670         * bindings/objc/DOM.mm:
15671         * bindings/objc/DOMHTML.mm:
15672         * css/CSSGrammar.y:
15673         * css/CSSMediaRule.cpp:
15674         * css/CSSMutableStyleDeclaration.cpp:
15675         * css/CSSPrimitiveValue.cpp:
15676         * css/CSSStyleSheet.cpp:
15677         * css/MediaList.cpp:
15678         * css/MediaQueryExp.cpp:
15679         * css/csshelper.cpp: Removed.
15680         * css/csshelper.h: Removed.
15681         * css/CSSHelper.cpp: Copied from css/csshelper.cpp.
15682         * css/CSSHelper.h: Copied from css/csshelper.h.
15683         * css/cssparser.cpp: Removed.
15684         * css/cssparser.h: Removed.
15685         * css/CSSParser.cpp: Copied from css/cssparser.cpp.
15686         * css/CSSParser.h: Copied from css/cssparser.h.
15687         * css/cssstyleselector.cpp: Removed.
15688         * css/cssstyleselector.h: Removed.
15689         * css/CSSStyleSelector.cpp: Copied from css/cssstyleselector.cpp.
15690         * css/CSSStyleSelector.h: Copied from css/cssstyleselector.h.
15691         * dom/Document.cpp:
15692         * dom/Element.cpp:
15693         * dom/StyledElement.cpp:
15694         * editing/ApplyStyleCommand.cpp:
15695         * editing/markup.cpp:
15696         * html/CanvasGradient.cpp:
15697         * html/CanvasRenderingContext2D.cpp:
15698         * html/CanvasStyle.cpp:
15699         * html/HTMLAnchorElement.cpp:
15700         * html/HTMLBaseElement.cpp:
15701         * html/HTMLBodyElement.cpp:
15702         * html/HTMLDocument.cpp:
15703         * html/HTMLEmbedElement.cpp:
15704         * html/HTMLFormElement.cpp:
15705         * html/HTMLFrameElementBase.cpp:
15706         * html/HTMLImageElement.cpp:
15707         * html/HTMLImageLoader.cpp:
15708         * html/HTMLLinkElement.cpp:
15709         * html/HTMLObjectElement.cpp:
15710         * html/HTMLOptGroupElement.cpp:
15711         * html/HTMLOptionElement.cpp:
15712         * html/HTMLSelectElement.cpp:
15713         * html/HTMLTableElement.cpp:
15714         * html/HTMLTablePartElement.cpp:
15715         * html/HTMLTokenizer.cpp:
15716         * ksvg2/css/SVGCSSParser.cpp:
15717         * ksvg2/css/SVGCSSStyleSelector.cpp:
15718         * ksvg2/svg/SVGAElement.cpp:
15719         * ksvg2/svg/SVGClipPathElement.cpp:
15720         * ksvg2/svg/SVGGradientElement.cpp:
15721         * ksvg2/svg/SVGLength.cpp:
15722         * ksvg2/svg/SVGMaskElement.cpp:
15723         * ksvg2/svg/SVGStyledElement.cpp:
15724         * ksvg2/svg/SVGUseElement.cpp:
15725         * page/DOMWindow.cpp:
15726         * page/mac/FrameMac.mm:
15727         * page/mac/WebCoreFrameBridge.mm:
15728         * rendering/HitTestResult.cpp:
15729         * rendering/RenderObject.cpp:
15730         * rendering/RenderStyle.cpp:
15731         * rendering/RenderThemeMac.mm:
15732
15733 2007-07-18  Brady Eidson  <beidson@apple.com>
15734
15735         Rubberstamped by Adam
15736
15737         * platform/win/SharedBufferWin.cpp:
15738         (WebCore::SharedBuffer::createWithContentsOfFile): Correct license on this newly checked in file from yesterday
15739
15740 2007-07-18  Maciej Stachowiak  <mjs@apple.com>
15741
15742         Reviewed by Oliver.
15743
15744         - fixed <rdar://problem/5340603> REGRESSION: javascript being written to the screen in Safari
15745
15746         Test Case: fast/tokenizer/badscript.html
15747         
15748         * html/HTMLTokenizer.cpp:
15749         (WebCore::HTMLTokenizer::parseTag): Don't apply our self-closing
15750         <script> quirk in cases where the / appears in a mangled attribtue
15751         value.
15752
15753 2007-07-17  Peter Kasting  <pkasting@google.com>
15754
15755         Reviewed by Hyatt.
15756
15757         http://bugs.webkit.org/show_bug.cgi?id=13618
15758         Don't set link targets to "_blank" on middle-click; rely on the policy
15759         delegate to do the right thing.
15760
15761         * html/HTMLAnchorElement.cpp:
15762         (WebCore::HTMLAnchorElement::defaultEventHandler):
15763
15764 2007-07-17  Oliver Hunt  <oliver@apple.com>
15765
15766         Reviewed by Maciej.
15767
15768         Fix for <rdar://problem/4799967> Safari and other WebKit 
15769         apps sometimes crash in WebCore::FontData::platformInit
15770
15771         Always retain/release our font handle, instead of only retaining
15772         in the presence of GC.
15773
15774         * platform/mac/FontPlatformData.h:
15775         (WebCore::FontPlatformData::FontPlatformData):
15776         (WebCore::FontPlatformData::~FontPlatformData):
15777
15778 2007-07-17  Sam Weinig  <sam@webkit.org>
15779
15780         Reviewed by Geoff Garen.
15781
15782         Fix for <rdar://problem/5333957>
15783                 http://bugs.webkit.org/show_bug.cgi?id=14610
15784
15785         Original patch by Feng Qian.
15786
15787         - Clear the selection object when disconnecting a frame.
15788
15789         Test: http/tests/security/cross-frame-access-selection.html
15790
15791         * loader/FrameLoader.cpp:
15792         (WebCore::FrameLoader::clear):
15793         * page/DOMWindow.cpp:
15794         (WebCore::DOMWindow::disconnectFrame):
15795         (WebCore::DOMWindow::clear):
15796         * page/DOMWindow.h:
15797         * page/Frame.cpp:
15798         (WebCore::Frame::clearScriptProxy):
15799         (WebCore::Frame::clearDOMWindow):
15800         * page/Frame.h:
15801
15802 2007-07-17  Oliver Hunt  <oliver@apple.com>
15803
15804         Reviewed by Sam.
15805
15806         Fix for <rdar://problem/5154518> REGRESSION: Hitting return does
15807         nothing in ruby terminal at http://tryruby.hobix.com/
15808
15809         Calling event.preventDefault() during a keydown event should not 
15810         prevent the keypress event from firing.
15811
15812         * WebCore.xcodeproj/project.pbxproj:
15813         * page/EventHandler.cpp:
15814         (WebCore::EventHandler::keyEvent):
15815         (WebCore::EventHandler::defaultKeyboardEventHandler):
15816
15817 2007-07-17  Anders Carlsson  <andersca@apple.com>
15818
15819         Reviewed by Geoff.
15820
15821         <rdar://problem/4993463> 
15822         http://bugs.webkit.org/show_bug.cgi?id=12732
15823         REGRESSION: Comments fields on ircimages not showing up in nightly
15824
15825         Postpone setting the frame name to just right before we request the frame. Otherwise, 
15826         two calls to FrameTree::uniqueChildName will return the same frame name and in that case only
15827         one Frame object will actually be created and multiple iframe elements will refer to it.
15828         
15829         * html/HTMLFrameElementBase.cpp:
15830         (WebCore::HTMLFrameElementBase::openURL):
15831         (WebCore::HTMLFrameElementBase::setNameAndOpenURL):
15832         (WebCore::HTMLFrameElementBase::setNameAndOpenURLCallback):
15833         (WebCore::HTMLFrameElementBase::insertedIntoDocument):
15834         (WebCore::HTMLFrameElementBase::attach):
15835         * html/HTMLFrameElementBase.h:
15836
15837 2007-07-17  Brady Eidson  <beidson@apple.com>
15838
15839         Reviewed by Steve
15840
15841         Required for <rdar://problem/4516185> - FTP Directory Listings
15842
15843         * WebCore.vcproj/WebCore.vcproj: Added SharedBufferWin
15844         
15845         * platform/SharedBuffer.cpp: Windows doesn't get the default empty resource anymore
15846         * platform/win/SharedBufferWin.cpp: Added.
15847         (WebCore::SharedBuffer::createWithContentsOfFile):
15848
15849 2007-07-17  Brady Eidson  <beidson@apple.com>
15850
15851         Reviewed by Tim Hatcher
15852
15853         Tweak the class names we give to the icon table cell to make it easier to style
15854
15855         * loader/FTPDirectoryDocument.cpp:
15856           (WebCore::FTPDirectoryTokenizer::appendEntry): The the table cell a "IconCell" class name and
15857           either a "FileType" or "DirectoryType" class name depending on the type
15858
15859 2007-07-17  Holger Hans Peter Freyther  <zecke@selfish.org>
15860
15861         Reviewed by NOBODY.
15862
15863         Build fix after r24366 add an additional ResourceRequest parameter to
15864         the download method.
15865
15866         * loader/gdk/FrameLoaderClientGdk.cpp:
15867         (WebCore::FrameLoaderClientGdk::download):
15868         * loader/gdk/FrameLoaderClientGdk.h:
15869
15870 2007-07-17  Adam Roben  <aroben@apple.com>
15871
15872         Fix Bug 14324: Cannot remove/customize the "Inspect Element" contextual menu item
15873         http://bugs.webkit.org/show_bug.cgi?id=14324
15874
15875         Reviewed by Tim.
15876
15877         No regression test possible.
15878
15879         * page/ContextMenuController.cpp:
15880         (WebCore::ContextMenuController::handleContextMenuEvent): Add the
15881         Inspect Element item to the menu before passing it to the
15882         ContextMenuClient so that the UI delegate has a chance to
15883         modify/remove the item.
15884
15885 2007-07-17  Adam Roben  <aroben@apple.com>
15886
15887         Remove ContextMenuClient::shouldIncludeInspectElementItem
15888
15889         Reviewed by Tim.
15890
15891         No regression test possible.
15892
15893         * page/ContextMenuClient.h:
15894         * page/ContextMenuController.cpp:
15895         (WebCore::ContextMenuController::handleContextMenuEvent): Use Settings
15896         to determine whether to include the Inspect Element item.
15897         * page/gdk/ContextMenuClientGdk.cpp:
15898         * page/gdk/ContextMenuClientGdk.h:
15899         * platform/graphics/svg/SVGImageEmptyClients.h:
15900
15901 2007-07-17  Adam Roben  <aroben@apple.com>
15902
15903         Initialize ContextMenuController::m_page
15904
15905         Somehow this variable had never been initialized before.
15906
15907         Reviewed by Tim.
15908
15909         * page/ContextMenuController.cpp:
15910         (WebCore::ContextMenuController::ContextMenuController):
15911         * page/ContextMenuController.h:
15912         * page/Page.cpp:
15913         (WebCore::Page::Page):
15914
15915 2007-07-17  Adam Roben  <aroben@apple.com>
15916
15917         Add Settings::developerExtrasEnabled
15918
15919         Reviewed by Tim.
15920
15921         * WebCore.exp:
15922         * page/Settings.cpp:
15923         * page/Settings.h:
15924
15925 2007-07-17  Justin Garcia  <justin.garcia@apple.com>
15926
15927         Reviewed by Antti.
15928
15929         <rdar://problem/5206311> 
15930         Whitespace can't be removed when editing text pasted into from web page
15931         
15932         The whitespace comes from table rows that aren't being removed after they are
15933         emptied out during a deletion.
15934
15935         * editing/DeleteSelectionCommand.cpp:
15936         (WebCore::isTableCell):
15937         (WebCore::isTableRow):
15938         (WebCore::isTableCellEmpty):
15939         (WebCore::isTableRowEmpty):
15940         (WebCore::DeleteSelectionCommand::initializePositionData): Remember the table
15941         rows that contained the start and end of the selection.
15942         (WebCore::DeleteSelectionCommand::removePreviouslySelectedEmptyTableRows):
15943         Remove table rows that come before the end of the selection
15944         that was removed (except for the row that contained the start of the selection
15945         and any before that).
15946         Remove table rows that are come after the start of the selection
15947         that was removed (except for the row that contained the end of the selection
15948         and any after that).
15949         (WebCore::DeleteSelectionCommand::doApply): Call the new function.
15950         * editing/DeleteSelectionCommand.h:
15951
15952 2007-07-17  Geoffrey Garen  <ggaren@apple.com>
15953
15954         Reviewed by Kevin Decker.
15955
15956         Removed ASSERT that was breaking the pageout test. It's trivial to
15957         reproduce this ASSERT when navigating between pages that change their
15958         names, but nothing bad seems to happen.
15959
15960         * page/Page.cpp:
15961         (WebCore::Page::goToItem):
15962
15963 2007-07-17  Geoffrey Garen  <ggaren@apple.com>
15964
15965         Build fix.
15966         
15967         * plugins/win/PluginViewWin.cpp: Pass false for lockHistory like we
15968         do elsewhere.
15969
15970 2007-07-17  Holger Hans Peter Freyther  <zecke@selfish.org>
15971
15972         Reviewed by Maciej.
15973
15974         Implement the callback responsible for handling HTTP headers. This
15975         callback gets called for every header.
15976         We will add these headers to our ResourceResponse and on the 'end-of-header'
15977         indicator we will update the ResourceResponse and dispatch it.
15978
15979         This patch adds various set methods to ResourceResponse. This improves
15980         the readability of the headerCallback and avoids storing a CURL handle inside
15981         the ResourceResponse which would be needed to implement ResourceResponse::doUpdateResourceResponse
15982
15983         Add a destructor for ResourceHandleManager which would free the resources and remove
15984         a unused variable.
15985
15986         * platform/network/ResourceHandleInternal.h:
15987         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
15988         * platform/network/ResourceResponse.cpp:
15989         (WebCore::ResourceResponse::setUrl):
15990         (WebCore::ResourceResponse::setMimeType):
15991         (WebCore::ResourceResponse::setExpectedContentLength):
15992         (WebCore::ResourceResponse::setTextEncodingName):
15993         (WebCore::ResourceResponse::setSuggestedFilename):
15994         * platform/network/ResourceResponse.h:
15995         * platform/network/curl/ResourceHandleCurl.cpp:
15996         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
15997         * platform/network/curl/ResourceHandleManager.cpp:
15998         (WebCore::ResourceHandleManager::~ResourceHandleManager):
15999         (WebCore::ResourceHandleManager::sharedInstance):
16000         (WebCore::headerCallback):
16001         * platform/network/curl/ResourceHandleManager.h:
16002
16003 2007-07-17  Sam Weinig  <sam@webkit.org>
16004
16005         Reviewed by Adam Roben.
16006
16007         Convert JS undefined to the empty string when calling alert, confirm, and prompt. 
16008
16009         Test: fast/dom/Window/alert-undefined.html
16010
16011         * page/DOMWindow.idl:
16012
16013 2007-07-17  Geoffrey Garen  <ggaren@apple.com>
16014
16015         Reviewed by Kevin McCulough.
16016
16017         Fixed failing layout test.
16018         
16019         Renamed "FrameLoadTypeInternal" to "FrameLoadTypeRedirectWithLockedHistory".
16020         This is almost certainly not a correct name for the original intent
16021         of this load type, but it's a correct name for its current behavior.
16022         
16023         (WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory):
16024         When history is supposed to be locked, and no current history item
16025         exists, only add a new history item if you're the top-level frame.
16026         
16027         This rule, combined with the rule that setting iframe.src should not
16028         create a history item, is pretty hackish. On the other hand, it
16029         matches WinIE and doesn't cause any test regressions. So I'm OK with
16030         it as a short-term solution until the solution described in 
16031         <rdar://problem/5339292> can be implemented.
16032
16033 2007-07-17  Tristan O'Tierney  <tristan@apple.com>
16034
16035         Reviewed by Maciej Stachowiak.
16036
16037         <rdar://problem/5294691> Source of file is misrepresented if downloaded by typing in URL in Safari address bar
16038
16039         * loader/FrameLoaderClient.h:
16040         * loader/MainResourceLoader.cpp:        
16041         (WebCore::MainResourceLoader::continueAfterContentPolicy):
16042         Added an extra request parameter, initialRequest, to the download() method
16043         by passing up the resource handle's request.
16044         
16045         * platform/graphics/svg/SVGImageEmptyClients.h:
16046         (WebCore::SVGEmptyFrameLoaderClient::download):
16047         Added an extra parameter to the empty SVG download method.
16048         
16049 2007-07-17  Antti  <antti@apple.com>
16050
16051         Reviewed by home-bradee.
16052
16053         <rdar://problem/5336372>
16054         Icon database uses too much memory
16055         
16056         XRaying Safari startup memory consumption revealed that icon database is eating quite
16057         a bit of RAM if Icon.db is large (which it probably is if it has been in use for a while, 
16058         mine used for getting figures below was 2.6MB). 
16059         
16060         Note that the wins are less impressive with smaller Icon.db.
16061         
16062         This patch addresses three separate issues
16063         
16064         - SQLite fails to free the memory used by temporary tables. Icon database uses a temporary table
16065           on startup for pruning unused page urls. This wastes around 1MB. Addressed by rewriting
16066           pruning so it does not need a temporary table. The new method is also quite a bit faster speeding
16067           up Safari launch time by around 100ms
16068         - SQLite has it's own memory cache limited by default to 3MB. Icon database does not really need that much.
16069           Dropped the cache size to 300kB saving ~1MB on startup. 
16070           Smaller cache slows down startup by ~30ms (more than compensated by faster pruning above)
16071         - Don't populate m_pageURLToIconURLMap with all urls from database on startup, instead let it get populated
16072           when urls are accessed (user opens history menu for example). This shouldn't have any real performance impact 
16073           as the accesses are icon loads that need to hit the database anyway. This saves ~700kB.
16074           
16075         All in all with this Icon.db these changes reduce allocated memory by around 2.7MB on startup. Release build
16076         Safari RPRVT (empty start page) goes from 12.4MB to 10.4MB (TCMalloc pooling probably explaining why the win 
16077         looks bit smaller here).
16078
16079         * loader/icon/IconDatabase.cpp:
16080         (WebCore::IconDatabase::IconDatabase):
16081         (WebCore::IconDatabase::open):
16082         (WebCore::IconDatabase::deleteAllPreparedStatements):
16083         (WebCore::IconDatabase::retainIconForPageURL):
16084         (WebCore::IconDatabase::releaseIconForPageURL):
16085         (WebCore::IconDatabase::establishIconIDForIconURL):
16086         (WebCore::IconDatabase::pruneUnretainedIconsOnStartup):
16087         * loader/icon/IconDatabase.h:
16088
16089 2007-07-17  Darin Adler  <darin@apple.com>
16090
16091         Reviewed by Mitz.
16092
16093         - fix http://bugs.webkit.org/show_bug.cgi?id=14569
16094           Repro crash due to saved state not being cleared when select and textarea elements
16095           are adopted by another document
16096
16097         Test: fast/forms/saved-state-adoptNode-crash.html
16098
16099         * dom/Document.h:
16100         (WebCore::Document::registerFormElementWithState): Updated parameter type to be
16101         HTMLFormControlElementWithState.
16102         (WebCore::Document::unregisterFormElementWithState): Ditto.
16103         Also removed isFormElementRegistered function and changed the type of the
16104         m_formElementsWithState ListHashSet.
16105         * dom/Document.cpp: (WebCore::Document::formElementsState): Updated to use new type,
16106         for set contents and to use new saveState() function and only save state for elements
16107         that return true.
16108
16109         * html/HTMLGenericFormElement.h: Added HTMLFormControlElementWithState class,
16110         derived from HTMLGenericFormElement, and moved down all the behavior related to
16111         saving form control element state. Also removed the unnecessary default parameter
16112         to the HTMLGenericFormElement constructor.
16113         * html/HTMLGenericFormElement.cpp:
16114         (WebCore::HTMLFormControlElementWithState::HTMLFormControlElementWithState): Added.
16115         Calls registerFormElementWithState.
16116         (WebCore::HTMLFormControlElementWithState::~HTMLFormControlElementWithState): Added.
16117         Calls unregisterFormElementWithState.
16118         (WebCore::HTMLFormControlElementWithState::willMoveToNewOwnerDocument): Added.
16119         Calls unregisterFormElementWithState.
16120         (WebCore::HTMLFormControlElementWithState::didMoveToNewOwnerDocument): Added.
16121         Calls registerFormElementWithState.
16122         (WebCore::HTMLFormControlElementWithState::closeRenderer): Moved to this class from
16123         the base class.
16124
16125         * html/HTMLInputElement.h: Updated the base class name and overrode saveState instead
16126         of stateValue.
16127         * html/HTMLInputElement.cpp: Updated the base class name.
16128         (WebCore::HTMLInputElement::init): Removed the call to registerFormElementWithState.
16129         (WebCore::HTMLInputElement::~HTMLInputElement): Removed the call to
16130         unregisterFormElementWithState. Also changed the code to only call the
16131         unregisterForDidRestoreFromCacheCallback function for type PASSWORD (consistency
16132         and efficiency).
16133         (WebCore::HTMLInputElement::setInputType): Removed calls to registerFormElementWithState
16134         and unregisterFormElementWithState; we now let the element stay registered and simply
16135         don't save or restore state for password fields.
16136         (WebCore::HTMLInputElement::saveState): Updated function name and signature to replace
16137         the old stateValue function. Returns false for password fields.
16138         (WebCore::HTMLInputElement::willMoveToNewOwnerDocument): Removed the call to
16139         unregisterFormElementWithState.
16140         (WebCore::HTMLInputElement::didMoveToNewOwnerDocument): Removed the call to
16141         registerFormElementWithState.
16142
16143         * html/HTMLSelectElement.h: Updated the base class name and overrode saveState instead
16144         of stateValue.
16145         * html/HTMLSelectElement.cpp: Updated the base class name.
16146         (WebCore::HTMLSelectElement::HTMLSelectElement): Removed the call to
16147         registerFormElementWithState.
16148         (WebCore::HTMLSelectElement::~HTMLSelectElement): Removed the call to
16149         unregisterFormElementWithState.
16150         (WebCore::HTMLSelectElement::saveState): Updated function name and signature to
16151         replace the old stateValue function.
16152         (WebCore::HTMLSelectElement::setLength): Updated to use document() instead of
16153         ownerDocument(); the latter is just a slower virtual-function way of doing the
16154         same thing in all cases except for Document and XPathNamespace.
16155
16156         * html/HTMLTextAreaElement.h: Update the base class name, overrode saveState instead
16157         of stateValue, and removed the now-unnecessary explicit destructor.
16158         * html/HTMLTextAreaElement.cpp: Updated the base class name.
16159         (WebCore::HTMLTextAreaElement::HTMLTextAreaElement): Removed the call to
16160         registerFormElementWithState.
16161         (WebCore::HTMLTextAreaElement::saveState): Updated function name and signature to replace
16162         the old stateValue function.
16163
16164 2007-07-17  Sam Weinig  <sam@webkit.org>
16165
16166         Reviewed by Darin.
16167
16168         - Make HTMLFrameOwnerElement::contentWindow() return a DOMWindow instead of a Frame
16169         - Remove the unnecessary hack in HTMLFrameElement.idl and HTMLIFrameElement.idl that
16170           converted from Frame to Window now that it is not necessary.
16171         - Remove now unused [NullCheck] extended attribute from CodeGeneratorJS.pm.
16172
16173         * bindings/scripts/CodeGeneratorJS.pm:
16174         * html/HTMLDocument.idl:
16175         * html/HTMLFrameElement.idl:
16176         * html/HTMLFrameOwnerElement.cpp:
16177         (WebCore::HTMLFrameOwnerElement::contentWindow):
16178         * html/HTMLFrameOwnerElement.h:
16179         * html/HTMLIFrameElement.idl:
16180
16181 2007-07-16  Sam Weinig  <sam@webkit.org>
16182
16183         Reviewed by Adam Roben.
16184
16185         Move self, opener, parent, top, window, and frames from kjs_window
16186         to DOMWindow and auto-generate the bindings for them.
16187
16188         * bindings/js/kjs_window.cpp:
16189         (KJS::Window::getValueProperty):
16190         * bindings/js/kjs_window.h:
16191         (KJS::Window::):
16192         * page/DOMWindow.cpp:
16193         (WebCore::DOMWindow::self):
16194         (WebCore::DOMWindow::opener):
16195         (WebCore::DOMWindow::parent):
16196         (WebCore::DOMWindow::top):
16197         * page/DOMWindow.h:
16198         (WebCore::DOMWindow::window):
16199         (WebCore::DOMWindow::frames):
16200         * page/DOMWindow.idl:
16201
16202 2007-07-16  Geoffrey Garen  <ggaren@apple.com>
16203
16204         Reviewed by Sam Weinig.
16205         
16206         Fixed <rdar://problem/5334483> REGRESSION: JavaScript-induced 
16207         window.open loads not added to back/forward list
16208         
16209         I did an audit of our history rules in loading and tried to establish
16210         some sane uniformity.
16211         
16212         The uniform rule is:
16213             - HTTP redirects and HTTP redirects simulated by <meta http-equiv>
16214             add a history item if and only if the redirect takes > 1 second.
16215             - Other navigations, including JavaScript navigations, always
16216             add a history item, except for location.replace navigations.
16217
16218         In the future, we'll want to refine the second case to be more like the
16219         first. I've filed <rdar://problem/5339292> about that.
16220
16221         * bindings/js/JSHTMLDocumentCustom.cpp:
16222         (WebCore::JSHTMLDocument::setLocation): Don't pass 'true' for 
16223         userGesture unconditionally. userGesture is used to determine popup 
16224         blocking, not history item creation.
16225
16226         * bindings/js/kjs_window.cpp: Pass 'false' for lockHistory in all loads
16227         except location.replace, which intends to lock history.
16228
16229         * loader/FrameLoader.cpp: Distinguish between lockHistory and 
16230         userGesture. The former determines whether a new history item gets
16231         created. The latter determines whether JavaScript can open popup
16232         windows. Start passing these variables in functions that used to
16233         swallow or conflate them.
16234         
16235         (WebCore::FrameLoader::requestFrame): Pass 'true' for lockHistory here
16236         because that's usually correct when setting the 'src' attribute of a
16237         child frame, and we want to avoid regressing <rdar://problem/4921797>.
16238
16239         (WebCore::FrameLoader::load): Use the lockHistory variable to determine
16240         whether to start a history-creating load. Using userGesture for this
16241         purpose is wrong, as explained above.
16242
16243         * loader/FrameLoader.h: Renamed one variant of scheduleRedirection to
16244         scheduleHTTPRedirection because the behavior there of measuring elapsed
16245         time is specific to the HTTP redirection case.
16246
16247         * page/ContextMenuController.cpp:
16248         (WebCore::ContextMenuController::contextMenuItemSelected): lockHistory
16249         can always be false here because this navigation is never the result of
16250         a redirection.
16251
16252 2007-07-16  Sam Weinig  <sam@webkit.org>
16253
16254         Reviewed by Adam and Maciej.
16255
16256         Move the frameElement attribute from kjs_window to DOMWindow and
16257         auto-generate the bindings for it. 
16258
16259         * bindings/js/kjs_window.cpp:
16260         (KJS::Window::getValueProperty):
16261         * bindings/js/kjs_window.h:
16262         (KJS::Window::):
16263         * bindings/scripts/CodeGeneratorJS.pm:
16264         * page/DOMWindow.cpp:
16265         (WebCore::DOMWindow::frameElement):
16266         (WebCore::DOMWindow::devicePixelRatio):
16267         * page/DOMWindow.h:
16268         * page/DOMWindow.idl:
16269
16270 2007-07-16  Sam Weinig  <sam@webkit.org>
16271
16272         Reviewed by Adam.
16273
16274         Move more functions from kjs_window to DOMWindow and auto-generate
16275         the bindings for them.
16276
16277         * bindings/js/kjs_window.cpp:
16278         (KJS::WindowFunc::callAsFunction):
16279         * bindings/js/kjs_window.h:
16280         (KJS::Window::):
16281         * page/DOMWindow.cpp:
16282         (WebCore::DOMWindow::print):
16283         (WebCore::DOMWindow::stop):
16284         (WebCore::DOMWindow::alert):
16285         (WebCore::DOMWindow::confirm):
16286         (WebCore::DOMWindow::prompt):
16287         (WebCore::DOMWindow::find):
16288         * page/DOMWindow.h:
16289         * page/DOMWindow.idl:
16290
16291 2007-07-17  Mark Rowe  <mrowe@apple.com>
16292
16293         Gdk build fix.
16294
16295         * platform/gdk/ChromeClientGdk.h:
16296
16297 2007-07-16  Brady Eidson  <beidson@apple.com>
16298
16299         Reviewed by Adam
16300
16301         Begin the arduous task of localizing FTP directory listings while removing a global initializer!
16302
16303         * loader/FTPDirectoryDocument.cpp:
16304         (WebCore::processFilesizeString):
16305
16306         * page/mac/WebCoreViewFactory.h:
16307
16308         * platform/LocalizedStrings.h:
16309
16310         * platform/gdk/TemporaryLinkStubs.cpp:
16311         (WebCore::unknownFileSizeText):
16312
16313         * platform/mac/LocalizedStringsMac.mm:
16314         (WebCore::unknownFileSizeText):
16315
16316         * platform/qt/Localizations.cpp:
16317         (WebCore::unknownFileSizeText):
16318
16319 2007-07-16  Sam Weinig  <sam@webkit.org>
16320
16321         Reviewed by Oliver.
16322
16323         Remove more redundant isSafeScript checks.
16324
16325         * bindings/js/kjs_window.cpp:
16326         (KJS::Window::getOwnPropertySlot):
16327
16328 2007-07-16  Sam Weinig  <sam@webkit.org>
16329
16330         Reviewed by Oliver.
16331
16332         Turn off -Wshorten-64-to-32 warning for 64-bit builds.
16333
16334         * Configurations/Base.xcconfig:
16335
16336 2007-07-16  Anders Carlsson  <andersca@apple.com>
16337
16338         Reviewed by Oliver.
16339
16340         <rdar://problem/5336276>
16341         ASSERT(cs->accessCount() > 0) when instantiating widget templates in DashCode
16342
16343         If the cache is disabled, accessCount will always be 0. Account for this in the assert.
16344         
16345         * html/HTMLTokenizer.cpp:
16346         (WebCore::HTMLTokenizer::reset):
16347         (WebCore::HTMLTokenizer::notifyFinished):
16348
16349 2007-07-16  Brady Eidson  <beidson@apple.com>
16350
16351         Reviewed by Darin.
16352
16353         Append FTP row entries to the first TBODY instead of the TABLE element itself, 
16354         as many TABLE elements end up with an implicit TBODY and that's where most people would
16355         expect it to be added.
16356
16357         * html/HTMLTableElement.h:
16358         (WebCore::HTMLTableElement::firstTBody): Added this accessor
16359
16360         * loader/FTPDirectoryDocument.cpp:
16361         (WebCore::FTPDirectoryTokenizer::appendEntry): Add to the first tbody if it exists
16362
16363 2007-07-16  Justin Garcia  <justin.garcia@apple.com>
16364
16365         Reviewed by Adele.
16366
16367         <rdar://problem/5240265> 
16368         REGRESSION: Clicking a <button> clears the selection in contenteditable areas
16369
16370         * page/FocusController.cpp:
16371         (WebCore::clearSelectionIfNeeded): Don't clear the selection if
16372         the mouse press that caused the focus shift occurred in 
16373         a -webkit-user-select: ignore region.
16374
16375 2007-07-16  David Hyatt  <hyatt@apple.com>
16376
16377         Fix for 5335829, avoid creating a pathological # of FontData objects
16378         on Windows.  The MLang service actually caches and reuses HFONTs, which
16379         means it is safe to use our FontPlatformData -> FontData cache.
16380
16381         Reviewed by olliej
16382
16383         * platform/win/FontCacheWin.cpp:
16384         (WebCore::FontCache::getFontDataForCharacters):
16385
16386 2007-07-16  Adam Roben  <aroben@apple.com>
16387
16388         Added a manual test to test calling window.print on a subframe.
16389
16390         Reviewed by Darin.
16391
16392         * manual-tests/resources/print-subframe.html: Added.
16393         * manual-tests/window-print-subframe.html: Added.
16394
16395 2007-07-16  Adam Roben  <aroben@apple.com>
16396
16397         Replace Frame::print with Chrome::print
16398
16399         This also adds a Frame* parameter to Chrome::print and
16400         ChromeClient::print so that it knows which Frame to print.
16401
16402         Reviewed by Darin.
16403
16404         All tests pass.
16405
16406         * bindings/js/kjs_window.cpp:
16407         (KJS::WindowFunc::callAsFunction): Call Chrome::print.
16408         * editing/JSEditor.cpp: Ditto.
16409
16410         * bridge/win/FrameWin.cpp: Removed Frame::print.
16411         * page/Frame.h: Ditto.
16412         * page/mac/FrameMac.mm: Ditto.
16413         * page/qt/FrameQt.cpp: Ditto.
16414         * platform/gdk/FrameGdk.cpp: Ditto.
16415         * page/mac/WebCoreFrameBridge.h: Removed -print.
16416
16417         * page/Chrome.cpp: Added Frame* parameter to Chrome::print and pass it
16418         up to the ChromeClient.
16419         * page/Chrome.h: Ditto.
16420         * page/ChromeClient.h: Ditto.
16421         * platform/gdk/TemporaryLinkStubs.cpp: Ditto.
16422         * platform/graphics/svg/SVGImageEmptyClients.h: Ditto.
16423
16424 2007-07-16  Adele Peterson  <adele@apple.com>
16425
16426         Reviewed by Brady.
16427
16428         Fix for <rdar://problem/5321490> REGRESSION: visibility:hidden property doesn't hide parts of file input element and listbox
16429         http://bugs.webkit.org/show_bug.cgi?id=14565
16430
16431         Tests:
16432         fast/forms/hidden-input-file.html
16433         fast/forms/hidden-listbox.html
16434
16435         * rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::paintObject):
16436         Only paint if the control is supposed to be visible.
16437         * rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintObject):
16438         ditto.  We already had checks to prevent drawing the text that considered the option's style too, but if visibility: hidden
16439         was just set on the listbox then a lot of extra work was being done, and the scrollbar was drawing too.  This change fixes that.
16440
16441 2007-07-16  David Hyatt  <hyatt@apple.com>
16442
16443         Fix for Radar 5338081, text-shadow should be reset on form controls so that
16444         it doesn't inherit in when set e.g., on the <body>.
16445
16446         Reviewed by beth
16447
16448         * css/html4.css:
16449
16450 2007-07-16  Holger Hans Peter Freyther  <zecke@selfish.org>
16451
16452         Reviewed by Niko.
16453
16454         FrameView, PlatformScrollbar and changes to the way we draw
16455
16456         Fix the lifetime of PlatformScrollbar, use a default width and
16457         height and fix drawing of the PlatformScrollbar and other widgets
16458         the following way: FrameGdk handles the expose events of the Frame
16459         and will make the frame redraw and now it will draw the childrent of
16460         the FrameView as well. This approach has the issue of honoring the
16461         z-order of elements inside the RenderTree. Honoring the z-order will
16462         be a bit more work
16463
16464         Widget can now handle Widget::setGtkWidget call where the GtkWidget
16465         has not yet a GdkWindow allocated. We will lazily set the GdkDrawable.
16466
16467         In preparation of honoring the z-order of the RenderTree for RenderWidgets
16468         it is started to store native objects inside the GraphicsContext. Doing this
16469         nicely eliminates the need of RenderThemeGdk to do any drawing to a temporary
16470         GdkPixmap. This should fix themes with rounded buttons.
16471
16472         ScrollView implement add- and removeChild to get a working PlatformScrollbar
16473
16474
16475         * platform/Widget.h:
16476         * platform/gdk/FrameGdk.cpp:
16477         (frame_gdk_expose_child): Will send the expose to all children
16478         (WebCore::FrameGdk::handleGdkEvent): Painting changes, move to mouseMoved
16479         * platform/gdk/PlatformScreenGdk.cpp:
16480         (WebCore::screenDepth): gdkDrawable
16481         * platform/gdk/PlatformScrollBarGdk.cpp:
16482         (PlatformScrollbar::PlatformScrollbar): Fix ownership
16483         (PlatformScrollbar::~PlatformScrollbar): Fix ownership
16484         (PlatformScrollbar::paint): Widget::paint will do the right thing soon
16485         * platform/gdk/RenderThemeGdk.cpp: No need for using a GdkPixmap, draw directly
16486         (WebCore::RenderThemeGdk::paintCheckbox): No need for using a GdkPixmap, draw directly
16487         (WebCore::RenderThemeGdk::paintRadio): No need for using a GdkPixmap, draw directly
16488         (WebCore::RenderThemeGdk::paintButton): No need for using a GdkPixmap, draw directly
16489         * platform/gdk/RenderThemeGdk.h: remove the copyContext call
16490         * platform/gdk/ScrollViewGdk.cpp: gdkDrawable
16491         (WebCore::ScrollView::updateView): gdkDrawable
16492         (WebCore::ScrollView::update): clear the area to fix repainting issues
16493         (WebCore::ScrollView::setGtkWidget): gdkDrawable
16494         (WebCore::ScrollView::addChild): implement
16495         (WebCore::ScrollView::removeChild): implement
16496         * platform/gdk/TemporaryLinkStubs.cpp: Not needed header removed
16497         * platform/gdk/WidgetGdk.cpp:
16498         (WebCore::Widget::gdkDrawable): Renamed from drawable
16499         (WebCore::Widget::setGtkWidget): use gdkDrawable
16500         (WebCore::Widget::setCursor): gdkDrawable
16501         (WebCore::Widget::show): gdkDrawable
16502         (WebCore::Widget::hide): gdkDrawable
16503         * platform/graphics/GraphicsContext.h: Allow to set the GdkDrawable, e.g. used inside a expose event
16504         * platform/graphics/cairo/GraphicsContextCairo.cpp:
16505         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
16506         (WebCore::GraphicsContext::setGdkDrawable):
16507         (WebCore::GraphicsContext::gdkDrawable):
16508
16509 2007-07-16  Holger Hans Peter Freyther  <zecke@selfish.org>
16510
16511         Reviewed by Maciej.
16512
16513         Lazily update the scrollbars (e.g. on loading a page) to
16514         generate less expose events, which will lead to laying out less often
16515          and will fix http://bugs.webkit.org/show_bug.cgi?id=14020.
16516
16517         * platform/gdk/ScrollViewGdk.cpp:
16518         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
16519         (WebCore::ScrollView::update):
16520         (WebCore::ScrollView::resizeContents):
16521         (WebCore::ScrollView::updateScrollbars):
16522
16523 2007-07-16  Rob Buis  <buis@kde.org>
16524
16525         Reviewed by Maciej.
16526
16527         http://bugs.webkit.org/show_bug.cgi?id=14462
16528         non empty <style> element doesn't work
16529
16530         Return an empty sheet for empty <style> elements
16531         instead of a null sheet. Clean up StyleElement a bit.
16532
16533         * dom/StyleElement.cpp:
16534         (WebCore::StyleElement::StyleElement):
16535         (WebCore::StyleElement::sheet):
16536         (WebCore::StyleElement::childrenChanged):
16537         (WebCore::StyleElement::createSheet):
16538         * dom/StyleElement.h:
16539         (WebCore::StyleElement::setLoading):
16540         * html/HTMLStyleElement.cpp:
16541         (WebCore::HTMLStyleElement::HTMLStyleElement):
16542         (WebCore::HTMLStyleElement::sheet):
16543         * html/HTMLStyleElement.h:
16544         (WebCore::HTMLStyleElement::setLoading):
16545         * ksvg2/svg/SVGStyleElement.cpp:
16546         (WebCore::SVGStyleElement::sheet):
16547         (WebCore::SVGStyleElement::sheetLoaded):
16548         * ksvg2/svg/SVGStyleElement.h:
16549
16550 2007-07-15  Oliver Hunt  <oliver@apple.com>
16551
16552         Reviewed by Adam.
16553
16554         Fix for fix for <rdar://problem/5336602> REGRESSION: tab characters
16555                         cannot be entered into text fields
16556                         http://bugs.webkit.org/show_bug.cgi?id=14032
16557
16558         Need to use UChar not char.
16559
16560         * html/HTMLInputElement.cpp:
16561         (WebCore::HTMLInputElement::constrainValue):
16562
16563 2007-07-15  Sam Weinig  <sam@webkit.org>
16564
16565         Reviewed by Geoff Garen.
16566
16567         Remove redundant calls to isSafeScript()
16568
16569         * bindings/js/JSDOMWindowCustom.cpp:
16570         (WebCore::JSDOMWindow::customPut):
16571         * bindings/js/kjs_window.cpp:
16572         (KJS::Window::put):
16573
16574 2007-07-15  Geoffrey Garen  <ggaren@apple.com>
16575
16576         Reviewed by Maciej Stachowiak.
16577         
16578         Removed incorrect error log, seen while running layout tests.
16579         
16580         Perhaps at some point FrameLoadTypeInteral had a specific meaning
16581         that prevented it from being used in non-child frame, non-redirect
16582         situations. However, that meaning has been lost and nobody remembers
16583         how to get it back.
16584         
16585         We currently use FrameLoadTypeInternal for any load that is not
16586         initiated by a user gesture, so it's trivial to produce this error
16587         log, even though nothing has gone wrong.
16588
16589         * loader/FrameLoader.cpp:
16590         (WebCore::FrameLoader::updateHistoryForInternalLoad):
16591
16592 2007-07-15  Oliver Hunt  <oliver@apple.com>
16593
16594         Reviewed by Maciej
16595
16596         Fix for <rdar://problem/5336602> REGRESSION: tab characters cannot be entered into text fields
16597                 http://bugs.webkit.org/show_bug.cgi?id=14032
16598
16599         constrainValue attempted to block control characters from being inserted 
16600         by a simple less than ' ' check, which prevent tab characters from being
16601         inserted.  This patch adds an additional check to allow the tab character 
16602         again
16603
16604         * html/HTMLInputElement.cpp:
16605         (WebCore::HTMLInputElement::constrainValue):
16606
16607 2007-07-14  Brady Eidson  <beidson@apple.com>
16608
16609         Third shot at blind Qt/GDK build fix
16610
16611         * platform/gdk/TemporaryLinkStubs.cpp:
16612         (FTPDirectoryDocument::createTokenizer):
16613         * platform/qt/TemporaryLinkStubs.cpp:
16614         (FTPDirectoryDocument::createTokenizer):
16615
16616 2007-07-14  Brady Eidson  <beidson@apple.com>
16617
16618         Reviewed by Sam
16619
16620         Windows build fix
16621
16622         * WebCore.vcproj/WebCore.vcproj:
16623
16624 2007-07-14  Sam Weinig  <sam@webkit.org>
16625
16626         Fix Tiger build.
16627
16628         * config.h:
16629
16630 2007-07-14  Brady Eidson  <beidson@apple.com>
16631
16632         Blind attempt at (hopefully) fixing the Qt and GDK builds
16633
16634         * platform/gdk/TemporaryLinkStubs.cpp:
16635         (FTPDirectoryDocument::FTPDirectoryDocument):
16636         * platform/qt/TemporaryLinkStubs.cpp:
16637         (FTPDirectoryDocument::FTPDirectoryDocument):
16638
16639 2007-07-14  Brady Eidson  <beidson@apple.com>
16640
16641         Reviewed by Sam Weinig
16642
16643         Initial check-in for <rdar://problem/3154486> - Supporting FTP directory listings in the browser
16644
16645         Development has taken place on both Leopard and Windows (windows enabling patch will follow shortly)
16646         Support will only exist on platforms whose network layers (ie, ResourceHandle) support piping the raw
16647         FTP Directory data into the engine.  
16648
16649         This is known to include Leopard, Windows, and CURL based platforms - probably others
16650         Known incompatible platforms include Tiger.
16651
16652         The FTP listing page is built in HTML.  An external HTML document can be provided as a template for the 
16653         directory listing.  This document is parsed, and expected to have a <table> with a certain class in it.
16654         As FTP directory listings come in, each entry is added to this table as a row.
16655
16656         If no HTML template is provided to work with, a very basic empty document is hard coded that contains only 
16657         this special table.
16658
16659         Upgrades to the look and feel of the directory listings can take place largely in this HTML template which,
16660         admittedly, is conspicuously absent in this initial checkin
16661
16662         * WebCore.exp: New Settings symbols for WebKit
16663         * WebCore.xcodeproj/project.pbxproj:
16664
16665         * config.h: If BUILDING_ON_TIGER, disable FTP directory listing support
16666
16667         * dom/DOMImplementation.cpp:
16668         (WebCore::DOMImplementation::createDocument): Create an FTPDirectoryDocument if the mime type is 
16669           "application/x-ftp-directory"
16670
16671         * loader/FTPDirectoryDocument.cpp: Added.
16672         (WebCore::FTPDirectoryTokenizer::isWaitingForScripts):
16673         (WebCore::FTPDirectoryTokenizer::checkBuffer):
16674         (WebCore::FTPDirectoryTokenizer::FTPDirectoryTokenizer): Building on HTML tokenizer, this facilitates 
16675           parsing FTP Directory listings in the engine
16676         (WebCore::FTPDirectoryTokenizer::appendEntry): Add a table row for a directory listing to the document
16677         (WebCore::FTPDirectoryTokenizer::createTDForFilename): Create the TD for the filename with the anchor in it
16678
16679         (WebCore::processFilesizeString): Prettify the filesize
16680         (WebCore::wasLastDayOfMonth):
16681         (WebCore::processFileDateString): Prettify the date
16682         (WebCore::FTPDirectoryTokenizer::parseAndAppendOneLine):
16683         (WebCore::FTPDirectoryTokenizer::loadDocumentTemplate): Loads the HTML template that FTP directory listings
16684           can build on top of
16685         (WebCore::FTPDirectoryTokenizer::createBasicDocument): Creates a most basic document (body and one table) to
16686           append the rows to in case the document template is not loaded and parsed
16687         (WebCore::FTPDirectoryTokenizer::write): Add the FTP listing to the buffer and parse entries out of it
16688         (WebCore::FTPDirectoryTokenizer::finish): 
16689
16690         (WebCore::FTPDirectoryDocument::FTPDirectoryDocument): Special document-type for FTP directory listings
16691         (WebCore::FTPDirectoryDocument::createTokenizer):
16692         * loader/FTPDirectoryDocument.h: Added.
16693         (WebCore::FTPDirectoryDocument::isImageDocument):
16694         
16695         * loader/FTPDirectoryParser.cpp: Added.
16696         (WebCore::parseOneFTPLine): Adapted from ParseFTPList.cpp from Firefox - parses most known
16697           FTP directory listing styles into discrete FTP directory entries
16698         * loader/FTPDirectoryParser.h: Added.
16699         (WebCore::ListState::ListState): Maintains FTP Parser state
16700         (WebCore::ListResult::ListResult): Represents one FTP directory listing
16701         (WebCore::ListResult::clear):
16702
16703         * loader/FrameLoader.cpp:
16704         (WebCore::FrameLoader::checkContentPolicy): If the Settings say to bypass the policy check for 
16705           "application/x-ftp-directory", skip it.  This will allow people to test this feature even if their 
16706           browser/WebKit app would otherwise not allow it
16707
16708         * page/Settings.cpp:
16709         (WebCore::Settings::Settings):
16710         (WebCore::Settings::setFTPDirectoryTemplatePath): Set the path to the FTP listing document template
16711         (WebCore::Settings::setForceFTPDirectoryListings): Set to bypass the policy delegate check for mime type
16712           "application/x-ftp-directory"
16713         * page/Settings.h:
16714         (WebCore::Settings::ftpDirectoryTemplatePath):
16715         (WebCore::Settings::forceFTPDirectoryListings):
16716
16717         * platform/Logging.cpp: Add an "LogFTP" logging channel
16718         * platform/Logging.h:
16719         * platform/mac/LoggingMac.mm:
16720         (WebCore::InitializeLoggingChannelsIfNecessary):
16721
16722         * platform/MimeTypeRegistry.cpp:
16723         (WebCore::initialiseSupportedNonImageMimeTypes): Add "application/x-ftp-directory"
16724
16725         * platform/SharedBuffer.cpp:
16726         (WebCore::SharedBuffer::createWithContentsOfFile): Stub for now
16727         * platform/SharedBuffer.h:
16728
16729         * platform/mac/SharedBufferMac.mm:
16730         (WebCore::SharedBuffer::createWithContentsOfFile): Load contents of the file into an NSData, then
16731           wrap that NSData
16732
16733 2007-07-14  Alexey Proskuryakov  <ap@webkit.org>
16734
16735         Reviewed by Darin.
16736
16737         http://bugs.webkit.org/show_bug.cgi?id=14618
16738         REGRESSION(13464): drivehq.com login form doesn't work
16739
16740         Test: http/tests/misc/post-submit-button.html
16741
16742         * html/HTMLInputElement.cpp:
16743         (WebCore::HTMLInputElement::appendFormData): Append a submit even if its value is empty.
16744
16745 2007-07-13  Oliver Hunt  <oliver@apple.com>
16746
16747         Reviewed by Sam.
16748
16749         Fix for 
16750             <rdar://problem/5335265> REGRESSION: WebCore::DragController crashes if WebDragSourceActionDHTML cleared
16751             http://bugs.webkit.org/show_bug.cgi?id=13652
16752
16753         Reorder logic for drag initiation: we can always preflight the clipboard, regardless as to whether 
16754         we are performing any dhtml drag handling    
16755
16756         * page/EventHandler.cpp:
16757         (WebCore::EventHandler::handleDrag):
16758
16759 2007-07-13  Matt Lilek  <pewtermoose@gmail.com>
16760
16761         Reviewed by Tim Hatcher.
16762
16763         Bug 14401: Semi-regression: Can no longer copy anything from the inspector
16764         http://bugs.webkit.org/show_bug.cgi?id=14401
16765
16766         * page/inspector/inspector.css:
16767
16768 2007-07-13  Beth Dakin  <bdakin@apple.com>
16769
16770         Reviewed by Hyatt.
16771
16772         Fix for <rdar://problem/5304742> A hang occurs when attempting to 
16773         display web clip banner at http://www.signonsandiego.com/sports/
16774         chargers/index.html
16775
16776         Here is the actual fix. 
16777         * rendering/RenderInline.cpp:
16778         (WebCore::RenderInline::absoluteRects): Set topLevel to 
16779         false when we recurse to get our children's absoluteRects.
16780         * rendering/RenderInline.h: New boolean parameter 
16781         topLevel that defaults to true.
16782         * rendering/RenderObject.cpp:
16783         (WebCore::RenderObject::absoluteRects):
16784         * rendering/RenderObject.h:
16785
16786         And these are just other implementations/declarations of this 
16787         (virtual) function that have to add the parameter. No behavior 
16788         change here.
16789         * rendering/RenderPath.cpp:
16790         (WebCore::RenderPath::absoluteRects):
16791         * rendering/RenderPath.h:
16792         * rendering/RenderSVGContainer.cpp:
16793         (WebCore::RenderSVGContainer::absoluteRects):
16794         * rendering/RenderSVGContainer.h:
16795         * rendering/RenderSVGHiddenContainer.cpp:
16796         (WebCore::RenderSVGHiddenContainer::absoluteRects):
16797         * rendering/RenderSVGHiddenContainer.h:
16798         * rendering/RenderSVGImage.cpp:
16799         (WebCore::RenderSVGImage::absoluteRects):
16800         * rendering/RenderSVGImage.h:
16801         * rendering/RenderSVGInlineText.cpp:
16802         (WebCore::RenderSVGInlineText::absoluteRects):
16803         * rendering/RenderSVGInlineText.h:
16804         * rendering/RenderSVGTSpan.cpp:
16805         (WebCore::RenderSVGTSpan::absoluteRects):
16806         * rendering/RenderSVGTSpan.h:
16807         * rendering/RenderSVGText.cpp:
16808         (WebCore::RenderSVGText::absoluteRects):
16809         * rendering/RenderSVGText.h:
16810         * rendering/RenderText.cpp:
16811         (WebCore::RenderText::absoluteRects):
16812         * rendering/RenderText.h:
16813         * rendering/RenderView.cpp:
16814         (WebCore::RenderView::absoluteRects):
16815         * rendering/RenderView.h:
16816
16817 2007-07-13  Mitz Pettel  <mitz@webkit.org>
16818
16819         Reviewed by Hyatt.
16820
16821         - fix http://bugs.webkit.org/show_bug.cgi?id=13438 <rdar://problem/5153030>
16822               Run rounding makes word-break:break-all/word not functional
16823
16824         Test: fast/text/word-break-run-rounding.html
16825
16826         * rendering/RenderText.cpp:
16827         (WebCore::RenderText::calcPrefWidths): Update the maximum width only on word
16828         boundaries to avoid rounding errors.
16829         * rendering/bidi.cpp:
16830         (WebCore::RenderBlock::findNextLineBreak): Integrated breakAll with the
16831         midWordBreak/wrapW mechanism. Also made the wrapW upper bound more accurate
16832         by resetting it when tmpW is committed.
16833
16834 2007-07-13  Sam Weinig  <sam@webkit.org>
16835
16836         Reviewed by Geoff Garen.
16837
16838         Patch for <rdar://problem/5318394>
16839         http site can read/write content of https site in same domain
16840
16841         Add protocol and port checks in isSafeScript.
16842
16843         * bindings/js/kjs_window.cpp:
16844         (KJS::Window::isSafeScript):
16845
16846 2007-07-13  Anders Carlsson  <andersca@apple.com>
16847
16848         Reviewed by Mitz Pettel.
16849
16850         <rdar://problem/5298870> 
16851         REGRESSION: In Yahoo Mail modal dialog, OK and Cancel buttons do not work, and descriptive text is missing (14327)
16852         
16853         http://bugs.webkit.org/show_bug.cgi?id=14327
16854         REGRESSION (r21367): dialogArguments not set in window generated by showModalDialog
16855
16856         When creating popup windows/dialogs, prevent the window properties from being cleared by the initial frame load.
16857         
16858         * loader/FrameLoader.cpp:
16859         (WebCore::FrameLoader::FrameLoader):
16860         (WebCore::FrameLoader::createWindow):
16861         (WebCore::FrameLoader::clear):
16862         (WebCore::FrameLoader::begin):
16863         (WebCore::FrameLoader::open):
16864         * loader/FrameLoader.h:
16865         (WebCore::FrameLoader::setShouldClearWindowProperties):
16866         * manual-tests/modal-dialog-arguments.html: Added.
16867
16868 2007-07-13  Steve Falkenburg  <sfalken@apple.com>
16869
16870         Update ResourceError related code to account for changes in CF interfaces.
16871
16872         Reviewed by Darin, Ada.
16873
16874         * platform/network/ResourceError.h: Change Mac conditionals to CF to share more code.
16875         * platform/network/cf/ResourceErrorCF.cpp:
16876         (WebCore::ResourceError::ResourceError): Modified based on CFErrorRef changes
16877         (WebCore::ResourceError::unpackPlatformError): Ported from ResourceErrorMac.mm.
16878         (WebCore::ResourceError::operator CFErrorRef): Ported from ResourceErrorMac.mm.
16879         (WebCore::ResourceError::operator CFStreamError): Modified based on CFErrorRef changes.
16880
16881 2007-07-13  Antti Koivisto  <antti@apple.com>
16882
16883         Reviewed by Adele.
16884         
16885         Fix <rdar://problem/5192256>
16886         click() in onchange handler causes another change event (causes hang at http://forums.whirlpool.net.au/)
16887         
16888         Guard against generating a simulated event from within a simulated event in the same node. Try to
16889         match Firefox behavior.
16890
16891         * dom/EventTargetNode.cpp:
16892         (WebCore::EventTargetNode::dispatchSimulatedMouseEvent):
16893         (WebCore::EventTargetNode::dispatchSimulatedClick):
16894         * dom/Node.cpp:
16895         (WebCore::Node::Node):
16896         * dom/Node.h:
16897
16898 2007-07-13  Antti Koivisto  <antti@apple.com>
16899
16900         Reviewed by Darin.
16901         
16902         Fix <rdar://problem/5333387>
16903         Combination of selection and click() on checkbox crashes
16904         
16905         Ensure there is no pending style update before doing synchronous paint. Under certain
16906         circumstances this ends up doing style recalc in middle of paint() which may
16907         for example tear down the rendering tree being painted, with bad results.
16908
16909         * dom/ContainerNode.cpp:
16910         (WebCore::ContainerNode::setActive):
16911
16912 2007-07-13  Antti Koivisto  <antti@apple.com>
16913
16914         Reviewed by Adele.
16915         
16916         Fix <rdar://problem/5333365>
16917         Calling click() is very slow
16918         
16919         There is a 100ms delay in ContainerNode::setActive() to do an activation effect. It is used for
16920         simulated mouse activations (using keyboard for example). However, it shouldn't be done when calling from javascript 
16921         (through click() interface) since it hangs script execution.
16922
16923         * html/HTMLElement.cpp:
16924         (WebCore::HTMLElement::click):
16925
16926 2007-07-13  Mitz Pettel  <mitz@webkit.org>
16927
16928         Reviewed by Dave Hyatt.
16929
16930         - fix http://bugs.webkit.org/show_bug.cgi?id=13873
16931           Incomplete repaint of replaced element's box shadow
16932
16933         Tests: fast/repaint/box-shadow-h.html
16934                fast/repaint/box-shadow-v.html
16935
16936         * rendering/RenderHTMLCanvas.cpp:
16937         (WebCore::RenderHTMLCanvas::layout): Added a call to adjustOverflowForBoxShadow().
16938         * rendering/RenderImage.cpp:
16939         (WebCore::RenderImage::layout): Ditto.
16940         * rendering/RenderPartObject.cpp:
16941         (WebCore::RenderPartObject::layout): Ditto.
16942         * rendering/RenderReplaced.cpp:
16943         (WebCore::RenderReplaced::RenderReplaced): Initialize m_hasOverflow.
16944         (WebCore::RenderReplaced::~RenderReplaced): Added. Removes this object from the
16945         overflow rect map if it has overflow.
16946         (WebCore::RenderReplaced::shouldPaint): Account for overflow.
16947         (WebCore::RenderReplaced::adjustOverflowForBoxShadow): Added. Creates or
16948         removes an entry for this object in the global overflow rect map.
16949         (WebCore::RenderReplaced::overflowHeight): Added.
16950         (WebCore::RenderReplaced::overflowWidth): Added.
16951         (WebCore::RenderReplaced::overflowLeft): Added.
16952         (WebCore::RenderReplaced::overflowTop): Added.
16953         (WebCore::RenderReplaced::overflowRect): Added.
16954         * rendering/RenderReplaced.h:
16955
16956 2007-07-13  Mitz Pettel  <mitz@webkit.org>
16957
16958         Reviewed by Dave Hyatt.
16959
16960         - fix http://bugs.webkit.org/show_bug.cgi?id=14395
16961           When a <p> is inside <li> two <BR>s are rendered
16962
16963         Test: fast/lists/marker-before-empty-inline.html
16964
16965         * rendering/RenderBlock.h:
16966         * rendering/RenderListItem.cpp:
16967         (WebCore::getParentOfFirstLineBox): Changed to skip empty inline flows that
16968         do not actually generate any line boxes. Limited the nested lists quirk to
16969         the case where the list is a child of the list item, to match Firefox.
16970         * rendering/bidi.cpp:
16971         (WebCore::requiresLineBox): Added. Factored out of skipWhitespace.
16972         (WebCore::RenderBlock::generatesLineBoxesForInlineChild): Added. Checkes
16973         whether the child or any of its siblings following it will generate a line
16974         box in the flow.
16975         (WebCore::RenderBlock::skipWhitespace):
16976
16977 2007-07-13  Holger Hans Peter Freyther  <zecke@selfish.org>
16978
16979         Reviewed by Alexey.
16980
16981         Move HTTP methods to parse Content-Type from xmlhttprequest.cpp
16982         which is LGPL to HTTPParsers.cpp. As both files were written by the
16983         same author and the advice to move them came from him I think this move
16984         is what is meant to be done.
16985
16986         Move filenameFromHTTPContentDisposition to HTTPParsers as well. This parse
16987         function uses Vector<String>::split and doesn't honor quoting. This needs
16988         to be fixed in later versions.
16989
16990         http://bugs.webkit.org/show_bug.cgi?id=5954 and http://bugs.webkit.org/show_bug.cgi?id=14059
16991         benefit from this change.
16992
16993         * platform/network/HTTPParsers.cpp:
16994         (WebCore::filenameFromHTTPContentDisposition):
16995         (WebCore::extractMIMETypeFromMediaType):
16996         (WebCore::extractCharsetFromMediaType):
16997         * platform/network/HTTPParsers.h:
16998         * platform/network/cf/ResourceResponseCFNet.cpp:
16999         * xml/xmlhttprequest.cpp:
17000         (WebCore::XMLHttpRequest::responseMIMEType):
17001         (WebCore::XMLHttpRequest::didReceiveResponse):
17002
17003 2007-07-13  Mark Rowe  <mrowe@apple.com>
17004
17005         Reviewed by Mitz.
17006
17007         Build fix.  Stub out ChromeClientGdk::print and SVGEmptyChromeClient::print.
17008
17009         * platform/gdk/ChromeClientGdk.h:
17010         * platform/gdk/TemporaryLinkStubs.cpp:
17011         (ChromeClientGdk::print):
17012         * platform/graphics/svg/SVGImageEmptyClients.h:
17013         (WebCore::SVGEmptyChromeClient::print):
17014
17015 2007-07-12  Alice Liu  <alice.liu@apple.com>
17016
17017         Reviewed by Maciej and Steve.
17018
17019         fixed <rdar://4982432> window.print() needs to be implemented
17020
17021         * bridge/win/FrameWin.cpp:
17022         (WebCore::Frame::print):
17023         * page/Chrome.cpp:
17024         (WebCore::Chrome::print):
17025         * page/Chrome.h:
17026         * page/ChromeClient.h:
17027         * platform/win/TemporaryLinkStubs.cpp:
17028
17029 2007-07-11  Justin Garcia  <justin.garcia@apple.com>
17030
17031         Reviewed by Harrison.
17032         
17033         <rdar://problem/5300379> Mail hung on option-delete
17034         
17035         We were starting backward iteration at [container, 0] and
17036         emitting for container over and over.
17037
17038         * editing/TextIterator.cpp:
17039         (WebCore::SimplifiedBackwardsTextIterator::advance): Don't 
17040         emit characters for a node if we're starting iteration at 
17041         [container, 0].  Don't emit characters for exiting containers
17042         if we've already done so.
17043
17044 2007-07-12  Kevin Decker  <kdecker@apple.com>
17045
17046         Reviewed by Mark Rowe.
17047
17048         <rdar://problem/5039463> find a good gray that works well for full frame plug-ins; consistent look for plugins
17049
17050         * loader/PluginDocument.cpp:
17051         (WebCore::PluginTokenizer::createDocumentStructure): Changed values to a darker gray, per request from the HI team.
17052
17053 2007-07-11  Sam Weinig  <sam@webkit.org>
17054
17055         Reviewed by Maciej.
17056
17057         Patch for <rdar://problem/5329841>
17058         Calling window.closed on a closed window causes Safari to crash
17059
17060         - Replaces the Frame member variable in KJS::Window for more appropriate DOMWindow
17061         - Adds additional new null checks as necessary
17062         - Removes bogus toBoolean method
17063         - Removes unused scheduleClose method
17064
17065         Test: fast/dom/Window/window-closed-crash.html
17066
17067         * bindings/js/JSCustomXPathNSResolver.cpp:
17068         (WebCore::JSCustomXPathNSResolver::create):
17069         * bindings/js/JSDOMWindowCustom.cpp:
17070         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
17071         (WebCore::JSDOMWindow::customPut):
17072         * bindings/js/JSXMLHttpRequest.cpp:
17073         (KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction):
17074         * bindings/js/kjs_events.cpp:
17075         (WebCore::JSAbstractEventListener::handleEvent):
17076         (WebCore::JSLazyEventListener::parseCode):
17077         * bindings/js/kjs_window.cpp:
17078         (KJS::Window::Window):
17079         (KJS::Window::impl):
17080         (KJS::Window::interpreter):
17081         (KJS::Window::location):
17082         (KJS::Window::find):
17083         (KJS::allowPopUp):
17084         (KJS::createWindow):
17085         (KJS::canShowModalDialog):
17086         (KJS::canShowModalDialogNow):
17087         (KJS::showModalDialog):
17088         (KJS::Window::getValueProperty):
17089         (KJS::Window::childFrameGetter):
17090         (KJS::Window::indexGetter):
17091         (KJS::Window::namedItemGetter):
17092         (KJS::Window::getOwnPropertySlot):
17093         (KJS::Window::put):
17094         (KJS::Window::isSafeScript):
17095         (KJS::Window::setListener):
17096         (KJS::Window::getListener):
17097         (KJS::Window::clear):
17098         (KJS::WindowFunc::callAsFunction):
17099         (KJS::Window::updateLayout):
17100         (KJS::ScheduledAction::execute):
17101         (KJS::Window::disconnectFrame):
17102         (KJS::Location::put):
17103         (KJS::LocationFunc::callAsFunction):
17104         * bindings/js/kjs_window.h:
17105         * page/mac/WebCoreFrameBridge.mm:
17106         (updateRenderingForBindings):
17107
17108 2007-07-12  Mark Rowe  <mrowe@apple.com>
17109
17110         Reviewed by Ada.
17111
17112         <rdar://problem/5329877> REGRESSION: Document::setTransformSource leaks an xmlDocPtr if called more than once per document
17113
17114         * dom/Document.cpp:
17115         (WebCore::Document::setTransformSource): Free any existing m_transformSource before overwriting it, rather than simply leaking it.
17116         * dom/Document.h:
17117
17118 2007-07-12  Holger Hans Peter Freyther  <zecke@selfish.org>
17119
17120         Reviewed by Mark Rowe.
17121
17122         Fix compilation of the CURL backend after the removing of accessors from ResourceHandle in r24202
17123
17124         * platform/network/curl/ResourceHandleManager.cpp:
17125         (WebCore::ResourceHandleManager::setupPOST):
17126         (WebCore::ResourceHandleManager::startJob):
17127
17128 2007-07-12  Mark Rowe  <mrowe@apple.com>
17129
17130         Reviewed by Darin.
17131
17132         <rdar://problem/5327189> Logic error in DeprecatedString::to{,U}Int{,64} can lead to reading past end of buffer
17133
17134         The fix for reading past the end of the buffer is to verify we are not at the end of the string before checking
17135         for a leading '+' character.  Rather than fixing the logic error in four nearly-identical functions I chose to
17136         extract the common functionality into the toIntegralType helper function which the four functions call through to.
17137
17138         * platform/DeprecatedString.cpp:
17139         (WebCore::isCharacterAllowedInBase):
17140         (WebCore::toIntegralType):
17141         (WebCore::DeprecatedString::toInt):
17142         (WebCore::DeprecatedString::toInt64):
17143         (WebCore::DeprecatedString::toUInt):
17144         (WebCore::DeprecatedString::toUInt64):
17145
17146 2007-07-12  George Staikos  <staikos@kde.org>
17147
17148         Reviewed by Alexey.
17149
17150         Remove unused variables and fix rendering of comoboxes.
17151
17152         * platform/graphics/qt/ImageQt.cpp:
17153         (WebCore::BitmapImage::draw):
17154         * platform/qt/RenderThemeQt.cpp:
17155         (WebCore::RenderThemeQt::paintMenuList):
17156
17157 2007-07-11  Oliver Hunt  <oliver@apple.com>
17158
17159         Reviewed by Maciej
17160
17161         Fix for <rdar://problem/5329712> GMail crash when trying to compose new message
17162
17163         * platform/win/FontDataWin.cpp:
17164         (WebCore::FontData::containsCharacters):
17165
17166 2007-07-11  Alexey Proskuryakov  <ap@webkit.org>
17167
17168         Reviewed by Darin.
17169
17170         http://bugs.webkit.org/show_bug.cgi?id=14584
17171         XMLHttpRequest treats null login/password incorrectly
17172
17173         Test: http/tests/xmlhttprequest/null-auth.php
17174
17175         * xml/xmlhttprequest.cpp:
17176         (WebCore::XMLHttpRequest::open):
17177         * xml/xmlhttprequest.h:
17178         Split the open() method into three to distinguish between missing and null credentials.
17179
17180         * bindings/js/JSXMLHttpRequest.cpp:
17181         (KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction): Call the appropriate open().
17182
17183 2007-07-11  Oliver Hunt  <oliver@apple.com>
17184
17185         Build fix for windows
17186
17187         * page/Frame.cpp:
17188         (WebCore::Frame::firstRectForRange):
17189
17190 2007-07-11  Oliver Hunt  <oliver@apple.com>
17191
17192         Reviewed by Maciej.
17193
17194         Fix <rdar://problem/5329481> Character range rect code for IME support needs to be crossplatform
17195
17196         Move -[WebCoreFrameBridge firstRectForDOMRange:] to Frame::firstRectForRange
17197
17198         * page/Frame.cpp:
17199         (WebCore::Frame::firstRectForRange):
17200         * page/Frame.h:
17201         * page/mac/WebCoreFrameBridge.mm:
17202         (-[WebCoreFrameBridge firstRectForDOMRange:]):
17203
17204 2007-07-11  Steve Falkenburg  <sfalken@apple.com>
17205
17206         Static analysis build fix.
17207         
17208         Only specify /analyze (PREfast) if it is available.
17209         Prevents entire project from rebuilding each time.        
17210
17211         Reviewed by Hyatt.
17212
17213         * WebCore.vcproj/WebCore.vcproj:
17214
17215 2007-07-11  George Staikos  <staikos@kde.org>
17216
17217         Reviewed by Olliej.
17218
17219         Make comboboxes update when the current item is changed.
17220
17221         * platform/qt/PopupMenuQt.cpp:
17222         (WebCore::PopupMenu::updateFromElement):
17223         * platform/qt/QWebPopup.cpp:
17224         (WebCore::QWebPopup::activeChanged):
17225
17226 2007-07-11  George Staikos  <staikos@kde.org>
17227
17228         Reviewed by Brady.
17229
17230         Add a destructor to cleanup the SQL handle.
17231
17232         * loader/icon/SQLDatabase.h:
17233         (WebCore::SQLDatabase::~SQLDatabase):
17234
17235 2007-07-11  Holger Hans Peter Freyther  <zecke@selfish.org>
17236
17237         Reviewed by Darin.
17238
17239         As of http://bugs.webkit.org/show_bug.cgi?id=14527 move the
17240         WebCore/ForwardingHeader/JavaScriptCore to JavaScriptCore
17241
17242         * ForwardingHeaders/JavaScriptCore: Removed.
17243         * ForwardingHeaders/JavaScriptCore/APICast.h: Removed.
17244         * ForwardingHeaders/JavaScriptCore/JSBase.h: Removed.
17245         * ForwardingHeaders/JavaScriptCore/JSContextRef.h: Removed.
17246         * ForwardingHeaders/JavaScriptCore/JSLock.h: Removed.
17247         * ForwardingHeaders/JavaScriptCore/JSObjectRef.h: Removed.
17248         * ForwardingHeaders/JavaScriptCore/JSStringRef.h: Removed.
17249         * ForwardingHeaders/JavaScriptCore/JSStringRefCF.h: Removed.
17250         * ForwardingHeaders/JavaScriptCore/JSValueRef.h: Removed.
17251         * ForwardingHeaders/JavaScriptCore/JavaScriptCore.h: Removed.
17252
17253 2007-07-11  Anders Carlsson  <andersca@apple.com>
17254
17255         Fix build.
17256         
17257         * platform/network/cf/ResourceHandleCFNet.cpp:
17258         (WebCore::willSendRequest):
17259         (WebCore::didReceiveResponse):
17260         (WebCore::didReceiveData):
17261         (WebCore::didFinishLoading):
17262         (WebCore::didFail):
17263         (WebCore::didReceiveChallenge):
17264
17265 2007-07-11  George Staikos  <staikos@kde.org>
17266
17267         Repair the build.
17268
17269         * platform/network/qt/ResourceHandleQt.cpp:
17270         (WebCore::ResourceHandle::start):
17271
17272 2007-07-11  Adele Peterson  <adele@apple.com>
17273
17274         Reviewed by Darin.
17275
17276         Fix for <rdar://problem/5230188> REGRESSION: Active/inactive marked text is not distinguished in textfields and textareas
17277
17278         We were previously trying to leave room for 1px of space between the text and the underline.
17279         This change removes that requirement so that if we don't have room for the extra space, we still draw the thick underline
17280         touching the text.
17281
17282         * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paintMarkedTextUnderline):
17283
17284 2007-07-11  Anders Carlsson  <andersca@apple.com>
17285
17286         Reviewed by Darin and Geoff.
17287
17288         <rdar://problem/5313508>
17289         REGRESSION (Leopard): http/tests/xmlhttprequest/basic-auth.html hangs
17290         
17291         Leopard Foundation now ignores credentials passed in as part of the URL so we need to pass them ourselves.
17292         
17293         For the asynchronous case, we simply keep track of the URL and if it has a user name and password, we
17294         pass those if we're asked to authenticate.
17295                 
17296         For the synchronous case, implement a new connection delegate and run it in a separate mode so 
17297         no other sources will fire.
17298
17299         * platform/network/mac/ResourceHandleMac.mm:
17300         (WebCore::ResourceHandle::loadResourceSynchronously):
17301         (-[WebCoreResourceHandleAsDelegate dealloc]):
17302         (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
17303         (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
17304         (-[WebCoreSynchronousLoader _isDone]):
17305         (-[WebCoreSynchronousLoader dealloc]):
17306         (-[WebCoreSynchronousLoader connection:willSendRequest:redirectResponse:]):
17307         (-[WebCoreSynchronousLoader connection:didReceiveAuthenticationChallenge:]):
17308         (-[WebCoreSynchronousLoader connection:didReceiveResponse:]):
17309         (-[WebCoreSynchronousLoader connection:didReceiveData:]):
17310         (-[WebCoreSynchronousLoader connectionDidFinishLoading:]):
17311         (-[WebCoreSynchronousLoader connection:didFailWithError:]):
17312         (-[WebCoreSynchronousLoader _data]):
17313         (-[WebCoreSynchronousLoader _response]):
17314         (-[WebCoreSynchronousLoader _error]):
17315         (+[WebCoreSynchronousLoader loadRequest:returningResponse:error:]):
17316
17317 2007-07-11  Darin Adler  <darin@apple.com>
17318
17319         Reviewed by Sam Weinig.
17320
17321         - fix <rdar://problem/5315265> REGRESSION: Leopard launch time -
17322           there are about 190 stats of icudt36b files during launch
17323
17324         * platform/TextEncodingRegistry.cpp: (WebCore::atomicCanonicalTextEncodingName):
17325         Add a special case for the empty string so we don't load the extended text
17326         encodings just so we can return 0 for that case.
17327
17328 2007-07-11  Anders Carlsson  <andersca@apple.com>
17329
17330         Reviewed by Darin.
17331
17332         Remove a bunch of unneeded accessors from ResourceHandle.
17333         
17334         * loader/icon/IconLoader.cpp:
17335         (WebCore::IconLoader::didReceiveResponse):
17336         (WebCore::IconLoader::didFail):
17337         (WebCore::IconLoader::didFinishLoading):
17338         * platform/network/ResourceHandle.cpp:
17339         * platform/network/ResourceHandle.h:
17340
17341 2007-07-09  Justin Garcia  <justin.garcia@apple.com>
17342
17343         Reviewed by Darin.
17344         
17345         <rdar://problem/5234383> REGRESSION: Sentence breaker method returning entire document length
17346         
17347         The functions for moving the caret to the next/previous sentence boundary
17348         were in many cases moving to the beginning/end of the document.  The functions that 
17349         should move the caret to an equivalent position in the next/previous sentence behaved
17350         like the aforementioned functions ought to.  Put the code from the second two functions
17351         in the first and made sure that the second two are properly FIXMEd.  They're rarely 
17352         used (filed 5323691).
17353         
17354         * editing/SelectionController.cpp:
17355         (WebCore::SelectionController::modify): Added an option for sentenceBoundary granularity,
17356         so that we can test the functions that were broken from JS.
17357         * editing/visible_units.cpp:
17358         (WebCore::startOfSentence): Removed the FIXME about 5234383.
17359         (WebCore::endSentenceBoundary): Make this function do what nextSentencePositionBoundary
17360         current does.
17361         (WebCore::endOfSentence): Removed the FIXME about 5234383.
17362         (WebCore::previousSentencePosition): Removed an incorrect FIXME.
17363         (WebCore::nextSentencePositionBoundary): Tweaked FIXME.  This function is
17364         identical, not close to endSentenceBoundary.
17365         (WebCore::nextSentencePosition): Removed an incorrect FIXME.
17366
17367 2007-07-11  Rob Buis  <buis@kde.org>
17368
17369         Reviewed by Darin.
17370
17371         http://bugs.webkit.org/show_bug.cgi?id=14453
17372         REGRESSION: www.nzherald.co.nz almost all the formating is gone
17373  
17374         Be less strict for the hex color definition.
17375
17376         * css/CSSGrammar.y:
17377         * css/cssparser.cpp:
17378         (WebCore::CSSParser::lex):
17379         (WebCore::CSSParser::text):
17380         * css/tokenizer.flex:
17381
17382 2007-07-11  Rob Buis  <buis@kde.org>
17383
17384         Reviewed by Oliver.
17385
17386         Forgot to commit this as part of commit r24146. Now we are sure
17387         createElement creates elements in the xhtml namespace only.
17388
17389         * ksvg2/svg/SVGDocument.cpp:
17390         * ksvg2/svg/SVGDocument.h:
17391
17392 2007-07-10  Sam Weinig  <sam@webkit.org>
17393
17394         Reviewed by Oliver.
17395
17396         Move more attributes from the pure JS bindings in KJS::Window
17397         to the implementation in DOMWindow and autogenerate the new bindings
17398
17399         Test: fast/dom/Window/get-set-properties.html
17400
17401         * bindings/js/JSDOMWindowCustom.cpp:
17402         (WebCore::JSDOMWindow::customGetOwnPropertySlot): Change to use propHashTable in
17403         JSDOMWindow instead of KJS::Window
17404         * bindings/js/kjs_window.cpp:
17405         (KJS::Window::getValueProperty):
17406         (KJS::Window::put):
17407         * bindings/js/kjs_window.h:
17408         (KJS::Window::):
17409         * bindings/scripts/CodeGeneratorJS.pm: Cleanup getValueProperty and put generation
17410         to reduce code duplication. 
17411         * page/DOMWindow.cpp:
17412         (WebCore::DOMWindow::closed):
17413         (WebCore::DOMWindow::length):
17414         (WebCore::DOMWindow::name):
17415         (WebCore::DOMWindow::setName):
17416         (WebCore::DOMWindow::status):
17417         (WebCore::DOMWindow::setStatus):
17418         (WebCore::DOMWindow::defaultStatus):
17419         (WebCore::DOMWindow::setDefaultStatus):
17420         * page/DOMWindow.h:
17421         (WebCore::DOMWindow::defaultstatus):
17422         (WebCore::DOMWindow::setDefaultstatus):
17423         * page/DOMWindow.idl:
17424
17425 2007-07-10  Sam Weinig  <sam@webkit.org>
17426
17427         Reviewed by Geoff.
17428
17429         Fix for <rdar://problem/5326791> XSS vulnerability: ability to set window.defaultStatus,
17430         window.defaultstatus and window.status cross domains
17431
17432         Test: http/tests/security/cross-frame-access-put.html
17433
17434         * bindings/js/kjs_window.cpp:
17435         (KJS::Window::put): Adds isSafeScript check for defaultStatus,
17436         defaultstatus and status cases.
17437
17438 2007-07-10  Sam Weinig  <sam@webkit.org>
17439
17440         Fix build for BuildBot.
17441
17442         * page/DOMWindow.cpp:
17443         (WebCore::DOMWindow::outerHeight):
17444         (WebCore::DOMWindow::outerWidth):
17445         (WebCore::DOMWindow::screenX):
17446         (WebCore::DOMWindow::screenY):
17447
17448 2007-07-10  Brady Eidson  <beidson@apple.com>
17449
17450         Reviewed by Sam
17451
17452         <rdar://problem/5326653> - REGRESSION: [WebBackForwardList forwardListCount] might return incorrect result
17453
17454         No layout test because this is an API issue that can't be tested in DRT or the browser
17455
17456         * history/BackForwardList.cpp:
17457         (WebCore::BackForwardList::forwardListCount): If the index is NoCurrentItemIndex, return 0
17458
17459 2007-07-10  Sam Weinig  <sam@webkit.org>
17460
17461         Reviewed by Darin.
17462
17463         Move more readonly attributes from pure JS bindings in KJS::Window
17464         to the implementation in DOMWindow and autogenerate the new bindings.
17465
17466         * bindings/js/kjs_window.cpp:
17467         (KJS::Window::getValueProperty):  Sort the hashmap comment into categories
17468         to make further migration easier.
17469         * bindings/js/kjs_window.h: Sort the enum into categories to make further
17470         migration easier.
17471         (KJS::Window::):
17472         * page/DOMWindow.cpp: Add new methods.
17473         (WebCore::DOMWindow::focus):
17474         (WebCore::DOMWindow::blur):
17475         (WebCore::DOMWindow::offscreenBuffering):
17476         (WebCore::DOMWindow::outerHeight):
17477         (WebCore::DOMWindow::outerWidth):
17478         (WebCore::DOMWindow::innerHeight):
17479         (WebCore::DOMWindow::innerWidth):
17480         (WebCore::DOMWindow::screenX):
17481         (WebCore::DOMWindow::screenY):
17482         (WebCore::DOMWindow::scrollX):
17483         (WebCore::DOMWindow::scrollY):
17484         (WebCore::DOMWindow::getComputedStyle):
17485         (WebCore::DOMWindow::getMatchedCSSRules): Add null Document assertion.
17486         (WebCore::DOMWindow::devicePixelRatio): Add null Frame and Page checks.
17487         * page/DOMWindow.h:
17488         (WebCore::DOMWindow::screenLeft):
17489         (WebCore::DOMWindow::screenTop):
17490         (WebCore::DOMWindow::pageXOffset):
17491         (WebCore::DOMWindow::pageYOffset):
17492         * page/DOMWindow.idl:
17493
17494 2007-07-10  Oliver Hunt  <oliver@apple.com>
17495
17496         Reviewed by Maciej.
17497
17498         Fix for <rdar://problem/5326417> Editor::unmarkText needs to be crossplatform
17499
17500         Missed this in earlier patch to make text marking platform independent.
17501
17502         * editing/Editor.cpp:
17503         (WebCore::Editor::unmarkText):
17504            Add platform independent impl
17505         * editing/mac/EditorMac.mm:
17506            Remove the old mac path.
17507
17508 2007-07-10  Geoffrey Garen  <ggaren@apple.com>
17509
17510         Reviewed by Tim Hatcher.
17511
17512         Added a Page counter. This helped me while investigating 
17513         <rdar://problem/5314463> 40MB of WebKit memory still allocated after 
17514         closing large email in Mail
17515
17516         * WebCore.xcodeproj/project.pbxproj:
17517         * page/Page.cpp:
17518         (WebCore::):
17519         (WebCore::PageCounter::~PageCounter):
17520         (WebCore::Page::Page):
17521         (WebCore::Page::~Page):
17522
17523 2007-07-10  Timothy Hatcher  <timothy@apple.com>
17524
17525         Reviewed by Geoff.
17526
17527         <rdar://problem/5326126> InspectorResource holds onto more data than it needs
17528
17529         Reduces the fixed size of InspectorResource from 630 bytes to 224 bytes. Now
17530         selectively pick out parts of the ResourceRequest and ResourceResponse objects
17531         for the info needed and store that directly in InspectorResource.
17532
17533         The ResourceRequest and ResourceResponse objects hold a reference to the original
17534         NSURL object, so almost double the data was being kept around. So the struct size
17535         reduction is just the tip of the ice burg on what this really saves.
17536
17537         In a test of 100,000 XMLHTTPRequests using a 85 byte long data URL, I see ~21 MB less
17538         RSIZE compared to Safari running without this change.
17539
17540         * page/InspectorController.cpp:
17541         (WebCore::InspectorResource::InspectorResource):
17542         (WebCore::InspectorResource::type):
17543         (WebCore::addSourceToFrame):
17544         (WebCore::scriptObjectForRequest):
17545         (WebCore::scriptObjectForResponse):
17546         (WebCore::InspectorController::addScriptResource):
17547         (WebCore::InspectorController::addAndUpdateScriptResource):
17548         (WebCore::updateResourceRequest):
17549         (WebCore::updateResourceResponse):
17550         (WebCore::InspectorController::updateScriptResourceRequest):
17551         (WebCore::InspectorController::updateScriptResourceResponse):
17552         (WebCore::InspectorController::didLoadResourceFromMemoryCache):
17553         (WebCore::InspectorController::identifierForInitialRequest):
17554         (WebCore::InspectorController::willSendRequest):
17555         (WebCore::InspectorController::didReceiveResponse):
17556         (WebCore::InspectorController::didFailLoading):
17557         * page/InspectorController.h:
17558
17559 2007-07-10  Darin Adler  <darin@apple.com>
17560
17561         Reviewed by Brady.
17562
17563         - fix crash introduced by my patch for 5318732, only seen in release builds
17564
17565         * page/Page.cpp: (WebCore::Page::~Page): Added a missing null check.
17566
17567 2007-07-10  Andrea Cavalli  <amc82@cam.ac.uk>
17568
17569         Reviewed by George Staikos.
17570
17571         Fixed render theme for text field.
17572
17573         * platform/qt/RenderThemeQt.cpp:
17574         (WebCore::RenderThemeQt::paintTextField):
17575
17576 2007-07-10  Qing Zhao  <qing@staikos.net>
17577
17578         Reviewed by George Staikos.
17579
17580         Draw focus rings for nodes that are not rendered by QStyle.
17581
17582         * platform/graphics/qt/GraphicsContextQt.cpp:
17583         (WebCore::focusRingColor):
17584         (WebCore::GraphicsContext::drawFocusRing):
17585         * platform/qt/RenderThemeQt.cpp:
17586         (WebCore::RenderThemeQt::supportsFocusRing):
17587         (WebCore::RenderThemeQt::supportsFocus):
17588
17589 2007-07-10  Nikolas Zimmermann  <zimmermann@kde.org>
17590
17591         Reviewed by Geoff.
17592
17593         Fix 'unsigned int' overflow in CodeGeneratorJS.pm.
17594         This fixes hashing of "SVG_FEBLEND_MODE_NORMAL". Its hashvalue exceeded 2^32, which
17595         is no problem in perl but in the cpp code. Emulate C/C++ behaviour by using "% 2^32" in
17596         the perl code. Testcase available in feature-branch soon (js-svg-constructors.svg).
17597
17598         * bindings/scripts/CodeGeneratorJS.pm:
17599
17600 2007-07-10  Geoffrey Garen  <ggaren@apple.com>
17601
17602         Reviewed by Maciej Stachowiak.
17603
17604         Disabled Arena recycling in RenderArena. PLT shows no regression 
17605         (possibly a small speedup), and this can reduce allocated memory in 
17606         WebKit clients by about 120K (4K per Arena * 30 Arenas).
17607         
17608         I happened upon this optimization while investigating 
17609         <rdar://problem/5314463> WebKit hangs on to 40MB RAM after closing 
17610         large email in Mail (appears to be render tree arena allocator), 
17611         although I don't think it will come close to fixing that bug 
17612         completely.
17613
17614         * rendering/RenderArena.cpp:
17615         (WebCore::RenderArena::~RenderArena): Use FinishArenaPool, which frees
17616         the ArenaPool's Arenas immediately.
17617
17618 2007-07-10  Mitz Pettel  <mitz@webkit.org>
17619
17620         Reviewed by Hyatt.
17621
17622         - fix http://bugs.webkit.org/show_bug.cgi?id=14449
17623           REGRESSION (r14345-r14375): Absolutely positioned image does not scale to containing element's height
17624
17625         Test: fast/replaced/absolute-position-percentage-height.html
17626
17627         * rendering/RenderBox.cpp:
17628         (WebCore::RenderBox::calcReplacedHeightUsing): For positioned elements, evaluate
17629         the percentage with respect to the container's final height.
17630
17631 2007-07-10  Brady Eidson  <beidson@apple.com>
17632
17633         Reviewed by Mark Rowe
17634
17635         Add 64-bit integer converters to our string classes for future work
17636
17637         * platform/DeprecatedString.cpp:
17638         (WebCore::DeprecatedString::toInt64):
17639         (WebCore::DeprecatedString::toUInt64):
17640         * platform/DeprecatedString.h:
17641
17642         * platform/PlatformString.h:
17643         * platform/String.cpp:
17644         (WebCore::String::toInt64):
17645         (WebCore::String::toUInt64):
17646
17647         * platform/StringImpl.cpp:
17648         (WebCore::StringImpl::toInt64):
17649         (WebCore::StringImpl::toUInt64):
17650         * platform/StringImpl.h:
17651
17652 2007-07-10  Darin Adler  <darin@apple.com>
17653
17654         Reviewed by Anders.
17655
17656         - fix <rdar://problem/5318732> REGRESSION: In Mail, a crash occurs when attempting to send
17657           a HTML based message (nytimes.com, washingtonpost.com, latimes.com)
17658
17659         Did an audit of calls to get the inspector and most other uses of Page* and added null
17660         checks since Frame* can outlast its Page*.
17661
17662         * loader/FrameLoader.cpp:
17663         (WebCore::FrameLoader::createWindow): Added null check.
17664         (WebCore::FrameLoader::loadSubframe): Ditto.
17665         (WebCore::FrameLoader::load): Ditto.
17666         (WebCore::FrameLoader::transitionToCommitted): Ditto.
17667         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Ditto.
17668         (WebCore::FrameLoader::continueLoadAfterWillSubmitForm): Ditto.
17669         (WebCore::FrameLoader::addExtraFieldsToRequest): Ditto.
17670         (WebCore::FrameLoader::loadResourceSynchronously): Ditto.
17671         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): Ditto.
17672         (WebCore::FrameLoader::requestFromDelegate): Ditto.
17673         (WebCore::FrameLoader::canGoBackOrForward): Ditto.
17674         (WebCore::FrameLoader::getHistoryLength): Ditto.
17675         (WebCore::FrameLoader::historyURL): Ditto.
17676         (WebCore::FrameLoader::cachePageForHistoryItem): Ditto.
17677         (WebCore::FrameLoader::addBackForwardItemClippedAtTarget): Ditto.
17678         (WebCore::FrameLoader::goToItem): Ditto.
17679         (WebCore::FrameLoader::dispatchWindowObjectAvailable): Ditto.
17680         (WebCore::FrameLoader::dispatchDidCommitLoad): Ditto.
17681         (WebCore::FrameLoader::dispatchAssignIdentifierToInitialRequest): Ditto.
17682         (WebCore::FrameLoader::dispatchWillSendRequest): Ditto.
17683         (WebCore::FrameLoader::dispatchDidReceiveResponse): Ditto.
17684         (WebCore::FrameLoader::dispatchDidReceiveContentLength): Ditto.
17685         (WebCore::FrameLoader::dispatchDidFinishLoading): Ditto.
17686         (WebCore::FrameLoader::dispatchDidLoadResourceFromMemoryCache): Ditto.
17687
17688         * page/ContextMenuController.h:
17689         * page/ContextMenuController.cpp:
17690         (WebCore::ContextMenuController::ContextMenuController): Removed unneeded and
17691         unused Page* parameter.
17692         (WebCore::openNewWindow): Added null check.
17693         (WebCore::ContextMenuController::contextMenuItemSelected): Ditto.
17694
17695         * page/InspectorController.h:
17696         (WebCore::InspectorController::pageDestroyed): Added. Since this object is
17697         owned by the Page and has a back-pointer to it, it needs an explicit disconnect.
17698         There's already a higher-level one, but this is more reliable than that.
17699         * page/InspectorController.cpp:
17700         (WebCore::InspectorController::windowScriptObjectAvailable): Added null check.
17701         (WebCore::InspectorController::windowUnloading): Ditto.
17702
17703         * page/Page.cpp:
17704         (WebCore::Page::Page): Updated for change in parameters of ContextMenuController 
17705         constructor.
17706         (WebCore::Page::~Page): Added call to InspectorController pageDestroyed().
17707
17708         * page/Chrome.cpp: Updated includes.
17709         * page/DragController.cpp: Ditto.
17710
17711 2007-07-10  Adam Treat  <adam@staikos.net>
17712
17713         Reviewed by George Staikos.
17714
17715         Bring scroll wheel out of Ludicrous Speed.
17716
17717         * platform/qt/WheelEventQt.cpp:
17718         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
17719
17720 2007-07-09  Geoffrey Garen  <ggaren@apple.com>
17721
17722         Reviewed by Maciej Stachowiak.
17723
17724         Fixed http://bugs.webkit.org/show_bug.cgi?id=13241 | <rdar://problem/5126396>
17725         onload fires before content is finished loading (woot.com)
17726         
17727         * dom/Document.cpp:
17728         (WebCore::Document::close): Try to go through the normal "Am I done loading?"
17729         machinery before dispatching the load event. As the comment indicates, 
17730         we can't do this in all cases, so the fix isn't perfect. However, a perfect 
17731         solution would require much riskier sweeping changes to the loader, which 
17732         are best left for later, I think.
17733
17734         * xml/XSLTProcessor.cpp:
17735         (WebCore::XSLTProcessor::createDocumentFromSource): Removed a slightly
17736         worse solution to the same problem.
17737
17738 2007-07-10  Rob Buis  <buis@kde.org>
17739
17740         Reviewed by Maciej.
17741
17742         http://bugs.webkit.org/show_bug.cgi?id=8007
17743         createElement() and XHTML (A dynamically created table not rendered as such)
17744
17745         Follow the HTML5 rules of making the name lowercase and then
17746         creating the element in the xhtml namespace.
17747
17748         * dom/Document.cpp:
17749         (WebCore::Document::createElement):
17750         * dom/Document.h:
17751         * html/HTMLDocument.cpp:
17752         * html/HTMLDocument.h:
17753
17754 2007-07-09  Qing Zhao  <qing@staikos.net>
17755
17756         Reviewed by George Staikos.
17757
17758         Add qt context menu support.
17759
17760         * WebCore.pro:
17761         * platform/ContextMenu.h:
17762         * platform/ContextMenuItem.h:
17763         (WebCore::PlatformMenuItemDescriptionType::PlatformMenuItemDescriptionType):
17764         * platform/qt/ContextMenuItemQt.cpp:
17765         (WebCore::ContextMenuItem::ContextMenuItem):
17766         (WebCore::ContextMenuItem::~ContextMenuItem):
17767         (WebCore::ContextMenuItem::releasePlatformDescription):
17768         (WebCore::ContextMenuItem::type):
17769         (WebCore::ContextMenuItem::setType):
17770         (WebCore::ContextMenuItem::action):
17771         (WebCore::ContextMenuItem::setAction):
17772         (WebCore::ContextMenuItem::title):
17773         (WebCore::ContextMenuItem::setTitle):
17774         (WebCore::ContextMenuItem::platformSubMenu):
17775         (WebCore::ContextMenuItem::setSubMenu):
17776         (WebCore::ContextMenuItem::setChecked):
17777         (WebCore::ContextMenuItem::setEnabled):
17778         (WebCore::ContextMenuItem::enabled):
17779         * platform/qt/ContextMenuQt.cpp:
17780         (WebCore::ContextMenu::ContextMenu):
17781         (WebCore::ContextMenu::~ContextMenu):
17782         (WebCore::ContextMenu::appendItem):
17783         (WebCore::ContextMenu::itemCount):
17784         (WebCore::ContextMenu::insertItem):
17785         (WebCore::ContextMenu::setPlatformDescription):
17786         (WebCore::ContextMenu::platformDescription):
17787
17788 2007-07-09  Anders Carlsson  <andersca@apple.com>
17789
17790         Build fix.
17791         
17792         * plugins/win/PluginViewWin.cpp:
17793         (WebCore::PluginViewWin::performRequest):
17794
17795 2007-07-09  Anders Carlsson  <andersca@apple.com>
17796
17797         Reviewed by Geoff.
17798
17799         Get rid of the node argument in our various script execution functions.
17800         
17801         * bindings/js/kjs_proxy.cpp:
17802         (WebCore::KJSProxy::evaluate):
17803         * bindings/js/kjs_proxy.h:
17804         * bindings/js/kjs_window.cpp:
17805         (KJS::ScheduledAction::execute):
17806         * dom/XMLTokenizer.cpp:
17807         (WebCore::XMLTokenizer::endElementNs):
17808         (WebCore::XMLTokenizer::notifyFinished):
17809         * html/HTMLScriptElement.cpp:
17810         (WebCore::HTMLScriptElement::evaluateScript):
17811         * html/HTMLTokenizer.cpp:
17812         (WebCore::HTMLTokenizer::scriptExecution):
17813         * loader/FrameLoader.cpp:
17814         (WebCore::FrameLoader::changeLocation):
17815         (WebCore::FrameLoader::urlSelected):
17816         (WebCore::FrameLoader::submitForm):
17817         (WebCore::FrameLoader::replaceContentsWithScriptResult):
17818         (WebCore::FrameLoader::executeScript):
17819         * loader/FrameLoader.h:
17820         * page/mac/WebCoreFrameBridge.mm:
17821         (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
17822         (-[WebCoreFrameBridge aeDescByEvaluatingJavaScriptFromString:]):
17823
17824 2007-07-09  Justin Garcia  <justin.garcia@apple.com>
17825
17826         Rolling the fix for 5290534 back in now that 5310404 has been fixed in Mail.
17827
17828         * editing/DeleteSelectionCommand.cpp:
17829         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
17830
17831 2007-07-09  Geoffrey Garen  <ggaren@apple.com>
17832
17833         Reviewed by Anders Carlsson.
17834
17835         A little more FrameLoader cleanup while working on <rdar://problem/5126396>.
17836         
17837         Rename: "checkEmitLoadEvent" => "checkCallImplicitClose" because the function
17838         doesn't emit the load event; it just calls implicitClose.
17839         
17840         Rename: "m_wasLoadEventEmitted" => "m_didCallImplicitClose" because the variable
17841         tracks whether implicitClose was called.
17842
17843         * dom/Document.cpp:
17844         (WebCore::Document::implicitClose): Turned 12 lines of code into 6, adding ASSERT.
17845         * loader/FrameLoader.h: Removed bogus declaration of non-existent emitLoadEvent().
17846
17847 2007-07-09  Justin Garcia  <justin.garcia@apple.com>
17848
17849         Reviewed by John.
17850         
17851         REGRESSION: Crash when deleting table content in Leopard Mail
17852
17853         * editing/DeleteSelectionCommand.cpp:
17854         (WebCore::DeleteSelectionCommand::handleGeneralDelete): Use a RefPtr
17855         for the next node to delete, in case it is destroyed when the
17856         current node is deleted.  In the crash reported in the radar, we
17857         crash because the next node is the div that holds the delete button
17858         and it's destroyed when the node that contains the selection is removed.
17859
17860 2007-07-09  Adam Treat  <adam@staikos.net>
17861
17862         Reviewed by George Staikos.
17863
17864         Convert QWebFrame from a QFrame to a pure QObject to eliminate all
17865         traces of widgets.
17866
17867         * page/qt/EventHandlerQt.cpp:
17868         (WebCore::EventHandler::passSubframeEventToSubframe):
17869         * platform/ScrollView.h:
17870         * platform/Widget.h:
17871         * platform/qt/PlatformScrollBarQt.cpp:
17872         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
17873         (WebCore::PlatformScrollbar::handleMousePressEvent):
17874         (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
17875         * platform/qt/PopupMenuQt.cpp:
17876         (WebCore::PopupMenu::show):
17877         * platform/qt/ScrollViewQt.cpp:
17878         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
17879         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
17880         (WebCore::ScrollView::ScrollViewPrivate::windowClipRect):
17881         (WebCore::ScrollView::updateContents):
17882         (WebCore::ScrollView::update):
17883         (WebCore::ScrollView::geometryChanged):
17884         (WebCore::ScrollView::windowToContents):
17885         (WebCore::ScrollView::contentsToWindow):
17886         (WebCore::ScrollView::convertChildToSelf):
17887         (WebCore::ScrollView::convertSelfToChild):
17888         (WebCore::ScrollView::scrollbarUnderMouse):
17889         (WebCore::ScrollView::addChild):
17890         (WebCore::ScrollView::paint):
17891         * platform/qt/WidgetQt.cpp:
17892         (WebCore::WidgetPrivate::WidgetPrivate):
17893         (WebCore::WidgetPrivate::~WidgetPrivate):
17894         (WebCore::WidgetPrivate::setGeometry):
17895         (WebCore::WidgetPrivate::geometry):
17896         (WebCore::Widget::frameGeometry):
17897         (WebCore::Widget::setFocus):
17898         (WebCore::Widget::setCursor):
17899         (WebCore::Widget::show):
17900         (WebCore::Widget::hide):
17901         (WebCore::Widget::qwebframe):
17902         (WebCore::Widget::setQWebFrame):
17903         (WebCore::Widget::qwidget):
17904         (WebCore::Widget::setQWidget):
17905         (WebCore::Widget::setFrameGeometry):
17906         (WebCore::Widget::isEnabled):
17907         (WebCore::Widget::setEnabled):
17908         (WebCore::Widget::setIsSelected):
17909         (WebCore::Widget::invalidate):
17910         (WebCore::Widget::invalidateRect):
17911         (WebCore::Widget::removeFromParent):
17912         (WebCore::Widget::geometryChanged):
17913         (WebCore::Widget::convertToContainingWindow):
17914         (WebCore::Widget::convertFromContainingWindow):
17915         (WebCore::Widget::convertChildToSelf):
17916         (WebCore::Widget::convertSelfToChild):
17917         (WebCore::Widget::containingWindow):
17918
17919 2007-07-09  Anders Carlsson  <andersca@apple.com>
17920
17921         Reviewed by Oliver.
17922
17923         Add DocumentLoader::isLoadingMainResource.
17924
17925         * WebCore.exp:
17926
17927 2007-07-09  John Sullivan  <sullivan@apple.com>
17928
17929         Reviewed by Darin
17930
17931         * WebCore.exp:
17932         * WebCore.xcodeproj/project.pbxproj:
17933         exported String::createCFString, needed for <rdar://problem/5320208>
17934
17935 2007-07-09  Mitz Pettel  <mitz@webkit.org>
17936
17937         Reviewed by Maciej.
17938
17939         Test case for the bug below, which is http://bugs.webkit.org/show_bug.cgi?id=14207
17940
17941         * manual-tests/flash-unload-tab.html: Added.
17942
17943 2007-07-09  Maciej Stachowiak  <mjs@apple.com>
17944
17945         Reviewed by Oliver.
17946
17947         <rdar://problem/5295734> Repro crash closing tab/window @ maps.google.com in
17948         WTF::HashSet<KJS::RuntimeObjectImp*, WTF::PtrHash<KJS::RuntimeObjectImp*>,
17949         WTF::HashTraits<KJS::RuntimeObjectImp*> >::add + 11
17950         
17951         Automated test case is not possible. Did not bother with manual test this time.
17952
17953         * bindings/js/kjs_dom.cpp:
17954         (WebCore::getRuntimeObject): Check that runtime root isn't null, as well as instance;
17955         this should cover the case where the plugin is already shut down and onunload time.
17956
17957 2007-07-08  Maciej Stachowiak  <mjs@apple.com>
17958
17959         Reviewed by Sam.
17960
17961         - fixed <rdar://problem/5220706> REGRESSION (TOT): repro crash in -[WebView(WebViewInternal) _addObject:forIdentifier:] [14425]
17962         http://bugs.webkit.org/show_bug.cgi?id=14425
17963
17964         * bindings/js/kjs_window.cpp:
17965         (KJS::createWindow): No longer take an immediate argument - always do immediate loads
17966         on a newly created Window. Also, do a load of "" to make sure that the right info makes
17967         it to the app.
17968         (KJS::showModalDialog): Updated for above.
17969         (KJS::WindowFunc::callAsFunction): Updated for above.
17970         * dom/Document.cpp:
17971         (WebCore::Document::shouldBeAllowedToLoadLocalResources): If our URL is about:blank,
17972         we're allowed if our opener is (since the opener must have written the contents).
17973         * loader/FrameLoader.cpp:
17974         (WebCore::FrameLoader::changeLocation): Add a variant which takes a KURL, which it
17975         expects to be pre-completed. This is to avoid completing "" to the opener URL.
17976         (WebCore::FrameLoader::urlSelected): Allow loading empty URLs.
17977         * loader/FrameLoader.h:
17978         
17979         Test case is manual only, since it takes particular app behavior to reproduce:
17980         
17981         * manual-tests/new-window-subresource-crash.html: Added.
17982
17983 2007-07-08  Mitz Pettel  <mitz@webkit.org>
17984
17985         Reviewed by Maciej.
17986
17987         - fix leaks introduced in r24099
17988
17989         * dom/Element.cpp:
17990         (WebCore::Element::~Element): Do not delete the cached computed style here.
17991         (WebCore::Element::detach): Delete the computed style here instead.
17992         (WebCore::Element::computedStyle): Removed a redundant ref() which was
17993         causing the leak. Changed to return 0 if the element is not attached,
17994         because in that case there is currently no way to tell when to delete the computed
17995         style.
17996
17997 2007-07-08  Mitz Pettel  <mitz@webkit.org>
17998
17999         Reviewed by Darin.
18000
18001         - fix http://bugs.webkit.org/show_bug.cgi?id=12384
18002           getComputedStyle with td.style.display='none' reports '' for all properties except display
18003
18004         Test: fast/css/computed-style-without-renderer.html
18005
18006         Implement rich computed style for elements that do not have a renderer.
18007
18008         * css/CSSComputedStyleDeclaration.cpp:
18009         (WebCore::getPositionOffsetValue): Changed to take a RenderStyle instead of
18010         a RenderObject.
18011         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Changed to
18012         use the computed style returned by the node instead of going through the
18013         renderer. Changed properties that compute by measuring the renderer to
18014         fall back on returning the length from the RenderStyle if a renderer does
18015         not exist.
18016         (WebCore::CSSComputedStyleDeclaration::length): Changed to return the number
18017         of properties we can compute even if the element has no renderer.
18018         (WebCore::CSSComputedStyleDeclaration::copyInheritableProperties): Changed
18019         to use the computed style returned by the node instead of going through the
18020         renderer.
18021         * dom/Element.cpp:
18022         (WebCore::ElementRareData::ElementRareData): Added a computed style member,
18023         used to cache computed style for elements that do not have a renderer.
18024         (WebCore::ElementRareData::resetComputedStyle): Added.
18025         (WebCore::Element::~Element): Delete the cached computed style.
18026         (WebCore::Element::recalcStyle): Added code to delete the cached computed
18027         style when necessary.
18028         (WebCore::Element::computedStyle): Added. Returns the style used in rendering
18029         the element, if available. Otherwise uses the style selector to compute style
18030         for the element.
18031         * dom/Element.h:
18032         * dom/Node.cpp:
18033         (WebCore::Node::computedStyle): Added. This method returns either the style
18034         used in rendering the node, or the style that would be used if the node
18035         had a renderer.
18036         * dom/Node.h:
18037
18038 2007-07-08  Mitz Pettel  <mitz@webkit.org>
18039
18040         Reviewed by Darin.
18041
18042         - fix http://bugs.webkit.org/show_bug.cgi?id=14544
18043           Scroll wheel events are ignored when the cursor is over an iframe's border
18044
18045         * page/mac/EventHandlerMac.mm:
18046         (WebCore::EventHandler::passWheelEventToWidget): Changed to return false if
18047         the event coordinates are not inside the widget's NSView hierarchy.
18048
18049 2007-07-08  Rob Buis  <buis@kde.org>
18050
18051         Reviewed by Mitz.
18052
18053         http://bugs.webkit.org/show_bug.cgi?id=10752
18054         The inspector should not respond to Make Text Smaller/Bigger commands
18055
18056         Use the -webkit-text-size-adjust property to ignore text sizing        
18057         and do not take the zoom factor into account for line height when
18058         -webkit-text-size-adjust is set to none.
18059
18060         * css/cssstyleselector.cpp:
18061         (WebCore::CSSStyleSelector::applyProperty):
18062         * page/inspector/inspector.css:
18063
18064 2007-07-08  Darin Adler  <darin@apple.com>
18065
18066         Reviewed by Maciej.
18067
18068         - fix <rdar://problem/5318994> Integer overflow in WebCore's Base64.cpp:base64Encode
18069
18070         * platform/Base64.cpp:
18071         (WebCore::base64Encode): Check against a maximum size.
18072         (WebCore::base64Decode): Ditto.
18073
18074 2007-07-08  Darin Adler  <darin@apple.com>
18075
18076         Reviewed by Maciej.
18077
18078         - fix <rdar://problem/5124665> WebCore secondary-thread assertion should use linked-on-or-after check instead of building on Tiger check
18079
18080         * platform/ThreadCheck.h: Renamed _WebCoreThreadViolationCheck to reportThreadViolation
18081         since it's in the WebCore namespace and also we shouldn't use leading underscores since
18082         those are reserved for the compiler and standard library. Added a new function named
18083         setDefaultThreadViolationBehavior and an enum for the parameter. Removed the
18084         threadViolationIsException parameter from WebCoreReportThreadViolation since we use
18085         a global variable for it now. Got rid of the unnecessary use of do while (0) in the
18086         WebCoreThreadViolationCheck macro -- since it's only a single function call it's already
18087         a statement and doesn't need to be turned into one with the do while (0) trick.
18088
18089         * platform/mac/ThreadCheck.mm:
18090         (WebCore::readThreadViolationBehaviorFromUserDefaults): Moved the code to read from
18091         NSUserDefaults into this helper function. Changed it to use stringForKey instead of
18092         objectForKey so we don't get a "method not found" if someone puts something other than
18093         a string in there. Updated to use the new globals.
18094         (WebCore::setDefaultThreadViolationBehavior): Added.
18095         (WebCore::reportThreadViolation): Simplified, now that most of the work is in the
18096         readThreadViolationBehaviorFromUserDefaults function.
18097         (WebCoreReportThreadViolation): Changed to use a global variable instead of parameter
18098         to determine how to report a violation. Added LogOnFirstThreadViolation, which will
18099         log only once for each function that violates.
18100
18101         * WebCore.exp: Updated for above changes.
18102
18103 2007-07-08  Mitz Pettel  <mitz@webkit.org>
18104
18105         Reviewed by Darin.
18106
18107         - fix http://bugs.webkit.org/show_bug.cgi?id=14221
18108           Repro crash (ASSERTION FAILED: oldText in RenderBlock::updateFirstLetter() during relayout of :before content with first-letter style)
18109
18110         Test: fast/css-generated-content/before-with-first-letter.html
18111
18112         * rendering/RenderContainer.cpp:
18113         (WebCore::RenderContainer::updateBeforeAfterContentForContainer): If a child
18114         of the existing 'before' container is not text, do not assume that it is an
18115         image, since it can also be an inline wrapping a first-letter. In that case,
18116         do not update its style (so in particular, keep it a FIRST_LETTER type style)
18117         and leave it to updateFirstLetter() to take care of.
18118
18119 2007-07-07  Sam Weinig  <sam@webkit.org>
18120
18121         Reviewed by Oliver Hunt.
18122
18123         Bailout early in Window::put() if attribute is readonly to avoid
18124         extra calls to isSafeScript().
18125
18126         * bindings/js/kjs_window.cpp:
18127         (KJS::Window::put):
18128
18129 2007-07-07  Darin Adler  <darin@apple.com>
18130
18131         Reviewed by Oliver Hunt.
18132
18133         - fix <rdar://problem/5292364> REGRESSION: ZX Spectrum 3.0 widget - graphic anomalies in widget window frame
18134
18135         Updated Dashboard quirk so it affects fill, stroke, and clip, rather than just stroke.
18136
18137         Test: fast/canvas/fill-stroke-clip-reset-path.html
18138
18139         * html/CanvasRenderingContext2D.h: Added clearPathForDashboardBackwardCompatibilityMode.
18140         * html/CanvasRenderingContext2D.cpp:
18141         (WebCore::CanvasRenderingContext2D::clearPathForDashboardBackwardCompatibilityMode): Added.
18142         (WebCore::CanvasRenderingContext2D::fill): Call the new function.
18143         (WebCore::CanvasRenderingContext2D::stroke): Replaced in-line code with a call to the new function.
18144         (WebCore::CanvasRenderingContext2D::clip): Call the new function.
18145
18146 2007-07-07  Rob Buis  <buis@kde.org>
18147
18148         Reviewed and tweaked by Darin.
18149
18150         http://bugs.webkit.org/show_bug.cgi?id=8994
18151         Canvas doesn't reset on resize
18152
18153         Also reset the rendering context when resetting the canvas.
18154
18155         * html/HTMLCanvasElement.cpp:
18156         (WebCore::HTMLCanvasElement::reset):
18157         (WebCore::HTMLCanvasElement::drawingContext):
18158
18159 2007-07-07  Alexey Proskuryakov  <ap@webkit.org>
18160
18161         Reviewed by Maciej.
18162
18163         http://bugs.webkit.org/show_bug.cgi?id=14525
18164         Support exslt:node-set()
18165
18166         Test: fast/xsl/exslt-node-set.xml
18167
18168         * xml/XSLTExtensions.cpp: Added.
18169         (WebCore::exsltNodeSetFunction): A copy of exslt:node-set() implementation
18170         from libexslt 1.1.11 (shipped with Tiger).
18171         (WebCore::registerXSLTExtensions): This function registers any WebCore-provided
18172         extensions on a context. Currently, the only extension is exslt:node-set().
18173         * xml/XSLTExtensions.h: Added.
18174
18175         * xml/XSLTProcessor.cpp:
18176         (WebCore::XSLTProcessor::transformToString):
18177         Register extensions when creating a context.
18178
18179         * WebCore.pro:
18180         * WebCore.vcproj/WebCore.vcproj:
18181         * WebCore.xcodeproj/project.pbxproj:
18182         * WebCoreSources.bkl:
18183         Add XSLTExtensions.{h,cpp} to projects.
18184
18185 2007-07-06  Maciej Stachowiak  <mjs@apple.com>
18186
18187         Reviewed by Oliver.
18188
18189         - fixed <rdar://problem/5133420> ASSERT in WebDocumentLoaderMac::decreaseLoadCount() un-discarding Gmail message
18190         
18191         test case: fast/loader/early-load-cancel.html
18192
18193         * loader/ResourceLoader.cpp:
18194         (WebCore::ResourceLoader::didCancel): Don't send cancel-related client callbacks
18195         if we never even sent willSendRequest because we were deferred.
18196
18197 2007-07-06  Oliver Hunt  <oliver@apple.com>
18198
18199         Reviewed by Maciej.
18200
18201         Pulled a number of methods from WebKit and WebCoreFrameBridge into 
18202         C++ objects.
18203
18204         * WebCore.exp:
18205         * WebCore.xcodeproj/project.pbxproj:
18206         * editing/Editor.cpp:
18207         (WebCore::Editor::replaceMarkedText):
18208             From -[WebCoreFrameBridge replaceMarkedTextWithText:]
18209         * editing/Editor.h:
18210         * page/Frame.cpp:
18211         (WebCore::Frame::setMarkedTextRange):
18212             Pulled platform independent logic from Mac specific implementation
18213         (WebCore::Frame::selectRangeInMarkedText):
18214             Converted from -[WebHTMLView _selectRangeInMarkedText:]
18215         * page/Frame.h:
18216         * page/mac/FrameMac.mm:
18217         (WebCore::Frame::setMarkedTextRange):
18218             Now only does Mac specific logic when manipulating initial
18219             NSAttributedString
18220         * page/mac/WebCoreFrameBridge.h:
18221         * page/mac/WebCoreFrameBridge.mm:
18222             Removed -[WebCoreFrameBridge replaceMarkedTextWithText:]
18223
18224 2007-07-06  Mitz Pettel  <mitz@webkit.org>
18225
18226         Reviewed by Darin.
18227
18228         - fix http://bugs.webkit.org/show_bug.cgi?id=14545
18229           REGRESSION (r21854-r21869): Repro crash in RenderBlock::updateFirstLetter @ nola.com/rose/
18230
18231         Test: fast/css/first-letter-capitalized.html
18232
18233         * rendering/RenderBlock.cpp:
18234         (WebCore::RenderBlock::updateFirstLetter): Moved the call to setFirstLetter
18235         further down so that the first letter is not destroyed if a text transform
18236         is applied to the remaining text fragment when it is add to the render tree.
18237         * rendering/RenderText.cpp:
18238         (WebCore::RenderText::previousCharacter): Factored out of setTextInternal.
18239         (WebCore::RenderText::setTextInternal): Changed to call previousCharacter().
18240         * rendering/RenderText.h:
18241         * rendering/RenderTextFragment.cpp:
18242         (WebCore::RenderTextFragment::previousCharacter): Override to return the
18243         character in the original string before the start of the fragment. 
18244         * rendering/RenderTextFragment.h:
18245
18246 2007-07-06  Mitz Pettel  <mitz@webkit.org>
18247
18248         Reviewed by Beth.
18249
18250         - fix http://bugs.webkit.org/show_bug.cgi?id=14536
18251           Unnecessary layout done when mousing down in text field
18252
18253         No test possible because there is no change in functionality.
18254
18255         * rendering/RenderTextControl.cpp:
18256         (WebCore::RenderTextControl::setStyle): Reset the height and the width in
18257         the old style to avoid getting a layout hint as a result of having mutated
18258         the old style during layout.
18259         (WebCore::RenderTextControl::layout): Update children's layout if an inner
18260         block's dimensions should change. This need for layout was previously masked
18261         by the bug.
18262
18263 2007-07-06  Brady Eidson  <beidson@apple.com>
18264
18265         Fix builds that use IconDatabaseNone.cpp - better, this time
18266
18267         * loader/icon/IconDatabaseNone.cpp:
18268         (WebCore::IconDatabase::isOpen):
18269
18270 2007-07-06  Brady Eidson  <beidson@apple.com>
18271
18272         Fix builds that use IconDatabaseNone.cpp
18273
18274         * loader/icon/IconDatabaseNone.cpp:
18275         (WebCore::IconDatabase::databasePath): 
18276
18277 2007-07-06  John Sullivan  <sullivan@apple.com>
18278
18279         Reviewed by Brady
18280         
18281         - WebCore part of fix for: 
18282           <rdar://problem/5310739> Time Machine shouldn't back up WebKit's icon database files
18283         
18284         * loader/icon/IconDatabase.h:
18285         * loader/icon/IconDatabase.cpp:
18286         (WebCore::IconDatabase::isOpen): 
18287         made this method const (necessary to make IconDatabase::databasePath const)
18288         (WebCore::IconDatabase::databasePath): 
18289         new method, returns SQLDatabase's path if open, otherwise empty string
18290         
18291         * loader/icon/SQLDatabase.cpp:
18292         (WebCore::SQLDatabase::open):
18293         don't append a null character to the m_path ivar. The appended null character was making the path()
18294         method return a String with a trailing null, which is bad. However, there were no callers to the
18295         path() method until now. Instead of appending a null character to the ivar, use charactersWithNullTermination()
18296         instead of characters() when opening the database.
18297         
18298         * loader/icon/SQLDatabase.h:
18299         (WebCore::SQLDatabase::isOpen):
18300         made this method const (necessary to make IconDatabase::databasePath const)
18301         (WebCore::SQLDatabase::path):
18302         made this method const (not required for these changes, but seemed worth doing at the same time)
18303
18304         * WebCore.exp:
18305         added symbol for IconDatabase::databasePath
18306
18307 2007-07-06  George Staikos  <staikos@kde.org>
18308
18309         No real functional change - just move the localizations out and
18310         stick some placeholder text in.
18311
18312         * platform/qt/Localizations.cpp: Added.
18313         (WebCore::submitButtonDefaultLabel):
18314         (WebCore::inputElementAltText):
18315         (WebCore::resetButtonDefaultLabel):
18316         (WebCore::defaultLanguage):
18317         (WebCore::searchableIndexIntroduction):
18318         (WebCore::fileButtonChooseFileLabel):
18319         (WebCore::fileButtonNoFileSelectedLabel):
18320         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
18321         (WebCore::contextMenuItemTagDownloadLinkToDisk):
18322         (WebCore::contextMenuItemTagCopyLinkToClipboard):
18323         (WebCore::contextMenuItemTagOpenImageInNewWindow):
18324         (WebCore::contextMenuItemTagDownloadImageToDisk):
18325         (WebCore::contextMenuItemTagCopyImageToClipboard):
18326         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
18327         (WebCore::contextMenuItemTagCopy):
18328         (WebCore::contextMenuItemTagGoBack):
18329         (WebCore::contextMenuItemTagGoForward):
18330         (WebCore::contextMenuItemTagStop):
18331         (WebCore::contextMenuItemTagReload):
18332         (WebCore::contextMenuItemTagCut):
18333         (WebCore::contextMenuItemTagPaste):
18334         (WebCore::contextMenuItemTagNoGuessesFound):
18335         (WebCore::contextMenuItemTagIgnoreSpelling):
18336         (WebCore::contextMenuItemTagLearnSpelling):
18337         (WebCore::contextMenuItemTagSearchWeb):
18338         (WebCore::contextMenuItemTagLookUpInDictionary):
18339         (WebCore::contextMenuItemTagOpenLink):
18340         (WebCore::contextMenuItemTagIgnoreGrammar):
18341         (WebCore::contextMenuItemTagSpellingMenu):
18342         (WebCore::contextMenuItemTagShowSpellingPanel):
18343         (WebCore::contextMenuItemTagCheckSpelling):
18344         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
18345         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
18346         (WebCore::contextMenuItemTagFontMenu):
18347         (WebCore::contextMenuItemTagBold):
18348         (WebCore::contextMenuItemTagItalic):
18349         (WebCore::contextMenuItemTagUnderline):
18350         (WebCore::contextMenuItemTagOutline):
18351         (WebCore::contextMenuItemTagWritingDirectionMenu):
18352         (WebCore::contextMenuItemTagDefaultDirection):
18353         (WebCore::contextMenuItemTagLeftToRight):
18354         (WebCore::contextMenuItemTagRightToLeft):
18355         (WebCore::contextMenuItemTagInspectElement):
18356         (WebCore::searchMenuNoRecentSearchesText):
18357         (WebCore::searchMenuRecentSearchesText):
18358         (WebCore::searchMenuClearRecentSearchesText):
18359         (WebCore::AXWebAreaText):
18360         (WebCore::AXLinkText):
18361         (WebCore::AXListMarkerText):
18362         (WebCore::AXImageMapText):
18363         (WebCore::AXHeadingText):
18364         * platform/qt/TemporaryLinkStubs.cpp:
18365
18366 2007-07-06  Geoffrey Garen  <ggaren@apple.com>
18367
18368         Reviewed by Anders Carlsson.
18369
18370         A little more FrameLoader cleanup while working on <rdar://problem/5126396>.
18371         
18372         Moved url() and URL() methods next to each other to highlight their subtlety.
18373
18374         * loader/FrameLoader.cpp:
18375         (WebCore::FrameLoader::url):
18376         * loader/FrameLoader.h:
18377
18378 2007-07-06  Geoffrey Garen  <ggaren@apple.com>
18379
18380         Reviewed by Anders Carlsson.
18381
18382         A little FrameLoader cleanup while working on <rdar://problem/5126396>.
18383         
18384         Renamed endIfNotLoading() to endIfNotLoadingMainResource() because "loading"
18385         and "loadingMainResource" have distinct meanings and this function
18386         honors the latter.
18387
18388         (WebCore::FrameLoader::endIfNotLoadingMainResource): Protect after the
18389         early return to avoid ref count churn.
18390         * loader/FrameLoader.h:
18391         (WebCore::FrameLoader::isLoadingMainResource): Inlined this function.
18392
18393 2007-07-06  Adam Treat  <adam@staikos.net>
18394
18395         Reviewed by George Staikos.
18396
18397         Convert QWebFrame to a QFrame from a scroll area.
18398
18399         * page/qt/EventHandlerQt.cpp:
18400         (WebCore::EventHandler::passSubframeEventToSubframe):
18401         (WebCore::EventHandler::passWheelEventToWidget):
18402         (WebCore::EventHandler::createDraggingClipboard):
18403         (WebCore::EventHandler::passMousePressEventToScrollbar):
18404         * platform/ScrollView.h:
18405         * platform/Widget.h:
18406         * platform/qt/PlatformScrollBar.h:
18407         * platform/qt/PlatformScrollBarQt.cpp:
18408         (WebCore::PlatformScrollbar::setRect):
18409         (WebCore::PlatformScrollbar::frameGeometry):
18410         (WebCore::PlatformScrollbar::setFrameGeometry):
18411         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
18412         (WebCore::PlatformScrollbar::handleMousePressEvent):
18413         (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
18414         * platform/qt/ScrollViewQt.cpp:
18415         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
18416         (WebCore::ScrollView::ScrollViewPrivate::~ScrollViewPrivate):
18417         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
18418         (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
18419         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
18420         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
18421         (WebCore::ScrollView::ScrollViewPrivate::windowClipRect):
18422         (WebCore::ScrollView::ScrollView):
18423         (WebCore::ScrollView::~ScrollView):
18424         (WebCore::ScrollView::setScrollArea):
18425         (WebCore::ScrollView::horizontalScrollBar):
18426         (WebCore::ScrollView::verticalScrollBar):
18427         (WebCore::ScrollView::updateContents):
18428         (WebCore::ScrollView::update):
18429         (WebCore::ScrollView::visibleWidth):
18430         (WebCore::ScrollView::visibleHeight):
18431         (WebCore::ScrollView::visibleContentRect):
18432         (WebCore::ScrollView::setContentsPos):
18433         (WebCore::ScrollView::resizeContents):
18434         (WebCore::ScrollView::setFrameGeometry):
18435         (WebCore::ScrollView::geometryChanged):
18436         (WebCore::ScrollView::contentsX):
18437         (WebCore::ScrollView::contentsY):
18438         (WebCore::ScrollView::contentsWidth):
18439         (WebCore::ScrollView::contentsHeight):
18440         (WebCore::ScrollView::windowToContents):
18441         (WebCore::ScrollView::contentsToWindow):
18442         (WebCore::ScrollView::scrollOffset):
18443         (WebCore::ScrollView::maximumScroll):
18444         (WebCore::ScrollView::scrollBy):
18445         (WebCore::ScrollView::scrollRectIntoViewRecursively):
18446         (WebCore::ScrollView::hScrollbarMode):
18447         (WebCore::ScrollView::vScrollbarMode):
18448         (WebCore::ScrollView::suppressScrollbars):
18449         (WebCore::ScrollView::setHScrollbarMode):
18450         (WebCore::ScrollView::setVScrollbarMode):
18451         (WebCore::ScrollView::setScrollbarsMode):
18452         (WebCore::ScrollView::setStaticBackground):
18453         (WebCore::ScrollView::inWindow):
18454         (WebCore::ScrollView::updateScrollbars):
18455         (WebCore::ScrollView::scrollbarUnderMouse):
18456         (WebCore::ScrollView::addChild):
18457         (WebCore::ScrollView::removeChild):
18458         (WebCore::ScrollView::paint):
18459         (WebCore::ScrollView::wheelEvent):
18460         (WebCore::ScrollView::scroll):
18461         (WebCore::ScrollView::windowResizerRect):
18462         (WebCore::ScrollView::resizerOverlapsContent):
18463         (WebCore::ScrollView::adjustOverlappingScrollbarCount):
18464         (WebCore::ScrollView::setParent):
18465         (WebCore::ScrollView::addToDirtyRegion):
18466         (WebCore::ScrollView::scrollBackingStore):
18467         (WebCore::ScrollView::updateBackingStore):
18468         * platform/qt/WidgetQt.cpp:
18469         (WebCore::WidgetPrivate::canvas):
18470         (WebCore::WidgetPrivate::setGeometry):
18471         (WebCore::WidgetPrivate::geometry):
18472         (WebCore::Widget::setQWidget):
18473         (WebCore::Widget::paint):
18474         (WebCore::Widget::originalGeometry):
18475         (WebCore::Widget::geometryChanged):
18476
18477 2007-07-06  Anders Carlsson  <andersca@apple.com>
18478
18479         Reviewed by Mitz.
18480
18481         <rdar://problem/5280532> 
18482         REGRESSION: Can't access nested embed by document.name if object is not immediate parent
18483         
18484         Traverse up the tree looking for an object element.
18485         
18486         * html/HTMLEmbedElement.cpp:
18487         (WebCore::HTMLEmbedElement::getInstance):
18488
18489 2007-07-06  George Staikos  <staikos@kde.org>
18490
18491         Qt build fix: Don't clobber qmake variables that are already set.
18492
18493         * WebCore.pro:
18494
18495 2007-07-05  Maciej Stachowiak  <mjs@apple.com>
18496
18497         Reviewed by Antti.
18498
18499         - <rdar://problem/5311093> JavaScriptCore fails to build with strict-aliasing warnings
18500
18501         * platform/StringHash.h:
18502         (WTF::): Adapt to newer way to do storage types.
18503
18504 2007-07-06  Bernhard Rosenkraenzer  <bero@arklinux.org>
18505
18506         Reviewed by Sam.
18507
18508         Fix for http://bugs.webkit.org/show_bug.cgi?id=13985
18509         Bug 13985: WebCore/rendering/RenderTable.cpp fails to compile with gcc 4.2.x
18510
18511         * rendering/RenderTable.cpp:
18512         (WebKit::RenderTable::calcBorderLeft)
18513         (WebKit::RenderTable::calcBorderRight)
18514
18515 2007-07-06  Maxime Britto  <mbritto@pleyo.com>
18516
18517         Reviewed by Maciej.
18518
18519         Fix http://bugs.webkit.org/show_bug.cgi?id=13038
18520         Bug 13038: ASSERTION FAILED: item->target().isEmpty() || m_mainFrame->tree()->find(item->target()) == m_mainFrame
18521
18522         Modify an ASSERT in goToItem related to going back/forward in history.  We don't need to check the frameset if the target is _blank.
18523         The attached test case is a manual one since it relies on having pages opened in tabs in Safari.
18524
18525         * manual-tests/goBack-blank-tab-page.html: Added.
18526         * manual-tests/resources/before-go-back.html: Added.
18527         * manual-tests/resources/will-go-back.html: Added.
18528         * page/Page.cpp:
18529         (WebCore::Page::goToItem):
18530
18531 2007-07-06  Mitz Pettel  <mitz@webkit.org>
18532
18533         Reviewed by Maciej.
18534
18535         - fix http://bugs.webkit.org/show_bug.cgi?id=14400
18536           Assertion failure (SHOULD NEVER BE REACHED) going back on YouTube
18537
18538         Test: fast/forms/button-state-restore.html
18539
18540         * dom/Document.h:
18541         (WebCore::Document::isFormElementRegistered): Added.
18542         * html/HTMLGenericFormElement.cpp:
18543         (WebCore::HTMLGenericFormElement::closeRenderer): Restore saved form
18544         element state only if the element is registered with the document to
18545         have its state saved.
18546
18547 2007-07-06  Mitz Pettel  <mitz@webkit.org>
18548
18549         Reviewed by Maciej.
18550
18551         - fix http://bugs.webkit.org/show_bug.cgi?id=14487
18552           Incomplete repaint of background and border of boxes with -webkit-border-fit:lines
18553
18554         Test: fast/repaint/border-fit-lines.html
18555
18556         * rendering/RenderObject.cpp:
18557         (WebCore::RenderObject::repaintAfterLayoutIfNeeded): Do a full repaint if
18558         -webkit-border-fit:lines was specified.
18559
18560 2007-07-06  Tony Chang  <idealisms@gmail.com>
18561
18562         Reviewed by Maciej.
18563
18564         http://bugs.webkit.org/show_bug.cgi?id=14516
18565         Bug 14516: crash loading multipart/x-mixed-replace data on windows safari
18566
18567         NULL check m_resourceData to prevent a crash in Safari on Windows.
18568
18569         * loader/ResourceLoader.cpp:
18570         (WebCore::ResourceLoader::clearResourceData):
18571
18572 2007-07-06  Jungshik Shin  <jungshik.shin@gmail.com>
18573
18574         Reviewed by Alexey.
18575
18576         - Add UTF-32 encoding support 
18577           http://bugs.webkit.org/show_bug.cgi?id=13415
18578
18579         Test:
18580          - fast/encoding/utf-32-big-endian-bom.html
18581          - fast/encoding/utf-32-big-endian-nobom.xml
18582          - fast/encoding/utf-32-little-endian-bom.html
18583          - fast/encoding/utf-32-little-endian-nobom.xml
18584
18585         * loader/TextResourceDecoder.cpp:
18586         (WebCore::TextResourceDecoder::checkForBOM):
18587         (WebCore::TextResourceDecoder::checkForHeadCharset):
18588         * platform/TextDecoder.cpp:
18589         (WebCore::TextDecoder::checkForBOM):
18590         * platform/TextDecoder.h:
18591         * platform/TextEncoding.cpp:
18592         (WebCore::UTF32BigEndianEncoding):
18593         (WebCore::UTF32LittleEndianEncoding):
18594         * platform/TextEncoding.h:
18595
18596 2007-07-06  Holger Hans Peter Freyther  <zecke@selfish.org>
18597
18598         Reviewed by Maciej.
18599
18600         Start implementening RenderThemeGdk/Gtk using GtkStyle. The approach is
18601         to allocate one native control for each widget type. And use margins, spacing,
18602         style properties from the Widget. And for drawing use GtkStyle on the rect supplied.
18603
18604         This should allow nice integration and be relative resource friendly. Mozilla is using
18605         a similiar approach. They seem to share the GdkPixmap among several operations and this
18606         will be an obvious candidate for improvements. Create a normally big enough GdkPixmap and
18607         use that for drawing and then set clip regions for cairo to make sure to not go beyond the
18608         width and height.
18609
18610         The next steps will be to introduce states for the widgets, add more widgets, handle focus,
18611         and various other style attributes, honor the size and margin and use that to propagate this
18612         back to RenderStyle*.
18613
18614         * platform/gdk/RenderThemeGdk.cpp:
18615         (WebCore::RenderThemeGdk::RenderThemeGdk):
18616         (WebCore::RenderThemeGdk::setCheckboxSize):
18617         (WebCore::RenderThemeGdk::paintCheckbox):
18618         (WebCore::RenderThemeGdk::setRadioSize):
18619         (WebCore::RenderThemeGdk::paintRadio):
18620         (WebCore::RenderThemeGdk::paintButton):
18621         (WebCore::RenderThemeGdk::copyToContext):
18622         (WebCore::RenderThemeGdk::gtkButton):
18623         (WebCore::RenderThemeGdk::gtkCheckbox):
18624         (WebCore::RenderThemeGdk::gtkRadioButton):
18625         (WebCore::RenderThemeGdk::gtkWindowContainer):
18626         * platform/gdk/RenderThemeGdk.h:
18627
18628 2007-07-06  Rob Buis  <buis@kde.org>
18629
18630         Reviewed by Adam.
18631
18632         http://bugs.webkit.org/show_bug.cgi?id=14442
18633         Adding a stop with value 1.0 to a gradient that has already been used has no effect
18634
18635         Implement start and end stop handling differently so they are not
18636         in the color stop array.
18637
18638         * html/CanvasGradient.cpp:
18639         (WebCore::compareStops):
18640         (WebCore::CanvasGradient::getColor):
18641         (WebCore::CanvasGradient::findStop):
18642
18643 2007-07-06  Adam Roben  <aroben@apple.com>
18644
18645         Fix <rdar://problem/5301994> Garbled text still showing on some sites
18646
18647         Replace calls to GetGlyphIndices with wkGetGlyphs.
18648
18649         Reviewed by Alice.
18650
18651         * platform/win/GlyphPageTreeNodeWin.cpp:
18652         (WebCore::GlyphPage::fill): Use wkGetGlyphs.
18653         * platform/win/FontDataWin.cpp:
18654         (WebCore::FontData::containsCharacters):
18655
18656 2007-07-06  Matt Lilek  <pewtermoose@gmail.com>
18657
18658         Not reviewed - Windows build fix.
18659
18660         * bridge/win/FrameWin.cpp:
18661         (WebCore::imageFromSelection):
18662
18663 2007-07-06  George Staikos  <staikos@kde.org>
18664
18665         Reviewed by Maciej.
18666
18667         Switch USE(ICONDATABASE) to ENABLE(ICONDATABASE) and activate the
18668         flag via the .pro file
18669
18670         * WebCore.pro:
18671         * loader/icon/IconDatabase.h:
18672
18673 2007-07-05  John Sullivan  <sullivan@apple.com>
18674
18675         Reviewed by Adam
18676
18677         - WebCore part of fix for <rdar://problem/5315033>
18678
18679         * rendering/RenderObject.h:
18680         replaced PaintRestrictionSelectionOnlyWhiteText with PaintRestrictionSelectionOnlyBlackText
18681         (WebCore::RenderObject::PaintInfo::PaintInfo):
18682         replaced forceWhiteText with forceBlackText
18683
18684         * rendering/RenderObject.cpp:
18685         (WebCore::RenderObject::addLineBoxRects):
18686         added a useSelectionHeight parameter, which defaults to false; this method is unimplemented
18687         at this level so this has no effect.
18688
18689         * rendering/RenderText.h:
18690         * rendering/RenderText.cpp:
18691         (WebCore::RenderText::addLineBoxRects):
18692         added a useSelectionHeight parameter, which defaults to false. If true, use the vertical position
18693         and height returned by selectionRect rather than replacing it with the more tight-fitting position
18694         and height of the line box.
18695
18696         * dom/Range.h:
18697         * dom/Range.cpp:
18698         (WebCore::Range::addLineBoxRects):
18699         added a useSelectionHeight parameter, which defaults to false. Passes this along to RenderObject.        
18700
18701         * page/Frame.h:
18702         renamed parameter to selectionImage
18703         * page/Frame.cpp:
18704         (WebCore::Frame::selectionTextRects):
18705         pass true for addLineBoxRects new useSelectionHeight parameter, so the rects returned by this new
18706         method will match the height that the selection would be painted here
18707         (WebCore::Frame::paint):
18708         updated for white->black name changes
18709         
18710         * page/mac/FrameMac.mm:
18711         (WebCore::Frame::selectionImage):
18712         updated for white->black name changes
18713         
18714         * rendering/InlineFlowBox.cpp:
18715         (WebCore::InlineFlowBox::paintTextDecorations):
18716         updated for white->black name changes
18717
18718         * rendering/RenderLayer.cpp:
18719         (WebCore::RenderLayer::paintLayer):
18720         updated for white->black name changes
18721
18722         * rendering/InlineTextBox.cpp:
18723         (WebCore::InlineTextBox::paint):
18724         updated for white->black name changes, and actually use black instead of white. This was the goal
18725         of all the name changes.
18726
18727 2007-07-05  Anders Carlsson  <andersca@apple.com>
18728
18729         Reviewed by Oliver.
18730
18731         Fix layout test failures.
18732         
18733         * loader/FrameLoader.cpp:
18734         (WebCore::FrameLoader::commitProvisionalLoad):
18735         Don't make a representation if we're creating the initial document.
18736
18737 2007-07-05  Alp Toker  <alp.toker@collabora.co.uk>
18738
18739         Fix Bug 14388: Input in text fields limited to 1024 characters
18740         http://bugs.webkit.org/show_bug.cgi?id=14388
18741
18742         Slightly modified by Adam Roben.
18743
18744         Reviewed by Adele.
18745
18746         Tests: fast/forms/input-implicit-length-limit.html
18747                fast/forms/input-maxlength.html
18748
18749         * html/HTMLInputElement.cpp: Bump limit to 524288.
18750         (WebCore::HTMLInputElement::init):
18751         (WebCore::HTMLInputElement::parseMappedAttribute):
18752         * html/HTMLInputElement.h:
18753
18754 2007-07-05  Anders Carlsson  <andersca@apple.com>
18755
18756         Build fix.
18757         
18758         * loader/FrameLoader.cpp:
18759         (WebCore::FrameLoader::init):
18760
18761 2007-07-05  Sam Weinig  <sam@webkit.org>
18762
18763         Reviewed by Geoff.
18764
18765         Add focus, blur and close functions to DOMWindow implementation class
18766         and move bindings from Window to JSDOMWindow.
18767
18768         * bindings/js/JSDOMWindowCustom.cpp:
18769         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
18770         * bindings/js/kjs_window.cpp:
18771         (KJS::Window::getOwnPropertySlot):
18772         (KJS::WindowFunc::callAsFunction):
18773         * bindings/js/kjs_window.h:
18774         (KJS::Window::):
18775         * bindings/scripts/CodeGeneratorJS.pm: Move prototype function declaration from
18776         the implementation to the header.
18777         * page/DOMWindow.cpp:
18778         (WebCore::DOMWindow::focus):
18779         (WebCore::DOMWindow::blur):
18780         (WebCore::DOMWindow::close):
18781         * page/DOMWindow.h:
18782         * page/DOMWindow.idl:
18783
18784 2007-07-05  Justin Garcia  <justin.garcia@apple.com>
18785
18786         Reviewed by Harrison.
18787
18788         <rdar://problem/5279521> REGRESSION: In Mail, a crash occurs at WebCore::Range::startPosition() when attempting to apply alignment to selected image/text in message body
18789
18790         * editing/TextIterator.cpp:
18791         (WebCore::TextIterator::exitNode): Previously emitted content shouldn't have
18792         to come from a text node in order to emit a '\n' as we exit block containers.
18793
18794 2007-07-05  Anders Carlsson  <andersca@apple.com>
18795
18796         Reviewed by Geoff.
18797
18798         <rdar://problem/5315284> REGRESSION: Leopard Launch Time - plugins are being accessed at startup.
18799
18800         Set a response that has a MIME type of "text/html" on the document loader so WebKit won't refresh the 
18801         plugin database looking for a plug-in that can handle the document's MIME type (which will be null anyway).
18802                  
18803         * loader/FrameLoader.cpp:
18804         (WebCore::FrameLoader::init):
18805
18806 2007-07-05  Anders Carlsson  <andersca@apple.com>
18807
18808         Reviewed by Oliver.
18809
18810         <rdar://problem/5106788>
18811         WebKit loads user style sheets too late as seen in Mail (breaks DataDetectors; Mail flashes wrong font)
18812
18813         Let the document know when the user style sheet is loading so that it try not to display anything
18814         until the user style sheet has finished loading.
18815         
18816         * page/Frame.cpp:
18817         (WebCore::UserStyleSheetLoader::UserStyleSheetLoader):
18818         (WebCore::UserStyleSheetLoader::~UserStyleSheetLoader):
18819         (WebCore::UserStyleSheetLoader::setCSSStyleSheet):
18820         (WebCore::Frame::setUserStyleSheetLocation):
18821
18822 2007-07-05  Sam Weinig  <sam@webkit.org>
18823
18824         Reviewed by Darin.
18825
18826         Move JSDOMWindow overriding getOwnPropertySlot logic from KJS::Window
18827         up into JSDOMWindow.  No change in functionality so no testcase required. 
18828
18829         * bindings/js/JSDOMWindowCustom.cpp:
18830         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
18831         * bindings/js/kjs_window.cpp:
18832         (KJS::Window::getOwnPropertySlot):
18833         * bindings/js/kjs_window.h:
18834
18835 2007-07-05  Mitz Pettel  <mitz@webkit.org>
18836
18837         Reviewed and Landed by Sam.
18838
18839         - fix bug 14465 for window.showModalDialog
18840
18841         * bindings/js/kjs_window.cpp:
18842         (KJS::parseModalDialogFeatures):
18843         (KJS::showModalDialog):
18844
18845 2007-07-05  Sam Weinig  <sam@webkit.org>
18846
18847         Reviewed by Mitz.
18848
18849         Patch for http://bugs.webkit.org/show_bug.cgi?id=14465
18850         window.open() uses the literal "undefined" as the URL
18851
18852         * bindings/js/kjs_window.cpp:
18853         (KJS::WindowFunc::callAsFunction): add checks for undefined and null values when setting the url.
18854         * manual-tests/open-url-undefined.html: Added.
18855
18856 2007-07-05  Holger Hans Peter Freyther  <zecke@selfish.org>
18857
18858         Reviewed by Rob Buis.
18859
18860         Rework FontData and FontPlatformData for the Gdk work to make valgrind
18861         happy.
18862
18863         Move destroying of FontConfig and Cairo objects held in FontPlatformData
18864         to FontData::platformDestroy. The ownership of these objects is held by
18865         FontData. This is following the Mac and Qt port at least.
18866
18867         Currently it is possible that FontPlatformData will not create cairo resources
18868         in this case at least make sure the variables are initialized to 0.
18869         Initialize x,y of the cairo_glyph_t with zero to avoid extents.x_advance depending
18870         on subtracing with not defined values.
18871
18872         FontPlatformData::hash. Using FontDescription is a bad idea as we don't have a clue
18873         about how it is packed, if holes are present, etc. The FcPattern and the m_fontMatrix
18874         should be good enough to describe the Font. All other objects are created using these
18875         variables
18876
18877         Replace C-style casts with C++ casts, in this case reinterpret_cast.
18878
18879         * platform/gdk/FontDataGdk.cpp:
18880         (WebCore::FontData::platformInit): Don't assert
18881         (WebCore::FontData::platformDestroy): Take over ownership
18882         (WebCore::FontData::platformWidthForGlyph): initialize
18883         (WebCore::FontData::setFont): be paranoid and assert
18884         * platform/gdk/FontPlatformData.h:
18885         (WebCore::FontPlatformData::FontPlatformData): Initialize everything
18886         (WebCore::FontPlatformData::hash): make valgrind happy and don't use m_fontDescription
18887         * platform/gdk/FontPlatformDataGdk.cpp:
18888         (WebCore::FontPlatformData::FontPlatformData):
18889         (WebCore::FontPlatformData::~FontPlatformData): FontData::platformDestroy will do this
18890         (WebCore::FontPlatformData::list): Don't use C-style casts.
18891         (WebCore::FontPlatformData::setFont): m_fontFace, m_fontMatrix, m_options might not be initialized
18892         (WebCore::FontPlatformData::operator==): Don't use C-style casts.
18893
18894 2007-07-05  Alp Toker  <alp.toker@collabora.co.uk>
18895
18896         Reviewed by Mark Rowe.
18897
18898         http://bugs.webkit.org/show_bug.cgi?id=14445
18899         GraphicsContextCairo code style cleanup
18900
18901         Follow the cr naming convention for cairo_t*.
18902         Remove trailing whitespace.
18903         Replace C casts with C++ casts.
18904         Avoid needless casts.
18905
18906         * platform/graphics/cairo/GraphicsContextCairo.cpp:
18907         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
18908         (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
18909         (WebCore::GraphicsContext::GraphicsContext):
18910         (WebCore::GraphicsContext::platformContext):
18911         (WebCore::GraphicsContext::savePlatformState):
18912         (WebCore::GraphicsContext::restorePlatformState):
18913         (WebCore::GraphicsContext::drawRect):
18914         (WebCore::adjustLineToPixelBoundaries):
18915         (WebCore::GraphicsContext::drawLine):
18916         (WebCore::GraphicsContext::drawEllipse):
18917         (WebCore::GraphicsContext::strokeArc): Save/restore the graphics state.
18918         (WebCore::GraphicsContext::drawConvexPolygon):
18919         (WebCore::GraphicsContext::fillRect):
18920         (WebCore::GraphicsContext::clip):
18921         (WebCore::GraphicsContext::drawFocusRing):
18922         (WebCore::GraphicsContext::roundToDevicePixels):
18923         (WebCore::GraphicsContext::translate):
18924         (WebCore::GraphicsContext::origin):
18925         (WebCore::GraphicsContext::setPlatformStrokeThickness):
18926         (WebCore::GraphicsContext::setPlatformStrokeStyle):
18927         (WebCore::GraphicsContext::setPlatformFont):
18928         (WebCore::GraphicsContext::concatCTM):
18929         (WebCore::GraphicsContext::addInnerRoundedRectClip):
18930         (WebCore::GraphicsContext::beginTransparencyLayer):
18931         (WebCore::GraphicsContext::endTransparencyLayer):
18932         (WebCore::GraphicsContext::clearRect):
18933         (WebCore::GraphicsContext::setLineCap):
18934         (WebCore::GraphicsContext::setLineJoin):
18935         (WebCore::GraphicsContext::setMiterLimit):
18936         (WebCore::GraphicsContext::setCompositeOperation):
18937         (WebCore::GraphicsContext::beginPath):
18938         (WebCore::GraphicsContext::addPath):
18939         (WebCore::GraphicsContext::rotate):
18940         (WebCore::GraphicsContext::scale):
18941         * platform/graphics/cairo/ImageBufferCairo.cpp:
18942         (WebCore::ImageBuffer::ImageBuffer):
18943         * platform/graphics/cairo/ImageCairo.cpp: Avoid the confusing ctxt/context naming scheme.
18944         (WebCore::BitmapImage::draw):
18945         (WebCore::Image::drawPattern):
18946
18947 2007-07-05  Alp Toker  <alp.toker@collabora.co.uk>
18948
18949         Reviewed by Mark Rowe.
18950
18951         http://bugs.webkit.org/show_bug.cgi?id=14531
18952         Cairo SVGImage::nativeImageForCurrentFrame() has no return
18953
18954         Return the Cairo surface from the frame cache.
18955
18956         Also add a fall-through else macro with notImplemented() so that future
18957         ports do not make the same mistake.
18958
18959         * platform/graphics/svg/SVGImage.cpp:
18960         (WebCore::SVGImage::nativeImageForCurrentFrame):
18961
18962 2007-07-05  Alp Toker  <alp.toker@collabora.co.uk>
18963
18964         Reviewed by Mark Rowe.
18965
18966         http://bugs.webkit.org/show_bug.cgi?id=14513
18967         Cairo animated GIF support is broken
18968
18969         Implement ImageSource::frameIsCompleteAtIndex() to enable animated GIFs.
18970
18971         * platform/graphics/cairo/ImageSourceCairo.cpp:
18972         (WebCore::ImageSource::frameIsCompleteAtIndex):
18973
18974 2007-07-04  Matt Perry  <mpComplete@gmail.com>
18975
18976         Reviewed by Adam.
18977
18978         Fix for http://bugs.webkit.org/show_bug.cgi?id=13400
18979         Bug 13400: REGRESSION (r20809-20814): No back entry created for navigations created by assigning to document.location
18980         <rdar://problem/5153025>
18981
18982         Treat userGesture as always true for setLocation, forcing a back/forward
18983         entry to be created.
18984
18985         * bindings/js/JSHTMLDocumentCustom.cpp:
18986         (WebCore::JSHTMLDocument::setLocation):
18987
18988 2007-07-04  Adam Roben  <aroben@apple.com>
18989
18990         Restore MouseEventWithHitTestResults::targetNode's old behavior
18991
18992         Reviewed by Mark.
18993
18994         Fixes fast/images/imagemap-case and fast/replace/image-map.
18995
18996         * page/MouseEventWithHitTestResults.cpp:
18997         (WebCore::MouseEventWithHitTestResults::targetNode): Use the inner
18998         node, not the inner non-shared node.
18999
19000 2007-07-04  Adam Roben  <aroben@apple.com>
19001
19002         Mac, Qt, and Gdk build fixes.
19003
19004         * page/EventHandler.h:
19005         * page/gdk/EventHandlerGdk.cpp:
19006         * page/mac/EventHandlerMac.mm:
19007         (WebCore::EventHandler::passSubframeEventToSubframe):
19008         * page/qt/EventHandlerQt.cpp:
19009
19010 2007-07-04  Adam Roben  <aroben@apple.com>
19011
19012         Fix the Qt/Gdk builds.
19013
19014         * page/gdk/EventHandlerGdk.cpp:
19015         * page/qt/EventHandlerQt.cpp:
19016
19017 2007-07-04  Adam Roben  <aroben@apple.com>
19018
19019         Move tooltip logic down into WebCore so that it can be shared cross-platform
19020
19021         Reviewed by Sam.
19022
19023         * page/Chrome.cpp:
19024         (WebCore::Chrome::setToolTip): Added.
19025         * page/Chrome.h:
19026         * page/ChromeClient.h:
19027         * page/EventHandler.cpp:
19028         (WebCore::EventHandler::mouseMoved): Call Chrome::setToolTip.
19029         * platform/graphics/svg/SVGImageEmptyClients.h:
19030
19031         Added stubs for Gdk:
19032
19033         * platform/gdk/ChromeClientGdk.h:
19034         * platform/gdk/TemporaryLinkStubs.cpp:
19035         (ChromeClientGdk::setToolTip):
19036
19037 2007-07-04  Adam Roben  <aroben@apple.com>
19038
19039         Add Settings::showsURLsInToolTips
19040
19041         Reviewed by Sam.
19042
19043         * WebCore.exp:
19044         * page/Settings.cpp:
19045         (WebCore::Settings::Settings):
19046         * page/Settings.h:
19047
19048 2007-07-04  Adam Roben  <aroben@apple.com>
19049
19050         Move logic for calling mouseDidMoveOverElement into WebCore
19051
19052         Reviewed by Sam.
19053
19054         * page/EventHandler.cpp:
19055         (WebCore::EventHandler::mouseMoved): Added. Calls Chrome::mouseDidMoveOverElement.
19056         (WebCore::EventHandler::handleMouseMoveEvent): Now takes an optional
19057         HitTestResult* parameter which is used to communicate to the caller the
19058         node the mouse is over.
19059         * page/EventHandler.h:
19060         * page/mac/EventHandlerMac.mm:
19061         (WebCore::EventHandler::mouseMoved): Changed to call the overloaded
19062         mouseMoved().
19063         (WebCore::EventHandler::passMouseMoveEventToSubframe): Pass hoveredNode
19064         through to the subframe so we can get the deepest node hovered, not
19065         just the node's parent frame.
19066         * page/win/EventHandlerWin.cpp:
19067         (WebCore::EventHandler::passMouseMoveEventToSubframe): Ditto.
19068
19069 2007-07-04  Adam Roben  <aroben@apple.com>
19070
19071         Add Chrome::mouseDidMoveOverElement
19072
19073         This does the work of calling up to the ChromeClient (which will call
19074         the UI delegate).
19075
19076         Reviewed by Sam.
19077
19078         * page/Chrome.cpp:
19079         (WebCore::Chrome::mouseDidMoveOverElement): Added.
19080         * page/Chrome.h:
19081         * page/ChromeClient.h:
19082         * platform/graphics/svg/SVGImageEmptyClients.h: Updated for change to
19083         ChromeClient.
19084         * platform/gdk/ChromeClientGdk.h:
19085         * platform/gdk/TemporaryLinkStubs.cpp:
19086         (ChromeClientGdk::mouseDidMoveOverElement):
19087
19088 2007-07-04  Adam Roben  <aroben@apple.com>
19089
19090         Changed PlatformMouseEvent to store the modifier flags of the event
19091
19092         Reviewed by Sam.
19093
19094         * platform/PlatformMouseEvent.h:
19095         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
19096         * platform/mac/PlatformMouseEventMac.mm:
19097         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
19098         * platform/win/PlatformMouseEventWin.cpp:
19099         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
19100
19101 2007-07-04  Adam Roben  <aroben@apple.com>
19102
19103         Add HitTestResult::setToNonShadowAncestor
19104
19105         Reviewed by Sam.
19106
19107         * page/EventHandler.cpp:
19108         (WebCore::EventHandler::hitTestResultAtPoint): Moved logic into
19109         HitTestResult::setToNonShadowAncestor.
19110         * rendering/HitTestResult.cpp:
19111         (WebCore::HitTestResult::setToNonShadowAncestor):
19112         * rendering/HitTestResult.h:
19113
19114 2007-07-04  Adam Roben  <aroben@apple.com>
19115
19116         Change MouseEventWithHitTestResults to hold onto a HitTestResult
19117
19118         Reviewed by Sam.
19119
19120         * dom/Document.cpp:
19121         (WebCore::Document::prepareMouseEvent):
19122         * page/MouseEventWithHitTestResults.cpp:
19123         (WebCore::MouseEventWithHitTestResults::MouseEventWithHitTestResults):
19124         (WebCore::MouseEventWithHitTestResults::targetNode):
19125         (WebCore::MouseEventWithHitTestResults::localPoint):
19126         (WebCore::MouseEventWithHitTestResults::scrollbar):
19127         * page/MouseEventWithHitTestResults.h:
19128         (WebCore::MouseEventWithHitTestResults::event):
19129         (WebCore::MouseEventWithHitTestResults::hitTestResult):
19130
19131 2007-07-04  Matt Lilek  <pewtermoose@gmail.com>
19132
19133         Not reviewed, gdk build fix.
19134
19135         * platform/gdk/FrameGdk.cpp:
19136
19137 2007-07-05  Antti Koivisto  <antti@apple.com>
19138
19139         Reviewed by John.
19140         
19141         Fix Repro crash due to infinite recursion in HTMLParser::handleError @ youos.com
19142         <rdar://problem/5237811>
19143         
19144         It is possible to add table parts (thead etc) without table ancestor to a document fragment. If a new table element
19145         was added to such a part, as in
19146         
19147         div.innerHTML = '<tbody><table>';
19148         
19149         the parser error handling code would try to pop the previous table as normal. However since
19150         the table does not actually exist nothing would happen and parser would go to infinite recursion.
19151         
19152         Solution here is to pop table parts one by one when handling the error inside a fragment instead of trying to pop
19153         the table straight away (as it might not exist).
19154
19155         * html/HTMLParser.cpp:
19156         (WebCore::HTMLParser::handleError):
19157
19158 2007-07-04  Qing Zhao  <qing@staikos.net>
19159
19160         Reviewed by George Staikos.
19161
19162         Draw menulist (comboboxes) without text overlap on the button.
19163
19164         * platform/qt/RenderThemeQt.cpp:
19165         (WebCore::RenderThemeQt::setPopupPadding):
19166
19167 2007-07-04  George Staikos  <staikos@kde.org>
19168
19169         Compile
19170
19171         * page/qt/FrameQt.cpp:
19172         * WebCore.pro:
19173
19174 2007-07-04  Sam Weinig  <sam@webkit.org>
19175
19176         Reviewed by Mitz.
19177
19178         Patch for http://bugs.webkit.org/show_bug.cgi?id=14504
19179         REGRESSION (r23573): Amazon Book Excerpt can not be viewed in recent nightly
19180
19181         - Made it possible (again) to shadow window properties with local variable names.
19182
19183         Test: fast/dom/Window/window-property-shadowing.html
19184
19185         * bindings/js/JSDOMWindowCustom.cpp:
19186         (WebCore::JSDOMWindow::customPut):
19187         * bindings/js/kjs_window.cpp:
19188         (KJS::Window::put):
19189         * bindings/scripts/CodeGeneratorJS.pm:
19190         * page/DOMWindow.idl:
19191
19192 2007-07-03  Alice Liu  <alice.liu@apple.com>
19193
19194         Reviewed by Adam.
19195
19196         Fixed <rdar://problem/5225119> support smart pasting on Windows
19197
19198         * WebCore.vcproj/WebCore.vcproj:
19199         * WebCore.xcodeproj/project.pbxproj:
19200             Added new files
19201         * editing/SmartReplace.cpp: Added.
19202         (WebCore::isCharacterSmartReplaceExempt):
19203             Added non-CF implementation placeholder
19204         * editing/SmartReplace.h: Added.
19205         * editing/SmartReplaceCF.cpp: Added.
19206         (WebCore::getSmartSet):
19207         (WebCore::isCharacterSmartReplaceExempt):
19208             Added new implementation
19209
19210         * bridge/win/FrameWin.cpp:
19211         * page/Frame.h:
19212         * page/mac/FrameMac.mm:
19213             Removed old declaration and implementation
19214
19215         * editing/ReplaceSelectionCommand.cpp:
19216         (WebCore::ReplaceSelectionCommand::doApply):
19217             Changed to call the new function instead of old
19218
19219         * page/mac/WebCoreFrameBridge.h:
19220         * page/mac/WebCoreFrameBridge.mm:
19221             Removed old declaration and implementation
19222         (-[WebCoreFrameBridge smartInsertForString:replacingRange:beforeString:afterString:]):
19223             Changed to call the new function instead of old
19224
19225         * platform/win/PasteboardWin.cpp:
19226         (WebCore::Pasteboard::Pasteboard):
19227             Register new clipboard format
19228         (WebCore::Pasteboard::writeSelection):
19229             Set data for smartpaste format on clipboard
19230         (WebCore::Pasteboard::canSmartReplace):
19231             Added non-stub implementation
19232
19233 2007-07-04  Qing Zhao  <qing@staikos.net>
19234
19235         Reviewed by George Staikos.
19236
19237         Similar to the PlatformScrollbar fixes, adjust the painter to make the
19238         styler draw all subcontrols, and in this case the focus rect, in the
19239         proper location
19240
19241         * platform/qt/RenderThemeQt.cpp:
19242         (WebCore::RenderThemeQt::paintMenuList):
19243
19244 2007-07-04  Mitz Pettel  <mitz@webkit.org>
19245
19246         Reviewed by Maciej.
19247
19248         - fix http://bugs.webkit.org/show_bug.cgi?id=14495
19249           REGRESSION: Wrong cursor is displayed during drag and drop when text is selected
19250           <rdar://problem/5312384>
19251
19252         No test possible because DumpRenderTree cannot query the current cursor.
19253
19254         * page/EventHandler.cpp:
19255         (WebCore::EventHandler::selectCursor): Changed into a member function and
19256         added that if the last mouse down event could not have started a
19257         selection, then the cursor should not change to an I-beam unconditionally.
19258         (WebCore::EventHandler::handleMouseMoveEvent):
19259         * page/EventHandler.h:
19260
19261 2007-07-04  Holger Hans Peter Freyther  <zecke@selfish.org>
19262
19263         Reviewed by Rob Buis.
19264
19265         A little progress in tracking dependencies.
19266
19267         * WebCore.pro: Add DEPENDPATH for the Gdk port.
19268
19269 2007-07-03  Darin Adler  <darin@apple.com>
19270
19271         Reviewed by Tim Hatcher.
19272
19273         - fix <rdar://problem/5221297> Font family name in the cssText for a DOMCSSStyleDeclaration needs quotes
19274
19275         Test: editing/style/font-family-with-space.html
19276
19277         * css/FontFamilyValue.cpp:
19278         (WebCore::isValidCSSIdentifier): Added. Implements the same rule that the CSS lexer does.
19279         (WebCore::quoteStringIfNeeded): Changed to call isValidCSSIdentifier instead of just
19280         checking for a leading "#" character.
19281         * editing/markup.cpp:
19282         (WebCore::escapeTextForMarkup): Changed to take a String parameter for better efficiency.
19283         (WebCore::renderedText): Changed to return a String for better efficiency.
19284         (WebCore::addNamespace): Updated to pass String to escapeTextForMarkup.
19285         (WebCore::startMarkup): Updated to pass String to escapeTextForMarkup. Added missing call
19286         to escapeTextForMarkup in the special case for the style property.
19287         (WebCore::createMarkup): Changed from single quotes to double quotes and also added missing
19288         call to escapeTextForMarkup in two special cases for the style property.
19289
19290 2007-07-03  Sam Weinig  <sam@webkit.org>
19291
19292         Reviewed by Darin.
19293
19294         Twelfth round of fixes for implicit 64-32 bit conversion errors.
19295         <rdar://problem/5292262>
19296
19297         - Add casts and accompanying FIXMEs to avoid remaining compiler errors.
19298
19299         * WebCore.xcodeproj/project.pbxproj:
19300         * loader/FrameLoader.cpp:
19301         (WebCore::FrameLoader::opened):
19302         (WebCore::FrameLoader::sendRemainingDelegateMessages):
19303         * loader/FrameLoader.h:
19304         * loader/ResourceLoader.cpp:
19305         (WebCore::ResourceLoader::didReceiveData):
19306         * platform/network/mac/ResourceHandleMac.mm:
19307         (-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]):
19308         (-[WebCoreResourceHandleAsDelegate connection:willStopBufferingData:]):
19309         * platform/network/mac/ResourceResponseMac.mm:
19310         (WebCore::ResourceResponse::nsURLResponse):
19311
19312 2007-07-03  Anders Carlsson  <andersca@apple.com>
19313
19314         Reviewed by Adam.
19315
19316         <rdar://problem/5093862>
19317         Nothing shown in plugin area when trying to play content using the DivX plugin
19318         
19319         Defer calling SetWindow for the DivX plugin, just like we do with the WMP plugin.
19320                 
19321         * plugins/win/PluginViewWin.cpp:
19322         (WebCore::PluginViewWin::determineQuirks):
19323
19324 2007-07-03  Sam Weinig  <sam@webkit.org>
19325
19326         Reviewed by Brady Eidson.
19327
19328         Ninth round of fixes for implicit 64-32 bit conversion errors.
19329         <rdar://problem/5292262>
19330
19331         - Fix function signature to use unsigned long instead of unsigned long long.
19332
19333         * loader/ProgressTracker.cpp:
19334         (WebCore::ProgressTracker::completeProgress):
19335         * loader/ProgressTracker.h:
19336
19337 2007-07-03  Sam Weinig  <sam@webkit.org>
19338
19339         Reviewed by Oliver.
19340
19341         Eighth round of fixes for implicit 64-32 bit conversion errors.
19342         <rdar://problem/5292262>
19343
19344         - Convert SVG implementation files to use floats instead of doubles
19345           to match the spec/IDLs.
19346
19347         * bindings/scripts/CodeGeneratorJS.pm:
19348         * ksvg2/svg/SVGAngle.cpp:
19349         * ksvg2/svg/SVGAnimatedTemplate.h:
19350         * ksvg2/svg/SVGAnimationElement.cpp:
19351         (WebCore::SVGAnimationElement::getEndTime):
19352         (WebCore::SVGAnimationElement::getStartTime):
19353         (WebCore::SVGAnimationElement::getCurrentTime):
19354         (WebCore::SVGAnimationElement::getSimpleDuration):
19355         * ksvg2/svg/SVGAnimationElement.h:
19356         * ksvg2/svg/SVGFitToViewBox.cpp:
19357         (WebCore::SVGFitToViewBox::parseViewBox):
19358         * ksvg2/svg/SVGLength.cpp:
19359         (WebCore::SVGLength::setValueAsString):
19360         * ksvg2/svg/SVGLinearGradientElement.cpp:
19361         (WebCore::SVGLinearGradientElement::buildGradient):
19362         * ksvg2/svg/SVGMatrix.idl:
19363         * ksvg2/svg/SVGNumber.idl:
19364         * ksvg2/svg/SVGParserUtilities.cpp:
19365         (WebCore::SVGPathParser::parseSVG):
19366         (WebCore::SVGPathParser::calculateArc):
19367         (WebCore::SVGPathParser::svgLineToHorizontal):
19368         (WebCore::SVGPathParser::svgLineToVertical):
19369         (WebCore::SVGPathParser::svgCurveToCubicSmooth):
19370         (WebCore::SVGPathParser::svgCurveToQuadratic):
19371         (WebCore::SVGPathParser::svgCurveToQuadraticSmooth):
19372         (WebCore::SVGPathParser::svgArcTo):
19373         * ksvg2/svg/SVGParserUtilities.h:
19374         * ksvg2/svg/SVGPathElement.cpp:
19375         (WebCore::SVGPathElement::SVGPathElement):
19376         (WebCore::SVGPathElement::getTotalLength):
19377         (WebCore::SVGPathElement::getPointAtLength):
19378         (WebCore::SVGPathElement::getPathSegAtLength):
19379         (WebCore::SVGPathElement::createSVGPathSegMovetoAbs):
19380         (WebCore::SVGPathElement::createSVGPathSegMovetoRel):
19381         (WebCore::SVGPathElement::createSVGPathSegLinetoAbs):
19382         (WebCore::SVGPathElement::createSVGPathSegLinetoRel):
19383         (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicAbs):
19384         (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicRel):
19385         (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticAbs):
19386         (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticRel):
19387         (WebCore::SVGPathElement::createSVGPathSegArcAbs):
19388         (WebCore::SVGPathElement::createSVGPathSegArcRel):
19389         (WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalAbs):
19390         (WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalRel):
19391         (WebCore::SVGPathElement::createSVGPathSegLinetoVerticalAbs):
19392         (WebCore::SVGPathElement::createSVGPathSegLinetoVerticalRel):
19393         (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothAbs):
19394         (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothRel):
19395         (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothAbs):
19396         (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothRel):
19397         (WebCore::SVGPathElement::svgMoveTo):
19398         (WebCore::SVGPathElement::svgLineTo):
19399         (WebCore::SVGPathElement::svgLineToHorizontal):
19400         (WebCore::SVGPathElement::svgLineToVertical):
19401         (WebCore::SVGPathElement::svgCurveToCubic):
19402         (WebCore::SVGPathElement::svgCurveToCubicSmooth):
19403         (WebCore::SVGPathElement::svgCurveToQuadratic):
19404         (WebCore::SVGPathElement::svgCurveToQuadraticSmooth):
19405         (WebCore::SVGPathElement::svgArcTo):
19406         (WebCore::SVGPathElement::parseMappedAttribute):
19407         * ksvg2/svg/SVGPathElement.h:
19408         * ksvg2/svg/SVGPathSegArc.cpp:
19409         (WebCore::SVGPathSegArcAbs::SVGPathSegArcAbs):
19410         (WebCore::SVGPathSegArcAbs::setX):
19411         (WebCore::SVGPathSegArcAbs::x):
19412         (WebCore::SVGPathSegArcAbs::setY):
19413         (WebCore::SVGPathSegArcAbs::y):
19414         (WebCore::SVGPathSegArcAbs::setR1):
19415         (WebCore::SVGPathSegArcAbs::r1):
19416         (WebCore::SVGPathSegArcAbs::setR2):
19417         (WebCore::SVGPathSegArcAbs::r2):
19418         (WebCore::SVGPathSegArcAbs::setAngle):
19419         (WebCore::SVGPathSegArcAbs::angle):
19420         (WebCore::SVGPathSegArcRel::SVGPathSegArcRel):
19421         (WebCore::SVGPathSegArcRel::setX):
19422         (WebCore::SVGPathSegArcRel::x):
19423         (WebCore::SVGPathSegArcRel::setY):
19424         (WebCore::SVGPathSegArcRel::y):
19425         (WebCore::SVGPathSegArcRel::setR1):
19426         (WebCore::SVGPathSegArcRel::r1):
19427         (WebCore::SVGPathSegArcRel::setR2):
19428         (WebCore::SVGPathSegArcRel::r2):
19429         (WebCore::SVGPathSegArcRel::setAngle):
19430         (WebCore::SVGPathSegArcRel::angle):
19431         * ksvg2/svg/SVGPathSegArc.h:
19432         * ksvg2/svg/SVGPathSegCurvetoCubic.cpp:
19433         (WebCore::SVGPathSegCurvetoCubicAbs::SVGPathSegCurvetoCubicAbs):
19434         (WebCore::SVGPathSegCurvetoCubicAbs::setX):
19435         (WebCore::SVGPathSegCurvetoCubicAbs::x):
19436         (WebCore::SVGPathSegCurvetoCubicAbs::setY):
19437         (WebCore::SVGPathSegCurvetoCubicAbs::y):
19438         (WebCore::SVGPathSegCurvetoCubicAbs::setX1):
19439         (WebCore::SVGPathSegCurvetoCubicAbs::x1):
19440         (WebCore::SVGPathSegCurvetoCubicAbs::setY1):
19441         (WebCore::SVGPathSegCurvetoCubicAbs::y1):
19442         (WebCore::SVGPathSegCurvetoCubicAbs::setX2):
19443         (WebCore::SVGPathSegCurvetoCubicAbs::x2):
19444         (WebCore::SVGPathSegCurvetoCubicAbs::setY2):
19445         (WebCore::SVGPathSegCurvetoCubicAbs::y2):
19446         (WebCore::SVGPathSegCurvetoCubicRel::SVGPathSegCurvetoCubicRel):
19447         (WebCore::SVGPathSegCurvetoCubicRel::setX):
19448         (WebCore::SVGPathSegCurvetoCubicRel::x):
19449         (WebCore::SVGPathSegCurvetoCubicRel::setY):
19450         (WebCore::SVGPathSegCurvetoCubicRel::y):
19451         (WebCore::SVGPathSegCurvetoCubicRel::setX1):
19452         (WebCore::SVGPathSegCurvetoCubicRel::x1):
19453         (WebCore::SVGPathSegCurvetoCubicRel::setY1):
19454         (WebCore::SVGPathSegCurvetoCubicRel::y1):
19455         (WebCore::SVGPathSegCurvetoCubicRel::setX2):
19456         (WebCore::SVGPathSegCurvetoCubicRel::x2):
19457         (WebCore::SVGPathSegCurvetoCubicRel::setY2):
19458         (WebCore::SVGPathSegCurvetoCubicRel::y2):
19459         * ksvg2/svg/SVGPathSegCurvetoCubic.h:
19460         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.cpp:
19461         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::SVGPathSegCurvetoCubicSmoothAbs):
19462         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::setX):
19463         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::x):
19464         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::setY):
19465         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::y):
19466         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::setX2):
19467         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::x2):
19468         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::setY2):
19469         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::y2):
19470         (WebCore::SVGPathSegCurvetoCubicSmoothRel::SVGPathSegCurvetoCubicSmoothRel):
19471         (WebCore::SVGPathSegCurvetoCubicSmoothRel::setX):
19472         (WebCore::SVGPathSegCurvetoCubicSmoothRel::x):
19473         (WebCore::SVGPathSegCurvetoCubicSmoothRel::setY):
19474         (WebCore::SVGPathSegCurvetoCubicSmoothRel::y):
19475         (WebCore::SVGPathSegCurvetoCubicSmoothRel::setX2):
19476         (WebCore::SVGPathSegCurvetoCubicSmoothRel::x2):
19477         (WebCore::SVGPathSegCurvetoCubicSmoothRel::setY2):
19478         (WebCore::SVGPathSegCurvetoCubicSmoothRel::y2):
19479         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h:
19480         * ksvg2/svg/SVGPathSegCurvetoQuadratic.cpp:
19481         (WebCore::SVGPathSegCurvetoQuadraticAbs::SVGPathSegCurvetoQuadraticAbs):
19482         (WebCore::SVGPathSegCurvetoQuadraticAbs::setX):
19483         (WebCore::SVGPathSegCurvetoQuadraticAbs::x):
19484         (WebCore::SVGPathSegCurvetoQuadraticAbs::setY):
19485         (WebCore::SVGPathSegCurvetoQuadraticAbs::y):
19486         (WebCore::SVGPathSegCurvetoQuadraticAbs::setX1):
19487         (WebCore::SVGPathSegCurvetoQuadraticAbs::x1):
19488         (WebCore::SVGPathSegCurvetoQuadraticAbs::setY1):
19489         (WebCore::SVGPathSegCurvetoQuadraticAbs::y1):
19490         (WebCore::SVGPathSegCurvetoQuadraticRel::SVGPathSegCurvetoQuadraticRel):
19491         (WebCore::SVGPathSegCurvetoQuadraticRel::setX):
19492         (WebCore::SVGPathSegCurvetoQuadraticRel::x):
19493         (WebCore::SVGPathSegCurvetoQuadraticRel::setY):
19494         (WebCore::SVGPathSegCurvetoQuadraticRel::y):
19495         (WebCore::SVGPathSegCurvetoQuadraticRel::setX1):
19496         (WebCore::SVGPathSegCurvetoQuadraticRel::x1):
19497         (WebCore::SVGPathSegCurvetoQuadraticRel::setY1):
19498         (WebCore::SVGPathSegCurvetoQuadraticRel::y1):
19499         * ksvg2/svg/SVGPathSegCurvetoQuadratic.h:
19500         (WebCore::SVGPathSegCurvetoQuadraticRel::toString):
19501         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.cpp:
19502         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::SVGPathSegCurvetoQuadraticSmoothAbs):
19503         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::setX):
19504         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::x):
19505         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::setY):
19506         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::y):
19507         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::SVGPathSegCurvetoQuadraticSmoothRel):
19508         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::setX):
19509         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::x):
19510         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::setY):
19511         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::y):
19512         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h:
19513         * ksvg2/svg/SVGPathSegLineto.cpp:
19514         (WebCore::SVGPathSegLinetoAbs::SVGPathSegLinetoAbs):
19515         (WebCore::SVGPathSegLinetoAbs::setX):
19516         (WebCore::SVGPathSegLinetoAbs::x):
19517         (WebCore::SVGPathSegLinetoAbs::setY):
19518         (WebCore::SVGPathSegLinetoAbs::y):
19519         (WebCore::SVGPathSegLinetoRel::SVGPathSegLinetoRel):
19520         (WebCore::SVGPathSegLinetoRel::setX):
19521         (WebCore::SVGPathSegLinetoRel::x):
19522         (WebCore::SVGPathSegLinetoRel::setY):
19523         (WebCore::SVGPathSegLinetoRel::y):
19524         * ksvg2/svg/SVGPathSegLineto.h:
19525         * ksvg2/svg/SVGPathSegLinetoHorizontal.cpp:
19526         (WebCore::SVGPathSegLinetoHorizontalAbs::SVGPathSegLinetoHorizontalAbs):
19527         (WebCore::SVGPathSegLinetoHorizontalAbs::setX):
19528         (WebCore::SVGPathSegLinetoHorizontalAbs::x):
19529         (WebCore::SVGPathSegLinetoHorizontalRel::SVGPathSegLinetoHorizontalRel):
19530         (WebCore::SVGPathSegLinetoHorizontalRel::setX):
19531         (WebCore::SVGPathSegLinetoHorizontalRel::x):
19532         * ksvg2/svg/SVGPathSegLinetoHorizontal.h:
19533         * ksvg2/svg/SVGPathSegLinetoVertical.cpp:
19534         (WebCore::SVGPathSegLinetoVerticalAbs::SVGPathSegLinetoVerticalAbs):
19535         (WebCore::SVGPathSegLinetoVerticalAbs::setY):
19536         (WebCore::SVGPathSegLinetoVerticalAbs::y):
19537         (WebCore::SVGPathSegLinetoVerticalRel::SVGPathSegLinetoVerticalRel):
19538         (WebCore::SVGPathSegLinetoVerticalRel::setY):
19539         (WebCore::SVGPathSegLinetoVerticalRel::y):
19540         * ksvg2/svg/SVGPathSegLinetoVertical.h:
19541         * ksvg2/svg/SVGPathSegList.cpp:
19542         (WebCore::SVGPathSegList::getPathSegAtLength):
19543         * ksvg2/svg/SVGPathSegList.h:
19544         * ksvg2/svg/SVGPathSegMoveto.cpp:
19545         (WebCore::SVGPathSegMovetoAbs::SVGPathSegMovetoAbs):
19546         (WebCore::SVGPathSegMovetoAbs::setX):
19547         (WebCore::SVGPathSegMovetoAbs::x):
19548         (WebCore::SVGPathSegMovetoAbs::setY):
19549         (WebCore::SVGPathSegMovetoAbs::y):
19550         (WebCore::SVGPathSegMovetoRel::SVGPathSegMovetoRel):
19551         (WebCore::SVGPathSegMovetoRel::setX):
19552         (WebCore::SVGPathSegMovetoRel::x):
19553         (WebCore::SVGPathSegMovetoRel::setY):
19554         (WebCore::SVGPathSegMovetoRel::y):
19555         * ksvg2/svg/SVGPathSegMoveto.h:
19556         * ksvg2/svg/SVGPolyElement.cpp:
19557         (WebCore::SVGPolyElement::svgPolyTo):
19558         * ksvg2/svg/SVGRadialGradientElement.cpp:
19559         (WebCore::SVGRadialGradientElement::buildGradient):
19560         * ksvg2/svg/SVGSVGElement.cpp:
19561         (WebCore::SVGSVGElement::viewport):
19562         (WebCore::SVGSVGElement::getCurrentTime):
19563         * ksvg2/svg/SVGStopElement.cpp:
19564         (WebCore::SVGStopElement::SVGStopElement):
19565         (WebCore::SVGStopElement::parseMappedAttribute):
19566         * ksvg2/svg/SVGStopElement.h:
19567         * ksvg2/svg/SVGTransform.cpp:
19568         (SVGTransform::translate):
19569         (SVGTransform::scale):
19570         * ksvg2/svg/SVGTransformDistance.cpp:
19571         (WebCore::SVGTransformDistance::addToSVGTransform):
19572         (WebCore::SVGTransformDistance::distance):
19573         * ksvg2/svg/SVGTransformable.cpp:
19574         (WebCore::SVGTransformable::parseTransformAttribute):
19575
19576 2007-07-03  Anders Carlsson  <andersca@apple.com>
19577
19578         Reviewed by Darin.
19579
19580         <rdar://problem/5289718>
19581         http://bugs.webkit.org/show_bug.cgi?id=14437
19582         CrashTracer: [REGRESSION] 76 crashes in Safari at com.apple.WebCore: WebCore::Frame::settings const + 6 (14437)
19583         
19584         Based on a patch from Maxime Britto.
19585         
19586         * page/mac/WebCoreFrameBridge.mm:
19587         (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
19588         If the script caused the frame to go away, return nil. This can only happen if a plugin in a subframe destroys
19589         its frame.
19590
19591         (-[WebCoreFrameBridge aeDescByEvaluatingJavaScriptFromString:]):
19592         ASSERT that this is only called on the main frame.
19593
19594 2007-07-03  John Sullivan  <sullivan@apple.com>
19595
19596         Written by Darin, reviewed by me
19597         
19598         - fixed <rdar://problem/5249730> REGRESSION (Leopard, around 9A464): Safari opens the same local 
19599           documents more than once due to canonicalization change
19600
19601         * loader/mac/LoaderNSURLExtras.m:
19602         (canonicalURL):
19603         pass URL through KURL so we get KURL's version of canonicalization as well as
19604         NSURLProtocol's version of canonicalization
19605
19606 2007-07-03  Sam Weinig  <sam@webkit.org>
19607
19608         Reviewed by Darin.
19609
19610         Seventh round of fixes for implicit 64-32 bit conversion errors.
19611         <rdar://problem/5292262>
19612
19613         - Adds more narrowPrecision functions to FloatPoint, FloatSize and FloatRect.
19614         - Changes over more implicit conversions to use new functions.
19615
19616         * bindings/js/kjs_window.cpp:
19617         (KJS::WindowFunc::callAsFunction):
19618         * platform/graphics/FloatPoint.cpp:
19619         (WebCore::FloatPoint::matrixTransform):
19620         (WebCore::FloatPoint::narrowPrecision):
19621         * platform/graphics/FloatPoint.h:
19622         * platform/graphics/FloatRect.cpp:
19623         (WebCore::FloatRect::narrowPrecision):
19624         * platform/graphics/FloatRect.h:
19625         * platform/graphics/FloatSize.cpp:
19626         (WebCore::FloatSize::narrowPrecision):
19627         * platform/graphics/FloatSize.h:
19628         * platform/graphics/Path.cpp:
19629         (WebCore::Path::createRoundedRectangle):
19630         (WebCore::Path::createRectangle):
19631         (WebCore::Path::createEllipse):
19632         * platform/graphics/mac/ColorMac.mm:
19633         (WebCore::nsColor):
19634         * platform/graphics/mac/IconMac.mm:
19635         (WebCore::Icon::paint):
19636         * platform/graphics/svg/cg/CgSupport.cpp:
19637         (WebCore::applyStrokeStyleToContext):
19638         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
19639         (WebCore::CGShadingRefForRadialGradient):
19640         (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
19641         (WebCore::SVGPaintServerGradient::handleBoundingBoxModeAndGradientTransformation):
19642         * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
19643         (WebCore::applyLuminanceToAlphaFilter):
19644         (WebCore::applyExpandAlphatoGrayscaleFilter):
19645         (WebCore::transformImageIntoGrayscaleMask):
19646         * platform/mac/WebCoreTextRenderer.mm:
19647         (WebCoreDrawTextAtPoint):
19648         * rendering/RenderPath.cpp:
19649         (WebCore::RenderPath::mapAbsolutePointToLocal):
19650         * rendering/RenderSVGContainer.cpp:
19651         (WebCore::RenderSVGContainer::calcViewport):
19652         * rendering/RenderSVGImage.cpp:
19653         (WebCore::RenderSVGImage::nodeAtPoint):
19654         * rendering/RenderSVGText.cpp:
19655         (WebCore::RenderSVGText::relativeBBox):
19656
19657 2007-07-03  Anders Carlsson  <andersca@apple.com>
19658
19659         Reviewed by Adam.
19660
19661         <rdar://problem/5261523>
19662         Crash playing MP11 on cnbc.com
19663         
19664         The WMP Netscape plugin still creates a window even when windowless mode is turned on. Work around this by
19665         always removing the "windowlessvideo" parameter before passing it to the plugin.
19666         According to http://msdn2.microsoft.com/en-us/library/bb249373.aspx, "The windowlessVideo property is not 
19667         supported for Netscape Navigator. Setting a value for this property in Navigator may yield unexpected results."
19668         
19669         * plugins/win/PluginViewWin.cpp:
19670         (WebCore::PluginViewWndProc):
19671         (WebCore::PluginViewWin::paint):
19672         (WebCore::PluginViewWin::invalidateRect):
19673         (WebCore::PluginViewWin::determineQuirks):
19674         (WebCore::PluginViewWin::setParameters):
19675         (WebCore::PluginViewWin::PluginViewWin):
19676         (WebCore::PluginViewWin::init):
19677         * plugins/win/PluginViewWin.h:
19678         (WebCore::):
19679
19680 2007-07-03  Qing Zhao  <qing@staikos.net>
19681
19682         Reviewed by George Staikos.
19683
19684         Only draw sunken state for appropriate widgets. Not, for example, for
19685         lineedits.
19686
19687         * platform/qt/RenderThemeQt.cpp:
19688         (WebCore::RenderThemeQt::applyTheme):
19689
19690 2007-07-03  Antti Koivisto  <antti@apple.com>
19691
19692         Reviewed by Maciej.
19693         
19694         REGRESSION: misplaced selection ring remains after link is no longer focused.
19695         <rdar://problem/5205580>
19696         
19697         Fix placement of selection ring when part of the ring is in a different layer.
19698
19699         * rendering/RenderFlow.cpp:
19700         (WebCore::RenderFlow::addFocusRingRects): Get coordinates right when moving to a different layer.
19701         * rendering/RenderObject.cpp:
19702         (WebCore::RenderObject::setStyle): 
19703         Don't reset state variables when not necessary.  When repaint() was called at the end of setSyle() it would
19704         get repaint rects wrong in some cases.
19705
19706 2007-07-03  Antti Koivisto  <antti@apple.com>
19707
19708         Reviewed by Maciej.
19709
19710         Blind fix for CrashTracer: [USER] 25 crashes in Safari at com.apple.WebCore: WebCore::Frame::document const + 6
19711         <rdar://problem/5263939>
19712         
19713         No one has managed to reproduce this but it looks like null check is needed here. There are plausible ways
19714         m_frame could be null for a live FrameView object.
19715
19716         * page/FrameView.cpp:
19717         (WebCore::FrameView::needsLayout):
19718
19719 2007-07-02  Oliver Hunt  <oliver@apple.com>
19720
19721         Reviewed by Darin.
19722
19723         Fix for <rdar://problem/5098378> single-pixel image optimization needs to be rewritten to not depend on floating point bitmap
19724         Tested by fast/replaced/image-solid-color-with-alpha.html
19725
19726         Switch from float to byte based bitmap when pulling the color from 1x1 pixel images so
19727         that we can use the single pixel image optimisation in WebKit/win.
19728
19729         * platform/graphics/cg/ImageCG.cpp:
19730         (WebCore::BitmapImage::checkForSolidColor):
19731
19732 2007-07-02  Adam Roben  <aroben@apple.com>
19733
19734         Fix Bug 14498: RenderContainer::positionForCoordinates contains an order of operations error
19735         http://bugs.webkit.org/show_bug.cgi?id=14498
19736
19737         There were two bugs:
19738         1) xPos/yPos were flipped
19739         2) + binds tighter than ?:, so the order of operations was incorrect
19740
19741         Reviewed by Darin.
19742
19743         Test: fast/inline-block/14498-positionForCoordinates.html
19744
19745         * rendering/RenderContainer.cpp:
19746         (WebCore::RenderContainer::positionForCoordinates):
19747
19748 2007-07-02  Darin Adler  <darin@apple.com>
19749
19750         Reviewed by Kevin Decker and Tim Hatcher.
19751
19752         - fix <rdar://problem/5307906> some classes need finalize methods because
19753           of non-trivial work done in dealloc methods
19754
19755         * bindings/objc/DOMRGBColor.mm:
19756         (+[DOMRGBColor initialize]): Added. Tells finalizer to run on main thread,
19757         which is needed because we are sharing a CFDictionary here with no locking.
19758
19759         * bridge/mac/WebCoreAXObject.mm:
19760         (+[WebCoreAXObject initialize]): Added. Tells finalizer to run on main thread.
19761         (-[WebCoreAXObject finalize]): Added. Calls detach.
19762
19763         * WebCore.xcodeproj/project.pbxproj: Let Xcode do what it wants to do.
19764
19765 2007-07-02  Sam Weinig  <sam@webkit.org>
19766
19767         Reviewed by Darin.
19768
19769         Sixth round of fixes for implicit 64-32 bit conversion errors.
19770         <rdar://problem/5292262>
19771
19772         Use new narrowPrecisionToFloat() and narrowPrecisionToCGFloat() where
19773         appropriate.
19774
19775         * html/CanvasRenderingContext2D.cpp:
19776         (WebCore::CanvasRenderingContext2D::setShadow):
19777         (WebCore::CanvasRenderingContext2D::applyShadow):
19778         * html/CanvasStyle.cpp:
19779         (WebCore::CanvasStyle::applyStrokeColor):
19780         (WebCore::CanvasStyle::applyFillColor):
19781         * ksvg2/svg/SVGAngle.cpp:
19782         * ksvg2/svg/SVGAnimationElement.cpp:
19783         (WebCore::SVGAnimationElement::parseKeyNumbers):
19784         (WebCore::parseKeySplines):
19785         (WebCore::SVGAnimationElement::handleTimerEvent):
19786         (WebCore::SVGAnimationElement::updateAnimatedValueForElapsedSeconds):
19787         * ksvg2/svg/SVGPatternElement.cpp:
19788         (WebCore::SVGPatternElement::buildPattern):
19789         * ksvg2/svg/SVGRadialGradientElement.cpp:
19790         (WebCore::SVGRadialGradientElement::buildGradient):
19791         * platform/graphics/cg/AffineTransformCG.cpp:
19792         (WebCore::AffineTransform::AffineTransform):
19793         (WebCore::AffineTransform::setMatrix):
19794         (WebCore::AffineTransform::map):
19795         (WebCore::AffineTransform::setA):
19796         (WebCore::AffineTransform::setB):
19797         (WebCore::AffineTransform::setC):
19798         (WebCore::AffineTransform::setD):
19799         (WebCore::AffineTransform::setE):
19800         (WebCore::AffineTransform::setF):
19801         (WebCore::AffineTransform::scale):
19802         (WebCore::AffineTransform::rotate):
19803         (WebCore::AffineTransform::translate):
19804         (WebCore::AffineTransform::shear):
19805
19806 2007-07-02  John Sullivan  <sullivan@apple.com>
19807
19808         * page/mac/WebCoreFrameBridge.mm:
19809         (-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
19810         added a comment
19811
19812 2007-07-02  Sam Weinig  <sam@webkit.org>
19813
19814         Rubberstamped by Darin.
19815
19816         Rename FloatConversionUtilities.h to FloatConversion.h.
19817         Fix Win32 build.
19818
19819         * WebCore.vcproj/WebCore.vcproj:
19820         * WebCore.xcodeproj/project.pbxproj:
19821         * platform/DeprecatedString.cpp:
19822         * platform/FloatConversion.h: Copied from platform/FloatConversionUtilities.h.
19823         * platform/FloatConversionUtilities.h: Removed.
19824         * platform/StringImpl.cpp:
19825
19826 2007-07-02  Sam Weinig  <sam@webkit.org>
19827
19828         Reviewed by Darin.
19829
19830         Fifth round of fixes for implicit 64-32 bit conversion errors.
19831         <rdar://problem/5292262>
19832
19833         Add toFloat() method to string classes and use it where appropriate.
19834
19835         * WebCore.xcodeproj/project.pbxproj:
19836         * css/cssparser.cpp:
19837         (WebCore::CSSParser::lex):
19838         * ksvg2/svg/SVGAngle.cpp:
19839         (WebCore::SVGAngle::setValueAsString):
19840         * platform/AtomicString.h:
19841         (WebCore::AtomicString::toFloat):
19842         * platform/DeprecatedString.cpp:
19843         (WebCore::DeprecatedString::toFloat):
19844         * platform/DeprecatedString.h:
19845         * platform/FloatConversionUtilities.h: Added.
19846         (WebCore::narrowPrecisionToFloat):
19847         (WebCore::narrowPrecisionToCGFloat):
19848         * platform/PlatformString.h:
19849         * platform/String.cpp:
19850         (WebCore::String::toFloat):
19851         * platform/StringImpl.cpp:
19852         (WebCore::StringImpl::toFloat):
19853         * platform/StringImpl.h:
19854
19855 2007-07-02  Sam Weinig  <sam@webkit.org>
19856
19857         Reviewed by Kevin McCullough.
19858
19859         Fourth round of fixes for implicit 64-32 bit conversion errors.
19860         <rdar://problem/5292262>
19861
19862         Use new piDouble and piFloat constants instead of M_PI.
19863
19864         * html/CanvasRenderingContext2D.cpp:
19865         (WebCore::CanvasRenderingContext2D::rotate):
19866         * ksvg2/svg/SVGParserUtilities.cpp:
19867         (WebCore::SVGPathParser::calculateArc):
19868         * platform/graphics/Path.cpp:
19869         (WebCore::pathLengthApplierFunction):
19870         (WebCore::Path::createEllipse):
19871         * platform/graphics/cg/GraphicsContextCG.cpp:
19872         (WebCore::GraphicsContext::drawEllipse):
19873         (WebCore::GraphicsContext::strokeArc):
19874         * platform/graphics/cg/PDFDocumentImage.cpp:
19875         (WebCore::PDFDocumentImage::setCurrentPage):
19876         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
19877         * rendering/RenderPath.cpp:
19878         (WebCore::drawMarkerWithData):
19879
19880 2007-07-01  Adam Roben  <aroben@apple.com>
19881
19882         Clarify/fix {Shadow,BorderImage}ParseContext's memory management
19883
19884         Prefast emitted warnings that drew my attention to
19885         {Shadow,BorderImage}ParseContext::failed().  It turned out that these
19886         methods were actually correct, but rather confusing. "failed" really
19887         meant "abort and clean up" rather than "did you fail?", which was
19888         unclear. However, once I figured that out, the "and clean up" part was
19889         still a bit confusing, because all failed() did was to set a flag that
19890         would later cause the ParseContext's members to be deleted in the
19891         destructor. To clear this up, I've gotten rid of the failed() method
19892         altogether. It always returned false, so I've replaced all calls to
19893         it with the value false.
19894
19895         I also noticed that the lifetime management of the ParseContexts'
19896         members was in all cases confusing, and in some cases wrong. The
19897         m_border{Top,Right,Bottom,Left} members of BorderImageParseContext
19898         were leaked whenever a border-image property was successfully parsed.
19899         I fixed that by holding these members in OwnPtrs. The
19900         CSSPrimitiveValue members of {Shadow,BorderImage}ParseContext, which
19901         inherit from Shared, were being explicitly deleted, which is not a
19902         safe way to manage the lifetime of objects that inherit from Shared.
19903         To fix this, I put those members inside RefPtrs. These two changes
19904         allowed me to remove the destructors entirely.
19905
19906         Reviewed by Darin.
19907
19908         All regression tests pass.
19909
19910         * css/cssparser.cpp:
19911         (WebCore::ShadowParseContext::commitValue): Use .release() to avoid
19912         ref-count churn.
19913         (WebCore::ShadowParseContext::commitLength): Use a RefPtr for the new
19914         value to avoid a leak.
19915         (WebCore::CSSParser::parseShadow): Use 'false' instead of
19916         'context.failed()', and use .release() to avoid ref-count churn.
19917         (WebCore::BorderImageParseContext::commitWidth): Updated to use
19918         OwnPtr.
19919         (WebCore::CSSParser::parseBorderImage): Use 'false' instead of
19920         'context.failed'.
19921
19922 2007-07-01  Anders Carlsson  <andersca@apple.com>
19923
19924         Reviewed by John Sullivan.
19925
19926         <rdar://problem/5297146>
19927         Crash in Mail at WebCore::Frame::setUserStyleSheetLocation (reproducible w/ particular message)
19928         
19929         * loader/Cache.cpp:
19930         (WebCore::Cache::requestResource):
19931         Only insert the resource in the LRU list if the cache is enabled.
19932         
19933         (WebCore::Cache::insertInLRUList):
19934         (WebCore::Cache::resourceAccessed):
19935         Assert that the resource is in the cache.
19936
19937 2007-07-01  Darin Adler  <darin@apple.com>
19938
19939         * css/tokenizer.flex: Rolled out the fix for 14453.
19940         The layout test wasn't passing. We'll try again.
19941
19942 2007-07-01  Adam Roben  <aroben@apple.com>
19943
19944         Fix a crash in ~PluginViewWin()
19945
19946         This crash was introduced in r23827.
19947
19948         Reviewed by Anders.
19949
19950         Fixes dom/html/level2/html/HTMLAnchorElement01.html
19951
19952         * plugins/win/PluginViewWin.cpp:
19953         (WebCore::PluginViewWin::~PluginViewWin): Allow m_plugin to be null.
19954
19955 2007-07-01  Rob Buis  <buis@kde.org>
19956
19957         Reviewed by Darin.
19958
19959         http://bugs.webkit.org/show_bug.cgi?id=14453
19960         REGRESSION: www.nzherald.co.nz almost all the formating is gone
19961  
19962         * css/tokenizer.flex: Allow hex colors with 2, 4, or 5 hex digits.
19963
19964 2007-07-01  Sam Weinig  <sam@webkit.org>
19965
19966         Reviewed by Oliver.
19967
19968         Third round of implicit 64-32 bit conversion errors fixes.
19969         <rdar://problem/5292262>
19970
19971         - Use new CSSPrimitiveValue::getDoubleValue() and CSSPrimitiveValue::getIntValue()
19972           methods instead of CSSPrimitiveValue::getFloatValue() where appropriate.
19973
19974         * css/CSSPrimitiveValue.cpp:
19975         (WebCore::CSSPrimitiveValue::computeLengthInt):
19976         (WebCore::CSSPrimitiveValue::computeLengthIntForLength):
19977         (WebCore::CSSPrimitiveValue::computeLengthShort):
19978         (WebCore::CSSPrimitiveValue::computeLengthFloat):
19979         (WebCore::CSSPrimitiveValue::computeLengthDouble):
19980         (WebCore::CSSPrimitiveValue::getDoubleValue):
19981         * css/CSSPrimitiveValue.h:
19982         (WebCore::CSSPrimitiveValue::getDoubleValue):
19983         (WebCore::CSSPrimitiveValue::getFloatValue):
19984         (WebCore::CSSPrimitiveValue::getIntValue):
19985         * css/Counter.h:
19986         (WebCore::Counter::listStyleNumber):
19987         * css/MediaQueryEvaluator.cpp:
19988         (WebCore::parseAspectRatio):
19989         * css/cssparser.cpp:
19990         (WebCore::BorderImageParseContext::commitBorderImage):
19991         * css/cssstyleselector.cpp:
19992         (WebCore::convertToLength):
19993         (WebCore::applyCounterList):
19994         (WebCore::CSSStyleSelector::applyProperty):
19995         (WebCore::CSSStyleSelector::mapBackgroundSize):
19996         (WebCore::CSSStyleSelector::mapBackgroundXPosition):
19997         (WebCore::CSSStyleSelector::mapBackgroundYPosition):
19998         * html/HTMLTableElement.cpp:
19999         (WebCore::HTMLTableElement::parseMappedAttribute):
20000         * ksvg2/css/SVGCSSStyleSelector.cpp:
20001         (WebCore::CSSStyleSelector::applySVGProperty):
20002         * ksvg2/misc/KCanvasRenderingStyle.cpp:
20003         (WebCore::KSVGPainterFactory::cssPrimitiveToLength):
20004         (WebCore::KSVGPainterFactory::dashArrayFromRenderingStyle):
20005
20006 2007-07-01  Pamela Greene  <pamg.bugs@gmail.com>
20007
20008         Reviewed by Darin.
20009
20010         Fix for <http://bugs.webkit.org/show_bug.cgi?id=14320>
20011         Bug 14320: <canvas> gradient stops at identical offsets are applied in the wrong order
20012         <rdar://problem/5290084>
20013
20014         Use std::stable_sort() instead of qsort() to sort gradient stops.
20015         Adjust the comparison function accordingly.
20016
20017         * html/CanvasGradient.cpp:
20018         (WebCore::compareStops):
20019         (WebCore::CanvasGradient::findStop):
20020
20021 2007-07-01  Holger Hans Peter Freyther  <zecke@selfish.org>
20022
20023         Reviewed by Darin.
20024
20025         m_usesPageCache was not initialized. As the b/f cache is only
20026         implemented in the Mac port and WebView.mm is taking care of calling
20027         Settings::setUsesPageCache I decided to make it false by default.
20028
20029         * page/Settings.cpp:
20030         (WebCore::Settings::Settings): m_usesPageCache was not initialized
20031
20032 2007-07-01  Holger Hans Peter Freyther  <zecke@selfish.org>
20033
20034         Reviewed by Darin.
20035
20036         Inherited- and NonInheritedFlags is a bit field. But for comparsion
20037         the other part of the union _iflags/_niflags is used for comparions.
20038         This will compare 5 uninitialized bits of _iflags and 22 of _niflags.
20039         Make sure the unused bits have a specified value.
20040
20041         * ksvg2/css/SVGRenderStyle.h:
20042         (WebCore::SVGRenderStyle::setBitDefaults): Make sure the unused bits
20043         have a value as well.
20044
20045 2007-06-30  Adam Roben  <aroben@apple.com>
20046
20047         Compile WebCore with /W4 on Windows
20048
20049         Some more warnings were disabled globally, including assignment within
20050         a conditional, unused variable, and various warnings related to
20051         inability to instantiate opaque structs.
20052
20053         In addition, the "unreachable code" warning was turned off for
20054         CSSGrammar.cpp and XPathGrammar.cpp.
20055
20056         Reviewed by Oliver.
20057
20058         * WebCore.vcproj/WebCore.vcproj:
20059
20060 2007-06-29  Adam Roben  <aroben@apple.com>
20061
20062         Give CString an equality operator to fix a bug in HTMLFormElement::formData
20063
20064         The bug was spotted by MSVC /W4. The problem was that we were comparing
20065         a CString to a char* using ==, but CString had no equality operator.
20066         The result was that the CString was being cast to a const char* and a
20067         pointer comparison was being done, which would (essentially) always
20068         return false.
20069
20070         There are two parts to the fix: get rid of CString's const char*
20071         casting operator, and add an equality operator. Previous uses of the
20072         casting operator have been changed to use CString::data().
20073
20074         Test: http/misc/isindex-formdata.html
20075
20076         Reviewed by Oliver.
20077
20078         * dom/XMLTokenizer.cpp:
20079         (WebCore::parseXMLDocumentFragment):
20080         * html/HTMLDocument.cpp:
20081         (WebCore::HTMLDocument::determineParseMode):
20082         * html/HTMLFormElement.cpp:
20083         (WebCore::HTMLFormElement::formData):
20084         * loader/TextResourceDecoder.cpp:
20085         (WebCore::TextResourceDecoder::checkForCSSCharset):
20086         * platform/CString.cpp:
20087         (WebCore::operator==):
20088         * platform/CString.h:
20089         * platform/KURL.cpp:
20090         (WebCore::encodeRelativeString):
20091         * platform/StringImpl.cpp:
20092         (WebCore::StringImpl::toDouble):
20093         * platform/network/cf/FormDataStreamCFNet.cpp:
20094         (WebCore::setHTTPBody):
20095         * platform/network/mac/FormDataStreamMac.mm:
20096         (WebCore::setHTTPBody):
20097         * platform/win/ClipboardUtilitiesWin.cpp:
20098         (WebCore::markupToCF_HTML):
20099         * plugins/win/PluginPackageWin.cpp:
20100         (WebCore::splitString):
20101         * plugins/win/PluginStreamWin.cpp:
20102         (WebCore::PluginStreamWin::startStream):
20103         (WebCore::PluginStreamWin::destroyStream):
20104         (WebCore::PluginStreamWin::sendJavaScriptStream):
20105         (WebCore::PluginStreamWin::didFinishLoading):
20106         * plugins/win/PluginViewWin.cpp:
20107         (WebCore::PluginViewWin::start):
20108         (WebCore::createUTF8String):
20109         (WebCore::PluginViewWin::userAgent):
20110         * xml/XSLStyleSheet.cpp:
20111         (WebCore::XSLStyleSheet::locateStylesheetSubResource):
20112         * xml/XSLTProcessor.cpp:
20113         (WebCore::xsltParamArrayFromParameterMap):
20114
20115 2007-06-29  Adam Roben  <aroben@apple.com>
20116
20117         Initialize two variables that MSVC /W4 isn't smart enough to realize always get initialized
20118
20119         Reviewed by John.
20120
20121         * editing/Editor.cpp:
20122         (WebCore::Editor::advanceToNextMisspelling):
20123         * html/HTMLParser.cpp:
20124
20125 2007-06-29  Adam Roben  <aroben@apple.com>
20126
20127         Fix some possibly unitialized variables found by MSVC /W4
20128
20129         Reviewed by John.
20130
20131         * rendering/bidi.cpp:
20132         (WebCore::RenderBlock::layoutInlineChildren):
20133
20134 2007-06-29  Adam Roben  <aroben@apple.com>
20135
20136         Remove bogus cast found by MSVC /W4
20137
20138         Reviewed by John and Oliver.
20139
20140         * ksvg2/css/SVGCSSParser.cpp:
20141         (WebCore::CSSParser::parseSVGValue):
20142
20143 2007-06-29  Adam Roben  <aroben@apple.com>
20144
20145         Remove unused local functions uncovered by MSVC /W4
20146
20147         Reviewed by John and Oliver.
20148
20149         * platform/win/SearchPopupMenuWin.cpp:
20150         * rendering/RenderText.cpp:
20151
20152 2007-06-29  Adam Roben  <aroben@apple.com>
20153
20154         Don't take the address of temporary values to appease MSVC /W4
20155
20156         Reviewed by Oliver.
20157
20158         No regression test possible.
20159
20160         * platform/win/PopupMenuWin.cpp:
20161         (WebCore::PopupMenu::invalidateItem):
20162         (WebCore::PopupMenu::valueChanged):
20163         (WebCore::PopupWndProc):
20164         * platform/win/ScrollViewWin.cpp:
20165         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
20166         * platform/win/UniscribeController.cpp:
20167         (WebCore::UniscribeController::shapeAndPlaceItem):
20168         * platform/win/WidgetWin.cpp:
20169         (WebCore::Widget::invalidateRect):
20170
20171 2007-06-29  Adam Roben  <aroben@apple.com>
20172
20173         Make an int -> UINT conversion explicit that MSVC /W4 complains about
20174
20175         Reviewed by John and Oliver.
20176
20177         No regression test possible.
20178
20179         * platform/win/SoundWin.cpp:
20180
20181 2007-06-29  Adam Roben  <aroben@apple.com>
20182
20183         Remove unreachable code uncovered by MSVC /W4
20184
20185         Reviewed by Oliver.
20186
20187         No regression test possible.
20188
20189         * html/CanvasRenderingContext2D.cpp:
20190         (WebCore::CanvasRenderingContext2D::createPattern):
20191         * html/HTMLAnchorElement.cpp:
20192         (WebCore::HTMLAnchorElement::isLiveLink):
20193         * html/HTMLElement.cpp:
20194         (WebCore::HTMLElement::contentEditable):
20195         * platform/DeprecatedString.cpp:
20196         (WebCore::allocateHandle):
20197         (WebCore::freeHandle):
20198         * plugins/win/npapi.cpp:
20199         (pluginViewForInstance):
20200         * rendering/RenderImage.cpp:
20201         (WebCore::RenderImage::isWidthSpecified):
20202         (WebCore::RenderImage::isHeightSpecified):
20203         * rendering/RenderTheme.cpp:
20204         (WebCore::RenderTheme::isControlStyled):
20205
20206 2007-06-29  John Sullivan  <sullivan@apple.com>
20207
20208         Reviewed by Oliver Hunt.
20209         
20210         - WebCore support for accessing the set of rectangles that encompass the selected text
20211         
20212         * page/Frame.h:
20213         * page/Frame.cpp:
20214         (WebCore::Frame::selectionTextRects):
20215         new function, fills in a passed Vector with the line box rects that represent the selected range
20216
20217         * rendering/RenderText.cpp:
20218         (WebCore::RenderText::addLineBoxRects):
20219         fixed off-by-one bug involving use of the confusing function InlineTextBox::end()
20220
20221         * WebCore.exp:
20222         exported symbol for this new function
20223
20224 2007-06-29  Justin Garcia  <justin.garcia@apple.com>
20225
20226         Reviewed by Harrison.
20227         
20228         <rdar://problem/5299513> REGRESSION: In Mail, a crash occurs when attempting to undo a newly created To Do
20229         
20230         Rolled out a change made in r23787.
20231         
20232         * editing/DeleteSelectionCommand.cpp:
20233         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
20234
20235 2007-06-29  Geoffrey Garen  <ggaren@apple.com>
20236
20237         Reviewed by Darin Adler, Anders Carlsson.
20238         
20239         Fixed <rdar://problem/5303567> REGRESSION: XMLHttpRequest.responseXML 
20240         returns NULL if response MIME type is not XML -- breaks Wikipedia widget
20241         
20242         The spec says that responseXML must return null for any HTTP response
20243         with a non-XML MIME type. Technically, that leaves non-HTTP responses
20244         free to do whatever they want.
20245
20246         * xml/xmlhttprequest.cpp:
20247         (WebCore::XMLHttpRequest::getResponseXML): Only return null for non-XML
20248         MIME types if the response was HTTP.
20249
20250 2007-06-29  Sam Weinig  <sam@webkit.org>
20251
20252         Reviewed by Darin.
20253
20254         Second pass at fixing implicit 64-32 bit conversion errors.
20255         <rdar://problem/5292262>
20256
20257         - Use new JSValue::toFloat() method instead of toNumber() where
20258           appropriate.
20259
20260         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
20261         (WebCore::JSCanvasRenderingContext2D::setFillColor):
20262         (WebCore::JSCanvasRenderingContext2D::setStrokeColor):
20263         (WebCore::JSCanvasRenderingContext2D::strokeRect):
20264         (WebCore::JSCanvasRenderingContext2D::drawImage):
20265         (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
20266         (WebCore::JSCanvasRenderingContext2D::setShadow):
20267         * bindings/js/JSHTMLSelectElementCustom.cpp:
20268         (WebCore::JSHTMLSelectElement::remove):
20269         * bindings/js/JSSVGMatrixCustom.cpp:
20270         (WebCore::JSSVGMatrix::rotateFromVector):
20271         * bindings/js/kjs_events.cpp:
20272         (KJS::JSClipboardPrototypeFunction::callAsFunction):
20273         * bindings/scripts/CodeGeneratorJS.pm:
20274         * ksvg2/svg/SVGScriptElement.cpp:
20275         (WebCore::SVGScriptElement::executeScript):
20276
20277 2007-06-29  Adele Peterson  <adele@apple.com>
20278
20279         Rolling out fix for <rdar://problem/5301322> since it broke layout tests.
20280
20281         * html/HTMLInputElement.h:
20282         * html/HTMLTextAreaElement.h:
20283
20284 2007-06-29  Geoffrey Garen  <ggaren@apple.com>
20285
20286         Reviewed by Oliver Hunt.
20287
20288         Fixed <rdar://problem/4962298> REGRESSION: Synchronous XHR for missing 
20289         local file throws exception -- breaks Wikipedia widget
20290
20291         * WebCore.xcodeproj/project.pbxproj:
20292         * xml/xmlhttprequest.cpp:
20293         (WebCore::XMLHttpRequest::send): Don't throw exceptions for local files.
20294
20295 2007-06-29  Ada Chan  <adachan@apple.com>
20296
20297         Reviewed by Adam.
20298
20299         Fixed a previous fix to a signed/unsigned mismatch.
20300
20301         * plugins/win/PluginPackageWin.cpp:
20302         (WebCore::splitString):
20303
20304 2007-06-29  Adele Peterson  <adele@apple.com>
20305
20306         Reviewed by Ada and Kevin McCullough.
20307
20308         Fix for <rdar://problem/5301322> REGRESSION: Select All selects the whole page when used in readonly textareas
20309
20310         Implemented canSelectAll and selectAll for text fields and textareas, since they're special cases even when they're not editable.
20311
20312         Tests:
20313         fast/forms/input-readonly-select-all.html
20314         fast/forms/textarea-readonly-select-all.html
20315
20316         * html/HTMLInputElement.h:
20317         (WebCore::HTMLInputElement::canSelectAll):
20318         (WebCore::HTMLInputElement::selectAll):
20319         * html/HTMLTextAreaElement.h:
20320         (WebCore::HTMLTextAreaElement::canSelectAll):
20321         (WebCore::HTMLTextAreaElement::selectAll):
20322
20323 2007-06-29  Adam Roben  <aroben@apple.com>
20324
20325         Build fix
20326
20327         This is what happens when you test your patch on two OSs and then
20328         commit from the wrong one.
20329
20330         * rendering/RenderTextControl.cpp:
20331         (WebCore::RenderTextControl::valueChanged):
20332         (WebCore::RenderTextControl::itemText):
20333         (WebCore::RenderTextControl::itemIsSeparator):
20334
20335 2007-06-29  Adam Roben  <aroben@apple.com>
20336
20337         Start compiling WebCore with /W3 under MSVC
20338
20339         One warning was globally disabled: implicit conversion of int to bool.
20340
20341         Reviewed by Darin.
20342
20343         * WebCore.vcproj/WebCore.vcproj:
20344
20345 2007-06-29  Adam Roben  <aroben@apple.com>
20346
20347         Turn DeprecatedStringData's copy constructor into a static method to appease MSVC /W3
20348
20349         DeprecatedStringData now has no public copy constructor. The single
20350         call to the old one has been replaced with a call to the new
20351         DeprecatedStringData::createAndAdopt static method.
20352
20353         Reviewed by Darin.
20354
20355         All regression tests pass.
20356
20357         * platform/DeprecatedString.cpp:
20358         (WebCore::DeprecatedStringData::createAndAdopt):
20359         (WebCore::DeprecatedStringData::adopt):
20360         (WebCore::DeprecatedString::detachIfInternal):
20361         * platform/DeprecatedString.h:
20362
20363 2007-06-29  Adam Roben  <aroben@apple.com>
20364
20365         Fix more signed/unsigned mismatches uncovered by MSVC /W3
20366
20367         Reviewed by John.
20368
20369         No regression tests possible.
20370
20371         * platform/network/cf/ResourceResponseCFNet.cpp:
20372         (WebCore::filenameHasSaneExtension):
20373         * platform/win/FontDataWin.cpp:
20374         (WebCore::FontData::containsCharacters):
20375         * platform/win/PlatformScrollBarSafari.cpp:
20376         (WebCore::):
20377         * platform/win/UniscribeController.cpp:
20378         (WebCore::UniscribeController::advance):
20379         (WebCore::UniscribeController::shapeAndPlaceItem):
20380         * platform/win/WebCoreTextRenderer.cpp:
20381         (WebCore::doDrawTextAtPoint):
20382         * plugins/win/PluginDatabaseWin.cpp:
20383         (WebCore::parseVersionString):
20384         * plugins/win/PluginPackageWin.cpp:
20385         (WebCore::splitString):
20386         * plugins/win/PluginViewWin.cpp:
20387         (WebCore::freeStringArray):
20388         (WebCore::PluginViewWin::invalidateTimerFired):
20389
20390 2007-06-29  Adam Roben  <aroben@apple.com>
20391
20392         Change PopupMenuClient::listSize to return an int to appease warnings from MSVC /W3
20393
20394         Reviewed by John.
20395
20396         No regression test possible.
20397
20398         * html/HTMLSelectElement.cpp:
20399         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
20400         * platform/PopupMenuClient.h:
20401         * platform/win/PopupMenuWin.cpp:
20402         (WebCore::PopupMenu::calculatePositionAndSize):
20403         (WebCore::PopupMenu::focusFirst):
20404         (WebCore::PopupMenu::focusLast):
20405         (WebCore::PopupMenu::down):
20406         (WebCore::PopupMenu::up):
20407         (WebCore::PopupMenu::paint):
20408         * rendering/RenderMenuList.cpp:
20409         * rendering/RenderMenuList.h:
20410         * rendering/RenderTextControl.cpp:
20411         * rendering/RenderTextControl.h:
20412
20413 2007-06-29  Adam Roben  <aroben@apple.com>
20414
20415         Fix two typos spotted by MSVC /W3
20416
20417         Both typos were a semicolon following the condition of an if. This
20418         would cause the intended body of the if to always execute.
20419
20420         Unfortunately neither of these fixes are testable.
20421         BackForwardList::goForward is only called from WebBackForwardList, and
20422         the createDragImageFromImage bug would only manifest itself when
20423         CreateCompatibleDC failed.
20424
20425         Reviewed by Mark.
20426
20427         * history/BackForwardList.cpp:
20428         (WebCore::BackForwardList::goForward):
20429         * platform/win/DragImageWin.cpp:
20430         (WebCore::createDragImageFromImage):
20431
20432 2007-06-29  Adam Treat  <adam@staikos.net>
20433
20434         Reviewed by george Staikos.
20435
20436         Support horizontal and vertical scroll, and set the right units.
20437
20438         * platform/qt/WheelEventQt.cpp:
20439         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
20440
20441 2007-06-28  Adam Roben  <aroben@apple.com>
20442
20443         Get WebCore compiling with /W2 on Windows
20444
20445         Reviewed by Steve.
20446
20447         No regression tests affected.
20448
20449         * WebCore.vcproj/WebCore.vcproj: Turn the warning level up to 2, and
20450         disable two warnings: implicit int <=> float conversion, and class vs.
20451         struct inconsistency.
20452         * dom/CharacterData.cpp:
20453         (WebCore::CharacterData::deleteData): Cast to int before negating.
20454         * loader/Cache.cpp:
20455         (WebCore::Cache::remove): Ditto.
20456         * platform/graphics/Path.cpp:
20457         (WebCore::pathLengthApplierFunction): Consistently use floats.
20458         * platform/graphics/cg/GraphicsContextCG.cpp:
20459         (WebCore::GraphicsContext::drawEllipse): Ditto.
20460         * platform/win/GraphicsContextWin.cpp:
20461         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar): Ditto.
20462
20463 2007-06-28  Geoffrey Garen  <ggaren@apple.com>
20464
20465         Reviewed by Maciej Stachowiak.
20466         
20467         Fixed <rdar://problem/5299005> DOM timers fire without a local autorelease 
20468         pool => pathologically high high water mark
20469         
20470         I couldn't measure any performance problems with iBench HTML or PLT.
20471
20472         * WebCore.xcodeproj/project.pbxproj: Changed .cpp file to be ObjC++.
20473         * platform/mac/SharedTimerMac.cpp:
20474         (WebCore::timerFired): Added autorelease pool.
20475
20476 2007-06-28  Mitz Pettel  <mitz@webkit.org>
20477
20478         Reviewed by Beth.
20479
20480         - fix http://bugs.webkit.org/show_bug.cgi?id=14118
20481           ASSERTION FAILED: !needsLayout() seen again
20482
20483         Test: fast/dynamic/recursive-layout.html
20484
20485         * page/FrameView.cpp:
20486         (WebCore::FrameView::layout): Removed the midLayout guards around
20487         the calls to invalidateSelection() and updateWidgetPositions(). Those
20488         calls may dirty the layout, but in that case they also update it, so
20489         they should be allowed to do it. Added an ASSERT to make sure that when
20490         they return, the root is not marked for layout.
20491
20492 2007-06-28  Sam Weinig  <sam@webkit.org>
20493
20494         Rubberstamped by Adam Roben.
20495
20496         Roll out r23861.  It caused the buildbot to fail on intel.
20497
20498         * page/Page.cpp:
20499         (WebCore::Page::goToItem):
20500
20501 2007-06-26  Maxime Britto  <mbritto@pleyo.com>
20502
20503         Reviewed by Geoff.
20504
20505         Patch for http://bugs.webkit.org/show_bug.cgi?id=13038
20506         ASSERTION FAILED: item->target().isEmpty() || m_mainFrame->tree()->find(item->target()) == m_mainFrame
20507
20508         Modification of an ASSERT on goToItem related to go back/forward in
20509         history.Don't need to check the frameset if the target is _blank.
20510
20511          * page/Page.cpp:
20512          (WebCore::Page::goToItem):
20513
20514 2007-06-28  Anders Carlsson  <andersca@apple.com>
20515
20516         Reviewed by Oliver.
20517
20518         <rdar://problem/5234139>
20519         <object> with PNG src rendered as image document.
20520         
20521         Complete the URL before passing it to the frame loader client.
20522         
20523         * html/HTMLObjectElement.cpp:
20524         (WebCore::HTMLObjectElement::isImageType):
20525
20526 2007-06-28  Rob Buis  <buis@kde.org>
20527
20528         Reviewed by Maciej.
20529
20530         http://bugs.webkit.org/show_bug.cgi?id=14373
20531         CSS1: selectors (classes and IDs) cannot start with a dash or with a digit
20532
20533         Make sure the id selector validates against the CSS2.1 identfier
20534         definition, not the hexcolor/HASH definition.
20535
20536         * css/CSSGrammar.y:
20537         * css/cssparser.cpp:
20538         (WebCore::CSSParser::lex):
20539         (WebCore::CSSParser::text):
20540         * css/tokenizer.flex:
20541
20542 2007-06-28  Simon Hausmann  <hausmann@kde.org>
20543
20544         Reviewed by Zack.
20545
20546         Implemented PasteboardQt::writeSelection to copy the selected text into the Clipboard as well as PasteboardQt::plainText to retrieve plain text from the clipboard for pasting for example into form fields.
20547
20548         * platform/qt/PasteboardQt.cpp:
20549         (WebCore::Pasteboard::writeSelection):
20550
20551 2007-06-28  Antti Koivisto  <antti@apple.com>
20552
20553         Reviewed by Mitz.
20554         
20555         Fix http://bugs.webkit.org/show_bug.cgi?id=14332
20556         Bug 14332: REGRESSION (r21145): <td> width ignored
20557         <rdar://problem/5290123>
20558         
20559         Cells in table with non-zero cellpadding are not considered empty.
20560
20561         * rendering/AutoTableLayout.cpp:
20562         (WebCore::AutoTableLayout::recalcColumn):
20563
20564 2007-06-28  Adam Roben  <aroben@apple.com>
20565
20566         Fix <rdar://problem/5300455> Prefast: typo in RenderBlock::paintObject
20567
20568         Reviewed by Hyatt.
20569
20570         No layout test possible, as this bug didn't have any effect since
20571         "bool & bool" has the same value as "bool && bool"
20572
20573         * rendering/RenderBlock.cpp:
20574         (WebCore::RenderBlock::paintObject): Changed & to &&.
20575
20576 2007-06-28  Adam Roben  <aroben@apple.com>
20577
20578         Fix <rdar://problem/5300443> word-break and -webkit-user-modify allow any value
20579
20580         The bug was caused by two typos found by prefast.
20581
20582         Reviewed by Hyatt.
20583
20584         * css/cssparser.cpp:
20585         (WebCore::CSSParser::parseValue): Fixed typos.
20586
20587 2007-06-20  Matt Perry  <mpComplete@gmail.com>
20588
20589         Reviewed by Adam.
20590
20591         - Fix http://bugs.webkit.org/show_bug.cgi?id=14251:
20592           onchange handler for select controls doesn't fire when changing via keyboard
20593
20594         * html/HTMLSelectElement.cpp:
20595         (WebCore::HTMLSelectElement::menuListDefaultEventHandler): Got rid of
20596         a call to saveLastSelection in the "Enter" key handler for select
20597         controls that was preventing onchange from firing.
20598
20599 2007-06-27  Sam Weinig  <sam@webkit.org>
20600
20601         Fix Gdk, Qt, and Win32 builds.
20602
20603         * WebCore.pro:
20604         * WebCore.vcproj/WebCore.vcproj:
20605
20606 2007-06-27  Sam Weinig  <sam@webkit.org>
20607
20608         Reviewed by Geoff.
20609
20610         Patch for http://bugs.webkit.org/show_bug.cgi?id=14319
20611         Move the Selection object out of the JS bindings
20612
20613         - Renames JS Object Selection to DOMSelection to avoid a name
20614           conflict.
20615
20616         * DerivedSources.make:
20617         * WebCore.xcodeproj/project.pbxproj:
20618         * bindings/js/kjs_window.cpp:
20619         (KJS::WindowPrivate::WindowPrivate):
20620         (KJS::Window::mark):
20621         (KJS::Window::clearHelperObjectProperties):
20622         (KJS::WindowFunc::callAsFunction):
20623         (KJS::Window::disconnectFrame):
20624         * bindings/js/kjs_window.h:
20625         (KJS::Window::):
20626         * page/DOMSelection.cpp: Added.
20627         (WebCore::DOMSelection::DOMSelection):
20628         (WebCore::DOMSelection::frame):
20629         (WebCore::DOMSelection::disconnectFrame):
20630         (WebCore::DOMSelection::anchorNode):
20631         (WebCore::DOMSelection::baseNode):
20632         (WebCore::DOMSelection::anchorOffset):
20633         (WebCore::DOMSelection::baseOffset):
20634         (WebCore::DOMSelection::focusNode):
20635         (WebCore::DOMSelection::extentNode):
20636         (WebCore::DOMSelection::focusOffset):
20637         (WebCore::DOMSelection::extentOffset):
20638         (WebCore::DOMSelection::isCollapsed):
20639         (WebCore::DOMSelection::type):
20640         (WebCore::DOMSelection::rangeCount):
20641         (WebCore::DOMSelection::collapse):
20642         (WebCore::DOMSelection::collapseToEnd):
20643         (WebCore::DOMSelection::collapseToStart):
20644         (WebCore::DOMSelection::empty):
20645         (WebCore::DOMSelection::setBaseAndExtent):
20646         (WebCore::DOMSelection::setPosition):
20647         (WebCore::DOMSelection::modify):
20648         (WebCore::DOMSelection::getRangeAt):
20649         (WebCore::DOMSelection::removeAllRanges):
20650         (WebCore::DOMSelection::addRange):
20651         (WebCore::DOMSelection::toString):
20652         * page/DOMSelection.h: Added.
20653         * page/DOMSelection.idl: Added.
20654         * page/DOMWindow.cpp:
20655         (WebCore::DOMWindow::disconnectFrame):
20656         (WebCore::DOMWindow::getSelection):
20657         * page/DOMWindow.h:
20658         * page/DOMWindow.idl:
20659
20660 2007-06-27  Sam Weinig  <sam@webkit.org>
20661
20662         Reviewed by Maciej.
20663
20664         2nd patch for http://bugs.webkit.org/show_bug.cgi?id=14111
20665         Autogenerate Event JS binding
20666
20667         - Cleanup kjs_events
20668
20669         * bindings/js/kjs_events.cpp:
20670         (WebCore::JSAbstractEventListener::JSAbstractEventListener):
20671         (WebCore::JSAbstractEventListener::handleEvent):
20672         (WebCore::JSAbstractEventListener::isHTMLEventListener):
20673         (WebCore::JSUnprotectedEventListener::JSUnprotectedEventListener):
20674         (WebCore::JSUnprotectedEventListener::~JSUnprotectedEventListener):
20675         (WebCore::JSUnprotectedEventListener::listenerObj):
20676         (WebCore::JSUnprotectedEventListener::windowObj):
20677         (WebCore::JSUnprotectedEventListener::clearWindowObj):
20678         (WebCore::JSUnprotectedEventListener::mark):
20679         (WebCore::JSEventListener::JSEventListener):
20680         (WebCore::JSEventListener::~JSEventListener):
20681         (WebCore::JSEventListener::listenerObj):
20682         (WebCore::JSEventListener::windowObj):
20683         (WebCore::JSEventListener::clearWindowObj):
20684         (WebCore::JSLazyEventListener::JSLazyEventListener):
20685         (WebCore::JSLazyEventListener::listenerObj):
20686         (WebCore::JSLazyEventListener::parseCode):
20687         (WebCore::getNodeEventListener):
20688         (WebCore::JSClipboard::JSClipboard):
20689         (WebCore::JSClipboard::getValueProperty):
20690         (WebCore::JSClipboard::putValueProperty):
20691         (WebCore::JSClipboardPrototypeFunction::callAsFunction):
20692         (WebCore::toJS):
20693         (WebCore::toClipboard):
20694         * bindings/js/kjs_events.h:
20695         (WebCore::JSClipboard::classInfo):
20696         (WebCore::JSClipboard::impl):
20697         * bindings/js/kjs_window.h:
20698         * ksvg2/events/JSSVGLazyEventListener.h:
20699
20700 2007-06-27  Sam Weinig  <sam@webkit.org>
20701
20702         Reviewed by Adam Roben.
20703
20704         Patch for http://bugs.webkit.org/show_bug.cgi?id=12045
20705         Crash under gmalloc at WTF::RefPtr<WebCore::HTMLSliderThumbElement>::operator->
20706         <rdar://problem/5286670>
20707
20708         Test: fast/forms/thumbslider-no-parent-slider.html
20709         Test: fast/forms/thumbslider-crash.html
20710
20711         * rendering/RenderObject.h:
20712         (WebCore::RenderObject::isSlider):
20713         * rendering/RenderSlider.h:
20714         (WebCore::RenderSlider::isSlider):
20715         * rendering/RenderTheme.cpp:
20716         (WebCore::RenderTheme::paint): Only paint thumbslider
20717         if the parent renderer is a RenderSlider.
20718         * rendering/RenderThemeMac.mm:
20719         (WebCore::RenderThemeMac::paintSliderThumb):
20720         * rendering/RenderThemeSafari.cpp:
20721         (WebCore::RenderThemeSafari::paintSliderThumb):
20722
20723 2007-06-27  George Staikos  <staikos@kde.org>
20724
20725         Make Qt builds link when XSLT is turned off.
20726
20727         * WebCore.pro:
20728
20729 2007-06-27  Steve Falkenburg  <sfalken@apple.com>
20730
20731         Turn on static code analysis (Windows only).
20732
20733         Affects only folks that have Visual Studio Team Suite installed,
20734         or who have replaced their compiler with the version shipping in the
20735         Vista SDK.
20736         
20737         Reviewed by Oliver.
20738
20739         * WebCore.vcproj/WebCore.vcproj:
20740
20741 2007-06-27  George Staikos  <staikos@kde.org>
20742
20743         Remove old commented out files that no-longer exist.
20744
20745         * WebCore.pro:
20746
20747 2007-06-27  Justin Garcia  <justin.garcia@apple.com>
20748
20749         Reviewed by John.
20750
20751         <rdar://problem/5247341> REGRESSION: Pasting sometimes leaves out trailing newline
20752         
20753         Pasting with a trailing interchange newline doesn't work when pasting
20754         into an empty line.  Code that handles removing brs at the insertion
20755         position tries to also handle trailing interchange newlines by re-using
20756         those brs and fails.  Removed that code and handle all interchange
20757         newlines with code later in doApply().
20758
20759         * editing/ReplaceSelectionCommand.cpp:
20760         (WebCore::ReplaceSelectionCommand::doApply): Don't try to re-use the
20761         endBR when there's a trailing interchange newline.
20762         
20763 2007-06-27  Anders Carlsson  <andersca@apple.com>
20764
20765         Reviewed by Oliver.
20766
20767         <rdar://problem/5253950>
20768         When Shockwave plugin has been loaded, exiting crashes Safari
20769         
20770         Add a "load count" for plugin packages. When the load count is zero, unload the plugin.
20771         
20772         * plugins/win/PluginPackageWin.cpp:
20773         (WebCore::PluginPackageWin::PluginPackageWin):
20774         (WebCore::PluginPackageWin::load):
20775         (WebCore::PluginPackageWin::unload):
20776         (WebCore::PluginPackageWin::unloadWithoutShutdown):
20777         * plugins/win/PluginPackageWin.h:
20778         
20779         * plugins/win/PluginViewWin.cpp:
20780         (WebCore::PluginViewWin::~PluginViewWin):
20781         Make sure to unload the plugin package and clear any references to plugin script objects.
20782
20783 2007-06-27  George Staikos  <staikos@kde.org>
20784
20785         This was succeeding compile by luck.  Setup dependencies properly.
20786
20787         * WebCore.pro:
20788
20789 2007-06-27  Justin Garcia  <justin.garcia@apple.com>
20790
20791         Reviewed by John.
20792
20793         <rdar://problem/4580583> Breaking blockquoted list should not automatically renumber the second list
20794         
20795         When a quoted numbered list is broken in half, it's cloned
20796         to make the second list. That second list needs its start attribute
20797         set so that the numbers of the list items in it will be preserved.
20798
20799         * editing/BreakBlockquoteCommand.cpp:
20800         (WebCore::BreakBlockquoteCommand::doApply): Set the start attribute
20801         of a cloned list to be the original number of the first list item in it.
20802
20803 2007-06-27  Alexey Proskuryakov  <ap@webkit.org>
20804
20805         Reviewed by Geoff.
20806
20807         http://bugs.webkit.org/show_bug.cgi?id=14413
20808         GIF animation throttling is different from MSIE
20809
20810         * platform/graphics/cg/ImageSourceCG.cpp:
20811         (WebCore::ImageSource::frameDurationAtIndex):
20812         Change the cut-off value to 50ms to match MSIE.
20813
20814 2007-06-27  Sam Weinig  <sam@webkit.org>
20815
20816         Reviewed by Darin.
20817
20818         First pass at fixing implicit 64-32 bit conversion errors.
20819         <rdar://problem/5292262>
20820
20821         - Add 'f' suffix where necessary.
20822
20823         * bridge/mac/WebCoreAXObject.mm:
20824         (-[WebCoreAXObject accessibilityAttributeValue:forParameter:]):
20825         * css/csshelper.h:
20826         * css/cssstyleselector.cpp:
20827         (WebCore::):
20828         (WebCore::CSSStyleSelector::largerFontSize):
20829         (WebCore::CSSStyleSelector::smallerFontSize):
20830         * html/CanvasGradient.cpp:
20831         (WebCore::CanvasGradient::addColorStop):
20832         * html/CanvasPattern.cpp:
20833         (WebCore::CanvasPattern::createPattern):
20834         * ksvg2/css/SVGCSSStyleSelector.cpp:
20835         (WebCore::CSSStyleSelector::applySVGProperty):
20836         * ksvg2/css/SVGRenderStyle.h:
20837         * ksvg2/events/SVGZoomEvent.cpp:
20838         (WebCore::SVGZoomEvent::SVGZoomEvent):
20839         * ksvg2/svg/SVGLength.cpp:
20840         (WebCore::SVGLength::SVGLength):
20841         (WebCore::SVGLength::value):
20842         (WebCore::SVGLength::setValue):
20843         (WebCore::SVGLength::valueAsPercentage):
20844         (WebCore::SVGLength::PercentageOfViewport):
20845         * ksvg2/svg/SVGSVGElement.cpp:
20846         (WebCore::SVGSVGElement::pixelUnitToMillimeterX):
20847         (WebCore::SVGSVGElement::pixelUnitToMillimeterY):
20848         (WebCore::SVGSVGElement::getScreenCTM):
20849         * ksvg2/svg/SVGTextContentElement.cpp:
20850         (WebCore::SVGTextContentElement::getComputedTextLength):
20851         (WebCore::SVGTextContentElement::getSubStringLength):
20852         (WebCore::SVGTextContentElement::getRotationOfChar):
20853         * ksvg2/svg/SVGTransformDistance.cpp:
20854         (WebCore::SVGTransformDistance::SVGTransformDistance):
20855         (WebCore::SVGTransformDistance::distance):
20856         * page/InspectorController.cpp:
20857         (WebCore::InspectorResource::InspectorResource):
20858         * platform/graphics/FloatPoint3D.cpp:
20859         (WebCore::FloatPoint3D::normalize):
20860         * platform/graphics/Path.cpp:
20861         (WebCore::pathLengthApplierFunction):
20862         (WebCore::Path::createRoundedRectangle):
20863         * platform/graphics/cg/GraphicsContextCG.cpp:
20864         (WebCore::GraphicsContext::drawLine):
20865         (WebCore::GraphicsContext::strokeArc):
20866         * platform/graphics/cg/ImageCG.cpp:
20867         (WebCore::FrameData::clear):
20868         * platform/graphics/cg/ImageSourceCG.cpp:
20869         (WebCore::ImageSource::frameDurationAtIndex):
20870         * platform/graphics/cg/PDFDocumentImage.cpp:
20871         (WebCore::PDFDocumentImage::setCurrentPage):
20872         * platform/graphics/svg/SVGPaintServerPattern.cpp:
20873         (WebCore::SVGPaintServerPattern::externalRepresentation):
20874         * platform/graphics/svg/SVGPaintServerRadialGradient.cpp:
20875         (WebCore::SVGPaintServerRadialGradient::SVGPaintServerRadialGradient):
20876         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
20877         (WebCore::cgGradientCallback):
20878         (WebCore::CGShadingRefForRadialGradient):
20879         (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
20880         * platform/mac/FontDataMac.mm:
20881         (WebCore::webFallbackFontFamily):
20882         * platform/mac/PopupMenuMac.mm:
20883         (WebCore::PopupMenu::show):
20884         * rendering/InlineFlowBox.cpp:
20885         (WebCore::InlineFlowBox::placeBoxesHorizontally):
20886         * rendering/RenderSlider.cpp:
20887         (WebCore::RenderSlider::setValueForPosition):
20888         (WebCore::RenderSlider::setPositionFromValue):
20889
20890 2007-06-27  Alexey Proskuryakov  <ap@webkit.org>
20891
20892         Reviewed by Geoff.
20893
20894         http://bugs.webkit.org/show_bug.cgi?id=14288
20895         XMLHttpRequest doesn't use a correct content type for file:// URLs
20896
20897         Test: fast/dom/xmlhttprequest-html-response-encoding.html
20898
20899         * xml/xmlhttprequest.cpp:
20900         (WebCore::XMLHttpRequest::responseMIMEType): Use MIME type provided by
20901         the network layer, since it provides it even for non-HTTP responses.
20902
20903 2007-06-26  Alp Toker  <alp.toker@collabora.co.uk>
20904
20905         Reviewed by Sam Weinig.
20906
20907         http://bugs.webkit.org/show_bug.cgi?id=14061
20908         Implement more of FrameLoaderClientGdk
20909
20910         Make FrameLoaderClientGdk work properly when the MIME type is set.
20911
20912         * loader/gdk/FrameLoaderClientGdk.cpp:
20913         (WebCore::FrameLoaderClientGdk::objectContentType):
20914         (WebCore::FrameLoaderClientGdk::canShowMIMEType):
20915
20916 2007-06-26  Alp Toker  <alp.toker@collabora.co.uk>
20917
20918         Reviewed by Maciej.
20919
20920         http://bugs.webkit.org/show_bug.cgi?id=14058
20921         Gdk font backend cleanup
20922
20923         * platform/FontData.h: Remove obsolete function.
20924         * platform/gdk/FontDataGdk.cpp:
20925         (WebCore::FontData::containsCharacters): Lock/unlock only once.
20926         (WebCore::FontData::platformWidthForGlyph): Remove needless cast.
20927         * platform/gdk/FontPlatformData.h: Remove obsolete function.
20928         * platform/gdk/FontPlatformDataGdk.cpp:
20929         (WebCore::FontPlatformData::FontPlatformData): Pass the actual size,
20930         not the pixel size.
20931         (WebCore::FontPlatformData::~FontPlatformData): Free m_fontMatrix.
20932         * platform/gdk/GlyphPageTreeNodeGdk.cpp:
20933         (WebCore::GlyphPage::fill): Lock/unlock only once.
20934
20935 2007-06-26  Mitz Pettel  <mitz@webkit.org>
20936
20937         Reviewed by Hyatt.
20938
20939         - fix http://bugs.webkit.org/show_bug.cgi?id=14406
20940           <colgroup>'s borders are ignored when it has <col> children
20941
20942         Covered by existing tests.
20943
20944         * rendering/RenderTableCell.cpp:
20945         (WebCore::RenderTableCell::collapsedLeftBorder):
20946         (WebCore::RenderTableCell::collapsedRightBorder):
20947         (WebCore::RenderTableCell::collapsedTopBorder):
20948         (WebCore::RenderTableCell::collapsedBottomBorder):
20949
20950 2007-06-26  Mitz Pettel  <mitz@webkit.org>
20951
20952         Reviewed by Oliver.
20953
20954         - fix http://bugs.webkit.org/show_bug.cgi?id=14329
20955           REGRESSION: TEXTAREA - cannot drag-and-drop text at en.wikipedia.org/
20956
20957         Test: fast/repaint/text-selection-rect-in-overflow-2.html
20958
20959         * rendering/RenderObject.cpp:
20960         (WebCore::RenderObject::computeAbsoluteRepaintRect): Added code to account
20961         for overflow scroll and columns.
20962         * rendering/RenderText.cpp:
20963         (WebCore::RenderText::selectionRect): Adjust for columns only in the
20964         non-clipped case, since RenderObject::absolutePosition() does not.
20965
20966 2007-06-26  Mitz Pettel  <mitz@webkit.org>
20967
20968         Reviewed by Sam.
20969
20970         - http://bugs.webkit.org/show_bug.cgi?id=14415
20971           Remove the unused method RenderObject::setTable()
20972
20973         * rendering/RenderObject.h:
20974
20975 2007-06-26  Darin Fisher  <darin@chromium.org>
20976
20977         Reviewed by Maciej.
20978
20979         Implement http://bugs.webkit.org/show_bug.cgi?id=14225
20980         Bug 14225: Make it possible to define platform-specific ResourceRequest without #ifdefs
20981
20982         This change moves the bulk of ResourceRequest into a base class named
20983         ResourceRequestBase with all platform-specific bits pushed into
20984         ResourceRequest.  This allows ports to easily add new members to a
20985         ResourceRequest without having to #ifdef the code that is shared
20986         between ports.
20987
20988         * WebCore.exp:
20989         * WebCore.pro:
20990         * WebCore.vcproj/WebCore.vcproj:
20991         * WebCore.xcodeproj/project.pbxproj:
20992         * platform/network/ResourceRequest.cpp: Removed.
20993         * platform/network/ResourceRequest.h: Removed.
20994         * platform/network/ResourceRequestBase.cpp: Added.
20995         (WebCore::ResourceRequestBase::asResourceRequest):
20996         (WebCore::ResourceRequestBase::isEmpty):
20997         (WebCore::ResourceRequestBase::isNull):
20998         (WebCore::ResourceRequestBase::url):
20999         (WebCore::ResourceRequestBase::setURL):
21000         (WebCore::ResourceRequestBase::cachePolicy):
21001         (WebCore::ResourceRequestBase::setCachePolicy):
21002         (WebCore::ResourceRequestBase::timeoutInterval):
21003         (WebCore::ResourceRequestBase::setTimeoutInterval):
21004         (WebCore::ResourceRequestBase::mainDocumentURL):
21005         (WebCore::ResourceRequestBase::setMainDocumentURL):
21006         (WebCore::ResourceRequestBase::httpMethod):
21007         (WebCore::ResourceRequestBase::setHTTPMethod):
21008         (WebCore::ResourceRequestBase::httpHeaderFields):
21009         (WebCore::ResourceRequestBase::httpHeaderField):
21010         (WebCore::ResourceRequestBase::setHTTPHeaderField):
21011         (WebCore::ResourceRequestBase::httpBody):
21012         (WebCore::ResourceRequestBase::setHTTPBody):
21013         (WebCore::ResourceRequestBase::allowHTTPCookies):
21014         (WebCore::ResourceRequestBase::setAllowHTTPCookies):
21015         (WebCore::ResourceRequestBase::addHTTPHeaderField):
21016         (WebCore::ResourceRequestBase::addHTTPHeaderFields):
21017         (WebCore::operator==):
21018         (WebCore::ResourceRequestBase::isConditional):
21019         (WebCore::ResourceRequestBase::updatePlatformRequest):
21020         (WebCore::ResourceRequestBase::updateResourceRequest):
21021         * platform/network/ResourceRequestBase.h: Added.
21022         (WebCore::):
21023         (WebCore::ResourceRequestBase::httpContentType):
21024         (WebCore::ResourceRequestBase::setHTTPContentType):
21025         (WebCore::ResourceRequestBase::httpReferrer):
21026         (WebCore::ResourceRequestBase::setHTTPReferrer):
21027         (WebCore::ResourceRequestBase::clearHTTPReferrer):
21028         (WebCore::ResourceRequestBase::httpUserAgent):
21029         (WebCore::ResourceRequestBase::setHTTPUserAgent):
21030         (WebCore::ResourceRequestBase::httpAccept):
21031         (WebCore::ResourceRequestBase::setHTTPAccept):
21032         (WebCore::ResourceRequestBase::ResourceRequestBase):
21033         (WebCore::operator!=):
21034         * platform/network/cf/ResourceRequest.h: Added.
21035         (WebCore::ResourceRequest::ResourceRequest):
21036         * platform/network/curl/ResourceRequest.h: Added.
21037         (WebCore::ResourceRequest::ResourceRequest):
21038         (WebCore::ResourceRequest::doUpdatePlatformRequest):
21039         (WebCore::ResourceRequest::doUpdateResourceRequest):
21040         * platform/network/mac/ResourceRequest.h: Added.
21041         (WebCore::ResourceRequest::ResourceRequest):
21042         * platform/network/qt/ResourceRequest.h: Added.
21043         (WebCore::ResourceRequest::ResourceRequest):
21044         (WebCore::ResourceRequest::doUpdatePlatformRequest):
21045         (WebCore::ResourceRequest::doUpdateResourceRequest):
21046
21047 2007-06-26  Adam Roben  <aroben@apple.com>
21048
21049         Add ChangeLog entries from the Windows merge.
21050
21051         Reviewed by Maciej.
21052
21053         * ChangeLog:
21054
21055 2007-06-26  Sam Weinig  <sam@webkit.org>
21056
21057         Reviewed by Maciej.
21058
21059         Make sure not to enumerate the toString() function.
21060         <rdar://problem/5297118>
21061
21062         * bindings/js/kjs_window.cpp:
21063         * bindings/scripts/CodeGeneratorJS.pm: Add support for [DontEnum].
21064         * html/HTMLAnchorElement.idl:
21065
21066 2007-06-26  Alp Toker  <alp.toker@collabora.co.uk>
21067
21068         Reviewed by Mitz, landed by Anders.
21069
21070         http://bugs.webkit.org/show_bug.cgi?id=14421
21071         Implement GraphicsContext::clearRect()
21072
21073         * platform/graphics/cairo/GraphicsContextCairo.cpp:
21074         (WebCore::GraphicsContext::clearRect):
21075
21076 2007-06-26  Alp Toker  <alp.toker@collabora.co.uk>
21077
21078         Reviewed and landed by Anders.
21079
21080         http://bugs.webkit.org/show_bug.cgi?id=14416
21081         Content does not render fully in some cases
21082
21083         Fix mismatched calls to cairo_save/restore due to an early method return.
21084
21085         * platform/graphics/cairo/GraphicsContextCairo.cpp:
21086         (WebCore::GraphicsContext::drawLine):
21087
21088 2007-06-26  Tristan O'Tierney  <tristan@apple.com>
21089
21090         Reviewed by John Sullivan.
21091
21092         Added two accessor functions for <rdar://problem/4119138>
21093
21094         * bindings/objc/DOMHTML.mm:
21095         (-[DOMHTMLInputElement _isEdited]):
21096         (-[DOMHTMLTextAreaElement _isEdited]):
21097         Added an accessor to the isEdited value of a DOM node's render object
21098
21099         * bindings/objc/DOMPrivate.h:
21100         Added header definitions for _isEdited
21101
21102 2007-06-26  Sam Weinig  <sam@webkit.org>
21103
21104         Fix Win32 build.
21105
21106         * WebCore.vcproj/WebCore.vcproj:
21107
21108 2007-06-26  Sam Weinig  <sam@webkit.org>
21109
21110         Fix Qt and Gdk builds.
21111
21112         * WebCore.pro:
21113
21114 2007-06-26  Sam Weinig  <sam@webkit.org>
21115
21116         Reviewed by Geoff.
21117
21118         Patch for http://bugs.webkit.org/show_bug.cgi?id=14111
21119         Autogenerate Event JS binding
21120
21121         - Moves the dataTransfer method into MouseEvent where it should be.
21122
21123         * WebCore.xcodeproj/project.pbxproj:
21124         * bindings/js/JSEventCustom.cpp: Added.
21125         (WebCore::JSEvent::clipboardData):
21126         (WebCore::toJS):
21127         * bindings/js/JSEventTargetNode.cpp:
21128         * bindings/js/JSXMLHttpRequest.cpp:
21129         * bindings/js/kjs_events.cpp:
21130         * bindings/js/kjs_events.h:
21131         * bindings/objc/DOMUtility.mm:
21132         (KJS::createDOMWrapper):
21133         * bindings/scripts/CodeGeneratorJS.pm:
21134         * dom/Event.h:
21135         (WebCore::Event::returnValue):
21136         (WebCore::Event::setReturnValue):
21137         (WebCore::Event::clipboardData):
21138         * dom/Event.idl:
21139         * dom/MouseEvent.h:
21140         (WebCore::MouseEvent::dataTransfer):
21141         * dom/MouseEvent.idl:
21142
21143 2007-06-26  Timothy Hatcher  <timothy@apple.com>
21144
21145         Reviewed by Mark Rowe.
21146
21147         Follow up fix for: Bug 14385: Web Inspector's computed style doesn't show implicitly set properties
21148         http://bugs.webkit.org/show_bug.cgi?id=14385
21149
21150         Correctly remember the "Show implicit properties" setting as you switch nodes.
21151
21152         * page/inspector/ResourcePanel.js:
21153
21154 2007-06-26  Justin Garcia  <justin.garcia@apple.com>
21155
21156         Reviewed by John.
21157
21158         <rdar://problem/5290534> Crash at RenderTextControl::calcHeight() after deleting text in a search field
21159         
21160         Editing removed a node that was part of a search field's internal
21161         structure that should not be removed.
21162
21163         * editing/DeleteSelectionCommand.cpp:
21164         (WebCore::DeleteSelectionCommand::handleGeneralDelete): If the
21165         selection to delete ends at [container, x], where x is the number
21166         of children in container, don't remove container.  Special case
21167         code elsewhere in this function will remove it if necessary.
21168
21169 2007-06-25  Sam Weinig  <sam@webkit.org>
21170
21171         Reviewed by Maciej.
21172
21173         Patch for http://bugs.webkit.org/show_bug.cgi?id=11315
21174         Mutating document.constructor.prototype mutates Object.prototype
21175
21176         Test: fast/js/constructor.html
21177
21178         * bindings/scripts/CodeGeneratorJS.pm: add constructor attribute to
21179         classes with constructors.  It is an non-enumeratable, non-deletable,
21180         readonly attribute.
21181
21182 2007-06-26  George Staikos  <staikos@kde.org>
21183
21184         Repair the OS X build.
21185
21186         * WebCore.exp:
21187
21188 2007-06-26  Adam Treat  <adam@staikos.net>
21189
21190         Reviewed by Adam Roben.
21191
21192         Make the SQLite icon database optional.
21193
21194         * loader/icon/IconDatabase.cpp:
21195         (WebCore::IconDatabase::isOpen):
21196         (WebCore::IconDatabase::isPrivateBrowsingEnabled):
21197         (WebCore::IconDatabase::enabled):
21198         * loader/icon/IconDatabase.h:
21199
21200 2007-06-25  Sam Weinig  <sam@webkit.org>
21201
21202         Reviewed by Adam Roben.
21203
21204         Patch for http://bugs.webkit.org/show_bug.cgi?id=14369
21205         HTML syntax highlighting colors and DOM tree colors should be the same
21206
21207         * css/view-source.css:
21208         * page/inspector/ResourcePanel.js:
21209         * page/inspector/inspector.css:
21210         * page/inspector/inspector.js:
21211         * page/inspector/utilities.js:
21212
21213 2007-06-25  Adam Roben  <aroben@apple.com>
21214
21215         Fix Bug 14402: Main resource of http://www.apple.com/safari/ is called "www.apple.com" instead of "safari"
21216         http://bugs.webkit.org/show_bug.cgi?id=14402
21217
21218         The solution was to make KURL::lastPathComponent ignore trailing
21219         slashes, which is what -[NSURL lastPathComponent] does, too.
21220
21221         Reviewed by Oliver.
21222
21223         * platform/KURL.cpp:
21224         (WebCore::KURL::lastPathComponent):
21225
21226 2007-06-25  Sam Weinig  <sam@webkit.org>
21227
21228         Reviewed by Adam Roben.
21229
21230         Patch for http://bugs.webkit.org/show_bug.cgi?id=14257
21231         Web Inspector lists favicon.ico as "other" instead of "image"
21232
21233         * page/InspectorController.cpp:
21234         (WebCore::InspectorResource::type):
21235
21236 2007-06-25  Adele Peterson  <adele@apple.com>
21237
21238         Reviewed by Hyatt.
21239
21240         Fix for <rdar://problem/5286410> Scrollbar and resize corner for overflow area is not hidden with style "visibility: hidden;"
21241         http://bugs.webkit.org/show_bug.cgi?id=14297
21242
21243         Test: fast/overflow/hidden-scrollbar-resize.html
21244
21245         * rendering/RenderLayer.cpp: (WebCore::RenderLayer::paintLayer):
21246         Updated our shouldPaint check to consider visibility.
21247
21248 2007-06-25  Oliver Hunt  <oliver@apple.com>
21249
21250         Reviewed by Darin.
21251
21252         <rdar://problem/5293444> REGRESSION: Dragging plain text into a styled text region does not acquire the correct style info
21253
21254         Fixing logic error in DragController
21255
21256         * manual-tests/drop-text-acquires-style.html: Added.
21257         * page/DragController.cpp:
21258         (WebCore::documentFragmentFromDragData):
21259
21260 2007-06-25  Sam Weinig  <sam@webkit.org>
21261
21262         Reviewed by Adam Roben.
21263
21264         Annotate prototypes by adding "Prototype" subtitle.
21265
21266         * page/inspector/ResourcePanel.js:
21267
21268 2007-06-25  George Staikos  <staikos@kde.org>
21269
21270         Reviewed by Zack.
21271
21272         Start to add proxy and SSL support to WebKitQt.  Proxying works.
21273
21274         * platform/network/ResourceHandleInternal.h:
21275         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
21276         * platform/network/qt/ResourceHandleQt.cpp:
21277         (WebCore::ResourceHandle::start):
21278
21279 2007-06-25  Alp Toker  <alp.toker@collabora.co.uk>
21280
21281         Reviewed by Adam Roben.
21282
21283         http://bugs.webkit.org/show_bug.cgi?id=14386
21284         Gdk build fix
21285
21286         * WebCore.pro: Fix gtk/gdk typo.
21287
21288 2007-06-25  Timothy Hatcher  <timothy@apple.com>
21289
21290         Reviewed by Anders.
21291
21292         Bug 14385: Web Inspector's computed style doesn't show implicitly set properties
21293         http://bugs.webkit.org/show_bug.cgi?id=14385
21294
21295         Add a toggle to show implict computed properties.
21296
21297         * page/inspector/ResourcePanel.js:
21298         * page/inspector/inspector.css:
21299         * page/inspector/inspector.js:
21300
21301 2007-06-25  Alp Toker  <alp.toker@collabora.co.uk>
21302
21303         Reviewed by Mark.
21304
21305         http://bugs.webkit.org/show_bug.cgi?id=13975
21306         Use system-provided libjpeg and libpng
21307
21308         * WebCore.pro: Remove bundled libjpeg and libpng sources.
21309         * platform/image-decoders/jpeg: Remove sources.
21310         * platform/image-decoders/png: Remove sources.
21311
21312 2007-06-25  Mitz Pettel  <mitz@webkit.org>
21313
21314         Reviewed by Darin.
21315
21316         - fix http://bugs.webkit.org/show_bug.cgi?id=14202
21317           Table caption renders too narrow sometimes
21318
21319         Test: fast/table/caption-relayout.html
21320
21321         * rendering/RenderTable.cpp:
21322         (WebCore::RenderTable::layout): Mark the caption for layout if the table
21323         width changed.
21324
21325 2007-06-25  Mitz Pettel  <mitz@webkit.org>
21326
21327         Reviewed by Darin.
21328
21329         - fix http://bugs.webkit.org/show_bug.cgi?id=14245
21330           Underline painted under <br>, not repainted properly
21331
21332         Test: fast/inline/br-text-decoration.html
21333
21334         * platform/graphics/cg/GraphicsContextCG.cpp:
21335         (WebCore::GraphicsContext::drawLineForText): Added an early return if the line width
21336         is zero. Also changed the line stroke to a rect fill, so that lines with length shorter
21337         than their thickness paint correctly.
21338
21339 2007-06-25  Mitz Pettel  <mitz@webkit.org>
21340
21341         Reviewed by Maciej.
21342
21343         - fix http://bugs.webkit.org/show_bug.cgi?id=14341
21344           rules="none" ignored in certain cases
21345
21346         Covered by existing tests.
21347
21348         * html/HTMLTableElement.cpp:
21349         (WebCore::HTMLTableElement::getSharedCellDecl):
21350
21351 2007-06-24  Sam Weinig  <sam@webkit.org>
21352
21353         Reviewed by Mitz.
21354
21355         Patch for http://bugs.webkit.org/show_bug.cgi?id=14379
21356         Anchor elements show up as their href in the properties pane, not HTMLAnchorElement
21357
21358         * page/inspector/ResourcePanel.js: make sure not to call an overriden
21359         toString() by using Object.prototype.toString.call().
21360
21361 2007-06-24  Adam Roben  <aroben@apple.com>
21362
21363         Fix http://bugs.webkit.org/show_bug.cgi?id=14374
21364         Bug 14374: Computed Style section should be expanded by default
21365
21366         Reviewed by Sam.
21367
21368         No regression test possible.
21369
21370         * page/inspector/ResourcePanel.js: Expand all style sections.
21371
21372 2007-06-24  Adam Roben  <aroben@apple.com>
21373
21374         Unify the style of enums in the Inspector JS
21375
21376         All our enums are now represented by an object with a property for
21377         each enum value.
21378
21379         Reviewed by Sam.
21380
21381         No regression test possible.
21382
21383         * page/inspector/ConsolePanel.js:
21384         * page/inspector/Resource.js:
21385         * page/inspector/ResourcePanel.js:
21386         * page/inspector/inspector.js:
21387
21388 2007-06-23  Sam Weinig  <sam@webkit.org>
21389
21390         Reviewed by Mitz.
21391
21392         Patch for http://bugs.webkit.org/show_bug.cgi?id=14321
21393         getComputedStyle(...).zIndex returns string "normal"
21394
21395         Test: fast/css/getComputedStyle-zIndex-auto.html
21396
21397         * css/CSSComputedStyleDeclaration.cpp:
21398         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Return 'auto' instead of 'normal'.
21399
21400 2007-06-24  Matt Lilek  <pewtermoose@gmail.com>
21401
21402         Reviewed by Tim Hatcher.
21403
21404         Bug 14265: Cannot resize columns in webinspector
21405         http://bugs.webkit.org/show_bug.cgi?id=14265
21406
21407         * page/inspector/inspector.css:
21408         * page/inspector/inspector.html:
21409         * page/inspector/inspector.js:
21410
21411 2007-06-23  Adam Roben  <aroben@apple.com>
21412
21413         Silence a build warning about not finding `num-cpus`
21414
21415         Reviewed by Mark Rowe.
21416
21417         * WebCore.vcproj/build-generated-files.sh: Look for num-cpus in its new
21418         location.
21419
21420 2007-06-22  Anders Carlsson  <andersca@apple.com>
21421
21422         Reviewed by Darin.
21423
21424         * plugins/win/PluginStreamWin.cpp:
21425         (WebCore::PluginStreamWin::didFinishLoading):
21426         No need to fetch the size from resourceData.
21427
21428 2007-06-22  Anders Carlsson  <andersca@apple.com>
21429
21430         Reviewed by Darin.
21431
21432         <rdar://problem/5288617>
21433         Crash playing a very large QuickTime movie inside Safari.
21434
21435         Get rid of m_completeDeliveryData and use the loader's resource data instead. This reduces the memory usage for 
21436         plug-ins which loads large files and use a transfer mode of NP_ASFILE or NP_ASFILEONLY.
21437         
21438         * plugins/win/PluginStreamWin.cpp:
21439         (WebCore::PluginStreamWin::PluginStreamWin):
21440         (WebCore::PluginStreamWin::~PluginStreamWin):
21441         (WebCore::PluginStreamWin::didReceiveData):
21442         (WebCore::PluginStreamWin::didFinishLoading):
21443         * plugins/win/PluginStreamWin.h:
21444
21445 2007-06-22  Beth Dakin  <bdakin@apple.com>
21446
21447         Reviewed by Oliver and Darin.
21448
21449         Fix for <rdar://problem/5266999> Loading page from MangleMe fuzz 
21450         tester crashes in RenderTableRow::addChild (giant ROWSPAN)
21451
21452         We already have code that tries to prevent allocating too-large 
21453         rowspans. The rowspan in this test, however, was small enough that 
21454         we thought it was okay in that code, even though clearly it was 
21455         still too large. I did a bunch of testing in Firefox, and it seems 
21456         that they set a hard limit on the maximum rowspan right in the DOM 
21457         -- 8k. So that is what this patch implements. 
21458
21459         * html/HTMLTableCellElement.cpp:
21460         (WebCore::HTMLTableCellElement::parseMappedAttribute):
21461
21462 2007-06-22  Justin Garcia  <justin.garcia@apple.com>
21463
21464         Reviewed by Darin.
21465         
21466         <rdar://problem/5272440> Adding To Do via Note received in e-mail adds newlines on delete
21467         
21468         Deletion inserts a placeholder after it removes full paragraphs if
21469         one doesn't already exist.  The code that looked for a pre-existing
21470         placeholder didn't work because of a bug in enclosingNodeOfType.
21471
21472         * editing/htmlediting.cpp:
21473         (WebCore::enclosingNodeOfType): We start looking at node->parentNode(),
21474         but don't go above an editing root.
21475
21476 2007-06-22  Anders Carlsson  <andersca@apple.com>
21477
21478         Reviewed by Maciej and Geoff.
21479
21480         <rdar://problem/5244734>
21481         WebKit shouldn't send delegate resource load methods for the user stylesheet (doing so causes assertions in Safari)
21482         
21483         Add a sendResourceLoadCallbacks argument to the ResourceLoader and only send resource load callbacks if it's true. Make it so that
21484         loading the user style sheet creates a resource loader with sendResourceLoadCallbacks set to false (done by adding a sendResourceLoadCallbacks 
21485         argument to a bunch of classes).
21486         
21487         * loader/Cache.cpp:
21488         (WebCore::createResource):
21489         (WebCore::Cache::requestResource):
21490         * loader/Cache.h:
21491         * loader/CachedCSSStyleSheet.cpp:
21492         (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
21493         * loader/CachedCSSStyleSheet.h:
21494         * loader/CachedResource.cpp:
21495         (WebCore::CachedResource::CachedResource):
21496         * loader/CachedResource.h:
21497         (WebCore::CachedResource::sendResourceLoadCallbacks):
21498         * loader/DocLoader.cpp:
21499         (WebCore::DocLoader::requestCSSStyleSheet):
21500         (WebCore::DocLoader::requestResource):
21501         (WebCore::DocLoader::checkCacheObjectStatus):
21502         * loader/DocLoader.h:
21503         * loader/MainResourceLoader.cpp:
21504         (WebCore::MainResourceLoader::MainResourceLoader):
21505         * loader/Request.cpp:
21506         (WebCore::Request::Request):
21507         * loader/Request.h:
21508         (WebCore::Request::sendResourceLoadCallbacks):
21509         * loader/ResourceLoader.cpp:
21510         (WebCore::ResourceLoader::ResourceLoader):
21511         (WebCore::ResourceLoader::willSendRequest):
21512         (WebCore::ResourceLoader::didReceiveResponse):
21513         (WebCore::ResourceLoader::didReceiveData):
21514         (WebCore::ResourceLoader::didFinishLoadingOnePart):
21515         (WebCore::ResourceLoader::didFail):
21516         (WebCore::ResourceLoader::didCancel):
21517         * loader/ResourceLoader.h:
21518         (WebCore::ResourceLoader::sendResourceLoadCallbacks):
21519         * loader/SubresourceLoader.cpp:
21520         (WebCore::SubresourceLoader::SubresourceLoader):
21521         (WebCore::SubresourceLoader::create):
21522         * loader/SubresourceLoader.h:
21523         * loader/loader.cpp:
21524         (WebCore::Loader::load):
21525         (WebCore::Loader::servePendingRequests):
21526         * loader/loader.h:
21527         * loader/mac/NetscapePlugInStreamLoaderMac.mm:
21528         (WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
21529
21530 2007-06-21  Richard Connamacher  <rich@indieimage.com>
21531
21532         Reviewed by Tim Hatcher.
21533
21534         Bug 14305: Web Inspector marks local files with server-side compression tip
21535         http://bugs.webkit.org/show_bug.cgi?id=14305
21536
21537         * page/inspector/Resource.js:
21538         (WebInspector.Resource._shouldCompress): Prevent server-side compression tip
21539         from being given to local files
21540
21541 2007-06-21  Mark Rowe  <mrowe@apple.com>
21542
21543         Reviewed by Darin.
21544
21545         Fix for <rdar://problem/5266928> REGRESSION: crash/assert failure beneath RenderFrameSet::layOutAxis when loading
21546
21547         * platform/StringImpl.cpp:
21548         (WebCore::StringImpl::toLengthArray): Simplify whitespace before checking for an empty string.  This avoids returning
21549         a length of zero when the string is collapsed to empty by whitespace simplification.
21550
21551 2007-06-21  Dave Hyatt  <hyatt@apple.com>
21552
21553         Fix for <rdar://problem/5286978>, large font sizes crash Windows.
21554         
21555         Limit the maximum font size to 1,000,000 to avoid crashes and issues with platforms that
21556         start failing to do anything useful if the font size is too big.
21557         
21558         Reviewed by olliej
21559
21560         * css/cssstyleselector.cpp:
21561         (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
21562         
21563 2007-06-21  Andrew Wellington  <proton@wiretapped.net>
21564
21565         Reviewed by Timothy.
21566
21567         Stop shift+scroll wheel performing a horizontal scroll in Web Inspector
21568
21569         * page/inspector/inspector.css: Set body margin to 0
21570
21571 2007-06-21  Adam Treat  <adam@staikos.net>
21572
21573         Reviewed by George Staikos.
21574
21575         Implement the default resources on Qt.
21576
21577         * platform/graphics/BitmapImage.h:
21578         * platform/graphics/Image.h:
21579         * platform/graphics/qt/ImageQt.cpp:
21580         (WebCore::Image::loadPlatformResource):
21581         (WebCore::BitmapImage::BitmapImage):
21582         (WebCore::BitmapImage::initPlatformData):
21583         (WebCore::BitmapImage::invalidatePlatformData):
21584         (WebCore::BitmapImage::getPixmap):
21585         * platform/qt/TemporaryLinkStubs.cpp:
21586
21587 2007-06-21  Oliver Hunt  <oliver@apple.com>
21588
21589         Reviewed by Darin.
21590
21591         Use RetainPtr for holding currentEvent.  This removes explicit HardRetain/Release calls
21592         and makes reference handling simpler in advance of IME refactoring.
21593
21594         * WebCore.xcodeproj/project.pbxproj:
21595         * page/mac/EventHandlerMac.mm:
21596         (WebCore::currentEvent):
21597         (WebCore::EventHandler::currentNSEvent):
21598         (WebCore::EventHandler::wheelEvent):
21599         (WebCore::EventHandler::keyEvent):
21600         (WebCore::lastEventIsMouseUp):
21601         (WebCore::EventHandler::passMouseDownEventToWidget):
21602         (WebCore::EventHandler::eventLoopHandleMouseDragged):
21603         (WebCore::EventHandler::eventLoopHandleMouseUp):
21604         (WebCore::EventHandler::passSubframeEventToSubframe):
21605         (WebCore::EventHandler::passWheelEventToWidget):
21606         (WebCore::EventHandler::mouseDown):
21607         (WebCore::EventHandler::mouseDragged):
21608         (WebCore::EventHandler::mouseUp):
21609         (WebCore::EventHandler::mouseMoved):
21610
21611 2007-06-21  George Staikos  <staikos@kde.org>
21612
21613         Reviewed by George & Marius.
21614
21615         Patch by me, revision by Marius, minor rev by me.  Adds rendered
21616         and stylable scrollbars.
21617
21618         * page/qt/EventHandlerQt.cpp:
21619         (WebCore::EventHandler::passMousePressEventToScrollbar):
21620         * platform/Widget.h:
21621         * platform/qt/PlatformScrollBar.h:
21622         (WebCore::PlatformScrollbar::isWidget):
21623         * platform/qt/PlatformScrollBarQt.cpp:
21624         (WebCore::PlatformScrollbar::PlatformScrollbar):
21625         (WebCore::PlatformScrollbar::~PlatformScrollbar):
21626         (WebCore::PlatformScrollbar::updateThumbPosition):
21627         (WebCore::PlatformScrollbar::updateThumbProportion):
21628         (WebCore::PlatformScrollbar::width):
21629         (WebCore::PlatformScrollbar::height):
21630         (WebCore::PlatformScrollbar::setRect):
21631         (WebCore::PlatformScrollbar::isEnabled):
21632         (WebCore::PlatformScrollbar::setEnabled):
21633         (WebCore::PlatformScrollbar::paint):
21634         (WebCore::PlatformScrollbar::thumbPosition):
21635         (WebCore::PlatformScrollbar::thumbLength):
21636         (WebCore::PlatformScrollbar::trackLength):
21637         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
21638         (WebCore::PlatformScrollbar::handleMouseOutEvent):
21639         (WebCore::PlatformScrollbar::handleMousePressEvent):
21640         (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
21641         (WebCore::PlatformScrollbar::startTimerIfNeeded):
21642         (WebCore::PlatformScrollbar::stopTimerIfNeeded):
21643         (WebCore::PlatformScrollbar::autoscrollPressedPart):
21644         (WebCore::PlatformScrollbar::autoscrollTimerFired):
21645         (WebCore::PlatformScrollbar::pressedPartScrollDirection):
21646         (WebCore::PlatformScrollbar::pressedPartScrollGranularity):
21647         (WebCore::PlatformScrollbar::thumbUnderMouse):
21648         (WebCore::PlatformScrollbar::horizontalScrollbarHeight):
21649         (WebCore::PlatformScrollbar::verticalScrollbarWidth):
21650         (WebCore::PlatformScrollbar::windowClipRect):
21651         * platform/qt/ScrollViewQt.cpp:
21652         (WebCore::ScrollView::addChild):
21653         (WebCore::ScrollView::removeChild):
21654         * platform/qt/WidgetQt.cpp:
21655         (WebCore::WidgetPrivate::WidgetPrivate):
21656         (WebCore::Widget::setQWidget):
21657         (WebCore::Widget::invalidate):
21658         (WebCore::Widget::invalidateRect):
21659         (WebCore::Widget::setParent):
21660         (WebCore::Widget::parent):
21661
21662 2007-06-21  Geoffrey Garen  <ggaren@apple.com>
21663
21664         Reviewed by Dave Hyatt.
21665         
21666         Fixed <rdar://problem/4977124> | http://bugs.webkit.org/show_bug.cgi?id=12646
21667         REGRESSION: RapidWeaver's "Hello" HTML page doesn't display any DHTML 
21668         effects when clicking on its links (12646)
21669         
21670         I'm rolling our r7703 for these reasons:
21671
21672         1. It broke RapidWeaver.
21673         
21674         2. WebKit is now orders of magnitude faster when handling deep nesting
21675         (5 seconds vs 3 minutes on my MBP in this particular case).
21676
21677         3. Firefox, IE, and HTML5 all allow nested heading tags.
21678         
21679         4. Hyatt said so.
21680
21681         * html/HTMLParser.cpp:
21682         (WebCore::HTMLParser::parseToken):
21683
21684 2007-06-21  Sam Weinig  <sam@webkit.org>
21685
21686         Reviewed by Tim Hatcher.
21687
21688         http://bugs.webkit.org/show_bug.cgi?id=14260
21689         ASSERTION FAILED: m_mainResource->loader == loader going back in history on any page
21690
21691         Remove assert for now as it is causing the back button to not
21692         work in debug builds.
21693
21694         * page/InspectorController.cpp:
21695         (WebCore::InspectorController::didCommitLoad):
21696
21697 2007-06-21  Lars Knoll <lars@trolltech.com>
21698
21699         Remove some debug output.
21700
21701         * platform/qt/FontQt.cpp:
21702         (WebCore::generateComponents):
21703         (WebCore::Font::width):
21704
21705 2007-06-21  George Staikos  <staikos@kde.org>
21706
21707         Repair Qt/Mac OS X build.
21708
21709         * WebCore.pro:
21710
21711 2007-06-21  Alexey Proskuryakov  <ap@webkit.org>
21712
21713         Reviewed by Anders.
21714
21715         http://bugs.webkit.org/show_bug.cgi?id=13905
21716         REGRESSION: A Chinese dictionary widget has a problem with XMLHttpRequest response encoding
21717
21718         Tiger WebKit accidentally looked at HTML Http-Equiv META to determine the response encoding
21719         (regardless of the actual response MIME type). This was corrected a while ago to match other 
21720         browsers and the draft XHR spec.
21721
21722         Now restoring this functionality for "text/html", with spec editor's blessing.
21723
21724         * xml/xmlhttprequest.cpp:
21725         (WebCore::XMLHttpRequest::responseMIMEType):
21726         (WebCore::XMLHttpRequest::responseIsXML):
21727         (WebCore::XMLHttpRequest::didReceiveData):
21728         * xml/xmlhttprequest.h:
21729
21730 2007-06-21  Andrew Wellington  <proton@wiretapped.net>
21731
21732         Mac build fix.
21733
21734         * platform/Font.h:
21735
21736 2007-06-21  Lars Knoll  <lars@trolltech.com>
21737
21738         Reviewed by Simon.
21739
21740         another small fix for letter spacing
21741
21742         * platform/qt/FontQt.cpp:
21743         (WebCore::generateComponents):
21744
21745 2007-06-21  Lars Knoll  <lars@trolltech.com>
21746
21747         Reviewed by Simon.
21748
21749         fix word-spacing
21750
21751         * platform/qt/FontQt.cpp:
21752         (WebCore::generateComponents):
21753         (WebCore::Font::width):
21754
21755 2007-06-21  Lars Knoll  <lars@trolltech.com>
21756
21757         Reviewed by Simon.
21758
21759         fix letterspacing and small caps.
21760
21761         * platform/Font.h:
21762         * platform/graphics/qt/GraphicsContextQt.cpp:
21763         (WebCore::GraphicsContext::setPlatformFont):
21764         * platform/qt/FileChooserQt.cpp:
21765         * platform/qt/FontQt.cpp:
21766         (WebCore::TextRunComponent::TextRunComponent):
21767         (WebCore::Font::Font):
21768         (WebCore::Font::operator=):
21769         (WebCore::Font::update):
21770         (WebCore::generateComponents):
21771         (WebCore::Font::selectionRectForText):
21772         * platform/qt/RenderThemeQt.cpp:
21773
21774 2007-06-21  Lars Knoll  <lars@trolltech.com>
21775
21776         Reviewed by Simon.
21777
21778         store the metrics and space width in the Font object
21779
21780         * platform/Font.h:
21781         * platform/qt/FontQt.cpp:
21782         (WebCore::Font::Font):
21783         (WebCore::Font::drawText):
21784         (WebCore::Font::width):
21785         (WebCore::Font::isFixedPitch):
21786         (WebCore::Font::ascent):
21787         (WebCore::Font::descent):
21788         (WebCore::Font::lineSpacing):
21789
21790 2007-06-21  Lars Knoll  <lars@trolltech.com>
21791
21792         Reviewed by Simon.
21793
21794         simplify some codepaths
21795
21796         * platform/qt/FontQt.cpp:
21797         (WebCore::Font::drawText):
21798         (WebCore::Font::width):
21799
21800 2007-06-21  Lars Knoll  <lars@trolltech.com>
21801
21802         Reviewed by Simon.
21803
21804         fix copyright header
21805
21806         * platform/qt/FontQt.cpp:
21807
21808 2007-06-21  Lars Knoll  <lars@trolltech.com>
21809
21810         Reviewed by Simon.
21811
21812         correctly load fonts when a list of font families is given
21813
21814         * platform/qt/FontQt.cpp:
21815         (WebCore::Font::Font):
21816
21817 2007-06-21  Lars Knoll  <lars@trolltech.com>
21818
21819         Reviewed by Simon.
21820
21821         fix some more of the font support
21822
21823         * platform/qt/FontQt.cpp:
21824         (WebCore::Font::drawText):
21825         (WebCore::Font::width):
21826
21827 2007-06-21  Lars Knoll  <lars@trolltech.com>
21828
21829         Reviewed by Simon.
21830
21831         Compile fixes
21832
21833         * platform/Font.h:
21834         (WebCore::Font::isRoundingHackCharacter):
21835         * platform/qt/FontQt.cpp:
21836         (WebCore::Font::drawText):
21837
21838 2007-06-21  Lars Knoll  <lars@trolltech.com>
21839
21840         Reviewed by Simon.
21841
21842         Some more work on the implementation of FontQt.
21843
21844         * platform/qt/FontQt.cpp:
21845         (WebCore::Font::Font):
21846         (WebCore::Font::~Font):
21847         (WebCore::Font::operator=):
21848
21849 2007-06-21  Lars Knoll  <lars@trolltech.com>
21850
21851         Reviewed by Simon.
21852
21853         Started work on the new font infrastructure for the Qt port.
21854
21855         * WebCore.pro:
21856         * editing/Editor.cpp:
21857         (WebCore::Editor::fontForSelection):
21858         * platform/Font.h:
21859         (WebCore::Font::treatAsSpace):
21860         (WebCore::Font::treatAsZeroWidthSpace):
21861         (WebCore::Font::isRoundingHackCharacter):
21862         * platform/qt/FontQt.cpp:
21863         (WebCore::Font::operator QFont):
21864         * platform/qt/TemporaryLinkStubs.cpp:
21865
21866 2007-06-21  Adam Roben  <aroben@apple.com>
21867
21868         More Gdk build fixes.
21869
21870         * page/gdk/ContextMenuClientGdk.cpp:
21871         (WebCore::ContextMenuClientGdk::shouldIncludeInspectElementItem):
21872         * page/gdk/ContextMenuClientGdk.h:
21873         * platform/gdk/TemporaryLinkStubs.cpp:
21874
21875 2007-06-21  Adam Roben  <aroben@apple.com>
21876
21877         Speculative Gdk build fix.
21878
21879         * page/InspectorController.h: Only include the JS headers we really
21880         need to avoid pulling in ones like JSStringRefCF.h.
21881
21882 2007-06-20  Adam Roben  <aroben@apple.com>
21883
21884         Speculative Gdk build fix.
21885
21886         * WebCore.pro: Don't try to build WebKitQt/Plugins on Gdk.
21887
21888 2007-06-20  Adam Roben  <aroben@apple.com>
21889
21890         Windows build fix.
21891
21892         * WebCore.vcproj/WebCore.vcproj: Include ForwardingHeaders after
21893         everything but $WebKitLibrariesDir so that we will pick up
21894         JavaScriptCore headers directly.
21895
21896 2007-06-15  George Staikos  <staikos@kde.org>
21897
21898         Add missing symbol.
21899
21900         * platform/qt/TemporaryLinkStubs.cpp:
21901         (WebCore::contextMenuItemTagInspectElement):
21902
21903 2007-06-20  Steve Falkenburg  <sfalken@apple.com>
21904
21905         Reviewed by Maciej, Anders.
21906         
21907         <rdar://problem/5283789> Crash after dismissing JavaScript alert at end of test on http://lcamtuf.coredump.cx/ierace/
21908
21909         Keep a reference to the Page (via the main frame) for the
21910         load deferred pages.
21911         
21912         Reference is held via the frame since Page isn't refcounted.
21913
21914         * page/Chrome.cpp:
21915         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
21916         (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
21917
21918 2007-06-15  Adam Treat <adam@staikos.net>
21919
21920         Reviewed by George Staikos.
21921
21922         Add ICO support to the Qt build.
21923
21924         * WebCore.pro:
21925         * platform/graphics/qt/ImageDecoderQt.cpp:
21926         (Q_IMPORT_PLUGIN):
21927
21928 2007-06-15  George Staikos  <staikos@kde.org>
21929
21930         Fixing Qt build.
21931
21932         * ForwardingHeaders/JavaScriptCore/APICast.h: Added.
21933         * WebCore.pro:
21934         * page/InspectorController.h:
21935
21936 2007-06-20  Adam Roben  <aroben@apple.com>
21937
21938         More speculative Qt/Gdk build fixes.
21939
21940         * WebCore.pro: Add new files.
21941
21942 2007-06-20  Adam Roben  <aroben@apple.com>
21943
21944         Speculative Qt/Gdk build fix.
21945
21946         Added forwarding headers for JavaScriptCore. We may eventually move
21947         InspectorController off of the JSC API, but for now this is the
21948         quickest way to a working build.
21949
21950         * ForwardingHeaders/JavaScriptCore/JSBase.h: Added.
21951         * ForwardingHeaders/JavaScriptCore/JSContextRef.h: Added.
21952         * ForwardingHeaders/JavaScriptCore/JSObjectRef.h: Added.
21953         * ForwardingHeaders/JavaScriptCore/JSStringRef.h: Added.
21954         * ForwardingHeaders/JavaScriptCore/JSStringRefCF.h: Added.
21955         * ForwardingHeaders/JavaScriptCore/JSValueRef.h: Added.
21956         * ForwardingHeaders/JavaScriptCore/JavaScriptCore.h: Added.
21957
21958 2007-06-20  Sam Weinig  <sam@webkit.org>
21959
21960         Rubber stamped by Adam Roben.
21961
21962         Add licenses.
21963
21964         * page/inspector/ConsolePanel.js:
21965         * page/inspector/NetworkPanel.js:
21966         * page/inspector/Resource.js:
21967         * page/inspector/ResourceCategory.js:
21968         * page/inspector/ResourcePanel.js:
21969
21970 2007-06-20  Mark Rowe  <mrowe@apple.com>
21971
21972         Reviewed by Adam.
21973
21974         * WebCore.exp: Export InspectorController::inspect so WebKit can see it.
21975
21976 2007-06-20  Geoffrey Garen  <ggaren@apple.com>
21977
21978         Reviewed by Adele Peterson, Oliver Hunt, Anders Carlsson.
21979
21980         Fixed <rdar://problem/5222911> Leopard9A446 : VitalSource Bookshelf 4.5: 
21981         Crashes when you click on sign in (stringByEvaluatingJavaScriptFromString 
21982         returning nil instead of "")
21983
21984         I'm basically rolling out the change for <rdar://problem/4782422> because
21985         my testing shows that it was backwards.
21986         
21987         * html/HTMLElement.cpp:
21988         (dumpInnerHTML): New debug-only function to work around gdb being 
21989         perpetually suck-tastic.
21990
21991         * page/mac/WebCoreFrameBridge.mm:
21992         (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
21993         
21994         Return "", not nil. This function never used to return nil, so let's not
21995         start now. I've filed <rdar://problem/5283271> to cover the documentation bug,
21996
21997 2007-06-20  Adam Roben  <aroben@apple.com>
21998
21999         Addressed some of Geoff's comments.
22000
22001         * page/ContextMenuController.cpp:
22002         (WebCore::ContextMenuController::handleContextMenuEvent): Added a
22003         FIXME.
22004         * platform/ContextMenu.cpp:
22005         (WebCore::ContextMenu::addInspectElementItem): Null-check
22006         frame->page().
22007
22008 2007-06-20  Adam Roben  <aroben@apple.com>
22009
22010         Fix crash in fast/dom/dir-no-body.html
22011
22012         Reviewed by Mark.
22013
22014         * html/HTMLDocument.cpp:
22015         (WebCore::HTMLDocument::createTokenizer): Don't assume we have a
22016         Frame, since we won't if someone creates an HTMLDocument from JS.
22017
22018 2007-06-20  Adam Roben  <aroben@apple.com>
22019
22020         Land the new Inspector.
22021
22022         Co-written with Tim Hatcher.
22023
22024         Reviewed by Anders, Adele, Hyatt, and Sam.
22025
22026         No regression tests possible.
22027
22028         Add a new InspectorController that is in charge of the Inspector. It
22029         has an InspectorClient that controls the Inspector's window and node
22030         highlight.
22031
22032         * page/InspectorClient.h: Added.
22033         (WebCore::InspectorClient::~InspectorClient):
22034         * page/InspectorController.cpp: Added.
22035         (WebCore::ConsoleMessage::ConsoleMessage):
22036         (WebCore::InspectorResource::): Represents a single resource that the
22037         Inspector knows about.
22038         (WebCore::InspectorResource::InspectorResource):
22039         (WebCore::InspectorResource::~InspectorResource):
22040         (WebCore::InspectorResource::type):
22041         (WebCore::InspectorResource::setScriptObject):
22042         (WebCore::addSourceToFrame): Callback available from JS.
22043         (WebCore::getResourceDocumentNode): Ditto.
22044         (WebCore::highlightDOMNode): Ditto.
22045         (WebCore::hideDOMNodeHighlight): Ditto.
22046         (WebCore::loaded): Ditto.
22047         (WebCore::unloading): Ditto.
22048         (WebCore::attach): Ditto.
22049         (WebCore::detach): Ditto.
22050         (WebCore::log): Ditto.
22051         (WebCore::search): Ditto.
22052         (WebCore::inspectedWindow): Ditto.
22053         (WebCore::InspectorController::InspectorController):
22054         (WebCore::InspectorController::~InspectorController):
22055         (WebCore::InspectorController::inspect): Called by
22056         ContextMenuController to inspect a node.
22057         (WebCore::InspectorController::focusNode):
22058         (WebCore::InspectorController::highlight):
22059         (WebCore::InspectorController::hideHighlight):
22060         (WebCore::InspectorController::windowVisible):
22061         (WebCore::InspectorController::setWindowVisible):
22062         (WebCore::InspectorController::addMessageToConsole):
22063         (WebCore::InspectorController::attachWindow):
22064         (WebCore::InspectorController::detachWindow):
22065         (WebCore::InspectorController::windowScriptObjectAvailable):
22066         (WebCore::InspectorController::scriptObjectReady):
22067         (WebCore::InspectorController::windowUnloading):
22068         (WebCore::addHeaders): Static helper function.
22069         (WebCore::objectForRequest): Ditto.
22070         (WebCore::objectForResponse): Ditto.
22071         (WebCore::InspectorController::addScriptResource):
22072         (WebCore::InspectorController::addAndUpdateScriptResource):
22073         (WebCore::InspectorController::removeScriptResource):
22074         (WebCore::InspectorController::updateScriptResource):
22075         (WebCore::InspectorController::populateScriptResources):
22076         (WebCore::InspectorController::addScriptConsoleMessage):
22077         (WebCore::callClearFunction): Static helper function.
22078         (WebCore::InspectorController::clearScriptResources):
22079         (WebCore::InspectorController::clearScriptConsoleMessages):
22080         (WebCore::InspectorController::clearNetworkTimeline):
22081         (WebCore::InspectorController::pruneResources):
22082         (WebCore::InspectorController::didCommitLoad): Callback from
22083         FrameLoader.
22084         (WebCore::InspectorController::frameDetachedFromParent): Ditto.
22085         (WebCore::InspectorController::addResource): Ditto.
22086         (WebCore::InspectorController::removeResource): Ditto.
22087         (WebCore::InspectorController::didLoadResourceFromMemoryCache): Ditto.
22088         (WebCore::InspectorController::identifierForInitialRequest): Ditto.
22089         (WebCore::InspectorController::willSendRequest): Ditto.
22090         (WebCore::InspectorController::didReceiveResponse): Ditto.
22091         (WebCore::InspectorController::didReceiveContentLength): Ditto.
22092         (WebCore::InspectorController::didFinishLoading): Ditto.
22093         (WebCore::InspectorController::didFailLoading): Ditto.
22094         * page/InspectorController.h: Added.
22095         (WebCore::InspectorController::inspectedPage):
22096         (WebCore::InspectorController::scriptContext):
22097         (WebCore::InspectorController::setScriptContext):
22098         (WebCore::InspectorController::resources):
22099         (WebCore::InspectorController::removeAllResources):
22100
22101         Add the JavaScript that defines most of the behavior of the Inspector.
22102         
22103         * page/inspector/ConsolePanel.js: Added.
22104         * page/inspector/NetworkPanel.js: Added.
22105         * page/inspector/Resource.js: Added.
22106         * page/inspector/ResourceCategory.js: Added.
22107         * page/inspector/ResourcePanel.js: Added.
22108         * page/inspector/inspector.js: Added.
22109         * page/inspector/treeoutline.js: Renamed from WebKit/WebInspector/webInspector/treeoutline.js.
22110         * page/inspector/utilities.js: Added.
22111
22112         Add the Inspector's CSS and HTML.
22113
22114         * page/inspector/inspector.css: Added.
22115         * page/inspector/inspector.html: Added.
22116
22117         Hang the InspectorController off of Page. We only create an
22118         InspectorController if an InspectorClient is given to the Page.
22119
22120         * page/Page.cpp:
22121         (WebCore::Page::Page):
22122         * page/Page.h:
22123         (WebCore::Page::inspectorController):
22124
22125         Use FrameLoader to notify the InspectorController of resource loads.
22126
22127         * loader/FrameLoader.cpp:
22128         (WebCore::FrameLoader::begin):
22129         (WebCore::FrameLoader::transitionToCommitted):
22130         (WebCore::FrameLoader::continueLoadAfterWillSubmitForm):
22131         (WebCore::FrameLoader::detachFromParent):
22132         (WebCore::FrameLoader::assignIdentifierToInitialRequest):
22133         (WebCore::FrameLoader::willSendRequest):
22134         (WebCore::FrameLoader::didReceiveResponse):
22135         (WebCore::FrameLoader::didReceiveData):
22136         (WebCore::FrameLoader::sendRemainingDelegateMessages):
22137         (WebCore::FrameLoader::requestFromDelegate):
22138         (WebCore::FrameLoader::didFinishLoad):
22139         (WebCore::FrameLoader::dispatchWindowObjectAvailable):
22140         (WebCore::FrameLoader::dispatchDidCommitLoad):
22141         (WebCore::FrameLoader::dispatchAssignIdentifierToInitialRequest):
22142         (WebCore::FrameLoader::dispatchWillSendRequest):
22143         (WebCore::FrameLoader::dispatchDidReceiveResponse):
22144         (WebCore::FrameLoader::dispatchDidReceiveContentLength):
22145         (WebCore::FrameLoader::dispatchDidFinishLoading):
22146         (WebCore::FrameLoader::dispatchDidLoadResourceFromMemoryCache):
22147         * loader/FrameLoader.h:
22148
22149         Send console messages to the InspectorController.
22150
22151         * page/Chrome.cpp:
22152         (WebCore::Chrome::addMessageToConsole): Send all console messages to
22153         the InspectorController.
22154         * page/Chrome.h: Add a new MessageLevel and MessageSource that are
22155         used in the Inspector JS.
22156
22157         Report HTML errors when the Inspector window is open.
22158         We don't report errors when the window is closed because we don't want
22159         to slow down the HTMLTokenizer.
22160
22161         * html/HTMLDocument.cpp:
22162         (WebCore::HTMLDocument::createTokenizer):
22163         * html/HTMLParser.cpp:
22164         (WebCore::HTMLParser::HTMLParser):
22165         * html/HTMLParser.h:
22166         * html/HTMLTokenizer.cpp:
22167         (WebCore::HTMLTokenizer::HTMLTokenizer):
22168         * html/HTMLTokenizer.h:
22169
22170         Append the "Inspect Element" context menu item after passing the
22171         context menu to the ContextMenuClient. This work used to be done in
22172         WebKit.
22173
22174         * page/ContextMenuClient.h:
22175         * page/ContextMenuController.cpp:
22176         (WebCore::ContextMenuController::handleContextMenuEvent): Add the
22177         "Inspect Element" item.
22178         (WebCore::ContextMenuController::contextMenuItemSelected): Handle the
22179         "Inspect Element" item.
22180         * platform/ContextMenu.cpp:
22181         (WebCore::ContextMenu::addInspectElementItem):
22182         (WebCore::ContextMenu::checkOrEnableIfNeeded): Updated for "Inspect
22183         Element" item.
22184         * platform/ContextMenu.h:
22185         * platform/ContextMenuItem.h:
22186         (WebCore::): Add ContextMenuItemTagInspectElement.
22187         * platform/graphics/svg/SVGImageEmptyClients.h:
22188         * page/mac/WebCoreViewFactory.h: Add the "Inspect Element" localized
22189         string.
22190         * platform/LocalizedStrings.h: Ditto.
22191         * platform/mac/LocalizedStringsMac.mm:
22192         (WebCore::contextMenuItemTagInspectElement): Ditto.
22193
22194         Miscellaneous changes:
22195
22196         * css/view-source.css: Add message bubble styles.
22197         * loader/DocumentLoader.h: Add a frame getter.
22198         * platform/win/ScrollViewWin.cpp:
22199         (WebCore::ScrollView::updateScrollbars): Respect
22200         Frame::prohibitsScrolling.
22201
22202         Add new images needed for the Inspector.
22203
22204         * page/inspector/Images/attachedShadow.png: Added.
22205         * page/inspector/Images/bottomShadow.png: Added.
22206         * page/inspector/Images/breadcrumbBackground.png: Added.
22207         * page/inspector/Images/checker.png: Added.
22208         * page/inspector/Images/console.png: Added.
22209         * page/inspector/Images/darkShadow.png: Added.
22210         * page/inspector/Images/disclosureDownPressed.png: Added.
22211         * page/inspector/Images/disclosureRightDown.png: Added.
22212         * page/inspector/Images/disclosureRightPressed.png: Added.
22213         * page/inspector/Images/document.png: Added.
22214         * page/inspector/Images/domViewButton.png: Added.
22215         * page/inspector/Images/domViewButtonSelected.png: Added.
22216         * page/inspector/Images/downTriangle.png: Added.
22217         * page/inspector/Images/errorIcon.png: Added.
22218         * page/inspector/Images/errorMediumIcon.png: Added.
22219         * page/inspector/Images/folder.png: Added.
22220         * page/inspector/Images/goArrow.png: Added.
22221         * page/inspector/Images/gradient.png: Added.
22222         * page/inspector/Images/gradientHighlight.png: Added.
22223         * page/inspector/Images/gradientHighlightBottom.png: Added.
22224         * page/inspector/Images/hideStatusWidget.png: Added.
22225         * page/inspector/Images/hideStatusWidgetPressed.png: Added.
22226         * page/inspector/Images/network.png: Added.
22227         * page/inspector/Images/paneBottomGrow.png: Added.
22228         * page/inspector/Images/paneBottomGrowActive.png: Added.
22229         * page/inspector/Images/paneGrowHandleLine.png: Added.
22230         * page/inspector/Images/paneHeader.png: Added.
22231         * page/inspector/Images/paneHeaderActive.png: Added.
22232         * page/inspector/Images/plainDocument.png: Added.
22233         * page/inspector/Images/popupArrows.png: Added.
22234         * page/inspector/Images/rightTriangle.png: Added.
22235         * page/inspector/Images/segment.png: Added.
22236         * page/inspector/Images/segmentEnd.png: Added.
22237         * page/inspector/Images/segmentHover.png: Added.
22238         * page/inspector/Images/segmentHoverEnd.png: Added.
22239         * page/inspector/Images/segmentSelected.png: Added.
22240         * page/inspector/Images/segmentSelectedEnd.png: Added.
22241         * page/inspector/Images/showStatusWidget.png: Added.
22242         * page/inspector/Images/showStatusWidgetPressed.png: Added.
22243         * page/inspector/Images/sidbarItemBackground.png: Added.
22244         * page/inspector/Images/sidebarActionWidget.png: Added.
22245         * page/inspector/Images/sidebarActionWidgetPressed.png: Added.
22246         * page/inspector/Images/sidebarAttachWidget.png: Added.
22247         * page/inspector/Images/sidebarAttachWidgetPressed.png: Added.
22248         * page/inspector/Images/sidebarDetachWidget.png: Added.
22249         * page/inspector/Images/sidebarDetachWidgetPressed.png: Added.
22250         * page/inspector/Images/sidebarResizeWidget.png: Added.
22251         * page/inspector/Images/sidebarSelection.png: Added.
22252         * page/inspector/Images/sidebarSelectionBlurred.png: Added.
22253         * page/inspector/Images/sidebarSelectionBlurredTall.png: Added.
22254         * page/inspector/Images/sidebarSelectionGray.png: Added.
22255         * page/inspector/Images/sidebarSelectionGrayTall.png: Added.
22256         * page/inspector/Images/sidebarSelectionTall.png: Added.
22257         * page/inspector/Images/sidebarStatusAreaBackground.png: Added.
22258         * page/inspector/Images/sourceViewButton.png: Added.
22259         * page/inspector/Images/sourceViewButtonSelected.png: Added.
22260         * page/inspector/Images/splitviewDimple.png: Added.
22261         * page/inspector/Images/splitviewDividerBackground.png: Added.
22262         * page/inspector/Images/tab.png: Added.
22263         * page/inspector/Images/tabSelected.png: Added.
22264         * page/inspector/Images/timelinePillBlue.png: Added.
22265         * page/inspector/Images/timelinePillGray.png: Added.
22266         * page/inspector/Images/timelinePillGreen.png: Added.
22267         * page/inspector/Images/timelinePillOrange.png: Added.
22268         * page/inspector/Images/timelinePillPurple.png: Added.
22269         * page/inspector/Images/timelinePillRed.png: Added.
22270         * page/inspector/Images/timelinePillYellow.png: Added.
22271         * page/inspector/Images/tipBalloon.png: Added.
22272         * page/inspector/Images/tipBalloonBottom.png: Added.
22273         * page/inspector/Images/tipIcon.png: Added.
22274         * page/inspector/Images/tipIconPressed.png: Added.
22275         * page/inspector/Images/toggleDown.png: Added.
22276         * page/inspector/Images/toggleUp.png: Added.
22277         * page/inspector/Images/toolbarBackground.png: Added.
22278         * page/inspector/Images/toolbarBackgroundInactive.png: Added.
22279         * page/inspector/Images/toolbarButton.png: Added.
22280         * page/inspector/Images/toolbarButtonInactive.png: Added.
22281         * page/inspector/Images/toolbarButtonPressed.png: Added.
22282         * page/inspector/Images/toolbarButtonPressedInactive.png: Added.
22283         * page/inspector/Images/toolbarSplitButtonDivider.png: Added.
22284         * page/inspector/Images/toolbarSplitButtonDividerInactive.png: Added.
22285         * page/inspector/Images/treeDownTriangleBlack.png: Added.
22286         * page/inspector/Images/treeDownTriangleWhite.png: Added.
22287         * page/inspector/Images/treeLeftTriangleBlack.png: Added.
22288         * page/inspector/Images/treeRightTriangleBlack.png: Added.
22289         * page/inspector/Images/treeRightTriangleWhite.png: Added.
22290         * page/inspector/Images/warningIcon.png: Added.
22291         * page/inspector/Images/warningMediumIcon.png: Added.
22292         * page/inspector/Images/warningsErrors.png: Added.
22293
22294         Build-fu:
22295
22296         * WebCore.exp: Added new symbols.
22297         * WebCore.xcodeproj/project.pbxproj: Added new source files and
22298         resources.
22299         * WebCore.vcproj/WebCore.vcproj: Ditto, and copy the resources to
22300         $WebKitOutputDir.
22301
22302         Windows build fixes:
22303
22304         * history/HistoryItem.h: ResourceRequest is a struct.
22305         * loader/FrameLoaderClient.h: Ditto.
22306
22307 2007-06-20  Mitz Pettel  <mitz@webkit.org>
22308
22309         Reviewed by Beth.
22310
22311         - fix http://bugs.webkit.org/show_bug.cgi?id=14056
22312           REGRESSION (r21113-21143): TR background not repainted via style class change
22313
22314         Test: fast/repaint/table-row.html
22315
22316         * rendering/RenderTableRow.cpp:
22317         (WebCore::RenderTableRow::layout): Added a repaint to make up for the case where the
22318         table row also needs layout, so it doesn't get a repaint in setStyle().
22319
22320 2007-06-20  Mitz Pettel  <mitz@webkit.org>
22321
22322         Reviewed by Adele.
22323
22324         - fix http://bugs.webkit.org/show_bug.cgi?id=14040
22325           Top and bottom border images flipped when using -webkit-border-image when border end up tiled
22326
22327         Test: fast/borders/border-image-01.html
22328
22329         Correctly account for the fact that "pattern space" is flipped.
22330
22331         * platform/graphics/Image.cpp: (WebCore::Image::drawTiled):
22332         * platform/graphics/cg/ImageCG.cpp:
22333         (WebCore::Image::drawPatternCallback):
22334         (WebCore::Image::drawPattern):
22335
22336 2007-06-20  Anders Carlsson  <andersca@apple.com>
22337
22338         Reviewed by Darin.
22339
22340         <rdar://problem/5245555> REGRESSION: HTTP header injection in XMLHttpRequest.setRequestHeader
22341         
22342         Check for either '\r' or '\n' in the header value.
22343         
22344         * xml/xmlhttprequest.cpp:
22345         (WebCore::isValidHeaderValue):
22346
22347 2007-06-20  Patti Hoa  <patti@apple.com>
22348
22349         Reviewed by Geoffrey Garen.
22350
22351         <rdar://problem/4882527> VO should speak URL of image links that lack tags
22352         Add additional change from review
22353         
22354         * bridge/mac/WebCoreAXObject.mm:
22355         (-[WebCoreAXObject accessibilityAttributeValue:]):
22356         Check if the element has imgTag before asking for its url
22357         
22358 2007-06-20  Patti Hoa  <patti@apple.com>
22359
22360         Reviewed by Tristan O'Tierney.
22361
22362         <rdar://problem/4882527> VO should speak URL of image links that lack tags
22363         
22364         * bridge/mac/WebCoreAXObject.mm:
22365         (-[WebCoreAXObject accessibilityAttributeNames]):
22366         (-[WebCoreAXObject accessibilityAttributeValue:]):
22367         Return the url of images.
22368
22369 2007-06-19  Anders Carlsson  <andersca@apple.com>
22370
22371         Reviewed by Kevin Decker.
22372
22373         <rdar://problem/5266289> REGRESSION (Safari 3 Beta 1): Incoming iChat messages are delayed
22374         
22375         Add a new m_deferMainResourceDataLoad that can be used to control whether a data load should be deferred using a timer or not.
22376         
22377         * loader/DocumentLoader.cpp:
22378         (WebCore::DocumentLoader::DocumentLoader):
22379         * loader/DocumentLoader.h:
22380         (WebCore::DocumentLoader::deferMainResourceDataLoad):
22381         * loader/MainResourceLoader.cpp:
22382         (WebCore::MainResourceLoader::handleDataLoadSoon):
22383         (WebCore::MainResourceLoader::loadNow):
22384         (WebCore::MainResourceLoader::setDefersLoading):
22385
22386 2007-06-19  Patti Hoa <patti@apple.com>
22387
22388         Reviewed by Justin Garcia.
22389         
22390         <rdar://problem/5237325> Incorrect AXLeftLineTextMarkerRangeForTextMarker/AXPreviousLineStartTextMarkerForTextMarker for non-editable text
22391         
22392         * editing/visible_units.cpp:
22393         (WebCore::startPositionForLine):
22394         (WebCore::startOfLine):
22395         (WebCore::endPositionForLine):
22396         (WebCore::endOfLine):
22397         Break down the line routines to allow another try to ask for start/end of line if the returned position is not valid.
22398         An example would be when lineStart/lineEnd at different line than the input position.
22399         This can happen if the input position is before the space character at the end of a soft-wrapped non-editable line, 
22400         specifically a line without webkit-line-break:after-white-space style.
22401
22402 2007-06-19  Patti Hoa  <patti@apple.com>
22403
22404         Reviewed by Justin Garcia.
22405         
22406         <rdar://problem/3992645> VO view bounds misplaced when reading text after a line wrap
22407         
22408         * bridge/mac/WebCoreAXObject.mm:
22409         (-[WebCoreAXObject doAXBoundsForTextMarkerRange:]):
22410         Improve the accuracy of the bounds for a given range
22411         
22412 2007-06-19  Anders Carlsson  <andersca@apple.com>
22413
22414         Reviewed by Darin.
22415
22416         <rdar://problem/5130630>
22417         XPath fails LayoutTests on Windows
22418         
22419         * xml/XPathPredicate.cpp:
22420         Include MathExtras.h here so we get a version of fmod that works around a bug in the Microsoft CRT.
22421         
22422         * xml/XPathValue.cpp:
22423         (WebCore::XPath::Value::toNumber):
22424         Instead of using NAN, which isn't really the NaN value on Windows, use numeric_limits.
22425         
22426 2007-06-19  Geoffrey Garen  <ggaren@apple.com>
22427
22428         Reviewed by Darin Adler.
22429
22430         Fixed cross-frame access. <rdar://problem/5251309>. 
22431
22432         * bindings/js/kjs_window.cpp:
22433         (KJS::Window::getValueProperty):
22434         * bindings/scripts/CodeGeneratorJS.pm:
22435         * page/DOMWindow.idl:
22436
22437 2007-06-19  Anders Carlsson  <andersca@apple.com>
22438
22439         Build fix.
22440         
22441         * platform/win/PopupMenuWin.cpp:
22442
22443 2007-06-19  Lars Knoll <lars@trolltech.com>
22444
22445         Reviewed by Zack
22446
22447         Implement these methods correctly.
22448
22449         * platform/qt/PlatformScreenQt.cpp:
22450         (WebCore::screenRect):
22451         (WebCore::screenAvailableRect):
22452
22453 2007-06-19  Sam Weinig  <sam@webkit.org>
22454
22455         Reviewed by Geoff.
22456
22457         Patch for http://bugs.webkit.org/show_bug.cgi?id=14226
22458         Move the History object out of the JS bindings
22459
22460         - Autogenerate JSHistory.
22461
22462         * DerivedSources.make:
22463         * WebCore.pro:
22464         * WebCore.vcproj/WebCore.vcproj:
22465         * WebCore.xcodeproj/project.pbxproj:
22466         * bindings/js/kjs_window.cpp:
22467         (KJS::WindowPrivate::WindowPrivate):
22468         (KJS::Window::mark):
22469         (KJS::Window::getValueProperty):
22470         (KJS::Window::clearHelperObjectProperties):
22471         (KJS::Window::disconnectFrame):
22472         * bindings/js/kjs_window.h:
22473         (KJS::Window::):
22474         * bridge/GlobalHistory.h: Copied from WebCore/bridge/History.h.
22475         * bridge/History.h: Removed.
22476         * bridge/mac/GlobalHistoryMac.mm: Copied from WebCore/bridge/mac/HistoryMac.mm.
22477         * bridge/mac/HistoryMac.mm: Removed.
22478         * bridge/win/GlobalHistoryWin.cpp: Copied from WebCore/bridge/win/HistoryWin.cpp.
22479         * bridge/win/HistoryWin.cpp: Removed.
22480         * css/cssstyleselector.cpp:
22481         * page/DOMWindow.cpp:
22482         (WebCore::DOMWindow::disconnectFrame):
22483         (WebCore::DOMWindow::history):
22484         * page/DOMWindow.h:
22485         * page/DOMWindow.idl:
22486         * page/History.cpp: Added.
22487         (WebCore::History::History):
22488         (WebCore::History::frame):
22489         (WebCore::History::disconnectFrame):
22490         (WebCore::History::length):
22491         (WebCore::History::back):
22492         (WebCore::History::forward):
22493         (WebCore::History::go):
22494         * page/History.h: Added.
22495         * page/History.idl: Added.
22496         * platform/gdk/TemporaryLinkStubs.cpp:
22497         * platform/qt/TemporaryLinkStubs.cpp:
22498         * platform/wx/TemporaryLinkStubs.cpp:
22499
22500 2007-06-18  Sam Weinig  <sam@webkit.org>
22501
22502         Qt build fix.
22503
22504         * platform/qt/PlatformScreenQt.cpp:
22505         (WebCore::screenDepth):
22506         (WebCore::screenDepthPerComponent):
22507         (WebCore::screenIsMonochrome):
22508         (WebCore::screenRect):
22509         (WebCore::screenAvailableRect):
22510
22511 2007-06-18  Sam Weinig  <sam@webkit.org>
22512
22513         Reviewed by Beth.
22514
22515         Fix build and update licenses. 
22516
22517         * WebCore.xcodeproj/project.pbxproj:
22518         * page/BarInfo.cpp:
22519         * page/BarInfo.h:
22520         * page/BarInfo.idl:
22521         * page/Screen.cpp:
22522         (WebCore::Screen::height):
22523         (WebCore::Screen::width):
22524         (WebCore::Screen::colorDepth):
22525         (WebCore::Screen::pixelDepth):
22526         (WebCore::Screen::availLeft):
22527         (WebCore::Screen::availTop):
22528         (WebCore::Screen::availHeight):
22529         (WebCore::Screen::availWidth):
22530         * page/Screen.h:
22531         * page/Screen.idl:
22532
22533 2007-06-18  Anders Carlsson  <andersca@apple.com>
22534
22535         Reviewed by John Sullivan.
22536
22537         <rdar://problem/5277008> Assertion in [LocationChangeHandler finishedLoadingFrame:]
22538         
22539         Don't send any frame load callbacks if the document load hasn't been
22540         committed for real.
22541         
22542         * loader/FrameLoader.cpp:
22543         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
22544
22545 2007-06-18  Sam Weinig  <sam@webkit.org>
22546
22547         Reviewed by Geoff.
22548
22549         Patch for http://bugs.webkit.org/show_bug.cgi?id=14193
22550         Move the Screen object out of the JS bindings
22551
22552         - Renames Screen.h to PlatformScreen.h to accommodate new class.
22553         - Autogenerates JSScreen.
22554
22555         * DerivedSources.make:
22556         * WebCore.pro:
22557         * WebCore.vcproj/WebCore.vcproj:
22558         * WebCore.xcodeproj/project.pbxproj:
22559         * bindings/js/kjs_window.cpp:
22560         (KJS::WindowPrivate::WindowPrivate):
22561         (KJS::Window::mark):
22562         (KJS::Window::getValueProperty):
22563         (KJS::Window::clearHelperObjectProperties):
22564         * bindings/js/kjs_window.h:
22565         (KJS::Window::):
22566         * css/MediaQueryEvaluator.cpp:
22567         * page/DOMWindow.cpp:
22568         (WebCore::DOMWindow::DOMWindow):
22569         (WebCore::DOMWindow::~DOMWindow):
22570         (WebCore::DOMWindow::frame):
22571         (WebCore::DOMWindow::disconnectFrame):
22572         (WebCore::DOMWindow::screen):
22573         * page/DOMWindow.h:
22574         * page/DOMWindow.idl:
22575         * page/Screen.cpp: Added.
22576         (WebCore::Screen::Screen):
22577         (WebCore::Screen::disconnectFrame):
22578         (WebCore::Screen::height):
22579         (WebCore::Screen::width):
22580         (WebCore::Screen::colorDepth):
22581         (WebCore::Screen::pixelDepth):
22582         (WebCore::Screen::availLeft):
22583         (WebCore::Screen::availTop):
22584         (WebCore::Screen::availHeight):
22585         (WebCore::Screen::availWidth):
22586         * page/Screen.h: Added.
22587         * page/Screen.idl: Added.
22588         * page/mac/WebCoreFrameBridge.mm:
22589         * platform/PlatformScreen.h: Copied from WebCore/platform/Screen.h.
22590         * platform/Screen.h: Removed.
22591         * platform/gdk/PlatformScreenGdk.cpp: Copied from WebCore/platform/gdk/ScreenGdk.cpp.
22592         * platform/gdk/ScreenGdk.cpp: Removed.
22593         * platform/mac/PlatformMouseEventMac.mm:
22594         * platform/mac/PlatformScreenMac.mm: Copied from WebCore/platform/mac/ScreenMac.mm.
22595         * platform/mac/ScreenMac.mm: Removed.
22596         * platform/qt/PlatformScreenQt.cpp: Added.
22597         (WebCore::WebCore::screenDepth):
22598         (WebCore::WebCore::screenDepthPerComponent):
22599         (WebCore::WebCore::screenIsMonochrome):
22600         (WebCore::WebCore::screenRect):
22601         (WebCore::WebCore::screenAvailableRect):
22602         * platform/qt/TemporaryLinkStubs.cpp:
22603         * platform/win/PlatformScreenWin.cpp: Copied from WebCore/platform/win/ScreenWin.cpp.
22604         * platform/win/ScreenWin.cpp: Removed.
22605         * rendering/RenderObject.cpp:
22606
22607 2007-06-18  Sam Weinig  <sam@webkit.org>
22608
22609         Reviewed by Geoff.
22610
22611         Patch for http://bugs.webkit.org/show_bug.cgi?id=14211
22612         Move the BarInfo object out of the JS bindings
22613
22614         * DerivedSources.make:
22615         * WebCore.pro:
22616         * WebCore.vcproj/WebCore.vcproj:
22617         * WebCore.xcodeproj/project.pbxproj:
22618         * bindings/js/kjs_window.cpp:
22619         (KJS::WindowPrivate::WindowPrivate):
22620         (KJS::Window::mark):
22621         (KJS::Window::getValueProperty):
22622         (KJS::Window::clearHelperObjectProperties):
22623         (KJS::Window::disconnectFrame):
22624         * bindings/js/kjs_window.h:
22625         (KJS::Window::):
22626         * page/BarInfo.cpp: Added.
22627         (WebCore::BarInfo::BarInfo):
22628         (WebCore::BarInfo::disconnectFrame):
22629         (WebCore::BarInfo::visible):
22630         * page/BarInfo.h: Added.
22631         (WebCore::BarInfo::):
22632         * page/BarInfo.idl: Added.
22633         * page/DOMWindow.cpp:
22634         (WebCore::DOMWindow::~DOMWindow):
22635         (WebCore::DOMWindow::disconnectFrame):
22636         (WebCore::DOMWindow::locationbar):
22637         (WebCore::DOMWindow::menubar):
22638         (WebCore::DOMWindow::personalbar):
22639         (WebCore::DOMWindow::scrollbars):
22640         (WebCore::DOMWindow::statusbar):
22641         (WebCore::DOMWindow::toolbar):
22642         * page/DOMWindow.h:
22643         * page/DOMWindow.idl:
22644
22645 2007-06-18  Sam Weinig  <sam@webkit.org>
22646
22647         Reviewed by Darin.
22648
22649         Remove the FrameArray class and instead make window.frames another
22650         self-reference for window (like window.window, window.self, etc).
22651         This is what Firefox and what the HTML5 dictates.
22652
22653         * bindings/js/kjs_window.cpp:
22654         (KJS::WindowPrivate::WindowPrivate):
22655         (KJS::Window::mark):
22656         (KJS::Window::getValueProperty):
22657         (KJS::Window::clearHelperObjectProperties):
22658         (KJS::Window::disconnectFrame):
22659         * bindings/js/kjs_window.h:
22660
22661 2007-06-18  Mitz Pettel  <mitz@webkit.org>
22662
22663         Reviewed by Adele.
22664
22665         - fix http://bugs.webkit.org/show_bug.cgi?id=13413
22666           Failed assertion in RenderTextControl::setSelectionRange in Google Spreadsheets
22667
22668         Test: fast/forms/input-zero-height-focus.html
22669
22670         * rendering/RenderTextControl.cpp:
22671         (WebCore::RenderTextControl::setSelectionRange): Avoid setting the
22672         selection in a zero-height text control.
22673
22674 2007-06-18  Alp Toker  <alp.toker@collabora.co.uk>
22675
22676         Reviewed by Sam Weinig.
22677
22678         http://bugs.webkit.org/show_bug.cgi?id=14052
22679         Implement SoundGdk
22680
22681         * WebCore.pro:
22682         * platform/gdk/SoundGdk.cpp: Added.
22683         (WebCore::systemBeep):
22684         * platform/gdk/TemporaryLinkStubs.cpp:
22685         (WebCore::systemBeep):
22686
22687 2007-06-18  Dave Hyatt  <hyatt@apple.com>
22688
22689         Add support for horizontal mouse wheeling on Windows.
22690         
22691         Reviewed by aroben
22692
22693         * platform/PlatformWheelEvent.h:
22694         * platform/win/WheelEventWin.cpp:
22695         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
22696
22697 2007-06-17  Sam Weinig  <sam@webkit.org>
22698
22699         Win32 build fix.
22700
22701         * WebCore.vcproj/WebCore.vcproj:
22702
22703 2007-06-15  David Hyatt  <hyatt@apple.com>
22704
22705         Fix for bugzilla bugs 14183 and 14184, 'repeat' regressed in border-image
22706         because of a botched 'round' support removal.  Also update for a change in
22707         the spec that has the second stretch/round/repeat keyword match the first
22708         if omitted.
22709         
22710         Reviewed by olliej
22711
22712         * css/cssparser.cpp:
22713         (WebCore::BorderImageParseContext::commitBorderImage):
22714         * platform/graphics/Image.cpp:
22715         (WebCore::Image::drawTiled):
22716         * platform/graphics/Image.h:
22717         (WebCore::Image::):
22718
22719 2007-06-15  Sam Weinig  <sam@webkit.org>
22720
22721         Reviewed by Darin.
22722
22723         Patch for http://bugs.webkit.org/show_bug.cgi?id=14053
22724         Autogenerate JS binding for Rect
22725
22726         - Renames RectImpl to Rect, DOMStyleSheetList to JSStyleSheetList 
22727           and DOMRGBColor to JSRGBColor
22728         - Moves JSStyleSheetList and JSRGBColor into the WebCore namespace.
22729
22730         * DerivedSources.make:
22731         * WebCore.pro:
22732         * WebCore.xcodeproj/project.pbxproj:
22733         * bindings/js/kjs_css.cpp:
22734         (WebCore::):
22735         (WebCore::JSStyleSheetList::JSStyleSheetList):
22736         (WebCore::JSStyleSheetList::~JSStyleSheetList):
22737         (WebCore::JSStyleSheetList::getValueProperty):
22738         (WebCore::JSStyleSheetList::indexGetter):
22739         (WebCore::JSStyleSheetList::nameGetter):
22740         (WebCore::JSStyleSheetList::getOwnPropertySlot):
22741         (WebCore::toJS):
22742         (WebCore::JSStyleSheetListFunc::callAsFunction):
22743         (WebCore::JSRGBColor::JSRGBColor):
22744         (WebCore::JSRGBColor::~JSRGBColor):
22745         (WebCore::JSRGBColor::getOwnPropertySlot):
22746         (WebCore::JSRGBColor::getValueProperty):
22747         (WebCore::getJSRGBColor):
22748         * bindings/js/kjs_css.h:
22749         (WebCore::JSStyleSheetList::classInfo):
22750         (WebCore::JSStyleSheetList::):
22751         (WebCore::JSStyleSheetList::impl):
22752         (WebCore::JSRGBColor::classInfo):
22753         (WebCore::JSRGBColor::):
22754         (WebCore::JSRGBColor::impl):
22755         * bindings/objc/DOMUtility.mm:
22756         (KJS::createDOMWrapper):
22757         * bindings/scripts/CodeGeneratorJS.pm:
22758         * bindings/scripts/CodeGeneratorObjC.pm:
22759         * css/CSSBorderImageValue.cpp:
22760         (WebCore::CSSBorderImageValue::CSSBorderImageValue):
22761         * css/CSSBorderImageValue.h:
22762         * css/CSSPrimitiveValue.cpp:
22763         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
22764         (WebCore::CSSPrimitiveValue::cssText):
22765         * css/CSSPrimitiveValue.h:
22766         (WebCore::CSSPrimitiveValue::getRectValue):
22767         (WebCore::CSSPrimitiveValue::):
22768         * css/DashboardRegion.h:
22769         * css/Rect.h: Copied from css/RectImpl.h.
22770         (WebCore::Rect::~Rect):
22771         (WebCore::Rect::top):
22772         (WebCore::Rect::right):
22773         (WebCore::Rect::bottom):
22774         (WebCore::Rect::left):
22775         (WebCore::Rect::setTop):
22776         (WebCore::Rect::setRight):
22777         (WebCore::Rect::setBottom):
22778         (WebCore::Rect::setLeft):
22779         * css/Rect.idl:
22780         * css/RectImpl.h: Removed.
22781         * css/cssparser.cpp:
22782         (WebCore::CSSParser::parseShape):
22783         (WebCore::BorderImageParseContext::commitBorderImage):
22784         * css/cssstyleselector.cpp:
22785         (WebCore::CSSStyleSelector::applyProperty):
22786         * page/DOMWindow.idl:
22787
22788 2007-06-14  George Staikos  <staikos@kde.org>
22789
22790         Reviewed by Lars.
22791
22792         Implement missing tab support and a slight refactor.
22793
22794         * platform/qt/PlatformKeyboardEventQt.cpp:
22795         (WebCore::keyIdentifierForQtKeyCode):
22796         (WebCore::windowsKeyCodeForKeyEvent):
22797         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
22798
22799 2007-06-14  Dave Hyatt  <hyatt@apple.com>
22800
22801         Fix for Bugzilla bug 14806, missing text for bold/italic fonts in non-English Windows installs.
22802         
22803         This patch adds an additional step after the lookup by full name fails.  It will then look up
22804         a PostScript name in a (localized full name) -> (PostScript name) cache.  If the name is not
22805         found, then the font's name table is obtained and searched for a PostScript name (and the
22806         result is cached).
22807         
22808         If lookup on PostScript name fails too, then we now properly fall back to the next font in the
22809         list (so text should never be missing).
22810
22811         Reviewed by Darin (thoroughly reviewed, super reviewed even)
22812
22813         * platform/win/FontCacheWin.cpp:
22814         * platform/win/FontPlatformDataWin.cpp:
22815
22816 2007-06-14  Anders Carlsson  <andersca@apple.com>
22817
22818         Reviewed by Geoff.
22819
22820         Add Frame::cleanupScriptObjectsForPlugin which will invalidate the root object
22821         for a given plug-in.
22822
22823         * WebCore.exp:
22824         * page/Frame.cpp:
22825         (WebCore::Frame::cleanupScriptObjectsForPlugin):
22826         * page/Frame.h:
22827
22828 2007-06-14  Anders Carlsson  <andersca@apple.com>
22829
22830         Reviewed by Geoff.
22831
22832         <rdar://problem/5211677>
22833         -[WebPreferences setJavaEnabled:] only disables java inside <applet>, not <object>
22834         
22835         * loader/FrameLoader.cpp:
22836         (WebCore::FrameLoader::requestObject):
22837         If the object is a Java MIME type and Java is disabled, don't load the plug-in.
22838         
22839         * platform/MimeTypeRegistry.cpp:
22840         (WebCore::MimeTypeRegistry::isJavaAppletMIMEType):
22841         Clean this up and add another applet MIME type.
22842
22843 2007-06-14  George Staikos  <staikos@kde.org>
22844
22845         Reviewed by Lars.
22846
22847         Implement the file chooser for Qt.
22848
22849         * platform/qt/FileChooserQt.cpp:
22850         (WebCore::FileChooser::openFileChooser):
22851         (WebCore::FileChooser::basenameForWidth):
22852
22853 2007-06-14  George Staikos  <staikos@kde.org>
22854
22855         Reviewed by Lars.
22856
22857         Add missing initialization of pointer.
22858
22859         * platform/qt/ContextMenuQt.cpp:
22860         (WebCore::ContextMenu::ContextMenu):
22861
22862 2007-06-14  Anders Carlsson  <andersca@apple.com>
22863
22864         Reviewed by Mitz.
22865
22866         <rdar://problem/5244948>
22867         Safari keeps on complaining about slow script playing NBC TV video (14133)
22868
22869         http://bugs.webkit.org/show_bug.cgi?id=14133
22870         Runaway JavaScript timer fires when spinning around in Google Maps street view
22871
22872         Make sure to start and stop the timeout checker around calls to JS.
22873
22874         * bindings/objc/WebScriptObject.mm:
22875         (-[WebScriptObject callWebScriptMethod:withArguments:]):
22876         (-[WebScriptObject evaluateWebScript:]):
22877
22878 2007-06-14  George Staikos  <staikos@kde.org>
22879
22880         Reviewed by Maciej.
22881
22882         Keypress causes typeahead crash on empty selects due to modulo 0.
22883
22884         * html/HTMLSelectElement.cpp:
22885         (WebCore::HTMLSelectElement::typeAheadFind):
22886
22887 2007-06-13  George Staikos  <staikos@kde.org>
22888
22889         Reviewed by Lars.
22890
22891         Compile without self-linking.
22892
22893         * WebCore.pro:
22894
22895 2007-06-13  Darin Adler  <darin@apple.com>
22896
22897         Reviewed by Kevin Decker.
22898
22899         - fix <rdar://problem/5264923> Safari frequently "stalls" beneath
22900           +[NSFont fontWithName:size:] while loading a web page (searching on disk for the font)
22901
22902         * platform/mac/WebFontCache.mm:
22903         (+[WebFontCache internalFontWithFamily:traits:size:]): Renamed from fontWithFamily.
22904         Took out the auto-activation code.
22905         (+[WebFontCache fontWithFamily:traits:size:]): Added. Calls internalFontWithFamily,
22906         then calls NSFont to trigger activation if that returned nil, then calls
22907         internalFontWithFamily again.
22908
22909 2007-06-13  Anders Carlsson  <andersca@apple.com>
22910
22911         Reviewed by Geoff.
22912
22913         Pass the root object to methods that end up creating new ObjcInstance objects.
22914         
22915         * bindings/objc/WebScriptObject.mm:
22916         (listFromNSArray):
22917         (-[WebScriptObject callWebScriptMethod:withArguments:]):
22918         (-[WebScriptObject evaluateWebScript:]):
22919         (-[WebScriptObject setValue:forKey:]):
22920         (-[WebScriptObject valueForKey:]):
22921         (-[WebScriptObject removeWebScriptKey:]):
22922         (-[WebScriptObject setWebScriptValueAtIndex:value:]):
22923
22924 2007-06-13  Anders Carlsson  <andersca@apple.com>
22925
22926         Reviewed by Darin.
22927
22928         <rdar://problem/5267992>
22929         Make sure an alert doesn't allow loading to continue inside a script.
22930         
22931         Make sure to defer all loads where it's possible for a second main loop to be running.
22932         
22933         * page/Chrome.cpp:
22934         (WebCore::Chrome::runModal):
22935         (WebCore::Chrome::runBeforeUnloadConfirmPanel):
22936         (WebCore::Chrome::runJavaScriptAlert):
22937         (WebCore::Chrome::runJavaScriptConfirm):
22938         (WebCore::Chrome::runJavaScriptPrompt):
22939         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
22940         (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
22941         
22942         * platform/network/cf/ResourceHandleCFNet.cpp:
22943         (WebCore::ResourceHandle::setDefersLoading):
22944         Implement this.
22945
22946 2007-06-13  Alp Toker  <alp.toker@collabora.co.uk>
22947
22948         Reviewed by Rob.
22949
22950         http://bugs.webkit.org/show_bug.cgi?id=14060
22951         Cairo SVG support
22952
22953         * WebCore.pro: Add new files to the build.
22954         * platform/graphics/svg/SVGPaintServerPattern.h:
22955         * platform/graphics/svg/SVGPaintServerSolid.h:
22956         * platform/graphics/svg/cairo: Added.
22957         * platform/graphics/svg/cairo/RenderPathCairo.cpp: Added.
22958         (WebCore::RenderPath::strokeContains):
22959         (WebCore::RenderPath::strokeBBox):
22960         * platform/graphics/svg/cairo/SVGPaintServerCairo.cpp: Added.
22961         (WebCore::SVGPaintServer::draw):
22962         (WebCore::SVGPaintServer::teardown):
22963         (WebCore::SVGPaintServer::renderPath):
22964         * platform/graphics/svg/cairo/SVGPaintServerGradientCairo.cpp: Added.
22965         (WebCore::SVGPaintServerGradient::setup):
22966         * platform/graphics/svg/cairo/SVGPaintServerPatternCairo.cpp: Added.
22967         (WebCore::SVGPaintServerPattern::setup):
22968         * platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp: Added.
22969         (WebCore::SVGPaintServerSolid::setup):
22970         * platform/graphics/svg/cairo/SVGResourceClipperCairo.cpp: Added.
22971         (WebCore::SVGResourceClipper::applyClip):
22972         * platform/graphics/svg/cairo/SVGResourceMaskerCairo.cpp: Added.
22973         (WebCore::SVGResourceMasker::applyMask):
22974
22975 2007-06-13  Simon Hausmann  <hausmann@kde.org>
22976
22977         Reviewed by Lars.
22978
22979         Added a make install target that installs the Qt port and renamed
22980         WebKitQt to QtWebKit
22981
22982         * WebCore.pro:
22983
22984 2007-06-13  Adam Roben  <aroben@apple.com>
22985
22986         Fix one more BITMAPINFO/BITMAPINFOHEADER typo.
22987
22988         Rubberstamped by Oliver.
22989
22990         * platform/win/DragImageWin.cpp:
22991         (WebCore::allocImage):
22992
22993 2007-06-12  Oliver Hunt  <oliver@apple.com>
22994
22995         Reviewed by Darin.
22996
22997         Use correct size for BITMAPINFOHEADER -- whoops.
22998
22999         * platform/win/CursorWin.cpp:
23000         (WebCore::Cursor::Cursor):
23001         * platform/win/PasteboardWin.cpp:
23002         (WebCore::Pasteboard::writeImage):
23003
23004 2007-06-12  Sam Weinig  <sam@webkit.org>
23005
23006         Reviewed by Oliver.
23007
23008         Patch for http://bugs.webkit.org/show_bug.cgi?id=14109
23009         Cleanup JSEvent and JSClipboard in preperation for autogeneration
23010
23011         * bindings/js/kjs_events.cpp:
23012         (KJS::DOMEvent::DOMEvent):
23013         (KJS::DOMEvent::getValueProperty):
23014         (KJS::DOMEvent::put):
23015         (KJS::DOMEvent::putValueProperty):
23016         (KJS::DOMEventPrototypeFunction::callAsFunction):
23017         (KJS::toJS):
23018         (KJS::toEvent):
23019         (KJS::):
23020         (KJS::JSClipboard::JSClipboard):
23021         (KJS::JSClipboard::~JSClipboard):
23022         (KJS::JSClipboard::getOwnPropertySlot):
23023         (KJS::JSClipboard::getValueProperty):
23024         (KJS::JSClipboard::put):
23025         (KJS::JSClipboard::putValueProperty):
23026         (KJS::JSClipboardPrototypeFunction::callAsFunction):
23027         (KJS::toClipboard):
23028         * bindings/js/kjs_events.h:
23029         (KJS::DOMEvent::):
23030         (KJS::DOMEvent::impl):
23031         (KJS::JSClipboard::impl):
23032         * dom/ClipboardEvent.h:
23033         * dom/Event.h:
23034         (WebCore::Event::srcElement):
23035         (WebCore::Event::returnValue):
23036         (WebCore::Event::clipboardData):
23037         (WebCore::Event::dataTransfer):
23038         (WebCore::Event::clipboard):
23039         * dom/MouseEvent.h:
23040
23041 2007-06-13  Lars Knoll <lars@trolltech.com>
23042
23043         Reviewed by Niko.
23044
23045         Small cleanup
23046
23047         * platform/qt/PlugInInfoStoreQt.cpp:
23048         (WebCore::PlugInInfoStore::supportsMIMEType):
23049
23050 2007-06-13  Lars Knoll <lars@trolltech.com>
23051
23052         Reviewed by Niko
23053
23054         Implement the parts required for the JS bridge
23055         to know about the plugins.
23056
23057         * WebCore.pro:
23058         * platform/qt/PlugInInfoStoreQt.cpp: Added.
23059         (WebCore::PlugInInfoStore::createPluginInfoForPluginAtIndex):
23060         (WebCore::PlugInInfoStore::pluginCount):
23061         (WebCore::PlugInInfoStore::supportsMIMEType):
23062         (WebCore::refreshPlugins):
23063         * platform/qt/TemporaryLinkStubs.cpp:
23064
23065 === Merged the following changes from branches/WindowsMerge ===
23066
23067 2007-06-09  Sam Weinig  <sam@webkit.org>
23068
23069         Build fix.
23070
23071         * WebCore.vcproj/WebCore.vcproj:
23072
23073 2007-06-08  Anders Carlsson  <andersca@apple.com>
23074
23075         Reviewed by Adam.
23076
23077         If both the old and new WMP plugins are present, remove the old one
23078         so we won't end up choosing it.
23079         
23080         * plugins/win/PluginDatabaseWin.cpp:
23081         (WebCore::PluginDatabaseWin::getPluginsInPaths):
23082
23083 2007-06-08  David Hyatt  <hyatt@apple.com>
23084
23085         Update licenses/copyrights for WebCoreWin.
23086
23087         Reviewed by mccullough
23088
23089         * WebCorePrefix.cpp:
23090         * bridge/win/FrameWin.cpp:
23091         * bridge/win/FrameWin.h:
23092         * bridge/win/HistoryWin.cpp:
23093         * bridge/win/PageWin.cpp:
23094         * page/win/EventHandlerWin.cpp:
23095         * platform/graphics/cg/ColorCG.cpp:
23096         * platform/graphics/cg/GraphicsContextPlatformPrivate.h:
23097         * platform/graphics/svg/cg/SVGResourceFilterCg.cpp:
23098         * platform/graphics/svg/cg/SVGResourceMaskerCg.cpp:
23099         * platform/graphics/win/IconWin.cpp:
23100         * platform/graphics/win/ImageWin.cpp:
23101         * platform/network/cf/FormDataStreamCFNet.cpp:
23102         * platform/network/cf/FormDataStreamCFNet.h:
23103         * platform/network/cf/ResourceHandleCFNet.cpp:
23104         * platform/network/cf/ResourceRequestCFNet.cpp:
23105         * platform/network/cf/ResourceResponseCFNet.cpp:
23106         * platform/network/win/CookieJarWin.cpp:
23107         * platform/network/win/ResourceHandleWin.cpp:
23108         * platform/network/win/ResourceHandleWin.h:
23109         * platform/win/BString.cpp:
23110         * platform/win/BString.h:
23111         * platform/win/ClipboardWin.h:
23112         * platform/win/ContextMenuWin.cpp:
23113         * platform/win/CursorWin.cpp:
23114         * platform/win/EditorWin.cpp:
23115         * platform/win/FontCacheWin.cpp:
23116         * platform/win/FontDataWin.cpp:
23117         * platform/win/FontPlatformData.h:
23118         * platform/win/FontPlatformDataWin.cpp:
23119         * platform/win/FontWin.cpp:
23120         * platform/win/GlyphPageTreeNodeWin.cpp:
23121         * platform/win/GraphicsContextWin.cpp:
23122         * platform/win/KeyEventWin.cpp:
23123         * platform/win/MimeTypeRegistryWin.cpp:
23124         * platform/win/NotImplemented.h:
23125         * platform/win/PlatformMouseEventWin.cpp:
23126         * platform/win/PlatformScrollBar.h:
23127         * platform/win/PlatformScrollBarWin.cpp:
23128         * platform/win/PopupMenuWin.cpp:
23129         * platform/win/ScreenWin.cpp:
23130         * platform/win/ScrollViewWin.cpp:
23131         * platform/win/SearchPopupMenuWin.cpp:
23132         * platform/win/SoundWin.cpp:
23133         * platform/win/TemporaryLinkStubs.cpp:
23134         * platform/win/TextBoundariesWin.cpp:
23135         * platform/win/WebCoreHistory.cpp:
23136         * platform/win/WebCoreHistory.h:
23137         * platform/win/WebCoreSystemInterface.cpp:
23138         * platform/win/WebCoreSystemInterface.h:
23139         * platform/win/WheelEventWin.cpp:
23140         * platform/win/WidgetWin.cpp:
23141         * plugins/win/PlugInInfoStoreWin.cpp:
23142         * plugins/win/PluginDatabaseWin.cpp:
23143         * plugins/win/PluginDatabaseWin.h:
23144         * plugins/win/PluginDebug.h:
23145         * plugins/win/PluginPackageWin.cpp:
23146         * plugins/win/PluginPackageWin.h:
23147         * plugins/win/PluginStreamWin.cpp:
23148         * plugins/win/PluginStreamWin.h:
23149         * plugins/win/PluginViewWin.cpp:
23150         * plugins/win/PluginViewWin.h:
23151         * plugins/win/npapi.cpp:
23152         * plugins/win/npfunctions.h:
23153         * rendering/RenderThemeSafari.cpp:
23154         * rendering/RenderThemeSafari.h:
23155         * rendering/RenderThemeWin.h:
23156
23157 2007-06-07  Sam Weinig  <sam@webkit.org>
23158
23159         Fix build.
23160
23161         * WebCore.vcproj/WebCore.vcproj:
23162
23163 2007-06-07  Anders Carlsson  <andersca@apple.com>
23164
23165         Reviewed by Steve.
23166
23167         <rdar://problem/5252902>
23168         Shockwave plug-in content crashes.
23169         
23170         Add a new quirk for plug-ins that need their WNDPROCs to be ASCII. If someone uses SetWindowLongA to set the WNDPROC to an ASCII one
23171         and the previous one was an Unicode one, the value returned from SetWindowLongA (the old WNDPROC) will not be a function pointer, but instead
23172         a special value. The Win32 API CallWndProc knows that when it encounters a special value it must convert the message to Unicode. Shockwave 
23173         does not use CallWndProc but instead treats the WNDPROC as a function.
23174         
23175         * plugins/win/PluginViewWin.cpp:
23176         (WebCore::PluginViewWndProc):
23177         (WebCore::PluginViewWin::determineQuirks):
23178         (WebCore::PluginViewWin::init):
23179         * plugins/win/PluginViewWin.h:
23180         (WebCore::):
23181         (WebCore::PluginViewWin::quirks):
23182
23183 2007-06-07  Sam Weinig  <sam@webkit.org>
23184
23185         Build fix for the build fix.
23186
23187         * WebCore.vcproj/WebCore.vcproj:
23188
23189 2007-06-07  Sam Weinig  <sam@webkit.org>
23190
23191         Build fix.
23192
23193         * WebCore.vcproj/WebCore.vcproj:
23194
23195 2007-06-06  Sam Weinig  <sam@webkit.org>
23196
23197         Build fix.
23198
23199         * WebCore.vcproj/WebCore.vcproj:
23200
23201 2007-06-03  Steve Falkenburg  <sfalken@apple.com>
23202
23203         Reviewed by Oliver.
23204
23205         Update to last fix.
23206         Invalidate a list of rects rather than unioning them.
23207
23208         * plugins/win/PluginViewWin.cpp:
23209         (WebCore::PluginViewWin::invalidateTimerFired):
23210         (WebCore::PluginViewWin::invalidateRect):
23211         * plugins/win/PluginViewWin.h:
23212
23213 2007-06-03  Steve Falkenburg  <sfalken@apple.com>
23214
23215         Reviewed by Oliver.
23216
23217         <rdar://problem/5245016> 100A89+WebKit.dll: Can't select text in page location field at kids.yahoo.com
23218         
23219         Delay invalidates for windowless Flash to prevent Flash WM_PAINT and WM_USER+1 messages from
23220         starving other HWNDs.
23221         
23222         This code defers the invalidate through a WebCore::Timer.  We could have used a Windows ::SetTimer
23223         to further lessen CPU load, but this would have the additional risk of negatively impacting Flash
23224         performance, since WebCore::Timer is set up to be more responsive than ::SetTimer.
23225
23226         * plugins/win/PluginViewWin.cpp:
23227         (WebCore::PluginViewWin::invalidateTimerFired): Added.
23228         (WebCore::PluginViewWin::invalidateRect): Delay invalidates for windowless Flash.
23229         (WebCore::PluginViewWin::determineQuirks): Add delayed invalidate quirk.
23230         * plugins/win/PluginViewWin.h:
23231
23232 2007-06-02  Steve Falkenburg  <sfalken@apple.com>
23233
23234         Reviewed by Adam.
23235
23236         Update last fix to use startsWith instead of strcmpi.
23237
23238         * plugins/win/PluginStreamWin.cpp:
23239         (WebCore::PluginStreamWin::startStream):
23240         * plugins/win/PluginViewWin.cpp:
23241         (WebCore::scriptStringIfJavaScriptURL):
23242
23243 2007-06-02  Steve Falkenburg  <sfalken@apple.com>
23244
23245         Reviewed by gramps.
23246
23247         Fix http://www.tvguide.com/ "LAUNCH VIDEO & PHOTO PLAYER" button.
23248         Make "javascript" URL scheme string compare case insensitive.
23249
23250         * plugins/win/PluginStreamWin.cpp:
23251         (WebCore::PluginStreamWin::startStream): Use strcmpi.
23252         * plugins/win/PluginViewWin.cpp:
23253         (WebCore::scriptStringIfJavaScriptURL): Use strcmpi.
23254
23255 2007-06-01  Anders Carlsson  <andersca@apple.com>
23256
23257         Reviewed by Steve.
23258
23259         If the value exists but is empty, return an empty String.
23260         
23261         * plugins/win/PluginPackageWin.cpp:
23262         (WebCore::getVersionInfo):
23263
23264 2007-06-01  Anders Carlsson  <andersca@apple.com>
23265
23266         Reviewed by Steve.
23267
23268         Add the default path for the new WMP Firefox plugin.
23269
23270         * plugins/win/PluginDatabaseWin.cpp:
23271         (WebCore::addWindowsMediaPlayerPluginPath):
23272
23273 2007-05-31  Sam Weinig  <sam@webkit.org>
23274
23275         Fixed build.
23276
23277         * WebCore.vcproj/WebCore.vcproj:
23278
23279 2007-05-31  Sam Weinig  <sam@webkit.org>
23280
23281         Fixed build.
23282
23283         * WebCore.vcproj/WebCore.vcproj:
23284
23285 2007-05-30  Ada Chan  <adachan@apple.com>
23286
23287         Reviewed by Adam.
23288
23289         Fixed build.
23290
23291         * platform/win/PopupMenuWin.cpp:
23292         (WebCore::PopupMenu::itemWritingDirectionIsNatural):
23293
23294 2007-05-30  Sam Weinig  <sam@webkit.org>
23295
23296         Build Fix.
23297
23298         * WebCore.vcproj/WebCore.vcproj:
23299
23300 2007-05-29  Sam Weinig  <sam@webkit.org>
23301
23302         Fix the build.
23303
23304         * WebCore.vcproj/WebCore.vcproj:
23305
23306 2007-05-29  Anders Carlsson  <andersca@apple.com>
23307
23308         Reviewed by Adam.
23309
23310         <rdar://4782915> plugin is not in the right place at jumble.com/play.html
23311
23312         Pass the plugin window coordinates for windowed plugins too.
23313         
23314         * plugins/win/PluginViewWin.cpp:
23315         (WebCore::PluginViewWin::setNPWindowRect):
23316
23317 2007-05-29  Anders Carlsson  <andersca@apple.com>
23318
23319         Reviewed by Adam.
23320
23321         <rdar://problem/4761543> nike.com doesn't finish loading if Flash plugin is installed
23322         <rdar://problem/5131528> play button on Flash in ESPN front page does not start movie
23323         
23324         Make sure to call NPP_SetWindow right after creating the plugin, and not from the main loop. However,
23325         the WMP plugin needs to have the plugin's window coordinates set correctly when calling NPP_SetWindow so add a 
23326         quirk for that.
23327         
23328         * plugins/win/PluginViewWin.cpp:
23329         (WebCore::PluginViewWin::determineQuirks):
23330         (WebCore::PluginViewWin::init):
23331         * plugins/win/PluginViewWin.h:
23332         (WebCore::):
23333
23334 2007-05-29  Sam Weinig  <sam@webkit.org>
23335
23336         Reviewed by Adam Roben.
23337
23338         - Removes platform/win/NotImplemented.h because we have consolidated
23339           the notImplemented() for all platforms in platform/NotImplemented.h
23340         - Fixes remaining uses of old macro to use the new notImplemented() one.
23341
23342         * WebCore.vcproj/WebCore.vcproj:
23343         * page/win/EventHandlerWin.cpp:
23344         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
23345         * platform/graphics/svg/cg/SVGResourceFilterCg.cpp:
23346         (WebCore::SVGResourceFilter::prepareFilter):
23347         (WebCore::SVGResourceFilter::applyFilter):
23348         * platform/graphics/svg/cg/SVGResourceMaskerCg.cpp:
23349         (WebCore::SVGResourceMasker::applyMask):
23350         * platform/win/GraphicsContextWin.cpp:
23351         (WebCore::contextForImage):
23352         * platform/win/NotImplemented.h: Removed.
23353         * platform/win/SearchPopupMenuWin.cpp:
23354         (WebCore::SearchPopupMenu::saveRecentSearches):
23355         (WebCore::SearchPopupMenu::loadRecentSearches):
23356         * platform/win/TemporaryLinkStubs.cpp:
23357         (Frame::print):
23358         (Frame::issueTransposeCommand):
23359         (GraphicsContextPlatformPrivate::clip):
23360         (WebCore::FrameView::updateBorder):
23361         (Widget::setIsSelected):
23362         (ScrollView::inWindow):
23363         (WebCore::focusRingColor):
23364         (WebCore::setFocusRingColorChangeFunction):
23365         (Frame::setNeedsReapplyStyles):
23366         (FrameLoader::overrideMediaType):
23367         (DocumentLoader::getResponseModifiedHeader):
23368         (ResourceHandle::willLoadFromCache):
23369         (WebCore::userIdleTime):
23370         (CachedPage::close):
23371         (WebCore::supportedKeySizes):
23372         (WebCore::signedPublicKeyAndChallengeString):
23373         * plugins/win/PluginViewWin.cpp:
23374         (WebCore::PluginViewWin::newStream):
23375         (WebCore::PluginViewWin::write):
23376         (WebCore::PluginViewWin::setValue):
23377
23378 2007-05-29  Anders Carlsson  <andersca@apple.com>
23379
23380         Build fix.
23381         
23382         * rendering/RenderThemeSafari.cpp:
23383         (WebCore::RenderThemeSafari::adjustSliderThumbStyle):
23384
23385 2007-05-29  Anders Carlsson  <andersca@apple.com>
23386
23387         Reviewed by Adam.
23388
23389         Port code from open source changeset 21808, fixing
23390         http://bugs.webkit.org/show_bug.cgi?id=13871 
23391         
23392         * rendering/RenderThemeSafari.cpp:
23393         (WebCore::RenderThemeMac::adjustSliderThumbStyle):
23394         * rendering/RenderThemeSafari.h:
23395
23396 2007-05-29  Ada Chan  <adachan@apple.com>
23397
23398         Build fix.
23399         - Added "$(ProjectDir)..\platform\win" to include paths
23400         - Added WebCore\bindings\js\JSCSSStyleDeclarationCustom.cpp to project
23401
23402         * WebCore.vcproj/WebCore.vcproj:
23403
23404 2007-05-28  Sam Weinig  <sam@webkit.org>
23405
23406         Build fix.
23407
23408         * WebCore.vcproj/WebCore.vcproj:
23409
23410 2007-05-27  Sam Weinig  <sam@webkit.org>
23411
23412         Build fix.
23413
23414         * WebCore.vcproj/WebCore.vcproj:
23415
23416 2007-05-24  Geoffrey Garen  <ggaren@apple.com>
23417
23418         Reviewed by Darin Adler.
23419
23420         Fixed a bug with Settings where a number of different objects held bare 
23421         Settings* data members, even though the Page owns the Settings object and 
23422         deletes it upon destruction.
23423
23424         Added NULL checks since the Page can be deleted before the frame/document.
23425
23426         * plugins/win/PluginViewWin.cpp:
23427         (WebCore::PluginViewWin::load):
23428
23429 2007-05-24  Sam Weinig  <sam@webkit.org>
23430
23431         Reviewed by NOBODY.
23432
23433         Build fix.
23434
23435         * WebCore.vcproj/WebCore.vcproj:
23436
23437 2007-05-24  Anders Carlsson  <andersca@apple.com>
23438
23439         Reviewed by Adam.
23440
23441         <rdar://5211882>
23442         Need to relaunch Boomer to recognize newly installed QT plug-in
23443         
23444         <rdar://5061867>
23445         After installing Flash, Safari would still not display pages that needed it
23446         
23447         * plugins/win/PluginDatabaseWin.cpp:
23448         (WebCore::PluginDatabaseWin::refresh):
23449         Return whether the plugin database changed or not.
23450         
23451         (WebCore::PluginDatabaseWin::findPlugin):
23452         New function that tries to find a plug-in given its url and MIME type.
23453         
23454         (WebCore::PluginDatabaseWin::createPluginView):
23455         If no plugin is found, refresh the database and search for the plugin again if the database changed.
23456         
23457 2007-05-24  Adele Peterson  <adele@apple.com>
23458
23459         - fix http://bugs.webkit.org/show_bug.cgi?id=13837
23460           Separator in new <select> widget disappears when block element with border is in document.
23461
23462         * rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::paintMenuListButton):
23463          Added calls to set the stroke style and thickness when painting the arrows and the separator.
23464
23465 2007-05-24  Sam Weinig  <sam@webkit.org>
23466
23467         Build fix.
23468
23469         * WebCore.vcproj/WebCore.vcproj:
23470
23471 2007-05-23  Sam Weinig  <sam@webkit.org>
23472
23473         Build fix.
23474
23475         * WebCore.vcproj/WebCore.vcproj:
23476
23477 2007-05-23  Anders Carlsson  <andersca@apple.com>
23478
23479         Fix build.
23480         
23481         * platform/win/CursorWin.cpp:
23482         (WebCore::zoomInCursor):
23483         (WebCore::zoomOutCursor):
23484
23485 2007-05-22  Ada Chan  <adachan@apple.com>
23486
23487         Fix build.
23488
23489         * plugins/win/PluginViewWin.cpp:
23490         (WebCore::PluginViewWin::handleMouseEvent):
23491
23492 2007-05-22  Justin Garcia  <justin.garcia@apple.com>
23493
23494         Reviewed by oliver
23495
23496         Build fix.
23497
23498         * plugins/win/PluginViewWin.cpp:
23499         (WebCore::PluginViewWin::handleMouseEvent): 
23500
23501 2007-05-21  Sam Weinig  <sam@webkit.org>
23502
23503         Reviewed by Oliver.
23504
23505         Build fix.
23506
23507         * WebCore.vcproj/WebCore.vcproj:
23508
23509 2007-05-21  Sam Weinig  <sam@webkit.org>
23510
23511         Reviewed by Adam.
23512
23513         Build fix.
23514
23515         * WebCore.vcproj/WebCore.vcproj:
23516
23517 2007-05-17  Steve Falkenburg  <sfalken@apple.com>
23518
23519         Reviewed by Geoff, Adam.
23520
23521         Use precompiled headers (via WebCorePrefix.h) to speed up WebCoreWin builds.
23522         This improved WebCore debug rebuild time from 40 minutes to 25 for me.
23523         
23524         A few files needed to be excluded, since they didn't build properly with
23525         the prefix file: ColorData.c, CSSGrammar.cpp, HTMLEntityNames.c, XPathGrammar.cpp, XPathParser.cpp.
23526
23527         * WebCore.vcproj/WebCore.vcproj: Turn on precompiled header, force includes flags.
23528         * WebCorePrefix.cpp: Added.
23529         * WebCorePrefix.h: Added.
23530         * config.h: Modified to be compatible with WebCorePrefix.h.
23531
23532 2007-05-18  Sam Weinig  <sam@webkit.org>
23533
23534         Reviewed by Adam.
23535
23536         Fixing the vcproj paths.
23537
23538         * WebCore.vcproj/WebCore.vcproj:
23539
23540 2007-05-18  Sam Weinig  <sam@webkit.org>
23541
23542         Reviewed by Geoff.
23543
23544         Build fix after r21577.
23545
23546         * WebCore.vcproj/WebCore.vcproj:
23547
23548 2007-05-18  Adam Roben  <aroben@apple.com>
23549
23550         Build fix after r21562.
23551
23552         * platform/win/TemporaryLinkStubs.cpp:
23553         * platform/win/WidgetWin.cpp:
23554         * plugins/win/PluginViewWin.cpp:
23555         * plugins/win/PluginViewWin.h:
23556
23557 2007-05-18  Anders Carlsson  <andersca@apple.com>
23558
23559         Reviewed by Geoff.
23560         
23561         <rdar://problem/4914940> Some plugins won't redraw correctly when scrolling
23562         
23563         This patch does two things:
23564         
23565         1. It comments out the call to set the window's region to an empty region while it's being moved. This was done to prevent
23566         the QT plugin from drawing outside its bounds when scrolling it when it's inside an iframe or div with overflow.
23567         
23568         2. It lets Windows handle its invalid region when moving the window and setting its new window region.
23569         
23570         * plugins/win/PluginViewWin.cpp:
23571         (WebCore::PluginViewWin::updateWindow):
23572
23573 2007-05-18  Adam Roben  <aroben@apple.com>
23574
23575         Build fix after r21555.
23576
23577         * page/win/EventHandlerWin.cpp:
23578         (WebCore::EventHandler::passMouseMoveEventToSubframe):
23579
23580 2007-05-17  Sam Weinig  <sam@webkit.org>
23581
23582         Reviewed by Adam.
23583
23584         Build Fix after <rdar://problem/5201423>
23585
23586         * WebCore.vcproj/WebCore.vcproj:
23587
23588 2007-05-17  Adele Peterson  <adele@apple.com>
23589
23590         Reviewed by Hyatt.
23591
23592         Follow up to <rdar://problem/5092645> PopupMenuWin needs bidiReorderCharacters logic from RenderListBox
23593
23594         * platform/win/PopupMenuWin.cpp: (WebCore::PopupMenu::paint):
23595           Use the clientStyle to determine how to handle bidi text.  For popup buttons, which we restrict to LTR,
23596           we will match the button text.
23597
23598 2007-05-17  Anders Carlsson  <andersca@apple.com>
23599
23600         Reviewed by Darin.
23601
23602         <rdar://problem/5210600> New WMP plugin doesn't show any contents
23603
23604         Call NPP_SetWindow after the window's size has been updated.
23605         
23606         * plugins/win/PluginViewWin.cpp:
23607         (WebCore::PluginViewWin::setFrameGeometry):
23608
23609 2007-05-17  Anders Carlsson  <andersca@apple.com>
23610
23611         Reviewed by John.
23612
23613         <rdar://problem/5204016> Repro crash on nytimes.com in MimeTypeRegistry::getMIMETypeForExtension
23614         
23615         Return null if the extension is null.
23616         
23617         * platform/win/MimeTypeRegistryWin.cpp:
23618         (WebCore::MimeTypeRegistry::getMIMETypeForExtension):
23619
23620 2007-05-16  Adele Peterson  <adele@apple.com>
23621
23622         Reviewed by Hyatt.
23623
23624         Fix for:
23625             <rdar://problem/5092645> PopupMenuWin needs bidiReorderCharacters logic from RenderListBox
23626             <rdar://problem/5205654> Select popup menus should always be ltr to match the mac
23627
23628         * platform/win/PopupMenuWin.cpp:
23629         (WebCore::PopupMenu::show): Remove special cases for RTL menus, since we are always going to left align.
23630         (WebCore::PopupMenu::calculatePositionAndSize): ditto.
23631         (WebCore::PopupMenu::paint): Added call to bidiReorderCharacters.
23632
23633 2007-05-14  Oliver Hunt  <oliver@apple.com>
23634
23635         Reviewed by Sam.
23636
23637         Fix for <rdar://problem/5147895> REGRESSION: Content-Disposition: filename is ignored for drag-and-drop.
23638
23639         If the image does not already have a title, fall back to the 
23640         name suggested by Content-Disposition.
23641
23642         * platform/win/ClipboardWin.cpp:
23643         (WebCore::createGlobalImageFileDescriptor):
23644
23645 2007-05-14  Oliver Hunt  <oliver@apple.com>
23646
23647         Reviewed by Sam.
23648
23649         Fix for <rdar://problem/5202805> Null dereference in createGlobalData(CString str)
23650         
23651         Null terminate manually to prevent us from dereferencing null.
23652
23653         * platform/win/ClipboardUtilitiesWin.cpp:
23654         (WebCore::createGlobalData):
23655
23656 2007-05-14  Oliver Hunt  <oliver@apple.com>
23657
23658         Reviewed by Geoff.
23659
23660         Windows side of fix for
23661         <rdar://problem/4728842> Can't drag-and-drop files onto <input type="file">
23662
23663         * platform/win/ClipboardUtilitiesWin.cpp:
23664         (WebCore::cfHDropFormat):
23665           Need to be able to access externally
23666           
23667         * platform/win/ClipboardUtilitiesWin.h:
23668           Declare cfHDropFormat
23669           
23670         * platform/win/DragDataWin.cpp:
23671         (WebCore::DragData::containsFiles):
23672         (WebCore::DragData::asFilenames):
23673           Add implementation of containsFiles and asFilenames
23674
23675 2007-05-14  Geoffrey Garen  <ggaren@apple.com>
23676
23677         Build fix.
23678
23679         * WebCore.vcproj/WebCore.vcproj:
23680
23681 2007-05-14  Anders Carlsson  <andersca@apple.com>
23682
23683         Reviewed by Geoff.
23684
23685         <rdar://problem/5176940> Seed10: MS Silverlight 1.0 beta plug-in is not supported
23686         
23687         * plugins/win/PluginDatabaseWin.cpp:
23688         (WebCore::addPluginsFromRegistry):
23689         New function that adds plugins from the registry from HKEY_LOCAL_MACHINE/MozillaPlugins.
23690
23691         * plugins/win/PluginViewWin.cpp:
23692         (WebCore::PluginViewWin::invalidateRect):
23693         (WebCore::PluginViewWin::forceRedraw):
23694         Make these work with windowed plugins.
23695         
23696 2007-05-13  Darin Adler  <darin@apple.com>
23697
23698         Requested by Hyatt.
23699
23700         - internal part of http://bugs.webkit.org/show_bug.cgi?id=13529
23701           DOM3 keyIdentifier text is incorrect
23702
23703         * platform/win/KeyEventWin.cpp:
23704         (WebCore::keyIdentifierForWindowsKeyCode): Use 4 digits for "U+" stuff.
23705
23706 2007-05-12  Oliver Hunt  <oliver@apple.com>
23707
23708         rs=hyatt.
23709
23710         Stubs to prevent build bustage
23711
23712         * platform/win/DragDataWin.cpp:
23713         (WebCore::DragData::containsFiles):
23714         (WebCore::DragData::asFilenames):
23715
23716 2007-05-11  Darin Adler  <darin@apple.com>
23717
23718         * WebCore.vcproj/WebCore.vcproj: Added new RenderWordBreak.cpp/h files.
23719
23720 2007-05-10  Adele Peterson  <adele@apple.com>
23721
23722         Reviewed by Hyatt.
23723
23724         * bridge/win/FrameWin.cpp:
23725         (WebCore::imageFromSelection): Updated to use selectionRect instead of visibleSelectionRect
23726         
23727 2007-05-08  Steve Falkenburg  <sfalken@apple.com>
23728
23729         Rubber-stamped by Geoff.
23730
23731         Moved shared EditorWin code to Editor.cpp in open source.
23732
23733         * platform/win/EditorWin.cpp: Deleted (moved) most of this file.
23734
23735 2007-05-08  Steve Falkenburg  <sfalken@apple.com>
23736
23737         Reviewed by Darin, Oliver.
23738
23739         Removed localized string stubs.
23740
23741         * platform/win/TemporaryLinkStubs.cpp:
23742
23743 2007-05-08  Steve Falkenburg  <sfalken@apple.com>
23744
23745         Reviewed by Ada.
23746
23747         Updated for new editor interface.
23748
23749         * platform/win/EditorWin.cpp:
23750         (WebCore::Editor::advanceToNextMisspelling):
23751         (WebCore::isRangeUngrammatical):
23752
23753 2007-05-07  Alice Liu  <alice.liu@apple.com>
23754
23755         Reviewed by Oliver.
23756
23757         Fixed <rdar://5087119> Paste fidelity isn't as good as it is on the mac
23758         and <rdar://5087118> Plain text copy/paste yields bad line endings on Boomer
23759         and re-organized standalone functions in DragDataWin.cpp and PasteboardWin.cpp
23760         into ClipboardUtilitiesWin.h/cpp.
23761
23762         * WebCore.vcproj/WebCore.vcproj:
23763         * platform/win/ClipboardUtilitiesWin.cpp: Added.
23764         (WebCore::cfHDropFormat):
23765         (WebCore::getWebLocData):
23766         (WebCore::extractURL):
23767         (WebCore::texthtmlFormat):
23768         (WebCore::createGlobalData):
23769         (WebCore::markupToCF_HTML):
23770         (WebCore::urlToMarkup):
23771         (WebCore::replaceNewlinesWithWindowsStyleNewlines):
23772         (WebCore::replaceNBSPWithSpace):
23773         (WebCore::urlWFormat):
23774         (WebCore::urlFormat):
23775         (WebCore::plainTextFormat):
23776         (WebCore::plainTextWFormat):
23777         (WebCore::filenameWFormat):
23778         (WebCore::filenameFormat):
23779         (WebCore::htmlFormat):
23780         (WebCore::getURL):
23781         (WebCore::getPlainText):
23782         (WebCore::fragmentFromFilenames):
23783         (WebCore::containsFilenames):
23784         (WebCore::fragmentFromCF_HTML):
23785         (WebCore::fragmentFromHTML):
23786         (WebCore::containsHTML):
23787         * platform/win/ClipboardUtilitiesWin.h: Added.
23788         * platform/win/ClipboardWin.cpp:
23789         (WebCore::ClipboardWin::writeRange):
23790         * platform/win/DragDataWin.cpp:
23791         * platform/win/PasteboardWin.cpp:
23792         (WebCore::Pasteboard::writeSelection):
23793         (WebCore::Pasteboard::documentFragment):
23794
23795 2007-05-04  Steve Falkenburg  <sfalken@apple.com>
23796
23797         Reviewed by Darin.
23798
23799         Fix crash when using "check spelling while typing".
23800
23801         * WebCore.vcproj/WebCore.vcproj: Added TextBreakIteratorInternalICUWin.cpp
23802         * platform/win/TemporaryLinkStubs.cpp: Removed findSentenceBoundary, findNextSentenceFromIndex.
23803
23804 2007-05-04  Alice Liu  <alice.liu@apple.com>
23805
23806         Reviewed by Darin.
23807
23808         changed use of DeprecatedString::fromUTF8 to UTF8Encoding().decode()
23809
23810         * platform/win/DragDataWin.cpp:
23811         (WebCore::fragmentFromHTML):
23812         * platform/win/PasteboardWin.cpp:
23813         (WebCore::Pasteboard::documentFragment):
23814
23815 2007-05-03  Steve Falkenburg  <sfalken@apple.com>
23816
23817         Reviewed by Ada, Oliver.
23818
23819         Checkpoint:
23820         <rdar://problem/4602372> Spelling
23821         <rdar://problem/4769763> Spell checking engine support
23822
23823         * platform/win/EditorWin.cpp:
23824         (WebCore::findFirstBadGrammarInRange): Account for start offset when reporting bad grammar range (fixed my porting mistake).
23825         (WebCore::Editor::advanceToNextMisspelling): Include user description with spelling error.
23826         (WebCore::isRangeUngrammatical): Include user description with spelling error.
23827
23828 2007-05-03  Alice Liu  <alice.liu@apple.com>
23829
23830         Reviewed by Oliver.
23831
23832         Fixed <rdar://5181466> HTML formatted clipboard data is not converted from UTF8 when pasted
23833
23834         * platform/win/DragDataWin.cpp:
23835         (WebCore::fragmentFromHTML):
23836         * platform/win/PasteboardWin.cpp:
23837         (WebCore::fragmentFromCF_HTML):
23838         (WebCore::Pasteboard::documentFragment):
23839
23840 2007-05-03  Oliver Hunt  <oliver@apple.com>
23841
23842         Reviewed by Steve
23843
23844         Fix misuse of GlobalLock.
23845
23846         * platform/win/PasteboardWin.cpp:
23847         (WebCore::createGlobalData):
23848
23849 2007-05-03  Oliver Hunt  <oliver@apple.com>
23850
23851         Reviewed by Steve.
23852
23853         Add logic to draw underlines for grammar and spelling errors.
23854         (rdar://problem/4769832)
23855
23856         * platform/win/GraphicsContextWin.cpp:
23857         (WebCore::spellingPatternColor):
23858         (WebCore::grammarPatternColor):
23859           Can't define global const with constructor so use function scoped globals instead.
23860         (WebCore::setCGStrokeColor):
23861           Utility function pulled over from GraphicsContextCG          
23862         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
23863         
23864         * platform/win/TemporaryLinkStubs.cpp:
23865           Remove old drawLineForMisspellingOrBadGrammar stub
23866
23867 2007-05-01  Steve Falkenburg  <sfalken@apple.com>
23868
23869         Reviewed by Oliver.
23870
23871         Fix crash when retrieving title of context menu after it has been selected.
23872         Necessary to get spelling corrections code working.
23873
23874         * platform/win/ContextMenuWin.cpp:
23875         (WebCore::ContextMenu::itemWithAction): menu item info fType is a set of flags, MFT_STRING is 0, so we need to or off flags before comparing.
23876
23877 2007-04-29  Adam Roben  <aroben@apple.com>
23878
23879         Build fix after r21183.
23880
23881         * WebCore.vcproj/WebCore.vcproj: Added LayoutState.(h|cpp).
23882
23883 2007-04-29  Oliver Hunt  <oliver@apple.com>
23884
23885         Reviewed by Steve.
23886
23887         Fix for <rdar://problem/5126393> REGRESSION (r19672-19697): Safari drag image drags at original size (13261)
23888  
23889         Prevent build bustage from opensource changes, correct scaling
23890
23891         * platform/win/DragImageWin.cpp:
23892         (WebCore::scaleDragImage):
23893
23894 2007-04-24  Steve Falkenburg  <sfalken@apple.com>
23895
23896         Reviewed by Darin, Oliver.
23897
23898         Checkpoint:
23899         <rdar://problem/4602372> Spelling
23900         <rdar://problem/4769763> Spell checking engine support
23901         
23902         Ported code from EditorMac.mm into EditorWin.cpp.
23903         Once this works, I'll move this code into Editor.cpp and remove it
23904         form EditorMac.mm.
23905
23906         * platform/win/EditorWin.cpp:
23907         (WebCore::Editor::ignoreSpelling):
23908         (WebCore::Editor::learnSpelling):
23909         (WebCore::findFirstMisspellingInRange):
23910         (WebCore::paragraphAlignedRangeForRange):
23911         (WebCore::findFirstGrammarDetailInRange):
23912         (WebCore::findFirstBadGrammarInRange):
23913         (WebCore::Editor::advanceToNextMisspelling):
23914         (WebCore::Editor::isSelectionMisspelled):
23915         (WebCore::isRangeUngrammatical):
23916         (WebCore::Editor::isSelectionUngrammatical):
23917         (WebCore::Editor::guessesForUngrammaticalSelection):
23918         (WebCore::Editor::guessesForMisspelledSelection):
23919         (WebCore::Editor::showSpellingGuessPanel):
23920         (WebCore::Editor::spellingPanelIsShowing):
23921         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
23922         (WebCore::markAllMisspellingsInRange):
23923         (WebCore::markAllBadGrammarInRange):
23924         (WebCore::markMisspellingsOrBadGrammar):
23925         (WebCore::Editor::markMisspellings):
23926         (WebCore::Editor::markBadGrammar):
23927         * platform/win/TemporaryLinkStubs.cpp:
23928
23929 2007-04-23  Anders Carlsson  <andersca@apple.com>
23930
23931         Reviewed by Ada.
23932
23933         <rdar://problem/5061022>
23934         REGRESSION: Acrobat 8 plug-in fails to scroll with trackpad two-finger scroll or mouse wheel (12995)
23935         
23936         * page/win/EventHandlerWin.cpp:
23937         (WebCore::EventHandler::passWheelEventToWidget):
23938         Get rid of passWheelEventToSubframe and pass wheel events to all widgets.
23939
23940 2007-04-23  Adam Roben  <aroben@apple.com>
23941
23942         Build fix.
23943
23944         * page/win/EventHandlerWin.cpp: Removed passWheelEventToSubframe.
23945
23946 2007-04-20  Beth Dakin  <bdakin@apple.com>
23947
23948         Reviewed by Adam.
23949
23950         Fix for <rdar://problem/5089822> Boomer does not send scroll events
23951
23952         * platform/win/ScrollViewWin.cpp:
23953         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
23954
23955 2007-04-19  Adam Roben  <aroben@apple.com>
23956
23957         * WebCore.vcproj/WebCore.vcproj: Removed empty filter.
23958
23959 2007-04-19  Adam Roben  <aroben@apple.com>
23960
23961         * WebCore.vcproj/WebCore.vcproj: Removed unused files.
23962
23963 2007-04-18  Adam Roben  <aroben@apple.com>
23964
23965         Reviewed by Oliver.
23966
23967         Added an equality operator to COMPtr.
23968
23969         * platform/win/COMPtr.h:
23970         (operator==):
23971         (operator!=):
23972
23973 2007-04-18  Oliver Hunt  <oliver@apple.com>
23974
23975         Reviewed by Geoff.
23976
23977         Allow images to be dragged from page and dropped as files.
23978         This is the remainder of the fix for <rdar://problem/5035948> 
23979           -- Dragging image or link from boomer doesn't create webloc 
23980              or image file.
23981
23982         * platform/win/ClipboardWin.cpp:
23983         (WebCore::filesystemPathFromUrlOrTitle):
23984           Make name generation nicer, and better match Firefox
23985         
23986         (WebCore::createGlobalURLContent):
23987           rename function
23988         
23989         (WebCore::createGlobalImageFileContent):
23990           Copies image data into global store
23991         
23992         (WebCore::createGlobalUrlFileDescriptor):
23993           Rename function
23994           Updated for parameter change on filesystemPathFromUrlOrTitle
23995         
23996         (WebCore::createGlobalImageFileDescriptor):
23997           Set up file descriptor for image drag
23998         
23999         (WebCore::getCachedImage):
24000           Helper function
24001         
24002         (WebCore::writeImageToDataObject):
24003           Attempts to build and insert data for image->file drag
24004         
24005         (WebCore::ClipboardWin::declareAndWriteDragImage):
24006           Attempts to build and insert data for image->file drag
24007         
24008         (WebCore::ClipboardWin::writeURL):
24009           Add call to imageDataToDataObject
24010
24011 2007-04-17  Adam Roben  <aroben@apple.com>
24012
24013         Rubberstamped by Oliver.
24014
24015         * platform/network/cf/ResourceHandleCFNet.cpp: Removed an unnecessary
24016         include.
24017
24018 2007-04-17  Oliver Hunt  <oliver@apple.com>
24019
24020         Whoops, had code commented out from manual failure test.
24021         Also fixed date of previous changelog entry
24022
24023         * platform/win/ClipboardWin.cpp:
24024         (WebCore::writeFileToDataObject):
24025
24026 2007-04-17  Oliver Hunt  <oliver@apple.com>
24027
24028         Reviewed by Ada.
24029
24030         Partial fix for <rdar://problem/5035948> -- Dragging image 
24031         or link from boomer doesn't create webloc or image file.
24032         
24033         Add all the ground work to set up FileDescriptors and FileContent
24034         for allowing files to be created from drag and drop actions,
24035         and hook up logic for links to create WebLoc data for drag and drop.
24036
24037         * platform/win/ClipboardWin.cpp:
24038         (WebCore::fileDescriptorFormat):
24039         (WebCore::fileContentFormat):
24040           Clipboard formats 
24041           
24042         (WebCore::pathRemoveBadFSCharacters):
24043         (WebCore::filesystemPathFromUrlOrTitle):
24044           Helper functions for create filenames
24045           
24046         (WebCore::createGlobalDataForURLContent):
24047           Create the WebLoc content
24048           
24049         (WebCore::createGlobalDataForUrlFileDescriptor):
24050           Create a file descriptor for the WebLoc data
24051           
24052         (WebCore::writeFileToDataObject):
24053           Basic helper function to push generated file info
24054           into the target DataObject
24055           
24056         (WebCore::ClipboardWin::writeURL):
24057           Now puts WebLoc file onto the Clipboard
24058
24059 2007-04-16  Adam Roben  <aroben@apple.com>
24060
24061         Reviewed by Adele.
24062
24063         Fix <rdar://problem/5002577> Focus ring SPI in GraphicsContextWin.cpp
24064         needs to move to WebKitSystemInterface
24065
24066         * platform/win/GraphicsContextWin.cpp:
24067         (WebCore::GraphicsContext::drawFocusRing): Use wkDrawFocusRing.
24068
24069 2007-04-14  Adam Roben  <aroben@apple.com>
24070
24071         * WebCore.vcproj/WebCore.submit.sln: Use the Debug_Internal
24072         configuration.
24073
24074 2007-04-14  Adam Roben  <aroben@apple.com>
24075
24076         Small correctness fix that is needed for building OpenSource.
24077
24078         * platform/win/PopupMenuWin.cpp: Use RenderTheme instead of RenderThemeWin.
24079
24080 2007-04-13  Adam Roben  <aroben@apple.com>
24081
24082         Reviewed by Tim.
24083
24084         Sync our config.h with the OpenSource version so we can merge ours in
24085         later.
24086
24087         * config.h: Added #defines from the OpenSource version, moved
24088         Windows-specific defines inside #if PLATFORM(WIN[_OS]), and got rid
24089         of assert.h
24090         * platform/win/CursorWin.cpp:
24091         (WebCore::Cursor::Cursor): Use ASSERT instead of assert.
24092
24093 2007-04-13  Adam Roben  <aroben@apple.com>
24094
24095         Rubberstamped by Tim.
24096
24097         Removed the loader/win directory since it only contains empty files.
24098
24099         * WebCore.vcproj/WebCore.vcproj: Removed empty files.
24100         * loader/win/FrameLoaderWin.cpp: Removed.
24101         * loader/win/ResourceLoaderWin.cpp: Removed.
24102
24103 2007-04-12  Adam Roben  <aroben@apple.com>
24104
24105         Rubberstamped by Steve.
24106
24107         Removed unused file.
24108
24109         * WebCore.vcproj/WebCore.sln: Removed.
24110
24111 2007-04-12  Adam Roben  <aroben@apple.com>
24112
24113         Didn't mean to commit this.
24114
24115         * WebCore.vcproj/WebCore.vcproj:
24116
24117 2007-04-12  Adam Roben  <aroben@apple.com>
24118
24119         Reviewed by Steve.
24120
24121         <rdar://problem/5131565> Need to be able to use debug WebKit with
24122         release Safari.
24123
24124         * WebCore.vcproj/WebCore.vcproj:
24125         * WebCore.vcproj/debug.vsprops:
24126         * WebCore.vcproj/debug_internal.vsprops: Added.
24127         * WebCore.vcproj/release.vsprops:
24128
24129 2007-04-11  Adam Roben  <aroben@apple.com>
24130
24131         Reviewed by Tim.
24132
24133         Get rid of FrameViewWin.cpp, since it's empty.
24134
24135         * WebCore.vcproj/WebCore.vcproj:
24136         * bridge/win/FrameViewWin.cpp: Removed.
24137
24138 2007-04-11  Adam Roben  <aroben@apple.com>
24139
24140         Reviewed by Anders.
24141
24142         Update for changes to Pasteboard.
24143
24144         * platform/win/PasteboardWin.cpp:
24145         (WebCore::Pasteboard::writeImage):
24146
24147 2007-04-10  Brady Eidson  <beidson@apple.com>
24148
24149         Reviewed by Darin
24150
24151         <rdar://problem/4887095> - PageCache and PageState should be combined
24152
24153         Changed a TemporaryLinkStub and updated the project file
24154
24155         * WebCore.vcproj/WebCore.vcproj:
24156         * platform/win/TemporaryLinkStubs.cpp:
24157         (CachedPage::close):
24158
24159 2007-04-10  John Sullivan  <sullivan@apple.com>
24160
24161         * platform/win/TemporaryLinkStubs.cpp:
24162         (WebCore::Editor::markBadGrammar):
24163         Keep build going: added stub for this new method
24164
24165 2007-04-10  Anders Carlsson  <andersca@apple.com>
24166
24167         Reviewed by Adam.
24168
24169         <rdar://problem/5056988>
24170         Can not open player on http://radioalice.com
24171
24172         Fix scriptStringIfJavaScriptURL to not use the path of the URL. This would ignore any characters past 
24173         a '?' character because that would be parsed as the query part of the URL.
24174         
24175         * plugins/win/PluginViewWin.cpp:
24176         (WebCore::scriptStringIfJavaScriptURL):
24177         Make this be more like the mac, chopping off the first 12 characters ("javascript:") 
24178         and then decoding the remaining characters.
24179
24180 2007-04-10  Anders Carlsson  <acarlsson@apple.com>
24181
24182         * plugins/win/PluginViewWin.cpp:
24183         (WebCore::PluginViewWin::PluginViewWin):
24184         Initialize m_status.
24185
24186 2007-04-09  Anders Carlsson  <acarlsson@apple.com>
24187
24188         Reviewed by Adam.
24189
24190         <rdar://problem/5062624>
24191         No prompt to install QT for pages with uninstalled QT plug-in.
24192         
24193         Add a status() accessor to PluginViewWin. This can be used by WebKit to find out if the plug-in
24194         loaded successfully or not.
24195         
24196         * plugins/win/PluginViewWin.cpp:
24197         (WebCore::PluginViewWin::PluginViewWin):
24198         (WebCore::PluginViewWin::init):
24199         * plugins/win/PluginViewWin.h:
24200         (WebCore::):
24201         (WebCore::PluginViewWin::status):
24202
24203 2007-04-09  Brady Eidson  <beidson@apple.com>
24204
24205         Build fix
24206
24207         * plugins/win/PluginViewWin.cpp:
24208         (WebCore::PluginViewWin::performRequest): assume userGesture is true
24209
24210 2007-04-09  Adam Roben  <aroben@apple.com>
24211
24212         Build fix.
24213
24214         * platform/win/PasteboardWin.cpp:
24215         (WebCore::Pasteboard::writeImage):
24216
24217 2007-04-08  Adam Roben  <aroben@apple.com>
24218
24219         Reviewed by Oliver.
24220
24221         Stubbed out Frame::dashboardRegionsChanged now that it's not
24222         Mac-specific.
24223
24224         * bridge/win/FrameWin.cpp:
24225         (WebCore::Frame::dashboardRegionsChanged):
24226
24227 2007-04-06  Oliver Hunt  <oliver@apple.com>
24228
24229         Reviewed by Adam.
24230
24231         Fix for rdar://problem/5097227 Can't drag Flash-based 
24232         scrollbar on mtv.com
24233         
24234         The problem was when creating a mouse move event for the 
24235         plugin we weren't passing on the mouse button state.  
24236         
24237         The opensource side of this patch adds logic that allows 
24238         us to distinguish between a MouseEvent with NoButton and
24239         a MouseEvent with LeftButton, so we can then provide the 
24240         correct information to the plugin.
24241
24242         * plugins/win/PluginViewWin.cpp:
24243         (WebCore::PluginViewWin::handleMouseEvent):
24244
24245 2007-04-06  Dave Hyatt  <hyatt@apple.com>
24246
24247         Internal side of fix for bug 13274.
24248
24249         Reviewed by olliej
24250
24251         * page/win/EventHandlerWin.cpp:
24252         (WebCore::EventHandler::passMousePressEventToSubframe):
24253         * platform/win/PlatformScrollBarSafari.cpp:
24254         (WebCore::PlatformScrollbar::handleMousePressEvent):
24255         * platform/win/PopupMenuWin.cpp:
24256         (WebCore::PopupMenu::PopupMenu):
24257         (WebCore::PopupWndProc):
24258         * platform/win/ScrollViewWin.cpp:
24259         (WebCore::ScrollView::removeChild):
24260         * platform/win/WidgetWin.cpp:
24261
24262 2007-04-07  Mark Rowe  <mrowe@apple.com>
24263
24264         Internal build fox after opensource r20753.
24265
24266         * platform/win/PlatformMouseEventWin.cpp:
24267         * platform/win/TemporaryLinkStubs.cpp:
24268
24269 2007-04-03  Oliver Hunt  <oliver@apple.com>
24270
24271         Buildfix
24272
24273         * platform/network/cf/ResourceResponseCFNet.cpp:
24274         (WebCore::ResourceResponse::doUpdateResourceResponse):
24275            Adding .get() calls
24276
24277 2007-04-03  Maciej Stachowiak  <mjs@apple.com>
24278
24279         Reviewed by Alice.
24280
24281         - fixed <rdar://problem/5107069> WebCore leaks a copy of the CFHTTPMessage CFDictionary (from CFHTTPMessageCopyAllHeaderFields)
24282
24283         * platform/network/cf/ResourceResponseCFNet.cpp:
24284         (WebCore::ResourceResponse::doUpdateResourceResponse): Use RetainPtr (once to avoid a leak and once
24285         just as style cleanup).
24286
24287 2007-04-02  Anders Carlsson  <andersca@apple.com>
24288
24289         Reviewed by Adam.
24290
24291         Fix crashes seen when running the plugin layout tests.
24292         
24293         * plugins/win/PluginPackageWin.cpp:
24294         (WebCore::PluginPackageWin::load):
24295         Fill in the enumerate pointer, not the evaluate pointer (it's already been filled in).
24296         
24297         * plugins/win/PluginStreamWin.cpp:
24298         (WebCore::PluginStreamWin::didFinishLoading):
24299         Handle the case where there was no plugin stream data at all.
24300
24301 2007-04-02  Anders Carlsson  <andersca@apple.com>
24302
24303         Reviewed by Darin.
24304
24305         Check that NPStream pointers passed to NPN_DestroyStream are valid.
24306         
24307         * plugins/win/PluginStreamWin.cpp:
24308         (WebCore::streams):
24309         (WebCore::PluginStreamWin::PluginStreamWin):
24310         (WebCore::PluginStreamWin::~PluginStreamWin):
24311         (WebCore::PluginStreamWin::ownerForStream):
24312         * plugins/win/PluginStreamWin.h:
24313         * plugins/win/PluginViewWin.cpp:
24314         (WebCore::PluginViewWin::destroyStream):
24315
24316 2007-04-02  Anders Carlsson  <andersca@apple.com>
24317
24318         Reviewed by Darin.
24319
24320         <rdar://problem/5095582>
24321         PluginViewWin doesn't implement NPN_DestroyStream.
24322
24323         * plugins/win/PluginStreamWin.cpp:
24324         (WebCore::PluginStreamWin::startStream):
24325         Handle the case where NPN_DestroyStream is called from the newstream handler.
24326         
24327         * plugins/win/PluginViewWin.cpp:
24328         (WebCore::PluginViewWin::destroyStream):
24329         Implement this.
24330
24331 2007-04-02  Anders Carlsson  <andersca@apple.com>
24332
24333         Reviewed by Dave Hyatt.
24334
24335         <rdar://problem/5097225> 
24336         Mouse cursors don't work with windowless plugins
24337         
24338         * platform/win/WidgetWin.cpp:
24339         (WebCore::Widget::setCursor):
24340         Add an "ignoreNextSetCursor" boolean and don't call SetCursor if it's true.
24341         
24342         * plugins/win/PluginViewWin.cpp:
24343         (WebCore::PluginViewWin::handleMouseEvent):
24344         Store away the current cursor and make sure that it won't be reset.
24345
24346 2007-04-02  Anders Carlsson  <andersca@apple.com>
24347
24348         Reviewed by Adam.
24349
24350         Fix logic in windowless paint functions.
24351         
24352         * plugins/win/PluginViewWin.cpp:
24353         (WebCore::PluginViewWin::invalidateRect):
24354         (WebCore::PluginViewWin::invalidateRegion):
24355         (WebCore::PluginViewWin::forceRedraw):
24356
24357 2007-03-31  Dave Hyatt  <hyatt@apple.com>
24358
24359         Internal side of 13234.   Open source side was reviewed by
24360         Mitz.  Layout of justified text was broken when dragged or
24361         when a ::selection style was in effect.
24362
24363         * platform/win/FontWin.cpp:
24364         (WebCore::Font::selectionRectForComplexText):
24365         (WebCore::Font::drawComplexText):
24366         (WebCore::Font::floatWidthForComplexText):
24367         * platform/win/UniscribeController.cpp:
24368         (WebCore::UniscribeController::UniscribeController):
24369         (WebCore::UniscribeController::offsetForPosition):
24370         * platform/win/UniscribeController.h:
24371         * platform/win/WebCoreTextRenderer.cpp:
24372         (WebCore::doDrawTextAtPoint):
24373
24374 2007-03-30  Anders Carlsson  <andersca@apple.com>
24375
24376         Reviewed by Geoff.
24377
24378         * plugins/win/PluginDatabaseWin.cpp:
24379         (WebCore::PluginDatabaseWin::addExtraPluginPath):
24380         * plugins/win/PluginDatabaseWin.h:
24381         New function for adding an extra plugin path, to be used by DRT.
24382         
24383         * plugins/win/PluginPackageWin.cpp:
24384         (WebCore::PluginPackageWin::load):
24385         Set the current directory tho the plugin directory while loading the plugin. Add new NPN callbacks.
24386         
24387         * plugins/win/PluginViewWin.cpp:
24388         (WebCore::PluginViewWin::invalidateRect):
24389         (WebCore::PluginViewWin::invalidateRegion):
24390         (WebCore::PluginViewWin::forceRedraw):
24391         Don't do anything if the plugin is windowed.
24392         
24393         * plugins/win/npapi.cpp:
24394         (NPN_PushPopupsEnabledState):
24395         (NPN_PopPopupsEnabledState):
24396         Add stubs.
24397         
24398         * plugins/win/npfunctions.h:
24399         Add new methods and merge some fixes from the open source version.
24400
24401 2007-03-29  Dave Hyatt  <hyatt@apple.com>
24402
24403         Enable CG's local font cache.  rdar://problem/5070005
24404        
24405         Reviewed by aroben
24406
24407         * platform/win/FontCacheWin.cpp:
24408         (WebCore::FontCache::platformInit):
24409
24410 2007-03-28  Maciej Stachowiak  <mjs@apple.com>
24411
24412         Reviewed by Darin.
24413
24414         - updates for <rdar://problem/4820817> Autoscroll is broken in Mail.app (message jumps around when trying to select text)
24415
24416
24417         * platform/win/ScrollViewWin.cpp:
24418         (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
24419         (WebCore::ScrollView::scrollRectIntoViewRecursively):
24420
24421 2007-03-27  Dave Hyatt  <hyatt@apple.com>
24422
24423         Fix for 5090964, arabic text is all jumbled in list boxes and popup menus (and in the
24424         Boomer app too).  The fallback font was not the right size because the font you're mapping
24425         from had to be selected into the HDC first.
24426        
24427         Reviewed by ggaren
24428
24429         * ChangeLog:
24430         * platform/win/FontCacheWin.cpp:
24431         (WebCore::FontCache::getFontDataForCharacters):
24432
24433 2007-03-27  Geoffrey Garen  <ggaren@apple.com>
24434
24435         Reviewed by Anders Carlsson.
24436
24437         Fixed <rdar://problem/5085076> WebView stops painting after 
24438         loading stand-alone netflix movie preview in WMP format
24439         
24440         The stand-alone WMP plug-in seems to do all its drawing in
24441         the WM_ERASEBKGN phase, not the WM_PAINT phase, so our
24442         InvalidateRect call for plug-in windows needs to specify 
24443         'true' for whether the background region should be erased.
24444         
24445         A smart plug-in that wants to avoid background draws can
24446         still do so by just returning 1 in response to WM_ERASEBKGN,
24447         or by setting its background brush to NULL.
24448
24449         * plugins/win/PluginViewWin.cpp:
24450         (WebCore::PluginViewWin::updateWindow):
24451
24452 2007-03-27  Anders Carlsson  <acarlsson@apple.com>
24453
24454         Reviewed by Maciej.
24455
24456         <rdar://problem/5091459>
24457         Crash when destroying "null plugin"
24458         
24459         <rdar://problem/5056845>
24460         Invoking itunes page has missing plugin icon on it
24461         
24462         * plugins/win/PluginViewWin.cpp:
24463         (WebCore::PluginViewWin::paintMissingPluginIcon):
24464         Clip before painting.
24465         
24466         (WebCore::freeStringArray):
24467         Add null-check.
24468         
24469         (WebCore::PluginViewWin::PluginViewWin):
24470         Initialize plugin names and values.
24471         
24472 2007-03-27  Dave Hyatt  <hyatt@apple.com>
24473
24474         Add support for glyph offsets to the GlyphBuffer.
24475        
24476         Reviewed by olliej
24477
24478         * platform/win/FontWin.cpp:
24479         (WebCore::Font::drawGlyphs):
24480         * platform/win/UniscribeController.cpp:
24481         (WebCore::UniscribeController::shapeAndPlaceItem):
24482
24483 2007-03-26  Antti Koivisto  <antti@apple.com>
24484
24485         Reviewed by Darin.
24486         
24487         Initialize new m_isContinuous field in WheelEvent
24488
24489         * platform/win/WheelEventWin.cpp:
24490         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
24491
24492 2007-03-27  Dave Hyatt  <hyatt@apple.com>
24493
24494         Enable complex text.  Selection and small-caps support are now enabled with this patch.
24495         
24496         Reviewed by aroben
24497
24498         * platform/win/FontWin.cpp:
24499         (WebCore::Font::selectionRectForComplexText):
24500         (WebCore::Font::drawComplexText):
24501         (WebCore::Font::floatWidthForComplexText):
24502         (WebCore::Font::offsetForPositionForComplexText):
24503         * platform/win/UniscribeController.cpp:
24504         (WebCore::UniscribeController::UniscribeController):
24505         (WebCore::UniscribeController::floatWidth):
24506         (WebCore::UniscribeController::offsetForPosition):
24507         (WebCore::UniscribeController::advance):
24508         (WebCore::UniscribeController::itemizeShapeAndPlace):
24509         (WebCore::UniscribeController::shapeAndPlaceItem):
24510         * platform/win/UniscribeController.h:
24511         (WebCore::UniscribeController::runWidthSoFar):
24512
24513 2007-03-26  Adele Peterson  <adele@apple.com>
24514
24515         Reviewed by Adam.
24516
24517         Fix for <rdar://problem/5088844> Popup menu is not positioned correctly on a yahoo comics page
24518         
24519         Fixes test: fast/forms/control-restrict-line-height.html
24520         
24521         This change was made in RenderThemeMac a while ago, and will fix the line height for aqua popup buttons, 
24522         buttons and search fields.
24523         
24524         * rendering/RenderThemeSafari.cpp: WebCore::RenderThemeSafari::setFontFromControlSize):
24525           Don't honor line-height for controls that have restricted font size.
24526           
24527 2007-03-25  Brady Eidson  <beidson@apple.com>
24528
24529         Reviewed by Oliver
24530
24531         <rdar://problem/5086888> - WebHistory(Item) Leak
24532
24533         * platform/win/COMPtr.h:
24534         (COMPtr::COMPtr): An an adoptRef constructor
24535
24536 2007-03-24  Adam Roben  <aroben@apple.com>
24537
24538         Reviewed by Maciej.
24539
24540         Fix <rdar://problem/5076610> Crash in PluginViewWin::updateWindow when
24541         loading a PDF page for the first time after installing Acrobat Reader
24542
24543         Don't call PluginPackageWin::load() until the PluginViewWin has been
24544         inserted into the Widget tree. load() can result in arbitrary code
24545         execution (in this case, a EULA window appears which takes focus from
24546         the WebView, causing Frame::setIsActive(false) to be called), and we
24547         don't want to be in a transitional state when that happens.
24548
24549         * plugins/win/PluginDatabaseWin.cpp:
24550         (WebCore::PluginDatabaseWin::createPluginView): Call PluginViewWin's
24551         one and only constructor.
24552         * plugins/win/PluginViewWin.cpp:
24553         (WebCore::PluginViewWin::setParent): Call init() after inserting
24554         ourselves into the Widget tree.
24555         (WebCore::PluginViewWin::PluginViewWin): Defer all real work until
24556         init() is called.
24557         (WebCore::PluginViewWin::init): Added. Calls m_plugin->load(), then
24558         does the rest of the work that was once done by the constructor.
24559         * plugins/win/PluginViewWin.h: Removed createNullPlugin and simplified
24560         constructor, added setParent override and new init method.
24561
24562 2007-03-24  Brady Eidson  <beidson@apple.com>
24563
24564         Reviewed by Adam
24565
24566         <rdar://problem/5086210> - Move RetainPtr to WTF for WebKitWin and the App
24567
24568         * WebCore.vcproj/WebCore.vcproj: Add the ForwardingHeader to the vcprojs
24569
24570 2007-03-23  Adele Peterson  <adele@apple.com>
24571
24572         Reviewed by Maciej.
24573
24574         Fix for <rdar://problem/5083928> In editable webviews, caps lock key is ignored
24575
24576         * platform/win/KeyEventWin.cpp: (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
24577         Removed code to store lowercase characters in m_text.  Now that we use the character code
24578         to create m_text this is already taken care of.  This does mean that m_unmodifiedText is
24579         not right.  This is used for accesskeys, which don't work yet, so that is covered in rdar://5085596.
24580         This also fixes line endings in this file.
24581
24582 2007-03-22  Geoffrey Garen  <ggaren@apple.com>
24583
24584         Reviewed by Adam Roben.
24585         
24586         Fixed <rdar://problem/5082985> Select menus are too see-through
24587
24588         Upped alpha value from 90 to 95. Menus will still seem a little
24589         more see-through than on the mac, since their backgrounds are
24590         white, not grey, but white matches other Windows browsers.
24591         
24592         * ChangeLog:
24593         * platform/win/PopupMenuWin.cpp:
24594
24595 2007-03-22  Anders Carlsson  <acarlsson@apple.com>
24596
24597         Reviewed by Maciej.
24598
24599         <rdar://problem/5081539>
24600         QT content is dupped on a page, if page is being previewed or printed.
24601         
24602         Don't update the frame geometry if the document is in printing mode.
24603         
24604         * plugins/win/PluginViewWin.cpp:
24605         (WebCore::PluginViewWin::setFrameGeometry):
24606
24607 2007-03-22  Beth Dakin  <bdakin@apple.com>
24608
24609         Fix by Hyatt, reviewed and committed by me.
24610
24611         Fix for <rdar://problem/5082360> Incomplete frame paint when 
24612         shrinking window @ google.com
24613
24614         * platform/win/ScrollViewWin.cpp:
24615         (WebCore::ScrollView::setFrameGeometry): Wrong order!
24616
24617 2007-03-22  Dave Hyatt  <hyatt@apple.com>
24618
24619         Fix for crasher in layout caused by paints that happen without layout being current.  Change to be
24620         more like the Mac and crawl the frame tree up front ensuring everyone is up to date before painting.
24621
24622         Reviewed by olliej
24623
24624         * platform/win/ScrollViewWin.cpp:
24625         (WebCore::ScrollView::setFrameGeometry):
24626         (WebCore::ScrollView::children):
24627         (WebCore::ScrollView::geometryChanged):
24628
24629 2007-03-22  Dave Hyatt  <hyatt@apple.com>
24630
24631         Fix for mouse wheel issues.  Only return success from passWheelEventToSubframe is the event was
24632         actually accepted.
24633         
24634         * page/win/EventHandlerWin.cpp:
24635         (WebCore::EventHandler::passWheelEventToSubframe):
24636
24637 2007-03-21  Dave Hyatt  <hyatt@apple.com>
24638
24639         Fix numerous bugs in RTL support.  Only use a directional override if the run
24640         tells us to.  Uniscribe will give incorrect results when measuring RTL runs as LTR if the
24641         directional override is set.  Switch from logical order for glyphs to visual order
24642         instead.  This is more similar to ATSUI (less similar to the fast code path, which always uses
24643         logical ordering for glyph generation).  Using visual ordering forces a lot of games to be played
24644         (have to walk the script items in backwards order for RTL for example), but Uniscribe does not combine
24645         glyphs properly if visual ordering is not used.
24646         
24647         Add support for justification, letter-spacing, word-spacing and rounding hacks.  The CG vs. ATSUI layout
24648         test now passes with identical results to the Mac.  The ATSUI spacing features layout test now
24649         generates correct results (although they are different from the Mac because we fall back to Arial for
24650         Hebrew instead of Lucida Grande).
24651
24652         Reviewed by oliver
24653
24654         * platform/win/UniscribeController.cpp:
24655         (WebCore::UniscribeController::UniscribeController):
24656         (WebCore::UniscribeController::resetControlAndState):
24657         (WebCore::UniscribeController::shapeAndPlaceItem):
24658         (WebCore::UniscribeController::shape):
24659         * platform/win/UniscribeController.h:
24660
24661 2007-03-20  Adam Roben  <aroben@apple.com>
24662
24663         Reviewed by Ada.
24664
24665         Added null-checks for ResourceHandle::cookieStorage() before passing it
24666         into CFNetwork functions, which are not null-safe.
24667
24668         * platform/network/win/CookieJarWin.cpp:
24669         (WebCore::setCookies):
24670         (WebCore::cookies):
24671
24672 2007-03-20  Adam Roben  <aroben@apple.com>
24673
24674         Build fix.
24675
24676         * WebCore.vcproj/WebCore.vcproj: Added XPathNodeSet.(cpp|h).
24677
24678 2007-03-20  Adam Roben  <aroben@apple.com>
24679
24680         Reviewed by Oliver.
24681
24682         Made the metrics of styled selects match those on the Mac to get
24683         fast/forms/001.html passing.
24684
24685         * rendering/RenderThemeSafari.cpp: Use 2px less padding for the
24686         select's arrow since the arrow is 2px wider than on the Mac.
24687
24688 2007-03-20  Adam Roben  <aroben@apple.com>
24689
24690         Build fix.
24691
24692         * platform/network/cf/ResourceHandleCFNet.cpp:
24693         (WebCore::makeFinalRequest): Fix typo.
24694
24695 2007-03-20  Dave Hyatt  <hyatt@apple.com>
24696
24697         Land advanced text code path (turned off).
24698        
24699         Reviewed by aroben
24700         
24701         * WebCore.vcproj/WebCore.vcproj:
24702         * platform/win/FontCacheWin.cpp:
24703         (WebCore::FontCache::createFontPlatformData):
24704         * platform/win/FontDataWin.cpp:
24705         (WebCore::FontData::platformInit):
24706         (WebCore::FontData::platformDestroy):
24707         (WebCore::FontData::smallCapsFontData):
24708         (WebCore::FontData::scriptFontProperties):
24709         * platform/win/FontWin.cpp:
24710         (WebCore::Font::drawComplexText):
24711         (WebCore::Font::floatWidthForComplexText):
24712         (WebCore::Font::offsetForPositionForComplexText):
24713         * platform/win/UniscribeController.cpp: Added.
24714         (WebCore::UniscribeController::UniscribeController):
24715         (WebCore::UniscribeController::resetControlAndState):
24716         (WebCore::UniscribeController::shapeAndPlaceItem):
24717         (WebCore::UniscribeController::shape):
24718         * platform/win/UniscribeController.h: Added.
24719         (WebCore::UniscribeController::width):
24720         (WebCore::UniscribeController::glyphBuffer):
24721
24722 2007-03-20  Anders Carlsson  <acarlsson@apple.com>
24723
24724         Reviewed by Adam.
24725
24726         <rdar://problem/4921198>
24727         Cookie acceptance policy not settable
24728
24729         * platform/network/cf/ResourceHandleCFNet.cpp:
24730         
24731         (WebCore::willSendRequest):
24732         (WebCore::willCacheResponse):
24733         Remove FIXMEs.
24734         
24735         (WebCore::makeFinalRequest):
24736         New function that makes a final CFURLRequest depending on cookie policy and whether any
24737         invalid SSL certificates should be ignored.
24738         
24739         (WebCore::ResourceHandle::start):
24740         (WebCore::ResourceHandle::loadResourceSynchronously):
24741         Use makeFinalRequest.
24742         
24743         (WebCore::ResourceHandle::cookieStorageAcceptPolicy):
24744         (WebCore::ResourceHandle::setCookieStorageAcceptPolicy):
24745         (WebCore::ResourceHandle::cookieStorage):
24746         (WebCore::ResourceHandle::setCookieStorage):
24747         (WebCore::ResourceHandle::setHostAllowsAnyHTTPSCertificate):
24748         New functions for setting cookie policy, the deafult cookie storage and whether invalid
24749         SSL certificates should result in an error.
24750         
24751         * platform/network/cf/ResourceRequestCFNet.cpp:
24752         (WebCore::ResourceRequest::doUpdatePlatformRequest):
24753         Set cookie storage, cookie policy and SSL properties.
24754
24755         * platform/network/win/CookieJarWin.cpp:
24756         (WebCore::setCookies):
24757         (WebCore::cookies):
24758         Use same functions as the mac (sorta).
24759         
24760         (WebCore::cookiesEnabled):
24761         Implement this.
24762
24763 2007-03-19  Adam Roben  <aroben@apple.com>
24764
24765         Reviewed by Anders and Darin.
24766
24767         Added JavaScriptStatistics to the project for
24768         <rdar://problems/5071653>.
24769
24770         * WebCore.vcproj/WebCore.vcproj: Added include/pthreads to the include
24771         path, and added JavaScriptStatistics.(cpp|h).
24772
24773 2007-03-18  David Hyatt  <hyatt@apple.com>
24774
24775         Fix the CSS2 system font for 'menu' to match Mac.  Makes the system fonts layout test pass.
24776
24777         * rendering/RenderThemeSafari.cpp:
24778         (WebCore::RenderThemeSafari::systemFont):
24779
24780 2007-03-18  Adam Roben  <aroben@apple.com>
24781
24782         Reviewed by Hyatt.
24783
24784         Changed the file upload button to say "Choose File" to match Mac.
24785
24786         * platform/win/TemporaryLinkStubs.cpp:
24787         (WebCore::fileButtonChooseFileLabel):
24788
24789 2007-03-18  Geoffrey Garen  <ggaren@apple.com>
24790
24791         Reviewed by Oliver Hunt.
24792
24793         Fixed <rdar://problem/5061807> STRESS (2): Crash in PlatformScrollbar::setRect
24794
24795         No test case because I can't seem to get the Windows DRT to cooperate. I'll try again tomorrow.
24796
24797         The problem was that the FrameView would try to reset the document's scrollbars after having 
24798         been removed from the page, so its page pointer would be NULL. Added NULL checks.
24799
24800         This situation ultimately results from the FrameView's non-trivial destructor, which
24801         creates a fragile dependency on tear-down timing. It looks like the timing on Windows
24802         is slightly different from the timing on Mac. I didn't see any obvious resulting bugs,
24803         though, so the NULL checks should be sufficient for now.
24804
24805         * platform/win/ScrollViewWin.cpp:
24806         (WebCore::ScrollView::windowResizerRect):
24807         (WebCore::ScrollView::addToDirtyRegion):
24808         (WebCore::ScrollView::scrollBackingStore):
24809         (WebCore::ScrollView::updateBackingStore):
24810
24811 2007-03-17  David Hyatt  <hyatt@apple.com>
24812
24813         The internal side of the patch that ensures Boomer paints twice on ibench.  Don't let the timer beat out
24814         that first paint.
24815
24816         Reviewed by aroben
24817
24818         * platform/win/ScrollViewWin.cpp:
24819         (WebCore::ScrollView::update):
24820
24821 2007-03-17  Adam Roben  <aroben@apple.com>
24822
24823         Reviewed by Brady.
24824
24825         Fix fast/dom/isindex-002.html.
24826
24827         Add default strings to our two remaining unimplemented localizable
24828         strings in WebCore.
24829
24830         * platform/win/TemporaryLinkStubs.cpp:
24831         (WebCore::searchableIndexIntroduction): Added English string from Mac.
24832         (WebCore::inputElementAltText): Ditto.
24833
24834 2007-03-17  Adele Peterson  <adele@apple.com>
24835
24836         Reviewed by Hyatt.
24837
24838         Fix for <rdar://problem/4960391> REGRESSION (r18922): onChange never fired after selecting an item from a menulist
24839
24840         * platform/win/PopupMenuWin.cpp:
24841         (WebCore::PopupMenu::PopupMenu): Initialize m_focusedIndex to 0.  Instead of using the client to track the focused index, we'll
24842          keep track of it internally.  Our old behavior was trying to match Firefox by updating the selected index as you focus items, but that
24843          doesn't seem necessary if the selection never gets committed.
24844         (WebCore::PopupMenu::show): Initialize the focused index to the client's selected index.
24845         (WebCore::PopupMenu::setFocusedIndex): Remove the fireOnChange argument.  Remove the call to valueChanged.
24846         (WebCore::PopupMenu::focusedIndex): Return m_focusedIndex instead of getting this from the client.
24847         (WebCore::PopupMenu::down): Use the focusedIndex.
24848         (WebCore::PopupMenu::up): ditto.
24849         (WebCore::PopupMenu::paint): Paint a selected appearance for the item with the focused index.
24850
24851 2007-03-16  Adele Peterson  <adele@apple.com>
24852
24853         Reviewed by Lou.
24854
24855         Fix for <rdar://problem/5065040> cannot mousedown + drag in a <select> menu
24856
24857         * platform/win/PopupMenuWin.cpp:
24858         (WebCore::PopupMenu::show): Set the capture when the popup window comes up.
24859         (WebCore::PopupWndProc): Release the capture only when the mouse is not down, and the mouse moves outside the popup window, 
24860          or if you mouse up inside the window, and you're about to hide the popup.  The mouse will get recaptured if you mouse down
24861          again in the window.
24862
24863 2007-03-15  Brady Eidson  <beidson@apple.com>
24864
24865         Reviewed by Oliver
24866
24867         CFNetwork related cleanup that was a work around for previous deficiencies in CFURLDownload
24868         This might fix some of the random crashers we see on stress testing if they end up 
24869         downloading links.
24870
24871         * platform/network/cf/ResourceHandleCFNet.cpp:
24872         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):  Always call cancel if theres a
24873           connection - the ref-count-check hack is no longer neccesary
24874         (WebCore::ResourceHandle::releaseConnectionForDownload): Give up the CFURLConnection without
24875           derefing it
24876
24877 2007-03-15  Maciej Stachowiak  <mjs@apple.com>
24878
24879         Reviewed by Geoff and Steve.
24880         
24881         - fixed <rdar://problem/5029776> iBench JavaScript test slower than Opera
24882         - fixes to use FastMalloc on Windows
24883
24884         * config.h: Don't force USE_SYSTEM_MALLOC
24885
24886 2007-03-15  Adam Roben  <aroben@apple.com>
24887
24888         Rubberstamped by Hyatt.
24889
24890         * platform/win/FontDataWin.cpp:
24891         (WebCore::FontData::platformInit): Move the code to get the font face
24892         to the top of the function for easier debugging.
24893         * platform/win/FontPlatformDataWin.cpp:
24894         (WebCore::FontPlatformData::FontPlatformData): ASSERT that we got a
24895         valid CGFontRef back from CG, as CG and GDI should agree on the fonts
24896         installed.
24897
24898 2007-03-14  Anders Carlsson  <acarlsson@apple.com>
24899
24900         Reviewed by Adam.
24901
24902         Use CFURLResponseCopySuggestedFilename.
24903         
24904         * platform/network/cf/ResourceResponseCFNet.cpp:
24905         (WebCore::suggestedFilenameForResponse):
24906
24907 2007-03-14  Adam Roben  <aroben@apple.com>
24908
24909         Reviewed by Hyatt.
24910
24911         Use CG to get xHeight.
24912
24913         * platform/win/FontDataWin.cpp:
24914         (WebCore::scaleEmToUnits): Made robust against divide-by-zero errors.
24915         (WebCore::FontData::platformInit): Ported Mac code to get xHeight using CG.
24916
24917 2007-03-14  Anders Carlsson  <acarlsson@apple.com>
24918
24919         Build fixes.
24920         
24921         * platform/graphics/win/ImageWin.cpp:
24922         (WebCore::Image::loadPlatformResource):
24923         * platform/win/EditorWin.cpp:
24924
24925 2007-03-13  Adam Roben  <aroben@apple.com>
24926
24927         Reviewed by Anders.
24928
24929         * platform/win/FontDataWin.cpp:
24930         (WebCore::scaleEmToUnits): Ported from FontDataMac.
24931         (WebCore::FontData::platformInit): Use CG for metrics, and apply Mac's
24932         line-height hack for Times, Helvetica, and Courier.
24933         (WebCore::FontData::platformWidthForGlyph): Call wkGetGlyphAdvances to
24934         use some CG SPI to match Mac.
24935
24936 2007-03-12  Darin Adler  <darin@apple.com>
24937
24938         * WebCore.vcproj/WebCore.vcproj: Added new JavaScript wrapper derived source files.
24939
24940 2007-03-12  Anders Carlsson  <acarlsson@apple.com>
24941
24942         Reviewed by Darin.
24943
24944         <rdar://problem/5054694>
24945         Repro crash when viewing fast/dom/HTMLObjectElement/object-as-frame.html
24946         
24947         * bridge/win/FrameWin.cpp:
24948         (WebCore::Frame::createScriptInstanceForWidget):
24949         Return 0 for frame views.
24950
24951 2007-03-12  Anders Carlsson  <acarlsson@apple.com>
24952
24953         Reviewed by Adam.
24954
24955         <rdar://problem/5054713>
24956         Crash in suggestedFilenameForResponse in two fast/encoding tests.
24957         
24958         Add null checks.
24959         
24960         * platform/network/cf/ResourceResponseCFNet.cpp:
24961         (WebCore::suggestedFilenameForResponse):
24962
24963 2007-03-12  Adele Peterson  <adele@apple.com>
24964
24965         Reviewed by Oliver.
24966
24967         Fix for <rdar://problem/5053618> Disable "recent searches" search field menu.
24968
24969         * platform/win/SearchPopupMenuWin.cpp: (WebCore::SearchPopupMenu::enabled):
24970
24971 2007-03-12  Adele Peterson  <adele@apple.com>
24972
24973         Reviewed by Oliver.
24974         
24975         WebCore part of fix for <rdar://problem/5044790> preventing default of keypress event doesn't work (affects .mac)
24976
24977         * platform/win/KeyEventWin.cpp:
24978         (WebCore::singleCharacterString): Added inline keyword.   
24979         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
24980         Renamed arguments to be more meaningful.  Added characterCode argument to be used when constructing m_text.
24981
24982 2007-03-12  Adele Peterson  <adele@apple.com>
24983
24984         Reviewed by Oliver.
24985
24986         Forking KeyEventWin.cpp from revision 20118.
24987
24988         * WebCore.vcproj/WebCore.vcproj:
24989         * platform/win/KeyEventWin.cpp: Added.
24990
24991 2007-03-11  Oliver Hunt  <oliver@apple.com>
24992
24993         Reviewed by Adele.
24994
24995         Removed Frame::respondToChangedSelection stub
24996         added Editor::markMisspellings stub
24997
24998         * platform/win/TemporaryLinkStubs.cpp:
24999         (WebCore::Editor::markMisspellings):
25000
25001 2007-03-10  Geoffrey Garen  <ggaren@apple.com>
25002
25003         Reviewed by Darin Adler.
25004
25005         Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and 
25006         JSCore causes a hang @ www.panoramas.dk
25007         
25008         See JavaScriptCore ChangeLog for details.
25009         
25010         Stress test doesn't show any problems.
25011         
25012         Drop the JSLock before making calls through the plug-in API from functions
25013         that may have been called by JavaScript.
25014         
25015         * plugins/win/PluginViewWin.cpp:
25016         (WebCore::PluginViewWin::paint):
25017         (WebCore::PluginViewWin::handleKeyboardEvent):
25018         (WebCore::PluginViewWin::handleMouseEvent):
25019         (WebCore::PluginViewWin::setNPWindowRect):
25020         (WebCore::PluginViewWin::start):
25021         (WebCore::PluginViewWin::stop):
25022         (WebCore::PluginViewWin::performRequest):
25023         (WebCore::PluginViewWin::bindingInstance):
25024
25025 2007-03-09  Oliver Hunt  <oliver@apple.com>
25026
25027         Reviewed by John.
25028
25029         Fix the doubled text in the image used to drag a link
25030
25031         * platform/win/WebCoreTextRenderer.cpp:
25032         (WebCore::WebCoreDrawDoubledTextAtPoint):
25033
25034 2007-03-09  Anders Carlsson  <acarlsson@apple.com>
25035
25036         Reviewed by Adam.
25037
25038         Implement setting the suggested filename for a response.
25039         
25040         * platform/network/cf/ResourceResponseCFNet.cpp:
25041         (WebCore::filenameFromHTTPContentDisposition):
25042         (WebCore::filenameHasSaneExtension):
25043         (WebCore::suggestedFilenameForResponse):
25044         (WebCore::ResourceResponse::doUpdateResourceResponse):
25045         * platform/win/MimeTypeRegistryWin.cpp:
25046         (WebCore::getMIMETypeForUTI):
25047         
25048         (WebCore::mimeTypeForExtension):
25049         Fix two bugs in this function.
25050         
25051         (WebCore::MimeTypeRegistry::getPreferredExtensionForMIMEType):
25052
25053 2007-03-09  Anders Carlsson  <acarlsson@apple.com>
25054
25055         * plugins/win/PluginViewWin.cpp:
25056         (WebCore::PluginViewWin::performRequest):
25057         Fixup comments and remove an obsolete FIXME.
25058
25059 2007-03-09  Oliver Hunt  <oliver@apple.com>
25060
25061         Reviewed by Steve.
25062
25063         Executing a script for a plugin can cause cause this to be deleted
25064         so we take a reference to our parent prior to executing the script
25065
25066         * plugins/win/PluginViewWin.cpp:
25067         (WebCore::PluginViewWin::performRequest):
25068
25069 2007-03-08  Oliver Hunt  <oliver@apple.com>
25070
25071         Reviewed by Steve.
25072
25073         Allow webloc files to be dropped onto the webview
25074         
25075         <rdar://problem/4883564> Regression: cannot open webloc file by dnd to Boomer's window
25076
25077         * platform/win/DragDataWin.cpp:
25078         (WebCore::cfHDropFormat):
25079            Clipboard format for HDROP, non-static as i will need it elsewhere in the future 
25080         (WebCore::getWebLocData):
25081            Extract a url from a webloc file
25082         (WebCore::getURL):
25083            Call getWebLocData
25084
25085 2007-03-08  Steve Falkenburg  <sfalken@apple.com>
25086
25087         Fix Production build more
25088
25089         * WebCore.vcproj/WebCore.vcproj:
25090
25091 2007-03-08  Steve Falkenburg  <sfalken@apple.com>
25092
25093         Production build fix
25094
25095         * WebCore.vcproj/WebCore.vcproj:
25096
25097 2007-03-08  Adam Roben  <aroben@apple.com>
25098
25099         Reviewed by Steve.
25100         
25101         Fix <rdar://problem/4969070> Failed error pages show "unknown error"
25102         rather than specific error
25103
25104         Make ResourceError aware of kCFErrorDomainCFNetwork.
25105
25106         * platform/network/cf/ResourceErrorCF.cpp:
25107         (WebCore::ResourceError::ResourceError): Added case for
25108         kCFErrorDomainCFNetwork.
25109
25110 2007-03-06  Adam Roben  <aroben@apple.com>
25111
25112         Fixing the build while semi-blind is fun.
25113
25114         * platform/win/TemporaryLinkStubs.cpp:
25115         (WebCore::supportedKeySizes): Need a namespace.
25116         (WebCore::signedPublicKeyAndChallengeString): Ditto.
25117
25118 2007-03-06  Adam Roben  <aroben@apple.com>
25119
25120         It works better if you use valid C++ syntax.
25121
25122         * platform/win/TemporaryLinkStubs.cpp:
25123
25124 2007-03-06  Adam Roben  <aroben@apple.com>
25125
25126         Build fix.
25127
25128         * platform/win/TemporaryLinkStubs.cpp: Added missing stubs.
25129
25130 2007-03-06  Adam Roben  <aroben@apple.com>
25131
25132         Reviewed by Anders.
25133
25134         Always keep rounding hacks on.
25135
25136         * platform/win/FileChooserWin.cpp:
25137         (WebCore::FileChooser::basenameForWidth): Tell StringTruncator to keep
25138         rounding hacks on.
25139         * platform/win/WebCoreTextRenderer.cpp:
25140         (WebCore::WebCoreTextFloatWidth): Ditto.
25141
25142 2007-03-06  Anders Carlsson  <acarlsson@apple.com>
25143
25144         Build fix.
25145         
25146         * plugins/win/PluginViewWin.cpp:
25147         (WebCore::PluginViewWin::userAgent):
25148
25149 2007-03-05  Anders Carlsson  <acarlsson@apple.com>
25150
25151         Reviewed by Adam.
25152
25153         <rdar://problem/5041348>
25154         Can't watch videos at cnn.com
25155         
25156         * plugins/win/PluginStreamWin.cpp:
25157         (WebCore::PluginStreamWin::cancelAndDestroyStream):
25158         Change this function back to call call stop() after destroyStream(). Also, make sure to
25159         protect the stream since destroyStream can eventually, well, destroy it.
25160
25161 2007-03-05  Anders Carlsson  <acarlsson@apple.com>
25162
25163         Reviewed by Adam.
25164
25165         <rdar://problem/4987743>
25166         Regression: java content is represented as broken images on pages
25167         
25168         * plugins/win/PluginPackageWin.cpp:
25169         (WebCore::PluginPackageWin::load):
25170         Make sure to set the size of the NPPluginFuncs struct correctly.
25171
25172 2007-03-05  Steve Falkenburg  <sfalken@apple.com>
25173
25174         Fix build
25175
25176         * plugins/win/PluginStreamWin.cpp:
25177         (WebCore::PluginStreamWin::stop): Call cancel() instead of stopLoading(), since the latter was removed.
25178
25179 2007-03-02  Adam Roben  <aroben@apple.com>
25180
25181         Reviewed by Anders.
25182
25183         Added optional underlining of a single character to
25184         WebCoreTextRenderer.
25185
25186         No layout tests possible.
25187
25188         * platform/win/WebCoreTextRenderer.cpp:
25189         (WebCore::doDrawTextAtPoint): Added. This is an extraction of the code
25190         from DrawTextAtPoint that now also contains the underlining code.
25191         (WebCore::WebCoreDrawTextAtPoint): Call the helper function.
25192         (WebCore::WebCoreDrawDoubledTextAtPoint): Ditto.
25193         * platform/win/WebCoreTextRenderer.h: Added optional underlinedIndex
25194         parameters.
25195
25196 2007-03-01  Anders Carlsson  <acarlsson@apple.com>
25197
25198         Reviewed by Tim.
25199
25200         * plugins/win/npfunctions.h:
25201         Fix tyop.
25202         
25203 2007-02-28  Adam Roben  <aroben@apple.com>
25204
25205         Reviewed by Anders.
25206
25207         Clean up WebCoreTextRenderer. WebCoreDrawTextAtPoint now just draws
25208         text at a point. It doesn't center truncate, clip, or modify alignment.
25209
25210         No layout test possible.
25211
25212         * platform/win/WebCoreTextRenderer.cpp:
25213         (WebCore::WebCoreDrawTextAtPoint): Use only WebCore types, and don't
25214         center truncate or modify alignment.
25215         (WebCore::WebCoreDrawDoubledTextAtPoint): Moved from WebKitGraphics.cpp.
25216         (WebCore::WebCoreTextFloatWidth): Added.
25217         * platform/win/WebCoreTextRenderer.h: Updated/added declarations.
25218
25219 2007-02-28  Adele Peterson  <adele@apple.com>
25220
25221         Reviewed by Adam.
25222
25223         Fix for <rdar://problem/4887423> REGRESSION: search results popup menu strings are not localized
25224         and <rdar://problem/3517227> accessibility-related strings in WebCore are not localized
25225
25226         * platform/win/TemporaryLinkStubs.cpp:
25227         (WebCore::searchMenuNoRecentSearchesText):
25228         (WebCore::searchMenuRecentSearchesText):
25229         (WebCore::searchMenuClearRecentSearchesText):
25230         (WebCore::AXWebAreaText):
25231         (WebCore::AXLinkText):
25232         (WebCore::AXListMarkerText):
25233         (WebCore::AXImageMapText):
25234         (WebCore::AXHeadingText):
25235
25236 2007-02-28  Maciej Stachowiak  <mjs@apple.com>
25237
25238         Reviewed by Adam.
25239
25240         - fixed <rdar://problem/5005120> Crash: selecting View all RSS Articles from context menu of bookmark folder
25241
25242         * platform/network/cf/ResourceRequestCFNet.cpp:
25243         (WebCore::ResourceRequest::doUpdatePlatformRequest): Use RetainPtr
25244         instead of explicit release, as this was caused by CFRelease on
25245         a null pointer, and REtainPtr is tolerant.
25246
25247 2007-02-27  Beth Dakin  <bdakin@apple.com>
25248
25249         Reviewed by Adam.
25250
25251         <rdar://problem/4956528> Implement Pasteboard::writeImage for 
25252         Boomer context menus
25253
25254         * platform/win/PasteboardWin.cpp:
25255         (WebCore::Pasteboard::writeImage): Copy a bitmap to the clipboard.
25256
25257 2007-02-27  Oliver Hunt  <oliver@apple.com>
25258
25259         Reviewed by Lou and Steve.
25260
25261         Add a store for current Cursor to fix <rdar://problem/4788352>
25262
25263         * platform/win/WidgetWin.cpp:
25264         (WebCore::Widget::setCursor):
25265
25266 2007-02-26  Oliver Hunt  <oliver@apple.com>
25267
25268         Reviewed by Maciej.
25269
25270         To stop the drag image for transparent images from looking 
25271         ugly (especially fully transparent images) we render the 
25272         image to a white background prior to passing the image on to 
25273         Windows
25274         
25275         <rdar://problem/5015946>
25276
25277         * platform/win/DragImageWin.cpp:
25278         (WebCore::createDragImageFromImage):
25279
25280 2007-02-26  Adam Roben  <aroben@apple.com>
25281
25282         Reviewed by Adele.
25283
25284         * platform/win/GraphicsContextWin.cpp: Get rid of so-five-hours-ago SVG_SUPPORT.
25285
25286 2007-02-26  Adam Roben  <aroben@apple.com>
25287
25288         Build fix.
25289
25290         * config.h: Remove redundant #define.
25291         * WebCore.vcproj/WebCore.vcproj: Update to new macros.
25292
25293 2007-02-26  Adam Roben  <aroben@apple.com>
25294
25295         Rubberstamped by Ada.
25296
25297         * platform/graphics/svg/cg/SVGResourceFilterCg.cpp: Make #if match the header file.
25298
25299 2007-02-26  Adam Roben  <aroben@apple.com>
25300
25301         Reviewed by Darin.
25302
25303         Build fix.
25304
25305         * WebCore.vcproj/build-generated-files.sh: Updated FEATURE_DEFINES.
25306         * platform/graphics/svg/cg/SVGResourceFilterCg.cpp: Use shiny new ENABLE(SVG).
25307         * platform/graphics/svg/cg/SVGResourceMaskerCg.cpp: Ditto.
25308
25309 2007-02-25  Maciej Stachowiak  <mjs@apple.com>
25310
25311         Reviewed by Adam.
25312
25313         - fixed layout test failure in fast/overflow/scrollRevealButton
25314         
25315         I added a new ScrollView method, fullyClippedContentRect, that vies the content rect
25316         as clipped by all ancestor scroll views, not just this one. Currently it only works
25317         correctly on mac however. visibleContentRect, only accounting for the clipping from
25318         this particular scroll view, is sufficient for most purposes.
25319
25320         * platform/win/ScrollViewWin.cpp:
25321         (WebCore::ScrolView::fullyClippedContentRect):
25322
25323 2007-02-24  Adam Roben  <aroben@apple.com>
25324
25325         Change #if to #ifdef to match style.
25326
25327         * platform/win/PopupMenuWin.cpp:
25328         (WebCore::PopupMenu::show):
25329
25330 2007-02-24  Adam Roben  <aroben@apple.com>
25331
25332         Reviewed by Steve.
25333
25334         Fix <rdar://problem/5013502> REGRESSION: <select> menus are not
25335         animating smoothly
25336
25337         This was caused by making the menus partially transparent in r12250.
25338
25339         * platform/win/PopupMenuWin.cpp:
25340         (WebCore::PopupMenu::show): Disable animations.
25341
25342 2007-02-23  Anders Carlsson  <acarlsson@apple.com>
25343
25344         Reviewed by Adam.
25345
25346         <rdar://problem/4761543>
25347         nike.com doesn't finish loading if Flash plugin is installed.
25348         
25349         If a plugin requests a JavaScript URL with a non null frame target, execute the JavaScript expression. If the result 
25350         is not "undefined", replace the contents of the frame with the result converted to a string.
25351
25352         * plugins/win/PluginViewWin.cpp:
25353         (WebCore::getString):
25354         (WebCore::PluginViewWin::performRequest):
25355         (WebCore::PluginViewWin::requestTimerFired):
25356
25357 2007-02-22  Oliver Hunt  <oliver@apple.com>
25358
25359         rs = adam
25360         
25361         Replacing radar numbers from previous patch with one
25362         the isn't fictitious <rdar://problem/5018591>
25363
25364         * platform/win/CursorWin.cpp:
25365         (WebCore::columnResizeCursor):
25366         (WebCore::rowResizeCursor):
25367         (WebCore::verticalTextCursor):
25368
25369 2007-02-22  Oliver Hunt  <oliver@apple.com>
25370
25371         Reviewed by Ada.
25372
25373         Implemented a couple more cursor methods
25374
25375         * platform/win/CursorWin.cpp:
25376         (WebCore::columnResizeCursor):
25377         (WebCore::rowResizeCursor):
25378         (WebCore::verticalTextCursor):
25379           Added radar bug reference <rdar://problem/5018452>
25380         (WebCore::progressCursor):
25381         (WebCore::noDropCursor):
25382         (WebCore::notAllowedCursor):
25383           Making them return the correct cursor
25384
25385 2007-02-22  Oliver Hunt  <oliver@apple.com>
25386
25387         Reviewed by Anders.
25388
25389         Removing accessive COMPtr use from ClipboardWin constructors
25390         Adding data verification to ClipoardWin::SetData
25391         Small amount code tidying, and allowing for failure when writing an URL
25392
25393         * page/win/EventHandlerWin.cpp:
25394         (WebCore::EventHandler::createDraggingClipboard):
25395           Updated for new ClipboardWin constructor
25396         * platform/win/ClipboardWin.cpp:
25397         (WebCore::ClipboardWin::ClipboardWin):
25398         (WebCore::writeURL):
25399         (WebCore::ClipboardWin::getData):
25400           Tidying code, and allowing failure
25401         (WebCore::ClipboardWin::setData):
25402           Verifying that we're writing a valid url
25403                     
25404         * platform/win/ClipboardWin.h:
25405         * platform/win/EditorWin.cpp:
25406         (WebCore::Editor::newGeneralClipboard):
25407           Updated for new ClipboardWin constructor
25408
25409 2007-02-22  Oliver Hunt  <oliver@apple.com>
25410
25411         Reviewed by Ada, Lou, and Steve.
25412
25413         Last of the major Drag and drop implementation 
25414         patches for windows:
25415         * Adds support for DOM Clipboard during drag operations
25416         * Un-statics and refactors a few Pasteboard and DragData functions
25417           to allow them to share implementation with ClipboardWin and other 
25418           drag logic
25419         * Moves COMPtr.h from WebKit to WebCore
25420         * Adds WCDataObject, which is basically a direct copy of
25421           SDataObject from the app, with a few modifications to support
25422           DOM clipboard functionality.  Also includes a few suggestions
25423           from Ada and Steve, mostly involving memory management :D
25424         
25425         This resolves 
25426         <rdar://problem/4821407> Cannot drag link to bookmarks bar to create new link
25427         <rdar://problem/4869496> User Interaction Essentials: Drag
25428
25429         * WebCore.vcproj/WebCore.vcproj:
25430           Adding new files
25431           
25432         * page/win/DragControllerWin.cpp:
25433         (WebCore::DragController::maxDragImageSize):
25434           Maximum size of drag image to allow sharp edges
25435           is 208x208
25436           
25437         * page/win/EventHandlerWin.cpp:
25438         (WebCore::EventHandler::createDraggingClipboard):
25439           Properly implemented now
25440           
25441         * platform/win/ClipboardWin.cpp:
25442         (WebCore::):
25443         (WebCore::clipboardTypeFromMIMEType):
25444         (WebCore::ClipboardWin::ClipboardWin):
25445         (WebCore::ClipboardWin::~ClipboardWin):
25446         (WebCore::writeURL):
25447           Helper function to write a url to a WCDataObject
25448         (WebCore::ClipboardWin::clearData):
25449         (WebCore::ClipboardWin::clearAllData):
25450         (WebCore::ClipboardWin::getData):
25451         (WebCore::ClipboardWin::setData):
25452         (WebCore::addMimeTypesForFormat):
25453           Helper function for ClipboardWin::types
25454         (WebCore::ClipboardWin::types):
25455         (WebCore::ClipboardWin::setDragImage):
25456         (WebCore::ClipboardWin::setDragImageElement):
25457           General setters, match behaviour of WebKit/Mac
25458         (WebCore::ClipboardWin::createDragImage):
25459           Creates a drag image for a DOM specified Image is specified
25460           can't currently generate an image for an arbitrary element
25461         (WebCore::imageToMarkup):
25462           Wraps a url in an img tag
25463         (WebCore::ClipboardWin::declareAndWriteDragImage):
25464         (WebCore::ClipboardWin::writeURL):
25465         (WebCore::ClipboardWin::writeRange):
25466         (WebCore::ClipboardWin::hasData):
25467           Implement Clipboard required by DragController.
25468           Provides read/write DOM Clipboard implementation for dragging,
25469           read only when accessing system clipboard.
25470           
25471         * platform/win/ClipboardWin.h:
25472         (WebCore::ClipboardWin::dataObject):
25473           Provide an accessor for the dataObject
25474           
25475         * platform/win/DragDataWin.cpp:
25476         (WebCore::urlWFormat):
25477         (WebCore::urlFormat):
25478         (WebCore::plainTextFormat):
25479         (WebCore::plainTextWFormat):
25480         (WebCore::texthtmlFormat):
25481         (WebCore::htmlFormat):
25482         (WebCore::getURL):
25483         (WebCore::DragData::asURL):
25484         (WebCore::getPlainText):
25485         (WebCore::DragData::asPlainText):
25486         (WebCore::DragData::asFragment):
25487           Refactoring and removing of a few static modifiers to allow sharing with Clipboard
25488           
25489         * platform/win/DragImageWin.cpp:
25490         (WebCore::dragImageSize):
25491         (WebCore::deleteDragImage):
25492         (WebCore::allocImage):
25493         (WebCore::createCgContextFromBitmap):
25494         (WebCore::scaleDragImage):
25495         (WebCore::dissolveDragImageToFraction):
25496         (WebCore::createDragImageFromImage):
25497         (WebCore::createDragImageIconForCachedImage):
25498           Implement DragImage functions
25499           
25500         * platform/win/EditorWin.cpp:
25501         (WebCore::Editor::newGeneralClipboard):
25502           Creating a Clipboard that wraps the system clipboard
25503           
25504         * platform/win/PasteboardWin.cpp:
25505         (WebCore::createGlobalData):
25506         (WebCore::markupToCF_HTML):
25507         (WebCore::urlToMarkup):
25508         (WebCore::replaceNBSP):
25509           removing 'static'
25510           
25511         * platform/win/WCDataObject.cpp: Added.
25512         (WebCore::WCEnumFormatEtc::WCEnumFormatEtc):
25513         (WebCore::WCEnumFormatEtc::QueryInterface):
25514         (WebCore::WCEnumFormatEtc::AddRef):
25515         (WebCore::WCEnumFormatEtc::Release):
25516         (WebCore::WCEnumFormatEtc::Next):
25517         (WebCore::WCEnumFormatEtc::Skip):
25518         (WebCore::WCEnumFormatEtc::Reset):
25519         (WebCore::WCEnumFormatEtc::Clone):
25520         (WebCore::WCDataObject::createInstance):
25521         (WebCore::WCDataObject::WCDataObject):
25522         (WebCore::WCDataObject::~WCDataObject):
25523         (WebCore::WCDataObject::QueryInterface):
25524         (WebCore::WCDataObject::AddRef):
25525         (WebCore::WCDataObject::Release):
25526         (WebCore::WCDataObject::GetData):
25527         (WebCore::WCDataObject::GetDataHere):
25528         (WebCore::WCDataObject::QueryGetData):
25529         (WebCore::WCDataObject::GetCanonicalFormatEtc):
25530         (WebCore::WCDataObject::SetData):
25531         (WebCore::WCDataObject::CopyMedium):
25532         (WebCore::WCDataObject::EnumFormatEtc):
25533         (WebCore::WCDataObject::DAdvise):
25534         (WebCore::WCDataObject::DUnadvise):
25535         (WebCore::WCDataObject::EnumDAdvise):
25536         (WebCore::WCDataObject::clearData):
25537           Copied from SDataObject in the App createInstance and clearData
25538           are the only new functions.  clearData removes any entries in the
25539           object with a specified CLIPFORMAT.
25540           Have also made a few error and memory handling changes suggested
25541           by Steve and Ada
25542         * platform/win/WCDataObject.h: Added.
25543           Header for the above
25544
25545 2007-02-22  Adam Roben  <aroben@apple.com>
25546
25547         Reviewed by Adele.
25548
25549         Make sure we always paint the right size search results icon.
25550
25551         * rendering/RenderThemeSafari.cpp:
25552         (WebCore::RenderThemeSafari::paintSearchFieldCancelButton): Removed unused parameter.
25553         (WebCore::RenderThemeSafari::paintSearchFieldDecoration): Ditto.
25554         (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration): Base
25555         the control size off of the search field rect to ensure that the icon
25556         and the control are the same size.
25557         (WebCore::RenderThemeSafari::paintSearchFieldResultsButton): Ditto.
25558
25559 2007-02-21  Adam Roben  <aroben@apple.com>
25560
25561         Reviewed by Adele.
25562
25563         Updated for SafariTheme changes.
25564
25565         * rendering/RenderThemeSafari.cpp:
25566         (WebCore::RenderThemeSafari::paintMenuList): Use DropDownButtonPart.
25567
25568 2007-02-20  Adele Peterson  <adele@apple.com>
25569
25570         Reviewed by Darin.
25571
25572         * WebCore.vcproj/WebCore.vcproj: Added JSHTMLSelectElementCustom.h
25573
25574 2007-02-20  Beth Dakin  <bdakin@apple.com>
25575
25576         Reviewed by Maciej.
25577
25578         Some changes needed to match moving writeImage() to the Pasteboard 
25579         on the Mac.
25580
25581         * platform/win/PasteboardWin.cpp:
25582         (WebCore::Pasteboard::writeURL): Now takes a bool indicating if the 
25583         url if for an image.
25584         (WebCore::Pasteboard::writeImage): This is just a stub for now. I 
25585         am putting it here instead of on TemporaryLinkStubs because I plan 
25586         on implementing it very soon.
25587
25588 2007-02-20  Adam Roben  <aroben@apple.com>
25589
25590         Reviewed by Darin and Anders.
25591
25592         Fix <rdar://problem/5003318> App: Status bar text is more difficult to
25593         read than Mac OS X Safari
25594
25595         * WebCore.vcproj/WebCore.vcproj: Added new files.
25596         * platform/win/FileChooserWin.cpp:
25597         (WebCore::FileChooser::openFileChooser):
25598         (WebCore::FileChooser::basenameForWidth): Added truncation.
25599         * platform/win/WebCoreTextRenderer.cpp:
25600         (WebCore::WebCoreDrawTextAtPoint): Added bottomAlign and centerTruncate parameters.
25601         * platform/win/WebCoreTextRenderer.h: Ditto.
25602
25603 2007-02-20  Alice Liu  <alice.liu@apple.com>
25604
25605         Build fix
25606
25607         * WebCore.vcproj/WebCore.vcproj:
25608         Added PositionIterator.cpp & h
25609
25610 2007-02-20  Steve Falkenburg  <sfalken@apple.com>
25611
25612         Production build fix
25613
25614         * WebCore.vcproj/WebCore.vcproj:
25615
25616 2007-02-19  Geoffrey Garen  <ggaren@apple.com>
25617
25618         Reviewed by Adam Roben.
25619
25620         Fixed some leaks in RenderThemeSafari.
25621         
25622         I just merged some of the code I wrote for RenderThemeMac.
25623         
25624         * rendering/RenderThemeSafari.cpp:
25625         (WebCore::RenderThemeSafari::paintMenuListButtonGradients):
25626         (WebCore::RenderThemeSafari::paintSliderTrack):
25627
25628 2007-02-19  Anders Carlsson  <acarlsson@apple.com>
25629
25630         Reviewed by Oliver.
25631
25632         Fix build.
25633
25634         * page/win/DragControllerWin.cpp:
25635         (WebCore::DragController::maxDragImageSize):
25636
25637 2007-02-19  Adele Peterson  <adele@apple.com>
25638
25639         Reviewed by Adam.
25640
25641         Fix for <rdar://problem/5006882> PlatformScrollbarSafari doesn't support small scroll bars
25642
25643         * platform/win/PlatformScrollBar.h:
25644         * platform/win/PlatformScrollBarSafari.cpp:
25645         (WebCore::):
25646         (WebCore::PlatformScrollbar::PlatformScrollbar):
25647         (WebCore::trackRepaintRect):
25648         (WebCore::buttonRepaintRect):
25649         (WebCore::PlatformScrollbar::invalidateTrack):
25650         (WebCore::PlatformScrollbar::invalidatePart):
25651         (WebCore::PlatformScrollbar::backButtonRect):
25652         (WebCore::PlatformScrollbar::forwardButtonRect):
25653         (WebCore::PlatformScrollbar::trackRect):
25654         (WebCore::PlatformScrollbar::splitTrack):
25655         (WebCore::PlatformScrollbar::thumbLength):
25656         (WebCore::PlatformScrollbar::paintButton):
25657         (WebCore::PlatformScrollbar::paintTrack):
25658         (WebCore::PlatformScrollbar::paintThumb):
25659         (WebCore::PlatformScrollbar::horizontalScrollbarHeight):
25660         (WebCore::PlatformScrollbar::verticalScrollbarWidth):
25661         * platform/win/PopupMenuWin.cpp:
25662         (WebCore::PopupMenu::show):
25663         (WebCore::PopupMenu::calculatePositionAndSize):
25664
25665 2007-02-19  Anders Carlsson  <acarlsson@apple.com>
25666
25667         Reviewed by Adam.
25668
25669         <rdar://problem/5008424>
25670         Regression: Crash loading mp3.com
25671         
25672         * platform/network/cf/ResourceErrorCF.cpp:
25673         (WebCore::ResourceError::ResourceError):
25674         Handle null resource errrors.
25675
25676 2007-02-19  Adam Roben  <aroben@apple.com>
25677
25678         Build fix.
25679
25680         * bridge/win/FrameWin.cpp:
25681         (WebCore::computePageRectsForFrame): This is no longer an instance
25682         method of Frame.
25683         * bridge/win/FrameWin.h:
25684
25685 2007-02-18  Maciej Stachowiak  <mjs@apple.com>
25686
25687         Reviewed by Oliver.
25688
25689         - Adapt for Lars's patch to clean up Frame
25690
25691         * bridge/win/FrameWin.cpp:
25692         (WebCore::Frame::cleanupPlatformScriptObjects):
25693         (WebCore::Frame::createScriptInstanceForWidget):
25694         (WebCore::Frame::computePageRects):
25695         (WebCore::drawRectIntoContext):
25696         (WebCore::imageFromSelection):
25697         (WebCore::Frame::isCharacterSmartReplaceExempt):
25698         * bridge/win/FrameWin.h:
25699         * page/win/EventHandlerWin.cpp:
25700         * platform/win/ScrollViewWin.cpp:
25701         (WebCore::ScrollView::windowResizerRect):
25702         (WebCore::ScrollView::addToDirtyRegion):
25703         (WebCore::ScrollView::scrollBackingStore):
25704         (WebCore::ScrollView::updateBackingStore):
25705         * platform/win/TemporaryLinkStubs.cpp:
25706         (Frame::print):
25707         (Frame::issueTransposeCommand):
25708         (WebCore::Frame::respondToChangedSelection):
25709         * plugins/win/PluginDatabaseWin.cpp:
25710         (WebCore::PluginDatabaseWin::createPluginView):
25711         * plugins/win/PluginDatabaseWin.h:
25712         * plugins/win/PluginViewWin.cpp:
25713         (WebCore::PluginViewWin::createNullPluginView):
25714         (WebCore::PluginViewWin::PluginViewWin):
25715         * plugins/win/PluginViewWin.h:
25716
25717 2007-02-18  Ada Chan  <adachan@apple.com>
25718
25719         Reviewed by Adam.
25720
25721         Move app text controls to use WebView.
25722         - added a method to let us render text using WebKit.
25723
25724         * WebCore.vcproj/WebCore.vcproj:
25725         * platform/win/WebCoreTextRenderer.cpp: Added.
25726         (WebCore::WebCoreDrawTextAtPoint):
25727         * platform/win/WebCoreTextRenderer.h: Added.
25728
25729 2007-02-18  Adam Roben  <aroben@apple.com>
25730
25731         Rubberstamped by Hyatt.
25732
25733         Fix <rdar://problem/5006918> All selected text is black, even if it is
25734         some other color when not selected
25735
25736         * platform/win/PopupMenuWin.cpp:
25737         (WebCore::PopupMenu::paint): Use the listbox colors for selected items.
25738         * rendering/RenderThemeSafari.cpp: Removed platformActiveSelectionForegroundColor.
25739         * rendering/RenderThemeSafari.h: Ditto.
25740
25741 2007-02-18  Adam Roben  <aroben@apple.com>
25742
25743         Reviewed by Hyatt.
25744
25745         Fix <rdar://problem/5006872> <select> popups need Aqua scroll bars
25746
25747         PopupMenuWin now uses a PlatformScrollbar.
25748
25749         * platform/win/PlatformScrollBarSafari.cpp:
25750         (WebCore::PlatformScrollbar::hitTest): Allow hit testing even when we
25751         don't have a parent widget.
25752         (WebCore::PlatformScrollbar::autoscrollPressedPart): Don't autoscroll
25753         if nothing is pressed.
25754         * platform/win/PopupMenuWin.cpp: m_scrollOffset is now measured in menu
25755         items, not in pixels.
25756         (WebCore::PopupMenu::PopupMenu): Initialize new member.
25757         (WebCore::PopupMenu::show): Make popups partially transparent, don't
25758         use Windows' built-in scroll bars, and create a PlatformScrollbar if
25759         needed.
25760         (WebCore::PopupMenu::calculatePositionAndSize): Get the scroll bar's
25761         width from PlatformScrollbar instead of from Windows.
25762         (WebCore::PopupMenu::visibleItems): Added.
25763         (WebCore::PopupMenu::listIndexAtPoint): Definition moved here from header.
25764         (WebCore::PopupMenu::invalidateItem): Update for m_scrollOffset change,
25765         and shrink the damage rect to not invalidate the scroll bar unnecessarily.
25766         (WebCore::PopupMenu::scrollToRevealSelection): Updated to use PlatformScrollbar.
25767         (WebCore::PopupMenu::updateFromElement): Changed bool to BOOL.
25768         (WebCore::PopupMenu::paint): Updated for m_scrollOffset change, and
25769         paint the scroll bar at the end.
25770         (WebCore::PopupMenu::valueChanged): Added. Code comes from the old scrollTo method.
25771         (WebCore::PopupMenu::windowClipRect): Added.
25772         (WebCore::PopupWndProc):
25773             - Set up the scroll bar in WM_SIZE
25774             - Send mouse events to the scroll bar when appropriate
25775             - Get rid of handling of WM_VSCROLL events (we shouldn't receive these anymore)
25776
25777 2007-02-18  Oliver Hunt  <oliver@apple.com>
25778
25779         Reviewed by Adam.
25780
25781         Updated to include stubs for drag and drop methods
25782         Added DragImage[Win].cpp to project file
25783         Now uses platform independent EventHandler::handleDrag
25784
25785         * WebCore.vcproj/WebCore.vcproj:
25786
25787         * bridge/win/FrameWin.cpp:
25788         (WebCore::Frame::dragImageForSelection):
25789           Just wrap the platform specific selectionImage method
25790
25791         * page/win/DragControllerWin.cpp:
25792           Defining constants for drag images -- basically copied the Mac definitions
25793
25794         * page/win/EventHandlerWin.cpp:
25795         (WebCore::EventHandler::createDraggingClipboard):
25796           Basic implementation -- needs to create an IDataObject to be useful
25797           but ClipboardWin is basically unimplemented anyway so not yet a problem
25798
25799         * platform/win/ClipboardWin.cpp:
25800         (WebCore::ClipboardWin::createDragImage):
25801         (WebCore::ClipboardWin::declareAndWriteDragImage):
25802         (WebCore::ClipboardWin::writeURL):
25803         (WebCore::ClipboardWin::writeRange):
25804         (WebCore::ClipboardWin::hasData):
25805           Stubs
25806
25807         * platform/win/ClipboardWin.h:
25808           Updated interface
25809
25810         * platform/win/DragImageWin.cpp: Added.
25811         (WebCore::dragImageSize):
25812         (WebCore::deleteDragImage):
25813         (WebCore::scaleDragImage):
25814         (WebCore::dissolveDragImageToFraction):
25815         (WebCore::createDragImageFromImage):
25816         (WebCore::createDragImageIconForCachedImage):
25817           Stubs
25818
25819 2007-02-17  Adam Roben  <aroben@apple.com>
25820
25821         * WebCore.vcproj/WebCore.vcproj: Removed bogus single-file
25822         configuration for MimeTypeRegistryWin.cpp.
25823
25824 2007-02-17  David Hyatt  <hyatt@apple.com>
25825
25826         Part of the OpenSource fix to make sure the fill color starts off as transparent.  Make sure our CG context
25827         has its state properly in sync with the CGContext.
25828
25829         Reviewed by aroben
25830
25831         * platform/win/GraphicsContextWin.cpp:
25832         (WebCore::GraphicsContext::GraphicsContext):
25833
25834 2007-02-17  Adam Roben  <aroben@apple.com>
25835
25836         Build fix.
25837
25838         * platform/win/CursorWin.cpp:
25839         (WebCore::notAllowedCursor):
25840
25841 2007-02-17  Dave Hyatt <hyatt@apple.com>
25842
25843         Change how resizers are invalidated to fix Radar bug #4976772.
25844         
25845         Reviewed by olliej
25846
25847         * platform/win/GraphicsContextWin.cpp:
25848         (WebCore::GraphicsContext::GraphicsContext):
25849         * platform/win/ScrollViewWin.cpp:
25850         (WebCore::ScrollView::suppressScrollbars):
25851         (WebCore::ScrollView::paint):
25852         (WebCore::ScrollView::adjustOverlappingScrollbarCount):
25853         * platform/win/WidgetWin.cpp:
25854         (WebCore::Widget::invalidateRect):
25855
25856 2007-02-16  Dave Hyatt <hyatt@apple.com>
25857
25858         Fix for Radar bug #4981074, RSS Scrollbar overlaps window resizer.  Teach all scrollbars how to
25859         avoid the window resizer.
25860         
25861         Reviewed by aroben
25862
25863         * platform/win/PlatformScrollBar.h:
25864         * platform/win/PlatformScrollBarSafari.cpp:
25865         (WebCore::PlatformScrollbar::PlatformScrollbar):
25866         (WebCore::PlatformScrollbar::setRect):
25867         (WebCore::PlatformScrollbar::setParent):
25868         * platform/win/PlatformScrollBarWin.cpp:
25869         (WebCore::PlatformScrollbar::PlatformScrollbar):
25870         (WebCore::PlatformScrollbar::setRect):
25871         (WebCore::PlatformScrollbar::setParent):
25872         * platform/win/ScrollViewWin.cpp:
25873         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
25874         (WebCore::ScrollView::updateScrollbars):
25875         (WebCore::ScrollView::resizerOverlapsContent):
25876         (WebCore::ScrollView::adjustOverlappingScrollbarCount):
25877         (WebCore::ScrollView::setParent):
25878
25879 2007-02-16  Adam Roben  <aroben@apple.com>
25880
25881         Rubberstamped by Anders.
25882
25883         * platform/win/PlatformScrollBarSafari.cpp:
25884         (WebCore::PlatformScrollbar::paint): Don't draw the arrows when we're disabled.
25885
25886 2007-02-15  Dave Hyatt  <hyatt@apple.com>
25887
25888         Reviewed by Adam.
25889
25890         Fix for 4804657 and 4952931, scroll view gets confused and ends up at a bad scroll
25891         offset.
25892         
25893         * platform/win/ScrollViewWin.cpp:
25894         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
25895         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
25896         (WebCore::ScrollView::updateScrollbars):
25897
25898 2007-02-16  Anders Carlsson  <acarlsson@apple.com>
25899
25900         Reviewed by Adam.
25901
25902         <rdar://problem/4993040>
25903         Crash in plugin code watching yahoo news video
25904         
25905         Zero out the plugin function struct.
25906         
25907         * plugins/win/PluginPackageWin.cpp:
25908         (WebCore::PluginPackageWin::load):
25909
25910 2007-02-16  Anders Carlsson  <acarlsson@apple.com>
25911
25912         Fix build.
25913
25914         Use adoptCF instead of adopt.
25915
25916         * platform/network/cf/ResourceHandleCFNet.cpp:
25917         (WebCore::ResourceHandle::start):
25918         * platform/network/cf/ResourceRequestCFNet.cpp:
25919         (WebCore::ResourceRequest::doUpdatePlatformRequest):
25920
25921 2007-02-16  Adam Roben  <aroben@apple.com>
25922
25923         Reviewed by Oliver.
25924
25925         Implemented square button look.
25926
25927         * rendering/RenderThemeSafari.cpp:
25928         (WebCore::RenderThemeSafari::adjustRepaintRect): Only inflate the rect
25929         if we have a pushbutton.
25930         (WebCore::RenderThemeSafari::paintButton): Ditto.
25931
25932 2007-02-15  Anders Carlsson  <acarlsson@apple.com>
25933
25934         Reviewed by Adam.
25935
25936         Add the default Flash plugin location to the list of plugin paths.
25937
25938         * plugins/win/PluginDatabaseWin.cpp:
25939         (WebCore::addFlashPluginPath):
25940         (WebCore::PluginDatabaseWin::defaultPluginPaths):
25941
25942 2007-02-15  Lou Amadio  <lamadio@apple.com>
25943
25944         Reviewed by Steve.
25945
25946         <rdar://problem/4945799> CGText: should use correct mechanism to set font smoothing style
25947         
25948         * platform/win/FontWin.cpp:
25949         (WebCore::Font::drawGlyphs):
25950
25951 2007-02-15  Anders Carlsson  <acarlsson@apple.com>
25952
25953         Reviewed by Adam.
25954
25955         <rdar://problem/4987529>
25956         Regression: first clicks don't work at flash-based Nokia.com
25957
25958         * plugins/win/PluginViewWin.cpp:
25959         (WebCore::PluginViewWin::handleMouseEvent):
25960         Don't set buttons for mouse move. Also, ignore unknown mouse events.
25961
25962 2007-02-13  Brady Eidson  <beidson@apple.com>
25963
25964         Reviewed by Adam
25965
25966         Switch permanently from CFStreamError to CFErrorRef in ResourceHandleCF
25967
25968         * platform/network/cf/ResourceHandleCFNet.cpp:
25969         (WebCore::didFail):
25970         (WebCore::ResourceHandle::start):
25971
25972 2007-02-13  Adam Roben  <aroben@apple.com>
25973
25974         Build fix.
25975
25976         * WebCore.vcproj/WebCore.vcproj: Remove SVGDOMImplementation.(cpp|h)
25977
25978 2007-02-12  Ada Chan  <adachan@apple.com>
25979
25980         Reviewed by Steve.
25981
25982         <rdar://4952715> Events not being passed from WebCore/WebKit up through IWebForm::doCommandBySelector
25983         Frame::doTextFieldCommandFromEvent()'s signature has changed from taking in a PlatformKeyboardEvent
25984         to KeyboardEvent.  Match that in FrameWin.
25985
25986         * bridge/win/FrameWin.cpp:
25987         (WebCore::FrameWin::doTextFieldCommandFromEvent):
25988         * bridge/win/FrameWin.h:
25989
25990 2007-02-10  Adam Roben  <aroben@apple.com>
25991
25992         Rubberstamped by Oliver.
25993
25994         * rendering/RenderThemeSafari.cpp:
25995         (WebCore::RenderThemeSafari::paintButton): Call controlSizeFromRect
25996         instead of controlSizeForFont to determine the correct control size.
25997
25998 2007-02-09  Alice Liu  <alice.liu@apple.com>
25999
26000         Reviewed by Brady and Adam.
26001
26002         Fixed <rdar://4986194> Typing in content editable body does not automatically scroll to reveal cursor
26003
26004         * platform/win/ScrollViewWin.cpp:
26005         (WebCore::ScrollView::updateScrollbars):
26006         The scrollview's scrolloffset wasn't getting set in cases where there were no scrollbars
26007         You can have a scrolloffset even if you don't have scrollbars
26008
26009 2007-02-09  Darin Adler  <darin@apple.com>
26010
26011         Reviewed by Adele.
26012
26013         - Add TextEvent to the DOM (based on the proposed DOM level 3)
26014           to be used to fix some international input bugs soon.
26015           At this point, we don't send any text events.
26016
26017         - Remove some obsolete files.
26018
26019         * WebCore.vcproj/WebCore.vcproj: Add new files, remove obsolete files.
26020
26021 2007-02-09  Anders Carlsson  <acarlsson@apple.com>
26022
26023         Reviewed by Adam.
26024
26025         * plugins/win/PluginViewWin.cpp:
26026         (WebCore::PluginViewWin::performRequest):
26027         Add the stream to the m_streams hash set.
26028
26029 2007-02-08  Adele Peterson  <adele@apple.com>
26030
26031         Reviewed by Brady.
26032
26033         Fix for http://bugs.webkit.org/show_bug.cgi?id=12599
26034         <rdar://problem/4973507> REGRESSION: When replying in Gmail, the caret disappears when you start to type (12599)
26035
26036         This also fixes a bug where when you called window.focus() on a background window, it did not come to the front.
26037
26038         * bridge/win/FrameWin.h: Removed focusWindow() and unfocusWindow() stubs since there are now implementations in the base class.
26039         * platform/win/TemporaryLinkStubs.cpp:
26040
26041 2007-02-08  Anders Carlsson  <acarlsson@apple.com>
26042
26043         Reviewed by Geoff.
26044
26045         <rdar://problem/4955068>
26046         PluginViewWin leaks memory.
26047         
26048         Make streams ref-counted. Remove streams from the hash set once they're done loading.
26049         
26050         Don't try to paint if painting is disabled.
26051         
26052         * plugins/win/PluginStreamWin.cpp:
26053         (WebCore::PluginStreamWin::PluginStreamWin):
26054         (WebCore::PluginStreamWin::cancelAndDestroyStream):
26055         (WebCore::PluginStreamWin::destroyStream):
26056         * plugins/win/PluginStreamWin.h:
26057         * plugins/win/PluginViewWin.cpp:
26058         (WebCore::PluginViewWin::paint):
26059         (WebCore::PluginViewWin::stop):
26060         (WebCore::PluginViewWin::~PluginViewWin):
26061         (WebCore::PluginViewWin::disconnectStream):
26062         * plugins/win/PluginViewWin.h:
26063
26064 2007-02-08  Adam Roben  <aroben@apple.com>
26065
26066         Reviewed by Adele.
26067
26068         Fix scrollbar painting.
26069
26070         * platform/win/PlatformScrollBarSafari.cpp:
26071         (WebCore::trackRepaintRect): Added.
26072         (WebCore::buttonRepaintRect): Added.
26073         (WebCore::PlatformScrollbar::invalidateTrack): Inavlidate the repaint
26074         rect, not the rect used for hit testing.
26075         (WebCore::PlatformScrollbar::invalidatePart): Ditto.
26076         (WebCore::PlatformScrollbar::paint): Paint the track first, then the
26077         buttons, then the thumb.
26078         (WebCore::PlatformScrollbar::paintButton): Paint in the repaintRect,
26079         not the rect used for hit testing.
26080         (WebCore::PlatformScrollbar::paintTrack): Ditto.
26081
26082 2007-02-08  Anders Carlsson  <acarlsson@apple.com>
26083
26084         Remove unused stub.
26085         
26086         * platform/win/TemporaryLinkStubs.cpp:
26087
26088 2007-02-08  Anders Carlsson  <acarlsson@apple.com>
26089
26090         Reviewed by Brady.
26091
26092         <rdar://problem/4888871>
26093         Need to support synchronous XMLHttpRequest.
26094
26095         * platform/network/cf/ResourceHandleCFNet.cpp:
26096         (WebCore::ResourceHandle::loadResourceSynchronously):
26097
26098 2007-02-07  Adam Roben  <aroben@apple.com>
26099
26100         Reviewed by Maciej.
26101
26102         Fix mini search field painting.
26103
26104         * rendering/RenderThemeSafari.cpp:
26105         (WebCore::RenderThemeSafari::searchFieldSizes): Use the right height.
26106
26107 2007-02-07  Adele Peterson  <adele@apple.com>
26108
26109         Reviewed by Adam.
26110
26111         Draw a single down arrow for styled menu lists.
26112
26113         * rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::paintMenuListButton):
26114         * rendering/RenderThemeWin.cpp: Moved #ifndef USE_SAFARI_THEME to enclose the body of the file.
26115
26116 2007-02-07  Brady Eidson  <beidson@apple.com>
26117
26118         RS = Adam
26119         
26120         Touch these files to force it to recompile...
26121
26122         * platform/win/PlatformScrollBarSafari.cpp:
26123         * rendering/RenderThemeWin.cpp:
26124
26125 2007-02-07  Adam Roben  <aroben@apple.com>
26126
26127         Rubberstamped by Maciej.
26128
26129         Turn on SafariTheme so we can try it out.
26130
26131         * WebCore.vcproj/WebCore.vcproj:
26132
26133 2007-02-07  Adam Roben  <aroben@apple.com>
26134
26135         Reviewed by Adele.
26136
26137         * rendering/RenderThemeSafari.cpp:
26138         (WebCore::RenderThemeSafari::determineState): Pass focus information down to SafariTheme.
26139
26140 2007-02-06  Adam Roben  <aroben@apple.com>
26141
26142         Rubberstamped by Brady.
26143
26144         Updated for log channel rename.
26145
26146         * platform/win/GDIObjectCounter.cpp:
26147         (WebCore::GDIObjectCounter::~GDIObjectCounter):
26148
26149 2007-02-06  Adele Peterson  <adele@apple.com>
26150
26151         Reviewed by Adam.
26152
26153         Added support for radio buttons and checkboxes.
26154
26155         * platform/win/PlatformScrollBarSafari.cpp:
26156         (WebCore::PlatformScrollbar::paintButton):
26157         (WebCore::PlatformScrollbar::paintTrack):
26158         (WebCore::PlatformScrollbar::paintThumb):
26159         * rendering/RenderThemeSafari.cpp:
26160         (WebCore::RenderThemeSafari::determineState):
26161         (WebCore::RenderThemeSafari::platformActiveSelectionForegroundColor):
26162         (WebCore::RenderThemeSafari::adjustRepaintRect):
26163         (WebCore::RenderThemeSafari::paintCheckbox):
26164         (WebCore::RenderThemeSafari::checkboxMargins):
26165         (WebCore::RenderThemeSafari::paintRadio):
26166         (WebCore::RenderThemeSafari::radioMargins):
26167         (WebCore::RenderThemeSafari::adjustMenuListStyle):
26168         (WebCore::RenderThemeSafari::paintSliderThumb):
26169         * rendering/RenderThemeSafari.h:
26170
26171 2007-02-05  Adam Roben  <aroben@apple.com>
26172
26173         Reviewed by Ada and Oliver.
26174
26175         Add a GDIObjectCounter class that informs us of GDI leaks.
26176
26177         * WebCore.vcproj/WebCore.vcproj: Added new files.
26178         * platform/win/GDIObjectCounter.cpp: Added.
26179         (WebCore::GDIObjectCounter::GDIObjectCounter):
26180         (WebCore::GDIObjectCounter::init):
26181         (WebCore::GDIObjectCounter::~GDIObjectCounter):
26182         (WebCore::GDIObjectCounter::currentGDIObjectsInUse):
26183         * platform/win/GDIObjectCounter.h: Added.
26184
26185 2007-02-05  Adam Roben  <aroben@apple.com>
26186
26187         Build fix.
26188
26189         * WebCore.vcproj/WebCore.vcproj: Add new files.
26190
26191 2007-02-04  Oliver Hunt  <oliver@apple.com>
26192
26193         Reviewed by Adam.           
26194
26195         Removed unimplemented EventHandler::handleMouseUp, 
26196         as a platform independent version is available now.
26197
26198         * page/win/EventHandlerWin.cpp:
26199         (WebCore::EventHandler::eventActivatedView): 
26200           Now we use this method, it needs to be implemented
26201
26202 2007-02-02  Steve Falkenburg  <sfalken@apple.com>
26203
26204         Fix build.
26205
26206         * WebCore.vcproj/WebCore.vcproj:
26207
26208 2007-02-02  Steve Falkenburg  <sfalken@apple.com>
26209
26210         * platform/network/cf/FormDataStreamCFNet.cpp:
26211
26212 2007-02-02  Adam Roben  <aroben@apple.com>
26213
26214         Turn on Lucida Grande.
26215
26216         * rendering/RenderThemeSafari.cpp:
26217         (WebCore::RenderThemeSafari::systemFont):
26218             Use Lucida Grande.
26219         (WebCore::RenderThemeSafari::setFontFromControlSize):
26220             Ditto.
26221         (WebCore::RenderThemeSafari::controlSizeForSystemFont):
26222             Implemented using font sizes from NSFont.m.
26223         (WebCore::RenderThemeSafari::adjustRepaintRect):
26224             Uncommented.
26225         (WebCore::RenderThemeSafari::minimumMenuListSize):
26226             Ditto.
26227
26228 2007-02-02  Adam Roben  <aroben@apple.com>
26229
26230         Reviewed by Maciej.
26231
26232         Implemented menulist drawing.
26233
26234         * rendering/RenderThemeSafari.cpp:
26235         (WebCore::controlSizeFromRect):
26236             Moved to top of file.
26237         (WebCore::RenderThemeSafari::adjustRepaintRect):
26238             Uncommented menulist case.
26239         (WebCore::RenderThemeSafari::popupButtonMargins):
26240             Added controlSize parameter, made margins match AppKit artwork.
26241         (WebCore::RenderThemeSafari::paintMenuList):
26242             Implemented.
26243         * rendering/RenderThemeSafari.h:
26244             Updated decalartion.
26245
26246 2007-02-01  Anders Carlsson  <acarlsson@apple.com>
26247
26248         Reviewed by Brady.
26249
26250         * platform/network/cf/ResourceHandleCFNet.cpp:
26251         (WebCore::willSendRequest):
26252         Make sure to always retain the request we return. (In practice, we were already doing this since
26253         client can never be null).
26254         
26255         (WebCore::didReceiveResponse):
26256         Remove client null check.
26257
26258 2007-02-01  Steve Falkenburg  <sfalken@apple.com>
26259
26260         Production build fix
26261
26262         * WebCore.vcproj/WebCore.vcproj:
26263
26264 2007-01-31  Oliver Hunt  <oliver@apple.com>
26265
26266         Reviewed by Adam.
26267
26268         Updating event handler logic to make use of methods migrated from 
26269         WebKit to WebCore
26270
26271         * page/win/EventHandlerWin.cpp:
26272         (WebCore::EventHandler::handleDrag):   
26273           Updating handleDrag to use methods that we've migrated to WebCore
26274         * platform/win/PlatformMouseEventWin.cpp:
26275         (WebCore::messageToEventType):                        
26276         (WebCore::PlatformMouseEvent::PlatformMouseEvent):   
26277           provide the type of mouse event
26278           
26279
26280 2007-01-31  Steve Falkenburg  <sfalken@apple.com>
26281
26282         Reviewed by Ada.
26283
26284         Fix BString bugs.
26285
26286         * platform/win/BString.cpp:
26287         (WebCore::BString::BString): Call SysAllocString instead of SysAllocStringLen
26288         (WebCore::BString::operator=): Add proper null checks
26289         (WebCore::operator ==): Add proper null checks
26290
26291 2007-01-30  Anders Carlsson  <acarlsson@apple.com>
26292
26293         Build fix.
26294         
26295         * platform/win/TemporaryLinkStubs.cpp:
26296         (ResourceHandle::setDefersLoading):
26297
26298 2007-01-30  Steve Falkenburg  <sfalken@apple.com>
26299
26300         Production build fix
26301
26302         * WebCore.vcproj/WebCore.vcproj:
26303
26304 2007-01-29  Adam Roben  <aroben@apple.com>
26305
26306         Build fix.
26307
26308         * platform/win/TemporaryLinkStubs.cpp: Removed old stub.
26309
26310 2007-01-29  Brady Eidson  <beidson@apple.com>
26311
26312         Reviewed by Oliver
26313
26314         All the downloads plumbing for if you have ToT CFNetwork + my changes
26315         (or after they submit with my changes)
26316
26317         * platform/network/cf/FormDataStreamCFNet.cpp: Reword the #ifdef for CFNetwork ToT for clarity
26318         * platform/network/cf/ResourceHandleCFNet.cpp:
26319         (WebCore::didFail): Use a RetainPtr .get()
26320         (WebCore::ResourceHandleInternal::~ResourceHandleInternal): Only cancel the connection if we hold the last ref
26321         (WebCore::ResourceHandle::start): Use a RetainPtr - adopt and .get()
26322         (WebCore::ResourceHandle::cancel): Use a RetainPtr .get()
26323         (WebCore::ResourceHandle::receivedCredential):Use a RetainPtr .get()
26324         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Use a RetainPtr .get()
26325         (WebCore::ResourceHandle::connection): Use a RetainPtr .get()
26326         * platform/network/cf/ResourceRequestCFNet.cpp:
26327         (WebCore::ResourceRequest::doUpdatePlatformRequest): Prevent a crash if a null
26328
26329 2007-01-29  Brady Eidson  <beidson@apple.com>
26330
26331         Reviewed by Geoff
26332
26333         Change LOG_NOTIMPL() to use a LOG() and its logging channel instead of LOG_ERROR()
26334         so you can actually turn it off.
26335         
26336         * platform/win/NotImplemented.h:
26337
26338 2007-01-29  Maciej Stachowiak  <mjs@apple.com>
26339         
26340         - fix build
26341
26342         * platform/win/TemporaryLinkStubs.cpp:
26343
26344 2007-01-29  Steve Falkenburg  <sfalken@apple.com>
26345
26346         Fix build break from RootObject ownership change.
26347
26348         * bridge/win/FrameWin.cpp:
26349         (WebCore::FrameWin::createRootObject): Added
26350         (WebCore::FrameWin::cleanupPluginObjects): change destroy to invalidate
26351         (WebCore::FrameWin::bindingRootObject): change new RootObject to RootObject::create
26352         * bridge/win/FrameWin.h: 
26353         * plugins/win/PluginViewWin.cpp:
26354         (WebCore::PluginViewWin::bindingInstance): change new RootObject to FrameWin::createRootObject.
26355
26356 2007-01-26  Adam Roben  <aroben@apple.com>
26357
26358         Reviewed by Oliver.
26359
26360         Fix frequent failed assertions when painting scroll bars.
26361
26362         * platform/win/PlatformScrollBarSafari.cpp:
26363         (WebCore::PlatformScrollbar::paint): Check that painting is enabled
26364         before painting.
26365
26366 2007-01-26  Oliver Hunt <oliver@apple.com>
26367
26368         Build fix.
26369
26370         * WebCore.vcproj/WebCore.vcproj:
26371
26372 2007-01-26  Beth Dakin  <bdakin@apple.com>
26373
26374         Reviewed by Darin.
26375
26376         Due to <rdar://problem/4956565> REGRESSION: After scrolling frame, 
26377         hovering over link in this frame doesn't change cursor to pointing 
26378         hand
26379
26380         lastEventIsMouseUp() is a Mac-only issue. This patch makes it Mac-
26381         only code, so we can remove the temporary link stub for it.
26382
26383         * platform/win/TemporaryLinkStubs.cpp:
26384
26385 2007-01-26  Oliver Hunt <oliver@apple.com>
26386
26387         Build fix -- adding SVGInlineTextBox.{cpp,h} to project
26388
26389         * WebCore.vcproj/WebCore.vcproj:
26390
26391 2007-01-25  Oliver Hunt  <oliver@apple.com>
26392
26393         Reviewed by Maciej.
26394
26395         Fixed DragDataWin behaviour so that it will provide plain text
26396         for a file dropped on the window.
26397
26398         * platform/win/DragDataWin.cpp:
26399         (WebCore::DragData::asPlainText):
26400
26401 2007-01-25  Brady Eidson  <beidson@apple.com>
26402
26403         Reviewed by Adam
26404
26405         -Setup for new CFNetwork API for those using their ToT and their next submission
26406         -Setup for new CoreFoundation API for those using their ToT and their next submission
26407
26408         * platform/network/cf/FormDataStreamCFNet.cpp:
26409         (WebCore::setHTTPBody): New callback format - will need to define USE_NEW_CFSTREAM_CALLBACKS 
26410           to switch to the new API
26411         * platform/network/cf/ResourceHandleCFNet.cpp:
26412         (WebCore::didFail):  This automagically works :)
26413
26414 2007-01-25  Adele Peterson  <adele@apple.com>
26415
26416         Reviewed by Adam. 
26417
26418         Added support for slider.
26419
26420         * rendering/RenderThemeSafari.cpp:
26421         (WebCore::RenderThemeSafari::RenderThemeSafari):
26422         (WebCore::RenderThemeSafari::inflateRect):
26423         (WebCore::RenderThemeSafari::paintSliderTrack):
26424         (WebCore::RenderThemeSafari::paintSliderThumb):
26425         * rendering/RenderThemeSafari.h:
26426
26427 2007-01-25  Steve Falkenburg  <sfalken@apple.com>
26428
26429         Production build fix
26430
26431         * WebCore.vcproj/WebCore.vcproj:
26432
26433 2007-01-24  Adele Peterson  <adele@apple.com>
26434
26435         Reviewed by Brady and Oliver.
26436
26437         Moved keyEvent method from FrameWin to EventHandler and updated
26438         call sites.  Now this method is shared with the mac.
26439
26440         * bridge/win/FrameWin.cpp:
26441         * bridge/win/FrameWin.h:
26442
26443 2007-01-24  Steve Falkenburg  <sfalken@apple.com>
26444
26445         Reviewed by Lou.
26446
26447         * bridge/win/FrameWin.cpp:
26448         (WebCore::regExpForLabels): Ported from FrameMac.mm
26449         (WebCore::FrameWin::searchForLabelsAboveCell): Ported from FrameMac.mm
26450         (WebCore::FrameWin::searchForLabelsBeforeElement): Ported from FrameMac.mm
26451         (WebCore::FrameWin::matchLabelsAgainstElement): Ported from FrameMac.mm
26452         * bridge/win/FrameWin.h:
26453
26454 2007-01-24  Adam Roben  <aroben@apple.com>
26455
26456         Reviewed by Adele.
26457
26458         Added PlatformScrollBarSafari for Aqua scroll bars.
26459
26460         * WebCore.vcproj/WebCore.vcproj: Added new file to project.
26461         * platform/win/PlatformScrollBarSafari.cpp: Added. Copied from PlatformScrollBarWin.cpp.
26462         (WebCore::PlatformScrollbar::PlatformScrollbar):
26463         (WebCore::PlatformScrollbar::paint):
26464         (WebCore::PlatformScrollbar::backButtonRect):
26465         (WebCore::PlatformScrollbar::forwardButtonRect):
26466         (WebCore::PlatformScrollbar::trackRect):
26467         (WebCore::PlatformScrollbar::thumbLength):
26468         (WebCore::PlatformScrollbar::paintButton):
26469         (WebCore::PlatformScrollbar::paintTrack):
26470         (WebCore::PlatformScrollbar::paintThumb):
26471         (WebCore::PlatformScrollbar::paintGripper):
26472         (WebCore::PlatformScrollbar::gripperRect):
26473         (WebCore::PlatformScrollbar::themeChanged):
26474         * platform/win/PlatformScrollBarWin.cpp: Added #ifndef USE_SAFARI_THEME.
26475         * rendering/RenderThemeSafari.cpp: Updated for SafariTheme.h changes.
26476         (WebCore::RenderThemeSafari::RenderThemeSafari):
26477
26478 2007-01-23  Brady Eidson  <beidson@apple.com>
26479
26480         Reviewed by Steve
26481
26482         Initial hookup of Download support
26483
26484         * platform/network/cf/ResourceErrorCF.cpp:
26485         (WebCore::ResourceError::ResourceError):
26486         (WebCore::ResourceError::operator CFStreamError):
26487         
26488         * platform/network/cf/ResourceHandleCFNet.cpp:
26489         (WebCore::ResourceHandle::loaderRunLoop): Accessor so downloads can run on the same 
26490           runloop as connections
26491         (WebCore::ResourceHandle::start):
26492         (WebCore::ResourceHandle::connection):
26493
26494         * platform/win/BString.cpp:
26495         (WebCore::BString::BString): Ability to create BString from a CFStringRef
26496         * platform/win/BString.h:
26497
26498 2007-01-23  Anders Carlsson  <acarlsson@apple.com>
26499
26500         Reviewed by Darin.
26501
26502         <rdar://problem/4919754>
26503         Boomer freezes after attempt to play video.
26504         
26505         * plugins/win/PluginStreamWin.cpp:
26506         Change WebReasonNone to -2, some plugins return -1 to indicate error.
26507         
26508         (WebCore::PluginStreamWin::stop):
26509         Just don't clear the loader, stop loading as well.
26510         
26511         (WebCore::PluginStreamWin::startStream):
26512         Destroy the stream if newstream returns an error.
26513         
26514         * plugins/win/PluginViewWin.cpp:
26515         (WebCore::PluginViewWin::performRequest):
26516         If the call to toString throws an exception, clear it.
26517
26518 2007-01-23  Steve Falkenburg  <sfalken@apple.com>
26519
26520         Fix release build.
26521
26522         * WebCore.vcproj/WebCore.vcproj:
26523
26524 2007-01-23  Adele Peterson  <adele@apple.com>
26525
26526         Reviewed by Adam. 
26527
26528         Added call to paintThemeTextArea.
26529
26530         * rendering/RenderThemeSafari.cpp:
26531         (WebCore::RenderThemeSafari::paintTextArea):
26532
26533 2007-01-23  Anders Carlsson  <acarlsson@apple.com>
26534
26535         Build fixes.
26536         
26537         * WebCore.vcproj/WebCore.vcproj:
26538         Copy plugin and JS headers.
26539         
26540         * loader/win/FrameLoaderWin.cpp:
26541         Move functions to WebKitWin.
26542
26543 2007-01-23  Oliver Hunt  <oliver@apple.com>
26544
26545         Reviewed by Adam.
26546
26547         * WebCore.vcproj/WebCore.vcproj:
26548         * page/win/DragControllerWin.cpp: Added.
26549         (WebCore::DragController::dragOperation):
26550         (WebCore::DragController::isCopyKeyDown):
26551           Platform specific implementation
26552
26553         * platform/win/ClipboardWin.cpp:
26554         (WebCore::ClipboardWin::ClipboardWin):
26555         (WebCore::ClipboardWin::isForDragging):
26556         * platform/win/ClipboardWin.h:
26557           Migrated common Clipboard functionality from ClipboardMac/Win -> Clipboard
26558
26559         * platform/win/DragDataWin.cpp: Added.
26560         (WebCore::DragData::createClipboard):
26561         (WebCore::urlWFormat):
26562         (WebCore::urlFormat):
26563         (WebCore::filenameWFormat):
26564         (WebCore::filenameFormat):
26565         (WebCore::plainTextFormat):
26566         (WebCore::plainTextWFormat):
26567         (WebCore::DragData::containsURL):
26568         (WebCore::extractURL):
26569         (WebCore::DragData::asURL):
26570         (WebCore::DragData::containsPlainText):
26571         (WebCore::DragData::asPlainText):
26572         (WebCore::texthtmlFormat):
26573         (WebCore::htmlFormat):
26574         (WebCore::containsHTML):
26575         (WebCore::fragmentFromHTML):
26576         (WebCore::containsFilenames):
26577         (WebCore::fragmentFromFilenames):
26578         (WebCore::DragData::containsColor):
26579         (WebCore::DragData::canSmartReplace):
26580         (WebCore::DragData::containsCompatibleContent):
26581         (WebCore::DragData::asFragment):
26582         (WebCore::DragData::asColor):
26583           Implementation of DragData accesor methods, and helper functions
26584
26585         * platform/win/EditorWin.cpp:
26586         (WebCore::Editor::newGeneralClipboard):
26587           Updated for new ClipboardWin constructor
26588
26589         * platform/win/PasteboardWin.cpp:
26590         (WebCore::fragmentFromCF_HTML):
26591         (WebCore::Pasteboard::documentFragment):
26592           Pulled out CF_HTML parsing to a seperate function so logic 
26593           can be shared with DragDataWin
26594
26595 2007-01-22  Adam Roben  <aroben@apple.com>
26596
26597         Reviewed by Adele.
26598
26599         Implemented search field painting, and did some cleanup.
26600
26601         * rendering/RenderThemeSafari.cpp:
26602         (WebCore::RenderThemeSafari::RenderThemeSafari): Updated for changes to SafariTheme.
26603         (WebCore::RenderThemeSafari::paintButton): Ditto.
26604         (WebCore::RenderThemeSafari::paintTextField): Ditto.
26605         (WebCore::controlSizeFromRect): New helper function.
26606         (WebCore::RenderThemeSafari::paintSearchField): Implemented.
26607         (WebCore::RenderThemeSafari::paintSearchFieldCancelButton): Ditto.
26608         (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration): Ditto.
26609         (WebCore::RenderThemeSafari::paintSearchFieldResultsButton): Ditto.
26610         (WebCore::RenderThemeSafari::setSearchFieldSize): Uncommented setSizeFromFont call.
26611         (WebCore::RenderThemeSafari::adjustSearchFieldCancelButtonStyle): Ditto.
26612         (WebCore::RenderThemeSafari::adjustSearchFieldDecorationStyle): Ditto.
26613         (WebCore::RenderThemeSafari::adjustSearchFieldResultsDecorationStyle): Ditto.
26614         (WebCore::RenderThemeSafari::adjustSearchFieldResultsButtonStyle): Ditto.
26615
26616 2007-01-22  Anders Carlsson  <acarlsson@apple.com>
26617
26618         Reviewed by Adam.
26619         
26620         <rdar://problem/4771115>
26621         Windows Media Player plugin crashes.
26622
26623         * WebCore.vcproj/WebCore.vcproj:
26624         Formatting changes.
26625         
26626         * plugins/win/PluginDatabaseWin.cpp:
26627         (WebCore::PluginDatabaseWin::defaultPluginPaths):
26628         Add Windows Media Player path.
26629         
26630         * plugins/win/PluginStreamWin.cpp:
26631         (WebCore::PluginStreamWin::sendJavaScriptStream):
26632         * plugins/win/PluginStreamWin.h:
26633         New function which sends a JavaScript result stream and handles any errors that the
26634         plug-in returns.
26635         
26636         * plugins/win/PluginViewWin.cpp:
26637         (WebCore::PluginViewWin::setFrameGeometry):
26638         Always call NPP_SetWindow, some plugins (like WMP) relies on it.
26639         
26640         (WebCore::PluginViewWin::performRequest):
26641         If a plug-in requests a javascript: URL that doesn't evaluate to a string, call toString on it.
26642         The Windows Media Player plugin calls javascript:document.location and expects to get the location back.
26643
26644 2007-01-23  Darin Adler  <darin@apple.com>
26645
26646         - internal part of fix for http://bugs.webkit.org/show_bug.cgi?id=12273
26647           REGRESSION: File input value invisible after removing and re-appending
26648
26649         * WebCore.vcproj/WebCore.vcproj: Added FileChooser.cpp.
26650
26651         * platform/win/FileChooserWin.cpp: Removed many now-unneeded functions.
26652         (WebCore::FileChooser::FileChooser): Updated for changed parameters and members.
26653         (WebCore::FileChooser::openFileChooser): Changed to take document parmaeter and
26654         find the FrameView from that instead of the upload control.
26655         (WebCore::FileChooser::basenameForWidth): Added ignored Font parameter.
26656
26657 2007-01-22  Anders Carlsson  <acarlsson@apple.com>
26658
26659         Reviewed by Adam.
26660
26661         <rdar://problem/4903230>
26662         Boomer crashes at Flickr website when "View as slideshow" is clicked.
26663         
26664         * plugins/win/PluginViewWin.cpp:
26665         (WebCore::PluginViewWin::bindingInstance):
26666         Return null if m_plugin is null (which it can be if the plugin failed to load).
26667
26668 2007-01-22  Anders Carlsson  <acarlsson@apple.com>
26669
26670         Build fix.
26671         
26672         * WebCore.vcproj/WebCore.vcproj:
26673
26674 2007-01-22  Adam Roben  <aroben@apple.com>
26675
26676         Moved ifdefs to match Darin's suggestion.
26677
26678         * rendering/RenderThemeSafari.cpp:
26679         * rendering/RenderThemeSafari.h:
26680
26681 2007-01-22  Adam Roben  <aroben@apple.com>
26682
26683         Build fix.
26684
26685         * rendering/RenderThemeSafari.cpp:
26686         (WebCore::theme):
26687         * rendering/RenderThemeSafari.h:
26688
26689 2007-01-21  Adam Roben  <aroben@apple.com>
26690
26691         Reviewed by Maciej.
26692
26693         Implemented drawing button states and control sizes.
26694
26695         * WebCore.vcproj/WebCore.vcproj:
26696         * rendering/RenderThemeSafari.cpp:
26697         (WebCore::RenderThemeSafari::determineState): Added.
26698         (WebCore::RenderThemeSafari::systemFont): Implemented rest of font sizes.
26699         (WebCore::RenderThemeSafari::paintButton): Updated for SafariTheme changes.
26700         (WebCore::RenderThemeSafari::paintTextField): Ditto.
26701         * rendering/RenderThemeSafari.h: Added declaration.
26702
26703 2007-01-21  Adam Roben  <aroben@apple.com>
26704
26705         Reviewed by Maciej.
26706
26707         * rendering/RenderThemeSafari.cpp: Updated declarations of SafariTheme calls.
26708         (WebCore::systemFontSizeForControlSize): Added.
26709         (WebCore::RenderThemeSafari::systemFont): Made it work in the small-control case.
26710         (WebCore::RenderThemeSafari::adjustRepaintRect): Made it work for buttons and checkboxes.
26711         (WebCore::RenderThemeSafari::setFontFromControlSize): Fixed to work on Windows.
26712         (WebCore::RenderThemeSafari::checkboxMargins): Added controlSize parameter.
26713         (WebCore::RenderThemeSafari::buttonMargins): Ditto.
26714         (WebCore::RenderThemeSafari::paintButton): Fixed FIXME, added save/restore calls.
26715         (WebCore::RenderThemeSafari::paintTextField): Added save/restore calls.
26716         * rendering/RenderThemeSafari.h: Updated declarations.
26717
26718 2007-01-21  Adele Peterson  <adele@apple.com>
26719
26720         Reviewed by Adam. 
26721
26722         Adding RenderThemeSafari.
26723  
26724         * WebCore.vcproj/WebCore.vcproj:
26725         * rendering/RenderThemeSafari.cpp: Added.
26726         (WebCore::):
26727         (WebCore::theme):
26728         (WebCore::RenderThemeSafari::RenderThemeSafari):
26729         (WebCore::RenderThemeSafari::~RenderThemeSafari):
26730         (WebCore::RenderThemeSafari::platformActiveSelectionBackgroundColor):
26731         (WebCore::RenderThemeSafari::platformInactiveSelectionBackgroundColor):
26732         (WebCore::RenderThemeSafari::activeListBoxSelectionBackgroundColor):
26733         (WebCore::RenderThemeSafari::systemFont):
26734         (WebCore::RenderThemeSafari::isControlStyled):
26735         (WebCore::RenderThemeSafari::adjustRepaintRect):
26736         (WebCore::RenderThemeSafari::inflateRect):
26737         (WebCore::RenderThemeSafari::baselinePosition):
26738         (WebCore::RenderThemeSafari::controlSupportsTints):
26739         (WebCore::RenderThemeSafari::controlSizeForFont):
26740         (WebCore::RenderThemeSafari::sizeForFont):
26741         (WebCore::RenderThemeSafari::sizeForSystemFont):
26742         (WebCore::RenderThemeSafari::setSizeFromFont):
26743         (WebCore::RenderThemeSafari::setFontFromControlSize):
26744         (WebCore::RenderThemeSafari::controlSizeForSystemFont):
26745         (WebCore::RenderThemeSafari::paintCheckbox):
26746         (WebCore::RenderThemeSafari::checkboxSizes):
26747         (WebCore::RenderThemeSafari::checkboxMargins):
26748         (WebCore::RenderThemeSafari::setCheckboxSize):
26749         (WebCore::RenderThemeSafari::paintRadio):
26750         (WebCore::RenderThemeSafari::radioSizes):
26751         (WebCore::RenderThemeSafari::radioMargins):
26752         (WebCore::RenderThemeSafari::setRadioSize):
26753         (WebCore::RenderThemeSafari::setButtonPaddingFromControlSize):
26754         (WebCore::RenderThemeSafari::adjustButtonStyle):
26755         (WebCore::RenderThemeSafari::buttonSizes):
26756         (WebCore::RenderThemeSafari::buttonMargins):
26757         (WebCore::RenderThemeSafari::setButtonSize):
26758         (WebCore::RenderThemeSafari::paintButton):
26759         (WebCore::RenderThemeSafari::paintTextField):
26760         (WebCore::RenderThemeSafari::adjustTextFieldStyle):
26761         (WebCore::RenderThemeSafari::paintTextArea):
26762         (WebCore::RenderThemeSafari::adjustTextAreaStyle):
26763         (WebCore::RenderThemeSafari::popupButtonMargins):
26764         (WebCore::RenderThemeSafari::popupButtonSizes):
26765         (WebCore::RenderThemeSafari::popupButtonPadding):
26766         (WebCore::RenderThemeSafari::setPopupPaddingFromControlSize):
26767         (WebCore::RenderThemeSafari::paintMenuList):
26768         (WebCore::TopGradientInterpolate):
26769         (WebCore::BottomGradientInterpolate):
26770         (WebCore::MainGradientInterpolate):
26771         (WebCore::TrackGradientInterpolate):
26772         (WebCore::RenderThemeSafari::paintMenuListButtonGradients):
26773         (WebCore::RenderThemeSafari::paintMenuListButton):
26774         (WebCore::RenderThemeSafari::adjustMenuListStyle):
26775         (WebCore::RenderThemeSafari::adjustMenuListButtonStyle):
26776         (WebCore::RenderThemeSafari::menuListSizes):
26777         (WebCore::RenderThemeSafari::minimumMenuListSize):
26778         (WebCore::RenderThemeSafari::paintSliderTrack):
26779         (WebCore::RenderThemeSafari::paintSliderThumb):
26780         (WebCore::RenderThemeSafari::adjustSliderThumbSize):
26781         (WebCore::RenderThemeSafari::paintSearchField):
26782         (WebCore::RenderThemeSafari::searchFieldSizes):
26783         (WebCore::RenderThemeSafari::setSearchFieldSize):
26784         (WebCore::RenderThemeSafari::adjustSearchFieldStyle):
26785         (WebCore::RenderThemeSafari::paintSearchFieldCancelButton):
26786         (WebCore::RenderThemeSafari::cancelButtonSizes):
26787         (WebCore::RenderThemeSafari::adjustSearchFieldCancelButtonStyle):
26788         (WebCore::RenderThemeSafari::resultsButtonSizes):
26789         (WebCore::RenderThemeSafari::adjustSearchFieldDecorationStyle):
26790         (WebCore::RenderThemeSafari::paintSearchFieldDecoration):
26791         (WebCore::RenderThemeSafari::adjustSearchFieldResultsDecorationStyle):
26792         (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration):
26793         (WebCore::RenderThemeSafari::adjustSearchFieldResultsButtonStyle):
26794         (WebCore::RenderThemeSafari::paintSearchFieldResultsButton):
26795         * rendering/RenderThemeSafari.h: Added.
26796         (WebCore::RenderThemeSafari::supportsControlTints):
26797         * rendering/RenderThemeWin.cpp:
26798
26799 2007-01-21  Adam Roben  <aroben@apple.com>
26800
26801         Build fix.
26802
26803         * WebCore.vcproj/WebCore.vcproj: Added JSDocumentCustom.cpp.
26804
26805 2007-01-19  Ada Chan  <adachan@apple.com>
26806
26807         Build fix.
26808
26809         * WebCore.vcproj/WebCore.vcproj:
26810
26811 2007-01-19  Anders Carlsson  <acarlsson@apple.com>
26812
26813         Build fix.
26814
26815         * WebCore.vcproj/WebCore.vcproj:
26816         Add SVG files.
26817
26818 2007-01-19  Anders Carlsson  <acarlsson@apple.com>
26819
26820         Build fix.
26821         
26822         * platform/win/ContextMenuItemWin.cpp:
26823         (WebCore::ContextMenuItem::enabled):
26824         Use correct class name.
26825
26826 2007-01-18  Anders Carlsson  <acarlsson@apple.com>
26827
26828         Reviewed by Adam.
26829
26830         Remove some unused FrameWin functions.
26831         
26832         * bridge/win/FrameWin.cpp:
26833         (WebCore::FrameWin::~FrameWin):
26834         * bridge/win/FrameWin.h:
26835         * plugins/win/PluginViewWin.cpp:
26836         (WebCore::PluginViewWin::status):
26837
26838 2007-01-18  Adam Roben  <aroben@apple.com>
26839
26840         Build fix.
26841
26842         * platform/win/ContextMenuItemWin.cpp:
26843         (WebCore::ContextMenu::enabled): Implemented.
26844
26845 2007-01-18  Anders Carlsson  <acarlsson@apple.com>
26846
26847         Build fix.
26848         
26849         * WebCore.vcproj/WebCore.vcproj:
26850         * platform/win/GlyphMapWin.cpp: Removed.
26851         * platform/win/GlyphPageTreeNodeWin.cpp: Added.
26852         (WebCore::GlyphPage::fill):
26853
26854 2007-01-18  Anders Carlsson  <acarlsson@apple.com>
26855
26856         Reviewed by Brady.
26857
26858         Fix ownership handling of CFRequestRef. A ResourceRequest holds on to its CFRequestRef 
26859         and doesn't ref it when returning it. Also, implement willCacheResponse.
26860         
26861         * platform/network/cf/ResourceHandleCFNet.cpp:
26862         (WebCore::willSendRequest):
26863         (WebCore::willCacheResponse):
26864         (WebCore::ResourceHandle::start):
26865         * platform/network/cf/ResourceRequestCFNet.cpp:
26866         (WebCore::ResourceRequest::doUpdatePlatformRequest):
26867
26868 2007-01-17  Brady Eidson  <beidson@apple.com>
26869
26870         Reviewed by Maciej
26871
26872         Final hookup of HTTP Auth plumbing - have the ResourceHandle actually call into
26873         CFNetwork for HTTP Auth.
26874         
26875         Also, deal with svn:eol-style issues on another batch of files that didn't have it set
26876
26877         * platform/network/cf/ResourceHandleCFNet.cpp:
26878         (WebCore::ResourceHandle::receivedCredential):  Call into CFNetwork
26879         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):  Ditto
26880         (WebCore::ResourceHandle::receivedCancellation):  Copy Mac behavior by calling cancel on the handle
26881
26882 2007-01-16  Brady Eidson  <beidson@apple.com>
26883
26884         Reviewed by Anders
26885
26886         Futher improvements/bug fixes to BString
26887
26888         * platform/win/BString.cpp:
26889         (WebCore::BString::BString):
26890         (WebCore::BString::operator=):
26891         * platform/win/BString.h:
26892
26893 2007-01-16  Brady Eidson  <beidson@apple.com>
26894
26895         Reviewed by Ada, Adam, and Anders oh my!
26896
26897         Add handle ==/!= operators to BString
26898
26899         * platform/win/BString.cpp:
26900         (WebCore::operator ==):
26901         (WebCore::operator !=):
26902         * platform/win/BString.h:
26903
26904 2007-01-16  Beth Dakin  <bdakin@apple.com>
26905
26906         Reviewed by Adam.
26907
26908         Fix for <rdar://problem/4874565> Draw context menus using CG
26909
26910         * platform/win/ContextMenuItemWin.cpp:
26911         (WebCore::ContextMenuItem::type): Re-worked to be more forgiving.
26912         * platform/win/ContextMenuWin.cpp: No need for show() and hide()
26913         since WebKit takes care of this now.
26914
26915 2007-01-15  Brady Eidson  <beidson@apple.com>
26916
26917         Reviewed by Adam
26918
26919         Hook up AuthenticationChallenge to CF network.  
26920         Call up through appropriate client methods through to WebFrame (FrameLoaderClient) at
26921         which point my upcoming implementation for the IWebURL<auth> classes will be used
26922
26923         * WebCore.vcproj/WebCore.vcproj:
26924         * platform/network/cf/AuthenticationCF.cpp: Added.
26925         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
26926         (WebCore::createCF):
26927         (WebCore::core):
26928         * platform/network/cf/AuthenticationCF.h: Added.
26929         * platform/network/cf/ResourceErrorCF.cpp: Added.
26930         (WebCore::ResourceError::ResourceError):
26931         (WebCore::ResourceError::operator CFStreamError):
26932         * platform/network/cf/ResourceHandleCFNet.cpp:
26933         (WebCore::didReceiveChallenge):
26934         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
26935         (WebCore::ResourceHandle::receivedCredential):
26936         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
26937         (WebCore::ResourceHandle::receivedCancellation):
26938
26939 2007-01-15  Anders Carlsson  <acarlsson@apple.com>
26940
26941         Build fix.
26942         
26943         * WebCore.vcproj/WebCore.vcproj:
26944         Add ProgressTracker.[cpp|h]
26945
26946 2007-01-12  Anders Carlsson  <acarlsson@apple.com>
26947
26948         Reviewed by Darin.
26949
26950         * loader/win/FrameLoaderWin.cpp:
26951         (WebCore::FrameLoader::didChangeTitle):
26952         Copied here from FrameLoaderMac.mm
26953         
26954         * platform/network/cf/ResourceHandleCFNet.cpp:
26955         (WebCore::ResourceHandle::start):
26956         Removed setting referrer and user-agend and added a check for null page.
26957         
26958         (WebCore::ResourceHandle::cancel):
26959         Don't call didFail.
26960         
26961         * platform/win/TemporaryLinkStubs.cpp:
26962         (FrameWin::getAppletInstanceForWidget):
26963         Use LOG_NOIMPL here.
26964
26965 2007-01-11  Anders Carlsson  <acarlsson@apple.com>
26966
26967         * platform/network/cf/ResourceResponseCFNet.cpp:
26968         (WebCore::ResourceResponse::cfURLResponse):
26969         Add getter that I forgot to commit.
26970         
26971 2007-01-11  Brady Eidson  <beidson@apple.com>
26972
26973         Reviewed by NOBODY.
26974
26975         Make it build after my HTTP Auth OpenSource checkin
26976
26977         * WebCore.vcproj/WebCore.vcproj:
26978
26979 2007-01-11  Anders Carlsson  <acarlsson@apple.com>
26980
26981         Build fix.
26982
26983         * WebCore.vcproj/WebCore.vcproj:
26984         * platform/win/TemporaryLinkStubs.cpp:
26985         (WebCore::Editor::advanceToNextMisspelling):
26986
26987 2007-01-10  Steve Falkenburg  <sfalken@apple.com>
26988
26989         Reviewed by Lou.
26990
26991         <rdar://problem/4818840> Crash occurs after selecting Print Preview from under the File menu if no printer is selected
26992         
26993         * bridge/win/FrameWin.cpp:
26994         (WebCore::FrameWin::computePageRects): removed calls to setupRootForPrinting
26995         * bridge/win/FrameWin.h: removed setupRootForPrinting
26996
26997 2007-01-10  Anders Carlsson  <acarlsson@apple.com>
26998
26999         Yet another build fix.
27000         
27001         * platform/win/TemporaryLinkStubs.cpp:
27002         (DocumentLoader::getResponseModifiedHeader):
27003
27004 2007-01-10  Anders Carlsson  <acarlsson@apple.com>
27005
27006         Another build fix.
27007         
27008         * bridge/win/FrameWin.h:
27009         * loader/win/FrameLoaderWin.cpp:
27010
27011 2007-01-10  Anders Carlsson  <acarlsson@apple.com>
27012
27013         Build fix.
27014         
27015         * platform/win/TemporaryLinkStubs.cpp:
27016         (ResourceHandle::setDefersLoading):
27017
27018 2007-01-09  Steve Falkenburg  <sfalken@apple.com>
27019
27020         Production build fix
27021
27022         * WebCore.vcproj/WebCore.vcproj:
27023
27024 2007-01-09  Anders Carlsson  <acarlsson@apple.com>
27025
27026         Build fix.
27027         
27028         * platform/win/TextBoundariesWin.cpp:
27029
27030 2007-01-08  Anders Carlsson  <acarlsson@apple.com>
27031
27032         Remove FrameLoader functions that have been implemented.
27033         
27034         * platform/win/TemporaryLinkStubs.cpp:
27035
27036 2007-01-08  Anders Carlsson  <acarlsson@apple.com>
27037
27038         Build fix.
27039         
27040         * WebCore.vcproj/WebCore.vcproj:
27041
27042 2007-01-05  Anders Carlsson  <acarlsson@apple.com>
27043
27044         Reviewed by Adam.
27045
27046         Update temporary link stubs.
27047         
27048         * platform/win/TemporaryLinkStubs.cpp:
27049         (FrameLoader::referrer):
27050         (FrameLoader::overrideMediaType):
27051         (FrameLoader::checkLoadCompleteForThisFrame):
27052         (DocumentLoader::getResponseRefreshAndModifiedHeaders):
27053         (MainResourceLoader::create):
27054         (ResourceLoader::cancel):
27055         (ResourceLoader::load):
27056         (ResourceLoader::releaseResources):
27057         (ResourceLoader::addData):
27058
27059 2007-01-05  Anders Carlsson  <acarlsson@apple.com>
27060
27061         Fix build.
27062         
27063         * platform/win/TemporaryLinkStubs.cpp:
27064         (ResourceLoader::cancel):
27065         (FrameLoader::didChangeTitle):
27066         (DocumentLoader::unreachableURL):
27067
27068 2007-01-05  Anders Carlsson  <acarlsson@apple.com>
27069
27070         Fix the build.
27071         
27072         * WebCore.vcproj/WebCore.vcproj:
27073         * platform/network/cf/ResourceHandleCFNet.cpp:
27074         (WebCore::ResourceHandle::bufferedData):
27075         (WebCore::ResourceHandle::supportsBufferedData):
27076         * platform/win/TemporaryLinkStubs.cpp:
27077         (WebCore::CheckCacheObjectStatus):
27078
27079 2007-01-04  David Hyatt  <hyatt@apple.com>
27080
27081         Always use 1.0 as the synthetic bold offset for now.  Fixes bug 9534.
27082
27083         Reviewed by olliej
27084
27085         * platform/win/FontDataWin.cpp:
27086         (WebCore::FontData::platformInit):
27087
27088 2007-01-03  Darin Adler  <darin@apple.com>
27089
27090         Reviewed by Adele.
27091
27092         - removed some obsolete source files
27093
27094         * WebCore.vcproj/WebCore.vcproj: Removed obsolete files.
27095
27096 2007-01-03  Beth Dakin  <bdakin@apple.com>
27097
27098         Reviewed by John.
27099
27100         Add stubs for all of the localized context menu item titles. The 
27101         stubs just return English Strings until we have a localization 
27102         solution in WebKit.
27103
27104         * platform/win/TemporaryLinkStubs.cpp:
27105         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
27106         (WebCore::contextMenuItemTagDownloadLinkToDisk):
27107         (WebCore::contextMenuItemTagCopyLinkToClipboard):
27108         (WebCore::contextMenuItemTagOpenImageInNewWindow):
27109         (WebCore::contextMenuItemTagDownloadImageToDisk):
27110         (WebCore::contextMenuItemTagCopyImageToClipboard):
27111         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
27112         (WebCore::contextMenuItemTagCopy):
27113         (WebCore::contextMenuItemTagGoBack):
27114         (WebCore::contextMenuItemTagGoForward):
27115         (WebCore::contextMenuItemTagStop):
27116         (WebCore::contextMenuItemTagReload):
27117         (WebCore::contextMenuItemTagCut):
27118         (WebCore::contextMenuItemTagPaste):
27119         (WebCore::contextMenuItemTagNoGuessesFound):
27120         (WebCore::contextMenuItemTagIgnoreSpelling):
27121         (WebCore::contextMenuItemTagLearnSpelling):
27122         (WebCore::contextMenuItemTagSearchWeb):
27123         (WebCore::contextMenuItemTagLookUpInDictionary):
27124         (WebCore::contextMenuItemTagOpenLink):
27125         (WebCore::contextMenuItemTagIgnoreGrammar):
27126         (WebCore::contextMenuItemTagSpellingMenu):
27127         (WebCore::contextMenuItemTagShowSpellingPanel):
27128         (WebCore::contextMenuItemTagCheckSpelling):
27129         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
27130         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
27131         (WebCore::contextMenuItemTagFontMenu):
27132         (WebCore::contextMenuItemTagBold):
27133         (WebCore::contextMenuItemTagItalic):
27134         (WebCore::contextMenuItemTagUnderline):
27135         (WebCore::contextMenuItemTagOutline):
27136         (WebCore::contextMenuItemTagWritingDirectionMenu):
27137         (WebCore::contextMenuItemTagDefaultDirection):
27138         (WebCore::contextMenuItemTagLeftToRight):
27139         (WebCore::contextMenuItemTagRightToLeft):
27140
27141 2007-01-03  Anders Carlsson  <acarlsson@apple.com>
27142
27143         Reviewed by Geoff.
27144
27145         <rdar://problem/4857027>
27146         ragnarok online misrenders (due to lack of support for windowless plugins)
27147
27148         * plugins/win/PluginViewWin.cpp:
27149         (WebCore::PluginViewWin::updateWindow):
27150         Rename from updateHwnd since this now handles updating the clip rect for windowless plugins.
27151         
27152         (WebCore::PluginViewWin::paintMissingPluginIcon):
27153         New function which paints the missing plugin icon.
27154         
27155         (WebCore::PluginViewWin::paint):
27156         Do windowless painting here.
27157         
27158         (WebCore::PluginViewWin::handleKeyboardEvent):
27159         (WebCore::PluginViewWin::handleMouseEvent):
27160         (WebCore::PluginViewWin::handleEvent):
27161         New functions for handling mouse and keyboard events, translating them and handing them to the plugin.
27162         
27163         (WebCore::PluginViewWin::setNPWindowRect):
27164         Set correct window rect for windowless plugins.
27165         
27166         (WebCore::PluginViewWin::getValue):
27167         Add variable for containing HWND.
27168         
27169         (WebCore::PluginViewWin::setValue):
27170         Add windowless and transparent variables.
27171         
27172         (WebCore::PluginViewWin::invalidateRect):
27173         (WebCore::PluginViewWin::invalidateRegion):
27174         (WebCore::PluginViewWin::forceRedraw):
27175         Implement these.
27176         
27177         (WebCore::PluginViewWin::determineQuirks):
27178         Set quirks now that we support windowless flash.
27179         
27180         (WebCore::PluginViewWin::PluginViewWin):
27181         Only create the window if the plugin isn't windowless.
27182         
27183         * plugins/win/PluginViewWin.h:
27184         New declarations.
27185         
27186         * plugins/win/npapi.cpp:
27187         (NPN_InvalidateRect):
27188         (NPN_InvalidateRegion):
27189         (NPN_ForceRedraw):
27190         Implement these and forward them to the plugin view.
27191
27192 2007-01-02  Brady Eidson  <beidson@apple.com>
27193
27194         Reviewed by Lou
27195
27196         Temporary Link Stub fix for Back/Forward cache landing in OpenSource
27197
27198         * WebCore.vcproj/WebCore.vcproj:
27199         * platform/win/TemporaryLinkStubs.cpp:
27200         (DocumentLoader::request):
27201         (DocumentLoader::originalRequest):
27202         (DocumentLoader::title):
27203         (DocumentLoader::unreachableURL):
27204         (DocumentLoader::urlForHistory):
27205         (DocumentLoader::setCommitted):
27206         (DocumentLoader::prepareForLoadStart):
27207         (DocumentLoader::replaceRequestURLForAnchorScroll):
27208         (DocumentLoader::isClientRedirect):
27209         (DocumentLoader::isLoading):
27210         (DocumentLoader::getResponseRefreshAndModifiedHeaders):
27211         (FrameLoader::applyUserAgent):
27212         (FrameLoader::dataURLBaseFromRequest):
27213         (FrameLoader::load):
27214         (FrameLoader::opened):
27215         (ResourceHandle::willLoadFromCache):
27216         (WebCore::userIdleTime):
27217         (PageCache::close):
27218
27219 2007-01-02  Anders Carlsson  <acarlsson@apple.com>
27220
27221         Build fix.
27222         
27223         * WebCore.vcproj/WebCore.vcproj:
27224
27225 2006-12-29  Geoffrey Garen  <ggaren@apple.com>
27226         
27227         Build fix.
27228
27229         * bridge/win/FrameWin.cpp:
27230         (WebCore::FrameWin::bindingRootObject):
27231         * plugins/win/PluginViewWin.cpp:
27232         (WebCore::PluginViewWin::bindingInstance):
27233
27234 2006-12-27  Oliver Hunt <oliver@apple.com>
27235
27236         Build fix
27237
27238         * WebCore.vcproj/WebCore.vcproj:
27239         * platform/graphics/win/ImageWin.cpp:
27240         (WebCore::BitmapImage::initPlatformData):
27241         (WebCore::BitmapImage::invalidatePlatformData):
27242         (WebCore::Image::loadPlatformResource):
27243         (WebCore::BitmapImage::getHBITMAP):
27244
27245 2006-12-25  Geoffrey Garen  <ggaren@apple.com>
27246
27247         Fixed build. Tsk, tsk, Oliver.
27248
27249         * WebCore.vcproj/WebCore.vcproj:
27250
27251 2006-12-25  Geoffrey Garen  <ggaren@apple.com>
27252
27253         Reviewed by Oliver Hunt.
27254
27255         Removed WebCoreSettings, cleaned up WebCore::Settings.
27256
27257         * WebCore.vcproj/WebCore.vcproj: Added Settings.cpp to the project.
27258
27259         * bridge/win/FrameWin.cpp: Updated to use new preferences names.
27260         (WebCore::FrameWin::bindingRootObject):
27261         (WebCore::FrameWin::windowScriptNPObject):
27262
27263         * loader/win/FrameLoaderWin.cpp: ditto.
27264         (WebCore::FrameLoader::partClearedInBegin):
27265
27266         * plugins/win/PluginViewWin.cpp: ditto.
27267         (WebCore::PluginViewWin::load):
27268
27269 2006-12-22  Ada Chan  <adachan@apple.com>
27270
27271         Reviewed by Anders.
27272
27273         Build fix.
27274
27275         * WebCore.vcproj/WebCore.vcproj:
27276
27277 2006-12-22  Anders Carlsson  <acarlsson@apple.com>
27278
27279         Build fix.
27280         
27281         * WebCore.vcproj/WebCore.vcproj:
27282
27283 2006-12-22  John Sullivan  <sullivan@apple.com>
27284
27285         Reviewed by Kevin Decker
27286
27287         Renamed stub method name to match change in WebCore
27288
27289         * platform/win/TemporaryLinkStubs.cpp:
27290         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
27291         renamed from markMisspellingsInAdjacentWords
27292
27293 2006-12-20  Adam Roben  <aroben@apple.com>
27294
27295         Reviewed by Hyatt.
27296
27297         Fix: <rdar://4769797> REGRESSION: No focus rings
27298
27299         * platform/win/GraphicsContextWin.cpp:
27300         (WebCore::GraphicsContext::drawFocusRing):
27301         * platform/win/TemporaryLinkStubs.cpp:
27302         (WebCore::focusRingColor): Changed to match the Aqua focus ring color.
27303
27304 2006-12-20  David Hyatt  <hyatt@apple.com>
27305
27306         Remove line width setting in font rendering now that GraphicsContext sets
27307         it for us.
27308
27309         * platform/win/FontWin.cpp:
27310         (WebCore::Font::drawGlyphs):
27311
27312 2006-12-20  David Hyatt  <hyatt@apple.com>
27313
27314         Add support for stroking and filling of text to CSS.  Boomer side.  Same code as in FontMac.
27315
27316         * platform/win/FontWin.cpp:
27317         (WebCore::Font::drawGlyphs):
27318
27319 2006-12-19  Steve Falkenburg  <sfalken@apple.com>
27320
27321         Remove non-existent header from vcproj
27322
27323         * WebCore.vcproj/WebCore.vcproj:
27324
27325 2006-12-19  Brady Eidson  <beidson@apple.com>
27326
27327         Reviewed by Ada
27328
27329         -Changed CFNetwork debugging output to use a logging channel
27330         -Added the url to each logging message - the debugging output was quite crippled without this
27331         
27332         * platform/network/cf/ResourceHandleCFNet.cpp:
27333         (WebCore::willSendRequest):
27334         (WebCore::didReceiveResponse):
27335         (WebCore::didReceiveData):
27336         (WebCore::didFinishLoading):
27337         (WebCore::didFail):
27338         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
27339         (WebCore::ResourceHandle::~ResourceHandle):
27340         (WebCore::ResourceHandle::start):
27341
27342 2006-12-19  Anders Carlsson  <acarlsson@apple.com>
27343
27344         Reviewed by Geoff.
27345
27346         <rdar://problem/4876963>
27347         Crash launching Boomer after all options deselected in pref->security
27348         
27349         * loader/win/FrameLoaderWin.cpp:
27350         (WebCore::FrameLoader::partClearedInBegin):
27351         Add check for JavaScript.
27352
27353 2006-12-19  Anders Carlsson  <acarlsson@apple.com>
27354
27355         Reviewed by Kevin Decker.
27356
27357         Add (currently disabled) plugin quirks. This is necessary in order to get the Flash plugin
27358         to request windowless plugins (which it only will do if it think it's running on a Mozilla browser).
27359         
27360         * plugins/win/PluginViewWin.cpp:
27361         (WebCore::PluginViewWin::userAgent):
27362         (WebCore::PluginViewWin::determineQuirks):
27363         (WebCore::PluginViewWin::PluginViewWin):
27364         * plugins/win/PluginViewWin.h:
27365         (WebCore::):
27366         * plugins/win/npapi.cpp:
27367         (NPN_UserAgent):
27368
27369 2006-12-19  Brady Eidson  <beidson@apple.com>
27370
27371         Change by Lou, reviewed by Brady
27372
27373         Scrolling caused Desktop flickering as well as other strange
27374         flickering in the case of a missing plug-in
27375
27376         * plugins/win/PluginViewWin.cpp:
27377         (WebCore::PluginViewWin::updateHwnd):
27378
27379 2006-12-19  Anders Carlsson  <acarlsson@apple.com>
27380
27381         * WebCore.vcproj/WebCore.vcproj:
27382         Update for SVG changes.
27383
27384 2006-12-18  Ada Chan  <adachan@apple.com>
27385
27386         Reviewed by Adam.
27387
27388         Removed scheduleClose() from FrameWin.  The implementation has
27389         been moved to Frame.cpp.                
27390
27391         * bridge/win/FrameWin.h:
27392         * platform/win/TemporaryLinkStubs.cpp:
27393         (FrameWin::mimeTypeForFileName):
27394
27395 2006-12-18  Anders Carlsson  <acarlsson@apple.com>
27396
27397         Reviewed by Adam and Oliver.
27398
27399         <rdar://problem/4856014> Target weekly ad doesn't work.
27400         
27401         Store the real base URL and use it for requests.
27402         
27403         * plugins/win/PluginViewWin.cpp:
27404         (WebCore::PluginViewWin::getURLNotify):
27405         (WebCore::PluginViewWin::getURL):
27406         (WebCore::PluginViewWin::handlePost):
27407         (WebCore::PluginViewWin::PluginViewWin):
27408         * plugins/win/PluginViewWin.h:
27409
27410 2006-12-19  Darin Adler  <darin@apple.com>
27411
27412         * platform/win/FontWin.cpp: (WebCore::Font::drawGlyphs): Fix build,
27413         wrong variable name.
27414
27415 2006-12-18  David Hyatt  <hyatt@apple.com>
27416
27417         Boomer side of my changes for filling/stroking of text.
27418
27419         Reviewed by olliej
27420
27421         * platform/win/FontWin.cpp:
27422         (WebCore::Font::drawGlyphs):
27423
27424 2006-12-18  Alice Liu  <alice.liu@apple.com>
27425
27426         Reviewed by Adam.
27427
27428         <rdar://problem/4853363> hook up various deletion-related functions in WebView
27429
27430         * WebCore.vcproj/WebCore.vcproj:
27431         Added file EditorDeleteAction.h
27432
27433 2006-12-18  Kevin McCullough  <KMcCullough@apple.com>
27434
27435         Reviewed by Oliver.
27436
27437         - Remove CG header includes in OpenSource files
27438
27439         * config.h:
27440         * platform/graphics/cg/GraphicsContextPlatformPrivate.h:
27441
27442 2006-12-18  Adam Roben  <aroben@apple.com>
27443
27444         Build fixes.
27445
27446         * WebCore.vcproj/WebCore.vcproj: Removed deleted files.
27447         * platform/win/CursorWin.cpp: Added missing method.
27448         (WebCore::noneCursor):
27449
27450 2006-12-16  Beth Dakin  <bdakin@apple.com>
27451
27452         Reviewed by Adam (and partially Geoff).
27453
27454         Boomer side of making WebCore Context Menus support state and
27455         enabled/disabled, and re-architecture of ContextMenuItem.
27456
27457         * platform/win/ContextMenuItemWin.cpp: ContextMenuItem class holds
27458         the platformDescription as the sole member variable. Changes to
27459         account for this.
27460         (WebCore::ContextMenuItem::ContextMenuItem): Same.
27461         (WebCore::ContextMenuItem::releasePlatformDescription): Same.
27462         (WebCore::ContextMenuItem::type): Same
27463         (WebCore::ContextMenuItem::platformSubMenu): Same.
27464         (WebCore::ContextMenuItem::setType): Same.
27465         (WebCore::ContextMenuItem::setTitle): Same.
27466         (WebCore::ContextMenuItem::setSubMenu): Same.
27467         (WebCore::ContextMenuItem::setChecked): Same.
27468         (WebCore::ContextMenuItem::setEnabled): Same.
27469         * platform/win/ContextMenuWin.cpp:
27470         (WebCore::ContextMenu::insertItem): Takes ownership of the item by
27471         calling releasePlatformDescription()
27472         (WebCore::ContextMenu::appendItem): Same.
27473         (WebCore::ContextMenu::itemWithAction): This is the new at(). Since
27474         we are no longer using notifybypos, we instead need a way to find a
27475         menu item by its action. (Its ID.)
27476         (WebCore::ContextMenu::setPlatformDescription): No longer use
27477         notifybypos.
27478
27479 2006-12-16  Adele Peterson  <adele@apple.com>
27480
27481         RS by Adam.
27482
27483         Removed TextField, RenderLineEdit classes.
27484
27485         * WebCore.vcproj/WebCore.vcproj:
27486         * platform/win/TemporaryLinkStubs.cpp:
27487
27488 2006-12-16  Adele Peterson  <adele@apple.com>
27489
27490         Reviewed by Adam.
27491
27492         Added PopupMenu and theme code for:
27493         <rdar://problem/4463829> Switch to use new search field implementation for <input type="search"> 
27494
27495         * WebCore.vcproj/WebCore.vcproj:
27496         * platform/graphics/win/IconWin.cpp:
27497         (WebCore::Icon::Icon):
27498         * platform/win/PopupMenuWin.cpp:
27499         (WebCore::PopupMenu::setFocusedIndex):
27500         (WebCore::PopupWndProc):
27501         * platform/win/SearchPopupMenuWin.cpp: Added.
27502         (WebCore::SearchPopupMenu::SearchPopupMenu):
27503         (WebCore::autosaveKey):
27504         (WebCore::SearchPopupMenu::saveRecentSearches):
27505         (WebCore::SearchPopupMenu::loadRecentSearches):
27506         * rendering/RenderThemeWin.cpp:
27507         (WebCore::RenderThemeWin::paintSearchField):
27508         (WebCore::RenderThemeWin::adjustSearchFieldStyle):
27509         (WebCore::RenderThemeWin::paintSearchFieldCancelButton):
27510         (WebCore::RenderThemeWin::adjustSearchFieldCancelButtonStyle):
27511         (WebCore::RenderThemeWin::adjustSearchFieldDecorationStyle):
27512         (WebCore::RenderThemeWin::paintSearchFieldDecoration):
27513         (WebCore::RenderThemeWin::adjustSearchFieldResultsDecorationStyle):
27514         (WebCore::RenderThemeWin::paintSearchFieldResultsDecoration):
27515         (WebCore::RenderThemeWin::adjustSearchFieldResultsButtonStyle):
27516         (WebCore::RenderThemeWin::paintSearchFieldResultsButton):
27517         * rendering/RenderThemeWin.h:
27518
27519 2006-12-15  Anders Carlson  <acarlsson@apple.com>
27520
27521         * platform/win/TemporaryLinkStubs.cpp:
27522         Remove DocumentLoader::isStopped because it's now in DocumentLoader.cpp.
27523         
27524 2006-12-15  Geoffrey Garen  <ggaren@apple.com>
27525
27526         I'm in ur prjct, fxng ur build.
27527         
27528         * WebCore.vcproj/WebCore.vcproj:
27529         * platform/win/TemporaryLinkStubs.cpp:
27530         (ResourceHandle::loadResourceSynchronously):
27531
27532 2006-12-14  Geoffrey Garen  <ggaren@apple.com>
27533
27534         Reviewed by Brady Eidson.
27535         
27536         Fixed <rdar://problem/4760682> Crash clicking nav links at left loading 
27537         www.tivofaq.com
27538         
27539         The underlying problem is that we can't resize framesets. I've filed that
27540         as <rdar://problem/4885227>.
27541         
27542         I've fixed the proximate problem: we were interpreting a click as a frameset
27543         resize, because the subframe event handler was returning false. A Subframe 
27544         event handler needs to return true to indicate that the subframe has handled 
27545         the event. This is how the Mac works, despite the plethora of convoluted code 
27546         suggesting otherwise.
27547         
27548         We should really remove these meaningless return values and unify Mac and 
27549         Windows event handling, but that's beyond the scope of this patch.
27550
27551         * page/win/EventHandlerWin.cpp:
27552         (WebCore::EventHandler::passMousePressEventToSubframe):
27553         (WebCore::EventHandler::passMouseMoveEventToSubframe):
27554         (WebCore::EventHandler::passMouseReleaseEventToSubframe):
27555         (WebCore::EventHandler::passWheelEventToSubframe):
27556
27557 2006-12-14  Adele Peterson  <adele@apple.com>
27558
27559         Reviewed by Adam. 
27560
27561         Update PopupMenu code to use new PopupMenuClient instead of RenderMenuList.
27562
27563         * platform/win/PopupMenuWin.cpp:
27564         (WebCore::PopupMenu::PopupMenu):
27565         (WebCore::PopupMenu::show):
27566         (WebCore::PopupMenu::calculatePositionAndSize):
27567         (WebCore::PopupMenu::setFocusedIndex):
27568         (WebCore::PopupMenu::focusedIndex):
27569         (WebCore::PopupMenu::focusFirst):
27570         (WebCore::PopupMenu::focusLast):
27571         (WebCore::PopupMenu::down):
27572         (WebCore::PopupMenu::up):
27573         (WebCore::PopupMenu::paint):
27574         (WebCore::PopupWndProc):
27575
27576 2006-12-14  Steve Falkenburg  <sfalken@apple.com>
27577
27578         Build fix.
27579
27580         * platform/win/TemporaryLinkStubs.cpp:
27581         (SubresourceLoader::didCancel):
27582
27583 2006-12-14  Steve Falkenburg  <sfalken@apple.com>
27584
27585         Production build fix. Added JSSVGPODTypeWrapper.h to the vcproj.
27586
27587         * WebCore.vcproj/WebCore.vcproj:
27588
27589 2006-12-14  Adam Roben  <aroben@apple.com>
27590
27591         Reviewed by Adele.
27592
27593         Build fix.
27594
27595         * platform/win/TemporaryLinkStubs.cpp:
27596         (DocumentLoader::URL):
27597         (ResourceHandle::loadResourceSynchronously):
27598
27599 2006-12-14  Anders Carlsson  <acarlsson@apple.com>
27600
27601         Fix the build.
27602         
27603         * platform/win/TemporaryLinkStubs.cpp:
27604         (FrameLoader::loadResourceSynchronously):
27605         (ResourceHandle::loadResourceSynchronously):
27606
27607 2006-12-13  Anders Carlsson  <acarlsson@apple.com>
27608
27609         Fix the build.
27610         
27611         * platform/win/TemporaryLinkStubs.cpp:
27612         (PolicyCheck::call):
27613         (DocumentLoader::URL):
27614
27615 2006-12-13  Geoffrey Garen  <ggaren@apple.com>
27616
27617         Reviewed by Darin Adler, Dave Hyatt.
27618         
27619         Fixed <rdar://problem/4840261> Frame::setIsActive not called when frames 
27620         are focused/unfocused
27621         
27622         Minor problems remain with focus in frames, but basic editing / cursor
27623         focus works.
27624         
27625         I moved tracking of the focused frame from the Widget hiearchy to Page's
27626         FocusController. Not all widgets are frames, so this change cleaned up a 
27627         dubious static cast. Also, the DOM needs to track frame focus because (1) 
27628         it needs to respond to focus changes and (2) you can focus an element / 
27629         frame even before it has a renderer / widget.
27630
27631         * page/win/EventHandlerWin.cpp:
27632         (WebCore::EventHandler::focusDocumentView): Implemented. This function is
27633         poorly named, based on the Mac design.
27634         (WebCore::PluginViewWin::hasFocus): Added for completeness. It's not really
27635         used on Windows, though.
27636
27637 2006-12-13  Steve Falkenburg  <sfalken@apple.com>
27638
27639         Reviewed by Adam.
27640
27641         Add missing ForwardingHeaders to project
27642
27643         * WebCore.vcproj/WebCore.make: Fixed line endings
27644         * WebCore.vcproj/WebCore.vcproj: Added missing headers
27645
27646 2006-12-12  Steve Falkenburg  <sfalken@apple.com>
27647
27648         Reviewed by Adam.
27649
27650         Production build fix
27651
27652         * WebCore.vcproj/build-generated-files.sh:
27653
27654 2006-12-12  Alice Liu  <alice.liu@apple.com>
27655
27656         Reviewed by Geoff.
27657
27658         Fixed <rdar://problem/4853199> extra whitespace at beginning and end of pasted fragment into contenteditable region
27659         
27660         * WebCore.vcproj/WebCore.vcproj:
27661         * platform/win/PasteboardWin.cpp:
27662         (WebCore::Pasteboard::documentFragment):
27663
27664 2006-12-12  Adam Roben  <aroben@apple.com>
27665
27666         Reviewed by Anders.
27667
27668         Fixed use of min/max macros (again).
27669
27670         * WebCore.vcproj/WebCore.vcproj: Make sure we include ForwardingHeaders
27671         before any include directories so that we get the newest versions
27672         of our headers.
27673         * config.h: Move the fake #defines of min/max out of #if
27674         PLATFORM(WIN_OS) since this is useful in general.
27675         * platform/win/BString.cpp: Include windows.h
27676         * platform/win/BString.h: Forward-declare BSTR so we don't have to
27677         include windows.h.
27678
27679 2006-12-12  Geoffrey Garen  <ggaren@apple.com>
27680
27681         Reviewed by Adam Roben, Dave Hyatt, Darin Adler.
27682
27683         Added FocusController to project.
27684
27685         * WebCore.vcproj/WebCore.vcproj:
27686
27687 2006-12-12  Anders Carlsson  <acarlsson@apple.com>
27688
27689         * loader/win/ResourceLoaderWin.cpp:
27690         * platform/network/cf/ResourceHandleCFNet.cpp:
27691         (WebCore::ResourceHandle::start):
27692         * platform/win/TemporaryLinkStubs.cpp:
27693         (ResourceHandle::loadsBlocked):
27694         Update for changes to ResourceHandle.
27695
27696 2006-12-13  Darin Adler  <darin@apple.com>
27697
27698         - fix build
27699
27700         * WebCore.vcproj/WebCore.vcproj: Added missing files, removed obsolete files.
27701
27702 2006-12-11  Adam Roben  <aroben@apple.com>
27703
27704         Build fix.
27705
27706         * WebCore.vcproj/WebCore.vcproj: Added missing files to project.
27707
27708 2006-12-11  Steve Falkenburg  <sfalken@apple.com>
27709
27710         Production build fix.
27711         Remove platform/UChar.h from our vcproj, since it doesn't exist anymore.
27712
27713         * WebCore.vcproj/WebCore.vcproj:
27714
27715 2006-12-11  Alice Liu  <alice.liu@apple.com>
27716
27717         Reviewed by ggaren.
27718
27719         Fixed <rdar://problem/4854901> "Copy Link" and "Copy Image Address" context menu items don't work
27720         And some cleanup of PlatformMouseEvent(Win)
27721
27722         * page/win/EventHandlerWin.cpp:
27723         (WebCore::EventHandler::handleDrag):
27724         Removed unnecessary check for mouse event type
27725         
27726         * platform/win/PasteboardWin.cpp:
27727         
27728         (WebCore::PasteboardOwnerWndProc):
27729         (WebCore::createGlobalData):
27730         Added more overloaded implemtations and renamed from createHandle
27731         
27732         (WebCore::markupToCF_HTML):
27733         Changed to handle less-specific input and renamed from createCF_HTML
27734         
27735         (WebCore::urlToMarkup):
27736         (WebCore::Pasteboard::writeURL):
27737         Added these. 
27738         
27739         (WebCore::replaceNBSP):
27740         Moved out of Pasteboard class
27741         
27742         (WebCore::Pasteboard::clear):
27743         Renamed from clearTypes.
27744         
27745         (WebCore::Pasteboard::writeSelection):
27746         (WebCore::Pasteboard::canSmartReplace):
27747         (WebCore::Pasteboard::plainText):
27748         (WebCore::Pasteboard::documentFragment):
27749         Trivial cleanup of these.
27750         
27751         * platform/win/PlatformMouseEventWin.cpp:
27752         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
27753         Removed anything having to do with unnecessary m_type
27754
27755 2006-12-11  Darin Adler  <darin@apple.com>
27756
27757         Reviewed by Brady.
27758
27759         - http://bugs.webkit.org/show_bug.cgi?id=11794
27760           fix lifetime problems affecting Frame's ownerElement pointer
27761
27762         * WebCore.vcproj/WebCore.vcproj: Update for added files.
27763
27764         * bridge/win/FrameWin.h:
27765         * bridge/win/FrameWin.cpp: (WebCore::FrameWin::FrameWin):
27766         * loader/win/FrameLoaderWin.cpp: (WebCore::FrameLoader::createFrame):
27767         Changed to use HTMLFrameOwnerElement.
27768
27769         * platform/win/TemporaryLinkStubs.cpp: (FrameLoader::load):
27770         Changed to use HTMLFormElement.
27771
27772 2006-12-11  Beth Dakin  <bdakin@apple.com>
27773
27774         Reviewed by Adam.
27775
27776         Build fix from Nick Zimmerman's last check-in.
27777
27778         * WebCore.vcproj/WebCore.vcproj:
27779
27780 2006-12-09  Adam Roben  <aroben@apple.com>
27781
27782         Reviewed by Hyatt.
27783
27784         Use num-cpus to determine the number of jobs make should run
27785         concurrently.
27786
27787         * WebCore.vcproj/build-generated-files.sh:
27788
27789 2006-12-09  Adam Roben  <aroben@apple.com>
27790
27791         Reviewed by Hyatt.
27792
27793         Fix: <rdar://problem/4860184> Can't select context menu items with the
27794         right mouse button
27795
27796         * platform/win/ContextMenuWin.cpp:
27797         (WebCore::ContextMenu::show):
27798
27799 2006-12-09  Adam Roben  <aroben@apple.com>
27800
27801         Reviewed by Darin.
27802
27803         Build fixes after OpenSource r18098 and r18106.
27804
27805         * WebCore.vcproj/WebCore.vcproj:
27806             - Changed include paths to reflect the now-flattened JSCore headers.
27807             - Added missing files to project.
27808             - Changed post-build step to also copy ForwardingHeaders.
27809             - Removed unnecessary definition of WTF_PLATFORM_CF from project
27810               file (it's already defined in config.h).
27811         * platform/win/TextBoundariesWin.cpp: Fixed up includes and renamed
27812         function calls.
27813         (WebCore::findNextWordFromIndex):
27814         (WebCore::findWordBoundary):
27815
27816 2006-12-08  Adam Roben  <aroben@apple.com>
27817
27818         Rubberstamped by Anders.
27819
27820         * platform/win/FontPlatformDataWin.cpp:
27821         (WebCore::FontPlatformData::FontPlatformData): Fix use of min().
27822
27823 2006-12-08  Adam Roben  <aroben@apple.com>
27824
27825         Build fix.
27826
27827         * WebCore.vcproj/WebCore.vcproj:
27828
27829 2006-12-07  Beth Dakin  <bdakin@apple.com>
27830
27831         Reviewed by Maciej.
27832
27833         Add a new member variable to ContectMenuItem to hold on to the sub-
27834         menu. The new member variable is an OwnPtr<ContextMenu>. Not doing 
27835         this breaks sub-menus on Boomer since the menu items are no longer 
27836         static.
27837
27838         * platform/win/ContextMenuItemWin.cpp:
27839         (WebCore::ContextMenuItem::ContextMenuItem):
27840         (WebCore::ContextMenuItem::platformSubMenu):
27841         (WebCore::ContextMenuItem::setSubMenu):
27842
27843 2006-12-07  Kevin McCullough  <kmccullough@apple.com>
27844
27845         Reviewed by.
27846
27847         Fixed previous comment
27848
27849         * ChangeLog:
27850
27851 2006-12-07  Kevin McCullough  <kmccullough@apple.com>
27852
27853         Reviewed by Geof.
27854
27855         - keyDown events must be followed by keyPressed events and before keyUp events.
27856
27857         * bridge/win/FrameWin.cpp:
27858         (WebCore::FrameWin::keyEvent):
27859
27860 2006-12-07  Beth Dakin  <bdakin@apple.com>
27861
27862         Reviewed by Brady.
27863
27864         New link stub for load() function used by 
27865         ContextMenuItemTagOpenLink action.
27866
27867         * platform/win/TemporaryLinkStubs.cpp:
27868         (FrameLoader::load):
27869
27870 2006-12-07  Ada Chan  <adachan@apple.com>
27871
27872         Reviewed by Steve and Anders.
27873
27874         <rdar://4866288> Crash on boomer quit
27875         - don't close the themes on termination, since uxtheme should do that anyway.
27876
27877         * rendering/RenderThemeWin.cpp:
27878         (WebCore::RenderThemeWin::~RenderThemeWin):
27879
27880 2006-12-06  Ada Chan  <adachan@apple.com>
27881
27882         Reviewed by Maciej.
27883
27884         Fixed a couple of things while investigating <rdar://4866288> (note this doesn't fix the crash yet):
27885         - we forgot to initialize m_sliderTheme
27886         - we did the wrong null check when getting the slider theme.
27887
27888         * rendering/RenderThemeWin.cpp:
27889         (WebCore::RenderThemeWin::RenderThemeWin):
27890         (WebCore::RenderThemeWin::sliderTheme):
27891
27892 2006-12-06  Anders Carlsson  <acarlsson@apple.com>
27893
27894         Fix the build.
27895         
27896         * platform/network/cf/ResourceHandleCFNet.cpp:
27897         (WebCore::didReceiveData):
27898         (WebCore::didFail):
27899         (WebCore::ResourceHandle::start):
27900         (WebCore::ResourceHandle::cancel):
27901
27902 2006-12-06  Anders Carlsson  <acarlsson@apple.com>
27903
27904         Reviewed by Adam.
27905
27906         Modify PluginStreamWin to use a SubresourceLoader instead of a ResourceHandle.
27907
27908         * plugins/win/PluginStreamWin.cpp:
27909         (WebCore::PluginStreamWin::PluginStreamWin):
27910         (WebCore::PluginStreamWin::~PluginStreamWin):
27911         (WebCore::PluginStreamWin::start):
27912         (WebCore::PluginStreamWin::stop):
27913         (WebCore::PluginStreamWin::deliverData):
27914         (WebCore::PluginStreamWin::didReceiveResponse):
27915         (WebCore::PluginStreamWin::didReceiveData):
27916         (WebCore::PluginStreamWin::didFail):
27917         (WebCore::PluginStreamWin::didFinishLoading):
27918         * plugins/win/PluginStreamWin.h:
27919         * plugins/win/PluginViewWin.cpp:
27920         (WebCore::PluginViewWin::performRequest):
27921         (WebCore::PluginViewWin::load):
27922
27923 2006-12-06  Anders Carlsson  <acarlsson@apple.com>
27924
27925         Build fixes.
27926         
27927         * WebCore.vcproj/WebCore.vcproj:
27928         * platform/win/TemporaryLinkStubs.cpp:
27929         (FrameWin::scheduleClose):
27930
27931 2006-12-05  John Sullivan  <sullivan@apple.com>
27932
27933         Try to keep the windows build happy with Frame -> Editor changes...
27934
27935         * bridge/win/FrameWin.h:
27936         removed declarations of spelling and grammar functions
27937
27938         * platform/win/TemporaryLinkStubs.cpp:
27939         changed spelling and grammar functions from FrameWin:: to Editor::
27940         (WebCore::Editor::isSelectionMisspelled):
27941         (WebCore::Editor::isSelectionUngrammatical):
27942         (WebCore::Editor::guessesForMisspelledSelection):
27943         (WebCore::Editor::guessesForUngrammaticalSelection):
27944         (WebCore::Editor::markMisspellingsInAdjacentWords):
27945         (WebCore::Editor::advanceToNextMisspelling):
27946
27947 2006-12-05  Anders Carlsson  <acarlsson@apple.com>
27948
27949         Reviewed by Maciej.
27950
27951         Don't delete the internal pointer anymore since it's an OwnPtr now.
27952         
27953         * platform/network/cf/ResourceHandleCFNet.cpp:
27954         (WebCore::ResourceHandle::~ResourceHandle):
27955
27956 2006-12-05  Steve Falkenburg  <sfalken@apple.com>
27957
27958         Fix the build
27959
27960         * platform/win/TemporaryLinkStubs.cpp:
27961
27962 2006-12-05  Steve Falkenburg  <sfalken@apple.com>
27963
27964         Production build fix.
27965         ...and add ImageAnimationObserver.h into its new location.
27966
27967         * WebCore.vcproj/WebCore.vcproj:
27968
27969 2006-12-05  Steve Falkenburg  <sfalken@apple.com>
27970
27971         Production build fix.
27972         Remove ImageAnimationObserver.h from vcproj.
27973
27974         * WebCore.vcproj/WebCore.vcproj:
27975
27976 2006-12-05  John Sullivan  <sullivan@apple.com>
27977
27978         Reviewed by Geoff Garen
27979
27980         Changes to keep up with Frame -> Editor changes in WebCore
27981
27982         * bridge/win/FrameWin.h:
27983         remove ignoreSpelling() and learnSpelling()
27984
27985         * platform/win/TemporaryLinkStubs.cpp:
27986         (WebCore::Editor::ignoreSpelling):
27987         moved from FrameWin to Editor
27988         (WebCore::Editor::learnSpelling):
27989         ditto
27990
27991 2006-12-05  Alice Liu  <alice.liu@apple.com>
27992
27993         Build fix.
27994         
27995         * platform/win/CursorWin.cpp:
27996         (WebCore::copyCursor):
27997
27998 2006-12-05  Alice Liu  <alice.liu@apple.com>
27999
28000         Build fix.
28001         
28002         * bridge/win/FrameWin.h:
28003         added missing declarations for the functions in John's checkin, below. 
28004
28005 2006-12-05  John Sullivan  <sullivan@apple.com>
28006
28007         * platform/win/TemporaryLinkStubs.cpp:
28008         (WebCore::FrameWin::isSelectionUngrammatical):
28009         (WebCore::FrameWin::guessesForUngrammaticalSelection):
28010         added stubs to correspond to new Frame functions
28011
28012 2006-12-04  Anders Carlsson  <acarlsson@apple.com>
28013
28014         Reviewed by Darin.
28015
28016         * WebCore.vcproj/WebCore.vcproj:
28017         Add SubresourceClient.h
28018         
28019         * platform/network/cf/ResourceHandleCFNet.cpp:
28020         (WebCore::didReceiveResponse):
28021         Get rid of the receivedResponse call.
28022         
28023         (WebCore::didFinishLoading):
28024         Get rid of the receivedAllData call, that's handled by the subresource loader now.
28025
28026 2006-12-04  Darin Adler  <darin@apple.com>
28027
28028         Reviewed by Adele.
28029
28030         * WebCore.vcproj/WebCore.vcproj: Update for new UIEventWithKeyState.cpp file.
28031
28032 2006-12-04  Kevin McCullough  <KMcCullough@apple.com>
28033
28034         Reviewed by Darin.
28035
28036         - removed the guards for the "multiple forms submission" issue, which may not be
28037           an issue anymore and the guards prevent perfectly legitimate websites from
28038           working correctly.
28039
28040         * bridge/win/FrameWin.cpp:
28041         (WebCore::FrameWin::keyEvent):
28042         * config.h:
28043         * loader/win/FrameLoaderWin.cpp:
28044         (WebCore::FrameLoader::submitForm):
28045
28046 2006-12-04  Darin Adler  <darin@apple.com>
28047
28048         Reviewed by Alice.
28049
28050         * platform/win/PasteboardWin.cpp: (WebCore::Pasteboard::generalPasteboard):
28051         Got rid of s_generalPasteboard. Also removed definition of destructor.
28052
28053 2006-12-04  Anders Carlsson  <acarlsson@apple.com>
28054
28055         Reviewed by Darin, Geoff.
28056
28057         Get rid of ref() in ResourceHandle::start() and remove all uses of kill().
28058         
28059         * platform/network/cf/ResourceHandleCFNet.cpp:
28060         (WebCore::didFinishLoading):
28061         (WebCore::didFail):
28062         (WebCore::ResourceHandle::start):
28063         * plugins/win/PluginStreamWin.cpp:
28064         (WebCore::PluginStreamWin::stop):
28065
28066 2006-12-04  Alice Liu  <alice.liu@apple.com>
28067
28068         Reviewed by Oliver.
28069
28070         Fixed <rdar://problem/4822632> clicks don't work if you move mouse immediately
28071         This bug was fixed by implementing EventHandler::handleDrag.  The part of that
28072         function after the drag hysteresis is exceeded remains unimplemented until 
28073         drag&drop is implemented. 
28074
28075         * page/win/EventHandlerWin.cpp:
28076         (WebCore::dragState):
28077         (WebCore::EventHandler::dragHysteresisExceeded):
28078         (WebCore::EventHandler::handleDrag):
28079         (WebCore::EventHandler::handleMouseUp):
28080         (WebCore::EventHandler::shouldDragAutoNode):
28081         (WebCore::EventHandler::focusDocumentView):
28082         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
28083         * platform/win/PlatformMouseEventWin.cpp:
28084         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
28085
28086 2006-12-01  Beth Dakin  <bdakin@apple.com>
28087
28088         Reviewed by Adam.
28089
28090         Support for sub-menus in WebCore context menus. Also some
28091         adjustments to make ContextMenuItem class a wrapper for the
28092         platformDescription. (In this case, a wrapper for LPMENUITEMINFO.)
28093
28094         * WebCore.vcproj/WebCore.vcproj:
28095         * platform/win/ContextMenuItemWin.cpp:
28096         (WebCore::ContextMenuItem::ContextMenuItem):
28097         (WebCore::ContextMenuItem::platformDescription):
28098         (WebCore::ContextMenuItem::action):
28099         (WebCore::ContextMenuItem::title):
28100         (WebCore::ContextMenuItem::platformSubMenu):
28101         (WebCore::ContextMenuItem::setAction):
28102         (WebCore::ContextMenuItem::setTitle):
28103         (WebCore::ContextMenuItem::setSubMenu):
28104         * platform/win/ContextMenuWin.cpp:
28105         (WebCore::ContextMenu::ContextMenu):
28106         (WebCore::ContextMenu::insertItem):
28107
28108 2006-11-30  Geoffrey Garen  <ggaren@apple.com>
28109
28110         Rubber Stamped by Anders Carlsson.
28111
28112         Global rename of Document::focusNode to Document::focusedNode. 'focusNode'
28113         suggested a command, and conflicted with a different meaning for 'focusNode'
28114         in the Mozilla selection API.
28115
28116         * bridge/win/FrameWin.cpp:
28117         (WebCore::FrameWin::keyEvent):
28118
28119 2006-11-30  Adam Roben  <aroben@apple.com>
28120
28121         Lather, rinse, repeat.
28122
28123         * platform/win/GraphicsContextWin.cpp:
28124         (WebCore::contextForImage):
28125
28126 2006-11-30  Adam Roben  <aroben@apple.com>
28127
28128         Build fix.
28129
28130         * platform/graphics/cg/GraphicsContextCG.cpp: Removed. This file was
28131         un-forked a while ago.
28132         * platform/win/ContextMenuWin.cpp:
28133         (WebCore::ContextMenu::platformDescription):
28134         * platform/win/GraphicsContextWin.cpp:
28135         (WebCore::contextForImage):
28136
28137 2006-11-30  Adam Roben  <aroben@apple.com>
28138
28139         Build fix. 
28140
28141
28142         * WebCore.vcproj/WebCore.vcproj:
28143         * platform/graphics/svg/cg/SVGResourceFilterCg.cpp:
28144         (WebCore::SVGResourceFilter::prepareFilter):
28145         (WebCore::SVGResourceFilter::applyFilter):
28146         (WebCore::SVGResourceFilter::createFilterEffect):
28147         * platform/graphics/svg/cg/SVGResourceMaskerCg.cpp:
28148         (WebCore::SVGResourceMasker::applyMask):
28149
28150 2006-11-30  Geoffrey Garen  <ggaren@apple.com>
28151
28152         Reviewed by Beth Dakin.
28153         
28154         Fixed <rdar://problem/4844838> Whole document leak seen 
28155         running HTML iBench
28156
28157         * loader/win/FrameLoaderWin.cpp: Removed custom implementation
28158         for detachFromParent, since FrameLoader has a cross-platform
28159         version now.
28160
28161 2006-11-30  Steve Falkenburg  <sfalken@apple.com>
28162
28163         Production build fix.  Add missing header files to vcproj.
28164
28165         * WebCore.vcproj/WebCore.vcproj:
28166
28167 2006-11-29  Anders Carlsson  <acarlsson@apple.com>
28168
28169         Build fix.
28170         
28171         * platform/win/TemporaryLinkStubs.cpp:
28172         Remove unused function.
28173
28174 2006-11-29  Anders Carlsson  <acarlsson@apple.com>
28175
28176         Reviewed by Oliver.
28177
28178         Fix fast/dom/xmlhttprequest-get layout test failure.
28179
28180         * platform/network/cf/ResourceResponseCFNet.cpp:
28181         (WebCore::ResourceResponse::doUpdateResourceResponse):
28182         Initialize the status code to 0 for non-http responses.
28183
28184 2006-11-29  Anders Carlsson  <acarlsson@apple.com>
28185
28186         Reviewed by Darin.
28187
28188         Have ResourceResponse hold on to the platform object and do lazy
28189         initialization of the data members.
28190         
28191         * WebCore.vcproj/WebCore.vcproj:
28192         * platform/network/cf/ResourceHandleCFNet.cpp:
28193         (WebCore::willSendRequest):
28194         (WebCore::didReceiveResponse):
28195         * platform/network/cf/ResourceRequestCFNet.h: Removed.
28196         * platform/network/cf/ResourceResponseCFNet.cpp:
28197         (WebCore::ResourceResponse::doUpdateResourceResponse):
28198         * platform/network/cf/ResourceResponseCFNet.h: Removed.
28199         * platform/win/MimeTypeRegistryWin.cpp:
28200
28201 2006-11-28  Geoffrey Garen  <ggaren@apple.com>
28202
28203         Reviewed by Beth Dakin.
28204
28205         Fixed <rdar://problem/4844855> Should clarify when to create clients in 
28206         the WebCore client API
28207         
28208         All clients must now be supplied as constructor arguments. This clarifies 
28209         when you need to create clients, and also guarantees that objects can't 
28210         (for the most part) be in a clientless state.
28211
28212         Layout tests pass. No leaks reported.
28213         
28214         * bridge/win/FrameWin.cpp:
28215         (WebCore::FrameWin::FrameWin):
28216         * bridge/win/FrameWin.h:
28217
28218 2006-11-28  Adam Roben  <aroben@apple.com>
28219
28220         Reviewed by Ada.
28221
28222         Add platform-specific constructor/destructor to ContextMenu so we can
28223         properly dispose of the HMENU.
28224
28225         * platform/win/ContextMenuWin.cpp:
28226         (WebCore::ContextMenu::ContextMenu):
28227         (WebCore::ContextMenu::~ContextMenu):
28228         (WebCore::ContextMenu::itemCount):
28229         (WebCore::ContextMenu::insertItem):
28230         (WebCore::ContextMenu::at):
28231         (WebCore::ContextMenu::setPlatformDescription):
28232         (WebCore::ContextMenu::show):
28233
28234 2006-11-28  Steve Falkenburg  <sfalken@apple.com>
28235
28236         B&I build fix
28237
28238         * WebCore.vcproj/WebCore.vcproj:
28239
28240 2006-11-28  Anders Carlsson  <acarlsson@apple.com>
28241
28242         Fix the build by doing the same changes that were done in the open source WebCore repo.
28243         
28244         * WebCore.vcproj/WebCore.vcproj:
28245         * platform/network/cf/ResourceHandleCFNet.cpp:
28246         (WebCore::willSendRequest):
28247         (WebCore::didReceiveResponse):
28248         (WebCore::ResourceHandle::start):
28249         * platform/network/cf/ResourceRequestCFNet.cpp:
28250         (WebCore::ResourceRequest::cfURLRequest):
28251         (WebCore::addHeadersFromHashMap):
28252         (WebCore::ResourceRequest::doUpdatePlatformRequest):
28253         (WebCore::ResourceRequest::doUpdateResourceRequest):
28254         * platform/network/cf/ResourceRequestCFNet.h:
28255
28256 2006-11-28  Adam Roben  <aroben@apple.com>
28257
28258         Reviewed by Ada and Beth.
28259
28260         Fix: <rdar://problem/4601523> Contextual Menus (in web content)
28261
28262         * WebCore.vcproj/WebCore.vcproj: Defined WEBCORE_CONTEXT_MENUS to turn
28263         on the context menus. Added new ContextMenuItem files.
28264         * platform/win/ContextMenuItemWin.cpp: Added.
28265         (WebCore::ContextMenuItem::ContextMenuItem):
28266         * platform/win/ContextMenuWin.cpp:
28267         (WebCore::ContextMenu::itemCount): Updated to match ContextMenu.h and
28268         ContextMenuItem changes.
28269         (WebCore::ContextMenu::insertItem): Ditto.
28270         (WebCore::ContextMenu::appendItem): Ditto.
28271         (WebCore::ContextMenu::at): New method, similar to Vector<T>::at.
28272         (WebCore::ContextMenu::setPlatformDescription): Use MIM_APPLYTOSUBMENUS
28273         to make sure all submenus get the MNS_NOTIFYBYPOS style.
28274         (WebCore::ContextMenu::show): Implemented.
28275
28276         Updates to match OpenSource changes.
28277
28278         * loader/win/FrameLoaderWin.cpp: Added missing #include.
28279         * page/win/EventHandlerWin.cpp: Return bools to signify whether the
28280         event was handled.
28281         (WebCore::EventHandler::passMousePressEventToSubframe):
28282         (WebCore::EventHandler::passMouseMoveEventToSubframe):
28283         (WebCore::EventHandler::passMouseReleaseEventToSubframe):
28284         (WebCore::EventHandler::passWheelEventToSubframe):
28285         (WebCore::EventHandler::passMousePressEventToScrollbar):
28286         * platform/win/PlatformScrollBar.h: Ditto.
28287         * platform/win/PlatformScrollBarWin.cpp: Ditto.
28288         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
28289         (WebCore::PlatformScrollbar::handleMouseOutEvent):
28290         (WebCore::PlatformScrollbar::handleMousePressEvent):
28291         (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
28292
28293         Small fix inspired by WebView.cpp changes.
28294
28295         * platform/win/PopupMenuWin.cpp:
28296         (WebCore::PopupMenu::calculatePositionAndSize): Use ::ClientToScreen to
28297         do coordinate conversion instead of doing it ourselves.
28298
28299 2006-11-28  Anders Carlsson  <acarlsson@apple.com>
28300
28301         Reviewed by Adam.
28302         
28303         <rdar://problem/4850883>
28304         Crash loading pdf page (W4 form)
28305         
28306         * platform/win/TemporaryLinkStubs.cpp:
28307         (FrameLoader::redirectDataToPlugin):
28308         * loader/win/FrameLoaderWin.cpp:
28309         (WebCore::FrameLoader::redirectDataToPlugin):
28310         Move the function to FrameLoaderWin.cpp and get rid of STOP_NOIMPL() for now, 
28311         we do things differently on Windows so this function doesn't need do do anything.
28312         I've filed 4852889 about redoing this once the loader has been ported.
28313
28314 2006-11-28  Alice Liu  <alice.liu@apple.com>
28315
28316         Reviewed by Ada, Adam, and Lou.
28317
28318         * WebCore.vcproj/WebCore.vcproj:
28319         Added the files listed below
28320         
28321         * platform/win/ClipboardWin.h: Added.
28322         * platform/win/ClipboardWin.cpp: Added.
28323         Added the minimum stubs for the ClipboardWin class
28324         (WebCore::ClipboardWin::isForDragging):
28325         (WebCore::ClipboardWin::dropEffect):
28326         (WebCore::ClipboardWin::setDropEffect):
28327         (WebCore::ClipboardWin::effectAllowed):
28328         (WebCore::ClipboardWin::setEffectAllowed):
28329         (WebCore::ClipboardWin::clearData):
28330         (WebCore::ClipboardWin::clearAllData):
28331         (WebCore::ClipboardWin::getData):
28332         (WebCore::ClipboardWin::setData):
28333         (WebCore::ClipboardWin::types):
28334         (WebCore::ClipboardWin::dragLocation):
28335         (WebCore::ClipboardWin::dragImage):
28336         (WebCore::ClipboardWin::setDragImage):
28337         (WebCore::ClipboardWin::dragImageElement):
28338         (WebCore::ClipboardWin::setDragImageElement):
28339         (WebCore::ClipboardWin::setAccessPolicy):
28340         (WebCore::ClipboardWin::~ClipboardWin):
28341
28342         * platform/win/EditorWin.cpp: Added.
28343         Added this to make dispatchCPPEvent happy. 
28344         (WebCore::Editor::newGeneralClipboard):
28345
28346         * platform/win/PasteboardWin.cpp: Added.
28347         The pasteboard class follows a singleton pattern
28348         Implemented the following to support CF_HTML, CF_UNICODE, and CF_TEXT
28349         (WebCore::Pasteboard::generalPasteboard):
28350         (WebCore::Pasteboard::Pasteboard):
28351         (WebCore::Pasteboard::~Pasteboard):
28352         (WebCore::Pasteboard::registerSelectionPasteboardTypes):
28353         (WebCore::Pasteboard::clearTypes):
28354         (WebCore::Pasteboard::writeSelection):
28355         (WebCore::Pasteboard::createHandleFromString):
28356         (WebCore::Pasteboard::createHandleFromCString):
28357         (WebCore::Pasteboard::createCF_HTMLFromRange):
28358         (WebCore::Pasteboard::replaceNBSP):
28359         (WebCore::Pasteboard::canSmartReplace):
28360         (WebCore::Pasteboard::plainText):
28361         (WebCore::Pasteboard::documentFragment):
28362         (WebCore::PasteboardOwnerWndProc):
28363
28364 2006-11-28  Geoffrey Garen  <ggaren@apple.com>
28365
28366         Reviewed by Anders Carlsson.
28367
28368         Fixed <rdar://problem/4844863> REGRESSION: screen flashes when scrolling/
28369         resizing page with plug-in (@ cnn.com, for example).
28370
28371         LockWindowUpdate was to blame. It turns out that using LockWindowUpdate
28372         was wrong to begin with. It's really only intended for use in drag-n-drop
28373         operations, which explains why only one window can be locked at a time.
28374         (See http://blogs.msdn.com/oldnewthing/archive/2004/06/10/152612.aspx.)
28375         
28376         The new solution I've implemented for avoiding plug-in fragments while scrolling
28377         is simply to clip the plug-in to the zero rect before moving it, and
28378         then to un-clip it when done.
28379         
28380         * plugins/win/PluginViewWin.cpp:
28381         (WebCore::PluginViewWin::updateHwnd):
28382
28383 2006-11-28  Geoffrey Garen  <ggaren@apple.com>
28384
28385         Reviewed by Adam.
28386
28387         Fixed <rdar://problem/4844848> REGRESSION: extra cross-library ref/deref 
28388         calls cause .5% PLT regression.
28389         
28390         Changed ref/deref calls to a single 'xxxDestroyed' call. Moved EditorClient
28391         from the Frame to the Page, since it's only responsible for
28392         Webview-level delegate calls.
28393         
28394         I don't really love this design, but it fixes the regression and allows
28395         a single WebKit object to implement multiple client interfaces.
28396         
28397         Layout tests pass.
28398
28399 2006-11-27  Beth Dakin  <bdakin@apple.com>
28400
28401         Reviewed by Adam.
28402
28403         Stub out functions in order to remove FIXMEs from ContextMenu.cpp
28404
28405         * bridge/win/FrameWin.h: Spell checker functions pushed down from 
28406         WebKit.
28407         * platform/win/TemporaryLinkStubs.cpp: Stubs for spelling 
28408         functions.
28409         (WebCore::FrameWin::isSelectionMisspelled):
28410         (WebCore::FrameWin::guessesForMisspelledSelection):
28411
28412 2006-11-27  Oliver Hunt  <oliver@apple.com>
28413
28414         Reviewed by Adam.
28415
28416         Fixes a crash in SVG caused by an attempt to 
28417         perform css overflow clipping by preventing
28418         the css overflow clip from being set in SVG.
28419         
28420         <rdar:/problems/4839568>
28421
28422         * WebCore.vcproj/WebCore.vcproj:
28423
28424 2006-11-27  Anders Carlsson  <acarlsson@apple.com>
28425
28426         Remove addMessageToConsole from FrameWin.
28427         * bridge/win/FrameWin.h:
28428         * platform/win/TemporaryLinkStubs.cpp:
28429         
28430 2006-11-21  Anders Carlsson  <acarlsson@apple.com>
28431
28432         Reviewed by Adam.
28433
28434         Various fixes that make file upload possible.
28435         
28436         * bridge/win/FrameWin.h:
28437         * loader/win/FrameLoaderWin.cpp:
28438         (WebCore::FrameLoader::submitForm):
28439         Change submitForm to take a FrameLoadRequest.
28440         
28441         * platform/network/cf/FormDataStreamCFNet.cpp:
28442         (WebCore::advanceCurrentStream):
28443         Pass kCFURLWindowsPathStyle to CFURLCreateWithFileSystemPath.
28444         
28445         * platform/network/cf/ResourceHandleCFNet.cpp:
28446         (WebCore::willSendRequest):
28447         Call the client method.
28448
28449 2006-11-21  Anders Carlsson  <acarlsson@apple.com>
28450
28451         Rubber-stamped by Maciej.
28452
28453         Fork the CF loader.
28454         
28455         * WebCore.vcproj/WebCore.vcproj:
28456         * platform/network/cf/FormDataStreamCFNet.cpp: Added.
28457         (WebCore::getStreamFormDatas):
28458         (WebCore::pairRetain):
28459         (WebCore::pairRelease):
28460         (WebCore::pairEqual):
28461         (WebCore::pairHash):
28462         (WebCore::closeCurrentStream):
28463         (WebCore::scheduleWithPair):
28464         (WebCore::advanceCurrentStream):
28465         (WebCore::openNextStream):
28466         (WebCore::formCreate):
28467         (WebCore::formFinalize):
28468         (WebCore::formOpen):
28469         (WebCore::formRead):
28470         (WebCore::formCanRead):
28471         (WebCore::formClose):
28472         (WebCore::formSchedule):
28473         (WebCore::formUnschedule):
28474         (WebCore::formEventCallback):
28475         (WebCore::setHTTPBody):
28476         (WebCore::httpBodyFromStream):
28477         * platform/network/cf/FormDataStreamCFNet.h: Added.
28478         * platform/network/cf/ResourceHandleCFNet.cpp: Added.
28479         (WebCore::willSendRequest):
28480         (WebCore::didReceiveResponse):
28481         (WebCore::didReceiveData):
28482         (WebCore::didFinishLoading):
28483         (WebCore::didFail):
28484         (WebCore::willCacheResponse):
28485         (WebCore::didReceiveChallenge):
28486         (WebCore::addHeadersFromHashMap):
28487         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
28488         (WebCore::ResourceHandle::~ResourceHandle):
28489         (WebCore::arrayFromFormData):
28490         (WebCore::emptyPerform):
28491         (WebCore::runLoaderThread):
28492         (WebCore::ResourceHandle::start):
28493         (WebCore::ResourceHandle::cancel):
28494         * platform/network/cf/ResourceRequestCFNet.cpp: Added.
28495         (WebCore::getResourceRequest):
28496         (WebCore::addHeadersFromHashMap):
28497         (WebCore::cfURLRequest):
28498         * platform/network/cf/ResourceRequestCFNet.h: Added.
28499         * platform/network/cf/ResourceResponseCFNet.cpp: Added.
28500         (WebCore::getResourceResponse):
28501         * platform/network/cf/ResourceResponseCFNet.h: Added.
28502
28503 2006-11-21  Anders Carlsson  <acarlsson@apple.com>
28504
28505         Reviewed by Lou, Dave Hyatt.
28506
28507         <rdar://problem/4761639>
28508         Group label in list box doesn't appear as bold
28509         
28510         <rdar://problem/4805795>
28511         <optgroup> labels should be bold in popup menus
28512         
28513         * platform/win/FontPlatformDataWin.cpp:
28514         (WebCore::enumStylesCallback):
28515         (WebCore::FontPlatformData::FontPlatformData):
28516         Enumerate the existing font styles and decide what to synthesize
28517         depending on what styles are available.
28518
28519 2006-11-21  Anders Carlsson  <acarlsson@apple.com>
28520
28521         Fix build.
28522         
28523         * WebCore.vcproj/WebCore.vcproj:
28524
28525 2006-11-20  Anders Carlsson  <acarlsson@apple.com>
28526
28527         Add the same include paths to the debug build.
28528         
28529         * WebCore.vcproj/WebCore.vcproj:
28530
28531 2006-11-20  Anders Carlsson  <acarlsson@apple.com>
28532
28533         Fix build.
28534         
28535         * WebCore.vcproj/WebCore.vcproj:
28536         * kcanvas/device/quartz/KCanvasFilterQuartz.cpp: Removed.
28537         * platform/graphics/svg/cg/SVGResourceFilterCg.cpp: Added.
28538         (WebCore::SVGResourceFilter::SVGResourceFilter):
28539         (WebCore::SVGResourceFilter::~SVGResourceFilter):
28540         (WebCore::SVGResourceFilter::prepareFilter):
28541         (WebCore::SVGResourceFilter::applyFilter):
28542
28543 2006-11-19  Beth Dakin  <bdakin@apple.com>
28544
28545         Reviewed by Adam.
28546
28547         Boomer part of context menu actions.
28548
28549         * bridge/win/FrameWin.h: New spelling functions on Frame.
28550         * platform/win/ContextMenuWin.cpp:
28551         (WebCore::ContextMenu::show):
28552         (WebCore::ContextMenu::hide):
28553         * platform/win/TemporaryLinkStubs.cpp: New stubs.
28554         (FrameWin::ignoreSpelling):
28555         (FrameWin::learnSpelling):
28556         (FrameLoader::reload):
28557
28558 2006-11-18  Adam Roben  <aroben@apple.com>
28559
28560         Build fix from OpenSource r17841.
28561
28562         * platform/win/CursorWin.cpp: New method stubs.
28563         (WebCore::aliasCursor):
28564         (WebCore::progressCursor):
28565         (WebCore::noDropCursor):
28566
28567 2006-11-17  Anders Carlsson  <acarlsson@apple.com>
28568
28569         Reviewed by Adam.
28570
28571         Add #defines in config.h to prevent the min and max macros from being used.
28572
28573         * bridge/win/FrameWin.cpp:
28574         * config.h:
28575         * platform/win/FontCacheWin.cpp:
28576         (WebCore::FontCache::createFontPlatformData):
28577         * platform/win/PopupMenuWin.cpp:
28578         * plugins/win/PluginStreamWin.cpp:
28579         * plugins/win/PluginViewWin.cpp:
28580         (WebCore::PluginViewWin::handlePost):
28581
28582 2006-11-17  Kevin McCullough  <kmccullough@apple.com>
28583
28584         Reviewed by Adam.
28585
28586         - Fixes Targetted Form Submission to now work. Radar: 4762693
28587
28588         * ChangeLog:
28589         * loader/win/FrameLoaderWin.cpp:
28590         (WebCore::FrameLoader::submitForm):
28591
28592 2006-11-16  Adele Peterson  <adele@apple.com>
28593
28594         Reviewed by Adam.
28595
28596         Added theme for sider.
28597
28598         * rendering/RenderThemeWin.cpp:
28599         (WebCore::RenderThemeWin::sliderTheme):
28600         (WebCore::RenderThemeWin::close):
28601         (WebCore::RenderThemeWin::determineSliderThumbState):
28602         (WebCore::RenderThemeWin::getClassicThemeData):
28603         (WebCore::RenderThemeWin::getThemeData):
28604         (WebCore::drawControl):
28605         (WebCore::RenderThemeWin::paintSliderTrack):
28606         (WebCore::RenderThemeWin::paintSliderThumb):
28607         (WebCore::RenderThemeWin::adjustSliderThumbSize):
28608         * rendering/RenderThemeWin.h:
28609
28610 2006-11-15  Adam Roben  <aroben@apple.com>
28611
28612         Reviewed by Anders.
28613
28614         Added new ContextMenuClient and ContextMenuController classes.
28615
28616         * WebCore.vcproj/WebCore.vcproj: Added new files.
28617         * platform/win/ContextMenuWin.cpp: Added method implementations Beth
28618         forgot to check in in r11129.
28619         (WebCore::ContextMenu::itemCount):
28620         (WebCore::ContextMenu::appendItem):
28621
28622 2006-11-15  Geoffrey Garen  <ggaren@apple.com>
28623
28624         Reviewed by Anders Carlsson.
28625         
28626         Fixed flash of plug-in content outside its containing iframe while 
28627         scrolling the iframe.
28628         
28629         The problem was that the plug-in would draw between our call to MoveWindow
28630         and our call to SetWindowRgn. The solution here is to lock all updates in 
28631         the plug-in's HWND until we've called both MoveWindow and SetWindowRgn.
28632         
28633         Tested with Quicktime and Flash.
28634         
28635         * plugins/win/PluginViewWin.cpp:
28636         (WebCore::PluginViewWin::updateHwnd):
28637         (WebCore::PluginViewWin::setFrameGeometry):
28638         (WebCore::PluginViewWin::geometryChanged):
28639         * plugins/win/PluginViewWin.h: Removed bogus invalidate parameter to updateHwnd.
28640
28641 2006-11-15  Adele Peterson  <adele@apple.com>
28642
28643         Reviewed by Adam.
28644
28645         Adding RenderSlider class, and removing DeprecatedSlider and Slider classes.
28646
28647         * WebCore.vcproj/WebCore.vcproj:
28648         * platform/win/TemporaryLinkStubs.cpp:
28649
28650 2006-11-15  Beth Dakin  <bdakin@apple.com>
28651         &   Adam Roben  <aroben@apple.com>
28652
28653         Reviewed by Adam and Beth.
28654
28655         Internal side of r17796.
28656
28657         * WebCore.vcproj/WebCore.vcproj:
28658         * platform/win/ContextMenuWin.cpp: Added.
28659         (WebCore::ContextMenu::insertItem):
28660         (WebCore::ContextMenu::setPlatformMenuDescription):
28661
28662 2006-11-15  Anders Carlsson  <acarlsson@apple.com>
28663
28664         Reviewed by Darin.
28665     
28666         Remove some (now) obsolete methods.
28667         
28668         * bridge/win/FrameWin.h:
28669         * platform/win/TemporaryLinkStubs.cpp:
28670         (FrameWin::unfocusWindow):
28671         (FrameWin::getAppletInstanceForWidget):
28672         (FrameWin::issuePasteCommand):
28673         (FrameWin::respondToChangedSelection):
28674
28675 2006-11-15  Steve Falkenburg  <sfalken@apple.com>
28676
28677         Remove header from vcproj that no longer exists
28678
28679         * WebCore.vcproj/WebCore.vcproj:
28680
28681 2006-11-15  Steve Falkenburg  <sfalken@apple.com>
28682
28683         Fix the B&I build
28684
28685         * WebCore.vcproj/WebCore.vcproj:
28686
28687 2006-11-14  Darin Adler  <darin@apple.com>
28688
28689         Reviewed by Anders.
28690
28691         - update for creation of EventHandler
28692
28693         * WebCore.vcproj/WebCore.vcproj: Added EventHandler.cpp/h/Win.cpp.
28694
28695         * bridge/win/FrameWin.h: Moved virtual functions lastEventIsMouseUp,
28696         tabsToLinks, and tabsToAllControls to EventHandler.
28697         * bridge/win/FrameWin.cpp: Ditto.
28698
28699         * bridge/win/FrameViewWin.cpp: Moved passMousePressEventToSubframe and similar
28700         functions to EventHandler.
28701
28702         * page/win/EventHandlerWin.cpp: Added. Code from FrameViewWin and FrameWin.
28703
28704         * platform/win/PlatformScrollBarWin.cpp:
28705         (WebCore::PlatformScrollbar::handleMouseReleaseEvent): Call the setMousePressed
28706         function in its new home in EventHandler.
28707
28708         * platform/win/TemporaryLinkStubs.cpp: Moved lastEventIsMouseUp stub to EventHandler.
28709
28710 2006-11-13  Brady Eidson  <beidson@apple.com>
28711
28712         Rubberstamped by Maciej
28713
28714         Windows half of 17755 - Make FormData shared
28715
28716         * bridge/win/FrameWin.h:
28717         * loader/win/FrameLoaderWin.cpp:
28718         (WebCore::FrameLoader::submitForm):
28719         * plugins/win/PluginViewWin.cpp:
28720         (WebCore::PluginViewWin::handlePost):
28721
28722 2006-11-13  Anders Carlsson  <acarlsson@apple.com>
28723
28724         Reviewed by Adam.
28725
28726         * platform/win/PopupMenuWin.cpp:
28727         (WebCore::PopupWndProc):
28728         Make sure to call valueChanged after hiding the popup so that change events will 
28729         be delivered correctly.
28730
28731 2006-11-13  Steve Falkenburg  <sfalken@apple.com>
28732
28733         Reviewed by Anders, Lou.
28734
28735         Fix merge script
28736
28737         * WebCore.vcproj/merge-opensource.sh: Don't copy cairo, pixman
28738
28739 2006-11-12  Geoffrey Garen  <ggaren@apple.com>
28740
28741         Reviewed by Beth Dakin.
28742         
28743         Added project-wide setting to disable Microsoft's made-up deprecation 
28744         warnings related to std:: functions. (Doesn't have any affect yet,
28745         since we currently disable all deprecation warnings.)
28746
28747         * WebCore.vcproj/WebCore.vcproj:
28748
28749 2006-11-11  Anders Carlsson  <acarlsson@apple.com>
28750
28751         Reviewed by Oliver.
28752
28753         Rename keyPress to keyEvent, it's used for both key presses
28754         and releases.
28755         
28756         * bridge/win/FrameWin.cpp:
28757         (WebCore::FrameWin::keyEvent):
28758         * bridge/win/FrameWin.h:
28759
28760 2006-11-11  Adam Roben  <aroben@apple.com>
28761
28762         Reviewed by Geoff.
28763
28764         Move graphics-related files to platform/graphics to stay in sync with
28765         changes from OpenSource r17727.
28766
28767         Also, as discussed with Darin and Steve, we now copy all our headers to
28768         a flat include/WebCore directory instead of copying the directory
28769         structure of WebCore. This mirrors how Mac builds.
28770
28771         * WebCore.vcproj/WebCore.vcproj:
28772         * platform/cg/ColorCG.cpp: Removed.
28773         * platform/cg/GraphicsContextCG.cpp: Removed.
28774         * platform/cg/GraphicsContextPlatformPrivate.h: Removed.
28775         * platform/win/IconWin.cpp: Removed.
28776         * platform/win/ImageWin.cpp: Removed.
28777
28778 2006-11-11  Darin Adler  <darin@apple.com>
28779
28780         - blind attempt to fix the build
28781
28782         * platform/win/CursorWin.cpp:
28783         (WebCore::verticalTextCursor): Added. Just returns the pointer cursor.
28784         (WebCore::cellCursor): Ditto.
28785         (WebCore::contextMenuCursor): Ditto.
28786
28787 2006-11-10  Steve Falkenburg  <sfalken@apple.com>
28788
28789         Build fix for opensource/internal merge script.
28790
28791         * WebCore.vcproj/WebCore.vcproj:
28792
28793 2006-11-10  Anders Carlsson  <acarlsson@apple.com>
28794
28795         Reviewed by Oliver.
28796
28797         Implement findNextWordFromIndex using ICU.
28798
28799         * platform/win/TemporaryLinkStubs.cpp:
28800         (WebCore::findSentenceBoundary):
28801         * platform/win/TextBoundariesWin.cpp:
28802         (WebCore::findNextWordFromIndex):
28803
28804 2006-11-09  Oliver Hunt  <oliver@apple.com>
28805
28806         Reviewed by Brady.
28807
28808         Added Windows side of MIME Type registry, and updated 
28809         objectContentType and ImageWin to make use of it
28810         
28811         This fixes <rdar://problem/4791483> 
28812
28813         * WebCore.vcproj/WebCore.vcproj:
28814         * loader/win/FrameLoaderWin.cpp:
28815         (WebCore::FrameLoader::objectContentType):
28816         * platform/win/ImageWin.cpp:
28817         * platform/win/MimeTypeRegistryWin.cpp: Added.
28818         (WebCore::getMIMETypeForUTI):
28819         (WebCore::mimeTypeForExtension):
28820         (WebCore::MimeTypeRegistry::getMIMETypeForExtension):
28821
28822 2006-11-09  Lou Amadio  <lamadio@apple.com>
28823
28824         Reviewed by mjs
28825         Corrected positioning of text for find overlay on subframes
28826
28827         * bridge/win/FrameWin.cpp:
28828         (WebCore::FrameWin::imageFromRect):
28829
28830 2006-11-08  Lou Amadio  <lamadio@apple.com>
28831
28832         Reviewed by ggaren
28833
28834         Moved CookieJar to OpenSourceWin
28835         Ported CookieJar to CFNetwork
28836         Corrected an uninitialized variable which crashed on Vista in the Wininet code
28837
28838         * WebCore.vcproj/WebCore.vcproj:
28839         * platform/network/win/CookieJarWin.cpp:
28840         (WebCore::setCookies):
28841         (WebCore::cookies):
28842
28843 2006-11-08  Maciej Stachowiak  <mjs@apple.com>
28844
28845         Reviewed by Geoff.
28846
28847         - added ResourceError class and didFailWithError client method
28848         
28849         * plugins/win/PluginStreamWin.cpp:
28850         (WebCore::PluginStreamWin::didFailLoadingWithError):
28851         (WebCore::PluginStreamWin::didFinishLoading):
28852         * plugins/win/PluginStreamWin.h:
28853
28854 2006-11-08  Geoffrey Garen  <ggaren@apple.com>
28855
28856         Reviewed by Anders Carlsson.
28857
28858         Updated Windows to use the new platform abstraction for Screen.
28859         
28860         * WebCore.vcproj/WebCore.vcproj:
28861         * platform/win/PopupMenuWin.cpp:
28862         (WebCore::PopupMenu::calculatePositionAndSize):
28863         * platform/win/ScreenWin.cpp:
28864         (WebCore::monitorInfoForWidget):
28865         (WebCore::deviceInfoForWidget):
28866         (WebCore::screenDepth):
28867         (WebCore::screenDepthPerComponent):
28868         (WebCore::screenIsMonochrome):
28869         (WebCore::screenRect):
28870         (WebCore::screenAvailableRect):
28871
28872 2006-11-09  Darin Adler  <darin@apple.com>
28873
28874         - fix the build
28875
28876         * bridge/win/FrameWin.h: Add a forward declaration of FormData.
28877
28878         * bridge/win/FrameWin.cpp: (WebCore::FrameWin::keyPress):
28879         Call resetMultipleFormSubmissionProtection instead of prepareForUserAction.
28880
28881         * platform/win/TemporaryLinkStubs.cpp: Remove the parameter from the
28882         TextField constructor.
28883
28884 2006-11-08  Steve Falkenburg  <sfalken@apple.com>
28885
28886         Rubber stamped by Adam.
28887
28888         Windows buildbot fix.
28889         Remove /d from xcopy commands that merge opensource/internal components.
28890         Sync debug and release post-build event.
28891
28892         * WebCore.vcproj/WebCore.vcproj:
28893
28894 2006-11-07  Ada Chan  <adachan@apple.com>
28895
28896         Reviewed by Steve.
28897
28898         Make the Slider implementation call LOG_NOIMPL() instead of STOP_NOIMPL() so the RSS feed page can load.
28899
28900         * platform/win/TemporaryLinkStubs.cpp:
28901         (Slider::Slider):
28902         (Slider::sizeHint):
28903         (Slider::setValue):
28904         (Slider::setMaxValue):
28905         (Slider::setMinValue):
28906         (Slider::~Slider):
28907         (Slider::setFont):
28908         (Slider::value):
28909
28910 2006-11-07  Lou Amadio  <lamadio@apple.com>
28911
28912         Reviewed by sfalken, adam
28913
28914          Implemented Find banner, overlay, bouncy.
28915          plummed some find, search and marking in WebCore & WebKit
28916          Added SDC - a DC wrapper with knowledge of CG
28917          Added button element
28918          Ported AppKit's oval button drawing code
28919          Abstracted the high performance animations
28920
28921         * bridge/win/FrameWin.cpp:
28922         (WebCore::FrameWin::imageFromRect):
28923         (WebCore::FrameWin::imageFromSelection):
28924         * bridge/win/FrameWin.h:
28925         * platform/win/GraphicsContextWin.cpp:
28926         (WebCore::GraphicsContext::setCompositeOperation):
28927         * platform/win/TemporaryLinkStubs.cpp:
28928         (Frame::setNeedsReapplyStyles):
28929
28930 2006-11-08  Anders Carlsson  <acarlsson@apple.com>
28931
28932         Build fixes.
28933         
28934         * WebCore.vcproj/WebCore.vcproj:
28935         * platform/win/TemporaryLinkStubs.cpp:
28936
28937 2006-11-08  Anders Carlsson  <acarlsson@apple.com>
28938
28939         * loader/win/FrameLoaderWin.cpp:
28940         (WebCore::FrameLoader::partClearedInBegin):
28941         Use m_frame instead of this, include the correct files.
28942         
28943 2006-11-08  Anders Carlsson  <acarlsson@apple.com>
28944
28945         (I'm not doing this to get commit 11000)
28946         
28947         * loader/win/FrameLoaderWin.cpp:
28948         (WebCore::FrameLoader::partClearedInBegin):
28949         It's m_frame, not frame. 
28950         
28951 2006-11-08  Anders Carlsson  <acarlsson@apple.com>
28952
28953         It's FrameLoader, not FrameWin.
28954         
28955         * loader/win/FrameLoaderWin.cpp:
28956         (WebCore::FrameLoader::partClearedInBegin):
28957
28958 2006-11-08  Anders Carlsson  <acarlsson@apple.com>
28959
28960         A blind attempt at fixing the build.
28961         
28962         * bridge/win/FrameWin.cpp:
28963         * loader/win/FrameLoaderWin.cpp:
28964         (WebCore::FrameWin::partClearedInBegin):
28965         * platform/win/TemporaryLinkStubs.cpp:
28966         (FrameLoader::restoreDocumentState):
28967
28968 2006-11-07  Geoffrey Garen  <ggaren@apple.com>
28969
28970         Reviewed by Anders.
28971         
28972         Removed ScreenClient. It was highly unpopular, risking my midterm re-election.
28973         
28974         None of Screen's responsibilities require up-calls to WebKit or delegates, 
28975         so WebCore can handle it all.
28976         
28977         Moved Screen back from page/ to platform/ because it's a platform
28978         abstraction again.
28979         
28980         Fixed bug where Screen would query the default screen instead of the screen
28981         on which the active window was located. (The code is written in Klingon,
28982         but that's cool.)
28983         
28984         Implemented some missing screen functionality on Win.
28985         
28986         I can't fully verify this code because I can't load files without crashing
28987         in CFNetwork, but I exercised most of it with javascript: URLs and the
28988         debugger reported reasonable values.
28989
28990         * WebCore.vcproj/WebCore.vcproj:
28991         * platform/win/ScreenWin.cpp: Added. Merged over from opensource tree.
28992         (WebCore::getWindow):
28993         (WebCore::getMonitorInfo):
28994         (WebCore::getDeviceInfo):
28995         (WebCore::Screen::depth):
28996         (WebCore::Screen::depthPerComponent):
28997         (WebCore::Screen::isMonochrome):
28998         (WebCore::Screen::rect):
28999         (WebCore::Screen::usableRect):
29000
29001 2006-11-07  Darin Adler  <darin@apple.com>
29002
29003         Reviewed by Geoff.
29004
29005         - moved loader code from Frame/FrameMac to FrameLoader
29006
29007         * WebCore.vcproj/WebCore.vcproj:
29008         * bridge/win/FrameWin.cpp:
29009         (WebCore::FrameWin::FrameWin):
29010         (WebCore::FrameWin::~FrameWin):
29011         * bridge/win/FrameWin.h:
29012         * loader/win/FrameLoaderWin.cpp: Added.
29013         (WebCore::FrameLoader::submitForm):
29014         (WebCore::FrameLoader::urlSelected):
29015         (WebCore::FrameLoader::originalRequestURL):
29016         (WebCore::FrameLoader::didFirstLayout):
29017         (WebCore::FrameLoader::objectContentType):
29018         (WebCore::FrameLoader::createPlugin):
29019         (WebCore::FrameLoader::createFrame):
29020         (WebCore::FrameLoader::detachFromParent):
29021         (WebCore::FrameLoader::createJavaAppletWidget):
29022         (WebCore::FrameLoader::setTitle):
29023         * platform/win/TemporaryLinkStubs.cpp:
29024         (FrameWin::markMisspellings):
29025         (FrameWin::respondToChangedSelection):
29026         (FrameWin::clearUndoRedoOperations):
29027         (IconLoader::notifyIconChanged):
29028         (PolicyCheck::PolicyCheck):
29029         (PolicyCheck::clear):
29030         (PolicyCheck::call):
29031         (PolicyCheck::clearRequest):
29032         (FrameLoader::saveDocumentState):
29033         (FrameLoader::restoreDocumentState):
29034         (FrameLoader::partClearedInBegin):
29035         (FrameLoader::goBackOrForward):
29036         (FrameLoader::historyURL):
29037         (FrameLoader::canGoBackOrForward):
29038         (FrameLoader::getHistoryLength):
29039         (DocumentLoader::setupForReplaceByMIMEType):
29040         (ResourceLoader::cancel):
29041         (DocumentLoader::stopLoading):
29042         (DocumentLoader::setLoading):
29043         (DocumentLoader::updateLoading):
29044         (DocumentLoader::setFrame):
29045         (DocumentLoader::stopRecordingResponses):
29046         (DocumentLoader::isStopping):
29047         (DocumentLoader::setPrimaryLoadComplete):
29048         (DocumentLoader::finishedLoading):
29049         (DocumentLoader::URL):
29050         (DocumentLoader::isLoadingInAPISense):
29051         (DocumentLoader::frameLoader):
29052         (FrameLoader::overrideMediaType):
29053         (FrameLoader::redirectDataToPlugin):
29054         (FrameLoader::checkLoadCompleteForThisFrame):
29055         (FrameLoader::loadEmptyDocumentSynchronously):
29056         (FrameLoader::startLoading):
29057         (FrameLoader::referrer):
29058         * plugins/win/PluginViewWin.cpp:
29059         (WebCore::PluginViewWin::performRequest):
29060         (WebCore::PluginViewWin::userAgent):
29061
29062 2006-11-07  Anders Carlsson  <acarlsson@apple.com>
29063
29064         Reviewed by Oliver.
29065
29066         Let the Frame client know when the window object is available.
29067
29068         * bridge/win/FrameWin.cpp:
29069         (WebCore::FrameWin::partClearedInBegin):
29070         * bridge/win/FrameWin.h:
29071         * platform/win/TemporaryLinkStubs.cpp:
29072         (FrameWin::unfocusWindow):
29073         (FrameWin::markMisspellings):
29074         (FrameWin::restoreDocumentState):
29075
29076 2006-11-07  Adam Roben  <aroben@apple.com>
29077
29078         Build fix.
29079
29080         * platform/win/TemporaryLinkStubs.cpp: Remove no-longer-needed stub.
29081
29082 2006-11-07  Steve Falkenburg  <sfalken@apple.com>
29083
29084         Fixes for B&I submission
29085
29086         * WebCore.vcproj/WebCore.vcproj:
29087         * WebCore.vcproj/merge-opensource.sh:
29088
29089 2006-11-06  Kevin McCullough  <kmccullough@apple.com>
29090
29091         -Fix test fields accepting text.
29092
29093         * WebCore.vcproj/WebCore.vcproj:
29094
29095 2006-11-06  Anders Carlsson  <acarlsson@apple.com>
29096
29097         Reviewed by Dave Hyatt.
29098
29099         <rdar://problem/4778180>
29100         wikipedia.org crashes when loading
29101         
29102         * platform/win/GlyphMapWin.cpp:
29103         (WebCore::GlyphMap::fillPage):
29104         Don't call GetGlyphIndices on buffers larger than the page size. GetGlyphIndicies doesn't know anything about
29105         Unicode supplementary characters and will overwrite the local buffer if the passed-in buffer is bigger than  the page size.
29106
29107 2006-11-06  Anders Carlsson  <acarlsson@apple.com>
29108
29109         Fork GlyphMapWin.cpp
29110         
29111         * platform/win/GlyphMapWin.cpp: Added.
29112         (WebCore::GlyphMap::fillPage):
29113
29114 2006-11-06  Geoffrey Garen  <ggaren@apple.com>
29115
29116         Reviewed by Darin.
29117
29118         Hooked up the Chrome and Screen clients on Windows.
29119         
29120         * WebCore.vcproj/WebCore.vcproj:
29121         * bridge/win/PageWin.cpp:
29122         * platform/win/PopupMenuWin.cpp:
29123         (WebCore::PopupMenu::calculatePositionAndSize):
29124         * platform/win/TemporaryLinkStubs.cpp:
29125
29126 2006-11-06  Anders Carlsson  <acarlsson@apple.com>
29127
29128         Reviewed by Maciej.
29129
29130         Copy npfunctions.h to WebKitOutputDir.
29131         
29132         * WebCore.vcproj/WebCore.vcproj:
29133
29134 2006-11-06  Steve Falkenburg  <sfalken@apple.com>
29135
29136         Fix double-include of FormData.cpp/.h.
29137
29138         * WebCore.vcproj/WebCore.vcproj:
29139
29140 2006-11-06  Maciej Stachowiak  <mjs@apple.com>
29141         
29142         - build fixes, adjusted for file move
29143
29144         * WebCore.vcproj/WebCore.vcproj:
29145
29146 2006-11-05  Beth Dakin  <bdakin@apple.com>
29147
29148         Reviewed by Steve and Anders.
29149
29150         Add client() fucntion to FrameWin to return the FrameClient.
29151
29152         * bridge/win/FrameWin.h:
29153         (WebCore::FrameWin::client):
29154
29155 2006-11-05  Steve Falkenburg  <sfalken@apple.com>
29156
29157         Fix build
29158
29159         * WebCore.vcproj/WebCore.vcproj:
29160
29161 2006-11-05  Steve Falkenburg  <sfalken@apple.com>
29162
29163         Fix build breaks
29164
29165         * bridge/win/FrameWin.cpp:
29166         * bridge/win/PageWin.cpp:
29167
29168 2006-11-04  Darin Adler  <darin@apple.com>
29169
29170         Reviewed by Maciej.
29171
29172         * bridge/win/FrameWin.h:
29173         * bridge/win/FrameWin.cpp:
29174         (WebCore::FrameWin::urlSelected): Updated for change of const Event* to Event*.
29175         (WebCore::FrameWin::submitForm): Added Event* parameter.
29176
29177 2006-11-03  Maciej Stachowiak  <mjs@apple.com>
29178
29179         Reviewed by Adele.
29180
29181         - replaced receivedRedirect with new willSendRequest delegate
29182         - removed most mac-specific loader functions
29183         - use ResourceResponse more in loader code
29184
29185         * WebCore.vcproj/WebCore.vcproj: Added new files
29186         * platform/win/TemporaryLinkStubs.cpp: Removed unneeded link stubs
29187
29188 2006-11-03  Steve Falkenburg  <sfalken@apple.com>
29189
29190         Fix build
29191
29192         * config.h: Touched to cause re-build w/ SVG_SUPPORT enabled
29193         * platform/win/TemporaryLinkStubs.cpp:
29194         (WebCore::CachedResource::setResponse): Added
29195
29196 2006-11-03  Adele Peterson  <adele@apple.com>
29197
29198         Reviewed by Oliver.
29199
29200         Removed DeprecatedRenderSelect and ListBox classes.
29201
29202         * WebCore.vcproj/WebCore.vcproj:
29203         * platform/win/TemporaryLinkStubs.cpp:
29204
29205 2006-11-03  Anders Carlsson  <acarlsson@apple.com>
29206
29207         Remove SVGRenderAsText files from the project.
29208         
29209         * WebCore.vcproj/WebCore.vcproj:
29210
29211 2006-11-03  Anders Carlsson  <acarlsson@apple.com>
29212
29213         Build fix.
29214         
29215         * platform/win/TemporaryLinkStubs.cpp:
29216         (WebCore::CachedResource::setPlatformResponse):
29217
29218 2006-11-03  Geoffrey Garen  <ggaren@apple.com>
29219
29220         Reviewed by Darin, Beth.
29221
29222         Updated to use ChromeClient.
29223         
29224         * WebCore.vcproj/WebCore.vcproj:
29225         * bridge/win/PageWin.cpp:
29226         * loader/win/ResourceLoaderWin.cpp: Added.
29227         (WebCore::ResourceLoader::loadsBlocked):
29228         * platform/win/TemporaryLinkStubs.cpp:
29229
29230 2006-11-02  Anders Carlsson  <acarlsson@apple.com>
29231
29232         Reviewed by Oliver.
29233
29234         * WebCore.vcproj/WebCore.vcproj:
29235         Use the forked CursorWin.cpp
29236         
29237         * platform/win/CursorWin.cpp:
29238         (WebCore::moveCursor):
29239         Implement this.
29240         
29241         * platform/win/TemporaryLinkStubs.cpp:
29242         Get rid of it here.
29243         
29244 2006-11-02  Anders Carlsson  <acarlsson@apple.com>
29245
29246         Reviewed by Oliver.
29247
29248         Add forked copy of CursorWin.cpp
29249         
29250         * platform/win/CursorWin.cpp: Added.
29251
29252 2006-11-01  Oliver Hunt  <oliver@apple.com>
29253
29254         Reviewed by Adam.
29255
29256         Adding SVG_SUPPORT to Boomer.
29257
29258         * WebCore.vcproj/WebCore.vcproj:
29259         * WebCore.vcproj/build-generated-files.sh:
29260         * kcanvas/device/quartz/KCanvasFilterQuartz.cpp: Added.
29261         (WebCore::KCanvasFilterQuartz::KCanvasFilterQuartz):
29262         (WebCore::KCanvasFilterQuartz::~KCanvasFilterQuartz):
29263         (WebCore::KCanvasFilterQuartz::prepareFilter):
29264         (WebCore::KCanvasFilterQuartz::applyFilter):
29265         (WebCore::KCanvasFilterQuartz::imageForName):
29266         (WebCore::KCanvasFilterQuartz::setImageForName):
29267         (WebCore::KCanvasFilterQuartz::setOutputImage):
29268         (WebCore::KCanvasFilterQuartz::inputImage):
29269         * platform/graphics/svg/cg/SVGResourceMaskerCg.cpp: Added.
29270         (WebCore::SVGResourceMasker::applyMask):
29271
29272 2006-11-01  Beth Dakin  <bdakin@apple.com>
29273
29274         Reviewed by Adam.
29275
29276         Build fix from Sam Weinig's check-in. i.p in the PaintInfo is now 
29277         i.context
29278
29279         * rendering/RenderThemeWin.cpp:
29280         (WebCore::RenderThemeWin::paintButton):
29281         (WebCore::RenderThemeWin::paintTextField):
29282         (WebCore::RenderThemeWin::paintMenuList):
29283         (WebCore::RenderThemeWin::paintMenuListButton):
29284
29285 2006-11-01  Anders Carlsson  <acarlsson@apple.com>
29286
29287         Reviewed by Geoff.
29288
29289         * bridge/win/FrameWin.cpp:
29290         (WebCore::FrameWin::createJavaAppletWidget):
29291         Ask the plugin database to create a java applet plugin.
29292
29293         * platform/win/TemporaryLinkStubs.cpp:
29294         Remove FrameWin::createJavaAppletWidget.
29295         
29296         * plugins/win/PluginDatabaseWin.cpp:
29297         (WebCore::PluginDatabaseWin::defaultPluginPaths):
29298         Don't look for the Sun Java plugin anymore.
29299
29300 2006-11-01  Anders Carlsson  <acarlsson@apple.com>
29301
29302         * plugins/win/PluginStreamWin.cpp:
29303         (WebCore::PluginStreamWin::startStream):
29304         Build fix.
29305         
29306 2006-11-01  Anders Carlsson  <acarlsson@apple.com>
29307
29308         Reviewed by Adam.
29309
29310         Convert plugin code over to using ResourceResponse.
29311         
29312         * plugins/win/PluginStreamWin.cpp:
29313         (WebCore::PluginStreamWin::startStream):
29314         (WebCore::PluginStreamWin::didReceiveResponse):
29315         (WebCore::PluginStreamWin::didFinishLoading):
29316         * plugins/win/PluginStreamWin.h:
29317         * plugins/win/PluginViewWin.cpp:
29318         (WebCore::PluginViewWin::performRequest):
29319
29320 2006-10-31  Steve Falkenburg  <sfalken@apple.com>
29321
29322         Yet more B&I build fixes
29323         Another missing .h file from the vcproj
29324
29325         * WebCore.vcproj/WebCore.vcproj:
29326
29327 2006-10-31  Steve Falkenburg  <sfalken@apple.com>
29328
29329         Another fix for B&I submission
29330         (missing .h files from the WebCore vcproj prevents proper merging of OpenSource/Internal WebCore trees)
29331
29332         * WebCore.vcproj/WebCore.vcproj:
29333
29334 2006-10-31  Steve Falkenburg  <sfalken@apple.com>
29335
29336         Remove extra files I accidently added
29337
29338         * WebCore.vcproj/WebCore.vcproj:
29339
29340 2006-10-31  Steve Falkenburg  <sfalken@apple.com>
29341
29342         Build fixes for submission merge script
29343
29344         * WebCore.vcproj/WebCore.vcproj:
29345
29346 2006-10-31  Adam Roben  <aroben@apple.com>
29347
29348         Build fixes.
29349
29350         * WebCore.vcproj/WebCore.vcproj: Add new platform/graphics directory to
29351         our include path, and copy headers from there for WebKit's benefit.
29352         * bridge/win/FrameWin.cpp: Update accessors of FrameLoadRequest.
29353         (WebCore::FrameWin::urlSelected):
29354         (WebCore::FrameWin::submitForm):
29355         * plugins/win/PluginViewWin.cpp: Ditto.
29356         (WebCore::PluginViewWin::start):
29357         (WebCore::PluginViewWin::performRequest):
29358         (WebCore::PluginViewWin::load):
29359         (WebCore::PluginViewWin::getURLNotify):
29360         (WebCore::PluginViewWin::getURL):
29361         (WebCore::PluginViewWin::handlePost):
29362         * plugins/win/PluginViewWin.h: Correct forward declaration of
29363         FrameLoadRequest.
29364
29365 2006-10-30  Darin Adler  <darin@apple.com>
29366
29367         Reviewed by Anders.
29368
29369         - remove BrowserExtension
29370
29371         * WebCore.vcproj/WebCore.vcproj:
29372         * bridge/win/FrameWin.cpp:
29373         (WebCore::FrameWin::FrameWin):
29374         * platform/win/TemporaryLinkStubs.cpp:
29375         * plugins/win/PluginViewWin.cpp:
29376         (WebCore::PluginViewWin::performRequest):
29377
29378 2006-10-30  Anders Carlsson  <acarlsson@apple.com>
29379
29380         Reviewed by Adam.
29381
29382         If there's no plug-in for a given mime type, or if the plug-in fails
29383         to initialize, draw the "missing plug-in" icon.
29384
29385         * plugins/win/PluginDatabaseWin.cpp:
29386         (WebCore::PluginDatabaseWin::createPluginView):
29387         If no plug-in can be found, create a null plugin view.
29388         
29389         * plugins/win/PluginViewWin.cpp:
29390         (WebCore::PluginViewWin::paint):
29391         If the plugin hasn't been started, paint the missing plugin image.
29392         
29393         (WebCore::PluginViewWin::setNPWindowSize):
29394         Return early if the plugin hasn't been started.
29395         
29396         (WebCore::PluginViewWin::start):
29397         Return if the plugin couldn't be created.
29398         
29399         (WebCore::PluginViewWin::createNullPluginView):
29400         New function which just creates a plugin view and doesn't try to start its plugin
29401         (because there is none).
29402         
29403         (WebCore::PluginViewWin::PluginViewWin):
29404         New constructor for the null plugin view.
29405         
29406 2006-10-31  Darin Adler  <darin@apple.com>
29407
29408         Reviewed by Adam.
29409
29410         * WebCore.vcproj/WebCore.vcproj: Added new source files from the
29411         loader directory.
29412
29413 2006-10-29  Maciej Stachowiak  <mjs@apple.com>
29414
29415         Reviewed by Anders.
29416
29417         - added ResourceResponse class and didReceiveResponse delegate call
29418
29419         * WebCore.vcproj/WebCore.vcproj: Added new files.
29420         * platform/win/TemporaryLinkStubs.cpp:
29421         (WebCore::ServeSynchronousRequest): Changed prototype to match
29422         new version.
29423
29424 2006-10-29  Darin Adler  <darin@apple.com>
29425
29426         - update for the WebCore renames
29427
29428         * WebCore.vcproj/WebCore.vcproj:
29429         * bridge/win/FrameWin.cpp:
29430         (WebCore::FrameWin::bindingRootObject):
29431         (WebCore::FrameWin::windowScriptNPObject):
29432         * plugins/win/PluginViewWin.cpp:
29433         (WebCore::PluginViewWin::load):
29434         (WebCore::PluginViewWin::bindingInstance):
29435
29436 2006-10-29  Maciej Stachowiak  <mjs@apple.com>
29437
29438         Rubber stamped by Darin.
29439
29440         - renamed ResourceLoader to ResourceHandle (and same for related classes)
29441
29442         * WebCore.vcproj/WebCore.vcproj:
29443         * bridge/win/FrameWin.cpp:
29444         * platform/network/win/ResourceHandleWin.cpp: Added.
29445         (WebCore::):
29446         (WebCore::addToOutstandingJobs):
29447         (WebCore::lookupResourceHandle):
29448         (WebCore::ResourceHandleWndProc):
29449         (WebCore::ResourceHandle::onHandleCreated):
29450         (WebCore::ResourceHandle::onRequestRedirected):
29451         (WebCore::ResourceHandle::onRequestComplete):
29452         (WebCore::initializeOffScreenResourceHandleWindow):
29453         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
29454         (WebCore::ResourceHandle::~ResourceHandle):
29455         (WebCore::ResourceHandle::startHTTPRequest):
29456         (WebCore::ResourceHandle::start):
29457         (WebCore::ResourceHandle::fileLoadTimer):
29458         (WebCore::ResourceHandle::cancel):
29459         * platform/network/win/ResourceHandleWin.h: Added.
29460         * platform/network/win/ResourceLoaderWin.cpp: Removed.
29461         * platform/network/win/ResourceLoaderWin.h: Removed.
29462         * platform/win/TemporaryLinkStubs.cpp:
29463         (WebCore::ResourceHandle::assembleResponseHeaders):
29464         (WebCore::ResourceHandle::retrieveResponseEncoding):
29465         (IconLoader::receivedResponse):
29466         * plugins/win/PluginStreamWin.cpp:
29467         (WebCore::PluginStreamWin::start):
29468         (WebCore::PluginStreamWin::deliverData):
29469         (WebCore::PluginStreamWin::receivedResponse):
29470         (WebCore::PluginStreamWin::didReceiveData):
29471         (WebCore::PluginStreamWin::receivedAllData):
29472         * plugins/win/PluginStreamWin.h:
29473
29474 2006-10-28  Adam Roben  <aroben@apple.com>
29475
29476         Build fix.
29477
29478         * WebCore.vcproj/WebCore.vcproj: Adding new HitTestResult.{cpp,h}
29479         files.
29480
29481 2006-10-27  Anders Carlsson  <acarlsson@apple.com>
29482
29483         Reviewed by Oliver.
29484
29485         <rdar://problem/4730678> Plug-ins should be able to open URLs
29486
29487         * plugins/win/PluginViewWin.cpp:
29488         (WebCore::PluginViewWin::performRequest):
29489
29490 2006-10-26  Anders Carlsson  <acarlsson@apple.com>
29491
29492         Reviewed by John Sullivan.
29493
29494         <rdar://problem/4764502> PluginStreams should cancel their loader jobs on error
29495
29496         * plugins/win/PluginStreamWin.cpp:
29497         (WebCore::PluginStreamWin::receivedResponse):
29498         (WebCore::PluginStreamWin::didReceiveData):
29499         (WebCore::PluginStreamWin::receivedAllData):
29500         Modify assertions. None of the above functions should be run after aborting the load.
29501
29502 2006-10-26  Anders Carlsson  <acarlsson@apple.com>
29503
29504         Reviewed by Adam.
29505
29506         * plugins/win/PluginDatabaseWin.cpp:
29507         (WebCore::addPluginPath):
29508         (WebCore::PluginDatabaseWin::defaultPluginPaths):
29509         Look for plugins in a plugins directory which is relative to the executable directory.
29510         
29511         (WebCore::PluginDatabaseWin::createPluginView):
29512         Use reverseFind instead of findRev here.
29513         
29514 2006-10-26  Adam Roben  <aroben@apple.com>
29515
29516         Reviewed by Beth.
29517
29518         Fix: <rdar://problem/4799084> Text and dropdown button too close
29519         together in <select>s
29520         Fix: <rdar://problem/4800493> Popup menus should be positioned so that
29521         their text is horizontally aligned with the <select> control's text
29522
29523         * platform/win/PopupMenuWin.cpp:
29524         (WebCore::PopupMenu::calculatePositionAndSize): Switch alignment of LTR
29525         vs. RTL popups, and add padding to align the text.
29526         (WebCore::PopupMenu::paint): Add padding from the <select> control to
29527         align the text with the <select> control's text.
29528         * rendering/RenderThemeWin.cpp: Set svn:eol-style native.
29529         (WebCore::RenderThemeWin::systemFont): Clean up line endings.
29530         (WebCore::RenderThemeWin::adjustMenuListButtonStyle): Add some extra
29531         padding between the dropdown button and text.
29532         (WebCore::RenderThemeWin::paintMenuListButton): Clean up code a bit.
29533
29534 2006-10-26  Adam Roben  <aroben@apple.com>
29535
29536         Forgot to make the change to Release as well in my last checkin.
29537
29538         * WebCore.vcproj/WebCore.vcproj:
29539
29540 2006-10-26  Adam Roben  <aroben@apple.com>
29541
29542         Rubberstamped by Steve.
29543
29544         Add some missing '/d' flags to xcopy calls to only copy headers if
29545         they've been modified.
29546
29547         * WebCore.vcproj/WebCore.vcproj:
29548
29549 2006-10-26  Anders Carlsson  <acarlsson@apple.com>
29550
29551         * platform/win/TemporaryLinkStubs.cpp:
29552         (GraphicsContext::drawLineForMisspellingOrBadGrammar):
29553         Build fix from Oliver.
29554         
29555 2006-10-26  Anders Carlsson  <acarlsson@apple.com>
29556
29557         Reviewed by Adam.
29558
29559         Use FrameLoadRequest and ResourceRequest instead of passing around
29560         the individual components.
29561         
29562         * plugins/win/PluginStreamWin.cpp:
29563         (WebCore::PluginStreamWin::PluginStreamWin):
29564         (WebCore::PluginStreamWin::start):
29565         (WebCore::PluginStreamWin::destroyStream):
29566         * plugins/win/PluginStreamWin.h:
29567         * plugins/win/PluginViewWin.cpp:
29568         (WebCore::PluginRequestWin::PluginRequestWin):
29569         (WebCore::PluginRequestWin::frameLoadRequest):
29570         (WebCore::PluginViewWin::start):
29571         (WebCore::PluginViewWin::performRequest):
29572         (WebCore::PluginViewWin::load):
29573         (WebCore::PluginViewWin::getURLNotify):
29574         (WebCore::PluginViewWin::getURL):
29575         (WebCore::PluginViewWin::handlePost):
29576         * plugins/win/PluginViewWin.h:
29577
29578 2006-10-26  Adam Roben  <aroben@apple.com>
29579
29580         Reviewed by Adele.
29581
29582         Fix: <rdar://problem/4794162> Implement type-ahead find for popup menus
29583         Fix: <rdar://problem/4800486> Pressing TAB while a popup is focused
29584         should close the popup and move selection in the page
29585
29586         * platform/win/PopupMenuWin.cpp:
29587         (WebCore::PopupMenu::PopupMenu): Don't cache the focused index.
29588         (WebCore::PopupMenu::focusedIndex): Always get the focused index from
29589         the HTMLSelectElement.
29590         (WebCore::PopupMenu::setFocusedIndex): Invalidate before calling
29591         valueChanged(), as this will change the result of focusedIndex().
29592         (WebCore::PopupMenu::scrollToRevealSelection):
29593         (WebCore::PopupMenu::updateFromElement): New method to repaint/rescroll
29594         the popup.
29595         (WebCore::PopupWndProc): Send TAB keypresses and printable characters
29596         back to the WebView for handling. Also omove handling of Return/Escape
29597         into the WM_CHAR event, as this is recommended by MSDN.
29598
29599 2006-10-25  Steve Falkenburg  <sfalken@apple.com>
29600
29601         Reviewed by Darin.
29602
29603         Checked in Luke's CG printing code
29604
29605         * bridge/win/FrameWin.cpp:
29606         (WebCore::FrameWin::setupRootForPrinting): Added
29607         (WebCore::FrameWin::computePageRects): Added
29608         * bridge/win/FrameWin.h: Added setupRootForPrinting, computePageRects
29609
29610 2006-10-24  Maciej Stachowiak  <mjs@apple.com>
29611
29612         Reviewed by Oliver.
29613
29614         - updated for ResourceRequest changes.
29615
29616         * plugins/win/PluginStreamWin.cpp:
29617         (WebCore::PluginStreamWin::setRequestHeaders):
29618         * plugins/win/PluginStreamWin.h:
29619         * plugins/win/PluginViewWin.cpp:
29620         (WebCore::PluginViewWin::loadURL):
29621         (WebCore::parseRFC822HeaderFields):
29622         (WebCore::PluginViewWin::handlePost):
29623         * plugins/win/PluginViewWin.h:
29624
29625 2006-10-24  Steve Falkenburg  <sfalken@apple.com>
29626
29627         Build fix for official builds
29628
29629         * WebCore.vcproj/WebCore.make:
29630
29631 2006-10-24  Steve Falkenburg  <sfalken@apple.com>
29632
29633         Fix build so it can be submitted.
29634
29635         * WebCore.vcproj/WebCore.vcproj:
29636         * WebCore.vcproj/merge-opensource.sh:
29637         * rendering/RenderThemeWin.cpp:
29638
29639 2006-10-24  Geoffrey Garen  <ggaren@apple.com>
29640
29641         Rolling back in, now fixed:
29642         
29643         Nixed a few more redundant loading functions in Frame.
29644
29645         * bridge/win/FrameWin.h:
29646         * platform/win/TemporaryLinkStubs.cpp:
29647         (FrameWin::shouldInterruptJavaScript):
29648         (FrameWin::lastEventIsMouseUp):
29649
29650 2006-10-24  Maciej Stachowiak  <mjs@apple.com>
29651
29652         Reviewed by Geoff.
29653
29654         - update for ResourceLoader API changes
29655
29656         * platform/win/TemporaryLinkStubs.cpp:
29657         (WebCore::ServeSynchronousRequest):
29658         * plugins/win/PluginStreamWin.cpp:
29659         (WebCore::PluginStreamWin::start):
29660         (WebCore::PluginStreamWin::receivedAllData):
29661         * plugins/win/PluginStreamWin.h:
29662         * plugins/win/PluginViewWin.cpp:
29663         (WebCore::PluginViewWin::performRequest):
29664
29665 2006-10-24  Geoffrey Garen  <ggaren@apple.com>
29666
29667         Rolling out my last change because it broke the world.
29668         
29669         * bridge/win/FrameWin.h:
29670         * platform/win/TemporaryLinkStubs.cpp:
29671         (FrameWin::openURL):
29672
29673 2006-10-24  Anders Carlsson  <acarlsson@apple.com>
29674
29675         Reviewed by Adam.
29676
29677         <rdar://problem/4760429> Crash in PluginStreamWin::~PluginStreamWin when 
29678         navigating away from mcdonalds.com
29679         
29680         * plugins/win/PluginPackageWin.cpp:
29681         (WebCore::PluginPackageWin::fetchInfo):
29682         Use fastFree instead of free when memory is allocated by fastMalloc. 
29683         If the plugin name or description is null, don't try to fetch info about the plugin.
29684         
29685         * plugins/win/PluginStreamWin.cpp:
29686         (WebCore::PluginStreamWin::setRequestHeaders):
29687         (WebCore::PluginStreamWin::start):
29688         (WebCore::PluginStreamWin::stop):
29689         * plugins/win/PluginStreamWin.h:
29690         Change type of header map to ResourceRequest::HTTPHeaderMap. When a plugin is stopped,
29691         set its state to StreamStopped.
29692         
29693         * plugins/win/PluginViewWin.cpp:
29694         (WebCore::PluginViewWin::loadURL):
29695         (WebCore::parseRFC822HeaderFields):
29696         (WebCore::PluginViewWin::handlePost):
29697         * plugins/win/PluginViewWin.h:
29698         Update for type changes to the header map.
29699
29700 2006-10-24  Geoffrey Garen  <ggaren@apple.com>
29701
29702         Reviewed by Anders.
29703         
29704         Nixed a few more redundant loading functions in Frame.
29705
29706         * bridge/win/FrameWin.h:
29707         * platform/win/TemporaryLinkStubs.cpp:
29708         (FrameWin::shouldInterruptJavaScript):
29709         (FrameWin::lastEventIsMouseUp):
29710
29711 2006-10-23  Geoffrey Garen  <ggaren@apple.com>
29712
29713         Reviewed by Bradee.
29714
29715         Removed methods from BrowserExtension.
29716
29717         * bridge/win/FrameWin.h:
29718         * platform/win/TemporaryLinkStubs.cpp:
29719         (FrameWin::canPaste):
29720         (FrameWin::canGoBackOrForward):
29721         (FrameWin::goBackOrForward):
29722         (FrameWin::getHistoryLength):
29723         (FrameWin::historyURL):
29724         (Page::canRunModal):
29725         (Page::canRunModalNow):
29726         (Page::runModal):
29727         (BrowserExtensionWin::BrowserExtensionWin):
29728
29729 2006-10-23  Adam Roben  <aroben@apple.com>
29730
29731         Reviewed by Adele.
29732
29733         Fix: <rdar://problem/4796994> Styled <select>s should still use Windows
29734         theme
29735
29736         The fix is to do most of our drawing for menulists in
29737         RenderThemeWin::paintMenuListButton (which is called for styled
29738         <select>s), and then do any extra drawing for unstyled <select>s in
29739         RenderThemeWin::paintMenuList.
29740
29741         * rendering/RenderThemeWin.cpp:
29742         (WebCore::RenderThemeWin::getThemeData): Case for
29743         MenulistButtonAppearance should be the same as MenulistAppearance.
29744         (WebCore::RenderThemeWin::paintMenuList): Draw the border, then defer
29745         to paintMenuListButton to handle the rest of painting.
29746         (WebCore::RenderThemeWin::adjustMenuListStyle): Reset the border so we
29747         can draw our own, then defer to adjustMenuListStyle.
29748         (WebCore::RenderThemeWin::adjustMenuListButtonStyle): Code moved from
29749         adjustMenuListStyle, less the call to resetBorder().
29750         (WebCore::RenderThemeWin::paintMenuListButton): Code moved from
29751         paintMenuList, less the border-drawing code.
29752         * rendering/RenderThemeWin.h:
29753
29754 2006-10-23  Adam Roben  <aroben@apple.com>
29755
29756         Reviewed by Adele.
29757
29758         Fix: <rdar://problem/4786759> PageUp/PageDown/Home/End don't work in
29759         <select> menus
29760
29761         * platform/win/PopupMenuWin.cpp:
29762         (WebCore::PopupMenu::setFocusedIndex): Only call ::UpdateWindow if we
29763         didn't scroll, because scrolling will do the update for us.
29764         (WebCore::PopupMenu::focusFirst): New method.
29765         (WebCore::PopupMenu::focusLast): New method.
29766         (WebCore::PopupMenu::down): Add a parameter to specify how far we
29767         should try to move the selection.
29768         (WebCore::PopupMenu::up): Ditto.
29769         (WebCore::PopupMenu::invalidateItem): Cleanup code by using IntRect
29770         instead of RECT.
29771         (WebCore::PopupMenu::scrollTo): Return a boolean to say whether
29772         scrolling actually happened.
29773         (WebCore::PopupMenu::scrollToRevealSelection): Ditto.
29774         (WebCore::PopupWndProc): Handle PageUp/PageDown/Home/End.
29775
29776 2006-10-23  Adam Roben  <aroben@apple.com>
29777
29778         Build fix.
29779
29780         * WebCore.vcproj/WebCore.vcproj: Copy headers from new platform/network
29781         directory and subdirectories.
29782
29783 2006-10-23  Adam Roben  <aroben@apple.com>
29784
29785         Build fix.
29786
29787         * plugins/win/PluginStreamWin.h: Rename methods to match Maciej's
29788         changes.
29789
29790 2006-10-23  Adam Roben  <aroben@apple.com>
29791
29792         Build fix.
29793
29794         * WebCore.vcproj/WebCore.vcproj: Copied AdditionalIncludeDirectories
29795         from Release to All Configurations.
29796
29797 2006-10-23  Maciej Stachowiak  <mjs@apple.com>
29798
29799         Rubber-stamped by Anders.
29800
29801         - fixed for ResourceLoader refactoring.
29802
29803         * platform/network/win/ResourceLoaderWin.cpp:
29804         (WebCore::ResourceLoader::onRequestComplete):
29805         (WebCore::ResourceLoader::fileLoadTimer):
29806         (WebCore::ResourceLoader::cancel):
29807         * plugins/win/PluginStreamWin.cpp:
29808         (WebCore::PluginStreamWin::didReceiveData):
29809         (WebCore::PluginStreamWin::didFinishLoading):
29810         * plugins/win/PluginViewWin.cpp:
29811         (WebCore::PluginViewWin::performRequest):
29812
29813 2006-10-22  Maciej Stachowiak  <mjs@apple.com>
29814
29815         Reviewed by Anders.
29816
29817         - updated for new ResourceLoader file locations.
29818
29819         * WebCore.vcproj/WebCore.vcproj: Updated file paths.
29820         * platform/win/ResourceLoaderWin.cpp: Moved to platform/network/win
29821         * platform/win/ResourceLoaderWin.h: ditto
29822
29823 2006-10-22  Adam Roben  <aroben@apple.com>
29824
29825         Reviewed by Steve.
29826
29827         Fix some crashes caused by the <select> element being detached while
29828         the popup is open.
29829
29830         * platform/win/PopupMenuWin.cpp:
29831         (WebCore::PopupWndProc):
29832
29833 2006-10-21  Adam Roben  <aroben@apple.com>
29834
29835         Reviewed by Anders.
29836
29837         Fix: <rdar://problem/4794151> Popup should scroll to reveal selected
29838         item, not just one line at a time
29839         Fix: <rdar://problem/4794229> Popup hot-tracking should not change text
29840         in <select> control
29841
29842         * platform/win/PopupMenuWin.cpp:
29843         (WebCore::PopupMenu::calculatePositionAndSize): Cleaned up code by
29844         translating into screen coordinates right away.
29845         (WebCore::PopupMenu::setFocusedIndex): Added parameter to specify
29846         whether the text in the <select> control should be updated.
29847         (WebCore::PopupMenu::scrollTo): Extracted scrolling code from
29848         PopupWndProc to here.
29849         (WebCore::PopupMenu::scrollToRevealSelection): New method.
29850         (WebCore::PopupWndProc): Use scrollToRevealSelection() instead of
29851         manually scrolling one line at a time. Fixed a bug in detecting a
29852         mouse drag.  Pass in HDC from ::BeginPaint to PopupMenu::paint.
29853
29854 2006-10-21  Adam Roben  <aroben@apple.com>
29855
29856         Build fix.
29857
29858         * WebCore.vcproj/WebCore.vcproj: Add new DeleteButton* files to
29859         project.
29860
29861 2006-10-20  Steve Falkenburg  <sfalken@apple.com>
29862
29863         Reviewed by Anders.
29864
29865         Turn on CFNetwork
29866
29867         * config.h:
29868
29869 2006-10-20  Steve Falkenburg  <sfalken@apple.com>
29870
29871         Reviewed by Ada.
29872
29873         <rdar://4778502> Boomer userAgent string needs to support pulling in proper build #, plus customization
29874
29875         Useragent/versioning changes
29876         
29877         Stamp auto-generated version number into DLL and into user agent.
29878         Generate a real user agent string instead of hardcoding one.
29879         Support client supplying an application name for the user agent.
29880         Support client overriding the useragent (for debug menu).
29881         Support per-URL user agents (not used at least for now).
29882
29883         * bridge/win/FrameWin.cpp:
29884         (WebCore::FrameWin::userAgent): Now calls userAgentForURL
29885         (WebCore::FrameWin::originalRequestURL): Implemented
29886         * bridge/win/FrameWin.h: changed userAgent to userAgentForURL, added originalRequestURL
29887         * platform/win/TemporaryLinkStubs.cpp: Removed originalRequestURL
29888
29889 2006-10-20  Alice Liu  <alice.liu@apple.com>
29890
29891         Reviewed by Steve.
29892
29893         Adding knowledge of the Editor and EditorClient to Windows WebCore
29894
29895         No layout tests needed
29896         
29897         * WebCore.vcproj/WebCore.vcproj:
29898         added Sound.h, SoundWin.cpp, EditorClient.h, Editor.h&.cpp
29899
29900         * bridge/win/FrameWin.cpp:
29901         (WebCore::FrameWin::FrameWin):
29902         added client to constructor params
29903
29904         * bridge/win/FrameWin.h:
29905         added client to constructor params
29906
29907         * platform/win/SoundWin.cpp: Added.
29908         (WebCore::systemBeep):
29909         Calls windows system beep
29910
29911 2006-10-19  Steve Falkenburg  <sfalken@apple.com>
29912
29913         Reviewed by Adam.
29914
29915         <rdar://4771958> Holding down Ctrl when a redirect happens opens the redirected page in a new tab
29916         
29917         Send triggering event to url selection.
29918
29919         * bridge/win/FrameWin.cpp:
29920         (WebCore::FrameWin::urlSelected): Add triggeringEvent parameter
29921         * bridge/win/FrameWin.h: Add triggeringEvent parameter
29922         * platform/win/PlatformMouseEventWin.cpp:
29923         (WebCore::PlatformMouseEvent::PlatformMouseEvent): Call GetKeyState instead of GetAsyncKeyState
29924         * platform/win/WheelEventWin.cpp:
29925         (WebCore::PlatformWheelEvent::PlatformWheelEvent): Call GetKeyState instead of GetAsyncKeyState
29926
29927 2006-10-19  Adam Roben  <aroben@apple.com>
29928
29929         Reviewed by Ada.
29930
29931         This is a partial reimplementation of PopupMenu for Windows. The old
29932         implementation used the Win32 ListBox control, but as we needed to
29933         customize the behavior more and more it began to make sense to roll our
29934         own popup from scratch. That is what this patch accomplishes. And...
29935
29936         Fix: <rdar://problem/4709416>
29937         Implement mouse hot-tracking for <select> menus
29938         Fix: <rdar://problem/4786763>
29939         Can select disabled options in <select> menus using mouse
29940         (It was easier to implement these than to leave them broken.)
29941
29942         * WebCore.vcproj/WebCore.vcproj: Removed PopupMenu.cpp from project.
29943         * platform/win/PopupMenuWin.cpp: Carnage. PopupMenu has gained a slew
29944         of new private instance variables to maintain the window state.
29945         m_container has been removed as it is no longer needed.
29946         (WebCore::PopupMenu::PopupMenu): Initialize new variables.
29947         (WebCore::PopupMenu::~PopupMenu): Clean up new variables.
29948         (WebCore::PopupMenu::show): Now that we don't have m_container, m_popup
29949         gets the WS_BORDER and WS_POPUP styles. Also moved code to animate the
29950         window out of the old PopupMenu::setPositionAndSize() into this method
29951         since it fits the purpose of this method better.
29952         (WebCore::PopupMenu::hide):
29953         (WebCore::PopupMenu::calculatePositionAndSize): Renamed from
29954         setPositionAndSize(), as this method no longer actually sets the window
29955         position and size, just calculates it. It also now makes sure the
29956         window is sized to never show partial items, and takes into account the
29957         window's border when calculating the size.
29958         (WebCore::PopupMenu::setFocusedIndex): New method to handle setting the
29959         selected index of the <select> and highlighting the item in the popup menu.
29960         (WebCore::PopupMenu::down): Use setSelectedIndex() to do the dirty work.
29961         (WebCore::PopupMenu::up): Ditto.
29962         (WebCore::PopupMenu::invalidateItem): New method to invalidate the
29963         rectangle in the popup menu for this item.
29964         (WebCore::PopupMenu::clientRect): New method to calculate an IntRect
29965         for the client area of the window.
29966         (WebCore::PopupMenu::incrementWheelDelta): New method to add the wheel
29967         delta obtained from a WM_MOUSEWHEEL message to any pre-existing delta.
29968         (WebCore::PopupMenu::reduceWheelDelta): New method to reduce the
29969         pre-existing wheel delta by a given amount towards 0.
29970         (WebCore::PopupMenu::paint): Does the work that PopupMenu::drawItem
29971         did, but for every item contained within the damageRect. Can also paint
29972         into a passed-in HDC (needed for window animations and smooth-scrolling).
29973         (WebCore::registerPopup): Changed a void* to a PopupMenu*, since that's
29974         what it really is.
29975         (WebCore::PopupWndProc): Added code to handle all the messages any
29976         self-respecting window would handle, and removed messages only relevant
29977         to the ListBox control.
29978         * platform/win/TemporaryLinkStubs.cpp: Removed unneeded #include.
29979
29980 2006-10-19  Adam Roben  <aroben@apple.com>
29981
29982         Rubberstamped by Maciej.
29983
29984         Build fix.
29985
29986         * bridge/win/FrameWin.cpp:
29987         (WebCore::FrameWin::submitForm):
29988
29989 2006-10-19  Maciej Stachowiak  <mjs@apple.com>
29990
29991         Reviewed by Steve.
29992
29993         - speculative build fix for Windows for my recent changes.
29994
29995         * bridge/win/FrameWin.cpp:
29996         (WebCore::FrameWin::submitForm):
29997
29998 2006-10-19  Anders Carlsson  <acarlsson@apple.com>
29999
30000        * platform/win/TemporaryLinkStubs.cpp:
30001         (WebCore::ResourceLoader::retrieveResponseEncoding):
30002         Build fix.
30003
30004 2006-10-18  Maciej Stachowiak  <mjs@apple.com>
30005
30006         Reviewed by Geoff.
30007
30008         - remove remnants of KXMLCore name.
30009
30010         * WebCore.vcproj/WebCore.vcproj:
30011         * config.h:
30012
30013 2006-10-18  Steve Falkenburg  <sfalken@apple.com>
30014
30015         Fix build
30016
30017         * platform/win/TemporaryLinkStubs.cpp:
30018         (BrowserExtensionWin::historyURL):
30019         (BrowserExtensionWin::BrowserExtensionWin):
30020
30021 2006-10-17  Steve Falkenburg  <sfalken@apple.com>
30022
30023         Build fix
30024
30025         * platform/win/TemporaryLinkStubs.cpp:
30026         (BrowserExtensionWin::createNewWindow):
30027
30028 2006-10-17  Geoffrey Garen  <ggaren@apple.com>
30029
30030         Reviewed by Anders.
30031         
30032         Added WindowFeatures.h to the project.
30033
30034         * WebCore.vcproj/WebCore.vcproj:
30035
30036 2006-10-17  Steve Falkenburg  <sfalken@apple.com>
30037
30038         Reviewed by Maciej.
30039
30040         Turn off a very noisy warning (unknown pragma) caused by an Interfacer include
30041
30042         * WebCore.vcproj/WebCore.vcproj:
30043
30044 2006-10-17  Oliver Hunt  <oliver@apple.com>
30045
30046         Reviewed by Brady.
30047
30048         Fixed alpha in favicons, added composite operation conversion
30049         for cg
30050         
30051         rdar://problem/4758934
30052
30053         * platform/win/GraphicsContextWin.cpp:
30054         (WebCore::GraphicsContext::setCompositeOperation):
30055         * platform/win/ImageWin.cpp:
30056         (WebCore::Image::getHBITMAP):
30057         * platform/win/TemporaryLinkStubs.cpp:
30058         (GraphicsContext::drawLineForMisspelling):
30059
30060 2006-10-15  Geoffrey Garen  <ggaren@apple.com>
30061
30062         Reviewed by Adam.
30063
30064         Added HTMLFrameElementBase to the project.
30065         
30066         * WebCore.vcproj/WebCore.vcproj:
30067
30068 2006-10-17  Adam Roben  <aroben@apple.com>
30069
30070         Reviewed by Geoff.
30071
30072         A couple of cleanups that Geoff suggested after my last checkin.
30073
30074         * platform/win/PopupMenuWin.cpp:
30075         (WebCore::PopupMenu::setPositionAndSize):
30076
30077 2006-10-17  Adam Roben  <aroben@apple.com>
30078
30079         Reviewed by Adele.
30080
30081         Fix: <rdar://problem/4772506> <select> popup menu should not clip items
30082         when width: is set.
30083
30084         Popups are now sized and positioned as follows:
30085         1. Popups are at least as wide as the <select> control on the page.
30086         2. Popups for LTR <select>s are right-aligned with the <select>, popups
30087            for RTL <select>s are left-aligned. This means the scrollbar in the
30088            popup will always line up with the dropdown button in the <select>.
30089         3. Popups try to be wide enough to fit their widest item, but will
30090            shrink to ensure they don't extend off the screen.
30091
30092         * platform/win/PopupMenuWin.cpp:
30093         (WebCore::PopupMenu::setPositionAndSize):
30094
30095 2006-10-16  Adam Roben  <aroben@apple.com>
30096
30097         Reviewed by Kevin.
30098
30099         Fix: <rdar://problem/4758923> <select> menu text doesn't draw right
30100         aligned on right-to-left sites
30101
30102         * platform/win/PopupMenuWin.cpp:
30103         (WebCore::PopupMenu::show): Pass appropriate styles to CreateWindowEx
30104         so that we get a left-aligned scrollbar in RTL popups.
30105         (WebCore::PopupMenu::drawItem): Set text to be right-aligned and draw
30106         RTL when direction:rtl is set.
30107         (WebCore::PopupWndProc): Add 1px of vertical height to each menu item
30108         to match RenderListBox.
30109         * rendering/RenderThemeWin.cpp:
30110         (WebCore::RenderThemeWin::paintMenuList): Draw the dropdown button on
30111         the left when in RTL.
30112         (WebCore::RenderThemeWin::adjustMenuListStyle): Set padding to allow
30113         for the dropdown button being on the left in RTL.
30114
30115 2006-10-16  Adam Roben  <aroben@apple.com>
30116
30117         Reviewed by John.
30118
30119         Forgot to save these changes John suggested before checking in.
30120
30121         * platform/win/PopupMenuWin.cpp:
30122         (WebCore::PopupMenu::drawItem):
30123
30124 2006-10-16  Adam Roben  <aroben@apple.com>
30125
30126         Reviewed by John.
30127
30128         Fix: <rdar://problem/4709480> Implement option groups
30129         Fix: <rdar://problem/4785693> Use CG to draw popup menu items
30130         Fix: <rdar://problem/4709487> Implement separators in <select> popups
30131         Fix: <rdar://problem/4709358> Move CreateWindowEx calls out of PopupMenu constructor
30132
30133         * platform/win/PopupMenuWin.cpp: Added some now-required #includes,
30134         moved some constants into the WebCore namespace.
30135         (WebCore::PopupMenu::PopupMenu): Moved CreateWindowEx calls into PopupMenu::show().
30136         (WebCore::PopupMenu::show): Pass LBS_OWNERDRAWFIXED to CreateWindowEx
30137         to assume responsibility for drawing menu itesm. Removed call to set
30138         the font on the popup menu, as CG will take care of this.
30139         (WebCore::addString): Added to help with the PopupMenu::add* methods.
30140         (WebCore::PopupMenu::addOption): Use addString.
30141         (WebCore::PopupMenu::addGroupLabel): Ditto, and moved from TemporaryLinkStubs.cpp.
30142         (WebCore::PopupMenu::addSeparator): Ditto.
30143         (WebCore::PopupMenu::down): Skip items that are not enabled <option>
30144         elements, and tell the popup menu to set the selection to the element
30145         we end up on.
30146         (WebCore::PopupMenu::up): Ditto.
30147         (WebCore::PopupMenu::drawItem): Added. This is the method that is
30148         called to draw each item in the menu.
30149         (WebCore::PopupWndProc): Add cases for WM_MEASUREITEM and WM_DRAWITEM
30150         messages (required now that we're drawing the menu items ourselves). In
30151         the cases for arrow key presses, return -2 to signify that we're
30152         handling all aspects of changing the selection.
30153         * platform/win/TemporaryLinkStubs.cpp: Removed PopupMenu::addSeparator
30154         and PopupMenu::addGroupLabel.
30155
30156 2006-10-15  Adam Roben  <aroben@apple.com>
30157
30158         Build fix.
30159
30160         Merge OpenSource r17056 to TemporaryLinkStubs.cpp.
30161
30162         * platform/win/TemporaryLinkStubs.cpp:
30163         (WebCore::CacheObjectExpiresTime):
30164         (WebCore::ResponseIsMultipart):
30165         (WebCore::ResponseMIMEType):
30166         (WebCore::IsResponseURLEqualToURL):
30167         (WebCore::ResponseURL):
30168         (WebCore::CachedResource::setResponse):
30169         (WebCore::CachedResource::setAllData):
30170
30171 2006-10-13  Maciej Stachowiak  <mjs@apple.com>
30172
30173         Reviewed by Darin.
30174
30175         - split FrameLoadRequest off from ResourceRequest - it's a ResourceRequest plus frame name plus lockHistory bool
30176
30177         * WebCore.vcproj/WebCore.vcproj:
30178         * bridge/win/FrameWin.cpp:
30179         (WebCore::FrameWin::urlSelected):
30180         (WebCore::FrameWin::submitForm):
30181         * bridge/win/FrameWin.h:
30182         * platform/win/TemporaryLinkStubs.cpp:
30183         (BrowserExtensionWin::createNewWindow):
30184         (IconLoader::notifyIconChanged):
30185
30186 2006-10-13  Dave Hyatt  <hyatt@apple.com>
30187
30188         Make form controls work inside transparency layers by having
30189         them draw into bitmap that is then turned into a CGImageRef
30190         and blended into the CG transparency layer.
30191
30192         Reviewed by aroben
30193
30194         * platform/cg/GraphicsContextPlatformPrivate.h:
30195         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
30196         (WebCore::GraphicsContextPlatformPrivate::beginTransparencyLayer):
30197         (WebCore::GraphicsContextPlatformPrivate::endTransparencyLayer):
30198         * platform/win/GraphicsContextWin.cpp:
30199         (WebCore::GraphicsContext::getWindowsContext):
30200         (WebCore::GraphicsContext::releaseWindowsContext):
30201         * platform/win/IconWin.cpp:
30202         (WebCore::Icon::paint):
30203         * platform/win/PlatformScrollBar.h:
30204         * platform/win/PlatformScrollBarWin.cpp:
30205         (WebCore::PlatformScrollbar::PlatformScrollbar):
30206         (WebCore::PlatformScrollbar::paint):
30207         (WebCore::PlatformScrollbar::paintButton):
30208         (WebCore::PlatformScrollbar::paintTrack):
30209         (WebCore::PlatformScrollbar::paintThumb):
30210         * rendering/RenderThemeWin.cpp:
30211         (WebCore::RenderThemeWin::RenderThemeWin):
30212         (WebCore::drawControl):
30213
30214 2006-10-12  Dave Hyatt  <hyatt@apple.com>
30215
30216         Voting Cairo off the island
30217
30218         or
30219
30220         Jeff Probst: "Cairo, the tribe has spoken.  It's time for you
30221         to go."
30222
30223         * WebCore.vcproj/WebCore.vcproj:
30224         * platform/win/FontDataWin.cpp:
30225         (WebCore::FontData::platformInit):
30226         (WebCore::FontData::platformDestroy):
30227         (WebCore::FontData::platformWidthForGlyph):
30228         * platform/win/FontPlatformData.h:
30229         (WebCore::FontPlatformData::FontPlatformData):
30230         (WebCore::FontPlatformData::hfont):
30231         (WebCore::FontPlatformData::cgFont):
30232         (WebCore::FontPlatformData::operator==):
30233         * platform/win/FontPlatformDataWin.cpp:
30234         * platform/win/FontWin.cpp:
30235         (WebCore::Font::drawGlyphs):
30236         * platform/win/GraphicsContextWin.cpp:
30237         * platform/win/IconWin.cpp:
30238         * platform/win/ImageWin.cpp:
30239         (WebCore::Image::loadPlatformResource):
30240         * platform/win/TemporaryLinkStubs.cpp:
30241         (GraphicsContextPlatformPrivate::clip):
30242         (GraphicsContext::drawLineForMisspelling):
30243
30244 2006-10-12  Adele Peterson  <adele@apple.com>
30245
30246         RS by Geoff.
30247
30248         Renamed uploadControlDetaching to disconnectUploadControl.
30249
30250         * platform/win/FileChooserWin.cpp:
30251         (WebCore::FileChooser::disconnectUploadControl):
30252
30253 2006-10-12  Adele Peterson  <adele@apple.com>
30254
30255         Reviewed by Alice. 
30256
30257         Fixed a small oversight from the last checkin.  The populate method was calling itself, 
30258         instead of the newly renamed addItems method.
30259
30260         * platform/win/PopupMenuWin.cpp:
30261         (WebCore::PopupMenu::populate):
30262
30263 2006-10-12  Adam Roben  <aroben@apple.com>
30264
30265         Reviewed by Adele.
30266
30267         Move popup menu code out of rendering/ and into platform/.
30268         RenderPopupMenu becomes PopupMenu, the
30269         RenderPopupMenuMac/RenderPopupMenuWin subclasses and all the associated
30270         virtual methods go away, RenderTheme gets to stop worrying about popup
30271         menus, PopupMenu becomes ref-counted, and everyone becomes happy.
30272
30273         Also fixes <rdar://problem/4710456> Get rid of RenderPopupMenu{Win,Mac}
30274         classes.
30275
30276         * WebCore.vcproj/WebCore.vcproj: Move files within project.
30277         * platform/win/PopupMenuWin.cpp: Moved from
30278         rendering/RenderPopupMenuWin.cpp. Rename RenderPopupMenuWin to
30279         PopupMenu.
30280         (WebCore::PopupMenu::PopupMenu):
30281         (WebCore::PopupMenu::~PopupMenu):
30282         (WebCore::PopupMenu::clear):
30283         (WebCore::PopupMenu::populate):
30284         (WebCore::PopupMenu::show):
30285         (WebCore::PopupMenu::hide):
30286         (WebCore::PopupMenu::setPositionAndSize):
30287         (WebCore::PopupMenu::addOption):
30288         (WebCore::PopupMenu::focusedIndex): New method to get the index of the
30289         element that is currently highlighted. This won't always be the same as
30290         the selectedIndex because of mouse hot-tracking.
30291         (WebCore::PopupMenu::down):
30292         (WebCore::PopupMenu::up):
30293         (WebCore::registerPopup):
30294         (WebCore::PopupWndProc): Use focusedIndex() instead of sending messages
30295         to the popup window.
30296         * platform/win/TemporaryLinkStubs.cpp: Rename RenderPopupMenuWin to PopupMenu.
30297         (PopupMenu::addSeparator):
30298         (PopupMenu::addGroupLabel):
30299         * rendering/RenderPopupMenuWin.cpp: Removed.
30300         * rendering/RenderPopupMenuWin.h: Removed.
30301         * rendering/RenderThemeWin.cpp: Get rid of createPopupMenu() method.
30302         * rendering/RenderThemeWin.h: Ditto.
30303
30304 2006-10-12  Dave Hyatt  <hyatt@apple.com>
30305
30306         Implement full-blown double buffering (keeping a bitmap in the WebView that holds the backing store for it).
30307         
30308         Reviewed by mjs
30309
30310         * bridge/win/FrameWin.cpp:
30311         (WebCore::FrameWin::addToDirtyRegion):
30312         (WebCore::FrameWin::scrollBackingStore):
30313         (WebCore::FrameWin::updateBackingStore):
30314         * bridge/win/FrameWin.h:
30315         * platform/win/PlatformScrollBar.h:
30316         * platform/win/PlatformScrollBarWin.cpp:
30317         (WebCore::PlatformScrollbar::windowClipRect):
30318         * platform/win/ScrollViewWin.cpp:
30319         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
30320         (WebCore::ScrollView::ScrollViewPrivate::windowClipRect):
30321         (WebCore::ScrollView::updateContents):
30322         (WebCore::ScrollView::updateScrollbars):
30323         (WebCore::ScrollView::windowResizerRect):
30324         (WebCore::ScrollView::addToDirtyRegion):
30325         (WebCore::ScrollView::scrollBackingStore):
30326         (WebCore::ScrollView::updateBackingStore):
30327         * platform/win/WidgetWin.cpp:
30328         (WebCore::Widget::suppressInvalidation):
30329         (WebCore::Widget::invalidateRect):
30330         * plugins/win/PluginViewWin.cpp:
30331         (WebCore::PluginViewWin::windowClipRect):
30332
30333 2006-10-11  Adam Roben  <aroben@apple.com>
30334
30335         Rubberstamped by Brady.
30336
30337         Clean up logic in Icon::newIconForFile.
30338
30339         * platform/win/IconWin.cpp:
30340         (WebCore::Icon::newIconForFile): Error case should return early.
30341
30342 2006-10-11  Adam Roben  <aroben@apple.com>
30343
30344         Reviewed by Steve.
30345
30346         Fixes <rdar://problem/4777719>
30347         Icons don't paint with CG
30348
30349         * platform/win/IconWin.cpp:
30350         (WebCore::Icon::paint): Remove Cairo-specific code now that we have
30351         GraphicsContextWin.
30352
30353 2006-10-11  Adam Roben  <aroben@apple.com>
30354
30355         Rubberstamped by Anders.
30356
30357         Clean up FileChooser::create, Icon::create.
30358
30359         * platform/win/FileChooserWin.cpp:
30360         (WebCore::FileChooser::create): Just return a FileChooser* and let the
30361         implicit cast happen.
30362         * platform/win/IconWin.cpp:
30363         (WebCore::Icon::newIconForFile): Ditto for Icon*.
30364
30365 2006-10-10  Adam Roben  <aroben@apple.com>
30366
30367         Reviewed by Oliver.
30368
30369         Fixes <rdar://problem/4731316>
30370         Crash when <input type="file"> element removed while file chooser is open
30371
30372         * platform/win/FileChooserWin.cpp: Make FileChooser ref-counted.
30373         (WebCore::FileChooser::create):
30374         (WebCore::FileChooser::openFileChooser): Add a protector RefPtr around
30375         the call to GetOpenFileName so we don't get deleted while the file
30376         chooser window is open.
30377
30378 2006-10-10  Adam Roben  <aroben@apple.com>
30379
30380         Reviewed by Anders.
30381
30382         Fixes <rdar://problem/4772428>
30383         <select> popup menus positioned incorrectly within frames
30384
30385         * rendering/RenderPopupMenuWin.cpp:
30386         (WebCore::RenderPopupMenuWin::setPositionAndSize): Use
30387         contentsToWindow() instead of scrollOffset() to correct menu location.
30388
30389 2006-10-10  Adam Roben  <aroben@apple.com>
30390
30391         Reviewed by Adele.
30392
30393         Fixes <rdar://problem/4763246>
30394         Using arrow keys in <select> popup fires onChange event
30395
30396         Also updates text shown in <select> element on page when using arrow
30397         keys to change selection within the popup menu, and makes onChange fire
30398         in the same cases as Firefox/IE.
30399
30400         * rendering/RenderPopupMenuWin.cpp:
30401         (WebCore::RenderPopupMenuWin::down): Update text of the <select>
30402         control. Change call to valueChanged() so that onChange doesn't fire.
30403         (WebCore::RenderPopupMenuWin::up): Ditto.
30404         (WebCore::PopupWndProc): Don't fire onChange anytime selection changes.
30405         Fire onChange when pressing Enter
30406
30407 2006-10-09  Anders Carlsson  <acarlsson@apple.com>
30408
30409         Reviewed by Maciej.
30410
30411         Fix <rdar://problem/4756255>
30412         PDF/Acrobat Reader plugin don't work
30413         
30414         * bridge/win/FrameWin.cpp:
30415         (WebCore::FrameWin::getObjectInstanceForWidget):
30416         (WebCore::FrameWin::getEmbedInstanceForWidget):
30417         Implement these, getting the instance from the plugin view.
30418         
30419         * platform/win/TemporaryLinkStubs.cpp:
30420         Remove functions that are now implemented.
30421         
30422         * plugins/win/PlugInInfoStoreWin.cpp:
30423         (WebCore::PlugInInfoStore::pluginCount):
30424         (WebCore::PlugInInfoStore::supportsMIMEType):
30425         Implement this, returning whether we a plugin exists for a given mime type.
30426         
30427         * plugins/win/PluginDatabaseWin.cpp:
30428         (WebCore::parseVersionString):
30429         (WebCore::compareVersions):
30430         New functions for handling versions.
30431         
30432         (WebCore::addMozillaPluginPaths):
30433         (WebCore::addWindowsMediaPlayerPluginPath):
30434         (WebCore::addQuickTimePluginPath):
30435         (WebCore::addJavaPluginPath):
30436         (WebCore::addAdobeAcrobatPluginPath):
30437         (WebCore::PluginDatabaseWin::defaultPluginPaths):
30438         Factor out checks into separate functions, add checks for Java and Adobe Acrobat.
30439
30440         (WebCore::PluginDatabaseWin::isMIMETypeRegistered):
30441         Handle null MIME types.
30442         
30443         * plugins/win/PluginPackageWin.cpp:
30444         (WebCore::PluginPackageWin::load):
30445         Add some missing functions. Unload the library if the load failed.
30446         
30447         * plugins/win/PluginViewWin.cpp:
30448         (WebCore::PluginViewWin::getValue):
30449         Uncomment code for getting the element object.
30450         
30451         (WebCore::PluginViewWin::bindingInstance):
30452         * plugins/win/PluginViewWin.h:
30453         New function which fetches the plugin NPObject and wraps it in an instance.
30454
30455 2006-10-09  Anders Carlsson  <acarlsson@apple.com>
30456
30457         Reviewed by Steve.
30458
30459         Fix <rdar://problem/4773320>
30460         Safari didn't pick up quicktime that was already installed
30461         
30462         * plugins/win/PluginDatabaseWin.cpp:
30463         (WebCore::PluginDatabaseWin::defaultPluginPaths):
30464         
30465 2006-10-09  Anders Carlsson  <acarlsson@apple.com>
30466
30467         * WebCore.vcproj/WebCore.vcproj:
30468         * bridge/win/FrameWin.h:
30469         * platform/win/TemporaryLinkStubs.cpp:
30470         (FrameWin::createJavaAppletWidget):
30471         Fix build.
30472
30473 2006-10-09  Adam Roben  <aroben@apple.com>
30474
30475         Reviewed by Adele.
30476
30477         Fixes <rdar://problem/4773142>
30478         Crash in Settings::mediumFontSize() on ebay.com
30479
30480         Call cancelAndClear() from ~FrameWin (just like Mac does) so we don't
30481         end up calling the Frame::saveDocumentState, which is pure virtual.
30482
30483         * bridge/win/FrameWin.cpp:
30484         (WebCore::FrameWin::~FrameWin):
30485
30486 2006-10-08  Adam Roben  <aroben@apple.com>
30487
30488         Reviewed by Maciej.
30489
30490         Port of OpenSource r16526, r16528
30491
30492         Break up ResourceLoaderWndProc into callback functions.
30493
30494         * platform/win/ResourceLoaderWin.cpp: Fix up #includes
30495         (WebCore::): Remove loadStatusMessage, struct JobLoadStatus, add
30496         messageHandlers array.
30497         (WebCore::ResourceLoaderWndProc): Split handling of different messages
30498         into callbacks.
30499         (WebCore::ResourceLoader::onHandleCreated): New callback.
30500         (WebCore::ResourceLoader::onRequestRedirected): New callback.
30501         (WebCore::ResourceLoader::onRequestComplete): New callback.
30502         (WebCore::initializeOffScreenResourceLoaderWindow): No need to register
30503         loadStatusMessage anymore.
30504         (WebCore::transferJobStatusCallback): Change how information is passed
30505         into ResourceLoaderWndProc.
30506
30507 2006-10-08  Dave Hyatt  <hyatt@apple.com>
30508
30509         Add support for the Win2k/Classic theme for all controls.
30510
30511         * rendering/RenderThemeWin.cpp:
30512         (WebCore::RenderThemeWin::buttonTheme):
30513         (WebCore::RenderThemeWin::textFieldTheme):
30514         (WebCore::RenderThemeWin::menuListTheme):
30515         (WebCore::RenderThemeWin::supportsHover):
30516         (WebCore::RenderThemeWin::determineClassicState):
30517         (WebCore::RenderThemeWin::getClassicThemeData):
30518         (WebCore::RenderThemeWin::getThemeData):
30519         (WebCore::drawControl):
30520         (WebCore::RenderThemeWin::paintButton):
30521         (WebCore::RenderThemeWin::paintTextField):
30522         (WebCore::RenderThemeWin::paintMenuList):
30523         * rendering/RenderThemeWin.h:
30524         (WebCore::ThemeData::m_state):
30525
30526 2006-10-07  Steve Falkenburg  <sfalken@apple.com>
30527
30528         Reviewed by Adam.
30529
30530         Fix <rdar://4772205> Regression (r10623): WinInet loader doesn't ever write to the cache.        
30531
30532         * platform/win/ResourceLoaderWin.cpp:
30533         (WebCore::ResourceLoaderWndProc): Apply POST related flags only for posts.
30534         (WebCore::ResourceLoader::startHTTPRequest): Don't add no-cache-write flag to non-post transactions.
30535
30536 2006-10-07  Dave Hyatt  <hyatt@apple.com>
30537
30538         Add code to paint the Windows 2000 and "Windows Classic" theme look for scrollbars.
30539
30540         * platform/win/PlatformScrollBarWin.cpp:
30541         (WebCore::PlatformScrollbar::paintButton):
30542         (WebCore::PlatformScrollbar::paintTrack):
30543         (WebCore::PlatformScrollbar::paintThumb):
30544         (WebCore::PlatformScrollbar::paintGripper):
30545
30546 2006-10-07  Dave Hyatt  <hyatt@apple.com>
30547
30548         Make sure frames and iframes honor scrolling="no" and
30549         margins.
30550
30551         * bridge/win/FrameWin.cpp:
30552         (WebCore::FrameWin::createFrame):
30553
30554 2006-10-07  Dave Hyatt  <hyatt@apple.com>
30555
30556         Fix the resizer rect so that it is in the ScrollView's coordinate space and not in the document's coordinate space.
30557         (Fixes all the layout errors with the scrollbar overlapping the resizer.)
30558         
30559         Fill scroll corners with white, since it matches Mac (and our chosen resizer look) and looks nicer anyway.
30560         
30561         * platform/win/ScrollViewWin.cpp:
30562         (WebCore::ScrollView::updateScrollbars):
30563         (WebCore::ScrollView::paint):
30564
30565 2006-10-06  Dave Hyatt  <hyatt@apple.com>
30566
30567         Make sure to update plugin clip regions when scrollbars come and go on a scrollview.
30568        
30569         * platform/win/ScrollViewWin.cpp:
30570         (WebCore::ScrollView::updateScrollbars):
30571
30572 2006-10-06  Dave Hyatt  <hyatt@apple.com>
30573
30574         Revise the cached clip rect so that it is in the HWND's coordinate space.  This way SetWindowRgn
30575         doesn't get wastefully called when the plugin is scrolled.
30576        
30577         * plugins/win/PluginViewWin.cpp:
30578         (WebCore::PluginViewWin::updateHwnd):
30579
30580 2006-10-06  Dave Hyatt  <hyatt@apple.com>
30581
30582         Implement flawless clipping of windowed plugins, including
30583         respecting nested frames, CSS overflow and CSS clip.  (This
30584         puts Boomer way ahead of Mac as far as plugin clipping is
30585         concerned).
30586         
30587         Implement support for correct blitting of scrolled subframes,
30588         even when clipped by enclosing scrollviews.
30589
30590         Fix a crash caused by focused children not being cleaned up
30591         when they are removed from a scrollview.
30592
30593         * platform/win/ScrollViewWin.cpp:
30594         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
30595         (WebCore::ScrollView::setFrameGeometry):
30596         (WebCore::ScrollView::addChild):
30597         (WebCore::ScrollView::removeChild):
30598         (WebCore::ScrollView::geometryChanged):
30599         * plugins/win/PluginViewWin.cpp:
30600         (WebCore::PluginViewWin::updateHwnd):
30601         (WebCore::PluginViewWin::windowClipRect):
30602         (WebCore::PluginViewWin::setFrameGeometry):
30603         (WebCore::PluginViewWin::geometryChanged):
30604         * plugins/win/PluginViewWin.h:
30605
30606 2006-10-06  Geoffrey Garen  <ggaren@apple.com>
30607
30608         Fixed <rdar://4768789> Crash on ebay.com in Frame::didOpenURL
30609         
30610         The issue was a resource loader making a callback to a
30611         frame after the frame had been destroyed. This doesn't happen on Mac
30612         because Mac WebKit cancels all loads before tearing down frames.
30613         
30614         The solution is to add a callback to Win WebKit to allow a frame
30615         to cancel its main resource load. This is a temporary work-around.
30616         It is temporary because it doesn't address pending subresource loads.
30617         The long-term solution we anticipate is to have a legitimate loader
30618         inside WebCore.
30619
30620         * ChangeLog:
30621         * bridge/win/FrameWin.cpp:
30622         (WebCore::FrameWin::~FrameWin):
30623         * bridge/win/FrameWin.h:
30624
30625 2006-10-06  Steve Falkenburg  <sfalken@apple.com>
30626
30627         Reviewed by Adam, Lou.
30628
30629         Resizer fixes.
30630         We now properly invalidate and draw overlapping contents or opaque.
30631
30632         * platform/win/ScrollViewWin.cpp:
30633         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
30634         (WebCore::ScrollView::updateScrollbars):
30635         (WebCore::ScrollView::resizerOverlapsContent):
30636
30637 2006-10-06  Anders Carlsson  <acarlsson@apple.com>
30638
30639         Reviewed by Adam.
30640
30641         * plugins/win/PluginDatabaseWin.cpp:
30642         (WebCore::PluginDatabaseWin::defaultPluginPaths):
30643         Add (commented out) WMP plugin check.
30644
30645 2006-10-06  Anders Carlsson  <acarlsson@apple.com>
30646
30647         Reviewed by Brady and Geoff.
30648
30649         <rdar://problems/4769023>
30650         Crash on cnettv.com - PluginStreamWin::receivedResponse
30651         
30652         * platform/win/ResourceLoaderWin.cpp:
30653         (WebCore::ResourceLoaderWndProc):
30654         If the Content-Type header is missing, try to figure o ut the content type
30655         from the file extension. Failing that, just use "application/octet-stream".
30656
30657 2006-10-06  Adam Roben  <aroben@apple.com>
30658
30659         Reviewed by Maciej.
30660
30661         Some loader improvements, courtesy of Steve.
30662
30663         Functionally, the improvements are these:
30664         1. Support HTTP Authentication
30665         2. Respect WinInet errors better
30666
30667         There are also some general code cleanups, like extracting the creation
30668         of an HTTP request into its own method.
30669
30670         * platform/win/ResourceLoaderWin.cpp: Add dwError field to
30671         JobLoadStatus to store WinInet error codes. Also removed the
30672         globalInternetHandle() function as the global HINTERNET is now only
30673         needed within startHTTPRequest.
30674         (WebCore::ResourceLoaderWndProc): Respect error codes and add HTTP
30675         Authentication support. Also, process HTTP status codes as ints instead
30676         of strings.
30677         (WebCore::ResourceLoaderInternal::~ResourceLoaderInternal): Cleanup
30678         m_formData
30679         (WebCore::transferJobStatusCallback): Cleanup the code, and set
30680         dwError.
30681         (WebCore::ResourceLoader::startHTTPRequest): New method to start a new
30682         HTTP request.
30683         (WebCore::ResourceLoader::start): Restructure code.
30684
30685 2006-10-06  Dave Hyatt  <hyatt@apple.com>
30686
30687         Fix the plugins on cnn.com.  Don't let the scroll view move child plugins around if it hasn't even been parented yet.
30688         
30689         Fix an assert in widget destructors caused by not unparenting a ScrollView's scrollbars in its destructor.
30690         
30691         * platform/win/ScrollViewWin.cpp:
30692         (WebCore::ScrollView::ScrollViewPrivate::~ScrollViewPrivate):
30693         (WebCore::ScrollView::setFrameGeometry):
30694
30695 2006-10-06  Dave Hyatt  <hyatt@apple.com>
30696
30697         Make sure that plugin windows get properly moved if an ancestor scrollview is shifted without changing its size (meaning
30698         that layout doesn't get called on the scrollview to update the widget positions).
30699         
30700         Fixes the plugins on osnews.com.
30701         
30702         * platform/win/ScrollViewWin.cpp:
30703         (WebCore::ScrollView::setFrameGeometry):
30704
30705 2006-10-05  Steve Falkenburg  <sfalken@apple.com>
30706
30707         Reviewed by aroben.
30708
30709         Scrollbars now dodge resizing gripper.
30710
30711         * bridge/win/FrameViewWin.cpp:
30712         (WebCore::FrameView::windowResizerRect): added.
30713         * bridge/win/FrameWin.cpp:
30714         (WebCore::FrameWin::windowResizerRect): added.
30715         * bridge/win/FrameWin.h:
30716         * platform/win/ScrollViewWin.cpp:
30717         (WebCore::ScrollView::updateScrollbars): Scrollbars now dodge resizing gripper.
30718
30719 2006-10-05  Dave Hyatt  <hyatt@apple.com>
30720
30721         Fix a bug where scrollbars would incorrectly show up for iframes when they weren't needed.
30722         Change the flow of control to be more like Mac.
30723
30724         * platform/win/ScrollViewWin.cpp:
30725         (WebCore::ScrollView::resizeContents):
30726         (WebCore::ScrollView::setFrameGeometry):
30727
30728 2006-10-05  Dave Hyatt  <hyatt@apple.com>
30729
30730         Fix clipping and transforms by making sure to propagate them as they happen on the CGContext over into the HDC.
30731         
30732         * platform/cg/GraphicsContextPlatformPrivate.h:
30733         * platform/win/GraphicsContextWin.cpp:
30734         (WebCore::CGContextWithHDC):
30735         (WebCore::GraphicsContext::getWindowsContext):
30736         (WebCore::GraphicsContext::releaseWindowsContext):
30737         (WebCore::GraphicsContextPlatformPrivate::save):
30738         (WebCore::GraphicsContextPlatformPrivate::restore):
30739         (WebCore::GraphicsContextPlatformPrivate::clip):
30740         (WebCore::GraphicsContextPlatformPrivate::scale):
30741         (WebCore::GraphicsContextPlatformPrivate::rotate):
30742         (WebCore::GraphicsContextPlatformPrivate::translate):
30743         (WebCore::GraphicsContextPlatformPrivate::concatCTM):
30744         * platform/win/TemporaryLinkStubs.cpp:
30745         (GraphicsContextPlatformPrivate::clip):
30746
30747 2006-10-05  Geoffrey Garen  <ggaren@apple.com>
30748
30749         build fix.
30750         
30751         * platform/win/WidgetWin.cpp:
30752         (WebCore::Widget::~Widget):
30753         (WebCore::Widget::setParent):
30754         (WebCore::Widget::parent):
30755         (WebCore::Widget::removeFromParent):
30756
30757 2006-10-05  David Hyatt  <hyatt@apple.com>
30758
30759         Stub out GraphicsContextPlatformPrivate methods so that the HDC can
30760         be updated when clips/transforms are applied.
30761
30762         Reviewed by darin
30763
30764         * platform/cg/GraphicsContextPlatformPrivate.h:
30765         (WebCore::GraphicsContextPlatformPrivate::save):
30766         (WebCore::GraphicsContextPlatformPrivate::restore):
30767         (WebCore::GraphicsContextPlatformPrivate::clip):
30768         (WebCore::GraphicsContextPlatformPrivate::scale):
30769         (WebCore::GraphicsContextPlatformPrivate::rotate):
30770         (WebCore::GraphicsContextPlatformPrivate::translate):
30771         (WebCore::GraphicsContextPlatformPrivate::concatCTM):
30772
30773 2006-10-05  Adam Roben  <aroben@apple.com>
30774
30775         Build fix.
30776
30777         * platform/win/TemporaryLinkStubs.cpp:
30778         (BrowserExtensionWin::BrowserExtensionWin): Change Frame* to FrameWin*
30779
30780 2006-10-05  Adam Roben  <aroben@apple.com>
30781
30782         Build fix. Remove RenderImageButton.{h,cpp}.
30783
30784         * WebCore.vcproj/WebCore.vcproj:
30785
30786 2006-10-05  Geoffrey Garen  <ggaren@apple.com>
30787
30788         Reviewed by Darin.
30789         
30790         Fixed <rdar://problem/4766987>
30791         
30792         - renamed ScrollBar to Scrollbar and scroll bar to scrollbar in every case
30793         except for file names.
30794         
30795         - fixed RenderLayer to properly tear down scrollbars, removing them from
30796         their parents.
30797
30798         * bridge/win/FrameViewWin.cpp:
30799         (WebCore::FrameView::passMousePressEventToScrollbar):
30800         * platform/win/PlatformScrollBar.h:
30801         (WebCore::):
30802         * platform/win/PlatformScrollBarWin.cpp:
30803         (WebCore::PlatformScrollbar::PlatformScrollbar):
30804         (WebCore::PlatformScrollbar::~PlatformScrollbar):
30805         (WebCore::PlatformScrollbar::updateThumbPosition):
30806         (WebCore::PlatformScrollbar::updateThumbProportion):
30807         (WebCore::PlatformScrollbar::invalidateTrack):
30808         (WebCore::PlatformScrollbar::invalidatePart):
30809         (WebCore::PlatformScrollbar::width):
30810         (WebCore::PlatformScrollbar::height):
30811         (WebCore::PlatformScrollbar::setRect):
30812         (WebCore::PlatformScrollbar::setEnabled):
30813         (WebCore::PlatformScrollbar::paint):
30814         (WebCore::PlatformScrollbar::backButtonRect):
30815         (WebCore::PlatformScrollbar::forwardButtonRect):
30816         (WebCore::PlatformScrollbar::trackRect):
30817         (WebCore::PlatformScrollbar::thumbRect):
30818         (WebCore::PlatformScrollbar::gripperRect):
30819         (WebCore::PlatformScrollbar::splitTrack):
30820         (WebCore::PlatformScrollbar::thumbPosition):
30821         (WebCore::PlatformScrollbar::thumbLength):
30822         (WebCore::PlatformScrollbar::trackLength):
30823         (WebCore::PlatformScrollbar::paintButton):
30824         (WebCore::PlatformScrollbar::paintTrack):
30825         (WebCore::PlatformScrollbar::paintThumb):
30826         (WebCore::PlatformScrollbar::paintGripper):
30827         (WebCore::PlatformScrollbar::hitTest):
30828         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
30829         (WebCore::PlatformScrollbar::handleMouseOutEvent):
30830         (WebCore::PlatformScrollbar::handleMousePressEvent):
30831         (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
30832         (WebCore::PlatformScrollbar::startTimerIfNeeded):
30833         (WebCore::PlatformScrollbar::stopTimerIfNeeded):
30834         (WebCore::PlatformScrollbar::autoscrollPressedPart):
30835         (WebCore::PlatformScrollbar::autoscrollTimerFired):
30836         (WebCore::PlatformScrollbar::pressedPartScrollDirection):
30837         (WebCore::PlatformScrollbar::pressedPartScrollGranularity):
30838         (WebCore::PlatformScrollbar::thumbUnderMouse):
30839         (WebCore::PlatformScrollbar::themeChanged):
30840         (WebCore::PlatformScrollbar::horizontalScrollbarHeight):
30841         (WebCore::PlatformScrollbar::verticalScrollbarWidth):
30842         * platform/win/ScrollViewWin.cpp:
30843         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
30844         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
30845         (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
30846         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
30847         (WebCore::ScrollView::resizeContents):
30848         (WebCore::ScrollView::scrollBy):
30849         (WebCore::ScrollView::hScrollbarMode):
30850         (WebCore::ScrollView::vScrollbarMode):
30851         (WebCore::ScrollView::suppressScrollbars):
30852         (WebCore::ScrollView::setHScrollbarMode):
30853         (WebCore::ScrollView::setVScrollbarMode):
30854         (WebCore::ScrollView::setScrollbarsMode):
30855         (WebCore::ScrollView::updateScrollbars):
30856         (WebCore::ScrollView::scrollbarUnderMouse):
30857         (WebCore::ScrollView::paint):
30858         (WebCore::ScrollView::themeChanged):
30859
30860 2006-10-05  Adam Roben  <aroben@apple.com>
30861
30862         Reviewed by Maciej.
30863
30864         Fixes <rdar://problem/4757387>
30865         Unable to sign on to my.yahoo.com
30866
30867         This patch fixes a number of bugs that all resulted in not being able
30868         to log on to many websites. The problems were that we weren't allowing
30869         redirects between HTTP and HTTPS sites and weren't correctly handling
30870         redirects from POST requests to GET requests.
30871
30872         * platform/win/ResourceLoaderWin.cpp:
30873         (WebCore::globalInternetHandle): Move internetHandle and callbackHandle
30874         into file scope, and add this function to initialize them.
30875         (WebCore::logLastError): Add this debug logging function to give more
30876         readable WinInet error messages.
30877         (WebCore::ResourceLoaderWndProc): The most substantial change here is
30878         to allow redirects from POST to GET to function correctly. To do this
30879         we have to create a new HINTERNET for the GET. We also have to be sure
30880         not to try to read from our now-invalid handles after the redirect.
30881         (WebCore::transferJobStatusCallback): Rename timerId to jobId, since
30882         that's what it is.
30883         (WebCore::ResourceLoader::start): Call new static initializer, and pass
30884         flags to allow HTTP<->HTTPS redirects. Also change a few delete calls
30885         to kill().
30886
30887 2006-10-05  Maciej Stachowiak  <mjs@apple.com>
30888
30889         Reviewed by Adam.
30890
30891         - changed ResourceLoader to be refcounted
30892
30893         It keeps a ref on itself while loading as well. This makes
30894         for a much saner memory management model than the previous.
30895
30896         In addition, keep it ref'd across all of ResourceLoaderWndProc
30897         to avoid sending messages to jobs that get deleted partway.
30898
30899         This fixes <rdar://problem/4766859> Crash in ResourceLoaderWndProc - line 232 at televisionwithoutpity.com, washingtonpost.com
30900
30901         * platform/win/ResourceLoaderWin.cpp:
30902         (WebCore::ResourceLoaderWndProc):
30903         (WebCore::ResourceLoader::start):
30904         * plugins/win/PluginStreamWin.cpp:
30905         (WebCore::PluginStreamWin::PluginStreamWin):
30906         (WebCore::PluginStreamWin::start):
30907         (WebCore::PluginStreamWin::stop):
30908         * plugins/win/PluginStreamWin.h:
30909
30910 2006-10-05  Dave Hyatt  <hyatt@apple.com>
30911
30912         Make key events work with iframes.  Implement scrolling keyboard behavior.  Fix a bug with mouse wheeling that
30913         made it fail on iframes nested within iframes.
30914         
30915         Reviewed by mjs
30916
30917         * bridge/win/FrameViewWin.cpp:
30918         (WebCore::FrameView::passWheelEventToSubframe):
30919         * platform/win/ScrollViewWin.cpp:
30920         (WebCore::ScrollView::scroll):
30921         * platform/win/WidgetWin.cpp:
30922         (WebCore::Widget::Widget):
30923         (WebCore::Widget::capturingMouse):
30924         (WebCore::Widget::setCapturingMouse):
30925         (WebCore::Widget::capturingTarget):
30926         (WebCore::Widget::setCapturingChild):
30927         (WebCore::Widget::hasFocus):
30928         (WebCore::Widget::setFocus):
30929         (WebCore::Widget::clearFocus):
30930         (WebCore::Widget::setFocused):
30931         (WebCore::Widget::focusedTarget):
30932         (WebCore::Widget::focusedChild):
30933         (WebCore::Widget::setFocusedChild):
30934         (WebCore::Widget::clearFocusFromDescendants):
30935
30936 2006-10-05  Adam Roben  <aroben@apple.com>
30937
30938         Reviewed by Maciej and Tim H.
30939
30940         Fixes <rdar://problem/4760991>
30941         Flash content doesn't go away when navigating to a new page
30942
30943         Actually destroy subframes when detaching.
30944
30945         * bridge/win/FrameWin.cpp:
30946         (WebCore::FrameWin::frameDetached): 
30947         * bridge/win/FrameWin.h:
30948
30949 2006-10-05  Anders Carlsson  <acarlsson@apple.com>
30950
30951         Reviewed by Maciej.
30952         
30953         <rdar://problem/4762998>
30954         REGRESSION: dragging to select text does not work
30955         
30956         * platform/win/PlatformMouseEventWin.cpp:
30957         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
30958         Set the correct button for WM_MOUSEMOVE events.
30959
30960 2006-10-05  Anders Carlsson  <acarlsson@apple.com>
30961
30962         Reviewed by Adam.
30963
30964         rdar://problem/4757081
30965         Crashes/hangs when using Flash 8 plugin (Flash 9 works MUCH better)
30966         
30967         * plugins/win/PluginStreamWin.cpp:
30968         (WebCore::PluginStreamWin::startStream):
30969         Encode javascript URLs before passing them to the plugin.
30970
30971 2006-10-05  Darin Adler  <darin@apple.com>
30972
30973         Reviewed by Adam.
30974
30975         * platform/win/NotImplemented.h: Changed implementation to use Assertions.h.
30976         Also fixed both macros to be single-statement macros.
30977
30978 2006-10-05  Darin Adler  <darin@apple.com>
30979
30980         Reviewed by Adam.
30981
30982         - fix <rdar://problem/4764253>
30983           frame targeting not implemented.
30984
30985         * bridge/win/FrameWin.h: Added new window boolean to openURL. Also changed
30986         type from DeprecatedString to String.
30987         * bridge/win/FrameWin.cpp: (WebCore::FrameWin::urlSelected): Added logic
30988         to do frame targeting.
30989
30990         * platform/win/BString.h: Added. Convenience for working with
30991         BSTR and handling allocation/free.
30992         * platform/win/BString.cpp: Added.
30993         * WebCore.vcproj/WebCore.vcproj: Added new files.
30994
30995 2006-10-03  Dave Hyatt  <hyatt@apple.com>
30996
30997         Land the new ScrollView.
30998         
30999         Reviewed by anders
31000
31001         * bridge/win/FrameViewWin.cpp:
31002         (WebCore::FrameView::passMousePressEventToScrollbar):
31003         * platform/win/PlatformScrollBar.h:
31004         * platform/win/PlatformScrollBarWin.cpp:
31005         (WebCore::PlatformScrollBar::thumbLength):
31006         (WebCore::PlatformScrollBar::hitTest):
31007         (WebCore::PlatformScrollBar::horizontalScrollBarHeight):
31008         (WebCore::PlatformScrollBar::verticalScrollBarWidth):
31009         * platform/win/ScrollViewWin.cpp:
31010         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
31011         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollBar):
31012         (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollBar):
31013         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
31014         (WebCore::ScrollView::ScrollView):
31015         (WebCore::ScrollView::updateContents):
31016         (WebCore::ScrollView::visibleWidth):
31017         (WebCore::ScrollView::visibleHeight):
31018         (WebCore::ScrollView::visibleContentRect):
31019         (WebCore::ScrollView::resizeContents):
31020         (WebCore::ScrollView::contentsWidth):
31021         (WebCore::ScrollView::contentsHeight):
31022         (WebCore::ScrollView::windowToContents):
31023         (WebCore::ScrollView::contentsToWindow):
31024         (WebCore::ScrollView::convertChildToSelf):
31025         (WebCore::ScrollView::convertSelfToChild):
31026         (WebCore::ScrollView::scrollOffset):
31027         (WebCore::ScrollView::maximumScroll):
31028         (WebCore::ScrollView::scrollBy):
31029         (WebCore::ScrollView::scrollPointRecursively):
31030         (WebCore::ScrollView::hScrollBarMode):
31031         (WebCore::ScrollView::vScrollBarMode):
31032         (WebCore::ScrollView::suppressScrollBars):
31033         (WebCore::ScrollView::setHScrollBarMode):
31034         (WebCore::ScrollView::setVScrollBarMode):
31035         (WebCore::ScrollView::setScrollBarsMode):
31036         (WebCore::ScrollView::setStaticBackground):
31037         (WebCore::ScrollView::updateScrollBars):
31038         (WebCore::ScrollView::scrollbarUnderMouse):
31039         (WebCore::ScrollView::addChild):
31040         (WebCore::ScrollView::removeChild):
31041         (WebCore::ScrollView::paint):
31042         (WebCore::ScrollView::scrolled):
31043         * platform/win/WidgetWin.cpp:
31044         (WebCore::Widget::Widget):
31045         (WebCore::Widget::convertToContainingWindow):
31046         (WebCore::Widget::convertFromContainingWindow):
31047         (WebCore::Widget::convertChildToSelf):
31048         (WebCore::Widget::convertSelfToChild):
31049         (WebCore::Widget::setSuppressInvalidation):
31050         (WebCore::Widget::invalidateRect):
31051         * plugins/win/PluginViewWin.cpp:
31052         (WebCore::PluginViewWndProc):
31053         (WebCore::PluginViewWin::setFrameGeometry):
31054         (WebCore::PluginViewWin::scrolled):
31055         * plugins/win/PluginViewWin.h:
31056
31057 2006-10-03  Adam Roben  <aroben@apple.com>
31058
31059         Reviewed by Steve.
31060
31061         Improvements to error handling in PluginStreamWin.
31062
31063         * plugins/win/PluginStreamWin.cpp:
31064         (WebCore::PluginStreamWin::deliverData): Fail quietly if called after
31065         termination (due to bad error handling in ResourceLoaderWin), ASSERT if
31066         called before stream has been started.
31067         (WebCore::PluginStreamWin::receivedData): Ditto.
31068         (WebCore::PluginStreamWin::receivedAllData): Ditto.
31069
31070 2006-10-03  Adam Roben  <aroben@apple.com>
31071
31072         Reviewed by Anders.
31073
31074         Fixes <rdar://problem/4760963>
31075         Failed ASSERT in PluginStreamWin::~PluginStreamWin at espn.com
31076
31077         We now store the state of a stream as a tri-state enum in
31078         m_streamState. This allows us to differentiate between before and after the
31079         stream has been started.
31080
31081         * plugins/win/PluginStreamWin.cpp:
31082         (WebCore::PluginStreamWin::PluginStreamWin): Initialize members of
31083         m_stream struct individually.
31084         (WebCore::PluginStreamWin::~PluginStreamWin):
31085         (WebCore::PluginStreamWin::startStream):
31086         (WebCore::PluginStreamWin::destroyStream):
31087         (WebCore::PluginStreamWin::deliverData): Return early if the stream
31088         isn't started.
31089         (WebCore::PluginStreamWin::receivedData): Ditto.
31090         (WebCore::PluginStreamWin::receivedAllData): Ditto.
31091         * plugins/win/PluginStreamWin.h:
31092         (WebCore::): Add PluginStreamState enum.
31093
31094 2006-10-03  Adam Roben  <aroben@apple.com>
31095
31096         Reviewed by Darin.
31097
31098         Fixes <rdar://problem/4603342>
31099         Keyboard navigability
31100
31101         Implement tabbing between form elements (in the single-frame case).
31102
31103         * bridge/win/FrameWin.cpp: Add methods to determine tabbing
31104         preferences.
31105         (WebCore::FrameWin::tabsToLinks):
31106         (WebCore::FrameWin::tabsToAllControls):
31107         * bridge/win/FrameWin.h: Add tabsToLinks() to FrameWinClient
31108         * platform/win/ScrollViewWin.cpp:
31109         (WebCore::ScrollView::scrollPointRecursively): Implemented for
31110         single-frame case.
31111         * platform/win/TemporaryLinkStubs.cpp: Remove stub for now-implemented
31112         ScrollView::scrollPointsRecursively
31113
31114 2006-10-02  Adam Roben  <aroben@apple.com>
31115
31116         Reviewed by Maciej.
31117
31118         Fixes <rdar://problem/4743497>
31119         Can't check checkboxes
31120
31121         Let Windows determine which mouse button is pressed.
31122
31123         * platform/win/PlatformMouseEventWin.cpp:
31124         (WebCore::PlatformMouseEvent::PlatformMouseEvent): Use message
31125         parameter to determine which mouse button is pressed.
31126
31127 2006-10-02  Steve Falkenburg  <sfalken@apple.com>
31128
31129         Reviewed by Hyatt.
31130
31131         <rdar://4757387> (partial fix) Unable to sign on to my.yahoo.com
31132         <rdar://4757405> (partial fix) Unable to log onto secure site (www.schwab.com)
31133         <rdar://4757411> (partial fix) Unable to log onto any AppleConnect site (but using back and resubmiting works)
31134
31135         WinInet fixes.
31136         Don't post data using HTTP when HTTPS should be used.
31137         Fix redirect from POST to GET case.
31138         
31139         There is a remaining bug with the way that we queue WinInet callbacks
31140         still to be addressed.
31141
31142         * platform/win/ResourceLoaderWin.cpp:
31143         (WebCore::addToOutstandingJobs): Skip dwContext of 0 (rollover case).
31144         (WebCore::ResourceLoaderWndProc): Call default wndproc properly.
31145             Pass INTERNET_FLAG_SECURE when necessary for HTTPS.
31146             Fix redirect code.
31147             Initialize buffers struct.
31148             Pass proper context in InternetReadFileExA
31149         (WebCore::initializeOffScreenResourceLoaderWindow): Init a struct to {0} instead of using memset.
31150         (WebCore::transferJobStatusCallback): Prevent future bugs by making an else a bit more explicit.
31151         (WebCore::ResourceLoader::start): Pass proper port for HTTP vs. HTTPS.
31152         (WebCore::ResourceLoader::cancel): Zero out handle when closing.
31153
31154 2006-10-01  Dave Hyatt  <hyatt@apple.com>
31155
31156         Finish the scrollbar.  Handle arrow and track scrolling.  Everything is finished now except for implementing a Win2k look.
31157
31158         * platform/win/PlatformScrollBar.h:
31159         * platform/win/PlatformScrollBarWin.cpp:
31160         (WebCore::PlatformScrollBar::PlatformScrollBar):
31161         (WebCore::PlatformScrollBar::~PlatformScrollBar):
31162         (WebCore::PlatformScrollBar::thumbRect):
31163         (WebCore::PlatformScrollBar::handleMouseMoveEvent):
31164         (WebCore::PlatformScrollBar::handleMousePressEvent):
31165         (WebCore::PlatformScrollBar::handleMouseReleaseEvent):
31166         (WebCore::PlatformScrollBar::startTimerIfNeeded):
31167         (WebCore::PlatformScrollBar::stopTimerIfNeeded):
31168         (WebCore::PlatformScrollBar::autoscrollPressedPart):
31169         (WebCore::PlatformScrollBar::autoscrollTimerFired):
31170         (WebCore::PlatformScrollBar::pressedPartScrollDirection):
31171         (WebCore::PlatformScrollBar::pressedPartScrollGranularity):
31172         (WebCore::PlatformScrollBar::thumbUnderMouse):
31173
31174 2006-10-01  Dave Hyatt  <hyatt@apple.com>
31175         
31176         Make thumb dragging work on the scrollbar.
31177         
31178         Fix mouse and wheel events to use GET_X_LPARAM and GET_Y_LPARAM so that negative coordinates work.
31179         (This comes up when a widget is capturing events and the mouse moves outside the HWND.)
31180         
31181         * platform/win/PlatformMouseEventWin.cpp:
31182         (WebCore::positionForEvent):
31183         (WebCore::globalPositionForEvent):
31184         * platform/win/PlatformScrollBar.h:
31185         * platform/win/PlatformScrollBarWin.cpp:
31186         (WebCore::PlatformScrollBar::PlatformScrollBar):
31187         (WebCore::PlatformScrollBar::handleMouseMoveEvent):
31188         (WebCore::PlatformScrollBar::handleMousePressEvent):
31189         (WebCore::PlatformScrollBar::handleMouseReleaseEvent):
31190         (WebCore::PlatformScrollBar::startTimerIfNeeded):
31191         (WebCore::PlatformScrollBar::stopTimerIfNeeded):
31192         * platform/win/WheelEventWin.cpp:
31193         (WebCore::positionForEvent):
31194         (WebCore::globalPositionForEvent):
31195
31196 2006-10-01  Dave Hyatt  <hyatt@apple.com>
31197
31198         Hook up the mouse capture architecture so that child widgets capture events while the mouse is pressed.
31199         
31200         Hook up tracking the pressed object on a scrollbar and proper painting of the scrollbar's
31201         pressed state.
31202         
31203         * bridge/win/FrameViewWin.cpp:
31204         (WebCore::FrameView::passMousePressEventToSubframe):
31205         (WebCore::FrameView::passMousePressEventToScrollbar):
31206         * platform/win/PlatformScrollBar.h:
31207         * platform/win/PlatformScrollBarWin.cpp:
31208         (WebCore::PlatformScrollBar::PlatformScrollBar):
31209         (WebCore::PlatformScrollBar::paintButton):
31210         (WebCore::PlatformScrollBar::paintTrack):
31211         (WebCore::PlatformScrollBar::paintThumb):
31212         (WebCore::PlatformScrollBar::paintGripper):
31213         (WebCore::PlatformScrollBar::handleMouseMoveEvent):
31214         (WebCore::PlatformScrollBar::handleMousePressEvent):
31215         (WebCore::PlatformScrollBar::handleMouseReleaseEvent):
31216         * platform/win/WidgetWin.cpp:
31217         (WebCore::Widget::setCapturingChild):
31218
31219 2006-09-30  Dave Hyatt  <hyatt@apple.com>
31220
31221         This patch makes iframes and frames able to receive mouse events.  Down, up, click, selection
31222         all work.  This patch also fixes bugs in scrolling and makes wheel events work on iframes.
31223         A capturing system for routing events to the proper subwidget when the mouse has down
31224         is also stubbed out (but not yet used).
31225         
31226         Reviewed by andersca
31227
31228         * WebCore.vcproj/WebCore.vcproj:
31229         * bridge/win/FrameViewWin.cpp: Added.
31230         (WebCore::FrameView::passMousePressEventToSubframe):
31231         (WebCore::FrameView::passMouseMoveEventToSubframe):
31232         (WebCore::FrameView::passMouseReleaseEventToSubframe):
31233         (WebCore::FrameView::passWheelEventToSubframe):
31234         * bridge/win/FrameWin.cpp:
31235         * bridge/win/FrameWin.h:
31236         * platform/win/PlatformScrollBar.h:
31237         * platform/win/PlatformScrollBarWin.cpp:
31238         (WebCore::PlatformScrollBar::handleMouseMoveEvent):
31239         (WebCore::PlatformScrollBar::handleMouseOutEvent):
31240         (WebCore::PlatformScrollBar::handleMouseReleaseEvent):
31241         * platform/win/ScrollViewWin.cpp:
31242         (WebCore::ScrollView::visibleContentRect):
31243         (WebCore::ScrollView::scrollBy):
31244         (WebCore::ScrollView::removeChild):
31245         * platform/win/TemporaryLinkStubs.cpp:
31246         (FrameWin::print):
31247         (FrameWin::lastEventIsMouseUp):
31248         * platform/win/WidgetWin.cpp:
31249         (WebCore::Widget::Widget):
31250         (WebCore::Widget::capturingMouse):
31251         (WebCore::Widget::setCapturingMouse):
31252         (WebCore::Widget::capturingTarget):
31253         (WebCore::Widget::capturingChild):
31254         (WebCore::Widget::setCapturingChild):
31255
31256 2006-09-29  Steve Falkenburg  <sfalken@apple.com>
31257
31258         Fix the build.
31259
31260         * platform/win/PlatformScrollBarWin.cpp:
31261
31262 2006-09-29  Adele Peterson  <adele@apple.com>
31263
31264         Adding RenderListBox files.
31265
31266         * WebCore.vcproj/WebCore.vcproj:
31267
31268 2006-09-29  Adele Peterson  <adele@apple.com>
31269
31270         Reviewed by Adam.
31271
31272         Updated constructor for PlatformScrollBar to include controlSize argument.
31273
31274         * platform/win/PlatformScrollBar.h:
31275         * platform/win/PlatformScrollBarWin.cpp:
31276         (WebCore::PlatformScrollBar::PlatformScrollBar):
31277
31278 2006-09-29  Adam Roben  <aroben@apple.com>
31279
31280         Reviewed by hyatt.
31281
31282         Add error logging to plugin code.
31283
31284         * WebCore.vcproj/WebCore.vcproj: Added PluginDebug.h
31285         * platform/win/NotImplemented.h: Add surrounding #ifndef/#endif
31286         * plugins/win/PluginDebug.h: Added.
31287         * plugins/win/PluginPackageWin.cpp: Add error logging
31288         (WebCore::PluginPackageWin::load):
31289         * plugins/win/PluginStreamWin.cpp: Ditto.
31290         (WebCore::PluginStreamWin::startStream):
31291         (WebCore::PluginStreamWin::destroyStream):
31292         (WebCore::PluginStreamWin::deliverData):
31293         (WebCore::PluginStreamWin::receivedAllData):
31294         * plugins/win/PluginViewWin.cpp: Ditto.
31295         (WebCore::PluginViewWin::start):
31296         (WebCore::PluginViewWin::stop):
31297         (WebCore::PluginViewWin::newStream):
31298         (WebCore::PluginViewWin::write):
31299         (WebCore::PluginViewWin::destroyStream):
31300
31301 2006-09-29  Dave Hyatt  <hyatt@apple.com>
31302
31303         Fork MouseEventWin.cpp into (the better-named) PlatformMouseEventWin.cpp.
31304         
31305         * WebCore.vcproj/WebCore.vcproj:
31306         * platform/win/PlatformMouseEventWin.cpp: Added.
31307
31308 2006-09-28  Dave Hyatt  <hyatt@apple.com>
31309
31310         Make scrollbars scroll correctly when setValue is called.  Needed to do float math instead of integer
31311         math (and also fix some buggy math when computing the thumb position).
31312  
31313         * platform/win/PlatformScrollBarWin.cpp:
31314         (WebCore::PlatformScrollBar::thumbPosition):
31315
31316 2006-09-28  Dave Hyatt  <hyatt@apple.com>
31317
31318         Make scrollbars on Win32 respond to hover events.  The thumb and arrow buttons will now properly hover when
31319         the mouse enters and exits them.
31320         
31321         * platform/win/PlatformScrollBar.h:
31322         * platform/win/PlatformScrollBarWin.cpp:
31323         (WebCore::PlatformScrollBar::invalidatePart):
31324         (WebCore::PlatformScrollBar::paintButton):
31325         (WebCore::PlatformScrollBar::paintTrack):
31326         (WebCore::PlatformScrollBar::paintThumb):
31327         (WebCore::PlatformScrollBar::paintGripper):
31328         (WebCore::PlatformScrollBar::hitTest):
31329         (WebCore::PlatformScrollBar::mouseMoved):
31330         (WebCore::PlatformScrollBar::mouseExited):
31331
31332 2006-09-28  Steve Falkenburg  <sfalken@apple.com>
31333
31334         Reviewed by Maciej.
31335
31336         Use $(ConfigSuffix) set via vsprops files to add _debug
31337         to end of debug filenames.
31338
31339         Update B&I build script.
31340
31341         * WebCore.vcproj/WebCore.make:
31342         * WebCore.vcproj/WebCore.vcproj:
31343         * WebCore.vcproj/debug.vsprops: Added.
31344         * WebCore.vcproj/release.vsprops: Added.
31345
31346 2006-09-28  Adam Roben  <aroben@apple.com>
31347
31348         Reviewed by Hyatt.
31349
31350         Avoid creating LOGFONTs for bitmap fonts under CG, since we don't
31351         support them anyway.
31352
31353         * platform/win/FontCacheWin.cpp:
31354         (WebCore::FontCache::createFontPlatformData): Set lfOutPrecision to
31355         OUT_TT_ONLY_PRECIS to avoid bitmap fonts.
31356         * platform/win/FontPlatformDataWin.cpp:
31357         (WebCore::FontPlatformData::FontPlatformData): Change the LOG_ERROR
31358         back to an ASSERT since we should never reach this condition now.
31359
31360 2006-09-28  Dave Hyatt  <hyatt@apple.com>
31361
31362         This patch eliminates viewportToContents/contentsToViewport in favor of convertTo/FromContainingWindow.
31363         ScrollView now subclasses these methods to factor in its scrollOffset and to deal with the document
31364         view.
31365        
31366         Reviewed by mjs (the convertTo/From changes), (I added the elimination of viewportToContents to
31367         the patch after review, once I realized that these new functions essentially do the same thing.)
31368
31369         * platform/win/ScrollViewWin.cpp:
31370         (WebCore::ScrollView::updateContents):
31371         (WebCore::ScrollView::convertToContainingWindow):
31372         (WebCore::ScrollView::convertFromContainingWindow):
31373         (WebCore::ScrollView::scrollBy):
31374         * platform/win/WidgetWin.cpp:
31375         (WebCore::Widget::convertToContainingWindow):
31376         (WebCore::Widget::convertFromContainingWindow):
31377
31378 2006-09-28  Adam Roben  <aroben@apple.com>
31379
31380         Reviewed by Anders.
31381
31382         Fail without crashing and log an error when CG encounters a bitmap
31383         font.
31384
31385         * platform/win/FontPlatformDataWin.cpp:
31386         (WebCore::FontPlatformData::FontPlatformData): Trade LOG_ERROR for
31387         ASSERT_WITH_MESSAGE
31388
31389 2006-09-27  Alice Liu  <alice.liu@apple.com>
31390
31391         Reviewed by Steve & Adam.
31392
31393         * WebCore.vcproj/WebCore.vcproj:
31394         Added files to the project file
31395         * platform/win/TemporaryLinkStubs.cpp:
31396         Removed stub for findWordBoundary
31397         * platform/win/TextBoundariesWin.cpp: Added.
31398         Implemented cross-platform findWordBoundary.  We're still keeping the mac one intact for now. 
31399         (WebCore::findWordBoundary):
31400
31401 2006-09-28  Adam Roben  <aroben@apple.com>
31402
31403         Reviewed by Adele.
31404
31405         Remove never-to-be-used PopUpButton
31406
31407         * WebCore.vcproj/WebCore.vcproj: Remove PopUpButton.h
31408         * platform/win/TemporaryLinkStubs.cpp: Remove PopUpButton:: methods
31409
31410 2006-09-28  Adam Roben  <aroben@apple.com>
31411
31412         Reviewed by Alice.
31413
31414         Replace notImplemented() with LOG_NOIMPL() and STOP_NOIMPL() macros
31415         which generate debug output. STOP_NOIMPL() also generates a debug
31416         break. Replace calls to notImplemented() with
31417         LOG_NOIMPL()/STOP_NOIMPL() as appropriate. This should stop some unnecessary
31418         crashes where notImplemented() was called from a method that can fail
31419         safely.
31420
31421         * WebCore.vcproj/WebCore.vcproj: Added NotImplemented.h
31422         * platform/win/FontWin.cpp: Use LOG_NOIMPL() instead of notImplemented().
31423         (WebCore::Font::selectionRectForComplexText):
31424         (WebCore::Font::drawComplexText):
31425         (WebCore::Font::floatWidthForComplexText):
31426         (WebCore::Font::offsetForPositionForComplexText):
31427         * platform/win/NotImplemented.h: Added. Contains new LOG_NOIMPL() and
31428         STOP_NOIMPL() macros.
31429         * platform/win/TemporaryLinkStubs.cpp: Use LOG_NOIMPL() and
31430         STOP_NOIMPL() instead of notImplemented() or nothing.
31431         (PopUpButton::focusPolicy):
31432         (PopUpButton::populate):
31433         (Widget::enableFlushDrawing):
31434         (Widget::focusPolicy):
31435         (Widget::disableFlushDrawing):
31436         (Widget::lockDrawingFocus):
31437         (Widget::unlockDrawingFocus):
31438         (JavaAppletWidget::JavaAppletWidget):
31439         (TextField::selectAll):
31440         (TextField::addSearchResult):
31441         (TextField::selectionStart):
31442         (TextField::hasSelectedText):
31443         (TextField::selectedText):
31444         (TextField::setAutoSaveName):
31445         (TextField::checksDescendantsForFocus):
31446         (TextField::setSelection):
31447         (TextField::setMaxResults):
31448         (TextField::edited):
31449         (Slider::Slider):
31450         (Slider::sizeHint):
31451         (Slider::setValue):
31452         (Slider::setMaxValue):
31453         (Slider::setMinValue):
31454         (Slider::~Slider):
31455         (Slider::setFont):
31456         (Slider::value):
31457         (ListBox::sizeForNumberOfLines):
31458         (ListBox::isSelected):
31459         (ListBox::checksDescendantsForFocus):
31460         (Slider::focusPolicy):
31461         (ListBox::focusPolicy):
31462         (TextField::focusPolicy):
31463         (Cursor::Cursor):
31464         (PlatformMouseEvent::PlatformMouseEvent):
31465         (WebCore::searchableIndexIntroduction):
31466         (WebCore::findNextSentenceFromIndex):
31467         (WebCore::findSentenceBoundary):
31468         (WebCore::findNextWordFromIndex):
31469         (WebCore::ServeSynchronousRequest):
31470         (FrameWin::focusWindow):
31471         (FrameWin::unfocusWindow):
31472         (FrameWin::locationbarVisible):
31473         (FrameWin::registerCommandForRedo):
31474         (FrameWin::getObjectInstanceForWidget):
31475         (FrameWin::getEmbedInstanceForWidget):
31476         (FrameWin::getAppletInstanceForWidget):
31477         (FrameWin::canRedo):
31478         (FrameWin::canUndo):
31479         (FrameWin::canPaste):
31480         (FrameWin::canGoBackOrForward):
31481         (FrameWin::shouldInterruptJavaScript):
31482         (FrameWin::openURL):
31483         (FrameWin::print):
31484         (FrameWin::passMouseDownEventToWidget):
31485         (FrameWin::issueCutCommand):
31486         (FrameWin::issueCopyCommand):
31487         (FrameWin::issuePasteCommand):
31488         (FrameWin::issueUndoCommand):
31489         (FrameWin::issueRedoCommand):
31490         (FrameWin::issuePasteAndMatchStyleCommand):
31491         (FrameWin::issueTransposeCommand):
31492         (FrameWin::passWheelEventToChildWidget):
31493         (FrameWin::mimeTypeForFileName):
31494         (FrameWin::scheduleClose):
31495         (FrameWin::markMisspellings):
31496         (FrameWin::menubarVisible):
31497         (FrameWin::personalbarVisible):
31498         (FrameWin::statusbarVisible):
31499         (FrameWin::toolbarVisible):
31500         (FrameWin::originalRequestURL):
31501         (FrameWin::isLoadTypeReload):
31502         (BrowserExtensionWin::canRunModal):
31503         (BrowserExtensionWin::createNewWindow):
31504         (BrowserExtensionWin::canRunModalNow):
31505         (BrowserExtensionWin::runModal):
31506         (BrowserExtensionWin::goBackOrForward):
31507         (BrowserExtensionWin::historyURL):
31508         (GraphicsContext::addRoundedRectClip):
31509         (GraphicsContext::addInnerRoundedRectClip):
31510         (WebCore::screenDepthPerComponent):
31511         (WebCore::screenIsMonochrome):
31512         (WebCore::moveCursor):
31513         (WebCore::inputElementAltText):
31514         (WebCore::findWordBoundary):
31515         (WebCore::ResourceLoader::assembleResponseHeaders):
31516         (WebCore::ResourceLoader::retrieveCharset):
31517         (FrameView::updateBorder):
31518         (FrameWin::restoreDocumentState):
31519         (FrameWin::partClearedInBegin):
31520         (FrameWin::createEmptyDocument):
31521         (FrameWin::overrideMediaType):
31522         (FrameWin::markedTextRange):
31523         (FrameWin::addMessageToConsole):
31524         (FrameWin::shouldChangeSelection):
31525         (FrameWin::respondToChangedSelection):
31526         (FrameWin::saveDocumentState):
31527         (FrameWin::registerCommandForUndo):
31528         (FrameWin::clearUndoRedoOperations):
31529         (FrameWin::incomingReferrer):
31530         (FrameWin::markMisspellingsInAdjacentWords):
31531         (FrameWin::respondToChangedContents):
31532         (BrowserExtensionWin::BrowserExtensionWin):
31533         (BrowserExtensionWin::setTypedIconURL):
31534         (BrowserExtensionWin::setIconURL):
31535         (BrowserExtensionWin::getHistoryLength):
31536         (WebCore::CheckIfReloading):
31537         (WebCore::CheckCacheObjectStatus):
31538         (Widget::setIsSelected):
31539         (ScrollView::inWindow):
31540         (ScrollView::scrollPointRecursively):
31541         (GraphicsContext::setShadow):
31542         (GraphicsContext::clearShadow):
31543         (GraphicsContext::beginTransparencyLayer):
31544         (GraphicsContext::endTransparencyLayer):
31545         (GraphicsContext::clearRect):
31546         (GraphicsContext::strokeRect):
31547         (GraphicsContext::setLineWidth):
31548         (GraphicsContext::setLineCap):
31549         (GraphicsContext::setLineJoin):
31550         (GraphicsContext::setMiterLimit):
31551         (GraphicsContext::setAlpha):
31552         (GraphicsContext::clip):
31553         (GraphicsContext::rotate):
31554         (GraphicsContext::scale):
31555         (Path::Path):
31556         (Path::~Path):
31557         (Path::contains):
31558         (Path::translate):
31559         (Path::boundingRect):
31560         (Path::operator=):
31561         (Path::clear):
31562         (Path::moveTo):
31563         (Path::addLineTo):
31564         (Path::addQuadCurveTo):
31565         (Path::addBezierCurveTo):
31566         (Path::addArcTo):
31567         (Path::closeSubpath):
31568         (Path::addArc):
31569         (Path::addRect):
31570         (Path::addEllipse):
31571         (GraphicsContext::drawFocusRing):
31572         (GraphicsContext::drawLineForMisspelling):
31573         (GraphicsContext::setCompositeOperation):
31574         (TextField::TextField):
31575         (TextField::~TextField):
31576         (TextField::setFont):
31577         (TextField::setAlignment):
31578         (TextField::setWritingDirection):
31579         (TextField::maxLength):
31580         (TextField::setMaxLength):
31581         (TextField::text):
31582         (TextField::setText):
31583         (TextField::cursorPosition):
31584         (TextField::setCursorPosition):
31585         (TextField::setEdited):
31586         (TextField::setReadOnly):
31587         (TextField::setPlaceholderString):
31588         (TextField::setColors):
31589         (TextField::sizeForCharacterWidth):
31590         (TextField::baselinePosition):
31591         (TextField::setLiveSearch):
31592         (PopUpButton::PopUpButton):
31593         (PopUpButton::~PopUpButton):
31594         (PopUpButton::setFont):
31595         (PopUpButton::baselinePosition):
31596         (PopUpButton::setWritingDirection):
31597         (PopUpButton::clear):
31598         (PopUpButton::appendItem):
31599         (PopUpButton::setCurrentItem):
31600         (PopUpButton::sizeHint):
31601         (PopUpButton::frameGeometry):
31602         (PopUpButton::setFrameGeometry):
31603         (ListBox::ListBox):
31604         (ListBox::~ListBox):
31605         (ListBox::setSelectionMode):
31606         (ListBox::setFont):
31607         (ListBox::setWritingDirection):
31608         (ListBox::clear):
31609         (ListBox::doneAppendingItems):
31610         (ListBox::setEnabled):
31611         (ListBox::appendItem):
31612         (ListBox::setSelected):
31613         (WebCore::focusRingColor):
31614         (WebCore::setFocusRingColorChangeFunction):
31615         (Frame::setNeedsReapplyStyles):
31616         (Image::drawTiled):
31617         (RenderPopupMenuWin::addSeparator):
31618         (RenderPopupMenuWin::addGroupLabel):
31619         (IconLoader::receivedResponse):
31620         (IconLoader::notifyIconChanged):
31621         * plugins/win/PluginViewWin.cpp:
31622         (WebCore::PluginViewWin::setValue):
31623
31624 2006-09-28  Adam Roben  <aroben@apple.com>
31625
31626         Rubberstamped by sfalken.
31627
31628         Remove calls to DebugBreak() from plugin code.
31629
31630         * plugins/win/PluginViewWin.cpp:
31631         (WebCore::PluginViewWin::getValue):
31632         (WebCore::PluginViewWin::setValue):
31633
31634 2006-09-28  Dave Hyatt  <hyatt@apple.com>
31635
31636         Eliminate the use of MapWindowPoints on Win32. Just use the outermost HWND as the point of reference for events.  
31637         
31638         Stub out the mouse methods from the open source checkin and add a new member variable to track the current hovered scrollbar part.
31639
31640         * platform/win/PlatformScrollBar.h:
31641         (WebCore::):
31642         * platform/win/PlatformScrollBarWin.cpp:
31643         (WebCore::PlatformScrollBar::PlatformScrollBar):
31644         (WebCore::PlatformScrollBar::mouseMoved):
31645         (WebCore::PlatformScrollBar::mouseExited):
31646         * platform/win/ScrollViewWin.cpp:
31647         (WebCore::ScrollView::viewportToContents):
31648         (WebCore::ScrollView::contentsToViewport):
31649         * platform/win/WheelEventWin.cpp:
31650         (WebCore::positionForEvent):
31651
31652 2006-09-27  Steve Falkenburg  <sfalken@apple.com>
31653
31654         Reviewed by Maciej.
31655
31656         Prefer pulling project dependencies from WebKitOutputDir over
31657         WebKitSDKDir.  Don't copy build output back over to WebKitSDKDir.
31658
31659         * WebCore.vcproj/WebCore.vcproj:
31660         * WebCore.vcproj/build-generated-files.sh:
31661         * WebCore.vcproj/dstroot-to-sdk.cmd: Removed.
31662
31663 2006-09-27  Steve Falkenburg  <sfalken@apple.com>
31664
31665         B&I build fixes
31666
31667         * WebCore.vcproj/WebCore.make:
31668         * WebCore.vcproj/WebCore.vcproj:
31669         * WebCore.vcproj/build-generated-files.sh:
31670
31671 2006-09-27  Adam Roben  <aroben@apple.com>
31672
31673         Reviewed by sfalken.
31674
31675         Don't die when plugins try to open a new window.
31676
31677         * plugins/win/PluginViewWin.cpp:
31678         (WebCore::PluginViewWin::performRequest): Remove call to DebugBreak()
31679
31680 2006-09-27  Steve Falkenburg  <sfalken@apple.com>
31681
31682         B&I build script tweaks.
31683
31684         * WebCore.vcproj/WebCore.make:
31685
31686 2006-09-27  Steve Falkenburg  <sfalken@apple.com>
31687
31688         Reviewed by Hyatt.
31689
31690         Turn on CG
31691
31692         * config.h:
31693
31694 2006-09-27  Adam Roben  <aroben@apple.com>
31695
31696         Reviewed by Lou.
31697
31698         Fix crash in plugins due to Flash on nytimes.com
31699
31700         * plugins/win/PluginStreamWin.cpp:
31701         (WebCore::PluginStreamWin::PluginStreamWin): memset m_stream to 0
31702
31703 2006-09-27  Adam Roben  <aroben@apple.com>
31704
31705         Reviewed by sfalken.
31706
31707         Scroll plugins (at least in some cases).
31708
31709         * platform/win/ScrollViewWin.cpp:
31710         (WebCore::ScrollView::scrollBy): Pass SW_SCROLLCHILDREN to ScrollWindowEx()
31711
31712 2006-09-27  Steve Falkenburg  <sfalken@apple.com>
31713
31714         Reviewed by Adam.
31715
31716         Remove unimplemented from a temporary link stub.
31717
31718         * platform/win/TemporaryLinkStubs.cpp:
31719         (GraphicsContext::addInnerRoundedRectClip):
31720
31721 2006-09-27  Sean Gies  <seangies@apple.com>
31722
31723         Reviewed by Brady Eidson.
31724
31725         * WebCore.vcproj/WebCore.vcproj: Added platform/win/WebCoreSystemInterface.h/cpp
31726         * platform/win/WebCoreSystemInterface.cpp: Added.
31727         * platform/win/WebCoreSystemInterface.h: Added.
31728
31729 2006-09-26  Adam Roben  <aroben@apple.com>
31730
31731         Reviewed by sfalken.
31732
31733         Fixes <rdar://problem/4751600>
31734         Hang on Amazon.com involving Flash
31735
31736         * plugins/win/PluginStreamWin.cpp: Rename m_streamStarted to
31737         m_isTerminated to match Mac code (m_isTerminated is the negation of
31738         m_streamStarted)
31739         (WebCore::PluginStreamWin::PluginStreamWin): Initialize m_isTerminated
31740         to false to match Mac code.
31741         (WebCore::PluginStreamWin::~PluginStreamWin): Rename and negate.
31742         (WebCore::PluginStreamWin::stop): Remove assignment of m_streamStarted
31743         to match Mac code.
31744         (WebCore::PluginStreamWin::startStream): Rename and negate. Remove
31745         now-unnecessary assignment of m_streamStarted to true because we set
31746         m_isTerminated to false in the constructor.
31747         (WebCore::PluginStreamWin::destroyStream): Rename and negate.
31748         * plugins/win/PluginStreamWin.h: Rename m_streamStarted to
31749         m_isTerminated.
31750         * plugins/win/PluginViewWin.cpp:
31751         (WebCore::PluginViewWin::performRequest): Send the correct response URL
31752         to the plugin.
31753
31754 2006-09-26  Steve Falkenburg  <sfalken@apple.com>
31755
31756         More temporary link stubs moved.
31757         Build tweaks.
31758
31759         * ChangeLog:
31760         * WebCore.vcproj/WebCore.make: Added.
31761         * WebCore.vcproj/WebCore.vcproj:
31762         * platform/win/TemporaryLinkStubs.cpp:
31763         (ListBox::isSelected):
31764         (ListBox::setWritingDirection):
31765         (ListBox::clear):
31766         (ListBox::doneAppendingItems):
31767         (ListBox::setEnabled):
31768         (ListBox::appendItem):
31769         (ListBox::setSelected):
31770
31771 2006-09-26  Sean Gies  <seangies@apple.com>
31772
31773         Reviewed by Brady Eidson.
31774
31775         * platform/win/GraphicsContextWin.cpp:
31776         (WebCore::CGContextWithHDC):  Make a static function.
31777         (WebCore::GraphicsContext::getWindowsContext): Assume flipped coordinates.
31778
31779 2006-09-26  Brady Eidson  <beidson@apple.com>
31780
31781         Nuked another notImplemented() that is getting hit
31782
31783         * platform/win/TemporaryLinkStubs.cpp:
31784         (GraphicsContext::addRoundedRectClip):
31785
31786 2006-09-26  Sean Gies  <seangies@apple.com>
31787
31788         Reviewed by Adam Roben.
31789
31790         * WebCore.vcproj/WebCore.vcproj: Use Debug DLL C runtime for debug config.
31791
31792 2006-09-26  Lou Amadio  <lamadio@apple.com>
31793
31794         Reviewed by ggaren
31795         Uninitialized variable caused a memory corruption on cnn.com
31796
31797         WARNING: NO TEST CASES ADDED OR CHANGED
31798
31799         * plugins/win/PlugInInfoStoreWin.cpp:
31800         (WebCore::PlugInInfoStore::createPluginInfoForPluginAtIndex):
31801
31802 2006-09-26  Dave Hyatt  <hyatt@apple.com>
31803
31804         Fix my buggy invalidateRect implementation for Win32 widgets.
31805         
31806         Clean up my rect computation code in scrollbar to use x() and y() instead of
31807         frameGeometry().x()/y().
31808         
31809         Add a new invalidateTrack() method that invalidates the track (and handles
31810         putting the rect into the right coordinate space for proper invalidation
31811         now that I fixed invalidateRect).
31812
31813         * platform/win/PlatformScrollBar.h:
31814         * platform/win/PlatformScrollBarWin.cpp:
31815         (WebCore::PlatformScrollBar::updateThumbPosition):
31816         (WebCore::PlatformScrollBar::updateThumbProportion):
31817         (WebCore::PlatformScrollBar::invalidateTrack):
31818         (WebCore::PlatformScrollBar::backButtonRect):
31819         (WebCore::PlatformScrollBar::forwardButtonRect):
31820         (WebCore::PlatformScrollBar::trackRect):
31821         * platform/win/WidgetWin.cpp:
31822         (WebCore::Widget::invalidate):
31823
31824 2006-09-26  Dave Hyatt  <hyatt@apple.com>
31825
31826         Teach all our Win32 theme code (RenderTheme and PlatformScrollBar) how to respond correctly to OS theme changes.
31827         
31828         Implement painting of scrollbars using theme APIs.  The arrow buttons, track, thumb and gripper all paint properly
31829         now.  Next up is hit testing and proper hover feedback.
31830         
31831         Reviewed by andersca
31832         
31833         * platform/win/PlatformScrollBar.h:
31834         * platform/win/PlatformScrollBarWin.cpp:
31835         (WebCore::PlatformScrollBar::PlatformScrollBar):
31836         (WebCore::PlatformScrollBar::paint):
31837         (WebCore::PlatformScrollBar::backButtonRect):
31838         (WebCore::PlatformScrollBar::forwardButtonRect):
31839         (WebCore::PlatformScrollBar::trackRect):
31840         (WebCore::PlatformScrollBar::gripperRect):
31841         (WebCore::PlatformScrollBar::splitTrack):
31842         (WebCore::PlatformScrollBar::thumbPosition):
31843         (WebCore::PlatformScrollBar::thumbLength):
31844         (WebCore::PlatformScrollBar::paintButton):
31845         (WebCore::PlatformScrollBar::paintTrack):
31846         (WebCore::PlatformScrollBar::paintThumb):
31847         (WebCore::PlatformScrollBar::paintGripper):
31848         (WebCore::PlatformScrollBar::themeChanged):
31849         * platform/win/ScrollViewWin.cpp:
31850         (WebCore::ScrollView::themeChanged):
31851         * platform/win/TemporaryLinkStubs.cpp:
31852         (Widget::enableFlushDrawing):
31853         * platform/win/WidgetWin.cpp:
31854         (WebCore::Widget::isEnabled):
31855         * rendering/RenderThemeWin.cpp:
31856         (WebCore::RenderThemeWin::RenderThemeWin):
31857         (WebCore::RenderThemeWin::openButtonTheme):
31858         (WebCore::RenderThemeWin::openTextFieldTheme):
31859         (WebCore::RenderThemeWin::openMenuListTheme):
31860         (WebCore::RenderThemeWin::close):
31861         (WebCore::RenderThemeWin::themeChanged):
31862         * rendering/RenderThemeWin.h:
31863
31864 2006-09-25  Adam Roben  <aroben@apple.com>
31865
31866         Rubberstamped by sfalken.
31867
31868         Set svn:eol-style to native and cleanup line endings on plugins files.
31869
31870         * plugins/win/PluginStreamWin.cpp:
31871         (WebCore::PluginStreamWin::PluginStreamWin):
31872         (WebCore::PluginStreamWin::~PluginStreamWin):
31873         (WebCore::PluginStreamWin::start):
31874         (WebCore::PluginStreamWin::startStream):
31875         (WebCore::PluginStreamWin::destroyStream):
31876         (WebCore::PluginStreamWin::deliverData):
31877         (WebCore::PluginStreamWin::receivedResponse):
31878         (WebCore::PluginStreamWin::receivedData):
31879         (WebCore::PluginStreamWin::receivedAllData):
31880
31881 2006-09-25  Adam Roben  <aroben@apple.com>
31882
31883         Reviewed by Brady.
31884
31885         Fixes <rdar://problem/4749494>
31886         Crash/ASSERT in plugins at Fark.com
31887
31888         * platform/win/ResourceLoaderWin.cpp: Store whether a particular job
31889         has received a response within the ResourceLoader object itself, since
31890         it's possible that we will enter the InternetReadFileExA while loop
31891         twice for the same job.
31892         (WebCore::ResourceLoaderWndProc): Ask the job whether it has received a
31893         response instead of assuming it hasn't.
31894         (WebCore::ResourceLoader::setHasReceivedResponse): Added.
31895         (WebCore::ResourceLoader::hasReceivedResponse): Added.
31896
31897 2006-09-25  Adam Roben  <aroben@apple.com>
31898
31899         Rubberstamped by sfalken.
31900
31901         Continuing the removal of unnecessary notImplemented() calls.
31902
31903         * platform/win/TemporaryLinkStubs.cpp:
31904         (PlatformMouseEvent::PlatformMouseEvent):
31905         (FrameWin::passWheelEventToChildWidget):
31906
31907 2006-09-25  Adam Roben  <aroben@apple.com>
31908
31909         Rubberstamped by sfalken.
31910
31911         More notImplemented()-ectomy.
31912
31913         * platform/win/TemporaryLinkStubs.cpp:
31914         (RenderPopupMenuWin::addSeparator):
31915         (RenderPopupMenuWin::addGroupLabel):
31916
31917 2006-09-25  Adam Roben  <aroben@apple.com>
31918
31919         Rubberstamped by sfalken.
31920
31921         Remove calls to notImplemented() from functions that can fail safely.
31922
31923         * platform/win/TemporaryLinkStubs.cpp:
31924         (FrameWin::originalRequestURL):
31925         (FrameWin::isLoadTypeReload):
31926         (IconLoader::receivedResponse):
31927         (IconLoader::notifyIconChanged):
31928
31929 2006-09-25  Adam Roben  <aroben@apple.com>
31930
31931         Rubberstamped by sfalken.
31932
31933         Make notImplemented() crash even when not linked against the debug CRT.
31934
31935         * platform/win/TemporaryLinkStubs.cpp:
31936         (notImplemented): Change _CrtDbgBreak() to ASSERT(0)
31937
31938 2006-09-24  Dave Hyatt  <hyatt@apple.com>
31939
31940         Update the scrollbar API to match the changes in the public tree.
31941         
31942         Start implementing the Win32 scrollbar.  Add some scaffolding for grabbing uxtheme.dll info and also
31943         add some utility functions for breaking the scrollbar into individual components.
31944         
31945         * platform/win/PlatformScrollBar.h:
31946         * platform/win/PlatformScrollBarWin.cpp:
31947         (WebCore::PlatformScrollBar::PlatformScrollBar):
31948         (WebCore::PlatformScrollBar::updateThumbPosition):
31949         (WebCore::PlatformScrollBar::updateThumbProportion):
31950         (WebCore::PlatformScrollBar::paint):
31951         (WebCore::PlatformScrollBar::backButtonRect):
31952         (WebCore::PlatformScrollBar::forwardButtonRect):
31953         (WebCore::PlatformScrollBar::trackRect):
31954         (WebCore::PlatformScrollBar::splitTrack):
31955
31956 2006-09-22  Steve Falkenburg  <sfalken@apple.com>
31957
31958         Fix release build some more.
31959
31960         * WebCore.vcproj/WebCore.vcproj:
31961
31962 2006-09-22  Brady Eidson  <beidson@apple.com>
31963
31964         Extremely urgent update to my last two patches (without it, many urls will fail to load)
31965
31966         * platform/win/ResourceLoaderWin.cpp:
31967         (WebCore::ResourceLoader::onRequestComplete):
31968
31969 2006-09-22  Brady Eidson  <beidson@apple.com>
31970
31971         Forgot some lines we needed to keep for the internal build in my last checkin
31972
31973         * platform/win/ResourceLoaderWin.cpp:
31974
31975 2006-09-22  Brady Eidson  <beidson@apple.com>
31976
31977         Reviewed by Steve
31978
31979         Landed from OpenSource - that version now supports Redirect like we need, and is a little cleaner design
31980
31981         * platform/win/ResourceLoaderWin.cpp:
31982         (WebCore::):
31983         (WebCore::ResourceLoaderWndProc):
31984         (WebCore::initializeOffScreenResourceLoaderWindow):
31985         (WebCore::ResourceLoaderInternal::~ResourceLoaderInternal):
31986         (WebCore::ResourceLoader::onHandleCreated):
31987         (WebCore::ResourceLoader::onRequestRedirected):
31988         (WebCore::ResourceLoader::onRequestComplete):
31989         (WebCore::transferJobStatusCallback):
31990         (WebCore::ResourceLoader::start):
31991         (WebCore::ResourceLoader::fileLoadTimer):
31992         (WebCore::ResourceLoader::cancel):
31993
31994 2006-09-22  Dave Hyatt <hyatt@apple.com>
31995
31996         Implement support for CSS2 system fonts on Win32.  Implement support for our special control font so that controls now
31997         pick up the correct font from the system.  This fixes the crazy form control font sizes on e.g., www.google.com.
31998
31999         * platform/win/TemporaryLinkStubs.cpp:
32000         * rendering/RenderThemeWin.cpp:
32001         (WebCore::fillFontDescription):
32002         (WebCore::RenderThemeWin::systemFont):
32003
32004 2006-09-22  Dave Hyatt <hyatt@apple.com>
32005
32006         Scrollbar preparation work.
32007         
32008         (1) Add support for enabling/disabling widgets.
32009         (2) Add support for invalidation of part or all of a widget.
32010         (3) Clean up some of the Win32 scrollbar code.  All that's left is painting
32011         and event handling. (Oh, is that all...) :)
32012
32013         Reviewed by anders
32014
32015         * platform/win/PlatformScrollBarWin.cpp:
32016         (WebCore::PlatformScrollBar::setScrollBarValue):
32017         (WebCore::PlatformScrollBar::setKnobProportion):
32018         (WebCore::PlatformScrollBar::setEnabled):
32019         (WebCore::PlatformScrollBar::paint):
32020         * platform/win/TemporaryLinkStubs.cpp:
32021         * platform/win/WidgetWin.cpp:
32022         (WebCore::Widget::Widget):
32023         (WebCore::Widget::setEnabled):
32024         (WebCore::Widget::invalidate):
32025         (WebCore::Widget::invalidateRect):
32026
32027 2006-09-21  Brady Eidson <beidson@apple.com>
32028
32029         Build was broken for at least some, and I think my checkin that messed with 
32030         #include orders was to blame (and it was messy, broken or not) - this cleans that up
32031
32032         * platform/win/ResourceLoaderWin.cpp:
32033
32034 2006-09-21  Alice Liu  <alice.liu@apple.com>
32035
32036         Reviewed by Hyatt.
32037
32038         windows build fix
32039
32040         * platform/win/GraphicsContextWin.cpp:
32041         wrapped a CG #include in #if PLATFORM(CG)
32042
32043 2006-09-21  Geoffrey Garen  <ggaren@apple.com>
32044
32045         Reviewed by Maciej, Hyatt, Steve.
32046     
32047         frames!
32048         
32049         Prep work:
32050             - moved ScrollViewWin into OpenSourceWin
32051             - set eol-style:native on some files and corrected line endings
32052             - updated the WebCore project so that you don't need cygwin in your Windows path
32053               to build correctly.
32054
32055         Real work:
32056
32057             On Windows, Widgets are no longer interfaces to Windows UI tookit objects. They're 
32058             just positioned objects.
32059                 
32060             Widgets position themselves relative to their parents. The top-level widget technically
32061             has a position relative to the WebView, but that's academic, since it's always (0, 0).
32062             All widgets draw inside a common containing window (the WebView window). ScrollView 
32063             handles transformation, clipping, and dirty rect management.
32064             
32065             I've filed a bunch of bugs on remaining frames work. Most notably, closing a page with
32066             a frame in it causes a crash because WebCore depends on WebKit to manage frame lifetime.
32067             I'm going to fix that by integrating frame ownership into the DOM.
32068             
32069 2006-09-21  Steve Falkenburg  <sfalken@apple.com>
32070
32071         Reviewed by Anders.
32072         
32073         <rdar://4516072>
32074         <rdar://4601320>
32075         
32076         Implemented JavaScript alert/confirm/prompt inside app.
32077         This is done via IWebUIDelegate.
32078
32079         * bridge/win/FrameWin.cpp:
32080         (WebCore::FrameWin::userAgent):
32081         (WebCore::FrameWin::runJavaScriptAlert):
32082         (WebCore::FrameWin::runJavaScriptConfirm):
32083         (WebCore::FrameWin::runJavaScriptPrompt):
32084         * bridge/win/FrameWin.h:
32085         * platform/win/TemporaryLinkStubs.cpp:
32086         (FrameWin::registerCommandForRedo):
32087
32088 2006-09-21  Sean Gies  <seangies@apple.com>
32089
32090         Reviewed by NOBODY.
32091
32092         Unfork GraphicsContextCG.cpp.
32093
32094         * WebCore.vcproj/WebCore.vcproj: Unfork GraphicsContextCG.cpp and add GraphicsContextWin.cpp
32095         * platform/win/GraphicsContextWin.cpp: Added.
32096
32097 2006-09-21  Luke Wallis  <wallis@apple.com>
32098
32099         Rubber stamped by Steve.
32100
32101         Added (commented out for now) defines for building on PLATFORM(CG).
32102
32103         * config.h:
32104
32105 2006-09-21  Luke Wallis <wallis@apple.com>
32106
32107         Reviewed by Adam Roben.
32108
32109         Fix build. Added #if PLATFORM(CG) around variable defined only for CG.
32110
32111         * platform/win/FontDataWin.cpp:
32112         (WebCore::FontData::platformInit):
32113
32114 2006-09-21  Sean Gies  <seangies@apple.com>
32115
32116         Reviewed by Adam Roben.
32117
32118         Draw form controls when rendering with CG.
32119
32120         * platform/cg/GraphicsContextCG.cpp:
32121         (WebCore::CGContextWithHDC): New function to create CGContext given an HDC.
32122         (WebCore::GraphicsContext::GraphicsContext): New constructor that takes an HDC.
32123         (WebCore::GraphicsContext::getWindowsContext): Return underlying HDC to client.
32124         (WebCore::GraphicsContext::releaseWindowsContext): Restore underlying HDC after client mucked with it.
32125         * platform/cg/GraphicsContextPlatformPrivate.h: Add field to hold HDC.
32126         * rendering/RenderThemeWin.cpp: Implement prepareForDrawing and doneDrawing for CG.
32127
32128 2006-09-21  Anders Carlsson  <acarlsson@apple.com>
32129
32130         Reviewed by Tim O.
32131
32132         Support getting the plugin element as an NPObject.
32133         
32134         * plugins/win/PluginViewWin.cpp:
32135         (WebCore::PluginViewWin::getValue):
32136         (WebCore::PluginViewWin::PluginViewWin):
32137         * plugins/win/PluginViewWin.h:
32138
32139 2006-09-21  Sean Gies  <seangies@apple.com>
32140
32141         Reviewed by Adam Roben.
32142
32143         Forked GraphicsContextCG.cpp and GraphicsContextPlatformPrivate.h from open source #16504.
32144
32145         * platform/cg/GraphicsContextCG.cpp: Added.
32146         * platform/cg/GraphicsContextPlatformPrivate.h: Added.
32147
32148 2006-09-21  Sean Gies  <seangies@apple.com>
32149
32150         Reviewed by Adam Roben.
32151
32152         Support synthetic bold and/or oblique with CG.
32153
32154         * platform/win/FontCacheWin.cpp: Pass new arguments to updated FontPlatformData constructor.
32155         * platform/win/FontDataWin.cpp:
32156         (WebCore::FontData::platformInit): Choose synthetic bold offset.
32157         (WebCore::FontData::platformWidthForGlyph): Take synthetic bold offset into account.
32158         * platform/win/FontPlatformData.h: Add fields for synthetic styles.
32159         * platform/win/FontPlatformDataWin.cpp: Ask HFONT if it supports bold or italics.
32160         * platform/win/FontWin.cpp:
32161         (WebCore::Font::drawGlyphs): Restore code for implementing synthetic stlyes.
32162
32163 2006-09-21  Brady Eidson  <beidson@apple.com>
32164
32165         Reviewed by Anders
32166
32167         Fixed one definite bug and did alot of cleanup to make it resemble the unforked version of the file
32168         in preparation for merging it back out
32169
32170         * platform/win/ResourceLoaderWin.cpp:
32171         (WebCore::ResourceLoaderWndProc):
32172         (WebCore::transferJobStatusCallback): Fixed a bug here!  :)
32173         (WebCore::ResourceLoader::start):
32174         (WebCore::ResourceLoader::fileLoadTimer):
32175         (WebCore::ResourceLoader::cancel):
32176
32177 2006-09-21  2006-09-21  Dave Hyatt <hyatt@apple.com>
32178
32179         Implement mouse wheel scrolling on Win32.  Also forked ScrollViewWin.cpp and fixed some bugs in it.
32180
32181         * WebCore.vcproj/WebCore.vcproj:
32182         * platform/win/ScrollViewWin.cpp: Added.
32183         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
32184         (WebCore::ScrollView::ScrollView):
32185         (WebCore::ScrollView::~ScrollView):
32186         (WebCore::ScrollView::updateContents):
32187         (WebCore::ScrollView::visibleWidth):
32188         (WebCore::ScrollView::visibleHeight):
32189         (WebCore::ScrollView::visibleContentRect):
32190         (WebCore::ScrollView::setContentsPos):
32191         (WebCore::ScrollView::resizeContents):
32192         (WebCore::ScrollView::contentsX):
32193         (WebCore::ScrollView::contentsY):
32194         (WebCore::ScrollView::contentsWidth):
32195         (WebCore::ScrollView::contentsHeight):
32196         (WebCore::ScrollView::viewportToContents):
32197         (WebCore::ScrollView::contentsToViewport):
32198         (WebCore::ScrollView::scrollOffset):
32199         (WebCore::ScrollView::maximumScroll):
32200         (WebCore::ScrollView::scrollBy):
32201         (WebCore::ScrollView::hScrollBarMode):
32202         (WebCore::ScrollView::vScrollBarMode):
32203         (WebCore::ScrollView::suppressScrollBars):
32204         (WebCore::ScrollView::setHScrollBarMode):
32205         (WebCore::ScrollView::setVScrollBarMode):
32206         (WebCore::ScrollView::setScrollBarsMode):
32207         (WebCore::ScrollView::setStaticBackground):
32208         (WebCore::ScrollView::updateScrollInfo):
32209         (WebCore::ScrollView::updateScrollBars):
32210         (WebCore::ScrollView::wheelEvent):
32211         * platform/win/WheelEventWin.cpp: Added.
32212         (WebCore::positionForEvent):
32213         (WebCore::globalPositionForEvent):
32214         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
32215
32216 2006-09-20  Sean Gies  <seangies@apple.com>
32217
32218         Reviewed by Adam Roben.
32219
32220         Added platform/cg/ColorCG.cpp
32221
32222         * WebCore.vcproj/WebCore.vcproj: Add ColorCG.cpp
32223         * platform/cg/ColorCG.cpp: Added.
32224
32225 2006-09-20  Sean Gies  <seangies@apple.com>
32226
32227         Reviewed by Adam Roben.
32228
32229         Fixed ugly text spacing issues with CG for Windows.
32230
32231         * platform/win/FontDataWin.cpp: Reimplement platformWidthForGlyph using CG APIs.
32232
32233 2006-09-19  Anders Carlsson  <acarlsson@apple.com>
32234
32235         Reviewed by Dave Hyatt.
32236         
32237         <rdar://problem/4734743> Crash accessing YouTube.
32238         
32239         * config.h:
32240         Enable some more of the JSC bindings code on Windows.
32241         
32242 2006-09-18  Brady Eidson  <beidson@apple.com>
32243
32244         YABF, and merged a change from open source ResourceLoaderWin.cpp
32245
32246         * bridge/win/FrameWin.h:
32247         * platform/win/ResourceLoaderWin.cpp:
32248         (WebCore::ResourceLoader::fileLoadTimer):
32249         * platform/win/TemporaryLinkStubs.cpp:
32250         (FrameWin::isLoadTypeReload):
32251
32252 2006-09-18  Sean Gies  <seangies@apple.com>
32253
32254         Reviewed by Adam Roben.
32255
32256         Support bold & italics.
32257
32258         * platform/win/FontPlatformDataWin.cpp: Use GetOutlineTextMetrics instead of GetTextFace to
32259             query HFONT name.
32260
32261 2006-09-18  Sean Gies  <seangies@apple.com>
32262
32263         Reviewed by Adam Roben.
32264
32265         Changes to bring up CoreGraphics on Windows.
32266
32267         * WebCore.vcproj/WebCore.vcproj: Search platform/cg for headers.  Compile platform/cg/*.cpp.
32268              Add AffineTransform.cpp to build.
32269         * platform/win/FontDataWin.cpp: Include CG before using it.
32270         * platform/win/FontPlatformDataWin.cpp: Fixed typo.
32271         * platform/win/ImageWin.cpp: Include CG and winsock2.  Implement CG version of Image::getHBITMAP.
32272              In Cairo version of Image::getHBITMAP, use correct bitmapInfo field and return true for success.
32273              Fixed image loading bug.
32274
32275 2006-09-18  Brady Eidson  <beidson@apple.com>
32276
32277         Rubberstamp by Adam
32278
32279         Build fix
32280
32281         * bridge/win/FrameWin.h:
32282         * platform/win/TemporaryLinkStubs.cpp:
32283         (FrameWin::originalRequestURL):
32284
32285 2006-09-18  Sean Gies  <seangies@apple.com>
32286
32287         Reviewed by Adam Roben.
32288
32289         Forked FontCacheWin.cpp from OpenSource tree r16421.
32290
32291         * WebCore.vcproj/WebCore.vcproj: Point to Internal file.
32292         * platform/win/FontCacheWin.cpp: Added.
32293
32294 2006-09-15  Anders Carlsson  <acarlsson@apple.com>
32295
32296         Reviewed by Steve.
32297
32298         * WebCore.vcproj/WebCore.vcproj:
32299         Add JavaScriptCore/ to include path.
32300
32301 2006-09-15  Adam Roben  <aroben@apple.com>
32302
32303         Reviewed by sfalken.
32304
32305         Implement historyContains() on Windows (rdar://4733770)
32306
32307         * WebCore.vcproj/WebCore.vcproj: Add
32308         platform\win\WebCoreHistory.{cpp,h} and bridge\win\HistoryWin.cpp to
32309         project.
32310         * bridge/win/HistoryWin.cpp: Added.
32311         (WebCore::historyContains):
32312         * platform/win/TemporaryLinkStubs.cpp: Remove stub for
32313         WebCore::historyContains()
32314         * platform/win/WebCoreHistory.cpp: Added.
32315         (WebCore::WebCoreHistory::setHistoryProvider):
32316         (WebCore::WebCoreHistory::historyProvider):
32317         * platform/win/WebCoreHistory.h: Added.
32318
32319 2006-09-14  Steve Falkenburg  <sfalken@apple.com>
32320
32321         Reviewed by Lou Amadio.
32322
32323         iBench fix - fix WinInet form post code to not reference a stale pointer.
32324         (found by Application Verifier)
32325
32326         * platform/win/ResourceLoaderWin.cpp:
32327         (WebCore::ResourceLoaderWndProc):
32328
32329 2006-09-14  Adam Roben  <aroben@apple.com>
32330
32331         Reviewed by sfalken.
32332
32333         A little #include cleanup
32334
32335         * WebCore.vcproj/WebCore.vcproj: Add loader/icon to
32336         AdditionalIncludeDirectories
32337         * platform/win/TemporaryLinkStubs.cpp: Remove "loader/icon" from
32338         #include of IconLoader.h
32339
32340 2006-09-14  Brady Eidson  <beidson@apple.com>
32341
32342         Build Fix
32343
32344         * WebCore.vcproj/WebCore.vcproj:
32345         * platform/win/TemporaryLinkStubs.cpp:
32346         (IconLoader::receivedResponse):
32347         (IconLoader::notifyIconChanged):
32348
32349 2006-09-13  Steve Falkenburg  <sfalken@apple.com>
32350
32351         Fixes for submission of WebCore.  Doesn't affect build.
32352
32353         * WebCore.vcproj/WebCore.vcproj:
32354         * WebCore.vcproj/merge-opensource.sh:
32355
32356 2006-09-12  Steve Falkenburg  <sfalken@apple.com>
32357
32358         Rubber-stamped by Ada.
32359
32360         Get Boomer ready for B&I submission.
32361        
32362         Projects can now all build independent of one another
32363         without groping for headers or source across trees.
32364
32365         * WebCore.vcproj/WebCore.sln: Fix standalone sln for use by B&I.
32366         * WebCore.vcproj/WebCore.vcproj: Update to new obj layout.
32367         * WebCore.vcproj/build-generated-files.sh: Build derived sources into obj, update to new obj layout.
32368         * WebCore.vcproj/dstroot-to-sdk.cmd: Copy built bits back to WebKitSDKDir for dependent builds.
32369
32370 2006-09-13  Adam Roben  <aroben@apple.com>
32371
32372         Build fix
32373
32374         * WebCore.vcproj/WebCore.vcproj: Rename KHTML_XSLT to XSLT_SUPPORT,
32375         remove KHTML_NO_XBL
32376         * config.h: Ditto.
32377
32378 2006-09-13  Adam Roben  <aroben@apple.com>
32379
32380         Reviewed by beidson.
32381
32382         Initial implementation of Icon, FileChooser on Windows.
32383
32384         * WebCore.vcproj/WebCore.vcproj: Added FileChooserWin.cpp, IconWin.cpp
32385         * platform/win/FileChooserWin.cpp: Added.
32386         (WebCore::FileChooser::FileChooser):
32387         (WebCore::FileChooser::openFileChooser):
32388         (WebCore::FileChooser::basenameForWidth):
32389         (WebCore::FileChooser::uploadControlDetaching):
32390         (WebCore::FileChooser::chooseFile):
32391         * platform/win/IconWin.cpp: Added.
32392         (WebCore::Icon::Icon):
32393         (WebCore::Icon::~Icon):
32394         (WebCore::Icon::newIconForFile):
32395         (WebCore::Icon::paint):
32396         * platform/win/TemporaryLinkStubs.cpp: Removed FileChooser, Icon stub
32397         functions
32398
32399 2006-09-13  Anders Carlsson  <acarlsson@apple.com>
32400
32401         Reviewed by Tim O.
32402
32403         Implement postURL and postURLNotify.
32404
32405         * plugins/win/PluginStreamWin.cpp:
32406         (WebCore::PluginStreamWin::~PluginStreamWin):
32407         (WebCore::PluginStreamWin::start):
32408         (WebCore::PluginStreamWin::startStream):
32409         (WebCore::PluginStreamWin::cancelAndDestroyStream):
32410         * plugins/win/PluginViewWin.cpp:
32411         (WebCore::PluginViewWin::start):
32412         (WebCore::PluginViewWin::loadURL):
32413         (WebCore::PluginViewWin::getURLNotify):
32414         (WebCore::PluginViewWin::getURL):
32415         (WebCore::startsWithBlankLine):
32416         (WebCore::locationAfterFirstBlankLine):
32417         (WebCore::findEOL):
32418         (WebCore::capitalizeRFC822HeaderFieldName):
32419         (WebCore::parseRFC822HeaderFields):
32420         (WebCore::PluginViewWin::handlePost):
32421         (WebCore::PluginViewWin::postURLNotify):
32422         (WebCore::PluginViewWin::postURL):
32423         * plugins/win/PluginViewWin.h:
32424
32425 2006-09-13  Lou Amadio  <lamadio@apple.com>
32426
32427         Reviewed by sfalken
32428
32429         * WebCore.vcproj/WebCore.vcproj:
32430
32431 2006-09-13  Adam Roben  <aroben@apple.com>
32432
32433         Build fix
32434
32435         * WebCore.vcproj/build-generated-files.sh: Export SOURCE_ROOT which is
32436         now used by CodeGenerator.pm
32437
32438 2006-09-12  Anders Carlsson  <acarlsson@apple.com>
32439
32440         Reviewed by Tim O.
32441
32442         Add scripting support for plugins.
32443         
32444         * bridge/win/FrameWin.cpp:
32445         (WebCore::FrameWin::FrameWin):
32446         (WebCore::FrameWin::addPluginRootObject):
32447         (WebCore::FrameWin::cleanupPluginObjects):
32448         (WebCore::FrameWin::bindingRootObject):
32449         (WebCore::FrameWin::windowScriptNPObject):
32450         * bridge/win/FrameWin.h:
32451         * plugins/win/PluginPackageWin.cpp:
32452         (WebCore::PluginPackageWin::load):
32453         * plugins/win/PluginViewWin.cpp:
32454         (WebCore::PluginViewWin::getValue):
32455         * plugins/win/npapi.cpp:
32456         (NPN_RequestRead):
32457         (NPN_InvalidateRect):
32458         (NPN_InvalidateRegion):
32459         (NPN_ForceRedraw):
32460
32461 2006-09-12  Adam Roben  <aroben@apple.com>
32462
32463         Reviewed many times by darin, hyatt.
32464
32465         Add stubs for new engine-based file upload control implementation and
32466         Icon class.
32467
32468         * WebCore.vcproj/WebCore.vcproj: Add new engine-based files, remove old
32469         widget-based files.
32470         * platform/win/TemporaryLinkStubs.cpp: Add stubs for FileChooser and
32471         Icon methods, and add two new LocalizedString methods.
32472         (WebCore::fileButtonChooseFileLabel):
32473         (WebCore::fileButtonNoFileSelectedLabel):
32474         (FileChooser::FileChooser):
32475         (FileChooser::~FileChooser):
32476         (FileChooser::openFileChooser):
32477         (FileChooser::basenameForWidth):
32478         (FileChooser::uploadControlDetaching):
32479         (Icon::~Icon):
32480         (Icon::paint):
32481
32482 2006-09-11  Anders Carlsson  <acarlsson@apple.com>
32483
32484         Reviewed by Tim O.
32485
32486         Add stream and URL handling to PluginViewWin. Include PluginStreamWin.cpp in the build.
32487         Also fix a number of bugs discovered when loading various plugins.
32488         
32489         * WebCore.vcproj/WebCore.vcproj:
32490         * plugins/win/PluginViewWin.cpp:
32491         (WebCore::PluginRequestWin::PluginRequestWin):
32492         (WebCore::PluginRequestWin::url):
32493         (WebCore::PluginRequestWin::target):
32494         (WebCore::PluginRequestWin::notifyData):
32495         (WebCore::PluginRequestWin::sendNotification):
32496         (WebCore::scriptStringIfJavaScriptURL):
32497         (WebCore::registerPluginView):
32498         (WebCore::PluginViewWndProc):
32499         (WebCore::PluginViewWin::updateSize):
32500         (WebCore::PluginViewWin::setFrameGeometry):
32501         (WebCore::PluginViewWin::start):
32502         (WebCore::PluginViewWin::stop):
32503         (WebCore::createUTF8String):
32504         (WebCore::PluginViewWin::performRequest):
32505         (WebCore::PluginViewWin::requestTimerFired):
32506         (WebCore::PluginViewWin::scheduleRequest):
32507         (WebCore::PluginViewWin::loadURL):
32508         (WebCore::makeURL):
32509         (WebCore::PluginViewWin::getURLNotify):
32510         (WebCore::PluginViewWin::getURL):
32511         (WebCore::PluginViewWin::newStream):
32512         (WebCore::PluginViewWin::write):
32513         (WebCore::PluginViewWin::destroyStream):
32514         (WebCore::PluginViewWin::userAgent):
32515         (WebCore::PluginViewWin::~PluginViewWin):
32516         (WebCore::PluginViewWin::PluginViewWin):
32517         * plugins/win/PluginViewWin.h:
32518
32519 2006-09-11  Anders Carlsson  <acarlsson@apple.com>
32520
32521         * WebCore.vcproj/WebCore.vcproj:
32522         Fix build.
32523         
32524 2006-09-11  Anders Carlsson  <acarlsson@apple.com>
32525
32526         Reviewed by Tim O and Maciej.
32527
32528         Add plugin stream object.
32529         
32530         * plugins/win/PluginStreamWin.cpp: Added.
32531         (WebCore::PluginStreamWin::PluginStreamWin):
32532         (WebCore::PluginStreamWin::~PluginStreamWin):
32533         (WebCore::PluginStreamWin::setRequestHeaders):
32534         (WebCore::PluginStreamWin::setPostData):
32535         (WebCore::PluginStreamWin::start):
32536         (WebCore::PluginStreamWin::stop):
32537         (WebCore::PluginStreamWin::startStream):
32538         (WebCore::PluginStreamWin::cancelAndDestroyStream):
32539         (WebCore::PluginStreamWin::destroyStream):
32540         (WebCore::PluginStreamWin::delayDeliveryTimerFired):
32541         (WebCore::PluginStreamWin::deliverData):
32542         (WebCore::PluginStreamWin::receivedResponse):
32543         (WebCore::PluginStreamWin::receivedData):
32544         (WebCore::PluginStreamWin::receivedAllData):
32545         * plugins/win/PluginStreamWin.h: Added.
32546
32547 2006-09-10  Brady Eidson  <beidson@apple.com>
32548
32549         Reviewed by Steven Falkenburg
32550
32551         Added IconDatabase related code and forked ImageWin for its HBITMAP blit
32552
32553         * WebCore.vcproj/WebCore.vcproj: Added in all WebCore::IconDatabase stuffs
32554         * platform/win/ImageWin.cpp: Added. (forked from OpenSource)
32555         (WebCore::Image::initPlatformData):
32556         (WebCore::Image::invalidatePlatformData):
32557         (WebCore::Image::loadPlatformResource):
32558         (WebCore::Image::supportsType):
32559         (WebCore::Image::getHBITMAP): Added - blit the image to an HBITMAP 
32560         
32561 2006-09-10  David Hyatt  <hyatt@apple.com>
32562
32563         Remove the addIntrinsicMargins code from the theme.  I did this
32564         in the open source version but forgot to do it in the internal
32565         version.
32566
32567         * rendering/RenderThemeWin.cpp:
32568         (WebCore::RenderThemeWin::adjustButtonStyle):
32569         (WebCore::RenderThemeWin::adjustTextFieldStyle):
32570         (WebCore::RenderThemeWin::adjustTextAreaStyle):
32571         (WebCore::RenderThemeWin::adjustMenuListStyle):
32572
32573 2006-09-10  Brady Eidson  <beidson@apple.com>
32574
32575         Reviewed by YABF, and Adam's suggestive rubberstamp before he hopped offline
32576
32577         Build fix + FIXME/Radar to reflect an OpenSource change to the Font.h header
32578
32579         * platform/win/FontWin.cpp:
32580         (WebCore::Font::drawGlyphs): Added the parameter and a FIXME 
32581
32582 2006-09-10  Steve Falkenburg  <sfalken@apple.com>
32583
32584         Rubber-stamp by aroben.
32585         
32586         * WebCore.vcproj/WebCore.vcproj:
32587
32588 2006-09-09  Steve Falkenburg  <sfalken@apple.com>
32589
32590         Reviewed by aroben.
32591
32592         Added missing CF files to fix CFNetwork build variant
32593
32594         * WebCore.vcproj/WebCore.vcproj: Use include paths, libs, DLLs from %SystemDrive%\AppleInternal
32595         * WebCore.vcproj/build-generated-files.sh: Don't copy open source DLLs from WebKitLibraries
32596
32597 2006-09-09  Adam Roben  <aroben@apple.com>
32598
32599         Reviewed by hyatt.
32600
32601         Remove unnecessary calls to setAffectedBy{Active,Hover}Rules
32602
32603         * rendering/RenderThemeWin.cpp:
32604         (WebCore::RenderThemeWin::adjustMenuListStyle): Remove unnecessary calls
32605
32606 2006-09-06  Brady Eidson  <beidson@apple.com>
32607
32608         YABF (Yet another build fix)
32609
32610         * platform/win/FontDataWin.cpp: Added missing header
32611
32612 2006-09-06  Brady Eidson  <beidson@apple.com>
32613
32614         Reviewed by Steve's rubberstamp
32615
32616         Three stubs were added this morning, however the methods were already implemented in
32617         Internal/OpenSourceWin/WebCoreWin/bridge/win/FrameWin.cpp
32618
32619         * platform/win/TemporaryLinkStubs.cpp: Nuked some repeat symbols
32620
32621 2006-09-06  Adam Roben  <aroben@apple.com>
32622
32623         Reviewed by Darin.
32624
32625         Fixed various Windows build issues caused by previous checkins.
32626
32627         * bridge/win/FrameWin.h: Added missing #include, updated Selection to SelectionController.
32628         * platform/win/FontWin.cpp: Reorganized #includes.
32629         (WebCore::Font::drawGlyphs): Used a const_cast hack to fix ultimately broken code.
32630         * platform/win/ResourceLoaderWin.cpp: Added missing #include of CString.h and removed double #include of config.h.
32631         (WebCore::ResourceLoaderWndProc): Removed use of String::ascii.
32632         (WebCore::ResourceLoader::start): Ditto.
32633         * platform/win/TemporaryLinkStubs.cpp: Added missing stubs.
32634         (FrameWin::markMisspellings):
32635         (FrameWin::shouldChangeSelection):
32636         (FrameWin::respondToChangedSelection):
32637         (FrameWin::respondToChangedContents):
32638         (FrameWin::handledOnloadEvents):
32639         (FrameWin::createPlugin):
32640         (FrameWin::objectContentType):
32641         * rendering/RenderPopupMenuWin.cpp: Added missing #include.
32642
32643 2006-09-05  Darin Adler  <darin@apple.com>
32644
32645         - build fix part of http://bugzilla.opendarwin.org/show_bug.cgi?id=10728
32646           text encodings should work without a numeric ID
32647
32648         * WebCore.vcproj/WebCore.vcproj: Update for new headers.
32649
32650 2006-09-01  Steve Falkenburg  <sfalken@apple.com>
32651
32652         Reviewed by adachan.
32653
32654         Process redirects received in networking layer through to application.
32655         With this change, the address bar url edit field shows the proper
32656         redirected URL.
32657
32658         * platform/win/ResourceLoaderWin.cpp:
32659         (WebCore::ResourceLoaderWndProc):
32660         (WebCore::transferJobStatusCallback):
32661         (WebCore::ResourceLoader::start):
32662
32663 2006-09-01  Ada Chan  <adachan@apple.com>
32664
32665         Reviewed by lamadio.
32666
32667         Fixed build break.
32668
32669         * bridge/win/FrameWin.h:
32670         * platform/win/TemporaryLinkStubs.cpp:
32671         (FrameWin::respondToChangedContents):
32672
32673 2006-08-31  Anders Carlsson  <acarlsson@apple.com>
32674
32675         Reviewed by Steve.
32676
32677         Add our own internal config.h so we can make changes to it.
32678         
32679         * WebCore.vcproj/WebCore.vcproj:
32680         Add config.h to the file list, move the KXMLCORE_PLATFORM_CF to the new config.h file 
32681                        
32682         * config.h: Added.
32683         
32684         * platform/win/ResourceLoaderWin.cpp:
32685         Include config.h        
32686
32687 2006-08-31  Dave Hyatt <hyatt@apple.com>
32688
32689         Add a platform scrollbar class for Windows.  It doesn't really work yet.
32690
32691         * WebCore.vcproj/WebCore.vcproj:
32692         * platform/win/TemporaryLinkStubs.cpp:
32693         * platform/win/PlatformScrollBarWin.cpp
32694
32695 2006-08-31  Anders Carlsson  <acarlsson@apple.com>
32696
32697         Fix the build.
32698
32699         * WebCore.vcproj/WebCore.vcproj:
32700
32701 2006-08-30  Steve Falkenburg  <sfalken@apple.com>
32702
32703         Reviewed by Ada Chan.
32704
32705         * bridge/win/FrameWin.cpp:
32706         (WebCore::FrameWin::submitForm): Pass form values to submit form delegate
32707         * bridge/win/FrameWin.h: Pass form values to submit form delegate
32708
32709 2006-08-29  David Hyatt  <hyatt@apple.com>
32710
32711         Make project changes so that the forked Font files (and Cairo/JPG/PNG) are all used.
32712
32713         * WebCore.vcproj/WebCore.vcproj:
32714
32715 2006-08-29  David Hyatt  <hyatt@apple.com>
32716
32717         This patch lands all the font changes.  It does not patch the project file
32718         yet, since this was done on Mac.  Will switch to Win32 after landing this
32719         and then fix any glitches.
32720
32721         * platform/cairo/cairo-all.c: Added.
32722         * platform/cairo/pixman-all.c: Added.
32723         * platform/image-decoders/jpeg/jpeg-part1.c: Added.
32724         * platform/image-decoders/jpeg/jpeg-part2.c: Added.
32725         * platform/image-decoders/jpeg/jpeg-part3.c: Added.
32726         * platform/image-decoders/png/png-part1.c: Added.
32727         * platform/image-decoders/png/png-part2.c: Added.
32728         * platform/win/FontDataWin.cpp:
32729         (WebCore::FontData::platformInit):
32730         (WebCore::FontData::platformDestroy):
32731         (WebCore::FontData::platformWidthForGlyph):
32732         * platform/win/FontPlatformData.h:
32733         (WebCore::FontPlatformData::FontPlatformData):
32734         (WebCore::FontPlatformData::cgFont):
32735         (WebCore::FontPlatformData::operator==):
32736         * platform/win/FontPlatformDataWin.cpp:
32737         (WebCore::m_size):
32738         * platform/win/FontWin.cpp:
32739         (WebCore::Font::drawGlyphs):
32740
32741 2006-08-29  David Hyatt  <hyatt@apple.com>
32742
32743         Forking the font files in preparation for dropping in CG code.
32744
32745         Reviewed by adam
32746
32747         * WebCore.vcproj/WebCore.vcproj:
32748         * platform/win/FontDataWin.cpp: Added.
32749         (WebCore::FontData::platformInit):
32750         (WebCore::FontData::platformDestroy):
32751         (WebCore::FontData::smallCapsFontData):
32752         (WebCore::FontData::containsCharacters):
32753         (WebCore::FontData::determinePitch):
32754         (WebCore::FontData::platformWidthForGlyph):
32755         * platform/win/FontPlatformData.h: Added.
32756         (WebCore::FontPlatformData::FontPlatformData):
32757         (WebCore::FontPlatformData::hfont):
32758         (WebCore::FontPlatformData::fontFace):
32759         (WebCore::FontPlatformData::scaledFont):
32760         (WebCore::FontPlatformData::size):
32761         (WebCore::FontPlatformData::hash):
32762         (WebCore::FontPlatformData::operator==):
32763         * platform/win/FontPlatformDataWin.cpp: Added.
32764         (WebCore::m_size):
32765         (WebCore::FontPlatformData::~FontPlatformData):
32766         * platform/win/FontWin.cpp: Added.
32767         (WebCore::notImplemented):
32768         (WebCore::Font::drawGlyphs):
32769         (WebCore::Font::selectionRectForComplexText):
32770         (WebCore::Font::drawComplexText):
32771         (WebCore::Font::floatWidthForComplexText):
32772         (WebCore::Font::offsetForPositionForComplexText):
32773
32774 2006-08-28  Geoffrey Garen  <ggaren@apple.com>
32775
32776         Reviewed by Maciej.
32777
32778         Landed CFNetwork loader, off by default. To enable, define:
32779             KXMLCORE_PLATFORM_CF
32780             KXMLCORE_USE_CFNETWORK
32781
32782         CFNetwork uses winsock2. If you do this, you need to make sure that winsock2.h
32783         is included before windows.h in any translation unit in which it's used.
32784         A lot of the jiggering in this patch is devoted to that.
32785         
32786         * WebCore.vcproj/WebCore.vcproj:
32787         * platform/win/ResourceLoaderWin.cpp: Removed reliance on PlatformData
32788         since it wasn't being used, and removing it made easy work of integrating
32789         CFNetwork in a Windows-independent way.
32790         (WebCore::ResourceLoaderWndProc):
32791         (WebCore::ResourceLoader::fileLoadTimer):
32792         (WebCore::ResourceLoader::cancel):
32793         * platform/win/TemporaryLinkStubs.cpp:
32794         (Path::contains):
32795         * platform/win/WidgetWin.cpp:
32796         * plugins/win/PluginDatabaseWin.cpp:
32797         * plugins/win/PluginPackageWin.h:
32798         * plugins/win/PluginViewWin.h:
32799         * plugins/win/npapi.cpp:
32800         * rendering/RenderPopupMenuWin.cpp:
32801         * rendering/RenderPopupMenuWin.h:
32802         * rendering/RenderThemeWin.cpp:
32803
32804 2006-08-28  Ada Chan  <adachan@apple.com>
32805
32806         Reviewed by ggaren.
32807
32808         Fixed build.
32809
32810         * platform/win/TemporaryLinkStubs.cpp:
32811         (Path::contains):
32812
32813 2006-08-25  David Hyatt  <hyatt@apple.com>
32814
32815         Land CG/Cairo refactoring (and add some winsock2.h).  (I do not really
32816         understand why the winsock2.h stuff would suddenly be needed.)
32817
32818         * platform/win/ResourceLoaderWin.h:
32819         * platform/win/TemporaryLinkStubs.cpp:
32820         (GraphicsContext::setAlpha):
32821         (GraphicsContext::drawFocusRing):
32822         (GraphicsContext::drawLineForMisspelling):
32823         (GraphicsContext::setCompositeOperation):
32824         * plugins/win/PluginPackageWin.h:
32825         * plugins/win/PluginViewWin.h:
32826         * plugins/win/npapi.cpp:
32827         * rendering/RenderThemeWin.cpp:
32828         (WebCore::prepareForDrawing):
32829         (WebCore::doneDrawing):
32830
32831 2006-08-24  Geoffrey Garen  <ggaren@apple.com>
32832
32833         Reviewed by Darin.
32834
32835         Frame refactoring: changed FrameView clients so they no longer assume that
32836         FrameViews are Widgets that can tell you things about the platform, in 
32837         preparation for divorcing FrameViews from heavy-weight Widgets altogether.
32838
32839         This patch makes Page, rather than Widget, responsible for holding the
32840         page's HWND. Refactoring aside, I think this makes more sense.
32841
32842 2006-08-24  Geoffrey Garen  <ggaren@apple.com>
32843
32844         Reviewed by Hyatt.
32845
32846         Branching PageWin.cpp from r15969.
32847
32848         * WebCore.vcproj/WebCore.vcproj:
32849         * bridge/win/PageWin.cpp: Added.
32850         (WebCore::Page::Page):
32851         (WebCore::Page::windowRect):
32852         (WebCore::Page::setWindowRect):
32853
32854 2006-08-23  Adam Roben  <aroben@apple.com>
32855
32856         Reviewed by Ada.
32857
32858         Fixed placement of popups when document is scrolled.
32859
32860         * rendering/RenderPopupMenuWin.cpp:
32861         (WebCore::RenderPopupMenuWin::setPositionAndSize):
32862
32863 2006-08-23  Steve Falkenburg  <sfalken@apple.com>
32864
32865         Build fix (many of our include paths were wrong!)
32866
32867         * WebCore.vcproj/WebCore.vcproj:
32868
32869 2006-08-23  Adam Roben  <aroben@apple.com>
32870
32871         Reviewed by Darin, Lou, Adele.
32872
32873         Initial implementation of <select> elements on Windows.
32874
32875         * WebCore.vcproj/WebCore.vcproj:
32876             Added RenderPopupMenuWin.cpp
32877         * platform/win/TemporaryLinkStubs.cpp:
32878         (RenderPopupMenuWin::addGroupLabel):
32879         * rendering/RenderPopupMenuWin.cpp: Added.
32880         (WebCore::RenderPopupMenuWin::RenderPopupMenuWin):
32881         (WebCore::RenderPopupMenuWin::~RenderPopupMenuWin):
32882         (WebCore::RenderPopupMenuWin::clear):
32883         (WebCore::RenderPopupMenuWin::populate):
32884         (WebCore::RenderPopupMenuWin::showPopup):
32885         (WebCore::RenderPopupMenuWin::hidePopup):
32886         (WebCore::RenderPopupMenuWin::setPositionAndSize):
32887         (WebCore::RenderPopupMenuWin::addOption):
32888         (WebCore::RenderPopupMenuWin::down):
32889         (WebCore::RenderPopupMenuWin::up):
32890         (WebCore::registerPopup):
32891         (WebCore::PopupWndProc):
32892         * rendering/RenderPopupMenuWin.h:
32893             Added useful properties.
32894         (WebCore::RenderPopupMenuWin::popupHandle):
32895         (WebCore::RenderPopupMenuWin::containerHandle):
32896         (WebCore::RenderPopupMenuWin::wasClicked):
32897         (WebCore::RenderPopupMenuWin::setWasClicked):
32898         * rendering/RenderThemeWin.cpp:
32899         (WebCore::RenderThemeWin::RenderThemeWin):
32900         (WebCore::RenderThemeWin::openButtonTheme):
32901         (WebCore::RenderThemeWin::openTextFieldTheme):
32902         (WebCore::RenderThemeWin::openMenuListTheme):
32903         (WebCore::RenderThemeWin::close):
32904         (WebCore::RenderThemeWin::supportsFocus):
32905         (WebCore::RenderThemeWin::determineState):
32906         (WebCore::RenderThemeWin::getThemeData):
32907         (WebCore::RenderThemeWin::paintButton):
32908         (WebCore::RenderThemeWin::paintTextField):
32909             Refactored the above methods and added cases for
32910             MenulistAppearance where appropriate.
32911         (WebCore::RenderThemeWin::paintMenuList):
32912         (WebCore::RenderThemeWin::adjustMenuListStyle):
32913             Implemented the above methods.
32914         * rendering/RenderThemeWin.h:
32915
32916 2006-08-22  Geoffrey Garen  <ggaren@apple.com>
32917
32918         My first Windows build fix.
32919
32920         * WebCore.vcproj/WebCore.vcproj:
32921             - Link against version.lib, since the new plug-in stuff requires it
32922             - Sync the release and debug header search paths, so release
32923               finds the JS bindings.
32924
32925 2006-08-18  Anders Carlsson  <acarlsson@apple.com>
32926
32927         * plugins/win/PluginViewWin.cpp:
32928         (WebCore::PluginViewWin::write):
32929         (WebCore::PluginViewWin::destroyStream):
32930         Another attempt at fixing the build. Make these two functions into instance methods of PluginViewWin.
32931
32932 2006-08-18  Anders Carlsson  <acarlsson@apple.com>
32933
32934         * plugins/win/PluginViewWin.cpp:
32935         (WebCore::write):
32936         (WebCore::destroyStream):
32937         * plugins/win/PluginViewWin.h:
32938         Fix build by removing unneeded parameters.
32939
32940 2006-08-18  Anders Carlsson  <acarlsson@apple.com>
32941
32942         Reviewed by Adele.
32943
32944         Have the NPN functions call into the plugin view. Implement some of the plugin view methods.
32945
32946         * plugins/win/PluginViewWin.cpp:
32947         (WebCore::PluginViewWin::start):
32948         (WebCore::PluginViewWin::setCurrentPluginView):
32949         (WebCore::PluginViewWin::currentPluginView):
32950         (WebCore::PluginViewWin::getURLNotify):
32951         (WebCore::PluginViewWin::getURL):
32952         (WebCore::PluginViewWin::postURLNotify):
32953         (WebCore::PluginViewWin::postURL):
32954         (WebCore::PluginViewWin::newStream):
32955         (WebCore::write):
32956         (WebCore::destroyStream):
32957         (WebCore::PluginViewWin::userAgent):
32958         (WebCore::PluginViewWin::status):
32959         (WebCore::PluginViewWin::getValue):
32960         (WebCore::PluginViewWin::setValue):
32961         (WebCore::PluginViewWin::~PluginViewWin):
32962         (WebCore::PluginViewWin::PluginViewWin):
32963         * plugins/win/PluginViewWin.h:
32964         * plugins/win/npapi.cpp:
32965         (pluginViewForInstance):
32966         (NPN_ReloadPlugins):
32967         (NPN_GetURLNotify):
32968         (NPN_GetURL):
32969         (NPN_PostURLNotify):
32970         (NPN_PostURL):
32971         (NPN_NewStream):
32972         (NPN_Write):
32973         (NPN_DestroyStream):
32974         (NPN_UserAgent):
32975         (NPN_Status):
32976         (NPN_GetValue):
32977         (NPN_SetValue):
32978
32979 2006-08-17  Anders Carlsson  <acarlsson@apple.com>
32980
32981         Reviewed by Steve and Maciej.
32982
32983         Add initial implementation of plugin view.
32984
32985         * WebCore.vcproj/WebCore.vcproj:
32986         Add files.
32987         
32988         * bridge/win/FrameWin.cpp:
32989         (WebCore::FrameWin::objectContentType):
32990         (WebCore::FrameWin::createPlugin):
32991         Implement these functions.
32992         
32993         * platform/win/TemporaryLinkStubs.cpp:
32994         Remove implemented functions.
32995         
32996         * platform/win/WidgetWin.cpp: Add this file from the open source repo
32997         (WebCore::Widget::~Widget):
32998         Call DestroyWindow on the hWnd.
32999         
33000         * plugins/win/PluginDatabaseWin.cpp:
33001         (WebCore::PluginDatabaseWin::createPluginView):
33002         New function which creates a plugin view.
33003         
33004         * plugins/win/PluginDatabaseWin.h:
33005         
33006         * plugins/win/PluginPackageWin.cpp:
33007         (WebCore::PluginPackageWin::load):
33008         Assign the browser functions. They are just stubs for now.
33009                
33010         * plugins/win/PluginViewWin.cpp: Added.
33011         (WebCore::registerPluginView):
33012         (WebCore::PluginViewWndProc):
33013         (WebCore::PluginViewWin::invokeSetWindow):
33014         (WebCore::PluginViewWin::start):
33015         (WebCore::PluginViewWin::stop):
33016         (WebCore::createUTF8String):
33017         (WebCore::createUTF8StringArray):
33018         (WebCore::freeStringArray):
33019         (WebCore::PluginViewWin::~PluginViewWin):
33020         (WebCore::PluginViewWin::PluginViewWin):
33021         * plugins/win/PluginViewWin.h: Added.
33022         (WebCore::PluginViewWin::plugin):
33023         (WebCore::PluginViewWin::instance):
33024         * plugins/win/npapi.cpp: Added.
33025         (NPN_MemAlloc):
33026         (NPN_MemFree):
33027         (NPN_MemFlush):
33028         (NPN_ReloadPlugins):
33029         (NPN_RequestRead):
33030         (NPN_GetURLNotify):
33031         (NPN_GetURL):
33032         (NPN_PostURLNotify):
33033         (NPN_PostURL):
33034         (NPN_NewStream):
33035         (NPN_Write):
33036         (NPN_DestroyStream):
33037         (NPN_UserAgent):
33038         (NPN_Status):
33039         (NPN_InvalidateRect):
33040         (NPN_InvalidateRegion):
33041         (NPN_ForceRedraw):
33042         (NPN_GetValue):
33043         (NPN_SetValue):
33044         (NPN_GetJavaEnv):
33045         (NPN_GetJavaPeer):
33046
33047 2006-08-17  Anders Carlsson  <acarlsson@apple.com>
33048
33049         Reviewed by Maciej.
33050
33051         Add initial implementation of plugin database.
33052         
33053         * WebCore.vcproj/WebCore.vcproj:
33054         Add new files.
33055         
33056         * platform/win/TemporaryLinkStubs.cpp:
33057         Get rid of the PlugInInfoStore stubs.
33058
33059         * plugins/win/PlugInInfoStoreWin.cpp: Added.
33060         (WebCore::PlugInInfoStore::createPluginInfoForPluginAtIndex):
33061         (WebCore::PlugInInfoStore::pluginCount):
33062         (WebCore::PlugInInfoStore::supportsMIMEType):
33063         (WebCore::refreshPlugins):
33064         * plugins/win/PluginDatabaseWin.cpp: Added.
33065         (WebCore::PluginDatabaseWin::installedPlugins):
33066         (WebCore::PluginDatabaseWin::refresh):
33067         (WebCore::PluginDatabaseWin::plugins):
33068         (WebCore::PluginDatabaseWin::getPluginsInPaths):
33069         (WebCore::PluginDatabaseWin::defaultPluginPaths):
33070         (WebCore::PluginDatabaseWin::isMIMETypeRegistered):
33071         (WebCore::PluginDatabaseWin::pluginForMIMEType):
33072         (WebCore::PluginDatabaseWin::pluginForExtension):
33073         * plugins/win/PluginDatabaseWin.h: Added.
33074         (WebCore::PluginDatabaseWin::setPluginPaths):
33075         * plugins/win/PluginPackageWin.cpp: Added.
33076         (WebCore::PluginPackageWin::~PluginPackageWin):
33077         (WebCore::getVersionInfo):
33078         (WebCore::splitString):
33079         (WebCore::PluginPackageWin::PluginPackageWin):
33080         (WebCore::PluginPackageWin::fetchInfo):
33081         (WebCore::PluginPackageWin::load):
33082         (WebCore::PluginPackageWin::unload):
33083         (WebCore::PluginPackageWin::unloadWithoutShutdown):
33084         (WebCore::PluginPackageWin::createPackage):
33085         (WebCore::PluginPackageWin::hash):
33086         (WebCore::PluginPackageWin::equal):
33087         * plugins/win/PluginPackageWin.h: Added.
33088         (WebCore::PluginPackageWin::name):
33089         (WebCore::PluginPackageWin::description):
33090         (WebCore::PluginPackageWin::fileName):
33091         (WebCore::PluginPackageWin::mimeToDescriptions):
33092         (WebCore::PluginPackageWin::mimeToExtensions):
33093         (WebCore::PluginPackageWin::pluginFuncs):
33094         (WebCore::PluginPackageWinHash::hash):
33095         (WebCore::PluginPackageWinHash::equal):
33096         (WTF::):
33097         * plugins/win/npfunctions.h: Added.
33098
33099 2006-08-17  Adam Roben  <aroben@apple.com>
33100
33101         Removing this unintentionally added file.
33102
33103         * rendering/RenderPopupMenuWin.cpp: Removed.
33104
33105 2006-08-17  Adam Roben  <aroben@apple.com>
33106
33107         Reviewed by Steve.
33108
33109         Branching files from OpenSource tree r15924 to prepare for <select>
33110         element implementation.
33111
33112         * WebCore.vcproj/WebCore.vcproj:
33113         * rendering/RenderPopupMenuWin.h: Added.
33114         (WebCore::RenderPopupMenuWin::RenderPopupMenuWin):
33115         * rendering/RenderThemeWin.cpp: Added.
33116         (WebCore::theme):
33117         (WebCore::m_textFieldTheme):
33118         (WebCore::RenderThemeWin::~RenderThemeWin):
33119         (WebCore::RenderThemeWin::close):
33120         (WebCore::RenderThemeWin::platformActiveSelectionBackgroundColor):
33121         (WebCore::RenderThemeWin::platformInactiveSelectionBackgroundColor):
33122         (WebCore::RenderThemeWin::platformActiveSelectionForegroundColor):
33123         (WebCore::RenderThemeWin::platformInactiveSelectionForegroundColor):
33124         (WebCore::RenderThemeWin::addIntrinsicMargins):
33125         (WebCore::RenderThemeWin::supportsFocus):
33126         (WebCore::RenderThemeWin::determineState):
33127         (WebCore::RenderThemeWin::getThemeData):
33128         (WebCore::RenderThemeWin::adjustButtonStyle):
33129         (WebCore::prepareForDrawing):
33130         (WebCore::doneDrawing):
33131         (WebCore::RenderThemeWin::paintButton):
33132         (WebCore::RenderThemeWin::setCheckboxSize):
33133         (WebCore::RenderThemeWin::setRadioSize):
33134         (WebCore::RenderThemeWin::adjustTextFieldStyle):
33135         (WebCore::RenderThemeWin::paintTextField):
33136         (WebCore::RenderThemeWin::adjustTextAreaStyle):
33137         (WebCore::RenderThemeWin::paintTextArea):
33138         (WebCore::RenderThemeWin::createPopupMenu):
33139         * rendering/RenderThemeWin.h: Added.
33140         (WebCore::ThemeData::m_state):
33141         (WebCore::RenderThemeWin::supportsHover):
33142         (WebCore::RenderThemeWin::paintCheckbox):
33143         (WebCore::RenderThemeWin::paintRadio):
33144
33145 2006-08-15  Steve Falkenburg  <sfalken@apple.com>
33146
33147         Pull TemporaryLinkStubs.cpp into internal tree to fix the build.
33148
33149         * WebCore.vcproj/WebCore.vcproj:
33150         * platform/win/TemporaryLinkStubs.cpp: Added.
33151         (notImplemented):
33152         (FrameView::updateBorder):
33153         (FrameView::isFrameView):
33154         (PopUpButton::focusPolicy):
33155         (PopUpButton::populate):
33156         (Widget::enableFlushDrawing):
33157         (Widget::isEnabled):
33158         (Widget::focusPolicy):
33159         (Widget::disableFlushDrawing):
33160         (Widget::lockDrawingFocus):
33161         (Widget::unlockDrawingFocus):
33162         (JavaAppletWidget::JavaAppletWidget):
33163         (TextField::selectAll):
33164         (TextField::addSearchResult):
33165         (TextField::selectionStart):
33166         (TextField::hasSelectedText):
33167         (TextField::selectedText):
33168         (TextField::setAutoSaveName):
33169         (TextField::checksDescendantsForFocus):
33170         (TextField::setSelection):
33171         (TextField::setMaxResults):
33172         (TextField::edited):
33173         (Slider::Slider):
33174         (Slider::sizeHint):
33175         (Slider::setValue):
33176         (Slider::setMaxValue):
33177         (Slider::setMinValue):
33178         (Slider::~Slider):
33179         (Slider::setFont):
33180         (Slider::value):
33181         (ListBox::setSelected):
33182         (ListBox::sizeForNumberOfLines):
33183         (ListBox::isSelected):
33184         (ListBox::appendItem):
33185         (ListBox::doneAppendingItems):
33186         (ListBox::setWritingDirection):
33187         (ListBox::setEnabled):
33188         (ListBox::clear):
33189         (ListBox::checksDescendantsForFocus):
33190         (FileButton::FileButton):
33191         (FileButton::click):
33192         (FileButton::sizeForCharacterWidth):
33193         (FileButton::focusPolicy):
33194         (FileButton::frameGeometry):
33195         (FileButton::setFilename):
33196         (FileButton::baselinePosition):
33197         (FileButton::setFrameGeometry):
33198         (FileButton::setDisabled):
33199         (Slider::focusPolicy):
33200         (ListBox::focusPolicy):
33201         (TextField::focusPolicy):
33202         (Cursor::Cursor):
33203         (PlatformMouseEvent::PlatformMouseEvent):
33204         (WebCore::searchableIndexIntroduction):
33205         (WebCore::findNextSentenceFromIndex):
33206         (WebCore::findSentenceBoundary):
33207         (WebCore::findNextWordFromIndex):
33208         (WebCore::ServeSynchronousRequest):
33209         (FrameWin::focusWindow):
33210         (FrameWin::unfocusWindow):
33211         (FrameWin::locationbarVisible):
33212         (FrameWin::issueRedoCommand):
33213         (FrameWin::getObjectInstanceForWidget):
33214         (FrameWin::getEmbedInstanceForWidget):
33215         (FrameWin::canRedo):
33216         (FrameWin::canUndo):
33217         (FrameWin::registerCommandForRedo):
33218         (FrameWin::runJavaScriptPrompt):
33219         (FrameWin::shouldInterruptJavaScript):
33220         (FrameWin::openURL):
33221         (FrameWin::print):
33222         (FrameWin::getAppletInstanceForWidget):
33223         (FrameWin::passMouseDownEventToWidget):
33224         (FrameWin::issueCutCommand):
33225         (FrameWin::issueCopyCommand):
33226         (FrameWin::passWheelEventToChildWidget):
33227         (FrameWin::issueUndoCommand):
33228         (FrameWin::mimeTypeForFileName):
33229         (FrameWin::issuePasteCommand):
33230         (FrameWin::scheduleClose):
33231         (FrameWin::markMisspellings):
33232         (FrameWin::menubarVisible):
33233         (FrameWin::personalbarVisible):
33234         (FrameWin::statusbarVisible):
33235         (FrameWin::toolbarVisible):
33236         (FrameWin::issueTransposeCommand):
33237         (FrameWin::canPaste):
33238         (FrameWin::objectContentType):
33239         (FrameWin::canGoBackOrForward):
33240         (FrameWin::issuePasteAndMatchStyleCommand):
33241         (FrameWin::createPlugin):
33242         (BrowserExtensionWin::canRunModal):
33243         (BrowserExtensionWin::createNewWindow):
33244         (BrowserExtensionWin::canRunModalNow):
33245         (BrowserExtensionWin::runModal):
33246         (BrowserExtensionWin::goBackOrForward):
33247         (BrowserExtensionWin::historyURL):
33248         (GraphicsContext::addRoundedRectClip):
33249         (GraphicsContext::addInnerRoundedRectClip):
33250         (WebCore::screenDepthPerComponent):
33251         (WebCore::screenIsMonochrome):
33252         (WebCore::moveCursor):
33253         (WebCore::historyContains):
33254         (WebCore::submitButtonDefaultLabel):
33255         (WebCore::inputElementAltText):
33256         (WebCore::resetButtonDefaultLabel):
33257         (WebCore::defaultLanguage):
33258         (WebCore::findWordBoundary):
33259         (PlugInInfoStore::createPluginInfoForPluginAtIndex):
33260         (PlugInInfoStore::pluginCount):
33261         (WebCore::PlugInInfoStore::supportsMIMEType):
33262         (WebCore::refreshPlugins):
33263         (WebCore::ResourceLoader::assembleResponseHeaders):
33264         (WebCore::ResourceLoader::retrieveCharset):
33265         (FrameWin::restoreDocumentState):
33266         (FrameWin::partClearedInBegin):
33267         (FrameWin::createEmptyDocument):
33268         (FrameWin::overrideMediaType):
33269         (FrameWin::handledOnloadEvents):
33270         (FrameWin::markedTextRange):
33271         (FrameWin::passSubframeEventToSubframe):
33272         (FrameWin::lastEventIsMouseUp):
33273         (FrameWin::addMessageToConsole):
33274         (FrameWin::shouldChangeSelection):
33275         (FrameWin::respondToChangedSelection):
33276         (FrameWin::createFrame):
33277         (FrameWin::saveDocumentState):
33278         (FrameWin::registerCommandForUndo):
33279         (FrameWin::clearUndoRedoOperations):
33280         (FrameWin::incomingReferrer):
33281         (FrameWin::markMisspellingsInAdjacentWords):
33282         (FrameWin::respondToChangedContents):
33283         (BrowserExtensionWin::BrowserExtensionWin):
33284         (BrowserExtensionWin::setTypedIconURL):
33285         (BrowserExtensionWin::setIconURL):
33286         (BrowserExtensionWin::getHistoryLength):
33287         (WebCore::CheckIfReloading):
33288         (WebCore::CheckCacheObjectStatus):
33289         (Widget::setEnabled):
33290         (Widget::paint):
33291         (Widget::setIsSelected):
33292         (ScrollView::addChild):
33293         (ScrollView::removeChild):
33294         (ScrollView::scrollPointRecursively):
33295         (ScrollView::inWindow):
33296         (GraphicsContext::setShadow):
33297         (GraphicsContext::clearShadow):
33298         (GraphicsContext::beginTransparencyLayer):
33299         (GraphicsContext::endTransparencyLayer):
33300         (GraphicsContext::clearRect):
33301         (GraphicsContext::strokeRect):
33302         (GraphicsContext::setLineWidth):
33303         (GraphicsContext::setLineCap):
33304         (GraphicsContext::setLineJoin):
33305         (GraphicsContext::setMiterLimit):
33306         (GraphicsContext::setAlpha):
33307         (GraphicsContext::setCompositeOperation):
33308         (GraphicsContext::clip):
33309         (GraphicsContext::translate):
33310         (GraphicsContext::rotate):
33311         (GraphicsContext::scale):
33312         (Path::Path):
33313         (Path::~Path):
33314         (Path::contains):
33315         (Path::translate):
33316         (Path::boundingRect):
33317         (Path::operator=):
33318         (Path::clear):
33319         (Path::moveTo):
33320         (Path::addLineTo):
33321         (Path::addQuadCurveTo):
33322         (Path::addBezierCurveTo):
33323         (Path::addArcTo):
33324         (Path::closeSubpath):
33325         (Path::addArc):
33326         (Path::addRect):
33327         (Path::addEllipse):
33328         (TextField::TextField):
33329         (TextField::~TextField):
33330         (TextField::setFont):
33331         (TextField::setAlignment):
33332         (TextField::setWritingDirection):
33333         (TextField::maxLength):
33334         (TextField::setMaxLength):
33335         (TextField::text):
33336         (TextField::setText):
33337         (TextField::cursorPosition):
33338         (TextField::setCursorPosition):
33339         (TextField::setEdited):
33340         (TextField::setReadOnly):
33341         (TextField::setPlaceholderString):
33342         (TextField::setColors):
33343         (TextField::sizeForCharacterWidth):
33344         (TextField::baselinePosition):
33345         (TextField::setLiveSearch):
33346         (PopUpButton::PopUpButton):
33347         (PopUpButton::~PopUpButton):
33348         (PopUpButton::setFont):
33349         (PopUpButton::baselinePosition):
33350         (PopUpButton::setWritingDirection):
33351         (PopUpButton::clear):
33352         (PopUpButton::appendItem):
33353         (PopUpButton::setCurrentItem):
33354         (PopUpButton::sizeHint):
33355         (PopUpButton::frameGeometry):
33356         (PopUpButton::setFrameGeometry):
33357         (PlatformScrollBar::PlatformScrollBar):
33358         (PlatformScrollBar::~PlatformScrollBar):
33359         (PlatformScrollBar::width):
33360         (PlatformScrollBar::height):
33361         (PlatformScrollBar::setEnabled):
33362         (PlatformScrollBar::paint):
33363         (PlatformScrollBar::setScrollBarValue):
33364         (PlatformScrollBar::setKnobProportion):
33365         (PlatformScrollBar::setRect):
33366         (ScrollBar::ScrollBar):
33367         (ScrollBar::setSteps):
33368         (ScrollBar::scroll):
33369         (ScrollBar::setValue):
33370         (ScrollBar::setKnobProportion):
33371         (ListBox::ListBox):
33372         (ListBox::~ListBox):
33373         (ListBox::setSelectionMode):
33374         (ListBox::setFont):
33375         (WebCore::focusRingColor):
33376         (WebCore::setFocusRingColorChangeFunction):
33377         (Frame::setNeedsReapplyStyles):
33378         (Image::drawTiled):
33379         (RenderPopupMenuWin::~RenderPopupMenuWin):
33380         (RenderPopupMenuWin::clear):
33381         (RenderPopupMenuWin::populate):
33382         (RenderPopupMenuWin::showPopup):
33383         (RenderPopupMenuWin::addSeparator):
33384         (RenderPopupMenuWin::addGroupLabel):
33385         (RenderPopupMenuWin::addOption):
33386         (RenderThemeWin::paintMenuList):
33387         (RenderThemeWin::adjustMenuListStyle):
33388         (RenderThemeWin::systemFont):
33389
33390 2006-08-15  Steve Falkenburg  <sfalken@apple.com>
33391
33392         Fix the build with TOT.
33393
33394         * WebCore.vcproj/WebCore.vcproj:
33395
33396 2006-08-15  Steve Falkenburg  <sfalken@apple.com>
33397
33398         Get this building.
33399
33400         * WebCore.vcproj/WebCore.sln:
33401         * WebCore.vcproj/WebCore.vcproj:
33402         * WebCore.vcproj/build-generated-files.sh:
33403
33404 2006-08-15  Steve Falkenburg  <sfalken@apple.com>
33405
33406         Initial check-in.
33407
33408         * ChangeLog: Added.
33409         * WebCore.vcproj/WebCore.sln: Added.
33410         * WebCore.vcproj/WebCore.vcproj: Added.
33411         * WebCore.vcproj/build-generated-files.sh: Added.
33412         * bridge/win/FrameWin.cpp: Added.
33413         (WebCore::FrameWin::FrameWin):
33414         (WebCore::FrameWin::~FrameWin):
33415         (WebCore::FrameWin::urlSelected):
33416         (WebCore::FrameWin::submitForm):
33417         (WebCore::FrameWin::userAgent):
33418         (WebCore::FrameWin::runJavaScriptAlert):
33419         (WebCore::FrameWin::runJavaScriptConfirm):
33420         (WebCore::FrameWin::keyPress):
33421         (WebCore::FrameWin::setTitle):
33422         (WebCore::FrameWin::setStatusBarText):
33423         (WebCore::FrameWin::textFieldDidBeginEditing):
33424         (WebCore::FrameWin::textFieldDidEndEditing):
33425         (WebCore::FrameWin::textDidChangeInTextField):
33426         (WebCore::FrameWin::doTextFieldCommandFromEvent):
33427         (WebCore::FrameWin::textWillBeDeletedInTextField):
33428         (WebCore::FrameWin::textDidChangeInTextArea):
33429         * bridge/win/FrameWin.h: Added.
33430         (WebCore::Win):
33431         * platform/win/ResourceLoaderWin.cpp: Added.
33432         (WebCore::addToOutstandingJobs):
33433         (WebCore::removeFromOutstandingJobs):
33434         (WebCore::lookupResourceLoader):
33435         (WebCore::ResourceLoaderWndProc):
33436         (WebCore::initializeOffScreenResourceLoaderWindow):
33437         (WebCore::ResourceLoaderInternal::~ResourceLoaderInternal):
33438         (WebCore::ResourceLoader::~ResourceLoader):
33439         (WebCore::transferJobStatusCallback):
33440         (WebCore::ResourceLoader::start):
33441         (WebCore::ResourceLoader::fileLoadTimer):
33442         (WebCore::ResourceLoader::cancel):
33443         * platform/win/ResourceLoaderWin.h: Added.
33444
33445 === End of merged changes from branches/WindowsMerge ===
33446
33447 2007-06-10  Holger Hans Peter Freyther  <zecke@selfish.org>
33448
33449          Reviewed by Maciej.
33450  
33451          Disable whole-view editing for the Gdk port in order to improve the browsing experience.
33452  
33453          * platform/gdk/EditorClientGdk.cpp:
33454          (WebCore::EditorClientGdk::isEditable): Return false to disable whole-view editing
33455  
33456 2007-06-08  Sam Weinig  <sam@webkit.org>
33457
33458         Reviewed by Oliver.
33459
33460         Patch for http://bugs.webkit.org/show_bug.cgi?id=14044
33461         Autogenerate the JS bindings for HTMLCollection
33462
33463         - also moves JSHTMLAllCollection into it's own file.
33464
33465         * DerivedSources.make:
33466         * WebCore.pro:
33467         * WebCore.xcodeproj/project.pbxproj:
33468         * bindings/js/JSHTMLAllCollection.h: Added.
33469         (WebCore::JSHTMLAllCollection::JSHTMLAllCollection):
33470         (WebCore::JSHTMLAllCollection::toBoolean):
33471         (WebCore::JSHTMLAllCollection::masqueradeAsUndefined):
33472         * bindings/js/JSHTMLCollectionCustom.cpp: Added.
33473         (WebCore::getNamedItems):
33474         (WebCore::JSHTMLCollection::callAsFunction):
33475         (WebCore::JSHTMLCollection::implementsCall):
33476         (WebCore::JSHTMLCollection::canGetItemsForName):
33477         (WebCore::JSHTMLCollection::nameGetter):
33478         (WebCore::JSHTMLCollection::item):
33479         (WebCore::JSHTMLCollection::namedItem):
33480         (WebCore::toJS):
33481         * bindings/js/JSHTMLDocumentCustom.cpp:
33482         (WebCore::JSHTMLDocument::nameGetter):
33483         (WebCore::JSHTMLDocument::all):
33484         * bindings/js/JSXMLHttpRequest.cpp:
33485         * bindings/js/kjs_html.cpp:
33486         (WebCore::ImageConstructorImp::ImageConstructorImp):
33487         (WebCore::ImageConstructorImp::construct):
33488         * bindings/js/kjs_html.h:
33489         (WebCore::ImageConstructorImp::implementsConstruct):
33490         * bindings/js/kjs_window.cpp:
33491         (KJS::Window::namedItemGetter):
33492         * bindings/objc/DOMUtility.mm:
33493         (KJS::createDOMWrapper):
33494         * bindings/scripts/CodeGeneratorJS.pm:
33495         * html/HTMLCollection.cpp:
33496         (WebCore::HTMLCollection::tags):
33497         * html/HTMLCollection.h:
33498         (WebCore::HTMLCollection::collectionType):
33499         * html/HTMLCollection.idl:
33500         * html/HTMLOptionsCollection.idl:
33501
33502 2007-06-08  Justin Garcia  <justin.garcia@apple.com>
33503
33504         Reviewed by John.
33505         
33506         <rdar://problem/5232159> REGRESSION: Cannot select text in RSS view
33507
33508         The selection is updated both on mouse movement and
33509         when the autoscroll timer fires.  The autoscroll
33510         code wasn't converting mouse coordinates to layer
33511         coordinates correctly, and was then using those
33512         coordinates to create a bad selection.
33513
33514         * rendering/RenderLayer.cpp:
33515         (WebCore::RenderLayer::autoscroll): Use convertToLayerCoordinates.
33516
33517 2007-06-08  Anders Carlsson  <andersca@apple.com>
33518
33519         Reviewed by Geoff.
33520
33521         Store the root object in a hash set, keyed by the plugin view. This is in preparation for 
33522         letting plugins invalidate the root object upon destruction
33523
33524         * page/Frame.cpp:
33525         (WebCore::Frame::createRootObject):
33526         (WebCore::Frame::cleanupScriptObjects):
33527         * page/FramePrivate.h:
33528
33529 2007-06-08  Lars Knoll <lars@trolltech.com>
33530
33531         Reviewed by Zack.
33532
33533         Add qwebobjectpluginconnector to the build.
33534
33535         * WebCore.pro:
33536
33537 2007-06-07  Justin Garcia  <justin.garcia@apple.com>
33538
33539         Reviewed by Tristan.
33540         
33541         <rdar://problem/5250997> A crash occurs when selecting Undo Typing for a page that has been closed in tab
33542
33543         * WebCore.exp: Added clearUndoRedoOperations.
33544         * page/Page.cpp:
33545         (WebCore::Page::clearUndoRedoOperations): Added.
33546         * page/Page.h:
33547         
33548 2007-06-07  David Hyatt  <hyatt@apple.com>
33549
33550         Fix crash.  Null check layer.  Bug 13984.
33551
33552         Reviewed by andersca
33553
33554         * WebCore.xcodeproj/project.pbxproj:
33555         * page/FrameView.cpp:
33556         (WebCore::FrameView::windowClipRectForLayer):
33557
33558 2007-06-07  Oliver Hunt  <oliver@apple.com>
33559
33560         Reviewed by Justin.
33561
33562         Remove incorrect assertions.
33563         
33564         These assertions were made on the assumption that 
33565         TSM would always call with a range that was contained 
33566         by an editable region.
33567         
33568         TSM may call -[WebHTMLView characterIndexForPoint:] on a mouse
33569         event that is otherwise unrelated to editing, which may
33570         be outside the current editing region, triggering these 
33571         assertions.
33572
33573         * page/mac/WebCoreFrameBridge.mm:
33574         (-[WebCoreFrameBridge convertToNSRange:]):
33575
33576 2007-06-07  Justin Garcia  <justin.garcia@apple.com>
33577
33578         Reviewed by John.
33579         
33580         <rdar://problem/5237074> REGRESSION: editing/unsupported-content/table-delete-003 is failing (13931)
33581         
33582         * editing/DeleteSelectionCommand.cpp:
33583         (WebCore::DeleteSelectionCommand::initializeStartEnd):
33584         We wouldn't expand the selection to include a special element 
33585         at the start of the selection unless the end of the selection 
33586         was at the end of a special element. Avoid a special 
33587         element at the start as long as it's fully selected. Ditto for 
33588         the end.
33589         * editing/htmlediting.cpp:
33590         (WebCore::positionBeforeContainingSpecialElement):
33591         (WebCore::positionAfterContainingSpecialElement):
33592
33593 2007-06-07  Sam Weinig  <sam@webkit.org>
33594
33595         Reviewed by Anders.
33596
33597         Patch for  http://bugs.webkit.org/show_bug.cgi?id=14028
33598         Finish autogenerating the JS bindings for Node
33599
33600         * DerivedSources.make:
33601         * WebCore.pro:
33602         * WebCore.xcodeproj/project.pbxproj:
33603         * bindings/js/JSHTMLElementWrapperFactory.cpp:
33604         (WebCore::createJSHTMLWrapper):
33605         * bindings/js/JSHTMLElementWrapperFactory.h:
33606         * bindings/js/JSHTMLOptionElementConstructor.cpp:
33607         * bindings/js/JSNamedNodeMapCustom.cpp:
33608         * bindings/js/JSNodeCustom.cpp:
33609         (WebCore::JSNode::insertBefore):
33610         (WebCore::JSNode::replaceChild):
33611         (WebCore::JSNode::removeChild):
33612         (WebCore::JSNode::appendChild):
33613         (WebCore::JSNode::mark):
33614         (WebCore::toJS):
33615         * bindings/js/JSSVGElementWrapperFactory.cpp:
33616         (WebCore::createJSSVGWrapper):
33617         * bindings/js/JSSVGElementWrapperFactory.h:
33618         * bindings/js/JSXSLTProcessor.cpp:
33619         (KJS::XSLTProcessorPrototypeFunction::callAsFunction):
33620         * bindings/js/kjs_binding.cpp:
33621         (KJS::ScriptInterpreter::getDOMNodeForDocument):
33622         (KJS::ScriptInterpreter::putDOMNodeForDocument):
33623         (KJS::ScriptInterpreter::markDOMNodesForDocument):
33624         (KJS::ScriptInterpreter::updateDOMNodeDocument):
33625         * bindings/js/kjs_binding.h:
33626         * bindings/js/kjs_dom.cpp:
33627         (WebCore::toAttr):
33628         * bindings/js/kjs_dom.h:
33629         * bindings/js/kjs_domnode.h: Removed.
33630         * bindings/objc/DOMUtility.mm:
33631         (KJS::createDOMWrapper):
33632         * bindings/scripts/CodeGeneratorJS.pm:
33633         * dom/Node.h:
33634         (WebCore::Node::parentElement):
33635         * dom/Node.idl:
33636
33637 2007-06-07  Sam Weinig  <sam@webkit.org>
33638
33639         Another Gdk and Qt build fix.
33640
33641         * WebCore.pro:
33642
33643 2007-06-07  Sam Weinig  <sam@webkit.org>
33644
33645         Gdk and Qt build fix.
33646
33647         * WebCore.pro:
33648
33649 2007-06-06  Sam Weinig  <sam@webkit.org>
33650
33651         Reviewed by Hyatt.
33652
33653         Patch for http://bugs.webkit.org/show_bug.cgi?id=13973
33654         Autogenerate most of the rest of kjs_dom.h/cpp
33655
33656         - Autogenerate JSNodeList and JSNamedNodeMap.
33657         - Move JSEventTargetNode, JSNamedNodesCollection, and JSDOMExceptionConstructor 
33658           into their own files.
33659         - Rename KJS::DOMEventTargeNode to WebCore::JSEventTargetNode to adhere
33660           to convention and allow easier code generation.
33661         - Add JS constructors for JSNodeList and JSNamedNodeMap.
33662         - Moved more toJS methods into the correct (corresponding) header files.
33663         - Cleaned up code in order for changes to work.
33664
33665         * DerivedSources.make:
33666         * WebCore.xcodeproj/project.pbxproj:
33667         * bindings/js/JSDOMExceptionConstructor.cpp: Added.
33668         (WebCore::):
33669         (WebCore::JSDOMExceptionConstructor::JSDOMExceptionConstructor):
33670         (WebCore::JSDOMExceptionConstructor::getOwnPropertySlot):
33671         (WebCore::JSDOMExceptionConstructor::getValueProperty):
33672         (WebCore::getDOMExceptionConstructor):
33673         * bindings/js/JSDOMExceptionConstructor.h: Added.
33674         (WebCore::JSDOMExceptionConstructor::classInfo):
33675         * bindings/js/JSDOMWindowCustom.cpp: Added.
33676         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
33677         * bindings/js/JSDocumentCustom.cpp:
33678         (WebCore::JSDocument::mark):
33679         (WebCore::toJS):
33680         * bindings/js/JSEventTargetNode.cpp: Added.
33681         (WebCore::JSEventTargetNode::JSEventTargetNode):
33682         (WebCore::JSEventTargetNode::getOwnPropertySlot):
33683         (WebCore::JSEventTargetNode::getValueProperty):
33684         (WebCore::JSEventTargetNode::put):
33685         (WebCore::JSEventTargetNode::putValueProperty):
33686         (WebCore::JSEventTargetNode::setListener):
33687         (WebCore::JSEventTargetNode::getListener):
33688         (WebCore::JSEventTargetNode::pushEventHandlerScope):
33689         (WebCore::JSEventTargetNodePrototypeFunction::callAsFunction):
33690         (WebCore::toEventTargetNode):
33691         * bindings/js/JSEventTargetNode.h: Added.
33692         (WebCore::JSEventTargetNode::):
33693         * bindings/js/JSHTMLElementCustom.cpp:
33694         * bindings/js/JSHTMLFormElementCustom.cpp:
33695         (WebCore::JSHTMLFormElement::nameGetter):
33696         * bindings/js/JSHTMLOptionElementConstructor.cpp:
33697         * bindings/js/JSNamedNodeMapCustom.cpp: Added.
33698         (WebCore::JSNamedNodeMap::canGetItemsForName):
33699         (WebCore::JSNamedNodeMap::nameGetter):
33700         * bindings/js/JSNamedNodesCollection.cpp: Added.
33701         (WebCore::):
33702         (WebCore::JSNamedNodesCollection::JSNamedNodesCollection):
33703         (WebCore::JSNamedNodesCollection::lengthGetter):
33704         (WebCore::JSNamedNodesCollection::indexGetter):
33705         (WebCore::JSNamedNodesCollection::getOwnPropertySlot):
33706         * bindings/js/JSNamedNodesCollection.h: Added.
33707         (WebCore::JSNamedNodesCollection::classInfo):
33708         * bindings/js/JSNodeCustom.cpp: Added.
33709         (WebCore::toJS):
33710         * bindings/js/JSNodeListCustom.cpp: Added.
33711         (WebCore::JSNodeList::callAsFunction):
33712         (WebCore::JSNodeList::implementsCall):
33713         (WebCore::JSNodeList::canGetItemsForName):
33714         (WebCore::JSNodeList::nameGetter):
33715         * bindings/js/kjs_dom.cpp:
33716         * bindings/js/kjs_dom.h:
33717         * bindings/js/kjs_domnode.h:
33718         * bindings/js/kjs_events.cpp:
33719         (KJS::JSLazyEventListener::parseCode):
33720         * bindings/js/kjs_html.cpp:
33721         (KJS::JSHTMLCollection::getNamedItems):
33722         * bindings/js/kjs_html.h:
33723         * bindings/js/kjs_window.cpp:
33724         (WebCore::toJS):
33725         * bindings/js/kjs_window.h:
33726         * bindings/objc/DOMInternal.mm:
33727         (-[WebScriptObject _initializeScriptDOMNodeImp]):
33728         * bindings/objc/DOMUtility.mm:
33729         (KJS::createDOMWrapper):
33730         * bindings/scripts/CodeGeneratorJS.pm:
33731         * bridge/mac/WebCoreAXObject.mm:
33732         * dom/Attr.idl:
33733         * dom/CharacterData.idl:
33734         * dom/Document.idl:
33735         * dom/DocumentFragment.idl:
33736         * dom/DocumentType.idl:
33737         * dom/Element.idl:
33738         * dom/NamedNodeMap.idl:
33739         * dom/Node.idl:
33740         * dom/NodeList.idl:
33741         * page/DOMWindow.idl:
33742
33743 2007-06-06  Justin Garcia  <justin.garcia@apple.com>
33744
33745         Reviewed by Oliver.
33746         
33747         <rdar://problem/5245519> CrashTracer: [USER] 457 crashes in Mail at WebCore::CSSComputedStyleDeclaration::copyInheritableProperties()
33748         
33749         If the user pastes something into a region that ends up being
33750         invisible, or if the pasted content contains style spans 
33751         that are render-less, we'll crash when we try to remove
33752         redundant styles from style spans.
33753
33754         * css/CSSComputedStyleDeclaration.cpp:
33755         (WebCore::CSSComputedStyleDeclaration::copyInheritableProperties):
33756         Add null checks.
33757
33758 2007-06-06  Justin Garcia  <justin.garcia@apple.com>
33759
33760         Reviewed by Harrison.
33761
33762         <rdar://problem/4889598> Problems with moveDown: and moveUp: in Notes with ToDos
33763         
33764         The caret would disappear when moving from content above or below
33765         a ToDo if that ToDo doesn't have any content in it with the same
33766         x position as the caret. That's because closestLeafChildForXPos
33767         would return non-editable leaves, and which turn into non-editable
33768         VisiblePositions, which are invisible.
33769
33770         * editing/visible_units.cpp:
33771         (WebCore::previousLinePosition): Ask closestLeafForXPos to only
33772         return editable leaves.
33773         (WebCore::nextLinePosition): Ditto.
33774         * rendering/RootInlineBox.cpp:
33775         (WebCore::isEditableLeaf): Added.
33776         (WebCore::RootInlineBox::closestLeafChildForXPos): If requested,
33777         return the closest editable leaf. Removed an early return if the
33778         position is before the first leaf, it's not really much of an
33779         optimization.
33780         * rendering/RootInlineBox.h:
33781
33782 2007-06-06  Sam Weinig  <sam@webkit.org>
33783
33784         Reviewed by Anders.
33785
33786         Fix release build.
33787
33788         * bindings/objc/DOM.mm:
33789         (-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]): Add missing null initialization.
33790         (-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]): Add missing null initialization.
33791
33792 2007-06-06  Sam Weinig  <sam@webkit.org>
33793
33794         Reviewed by Hyatt.
33795
33796         Patch for http://bugs.webkit.org/show_bug.cgi?id=13947
33797         Finish autogenerating the JS DOM traversal code
33798
33799         - Completely generate JSNodeFilter.
33800         - Move JSNodeFilterCondition into its own file
33801
33802         * DerivedSources.make:
33803         * WebCore.pro:
33804         * WebCore.xcodeproj/project.pbxproj:
33805         * bindings/js/JSNodeFilterCondition.cpp: Copied from WebCore/bindings/js/kjs_traversal.cpp.
33806         (WebCore::JSNodeFilterCondition::JSNodeFilterCondition):
33807         (WebCore::JSNodeFilterCondition::mark):
33808         (WebCore::JSNodeFilterCondition::acceptNode):
33809         * bindings/js/JSNodeFilterCondition.h: Copied from WebCore/bindings/js/kjs_traversal.h.
33810         * bindings/js/JSNodeFilterCustom.cpp: Added.
33811         (WebCore::JSNodeFilter::mark):
33812         (WebCore::toNodeFilter):
33813         * bindings/js/kjs_dom.cpp:
33814         * bindings/js/kjs_traversal.cpp: Removed.
33815         * bindings/js/kjs_traversal.h: Removed.
33816         * bindings/js/kjs_window.cpp:
33817         * bindings/objc/DOM.mm:
33818         (-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]):
33819         (-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]):
33820         * bindings/scripts/CodeGeneratorJS.pm:
33821         * dom/Document.cpp:
33822         (WebCore::Document::createNodeIterator):
33823         (WebCore::Document::createTreeWalker):
33824         * dom/Document.h:
33825         * dom/NodeFilter.idl:
33826
33827 2007-06-06  Alp Toker  <alp.toker@collabora.co.uk>
33828
33829         Reviewed by Eric Seidel.
33830
33831         http://bugs.webkit.org/show_bug.cgi?id=14017
33832         Cairo: Unwanted gradient effect for small stretched images
33833
33834         * platform/graphics/cairo/ImageCairo.cpp: Use CAIRO_FILTER_NEAREST to
33835         work around the issue.
33836         (WebCore::BitmapImage::draw):
33837         (WebCore::Image::drawPattern):
33838
33839 2007-06-06  Lars Knoll <lars@trolltech.com>
33840
33841         Reviewed by Zack
33842
33843         Add an API to create and load plugins.
33844         Don't include moc files by hand anymore, rather let
33845         qmake handle them.
33846
33847         * WebCore.pro:
33848         * platform/qt/MimeTypeRegistryQt.cpp:
33849         (WebCore::):
33850         (WebCore::MimeTypeRegistry::getMIMETypeForExtension):
33851         * platform/qt/QWebPopup.cpp:
33852         * platform/qt/SharedTimerQt.cpp:
33853
33854 2007-06-06  Mark Rowe  <mrowe@apple.com>
33855
33856         Qt build fix.
33857
33858         * rendering/RenderTextControl.cpp: Fix case of #include filename.
33859
33860 2007-06-06  Lars Knoll  <lars@trolltech.com>
33861
33862         Reviewed by Maciej.
33863
33864         Define WTF_USE_NPOBJECT for Qt. Fix includes
33865         in HTMLPluginElement and add proper forwarding headers
33866         from JavaScriptCore.
33867
33868         * ForwardingHeaders/bindings/npruntime.h: Added.
33869         * ForwardingHeaders/bindings/runtime.h: Added.
33870         * config.h:
33871         * html/HTMLPlugInElement.cpp:
33872         * html/HTMLPlugInElement.h:
33873
33874 2007-06-06  David Hyatt  <hyatt@apple.com>
33875
33876         Bulletproof windowClipRect, since it can be called at crazy times.
33877         Part of fix for 13972.
33878
33879         Reviewed by olliej
33880
33881         * bindings/objc/DOM.mm:
33882         (-[DOMElement _windowClipRect]):
33883
33884 2007-06-05  Darin Fisher  <darin@chromium.org>
33885
33886         Reviewed by Dave Hyatt.
33887
33888         Fixes http://bugs.webkit.org/show_bug.cgi?id=14008
33889
33890         * rendering/RenderTextControl.cpp:
33891         (WebCore::RenderTextControl::calcHeight):
33892         (WebCore::RenderTextControl::calcPrefWidths):
33893
33894 2007-06-05  Kevin McCullough  <kmccullough@apple.com>
33895
33896         - Respelling Oliver's name right.
33897
33898 2007-06-05  Kevin McCullough  <kmccullough@apple.com>
33899
33900         Reviewed by Mark and Oliver.
33901
33902         - http://bugs.webkit.org/show_bug.cgi?id=13352  REGRESSION: Gmail hangs on send message.
33903         - Now we don't hang, but we do so by avoiding certain legitimate characters, the evangelism bug for this is: <rdar://problem/5252577> gmail does not accept legal characters in the form boundary
33904
33905         * html/HTMLFormElement.cpp:
33906         (WebCore::getUniqueBoundaryString):
33907
33908 2007-06-05  Anders Carlsson  <andersca@apple.com>
33909
33910         Build fix.
33911         
33912         * xml/xmlhttprequest.cpp:
33913         (WebCore::isValidToken):
33914
33915 2007-06-05  Anders Carlsson  <andersca@apple.com>
33916
33917         Reviewed by Geoff.
33918
33919         <rdar://problem/5245555> REGRESSION: HTTP header injection in XMLHttpRequest.setRequestHeader
33920         <rdar://problem/5246208> HTTP injection in XMLHttpRequest.open method parameter
33921         <rdar://problem/5246242> HTTP header injection in HXMLHttpRequest.setRequestHeader header parameter
33922         
33923         Check method names, header names and header values and throw exceptions if any of them are
33924         invalid. This is what the new XMLHttpRequest spec states that we should do.
33925         
33926         * xml/xmlhttprequest.cpp:
33927         (WebCore::isValidToken):
33928         (WebCore::isValidHeaderValue):
33929         (WebCore::XMLHttpRequest::open):
33930         (WebCore::XMLHttpRequest::setRequestHeader):
33931
33932 2007-06-05  Sam Weinig  <sam@webkit.org>
33933
33934         Reviewed by Geoff.
33935
33936         Optimize JSCSSStyleDeclaration after performance regression in r21854.
33937
33938         - Check static table before name getter in JSCSSStyleDeclaration::getOwnPropertySlot()
33939         - Get rid of a string allocation by keeping string as KJS::Identifier for canGetItemsForName()
33940           functions.
33941
33942         * WebCore.xcodeproj/project.pbxproj:
33943         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
33944         (WebCore::JSCSSStyleDeclaration::canGetItemsForName):
33945         * bindings/js/JSHTMLAppletElementCustom.cpp:
33946         (WebCore::JSHTMLAppletElement::canGetItemsForName):
33947         * bindings/js/JSHTMLDocumentCustom.cpp:
33948         (WebCore::JSHTMLDocument::canGetItemsForName):
33949         * bindings/js/JSHTMLEmbedElementCustom.cpp:
33950         (WebCore::JSHTMLEmbedElement::canGetItemsForName):
33951         * bindings/js/JSHTMLFormElementCustom.cpp:
33952         (WebCore::JSHTMLFormElement::canGetItemsForName):
33953         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
33954         (WebCore::JSHTMLFrameSetElement::canGetItemsForName):
33955         * bindings/js/JSHTMLObjectElementCustom.cpp:
33956         (WebCore::JSHTMLObjectElement::canGetItemsForName):
33957         * bindings/scripts/CodeGeneratorJS.pm:
33958         * css/CSSStyleDeclaration.idl:
33959
33960 2007-06-04  Sam Weinig  <sam@webkit.org>
33961
33962         Reviewed, tweaked and landed by Anders.
33963
33964         <rdar://problem/5247178> REGRESSION: With CSS Edit 2.5, a crash occurs at WebCore::DeprecatedString::DeprecatedString when page fails to be extracted
33965         
33966         Null check the provisional document loader. If an application stops the load 
33967         inside of the didFailProvisionalLoad delegate method, the provisional document loader will be nulled out.
33968
33969         * loader/FrameLoader.cpp:
33970         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
33971
33972 2007-06-04  Alp Toker  <alp.toker@collabora.co.uk>
33973
33974         Reviewed by Anders.
33975
33976         http://bugs.webkit.org/show_bug.cgi?id=13986
33977         Cairo graphics fixes and cleanups
33978
33979         * platform/graphics/ImageBuffer.h:
33980         * platform/graphics/cairo/ImageBufferCairo.cpp:
33981         (WebCore::ImageBuffer::surface): Provide surface() accessor.
33982         * platform/graphics/cairo/AffineTransformCairo.cpp:
33983         (WebCore::AffineTransform::rotate): Convert from degrees to radians to
33984         fix rotation.
33985         * platform/graphics/cairo/GraphicsContextCairo.cpp:
33986         (WebCore::GraphicsContext::drawRect): Add save/restore.
33987         (WebCore::GraphicsContext::rotate): Rename parameter to "radians" to
33988         avoid further confusion.
33989         * platform/graphics/cairo/PathCairo.cpp:
33990         (WebCore::Path::boundingRect): The cairo_fill_extents() parameters do
33991         not describe a point/size but rather the two control points of the
33992         rectangular region.
33993         (WebCore::Path::contains): Remove needless casts.
33994
33995 2007-06-04  Sam Weinig  <sam@webkit.org>
33996
33997         Reviewed by Adam Roben.
33998
33999         Fix the buildbot.
34000
34001         * rendering/RenderSVGContainer.cpp:
34002         (WebCore::RenderSVGContainer::layout):
34003
34004 2007-06-04  Justin Garcia  <justin.garcia@apple.com>
34005
34006         Reviewed by Kimon Tsinteris.
34007
34008         <rdar://problem/5241148> REGRESSION: ActivEdit can't perform operations on certain selections
34009         
34010         Return valid equivalents from these methods (no [img, 1] for 
34011         example). ActivEdit was using positions returned from these
34012         methods to create new DOM Ranges.
34013         
34014         * editing/SelectionController.cpp:
34015         (WebCore::SelectionController::baseNode):
34016         (WebCore::SelectionController::baseOffset):
34017         (WebCore::SelectionController::extentNode):
34018         (WebCore::SelectionController::extentOffset):
34019         (WebCore::SelectionController::anchorNode):
34020         (WebCore::SelectionController::anchorOffset):
34021         (WebCore::SelectionController::focusNode):
34022         (WebCore::SelectionController::focusOffset):
34023         * editing/SelectionController.h:
34024
34025 2007-06-04  Rob Buis  <buis@kde.org>
34026
34027         Fix the svg experimental build.
34028
34029         * ksvg2/svg/SVGFEFloodElement.cpp:
34030
34031 2007-06-04  Rob Buis  <buis@kde.org>
34032
34033         Reviewed by Hyatt.
34034
34035         http://bugs.webkit.org/show_bug.cgi?id=6170
34036         CSS1: Properties for :first-letter aren't recalculated on color change
34037
34038         Mark styles with first-letter as unique.
34039
34040         * css/cssstyleselector.cpp:
34041         (WebCore::CSSStyleSelector::styleForElement):
34042
34043 2007-06-01  Anders Carlsson  <acarlsson@apple.com>
34044
34045         Reviewed by David Harrison.
34046
34047         <rdar://problem/5236843> 
34048         CrashTracer: [USER] 3 crashes in Mail at WebCore::Loader::didReceiveResponse(WebCore::SubresourceLoader*, WebCore::ResourceResponse const&)
34049
34050         This is by no means the best solution for handling user style sheets. I've filed <rdar://problem/5244734> 
34051         for tracking that.
34052         
34053         * loader/loader.cpp:
34054         (WebCore::Loader::didReceiveResponse):
34055         If a load starts while the frame is still in the provisional state 
34056         (this can be the case when loading the user style sheet), committing the load then causes all
34057         requests to be removed from the m_requestsLoading map. This means that req might be null here.
34058         In that case we just return early. 
34059         
34060 2007-06-01  Mitz Pettel  <mitz@webkit.org>
34061
34062         Reviewed by Adele.
34063
34064         - fix http://bugs.webkit.org/show_bug.cgi?id=13958
34065           REGRESSION: Form select menu in iframe destroys form select menu on page
34066
34067         * page/mac/EventHandlerMac.mm:
34068         (WebCore::EventHandler::sendFakeEventsAfterWidgetTracking): Instead of calling
34069         the event handler methods directly, post the fake event on the application event
34070         queue. This ensures that the fake event is handled only after handling of the
34071         initiating event has ended, and is seen by ancestor frames' event handlers.
34072
34073 2007-06-01  George Staikos  <staikos@kde.org>
34074
34075         Reviewed by bdash.
34076
34077         Redo the build fix again after it was backed out
34078
34079         * WebCore.pro: add an include guard around CSSGrammar.h
34080
34081 2007-05-31  Geoffrey Garen  <ggaren@apple.com>
34082
34083         Reviewed by Beth Dakin.
34084
34085         Fixed <rdar://problem/5238177> Continuing after hitting breakpoint doesn't 
34086         execute the next step.
34087         
34088         No test because the only code affected is the debugger, and none of the
34089         relevant API is exported.
34090         
34091         Reverted an accidental change in 21324 that caused originRootObject for
34092         the window object always to be 0. We could probably just remove the debugger's
34093         dependency on originRootObject, but I wanted to be safe.
34094
34095         * page/mac/FrameMac.mm:
34096         (WebCore::Frame::windowScriptObject):
34097
34098 2007-05-31  David Hyatt  <hyatt@apple.com>
34099
34100         Fix for 11768, Flash plugin does not respect clips set via CSS.
34101
34102         Reviewed by olliej
34103
34104         * bindings/objc/DOM.mm:
34105         (-[DOMElement _windowClipRect]):
34106         * bindings/objc/DOMPrivate.h:
34107         * page/FrameView.cpp:
34108         (WebCore::FrameView::windowClipRect):
34109         (WebCore::FrameView::windowClipRectForLayer):
34110         * platform/ScrollView.h:
34111         (WebCore::ScrollView::contentsToWindow):
34112         (WebCore::ScrollView::windowToContents):
34113         * platform/mac/ScrollViewMac.mm:
34114         (WebCore::ScrollView::contentsToWindow):
34115         (WebCore::ScrollView::windowToContents):
34116
34117 2007-05-31  Sam Weinig  <sam@webkit.org>
34118
34119         Reviewed by Adam.
34120
34121         Fix build bot.
34122
34123         * ksvg2/svg/SVGSVGElement.cpp:
34124         (WebCore::SVGSVGElement::setCurrentScale):
34125
34126 2007-05-31  Sam Weinig  <sam@webkit.org>
34127
34128         Fix Qt and Gdk builds.
34129
34130         * WebCore.pro: remove bindings/js/JSHTMLAnchorElementCustom.cpp
34131
34132 2007-05-31  Sam Weinig  <sam@webkit.org>
34133
34134         Reviewed by Geoff.
34135
34136         Patch for http://bugs.webkit.org/show_bug.cgi?id=10782
34137         Classes should not override JSObject::toString(ExecState *)
34138
34139         Remove all overrides of JSObject::toString and JSObject::toPrimitive
34140         which is a bad practice.  Instead, if an object, like the 
34141         HTMLAnchorElement, needs to override to toString, it should add
34142         a function to the JS object which will be called when needed.  This
34143         also allows developers to override toString and valueOf from within JS.
34144
34145         Test: fast/js/toString-and-valueOf-override.html
34146
34147         * WebCore.xcodeproj/project.pbxproj:
34148         * bindings/js/JSHTMLAnchorElementCustom.cpp: Removed.
34149         * bindings/js/kjs_binding.cpp:
34150         * bindings/js/kjs_binding.h:
34151         * bindings/js/kjs_dom.cpp:
34152         * bindings/js/kjs_dom.h:
34153         * bindings/js/kjs_domnode.h:
34154         * bindings/js/kjs_window.cpp:
34155         (KJS::History::):
34156         (KJS::LocationFunc::callAsFunction):
34157         (KJS::SelectionFunc::callAsFunction):
34158         * bindings/js/kjs_window.h:
34159         * bindings/scripts/CodeGeneratorJS.pm:
34160         * html/HTMLAnchorElement.cpp:
34161         (WebCore::HTMLAnchorElement::toString):
34162         * html/HTMLAnchorElement.h:
34163         * html/HTMLAnchorElement.idl:
34164
34165 2007-05-31  Rob Buis  <buis@kde.org>
34166
34167         Reviewed by Darin.
34168
34169         http://bugs.webkit.org/show_bug.cgi?id=11272
34170         Implement currentScale(), setCurrentScale() and currentTranslate() in SVGSVGElement
34171
34172         Allow zooming and panning, thereby implementing the above methods.
34173
34174         * ksvg2/svg/SVGDocument.cpp:
34175         (WebCore::SVGDocument::zoomEnabled):
34176         (WebCore::SVGDocument::startPan):
34177         (WebCore::SVGDocument::updatePan):
34178         * ksvg2/svg/SVGDocument.h:
34179         * ksvg2/svg/SVGSVGElement.cpp:
34180         (WebCore::SVGSVGElement::currentScale):
34181         (WebCore::SVGSVGElement::setCurrentScale):
34182         (WebCore::SVGSVGElement::currentTranslate):
34183         (WebCore::SVGSVGElement::setCurrentTranslate):
34184         * ksvg2/svg/SVGSVGElement.h:
34185         * page/EventHandler.cpp:
34186         (WebCore::EventHandler::EventHandler):
34187         (WebCore::EventHandler::handleMousePressEvent):
34188         (WebCore::EventHandler::handleMouseMoveEvent):
34189         (WebCore::EventHandler::handleMouseReleaseEvent):
34190         * page/EventHandler.h:
34191         * page/Frame.cpp:
34192         (WebCore::Frame::setZoomFactor):
34193         * rendering/RenderSVGContainer.cpp:
34194         (WebCore::RenderSVGContainer::layout):
34195         (WebCore::RenderSVGContainer::paint):
34196         (WebCore::RenderSVGContainer::absoluteTransform):
34197         * rendering/RenderSVGContainer.h:
34198
34199 2007-05-31  Eric Seidel  <eric@webkit.org>
34200
34201         Reviewed by Niko.
34202
34203         Links are activated based on mouse down events instead of click events
34204         http://bugs.webkit.org/show_bug.cgi?id=12570
34205         
34206         Test: svg/custom/prevent-default.svg
34207
34208         * html/HTMLAnchorElement.cpp: use MiddleButton and RightButton instead of 1 and 2
34209         (WebCore::HTMLAnchorElement::defaultEventHandler):
34210         * ksvg2/svg/SVGAElement.cpp:
34211         (WebCore::SVGAElement::defaultEventHandler): make it function more like the HTML side
34212
34213 2007-05-30  Maciej Stachowiak  <mjs@apple.com>
34214
34215         Reviewed by Hyatt.
34216
34217         - fix layout test editing/style/table-selection.html
34218         
34219         This was broken by the change to keep whitespace text nodes in tables. They safely didn't render,
34220         but the font delta style change command would wrap them in spans, creating extra anonymous table
34221         cells.
34222
34223         * editing/ApplyStyleCommand.cpp:
34224         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): Don't wrap in a span if the text node
34225         is not rendered.
34226
34227 2007-05-31  Alp Toker  <alp.toker@collabora.co.uk>
34228
34229         Reviewed by Eric Seidel.
34230
34231         http://bugs.webkit.org/show_bug.cgi?id=13941
34232         Rename WebCore/platform/network/gdk to WebCore/platform/network/curl
34233
34234         * WebCore.pro:
34235
34236 2007-05-31  Alp Toker  <alp.toker@collabora.co.uk>
34237
34238         Reviewed by Niko.
34239
34240         Patch for http://bugs.webkit.org/show_bug.cgi?id=13945
34241         GraphicsContextCairo enhancements necessary for SVG support
34242
34243         * platform/graphics/cairo/GraphicsContextCairo.cpp:
34244         (WebCore::GraphicsContext::concatCTM):
34245         (WebCore::GraphicsContext::beginPath):
34246         (WebCore::GraphicsContext::addPath):
34247
34248 2007-05-31  Patti Hoa <patti@apple.com>
34249
34250         Reviewed by Darin.
34251         
34252         <rdar://problem/5221920> AXLink is returning a CFString instead of a CFURL for AXURL
34253
34254         * bridge/mac/WebCoreAXObject.mm:
34255         (-[WebCoreAXObject accessibilityAttributeValue:]):
34256         Convert the url string to an NSURL before returning as the AXURLAttribute
34257
34258 2007-05-30  Sam Weinig  <sam@webkit.org>
34259
34260         Reviewed by Oliver.
34261
34262         Patch for http://bugs.webkit.org/show_bug.cgi?id=13943
34263         Autogenerate the JS bindings for the CSSStyleSheet
34264
34265         * DerivedSources.make:
34266         * WebCore.pro:
34267         * WebCore.xcodeproj/project.pbxproj:
34268         * bindings/js/JSStyleSheetCustom.cpp:
34269         (WebCore::toJS):
34270         * bindings/js/kjs_css.cpp:
34271         * bindings/js/kjs_css.h:
34272         * bindings/scripts/CodeGeneratorJS.pm:
34273         * css/CSSStyleSheet.cpp:
34274         (WebCore::CSSStyleSheet::addRule):
34275         (WebCore::CSSStyleSheet::cssRules):
34276         * css/CSSStyleSheet.h:
34277         (WebCore::CSSStyleSheet::rules):
34278         (WebCore::CSSStyleSheet::removeRule):
34279         * css/CSSStyleSheet.idl:
34280         * page/DOMWindow.idl:
34281
34282 2007-05-30  Sam Weinig  <sam@webkit.org>
34283
34284         Reviewed by Oliver.
34285
34286         Patch for http://bugs.webkit.org/show_bug.cgi?id=13937
34287         Autogenerate the JS bindings for the CSSValue
34288
34289         * WebCore.pro:
34290         * WebCore.xcodeproj/project.pbxproj:
34291         * bindings/js/JSCSSValueCustom.cpp: Added.
34292         (WebCore::toJS):
34293         * bindings/js/kjs_css.cpp:
34294         * bindings/js/kjs_css.h:
34295         * bindings/objc/DOMUtility.mm:
34296         (KJS::createDOMWrapper):
34297         * bindings/scripts/CodeGeneratorJS.pm:
34298         * css/CSSValue.h:
34299         (WebCore::CSSValue::setCssText):
34300         * css/CSSValue.idl:
34301
34302 2007-05-30  Sam Weinig  <sam@webkit.org>
34303
34304         Reviewed by Oliver the Hun.
34305
34306         Patch for http://bugs.webkit.org/show_bug.cgi?id=13944
34307         Generate and add missing JS constructors
34308
34309         * css/CSSRuleList.idl:
34310         * css/CSSValueList.idl:
34311         * css/Counter.idl:
34312         * page/DOMWindow.idl:
34313
34314 2007-05-30  Justin Garcia  <justin.garcia@apple.com>
34315  
34316         Reviewed by Darin.
34317  
34318         http://bugs.webkit.org/show_bug.cgi?id=13915
34319         REGRESSION(r21687): editing/inserting/paragraph-separator-* failing pixel test (misspelling markers)
34320
34321         After r21687, SimplifiedBackwardsTextIterator was no longer 
34322         emitting a '\n' as it left the first block of a range ending 
34323         at [block, 0]. So, foo<div>^<br></div> looked like foo^ to
34324         spell checking (foo wasn't marked as misspelled).
34325
34326         After r21687, SBTI stopped emitting '\n's in the above case 
34327         because 1) we stopped incorrectly emitting '\n's for nodes as 
34328         we entered them and 2) we were and still are incorrectly calling 
34329         code that should only be called when entering nodes as we leave 
34330         them and 3) we don't call exitNode(), which is responsible 
34331         for emitting the '\n' in the above testcase, when we should.
34332
34333         Before and after r21687, we'd call exitNode() for a node as 
34334         we traversed in reverse pre-order from its first descendant 
34335         out to its sibling or one of its ancestors' siblings.  We 
34336         weren't calling it a) after we'd enter a node that could 
34337         have children but had none and b) when leaving a container 
34338         that contained the end of the range used to create the iterator.
34339
34340         * editing/TextIterator.cpp:
34341         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
34342         (WebCore::SimplifiedBackwardsTextIterator::advance): Call exitNode() as we
34343         leave a childless container node and a node where the range ended.
34344         * editing/TextIterator.h: Track the end of the range used to create
34345         the SimplifiedBackwardsTextIterator.
34346
34347 2007-05-30  Alp Toker  <alp.toker@collabora.co.uk>
34348
34349         Reviewed by Brady.
34350
34351         Enable logging in the Gdk port.
34352         http://bugs.webkit.org/show_bug.cgi?id=13936
34353
34354         * WebCore.pro:
34355         * platform/NotImplemented.h: Changed to use WTFLogVerbose.
34356         * platform/gdk/LoggingGdk.cpp: Added.
34357         (WebCore::InitializeLoggingChannelsIfNecessary):
34358
34359 2007-05-30  Beth Dakin  <bdakin@apple.com>
34360
34361         Reviewed by Hyatt.
34362
34363         Fix for <rdar://problem/5198882> CrashTracer: [USER] 7 crashes in 
34364         Safari at com.apple.WebCore: WebCore::RenderBlock::layoutBlock + 
34365         2360
34366
34367         The problem is that we are re-entering layout when we should not. 
34368         http://trac.webkit.org/projects/webkit/changeset/21778 actually 
34369         fixed this crash, but we have been inspired to add the same guard 
34370         in two other possibly-dangerous places.
34371
34372         * page/FrameView.cpp:
34373         (WebCore::FrameView::layout): Add the guard in two more places.
34374
34375 2007-05-30  Justin Garcia  <justin.garcia@apple.com>
34376
34377         Reviewed by Oliver.
34378
34379         <rdar://problem/5096134> VO gets stuck on Howto.apple.com
34380         http://bugs.webkit.org/show_bug.cgi?id=8622
34381         VisiblePositions aren't canonicalized in some cases
34382         
34383         No new test cases added: can't write automated tests 
34384         for VO.
34385
34386         * editing/IndentOutdentCommand.cpp:
34387         (WebCore::IndentOutdentCommand::outdentParagraph):
34388         VisiblePositions must be recomputed after nodes that
34389         may have effected their canonicalization are removed.
34390         * editing/VisiblePosition.cpp:
34391         (WebCore::canonicalizeCandidate): Added.
34392         (WebCore::VisiblePosition::canonicalPosition): Canonicalize
34393         the candidates returned by next/previousCandidate before
34394         returning them.
34395         * editing/VisiblePosition.h:
34396         (WebCore::operator==): Remove the workaround for 8622.
34397         * editing/visible_units.cpp:
34398         (WebCore::startOfParagraph): Ditto.
34399
34400 2007-05-30  Sam Weinig  <sam@webkit.org>
34401
34402         Reviewed by Dr. Harrison.
34403
34404         Patch for http://bugs.webkit.org/show_bug.cgi?id=13868
34405         REGRESSION: crash on accessing a new iframe's contentWindow property
34406
34407         Adds a null check in for the contentWindow property for HTMLIFrameElement
34408         and HTMLFrameElement.
34409
34410         * bindings/scripts/CodeGeneratorJS.pm:
34411         * html/HTMLFrameElement.idl:
34412         * html/HTMLIFrameElement.idl:
34413
34414 2007-05-30  Mitz Pettel  <mitz@webkit.org>
34415
34416         Reviewed by Darin.
34417
34418         - fix http://bugs.webkit.org/show_bug.cgi?id=13775
34419           REGRESSION: Popup button text should use "natural" directionality to match the items in the popup menu
34420
34421         Test: fast/forms/select-writing-direction-natural.html
34422
34423         * platform/PopupMenu.h: Added the static method itemWritingDirectionIsNatural
34424         which says whether items in the popup ignore the CSS text-align and direction
34425         properties and instead are left-aligned and use natural writing direction.
34426         * platform/gdk/PopupMenuGdk.cpp:
34427         (WebCore::PopupMenu::itemWritingDirectionIsNatural):
34428         * platform/mac/PopupMenuMac.mm:
34429         (WebCore::PopupMenu::itemWritingDirectionIsNatural):
34430         * platform/qt/PopupMenuQt.cpp:
34431         (WebCore::PopupMenu::itemWritingDirectionIsNatural):
34432         * platform/win/TemporaryLinkStubs.cpp:
34433         (WebCore::PopupMenu::itemWritingDirectionIsNatural):
34434         * platform/wx/TemporaryLinkStubs.cpp:
34435         (PopupMenu::itemWritingDirectionIsNatural):
34436         * rendering/RenderMenuList.cpp:
34437         (WebCore::textDirectionForParagraph): Added this helper function that uses
34438         the Unicode Bidi Algorithm rules P2 and P3 to determine the writing direction
34439         of text.
34440         (WebCore::RenderMenuList::adjustInnerStyle): Made the alignment and direction
34441         adjustment conditional on the popup implementation.
34442         (WebCore::RenderMenuList::setText): Added call to adjustInnerStyle() since
34443         the style depends on the text when natural writing direction is used.
34444
34445 2007-05-30  Timothy Hatcher  <timothy@apple.com>
34446
34447         Reviewed by Darin.
34448
34449         <rdar://problem/5200795> REGRESSION (r21057): lineBoxRects doesn't match actual text when wrapping occurs
34450
34451         Use box->end() instead of box->len().
34452
34453         * rendering/RenderText.cpp:
34454         (WebCore::RenderText::addLineBoxRects):
34455
34456 2007-05-30  Sam Weinig  <sam@webkit.org>
34457
34458         Reviewed by Darin.
34459
34460         Patch for http://bugs.webkit.org/show_bug.cgi?id=13919
34461         Autogenerate the JS bindings for the CSSRule and its subclasses
34462
34463         - subclasses generated are CSSCharsetRule, CSSFontFaceRule, CSSImportRule
34464           CSSMediaRule, CSSPageRule and CSSStyleRule.
34465
34466         * DerivedSources.make:
34467         * WebCore.pro:
34468         * WebCore.xcodeproj/project.pbxproj:
34469         * bindings/js/JSCSSRuleCustom.cpp: Added.
34470         (WebCore::toJS):
34471         * bindings/js/kjs_css.cpp:
34472         * bindings/js/kjs_css.h:
34473         * bindings/objc/DOMUtility.mm:
34474         (KJS::createDOMWrapper):
34475         * bindings/scripts/CodeGeneratorJS.pm:
34476         * css/CSSCharsetRule.h:
34477         (WebCore::CSSCharsetRule::setEncoding):
34478         * css/CSSCharsetRule.idl:
34479         * css/CSSFontFaceRule.idl:
34480         * css/CSSImportRule.idl:
34481         * css/CSSMediaRule.idl:
34482         * css/CSSPageRule.cpp:
34483         (WebCore::CSSPageRule::setSelectorText):
34484         * css/CSSPageRule.h:
34485         * css/CSSPageRule.idl:
34486         * css/CSSRule.cpp:
34487         (WebCore::CSSRule::setCssText):
34488         * css/CSSRule.h:
34489         * css/CSSRule.idl:
34490         * css/CSSStyleRule.cpp:
34491         (WebCore::CSSStyleRule::setSelectorText):
34492         * css/CSSStyleRule.h:
34493         * css/CSSStyleRule.idl:
34494         * page/DOMWindow.idl: add new constructors.
34495
34496 2007-05-30  Mark Rowe  <mrowe@apple.com>
34497
34498         Build fixes after r21889.  Add missing #includes.
34499
34500         * ForwardingHeaders/kjs/function.h: Added.
34501         * bindings/js/kjs_binding.h:
34502         * bindings/js/kjs_dom.h:
34503         * bindings/js/kjs_window.h:
34504
34505 2007-05-30  Mark Rowe  <mrowe@apple.com>
34506
34507         Gdk build fix.  Update WidgetGdk to use NotImplemented.h.
34508
34509         * platform/gdk/WidgetGdk.cpp:
34510         (WebCore::Widget::setEnabled):
34511         (WebCore::Widget::isEnabled):
34512         (WebCore::Widget::removeFromParent):
34513         (WebCore::Widget::paint):
34514         (WebCore::Widget::setIsSelected):
34515
34516 2007-05-29  Holger Freyther  <zecke@selfish.org>
34517
34518         Reviewed by Anders.
34519
34520         Make ScrollView use a GtkLayout. This class matches QScrollView the most and promises
34521         to ease the implementation of ScrollView::addChild. GtkLayout should be resource friendly
34522         even with huge width and heights of frames.
34523         Make Widget aware of GtkLayout to use the right GdkWindow as drawable. For GtkLayout one must
34524         draw on the bin_window.
34525         Remove the layer violation from FrameGdk.cpp and ScrollView. FrameGdk is no longer responsible to
34526         implement scrolling on keyboard events. ScrollView is no longer required to know that it could be
34527         a FrameView and handles scrolling of Frames magically.
34528
34529         * platform/ScrollView.h:
34530         * platform/gdk/FrameGdk.cpp:
34531         (WebCore::FrameGdk::keyPress):
34532         (WebCore::FrameGdk::handleGdkEvent):
34533         * platform/gdk/ScrollViewGdk.cpp:
34534         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
34535         (WebCore::ScrollView::updateContents):
34536         (WebCore::ScrollView::visibleWidth):
34537         (WebCore::ScrollView::visibleHeight):
34538         (WebCore::ScrollView::visibleContentRect):
34539         (WebCore::ScrollView::resizeContents):
34540         (WebCore::ScrollView::contentsX):
34541         (WebCore::ScrollView::contentsY):
34542         (WebCore::ScrollView::scrollOffset):
34543         (WebCore::ScrollView::scrollBy):
34544         (WebCore::ScrollView::setFrameGeometry):
34545         (WebCore::ScrollView::updateGeometry):
34546         (WebCore::ScrollView::setGtkWidget):
34547         (WebCore::ScrollView::updateScrollbars):
34548         (WebCore::ScrollView::windowToContents):
34549         (WebCore::ScrollView::contentsToWindow):
34550         (WebCore::ScrollView::scrollbarUnderMouse):
34551         * platform/gdk/TemporaryLinkStubs.cpp: Move Widget methods to WidgetGdk.cpp
34552         * platform/gdk/WidgetGdk.cpp:
34553         (WebCore::Widget::setGtkWidget):
34554         (WebCore::Widget::setFrameGeometry):
34555         (WebCore::Widget::setEnabled):
34556         (WebCore::Widget::isEnabled):
34557         (WebCore::Widget::removeFromParent):
34558         (WebCore::Widget::paint):
34559         (WebCore::Widget::setIsSelected):
34560         (WebCore::Widget::invalidate):
34561         (WebCore::Widget::invalidateRect):
34562
34563 2007-05-29  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
34564
34565         Reviewed by Maciej.
34566
34567         Curl (linux/gdk) networking improvements: 
34568         a) POST support
34569         b) don't use CURL in a re-entrant way.
34570         c) turn on curl's internal debugging support in a debug build if the DEBUG_CURL environment variable is set.
34571
34572         * platform/network/ResourceHandleInternal.h:
34573         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
34574         * platform/network/gdk/ResourceHandleCurl.cpp:
34575         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
34576         * platform/network/gdk/ResourceHandleManager.cpp:
34577         (WebCore::ResourceHandleManager::ResourceHandleManager):
34578         (WebCore::writeCallback):
34579         (WebCore::ResourceHandleManager::downloadTimerCallback):
34580         (WebCore::ResourceHandleManager::setupPOST):
34581         (WebCore::ResourceHandleManager::add):
34582         (WebCore::ResourceHandleManager::removeScheduledJob):
34583         (WebCore::ResourceHandleManager::startScheduledJobs):
34584         (WebCore::ResourceHandleManager::startJob):
34585         (WebCore::ResourceHandleManager::cancel):
34586         * platform/network/gdk/ResourceHandleManager.h:
34587         (WebCore::ResourceHandleList::ResourceHandleList):
34588         (WebCore::ResourceHandleList::next):
34589         (WebCore::ResourceHandleList::job):
34590         (WebCore::ResourceHandleList::setRemoved):
34591         (WebCore::ResourceHandleList::removed):
34592
34593 2007-05-29  Sam Weinig  <sam@webkit.org>
34594
34595         Fix the Qt and Gdk builds.
34596
34597         * WebCore.pro:
34598
34599 2007-05-29  Adele Peterson  <adele@apple.com>
34600
34601         Reviewed by Adam.
34602
34603         Fix for <rdar://problem/5109711> REGRESSION: Focus ring artifacts appear around a widget's search field at times (Address Book, Dictionary)
34604
34605         * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::paintSearchField):
34606           We only need this hack for drawing the search field focus ring on Tiger.  On Leopard, drawWithFrame correctly draws the cell's focus ring.
34607
34608 2007-05-29  Alp Toker  <alp.toker@collabora.co.uk>
34609
34610         Reviewed by Mitz.
34611
34612         Patch for http://bugs.webkit.org/show_bug.cgi?id=13899
34613
34614         * platform/graphics/cairo/GraphicsContextCairo.cpp:
34615         (WebCore::GraphicsContext::strokeArc): Use cairo_arc_negative() to fix
34616         CSS rounded borders.
34617         (WebCore::GraphicsContext::beginTransparencyLayer):
34618         (WebCore::GraphicsContext::endTransparencyLayer): save/restore is
34619         redundant. push/pop group does this implicitly.
34620
34621 2007-05-29  Sam Weinig  <sam@webkit.org>
34622
34623         Reviewed by Oliver.
34624
34625         Patch for http://bugs.webkit.org/show_bug.cgi?id=13912
34626         Autogenerate the JS bindings for the MediaList
34627
34628         * DerivedSources.make:
34629         * WebCore.xcodeproj/project.pbxproj:
34630         * bindings/js/kjs_css.cpp:
34631         * bindings/js/kjs_css.h:
34632         * bindings/objc/DOMUtility.mm:
34633         (KJS::createDOMWrapper):
34634         * bindings/scripts/CodeGeneratorJS.pm:
34635         * css/MediaList.idl:
34636         * page/DOMWindow.idl: Add constructor.
34637
34638 2007-05-29  Matt Perry  <mpComplete@gmail.com>
34639
34640         Reviewed by Maciej.
34641
34642         Fixed some rendering issues for <select>s on Windows.
34643
34644         * rendering/RenderThemeWin.cpp:
34645         (WebCore::RenderThemeWin::adjustMenuListStyle):
34646         (WebCore::RenderThemeWin::paintMenuList):
34647         * rendering/RenderThemeWin.h:
34648
34649 2007-05-29  David Hyatt  <hyatt@apple.com>
34650
34651         Fold the invalidateVerticalPositions crawl into the bidi iteration.
34652         This makes it more correct (since we won't drill into elements that
34653         did not need to be reset) and cuts out an extra walk of all our children.
34654         We're still O(n^2) as new content streams in, but this at least cuts
34655         out one separate O(n^2) crawl.
34656
34657         Reviewed by olliej
34658
34659         * rendering/RenderObject.cpp:
34660         * rendering/RenderObject.h:
34661         (WebCore::RenderObject::invalidateVerticalPosition):
34662         * rendering/bidi.cpp:
34663         (WebCore::RenderBlock::layoutInlineChildren):
34664
34665 2007-05-29  Sam Weinig  <sam@webkit.org>
34666
34667         Reviewed by Oliver.
34668
34669         Patch for http://bugs.webkit.org/show_bug.cgi?id=13908
34670         Autogenerate the JS bindings for the StyleSheet
34671
34672         * DerivedSources.make:
34673         * WebCore.xcodeproj/project.pbxproj:
34674         * bindings/js/JSStyleSheetCustom.cpp: Added.
34675         (WebCore::toJS):
34676         (WebCore::JSStyleSheet::toBoolean):
34677         * bindings/js/kjs_css.cpp:
34678         (KJS::):
34679         (KJS::DOMCSSStyleSheet::DOMCSSStyleSheet):
34680         (KJS::DOMCSSStyleSheet::getOwnPropertySlot):
34681         * bindings/js/kjs_css.h:
34682         * bindings/objc/DOMUtility.mm:
34683         (KJS::createDOMWrapper):
34684         * bindings/scripts/CodeGeneratorJS.pm:
34685         * css/StyleSheet.idl:
34686         * page/DOMWindow.idl: Add new constructor.
34687
34688 2007-05-29  David Hyatt  <hyatt@apple.com>
34689
34690         Make sure <embed> does not allow an end tag.
34691
34692         Reviewed by olliej
34693
34694         * html/HTMLEmbedElement.h:
34695         (WebCore::HTMLEmbedElement::endTagRequirement):
34696
34697 2007-05-29  Adele Peterson  <adele@apple.com>
34698
34699         Reviewed by Brady.
34700
34701         Fix for <rdar://problem/5213039> REGRESSION: Wells Fargo registration page returns blank
34702
34703         Roll out updated fix for 11866 that tried to make reset work for hidden inputs.  Since
34704         all browsers update the value attribute when setting the value, it doesn't really make sense to reset.
34705         Its true that IE does support resetting these controls, but in this case, it doesn't really make sense to have
34706         another place to store an alternate version of the value.
34707
34708         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::reset):
34709         * html/HTMLInputElement.h:
34710
34711 2007-05-29  Darin Adler  <darin@apple.com>
34712
34713         Reviewed by Anders.
34714
34715         - removed the general case optimization for innerHTML because some sites
34716           rely on setting innerHTML to trigger loading plug-ins for example; we
34717           could consider bringing it back some day, perhaps with a list of element
34718           types to exclude
34719
34720         * dom/CharacterData.cpp: (WebCore::CharacterData::setData):
34721         Do nothing if the old data is identical to the new data.
34722
34723         * html/HTMLElement.cpp:
34724         (WebCore::replaceChildrenWithFragment): Remove childrenAreEqual optimization.
34725         (WebCore::replaceChildrenWithText): Remove optimization for cases where the
34726         text data is identical to the new data, since CharacterData handles that now.
34727         (WebCore::HTMLElement::setOuterHTML): Remove childrenAreEqual optimization.
34728
34729 2007-05-29  Mitz Pettel  <mitz@webkit.org>
34730
34731         Reviewed by Maciej.
34732
34733         - fix http://bugs.webkit.org/show_bug.cgi?id=13904
34734           REGRESSION: Search fields with a results popup do not always draw the popup arrow
34735
34736         Covered by fast/forms/box-shadow-override.html
34737
34738         The search button draws a popup arrow depending on whether the
34739         search menu template is set, rather than on the maximum number of recent
34740         search strings.
34741
34742         * rendering/RenderThemeMac.h:
34743         * rendering/RenderThemeMac.mm:
34744         (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration): Removed the
34745         call to -setMaxmiumRecents:.
34746         (WebCore::RenderThemeMac::paintSearchFieldResultsButton): Replaced calling
34747         -setMaximumRecents: with setting the search menu template.
34748         (WebCore::RenderThemeMac::search): Removed initialization of the menu.
34749         (WebCore::RenderThemeMac::searchMenuTemplate): Added. Returns an empty
34750         NSMenu to be used as the search menu template.
34751
34752 2007-05-29  David Hyatt  <hyatt@apple.com>
34753
34754         Fix for bug 13907, <noscript> should be allowed inside <head> when
34755         scripting is enabled.
34756
34757         Reviewed by aroben
34758
34759         * html/HTMLHeadElement.cpp:
34760         (WebCore::HTMLHeadElement::checkDTD):
34761         * html/HTMLParser.cpp:
34762         (WebCore::HTMLParser::handleError):
34763         * html/HTMLParserErrorCodes.cpp:
34764         (WebCore::htmlParserErrorMessageTemplate):
34765         * html/HTMLParserErrorCodes.h:
34766
34767 2007-05-29  Mitz Pettel  <mitz@webkit.org>
34768
34769         Reviewed by Maciej.
34770
34771         - fix crash in http://bugs.webkit.org/show_bug.cgi?id=13792
34772           REGRESSION: WebKit doesn't show this javascript screenshot page (and crashes after click on its "hidden link")
34773
34774         Test: fast/frames/removal-before-attach-crash.html
34775
34776         Delayed the queueing of the post-attach callback until attach().
34777
34778         * html/HTMLFrameElementBase.cpp:
34779         (WebCore::HTMLFrameElementBase::HTMLFrameElementBase):
34780         (WebCore::HTMLFrameElementBase::parseMappedAttribute): Replaced call to the
34781         HTMLElement implementation with a call to the HTMLFrameOwnerElement
34782         implementation, as the latter is the parent class.
34783         (WebCore::HTMLFrameElementBase::insertedIntoDocument): Instead of queueing
34784         the post-attach callback here, just set a flag telling us to do so
34785         at the beginning of attach().
34786         (WebCore::HTMLFrameElementBase::removedFromDocument): Reset the above flag.
34787         (WebCore::HTMLFrameElementBase::attach): If this is the first attach() after
34788         being inserted into the document, queue a post-attach callback to load the
34789         frame.
34790         (WebCore::HTMLFrameElementBase::willRemove): Changed to call up to the correct
34791         parent class.
34792         (WebCore::HTMLFrameElementBase::setFocus): Ditto.
34793         * html/HTMLFrameElementBase.h:
34794         * html/HTMLPlugInElement.cpp:
34795         (WebCore::HTMLPlugInElement::mapToEntry): Replaced call to the HTMLElement
34796         implementation with a call to the HTMLFrameOwnerElement implementation,
34797         as the latter is the parent class.
34798         (WebCore::HTMLPlugInElement::parseMappedAttribute): Ditto.
34799         (WebCore::HTMLPlugInElement::checkDTD): Ditto.
34800         (WebCore::HTMLPlugInElement::detach): Ditto.
34801
34802 2007-05-29  Darin Adler  <darin@apple.com>
34803
34804         Reviewed by Maciej.
34805
34806         - fix http://bugs.webkit.org/show_bug.cgi?id=13602
34807           Amazon product pages keep repainting over and over again
34808
34809         - fix first-letter when the text of the affected text node is changed
34810
34811         Optimize setInnerHTML, setOuterHTML, and setInnerText so they don't change the DOM at all
34812         if they don't need to.
34813
34814         Test: fast/dom/HTMLElement/set-inner-outer-optimization.html
34815         Test: fast/css/first-letter-detach.html
34816
34817         * html/HTMLElement.cpp:
34818         (WebCore::equal): Added. Helper function that compares two Text nodes or two NamedAttrMap
34819         attribute maps.
34820         (WebCore::shallowEqual): Added. Helper function that compares two Element nodes or two
34821         arbitrary nodes.
34822         (WebCore::childrenAreEqual): Added. Helper functions that compare children of nodes.
34823         (WebCore::hasOneChild): Added. Helper function.
34824         (WebCore::hasOneTextChild): Added. Helper function.
34825         (WebCore::replaceChildrenWithFragment): Added. Helper function used by setInnerHTML and
34826         setInnerText. Optimizes the cases where all the nodes are the same, where both the current
34827         and the new content are single text nodes, and where the current content is a single node
34828         that can be replaced with replaceChild.
34829         (WebCore::replaceChildrenWithText): Added. Helper function used by setInnerText. Optimizes
34830         the case where the current content is a single text node or a single node that can be
34831         replaced with replaceChild.
34832         (WebCore::HTMLElement::setInnerHTML): Changed to call replaceChildrenWithFragment.
34833         (WebCore::HTMLElement::setOuterHTML): Added special case to optimize when the new content
34834         exactly matches the current node.
34835         (WebCore::HTMLElement::setInnerText): Changed to call replaceChildrenWithText in a few
34836         cases instead of doing removeChildren/appendChild. Changed code that was using
34837         DeprecatedString to instead use String. Changed general case to use a document fragment
34838         and replaceChildrenWithFragment.
34839
34840         * dom/CharacterData.cpp: (WebCore::CharacterData::dispatchModifiedEvent):
34841         Fixed bug where we would not dispatch the DOMSubtreeModified event unless someone
34842         was registered for the DOMCharacterDataModified event. Caused trouble in the test.
34843
34844         * rendering/RenderBlock.cpp: (WebCore::RenderBlock::updateFirstLetter): Set first-letter
34845         after the setStyle call so calls to setTextInternal inside setStyle don't clear it.
34846
34847         * rendering/RenderText.h: Made setTextInternal virtual so that RenderTextFragment can do
34848         appropriate work when the text changes.
34849
34850         * rendering/RenderTextFragment.h: Added an override of setTextInternal. Removed the
34851         firstLetter parameter to the constructor and made it a separate setter. Also changed
34852         m_generatedContentStr to m_contentString to match the getter function.
34853         * rendering/RenderTextFragment.cpp:
34854         (WebCore::RenderTextFragment::RenderTextFragment): Removed firstLetter parameter.
34855         (WebCore::RenderTextFragment::setTextInternal): When the text changes, destroy the
34856         first-letter node and reset the fragment values so that RenderBlock::updateFirstLetter,
34857         which will run during layout, will create a new first-letter child. Otherwise we end up
34858         with the first letter of the old text.
34859
34860 2007-05-29  Sam Weinig  <sam@webkit.org>
34861
34862         Fix Qt build.
34863
34864         * platform/NotImplemented.h:
34865
34866 2007-05-29  Sam Weinig  <sam@webkit.org>
34867
34868         Reviewed by Adam Roben.
34869
34870         Consolidate platform dependent notImplemented() macros
34871         into one platform independent macro that uses WTFLog.
34872
34873         * platform/NotImplemented.h:
34874
34875 2007-05-29  Darin Adler  <darin@apple.com>
34876
34877         Reviewed by Sam.
34878
34879         - a clean-up pass on form-related aspects of the recent JSHTMLElement patch
34880
34881         * bindings/js/JSHTMLElementCustom.cpp: (WebCore::JSHTMLElement::pushEventHandlerScope):
34882         Replace the call to formForEventHandlerScope() with a call to the new form() function.
34883         And removed the now-uneeded code to search for a form ancestor.
34884
34885         * html/HTMLElement.h: Added a general-purpose form() function. The intent is to return
34886         the form ancestor if any, but return the associated form for a form control, which isn't
34887         always an ancestor of the control. To keep form() efficient for form controls, it's an
34888         inline that calls a virtual, allowing a derived class to override it with an inline.
34889         This replaces formForEventHandlerScope(). Also added findFormAncestor() to use here and
34890         to replace the multiple loops found elsewhere to search for the nearest form ancestor.
34891         * html/HTMLElement.cpp:
34892         (WebCore::HTMLElement::findFormAncestor): Added.
34893         (WebCore::HTMLElement::virtualForm): Added. Calls findFormAncestor().
34894
34895         * html/HTMLGenericFormElement.h: Suggested name change to HTMLFormControlElement.
34896         Removed the confusing getForm() function, which is superceded by findFormAncestor.
34897         Removed the unused onSelect() function. Removed the override of formForEventHandlerScope(),
34898         replacing it with an override of virtualForm().
34899         * html/HTMLGenericFormElement.cpp:
34900         (WebCore::HTMLGenericFormElement::HTMLGenericFormElement): Use findFormAncestor
34901         instead of getForm.
34902         (WebCore::HTMLGenericFormElement::insertedIntoTree): Ditto.
34903         (WebCore::HTMLGenericFormElement::virtualForm): Added.
34904
34905         * html/HTMLLabelElement.h: Removed now-unneeded form() and formForEventHandlerScope()
34906         functions, since base class behavior is now good enough. Renamed formElement() to
34907         correspondingControl(), since that's the terminology used elsewhere in the code,
34908         and the old name was unnecessarily confusing.
34909         * html/HTMLLabelElement.cpp:
34910         (WebCore::HTMLLabelElement::correspondingControl): Renamed. Removed unnecessary
34911         special case for empty ID, since getElementById already returns 0 for that case.
34912         (WebCore::HTMLLabelElement::setActive): Updated for name change.
34913         (WebCore::HTMLLabelElement::setHovered): Ditto.
34914         (WebCore::HTMLLabelElement::defaultEventHandler): Ditto.
34915         (WebCore::HTMLLabelElement::focus): Ditto.
34916         (WebCore::HTMLLabelElement::accessKeyAction): Ditto.
34917
34918         * html/HTMLObjectElement.h: Removed now-unneeded form() and formForEventHandlerScope()
34919         functions, since base class behavior is now good enough. Also removed forward
34920         declaration of KJS::Bindings::Instance -- since the type is the return value of a
34921         function from the base class, it's guaranteed to be declared in the base class header.
34922         * html/HTMLObjectElement.cpp: Ditto.
34923
34924         * bridge/mac/WebCoreAXObject.mm: (labelForElement): Updated for name change.
34925
34926 2007-05-29  Zack Rusin  <zrusin@trolltech.com>
34927
34928         Reviewed by George and Niko
34929
34930         Making the convenience method notImplemented convenient
34931         for the Qt port.
34932
34933         * platform/NotImplemented.h:
34934
34935 2007-05-28  Sam Weinig  <sam@webkit.org>
34936
34937         Reviewed by Geoff.
34938
34939         - Patch for http://bugs.webkit.org/show_bug.cgi?id=13902
34940           Autogenerate the JS bindings for the CSSStyleDeclaration
34941
34942         * WebCore.pro:
34943         * WebCore.xcodeproj/project.pbxproj:
34944         * bindings/js/JSCSSStyleDeclarationCustom.cpp: Added.
34945         (WebCore::cssPropertyName):
34946         (WebCore::isCSSPropertyName):
34947         (WebCore::JSCSSStyleDeclaration::canGetItemsForName):
34948         (WebCore::JSCSSStyleDeclaration::nameGetter):
34949         (WebCore::JSCSSStyleDeclaration::customPut):
34950         * bindings/js/kjs_binding.h:
34951         * bindings/js/kjs_css.cpp:
34952         * bindings/js/kjs_css.h:
34953         * bindings/objc/DOMUtility.mm:
34954         (KJS::createDOMWrapper):
34955         * bindings/scripts/CodeGeneratorJS.pm:
34956         * css/CSSStyleDeclaration.idl:
34957
34958 2007-05-28  Mitz Pettel  <mitz@webkit.org>
34959
34960         Reviewed by Darin.
34961
34962         - fix http://bugs.webkit.org/show_bug.cgi?id=13896
34963           REGRESSION (NativePopup): Reproductible crasher on Google Coop control panel
34964
34965         Test: fast/forms/select-display-none-style-resolve.html
34966
34967         * html/HTMLOptGroupElement.cpp:
34968         (WebCore::HTMLOptGroupElement::attach): Do not compute style if the parent
34969         does not have style.
34970         * html/HTMLOptionElement.cpp:
34971         (WebCore::HTMLOptionElement::attach): Ditto.
34972
34973 2007-05-28  Sam Weinig  <sam@webkit.org>
34974
34975         Fix Gdk and Qt builds.
34976
34977         * WebCore.pro:
34978
34979 2007-05-28  Sam Weinig  <sam@webkit.org>
34980
34981         Reviewed by Darin.
34982
34983         Patch for http://bugs.webkit.org/show_bug.cgi?id=13894
34984         Remove the legacy class KJS::JSHTMLElement
34985
34986         - Now that all of the subclasses of JSHTMLElement are
34987           autogenerated and no longer rely on the legacy parent,
34988           we can remove it and update all the HTML idl files to
34989           reflect so.
34990
34991         - Also adds JSHTMLBlockquoteElement's JS constructor which
34992           was mistakingly missing.
34993
34994         * WebCore.xcodeproj/project.pbxproj:
34995         * bindings/js/JSHTMLAnchorElementCustom.cpp:
34996         (WebCore::JSHTMLAnchorElement::toString):
34997         * bindings/js/JSHTMLElementCustom.cpp: Added.
34998         (WebCore::JSHTMLElement::pushEventHandlerScope):
34999         * bindings/js/JSHTMLElementWrapperFactory.cpp:
35000         (WebCore::createJSHTMLWrapper):
35001         * bindings/js/JSHTMLInputElementBase.cpp:
35002         (WebCore::):
35003         (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase):
35004         (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
35005         (WebCore::JSHTMLInputElementBase::put):
35006         * bindings/js/JSHTMLInputElementBase.h:
35007         * bindings/js/JSHTMLSelectElementCustom.cpp:
35008         * bindings/js/kjs_html.cpp:
35009         (KJS::runtimeObjectCustomGetOwnPropertySlot):
35010         * bindings/js/kjs_html.h:
35011         * bindings/scripts/CodeGeneratorJS.pm:
35012         * html/HTMLAnchorElement.idl:
35013         * html/HTMLAppletElement.idl:
35014         * html/HTMLAreaElement.idl:
35015         * html/HTMLBRElement.idl:
35016         * html/HTMLBaseElement.idl:
35017         * html/HTMLBaseFontElement.idl:
35018         * html/HTMLBlockquoteElement.idl:
35019         * html/HTMLBodyElement.idl:
35020         * html/HTMLButtonElement.idl:
35021         * html/HTMLCanvasElement.idl:
35022         * html/HTMLDListElement.idl:
35023         * html/HTMLDirectoryElement.idl:
35024         * html/HTMLDivElement.idl:
35025         * html/HTMLElement.cpp:
35026         (WebCore::HTMLElement::formForEventHandlerScope):
35027         * html/HTMLElement.h:
35028         * html/HTMLElement.idl:
35029         * html/HTMLEmbedElement.idl:
35030         * html/HTMLFieldSetElement.idl:
35031         * html/HTMLFontElement.idl:
35032         * html/HTMLFormElement.idl:
35033         * html/HTMLFrameElement.idl:
35034         * html/HTMLFrameSetElement.idl:
35035         * html/HTMLGenericFormElement.cpp:
35036         (WebCore::HTMLGenericFormElement::formForEventHandlerScope):
35037         * html/HTMLGenericFormElement.h:
35038         * html/HTMLHRElement.idl:
35039         * html/HTMLHeadElement.idl:
35040         * html/HTMLHeadingElement.idl:
35041         * html/HTMLHtmlElement.idl:
35042         * html/HTMLIFrameElement.idl:
35043         * html/HTMLImageElement.idl:
35044         * html/HTMLIsIndexElement.idl:
35045         * html/HTMLLIElement.idl:
35046         * html/HTMLLabelElement.cpp:
35047         (WebCore::HTMLLabelElement::form):
35048         (WebCore::HTMLLabelElement::formForEventHandlerScope):
35049         * html/HTMLLabelElement.h:
35050         * html/HTMLLabelElement.idl:
35051         * html/HTMLLegendElement.idl:
35052         * html/HTMLLinkElement.idl:
35053         * html/HTMLMapElement.idl:
35054         * html/HTMLMarqueeElement.idl:
35055         * html/HTMLMenuElement.idl:
35056         * html/HTMLMetaElement.idl:
35057         * html/HTMLModElement.idl:
35058         * html/HTMLOListElement.idl:
35059         * html/HTMLObjectElement.cpp:
35060         (WebCore::HTMLObjectElement::formForEventHandlerScope):
35061         * html/HTMLObjectElement.h:
35062         * html/HTMLObjectElement.idl:
35063         * html/HTMLOptGroupElement.idl:
35064         * html/HTMLOptionElement.idl:
35065         * html/HTMLParagraphElement.idl:
35066         * html/HTMLParamElement.idl:
35067         * html/HTMLPreElement.idl:
35068         * html/HTMLQuoteElement.idl:
35069         * html/HTMLScriptElement.idl:
35070         * html/HTMLSelectElement.idl:
35071         * html/HTMLStyleElement.idl:
35072         * html/HTMLTableCaptionElement.idl:
35073         * html/HTMLTableCellElement.idl:
35074         * html/HTMLTableColElement.idl:
35075         * html/HTMLTableElement.idl:
35076         * html/HTMLTableRowElement.idl:
35077         * html/HTMLTableSectionElement.idl:
35078         * html/HTMLTextAreaElement.idl:
35079         * html/HTMLTitleElement.idl:
35080         * html/HTMLUListElement.idl:
35081         * page/DOMWindow.idl:
35082
35083 2007-05-28  Zack Rusin  <zrusin@trolltech.com>
35084
35085         Reviewed by andersca
35086
35087         Adding Qt related constructor/casting operators
35088         to the AtomicString and updating the project
35089         file for new Qt settings api using those.
35090
35091         * WebCore.pro:
35092         * platform/AtomicString.h:
35093
35094 2007-05-27  Sam Weinig  <sam@webkit.org>
35095
35096         Qt and Gdk build fix.
35097
35098         * WebCore.pro:
35099
35100 2007-05-27  Sam Weinig  <sam@webkit.org>
35101
35102         Reviewed by Hyatt.
35103
35104         Patch for http://bugs.webkit.org/show_bug.cgi?id=13893
35105         Autogenerate the JS bindings for the HTMLObjectElement, 
35106         HTMLEmbedElement and HTMLAppletElement
35107
35108         * DerivedSources.make:
35109         * WebCore.xcodeproj/project.pbxproj:
35110         * bindings/js/JSHTMLAppletElementCustom.cpp: Added.
35111         (WebCore::JSHTMLAppletElement::customGetOwnPropertySlot):
35112         (WebCore::JSHTMLAppletElement::customPut):
35113         (WebCore::JSHTMLAppletElement::implementsCall):
35114         (WebCore::JSHTMLAppletElement::callAsFunction):
35115         (WebCore::JSHTMLAppletElement::canGetItemsForName):
35116         (WebCore::JSHTMLAppletElement::nameGetter):
35117         * bindings/js/JSHTMLElementWrapperFactory.cpp:
35118         * bindings/js/JSHTMLEmbedElementCustom.cpp: Added.
35119         (WebCore::JSHTMLEmbedElement::customGetOwnPropertySlot):
35120         (WebCore::JSHTMLEmbedElement::customPut):
35121         (WebCore::JSHTMLEmbedElement::implementsCall):
35122         (WebCore::JSHTMLEmbedElement::callAsFunction):
35123         (WebCore::JSHTMLEmbedElement::canGetItemsForName):
35124         (WebCore::JSHTMLEmbedElement::nameGetter):
35125         * bindings/js/JSHTMLObjectElementCustom.cpp: Added.
35126         (WebCore::JSHTMLObjectElement::customGetOwnPropertySlot):
35127         (WebCore::JSHTMLObjectElement::customPut):
35128         (WebCore::JSHTMLObjectElement::implementsCall):
35129         (WebCore::JSHTMLObjectElement::callAsFunction):
35130         (WebCore::JSHTMLObjectElement::canGetItemsForName):
35131         (WebCore::JSHTMLObjectElement::nameGetter):
35132         * bindings/js/kjs_html.cpp:
35133         (KJS::):
35134         (KJS::JSHTMLElement::toString):
35135         (KJS::JSHTMLElement::pushEventHandlerScope):
35136         (KJS::runtimeObjectGetter):
35137         (KJS::runtimeObjectPropertyGetter):
35138         (KJS::runtimeObjectCustomGetOwnPropertySlot):
35139         (KJS::runtimeObjectCustomPut):
35140         (KJS::runtimeObjectImplementsCall):
35141         (KJS::runtimeObjectCallAsFunction):
35142         * bindings/js/kjs_html.h:
35143         (KJS::JSHTMLElement::classInfo):
35144         * bindings/scripts/CodeGeneratorJS.pm: Add support for 
35145         CustomGetOwnPropertySlot, CustomPutFunction, CustomCall,
35146         and SVGCheckSecurityDocument properties.
35147         * html/HTMLAppletElement.idl:
35148         * html/HTMLEmbedElement.idl:
35149         * html/HTMLObjectElement.idl:
35150         * page/DOMWindow.idl: Uncomment constructors.
35151
35152 2007-05-27  Sam Weinig  <sam@webkit.org>
35153
35154         Reviewed by Oliver.
35155
35156         Gdk build fix.
35157
35158         * platform/graphics/Path.h:
35159
35160 2007-05-27  Sam Weinig  <sam@webkit.org>
35161
35162         Gdk build fix.  Forgot to update a few instances of notImplementedGdk() to notImplemented().
35163
35164         * page/gdk/EventHandlerGdk.cpp:
35165         (WebCore::EventHandler::passMousePressEventToScrollbar):
35166         * platform/gdk/EditorClientGdk.cpp:
35167         (WebCore::EditorClientGdk::ignoreWordInSpellDocument):
35168         (WebCore::EditorClientGdk::learnWord):
35169         (WebCore::EditorClientGdk::checkSpellingOfString):
35170         (WebCore::EditorClientGdk::checkGrammarOfString):
35171         (WebCore::EditorClientGdk::updateSpellingUIWithGrammarString):
35172         (WebCore::EditorClientGdk::updateSpellingUIWithMisspelledWord):
35173         (WebCore::EditorClientGdk::showSpellingUI):
35174         (WebCore::EditorClientGdk::spellingUIIsShowing):
35175         (WebCore::EditorClientGdk::getGuessesForWord):
35176         * platform/gdk/FrameGdk.cpp:
35177         (WebCore::Frame::dashboardRegionsChanged):
35178         * platform/gdk/PlatformScrollBarGdk.cpp:
35179         (PlatformScrollbar::paint):
35180         (PlatformScrollbar::updateThumbPosition):
35181         (PlatformScrollbar::updateThumbProportion):
35182         * platform/gdk/TemporaryLinkStubs.cpp:
35183         (Widget::setEnabled):
35184         (Widget::isEnabled):
35185         (Widget::removeFromParent):
35186         (Widget::paint):
35187         (Widget::setIsSelected):
35188         (Widget::invalidate):
35189         (Widget::invalidateRect):
35190
35191 2007-05-27  Alp Toker  <alp.toker@collabora.co.uk>
35192
35193         Reviewed by Sam and Oliver.
35194
35195         Implement PathCairo. This patch is based on changes in Mike Emmel's
35196         WebKit fork with some additional clean-ups and updates.
35197
35198         * platform/graphics/Path.h:
35199         * platform/graphics/cairo/CairoPath.h: Added.
35200         (CairoPath::CairoPath):
35201         (CairoPath::~CairoPath):
35202         * platform/graphics/cairo/GraphicsContextCairo.cpp:
35203         (WebCore::GraphicsContext::clip):
35204         * platform/graphics/cairo/PathCairo.cpp:
35205         (WebCore::Path::Path):
35206         (WebCore::Path::~Path):
35207         (WebCore::Path::operator=):
35208         (WebCore::Path::clear):
35209         (WebCore::Path::isEmpty):
35210         (WebCore::Path::translate):
35211         (WebCore::Path::moveTo):
35212         (WebCore::Path::addLineTo):
35213         (WebCore::Path::addRect):
35214         (WebCore::Path::addQuadCurveTo):
35215         (WebCore::Path::addBezierCurveTo):
35216         (WebCore::Path::addArc):
35217         (WebCore::Path::addArcTo):
35218         (WebCore::Path::addEllipse):
35219         (WebCore::Path::closeSubpath):
35220         (WebCore::Path::boundingRect):
35221         (WebCore::Path::contains):
35222         (WebCore::Path::apply):
35223         (WebCore::Path::transform):
35224         (WebCore::Path::debugString):
35225
35226 2007-05-27  Kevin Ollivier  <kevino@theolliviers.com>
35227
35228         Reviewed by Sam Weinig.
35229
35230         Consolidate all notImplemented() macro definitions into
35231         one header file for all platforms.
35232
35233         * loader/gdk/DocumentLoaderGdk.cpp:
35234         (WebCore::DocumentLoader::getResponseModifiedHeader):
35235         * loader/gdk/FrameLoaderClientGdk.cpp:
35236         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveAuthenticationChallenge):
35237         (WebCore::FrameLoaderClientGdk::dispatchDidCancelAuthenticationChallenge):
35238         (WebCore::FrameLoaderClientGdk::dispatchWillSendRequest):
35239         (WebCore::FrameLoaderClientGdk::assignIdentifierToInitialRequest):
35240         (WebCore::FrameLoaderClientGdk::createPlugin):
35241         (WebCore::FrameLoaderClientGdk::createFrame):
35242         (WebCore::FrameLoaderClientGdk::redirectDataToPlugin):
35243         (WebCore::FrameLoaderClientGdk::createJavaAppletWidget):
35244         (WebCore::FrameLoaderClientGdk::objectContentType):
35245         (WebCore::FrameLoaderClientGdk::overrideMediaType):
35246         (WebCore::FrameLoaderClientGdk::windowObjectCleared):
35247         (WebCore::FrameLoaderClientGdk::hasWebView):
35248         (WebCore::FrameLoaderClientGdk::hasFrameView):
35249         (WebCore::FrameLoaderClientGdk::frameLoadCompleted):
35250         (WebCore::FrameLoaderClientGdk::saveViewStateToItem):
35251         (WebCore::FrameLoaderClientGdk::restoreViewState):
35252         (WebCore::FrameLoaderClientGdk::privateBrowsingEnabled):
35253         (WebCore::FrameLoaderClientGdk::makeDocumentView):
35254         (WebCore::FrameLoaderClientGdk::makeRepresentation):
35255         (WebCore::FrameLoaderClientGdk::forceLayout):
35256         (WebCore::FrameLoaderClientGdk::forceLayoutForNonHTML):
35257         (WebCore::FrameLoaderClientGdk::setCopiesOnScroll):
35258         (WebCore::FrameLoaderClientGdk::detachedFromParent1):
35259         (WebCore::FrameLoaderClientGdk::detachedFromParent2):
35260         (WebCore::FrameLoaderClientGdk::detachedFromParent3):
35261         (WebCore::FrameLoaderClientGdk::detachedFromParent4):
35262         (WebCore::FrameLoaderClientGdk::loadedFromCachedPage):
35263         (WebCore::FrameLoaderClientGdk::dispatchDidHandleOnloadEvents):
35264         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveServerRedirectForProvisionalLoad):
35265         (WebCore::FrameLoaderClientGdk::dispatchDidCancelClientRedirect):
35266         (WebCore::FrameLoaderClientGdk::dispatchWillPerformClientRedirect):
35267         (WebCore::FrameLoaderClientGdk::dispatchDidChangeLocationWithinPage):
35268         (WebCore::FrameLoaderClientGdk::dispatchWillClose):
35269         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveIcon):
35270         (WebCore::FrameLoaderClientGdk::dispatchDidStartProvisionalLoad):
35271         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveTitle):
35272         (WebCore::FrameLoaderClientGdk::dispatchDidCommitLoad):
35273         (WebCore::FrameLoaderClientGdk::dispatchDidFinishDocumentLoad):
35274         (WebCore::FrameLoaderClientGdk::dispatchDidFirstLayout):
35275         (WebCore::FrameLoaderClientGdk::dispatchShow):
35276         (WebCore::FrameLoaderClientGdk::cancelPolicyCheck):
35277         (WebCore::FrameLoaderClientGdk::dispatchDidLoadMainResource):
35278         (WebCore::FrameLoaderClientGdk::revertToProvisionalState):
35279         (WebCore::FrameLoaderClientGdk::clearUnarchivingState):
35280         (WebCore::FrameLoaderClientGdk::willChangeTitle):
35281         (WebCore::FrameLoaderClientGdk::finishedLoading):
35282         (WebCore::FrameLoaderClientGdk::finalSetupForReplace):
35283         (WebCore::FrameLoaderClientGdk::setDefersLoading):
35284         (WebCore::FrameLoaderClientGdk::isArchiveLoadPending):
35285         (WebCore::FrameLoaderClientGdk::cancelPendingArchiveLoad):
35286         (WebCore::FrameLoaderClientGdk::clearArchivedResources):
35287         (WebCore::FrameLoaderClientGdk::canHandleRequest):
35288         (WebCore::FrameLoaderClientGdk::canShowMIMEType):
35289         (WebCore::FrameLoaderClientGdk::representationExistsForURLScheme):
35290         (WebCore::FrameLoaderClientGdk::generatedMIMETypeForURLScheme):
35291         (WebCore::FrameLoaderClientGdk::provisionalLoadStarted):
35292         (WebCore::FrameLoaderClientGdk::didFinishLoad):
35293         (WebCore::FrameLoaderClientGdk::prepareForDataSourceReplacement):
35294         (WebCore::FrameLoaderClientGdk::setTitle):
35295         (WebCore::FrameLoaderClientGdk::setDocumentViewFromCachedPage):
35296         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveContentLength):
35297         (WebCore::FrameLoaderClientGdk::dispatchDidFinishLoading):
35298         (WebCore::FrameLoaderClientGdk::dispatchDidFailLoading):
35299         (WebCore::FrameLoaderClientGdk::dispatchDidLoadResourceFromMemoryCache):
35300         (WebCore::FrameLoaderClientGdk::dispatchDidFailProvisionalLoad):
35301         (WebCore::FrameLoaderClientGdk::dispatchDidFailLoad):
35302         (WebCore::FrameLoaderClientGdk::download):
35303         (WebCore::FrameLoaderClientGdk::cancelledError):
35304         (WebCore::FrameLoaderClientGdk::blockedError):
35305         (WebCore::FrameLoaderClientGdk::cannotShowURLError):
35306         (WebCore::FrameLoaderClientGdk::interruptForPolicyChangeError):
35307         (WebCore::FrameLoaderClientGdk::cannotShowMIMETypeError):
35308         (WebCore::FrameLoaderClientGdk::fileDoesNotExistError):
35309         (WebCore::FrameLoaderClientGdk::shouldFallBack):
35310         (WebCore::FrameLoaderClientGdk::willUseArchive):
35311         (WebCore::FrameLoaderClientGdk::saveDocumentViewToCachedPage):
35312         (WebCore::FrameLoaderClientGdk::canCachePage):
35313         (WebCore::FrameLoaderClientGdk::dispatchCreatePage):
35314         (WebCore::FrameLoaderClientGdk::dispatchUnableToImplementPolicy):
35315         (WebCore::FrameLoaderClientGdk::setMainDocumentError):
35316         (WebCore::FrameLoaderClientGdk::startDownload):
35317         (WebCore::FrameLoaderClientGdk::updateGlobalHistoryForStandardLoad):
35318         (WebCore::FrameLoaderClientGdk::updateGlobalHistoryForReload):
35319         * loader/qt/DocumentLoaderQt.cpp:
35320         * page/gdk/ContextMenuClientGdk.cpp:
35321         (WebCore::ContextMenuClientGdk::contextMenuDestroyed):
35322         (WebCore::ContextMenuClientGdk::getCustomMenuFromDefaultItems):
35323         (WebCore::ContextMenuClientGdk::contextMenuItemSelected):
35324         (WebCore::ContextMenuClientGdk::downloadURL):
35325         (WebCore::ContextMenuClientGdk::copyImageToClipboard):
35326         (WebCore::ContextMenuClientGdk::searchWithGoogle):
35327         (WebCore::ContextMenuClientGdk::lookUpInDictionary):
35328         (WebCore::ContextMenuClientGdk::speak):
35329         (WebCore::ContextMenuClientGdk::stopSpeaking):
35330         * page/gdk/EventHandlerGdk.cpp:
35331         (WebCore::EventHandler::passMouseDownEventToWidget):
35332         (WebCore::EventHandler::eventActivatedView):
35333         (WebCore::EventHandler::passSubframeEventToSubframe):
35334         (WebCore::EventHandler::passWheelEventToWidget):
35335         (WebCore::EventHandler::createDraggingClipboard):
35336         * page/qt/EventHandlerQt.cpp:
35337         * page/qt/FrameQt.cpp:
35338         * platform/NotImplemented.h: Added.
35339         * platform/gdk/CursorGdk.cpp:
35340         (WebCore::Cursor::Cursor):
35341         * platform/gdk/EditorClientGdk.cpp:
35342         (WebCore::EditorClientGdk::shouldDeleteRange):
35343         (WebCore::EditorClientGdk::isContinuousSpellCheckingEnabled):
35344         (WebCore::EditorClientGdk::isGrammarCheckingEnabled):
35345         (WebCore::EditorClientGdk::spellCheckerDocumentTag):
35346         (WebCore::EditorClientGdk::shouldBeginEditing):
35347         (WebCore::EditorClientGdk::shouldEndEditing):
35348         (WebCore::EditorClientGdk::shouldInsertText):
35349         (WebCore::EditorClientGdk::shouldChangeSelectedRange):
35350         (WebCore::EditorClientGdk::shouldApplyStyle):
35351         (WebCore::EditorClientGdk::didBeginEditing):
35352         (WebCore::EditorClientGdk::respondToChangedContents):
35353         (WebCore::EditorClientGdk::respondToChangedSelection):
35354         (WebCore::EditorClientGdk::didEndEditing):
35355         (WebCore::EditorClientGdk::didWriteSelectionToPasteboard):
35356         (WebCore::EditorClientGdk::didSetSelectionTypesForPasteboard):
35357         (WebCore::EditorClientGdk::selectWordBeforeMenuEvent):
35358         (WebCore::EditorClientGdk::isEditable):
35359         (WebCore::EditorClientGdk::registerCommandForUndo):
35360         (WebCore::EditorClientGdk::registerCommandForRedo):
35361         (WebCore::EditorClientGdk::clearUndoRedoOperations):
35362         (WebCore::EditorClientGdk::canUndo):
35363         (WebCore::EditorClientGdk::canRedo):
35364         (WebCore::EditorClientGdk::undo):
35365         (WebCore::EditorClientGdk::redo):
35366         (WebCore::EditorClientGdk::shouldInsertNode):
35367         (WebCore::EditorClientGdk::pageDestroyed):
35368         (WebCore::EditorClientGdk::smartInsertDeleteEnabled):
35369         (WebCore::EditorClientGdk::toggleContinuousSpellChecking):
35370         (WebCore::EditorClientGdk::handleInputMethodKeypress):
35371         (WebCore::EditorClientGdk::textFieldDidBeginEditing):
35372         (WebCore::EditorClientGdk::textFieldDidEndEditing):
35373         (WebCore::EditorClientGdk::textDidChangeInTextField):
35374         (WebCore::EditorClientGdk::doTextFieldCommandFromEvent):
35375         (WebCore::EditorClientGdk::textWillBeDeletedInTextField):
35376         (WebCore::EditorClientGdk::textDidChangeInTextArea):
35377         * platform/gdk/FrameGdk.cpp:
35378         (WebCore::Frame::print):
35379         (WebCore::Frame::issueTransposeCommand):
35380         (WebCore::Frame::cleanupPlatformScriptObjects):
35381         (WebCore::Frame::dragImageForSelection):
35382         * platform/gdk/NotImplementedGdk.h: Removed.
35383         * platform/gdk/PopupMenuGdk.cpp:
35384         (WebCore::PopupMenu::PopupMenu):
35385         (WebCore::PopupMenu::~PopupMenu):
35386         (WebCore::PopupMenu::show):
35387         (WebCore::PopupMenu::hide):
35388         (WebCore::PopupMenu::updateFromElement):
35389         * platform/gdk/RenderThemeGdk.cpp:
35390         (WebCore::RenderThemeGdk::setCheckboxSize):
35391         (WebCore::RenderThemeGdk::setRadioSize):
35392         (WebCore::RenderThemeGdk::adjustTextFieldStyle):
35393         * platform/gdk/ScreenGdk.cpp:
35394         (WebCore::screenDepthPerComponent):
35395         (WebCore::screenIsMonochrome):
35396         (WebCore::screenRect):
35397         (WebCore::screenAvailableRect):
35398         * platform/gdk/ScrollViewGdk.cpp:
35399         (WebCore::ScrollView::update):
35400         (WebCore::ScrollView::addChild):
35401         (WebCore::ScrollView::removeChild):
35402         (WebCore::ScrollView::scrollRectIntoViewRecursively):
35403         (WebCore::ScrollView::inWindow):
35404         (WebCore::ScrollView::wheelEvent):
35405         (WebCore::ScrollView::updateScrollbars):
35406         (WebCore::ScrollView::updateScrollInfo):
35407         (WebCore::ScrollView::windowToContents):
35408         (WebCore::ScrollView::contentsToWindow):
35409         (WebCore::ScrollView::scrollbarUnderMouse):
35410         * platform/gdk/TemporaryLinkStubs.cpp:
35411         (FrameView::updateBorder):
35412         (WebCore::findNextWordFromIndex):
35413         (WebCore::currentTextBreakLocaleID):
35414         (ChromeClientGdk::chromeDestroyed):
35415         (ChromeClientGdk::windowRect):
35416         (ChromeClientGdk::setWindowRect):
35417         (ChromeClientGdk::pageRect):
35418         (ChromeClientGdk::scaleFactor):
35419         (ChromeClientGdk::focus):
35420         (ChromeClientGdk::unfocus):
35421         (ChromeClientGdk::createWindow):
35422         (ChromeClientGdk::createModalDialog):
35423         (ChromeClientGdk::show):
35424         (ChromeClientGdk::canRunModal):
35425         (ChromeClientGdk::runModal):
35426         (ChromeClientGdk::setToolbarsVisible):
35427         (ChromeClientGdk::toolbarsVisible):
35428         (ChromeClientGdk::setStatusbarVisible):
35429         (ChromeClientGdk::statusbarVisible):
35430         (ChromeClientGdk::setScrollbarsVisible):
35431         (ChromeClientGdk::scrollbarsVisible):
35432         (ChromeClientGdk::setMenubarVisible):
35433         (ChromeClientGdk::menubarVisible):
35434         (ChromeClientGdk::setResizable):
35435         (ChromeClientGdk::closeWindowSoon):
35436         (ChromeClientGdk::canTakeFocus):
35437         (ChromeClientGdk::takeFocus):
35438         (ChromeClientGdk::canRunBeforeUnloadConfirmPanel):
35439         (ChromeClientGdk::addMessageToConsole):
35440         (ChromeClientGdk::runBeforeUnloadConfirmPanel):
35441         (ChromeClientGdk::runJavaScriptAlert):
35442         (ChromeClientGdk::runJavaScriptConfirm):
35443         (ChromeClientGdk::runJavaScriptPrompt):
35444         (ChromeClientGdk::setStatusbarText):
35445         (ChromeClientGdk::shouldInterruptJavaScript):
35446         (ChromeClientGdk::tabsToLinks):
35447         (ChromeClientGdk::windowResizerRect):
35448         (ChromeClientGdk::addToDirtyRegion):
35449         (ChromeClientGdk::scrollBackingStore):
35450         (ChromeClientGdk::updateBackingStore):
35451         (PlugInInfoStore::createPluginInfoForPluginAtIndex):
35452         (PlugInInfoStore::pluginCount):
35453         (WebCore::PlugInInfoStore::supportsMIMEType):
35454         (WebCore::refreshPlugins):
35455         (SearchPopupMenu::saveRecentSearches):
35456         (SearchPopupMenu::loadRecentSearches):
35457         (SearchPopupMenu::SearchPopupMenu):
35458         (SearchPopupMenu::enabled):
35459         (FileChooser::FileChooser):
35460         (FileChooser::~FileChooser):
35461         (FileChooser::openFileChooser):
35462         (FileChooser::basenameForWidth):
35463         (ResourceHandle::willLoadFromCache):
35464         (ResourceHandle::loadsBlocked):
35465         (ResourceHandle::loadResourceSynchronously):
35466         (Icon::Icon):
35467         (Icon::~Icon):
35468         (Icon::newIconForFile):
35469         (Icon::paint):
35470         (Font::selectionRectForComplexText):
35471         (Font::drawComplexText):
35472         (Font::floatWidthForComplexText):
35473         (Font::offsetForPositionForComplexText):
35474         (CachedPage::close):
35475         (Editor::newGeneralClipboard):
35476         (Pasteboard::generalPasteboard):
35477         (Pasteboard::writeSelection):
35478         (Pasteboard::writeURL):
35479         (Pasteboard::writeImage):
35480         (Pasteboard::clear):
35481         (Pasteboard::canSmartReplace):
35482         (Pasteboard::documentFragment):
35483         (Pasteboard::plainText):
35484         (Pasteboard::Pasteboard):
35485         (Pasteboard::~Pasteboard):
35486         (ContextMenu::ContextMenu):
35487         (ContextMenu::~ContextMenu):
35488         (ContextMenu::appendItem):
35489         (ContextMenuItem::ContextMenuItem):
35490         (ContextMenuItem::~ContextMenuItem):
35491         (ContextMenuItem::releasePlatformDescription):
35492         (ContextMenuItem::type):
35493         (ContextMenuItem::setType):
35494         (ContextMenuItem::action):
35495         (ContextMenuItem::setAction):
35496         (ContextMenuItem::title):
35497         (ContextMenuItem::setTitle):
35498         (ContextMenuItem::platformSubMenu):
35499         (ContextMenuItem::setSubMenu):
35500         (ContextMenuItem::setChecked):
35501         (ContextMenuItem::setEnabled):
35502         (WebCore::supportedKeySizes):
35503         (WebCore::systemBeep):
35504         (WebCore::userIdleTime):
35505         * platform/graphics/cairo/GraphicsContextCairo.cpp:
35506         * platform/graphics/cairo/ImageBufferCairo.cpp:
35507         * platform/graphics/cairo/PathCairo.cpp:
35508         * platform/graphics/gdk/ImageGdk.cpp:
35509         * platform/graphics/qt/GraphicsContextQt.cpp:
35510         * platform/graphics/qt/IconQt.cpp:
35511         * platform/graphics/qt/ImageQt.cpp:
35512         * platform/network/gdk/ResourceHandleCurl.cpp:
35513         (WebCore::ResourceHandle::setDefersLoading):
35514         * platform/network/gdk/ResourceHandleManager.cpp:
35515         (WebCore::ResourceHandleManager::setupPUT):
35516         (WebCore::ResourceHandleManager::setupPOST):
35517         * platform/network/qt/ResourceHandleQt.cpp:
35518         * platform/qt/ClipboardQt.cpp:
35519         * platform/qt/CursorQt.cpp:
35520         * platform/qt/DragDataQt.cpp:
35521         * platform/qt/FileChooserQt.cpp:
35522         * platform/qt/MimeTypeRegistryQt.cpp:
35523         * platform/qt/PasteboardQt.cpp:
35524         * platform/qt/PlatformScrollBarQt.cpp:
35525         * platform/qt/PopupMenuQt.cpp:
35526         * platform/qt/ScrollViewQt.cpp:
35527         * platform/qt/TemporaryLinkStubs.cpp:
35528         * platform/qt/TextBoundaries.cpp:
35529         * platform/qt/WidgetQt.cpp:
35530         * platform/win/FontWin.cpp:
35531         * platform/win/TemporaryLinkStubs.cpp:
35532         * platform/wx/ClipboardWx.cpp:
35533         * platform/wx/FontWx.cpp:
35534         * platform/wx/ScrollViewWx.cpp:
35535         * platform/wx/SharedTimerWx.cpp:
35536         * platform/wx/TemporaryLinkStubs.cpp:
35537
35538 2007-05-27  Rob Buis  <buis@kde.org>
35539
35540         Reviewed by Oliver.
35541
35542         http://bugs.webkit.org/show_bug.cgi?id=13828
35543         x/y values on rootmost <svg> elements should be ignored
35544
35545         Make sure that root-most <svg> elements do not take into account x/y.
35546
35547         * ksvg2/svg/SVGSVGElement.cpp:
35548         (WebCore::SVGSVGElement::viewport):
35549         (WebCore::SVGSVGElement::getCTM):
35550         (WebCore::SVGSVGElement::getScreenCTM):
35551         * rendering/RenderSVGContainer.cpp:
35552         (WebCore::RenderSVGContainer::calcViewport):
35553
35554 2007-05-26  David Hyatt  <hyatt@apple.com>
35555
35556         Fix for radar bug 5219562, PNG isn't displayed on SVG test suite.
35557         Improve <object> error handling so that it recovers properly when
35558         <td> is used inside it.
35559
35560         Reviewed by olliej
35561
35562         Added fast/invalid/td-inside-object.html
35563
35564         * html/HTMLObjectElement.h:
35565         (WebCore::HTMLObjectElement::tagPriority):
35566         * html/HTMLParser.cpp:
35567         (WebCore::HTMLParser::handleError):
35568         * html/HTMLParserErrorCodes.cpp:
35569         (WebCore::htmlParserErrorMessageTemplate):
35570         * html/HTMLParserErrorCodes.h:
35571
35572 2007-05-26  David Hyatt  <hyatt@apple.com>
35573
35574         Don't compare the "isset" variables in background layers, since they
35575         lead us to turn off the Aqua look incorrectly, even when the background
35576         matches the default.
35577
35578         Reviewed by olliej
35579
35580         * rendering/RenderStyle.cpp:
35581         (WebCore::BackgroundLayer::operator==):
35582
35583 2007-05-26  David Hyatt  <hyatt@apple.com>
35584
35585         Improve the </p> -> <p></p> error message to not spew two errors.
35586         Fix a bug where errors reported inside document.write didn't get
35587         reported as such because of a mistake in the notation of SegmentedString.
35588
35589         Reviewed by aroben
35590
35591         * html/HTMLParser.cpp:
35592         (WebCore::HTMLParser::processCloseTag):
35593         * platform/SegmentedString.h:
35594         (WebCore::SegmentedSubstring::clear):
35595
35596 2007-05-26  David Hyatt  <hyatt@apple.com>
35597
35598         Fix for bug 13887, percentage height block not sized correctly inside
35599         positioned percentage height containing block.
35600
35601         Reviewed by mitz
35602
35603         fast/block/positioning/complex-percentage-height.html
35604
35605         * rendering/RenderBox.cpp:
35606         (WebCore::RenderBox::calcPercentageHeight):
35607
35608 2007-05-26  Mitz Pettel  <mitz@webkit.org>
35609
35610         Reviewed by Oliver Hunt.
35611
35612         - finish fixing http://bugs.webkit.org/show_bug.cgi?id=13871
35613           Box shadow should not apply to Aqua-themed controls
35614
35615         Covered by fast/forms/box-shadow-override.html
35616
35617         I forgot to include adjustSliderThumbStyle in the previous patch and the
35618         test didn't detect it because of a bug introduced in r21739.
35619
35620         * rendering/RenderThemeMac.h:
35621         * rendering/RenderThemeMac.mm:
35622         (WebCore::RenderThemeMac::adjustSliderThumbStyle):
35623
35624 2007-05-26  Mitz Pettel  <mitz@webkit.org>
35625
35626         Reviewed by Hyatt.
35627
35628         - fix http://bugs.webkit.org/show_bug.cgi?id=13876
35629           Box-Shadow disappears if shadow doesn't fit in the window size
35630
35631         Tests: fast/repaint/box-shadow-h.html
35632                fast/repaint/box-shadow-v.html
35633
35634         * rendering/RenderTable.cpp:
35635         (WebCore::RenderTable::layout):
35636
35637 2007-05-26  Alexey Proskuryakov  <ap@webkit.org>
35638
35639         Reviewed by Darin.
35640
35641         http://bugs.webkit.org/show_bug.cgi?id=13605
35642         REGRESSION: Browser crashes when switching Kotoeri input modes
35643
35644         The problem could no longer be reproduced with Kotoeri thanks to
35645         a fix in <http://trac.webkit.org/projects/webkit/changeset/21728>,
35646         but we still need to protect from invalid ranges passed from
35647         input methods.
35648
35649         Test: editing/input/replace-invalid-range.html
35650
35651         * page/mac/WebCoreFrameBridge.mm:
35652         (-[WebCoreFrameBridge selectNSRange:]): Added a null check.
35653
35654 2007-05-26  Darin Adler  <darin@apple.com>
35655
35656         * platform/network/mac/ResourceResponseMac.mm:
35657         (WebCore::ResourceResponse::doUpdateResourceResponse):
35658         Alexey pointed out that I was wrong about object lifetime, so
35659         rolling this change out.
35660
35661 2007-05-26  Darin Adler  <darin@apple.com>
35662
35663         Reviewed by Anders.
35664
35665         * platform/network/mac/ResourceResponseMac.mm:
35666         (WebCore::ResourceResponse::doUpdateResourceResponse):
35667         Fixed code where a temporary String is used after destroyed.
35668
35669 2007-05-26  Mitz Pettel  <mitz@webkit.org>
35670
35671         Reviewed by Darin.
35672
35673         - http://bugs.webkit.org/show_bug.cgi?id=13842
35674           Simplify Color::light() and Color::dark()
35675
35676         Not testable.
35677
35678         * platform/graphics/Color.cpp:
35679         (WebCore::Color::light):
35680         (WebCore::Color::dark):
35681
35682 2007-05-26  Mitz Pettel  <mitz@webkit.org>
35683
35684         Reviewed by Darin.
35685
35686         - fix http://bugs.webkit.org/show_bug.cgi?id=13870
35687           RenderFrameSet should only allow frame and frameset children
35688
35689         Covered by fast/frames/inline-object-inside-frameset.html
35690
35691         * rendering/RenderFrame.h:
35692         (WebCore::RenderFrame::isFrame): Added.
35693         * rendering/RenderFrameSet.cpp:
35694         (WebCore::RenderFrameSet::paint): Removed check for inline objects that is
35695         no longer needed.
35696         (WebCore::RenderFrameSet::isChildAllowed): Added. Allows the child only
35697         if it is a frame or another frameset.
35698         * rendering/RenderFrameSet.h:
35699         * rendering/RenderObject.h:
35700         (WebCore::RenderObject::isFrame): Added.
35701
35702 2007-05-26  Mitz Pettel  <mitz@webkit.org>
35703
35704         Reviewed by Darin.
35705
35706         - http://bugs.webkit.org/show_bug.cgi?id=13871
35707           Box shadow should not apply to Aqua-themed controls
35708
35709         Test: fast/forms/box-shadow-override.html
35710
35711         * rendering/RenderTheme.cpp:
35712         (WebCore::RenderTheme::adjustCheckboxStyle):
35713         (WebCore::RenderTheme::adjustRadioStyle):
35714         * rendering/RenderThemeMac.h:
35715         * rendering/RenderThemeMac.mm:
35716         (WebCore::RenderThemeMac::adjustButtonStyle):
35717         (WebCore::RenderThemeMac::adjustMenuListStyle):
35718         (WebCore::RenderThemeMac::adjustSliderTrackStyle):
35719         (WebCore::RenderThemeMac::adjustSearchFieldStyle):
35720         (WebCore::RenderThemeMac::adjustSearchFieldCancelButtonStyle):
35721         (WebCore::RenderThemeMac::adjustSearchFieldDecorationStyle):
35722         (WebCore::RenderThemeMac::adjustSearchFieldResultsDecorationStyle):
35723         (WebCore::RenderThemeMac::adjustSearchFieldResultsButtonStyle):
35724
35725 2007-05-26  Holger Freyther  <zecke@selfish.org>
35726
35727         Reviewed by Anders.
35728
35729         * platform/gdk/FrameGdk.cpp: Catch up to make it compile
35730         (WebCore::FrameGdk::FrameGdk): The Settings is now owned by the Page
35731
35732 2007-05-25  Sam Weinig  <sam@webkit.org>
35733
35734         Reviewed by Oliver of the Hunt.
35735
35736         Fixed <rdar://problem/5230247> at least 43 xhtml tests fail in 
35737         Leopard because they are being interpreted as html
35738
35739         Adds a work around for <rdar://problem/5230154> which explicitly
35740         sets local .xhtml files to have the MIME type application/xhtml+xml.
35741
35742         * platform/network/mac/ResourceResponseMac.mm:
35743         (WebCore::ResourceResponse::doUpdateResourceResponse):
35744
35745 2007-05-25  Geoffrey Garen  <ggaren@apple.com>
35746
35747         Reviewed by Darin Adler.
35748
35749         Fixed <rdar://problem/5055182> The page cache has no global cap.
35750         
35751         Beefed up the PageCache class to track which HistoryItems are 
35752         cached, and decide how to evict old HistoryItems as new ones are
35753         added.
35754
35755         * history/BackForwardList.cpp: Removed support for managing the page cache
35756         through the BackForwardList since this is deprecated in Mac's 
35757         WebBackForwardList, and doesn't exist on other platforms.
35758         
35759         Added a Page* back pointer so that Mac WebBackForwardList can still support 
35760         its deprecated API, using the new hotness. This isn't a big burden, since 
35761         Page is responsible for calling BackForwardList::close upon destruction, 
35762         anyway.
35763
35764         * history/HistoryItem.cpp: Replaced CachedPage* with boolean that tells
35765         you whether you're in the page cache. This prevents us from having more
35766         than one persistent repository for cached pages.
35767
35768         * history/PageCache.cpp: If you're playing along at home, this code is 
35769         the reason for the patch.
35770
35771         * loader/FrameLoader.cpp: If you're playing along at home, the minuses in
35772         this file are the reason for the patch.
35773         
35774         Replaced call to FrameLoaderClient::loadedFromCachedPage with its one-line
35775         implementation because WebCore calling itself through WebKit is uncivilized.
35776
35777         * page/Settings.cpp: Added support for removing a Page's HistoryItems from
35778         the page cache.
35779
35780 2007-05-25  Mitz Pettel  <mitz@webkit.org>
35781
35782         Reviewed by Darin.
35783
35784         - fix http://bugs.webkit.org/show_bug.cgi?id=13869
35785           Many leaks seen on buildbot after r21735
35786
35787         - fix another regression from r21739: ::-webkit-slider-thumb style not
35788           applied.
35789
35790         Test: fast/forms/slider-thumb-stylability.html
35791
35792         * rendering/RenderSlider.cpp:
35793         (WebCore::RenderSlider::setStyle):
35794         (WebCore::RenderSlider::createThumbStyle):
35795
35796 2007-05-25  Justin Garcia  <justin.garcia@apple.com>
35797
35798         Reviewed by Harrison.
35799
35800         <rdar://problem/5228141> 
35801         REGRESSION: Can't apply style to selection that ends after an image
35802
35803         * editing/ApplyStyleCommand.cpp:
35804         (WebCore::ApplyStyleCommand::applyInlineStyle):
35805         Use range compliant equivalents when creating the Range
35806         used to compute pastEndNode(), otherwise Range's constructor
35807         ASSERTs and pastEndNode() returns null. Added a testcase.
35808         If the incoming Range is collapsed at [br, 0], callers want
35809         the style to be applied to the br, so expand the Range to include
35810         it.  We got away without expanding before because pastEndNode
35811         of a Range from [br, 0] to [br, 0] is the node after the br.
35812         Using range compliant equivalents changed that. There's already
35813         test coverage for this change.
35814         Changed while loop termination for finding the end of a run 
35815         so that we don't process pastEnd.  end.node() may now be 
35816         non-atomic and we'd blow past it. There's already test
35817         coverage for this change.
35818
35819 2007-05-25  Beth Dakin  <bdakin@apple.com>
35820
35821         Rubber stamped by Hyatt
35822
35823         Adding an ASSERT for good measure.
35824
35825         * page/FrameView.cpp:
35826         (WebCore::FrameView::layout):
35827
35828 2007-05-25  Kevin McCullough  <kmccullough@apple.com>
35829  
35830         Reviewed by Geoff.
35831
35832         - <rdar://problem/5183523> REGRESSION: Excel: Worksheet tabs in spreadsheet saved as web page don't work 
35833         - Change load to check the URL as well as the referrer since it is possilbe to have a referrer which limits a load even thought the URL would allow it.  There is a bug about how we need to re-evaluate the whole load architecture: <rdar://problem/5227992> Rethink canLoad() to have a consistent and comprehensive architecture.
35834
35835         * loader/FrameLoader.cpp:
35836         (WebCore::FrameLoader::loadSubframe):
35837         (WebCore::FrameLoader::load):
35838         (WebCore::FrameLoader::canLoad):
35839         * loader/FrameLoader.h:
35840
35841 2007-05-25  Anders Carlsson  <andersca@apple.com>
35842
35843         Reviewed by Brady.
35844
35845         <rdar://problem/5209536>
35846         http://bugs.webkit.org/show_bug.cgi?id=13757
35847         REGRESSION: Leaks seen on buildbot after r21497.
35848         
35849         Fix multipart data loading so it works like Tiger Safari. When one part of a multipart connection has been loaded,
35850         move the subresource loader from the subresource loaders set and into a special multipart subresource loader set. This set 
35851         is not considered when asking a document loader if it's currently loading. 
35852                 
35853         * loader/DocumentLoader.cpp:
35854         (WebCore::DocumentLoader::stopLoading):
35855         Always stop the multipart subresource loaders here.
35856         
35857         (WebCore::DocumentLoader::subresourceLoaderFinishedLoadingOnePart):
35858         New function that moves the loader from m_subresourceLoaders to m_multipartSubresourceLoaders and updates the document loader's state.
35859         
35860         * loader/ProgressTracker.cpp:
35861         (WebCore::ProgressTracker::incrementProgress):
35862         If a progress item already exists, reuse it. This can happen in some rare circumstances when dealing with multipart data.
35863         
35864         * loader/SubresourceLoader.cpp:
35865         (WebCore::SubresourceLoader::didReceiveResponse):
35866         Call subresourceLoaderFinishedLoadingOnePart if the response is multipart.
35867
35868 2007-05-25  Patti Hoa  <patti@apple.com>
35869
35870         Reviewed by Tim Hatcher.
35871
35872         <rdar://problem/4918397> Exception raise inspecting note contents in the background
35873         
35874         * bridge/mac/WebCoreAXObject.mm:
35875         (-[WebCoreAXObject accessibilityDescription]):
35876         Only allow asking the attachmentView for description if attachmentView supports this description attribute
35877
35878 2007-05-25  Beth Dakin  <bdakin@apple.com>
35879
35880         Reviewed by Oliver and Hyatt.
35881
35882         Fix for <rdar://problem/5228363> REGRESSION: In Mail, attempting to 
35883         create a To Do results in a crash
35884
35885         This regressed with r21635. Now that -boundingBox updates layout if 
35886         it is needed, we infinitely recurse when Mail draws a custom 
35887         highlight. The fix is to put a guard around laying out the render 
35888         tree.
35889
35890         * page/FrameView.cpp:
35891         (WebCore::FrameViewPrivate::reset):
35892         (WebCore::FrameView::layout):
35893
35894 2007-05-25  Patti Hoa <patti@apple.com>
35895
35896         Reviewed by John Sullivan.
35897         
35898         <rdar://problem/5221986> selection in web areas doesn't seem to be working for text navigation
35899         
35900         * bridge/mac/WebCoreAXObject.mm:
35901         (-[WebCoreAXObject accessibilityIsAttributeSettable:]):
35902         Fixed up incorrect string comparison for AXSelectedTextMarkerRange ax attribute so 
35903         this attribute can actually announce its settability. 
35904
35905 2007-05-25  Darin Adler  <darin@apple.com>
35906
35907         Reviewed by Alice.
35908
35909         - fix <rdar://problem/5228048> REGRESSION: In a new Mail message, the caret isn't
35910           immediately inserted when tabbing into or clicking in the message body
35911
35912         This latent problem was uncovered by <http://trac.webkit.org/projects/webkit/changeset/21476>,
35913         which removed some code that did extra work whenever setCaretVisible made the caret visible.
35914
35915         * page/Frame.cpp: (WebCore::Frame::selectionLayoutChanged): Call invalidateCaretRect
35916         when turning the caret on. All other call sites that touched m_caretPaint were doing
35917         this, but this was not.
35918
35919 2007-05-25  Darin Adler  <darin@apple.com>
35920
35921         Reviewed by Harrison.
35922
35923         * DerivedSources.make: Tweaked spelling.
35924
35925 2007-05-25  Mitz Pettel  <mitz@webkit.org>
35926
35927         Reviewed by Darin.
35928
35929         - fix http://bugs.webkit.org/show_bug.cgi?id=13872
35930           REGRESSION: An empty search field can have a cancel button
35931
35932         Test: fast/forms/search-cancel-button-style-sharing.html
35933
35934         * rendering/RenderTextControl.cpp:
35935         (WebCore::RenderTextControl::createCancelButtonStyle): Prevented sharing of
35936         the cancel button style between search fields that share style, because
35937         each search field mutates the style to show and hide the cancel button.
35938
35939 2007-05-25  David Harrison  <harrison@apple.com>
35940
35941         Reviewed by Kevin and Geoff.
35942
35943         * DerivedSources.make:
35944         Add an inclusion guard for CSSGrammar.h and XPathGrammar.h, because older versions of bison do not
35945         
35946         * css/maketokenizer:
35947         Unconditionally define the flex basic types that are not part of newer versions of flex. Was
35948         only needed on Linux. Now needed on Mac OS 10.5, and is OK to do on 10.4.9.
35949
35950 2007-05-25  Geoffrey Garen  <ggaren@apple.com>
35951
35952         Reviewed by Darin Adler.
35953         
35954         Moved JavaScriptCore-related pending public API to public API.
35955
35956         Moved -JSObject
35957
35958         * bindings/objc/WebScriptObjectPendingPublic.h: from here
35959         * bindings/objc/WebScriptObject.h: to here
35960         * bindings/objc/WebScriptObject.mm: and out of its temporary category
35961
35962 2007-05-25  Mitz Pettel  <mitz@webkit.org>
35963
35964         Reviewed by Darin.
35965
35966         - fix http://bugs.webkit.org/show_bug.cgi?id=13767
35967           REGRESSION: Multipart image documents are garbled
35968
35969         Test: http/tests/multipart/invalid-image-data-standalone.html
35970
35971         * loader/DocumentLoader.cpp:
35972         (WebCore::DocumentLoader::isLoadingMultipartContent): Added.
35973         * loader/DocumentLoader.h:
35974         * loader/ImageDocument.cpp:
35975         (WebCore::ImageTokenizer::finish): If the image is multipart, make a copy
35976         of the current part instead of using the resource data, which is going to be
35977         overwritten by the next part.
35978         * loader/MainResourceLoader.h:
35979         (WebCore::MainResourceLoader::isLoadingMultipartContent): Added.
35980
35981 2007-05-25  Anders Carlsson  <andersca@apple.com>
35982
35983         Fix no-svg build.
35984         
35985         * bindings/js/kjs_html.cpp:
35986         (KJS::HTMLElementFunction::callAsFunction):
35987
35988 2007-05-25  Anders Carlsson  <andersca@apple.com>
35989
35990         Reviewed by Mitz.
35991
35992         <rdar://problem/5226788> After resizing the window larger than the image, hovering over the image still shows magnify glass
35993         
35994         One part of the bug was already fixed by my previous commit. This fixes the case where the window is sized so the image fit
35995         after it has been zoomed in.
35996         
35997         * loader/ImageDocument.cpp:
35998         (WebCore::ImageDocument::windowSizeChanged):
35999
36000 2007-05-25  John Sullivan  <sullivan@apple.com>
36001
36002         Reviewed by Anders and Tim
36003
36004         - WebCore change for: 
36005           <rdar://problem/5226000> REGRESSION: In Gmail and Mail, a hang occurs when attempting to grammar/spellcheck a word in a reply 
36006
36007         * editing/Editor.cpp:
36008         (WebCore::findFirstBadGrammarInRange):
36009         Use the more obvious way to check whether a range is empty. In this case the more obvious way
36010         would also have caused no problem to occur. Also added an assertion. Though this change is
36011         enough to fix the symptom of the bug, the real fix is in WebKit.
36012
36013 2007-05-25  Anders Carlsson  <andersca@apple.com>
36014
36015         Reviewed by Darin (Sorta).
36016
36017         * loader/ImageDocument.cpp:
36018         (WebCore::ImageDocument::restoreImageSize):
36019         Use removeProperty here.
36020
36021 2007-05-25  Geoffrey Garen  <ggaren@apple.com>
36022
36023         Reviewed by Darin Adler.
36024
36025         Some cleanup to Cache while Fixing <rdar://problem/5055182> The page cache 
36026         has no global cap.
36027         
36028         * loader/Cache.cpp: Removed destructor to help identify this class as a
36029         singleton.
36030
36031         * loader/Cache.h: Made constructor and destructor private to match the
36032         singleton model of PageCache.
36033         
36034         Put structs related to Cache inside its declaration to fix some namespace
36035         conflicts I had while writing my patch. (They don't exist anymore, but
36036         I figured this might help future development.)
36037
36038 2007-05-24  Geoffrey Garen  <ggaren@apple.com>
36039
36040         Reviewed by Darin Adler.
36041
36042         Fixed a bug with Settings where a number of different objects held bare 
36043         Settings* data members, even though the Page owns the Settings object and 
36044         deletes it upon destruction.
36045
36046         Added NULL checks since the Page can be deleted before the frame/document.
36047
36048         * page/Settings.cpp: Removed reliance on setNeedsReapplyStylesForSettingsChange.
36049
36050         * css/cssstyleselector.cpp: CSSStyleSelector was the worst offender. It 
36051         held a number of back pointers that were not guaranteed. I removed the 
36052         Settings*, Frame*, and FrameView* back pointers, but others could probably 
36053         go, too. I replaced them with a single Document* pointer, which is guaranteed
36054         because the Document owns the CSSStyleSelector.
36055
36056         * page/Page.cpp: Removed setNeedsReapplyStylesForSettingsChange -- the 
36057         Settings object is now a proper subcontroller of Page, so it doesn't need
36058         to use a global table to find its page anymore. Also, this function
36059         confusingly implied that the Frames in a page can have heterogeneous settings,
36060         which is not true.
36061
36062 2007-05-25  David Hyatt  <hyatt@apple.com>
36063
36064         Make sure -webkit-border-fit accounts for padding as well as border.
36065
36066         Reviewed by aroben
36067
36068         * rendering/RenderBlock.cpp:
36069         (WebCore::RenderBlock::borderFitAdjust):
36070
36071 2007-05-25  David Hyatt  <hyatt@apple.com>
36072
36073         Rework line numbering (again).  This time I finally think I have
36074         it right for all the document.write insanity that can occur.
36075
36076         Reviewed by aroben
36077
36078         * html/HTMLParser.cpp:
36079         (WebCore::HTMLParser::reportErrorToConsole):
36080         * html/HTMLParserErrorCodes.cpp:
36081         (WebCore::htmlParserDocumentWriteMessage):
36082         * html/HTMLParserErrorCodes.h:
36083         * html/HTMLTokenizer.cpp:
36084         (WebCore::HTMLTokenizer::write):
36085         * html/HTMLTokenizer.h:
36086         (WebCore::HTMLTokenizer::lineNumberPtr):
36087         (WebCore::HTMLTokenizer::processingContentWrittenByScript):
36088         * platform/SegementedSring.cpp
36089         (WebCore::SegmentedString::setExcludeLineNumbers):
36090         * platform/SegmentedString.h:
36091         (WebCore::SegmentedSubstring::SegmentedSubstring):
36092         (WebCore::SegmentedSubstring::clear):
36093         (WebCore::SegmentedSubstring::excludeLineNumbers):
36094         (WebCore::SegmentedSubstring::setExcludeLineNumbers):
36095         (WebCore::SegmentedString::excludeLineNumbers):
36096         (WebCore::SegmentedString::advance):
36097
36098 2007-05-24  Geoffrey Garen  <ggaren@apple.com>
36099
36100         Reviewed by Adam Roben.
36101
36102         Added a debug-only CachedPage counter. This helped me track down an SVG 
36103         timer bug in my recent page cache work.
36104                 
36105         * history/CachedPage.cpp:
36106
36107 2007-05-24  David Hyatt  <hyatt@apple.com>
36108
36109         Improve <form> error reporting to catch <form>s inside table parts.
36110         Tweak the wording of some of the error messages to be a bit better.
36111
36112         Reviewed by olliej
36113
36114         * html/HTMLParser.cpp:
36115         (WebCore::HTMLParser::insertNode):
36116         (WebCore::HTMLParser::processCloseTag):
36117         (WebCore::HTMLParser::popBlock):
36118         * html/HTMLParserErrorCodes.cpp:
36119         (WebCore::htmlParserErrorMessageTemplate):
36120         * html/HTMLParserErrorCodes.h:
36121
36122 2007-05-24  Rob Buis  <buis@kde.org>
36123
36124         Reviewed by Hyatt.
36125
36126         http://bugs.webkit.org/show_bug.cgi?id=4104
36127         first-letter not updating style with hover
36128         http://bugs.webkit.org/show_bug.cgi?id=13169
36129         css-formatted first letter won't hide dynamically
36130
36131         Update first letter when RenderBlock::setStyle is called. 
36132
36133         * css/cssstyleselector.cpp:
36134         (WebCore::CSSStyleSelector::checkOneSelector):
36135         * dom/Document.cpp:
36136         (WebCore::Document::Document):
36137         (WebCore::Document::createElement):
36138         * dom/Document.h:
36139         (WebCore::Document::usesFirstLetterRules):
36140         (WebCore::Document::setUsesFirstLetterRules):
36141         * rendering/RenderBlock.cpp:
36142         (WebCore::RenderBlock::setStyle):
36143         (WebCore::RenderBlock::updateFirstLetter):
36144
36145 2007-05-24  Mitz Pettel  <mitz@webkit.org>
36146
36147         Reviewed by Darin.
36148
36149         - fix http://bugs.webkit.org/show_bug.cgi?id=13800
36150           REGRESSION: Moving a slider moves another unrelated slider
36151
36152         Test: fast/forms/slider-thumb-shared-style.html
36153
36154         RenderSlider mutates the thumb's style, therefore it must not be shared
36155         with another slider's thumb, a situation that could occur if the sliders
36156         themselves shared style.
36157
36158         * rendering/RenderSlider.cpp:
36159         (WebCore::RenderSlider::createThumbStyle): Always use a private copy for
36160         the thumb style.
36161
36162 2007-05-24  Adele Peterson  <adele@apple.com>
36163
36164         Reviewed by Darin.
36165
36166         Fix for <rdar://problem/5211921> Form values sometimes get transposed (iGoogle)
36167
36168         Test: fast/history/redirect-load-no-form-restoration.html
36169
36170         * history/HistoryItem.cpp:
36171         (WebCore::HistoryItem::setURL): Clear the document state when the url changes for a HistoryItem.
36172         (WebCore::HistoryItem::isCurrentDocument): Added. Compares the HistoryItem url to the document's url.  This might not be the best way to do this, but it works for now.
36173         * history/HistoryItem.h:
36174         * loader/FrameLoader.cpp: (WebCore::FrameLoader::saveDocumentState): Only set the document (and form) state if the document is current for the history item.
36175
36176 2007-05-24  Mitz Pettel  <mitz@webkit.org>
36177
36178         Reviewed by Adele.
36179
36180         - fix http://bugs.webkit.org/show_bug.cgi?id=13857
36181           REGRESSION: onChange function applied to select element executes twice when focus is set
36182
36183         Test: fast/forms/select-double-onchange.html
36184
36185         * html/HTMLSelectElement.cpp:
36186         (WebCore::HTMLSelectElement::menuListOnChange): Changed to update m_lastOnChangeIndex
36187         before dispatching the change event to avoid reentrancy.
36188
36189 2007-05-24  Darin Adler  <darin@apple.com>
36190
36191         Reviewed by Hyatt.
36192
36193         - fix <rdar://problem/5226451> REGRESSION (21618): Mail block quotes
36194           are missing the lines on the side
36195
36196         This patch fixes three problems:
36197
36198         1) makes the "skip canLoad check" boolean also skip the check
36199            that prevents any loads while the document is in provisional
36200            state; this is the proximate cause of the bug
36201
36202         * loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::create):
36203         Don't check the frame's state if skipCanLoadCheck is true.
36204
36205         2) moves the "skip canLoad check" boolean to the Request object;
36206            the old implementation would cause that flag to affect the
36207            new request we served, which might not be the resource with
36208            that flag set
36209
36210         3) fixes error-handling code path that would leak requests
36211
36212         * html/HTMLImageLoader.cpp: (WebCore::HTMLImageLoader::updateFromElement):
36213         Pass false to the CachedImage constructor to indicate we are not making
36214         this object for the cache.
36215
36216         * loader/Cache.cpp:
36217         (WebCore::createResource): Pass true to the CachedImage constructor to
36218         indicate we are making this object for the cache.
36219         (WebCore::Cache::requestResource): Add new code that assumes the object
36220         will already have the inCache bit set, and that will delete the object
36221         and return 0 if the cache is disabled and the load failed.
36222
36223         * loader/CachedImage.h:
36224         * loader/CachedImage.cpp: (WebCore::CachedImage::CachedImage):
36225         Added a forCache boolean parameter. Always false for the constructor
36226         that's only used outside the cache code, and passed in as a boolean
36227         for the constructor that's used both in cache and outside cache.
36228
36229         * loader/CachedResource.h:
36230         * loader/CachedResource.cpp:
36231         (WebCore::CachedResource::CachedResource): Added a forCache boolean
36232         parameter that determines the initial state of the m_inCache flag.
36233         This is needed to prevent a resource from being destroyed if an
36234         error occurs during the initial load.
36235
36236         * loader/DocLoader.cpp:
36237         (WebCore::DocLoader::requestCSSStyleSheet): Added FIXME.
36238         (WebCore::DocLoader::setLoadInProgress): Added null check.
36239
36240         * loader/Request.h:
36241         * loader/Request.cpp: (WebCore::Request::Request):
36242         Added a shouldSkipCanLoadCheck boolean here, since we need to track
36243         this for each request.
36244
36245         * loader/loader.h:
36246         * loader/loader.cpp:
36247         (WebCore::Loader::load): Pass the skipCanLoadCheck boolean to the
36248         Request constructor rather than to the servePendingRequests function.
36249         (WebCore::Loader::servePendingRequests): Add a loop so we can handle
36250         cases where the request fails immediately without leaking the request
36251         and thinking that we're loading forever.
36252
36253 2007-05-24  David Hyatt  <hyatt@apple.com>
36254
36255         Add error reporting for residual style.
36256
36257         Reviewed by aroben
36258
36259         * html/HTMLParser.cpp:
36260         (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks):
36261         (WebCore::HTMLParser::reopenResidualStyleTags):
36262         * html/HTMLParserErrorCodes.cpp:
36263         (WebCore::htmlParserErrorMessageTemplate):
36264         * html/HTMLParserErrorCodes.h:
36265
36266 2007-05-24  David Hyatt  <hyatt@apple.com>
36267
36268         Report <script/> as a warning instead of an error for now, since we
36269         actually do close it.  (Sigh.)
36270
36271         Reviewed by beth
36272
36273         * html/HTMLParser.cpp:
36274         (WebCore::HTMLParser::parseToken):
36275         (WebCore::HTMLParser::reportErrorToConsole):
36276         * html/HTMLParserErrorCodes.cpp:
36277         (WebCore::htmlParserErrorMessageTemplate):
36278         (WebCore::isWarning):
36279         * html/HTMLParserErrorCodes.h:
36280
36281 2007-05-24  David Hyatt  <hyatt@apple.com>
36282
36283         Add error reporting for the </p> -> <p></p> quirk.
36284
36285         Add error reporting when a stray close tag is encountered with no
36286         corresponding open tag.
36287
36288         Reviewed by adele
36289
36290         * html/HTMLParser.cpp:
36291         (WebCore::HTMLParser::HTMLParser):
36292         (WebCore::HTMLParser::processCloseTag):
36293         (WebCore::HTMLParser::popBlock):
36294         * html/HTMLParser.h:
36295         (WebCore::HTMLParser::popBlock):
36296         * html/HTMLParserErrorCodes.cpp:
36297         (WebCore::htmlParserErrorMessageTemplate):
36298         * html/HTMLParserErrorCodes.h:
36299
36300 2007-05-24  Kevin McCullough  <kmccullough@apple.com>
36301
36302         Reviewed by.
36303
36304         - Rolling back change to fix the build until I have a good fix for data: urls.
36305
36306         * ChangeLog:
36307         * loader/FrameLoader.cpp:
36308         (WebCore::FrameLoader::load):
36309         (WebCore::FrameLoader::open):
36310         * platform/String.cpp:
36311
36312 2007-05-24  David Hyatt  <hyatt@apple.com>
36313
36314         Add two more error messages to the HTMLParser.
36315
36316         Report when the </br> -> <br> quirk is triggered.
36317
36318         Also report whenever the broken XML self-closing tag syntax is used on
36319         tags that can actually have an end tag (either optional or required).
36320
36321         Reviewed by aroben
36322
36323         * html/HTMLParser.cpp:
36324         (WebCore::HTMLParser::parseToken):
36325         * html/HTMLParserErrorCodes.cpp:
36326         (WebCore::htmlParserErrorMessageTemplate):
36327         * html/HTMLParserErrorCodes.h:
36328         (WebCore::):
36329         * html/HTMLTokenizer.cpp:
36330         (WebCore::HTMLTokenizer::parseTag):
36331         * html/HTMLTokenizer.h:
36332         (WebCore::Token::reset):
36333
36334 2007-05-24  Sam Weinig  <sam@webkit.org>
36335
36336         Reviewed by Anders.
36337
36338         Rename JSHTMLFrameSetCustom.cpp to JSHTMLFrameSetElementCustom.cpp
36339         for consistency.
36340
36341         * WebCore.xcodeproj/project.pbxproj:
36342         * bindings/js/JSHTMLFrameSetCustom.cpp: Removed.
36343         * bindings/js/JSHTMLFrameSetElementCustom.cpp: Added.
36344
36345 2007-05-24  David Hyatt  <hyatt@apple.com>
36346
36347         Fix for <rdar://problem/5208440> (13753)
36348
36349         REGRESSION: Raw text needs to be pulled outside of tables
36350
36351         Reviewed by aroben
36352
36353         * html/HTMLParser.cpp:
36354         (WebCore::HTMLParser::handleError):
36355         * html/HTMLTableColElement.cpp:
36356         (WebCore::HTMLTableColElement::checkDTD):
36357         * html/HTMLTableElement.cpp:
36358         (WebCore::HTMLTableElement::checkDTD):
36359         * html/HTMLTableRowElement.cpp:
36360         (WebCore::HTMLTableRowElement::checkDTD):
36361         * html/HTMLTableSectionElement.cpp:
36362         (WebCore::HTMLTableSectionElement::checkDTD):
36363
36364 2007-05-24  Mitz Pettel  <mitz@webkit.org>
36365
36366         Reviewed by Darin.
36367
36368         - fix http://bugs.webkit.org/show_bug.cgi?id=13837
36369           Separator in new <select> widget disappears when block element with border is in document.
36370
36371         Test: fast/forms/menulist-separator-painting.html
36372
36373         * platform/graphics/cg/GraphicsContextCG.cpp:
36374         (WebCore::GraphicsContext::drawConvexPolygon): Changed this function to
36375         actually do both filling and stroking when needed, even though all existing
36376         callers set the stroke to none.
36377         * rendering/RenderThemeMac.mm:
36378         (WebCore::RenderThemeMac::paintMenuListButton): Added calls to set the stroke
36379         style and thickness when painting the arrows and the separator.
36380
36381 2007-05-24  Timothy Hatcher  <timothy@apple.com>
36382
36383         Reviewed by Sam Weinig.
36384
36385         Remove the OBJC_NEW_PROPERTIES #ifdef and only export the new @property syntax.
36386
36387         * bindings/objc/DOMObject.h:
36388         * bindings/scripts/CodeGeneratorObjC.pm:
36389
36390 2007-05-24  Sam Weinig  <sam@webkit.org>
36391
36392         Reviewed by Anders.
36393
36394         Uncomment HTMLFramesSetElement constructor now that it exists.
36395
36396         * page/DOMWindow.idl:
36397
36398 2007-05-24  Anders Carlsson  <andersca@apple.com>
36399
36400         Try fixing the buildbot build.
36401         
36402         * loader/ImageDocument.cpp:
36403         (WebCore::ImageDocument::resizeImageToFit):
36404         (WebCore::ImageDocument::imageClicked):
36405
36406 2007-05-24  Sam Weinig  <sam@webkit.org>
36407
36408         Reviewed by Darin.
36409
36410         Patch for http://bugs.webkit.org/show_bug.cgi?id=13853
36411         Autogenerate the JS bindings for the HTMLFrameSetElement
36412
36413         * DerivedSources.make:
36414         * WebCore.pro:
36415         * WebCore.xcodeproj/project.pbxproj:
36416         * bindings/js/JSHTMLElementWrapperFactory.cpp:
36417         * bindings/js/JSHTMLFrameSetCustom.cpp: Added.
36418         (WebCore::JSHTMLFrameSetElement::canGetItemsForName):
36419         (WebCore::JSHTMLFrameSetElement::nameGetter):
36420         * bindings/js/kjs_html.cpp:
36421         (KJS::):
36422         (KJS::JSHTMLElement::classInfo):
36423         (KJS::JSHTMLElement::accessors):
36424         (KJS::JSHTMLElement::getOwnPropertySlot):
36425         * bindings/js/kjs_html.h:
36426         (KJS::JSHTMLElement::):
36427         * html/HTMLFrameSetElement.idl:
36428
36429 2007-05-24  Zack Rusin  <zrusin@trolltech.com>
36430
36431         Reviewed by andersca
36432
36433         Fixing check for incorrent font size - it should
36434         check fixed not normal.
36435
36436         * page/Settings.cpp:
36437         (WebCore::Settings::setDefaultFixedFontSize):
36438
36439 2007-05-24  Mitz Pettel  <mitz@webkit.org>
36440
36441         Speculative buildbot build fix.
36442
36443         * css/cssstyleselector.cpp:
36444         (WebCore::CSSStyleSelector::applyProperty):
36445
36446 2007-05-24  Adam Roben  <aroben@apple.com>
36447
36448         Made Chrome::addMessageToConsole more flexible
36449
36450         addMessageToConsole now takes two additional parameters to specify the
36451         message source (HTML, JS, CSS, XML) and level (error, warning, log). To
36452         maintain our old behavior, all current messages were given
36453         JSMessageSource and ErrorMessageLevel parameters. Messages matching
36454         these characteristics are passed up to the ChromeClient.
36455
36456         Reviewed by Hyatt.
36457
36458         * bindings/js/JSCustomXPathNSResolver.cpp:
36459         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
36460         * bindings/js/kjs_events.cpp:
36461         (KJS::JSAbstractEventListener::handleEvent):
36462         * bindings/js/kjs_proxy.cpp:
36463         (WebCore::KJSProxy::evaluate):
36464         * bindings/js/kjs_window.cpp:
36465         (KJS::Window::isSafeScript):
36466         (KJS::ScheduledAction::execute):
36467         * html/HTMLParser.cpp:
36468         (WebCore::HTMLParser::reportErrorToConsole):
36469         * ksvg2/misc/SVGDocumentExtensions.cpp:
36470         (WebCore::SVGDocumentExtensions::reportWarning):
36471         (WebCore::SVGDocumentExtensions::reportError):
36472         * loader/FrameLoader.cpp:
36473         (WebCore::FrameLoader::reportLocalLoadFailed):
36474         * page/Chrome.cpp:
36475         (WebCore::Chrome::addMessageToConsole):
36476         * page/Chrome.h:
36477         (WebCore::):
36478         * xml/xmlhttprequest.cpp:
36479         (WebCore::XMLHttpRequest::setRequestHeader):
36480
36481 2007-05-24  David Hyatt  <hyatt@apple.com>
36482
36483         Rework how HTML handles line numbering so that it is not fooled by
36484         \r without a following \n and so that document.write doesn't lead
36485         to line numbering confusion.
36486
36487         Reviewed by aroben
36488
36489         * html/HTMLParser.cpp:
36490         (WebCore::HTMLParser::reportErrorToConsole):
36491         * html/HTMLTokenizer.cpp:
36492         (WebCore::HTMLTokenizer::processListing):
36493         (WebCore::HTMLTokenizer::parseSpecial):
36494         (WebCore::HTMLTokenizer::parseComment):
36495         (WebCore::HTMLTokenizer::parseServer):
36496         (WebCore::HTMLTokenizer::parseProcessingInstruction):
36497         (WebCore::HTMLTokenizer::parseText):
36498         (WebCore::HTMLTokenizer::parseEntity):
36499         (WebCore::HTMLTokenizer::parseTag):
36500         (WebCore::HTMLTokenizer::write):
36501         (WebCore::HTMLTokenizer::processToken):
36502         (WebCore::HTMLTokenizer::setSrc):
36503         * html/HTMLTokenizer.h:
36504         (WebCore::HTMLTokenizer::lineNumberPtr):
36505         * html/HTMLViewSourceDocument.cpp:
36506         (WebCore::HTMLViewSourceDocument::addLine):
36507         * loader/TextDocument.cpp:
36508         (WebCore::TextTokenizer::write):
36509         * platform/SegmentedString.cpp:
36510         (WebCore::SegmentedString::SegmentedString):
36511         (WebCore::SegmentedString::operator=):
36512         (WebCore::SegmentedString::clear):
36513         * platform/SegmentedString.h:
36514         (WebCore::SegmentedString::SegmentedString):
36515         (WebCore::SegmentedString::advance):
36516         (WebCore::SegmentedString::escaped):
36517
36518 2007-05-23  David Hyatt  <hyatt@apple.com>
36519
36520         Make the delete/InsertRows/Cells methods as well as the rowIndex method
36521         able to work properly even when whitespace or comment nodes are present.
36522
36523         Reviewed by aroben
36524
36525         fast/table/rowindex-comment-nodes.html
36526
36527         * html/HTMLTableRowElement.cpp:
36528         (WebCore::HTMLTableRowElement::rowIndex):
36529         (WebCore::HTMLTableRowElement::insertCell):
36530         (WebCore::HTMLTableRowElement::deleteCell):
36531         * html/HTMLTableSectionElement.cpp:
36532         (WebCore::HTMLTableSectionElement::insertRow):
36533         (WebCore::HTMLTableSectionElement::deleteRow):
36534
36535 2007-05-23  David Hyatt  <hyatt@apple.com>
36536
36537         <optgroup> should allow <script> and text nodes inside it, just like
36538         <select> does.
36539
36540         Reviewed by aroben
36541
36542         fast/forms/stuff-on-my-optgroup.html
36543
36544         * html/HTMLOptGroupElement.cpp:
36545         (WebCore::HTMLOptGroupElement::checkDTD):
36546         * html/HTMLSelectElement.cpp:
36547         (WebCore::HTMLSelectElement::checkDTD):
36548
36549 2007-05-23  David Hyatt  <hyatt@apple.com>
36550
36551         Framesets should allow whitespace text nodes as children.
36552
36553         Reviewed by aroben
36554
36555         * html/HTMLFrameSetElement.cpp:
36556         (WebCore::HTMLFrameSetElement::checkDTD):
36557
36558 2007-05-24  Mark Rowe  <mrowe@apple.com>
36559
36560         Fix the Qt build after r21685.
36561
36562         * platform/qt/CursorQt.cpp:
36563         (WebCore::notAllowedCursor):
36564         (WebCore::zoomInCursor):
36565         (WebCore::zoomOutCursor):
36566
36567 2007-05-23  Alp Toker  <alp.toker@collabora.co.uk>
36568
36569         Reviewed by Adam.
36570
36571         Fix the gdk build following changes in r21685.
36572
36573         * platform/gdk/CursorGdk.cpp:
36574         (WebCore::zoomInCursor):
36575         (WebCore::zoomOutCursor):
36576
36577 2007-05-23  David Hyatt  <hyatt@apple.com>
36578
36579         Fix for <rdar://problem/5222611> REGRESSION: Paint ordering problems at
36580         http://buymeasoda.com/dev/issues/image_onload/image_onload.html
36581
36582         Clamp z-index so that values that exceed maxint (or that are below minint)
36583         are clamped to those values.
36584
36585         Reviewed by darin
36586
36587         * css/cssstyleselector.cpp:
36588         (WebCore::CSSStyleSelector::applyProperty):
36589
36590 2007-05-23  Mitz Pettel  <mitz@webkit.org>
36591
36592         Reviewed by David Hyatt.
36593
36594         - fix http://bugs.webkit.org/show_bug.cgi?id=13563
36595           REGRESSION: Crash loading message in Yahoo! Mail
36596
36597         Tests: fast/css/stale-style-selector-crash-1.html
36598                fast/css/stale-style-selector-crash-2.html
36599
36600         * dom/Document.cpp:
36601         (WebCore::Document::Document): Initialize the m_didCalculateStyleSelector
36602         flag to 'false'.
36603         (WebCore::Document::updateStyleSelector): Do not bail out if we have ever
36604         calculated a non-trivial style selector, even if at the moment we are
36605         pending style sheets. We could have calculated a non-trivial selector
36606         already either because at some point there were no pending style sheets
36607         (so the currently pending ones were added dynamically) or because we were
36608         forced to do a layout ignoring pending style sheets. Either way, once
36609         there is a style selector, we need to keep it up to date, otherwise we can
36610         crash under recalcStyle() during updateRendering() or simply not recalculate
36611         style correctly for dynamic changes.
36612         (WebCore::Document::recalcStyleSelector): Set m_didCalculateStyleSelector
36613         to 'true' when creating a new style selector.
36614         * dom/Document.h:
36615
36616 2007-05-23  Anders Carlsson  <andersca@apple.com>
36617
36618         Reviewed by Adam.
36619
36620         <rdar://problem/5224749> Show a zoom/unzoom cursor for resizable image documents
36621         
36622         * WebCore.xcodeproj/project.pbxproj:
36623         Install the zoom cursors.
36624         
36625         * loader/ImageDocument.cpp:
36626         (WebCore::ImageDocument::resizeImageToFit):
36627         Set the cursor to the zoom in cursor.
36628         
36629         (WebCore::ImageDocument::restoreImageSize):
36630         If the image fits, reset the cursor. Otherwise, set it to the zoom in cursor.
36631
36632 2007-05-23  Darin Adler  <darin@apple.com>
36633
36634         Reviewed by Hyatt.
36635
36636         - fix problems where unrendered nodes were affecting on plain text serialization
36637
36638         * editing/TextIterator.cpp:
36639         (WebCore::TextIterator::advance): Don't call handleXXX functions or exitNode for
36640         nodes without renderers.
36641         (WebCore::shouldEmitNewlineAfterNode): Only consider rendered nodes when deciding
36642         if this is the last node in the document.
36643
36644 2007-05-23  Anders Carlsson  <andersca@apple.com>
36645
36646         Reviewed by Geoff.
36647
36648         <rdar://problem/3663808> Resize large images to fit in the browser window
36649         
36650         * WebCore.exp:
36651         Add new settings method.
36652         
36653         * loader/ImageDocument.cpp:
36654         (WebCore::ImageEventListener::ImageEventListener):
36655         New class that handles resize events and click events and forwards them to the image document.
36656         
36657         (WebCore::ImageTokenizer::ImageTokenizer):
36658         (WebCore::ImageTokenizer::writeRawData):
36659         (WebCore::ImageTokenizer::finish):
36660         (WebCore::ImageDocument::ImageDocument):
36661         (WebCore::ImageDocument::createDocumentStructure):
36662         (WebCore::ImageDocument::cachedImage):
36663         Let the ImageDocument class keep track of its document structure.
36664         
36665         (WebCore::ImageDocument::scale):
36666         Returns the scale that should be used when resizing the image.
36667         
36668         (WebCore::ImageDocument::resizeImage):
36669         Update the image size.
36670         
36671         (WebCore::ImageDocument::imageClicked):
36672         Toggle between resized and not resized. When restoring the size, scroll the image so that the area under
36673         the mouse stays the same.
36674         
36675         (WebCore::ImageDocument::imageChanged):
36676         When the image size is known, resize the image if needed.
36677         
36678         (WebCore::ImageDocument::restoreImageSize):
36679         Restore the image size.
36680         
36681         (WebCore::ImageDocument::imageNeedsResizing):
36682         Return whether the image is too big for its window or not.
36683         
36684         (WebCore::ImageDocument::windowSizeChanged):
36685         Called when the window's size changes. Determine if the window fits or not and resize it if it doesn't fit.
36686         
36687         (WebCore::ImageEventListener::handleEvent):
36688         Forward events to the image document.
36689         
36690         * page/Settings.cpp:
36691         (WebCore::Settings::Settings):
36692         (WebCore::Settings::setEnableAutomaticImageResizing):
36693         * page/Settings.h:
36694         (WebCore::Settings::enableAutomaticImageResizing):
36695         Add new setting.
36696         
36697 2007-05-23  Anders Carlsson  <andersca@apple.com>
36698
36699         Reviewed by Darin.
36700
36701         Add -webkit-zoom-in and -webkit-zoom-out cursors.
36702         
36703         * Resources/zoomInCursor.png: Added.
36704         * Resources/zoomOutCursor.png: Added.
36705         * css/CSSComputedStyleDeclaration.cpp:
36706         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
36707         * css/CSSValueKeywords.in:
36708         * page/EventHandler.cpp:
36709         (WebCore::selectCursor):
36710         * platform/Cursor.h:
36711         * platform/mac/CursorMac.mm:
36712         (WebCore::zoomInCursor):
36713         (WebCore::zoomOutCursor):
36714         * rendering/RenderStyle.h:
36715         (WebCore::):
36716
36717 2007-05-23  Sam Weinig  <sam@webkit.org>
36718
36719         Reviewed by Darin.
36720
36721         Part one of patch for http://bugs.webkit.org/show_bug.cgi?id=13830
36722         Auto-generate JS DOM bindings for HTMLDocument and most of the rest
36723         of HTMLElement
36724
36725         - Just the HTMLElement part.
36726
36727         * bindings/js/kjs_html.cpp:
36728         (KJS::JSHTMLElement::getValueProperty):
36729         (KJS::JSHTMLElement::putValueProperty):
36730         * bindings/js/kjs_html.h:
36731         (KJS::JSHTMLElement::):
36732         * html/HTMLElement.idl:
36733
36734 2007-05-22  Kevin McCullough  <kmccullough@apple.com>
36735
36736         Reviewed by Darin.
36737
36738         - rdar://problem/5183523
36739         - We now check the document's URL to see if it can load a resource in the case of a URL click, instead of checking the referrer, which is blank for local files.
36740
36741         * loader/FrameLoader.cpp:
36742         (WebCore::FrameLoader::load):
36743         (WebCore::FrameLoader::open):
36744         * platform/PlatformString.h:
36745         (WebCore::debugPrintString):
36746
36747 2007-05-23  Sam Weinig  <sam@webkit.org>
36748
36749         Reviewed by Darin.
36750
36751         Part two of patch for http://bugs.webkit.org/show_bug.cgi?id=13830
36752         Auto-generate JS DOM bindings for HTMLDocument and most of the rest
36753         of HTMLElement
36754
36755         - Just the HTMLDocument part.
36756
36757         * WebCore.pro:
36758         * WebCore.xcodeproj/project.pbxproj:
36759         * bindings/js/JSHTMLDocumentCustom.cpp: Added.
36760         (WebCore::JSHTMLDocument::canGetItemsForName):
36761         (WebCore::JSHTMLDocument::nameGetter):
36762         (WebCore::JSHTMLDocument::all):
36763         (WebCore::JSHTMLDocument::setAll):
36764         (WebCore::JSHTMLDocument::location):
36765         (WebCore::JSHTMLDocument::setLocation):
36766         (WebCore::JSHTMLDocument::open):
36767         (WebCore::writeHelper):
36768         (WebCore::JSHTMLDocument::write):
36769         (WebCore::JSHTMLDocument::writeln):
36770         (WebCore::JSHTMLDocument::clear):
36771         * bindings/js/kjs_dom.cpp:
36772         (KJS::toJS):
36773         * bindings/js/kjs_dom.h:
36774         * bindings/js/kjs_html.cpp:
36775         * bindings/js/kjs_html.h:
36776         * bindings/objc/DOMPrivate.h:
36777         * bindings/scripts/CodeGeneratorJS.pm: Add [Deletable] property
36778         for Document.all and fix HasOverridingNameGetter to allow correct
36779         prototype chain
36780         * dom/Document.cpp:
36781         (WebCore::Document::plugins): adds alias to embeds() for bindings
36782         * dom/Document.h:
36783         * html/HTMLDocument.cpp:
36784         (WebCore::HTMLDocument::width):
36785         (WebCore::HTMLDocument::height):
36786         (WebCore::HTMLDocument::dir):
36787         (WebCore::HTMLDocument::setDir):
36788         (WebCore::HTMLDocument::designMode):
36789         (WebCore::HTMLDocument::setDesignMode):
36790         (WebCore::HTMLDocument::bgColor):
36791         (WebCore::HTMLDocument::setBgColor):
36792         (WebCore::HTMLDocument::fgColor):
36793         (WebCore::HTMLDocument::setFgColor):
36794         (WebCore::HTMLDocument::alinkColor):
36795         (WebCore::HTMLDocument::setAlinkColor):
36796         (WebCore::HTMLDocument::linkColor):
36797         (WebCore::HTMLDocument::setLinkColor):
36798         (WebCore::HTMLDocument::vlinkColor):
36799         (WebCore::HTMLDocument::setVlinkColor):
36800         (WebCore::HTMLDocument::captureEvents):
36801         (WebCore::HTMLDocument::releaseEvents):
36802         * html/HTMLDocument.h:
36803         * html/HTMLDocument.idl:
36804
36805 2007-05-23  David Hyatt  <hyatt@apple.com>
36806
36807         Fix for <rdar://problem/5221838> REGRESSION (r21581): no content in idisk
36808         window at mac.com.
36809
36810         Back out the change to make self-closed <script/> into a Dashboard quirk
36811         only.
36812
36813         Reviewed by aroben
36814
36815         * html/HTMLTokenizer.cpp:
36816         (WebCore::HTMLTokenizer::parseTag):
36817
36818 2007-05-23  Patti  <patti@apple.com>
36819
36820         Reviewed by David Harrison.
36821
36822         <rdar://problem/5078453> AXNext/PrevLineEndTextMarkerForTextMarker returns kAXErrorNoValue for attachment range
36823         
36824         Floating objects, such as aligned images, are not included as part of any line.  So when the given 
36825         text marker is on the floating object, the returned line edge cannot be found and asserts are fired.
36826         In addition, this paints an inconsistent text layout (in the accessibility sense) of where the floating 
36827         object resides.  Character/word methods report floating object at the beginning of the text line(s).  Yet
36828         line methods never present floating objects anywhere.  
36829         To fix this, the ax line methods will now do more checking to ensure floating object nodes are included
36830         when determining the line range/position. That way, assistive apps won't get stuck using the line methods 
36831         to read line-by-line
36832
36833         * bridge/mac/WebCoreAXObject.mm:
36834         (updateAXLineStartForVisiblePosition):
36835         Added a helper method to adjust line start position to account for floating objects
36836         (-[WebCoreAXObject doAXLeftLineTextMarkerRangeForTextMarker:]):
36837         (-[WebCoreAXObject doAXRightLineTextMarkerRangeForTextMarker:]):
36838         (-[WebCoreAXObject doAXNextLineEndTextMarkerForTextMarker:]):
36839         (-[WebCoreAXObject doAXPreviousLineStartTextMarkerForTextMarker:]):
36840         Fixed up line routines to include floating object nodes in line position calculation.
36841         startOfLine/endOLine may return null for position next to a floating position.  So now there's extra checks to prevent
36842         returning null line position/ranges back to AX.
36843
36844
36845 2007-05-23  Simon Hausmann  <hausmann@kde.org>
36846
36847         Reviewed by Zack, discussed also with Lars.
36848
36849         Make it possible to have per-QWebPage network interface
36850         implementations.
36851
36852         * platform/network/qt/ResourceHandleQt.cpp:
36853         (WebCore::ResourceHandle::start): Pass the page's network interface to
36854         the network manager.
36855
36856 2007-05-23  Rob Buis  <buis@kde.org>
36857
36858         Reviewed by Dave Hyatt.
36859
36860         http://bugs.webkit.org/show_bug.cgi?id=13174
36861         line-height in font shorthand does not override a previously stated line-height property
36862
36863         Make sure line-height is calculated against definite font-size and
36864         uses the last set line-height, ie. directly or through font shorthand.
36865
36866         * css/cssstyleselector.cpp:
36867         (WebCore::CSSStyleSelector::styleForElement):
36868         (WebCore::CSSStyleSelector::pseudoStyleForElement):
36869         (WebCore::CSSStyleSelector::applyDeclarations):
36870         (WebCore::CSSStyleSelector::applyProperty):
36871         * css/cssstyleselector.h:
36872
36873 2007-05-23  Lars Knoll <lars@trolltech.com>
36874
36875         Reviewed by Zack and Valgrind
36876
36877         Initialize variable.
36878
36879         * platform/qt/PlatformMouseEventQt.cpp:
36880         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
36881
36882 2007-05-23  Rob Buis  <buis@kde.org>
36883
36884         Reviewed by Darin.
36885
36886         http://bugs.webkit.org/show_bug.cgi?id=13784
36887         REGRESSION (r13744-13750): Crash with empty gradient when drawing to canvas
36888
36889         Fix crash by testing for zero stops, and returning transparent black
36890         in this case.
36891
36892         * html/CanvasGradient.cpp:
36893         (WebCore::CanvasGradient::getColor):
36894
36895 2007-05-23  Rob Buis  <buis@kde.org>
36896
36897         Reviewed by Darin.
36898
36899         http://bugs.webkit.org/show_bug.cgi?id=13801
36900         Crash when loading nonexisting symbol
36901
36902         Check for referenced element and when not found just return.
36903
36904         * ksvg2/svg/SVGUseElement.cpp:
36905         (WebCore::SVGUseElement::buildPendingResource):
36906
36907 2007-05-22  Sam Weinig  <sam@webkit.org>
36908
36909         Rubber stamped by Adam.
36910
36911         Fix license.
36912
36913         * bindings/js/JSHTMLAnchorElementCustom.cpp:
36914
36915 2007-05-22  Sam Weinig  <sam@webkit.org>
36916
36917         Reviewed by Adam.
36918
36919         Patch for http://bugs.webkit.org/show_bug.cgi?id=13833
36920         Add ObjC DOM binding for HTMLMarqeeElement
36921
36922         - Also adds missing DOMHTMLFramePrivate.
36923
36924         * DerivedSources.make:
36925         * WebCore.xcodeproj/project.pbxproj:
36926         * bindings/objc/DOM.mm:
36927         (WebCore::createElementClassMap):
36928         * bindings/objc/DOMHTML.h:
36929         * bindings/objc/DOMInternal.h:
36930         * bindings/objc/DOMPrivate.h:
36931         * bindings/objc/PublicDOMInterfaces.h:
36932
36933 2007-05-22  Justin Garcia  <justin.garcia@apple.com>
36934
36935         Reviewed by darin, who found the fix independently.
36936
36937         http://bugs.webkit.org/show_bug.cgi?id=13804
36938         REGRESSION(r21611): Several new layout test pixel failures (misspelling markers)
36939         
36940         r21611 exposed a bug in the way removeMarkers computes
36941         the end of the range to remove markers from.  It also
36942         introduced a bug: removeMarkers expects a startOffset
36943         and a length, not a startOffset and an endOffset (added 
36944         a layout test).
36945
36946         * dom/Document.cpp:
36947         (WebCore::Document::removeMarkers): The other removeMarkers
36948         expects a startOffset and a length, not a startOffset and
36949         an endOffset.
36950         (WebCore::Document::removeMarkers): Fixed the endOffset
36951         from length and startOffset calculation.
36952
36953 2007-05-22  David Hyatt  <hyatt@apple.com>
36954
36955         Fix for bug 13802, background colors can't be reset to default
36956         color.  Fix the value cssText method to do the right thing for background
36957         and background-position values.
36958
36959         Reviewed by beth
36960
36961         fast/dom/background-shorthand-csstext.html
36962
36963         * css/CSSInitialValue.h:
36964         (WebCore::CSSInitialValue:::m_implicit):
36965         (WebCore::CSSInitialValue::isImplicitInitialValue):
36966         * css/CSSMutableStyleDeclaration.cpp:
36967         (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
36968         (WebCore::CSSMutableStyleDeclaration::getLayeredShorthandValue):
36969         * css/CSSMutableStyleDeclaration.h:
36970         * css/CSSValue.h:
36971         (WebCore::CSSValue::isImplicitInitialValue):
36972         * css/cssparser.cpp:
36973         (WebCore::CSSParser::parseValue):
36974         (WebCore::CSSParser::parseBackgroundShorthand):
36975         (WebCore::CSSParser::parseShorthand):
36976
36977 2007-05-22  Darin Adler  <darin@apple.com>
36978
36979         Reviewed by Geoff.
36980
36981         - fix <rdar://problem/5215830> REGRESSION: ebay.com layout is wrong
36982
36983         The code on ebay was looking for the "document" property on a iframe.
36984         We changed that to be the ownerDocument rather than the contentDocument,
36985         which was not what ebay was expecting. The best fix seems to be removing
36986         the document property altogether.
36987
36988         Test: fast/dom/iframe-document.html
36989
36990         * bindings/js/kjs_html.h: Remove ElementDocument.
36991         * bindings/js/kjs_html.cpp: (KJS::JSHTMLElement::getValueProperty): Ditto.
36992
36993 2007-05-22  Adele Peterson  <adele@apple.com>
36994
36995         Reviewed by Darin.
36996
36997         A little cleanup from my last checkin.
36998
36999         * page/Chrome.h: Formatting change.
37000         * page/mac/ChromeMac.mm: Fixed copyright.
37001
37002 2007-05-22  Adele Peterson  <adele@apple.com>
37003
37004         Reviewed by Darin.
37005
37006         Fix for http://bugs.webkit.org/show_bug.cgi?id=13796
37007         Crash in [NSInputContext currentInputContext] when you click on this map
37008
37009         This is another case of <rdar://problem/5171145> Safari crashed closing tab in NSInputContext updateInputContexts
37010
37011         Test: fast/frames/frame-display-none-focus.html
37012
37013         * WebCore.xcodeproj/project.pbxproj: Added ChromeMac.mm
37014         * page/Chrome.h:
37015         * page/mac/ChromeMac.mm: Added.
37016         (WebCore::Chrome::focusNSView): Moved code from Widget::setFocus so it can be used whenever we need to make a view the first responder.
37017         * page/mac/EventHandlerMac.mm: (WebCore::EventHandler::focusDocumentView): Calls focusNSView.
37018         * platform/mac/WidgetMac.mm: (WebCore::Widget::setFocus): Calls focusNSView.
37019
37020 2007-05-22  Justin Garcia  <justin.garcia@apple.com>
37021
37022         Reviewed by darin
37023         
37024         <rdar://problem/4875189> 
37025         List is deleted when replacing contents with Chinese/Japanese characters
37026
37027         * editing/htmlediting.cpp:
37028         (WebCore::isSpecialElement): Lists are no longer special.
37029         They can be removed by removing their content and then 
37030         then hitting delete inside of the empty list item that's 
37031         left over. Even when that list item is the first thing 
37032         in the editable region.
37033
37034 2007-05-22  Darin Adler  <darin@apple.com>
37035
37036         Reviewed by Tim Hatcher.
37037
37038         - fix <rdar://problem/5206089> REGRESSION: hovering over amazon.com "product categories"
37039           tab makes page content disappear
37040
37041         The contentWindow property was doing a cross-frame security check, but it shouldn't.
37042         Window objects are responsible for protecting themselves from cross-frame activity.
37043         Because contentWindow returned undefined, we then ended up setting visibility on the
37044         body of the main frame to "hidden".
37045
37046         No layout test yet. When we make cross-domain tests, we should include this one.
37047
37048         * html/HTMLFrameElement.idl: Removed CheckFrameSecurity attribute from contentWindow.
37049         * html/HTMLIFrameElement.idl: Ditto.
37050
37051 2007-05-22  Justin Garcia  <justin.garcia@apple.com>
37052
37053         Reviewed by oliver
37054
37055         <rdar://problem/5213963>
37056         REGRESSION(r21467): Active selection remains in text field after clicking on a button
37057
37058         * page/EventHandler.cpp:
37059         (WebCore::EventHandler::dispatchMouseEvent): Call
37060         FocusController::setFocusedNode, because Document::setFocusedNode
37061         no longer clears the selection.
37062         Begin passing the new focused frame to 
37063         FocusController::setFocusedNode, because when the 
37064         new focus node is null, the selection should only be 
37065         cleared if the focused frame isn't changing.
37066         (WebCore::Element::focus): Begin passing the new focused
37067         frame.
37068         (WebCore::Element::blur): Ditto.
37069         * html/HTMLInputElement.cpp:
37070         (WebCore::HTMLInputElement::focus): Ditto.
37071         * html/HTMLTextAreaElement.cpp:
37072         (WebCore::HTMLTextAreaElement::focus): Ditto.
37073         * page/Frame.cpp:
37074         (WebCore::Frame::setFocusedNodeIfNeeded): Ditto.
37075         * page/FocusController.cpp:
37076         (WebCore::clearSelectionIfNeeded): Take in the new
37077         focused frame.  If it's not changing, don't clear the
37078         selection.
37079         (WebCore::FocusController::setFocusedNode): Take
37080         in the new focused frame.
37081         * page/FocusController.h:
37082
37083 2007-05-22  Marius Bugge Monsen  <mbm@trolltech.com>
37084
37085         Reviewed by Zack.
37086
37087         Implement some more functions in ClipboardQt.
37088
37089         * platform/qt/ClipboardQt.cpp:
37090         (WebCore::ClipboardQt::ClipboardQt):
37091         (WebCore::ClipboardQt::getData):
37092         (WebCore::ClipboardQt::setData):
37093         (WebCore::ClipboardQt::types):
37094
37095 2007-05-21  Oliver Hunt  <oliver@apple.com>
37096
37097         Reviewed by Sam.
37098         
37099         Fix for http://bugs.webkit.org/show_bug.cgi?id=13789 
37100         -- SVGLocatable::getScreenCTM() faulty
37101         
37102         Needed to update SVGLength to handle the case where the SVGElement is
37103         not the root document element -- we do this by falling back on the 
37104         renderer for the context.
37105         
37106         For <svg> elements embedded as mixed content in xhtml we consider the
37107         absolutePosition of the parent to be the origin for the <svg> element.
37108
37109         * ksvg2/svg/SVGLength.cpp:
37110         (WebCore::SVGLength::PercentageOfViewport):
37111         * ksvg2/svg/SVGSVGElement.cpp:
37112         (WebCore::SVGSVGElement::getScreenCTM):
37113
37114 2007-05-21  Timothy Hatcher  <timothy@apple.com>
37115
37116         Reviewed by Adam.
37117
37118         <rdar://problem/5084400> -[DOMRange lineBoxRects] returns an empty array when the DOM nodes have just been created
37119
37120         Do a updateLayoutIgnorePendingStylesheets before asking the Node or Range for it's box rects.
37121
37122         * bindings/objc/DOM.mm:
37123         (-[DOMNode boundingBox]):
37124         (-[DOMNode lineBoxRects]):
37125         (-[DOMRange boundingBox]):
37126         (-[DOMRange lineBoxRects]):
37127
37128 2007-05-21  Sam Weinig  <sam@webkit.org>
37129
37130         Reviewed by George Staikos.
37131
37132         Fix Qt build.
37133
37134         * WebCore.pro: add missing IDL files.
37135
37136 2007-05-21  Sam Weinig  <sam@webkit.org>
37137
37138         Reviewed by Darin.
37139
37140         Patch for http://bugs.webkit.org/show_bug.cgi?id=13803
37141         Autogenerate the JS bindings for the HTMLMarqueeElement.
37142
37143         * DerivedSources.make:
37144         * WebCore.xcodeproj/project.pbxproj:
37145         * bindings/js/JSHTMLElementWrapperFactory.cpp:
37146         * bindings/js/kjs_css.cpp:
37147         (KJS::DOMCSSRule::getOwnPropertySlot): Fix possible null pointer issue.
37148         (KJS::DOMCSSRule::put): Fix possible null pointer issue.
37149         * bindings/js/kjs_html.cpp:
37150         (KJS::):
37151         (KJS::JSHTMLElement::classInfo):
37152         (KJS::JSHTMLElement::accessors):
37153         (KJS::JSHTMLElement::getOwnPropertySlot): Fix null pointer issue.
37154         (KJS::HTMLElementFunction::callAsFunction):
37155         (KJS::JSHTMLElement::put):
37156         * bindings/js/kjs_html.h:
37157         (KJS::JSHTMLElement::):
37158         * html/HTMLMarqueeElement.cpp:
37159         (WebCore::HTMLMarqueeElement::start):
37160         (WebCore::HTMLMarqueeElement::stop):
37161         * html/HTMLMarqueeElement.h: Add start() and stop() functions.
37162         * html/HTMLMarqueeElement.idl: Added.
37163         * page/DOMWindow.idl: Add marquee constructor.
37164
37165 2007-05-21  Adele Peterson  <adele@apple.com>
37166
37167         Fix by Darin, reviewed by me.
37168
37169         Fix for <rdar://problem/5171145> Safari crashed closing tab in NSInputContext updateInputContexts
37170
37171         * platform/mac/WidgetMac.mm:
37172         (WebCore::safeRemoveFromSuperview): Added. If the view is the window's first responder, then 
37173          set the window's first responder to nil so we don't leave the window pointing to a view that's no longer in it.
37174         (WebCore::Widget::setFocus): Don't attempt to focus the view if it has no window.
37175         (WebCore::Widget::removeFromSuperview): Call safeRemoveFromSuperview.
37176         (WebCore::Widget::afterMouseDown): ditto.
37177
37178 2007-05-21  David Hyatt  <hyatt@apple.com>
37179
37180         Make a line gutter backdrop so that tiny view source docs don't look
37181         bad.
37182
37183         Reviewed by aroben
37184
37185         * css/view-source.css:
37186         * html/HTMLViewSourceDocument.cpp:
37187         (WebCore::HTMLViewSourceDocument::createContainingTable):
37188
37189 2007-05-21  David Hyatt  <hyatt@apple.com>
37190
37191         Make sure to distinguish between links to internal resources and
37192         real links (anchors) in view source mode.
37193
37194         Reviewed by aroben
37195
37196         * css/view-source.css:
37197         * html/HTMLViewSourceDocument.cpp:
37198         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
37199         (WebCore::HTMLViewSourceDocument::addLink):
37200         * html/HTMLViewSourceDocument.h:
37201
37202 2007-05-21  Sam Weinig  <sam@webkit.org>
37203
37204         Reviewed by Adam and Darin.
37205
37206         Patch for http://bugs.webkit.org/show_bug.cgi?id=13791
37207         Autogenerate the JS bindings for the HTMLIFrameElement and HTMLFrameElement.
37208
37209         * DerivedSources.make:
37210         * WebCore.xcodeproj/project.pbxproj:
37211         * bindings/js/JSHTMLAnchorElementCustom.cpp:
37212         * bindings/js/JSHTMLElementWrapperFactory.cpp:
37213         * bindings/js/kjs_html.cpp:
37214         (KJS::):
37215         (KJS::JSHTMLElement::classInfo):
37216         (KJS::JSHTMLElement::accessors):
37217         (KJS::HTMLElementFunction::callAsFunction):
37218         * bindings/js/kjs_html.h:
37219         (KJS::JSHTMLElement::):
37220         * bindings/scripts/CodeGeneratorJS.pm:
37221         * html/HTMLFrameElement.idl:
37222         * html/HTMLFrameElementBase.cpp:
37223         (WebCore::HTMLFrameElementBase::location):
37224         * html/HTMLFrameElementBase.h:
37225         * html/HTMLFrameOwnerElement.h:
37226         (WebCore::HTMLFrameOwnerElement::contentWindow):
37227         * html/HTMLIFrameElement.idl:
37228         * page/DOMWindow.idl:
37229
37230 2007-05-21  Lars Knoll <lars@trolltech.com>
37231
37232         Reviewed by Zack.
37233
37234         Remove the ResourceHandleManager class, it is now part of 
37235         QWebNetworkInterface. Adapt ResourceHandle to the new way 
37236         of things.
37237
37238         * WebCore.pro:
37239         * platform/network/ResourceHandleInternal.h:
37240         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
37241         * platform/network/qt/ResourceHandleManagerKDE.cpp: Removed.
37242         * platform/network/qt/ResourceHandleManagerKDE.h: Removed.
37243         * platform/network/qt/ResourceHandleManagerQt.cpp: Removed.
37244         * platform/network/qt/ResourceHandleManagerQt.h: Removed.
37245         * platform/network/qt/ResourceHandleQt.cpp:
37246         (WebCore::ResourceHandle::~ResourceHandle):
37247         (WebCore::ResourceHandle::start):
37248         (WebCore::ResourceHandle::cancel):
37249
37250 2007-05-21  David Hyatt  <hyatt@apple.com>
37251
37252         Second half of fix for 13793, make sure rules=groups works properly with
37253         spanning colgroups.
37254
37255         Also make sure colgroups get an actual span of 1 (instead of incorrectly
37256         giving them a span of 0).
37257
37258         Reviewed by mitz
37259
37260         fast/table/colgroup-spanning-groups-rules.html
37261
37262         * html/HTMLTableColElement.cpp:
37263         (WebCore::HTMLTableColElement::HTMLTableColElement):
37264         * rendering/RenderTable.cpp:
37265         (WebCore::RenderTable::colElement):
37266         * rendering/RenderTable.h:
37267         * rendering/RenderTableCell.cpp:
37268         (WebCore::RenderTableCell::collapsedLeftBorder):
37269         (WebCore::RenderTableCell::collapsedRightBorder):
37270
37271 2007-05-20  David Hyatt  <hyatt@apple.com>
37272
37273         Half of a fix for 13793, make sure rules=groups and border behave properly
37274         together.
37275
37276         Reviewed by mitz
37277
37278         No tests added, two Mozilla table tests now pass that failed before.
37279
37280         * html/HTMLTableElement.cpp:
37281         (WebCore::HTMLTableElement::getSharedCellDecl):
37282
37283 2007-05-20  Brady Eidson <beidson@apple.com>
37284
37285         Reviewed by Geoose Garen
37286
37287         <rdar://problem/4758919> - Incorrect favicon shown for URL after going back
37288
37289         When restoring a cached page, we'd try to kick off the icon load for it, which ended up causing 
37290         shenanigans with the icon url -> page url mapping.  
37291
37292         * loader/FrameLoader.cpp:
37293         (WebCore::FrameLoader::endIfNotLoading): Only try an icon load if we're not restoring from the page cache
37294         (WebCore::FrameLoader::startIconLoader): Added helpful logging that helped me track this down
37295         (WebCore::FrameLoader::commitIconURLToIconDatabase): Ditto (and fixed a comment typo)
37296
37297         * loader/icon/IconLoader.cpp:
37298         (WebCore::IconLoader::stopLoading): Don't null out the ResourceLoader here, as clearLoadingState() does that
37299         (WebCore::IconLoader::finishLoading): Added helpful logging that helped me track this down
37300
37301
37302 2007-05-20  Darin Adler  <darin@apple.com>
37303
37304         Reviewed by Oliver Hunt.
37305
37306         - fix <rdar://problem/5193416> REGRESSION: Selection on large pages extremely slow
37307
37308         * dom/Document.cpp: (WebCore::Document::removeMarkers): Added an early exit for the common
37309         case where there are no markers. Changed code to iterate over all the nodes in the range
37310         instead of using TextIterator, which is more efficient.
37311         
37312         * page/Frame.cpp: (WebCore::Frame::respondToChangedSelection): Added checks for editable,
37313         so we don't bother doing work related to spell checking and grammar checking when changing
37314         the selection in non-editable text. Also rearranged the code so we only compute the old
37315         word boundaries and sentence boundaries when actually needed, and don't do the sentence
37316         range checks unless grammar checking is enabled.
37317
37318         * platform/TextBreakIteratorICU.cpp:
37319         (WebCore::setUpIterator): Don't take a locale parameter. Always pass in currentTextBreakLocaleID.
37320         (WebCore::characterBreakIterator): Removed local parameter.
37321         (WebCore::wordBreakIterator): Ditto.
37322         (WebCore::lineBreakIterator): Ditto.
37323         (WebCore::sentenceBreakIterator): Ditto.
37324
37325         * platform/mac/TextBreakIteratorInternalICUMac.mm:
37326         (WebCore::getTextBreakLocale): Broke out the code to actually get the locale.
37327         (WebCore::currentTextBreakLocaleID): This function now handles only the caching and calls
37328         getTextBreakLocale to actually figure it out.
37329
37330         * editing/visible_units.cpp: Added lots of FIXME comments, but no code change.
37331
37332 2007-05-20  Adam Treat  <adam@staikos.net>
37333
37334         Add -f to cp to deal with some obscure build environments.
37335
37336         Reviewed by George Staikos.
37337
37338         * move-js-headers.sh:
37339
37340 2007-05-20  Adam Treat  <adam@staikos.net>
37341
37342         Add missing include for auto_ptr
37343
37344         Reviewed by George Staikos.
37345
37346         * platform/graphics/ImageBuffer.h:
37347
37348 2007-05-19  David Hyatt  <hyatt@apple.com>
37349
37350         Fix for bug 13785, O(n^2) counter creation.
37351
37352         Reviewed by darin
37353
37354         * rendering/RenderCounter.cpp:
37355         (WebCore::findPlaceForCounter):
37356         (WebCore::RenderCounter::originalText):
37357
37358 2007-05-19  Mitz Pettel  <mitz@webkit.org>
37359
37360         Reviewed by Dave Hyatt.
37361
37362         - fix http://bugs.webkit.org/show_bug.cgi?id=12729
37363           box-shadow disappears when scrolling a div that it falls on/under
37364
37365         Tests: fast/repaint/box-shadow-dynamic.html
37366                fast/repaint/box-shadow-h.html
37367                fast/repaint/box-shadow-v.html
37368
37369         * rendering/InlineFlowBox.cpp:
37370         (WebCore::InlineFlowBox::placeBoxesHorizontally): Factor in box shadow.
37371         (WebCore::InlineFlowBox::placeBoxesVertically): Ditto.
37372         (WebCore::InlineFlowBox::paint): Account for box shadow when checking if
37373         the damage rect intersects.
37374         * rendering/RenderBlock.cpp:
37375         (WebCore::RenderBlock::overflowHeight): For overflow areas, when asked
37376         for the "exterior" overflow, add box shadow overflow.
37377         (WebCore::RenderBlock::overflowWidth): Ditto.
37378         (WebCore::RenderBlock::overflowLeft): Ditto.
37379         (WebCore::RenderBlock::overflowTop): Ditto.
37380         (WebCore::RenderBlock::overflowRect): Ditto.
37381         (WebCore::RenderBlock::layoutBlock): Factor box shadow into visual overflow.
37382         * rendering/RenderFlexibleBox.cpp:
37383         (WebCore::RenderFlexibleBox::layoutBlock): Ditto.
37384         * rendering/RenderFlow.cpp:
37385         (WebCore::RenderFlow::lowestPosition): For overflow areas, when asked for
37386         the "exterior" extreme position, add box shadow.
37387         (WebCore::RenderFlow::rightmostPosition): Ditto.
37388         (WebCore::RenderFlow::leftmostPosition): Ditto.
37389         * rendering/RenderLayer.cpp:
37390         (WebCore::RenderLayer::calculateRects): Avoid clipping out box shadow.
37391         * rendering/RenderObject.cpp:
37392         (WebCore::RenderObject::repaintAfterLayoutIfNeeded): Make sure to paint
37393         the box shadow when an edge with a shadow moves.
37394         (WebCore::RenderObject::adjustRectForOutlineAndShadow): Helper function
37395         that expands a given rectangle to encompass outline and box shadow.
37396         (WebCore::RenderObject::absoluteOutlineBox): Changed to include box shadow.
37397         * rendering/RenderObject.h:
37398
37399 2007-05-19  Mitz Pettel  <mitz@webkit.org>
37400
37401         Reviewed by Dave Hyatt.
37402
37403         - fix http://bugs.webkit.org/show_bug.cgi?id=13783
37404           REGRESSION (r21120): Frame resizers not repainted properly when dragged
37405
37406         * rendering/RenderFrameSet.cpp:
37407         (WebCore::RenderFrameSet::layout):
37408
37409 2007-05-19  Mitz Pettel  <mitz@webkit.org>
37410
37411         Reviewed by Darin.
37412
37413         - fix http://bugs.webkit.org/show_bug.cgi?id=13774
37414           REGRESSION: Crash emailing blog entry using Google Reader
37415
37416         Test: fast/table/stale-grid-crash.html
37417
37418         * rendering/RenderTable.cpp:
37419         (WebCore::RenderTable::recalcSections): Made const and replaced
37420         setNeedsLayout(true) with an assertion that the table is already
37421         marked for layout.
37422         (WebCore::RenderTable::sectionAbove): Added call to recalcSectionsIfNeeded().
37423         (WebCore::RenderTable::sectionBelow): Ditto.
37424         (WebCore::RenderTable::cellAbove): Ditto.
37425         (WebCore::RenderTable::cellBelow): Ditto.
37426         (WebCore::RenderTable::cellBefore): Ditto.
37427         (WebCore::RenderTable::cellAfter): Ditto.
37428         * rendering/RenderTable.h:
37429         Made some private member variables which are used in section recalc mutable.
37430         (WebCore::RenderTable::setNeedsSectionRecalc): Moved the call to
37431         setNeedsLayout() from recalcSections() into here, because I made
37432         recalcSections() const.
37433         (WebCore::RenderTable::recalcSectionsIfNeeded): Made const.
37434
37435 2007-05-19  Mitz Pettel  <mitz@webkit.org>
37436
37437         Reviewed by Darin.
37438
37439         - http://bugs.webkit.org/show_bug.cgi?id=13320
37440           rounded corners with drop shadows are really slow
37441
37442         Test for a rendering bug fixed by this patch:
37443             fast/box-shadow/border-radius-big.html
37444
37445         No test for the performance ingredient.
37446
37447         * platform/graphics/GraphicsContext.cpp:
37448         (WebCore::GraphicsContext::addRoundedRectClip): Made cross-platform.
37449         Changed to use a single clipping path. If all the radii cannot be
37450         accommodated, clips to a rect.
37451         (WebCore::GraphicsContext::clipOutRoundedRect): Changed to use a single
37452         clipping path. If all the radii cannot be accommodated, clips out a rect.
37453         * platform/graphics/GraphicsContext.h: Added clipOut(const Path&).
37454         * platform/graphics/Path.cpp:
37455         (WebCore::Path::createRoundedRectangle): Added. Returns a rounded rectangle
37456         with the specified radii. If all the radii cannot be accommodated, returns
37457         a rectangular path.
37458         * platform/graphics/Path.h:
37459         * platform/graphics/cairo/GraphicsContextCairo.cpp:
37460         (WebCore::GraphicsContext::clipOut): Added.
37461         * platform/graphics/cg/GraphicsContextCG.cpp:
37462         (WebCore::GraphicsContext::fillRoundedRect): Changed to use a single path.
37463         (WebCore::GraphicsContext::clipOut): Added.
37464         * platform/graphics/qt/GraphicsContextQt.cpp:
37465         (WebCore::GraphicsContext::clipOut): Added.
37466
37467 2007-05-19  Anders Carlsson  <andersca@apple.com>
37468
37469         Reviewed by Mitz.
37470
37471         Test: fast/frames/inline-object-inside-frameset.html
37472         
37473         http://bugs.webkit.org/show_bug.cgi?id=13771
37474         Assertion failure ASSERT(m_layer) when running Hamachi fuzz tester
37475
37476         Don't paint inline objects.
37477         
37478         * rendering/RenderFrameSet.cpp:
37479         (WebCore::RenderFrameSet::paint):
37480
37481 2007-05-19  David Hyatt  <hyatt@apple.com>
37482
37483         Add support for plain text MIME types (CSS/JS/TXT) to view source mode.
37484         CSS/JS will eventually tokenize via their own special tokenizers so that
37485         they can also be syntax-highlighted, but for now just treat them as
37486         plain text.
37487
37488         Reviewed by aroben
37489
37490         * dom/DOMImplementation.cpp:
37491         (WebCore::DOMImplementation::createDocument):
37492         * html/HTMLViewSourceDocument.cpp:
37493         (WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument):
37494         (WebCore::HTMLViewSourceDocument::createTokenizer):
37495         (WebCore::HTMLViewSourceDocument::createContainingTable):
37496         (WebCore::HTMLViewSourceDocument::addViewSourceText):
37497         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
37498         * html/HTMLViewSourceDocument.h:
37499         * loader/TextDocument.cpp:
37500         (WebCore::TextTokenizer::TextTokenizer):
37501         (WebCore::TextTokenizer::write):
37502         * loader/TextDocument.h:
37503         (WebCore::TextTokenizer::checkBuffer):
37504
37505 2007-05-18  David Hyatt  <hyatt@apple.com>
37506
37507         Fix a glitch in view source mode attribute names.
37508
37509         * html/HTMLViewSourceDocument.cpp:
37510         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
37511
37512 2007-05-18  David Hyatt  <hyatt@apple.com>
37513
37514         "Linkify" view source mode links.
37515
37516         Reviewed by andersca
37517
37518         * css/view-source.css:
37519         * html/HTMLViewSourceDocument.cpp:
37520         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
37521         (WebCore::HTMLViewSourceDocument::addSpanWithClassName):
37522         (WebCore::HTMLViewSourceDocument::addLink):
37523         * html/HTMLViewSourceDocument.h:
37524
37525 2007-05-18  Oliver Hunt  <oliver@apple.com>
37526
37527         Reviewed by Sam
37528
37529         No longer need to pass HTMLImageElement and HTMLImageLoader on to WebKit
37530         Need to expose CachedResourceClient constructor
37531
37532         * WebCore.exp:
37533         * WebCore.xcodeproj/project.pbxproj:
37534
37535 2007-05-18  David Hyatt  <hyatt@apple.com>
37536
37537         Fix for <rdar://problem/5214338> REGRESSION: / mishandled in 
37538         HTML tokenization (13780).
37539
37540         Reviewed by ggaren
37541
37542         * html/HTMLTokenizer.cpp:
37543         (WebCore::Token::addAttribute):
37544         (WebCore::HTMLTokenizer::parseTag):
37545
37546 2007-05-18  Brady Eidson  <beidson@apple.com>
37547
37548         Reviewed by Maciej
37549
37550         http://bugs.webkit.org/show_bug.cgi?id=12681 and
37551         <rdar://problem/5166149> - window.open() causes server to be hit twice
37552
37553         This regressed in http://trac.webkit.org/projects/webkit/changeset/14637
37554         That patch was to fix broken behavior when opening an already existant window.
37555         The unfortunate side effect was to cause the server to be hit twice.  
37556         Once during the call to frame->loader()->createWindow(), and again via a 
37557         scheduled redirection.
37558
37559         I decided to restore the original de-facto behavior by making the new window
37560         open via a scheduled redirection - there is a FIXME that was already here that
37561         explains the reason why we have to do it this way for now.
37562
37563         Additionally, there were two distinct places that had their own logic to open
37564         a new window - the logic for window.open() and the logic for 
37565         window.showModalDialog().  The logic was almost identical so I condensed them
37566         into one utility function that takes a flag to handle the slight difference.
37567
37568         A layout test is not possible at this time since it would involve capturing 
37569         server logs (the 1st connection does not exist long enough to result in any
37570         delegate callbacks).  That task is documented in 
37571         http://bugs.webkit.org/show_bug.cgi?id=13769
37572
37573         * bindings/js/kjs_window.cpp:
37574         (KJS::createWindow): Merged the two slightly different versions of "creating a window" 
37575           logic here.  For the modal dialog case the load is an immediate call to changeLocation(),
37576           which is triggered by the "immediate" flag, and the other cases load via scheduleLocationChange()
37577         (KJS::showModalDialog): Call createWindow()
37578         (KJS::WindowFunc::callAsFunction): Handle frame targets of _top or _parent immediately and call 
37579           createWindow() for all others
37580
37581 2007-05-18  Sam Weinig  <sam@webkit.org>
37582
37583         Reviewed by Geoff.
37584
37585         Autogenerate the JS bindings for the HTMLTableElement, HTMLTableCaptionElement,
37586         HTMLTableCellElement, HTMLTableColElement, HTMLTableRowElement, HTMLTableSectionElement.
37587
37588         * DerivedSources.make:
37589         * WebCore.pro:
37590         * WebCore.xcodeproj/project.pbxproj:
37591         * bindings/js/JSHTMLElementWrapperFactory.cpp:
37592         (WebCore::createJSHTMLWrapper):
37593         * bindings/js/kjs_html.cpp:
37594         (KJS::):
37595         (KJS::JSHTMLElement::classInfo):
37596         (KJS::JSHTMLElement::accessors):
37597         (KJS::HTMLElementFunction::callAsFunction):
37598         * bindings/js/kjs_html.h:
37599         (KJS::JSHTMLElement::):
37600         * html/HTMLTableCaptionElement.idl:
37601         * html/HTMLTableCellElement.idl:
37602         * html/HTMLTableColElement.idl:
37603         * html/HTMLTableElement.idl:
37604         * html/HTMLTableRowElement.idl:
37605         * html/HTMLTableSectionElement.idl:
37606         * page/DOMWindow.idl:
37607
37608 2007-05-18  Oliver Hunt  <oliver@apple.com>
37609
37610         Reviewed by Sam.
37611
37612         Fix for <rdar://problem/5211122> DRT crash below
37613         SVGTimer::applyAnimations when page cache is enabled 
37614         (SVG animation timers do not properly cancel themselves)
37615
37616         There were still a few paths in the SVG Animation code
37617         that could cause timers to be created and used.  This 
37618         patch inserts addition SVG_EXPERIMENTAL blocks to prevent
37619         these timers from being used.
37620
37621         * ksvg2/misc/SVGDocumentExtensions.cpp:
37622         (WebCore::SVGDocumentExtensions::startAnimations):
37623         * ksvg2/misc/SVGTimer.cpp:
37624         (WebCore::SVGTimer::animationsByElement):
37625         (WebCore::SVGTimer::applyAnimations):
37626         (WebCore::SVGTimer::notifyAll):
37627         (WebCore::SVGTimer::addNotify):
37628         (WebCore::SVGTimer::removeNotify):
37629         * ksvg2/misc/TimeScheduler.cpp:
37630         (WebCore::TimeScheduler::addTimer):
37631         (WebCore::TimeScheduler::connectIntervalTimer):
37632         (WebCore::TimeScheduler::disconnectIntervalTimer):
37633         (WebCore::TimeScheduler::startAnimations):
37634         (WebCore::TimeScheduler::toggleAnimations):
37635         (WebCore::TimeScheduler::timerFired):
37636         * ksvg2/svg/SVGAnimationElement.h:
37637
37638 2007-05-18  Marius Bugge Monsen <mbm@trolltech.com>
37639
37640         Reviewed by Zack Rusin. 
37641
37642         Return a valid pointer to a Clipboard object
37643         from newGeneralClipboard. 
37644
37645         * editing/qt/EditorQt.cpp:
37646         (WebCore::Editor::newGeneralClipboard):
37647
37648 2007-05-18  Mark Rowe  <mrowe@apple.com>
37649
37650         Attempt to fix the Gdk build after r21562.
37651
37652         * platform/gdk/TemporaryLinkStubs.cpp:
37653         (Widget::isEnabled):
37654         * platform/gdk/WidgetGdk.cpp:
37655
37656 2007-05-18  Adam Treat <treat@kde.org>
37657
37658         Reviewed by Lars
37659
37660         Remove dead code.
37661
37662         * platform/Widget.h:
37663         * platform/mac/WidgetMac.mm:
37664         * platform/qt/WidgetQt.cpp:
37665
37666 2007-05-18  Holger Freyther  <zecke@selfish.org>
37667
37668         Reviewed by Maciej.
37669
37670         Return true to make loading of pages working again
37671
37672         * loader/gdk/FrameLoaderClientGdk.cpp:
37673         (WebCore::FrameLoaderClientGdk::canHandleRequest):
37674
37675 2007-05-18  Holger Freyther  <zecke@selfish.org>
37676
37677         Reviewed by Maciej.
37678
37679         Make WebCore::Widget use GtkWidget to fix focus handling.
37680
37681         * WebCore.pro: Add PlatformScrollBar
37682         * platform/ScrollView.h: Gtk stuff
37683         * platform/Widget.h: Take a GtkWidget
37684         * platform/gdk/PlatformScrollBarGdk.cpp: Added.
37685         (PlatformScrollbar::PlatformScrollbar):
37686         (PlatformScrollbar::~PlatformScrollbar):
37687         (PlatformScrollbar::width):
37688         (PlatformScrollbar::height):
37689         (PlatformScrollbar::setEnabled):
37690         (PlatformScrollbar::paint):
37691         (PlatformScrollbar::updateThumbPosition):
37692         (PlatformScrollbar::updateThumbProportion):
37693         (PlatformScrollbar::setRect):
37694         * platform/gdk/ScreenGdk.cpp: Implement depth handling
37695         (WebCore::screenDepth):
37696         * platform/gdk/ScrollViewGdk.cpp: use setGtkWidget, not setDrawable
37697         (WebCore::ScrollView::setGtkWidget):
37698         * platform/gdk/TemporaryLinkStubs.cpp:
37699         * platform/gdk/WidgetGdk.cpp:
37700         (WebCore::Widget::Widget):
37701         (WebCore::Widget::gtkWidget):
37702         (WebCore::Widget::setGtkWidget):
37703         (WebCore::Widget::hasFocus):
37704         (WebCore::Widget::setFocus):
37705
37706 2007-05-18  Lars Knoll  <lars@trolltech.com>
37707
37708         Reviewed by Zack
37709
37710         Correctly implement initialiseSupportedImageMIMETypes.
37711
37712         * platform/MimeTypeRegistry.cpp:
37713         (WebCore::initialiseSupportedImageMIMETypes):
37714         * platform/qt/MimeTypeRegistryQt.cpp:
37715         (WebCore::):
37716
37717 2007-05-18  Holger Hans Peter Freyther  <zecke@selfish.org>
37718
37719         Reviewed by Maciej.
37720
37721         Build fix for non-Qt and non-Mac ports.
37722
37723         * html/HTMLCanvasElement.h:
37724
37725 2007-05-18  Holger Hans Peter Freyther  <zecke@selfish.org>
37726
37727         Reviewed by Mark Rowe.
37728
37729         No test added as this is hard to time.
37730
37731         * platform/gdk/FrameGdk.cpp: Use needsLayout() to decide if layout()
37732         is needed.
37733
37734         (WebCore::FrameGdk::dumpRenderTree):
37735         (WebCore::FrameGdk::handleGdkEvent):
37736
37737 2007-05-18  Simon Hausmann  <hausmann@kde.org>
37738
37739         Reviewed by Lars.
37740
37741         * WebCore.pro: Create a pkg-config file to make it easier to locate
37742         and use WebKitQt.
37743
37744 2007-05-18  Lars Knoll <lars@trolltech.com>
37745
37746         Reviewed by Hyatt.
37747
37748         Remove unused handleMouseEvent methods in the Widget
37749         and derived classes.
37750
37751         * page/EventHandler.cpp:
37752         (WebCore::EventHandler::handleMouseMoveEvent):
37753         * page/FrameView.cpp:
37754         * page/FrameView.h:
37755         * page/mac/EventHandlerMac.mm:
37756         (WebCore::EventHandler::mouseDragged):
37757         (WebCore::EventHandler::mouseMoved):
37758         * platform/ScrollBar.h:
37759         * platform/Widget.h:
37760         * platform/win/PlatformScrollBar.h:
37761         * platform/win/TemporaryLinkStubs.cpp:
37762         (WebCore::PlatformScrollbar::setRect):
37763         * platform/wx/PlatformScrollBar.h:
37764
37765 2007-05-18  George Staikos  <staikos@kde.org>
37766
37767         Reviewed by Lars.
37768
37769         Use the proper clipping algorithm.  Might be a bit slow but we
37770         can optimize it later.
37771
37772         * platform/graphics/qt/GraphicsContextQt.cpp:
37773         (WebCore::GraphicsContext::clip):
37774
37775 2007-05-17  Sam Weinig  <sam@webkit.org>
37776
37777         Reviewed by George Staikos.
37778
37779         Fix Qt build after adding JSHTMLAnchorElementCustom.cpp. 
37780
37781         * WebCore.pro:
37782
37783 2007-05-17  George Staikos  <staikos@kde.org>
37784
37785         Reviewed by hyatt.
37786
37787         Fix preprocessor logic for CG/QT
37788
37789         * html/HTMLCanvasElement.cpp:
37790         (WebCore::HTMLCanvasElement::reset):
37791
37792 2007-05-17  David Hyatt  <hyatt@apple.com>
37793
37794         Add a line gutter to view source mode.  The gutter uses counters, and this exposed the fact
37795         that pseudoStyleForElement was not walking all UA rules properly.
37796
37797         Reviewed by aroben
37798
37799         * css/cssstyleselector.cpp:
37800         (WebCore::CSSStyleSelector::pseudoStyleForElement):
37801         * css/view-source.css:
37802         * html/HTMLViewSourceDocument.cpp:
37803         (WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument):
37804         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
37805         (WebCore::HTMLViewSourceDocument::addSpanWithClassName):
37806         (WebCore::HTMLViewSourceDocument::addLine):
37807         (WebCore::HTMLViewSourceDocument::addText):
37808         * html/HTMLViewSourceDocument.h:
37809
37810 2007-05-17  Justin Garcia  <justin.garcia@apple.com>
37811
37812         Reviewed by ggaren
37813
37814         <rdar://problem/5209984> REGRESSION: Crash on click after clearing Facebook status
37815         
37816         comparePositions() expects non-null positions.  It's 
37817         given a null position by contains() if the current 
37818         selection is a range selection but contains only invisible 
37819         content *and* visible positions cannot be created from its 
37820         end points.  This can happen when there is a range selection 
37821         inside shadow content (like that inside text fields) that 
37822         is made invisible.
37823
37824         * editing/SelectionController.cpp:
37825         (WebCore::SelectionController::contains): Check for
37826         invisible end points.
37827
37828 2007-05-17  Sam Weinig  <sam@webkit.org>
37829
37830         Reviewed by Adam.
37831
37832         Fix for <rdar://problem/5201423> REGRESSION: Links in 
37833         sidebar don't work on Honda website
37834
37835         Anchor elements need to have the same behavior for implicit and 
37836         explicit toString() calls.
37837
37838         Test: fast/dom/anchor-toString.html
37839
37840         * WebCore.xcodeproj/project.pbxproj:
37841         * bindings/js/JSHTMLAnchorElementCustom.cpp: Added.
37842         (WebCore::JSHTMLAnchorElement::toString):
37843         * html/HTMLAnchorElement.idl:
37844
37845 2007-05-17  Geoffrey Garen  <ggaren@apple.com>
37846         
37847         Build fix.
37848
37849 2007-05-17  Adele Peterson  <adele@apple.com>
37850
37851         Reviewed by Hyatt.
37852
37853         Update RenderMenuList PopupClient methods to consider style of inner block.
37854
37855         * rendering/RenderMenuList.cpp:
37856         (WebCore::RenderMenuList::itemStyle):
37857         (WebCore::RenderMenuList::clientStyle):
37858
37859 2007-05-17  Maciej Stachowiak  <mjs@apple.com>
37860
37861         Not reviewed, emergency test fix.
37862
37863         - avoid crash on layout tests.
37864         
37865         Patched up my last change so that  widgets don't crash.
37866
37867         * loader/FrameLoader.cpp:
37868         (WebCore::FrameLoader::mainReceivedCompleteError):
37869
37870 2007-05-17  Antti Koivisto  <antti@apple.com>
37871
37872         Reviewed by Darin.
37873
37874         Fix for http://bugs.webkit.org/show_bug.cgi?id=13727
37875         REGRESSION: Reproducible hang setting the selection's extent offset to -1
37876         <rdar://problem/5206890>
37877         
37878         Rise INDEX_SIZE_ERR if used selection index is negative. This matches HTML5 for
37879         getRangeAt() and collapse() which are part of the spec (FF throws NS_ERROR_FAILURE). 
37880         
37881         Not throwing exceptions yet for too high offsets (except getRangeAt()) as it is
37882         unclear if WebCore's definition of offsets is the same as other browsers.
37883
37884         * bindings/js/kjs_window.cpp:
37885         * WebCore/editing/SelectionController.cpp:
37886         * WebCore/editing/SelectionController.h:
37887         * WebCore/editing/VisiblePosition.cpp:
37888         
37889 2007-05-17  Adele Peterson  <adele@apple.com>
37890
37891         Reviewed by Mitz.
37892
37893         Fix for <rdar://problem/5096035> REGRESSION: rtl text should be left-aligned in <select>s
37894
37895         Test: fast/text/international/bidi-menulist.html
37896
37897         * rendering/RenderMenuList.cpp:
37898         (WebCore::RenderMenuList::adjustInnerStyle): Set the inner block style to direction: ltr, and text-align: left.  This means that
37899          we will ignore those settings in the button to match the way the text is displayed in the popup menu.
37900         (WebCore::RenderMenuList::createInnerBlock): Call adjustInnerStyle.
37901         (WebCore::RenderMenuList::setStyle): ditto.
37902         * rendering/RenderMenuList.h: Added adjustInnerStyle.
37903
37904 2007-05-17  Justin Garcia  <justin.garcia@apple.com>
37905
37906         Reviewed by harrison
37907
37908         <rdar://problem/4924441> List becomes nested when changing its type
37909         <rdar://problem/5210032> Content before a list is placed at the end of the list when its made into a list item
37910         <rdar://problem/5207369> Crash when removing ordering from a nested list
37911
37912         * editing/InsertListCommand.cpp:
37913         (WebCore::InsertListCommand::doApply):
37914         The outermostEnclosingList of the position before the start isn't
37915         the previousList if it contains the start.
37916         Ditto for the position after the end and the nextList.
37917         If we're putting the newly created list item into the next list,
37918         insert it at the start of that list, not the end (don't append).
37919         Avoid nesting newly created lists inside list items.
37920         
37921 2007-05-17  Patti Hoa  <patti@apple.com>
37922
37923         Reviewed by Darin.
37924         
37925         <rdar://problem/4775672> AXTextMarkerRangeForUnorderedTextMarkers returns incorrect order
37926         
37927         * bridge/mac/WebCoreAXObject.mm:
37928         (-[WebCoreAXObject doAXTextMarkerRangeForUnorderedTextMarkers:]):
37929         A selection's m_start is not guranteed to equal m_base since m_start can actually be m_base's downstream().
37930         A more accurate way to determine the order from selection is to ask directly for isBaseFirst().
37931         In addition, if the two visible positions given are the same position but different affinity, we need to 
37932         handle it here rather than depend on the selection. This is because selection does not retain the
37933         affinity of both selection start/end visible positions as part of the selection validation. 
37934
37935 2007-05-17  Mitz Pettel  <mitz@webkit.org>
37936
37937         Reviewed by Brady
37938
37939         - fix http://bugs.webkit.org/show_bug.cgi?id=13759
37940           REGRESSION (r20182-r20184): Incorrect rendering of multipart images
37941
37942         Test: http/tests/multipart/invalid-image-data.html
37943
37944         * loader/loader.cpp:
37945         (WebCore::Loader::didReceiveData): Make a copy of the current part's data
37946         instead of using the resource data, because the latter is going to be
37947         overwritten by the new part being received.
37948
37949 2007-05-17  Oliver Hunt  <oliver@apple.com>
37950
37951         Reviewed by Justin.
37952
37953         Fix for <rdar://problem/4244861> Safari fails to create image file
37954         after releasing dragged image that has changed on source page
37955
37956         Tell xcode to copy HTMLImageElement.h and HTMLImageLoader.h headers
37957         across to WebKit as private headers.
37958
37959         * WebCore.xcodeproj/project.pbxproj:
37960
37961 2007-05-17  Justin Garcia  <justin.garcia@apple.com>
37962
37963         Reviewed by harrison
37964
37965         <rdar://problem/5190926> 
37966         Gmail Editor: Crash when removing list style from underlined, multi-item list
37967         
37968         The user underlined some text, then created a list.
37969         The list was placed inside the inline element carrying 
37970         the underline style, so, that element surrounded the 
37971         list instead of being at the lowest level (just above 
37972         text nodes). This kind of markup is more difficult to 
37973         edit. Filed 5192089 and added a workaround so that we 
37974         don't produce this kind of markup.
37975
37976         * editing/InsertListCommand.cpp:
37977         (WebCore::InsertListCommand::doApply): Avoid inline
37978         elements when inserting the new list.
37979
37980 2007-05-17  David Hyatt  <hyatt@apple.com>
37981
37982         Allow redundant attributes with the same name in view source mode.
37983
37984         Reviewed by aroben
37985
37986         * dom/NamedAttrMap.h:
37987         (WebCore::NamedAttrMap::insertAttribute):
37988         * html/HTMLTokenizer.cpp:
37989         (WebCore::Token::addAttribute):
37990
37991 2007-05-17  George Staikos  <staikos@kde.org>
37992
37993         - Back out last patch based on discussion with Zack.
37994
37995         * platform/qt/WidgetQt.cpp:
37996         (WebCore::Widget::paint):
37997
37998 2007-05-16  Anders Carlsson  <andersca@apple.com>
37999
38000         Reviewed by Darin.
38001
38002         <rdar://problem/5207156> Hamachi test tool causes assertion in FormCompletionController in Safari
38003
38004         This happens because the form delegate gets passed the wrong source frame during the second submit().
38005         If a frame with the given name is found, FrameLoader::load is called with the same parameters on the found frame.
38006         This causes the found frame to be used as the source frame, which is wrong.
38007         
38008         The fix is to create the form state object before checking what frame to load the new request in. 
38009         
38010         * WebCore.exp:
38011         * loader/FrameLoader.cpp:
38012         (WebCore::FrameLoader::load):
38013         (WebCore::FrameLoader::checkNavigationPolicy):
38014         (WebCore::FrameLoader::continueAfterNavigationPolicy):
38015         * loader/FrameLoader.h:
38016         * manual-tests/submit-form-with-target-twice.html: Added.
38017
38018 2007-05-16  Maciej Stachowiak  <mjs@apple.com>
38019
38020         Reviewed by Oliver.
38021
38022         <rdar://problem/5205914> REGRESSION: PLT stops after loading first page due to r21479
38023         
38024         * loader/FrameLoader.cpp:
38025         (WebCore::FrameLoader::frameHasLoaded):
38026
38027 2007-05-16  David Hyatt  <hyatt@apple.com>
38028
38029         Improve the syntax-highlighted view source mode.  It now preserves all whitespace properly
38030         and highlights doctypes and comments (in addition to all the stuff it could highlight before).
38031
38032         Reviewed by aroben
38033
38034         * html/HTMLTokenizer.cpp:
38035         (WebCore::Token::addAttribute):
38036         (WebCore::HTMLTokenizer::parseTag):
38037         * html/HTMLTokenizer.h:
38038         (WebCore::Token::Token):
38039         (WebCore::Token::~Token):
38040         (WebCore::Token::reset):
38041         (WebCore::Token::addViewSourceChar):
38042         * html/HTMLViewSourceDocument.cpp:
38043         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
38044         * html/HTMLViewSourceDocument.h:
38045
38046 2007-05-16  Maciej Stachowiak  <mjs@apple.com>
38047
38048         Reviewed by Adam.
38049
38050         <rdar://problem/5191024> Page never loads completely (emonome.vodpod.com)
38051         <rdar://problem/5205162> REGRESSION (r21367): In the Address URL field, typing a site name doesn't redirect to site after pressing return
38052         http://bugs.webkit.org/show_bug.cgi?id=13683
38053         <rdar://problem/5208951> REGRESSION: Progress bar never completes on link click that downloads (13694)
38054         http://bugs.webkit.org/show_bug.cgi?id=13694
38055         <rdar://problem/5201598> REGRESSION: After uploading file to iDisk at mac.com, "loading" status remains and file does not appear in the list
38056         
38057         * loader/FrameLoader.cpp:
38058         (WebCore::FrameLoader::mainReceivedCompleteError): Make sure to always check whether the overall
38059         load completed, even if we think the current frame load is already complete.
38060
38061 2007-05-16  Beth Dakin  <bdakin@apple.com>
38062
38063         Reviewed by Hyatt.
38064
38065         Fix for <rdar://problem/5204107> REGRESSION: CSS web forum site 
38066         layout not displaying properly in latest WebKit
38067
38068         Hyatt's http://trac.webkit.org/projects/webkit/changeset/21428 
38069         exposed this bug. We were not handling error cases with <caption> 
38070         correctly. This patch makes them do the same thing as colgroup.
38071
38072         * html/HTMLParser.cpp:
38073         (WebCore::HTMLParser::handleError):
38074         * html/HTMLParserErrorCodes.cpp: No need any more for caption-
38075         specific errors.
38076         (WebCore::htmlParserErrorMessageTemplate):
38077         * html/HTMLParserErrorCodes.h:
38078         (WebCore::):
38079
38080 2007-05-16  Kevin McCullough  <kmccullough@apple.com>
38081
38082         Reviewed by Darin and Geoff.
38083
38084         - rdar://problem/4981886
38085         - Now windows opened by the DOM can be closed by JS.
38086
38087         * bindings/js/kjs_window.cpp:
38088         (KJS::createNewWindow):
38089         (KJS::WindowFunc::callAsFunction):
38090         * loader/FrameLoader.cpp:
38091         (WebCore::FrameLoader::FrameLoader):
38092         (WebCore::FrameLoader::openedByDOM):
38093         (WebCore::FrameLoader::setOpenedByDOM):
38094         (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
38095         * loader/FrameLoader.h:
38096
38097 2007-05-16  Darin Adler  <darin@apple.com>
38098
38099         Reviewed by Hyatt.
38100
38101         - fix <rdar://problem/4928671> Crash due to runaway recursion when fieldset has display: table-row (12066)
38102
38103         Test: fast/css/fieldset-display-row.html
38104
38105         * rendering/RenderContainer.cpp: (WebCore::RenderContainer::addChild):
38106         Change all decision making about special handling for new children to use
38107         the class of the render object instead of the style, except for the cases
38108         where the style is the only way to tell (TABLE_COLUMN_GROUP and TABLE_CAPTION).
38109         Thus a RenderFieldset with table-row style won't get handled as if it was
38110         a table row.
38111
38112         * rendering/RenderTable.cpp: (WebCore::RenderTable::addChild): Same thing.
38113         Except that here the styles that we ahave to look at are TABLE_CAPTION,
38114         TABLE_HEADER_GROUP, TABLE_FOOTER_GROUP, and TABLE_ROW_GROUP.
38115
38116 2007-05-16  Zack Rusin  <zrusin@trolltech.com>
38117
38118         Reviewed by Lars.
38119
38120         Implement bigger parts of the Canvas element in the
38121         Qt port. Gradients and patterns are missing.
38122
38123         * WebCore/html/CanvasRenderingContext2D.cpp:
38124         * WebCore/html/CanvasStyle.cpp:
38125         * WebCore/html/HTMLCanvasElement.cpp:
38126         * WebCore/html/HTMLCanvasElement:
38127
38128 2007-05-16  Zack Rusin  <zrusin@trolltech.com>
38129
38130         Reviewed by Lars
38131
38132         Fix shared timers, make them use miliseconds. Based
38133         on a patch from George.
38134
38135         * WebCore/platform/qt/SharedTimerQt.cpp:
38136        (WebCore::setSharedTimerFireTime):
38137
38138 2007-05-16  David Hyatt  <hyatt@apple.com>
38139
38140         Add rudimentary error reporting to the HTML parser.  This is disabled
38141         for now until it gets beefed up a bit more (and until we work out how
38142         best to pass the messages up without hurting perf).
38143
38144         Clean up and remove dead error handling code and incorrect error handling
38145         code as well.
38146
38147         Reviewed by mjs
38148
38149         * WebCore.xcodeproj/project.pbxproj:
38150         * html/HTMLParser.cpp:
38151         (WebCore::HTMLParser::HTMLParser):
38152         (WebCore::HTMLParser::handleError):
38153         (WebCore::HTMLParser::headCreateErrorCheck):
38154         (WebCore::HTMLParser::reportErrorToConsole):
38155         * html/HTMLParser.h:
38156         (WebCore::HTMLParser::reportError):
38157         * html/HTMLParserErrorCodes.cpp: Added.
38158         (WebCore::htmlParserErrorMessageTemplate):
38159         * html/HTMLParserErrorCodes.h: Added.
38160         (WebCore::):
38161         * html/HTMLTokenizer.h:
38162         (WebCore::HTMLTokenizer::tagStartLineNumber):
38163
38164 2007-05-15  David Hyatt  <hyatt@apple.com>
38165
38166         Make FrameLoader write "<html><body>" instead of just "<body>".
38167
38168         Reviewed by aroben
38169
38170         * loader/FrameLoader.cpp:
38171         (WebCore::FrameLoader::init):
38172
38173 2007-05-15  George Staikos  <staikos@kde.org>
38174
38175         Reviewed by Adam Roben.
38176
38177         - Pass cookies through from the loader.
38178
38179         * platform/network/qt/ResourceHandleManagerQt.cpp:
38180         (WebCore::ResourceHandleManager::receivedResponse):
38181
38182 2007-05-15  Adam Treat  <adam@staikos.net>
38183
38184         Reviewed by George Staikos.
38185
38186         - Implement drawArc with proper units.
38187
38188         * platform/graphics/qt/GraphicsContextQt.cpp:
38189         (WebCore::GraphicsContext::strokeArc):
38190
38191 2007-05-15  Adam Treat  <adam@staikos.net>
38192
38193         Reviewed by George Staikos.
38194
38195         - Add missing paint for nested subframes.
38196
38197         * platform/qt/WidgetQt.cpp:
38198         (WebCore::Widget::paint):
38199
38200 2007-05-15  Sam Weinig  <sam@webkit.org>
38201
38202         Reviewed by Oliver.
38203
38204         - Patch for http://bugs.webkit.org/show_bug.cgi?id=13722
38205           Finish testing and fixing the setting of DOM attributes to JS null
38206
38207           Convert JS null to null string for SVG attributes.
38208
38209         Test: fast/dom/svg-element-attribute-js-null.xhtml
38210
38211         * ksvg2/svg/SVGAngle.idl:
38212         * ksvg2/svg/SVGElement.idl:
38213         * ksvg2/svg/SVGLength.idl:
38214         * ksvg2/svg/SVGScriptElement.idl:
38215
38216 2007-05-15  Sam Weinig  <sam@webkit.org>
38217
38218         Reviewed by Oliver.
38219
38220         - Patch for http://bugs.webkit.org/show_bug.cgi?id=13722
38221           Finish testing and fixing the setting of DOM attributes to JS null
38222
38223           Convert JS null to null string for CanvasRenderingContext2D attributes.
38224
38225         Test: fast/dom/canvasContext2d-element-attribute-js-null.html
38226
38227         * html/CanvasRenderingContext2D.idl:
38228
38229 2007-05-15  Oliver Hunt  <oliver@apple.com>
38230
38231         Reviewed by Sam and Geoff.
38232
38233         Removing dead code left behind from drag and drop refactoring.
38234
38235         * page/mac/WebCoreFrameBridge.h:
38236
38237 2007-05-15  Sam Weinig  <sam@webkit.org>
38238
38239         Reviewed by Oliver.
38240
38241         - Second Patch for http://bugs.webkit.org/show_bug.cgi?id=13722
38242           Finish testing and fixing the setting of DOM attributes to JS null
38243
38244           Convert JS null to null string for remaining CSSOM attributes.
38245
38246         Test: fast/dom/css-element-attribute-js-null.html
38247
38248         * bindings/js/kjs_css.cpp:
38249         (KJS::DOMCSSStyleDeclaration::put):
38250         (KJS::DOMMediaList::put):
38251         (KJS::DOMCSSRule::putValueProperty):
38252         (KJS::DOMCSSValue::put):
38253         * css/CSSPageRule.idl:
38254         * css/CSSRule.idl:
38255         * css/CSSStyleDeclaration.idl:
38256         * css/CSSStyleRule.idl:
38257         * css/CSSValue.idl:
38258         * css/MediaList.idl:
38259
38260 2007-05-15  Darin Adler  <darin@apple.com>
38261
38262         Reviewed by Hyatt.
38263
38264         * css/html4.css: Remove wbr style rule -- not needed any more.
38265
38266 2007-05-15  Mitz Pettel  <mitz@webkit.org>
38267
38268         Reviewed by Brady
38269
38270         - fix http://bugs.webkit.org/show_bug.cgi?id=13360
38271           REGRESSION: Crash closing live web cam viewer page
38272
38273         Test: http/tests/misc/multipart.html
38274
38275         * loader/ResourceLoader.cpp:
38276         (WebCore::ResourceLoader::didFail): Avoid calling didFailToLoad() if
38277         didFinishLoad() has already been called (when the first part of a
38278         multipart resource arrived).
38279         (WebCore::ResourceLoader::didCancel): Ditto.
38280
38281 2007-05-15  Sam Weinig  <sam@webkit.org>
38282
38283         Reviewed by Darin.
38284
38285         - Patch for http://bugs.webkit.org/show_bug.cgi?id=13722
38286           Finish testing and fixing the setting of DOM attributes to JS null
38287
38288           Convert JS null to null string for remaining Core DOM attributes.
38289
38290         Test: fast/dom/coreDOM-element-attribute-js-null.xhtml
38291
38292         * dom/Attr.cpp:
38293         (WebCore::Attr::setValue): Don't throw an expection for null values as this
38294         is not in the spec and Firefox does not do it either.
38295         * dom/Attr.idl:
38296         * dom/CharacterData.idl:
38297         * dom/ProcessingInstruction.idl:
38298
38299 2007-05-15  Mitz Pettel  <mitz@webkit.org>
38300
38301         Reviewed by Hyatt.
38302
38303         - fix http://bugs.webkit.org/show_bug.cgi?id=13718
38304           REGRESSION (r21093): editing/execCommand/5136770.html failing pixel test
38305
38306         * rendering/RenderContainer.cpp:
38307         (WebCore::RenderContainer::removeChildNode): Moved the code that clears the
38308         selection when moving a selection border into the fast path.
38309
38310 2007-05-15  Rob Buis  <buis@kde.org>
38311
38312         Reviewed by Hyatt.
38313
38314         http://bugs.webkit.org/show_bug.cgi?id=6487
38315         "Make Text Bigger/Smaller" affects SVGs when it probably shouldn't
38316
38317         Ignore Make Text Bigger/Smaller for SVG text.
38318
38319         * css/svg.css:
38320
38321 2007-05-15  Anders Carlsson  <andersca@apple.com>
38322
38323         Reviewed by Maciej.
38324
38325         <rdar://problem/5183685>
38326         http://bugs.webkit.org/show_bug.cgi?id=13301
38327         ASSERT or null value when trying to use a getter defined on a window object
38328
38329         Handle the case where the value returned is a getter/setter object.
38330         
38331         * bindings/js/kjs_window.cpp:
38332         (KJS::Window::getOverridePropertySlot):
38333
38334 2007-05-14  Anders Carlsson  <andersca@apple.com>
38335
38336         Reviewed by Geoff.
38337
38338         <rdar://problem/5200816>
38339         REGRESSION: With Shiira 1.2.2 , I can't open embedded link in flash object by clicking (http:/www.adobe.com )
38340         
38341         Shiira under some circumstances passes nil as the request to -[WebFrame loadRequest:]. ToT WebKit doesn't call any policy
38342         delegate methods in this case, which means that the page is actually being loaded. 
38343         
38344         This patch makes ToT WebKit behave in the same way as Tiger WebKit when the request is nil.
38345         
38346         * loader/FrameLoader.cpp:
38347         (WebCore::FrameLoader::checkNavigationPolicy):
38348         Don't continue without calling the navigation policy method if the request is null.
38349         
38350         (WebCore::FrameLoader::continueAfterNavigationPolicy):
38351         If the request can't be handled, don't continue the load.
38352         
38353         * platform/network/mac/ResourceRequestMac.mm:
38354         (WebCore::ResourceRequest::doUpdatePlatformRequest):
38355         Don't create an NSURLRequest object if the request is null.
38356
38357 2007-05-15  Maciej Stachowiak  <mjs@apple.com>
38358
38359         Reviewed by Hyatt and Lars.
38360
38361         - fixed <rdar://problem/5201758> REGRESSION: Stop button enabled and other problems caused by [WebView currentURL] returning non-nil for empty window
38362
38363         * WebCore.exp: export new symbol
38364         * loader/FrameLoader.cpp:
38365         (WebCore::FrameLoader::begin): move marker that we committed a real doc load from here...
38366         (WebCore::FrameLoader::transitionToCommitted): ...to here
38367         (WebCore::FrameLoader::frameHasLoaded): check that we have at least started loading something
38368         besides the initial empty doc.
38369         * loader/FrameLoader.h:
38370
38371 2007-05-14  Justin Garcia  <justin.garcia@apple.com>
38372
38373         Reviewed by ggaren
38374         
38375         <http://bugs.webkit.org/show_bug.cgi?id=13716>
38376         REGRESSION: Three new layout test failures
38377         
38378         Two failures are correct.  Updated their expected results.
38379         
38380         In fast/events/frame-tab-focus.html, as we advance
38381         through focusable nodes, we descend into a subframe
38382         to focus a node and then ascend out of it into the
38383         main frame to focus the next.  When we focus the main 
38384         frame, the node in that frame that was previously 
38385         focused and contains an inactive selection is focused 
38386         momentarily because setCaretVisible tries to focus the 
38387         node containing the caret.
38388
38389         * page/Frame.cpp:
38390         (WebCore::Frame::setCaretVisible): Don't focus the
38391         node containing the caret. FocusController will focus
38392         the previously focused node (which will contain the
38393         caret) if necessary when the frame gains focus.
38394         
38395 2007-05-14  Maciej Stachowiak  <mjs@apple.com>
38396
38397         Reviewed by Brady.
38398
38399         - fixed <rdar://problem/5203036> REGRESSION: Assertion failure in WebCore::FrameLoader::restoreScrollPositionAndViewState() going back from fark.com Photoshop contest (13684)
38400
38401         Test: http/tests/navigation/back-to-slow-frame.html
38402         
38403         * loader/FrameLoader.cpp:
38404         (WebCore::FrameLoader::restoreScrollPositionAndViewState): Add needed early return.
38405
38406 2007-05-14  Mitz Pettel  <mitz@webkit.org>
38407
38408         Reviewed by Dave Hyatt.
38409
38410         - fix http://bugs.webkit.org/show_bug.cgi?id=13603
38411           style leaks in washingtonpost.com
38412           also known as http://bugs.webkit.org/show_bug.cgi?id=8750
38413           w3c.org: incorrect recovery from unclosed <a> elements
38414           also known as http://bugs.webkit.org/show_bug.cgi?id=12808
38415           Handling of misnested tags results in entire page appearing as link
38416           also known as http://bugs.webkit.org/show_bug.cgi?id=12861
38417           Post text renders as link
38418
38419         Test: fast/parser/residual-style-close-across-n-blocks.html
38420
38421         * html/HTMLParser.cpp:
38422         (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): Changed to
38423         deal with multiple block crossings instead of bailing out, by doing multiple
38424         reparenting passes, starting from the outermost block.
38425
38426 2007-05-14  Mitz Pettel  <mitz@webkit.org>
38427
38428         Reviewed by Darin.
38429
38430         - fix http://bugs.webkit.org/show_bug.cgi?id=13711
38431           REGRESSION - Bookmark Bar text rendering changed
38432
38433         No test possible since this patch affects only Safari chrome.
38434
38435         * platform/Font.cpp:
38436         (WebCore::Font::Font): Initialize m_isPlatformFont according to whether
38437         the Font object is derived from a FontPlatformData or not.
38438         * platform/Font.h:
38439         (WebCore::Font::isPlatformFont): Added. Returns whether this Font was
38440         derived from a platform font.
38441         * platform/mac/FontCacheMac.mm:
38442         (WebCore::FontCache::getFontDataForCharacters): Changed to not enable
38443         synthetic bold and italic in the fallback fonts if the original font
38444         was derived from a platform font.
38445
38446 2007-05-14  Sam Weinig  <sam@webkit.org>
38447
38448         Reviewed by Alice!
38449
38450         - Patch for http://bugs.webkit.org/show_bug.cgi?id=13541
38451           REGRESSION: Setting a DOMString attribute to JS null in the 
38452           JS bindings should default to converting to the empty string
38453
38454           Convert JS null to the empty string when passing it to an attribute that takes
38455           a DOMString.
38456
38457         Test: fast/dom/document-attribute-js-null.html
38458         Test: fast/dom/element-attribute-js-null.html
38459
38460         * bindings/js/kjs_dom.cpp:
38461         (KJS::DOMNode::putValueProperty):
38462         * bindings/js/kjs_html.cpp:
38463         (KJS::JSHTMLDocument::putValueProperty):
38464         (KJS::JSHTMLElement::objectSetter):
38465         (KJS::JSHTMLElement::embedSetter):
38466         (KJS::JSHTMLElement::tableSetter):
38467         (KJS::JSHTMLElement::tableCaptionSetter):
38468         (KJS::JSHTMLElement::tableColSetter):
38469         (KJS::JSHTMLElement::tableSectionSetter):
38470         (KJS::JSHTMLElement::tableRowSetter):
38471         (KJS::JSHTMLElement::tableCellSetter):
38472         (KJS::JSHTMLElement::frameSetSetter):
38473         (KJS::JSHTMLElement::frameSetter):
38474         (KJS::JSHTMLElement::iFrameSetter):
38475         (KJS::JSHTMLElement::marqueeSetter):
38476         (KJS::JSHTMLElement::putValueProperty):
38477         * bindings/js/kjs_html.h:
38478         * dom/Document.idl:
38479         * dom/Node.idl:
38480         * html/HTMLAnchorElement.idl:
38481         * html/HTMLAppletElement.idl:
38482         * html/HTMLAreaElement.idl:
38483         * html/HTMLBRElement.idl:
38484         * html/HTMLBaseElement.idl:
38485         * html/HTMLBaseFontElement.idl:
38486         * html/HTMLBlockquoteElement.idl:
38487         * html/HTMLBodyElement.idl:
38488         * html/HTMLButtonElement.idl:
38489         * html/HTMLDivElement.idl:
38490         * html/HTMLDocument.idl:
38491         * html/HTMLElement.idl:
38492         * html/HTMLEmbedElement.idl:
38493         * html/HTMLFontElement.idl:
38494         * html/HTMLFormElement.idl:
38495         * html/HTMLFrameElement.idl:
38496         * html/HTMLFrameSetElement.idl:
38497         * html/HTMLHRElement.idl:
38498         * html/HTMLHeadElement.idl:
38499         * html/HTMLHeadingElement.idl:
38500         * html/HTMLHtmlElement.idl:
38501         * html/HTMLIFrameElement.idl:
38502         * html/HTMLImageElement.idl:
38503         * html/HTMLInputElement.idl:
38504         * html/HTMLIsIndexElement.idl:
38505         * html/HTMLLIElement.idl:
38506         * html/HTMLLabelElement.idl:
38507         * html/HTMLLegendElement.idl:
38508         * html/HTMLLinkElement.idl:
38509         * html/HTMLMapElement.idl:
38510         * html/HTMLMetaElement.idl:
38511         * html/HTMLModElement.idl:
38512         * html/HTMLOListElement.idl:
38513         * html/HTMLObjectElement.idl:
38514         * html/HTMLOptGroupElement.idl:
38515         * html/HTMLOptionElement.idl:
38516         * html/HTMLParagraphElement.idl:
38517         * html/HTMLParamElement.idl:
38518         * html/HTMLQuoteElement.idl:
38519         * html/HTMLScriptElement.idl:
38520         * html/HTMLSelectElement.idl:
38521         * html/HTMLStyleElement.idl:
38522         * html/HTMLTableCaptionElement.idl:
38523         * html/HTMLTableCellElement.idl:
38524         * html/HTMLTableColElement.idl:
38525         * html/HTMLTableElement.idl:
38526         * html/HTMLTableRowElement.idl:
38527         * html/HTMLTableSectionElement.idl:
38528         * html/HTMLTextAreaElement.idl:
38529         * html/HTMLTitleElement.idl:
38530         * html/HTMLUListElement.idl:
38531
38532 2007-05-14  Geoffrey Garen  <ggaren@apple.com>
38533
38534         Trying to fix the Qt build.
38535
38536         * WebCore.pro:
38537
38538 2007-05-14  Geoffrey Garen  <ggaren@apple.com>
38539
38540         Reviewed by Oliver Hunt.
38541         
38542         Some improvements on my last patch, suggested by Darin.
38543
38544         * history/PageCache.cpp:
38545         (WebCore::PageCache::autoreleaseNow): Swap with an empty set instead of 
38546         building up an array and then calling clear(). This is slightly more 
38547         efficient and the code is cleaner.
38548
38549 2007-05-14  Justin Garcia  <justin.garcia@apple.com>
38550
38551         Reviewed by darin
38552         
38553         <rdar://problem/5136696> Selection is removed when focusing a node in another frame
38554         <rdar://problem/5192388> WordPress: Can't insert links/images
38555         
38556         Don't clear a selection when changing focus if the new
38557         focus node is in a different frame than the old selection.
38558
38559         * dom/Document.cpp:
38560         (WebCore::Document::setFocusedNode): Moved code to clear 
38561         selections to the FocusController, since it is Page level 
38562         and will know about the frame/document that contained the 
38563         old selection. Moved code to call shouldEndEditing to the 
38564         FocusController because selections are now cleared before
38565         calling Document::setFocusedNode and shouldEndEditing must
38566         be called before selections are cleared.
38567         * dom/Element.cpp:
38568         (WebCore::Element::blur): Call FocusController::setFocusNode
38569         instead of Document::setFocusNode, if possible.
38570         * page/EventHandler.cpp:
38571         (WebCore::EventHandler::dispatchMouseEvent): Ditto.
38572         * page/FocusController.cpp:
38573         (WebCore::relinquishesEditingFocus): Moved from Document.cpp.
38574         (WebCore::clearSelectionIfNeeded): Ditto.  Don't clear if
38575         the old selection is in a frame that's different than the 
38576         one that contains the new focus node.
38577         (WebCore::FocusController::setFocusedNode): Moved code
38578         here from Document::setFocusedNode.
38579         * page/Frame.cpp:
38580         (WebCore::Frame::setFocusedNodeIfNeeded): Call
38581         FocusController::setFocusNode.
38582
38583 2007-05-14  Geoffrey Garen  <ggaren@apple.com>
38584
38585         Reviewed by Darin Adler.
38586         
38587         Next step toward fixing <rdar://problem/5055182> The back cache has no 
38588         global cap.
38589         
38590         Created a PageCache singleton. Right now, it only handles the timer-based
38591         deallocation of cached pages. I plan to add HistoryItem->CachedPage tracking
38592         and eviction logic in later patches.
38593
38594         Updated for renames and file changes:
38595
38596         * WebCore.exp:
38597         * WebCore.xcodeproj/project.pbxproj:
38598         * history/BackForwardList.cpp:
38599         (WebCore::BackForwardList::setPageCacheSize):
38600         (WebCore::BackForwardList::clearPageCache):
38601
38602         Removed global timed release code, moved into new PageCache class, since
38603         it's eventually going to be in charge of deciding when things are released:
38604         
38605         * history/HistoryItem.cpp:
38606         (WebCore::HistoryItem::setCachedPage):
38607         * history/HistoryItem.h:
38608
38609         Folded into PageCache:
38610         
38611         * history/HistoryItemTimer.cpp: Removed.
38612         * history/HistoryItemTimer.h: Removed.
38613
38614         New singleton. Right now, it just handles timed release of cached pages:
38615         
38616         * history/PageCache.cpp: Added.
38617         (WebCore::pageCache):
38618         (WebCore::PageCache::PageCache):
38619         (WebCore::PageCache::autoreleaseNowOrReschedule):
38620         (WebCore::PageCache::autoreleaseNow):
38621         (WebCore::PageCache::autorelease):
38622         * history/PageCache.h: Added.
38623
38624 2007-05-14  Adele Peterson  <adele@apple.com>
38625
38626         Reviewed by Darin.
38627
38628         Fix for <rdar://problem/5200081> Repro crash in PopupMenu::show clicking popup menu button after reload
38629
38630         * platform/mac/PopupMenuMac.mm: (WebCore::PopupMenu::show): Added call to dismissPopup so the cell gets unattached properly.
38631
38632 2007-05-14  Adele Peterson  <adele@apple.com>
38633
38634         Reviewed by Darin.
38635
38636         Remove incorrect assertion.
38637
38638         * page/FrameView.cpp: (WebCore::FrameView::setContentsPos):
38639
38640 2007-05-14  Anders Carlsson  <andersca@apple.com>
38641
38642         Reviewed by Geoff.
38643
38644         <rdar://problem/5172056> Regression: cannot open txt file, get broken image
38645
38646         Never let plug-ins override text/plain.
38647         
38648         * dom/DOMImplementation.cpp:
38649         (WebCore::DOMImplementation::createDocument):
38650
38651 2007-05-14  Zack Rusin  <zrusin@trolltech.com>
38652
38653         Reviewed by Simon.
38654
38655         Do some magic to get better dependency tracking for header
38656         files in the qmake project files.
38657
38658         * ChangeLog:
38659
38660 2007-05-14  Lars Knoll <lars@trolltech.com>
38661
38662         Reviewed by Zack
38663
38664         Required updates after Maciej's frame change.
38665
38666         * loader/FrameLoader.cpp:
38667         (WebCore::FrameLoader::mainReceivedCompleteError):
38668               Call checkLoadCompleted() at the end of the method. Without it
38669               we never get the loadDone() signal on the Qt port.
38670         * platform/network/qt/ResourceHandleManagerQt.cpp:
38671         (WebCore::ResourceHandleManager::receivedFinished):
38672               Don't pass a null error to didFail().
38673
38674 2007-05-14  Darin Adler  <darin@apple.com>
38675
38676         Reviewed by Antti.
38677
38678         - fix <rdar://problem/3109180> VIP: after go back, page jumps after loading even if I scrolled while loading
38679
38680         * history/CachedPage.cpp: (WebCore::CachedPage::clear): Call clearFrame rather than
38681         clearPart -- the "part" term was leftover prehistoric terminology.
38682
38683         * loader/FrameLoader.cpp:
38684         (WebCore::FrameLoader::open): Call setWasScrolledByUser(false) on the page, so that we
38685         can detect any user scrolling that happens during the "go back" process.
38686         (WebCore::FrameLoader::restoreScrollPositionAndViewState): Don't scroll if the view's
38687         wasScrolledByUser flag is set.
38688         (WebCore::FrameLoader::loadItem): Call setWasScrolledByUser(false) false when we do
38689         a new "load" (actually just a scroll) using the same frame. Also moved the line of code that
38690         sets m_currentHistoryItem to make this code path mroe similar to recursiveGoToItem.
38691         (WebCore::FrameLoader::recursiveGoToItem): Ditto.
38692
38693         * page/Frame.cpp:
38694         (WebCore::Frame::~Frame): Call clearFrame rather than stting m_frame directly.
38695         (WebCore::Frame::sendScrollEvent): Call setWasScrolledByUser(true) on FrameView. The FrameView
38696         itself knows to ignore this if the scrolling is being done programmatically instead of by the user.
38697
38698         * page/FrameView.h: Added wasScrolledByUser and setWasScrolledByUser. Also removed unneeded
38699         include and class forward declarations, renamed clearPart to clearFrame, removed uneeded function
38700         haveDelayedLayoutScheduled, and removed unneeded friend declarations.
38701         * page/FrameView.cpp:
38702         (WebCore::FrameViewPrivate::FrameViewPrivate): Added m_inProgrammaticScroll and m_wasScrolledByUser.
38703         (WebCore::FrameViewPrivate::reset): Set m_wasScrolledByUser to false.
38704         (WebCore::FrameView::clearFrame): Renamed from clearPart.
38705         (WebCore::FrameView::scrollRectIntoViewRecursively): Added code to set the m_inProgrammaticScroll flag.
38706         (WebCore::FrameView::setContentsPos): Ditto.
38707         (WebCore::FrameView::wasScrolledByUser): Added.
38708         (WebCore::FrameView::setWasScrolledByUser): Added. Does nothing if called when m_inProgrammaticScroll
38709         is true.
38710
38711 2007-05-14  Darin Adler  <darin@apple.com>
38712
38713         Reviewed by Antti.
38714
38715         - <rdar://problem/4865655> REGRESSION: find function does not work for the character ß
38716
38717         The trick was to fold case consistently in the CircularSearchBuffer class.
38718
38719         The problem was that we were folding the search target string with full case folding and
38720         the characters of the text we were searching with simple case folding. We now use full
38721         case folding in both cases.
38722
38723         * editing/TextIterator.cpp:
38724         (WebCore::CircularSearchBuffer::CircularSearchBuffer): Changed the buffer to be a
38725         Vector<UChar>. Added a Vector<bool> to record which characters were starts of characters
38726         in the text we are searching. Changed the cursor to be an int rather than a pointer.
38727         (WebCore::CircularSearchBuffer::append): New function that knows how to append multiple
38728         characters when folding case turns one character into many -- uses the full foldCase
38729         rather than the simplified single-character foldCase. Also removed the append function
38730         that did multiple characters at once; that was part of an optimization we don't need.
38731         (WebCore::CircularSearchBuffer::isMatch): Instead of asserting that the buffer is full,
38732         changed this to return false if it's not full, which lets us fill up the buffer with
38733         the normal loop. Also return false if the start of the buffer is half-way through a
38734         case-folded character and updated this since m_cursor is now an integer.
38735         (WebCore::CircularSearchBuffer::length): This returns the length in non-case-folded
38736         characters of the characters that were appended, which may not be the same as the length
38737         of the original target string. To do that we have to total up the character start
38738         booleans for the current state of the circular buffer.
38739         (WebCore::findPlainText): Streamlined the logic in a few ways: 1) Moved more of the
38740         return value setup to the top of the function so it could be shared with the early
38741         error exit. 2) Removed the separate "fill the buffer" logic, which allowed me to
38742         remove some of the functions from CircularSearchBuffer and eliminated the need for
38743         two nested loops. 3) Replaced the CharacterIterator and bool that were used to record
38744         the location we found with integers matchStart and matchLength. 4) Got rid of the use
38745         of goto since we don't have two nested loops any more.
38746
38747 2007-05-14  Andrew Wellington  <proton@wiretapped.net>
38748
38749         Reviewed by Darin.
38750
38751         Fix http://bugs.webkit.org/show_bug.cgi?id=13275
38752         Safari crashed when trying to login using the windows live contact control
38753
38754         Check for cleared windowObj in JSAbstractEventListener::handleEvent
38755
38756         * bindings/js/kjs_events.cpp:
38757         (KJS::JSAbstractEventListener::handleEvent):
38758
38759 2007-05-13  Alexey Proskuryakov  <ap@webkit.org>
38760
38761         Reviewed by Darin.
38762
38763         http://bugs.webkit.org/show_bug.cgi?id=13690
38764         JavaScript Form Validation issue on Banco do Brasil site
38765
38766         Test: fast/forms/input-setvalue-selection.html
38767
38768         * html/HTMLInputElement.cpp:
38769         (WebCore::HTMLInputElement::setValue): In other browsers, changing textInput.value
38770         always moves the insertion point past the text. In 10.4.9 WebKit, this only worked
38771         for inactive controls, and it never worked in ToT.
38772
38773 2007-05-13  Brady Eidson  <beidson@apple.com>
38774
38775         Reviewed by Mitz
38776
38777         http://bugs.webkit.org/show_bug.cgi?id=13701
38778
38779         Since HTMLInputElements register themselves with their Document for special handling, if their document
38780         ever changes then bad things can happen.
38781
38782         Unfortunately, with adoptNode, the document can change.  This has been a long standing crasher with all 
38783         input fields but was given recent high visibility by r21430
38784
38785         The solution is to add functionality for a Node to react to its owner document changing via a pair of 
38786         virtual callbacks.  Then we can tap into those callbacks in HTMLInputElement.
38787
38788         No layout test possible until http://bugs.webkit.org/show_bug.cgi?id=13672 is resolved
38789
38790         * dom/Node.cpp:
38791         (WebCore::Node::setDocument): Call willMoveToNewOwnerDocument and didMoveToNewOwnerDocument
38792
38793         * dom/Node.h:
38794         (WebCore::Node::willMoveToNewOwnerDocument): Virtual callback to a node for before an owner document change
38795         (WebCore::Node::didMoveToNewOwnerDocument): Virtual callback to a node for after an owner document change
38796
38797         * html/HTMLInputElement.cpp:
38798         (WebCore::HTMLInputElement::~HTMLInputElement): Unconditionally unregister both for both form state
38799           and the cache restoration callback
38800         (WebCore::HTMLInputElement::setInputType): Change registration with the document only if we're in one
38801         (WebCore::HTMLInputElement::attach): Don't bother registering for the callback here - that will be
38802           handled by setInputType() or by a change in owner document
38803         (WebCore::HTMLInputElement::willMoveToNewOwnerDocument): Unregister with the old owner document
38804         (WebCore::HTMLInputElement::didMoveToNewOwnerDocument): Register with the new owner document
38805         * html/HTMLInputElement.h:
38806
38807 2007-05-13  Darin Adler  <darin@apple.com>
38808
38809         * platform/mac/TextBreakIteratorInternalICUMac.mm: Fix comment typo.
38810
38811 2007-05-13  Rob Buis  <buis@kde.org>
38812
38813         Reviewed by Darin.
38814
38815         http://bugs.webkit.org/show_bug.cgi?id=13529
38816         DOM3 keyIdentifier text is incorrect
38817
38818         Use 4 digits for the Unicode based key identifiers.
38819
38820         * html/HTMLButtonElement.cpp:
38821         (WebCore::HTMLButtonElement::defaultEventHandler):
38822         * html/HTMLInputElement.cpp:
38823         (WebCore::HTMLInputElement::defaultEventHandler):
38824         * html/HTMLSelectElement.cpp:
38825         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
38826         * page/EventHandler.cpp:
38827         (WebCore::EventHandler::defaultKeyboardEventHandler):
38828         * page/gdk/EventHandlerGdk.cpp:
38829         (WebCore::isKeyboardOptionTab):
38830         * page/mac/EventHandlerMac.mm:
38831         (WebCore::isKeyboardOptionTab):
38832         * page/qt/EventHandlerQt.cpp:
38833         (WebCore::isKeyboardOptionTab):
38834         * platform/gdk/KeyEventGdk.cpp:
38835         (WebCore::keyIdentifierForGdkKeyCode):
38836         * platform/mac/KeyEventMac.mm:
38837         (WebCore::keyIdentifierForKeyEvent):
38838         * platform/qt/PlatformKeyboardEventQt.cpp:
38839         (WebCore::keyIdentifierForQtKeyCode):
38840         * platform/win/KeyEventWin.cpp:
38841         (WebCore::keyIdentifierForWindowsKeyCode):
38842         * platform/wx/KeyEventWin.cpp:
38843         (WebCore::keyIdentifierForWindowsKeyCode):
38844         * platform/wx/KeyboardEventWx.cpp:
38845         (WebCore::keyIdentifierForWxKeyCode):
38846
38847 2007-05-12  Darin Adler  <darin@apple.com>
38848
38849         Reviewed by Antti.
38850
38851         - fix <rdar://problem/5174903> Safari crashes opening the attached webarchive (made by OmniWeb)
38852
38853         * loader/icon/IconLoader.cpp:
38854         (WebCore::IconLoader::didReceiveResponse): Check ResourceHandle for nil before calling url() on it.
38855         (WebCore::IconLoader::didFail): Ditto.
38856         (WebCore::IconLoader::didFinishLoading): Ditto.
38857
38858 2007-05-12  Rob Buis  <buis@kde.org>
38859
38860         Reviewed by Oliver.
38861
38862         Cleanup, get rid of the SVGStyledElement::view() call.
38863
38864         * ksvg2/svg/SVGClipPathElement.cpp:
38865         (WebCore::SVGClipPathElement::canvasResource):
38866         * ksvg2/svg/SVGFEFloodElement.cpp:
38867         (WebCore::SVGFEFloodElement::filterEffect):
38868         * ksvg2/svg/SVGGradientElement.cpp:
38869         (WebCore::SVGGradientElement::buildStops):
38870         * ksvg2/svg/SVGStyledElement.cpp:
38871         * ksvg2/svg/SVGStyledElement.h:
38872
38873 2007-05-12  Mitz Pettel  <mitz@webkit.org>
38874
38875         Reviewed by Hyatt.
38876
38877         - fix http://bugs.webkit.org/show_bug.cgi?id=13680
38878           Incomplete repaint of focus ring around continuation
38879
38880         Test: fast/repaint/continuation-after-outline.html
38881
38882         * rendering/RenderFlow.cpp:
38883         (WebCore::RenderFlow::absoluteClippedOverflowRect):
38884
38885 2007-05-12  Oliver Hunt  <oliver@apple.com>
38886
38887         Reviewed by Hyatt.
38888
38889         <rdar://problem/4728842> Can't drag-and-drop files onto <input type="file">
38890         
38891         This patch allows a file to be dropped on to a file input field.  There
38892         are a few changes for data handling and a  few to allow the data to be
38893         threaded to the appropriate places.
38894
38895         * page/DragController.cpp:
38896         (WebCore::asFileInput):
38897            When dropping a file onto a file input we may mouse over either 
38898            the element itself, or the contained button element.  This method
38899            returns the base element for the file input in either of these
38900            cases.
38901         (WebCore::DragController::tryDocumentDrag):
38902            Don't try to set the drag caret to a file input.
38903         (WebCore::DragController::concludeDrag):
38904            Handle dropping onto a file input element.
38905         (WebCore::DragController::canProcessDrag):
38906            We can now process a file being dragged onto a file input element.
38907            
38908         * platform/DragData.h:
38909            New accessors
38910            
38911         * platform/gdk/DragDataGdk.cpp:
38912         (WebCore::DragData::containsFiles):
38913         (WebCore::DragData::asFilenames):
38914            Link stubs.
38915            
38916         * platform/mac/DragDataMac.mm:
38917         (WebCore::DragData::containsFiles):
38918         (WebCore::DragData::asFilenames):
38919            Implement new accessors
38920         (WebCore::DragData::containsCompatibleContent):
38921            Update containsCompatibleContent to allow standalone files.
38922           
38923         * platform/qt/DragDataQt.cpp:
38924         (WebCore::DragData::containsFiles):
38925         (WebCore::DragData::asFilenames):
38926            Link stubs
38927                       
38928         * rendering/RenderFileUploadControl.cpp:
38929         (WebCore::RenderFileUploadControl::receiveDroppedFile):
38930         * rendering/RenderFileUploadControl.h:
38931            For security reasons we don't have an api to allow us to set 
38932            a value directly on a file input -- attempts to do so are
38933            blocked.  By adding a method to set the target through the 
38934            render we bypass such restrictions, and ensure the renderer
38935            is updated correctly.
38936
38937 2007-05-12  Mitz Pettel  <mitz@webkit.org>
38938
38939         Reviewed by Hyatt.
38940
38941         - fix http://bugs.webkit.org/show_bug.cgi?id=13695
38942           REGRESSION (r21387): Replaced elements' highlight rects are wrongly positioned
38943
38944         Test: fast/replaced/selection-rect.html
38945
38946         Also fixes the same problem with list markers, covered by existing test
38947         fast/lists/markers-in-selection.html.
38948
38949         * rendering/RenderListMarker.cpp:
38950         (WebCore::RenderListMarker::selectionRect):
38951         * rendering/RenderReplaced.cpp:
38952         (WebCore::RenderReplaced::selectionRect):
38953
38954 2007-05-12  Mitz Pettel  <mitz@webkit.org>
38955
38956         Reviewed by Darin.
38957
38958         - fix http://bugs.webkit.org/show_bug.cgi?id=13685
38959           REGRESSION (r21368-r21388): Highlighting text in scrolled textareas behaves oddly
38960
38961         Test: fast/repaint/text-selection-rect-in-overflow.html
38962
38963         * rendering/RenderText.cpp:
38964         (WebCore::RenderText::selectionRect):
38965
38966 2007-05-12  Brady Eidson  <beidson@apple.com>
38967
38968         Rubber stamped by Mitz
38969
38970         * html/HTMLInputElement.cpp:
38971         (WebCore::HTMLInputElement::attach): unregister->register - I screwed this one up in last minute renaming
38972           before committing  :(
38973
38974 2007-05-11  Brady Eidson  <beidson@apple.com>
38975
38976         Reviewed by Darin and Geoff
38977
38978         Fix for http://bugs.webkit.org/show_bug.cgi?id=13630
38979         and
38980         <rdar://problem/4873628>
38981
38982         Back/Forward cache should work with pages with login fields.
38983
38984         First change is to relocate the "useSecureKeyboardEntry" flag to the document.  This lets
38985         it persist through page cache transitions and it is truly a per-document concept more than
38986         per-frame anyways since its the document that has a password field, not the frame.
38987
38988         Second change is to introduce the concept of an Element getting a "didRestoreFromCache()" callback.
38989         The idea is for elements to register with the document if they need work to be done when the
38990         page comes out of the back/forward cache.  Currently the only client of this service is 
38991         HTMLInputElements that are input type == PASSWORD.  Such an element's implementation for this
38992         method is to call reset()
38993
38994         Finally, after a page is restored from the cache we have the document send the didRestoreFromCache()
38995         callback to its registered Elements.  The whole design is to clear the password fields after 
38996         restoring the page instead of when caching the page because we want to defer work for the common
38997         case - there shouldn't be extra work here just to navigate away from a page when the common case
38998         is that you'll never go back!
38999
39000         No layout tests possible until http://bugs.webkit.org/show_bug.cgi?id=13672 is resolved
39001
39002         * dom/Document.cpp:
39003         (WebCore::Document::Document):
39004         (WebCore::Document::registerForDidRestoreFromCacheCallback): Add an Element to the special page-restoration callback list
39005         (WebCore::Document::unregisterForDidRestoreFromCacheCallback): Remove such an element
39006         (WebCore::Document::didRestoreFromCache): Called by FrameLoader - dispatch to all the registered elements
39007         (WebCore::Document::setUseSecureKeyboardEntryWhenActive): Set the local flag and call updateSecureKeyboardEntryIfActive
39008           on the Frame
39009         (WebCore::Document::useSecureKeyboardEntryWhenActive): Return the flag
39010
39011         * dom/Document.h:
39012         (WebCore::Document::unregisterFormElementWithState): Renamed
39013
39014         * dom/Element.h:
39015         (WebCore::Element::didRestoreFromCache): Added virtual base method
39016
39017         * html/HTMLInputElement.cpp:
39018         (WebCore::HTMLInputElement::~HTMLInputElement): Deregister from the document if inputType == PASSWORD
39019         (WebCore::HTMLInputElement::dispatchFocusEvent): Set the flag on the document, not the frame
39020         (WebCore::HTMLInputElement::dispatchBlurEvent): Ditto
39021         (WebCore::HTMLInputElement::setInputType): If changing to/from PASSWORD, register/deregister in the document accordingly
39022         (WebCore::HTMLInputElement::attach): Call registerForDidRestoreFromCacheCallback(this) instead of passwordFieldAdded()
39023         (WebCore::HTMLInputElement::didRestoreFromCache): Call reset();
39024         * html/HTMLInputElement.h:
39025
39026         * html/HTMLSelectElement.cpp:
39027         (WebCore::HTMLSelectElement::~HTMLSelectElement): Renamed deregisterFormElementWithState to unregisterFormElementWithState
39028         * html/HTMLTextAreaElement.cpp:
39029         (WebCore::HTMLTextAreaElement::~HTMLTextAreaElement): Ditto
39030
39031         * loader/FrameLoader.cpp:
39032         (WebCore::FrameLoader::canCachePage): Remove the check for password fields - they're allowed now!
39033         (WebCore::FrameLoader::opened): Tell the document to dispatch to the registered elements
39034         (WebCore::FrameLoader::saveDocumentState): Remove the check for password fields.  Turns out that when we grab a copy a the
39035           form state we're only copying the state of form elements that are registered with the Document - and that set 
39036           explicitly excludes Password elements
39037
39038         * page/Frame.cpp:
39039         (WebCore::Frame::setDocument): If the frame is active, set the setUseSecureKeyboardEntry based on the setting contained
39040           in the new document
39041         (WebCore::Frame::updateSecureKeyboardEntryIfActive): Notification for the secure entry flag changing - if the Frame is
39042           active, then update to the new setting from the document
39043         (WebCore::Frame::setIsActive): Grab the useSecureKeyboardEntry flag from the document instead of FramePrivate
39044         (WebCore::FramePrivate::FramePrivate):
39045         * page/Frame.h:
39046         * page/FramePrivate.h:
39047
39048 2007-05-12  David Hyatt  <hyatt@apple.com>
39049
39050         FIx for 13696.  Rework residual style to be much more aggressive about reopening.  Added
39051         a comprehensive test case of HTML tags to guarantee we match Firefox.  We now have an exclusion
39052         set rather than an inclusion set, so unknown future tags will also participate in residual style.
39053
39054         Reviewed by olliej
39055
39056         fast/invalid/residual-style.html
39057
39058 2007-05-12  David Hyatt  <hyatt@apple.com>
39059
39060         Fix for bug 12740, bmw.com doesn't work.  We were missing a rule that is covered by the HTML5
39061         parsing spec.  A <table> encountered while inside stray table content should close up the
39062         table responsible for the stray content and start the new table as a sibling of the first.
39063
39064         Reviewed by mjs
39065
39066         fast/invalid/table-inside-stray-table-content.html
39067
39068 2007-05-12  Eric Seidel  <eric@webkit.org>
39069
39070         Reviewed by mjs.
39071
39072         Crash starting Safari with JavaScript disabled.
39073         http://bugs.webkit.org/show_bug.cgi?id=13691
39074         
39075         Test: none possible.
39076
39077         * page/mac/FrameMac.mm:
39078         (WebCore::Frame::cleanupPlatformScriptObjects): NULL check d->m_script
39079
39080 2007-05-11  David Hyatt  <hyatt@apple.com>
39081
39082         Fix for http://bugs.webkit.org/show_bug.cgi?id=13688, Colloquy is broken!
39083
39084         Make sure to adjust the baseline of a percentage height table cell's row if the
39085         cell flexes (and lowers the baseline).
39086
39087         Reviewed by olliej
39088
39089         fast/tables/vertical-align-baseline-readjust.html
39090
39091         (WebCore::RenderTableSection::calcRowHeight):
39092         (WebCore::RenderTableSection::layoutRows):
39093         * rendering/RenderTableSection.h:
39094         (WebCore::RenderTableSection::getBaseline):
39095         
39096 2007-05-11  David Hyatt  <hyatt@apple.com>
39097
39098         Make sure focus rings are always using the exterior style, regardless
39099         of what the OS default is.
39100
39101         Reviewed by beth
39102
39103         * rendering/RenderThemeMac.mm:
39104         (WebCore::RenderThemeMac::checkbox):
39105         (WebCore::RenderThemeMac::radio):
39106         (WebCore::RenderThemeMac::popupButton):
39107         (WebCore::RenderThemeMac::search):
39108         (WebCore::RenderThemeMac::sliderThumbHorizontal):
39109         (WebCore::RenderThemeMac::sliderThumbVertical):
39110
39111 2007-05-11  Oliver Hunt  <oliver@apple.com>
39112
39113         Reviewed by Hyatt.
39114         
39115         <rdar://problem/5195473> REGRESSION: "Curly quote" fails to 
39116         be displayed correctly even when META tag specifies charset=x-mac-roman
39117
39118
39119         * platform/TextCodecICU.cpp:
39120         (WebCore::TextCodecICU::registerExtendedEncodingNames):
39121         Register the xmacroman encoding
39122
39123 2007-05-11  Maciej Stachowiak  <mjs@apple.com>
39124
39125         Reviewed by Hyatt.
39126
39127         REGRESSION (r21367): Crash due to null document deref when closing bookmarks
39128         http://bugs.webkit.org/show_bug.cgi?id=13662
39129
39130         * loader/FrameLoader.cpp:
39131         (WebCore::FrameLoader::provisionalLoadStarted): Remove some useless and now harmful
39132         code - there's no need to clear in this case.
39133
39134 2007-05-11  Oliver Hunt  <oliver@apple.com>
39135
39136         GDK Build fix
39137
39138         * ChangeLog:
39139         * dom/Document.cpp:
39140         (WebCore::Document::importNode):
39141
39142 2007-05-11  Maciej Stachowiak  <mjs@apple.com>
39143
39144         Reviewed by Geoff.
39145         
39146         - fixed <rdar://problem/5197621> closing second window crashed webkit (13660)
39147         http://bugs.webkit.org/show_bug.cgi?id=13660
39148
39149         No test case; not testable.
39150
39151         * page/mac/FrameMac.mm:
39152         (WebCore::Frame::cleanupPlatformScriptObjects): Check if the interpreter is null;
39153         if so, we don't want to do work that may lazily create it while the Frame is being
39154         destroyed.
39155
39156 2007-05-11  Oliver Hunt  <oliver@apple.com>
39157
39158         Reviewed by Brady.
39159         
39160         <rdar://problem/5017375> WebKit should disable SVG in Dashboard
39161         
39162         Prevents an SVG document or element from being created when in
39163         dashboard compatibility mode.
39164         
39165         Manually parsing, or using XHR to created a document removes our 
39166         ability to detect Dashboard compatibility mode, so we also perform
39167         the check when importing nodes from one document into another.
39168
39169         * dom/DOMImplementation.cpp:
39170         (WebCore::DOMImplementation::createDocument):
39171           Don't create an SVGDocument if we're in dashboard compatibility mode
39172           
39173         * dom/Document.cpp:
39174         (WebCore::Document::importNode):
39175           Don't import SVG nodes if we're in dashboard compatibility mode
39176           
39177         * ksvg2/scripts/make_names.pl:
39178           Don't create SVG elements for documents that are in dashboard
39179           compatibility mode
39180
39181 2007-05-11  Holger Hans Peter Freyther  <zecke@selfish.org>
39182
39183         Reviewed by Maciej.
39184
39185         Bug 13676: [cairo/gdk] Provide implementation for ImageBufferCairo
39186         http://bugs.webkit.org/show_bug.cgi?id=13676
39187
39188         There are no test cases that explicitly cover platform/graphics at present.
39189
39190         * platform/graphics/ImageBuffer.h: Add cairo bits
39191         * platform/graphics/cairo/ImageBufferCairo.cpp: Untested implementation of the ImagerBuffer using the image_surface
39192         (WebCore::ImageBuffer::create): Create a reasonable sized surface
39193         (WebCore::ImageBuffer::ImageBuffer): Use a cairo_surface and create a GraphicsContext. GraphicsContext takes the cairo_t ownership
39194         (WebCore::ImageBuffer::~ImageBuffer): Unref the surface
39195         (WebCore::ImageBuffer::context): simply return the GraphicsContext, it should be possible to directly draw on it.
39196
39197 2007-05-11  Mitz Pettel  <mitz@webkit.org>
39198
39199         Release build fix.
39200
39201         * platform/mac/ShapeArabic.c:
39202         (shapeArabic):
39203
39204 2007-05-11  Geoffrey Garen  <ggaren@apple.com>
39205
39206         Reviewed by Darin Adler.
39207
39208         Removed +[WebScriptObject scriptObjectForJSObject:frame:] because the
39209         WebScriptObject API has some serious limitations that make it not ready
39210         to be used everywhere the C API is used. Hopefully we can add a good
39211         ObjC API in the future that doesn't suffer from this problem.
39212         
39213         Preliminary notes about these limitations are in <rdar://problem/4876466>.
39214
39215         * bindings/objc/WebScriptObject.mm:
39216         * bindings/objc/WebScriptObjectPendingPublic.h:
39217
39218 2007-05-11  Mitz Pettel  <mitz@webkit.org>
39219
39220         Reviewed by Darin.
39221
39222         - fix http://bugs.webkit.org/show_bug.cgi?id=13635
39223           REGRESSION: Cannot log in to webmail.co.za account
39224
39225         Test: fast/dom/HTMLOptionElement/option-text.html
39226
39227         Despite the specification that the 'text' attribute of HTMLOptionElement
39228         is "the text contained within the option element", other browsers return
39229         the text as displayed in the list box or popup, which is without leading,
39230         trailing and collapsible whitespace.
39231
39232         * html/HTMLOptionElement.cpp:
39233         (WebCore::HTMLOptionElement::text): Moved the code to trim and collapse
39234         whitespace and replace backslashes with the currency symbol into this
39235         function.
39236         (WebCore::HTMLOptionElement::optionText): Left only the code that adds
39237         the leading spaces for grouped options. Removed code that, in quirks mode,
39238         displayed the label if the option element contained no text. That behavior
39239         did not match WinIE and the description of the expected behavior in
39240         fast/forms/HTMLOptionElement_label06.html.
39241
39242 2007-05-11  Mitz Pettel  <mitz@webkit.org>
39243
39244         Reviewed by Darin.
39245
39246         - fix http://bugs.webkit.org/show_bug.cgi?id=13572
39247           Arabic characters are not correctly joined when using Arial
39248
39249         No tests added because standard fonts do not use the character-based shaping
39250         code path.
39251
39252         Added shapeArabic(), a private version of u_shapeArabic() from ICU,
39253         patched to shape Arabic characters used in Persian, Urdu, Sindhi, etc.
39254         (whose contextual forms belong to the Arabic Presentation Forms-A block).
39255
39256         * WebCore.xcodeproj/project.pbxproj: Added ShapeArabic.{c,h}.
39257         * platform/mac/FontMac.mm:
39258         (WebCore::shapeArabic): Changed to call shapeArabic() instead of u_shapeArabic().
39259         * platform/mac/ShapeArabic.c: Added. Based on ushape.c from ICU, with
39260         additional shaping data and logic for Arabic Presentation Forms-A. Removed
39261         many options that are not used in WebKit and code that malloc()ed a temporary
39262         buffer and reversed the string.
39263         (changeLamAlef):
39264         (specialChar):
39265         (getLink):
39266         (isTashkeelChar):
39267         (shapeUnicode):
39268         (shapeArabic):
39269         * platform/mac/ShapeArabic.h: Added.
39270
39271 2007-05-11  Darin Adler  <darin@apple.com>
39272
39273         Reviewed by Mitz.
39274
39275         - fix http://bugs.webkit.org/show_bug.cgi?id=7452
39276           <rdar://problem/3211749> line breaks ignored after <wbr> in <pre> block (affects livejournal.com)
39277
39278         - fix http://bugs.webkit.org/show_bug.cgi?id=10657
39279           <rdar://problem/4274588> <wbr> tags are ignored
39280
39281         - fix http://bugs.webkit.org/show_bug.cgi?id=12689
39282           <wbr> :before/:after content causes line break
39283
39284         - fix <rdar://problem/5127366> DOM tree isn't correct when parsing with <wbr>
39285
39286         Test: fast/text/wbr-pre.html
39287         Test: fast/text/wbr.html
39288         Test: fast/css-generated-content/wbr-with-before-content.html
39289         Test: fast/parser/parse-wbr.html
39290
39291         * html/HTMLElement.h:
39292         * html/HTMLElement.cpp:
39293         (WebCore::HTMLElement::endTagRequirement): Use the same end tag requirement for a <wbr>
39294         element as for a <br> element, TagStatusForbidden.
39295         (WebCore::HTMLElement::tagPriority): Use the same priority for a <wbr> element as for a
39296         <br> element, 0.
39297         (WebCore::HTMLElement::createRenderer): Added. Create a RenderWordBreak to trigger the
39298         new rendering code paths.
39299
39300         * rendering/RenderFlow.h: Add a virtual isWordBreak so we can detect RenderWordBreak.
39301
39302         * rendering/RenderWordBreak.h: Added.
39303         * rendering/RenderWordBreak.cpp: Added.
39304
39305         * WebCore.pro: Added new files.
39306         * WebCore.xcodeproj/project.pbxproj: Added new files.
39307         * WebCoreSources.bkl: Added new files.
39308
39309         * rendering/RenderBlock.cpp: (WebCore::RenderBlock::calcInlinePrefWidths): Reset the
39310         line when we hit a <wbr>.
39311         * rendering/bidi.cpp: (WebCore::RenderBlock::findNextLineBreak): Add a line break when
39312         we hit a <wbr>.
39313
39314         * dom/Node.cpp: (Node::createRendererIfNeeded): Fix a null check for the case where
39315         createRenderer returns 0 even though rendererIsNeeded returned true. I can't reproduce
39316         it on demand, but while running layout tests I hit this once. Since there was already
39317         a null check here, I rearranged it so it guards all the code that uses the renderer.
39318         Later we might want to figure out under exactly what circumstances rendererIsNeeded
39319         will return true but createRenderer return 0 and consider eliminating them.
39320
39321 2007-05-11  David Hyatt  <hyatt@apple.com>
39322
39323         Fix for bug 13675, focus rings don't repaint properly on editable
39324         continuations.
39325
39326         Reviewed by olliej
39327
39328         (WebCore::InlineFlowBox::paint):
39329         * rendering/RenderBlock.cpp:
39330         (WebCore::RenderBlock::paintObject):
39331         (WebCore::continuationOutlineTable):
39332         (WebCore::RenderBlock::addContinuationWithOutline):
39333         (WebCore::RenderBlock::paintContinuationOutlines):
39334         * rendering/RenderBlock.h:
39335         * rendering/RenderBox.cpp:
39336         (WebCore::RenderBox::absoluteClippedOverflowRect):
39337         * rendering/RenderObject.cpp:
39338         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
39339         (WebCore::RenderObject::absoluteOutlineBox):
39340
39341 2007-05-11  Rob Buis  <buis@kde.org>
39342
39343         Reviewed by Oliver.
39344
39345         Cleanups mostly inspired by Coverage results.
39346
39347         * ksvg2/css/SVGCSSParser.cpp:
39348         (WebCore::CSSParser::parseSVGValue):
39349         (WebCore::CSSParser::parseSVGStrokeDasharray):
39350         * ksvg2/css/SVGRenderStyleDefs.cpp:
39351         (StyleFillData::operator==):
39352         * ksvg2/svg/SVGColor.cpp:
39353         (WebCore::SVGColor::colorFromRGBColorString):
39354
39355 2007-05-11  Holger Freyther <freyther@kde.org>
39356
39357         Reviewed by Mark Rowe.
39358
39359         Move libcurl configuration into WebKit.pri so it will be used by GdkLauncher.
39360
39361         * WebCore.pro:
39362
39363 2007-05-10  David Hyatt  <hyatt@apple.com>
39364
39365         <rdar://problem/5015522> Bounds rectangle of unloaded images is 
39366         drawn briefly while loading
39367         
39368         When the image is null and has no size, don't draw the grey
39369         rectangles or alt text any more.  Wait for an actual error to
39370         occur with the image before we start showing alt text and borders.
39371
39372         (Images with no source set at all will continue to show alt text and
39373         borders immediately.)
39374
39375         Reviewed by bradee-oh
39376
39377         * rendering/RenderImage.cpp:
39378         (WebCore::RenderImage::paint):
39379
39380 2007-05-10  Mitz Pettel  <mitz@webkit.org>
39381
39382         Reviewed by Darin.
39383
39384         - fix http://bugs.webkit.org/show_bug.cgi?id=13655
39385           Incomplete repaint when text-shadow is used in a render layer with explicit height
39386
39387         Test: fast/repaint/layer-full-repaint.html
39388
39389         Removed custom repaint logic from RenderLayer. repaintAfterLayoutIfNeeded()
39390         knows how to do everything we need now. The only catch is that we cannot
39391         rely on its "do a full repaint if the object needs layout" behavior, since
39392         by the time we call it, the needs layout flag has been reset. The solution
39393         is to cache the need for a full repaint in the layer.
39394
39395         * page/FrameView.cpp:
39396         (WebCore::FrameView::layout): Removed call to checkForRepaintOnResize().
39397         * rendering/RenderLayer.cpp:
39398         (WebCore::RenderLayer::checkForRepaintOnResize): Removed.
39399         (WebCore::RenderLayer::RenderLayer): Replaced the m_repaintOverflowOnResize
39400         flag with a m_needsFullRepaint flag, which indicates that the layer needs
39401         to do a full repaint in the next call to updateLayerPositions().
39402         (WebCore::RenderLayer::updateLayerPositions): Simplified the repaint logic.
39403         Either call repaintAfterLayoutIfNeeded() or do a full repaint, depending on
39404         m_needsFullRepaint.
39405         * rendering/RenderLayer.h:
39406         (WebCore::RenderLayer::setNeedsFullRepaint):
39407         * rendering/RenderObject.cpp:
39408         (WebCore::RenderObject::setNeedsLayout): Mark the layer for full repaint.
39409
39410 2007-05-10  Justin Garcia  <justin.garcia@apple.com>
39411
39412         Reviewed by ggaren
39413
39414         <rdar://problem/5195166> Incorrect proposedRange DOMRange passed to WebViewEditing delegate
39415         
39416         In setModifyBias, we must cache the start and the end 
39417         because the calls to setBase and setExtent can modify 
39418         them (added a testcase).
39419         The temporary SelectionController that we use in modify() to
39420         produce the proposed range that will be passed to 
39421         shouldChangeSelectedDOMRange must have the same m_modifyBias
39422         as the original SelectionController, or else when the 
39423         modification is performed, setModifyBias can swap the base 
39424         and the extent incorrectly (added a testcase).
39425         Renamed m_modifyBias to m_lastChangeWasHorizontalExtension.
39426         Renamed setModifyBias to willBeModified.
39427
39428         * editing/SelectionController.cpp:
39429         (WebCore::SelectionController::SelectionController):
39430         (WebCore::SelectionController::setSelection):
39431         (WebCore::SelectionController::willBeModified):
39432         (WebCore::SelectionController::modify):
39433         * editing/SelectionController.h:
39434         (WebCore::SelectionController::setLastChangeWasHorizontalExtension):
39435         * page/EventHandler.cpp:
39436         (WebCore::EventHandler::handleMousePressEventSingleClick):
39437         (WebCore::EventHandler::updateSelectionForMouseDragOverPosition):
39438
39439 2007-05-10  Geoffrey Garen  <ggaren@apple.com>
39440
39441         Reviewed by Darin Adler.
39442
39443         "IconDatabase::sharedIconDatabase()" => "iconDatabase()" for terseness,
39444         in the style of WebCore::cache().
39445
39446         * WebCore.exp:
39447         * history/HistoryItem.cpp: Removed retainIconInDatabase because calling
39448         "retain" in order to release something is really confusing and, now that
39449         iconDatabase() is more terse, we don't need this helper to shorten the
39450         syntax. (The isEmpty() check is also done by the database, so we don't 
39451         need it either.)
39452
39453         (WebCore::IconDatabase::~IconDatabase): ASSERT that our destructor isn't
39454         called. We're a singleton, so it's confusing to have tear-down code.
39455
39456 2007-05-10  Adele Peterson  <adele@apple.com>
39457
39458         Reviewed by Hyatt.
39459
39460         WebCore part of fix for <rdar://problem/4100616> Doing a "find" in RSS doesn't scroll to result
39461
39462         Test: fast/overflow/scroll-nested-positioned-layer-in-overflow.html
39463
39464         Merged visibleSelectionRect into selectionRect.  selectionRect() now takes an argument to determine
39465         whether or not to return a rect that clips to the visible content.  This change makes all of the implementations of selectionRect
39466         consistent by having them all consider the repaint rect when clipping to visible content.
39467
39468         * page/Frame.cpp:
39469         (WebCore::Frame::revealSelection): Call selectionRect with clipToVisibleContent = false, so we can get a rect that's not visible to reveal.
39470         (WebCore::Frame::selectionRect): Added clipToVisibleContent argument, and merged visibleSelectionRect into this method.
39471         (WebCore::Frame::setIsActive): Use selectionRect instead of visibleSelectionRect.
39472         * page/Frame.h:
39473         * page/mac/FrameMac.mm: (WebCore::Frame::selectionImage): Update layout before creating the image.  Use selectionRect instead of visibleSelectionRect.
39474         * page/DragController.cpp: (WebCore::dragLocForSelectionDrag): Use selectionRect instead of visibleSelectionRect.
39475
39476         * rendering/RenderBR.h: (WebCore::RenderBR::selectionRect): Updated argument.
39477         * rendering/RenderBlock.h: (WebCore::RenderBlock::selectionRect): ditto.
39478         * rendering/RenderSVGInlineText.cpp: (WebCore::RenderSVGInlineText::selectionRect): ditto.
39479         * rendering/RenderSVGInlineText.h: ditto.
39480         * rendering/RenderObject.h: 
39481         (WebCore::RenderObject::selectionRect): ditto.
39482         (WebCore::RenderObject::SelectionInfo::SelectionInfo): ditto.
39483         * rendering/RenderView.cpp:
39484         (WebCore::RenderView::selectionRect): ditto.
39485         (WebCore::RenderView::setSelection): ditto.
39486         * rendering/RenderView.h:
39487
39488         * rendering/RenderText.h:
39489         * rendering/RenderText.cpp: (WebCore::RenderText::selectionRect): Only call computeAbsoluteRepaintRect when clipping to visible content.
39490         Otherwise, just adjust the rect to the correct position.
39491         * rendering/RenderListMarker.h:
39492         * rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::selectionRect):
39493           To match what we do in RenderText, if we're trying to clip to visible content, just call computeAbsoluteRepaintRect.
39494         * rendering/RenderReplaced.h:
39495         * rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::selectionRect): ditto.
39496
39497         * rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollRectToVisible): Check for a parent layer at the beginning, so we can try to scroll all of our parent layers 
39498           first, before trying to scroll the top level view.  Also, don't try to scroll overflow layers that have -webkit-line-clamp restricting the height.
39499           This will prevent us from revealing text hidden by the slider in Safari RSS.
39500
39501         * WebCore.exp: Update symbols for WebKit.
39502
39503 2007-05-10  David Hyatt  <hyatt@apple.com>
39504
39505         Fix for:
39506
39507         <rdar://problem/5195272> REGRESSION: broke outline rings for continuations 
39508         with empty inline containers
39509         
39510         http://bugs.webkit.org/show_bug.cgi?id=13667
39511
39512         Make sure to only include collapsed top/bottom margins of the block portion
39513         of the continuation if we know for sure that we have inline line boxes before
39514         and after that would prevent the collapse from going further.
39515
39516         In plain English: the focus rings were too tall. :)
39517
39518         Reviewed by beth
39519
39520         * rendering/RenderFlow.cpp:
39521         (WebCore::RenderFlow::addFocusRingRects):
39522
39523 2007-05-10  David Hyatt  <hyatt@apple.com>
39524
39525         Fix for:
39526
39527         <rdar://problem/5067235> REGRESSION: Excessively wide table, impossible to resize
39528
39529         The table used white-space: pre-wrap, which is supported only by WebKit.  There
39530         was a bug with the computation of min pref width for pre-wrap text.
39531
39532         Reviewed by mitzpettel
39533
39534         fast/text/white-space/pre-wrap-line-test.html
39535
39536         * rendering/RenderText.cpp:
39537         (WebCore::RenderText::calcPrefWidths):
39538
39539 2007-05-10  Brady Eidson  <beidson@apple.com>
39540
39541         Reviewed by Oliver
39542
39543         Cleanup from my earlier Java Applet patch.  We should keep a central location to query if 
39544         a mime type counts as a Java Applet
39545
39546         * html/HTMLObjectElement.cpp:
39547         (WebCore::HTMLObjectElement::containsJavaApplet): Query MimeTypeRegistry on the type
39548
39549         * platform/MimeTypeRegistry.cpp:
39550         (WebCore::MimeTypeRegistry::isSupportedImageMIMEType): Update style
39551         (WebCore::MimeTypeRegistry::isSupportedImageResourceMIMEType): Ditto
39552         (WebCore::MimeTypeRegistry::isSupportedNonImageMIMEType): Ditto
39553         (WebCore::MimeTypeRegistry::isJavaAppletMIMEType): Perform the Java Applet check
39554         * platform/MimeTypeRegistry.h:
39555
39556         * rendering/RenderPartObject.cpp:
39557         (WebCore::RenderPartObject::updateWidget): Query MimeTypeRegistry on the type
39558
39559 2007-05-10  Patti Hoa  <patti@apple.com>
39560
39561         Reviewed by Darin.
39562         
39563         <rdar://problem/4720109> Sentence textMarker methods do not work well with empty lines
39564         
39565         * bridge/mac/WebCoreAXObject.mm:
39566         (-[WebCoreAXObject doAXNextSentenceEndTextMarkerForTextMarker:]):
39567         (-[WebCoreAXObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
39568         When a marker position is given, the sentence ax methods automatically shift position by one to make sure
39569         not to ask for the current sentence again.  This is generally fine except when the position
39570         shift over an empty line break, which is should be considered a separate sentence. In this case, 
39571         if we used the shifted position to ask for sentence boundary, ICU parser is not given the text data
39572         containing the newline to correctly determine the sentence boundary.  Since the ax sentence method is 
39573         explicitly shifting the position to ask for sentence boundary, it should make sure not to skip over important
39574         character that can be a standalone sentence.
39575         * editing/visible_units.cpp:
39576         (WebCore::nextBoundary):
39577         When determining boundary, don't stop on a collapsed range, such as newline.  
39578         Just pick the next valid position to use as boundary.
39579
39580 2007-05-10  Maciej Stachowiak  <mjs@apple.com>
39581
39582         Reviewed by Oliver.
39583
39584         - WebCore part of fix for:
39585         <rdar://problem/5063277> blank screen after login to Citibank Online (accessing document before frame starts loading cancels load)
39586         <rdar://problem/5159541> REGRESSION (r20972): Wall Street Journal pages replaced by advertisements (13465)
39587
39588         The basic approach is to have Frames start out containing an empty document instead of absolutely nothing,
39589         so there is no need to initialize them on demand. Various side effects of that cause both of these bugs.
39590         
39591         However, this caused many regressions so I had to fix the fallout.
39592         
39593         * WebCore.exp: fix symbol exports
39594         * bindings/js/kjs_window.cpp:
39595         (KJS::createNewWindow): useless "created" bool (we don't need it here)
39596         (KJS::WindowFunc::callAsFunction): detect if we created a new frame, because if so,
39597         we need to initialize the domain (can't count on it not having a document), also
39598         don't try to make a new document for it.
39599         Also, stop properly.
39600         * css/cssstyleselector.cpp:
39601         (WebCore::CSSStyleSelector::CSSStyleSelector): don't count on document having a view here
39602         * html/HTMLObjectElement.cpp:
39603         (WebCore::HTMLObjectElement::isImageType): Ask client, to match how other <object> renderer
39604         decisions are made.
39605         * loader/FrameLoader.cpp:
39606         (WebCore::FrameLoader::FrameLoader): Initialize new data members
39607         (WebCore::FrameLoader::init): Do the slightly tricky sequence of steps to properly make
39608         an empty document with everything hooked up.
39609         (WebCore::FrameLoader::createWindow): Added "created" bool.
39610         (WebCore::FrameLoader::stopLoading): (whitespace change)
39611         (WebCore::FrameLoader::begin): Don't try to create an empty document.
39612         (WebCore::FrameLoader::finishedParsing): If creating an initial empty document, don't
39613         do any of this work.
39614         (WebCore::FrameLoader::checkCompleted): Do checkLoadComplete() as well.
39615         (WebCore::FrameLoader::baseURL): don't check for null document
39616         (WebCore::FrameLoader::baseTarget): ditto
39617         (WebCore::FrameLoader::completeURL): ditto
39618         (WebCore::FrameLoader::didTellBridgeAboutLoad): ditto
39619         (WebCore::FrameLoader::scheduleLocationChange): determine duringLoad differently; doc won't
39620         be null.
39621         (WebCore::FrameLoader::gotoAnchor): don't check for null document
39622         (WebCore::FrameLoader::canTarget): don't check for null document
39623         (WebCore::FrameLoader::stopForUserCancel): new method for explicit stops like window.stop().
39624         (WebCore::FrameLoader::transitionToCommitted): check for pre-loaded state properly
39625         (WebCore::FrameLoader::createEmptyDocument): removed
39626         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): don't send delegate callbacks when making initial
39627         doc.
39628         (WebCore::FrameLoader::tokenizerProcessedData): Assume document; just checkCompleted now that it
39629         does checkLoadComplete.
39630         (WebCore::FrameLoader::receivedMainResourceError): assume document
39631         (WebCore::FrameLoader::saveDocumentState): Assume there's a document except during initial load
39632         (WebCore::FrameLoader::mainReceivedCompleteError): do checkCompleted, not checkLoadComplete
39633         (WebCore::FrameLoader::continueLoadWithData): assume document
39634         * loader/FrameLoader.h:
39635         * loader/MainResourceLoader.cpp:
39636         (WebCore::MainResourceLoader::receivedError): Add more ref protection and do things in a slightly
39637         different order.
39638         * page/DOMWindow.cpp:
39639         (WebCore::DOMWindow::document): don't force document creation, just assert there is one.
39640         * page/Frame.cpp:
39641         (WebCore::Frame::init): Added init method.
39642         (WebCore::Frame::pageDestroyed): when a frame is removed, make sure to check if the parent is
39643         done loading.
39644         * page/Frame.h:
39645         * page/mac/WebCoreFrameBridge.mm:
39646         (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]): No need to force
39647         document.
39648         (-[WebCoreFrameBridge aeDescByEvaluatingJavaScriptFromString:]): ditto
39649         * platform/graphics/svg/SVGImage.cpp:
39650         (WebCore::SVGImage::dataChanged): init the frame
39651         * rendering/RenderPart.cpp:
39652         (WebCore::RenderPart::updateWidgetPosition): If a subframe needs layout, then lay it out even
39653         if the bounds did not change; the content size might be wrong.
39654         * rendering/RenderTreeAsText.cpp:
39655         (WebCore::externalRepresentation): Don't crash if the frame lacks a view.
39656
39657 2007-05-10  David Hyatt  <hyatt@apple.com>
39658
39659         Fix for:
39660
39661         <rdar://problem/5146757> REGRESSION: div that wrapped to screen width in 
39662         tiger no longer wraps
39663         
39664         http://bugs.webkit.org/show_bug.cgi?id=13654
39665
39666         Reviewed by mitz
39667
39668         fast/text/whitespace/normal-after-nowrap-breaking.html
39669
39670         * rendering/RenderBlock.cpp:
39671         (WebCore::RenderBlock::calcInlinePrefWidths):
39672
39673 2007-05-10  David Hyatt  <hyatt@apple.com>
39674
39675         Fix for:
39676
39677         <rdar://problem/4778099> Links with nested continuations fail to 
39678         paint their outlines (11255)
39679         
39680         http://bugs.webkit.org/show_bug.cgi?id=11255
39681
39682         Fix multiple bugs with outline painting of continuations to ensure that
39683         all combos work (empty/full inline - block with/without margins - 
39684         empty/full inline).
39685
39686         Reviewed by mitz
39687
39688         fast/inline/continuation-outlines.html
39689
39690         * rendering/RenderBlock.cpp:
39691         (WebCore::RenderBlock::paintObject):
39692         * rendering/RenderFlow.cpp:
39693         (WebCore::RenderFlow::addFocusRingRects):
39694
39695 2007-05-10  David Hyatt  <hyatt@apple.com>
39696
39697         Fix for:
39698
39699         <rdar://problem/5193529> REGRESSION: RTL Overflows scrollbar not showing 
39700         when they should be
39701         
39702         Fallout from fix for bug 11926.  Make sure to restrict the fix to the
39703         RenderView for now, since the full-blown overflow case is pretty involved.
39704
39705         Reviewed by mitzpettel
39706
39707         fast/overflow/unreachable-content-bug-rtl.html
39708
39709         * rendering/RenderBlock.cpp:
39710         (WebCore::RenderBlock::lowestPosition):
39711         (WebCore::RenderBlock::rightmostPosition):
39712         (WebCore::RenderBlock::leftmostPosition):
39713
39714 2007-05-10  Brady Eidson <beidson@apple.com>
39715
39716         Reviewed by Oliver
39717
39718         Fix for http://bugs.webkit.org/show_bug.cgi?id=13636 and <rdar://problem/5190816>
39719
39720         When creating the applets collection, be sure to only count Objects if they contain
39721         a java applet
39722
39723         * html/HTMLCollection.cpp:
39724         (WebCore::HTMLCollection::traverseNextItem): Add the qualifier for Objects that 
39725           containsJavaApplet() must be true
39726
39727         * html/HTMLObjectElement.cpp:
39728         (WebCore::HTMLObjectElement::containsJavaApplet): Check this Object element and inner
39729           nodes for any Java applets
39730         * html/HTMLObjectElement.h: 
39731
39732 2007-05-10  David Hyatt  <hyatt@apple.com>
39733
39734         Fix for:
39735
39736         <rdar://problem/4694859> SAP: HTML tags with overflow:hidden consume
39737         space on page, do not consume space in Firefox (11926)
39738
39739         http://bugs.webkit.org/show_bug.cgi?id=11926
39740
39741         Make sure that unreachable objects along one axis (e.g., top/left) do not
39742         contribute to the scrollable area in the opposite axis (e.g., right/bottom).
39743
39744         Reviewed by olliej
39745
39746         fast/overflow/unreachable-content-test.html
39747
39748         * rendering/RenderBlock.cpp:
39749         (WebCore::RenderBlock::lowestPosition):
39750         (WebCore::RenderBlock::rightmostPosition):
39751         (WebCore::RenderBlock::leftmostPosition):
39752
39753 2007-05-10  David Hyatt  <hyatt@apple.com>
39754
39755         Fix for:
39756
39757         <rdar://problem/4656825> REGRESSION: Japanese TV time table widget:
39758         part of the number in background has been cut off.
39759
39760         Now that opacity uses a tight bounding box to clip, we need to make sure
39761         to factor spillout caused by negative letter spacing into our right
39762         overflow.  Latch on to the code that does this already for text-stroke
39763         and text-shadow.
39764
39765         Reviewed by olliej
39766
39767         fast/text/letter-spacing-negative-opacity.html
39768
39769        * rendering/InlineFlowBox.cpp:
39770         (WebCore::InlineFlowBox::placeBoxesHorizontally):
39771
39772 2007-05-10  Geoffrey Garen  <ggaren@apple.com>
39773
39774         Reviewed by Maciej Stachowiak.
39775         
39776         More fix-ups to the WebScriptObject/WebScripting APIs, related to
39777         <rdar://problem/5140447> API for fetching JSGlobalContextRef from WebView 
39778         or WebFrame
39779
39780         * bindings/objc/WebScriptObject.h: Fully specified the surprising rules for
39781         type conversion between JavaScript and ObjC.
39782         * bindings/objc/WebScriptObject.mm: Added up-call accessor to WebFrame.
39783         This is kind of stinky, but I'm OK with it because eventually all of this
39784         code should move up into WebKit.
39785         (+[WebScriptObject scriptObjectForJSObject:frame:]):
39786         (-[WebScriptObject valueForKey:]):
39787         (-[WebScriptObject JSObject]): 
39788             - Added _rootObject check because if _rootObject returns NULL it means 
39789             that _imp is no longer GC protected, so it's not safe to use. 
39790             - Added _isSafeScript check because that's what WebScriptObject methods
39791             typically do, even though the value of doing so isn't clear to me.
39792         * bindings/objc/WebScriptObjectPendingPublic.h: Added WebFrame* parameter
39793         to -scriptObjectForJSObject:. This is required to wrap JS objects that
39794         are not already in the wrapper cache. It would be nice to remove this
39795         limitation of WebScriptObject some day.
39796         * page/mac/FrameMac.mm:
39797         (WebCore::Frame::cleanupPlatformScriptObjects): Force removal of m_windowScriptObject
39798         from the cache, to avoid retrieving the m_windowScriptObject from the previous
39799         page on a new page load. (It would be non-functional in that case.)
39800
39801 2007-05-10  David Hyatt  <hyatt@apple.com>
39802
39803         Fix for <rdar://problem/5183697>.
39804
39805         http://bugs.webkit.org/show_bug.cgi?id=13576
39806
39807         Make sure verticalPositionHint is not called on an inline-block from
39808         content inside the inline-block (like text).
39809
39810         Reviewed by olliej
39811
39812         fast/inline-block/inline-block-vertical-align.html
39813
39814         * rendering/RenderObject.cpp:
39815         (WebCore::RenderObject::verticalPositionHint):
39816         * rendering/RenderText.cpp:
39817         (WebCore::RenderText::verticalPositionHint):
39818         * rendering/RenderThemeMac.mm:
39819         (WebCore::RenderThemeMac::setFontFromControlSize):
39820
39821 2007-05-09  Holger Freyther <zecke@selfish.org>
39822
39823         Reviewed by Mark Rowe.
39824
39825         Gdk build fix with SVG enabled.  Stub out ImageBufferCairo.
39826
39827         * WebCore.pro: Build ImageBufferCairo.cpp
39828         * platform/graphics/cairo/ImageBufferCairo.cpp: Added.
39829         (WebCore::ImageBuffer::create):
39830         (WebCore::ImageBuffer::~ImageBuffer):
39831         (WebCore::ImageBuffer::context):
39832
39833 2007-05-08  Justin Garcia  <justin.garcia@apple.com>
39834
39835         Reviewed by darin
39836         
39837         <rdar://problem/5017613> Style changes don't effect fully selected ToDo content
39838
39839         * editing/ApplyStyleCommand.cpp:
39840         (WebCore::ApplyStyleCommand::applyInlineStyle):
39841         Use a for loop instead of while(1).
39842         Simplify loop termination using Range::pastEndNode.
39843         Don't handle the start.node() == end.node() case 
39844         specially, it's unnecessary.
39845         Apply the style change to fully selected plaintext-only
39846         regions, not with wrapper spans inside the region, but 
39847         by changing the element's inline style declaration.
39848         Don't descend into nodes whose children we should ignore.
39849
39850 2007-05-09  Adele Peterson  <adele@apple.com>
39851
39852         Reviewed by Hyatt.
39853
39854         Fix for <rdar://problem/5113578> REGRESSION: textfields that set the height but not the font 
39855         look different from IE & FF because the font is small
39856
39857         For plain text fields, don't stretch the inner text box.  Center it vertically in the field.
39858
39859         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::layout):
39860
39861 2007-05-09  Atul Mehrotra  <atul.mehrotra@celunite.com>
39862
39863         Gdk build fix.
39864
39865         * platform/gdk/TemporaryLinkStubs.cpp:
39866         (Editor::newGeneralClipboard):
39867
39868 2007-05-09  Mitz Pettel  <mitz@webkit.org>
39869
39870         Reviewed by Dave Hyatt.
39871
39872         - fix http://bugs.webkit.org/show_bug.cgi?id=13037
39873           REGRESSION: Copy-on-scroll not reset properly after back/forward navigation
39874
39875         * page/FrameView.cpp:
39876         (WebCore::FrameViewPrivate::FrameViewPrivate): Moved initialization of
39877         m_slowRepaintObjectCount here.
39878         (WebCore::FrameViewPrivate::reset): Do not reset the slow repaint object
39879         count here.
39880         (WebCore::FrameView::useSlowRepaints):
39881         (WebCore::FrameView::addSlowRepaintObject):
39882         (WebCore::FrameView::removeSlowRepaintObject): Added an assertion that the
39883         object count is positive.
39884         * rendering/RenderObject.cpp:
39885         (WebCore::RenderObject::setStyle): Corrected a mix up between old and new
39886         style, which caused the object count to be decremented when it was supposed
39887         to be incremented and vice versa.
39888
39889 2007-05-09  Peter Müller <pm@one.com>
39890
39891         Reviewed by Dave Hyatt.
39892
39893         Changed the hardcoded colors that are used for CSS 2.1 system colors.
39894         Previous colors had numerous conflicts in semantic pairs, which
39895         made text invisible in highlight, info and menu colored areas.
39896         The new hardcoded colors are inspired by Aqua.
39897
39898         Ideally these colors should be fetched through AppKit instead,
39899         though I am not sure if it is possible to make a 1:1 mapping
39900         between CSS2.1 system colors and Mac OS X.
39901
39902         * css/cssstyleselector.cpp:
39903         (WebCore::):
39904
39905 2007-05-09  Lars Knoll <lars@trolltech.com>
39906
39907         Fix the Qt build.
39908
39909         * editing/qt/EditorQt.cpp:
39910
39911 2007-05-08  Geoffrey Garen  <ggaren@apple.com>
39912
39913         Reviewed by Darin Adler.
39914         
39915         More fix-ups to the WebScriptObject/WebScripting APIs, related to
39916         <rdar://problem/5140447> API for fetching JSGlobalContextRef from WebView 
39917         or WebFrame
39918         
39919         1. Added -scriptObjectForJSObject: SPI so you can bridge back from JavaScriptCore
39920         to WebScriptObject.
39921         
39922         2. Fixed WebScriptObject bridging so that you always get the same WebScriptObject
39923         for a JSObject (like in the DOM). This makes -scriptObjectForJSObject: a
39924         lot more coherent as an API.
39925
39926         * bindings/objc/DOMInternal.mm: Renamed wrapperCache to DOMWrapperCache
39927         to distinguish from the JSWrapperCache. Added typedef for readability.
39928         (WebCore::getDOMWrapper):
39929         (WebCore::addDOMWrapper):
39930         (WebCore::removeDOMWrapper):
39931         * bindings/objc/WebScriptObject.mm: Added JSWrapperCache, which works just
39932         like the DOMWrapperCache.
39933         (WebCore::getJSWrapper):
39934         (WebCore::addJSWrapper):
39935         (WebCore::removeJSWrapper):
39936         (WebCore::createJSWrapper):
39937         (+[WebScriptObject scriptObjectForJSObject:]): This is the new API. It attempts
39938         to return a specific DOM wrapper object, or, barring that, it returns a 
39939         generic WebScriptObject.
39940         (+[WebScriptObject scriptObjectForJSObject:originRootObject:rootObject:]):
39941         Added this method to support our old WebScriptObject security and leak 
39942         checking model, even though it doesn't work very well. 
39943         (-[WebScriptObject _setImp:originRootObject:rootObject:]):
39944         (-[WebScriptObject dealloc]):
39945         (-[WebScriptObject finalize]):
39946         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
39947         * bindings/objc/WebScriptObjectPendingPublic.h:
39948         * bindings/objc/WebScriptObjectPrivate.h:
39949         * page/mac/FrameMac.mm:
39950         (WebCore::Frame::windowScriptObject): Changed to use the new API. This
39951         fixes a bug where the object sent to -windowScriptObjectAvailable: and returned
39952         from -windowScriptObject could not be round-tripped.
39953
39954 2007-05-09  Mark Rowe  <mrowe@apple.com>
39955
39956         Build fix.
39957
39958         * editing/Editor.cpp:
39959         (WebCore::findFirstGrammarDetailInRange): Use unsigned rather than int.
39960         (WebCore::findFirstBadGrammarInRange): Cast to unsigned in assertion.
39961         (WebCore::isRangeUngrammatical): Remove unused variables.
39962
39963 2007-05-08  Oliver Hunt  <oliver@apple.com>
39964
39965         Reviewed by Darin.
39966         
39967         Fix <rdar://problem/5188938> arc method on Canvas causes hang or crash
39968         
39969         Workaround bad behaviour of CGPathAddArc when passed inf as start or
39970         end angles.
39971
39972         * platform/graphics/cg/PathCG.cpp:
39973         (WebCore::Path::addArc):
39974
39975 2007-05-08  Darin Adler  <darin@apple.com>
39976
39977         Reviewed by Hyatt and Hatcher.
39978
39979         - fix auto-activation code path so Tiger and Leopard aren't different
39980
39981         * platform/mac/WebFontCache.mm: (+[WebFontCache fontWithFamily:traits:size:]):
39982         Do the auto-activation dance first before doing anything else, and ignore the
39983         font that it returns.
39984
39985 2007-05-08  Steve Falkenburg  <sfalken@apple.com>
39986
39987         Reviewed by Darin.
39988
39989         Moved most spelling/grammar logic to C++.  Now calls through to
39990         WebKit to actually invoke NSSpellChecker.
39991
39992         * editing/Editor.cpp:
39993         (WebCore::Editor::ignoreSpelling): Added (ported from EditorMac).
39994         (WebCore::Editor::learnSpelling): Added (ported from EditorMac).
39995         (WebCore::findFirstMisspellingInRange): Added (ported from EditorMac).
39996         (WebCore::paragraphAlignedRangeForRange): Added (ported from EditorMac).
39997         (WebCore::findFirstGrammarDetailInRange): Added (ported from EditorMac).
39998         (WebCore::findFirstBadGrammarInRange): Added (ported from EditorMac).
39999         (WebCore::Editor::advanceToNextMisspelling): Added (ported from EditorMac).
40000         (WebCore::Editor::isSelectionMisspelled): Added (ported from EditorMac).
40001         (WebCore::isRangeUngrammatical): Added (ported from EditorMac).
40002         (WebCore::Editor::isSelectionUngrammatical): Added (ported from EditorMac).
40003         (WebCore::Editor::guessesForUngrammaticalSelection): Added (ported from EditorMac).
40004         (WebCore::Editor::guessesForMisspelledSelection): Added (ported from EditorMac).
40005         (WebCore::Editor::showSpellingGuessPanel): Added (ported from EditorMac).
40006         (WebCore::Editor::spellingPanelIsShowing): Added (ported from EditorMac).
40007         (WebCore::Editor::markMisspellingsAfterTypingToPosition): Added (ported from EditorMac).
40008         (WebCore::markAllMisspellingsInRange): Added (ported from EditorMac).
40009         (WebCore::markAllBadGrammarInRange): Added (ported from EditorMac).
40010         (WebCore::markMisspellingsOrBadGrammar): Added (ported from EditorMac).
40011         (WebCore::Editor::markMisspellings): Added (ported from EditorMac).
40012         (WebCore::Editor::markBadGrammar): Added (ported from EditorMac).
40013         * editing/mac/EditorMac.mm: Removed Objective C version of spelling/grammar calls.
40014
40015 2007-05-08  Steve Falkenburg  <sfalken@apple.com>
40016
40017         Reviewed by Ada.
40018
40019         Slight modification to last editor method fix.
40020
40021         * bridge/EditorClient.h:
40022         * platform/gdk/EditorClientGdk.cpp:
40023         (WebCore::EditorClientGdk::updateSpellingUIWithGrammarString):
40024         * platform/gdk/EditorClientGdk.h:
40025         * platform/graphics/svg/SVGImageEmptyClients.h:
40026         (WebCore::SVGEmptyEditorClient::updateSpellingUIWithGrammarString):
40027
40028 2007-05-08  Alexey Proskuryakov  <ap@webkit.org>
40029
40030         Reviewed by Hyatt.
40031
40032         http://bugs.webkit.org/show_bug.cgi?id=13480
40033         window.Attr is undefined
40034
40035         Test: fast/dom/Window/attr-constructor.html
40036
40037         * dom/Attr.idl:
40038         * dom/CDATASection.idl:
40039         * dom/CharacterData.idl:
40040         * dom/Comment.idl:
40041         * dom/DOMImplementation.idl:
40042         * dom/DocumentType.idl:
40043         * dom/Entity.idl:
40044         * dom/EntityReference.idl:
40045         * dom/Notation.idl:
40046         * dom/ProcessingInstruction.idl:
40047         * dom/Text.idl:
40048         Added GenerateConstructor.
40049
40050         * page/DOMWindow.idl: Added constructor properties for DOM interfaces.
40051
40052 2007-05-07  Geoffrey Garen  <ggaren@apple.com>
40053
40054         Reviewed by Maciej Stachowiak.
40055
40056         Fixed <rdar://problem/5140447> API for fetching JSGlobalContextRef from 
40057         WebView or WebFrame
40058         
40059         Added support for new -[WebScriptObject JSObject] and -[WebFrame globalContext]
40060         APIs.
40061         
40062         Also fixed some more cases of <rdar://problem/4395622> API: 
40063         WebScriptObject.h incorrectly reports that -isSelectorExcludedFromWebScript 
40064         returns NO by default, and generally cleaned up that documentation.
40065
40066         * WebCore.exp: A lot of the diff here is from sorting.
40067         * WebCore.xcodeproj/project.pbxproj:
40068         * bindings/objc/WebScriptObject.h:
40069         * bindings/objc/WebScriptObject.mm:
40070         (-[WebScriptObject JSObject]):
40071         * bindings/objc/WebScriptObjectPendingPublic.h: Added.
40072
40073 2007-05-08  Lars Knoll <lars@trolltech.com>
40074
40075         Reviewed by Hyatt.
40076
40077         Fix valgrind reported uninitialized memory read.
40078
40079         * rendering/RenderText.cpp:
40080         (WebCore::RenderText::RenderText):
40081
40082 2007-05-07  Justin Garcia  <justin.garcia@apple.com>
40083
40084         Reviewed by oliver
40085
40086         <rdar://problem/4895428> Can't drag selected ToDo
40087         
40088         The user tries to drag a selection by mousing down
40089         on the editable part of a ToDo, which is focusable,
40090         since it is an editable node within non-editable 
40091         content.  But we focus focusable elements on mouse 
40092         down, and focusing the editable piece blows away 
40093         the selection and prevents the drag. This is how 
40094         IE behaves, but content seems generally difficult 
40095         to drag in IE, so this doesn't make it any worse.
40096         
40097         Since focus doesn't appear to be cancelable, either
40098         with a DOM event or an editing delegate, I fixed this
40099         by delaying the focus of focusable nodes that are 
40100         selected and inside an already focused node.  The 
40101         node will be focused if the user mouses up without 
40102         doing any dragging because the mouse up sets a
40103         selection, which calls setFocusNodeIfNeeded.
40104
40105         * page/EventHandler.cpp:
40106         (WebCore::EventHandler::dispatchMouseEvent):
40107
40108 2007-05-07  Atul Mehrotra <atul.mehrotra@celunite.com>
40109
40110         Reviewed by Maciej.
40111
40112         GDK Build fix
40113
40114         * platform/gdk/TemporaryLinkStubs.cpp:
40115
40116 2007-05-07  Oliver Hunt  <oliver@apple.com>
40117
40118         Reviewed by Maciej.
40119
40120         Correcting comparisons to handle NaN in the same manner
40121         as other Canvas methods.
40122
40123         * html/CanvasRenderingContext2D.cpp:
40124         (WebCore::CanvasRenderingContext2D::arcTo):
40125         (WebCore::CanvasRenderingContext2D::arc):
40126           Correcting arc/arcTo to match the WHAT WG draft.
40127         (WebCore::CanvasRenderingContext2D::rect):
40128         (WebCore::CanvasRenderingContext2D::clearRect):
40129         (WebCore::CanvasRenderingContext2D::fillRect):
40130         (WebCore::CanvasRenderingContext2D::strokeRect):
40131
40132 2007-05-07  David Hyatt  <hyatt@apple.com>
40133
40134         Add some comments to the glyph/font code (patch from Brett Wilson, tweaked by
40135         me to correct a few bits and to make it forward-compatible with the work
40136         going on in 3315.
40137
40138         Reviewed by me
40139
40140         * ChangeLog:
40141         * platform/Font.cpp:
40142         (WebCore::Font::glyphDataForCharacter):
40143         * platform/GlyphPageTreeNode.cpp:
40144         (WebCore::GlyphPageTreeNode::initializePage):
40145         * platform/GlyphPageTreeNode.h:
40146
40147 2007-05-07  Justin Garcia  <justin.garcia@apple.com>
40148
40149         Fix layout test failures.
40150
40151         * editing/SelectionController.cpp:
40152         (WebCore::SelectionController::contains): Use comparePositions
40153         instead of Range::comparePoint, because comparePositions can
40154         handle positions inside shadow trees.
40155
40156 2007-05-07  Justin Garcia  <justin.garcia@apple.com>
40157
40158         Reviewed by darin
40159         
40160         <rdar://problem/4895428> Can't drag selected To Do if it is not showing a due date
40161         
40162         The code in SelectionController::contains returned false 
40163         incorrectly if the selection end just after a table 
40164         and the position was inside that table.
40165
40166         * editing/SelectionController.cpp:
40167         (WebCore::SelectionController::contains): Compare the position with the
40168         ends of the selection and then use Range::comparePoint.
40169
40170 2007-05-07  Darin Adler  <darin@apple.com>
40171
40172         - rolling out setInnerHTML optimization until I can figure out why tests are failing
40173
40174 2007-05-07  Darin Adler  <darin@apple.com>
40175
40176         Reviewed by Hyatt.
40177
40178         - fix http://bugs.webkit.org/show_bug.cgi?id=13602
40179           Amazon product pages keep repainting over and over again
40180
40181         Optimize setInnerHTML, setOuterHTML, and setInnerText so they don't change the DOM at all
40182         if they don't need to.
40183
40184         Test: fast/dom/HTMLElement/set-inner-outer-optimization.html
40185
40186         * html/HTMLElement.cpp:
40187         (WebCore::equal): Added. Helper function that compares two Text nodes or two NamedAttrMap
40188         attribute maps.
40189         (WebCore::shallowEqual): Added. Helper function that compares two Element nodes or two
40190         arbitrary nodes.
40191         (WebCore::replaceChildrenWithFragment): Added. Helper function used by setInnerHTML and
40192         setInnerText. Optimizes the cases where all the nodes are the same, where both the current
40193         and the new content are single text nodes, and where the current content is a single node
40194         that can be replaced with replaceChild.
40195         (WebCore::replaceChildrenWithText): Added. Helper function used by setInnerText. Optimizes
40196         the case where the current content is a single text node or a single node that can be
40197         replaced with replaceChild.
40198         (WebCore::HTMLElement::setInnerHTML): Changed to call replaceChildrenWithFragment.
40199         (WebCore::HTMLElement::setOuterHTML): Added special case to optimize when the new content
40200         exactly matches the current node.
40201         (WebCore::HTMLElement::setInnerText): Changed to call replaceChildrenWithText in a few
40202         cases instead of doing removeChildren/appendChild. Changed code that was using
40203         DeprecatedString to instead use String. Changed general case to use a document fragment
40204         and replaceChildrenWithFragment.
40205
40206         * dom/CharacterData.cpp: (WebCore::CharacterData::dispatchModifiedEvent):
40207         Fixed bug where we would not dispatch the DOMSubtreeModified event unless someone
40208         was registered for the DOMCharacterDataModified event. Caused trouble in the test.
40209
40210 2007-05-06  Darin Adler  <darin@apple.com>
40211
40212         - blind try at fixing the Qt build
40213
40214         * platform/qt/TextBreakIteratorQt.cpp: (WebCore::sentenceBreakIterator):
40215         Added a placeholder.
40216
40217 2007-05-06  Darin Adler  <darin@apple.com>
40218
40219         Reviewed by Hyatt.
40220
40221         - fix http://bugs.webkit.org/show_bug.cgi?id=13537
40222           Canvex example starts rendering strangely after a while
40223
40224         * html/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::drawImage):
40225         Don't raise an exception if the source or destination rectangle is empty.
40226
40227 2007-05-06  Darin Adler  <darin@apple.com>
40228
40229         Reviewed by Hyatt.
40230
40231         - fix <rdar://problem/4585593> REGRESSION: Some 2-byte characters in printed page
40232           header are drawn with too-large font and clipped
40233
40234         Doesn't affect text within web pages, so no layout test.
40235
40236         * platform/mac/FontCacheMac.mm: (WebCore::FontCache::getFontDataForCharacters):
40237         Base the substitute font on the FontPlatformData rather than the FontDescription.
40238         Before, it was a mix of both. This works properly for fonts where we have no
40239         FontDescription and is also more internally consistent.
40240
40241 2007-05-06  Darin Adler  <darin@apple.com>
40242
40243         Reviewed by Hyatt.
40244
40245         - http://bugs.webkit.org/show_bug.cgi?id=13606
40246           some functions are virtual that don't need to be
40247
40248         * dom/Node.h: Made first/lastChild be inline functions that call virtual functions.
40249         This lets us hide the functions with another inline function in a derived class,
40250         yet still override the behavior here in the base class by overriding the virtual
40251         functions too.
40252         * dom/Node.cpp:
40253         (WebCore::Node::virtualFirstChild): Renamed virtual functions. There are now
40254         non-virtual inline functions that call these virtual functions.
40255         (WebCore::Node::virtualLastChild): Ditto.
40256
40257         * dom/ContainerNode.h: Added non-virtual first/lastChild functions that hide the ones
40258         inherited from the Node class; these also replace the fastFirst/LastChild functions,
40259         and transparently give callers the faster form if they have a pointer of the right
40260         type. But still override the virtual functions named virtualFirst/LastChild, because
40261         those can still be called through a Node*. Removed the "fast" from the names of
40262         fastSetFirst/LastChild.
40263         * dom/ContainerNode.cpp:
40264         (WebCore::ContainerNode::virtualFirstChild): Renamed virtual functions. There are now
40265         also non-virtual inline versions.
40266         (WebCore::ContainerNode::virtualLastChild): Ditto.
40267
40268         * dom/CharacterData.cpp: Removed implementations of data and length functons.
40269         * dom/CharacterData.h: Made data, setData, length, substringData, appendData,
40270         insertData, deleteData, and replaceData all non-virtual, and made data and length
40271         both be inline.
40272
40273         * dom/NamedAttrMap.h: (WebCore::NamedAttrMap::attributeItem): Removed a null check
40274         from this function. If the length of the map is known to be greater than 0, then
40275         the null check isn't needed. But if the length of the map hasn't been checked at all,
40276         then it's unsafe to call this function since it doesn't range check the array
40277         index. Thus the null check is never needed. I also looked at all callers.
40278
40279         * dom/Attr.cpp: (WebCore::Attr::createTextChild):
40280         * dom/Document.cpp: (WebCore::Document::recalcStyle):
40281         * dom/Element.cpp: (WebCore::Element::recalcStyle):
40282         * ksvg2/svg/SVGElement.cpp:
40283         (WebCore::SVGElement::haveLoadedRequiredResources):
40284         Removed "fast" prefix from calls to fastFirst/LastChild and fastSetFirst/LastChlld.
40285         It's not needed any more -- you still get fast behavior if the pointer has a type
40286         that's ContainerNode or derived from it.
40287
40288 2007-05-06  Mitz Pettel  <mitz@webkit.org>
40289
40290         Reviewed by Hyatt.
40291
40292         - fix http://bugs.webkit.org/show_bug.cgi?id=13557
40293           Crash when dragging selection over absolutely positioned generated content on block element
40294
40295         Test: fast/css-generated-content/positioned-background-hit-test-crash.html
40296
40297         * rendering/RenderLayer.cpp:
40298         (WebCore::RenderLayer::enclosingElement): Added. Factored out of hitTestLayer().
40299         (WebCore::RenderLayer::hitTestLayer): Implemented the fix for <rdar://problem/3552346>
40300         from r6106 to the self hit test as well, namely: return the enclosing element
40301         for generated positioned content.
40302         * rendering/RenderLayer.h:
40303
40304 2007-05-06  Alexey Proskuryakov  <ap@webkit.org>
40305
40306         Reviewed by Darin.
40307
40308         http://bugs.webkit.org/show_bug.cgi?id=13584
40309         <script> code wrongly assumes requests can't fail
40310
40311         Test: fast/loader/unloadable-script.html
40312
40313         * html/HTMLScriptElement.cpp:
40314         (WebCore::HTMLScriptElement::parseMappedAttribute):
40315         (WebCore::HTMLScriptElement::insertedIntoDocument):
40316         Check the return value of requestScript().
40317
40318 2007-05-06  Alexey Proskuryakov  <ap@webkit.org>
40319
40320         Reviewed by Darin.
40321
40322         http://bugs.webkit.org/show_bug.cgi?id=13304
40323         REGRESSION(14784): WebKit doesn't dynamically reflect changes to the highlight color in System Preferences
40324
40325         Implemented a notification observer that invalidates cached system colors.
40326
40327         No automated test possible.
40328
40329         * rendering/RenderTheme.cpp:
40330         (WebCore::RenderTheme::activeSelectionBackgroundColor):
40331         (WebCore::RenderTheme::inactiveSelectionBackgroundColor):
40332         (WebCore::RenderTheme::platformColorsDidChange):
40333         * rendering/RenderTheme.h:
40334         * rendering/RenderThemeMac.h:
40335         * rendering/RenderThemeMac.mm:
40336         (-[WebCoreRenderThemeNotificationObserver initWithTheme:WebCore::]):
40337         (-[WebCoreRenderThemeNotificationObserver systemColorsDidChange:]):
40338         (WebCore::theme):
40339         (WebCore::RenderThemeMac::RenderThemeMac):
40340         (WebCore::RenderThemeMac::~RenderThemeMac):
40341         (WebCore::RenderThemeMac::checkbox):
40342         (WebCore::RenderThemeMac::radio):
40343         (WebCore::RenderThemeMac::button):
40344         (WebCore::RenderThemeMac::popupButton):
40345         (WebCore::RenderThemeMac::search):
40346         (WebCore::RenderThemeMac::sliderThumbHorizontal):
40347         (WebCore::RenderThemeMac::sliderThumbVertical):
40348
40349 2007-05-05  Rob Buis  <buis@kde.org>
40350
40351         Reviewed by Oliver.
40352
40353         http://bugs.webkit.org/show_bug.cgi?id=13592
40354         parseMappedAttribute inconsistency
40355
40356         Do not use local vars in parseMappedAttribute for attr name and value.
40357
40358         * ksvg2/svg/SVGAnimateMotionElement.cpp:
40359         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
40360         * ksvg2/svg/SVGAnimateTransformElement.cpp:
40361         (WebCore::SVGAnimateTransformElement::parseMappedAttribute):
40362         * ksvg2/svg/SVGAnimationElement.cpp:
40363         (WebCore::SVGAnimationElement::parseMappedAttribute):
40364         * ksvg2/svg/SVGCircleElement.cpp:
40365         (WebCore::SVGCircleElement::parseMappedAttribute):
40366         * ksvg2/svg/SVGClipPathElement.cpp:
40367         (WebCore::SVGClipPathElement::parseMappedAttribute):
40368         * ksvg2/svg/SVGCursorElement.cpp:
40369         (WebCore::SVGCursorElement::parseMappedAttribute):
40370         * ksvg2/svg/SVGEllipseElement.cpp:
40371         (WebCore::SVGEllipseElement::parseMappedAttribute):
40372         * ksvg2/svg/SVGExternalResourcesRequired.cpp:
40373         (WebCore::SVGExternalResourcesRequired::parseMappedAttribute):
40374         * ksvg2/svg/SVGGradientElement.cpp:
40375         (WebCore::SVGGradientElement::parseMappedAttribute):
40376         * ksvg2/svg/SVGImageElement.cpp:
40377         (WebCore::SVGImageElement::parseMappedAttribute):
40378         * ksvg2/svg/SVGLineElement.cpp:
40379         (WebCore::SVGLineElement::parseMappedAttribute):
40380         * ksvg2/svg/SVGLinearGradientElement.cpp:
40381         (WebCore::SVGLinearGradientElement::parseMappedAttribute):
40382         * ksvg2/svg/SVGMarkerElement.cpp:
40383         (WebCore::SVGMarkerElement::parseMappedAttribute):
40384         * ksvg2/svg/SVGMaskElement.cpp:
40385         (WebCore::SVGMaskElement::parseMappedAttribute):
40386         * ksvg2/svg/SVGPathElement.cpp:
40387         (WebCore::SVGPathElement::parseMappedAttribute):
40388         * ksvg2/svg/SVGPatternElement.cpp:
40389         (WebCore::SVGPatternElement::parseMappedAttribute):
40390         * ksvg2/svg/SVGRadialGradientElement.cpp:
40391         (WebCore::SVGRadialGradientElement::parseMappedAttribute):
40392         * ksvg2/svg/SVGRectElement.cpp:
40393         (WebCore::SVGRectElement::parseMappedAttribute):
40394         * ksvg2/svg/SVGSVGElement.cpp:
40395         (WebCore::SVGSVGElement::parseMappedAttribute):
40396         * ksvg2/svg/SVGScriptElement.cpp:
40397         (WebCore::SVGScriptElement::parseMappedAttribute):
40398         * ksvg2/svg/SVGStopElement.cpp:
40399         (WebCore::SVGStopElement::parseMappedAttribute):
40400         * ksvg2/svg/SVGTests.cpp:
40401         (WebCore::SVGTests::parseMappedAttribute):
40402         * ksvg2/svg/SVGTextContentElement.cpp:
40403         (WebCore::SVGTextContentElement::parseMappedAttribute):
40404         * ksvg2/svg/SVGTextPositioningElement.cpp:
40405         (WebCore::SVGTextPositioningElement::parseMappedAttribute):
40406         * ksvg2/svg/SVGUseElement.cpp:
40407         (WebCore::SVGUseElement::parseMappedAttribute):
40408         * ksvg2/svg/SVGViewElement.cpp:
40409         (WebCore::SVGViewElement::parseMappedAttribute):
40410         * ksvg2/svg/SVGZoomAndPan.cpp:
40411         (WebCore::SVGZoomAndPan::parseMappedAttribute):
40412
40413 2007-05-05  Oliver Hunt  <oliver@apple.com>
40414
40415         Reviewed by Hyatt.
40416
40417         Initialise default fill with Color::black rather than parsing
40418         the string "black"
40419
40420         * ksvg2/svg/SVGPaint.cpp:
40421         (WebCore::SVGPaint::defaultFill):
40422
40423 2007-05-04  Steve Falkenburg  <sfalken@apple.com>
40424
40425         Reviewed by Oliver.
40426
40427         Use TextBreakIterator for sentence breaking instead of TextBoundaries.
40428
40429         * WebCore.xcodeproj/project.pbxproj: Added TextBreakIeratorInternalICUMac.mm
40430         * editing/visible_units.cpp:
40431         (WebCore::startSentenceBoundary): Call TextBreakIterator instead of TextBoundaries.
40432         (WebCore::endSentenceBoundary): Call TextBreakIterator instead of TextBoundaries.
40433         (WebCore::previousSentencePositionBoundary): Call TextBreakIterator instead of TextBoundaries.
40434         (WebCore::nextSentencePositionBoundary): Call TextBreakIterator instead of TextBoundaries.
40435         * platform/TextBoundaries.h: Removed findSentenceBoundary, findNextSentenceFromIndex.
40436         * platform/TextBreakIterator.h: Added sentenceBreakIterator.
40437         * platform/TextBreakIteratorICU.cpp:
40438         (WebCore::setUpIterator): Add locale parameter (needed to maintain functionality that TextBoundaries code had).
40439         (WebCore::characterBreakIterator): Pass en_us for locale (same as old code).
40440         (WebCore::wordBreakIterator): Pass en_us for locale (same as old code).
40441         (WebCore::lineBreakIterator): Pass en_us for locale (same as old code).
40442         (WebCore::sentenceBreakIterator): Added.
40443         * platform/TextBreakIteratorInternalICU.h: Added.
40444         * platform/gdk/TemporaryLinkStubs.cpp: Removed findNextSentenceFromIndex, findSentenceBoundary.
40445         (WebCore::currentTextBreakLocaleID): Added stub.
40446         * platform/mac/TextBoundaries.mm: Removed currentTextBreakLocaleID, findSentenceBoundary, findNextSentenceFromIndex.
40447         * platform/mac/TextBreakIteratorInternalICUMac.mm: Added.
40448         (WebCore::currentTextBreakLocaleID): Moved from TextBoundaries.mm
40449         * platform/qt/TextBoundaries.cpp: Removed findNextSentenceFromIndex, findSentenceBoundary.
40450
40451 2007-05-04  Adele Peterson  <adele@apple.com>
40452
40453         Reviewed by Hyatt.
40454
40455         Fix for <rdar://problem/5116871> REGRESSION: Can't select options in widget's listbox
40456
40457         Don't use user-select to determine whether or not options can be selected in listboxes.
40458         This will match Firefox behavior for -moz-user-select.
40459
40460         * html/HTMLSelectElement.cpp:
40461         (WebCore::HTMLSelectElement::canSelectAll):
40462         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
40463
40464 2007-05-04  Geoffrey Garen  <ggaren@apple.com>
40465
40466         Reviewed by Tim Hatcher.
40467
40468         First step in fixing <rdar://problem/5055182> The back cache has no global cap
40469
40470         Stop giving SnapBack infinite cache-ability. Instead, make SnapBack rely
40471         on the underlying back cache.
40472
40473         * WebCore.exp:
40474         * history/HistoryItem.cpp:
40475         (WebCore::HistoryItem::HistoryItem):
40476         * history/HistoryItem.h:
40477         * loader/FrameLoader.cpp:
40478         (WebCore::FrameLoader::purgePageCache):
40479
40480 2007-05-04  Geoffrey Garen  <ggaren@apple.com>
40481
40482         Reviewed by Brady Eidson.
40483         
40484         Removed export of clearPageCache(), since it was unused externally. I plan
40485         to remove its use from WebCore eventually, too.
40486
40487         Removed usesPageCache(), since it was unused and it duplicated pageCacheSize().
40488
40489         * WebCore.exp:
40490         * history/BackForwardList.cpp:
40491         * history/BackForwardList.h: Moved statics to the top of the class definition.
40492         * loader/FrameLoader.cpp:
40493         (WebCore::FrameLoader::canCachePage):
40494
40495 2007-05-04  Anders Carlsson  <andersca@apple.com>
40496
40497         Reviewed by Antti.
40498
40499         <rdar://problem/5179977> Use the correct URLs when dispatching delegate methods for data loads.
40500
40501         Restore behavior to matching release WebKit by adding a response URL to SubstituteData. If a nil base URL is
40502         passed, set the _request_ URL to "about:blank", but the response URL to a generated "applewebdata" URL.
40503
40504         * loader/FrameLoader.cpp:
40505         (WebCore::FrameLoader::commitProvisionalLoad):
40506         First, check for the SubstituteData's response URL.
40507
40508         (WebCore::FrameLoader::continueAfterNavigationPolicy):
40509         No need to special case applewebdata URLs here, they're only used in the response.
40510
40511         * loader/MainResourceLoader.cpp:
40512         (WebCore::MainResourceLoader::handleDataLoadNow):
40513         If the substitute data has a response URL, use it.
40514
40515         (WebCore::MainResourceLoader::loadNow):
40516         Only load "about:blank" as an empty document if there's no substitute data.
40517
40518         * loader/SubstituteData.h:
40519         (WebCore::SubstituteData::SubstituteData):
40520         (WebCore::SubstituteData::responseURL):
40521         Add responseURL member to SubstituteData.
40522
40523 2007-05-03  Steve Falkenburg  <sfalken@apple.com>
40524
40525         Reviewed by Oliver.
40526
40527         Add missing user description parameter to spelling-related editor client method.
40528
40529         * bridge/EditorClient.h:
40530         * platform/gdk/EditorClientGdk.cpp:
40531         (WebCore::EditorClientGdk::updateSpellingUIWithGrammarString):
40532         * platform/gdk/EditorClientGdk.h:
40533         * platform/graphics/svg/SVGImageEmptyClients.h:
40534         (WebCore::SVGEmptyEditorClient::updateSpellingUIWithGrammarString):
40535
40536 2007-05-03  Brady Eidson  <beidson@apple.com>
40537
40538         Reviewed by Oliver
40539
40540         Resolve an outstanding FIXME in Loader::numRequests()
40541
40542         Before, numRequests() would iterate through the list of requests pending load and the list of currently
40543         loading requests and tally up a count matching the current DocLoader.
40544
40545         I noticed while studying and cleaning up the loader code that numRequests() is potentially very hot!
40546         Indeed load a complex site with many resources and multiple frames, and this method gets called very often,
40547         tallying up this number every time.
40548
40549         The FIXME was to keep a collection of Requests mapped to each DocLoader.  In reality, since this map would
40550         simply be used for retrieving a count, that was overkill.  Keeping a request count in the DocLoader itself
40551         along with maintaining that count in Loader as requests come and go is a much better way to do this.
40552
40553         * loader/DocLoader.cpp:
40554         (WebCore::DocLoader::DocLoader):
40555         (WebCore::DocLoader::incrementRequestCount):
40556         (WebCore::DocLoader::decrementRequestCount):
40557         (WebCore::DocLoader::requestCount): Emulate the defunct Loader::numRequests()
40558         * loader/DocLoader.h:
40559
40560         * loader/FrameLoader.cpp:
40561         (WebCore::numRequests): Call DocLoader::requestCount() directly
40562         (WebCore::FrameLoader::checkCompleted): Use numRequests()
40563
40564         * loader/loader.cpp:
40565         (WebCore::Loader::load): Increment the DocLoader's request count
40566         (WebCore::Loader::servePendingRequests): If the SubresourceLoader failed to create, decrement the count
40567         (WebCore::Loader::didFinishLoading): If the Request is not Multipart, decrement the count
40568         (WebCore::Loader::didFail): If the Request is not Multipart, decrement the count
40569         (WebCore::Loader::didReceiveResponse): If the Request becomes Multipart, decrement the count
40570         (WebCore::Loader::cancelRequests): Decrement the count for the pending requests being tossed, and ASSERT the
40571           count is zero after all requests have been cancelled
40572         * loader/loader.h:
40573
40574 2007-05-03  Geoffrey Garen  <ggaren@apple.com>
40575
40576         Reviewed by Brady Eidson.
40577         
40578         Some cleanup in preparation for fixing <rdar://problem/5055182> The 
40579         back/forward cache has no global cap
40580
40581         * loader/FrameLoader.cpp:
40582         (WebCore::FrameLoader::provisionalLoadStarted): Moved "Can I cache this
40583         page?" logic to canCachePage(). Moved "I am caching this page" logic to
40584         cachePageToHistoryItem().
40585         (WebCore::FrameLoader::canCachePage): Moved above logic here.
40586         (WebCore::FrameLoader::cachePageToHistoryItem): Removed bogus NULL check
40587         and failure return value. Moved above logic here. Don't call setCachedPage()
40588         until the CachedPage is fully constructed.
40589         (WebCore::FrameLoader::purgePageCache): Removed comment that duplicated
40590         the function name.
40591         * loader/FrameLoader.h:
40592
40593 2007-05-03  Justin Garcia  <justin.garcia@apple.com>
40594
40595         Reviewed by harrison.
40596
40597         <rdar://problem/5120281> CrashTracer: [USER] 1 crash in Mail at WebCore::CSSComputedStyleDeclaration::copyInheritableProperties() const
40598
40599         Problem is that checkAncestor and lastClosed can be nil when createMarkup is called unrendered nodes, and that was not checked for.
40600         
40601         * editing/markup.cpp:
40602         (WebCore::createMarkup):
40603         Nil-check checkAncestor and lastClosed.
40604
40605 2007-05-03  Timothy Hatcher  <timothy@apple.com>
40606
40607         Reviewed by Kevin.
40608
40609         <rdar://problem/5016318> Contextual menu item for opening links is missing in compose windows but present in viewer
40610
40611         Add the Open Link, Open Link in New Window, Download Linked File and Copy Link menu
40612         items to the content editable context menu.
40613
40614         * platform/ContextMenu.cpp:
40615         (WebCore::ContextMenu::populate):
40616
40617 2007-05-03  Holger Freyther <freyther@kde.org>
40618
40619         Reviewed by Zack, landed by Simon.
40620         This is bugzilla bug 13499.
40621
40622         * WebCore.pro: Place the Qt port into the qt-port scope, add the Gdk port
40623
40624 2007-05-03  Adele Peterson  <adele@apple.com>
40625
40626         Use BUILDING_ON_TIGER.
40627
40628         * page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry):
40629
40630 2007-05-03  Brady Eidson  <beidson@apple.com>
40631
40632         Reviewed by Darin
40633
40634         Some more minor cleanup that resolves a FIXME and ditches another pointless method
40635
40636         No change in functionality == no layout test
40637
40638         * loader/FrameLoader.cpp:
40639         (WebCore::FrameLoader::commitProvisionalLoad):  Updated a comment
40640         (WebCore::FrameLoader::continueLoadAfterWillSubmitForm): Folded startLoading() into this method
40641         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): continueAfterWillSubmitForm becomes continueLoadAfterWillSubmitForm
40642         * loader/FrameLoader.h: Removed startLoading()
40643
40644 2007-05-03  Adele Peterson  <adele@apple.com>
40645
40646         Reviewed by Tim Hatcher.
40647
40648         Fix for <rdar://problem/4727607> REGRESSION: KeyScript is deprecated, need a new solution for forcing Roman input for password fields on Leopard
40649
40650         * page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry):
40651         Use TSMSetDocumentProperty and TSMRemoveDocumentProperty on Leopard disable and enable non-ascii input sources.
40652
40653 2007-05-03  Brady Eidson  <beidson@apple.com>
40654
40655         Reviewed by Anders
40656
40657         commitProvisionalLoad() was the name of two methods.
40658         One of them was private and only called from one other private place.
40659         This was driving me crazy.  I had to change that.
40660
40661         No change in functionality == no layout test
40662
40663         * loader/FrameLoader.cpp:
40664         (WebCore::FrameLoader::transitionToCommitted): roll commitProvisionalLoad() into this method
40665         * loader/FrameLoader.h: Removed commitProvisionalLoad()
40666
40667 2007-05-03  Darin Adler  <darin@apple.com>
40668
40669         Reviewed by Anders.
40670
40671         - make ICU initialization lazy to speed up application start-up time
40672           (when it includes an initial webpage load)
40673
40674         * platform/TextCodecICU.h: Replaced registerEncodingNames and
40675         registerCodecs with registerBaseEncodingNames, registerBaseCodecs,
40676         registerExtendedEncodingNames, and registerExtendedCodecs.
40677         * platform/TextCodecICU.cpp:
40678         (WebCore::newTextCodecICU): Moved up to the top of the file.
40679         (WebCore::TextCodecICU::registerBaseEncodingNames): Added. Registers
40680         just UTF-8.
40681         (WebCore::TextCodecICU::registerBaseCodecs): Ditto.
40682         (WebCore::TextCodecICU::registerExtendedEncodingNames): Renamed.
40683         (WebCore::TextCodecICU::registerExtendedCodecs): Ditto.
40684         (WebCore::TextCodecICU::createICUConverter): Compare with the name
40685         "GBK" in a way that does not require extending the maps.
40686
40687         * platform/TextEncoding.cpp:
40688         (WebCore::TextEncoding::usesVisualOrdering): Added code so this will
40689         just return false if we haven't used any extended encoding names yet.
40690         The result will be correct, and we won't ask for an encoding name that
40691         will require registering the extended encoding names.
40692         (WebCore::TextEncoding::isJapanese): Ditto.
40693         (WebCore::TextEncoding::backslashAsCurrencySymbol): Ditto, but return
40694         a backslash instead of false.
40695
40696         * platform/TextEncodingRegistry.h: Added a new function named
40697          noExtendedTextEncodingNameUsed.
40698         * platform/TextEncodingRegistry.cpp:
40699         (WebCore::buildBaseTextCodecMaps): Added. Registers the base encodings,
40700         including Latin-1 because it's the default, and the UTF encodings.
40701         (WebCore::extendTextCodecMaps): Added. Registers all the other encodings.
40702         (WebCore::newTextCodec): Removed the all to buildTextCodecMap because
40703         we always build the map when making the canonical encoding name.
40704         (WebCore::atomicCanonicalTextEncodingName): Changed code to build only
40705         the base maps at first, then extend the maps the first time we run into
40706         a name we don't know.
40707         (WebCore::noExtendedTextEncodingNameUsed): Added.
40708
40709 2007-05-03  Mark Rowe  <mrowe@apple.com>
40710
40711         Qt build fix.  In r21185 the Qt version of WebCore::scaleDragImage was
40712         updated to have the incorrect signature.
40713
40714         * platform/qt/DragImageQt.cpp:
40715         (WebCore::scaleDragImage):
40716
40717 2007-05-02  Beth Dakin  <bdakin@apple.com>
40718
40719         * dom/Node.h: Just fixing a variable name because it's driving me 
40720         mad.
40721
40722 2007-05-02  Beth Dakin  <bdakin@apple.com>
40723
40724         Reviewed by Hyatt.
40725
40726         Fix for <rdar://problem/4513966> Never-ending identical repaint @ 
40727         orbitz.com (Safari eating 85% CPU)
40728
40729         We need to be a little bit more savvy about when we do a FULL style 
40730         recalc since it can be unnecessary and expensive.
40731
40732         * css/CSSMutableStyleDeclaration.cpp:
40733         (WebCore::CSSMutableStyleDeclaration::setChanged): Now takes a 
40734         StyleChangeType as a parameter.
40735         (WebCore::CSSMutableStyleDeclaration::setProperty): Send 
40736         InlineStyleChange as the paramter. This is the optimization!
40737         * css/CSSMutableStyleDeclaration.h: setChanged takes a 
40738         StyleChangeType as a parameter.
40739         * dom/Document.cpp: setChanged now takes a StyleChangeType instead 
40740         of a bool.
40741         (WebCore::Document::recalcStyle): Same.
40742         * dom/Element.cpp: 
40743         (WebCore::Element::recalcStyle): This is the fix!! Only set change 
40744         to Force is we use descendant rules AND it's a FullStyleChange.
40745         * dom/Node.cpp: m_hasStyle was an unused bit on Node, so this patch 
40746         gets rid of it and uses that extra bit for m_changed to be a 
40747         StyleChangeType instead of a bool.
40748         (WebCore::Node::Node):
40749         (WebCore::Node::setChanged):
40750         (WebCore::Node::dump):
40751         * dom/Node.h: Same.
40752         (WebCore::): Define the StyleChangeType enum.
40753         (WebCore::Node::hasClass):
40754         (WebCore::Node::changed):
40755         (WebCore::Node::styleChangeType):
40756         (WebCore::Node::setHasClass):
40757         * dom/StyledElement.cpp:
40758         (WebCore::StyledElement::parseMappedAttribute): Don't bother 
40759         calling setHasStyle() since m_hasStyle is gone now. It was never 
40760         used, and this was the only place it was set.
40761         * dom/Text.cpp:
40762         (WebCore::Text::recalcStyle): setChanged now takes a 
40763         StyleChangeType instead of a bool.
40764         * html/HTMLFrameSetElement.cpp:
40765         (WebCore::HTMLFrameSetElement::recalcStyle): Same.
40766         * html/HTMLSelectElement.cpp:
40767         (WebCore::HTMLSelectElement::restoreState): Same.
40768         (WebCore::HTMLSelectElement::reset): Same.
40769         * html/HTMLTextAreaElement.cpp:
40770         (WebCore::HTMLTextAreaElement::setValue): Same.
40771         * ksvg2/misc/SVGTimer.cpp:
40772         (WebCore::SVGTimer::applyAnimations): Same.
40773         * ksvg2/svg/SVGUseElement.cpp:
40774         (WebCore::SVGUseElement::recalcStyle): Same.
40775         * platform/graphics/svg/SVGResource.cpp:
40776         (WebCore::SVGResource::repaintClients): Same.
40777
40778 2007-05-02  David Harrison  <harrison@apple.com>
40779
40780         Reviewed by Antti.
40781
40782         <rdar://problem/4859132> Grammar must always be checked in entire-sentence chunks, and shouldn't show markers for current sentence
40783
40784         Restore the remainder of the original fix now that blocking bug rdar://5174862 is addressed.
40785
40786         John made the original patch on 2007-04-10, but this fell prey to rdar://5157329.
40787         Justin backed out the whole patch on 2007-04-30 to avoid the crash.
40788         Justin then restored most of the original patch, but used word granularity instead, to keep the build working.
40789         I just addressed the root cause of rdar://5157329 in rdar://5174862.
40790         This patch switches the temp uses of word granularity back to sentence granularity.
40791         
40792         * editing/mac/EditorMac.mm:
40793         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
40794         * page/Frame.cpp:
40795         (WebCore::Frame::respondToChangedSelection):
40796
40797 2007-05-02  David Harrison  <harrison@apple.com>
40798
40799         Reviewed by Antti.
40800
40801         <rdar://problem/5174862> Crash resulting from DeprecatedString::insert()
40802         
40803         Test added: editing/selection/move-by-sentence-001.html
40804
40805         * editing/visible_units.cpp:
40806         (WebCore::previousBoundary):
40807         (WebCore::nextBoundary):
40808         Use a UChar Vector instead of DeprecatedString.
40809         Avoid creating an extra string for secure bullet replacement unless it is actually needed.
40810         
40811         * platform/DeprecatedString.cpp:
40812         (WebCore::DeprecatedString::insert):
40813         Call forceUnicode() before setLength(), so that only the unicode buffer is resized.
40814
40815        (WebCore::DeprecatedString::setLength):
40816         Adjust the unicode buffer even if the ascii buffer is valid.
40817         
40818 2007-05-02  Mitz Pettel  <mitz@webkit.org>
40819
40820         Reviewed by Brady.
40821
40822         - http://bugs.webkit.org/show_bug.cgi?id=13564
40823           Remove friend class FrameLoader from Frame
40824
40825         No test added since there is no change in functionality.
40826
40827         * loader/FrameLoader.cpp:
40828         (WebCore::FrameLoader::didOpenURL):
40829         (WebCore::FrameLoader::begin):
40830         (WebCore::FrameLoader::open):
40831         * loader/FrameLoader.h: Made clear() private.
40832         * page/Frame.cpp:
40833         (WebCore::Frame::setDocument): Changed the argument into a PassRefPtr.
40834         * page/Frame.h:
40835         * xml/XSLTProcessor.cpp:
40836         (WebCore::XSLTProcessor::createDocumentFromSource):
40837
40838 2007-05-02  Mitz Pettel  <mitz@webkit.org>
40839
40840         Reviewed by Dave Hyatt.
40841
40842         - fix http://bugs.webkit.org/show_bug.cgi?id=9276
40843           Quirksmode: Image swap resize bug
40844
40845         Test: fast/replaced/image-resize-width.html
40846
40847         * rendering/RenderImage.cpp:
40848         (WebCore::RenderImage::imageChanged): Moved the call to dirtyPrefWidths()
40849         before the call to calcWidth().
40850
40851 2007-05-02  David Hyatt  <hyatt@apple.com>
40852
40853         Fix for bug 13566, broken Dashboard widgets.  setPrefWidthsDirty did
40854         the wrong thing for text children of a positioned element.
40855
40856         Reviewed by mitz
40857
40858         fast/block/positioning/pref-width-change.html
40859
40860         * rendering/RenderObject.cpp:
40861         (WebCore::RenderObject::setPrefWidthsDirty):
40862
40863 2007-05-01  Darin Adler  <darin@apple.com>
40864
40865         * rendering/RenderReplaced.cpp: Fix typo in a comment.
40866
40867 2007-05-01  David Hyatt  <hyatt@apple.com>
40868
40869         Fix for 13558, crash when using absolutely positioned generated content
40870         inside an inline.
40871
40872         Reviewed by darin
40873
40874         fast/css-generated-content/absolute-position-inside-inline.html
40875
40876         * rendering/RenderContainer.cpp:
40877         (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
40878
40879 2007-05-01  Justin Garcia  <justin.garcia@apple.com>
40880
40881         Reviewed by darin
40882
40883         <rdar://problem/5002441> 
40884         Pressing space key does nothing above quoted content or a signature
40885         
40886         Inserting a space under these circumstances inserts a single 
40887         text node containing a regular space and then does a layout. 
40888         That space isn't rendered (which is correct).  Whitespace 
40889         rebalancing is supposed to correct it but failed.  It replaces 
40890         the space with a non-breaking space, but that change doesn't 
40891         dirty line boxes (9441) and so the space isn't rendered.
40892         
40893         This workaround turns all incoming spaces into non-breaking 
40894         spaces before they're inserted (they're rebalanced after 
40895         insertion and turned back into regular spaces if possible).
40896
40897         * editing/InsertTextCommand.cpp:
40898         (WebCore::InsertTextCommand::prepareForTextInsertion): Removed
40899         an old irrelevant FIXME.
40900         (WebCore::InsertTextCommand::input): Turn incoming spaces into
40901         non breaking spaces before inserting them.
40902         
40903 2007-05-01  Darin Adler  <darin@apple.com>
40904
40905         Reviewed by Hyatt.
40906
40907         - fix http://bugs.webkit.org/show_bug.cgi?id=13559
40908           REGRESSION: Canvas aspect ratio is incorrect
40909
40910         - remove intrinsicWidth/Height functions from RenderObject
40911
40912         Test: fast/canvas/canvas-size-change-after-layout.html
40913
40914         * html/HTMLCanvasElement.cpp:
40915         (WebCore::HTMLCanvasElement::createRenderer): Removed code to set
40916         the intrinsic size, because the renderer now takes care of this
40917         in its constructor.
40918         (WebCore::HTMLCanvasElement::reset): Instead of calling the
40919         setIntrinsicWidth/Height functions, call canvasSizeChanged, which
40920         takes care of layout, but only if the size actually changed. Also
40921         call repaint if the contents of the canvas changed.
40922
40923         * rendering/RenderApplet.h:
40924         * rendering/RenderApplet.cpp: (WebCore::RenderApplet::intrinsicSize):
40925         Override the new intrinsicSize function. This override still doesn't
40926         make sense, so left a FIXME in here.
40927
40928         * rendering/RenderBox.h: Added an intrinsicSize function here to replace
40929         the intrinsicWidth/Height functions removed from RenderObject.
40930         * rendering/RenderBox.cpp:
40931         (WebCore::RenderBox::calcReplacedWidthUsing): Use intrinsicSize instead
40932         of intrinsicWidth.
40933         (WebCore::RenderBox::calcReplacedHeightUsing): Ditto, but for height.
40934
40935         * rendering/RenderHTMLCanvas.h: Changed the constructor parameter to be
40936         an HTMLCanvasElement* instead of Node*. Also added a canvasSizeChanged
40937         function.
40938         * rendering/RenderHTMLCanvas.cpp:
40939         (WebCore::RenderHTMLCanvas::RenderHTMLCanvas): Pass an initial intrinsic
40940         size based on the current size of the canvas element. This is now the
40941         responsibility of the renderer and the DOM element calls the canvasSizeChanged
40942         function when the size changes.
40943         (WebCore::RenderHTMLCanvas::paint): Removed checks of the type of the element,
40944         and used the node() function because we don't have to worry about the anonymous
40945         case in this class.
40946         (WebCore::RenderHTMLCanvas::canvasSizeChanged): Added. Changes the size and
40947         then calls setNeedsLayout and setPrefWidthsDirty as needed. I based the logic
40948         here on careful reading of RenderImage::imageChanged.
40949
40950         * rendering/RenderImage.cpp:
40951         (WebCore::RenderImage::RenderImage): Pass a default intrinsic size of 0,0
40952         instead of calling setIntrinsicWidth/Height.
40953         (WebCore::RenderImage::setImageSizeForAltText): Call the new intrinsic size
40954         functions instead of the width/height ones. Simplifies the logic since we
40955         handle both dimensions at once.
40956         (WebCore::RenderImage::imageChanged): Ditto.
40957         (WebCore::RenderImage::layout): Ditto.
40958         (WebCore::RenderImage::calcAspectRatioWidth): Ditto.
40959         (WebCore::RenderImage::calcAspectRatioHeight): Ditto.
40960
40961         * rendering/RenderObject.h: Removed intrinsicWidth/Height virtual functions.
40962
40963         * rendering/RenderReplaced.h: Replaced intrinsicWidth, intrinsicHeight,
40964         setIntrinsicWidth, setIntrinsicHeight, m_intrinsicWidth, and m_intrinsicHeight
40965         with intrinsicSize, setIntrinsicSize, and m_intrinsicSize.
40966         * rendering/RenderReplaced.cpp:
40967         (WebCore::RenderReplaced::RenderReplaced): Added a second contructor that takes
40968         an intrinsic size parameter. Also updated constructor since the intrinsic size
40969         is now an IntSize instead of two integers.
40970         (WebCore::RenderReplaced::intrinsicSize): Added. No point in making this inline
40971         because it's a virtual function.
40972         (WebCore::RenderReplaced::setIntrinsicSize): Added. Didn't make this inline,
40973         partly because in the future we might want this to be more than just a simple
40974         setter function, factoring in common code used in both RenderImage and
40975         RenderHTMLCanvas.
40976
40977         * rendering/RenderWidget.h: Removed a stray using declaration that wasn't needed.
40978
40979 2007-05-01  David Hyatt  <hyatt@apple.com>
40980
40981         Fix for hang when incorrectly trying to add before/after content to
40982         a <select>.  Disallow generated content in all selects and also turn it
40983         off for <input> buttons.
40984
40985         Reviewed by aroben
40986
40987         * rendering/RenderBlock.cpp:
40988         (WebCore::RenderBlock::setStyle):
40989         * rendering/RenderButton.cpp:
40990         (WebCore::RenderButton::canHaveChildren):
40991         * rendering/RenderButton.h:
40992
40993 2007-05-01  Darin Adler  <darin@apple.com>
40994
40995         Reviewed by Hyatt.
40996
40997         - removed the m_implicit bit from Node, freeing up a bit
40998
40999         - fixed <rdar://problem/5172607> XML parser is creating implicit tbody elements
41000         - fixed <rdar://problem/5172596> HTML-parser-created tbody elements are being
41001           ignored when processing CSS child rules
41002
41003         Test: fast/css/child-selector-implicit-tbody.html
41004
41005         * css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::checkSelector):
41006         Removed code that used to look at implicitNode(), which no longer exists.
41007
41008         * css/html4.css: Added a style rule to handle cases where we have a tr
41009         inside a table with no intervening table section.
41010
41011         * dom/Node.h: Removed the bit.
41012         * dom/Node.cpp:
41013         (WebCore::Node::Node): Don't initialize the bit.
41014         (WebCore::Node::dump): Don't dump the bit.
41015
41016         * dom/XMLTokenizer.cpp:
41017         (WebCore::XMLTokenizer::startElementNs): Remove the code that made a
41018         table body element. This is handled in the render tree, the DOM tree
41019         should not be mangled.
41020         (WebCore::XMLTokenizer::endElementNs): Removed code that used to look at
41021         implicitNode(), which no longer exists.
41022
41023         * html/HTMLElementFactory.cpp: (WebCore::tableSectionConstructor):
41024         Removed boolean parameter that was passed to the HTMLTableSectionElement
41025         constructor.
41026         * html/HTMLParser.cpp: (WebCore::HTMLParser::handleError): Ditto.
41027         * html/HTMLTableElement.cpp:
41028         (WebCore::HTMLTableElement::createTHead): Ditto.
41029         (WebCore::HTMLTableElement::createTFoot): Ditto.
41030         (WebCore::HTMLTableElement::insertRow): Changed to return a PassRefPtr,
41031         because it's possible the row could be removed from the table by JavaScript
41032         code responding to DOM mutation events before the function returns. Just
41033         something I noticed by code inspection.
41034
41035         * html/HTMLTableSectionElement.cpp:
41036         (WebCore::HTMLTableSectionElement::HTMLTableSectionElement): Removed
41037         boolean "implicit" parameter to the constructor.
41038         (WebCore::HTMLTableSectionElement::insertRow): Changed to return a
41039         PassRefPtr for the same reason cited above.
41040
41041         * html/HTMLTableElement.h: Changed the return value of insertRow to be
41042         a PassRefPtr.
41043         * html/HTMLTableSectionElement.h: Ditto.
41044
41045 2007-04-30  David Hyatt  <hyatt@apple.com>
41046
41047         Fix for bug 12691, generated content and display: table-cell duplicates
41048         content on a size change.  Make sure that the code to update before/after
41049         content is smart enough to drill into anonymous containers to find the
41050         old child.
41051
41052         Reviewed by olliej
41053
41054         Added fast/css-generated-content/table-cell-before-content.html
41055
41056         * rendering/RenderBlock.cpp:
41057         (WebCore::RenderBlock::setStyle):
41058         * rendering/RenderButton.cpp:
41059         (WebCore::RenderButton::updateBeforeAfterContent):
41060         * rendering/RenderButton.h:
41061         * rendering/RenderContainer.cpp:
41062         (WebCore::RenderContainer::beforeAfterContainer):
41063         (WebCore::RenderContainer::updateBeforeAfterContent):
41064         (WebCore::RenderContainer::updateBeforeAfterContentForObject):
41065         * rendering/RenderContainer.h:
41066         * rendering/RenderInline.cpp:
41067         (WebCore::RenderInline::setStyle):
41068         (WebCore::RenderInline::addChildToFlow):
41069         (WebCore::RenderInline::splitInlines):
41070
41071 2007-04-30  Jungshik Shin <jungshik.shin@gmail.com>
41072
41073         Reviewed by justin
41074         
41075         <http://bugs.webkit.org/show_bug.cgi?id=13552>
41076         comment to Range::comparePoint in dom/Range.cpp has 
41077         '0xD0' in place of '-': leading to a compiler warning
41078
41079         * dom/Range.cpp:
41080         (WebCore::Range::comparePoint):
41081
41082 2007-04-30  Justin Garcia  <justin.garcia@apple.com>
41083
41084         Reviewed by darin
41085
41086         <rdar://problem/4875189> List gets deleted when replacing contents
41087
41088         * editing/ReplaceSelectionCommand.cpp:
41089         (WebCore::ReplaceSelectionCommand::doApply): Don't expand
41090         to include elements, like lists, when deleting a selection 
41091         to replace it.
41092
41093 2007-04-30  Justin Garcia  <justin.garcia@apple.com>
41094
41095         Reviewed by ggaren
41096         
41097         Buildfix.  Leave in grammar checking machinery to 
41098         keep WebKit building on other platforms but don't
41099         operate on sentence sized chunks so that we don't
41100         re-introduce 5157329.
41101
41102         * editing/Editor.h:
41103         * editing/mac/EditorMac.mm:
41104         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
41105         (WebCore::markMisspellingsOrBadGrammar):
41106         (WebCore::Editor::markMisspellings):
41107         (WebCore::Editor::markBadGrammar):
41108         * page/Frame.cpp:
41109         (WebCore::Frame::respondToChangedSelection):
41110
41111 2007-04-30  Justin Garcia  <justin.garcia@apple.com>
41112
41113         Reviewed by darin
41114
41115         <rdar://problem/5168598> 
41116         Crash when deleting a link inside an input field
41117         
41118         Deletion code tries to update one of its positions to keep 
41119         it valid and nullifies it.  Later in mergeParagraphs we try 
41120         to find out if it's valid by checking to see if it's still in 
41121         the document and crash.
41122         
41123         The fix is just to not bother keeping the position, 
41124         m_upstreamStart, valid, since after the point in the code 
41125         under examination, it doesn't need to be valid anymore.  
41126         Besides, code to update DeleteSelectionCommand's positions 
41127         should go in the functions that handle the content removal 
41128         that might invalid them (there are already FIXMEs about this).
41129         
41130         Also, users shouldn't be able to insert links (or any rich content)
41131         into plaintext-only regions like text fields, even if those
41132         text fields are inside richly editable regions.  This is a 
41133         separate bug and is filed as 5171552.
41134
41135         * editing/DeleteSelectionCommand.cpp:
41136         (WebCore::DeleteSelectionCommand::handleGeneralDelete): Don't
41137         bother updating m_upstreamStart.
41138
41139 2007-04-30  Patti Hoa  <patti@apple.com>
41140
41141         Reviewed by Dave Hyatt.
41142         
41143         <rdar://problem/5108546> REGRESSION: Zoom follows keyboard focus does not work
41144
41145         * WebCore.xcodeproj/project.pbxproj:
41146         Add new file SelectionControllerMac.mm
41147         * dom/Document.cpp:
41148         (WebCore::Document::updateSelection):
41149         Move the code to fire off AXSelectedTextChanged notification to a new method notifyAccessibilityForSelectionChange in SelectionControllerMac.mm
41150         * editing/SelectionController.cpp:
41151         (WebCore::SelectionController::setSelection):
41152         call notifyAccessibilityForSelectionChange to handle firing of accessibility notification and zoomFocusChange
41153         * editing/SelectionController.h:
41154         Add notifyAccessibilityForSelectionChange method for Mac platform
41155         * platform/Widget.h:
41156         * platform/mac/WidgetMac.mm:
41157         (WebCore::Widget::convertToScreenCoordinate):
41158         Add a helper routine that takes IntPoint in local coordinate and convert that to screen coordinate
41159
41160 2007-04-30  Justin Garcia  <justin.garcia@apple.com>
41161
41162         Reviewed by harrison
41163
41164         <rdar://problem/5157329> 
41165         REGRESSION: Crash at WTF::fastFree() when arrowing or deleting backward through editable text (13493)
41166         
41167         Backing out the changes for 4859132.
41168
41169         * editing/Editor.h:
41170         * editing/mac/EditorMac.mm:
41171         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
41172         (WebCore::Editor::markMisspellings):
41173         * page/Frame.cpp:
41174         (WebCore::Frame::respondToChangedSelection):
41175
41176 2007-04-29  Antti Koivisto  <antti@apple.com>
41177
41178         Reviewed by Oliver.
41179
41180         Fix <rdar://problem/5169261>
41181         REGRESSION: Google Maps zooming too sensitive when using two fingers on trackpad
41182         
41183         Use line based delta values when generating DOM wheel events, use pixel deltas
41184         for scrolling only.
41185         
41186         No test case, requires user interaction and specific hardware.
41187
41188         * page/EventHandler.cpp:
41189         (WebCore::EventHandler::handleWheelEvent):
41190         * platform/PlatformWheelEvent.h:
41191         (WebCore::PlatformWheelEvent::continuousDeltaX):
41192         (WebCore::PlatformWheelEvent::continuousDeltaY):
41193         * platform/mac/WheelEventMac.mm:
41194         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
41195
41196 2007-04-29  Oliver Hunt  <oliver@apple.com>
41197
41198         Reviewed by Brady.
41199
41200         Build fix for experimental features build
41201
41202         * rendering/RenderForeignObject.cpp:
41203
41204 2007-04-29  Mitz Pettel  <mitz@webkit.org>
41205
41206         Reviewed by Dave Hyatt.
41207
41208         - fix http://bugs.webkit.org/show_bug.cgi?id=13544
41209           REGRESSION (r21120): Member profile frame not erased at Yahoo! Answers
41210
41211         Test: fast/repaint/layer-hide-when-needs-layout.html
41212
41213         * rendering/RenderObject.cpp:
41214         (WebCore::RenderObject::setStyle): If we get a layout hint, we count on
41215         layout() or updateLayerPositions() to repaint. In the case of a layer
41216         going invisible, however, we need to repaint here since neither of the
41217         above will do it.
41218
41219 2007-04-29  Oliver Hunt  <oliver@apple.com>
41220
41221         Reviewed by Steve.
41222
41223         Fix for <rdar://problem/5126393> REGRESSION (r19672-19697): Safari drag image drags at original size (13261)
41224
41225         Added logic to ensure that when we create the drag image
41226         we're looking at the rendered image size.
41227
41228         * page/DragController.cpp:
41229         (WebCore::DragController::doImageDrag):
41230           Pass the rendered image size to fitDragImageToMaxSize
41231
41232         * platform/DragImage.cpp:
41233         (WebCore::fitDragImageToMaxSize):
41234            Need to do scaling relative to rendered image size
41235
41236         * platform/DragImage.h:
41237            scaleDragImage needs x and y scales to allow for them to be
41238            scaled seperately on a page
41239
41240         * platform/gdk/DragImageGdk.cpp:
41241         (WebCore::scaleDragImage):
41242            Prevent build bustage
41243
41244         * platform/mac/DragImageMac.mm:
41245         (WebCore::scaleDragImage):
41246            scale width and height independently
41247
41248         * platform/qt/DragImageQt.cpp:
41249         (WebCore::scaleDragImage):
41250            Prevent build bustage
41251
41252 2007-04-29  Darin Adler  <darin@apple.com>
41253
41254         Reviewed by Adele.
41255
41256         - fix the Gmail part of http://bugs.webkit.org/show_bug.cgi?id=12798
41257           and <rdar://problem/4118559>
41258
41259         This patch changes things so that resizing can make things larger than their
41260         initial size, but not smaller. I believe this resolves the problem for Gmail,
41261         but you can still get strange behavior if you have a small right-aligned <textarea>.
41262
41263         * rendering/RenderLayer.cpp:
41264         (WebCore::RenderLayer::resize): Rewrote to use more IntPoint and IntSize and add
41265         in a new minimum-size algorithm. This function now has the side effect of storing
41266         a new minimumSizeForResizing in the element being resized, and respects any existing
41267         minimum as well.
41268         (WebCore::RenderLayer::offsetFromResizeCorner): Reversed this so it converts the
41269         point into coordinates relative to the resize corner, hence negative numbers mean
41270         the point is above and to the left. This is used only in the algorithm above.
41271
41272         * dom/Element.h: Removed unneeded include of Attr.h, and added forward declarations
41273         as needed. Removed all friend declarations; there was no need for any of them.
41274         Tweaked formatting of various declarations and removed unneeded parameter names.
41275         Made as much as possible private, and a couple things public to avoid the need for
41276         friend classes. Added minimumSizeForResizing, setMinimumSizeForResizing, rareData,
41277         and createRareData functions.
41278
41279         * dom/Element.cpp:
41280         (WebCore::rareDataMap): Added. Function to return the single global map.
41281         (WebCore::rareDataFromMap): Added. For use by inlined functions to get the
41282         data from the map in the case where it's present.
41283         (WebCore::ElementRareData::ElementRareData): Added.
41284         (WebCore::Element::~Element): Added code to delete the element from the rare
41285         data map when appropriate.
41286         (WebCore::Element::rareData): Added.
41287         (WebCore::Element::createRareData): Added.
41288         (WebCore::Element::setAttributeNodeNS): Got rid of the old inline version of this,
41289         since it was the sole reason we had to include Attr.h in Element.h.
41290         (WebCore::Element::minimumSizeForResizing): Added. Accesses rare data.
41291         (WebCore::Element::setMinimumSizeForResizing): Ditto.
41292
41293         * dom/Node.h: Renamed the m_specified bit since it's now used for two purposes.
41294         Its new long name is m_attrWasSpecifiedOrElementHasRareData.
41295
41296         * dom/Attr.cpp: (WebCore::Attr::Attr): Updated for bit name change.
41297         * dom/Attr.h:
41298         (WebCore::Attr::specified): Ditto.
41299         (WebCore::Attr::setSpecified): Added, since setting the bit directly is pretty ugly now.
41300         * dom/Document.cpp: (WebCore::Document::adoptNode): Updated for bit name change.
41301         * dom/Node.cpp:
41302         (WebCore::Node::Node): Ditto.
41303         (WebCore::Node::dump): Ditto.
41304
41305         * dom/NamedAttrMap.cpp: (WebCore::NamedAttrMap::isReadOnlyNode): Moved out of line,
41306         since this was the sole reason we had to include Element.h in NamedAttrMap.h.
41307
41308         * html/HTMLElement.cpp:
41309         (WebCore::HTMLElement::nodeName): Changed to use tagQName() since that's a public
41310         way to do something that's now private.
41311         (WebCore::HTMLElement::cloneNode): Ditto.
41312
41313         * dom/Attribute.cpp:
41314         * dom/NamedAttrMap.h:
41315         * dom/NamedMappedAttrMap.cpp:
41316         * dom/StyledElement.h:
41317         * html/HTMLTokenizer.h:
41318         * xml/XPathFunctions.cpp:
41319         * xml/XPathStep.cpp:
41320         Updated includes, and other administrivia.
41321
41322 2007-04-29  Mitz Pettel  <mitz@webkit.org>
41323
41324         Reviewed by Darin and Hyatt.
41325
41326         - http://bugs.webkit.org/show_bug.cgi?id=13487
41327           Implement O(1) absoluteClippedOverflowRect and absoluteOutlineBox during layout for a possible speed gain
41328
41329         Test for a bug fixed by this patch: fast/repaint/intermediate-layout-position-clip.html
41330
41331         By keeping track of the total translation and clip during layout, absolutePosition and
41332         computeAbsoluteRepaintRect become O(1).
41333
41334         * WebCore.pro: Added LayoutState.cpp
41335         * WebCore.vcproj/WebCore/WebCore.vcproj: Added LayoutState.{cpp,h}
41336         * WebCore.xcodeproj/project.pbxproj: Added LayoutState.{cpp,h}
41337         * WebCoreSources.bkl: Added LayoutState.cpp
41338         * page/FrameView.cpp:
41339         (WebCore::FrameView::layout): When doing subtree layout, push an initial layout state for the
41340         layout root.
41341         * rendering/LayoutState.cpp: Added. A LayoutState corresponding to a box consists of the origin of
41342         its coordinate system in view coordinates and possibly the clip rect, in view coordinates, which
41343         applies to its children.
41344         (WebCore::LayoutState::LayoutState):
41345         (WebCore::LayoutState::destroy):
41346         (WebCore::throw):
41347         (WebCore::LayoutState::operator delete):
41348         * rendering/LayoutState.h: Added.
41349         (WebCore::LayoutState::LayoutState):
41350         * rendering/RenderBlock.cpp:
41351         (WebCore::RenderBlock::layoutBlock): Factored out the "only positioned objects" case into
41352         layoutOnlyPositionedObjects(). Added code to push/pop LayoutState, unless we have columns, in
41353         which case we disable/enable LayoutState. Removed the translation by the layout delta
41354         of the old absolute rects, since that is now integral to absoluteClippedOverflowRect() and
41355         absoluteOutlineBox().
41356         (WebCore::RenderBlock::layoutOnlyPositionedObjects): Added this helper function that checks for
41357         and handles the case where only positioned objects need layout. Returns true in that case.
41358         (WebCore::RenderBlock::repaintOverhangingFloats): Disabled LayoutState when repainting floats, since
41359         they may belong to other containers.
41360         (WebCore::RenderBlock::updateFirstLetter): Disabled LayoutState when adding and removing from the
41361         first letter container, since it may be different than ourselves.
41362         * rendering/RenderBlock.h:
41363         * rendering/RenderBox.cpp:
41364         (WebCore::RenderBox::setStyle): Minor cleanup: changed element()->document() to the equivalent document().
41365         (WebCore::RenderBox::offsetForPositionedInContainer): Added. Factored out common code from
41366         absolutePosition, computeAbsoluteRepaintRect and RenderLayer::updateLayerPosition into this function.
41367         (WebCore::RenderBox::absolutePosition): Added an O(1) code path when this function is called during
41368         layout (and LayoutState has not been disabled). Factored out some code into
41369         offsetForPositionedInContainer.
41370         (WebCore::RenderBox::absoluteClippedOverflowRect): Added the layout delta here, so callers don't need
41371         to.
41372         (WebCore::RenderBox::computeAbsoluteRepaintRect): Added an O(1) code path when this function is called
41373         during layout (and LayoutState has not been disabled). Factored out some code into
41374         offsetForPositionedInContainer.
41375         * rendering/RenderContainer.cpp:
41376         (WebCore::RenderContainer::layout): Added LayoutState push/pop.
41377         * rendering/RenderFlexibleBox.cpp:
41378         (WebCore::RenderFlexibleBox::layoutBlock): Factored out the "only positioned objects" case into
41379         layoutOnlyPositionedObjects(). Added LayoutState push/pop. Removed the translation by the layout delta
41380         of the old absolute rects, since that is now integral to absoluteClippedOverflowRect() and
41381         absoluteOutlineBox().
41382         * rendering/RenderFlow.cpp:
41383         (WebCore::RenderFlow::absoluteClippedOverflowRect): Added an ASSERT.
41384         * rendering/RenderForeignObject.cpp:
41385         (WebCore::RenderForeignObject::layout): Disabled LayoutState because it is incompatible with arbitrary
41386         affine transforms.
41387         * rendering/RenderHTMLCanvas.cpp:
41388         (WebCore::RenderHTMLCanvas::layout): Removed the translation by the layout delta of the old absolute
41389         rects, since that is now integral to absoluteClippedOverflowRect() and absoluteOutlineBox().
41390         * rendering/RenderImage.cpp:
41391         (WebCore::RenderImage::layout): Ditto.
41392         * rendering/RenderLayer.cpp:
41393         (WebCore::RenderLayer::updateLayerPositions): Added ASSERTs. Factored out some code into
41394         RenderBox::offsetForPositionedInContainer.
41395         (WebCore::RenderLayer::updateScrollInfoAfterLayout): Disabled LayoutState around the call to
41396         scrollToOffset.
41397         * rendering/RenderListItem.cpp:
41398         (WebCore::RenderListItem::updateMarkerLocation): Disabled LayoutState when moving the list marker, since
41399         it can trigger repainting in other containers.
41400         * rendering/RenderObject.cpp:
41401         (WebCore::RenderObject::isRoot): Minor cleanup: changed element()->document() to the equivalent
41402         document().
41403         (WebCore::RenderObject::computeAbsoluteRepaintRect): Removed 'return' at the end of the function.
41404         (WebCore::RenderObject::container): Reordered to avoid calling isText() twice.
41405         (WebCore::RenderObject::absoluteOutlineBox): Added the layout delta here, so callers don't need to.
41406         * rendering/RenderSVGContainer.cpp:
41407         (WebCore::RenderSVGContainer::layout): Disabled LayoutState because it is incompatible with arbitrary
41408         affine transforms.
41409         * rendering/RenderTable.cpp:
41410         (WebCore::RenderTable::layout):  Factored out the "only positioned objects" case into
41411         layoutOnlyPositionedObjects(). Added LayoutState push/pop. Removed the translation by the layout delta
41412         of the old absolute rects, since that is now integral to absoluteClippedOverflowRect() and
41413         absoluteOutlineBox().
41414         * rendering/RenderTableCell.cpp:
41415         (WebCore::RenderTableCell::absoluteClippedOverflowRect): Added the layout delta here, so callers
41416         don't need to.
41417         (WebCore::RenderTableCell::computeAbsoluteRepaintRect): For the O(1) code path, skipped the correction
41418         for the parent row, because RenderTableRow doesn't push a translation into LayoutState.
41419         (WebCore::RenderTableCell::absolutePosition): Ditto.
41420         * rendering/RenderTableRow.cpp:
41421         (WebCore::RenderTableRow::layout): Added LayoutState push/pop.
41422         * rendering/RenderTableSection.cpp:
41423         (WebCore::RenderTableSection::setCellWidths): Added LayoutState push/pop if cells are repainted or
41424         receive layout.
41425         (WebCore::RenderTableSection::calcRowHeight): Ditto.
41426         (WebCore::RenderTableSection::layoutRows): Added LayoutState push/pop.
41427         * rendering/RenderView.cpp:
41428         (WebCore::RenderView::RenderView):
41429         (WebCore::RenderView::layout): Added initial LayoutState setup for the layout.
41430         (WebCore::RenderView::paintBoxDecorations): Minor cleanup: changed element()->document() to the
41431         equivalent document().
41432         (WebCore::RenderView::repaintViewRectangle): Ditto.
41433         (WebCore::RenderView::pushLayoutState): Added. Pushes initial layout state for subtree layout.
41434         * rendering/RenderView.h:
41435         (WebCore::RenderView::pushLayoutState):
41436         (WebCore::RenderView::popLayoutState):
41437         (WebCore::RenderView::layoutState):
41438         (WebCore::RenderView::disableLayoutState):
41439         (WebCore::RenderView::enableLayoutState):
41440
41441 2007-04-29  David Hyatt  <hyatt@apple.com>
41442
41443         Fix for bugzilla 13535, regression from positioning cleanup a while
41444         back.  Some code got added to compute available width for a relpositioned
41445         inline, only the code meant to be used for inline flows and not inline blocks.
41446
41447         Reviewed by mjs
41448
41449         fast/block/positioning/inline-block-relposition.html
41450
41451         * rendering/RenderBox.cpp:
41452         (WebCore::RenderBox::containingBlockWidthForPositioned):
41453
41454 2007-04-29  Oliver Hunt  <oliver@apple.com>
41455
41456         Reviewed by Zack.
41457
41458         Implement basic drag and drop support for qt
41459         this allows content and link dragging but does not
41460         provide the DOM data access methods.
41461
41462         * platform/DragData.h:
41463         * platform/qt/ClipboardQt.cpp:
41464         (WebCore::ClipboardQt::ClipboardQt):
41465         (WebCore::ClipboardQt::~ClipboardQt):
41466         (WebCore::ClipboardQt::clearData):
41467         (WebCore::ClipboardQt::clearAllData):
41468         (WebCore::ClipboardQt::setData):
41469         (WebCore::ClipboardQt::declareAndWriteDragImage):
41470         (WebCore::ClipboardQt::writeURL):
41471         (WebCore::ClipboardQt::writeRange):
41472         (WebCore::ClipboardQt::hasData):
41473         * platform/qt/ClipboardQt.h:
41474         (WebCore::ClipboardQt::clipboardData):
41475         (WebCore::ClipboardQt::invalidateWritableData):
41476         * platform/qt/DragDataQt.cpp:
41477         (WebCore::DragData::canSmartReplace):
41478         (WebCore::DragData::containsPlainText):
41479         (WebCore::DragData::asPlainText):
41480         (WebCore::DragData::createClipboard):
41481         (WebCore::DragData::containsCompatibleContent):
41482         (WebCore::DragData::containsURL):
41483         (WebCore::DragData::asURL):
41484         (WebCore::DragData::asFragment):
41485
41486 2007-04-28  Maciej Stachowiak  <mjs@apple.com>
41487
41488         Reviewed by Darin and Oliver.
41489
41490         - change Document to hold onto Frame* instead of FrameView*
41491         
41492         This is an architectural cleanup and a prerequisite to fixing citibank login
41493         in an architecturally sound way.
41494
41495         Some fixups for the page cache:
41496         
41497         * history/CachedPage.cpp:
41498         (WebCore::CachedPage::restore): Add an assert that the document's view
41499         matches the cached page's view - this needs to be true by the time this
41500         function is called.
41501         (WebCore::CachedPage::clear): Change assert to require frame matching, not
41502         view matching.
41503         * history/CachedPage.h:
41504         (WebCore::CachedPage::view): Add a way to get the view out.
41505         * loader/FrameLoader.cpp:
41506         (WebCore::FrameLoader::begin): pass Frame, not FrameView, when creating document
41507         (WebCore::FrameLoader::open): restore view based on CachedPage, not Document. 
41508
41509         Remaining changes are just straightforward updates based on which
41510         pointer is held or passed:
41511         
41512         * dom/DOMImplementation.cpp:
41513         (WebCore::DOMImplementation::createDocument):
41514         (WebCore::DOMImplementation::createHTMLDocument):
41515         * dom/DOMImplementation.h:
41516         * dom/Document.cpp:
41517         (WebCore::Document::Document):
41518         (WebCore::Document::view):
41519         (WebCore::Document::frame):
41520         (WebCore::Document::recalcStyle):
41521         (WebCore::Document::updateLayout):
41522         (WebCore::Document::attach):
41523         (WebCore::Document::detach):
41524         (WebCore::Document::createTokenizer):
41525         (WebCore::Document::recalcStyleSelector):
41526         (WebCore::Document::setInPageCache):
41527         (WebCore::Document::applyXSLTransform):
41528         * dom/Document.h:
41529         * html/HTMLDocument.cpp:
41530         (WebCore::HTMLDocument::HTMLDocument):
41531         * html/HTMLDocument.h:
41532         * html/HTMLViewSourceDocument.cpp:
41533         (WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument):
41534         * html/HTMLViewSourceDocument.h:
41535         * ksvg2/svg/SVGDocument.cpp:
41536         (WebCore::SVGDocument::SVGDocument):
41537         * ksvg2/svg/SVGDocument.h:
41538         * loader/ImageDocument.cpp:
41539         (WebCore::ImageDocument::ImageDocument):
41540         * loader/ImageDocument.h:
41541         * loader/PluginDocument.cpp:
41542         (WebCore::PluginDocument::PluginDocument):
41543         * loader/PluginDocument.h:
41544         * loader/TextDocument.cpp:
41545         (WebCore::TextDocument::TextDocument):
41546         * loader/TextDocument.h:
41547         * xml/XSLTProcessor.cpp:
41548         (WebCore::XSLTProcessor::createDocumentFromSource):
41549         (WebCore::XSLTProcessor::transformToDocument):
41550         * xml/XSLTProcessor.h:
41551
41552 2007-04-28  Adele Peterson  <adele@apple.com>
41553
41554         RS by Darin.
41555
41556         Update to fix for <rdar://problem/5152299>
41557
41558         Test: fast/events/no-blur-on-enter-button.html
41559
41560         * html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::defaultEventHandler):
41561         Don't blur the button when handling the enter key.  This matches our new behavior for input elements.
41562
41563 2007-04-28  Adele Peterson  <adele@apple.com>
41564
41565         Fix by Darin, reviewed by me.
41566
41567         Fix for <rdar://problem/5152299> REGRESSION: <button> elements do not respond to space and return key as similar <input> elements do
41568
41569         Tests:
41570         fast/forms/button-spacebar-click.html
41571         fast/forms/button-enter-click.html
41572
41573         * html/HTMLButtonElement.h: (WebCore::HTMLButtonElement::): Made type enum private.
41574         Removed unnecessary m_value and m_currValue, and unused m_dirty.
41575         * html/HTMLButtonElement.cpp:
41576         (WebCore::HTMLButtonElement::HTMLButtonElement): Removed initialization of m_dirty.
41577         (WebCore::HTMLButtonElement::parseMappedAttribute): Removed case to parse value and accesskey attributes, which don't do anything.
41578         (WebCore::HTMLButtonElement::defaultEventHandler): Removed unnecessary check for button type.
41579          Added cases to handle spacebar and enter keys in the same way that they're handled for <input type=button/reset/submit> buttons.
41580         (WebCore::HTMLButtonElement::isSuccessfulSubmitButton): Shortened comment.
41581         (WebCore::HTMLButtonElement::appendFormData): Use value() instead of m_currValue.  Renamed encoding argument to formData.
41582
41583 2007-04-28  Mitz Pettel  <mitz@webkit.org>
41584
41585         Reviewed by Darin.
41586
41587         - fix http://bugs.webkit.org/show_bug.cgi?id=13501
41588           REGRESSION (r21093): Pasting into text field fails and makes the caret disappear
41589
41590         Test: fast/dynamic/anonymous-block-layer-lost.html
41591
41592         * rendering/RenderBlock.cpp:
41593         (WebCore::RenderBlock::removeChild): Avoid cutting off layers when removing
41594         the anonymous block.
41595
41596 2007-04-28  Mitz Pettel  <mitz@webkit.org>
41597
41598         Reviewed by Darin.
41599
41600         - fix http://bugs.webkit.org/show_bug.cgi?id=13471
41601           REGRESSION (r21045): Secure keyboard entry mode remains in effect after leaving a password field by submitting
41602
41603         * loader/FrameLoader.cpp:
41604         (WebCore::FrameLoader::clear): Replaced direct access to Frame's d->m_doc
41605         with a call to Frame::setDocument.
41606         (WebCore::FrameLoader::begin): Ditto.
41607         (WebCore::FrameLoader::open): Ditto.
41608         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady): Ditto.
41609         (WebCore::FrameLoader::canCachePage): Added a comment.
41610         * manual-tests/secure-keyboard-enabled-after-submit.html: Added.
41611         * page/Frame.cpp:
41612         (WebCore::Frame::setDocument): Reset secure keyboard entry, in case the
41613         old document's focused node has set it.
41614
41615 2007-04-28  Mitz Pettel  <mitz@webkit.org>
41616
41617         Reviewed by Adele.
41618
41619         - fix http://bugs.webkit.org/show_bug.cgi?id=13379
41620           REGRESSION: Cannot add an option to a selected popup
41621
41622         * manual-tests/update-empty-popup.html: Added.
41623         * platform/mac/PopupMenuMac.mm:
41624         (WebCore::PopupMenu::show): Added a call to the client's hidePopup()
41625         callback before returning in the case that the menu is empty. Otherwise
41626         the client thinks that the menu stayed open.
41627
41628 2007-04-28  Adele Peterson  <adele@apple.com>
41629
41630         Reviewed by Darin.
41631
41632         Fix for <rdar://problem/4806988> REGRESSION: history.go(0) doesn't reload page (affects buttons at facebook.com)
41633
41634         Test: fast/history/history_reload.html
41635
41636         * loader/FrameLoader.cpp: (WebCore::FrameLoader::scheduleHistoryNavigation):
41637         We avoid doing a redirection when going to the same url in a history navigation, but we have to still
41638         schedule a redirection when the number of steps is zero so we can force a reload.
41639
41640 2007-04-28  Alexey Proskuryakov  <ap@webkit.org>
41641
41642         Reviewed by Darin.
41643
41644         http://bugs.webkit.org/show_bug.cgi?id=13514
41645         REGRESSION (r20997-21003): Crash in WebCore::Node::document
41646
41647         Test: fast/dom/NodeList/childNodes-reset-cache.html
41648
41649         * dom/Node.cpp:
41650         (WebCore::Node::notifyLocalNodeListsChildrenChanged): Reset the common caches for child node
41651         lists. We cannot rely on notifications, since there may be no list objects left around.
41652
41653         * dom/ChildNodeList.cpp:
41654         (WebCore::ChildNodeList::rootNodeChildrenChanged):
41655         * dom/ChildNodeList.h:
41656         Override rootNodeChildrenChanged() with an empty implementation, now that caches are reset
41657         in Node::notifyLocalNodeListsChildrenChanged().
41658
41659 2007-04-28  Mark Rowe  <mrowe@apple.com>
41660
41661         Build fix.  Change use of nil to 0 in C++ source file.
41662
41663         * editing/Editor.cpp:
41664         (WebCore::Editor::increaseSelectionListLevel):
41665         (WebCore::Editor::increaseSelectionListLevelOrdered):
41666         (WebCore::Editor::increaseSelectionListLevelUnordered):
41667
41668 2007-04-28  Darin Adler  <darin@apple.com>
41669
41670         Reviewed by Adele.
41671
41672         - fix http://bugs.webkit.org/show_bug.cgi?id=6216
41673           REGRESSION: getElementsByTagNameNS with empty namespace doesn't work
41674
41675         * dom/Node.cpp:
41676         (WebCore::TagNodeList::TagNodeList): Changed parameter to PassRefPtr, tweaked formatting.
41677         (WebCore::TagNodeList::item): Tweaked formatting.
41678         (WebCore::TagNodeList::nodeMatches): Tweaked formatting.
41679         (WebCore::Node::setPrefix): Tweaked formatting.
41680         (WebCore::Node::getElementsByTagNameNS): Added special case to turn empty namespaces into
41681         null namespaces.
41682
41683 2007-04-28  Darin Adler  <darin@apple.com>
41684
41685         Reviewed by Kevin Decker.
41686
41687         - fix <rdar://problem/5148271> Chinese numbers are incorrect in numbered lists
41688           (including pasting from TextEdit to Mail)
41689
41690         Covered by an existing regression test, which had wrong results checked in.
41691
41692         Hyatt told me not to use the algorithm in the CSS 3 specification, but I didn't listen!
41693         This corrects mistakes there and makes our results match current Firefox.
41694
41695         * rendering/RenderListMarker.cpp:
41696         (WebCore::toCJKIdeographic): Added code to strip off trailing zero digits.
41697         Added special case for zero, since that's the one case where we don't want
41698         to strip off trailing zero digits. Fixed mixed-up logic that would put the
41699         digits in each group backwards.
41700         (WebCore::listMarkerText): Corrected character values for the CJK_IDEOGRAPHIC case.
41701
41702 2007-04-28  Darin Adler  <darin@apple.com>
41703
41704         Reviewed by Oliver.
41705
41706         - fix <rdar://problem/5138250> REGRESSION (r18245): Changing any one aspect
41707           of a font applies all the aspects to selected text
41708
41709         Since this bug is only visible with the font panel, I don't
41710         think there's any way to make a DumpRenderTree-driven test.
41711
41712         * editing/Editor.cpp: (WebCore::Editor::fontForSelection):
41713         Set hasMultipleFonts properly. The old code had an early exit
41714         that was left over from when hasMultipleFonts was a pointer.
41715
41716 2007-04-27  Mitz Pettel  <mitz@webkit.org>
41717
41718         Reviewed by Dave Hyatt.
41719
41720         - fix http://bugs.webkit.org/show_bug.cgi?id=13525
41721           Repainting a listbox schedules a relayout
41722
41723         No test possible as there is no change to functionality.
41724
41725         - fix the root cause of http://bugs.webkit.org/show_bug.cgi?id=10862
41726           REGRESSION: Collapsing form input on www.myspace.com
41727
41728         No test possible since text fields are no longer implemented as flexboxes.
41729
41730         * rendering/RenderObject.cpp:
41731         (WebCore::RenderObject::scheduleRelayout): Added a check that the subtree
41732         root is in the tree and not free-floating.
41733         * rendering/bidi.cpp:
41734         (WebCore::RenderBlock::bidiReorderCharacters): Changed addChild and removeChild
41735         to appendChildNode and removeChildNode to save some unnecessary overhead.
41736         These calls still mark the tree for relayout, but the change in scheduleRelayout 
41737         ensures that a layout won't be scheduled.
41738
41739 2007-04-27  Patti Hoa  <patti@apple.com>
41740
41741         Reviewed by Darin.
41742         
41743         <rdar://problem/5153017> REPRODUCIBLE ASSERT: range != nil in WebViewFactory.mm:415 -[WebViewFactory startOfTextMarkerRange:] (13354)
41744         
41745         * bridge/mac/WebCoreAXObject.mm:
41746         (-[WebCoreAXObject textMarkerRangeForRange:]):
41747         Fix the range length check.  It was incorrectly assuming that the max range requested cannot be equal
41748         to the length of the string.  Since NSRange location is index based, it's perfectly valid to have the max
41749         range equal to the the text length.
41750
41751 2007-04-27  David Harrison  <harrison@apple.com>
41752
41753         Reviewed by Darin.
41754
41755         <rdar://problem/5160627> Export JS list creation support as ObjC SPI for Mail
41756
41757         * WebCore.exp:
41758         * editing/Editor.h:
41759         * editing/Editor.cpp:
41760         (WebCore::Editor::insertOrderedList):
41761         (WebCore::Editor::insertUnorderedList):
41762         (WebCore::Editor::canIncreaseSelectionListLevel):
41763         (WebCore::Editor::canDecreaseSelectionListLevel):
41764         (WebCore::Editor::increaseSelectionListLevel):
41765         (WebCore::Editor::increaseSelectionListLevelOrdered):
41766         (WebCore::Editor::increaseSelectionListLevelUnordered):
41767         (WebCore::Editor::decreaseSelectionListLevel):
41768         Add insertOrderedList() and insertUnorderedList().
41769         Move existing list management functions from WebCoreFrameBridge.
41770         The level increasing functions now return a PassRefPtr<Node> instead of Node.
41771         Add check for canEditRichly.
41772         
41773         - in many other functions, condense the check for nil client().
41774         
41775         * editing/InsertListCommand.h:
41776         * editing/InsertListCommand.cpp:
41777         (WebCore::InsertListCommand::insertList):
41778         (WebCore::InsertListCommand::fixOrphanedListChild):
41779         (WebCore::InsertListCommand::doApply):
41780         Add insertList(), which returns the new list element.
41781         Don't set the list element's ID if the specified ID was an empty string.
41782                 
41783         * editing/ModifySelectionListLevel.h:
41784         * editing/ModifySelectionListLevel.cpp:
41785         (WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelWithType):
41786         (WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevel):
41787         (WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelOrdered):
41788         (WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelUnordered):
41789         Return PassRefPtr<Node> instead of Node.
41790
41791         * page/mac/WebCoreFrameBridge.h:
41792         * page/mac/WebCoreFrameBridge.mm:
41793         Move list management functions to Editor.h and Editor.cpp.
41794
41795
41796 2007-04-27  David Hyatt  <hyatt@apple.com>
41797
41798         Fix for <rdar://problem/5134254>, toolbar buttons don't work in gmail after double-click.  Make sure
41799         to clear out the capturing frame, since you don't get a second up when a double-click happens.
41800
41801         Reviewed by mjs
41802
41803         * page/EventHandler.cpp:
41804         (WebCore::EventHandler::handleMouseDoubleClickEvent):
41805
41806 2007-04-27  Justin Garcia  <justin.garcia@apple.com>
41807
41808         Reviewed by oliver
41809
41810         <rdar://problem/5164796> 
41811         Enable execCommand("CreateLink", ...) for caret selections
41812
41813         * editing/CreateLinkCommand.cpp:
41814         (WebCore::CreateLinkCommand::doApply): For a caret
41815         selection, insert a link at the caret position
41816         with the url as the link text.
41817         * editing/JSEditor.cpp: Enable CreateLink for caret 
41818         selections.
41819
41820 2007-04-27  Antti Koivisto  <antti@apple.com>
41821
41822         Reviewed by Darin, Hyatt.
41823         
41824         Fix http://bugs.webkit.org/show_bug.cgi?id=13081
41825         Empty table cells not handled correctly
41826         <rdar://problem/5067926>
41827         
41828         To match Firefox and IE, empty table cells with variable width need to be
41829         treated as special case. They generally get zero width.
41830
41831         * rendering/AutoTableLayout.cpp:
41832         (WebCore::AutoTableLayout::recalcColumn):
41833         (WebCore::AutoTableLayout::calcEffectiveWidth):
41834         (WebCore::AutoTableLayout::layout):
41835         * rendering/AutoTableLayout.h:
41836         (WebCore::AutoTableLayout::Layout::Layout):
41837         * rendering/RenderStyle.h:
41838         (WebCore::RenderStyle::hasPadding):
41839
41840 2007-04-27  Rob Buis  <buis@kde.org>
41841
41842         Reviewed by Oliver.
41843
41844         http://bugs.webkit.org/show_bug.cgi?id=13052
41845         Text not rendered in a second inline SVG element
41846
41847         Correct the rendering of svg text when embedded in non-svg container.
41848
41849         * rendering/RenderSVGText.cpp:
41850         (WebCore::RenderSVGText::paint):
41851
41852 2007-04-27  Mark Rowe  <mrowe@apple.com>
41853
41854         Reviewed by Maciej.
41855
41856         * WebCore.pro: Remove non-existent paths from qmake files.
41857
41858 2007-04-25  Lars Naesbye Christensen <lars@naesbye.dk>
41859
41860         Reviewed by Timothy Hatcher.
41861
41862         http://bugs.webkit.org/show_bug.cgi?id=13477
41863         Bug 13477: Help and context menu cursors need dropshadows.
41864
41865         * Resources/cellCursor.png:
41866         * Resources/contextMenuCursor.png:
41867         * Resources/helpCursor.png:
41868         * platform/mac/CursorMac.mm:
41869         (WebCore::contextMenuCursor):
41870         (WebCore::copyCursor):
41871         (WebCore::progressCursor):
41872         (WebCore::noDropCursor):
41873
41874 2007-04-27  Holger Freyther <freyther@kde.org>
41875
41876         Reviewed by Maciej.
41877
41878         Remove unmaintained CMake build system.
41879
41880         * CMakeLists.txt: Removed.
41881
41882 2007-04-26  Matt Perry  <mpComplete@gmail.com>
41883
41884         Reviewed by Maciej.
41885
41886         Added a version check to hackAroundLibXMLEntityBug, since that bug has
41887         been fixed in recent versions of libxml2.
41888
41889         * dom/XMLTokenizer.cpp:
41890         (WebCore::hackAroundLibXMLEntityBug):
41891
41892 2007-04-26  Christopher Brichford  <chrisb@adobe.com>
41893
41894         Reviewed by Timothy Hatcher.
41895
41896         - Fix for Bug 13204: Submit initial version of mac project files for apollo
41897           port of WebCore
41898           http://bugs.webkit.org/show_bug.cgi?id=13204
41899
41900         * WebCore.apolloproj/mac/WebCore.Debug.xcconfig: Added.
41901         * WebCore.apolloproj/mac/WebCore.Release.xcconfig: Added.
41902         * WebCore.apolloproj/mac/WebCore.xcconfig: Added.
41903         * WebCore.apolloproj/mac/WebCore.xcodeproj/project.pbxproj: Added.
41904
41905 2007-04-26  Alp Toker  <alp@atoker.com>
41906
41907         Reviewed by Maciej.
41908
41909         http://bugs.webkit.org/show_bug.cgi?id=13505
41910         Cast loses precision on x86_64
41911
41912         * platform/graphics/cairo/GraphicsContextCairo.cpp:
41913         (WebCore::GraphicsContext::beginTransparencyLayer):
41914         (WebCore::GraphicsContext::endTransparencyLayer):
41915         Use a stack of opacity values instead of Cairo user data.
41916
41917 2007-04-26  Mitz Pettel  <mitz@webkit.org>
41918
41919         Reviewed by Darin.
41920
41921         - fix http://bugs.webkit.org/show_bug.cgi?id=13500
41922           REGRESSION: Listbox scrollbar does not reflect actual scrolled position when selected option is added after layout
41923
41924         Test: fast/forms/listbox-scrollbar-incremental-load.html
41925
41926         The scroller position was not updated correctly during insertion, since
41927         scrollbar proportions are updated only during layout
41928
41929         * rendering/RenderListBox.cpp:
41930         (WebCore::RenderListBox::selectionChanged): Delay scrolling to reveal the
41931         selection until after layout if m_optionsChanged is set. Layout is
41932         guaranteed to happen soon when the flag is set.
41933
41934 2007-04-26  David Hyatt  <hyatt@apple.com>
41935
41936         Fix for 13511, crash on a counters page.  Make sure that RenderTexts
41937         never get a null StringImpl.  I would have added an assert that the length
41938         had to be nonzero also, but unfortunately editing creates empty RenderTexts
41939         because of its EditingText DOM subclass that always forces renderers to be
41940         made.  I suppose there is a good reason for this...
41941
41942         Reviewed by aroben
41943
41944         * dom/CharacterData.cpp:
41945         (WebCore::CharacterData::setData):
41946         (WebCore::CharacterData::appendData):
41947         (WebCore::CharacterData::insertData):
41948         (WebCore::CharacterData::deleteData):
41949         (WebCore::CharacterData::replaceData):
41950         * rendering/RenderCounter.cpp:
41951         (WebCore::RenderCounter::RenderCounter):
41952         * rendering/RenderText.cpp:
41953         (WebCore::RenderText::RenderText):
41954         (WebCore::RenderText::trimmedPrefWidths):
41955         (WebCore::RenderText::setTextWithOffset):
41956         (WebCore::RenderText::setTextInternal):
41957         (WebCore::RenderText::setText):
41958
41959 2007-04-26  Alice Liu  <alice.liu@apple.com>
41960
41961         Reviewed by Oliver.
41962
41963         * editing/SelectionController.cpp:
41964         (WebCore::SelectionController::selectAll):
41965         adding null check
41966
41967 2007-04-26  Justin Garcia  <justin.garcia@apple.com>
41968
41969         Reviewed by oliver
41970
41971         <rdar://problem/5120591> 
41972         Crash when creating a link in Leopard wiki server
41973
41974         * editing/CreateLinkCommand.cpp:
41975         (WebCore::CreateLinkCommand::doApply): Use a RefPtr,
41976         setting the anchor's href can destroy it if there is
41977         an ancestor with a subtree modified event listener.
41978
41979 2007-04-26  Mitz Pettel  <mitz@webkit.org>
41980
41981         Reviewed by hyatt
41982
41983         - http://bugs.webkit.org/show_bug.cgi?id=13496
41984           Eliminate repaintObjectsBeforeLayout
41985
41986         No tests added since there is no change to functionality. Several
41987         tests in fast/repaint test repainting of objects that move during layout.
41988
41989         * page/FrameView.cpp:
41990         (WebCore::FrameView::layout):
41991         * rendering/RenderBlock.cpp:
41992         (WebCore::RenderBlock::layoutBlockChildren): Removed an early
41993         setNeedsLayout(false). Resetting the bit here prevents the full repaint
41994         that we rely on when we decide not to repaint children that move.
41995         * rendering/RenderBlock.h:
41996         * rendering/RenderObject.cpp:
41997         * rendering/RenderObject.h:
41998         * rendering/RenderTableSection.cpp:
41999         (WebCore::RenderTableSection::setCellWidths): Replaced the call to
42000         repaintObjectsBeforeLayout() if the cell didn't need layout with
42001         an unconditional repaint(). We don't bother with repainting only the
42002         delta between the old and new widths, since by marking the cell for
42003         layout results in a full repaint with the new width anyway.
42004
42005 2007-04-26  David Hyatt  <hyatt@apple.com>
42006
42007         Fix for 13509.  Don't recur to parent inline flows if they have been
42008         marked as needing layout themselves.
42009
42010         Reviewed by adele
42011
42012         * rendering/RenderFlow.cpp:
42013         (WebCore::RenderFlow::dirtyLinesFromChangedChild):
42014
42015 2007-04-26  Matt Perry  <mpComplete@gmail.com>
42016
42017         Reviewed and landed by Alexey.
42018
42019         http://bugs.webkit.org/show_bug.cgi?id=13495
42020         Crash when referencing an undefined entity in an XHTML document
42021
42022         Test: fast/parser/badentity.xhtml
42023
42024         * dom/XMLTokenizer.cpp:
42025         (WebCore::getEntityHandler): Check for a NULL returned from getXHTMLEntity
42026
42027 2007-04-26  Anders Carlsson  <andersca@apple.com>
42028
42029         Reviewed by Hyatt.
42030
42031         <rdar://problem/4851944>
42032         REGRESSION: With TOT, BMP images can no longer be opened in the browser window
42033         
42034         On Tiger, the MIME type for the com.microsoft.bmp UTI isn't in the registry, so add it manually.
42035         
42036         * platform/MimeTypeRegistry.cpp:
42037         (WebCore::initialiseSupportedImageMIMETypes):
42038
42039 2007-04-26  David Hyatt  <hyatt@apple.com>
42040
42041         Fix for bug 13503, invalidateContainingBlockPrefWidths is 15% of the
42042         nesting PLT.  Avoid O(n^2) behavior by including inlines in the minmax
42043         dirty chain.
42044
42045         Reviewed by kevin
42046
42047         * rendering/RenderBlock.cpp:
42048         (WebCore::RenderBlock::calcInlinePrefWidths):
42049         * rendering/RenderObject.cpp:
42050         (WebCore::RenderObject::setPrefWidthsDirty):
42051         (WebCore::RenderObject::invalidateContainerPrefWidths):
42052         * rendering/RenderObject.h:
42053
42054 2007-04-26  Anders Carlsson  <andersca@apple.com>
42055
42056         Reviewed by Darin.
42057
42058         <rdar://problem/5067925>
42059         Reproducible crash (infinite recursion) with a layout test that submits on unload (13078)
42060         
42061         Ask the document loader whether it's loading the main resource, since there are cases where the frame 
42062         loader's variable isn't updated correctly.
42063         
42064         In the distant future, the frame loader shouldn't have an instance variable but this is the least intrusive fix for now.
42065         
42066         I couldn't come up with a good test case for this since it requires running three tests in a row and scheduleLoad didn't work. Also,
42067         calling submit in the onunload prevents any new tests from loading!
42068         
42069         * loader/FrameLoader.cpp:
42070         (WebCore::FrameLoader::isLoading):
42071
42072 2007-04-26  Anders Carlsson  <andersca@apple.com>
42073
42074         ... and fix the build.
42075         
42076         * loader/FrameLoader.cpp:
42077         (WebCore::FrameLoader::continueAfterNavigationPolicy):
42078
42079 2007-04-26  Anders Carlsson  <andersca@apple.com>
42080
42081         Revert the previous change - activeDocumentLoader never returns the policy document loader.
42082         Instead, add a null check for the policy document loader.
42083         
42084         * loader/FrameLoader.cpp:
42085         (WebCore::FrameLoader::continueAfterNavigationPolicy):
42086
42087 2007-04-26  Anders Carlsson  <andersca@apple.com>
42088
42089         Use the active document loader instead of the policy document loader.
42090         
42091         * loader/FrameLoader.cpp:
42092         (WebCore::FrameLoader::continueAfterNavigationPolicy):
42093
42094 2007-04-26  Anders Carlsson  <andersca@apple.com>
42095
42096         Reviewed by Maciej.
42097
42098         <rdar://problem/5049099> documents no longer have a default base URL
42099
42100         Don't call canHandleRequest if we have valid substitute data and the protocol is "applewebdata".
42101         
42102         * loader/FrameLoader.cpp:
42103         (WebCore::FrameLoader::continueAfterNavigationPolicy):
42104
42105 2007-04-25  Stephanie Lewis <slewis@apple.com>
42106
42107         Reviewed by Darin.
42108
42109         Fix the build for platforms that overload the abs function.        
42110
42111         * dom/ChildNodeList.cpp:
42112         (WebCore::ChildNodeList::item):
42113
42114 2007-04-25  David Hyatt  <hyatt@apple.com>
42115
42116         Fix for bug 13373, make sure to invalidate the pref widths for objects
42117         with percentage padding.
42118
42119         Reviewed by beth
42120
42121         * rendering/RenderBlock.cpp:
42122         (WebCore::RenderBlock::layoutBlockChildren):
42123         (WebCore::RenderBlock::layoutPositionedObjects):
42124         * rendering/bidi.cpp:
42125         (WebCore::RenderBlock::layoutInlineChildren):
42126
42127 2007-04-25  David Harrison  <harrison@apple.com>
42128
42129         Comment change. Correct the header name in the endif comment.
42130         
42131         * editing/FormatBlockCommand.h:
42132         Change InsertListCommand_h to FormatBlockCommand_h.
42133
42134 2007-04-25  Darin Adler  <darin@apple.com>
42135
42136         Reviewed by Hyatt.
42137
42138         * platform/AtomicString.cpp: (WebCore::AtomicString::add):
42139         Removed unnecessary use of strlen to check if a string is empty.
42140
42141 2007-04-25  Mitz Pettel  <mitz@webkit.org>
42142
42143         Build fix.
42144
42145         * rendering/RenderListMarker.h: Undeleted the m_text member.
42146
42147 2007-04-25  David Hyatt  <hyatt@apple.com>
42148
42149         Rearchitect calcPrefWidths.  The calculation is now done lazily only when minPrefWidth
42150         or maxPrefWidth are asked for.  The result of the calculation is cached.
42151
42152         The new invalidation scheme for pref width invalidation follows the
42153         containing block hierarchy and knows to halt at positioned objects, since
42154         they cannot influence the size of their containers.
42155
42156         Reviewed by darin
42157
42158         * css/cssstyleselector.cpp:
42159         (WebCore::CSSStyleSelector::init):
42160         (WebCore::CSSStyleSelector::initForStyleResolve):
42161         * page/FrameView.cpp:
42162         (WebCore::FrameView::layout):
42163         * rendering/RenderApplet.cpp:
42164         (WebCore::RenderApplet::layout):
42165         * rendering/RenderBlock.cpp:
42166         (WebCore::RenderBlock::makeChildrenNonInline):
42167         (WebCore::RenderBlock::removeChild):
42168         (WebCore::RenderBlock::layout):
42169         (WebCore::RenderBlock::layoutBlock):
42170         (WebCore::RenderBlock::calcPrefWidths):
42171         (WebCore::InlineMinMaxIterator::endOfInline):
42172         (WebCore::shouldGrowTableCellForImage):
42173         (WebCore::RenderBlock::calcInlinePrefWidths):
42174         (WebCore::RenderBlock::calcBlockPrefWidths):
42175         * rendering/RenderBlock.h:
42176         * rendering/RenderBox.cpp:
42177         (WebCore::RenderBox::setStyle):
42178         (WebCore::RenderBox::minPrefWidth):
42179         (WebCore::RenderBox::maxPrefWidth):
42180         (WebCore::RenderBox::calcWidth):
42181         (WebCore::RenderBox::calcWidthUsing):
42182         (WebCore::RenderBox::calcAbsoluteHorizontal):
42183         (WebCore::RenderBox::calcAbsoluteHorizontalValues):
42184         * rendering/RenderBox.h:
42185         * rendering/RenderContainer.cpp:
42186         (WebCore::RenderContainer::removeChildNode):
42187         (WebCore::RenderContainer::appendChildNode):
42188         (WebCore::RenderContainer::insertChildNode):
42189         (WebCore::RenderContainer::layout):
42190         * rendering/RenderContainer.h:
42191         (WebCore::RenderContainer::moveChildNode):
42192         * rendering/RenderCounter.cpp:
42193         (WebCore::RenderCounter::dirtyLineBoxes):
42194         (WebCore::RenderCounter::calcPrefWidths):
42195         * rendering/RenderCounter.h:
42196         * rendering/RenderFileUploadControl.cpp:
42197         (WebCore::RenderFileUploadControl::calcPrefWidths):
42198         * rendering/RenderFlexibleBox.cpp:
42199         (WebCore::RenderFlexibleBox::calcHorizontalPrefWidths):
42200         (WebCore::RenderFlexibleBox::calcVerticalPrefWidths):
42201         (WebCore::RenderFlexibleBox::calcPrefWidths):
42202         (WebCore::RenderFlexibleBox::layoutBlock):
42203         * rendering/RenderForeignObject.cpp:
42204         (WebCore::RenderForeignObject::layout):
42205         * rendering/RenderFrameSet.cpp:
42206         (WebCore::RenderFrameSet::layout):
42207         * rendering/RenderHTMLCanvas.cpp:
42208         (WebCore::RenderHTMLCanvas::layout):
42209         * rendering/RenderImage.cpp:
42210         (WebCore::RenderImage::layout):
42211         * rendering/RenderInline.cpp:
42212         * rendering/RenderInline.h:
42213         * rendering/RenderListBox.cpp:
42214         (WebCore::RenderListBox::updateFromElement):
42215         (WebCore::RenderListBox::calcPrefWidths):
42216         * rendering/RenderListItem.cpp:
42217         (WebCore::firstNonMarkerChild):
42218         (WebCore::RenderListItem::updateMarkerLocation):
42219         (WebCore::RenderListItem::calcPrefWidths):
42220         (WebCore::RenderListItem::layout):
42221         * rendering/RenderListMarker.cpp:
42222         (WebCore::RenderListMarker::layout):
42223         (WebCore::RenderListMarker::calcPrefWidths):
42224         (WebCore::RenderListMarker::updateMargins):
42225         * rendering/RenderListMarker.h:
42226         * rendering/RenderObject.cpp:
42227         (WebCore::RenderObject::RenderObject):
42228         (WebCore::RenderObject::removeChildNode):
42229         (WebCore::RenderObject::moveChildNode):
42230         (WebCore::RenderObject::appendChildNode):
42231         (WebCore::RenderObject::insertChildNode):
42232         (WebCore::RenderObject::setPrefWidthsDirty):
42233         (WebCore::RenderObject::invalidateContainingBlockPrefWidths):
42234         (WebCore::RenderObject::information):
42235         (WebCore::RenderObject::setStyle):
42236         * rendering/RenderObject.h:
42237         (WebCore::RenderObject::layer):
42238         (WebCore::RenderObject::hasLayer):
42239         (WebCore::RenderObject::prefWidthsDirty):
42240         (WebCore::RenderObject::setNeedsLayoutAndPrefWidthsRecalc):
42241         (WebCore::RenderObject::setHasLayer):
42242         * rendering/RenderPartObject.cpp:
42243         (WebCore::RenderPartObject::layout):
42244         * rendering/RenderSVGContainer.cpp:
42245         (WebCore::RenderSVGContainer::layout):
42246         * rendering/RenderSVGContainer.h:
42247         * rendering/RenderSVGHiddenContainer.cpp:
42248         * rendering/RenderSVGHiddenContainer.h:
42249         * rendering/RenderSVGText.cpp:
42250         (WebCore::RenderSVGText::layout):
42251         * rendering/RenderTable.cpp:
42252         (WebCore::RenderTable::calcWidth):
42253         (WebCore::RenderTable::layout):
42254         (WebCore::RenderTable::removeChildNode):
42255         * rendering/RenderTable.h:
42256         * rendering/RenderTableRow.cpp:
42257         (WebCore::RenderTableRow::layout):
42258         * rendering/RenderTableSection.cpp:
42259         (WebCore::RenderTableSection::removeChildNode):
42260         * rendering/RenderTableSection.h:
42261         * rendering/RenderText.cpp:
42262         (WebCore::RenderText::trimmedPrefWidths):
42263         (WebCore::isSpaceAccordingToStyle):
42264         (WebCore::RenderText::minPrefWidth):
42265         (WebCore::RenderText::maxPrefWidth):
42266         (WebCore::RenderText::calcPrefWidths):
42267         (WebCore::RenderText::width):
42268         * rendering/RenderText.h:
42269         * rendering/RenderView.cpp:
42270         (WebCore::RenderView::RenderView):
42271         (WebCore::RenderView::calcPrefWidths):
42272         (WebCore::RenderView::layout):
42273         * rendering/RenderWidget.cpp:
42274         (WebCore::RenderWidget::layout):
42275
42276 2007-04-25  Steve Falkenburg  <sfalken@apple.com>
42277
42278         Reviewed by Adam.
42279
42280         Fix spelling error in spelling method name.
42281         Expose new spelling callback methods to all platforms.
42282
42283         * bridge/EditorClient.h:
42284         * platform/gdk/EditorClientGdk.cpp:
42285         (WebCore::EditorClientGdk::updateSpellingUIWithGrammarString):
42286         * platform/gdk/EditorClientGdk.h:
42287         * platform/graphics/svg/SVGImageEmptyClients.h:
42288         (WebCore::SVGEmptyEditorClient::updateSpellingUIWithGrammarString):
42289         (WebCore::SVGEmptyEditorClient::getGuessesForWord):
42290
42291 2007-04-24  Geoffrey Garen  <ggaren@apple.com>
42292
42293         Reviewed by Darin Adler, Tim Hatcher.
42294
42295         Fixed a few NSAutoreleasePool issues I noticed while reviewing Brady's patch.
42296
42297         * platform/graphics/mac/GraphicsContextMac.mm:
42298         (WebCore::GraphicsContext::setCompositeOperation): Call -drain instead of 
42299         -release, since -release is a no-op in a GC world.
42300
42301 2007-04-25  Alexey Proskuryakov  <ap@webkit.org>
42302
42303         Reviewed by Darin.
42304
42305         http://bugs.webkit.org/show_bug.cgi?id=13445
42306         NodeList access by index is slow
42307
42308         * dom/ChildNodeList.cpp:
42309         (WebCore::ChildNodeList::item): Support iterating backwards from the last accessed node
42310         or from the last child.
42311         * dom/NodeList.h: Make cachedLength unsigned.
42312
42313 2007-04-26  Mark Rowe  <mrowe@apple.com>
42314
42315         Gdk build fix.  Add missing stub.
42316
42317         * platform/gdk/TemporaryLinkStubs.cpp:
42318         (Editor::advanceToNextMisspelling):
42319
42320 2007-04-25  Rob Buis  <buis@kde.org>
42321
42322         Reviewed by Darin.
42323
42324         http://bugs.webkit.org/show_bug.cgi?id=12163
42325         SVG text does not appear in a scrolling <div>
42326
42327         Make sure SVG text is painted when scrolling by taking into account the relative offset of the non-SVG parent in the paintInfo rect.
42328
42329         * rendering/RenderSVGContainer.cpp:
42330         (WebCore::RenderSVGContainer::paint):
42331
42332 2007-04-26  Mark Rowe  <mrowe@apple.com>
42333
42334         Fix non-Mac builds after r21081.
42335
42336         Stub out new Editor methods for Qt and Gdk, and new SVGEmptyEditorClient methods
42337         for all non-Mac builds.
42338
42339         * editing/qt/EditorQt.cpp:
42340         (WebCore::Editor::showSpellingGuessPanel):
42341         (WebCore::Editor::spellingPanelIsShowing):
42342         * page/qt/EventHandlerQt.cpp:
42343         (WebCore::EventHandler::passWheelEventToWidget):
42344         (WebCore::EventHandler::passMousePressEventToScrollbar):
42345         * platform/gdk/TemporaryLinkStubs.cpp:
42346         (Editor::showSpellingGuessPanel):
42347         (Editor::spellingPanelIsShowing):
42348         * platform/graphics/svg/SVGImageEmptyClients.h:
42349         (WebCore::SVGEmptyEditorClient::ignoreWordInSpellDocument):
42350         (WebCore::SVGEmptyEditorClient::learnWord):
42351         (WebCore::SVGEmptyEditorClient::checkSpellingOfString):
42352         (WebCore::SVGEmptyEditorClient::checkGrammarOfString):
42353         (WebCore::SVGEmptyEditorClient::udpateSpellingUIWithGrammarString):
42354         (WebCore::SVGEmptyEditorClient::updateSpellingUIWithMisspelledWord):
42355         (WebCore::SVGEmptyEditorClient::showSpellingUI):
42356         (WebCore::SVGEmptyEditorClient::spellingUIIsShowing):
42357         (WebCore::SVGEmptyEditorClient::getGuessesForWord):
42358
42359 2007-04-25  Anders Carlsson  <andersca@apple.com>
42360
42361         Reviewed by Ada.
42362
42363         <rdar://problem/5122153>
42364         Crash occurs at WebCore::Frame::loader() when switching to Bookmarks view while loading standalone image
42365
42366         Don't call writeRawData if the data length is 0. (This is checked by the decoder for the non-raw case).
42367
42368         * loader/FrameLoader.cpp:
42369         (WebCore::FrameLoader::write):
42370
42371 2007-04-26  Mark Rowe  <mrowe@apple.com>
42372
42373         Gdk build fix courtesy of Alp Toker.
42374
42375         * make-generated-sources.sh:  Remove conditional logic to ensure the
42376         script exits with the correct exit code.
42377
42378 2007-04-24  Anders Carlsson  <andersca@apple.com>
42379
42380         Reviewed by Mitz.
42381
42382         <rdar://problem/4869095> 
42383         default content type for XMLHttpRequest POSTs changed (breaks Flickrator 0.1 widget)
42384         
42385         Use the right MIME type.
42386         
42387         * xml/xmlhttprequest.cpp:
42388         (WebCore::XMLHttpRequest::send):
42389
42390 2007-04-24  Darin Adler  <darin@apple.com>
42391
42392         Reviewed by Maciej.
42393
42394         - second round of preparation for Hyatt's "lazy minMaxWidth" change
42395           http://bugs.webkit.org/show_bug.cgi?id=13431
42396
42397         These are small changes that are either safe to do first, or unrelated to the main
42398         change in Hyatt's patch.
42399
42400         - Preallocate 4 entries each in m_layoutStruct and m_spanCells to save allocation
42401           in AutoTableLayout.
42402         - Add an early exit to RenderFlow::dirtyLinesFromChangedChild.
42403         - Change InlineBox::hasTextChildren() to use a bit directly and never a virtual function.
42404         - Save a virtual function call by using a local bool variable for isTableCell().
42405
42406         - Fix containingBlock() so it returns 0 for table cells with no parent.
42407
42408         - Change all callers who are getting at layer() as a boolean to use hasLayer().
42409         - Change if statements to max() function calls (only the ones Hyatt had in his patch).
42410         - Remove some old kdDebug calls.
42411         - Tweak formatting of some code.
42412         - Add const in one place.
42413
42414         * bindings/js/kjs_html.cpp:
42415         (KJS::HTMLElementFunction::callAsFunction):
42416         * page/EventHandler.cpp:
42417         (WebCore::EventHandler::eventMayStartDrag):
42418         * page/Frame.cpp:
42419         (WebCore::Frame::clearTimers):
42420         * rendering/AutoTableLayout.cpp:
42421         (WebCore::AutoTableLayout::recalcColumn):
42422         * rendering/AutoTableLayout.h:
42423         * rendering/InlineBox.h:
42424         (WebCore::InlineBox::InlineBox):
42425         (WebCore::InlineBox::hasTextChildren):
42426         * rendering/InlineFlowBox.cpp:
42427         (WebCore::InlineFlowBox::nodeAtPoint):
42428         * rendering/InlineFlowBox.h:
42429         (WebCore::InlineFlowBox::InlineFlowBox):
42430         * rendering/RenderBlock.cpp:
42431         (WebCore::RenderBlock::layoutBlock):
42432         (WebCore::RenderBlock::repaintOverhangingFloats):
42433         (WebCore::RenderBlock::paintChildren):
42434         (WebCore::RenderBlock::paintFloats):
42435         (WebCore::RenderBlock::fillBlockSelectionGaps):
42436         (WebCore::RenderBlock::insertFloatingObject):
42437         (WebCore::RenderBlock::floatRect):
42438         (WebCore::RenderBlock::lowestPosition):
42439         (WebCore::RenderBlock::rightmostPosition):
42440         (WebCore::RenderBlock::leftmostPosition):
42441         (WebCore::RenderBlock::addOverhangingFloats):
42442         (WebCore::RenderBlock::nodeAtPoint):
42443         (WebCore::RenderBlock::hitTestContents):
42444         (WebCore::RenderBlock::calcPrefWidths):
42445         (WebCore::InlineMinMaxIterator::next):
42446         (WebCore::getBorderPaddingMargin):
42447         (WebCore::RenderBlock::calcInlinePrefWidths):
42448         (WebCore::RenderBlock::calcBlockPrefWidths):
42449         * rendering/RenderContainer.cpp:
42450         (WebCore::RenderContainer::appendChildNode):
42451         (WebCore::RenderContainer::insertChildNode):
42452         * rendering/RenderFlexibleBox.cpp:
42453         (WebCore::RenderFlexibleBox::calcHorizontalPrefWidths):
42454         (WebCore::RenderFlexibleBox::calcVerticalPrefWidths):
42455         * rendering/RenderFlow.cpp:
42456         (WebCore::RenderFlow::dirtyLinesFromChangedChild):
42457         * rendering/RenderLayer.cpp:
42458         (WebCore::RenderLayer::updateVisibilityStatus):
42459         (WebCore::RenderLayer::updateLayerPosition):
42460         * rendering/RenderObject.cpp:
42461         (WebCore::RenderObject::containingBlock):
42462         * rendering/RenderTable.cpp:
42463         (WebCore::RenderTable::paint):
42464         * rendering/RenderTableCell.cpp:
42465         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
42466         * rendering/RenderTableRow.cpp:
42467         (WebCore::RenderTableRow::nodeAtPoint):
42468         (WebCore::RenderTableRow::paint):
42469         * rendering/RenderTableSection.cpp:
42470         (WebCore::RenderTableSection::nodeAtPoint):
42471         * rendering/RenderTreeAsText.cpp:
42472         (WebCore::write):
42473
42474 2007-04-24  Steve Falkenburg  <sfalken@apple.com>
42475
42476         Reviewed by Darin, Oliver.
42477
42478         Refactor spelling codepaths
42479
42480         * bridge/EditorClient.h:
42481         * page/ContextMenuController.cpp:
42482         (WebCore::ContextMenuController::contextMenuItemSelected):
42483         * platform/ContextMenu.cpp:
42484         (WebCore::ContextMenu::populate):
42485         (WebCore::ContextMenu::checkOrEnableIfNeeded):
42486         * platform/gdk/EditorClientGdk.cpp:
42487         (WebCore::EditorClientGdk::ignoreWordInSpellDocument):
42488         (WebCore::EditorClientGdk::learnWord):
42489         (WebCore::EditorClientGdk::checkSpellingOfString):
42490         (WebCore::EditorClientGdk::checkGrammarOfString):
42491         (WebCore::EditorClientGdk::udpateSpellingUIWithGrammarString):
42492         (WebCore::EditorClientGdk::updateSpellingUIWithMisspelledWord):
42493         (WebCore::EditorClientGdk::showSpellingUI):
42494         (WebCore::EditorClientGdk::spellingUIIsShowing):
42495         (WebCore::EditorClientGdk::getGuessesForWord):
42496         * platform/gdk/EditorClientGdk.h:
42497
42498 2007-04-24  Darin Adler  <darin@apple.com>
42499
42500         Reviewed by Adele.
42501
42502         - first round of preparation for Hyatt's "lazy minMaxWidth" change
42503           http://bugs.webkit.org/show_bug.cgi?id=13431
42504
42505         This patch limits itself to renaming and making other super-simple
42506         changes so that the above change will be smaller and easier to review
42507         and understand.
42508
42509         Rename:
42510
42511             calcHorizontalMinMaxWidth -> calcHorizontalPrefWidths
42512             calcMinMaxWidth -> calcPrefWidths
42513             calcMinMaxWidthInternal -> calcPrefWidthsInternal
42514             calcVerticalMinMaxWidth -> calcVerticalPrefWidths
42515             setNeedsLayoutAndMinMaxRecalc -> setNeedsLayoutAndPrefWidthsRecalc
42516             trimmedMinMaxWidth -> trimmedPrefWidths
42517
42518             RenderObject::m_maxWidth -> RenderObject::m_maxPrefWidth
42519             RenderObject::m_minWidth -> RenderObject::m_minPrefWidth
42520             RenderObject::maxWidth() -> RenderObject::maxPrefWidth()
42521             RenderObject::minWidth() -> RenderObject::minPrefWidth()
42522
42523         Replace m_minMaxKnown, minMaxKnown(), and setMinMaxKnown() with
42524         m_prefWidthsDirty, prefWidthsDirty(), and setPrefWidthsDirty(),
42525         a boolean with the opposite sense.
42526
42527         Convert some uses of if statements into "max".
42528
42529         Change many uses of layer() to hasLayer(). For now it's just a boolean
42530         version of layer(), but Hyatt's patch makes it faster by using a bit.
42531
42532         Added a guard to use of axObjectCache() to make RenderObject destruction
42533         a little faster for the normal case.
42534
42535         Removed some assertions that will be removed in Hyatt's patch.
42536
42537         Made some functions const that will be const in Hyatt's patch.
42538
42539         Put in some revised comments from Hyatt's patch.
42540
42541         Removed an unneeded nil check from RenderListMarker::setStyle.
42542
42543         Moved RootInlineBox::setHorizontalOverflowPositions and
42544         RootInlineBox::setVerticalSelectionPositions to the RootInlineBox.h
42545         header and marked them inline.
42546
42547         * dom/Document.cpp:
42548         (WebCore::Document::updateStyleSelector):
42549         * html/HTMLTextAreaElement.cpp:
42550         (WebCore::HTMLTextAreaElement::parseMappedAttribute):
42551         * page/Frame.cpp:
42552         (WebCore::Frame::forceLayoutWithPageWidthRange):
42553         * rendering/AutoTableLayout.cpp:
42554         (WebCore::AutoTableLayout::recalcColumn):
42555         (WebCore::AutoTableLayout::calcPrefWidths):
42556         (WebCore::AutoTableLayout::calcEffectiveWidth):
42557         * rendering/AutoTableLayout.h:
42558         * rendering/CounterNode.cpp:
42559         (WebCore::CounterNode::recount):
42560         * rendering/FixedTableLayout.cpp:
42561         (WebCore::FixedTableLayout::calcPrefWidths):
42562         * rendering/FixedTableLayout.h:
42563         * rendering/InlineFlowBox.cpp:
42564         (WebCore::InlineFlowBox::paint):
42565         * rendering/RenderApplet.cpp:
42566         (WebCore::RenderApplet::layout):
42567         * rendering/RenderBlock.cpp:
42568         (WebCore::RenderBlock::removeChild):
42569         (WebCore::RenderBlock::layoutBlock):
42570         (WebCore::RenderBlock::handleCompactChild):
42571         (WebCore::RenderBlock::getClearDelta):
42572         (WebCore::RenderBlock::calcPrefWidths):
42573         (WebCore::RenderBlock::calcInlinePrefWidths):
42574         (WebCore::RenderBlock::calcBlockPrefWidths):
42575         * rendering/RenderBlock.h:
42576         * rendering/RenderBox.cpp:
42577         (WebCore::RenderBox::RenderBox):
42578         (WebCore::RenderBox::nodeAtPoint):
42579         (WebCore::RenderBox::calcWidth):
42580         (WebCore::RenderBox::calcWidthUsing):
42581         (WebCore::RenderBox::calcAbsoluteHorizontal):
42582         (WebCore::RenderBox::calcAbsoluteHorizontalValues):
42583         * rendering/RenderBox.h:
42584         (WebCore::RenderBox::minPrefWidth):
42585         (WebCore::RenderBox::maxPrefWidth):
42586         * rendering/RenderContainer.cpp:
42587         (WebCore::RenderContainer::removeChildNode):
42588         (WebCore::RenderContainer::appendChildNode):
42589         (WebCore::RenderContainer::insertChildNode):
42590         (WebCore::RenderContainer::layout):
42591         * rendering/RenderContainer.h:
42592         (WebCore::RenderContainer::calcPrefWidths):
42593         * rendering/RenderCounter.cpp:
42594         (WebCore::RenderCounter::calcPrefWidths):
42595         * rendering/RenderCounter.h:
42596         * rendering/RenderFieldset.cpp:
42597         (WebCore::RenderFieldset::calcPrefWidths):
42598         * rendering/RenderFieldset.h:
42599         * rendering/RenderFileUploadControl.cpp:
42600         (WebCore::RenderFileUploadControl::calcPrefWidths):
42601         * rendering/RenderFileUploadControl.h:
42602         * rendering/RenderFlexibleBox.cpp:
42603         (WebCore::RenderFlexibleBox::calcHorizontalPrefWidths):
42604         (WebCore::RenderFlexibleBox::calcVerticalPrefWidths):
42605         (WebCore::RenderFlexibleBox::calcPrefWidths):
42606         (WebCore::RenderFlexibleBox::layoutBlock):
42607         (WebCore::RenderFlexibleBox::allowedChildFlex):
42608         * rendering/RenderFlexibleBox.h:
42609         (WebCore::RenderFlexibleBox::hasMultipleLines):
42610         (WebCore::RenderFlexibleBox::isVertical):
42611         (WebCore::RenderFlexibleBox::isHorizontal):
42612         * rendering/RenderFlow.cpp:
42613         (WebCore::RenderFlow::absoluteClippedOverflowRect):
42614         * rendering/RenderForeignObject.cpp:
42615         (WebCore::RenderForeignObject::layout):
42616         * rendering/RenderFrameSet.cpp:
42617         (WebCore::RenderFrameSet::layout):
42618         * rendering/RenderHTMLCanvas.cpp:
42619         (WebCore::RenderHTMLCanvas::layout):
42620         * rendering/RenderImage.cpp:
42621         (WebCore::RenderImage::imageChanged):
42622         (WebCore::RenderImage::layout):
42623         (WebCore::RenderImage::calcPrefWidths):
42624         * rendering/RenderImage.h:
42625         * rendering/RenderInline.cpp:
42626         (WebCore::RenderInline::addChildToFlow):
42627         (WebCore::RenderInline::splitInlines):
42628         (WebCore::RenderInline::splitFlow):
42629         (WebCore::RenderInline::calcPrefWidths):
42630         * rendering/RenderInline.h:
42631         * rendering/RenderListBox.cpp:
42632         (WebCore::RenderListBox::updateFromElement):
42633         (WebCore::RenderListBox::calcPrefWidths):
42634         * rendering/RenderListBox.h:
42635         * rendering/RenderListItem.cpp:
42636         (WebCore::RenderListItem::updateValue):
42637         (WebCore::RenderListItem::updateMarkerLocation):
42638         (WebCore::RenderListItem::calcPrefWidths):
42639         (WebCore::RenderListItem::layout):
42640         (WebCore::RenderListItem::explicitValueChanged):
42641         * rendering/RenderListItem.h:
42642         * rendering/RenderListMarker.cpp:
42643         (WebCore::RenderListMarker::setStyle):
42644         (WebCore::RenderListMarker::layout):
42645         (WebCore::RenderListMarker::imageChanged):
42646         (WebCore::RenderListMarker::calcPrefWidths):
42647         (WebCore::RenderListMarker::calcWidth):
42648         * rendering/RenderListMarker.h:
42649         * rendering/RenderMenuList.cpp:
42650         (WebCore::RenderMenuList::updateOptionsWidth):
42651         (WebCore::RenderMenuList::calcPrefWidths):
42652         * rendering/RenderMenuList.h:
42653         * rendering/RenderObject.cpp:
42654         (WebCore::RenderObject::RenderObject):
42655         (WebCore::addLayers):
42656         (WebCore::RenderObject::removeLayers):
42657         (WebCore::RenderObject::moveLayers):
42658         (WebCore::RenderObject::addAbsoluteRectForLayer):
42659         (WebCore::RenderObject::checkForRepaintDuringLayout):
42660         (WebCore::RenderObject::dump):
42661         (WebCore::RenderObject::setStyle):
42662         (WebCore::RenderObject::destroy):
42663         (WebCore::RenderObject::recalcMinMaxWidths):
42664         * rendering/RenderObject.h:
42665         (WebCore::RenderObject::hasLayer):
42666         (WebCore::RenderObject::prefWidthsDirty):
42667         (WebCore::RenderObject::setPrefWidthsDirty):
42668         (WebCore::RenderObject::setNeedsLayoutAndPrefWidthsRecalc):
42669         (WebCore::RenderObject::calcPrefWidths):
42670         (WebCore::RenderObject::minPrefWidth):
42671         (WebCore::RenderObject::maxPrefWidth):
42672         * rendering/RenderPart.cpp:
42673         (WebCore::RenderPart::setWidget):
42674         * rendering/RenderPartObject.cpp:
42675         (WebCore::RenderPartObject::updateWidget):
42676         (WebCore::RenderPartObject::layout):
42677         * rendering/RenderReplaced.cpp:
42678         (WebCore::RenderReplaced::calcPrefWidths):
42679         * rendering/RenderReplaced.h:
42680         * rendering/RenderSVGContainer.cpp:
42681         (WebCore::RenderSVGContainer::calcPrefWidths):
42682         (WebCore::RenderSVGContainer::layout):
42683         * rendering/RenderSVGContainer.h:
42684         * rendering/RenderSVGHiddenContainer.cpp:
42685         (WebCore::RenderSVGHiddenContainer::calcPrefWidths):
42686         * rendering/RenderSVGHiddenContainer.h:
42687         * rendering/RenderSVGText.cpp:
42688         (WebCore::RenderSVGText::layout):
42689         * rendering/RenderSlider.cpp:
42690         (WebCore::RenderSlider::calcPrefWidths):
42691         * rendering/RenderSlider.h:
42692         * rendering/RenderTable.cpp:
42693         (WebCore::RenderTable::calcWidth):
42694         (WebCore::RenderTable::layout):
42695         (WebCore::RenderTable::calcPrefWidths):
42696         (WebCore::RenderTable::splitColumn):
42697         (WebCore::RenderTable::appendColumn):
42698         * rendering/RenderTable.h:
42699         * rendering/RenderTableCell.cpp:
42700         (WebCore::RenderTableCell::updateFromElement):
42701         (WebCore::RenderTableCell::styleOrColWidth):
42702         (WebCore::RenderTableCell::calcPrefWidths):
42703         * rendering/RenderTableCell.h:
42704         * rendering/RenderTableCol.cpp:
42705         (WebCore::RenderTableCol::updateFromElement):
42706         * rendering/RenderTableRow.cpp:
42707         (WebCore::RenderTableRow::layout):
42708         * rendering/RenderTableSection.cpp:
42709         (WebCore::RenderTableSection::paint):
42710         * rendering/RenderText.cpp:
42711         (WebCore::RenderText::trimmedPrefWidths):
42712         (WebCore::RenderText::calcPrefWidths):
42713         (WebCore::RenderText::calcPrefWidthsInternal):
42714         (WebCore::RenderText::setText):
42715         * rendering/RenderText.h:
42716         (WebCore::RenderText::minPrefWidth):
42717         (WebCore::RenderText::maxPrefWidth):
42718         * rendering/RenderTextControl.cpp:
42719         (WebCore::RenderTextControl::calcPrefWidths):
42720         * rendering/RenderTextControl.h:
42721         * rendering/RenderView.cpp:
42722         (WebCore::RenderView::RenderView):
42723         (WebCore::RenderView::calcPrefWidths):
42724         (WebCore::RenderView::layout):
42725         * rendering/RenderView.h:
42726         * rendering/RenderWidget.cpp:
42727         (WebCore::RenderWidget::layout):
42728         * rendering/RootInlineBox.cpp:
42729         * rendering/RootInlineBox.h:
42730         (WebCore::RootInlineBox::setHorizontalOverflowPositions):
42731         (WebCore::RootInlineBox::setVerticalSelectionPositions):
42732         * rendering/TableLayout.h:
42733
42734 2007-04-24  Justin Garcia  <justin.garcia@apple.com>
42735
42736         Reviewed by oliver
42737         
42738         <rdar://problem/5156401> 
42739         Crash when dragging text into a link inside a table cell
42740
42741         * editing/CompositeEditCommand.cpp:
42742         (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
42743         Don't avoid the anchor if doing so would skip over a line break, that
42744         would put content in the wrong paragraph, which can throw ReplaceSelectionCommand,
42745         which relies on moveParagraphs into infinite recursion.
42746         Renamed the input position.
42747         Don't need to re-fetch the enclosing anchor when preparing to push it down,
42748         since it hasn't changed since the top of the function.
42749
42750 2007-04-24  Timothy Hatcher  <timothy@apple.com>
42751
42752         Reviewed by Adam.
42753
42754         <rdar://problem/5133011> 64-bit: Attempting to paste copied text in a input field results in a crash at WebCore::Range::startPosition()
42755
42756         Change a couple incorrect uses of LONG_MAX to INT_MAX to match the variable type they are used in.
42757         The LONG_MAX on 64-bit was overflowing the int variables, causing this crash on paste.
42758
42759         * bridge/mac/WebCoreAXObject.mm:
42760         (-[WebCoreAXObject value]):
42761         * editing/TextIterator.cpp:
42762         (WebCore::TextIterator::handleTextNode):
42763         (WebCore::TextIterator::handleTextBox):
42764
42765 2007-04-24  Timothy Hatcher  <timothy@apple.com>
42766
42767         Reviewed by Adam.
42768
42769         <rdar://problem/4966982> 64-bit: In a unordered list, TYPE=DISC and TYPE=CIRCLE attribute values are ignored
42770
42771         We need to draw our full-circle arcs counter-clockwise, since a clockwise arc from 0 to 2Ï\80 is no arc at all!
42772         This only worked on 32-bit due to a rounding error in CoreGraphics, causing it to draw a full circle anyway.
42773
42774         * platform/graphics/cg/GraphicsContextCG.cpp:
42775         (WebCore::GraphicsContext::drawEllipse):
42776
42777 2007-04-24  Brady Eidson  <beidson@apple.com>
42778
42779         Reviewed by Beth, Hyatt, Ada, and Darin
42780
42781         <rdar://problem/5011477> and <rdar://problem/5011514>
42782         Provide support for the icon.db to be moved to a different directory from the old WebKit-style
42783         icons, and remove the old directory if that is the case
42784
42785         Support for this starts in WebCore, where we can use the metadata table in the icon.db to track
42786         whether or not we've ever done the import
42787
42788         * WebCore.exp:
42789         * loader/icon/IconDatabase.cpp:
42790         (WebCore::IconDatabase::defaultDatabaseFilename): Changed to "Icons.db"
42791         (WebCore::IconDatabase::IconDatabase):
42792         (WebCore::IconDatabase::deleteAllPreparedStatements): Delete the new statements added
42793         (WebCore::IconDatabase::imported): Grab this flag from the DB or return the cached flag
42794         (WebCore::IconDatabase::setImported): Store this flag into the DB
42795         (WebCore::IconDatabase::importedQuery): Actually do the DB query for this save
42796         (WebCore::IconDatabase::setImportedQuery): Actually do the DB query for this retrieval
42797         * loader/icon/IconDatabase.h:
42798
42799 2007-04-24  Darin Adler  <darin@apple.com>
42800
42801         Reviewed by Justin.
42802
42803         - fix <rdar://problem/4356361> Selection after multiple delete
42804           keypresses and undo selects only the last deleted character
42805
42806         Test: editing/undo/undo-combined-delete-boundary.html
42807         Test: editing/undo/undo-combined-delete.html
42808         Test: editing/undo/undo-delete-boundary.html
42809         Test: editing/undo/undo-delete.html
42810         Test: editing/undo/undo-forward-delete-boundary.html
42811         Test: editing/undo/undo-forward-delete.html
42812
42813         * editing/TypingCommand.cpp:
42814         (WebCore::TypingCommand::insertText): Fix obviously-wrong code where there were missing
42815         braces. I couldn't find any real symptom of this, but I think the fix should go in anyway.
42816         All layout tests still pass.
42817         (WebCore::TypingCommand::deleteKeyPressed): Added code to compute a selection that goes
42818         back to the beginning of the composite editing operation.
42819         (WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.
42820
42821         * editing/Selection.h:
42822         * editing/Selection.cpp: (WebCore::Selection::setWithoutValidation):
42823         Added. Back door to allow setting the ends of a selection without revalidating,
42824         because we need to use it on a selection where the endpoints may no longer be
42825         valid due to mutations done by earlier pieces of the editing operation.
42826
42827         * editing/EditCommand.h:
42828         (WebCore::EditCommand::startingSelection): Return a const& for speed.
42829         (WebCore::EditCommand::endingSelection): Ditto.
42830
42831 2007-04-24  Sam Weinig  <sam@webkit.org>
42832
42833         Reviewed by Mitz.
42834
42835         - fix for http://bugs.webkit.org/show_bug.cgi?id=13448
42836           REGRESSION: setting an input element's value to JavaScript null gives "null"
42837
42838         Test: fast/forms/input-null.html
42839
42840         * html/HTMLInputElement.idl: Convert JS null to the empty string on setting
42841         DOMString attributes.
42842
42843 2007-04-24  Mitz Pettel  <mitz@webkit.org>
42844
42845         Reviewed by Dave Hyatt.
42846
42847         - fix http://bugs.webkit.org/show_bug.cgi?id=13453
42848           Control clip isn't applied to children's backgrounds, outlines and floats
42849
42850         Test: fast/forms/control-clip.html
42851
42852         * rendering/RenderBlock.cpp:
42853         (WebCore::RenderBlock::paint): Apply the clip in all phases that paint
42854         children. Split PaintPhaseOutline and PaintPhaseChildBlockBackground into
42855         two phases each, applying the clip only to the children.
42856         * rendering/RenderListBox.cpp:
42857         (WebCore::RenderListBox::paintObject): Treat the scrollbar as part of the
42858         background rather than as a child's background, now that children are
42859         clipped out.
42860
42861 2007-04-24  Benjamin Otte  <otte@gnome.org>
42862
42863         Reviewed by Mark Rowe.
42864
42865         Gdk build system improvements.
42866
42867         * make-generated-sources.sh: Exit with failure status if make fails.
42868
42869 2007-04-24  Benjamin Otte  <otte@gnome.org>
42870
42871         Reviewed by Mark Rowe.
42872
42873         Gdk build system improvements.
42874
42875         * Projects/gdk/webcore-gdk.bkl:
42876         fail if running any of the commands failed. In particular
42877         make-generated-sources.sh
42878
42879 2007-04-23  Beth Dakin  <bdakin@apple.com>
42880
42881         Reviewed by Adam.
42882
42883         Fix for <rdar://problem/5155507> REGRESSION: Crash in 
42884         RenderLayer::setHasVisibleContent()
42885
42886         * rendering/RenderContainer.cpp:
42887         (WebCore::RenderContainer::appendChildNode): Must null-check 
42888         enclosingLayer()
42889         (WebCore::RenderContainer::insertChildNode): Same.
42890
42891 2007-04-23  David Hyatt  <hyatt@apple.com>
42892
42893         Fix for bug 13337, deep tag nesting is slow.  This patch fixes a number of O(n^2) issues as well as making
42894         a few performance optimizations based off profiling.  Details next to each change below.
42895
42896         Note that calcMinMaxWidth being slow is a critical separate piece of this puzzle.  Until bug 13430 is fixed,
42897         render tree construction will be O(n^2) (because of the minmaxrecalc bit setting being stupid enough to
42898         always crawl to the root of the tree) and calcMinMaxWidth will waste tons of unnecessary time.
42899
42900         When these fixes are combined with the calcMinMaxWidth fix in 13430, the penguin page specified in 13337
42901         loads in < 2 seconds (down from an infinite hang before).
42902
42903         Reviewed by aroben, ollie
42904
42905         * css/cssstyleselector.cpp:
42906         (WebCore::CSSStyleSelector::locateCousinList):
42907         (WebCore::CSSStyleSelector::locateSharedStyle):
42908         * css/csstyleselector.h
42909         Cap the depth of cousin searching on the shared style optimization.  We will be willing to (at most) crawl
42910         up the tree the same distance that we were willing to crawl backwards through sibling lists.  Leaving it
42911         uncapped resulted in pathological style resolution for the case of an infinitely nested chain of singletons.
42912
42913         * html/HTMLParser.cpp:
42914         (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks):
42915         (WebCore::HTMLParser::popBlock):
42916         Cap the number of residual style tags that we are willing to reopen.  We will reopen at most 200
42917         residual style tags, since the assumption is that once that many tags are on the stack, you're probably already
42918         every kind of bold, italic, and color of the rainbow.
42919
42920         * rendering/RenderFlow.cpp:
42921         (WebCore::RenderFlow::absoluteClippedOverflowRect):
42922         absoluteClippedOverflowRect can just return the empty rect when the inline flow has no line boxes instead of
42923         doing a bunch of work (and calling containingBlock()) for no reason.
42924
42925         * rendering/RenderInline.cpp:
42926         (WebCore::RenderInline::addChildToFlow):
42927         Remove the useless containingBlock() check from addChildToFlow.  Obviously every inline's containing block
42928         is a block flow.
42929
42930         * rendering/bidi.cpp:
42931         (WebCore::inlineWidth):
42932         (WebCore::RenderBlock::createLineBoxes):
42933         Cap the depth of individual line trees to 200.  Again the assumption is that once that many open inlines exist
42934         all on one line that there's no way this would be intentional.
42935
42936 2007-04-23  David Hyatt  <hyatt@apple.com>
42937
42938         Fix for bug 13430, cap inline splitting for continuations to a maximum depth of 200.
42939
42940         Reviewed by olliej, antti
42941
42942         * rendering/RenderInline.cpp:
42943         (WebCore::RenderInline::splitInlines):
42944
42945 2007-04-23  Alp Toker  <alp@atoker.com>
42946
42947         Gdk build fix. Track EventHandler change made in r21042.
42948
42949         * page/gdk/EventHandlerGdk.cpp:
42950         (WebCore::EventHandler::passWheelEventToWidget):
42951         (WebCore::EventHandler::passMousePressEventToScrollbar):
42952
42953 2007-04-23  Timothy Hatcher  <timothy@apple.com>
42954
42955         Reviewed by Darin.
42956
42957         <rdar://problem/5024945> -[DOMRange lineBoxRects] doesn't include start and end nodes that have offsets
42958
42959         * rendering/RenderText.cpp:
42960         (WebCore::RenderText::addLineBoxRects): Use min(box->len(), end) instead of special-casing UINT_MAX.
42961
42962 2007-04-23  Adele Peterson  <adele@apple.com>
42963
42964         Fix by Darin, reviewed by me.
42965
42966         Fix for REGRESSION: Can't upload attachments to bugzilla since the file upload control is reset immediately 
42967         http://bugs.webkit.org/show_bug.cgi?id=13461
42968
42969         * rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::updateFromElement):
42970         Only clear the FileChooser if the value is empty *and* (not or) the filename is empty.
42971
42972 2007-04-23  Adele Peterson  <adele@apple.com>
42973
42974         Reviewed by Adam.
42975
42976         Updated fix for <rdar://problem/4887426> Set a reasonable maximum number of recent searches for search menu
42977
42978         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::parseMappedAttribute): Use a const int maxSavedResults instead of magic number 256.
42979
42980 2007-04-23  Timothy Hatcher  <timothy@apple.com>
42981
42982         Reviewed by Hyatt.
42983
42984         <rdar://problem/5024945> -[DOMRange lineBoxRects] doesn't include start and end nodes that have offsets
42985
42986         Don't call selectionRect with a -1 end position, instead use the text length.
42987
42988         * rendering/RenderText.cpp:
42989         (WebCore::RenderText::addLineBoxRects):
42990
42991 2007-04-23  Adele Peterson  <adele@apple.com>
42992
42993         Fixed and reviewed by Darin, Adele, and Oliver.
42994
42995         WebCore part of fix for <rdar://problem/5107538> REGRESSION: Page scroll when selecting characters from inline input candidate window by arrow buttons
42996         http://bugs.webkit.org/show_bug.cgi?id=13263
42997
42998         * dom/KeyboardEvent.h: (WebCore::KeypressCommand::isEmpty): Added helper method.
42999
43000 2007-04-23  Patti Hoa  <patti@apple.com>
43001         
43002         <rdar://problem/4938364> Attachment button has different string length between attributeStringForRange and stringForRange
43003         <rdar://problem/4939536> AXLengthForTextMarkerRange returns zero length for the range of an attachment
43004         
43005         Reviewed by Darin.
43006
43007         * bridge/mac/WebCoreAXObject.mm:
43008         (nsStringForReplacedNode):
43009         Added helper routine to check if the replaced node should be exposed as an attachment character in string representation.
43010         Added an additional check to make sure that text node is not considered a replaced node.
43011         Removed helper routine AXAttributedStringAppendReplaced since half of the functions are now taken care by nsStringForReplacedNode.
43012         The other half is directly used in the doAXAttributedStringForTextMarkerRange method.
43013         (-[WebCoreAXObject doAXStringForTextMarkerRange:]):
43014         (-[WebCoreAXObject doAXAttributedStringForTextMarkerRange:]):
43015         Both string and AttrbributedString methods will now utilize the helper routine nsStringForReplacedNode to return replacement
43016         characters for range occupied by attachment.
43017         
43018 2007-04-23  Adele Peterson  <adele@apple.com>
43019
43020         Reviewed by Oliver.
43021
43022         Fix for <rdar://problem/4887426> Set a reasonable maximum number of recent searches for search menu
43023
43024         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::parseMappedAttribute):
43025         Enforce a maximum of 256 saved results for the search field.
43026
43027 2007-04-23  Adele Peterson  <adele@apple.com>
43028
43029         Reviewed by Hyatt & Adam.
43030
43031         Fix for <rdar://problem/4807799> REGRESSION: calling select() in onSearch handler doesn't work if you hit enter to trigger the event
43032         Fix for <rdar://problem/5153970> onChange doesn't fire when focusing a popup, using type-ahead to select, and leaving
43033
43034         This previous behavior to blur controls when hitting enter was added to achieve the result of firing the change event.  Firefox does not
43035         fire blur- just the change event, so this fix will match Firefox behavior.
43036
43037         This also fixes a bug where we didn't fire the change event when using type-ahead selection with the popup menu.
43038
43039         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler): Fire change event instead of blur event when hitting enter.
43040
43041         * html/HTMLSelectElement.cpp:
43042         (WebCore::HTMLSelectElement::dispatchFocusEvent): Now that we have type-ahead selection for popups that can be opened with the arrow keys,
43043          we should always save the last selection when a popup gets focus, so it can be compared to the current selection when it loses focus.
43044         (WebCore::HTMLSelectElement::dispatchBlurEvent): For the same reasons as above, we should fire onChange for all popups on blur.
43045
43046         (WebCore::HTMLSelectElement::menuListDefaultEventHandler): Fire change event instead of blur event when hitting enter.  Removed an unnecessary
43047          check for form() before calling menuListOnChange().  Removed an unnecessary check for renderer() and usesMenuList().
43048         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Remove call to blur.  Since list boxes fire the change event immediately after an
43049          action is taken, we don't need to fire anything after hitting enter.
43050         (WebCore::HTMLSelectElement::menuListOnChange): Reset m_lastOnChangeIndex after firing the change event.
43051
43052 2007-04-23  Anders Carlsson  <andersca@apple.com>
43053
43054         Reviewed by Ada.
43055
43056         <rdar://problem/5061022>
43057         REGRESSION: Acrobat 8 plug-in fails to scroll with trackpad two-finger scroll or mouse wheel (12995)
43058         
43059         Pass wheel events to all widgets.
43060         
43061         * page/EventHandler.cpp:
43062         (WebCore::EventHandler::handleWheelEvent):
43063         * page/EventHandler.h:
43064         * page/mac/EventHandlerMac.mm:
43065         (WebCore::EventHandler::passWheelEventToWidget):
43066
43067 2007-04-23  Alp Toker  <alp@atoker.com>
43068
43069         Reviewed by Mark.
43070
43071         Save and restore the context state when beginning and ending a transparency layer.
43072
43073         * platform/graphics/cairo/GraphicsContextCairo.cpp:
43074         (WebCore::GraphicsContext::beginTransparencyLayer):
43075         (WebCore::GraphicsContext::endTransparencyLayer):
43076
43077 2007-04-23  Alp Toker  <alp@atoker.com>
43078
43079         Reviewed by Mark.
43080
43081         Further implementation and checks. The opacity layer code is not so beautiful
43082         but gets the job done with fewer complications than maintaining our own stack.
43083
43084         * platform/graphics/cairo/GraphicsContextCairo.cpp:
43085         (WebCore::GraphicsContext::translate):
43086         (WebCore::GraphicsContext::setPlatformStrokeThickness):
43087         (WebCore::GraphicsContext::beginTransparencyLayer):
43088         (WebCore::GraphicsContext::endTransparencyLayer):
43089         (WebCore::GraphicsContext::setCompositeOperation):
43090         (WebCore::GraphicsContext::rotate):
43091         (WebCore::GraphicsContext::scale):
43092
43093 2007-04-23  Darin Adler  <darin@apple.com>
43094
43095         Reviewed by Hyatt.
43096
43097         - rename box-sizing to -webkit-box-sizing
43098           because of <rdar://problem/4667227> REGRESSION: Shifted table on page at
43099           https://us.etrade.com/e/t/home (due to box-sizing)
43100
43101         * css/CSSComputedStyleDeclaration.cpp:
43102         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Rename.
43103         * css/CSSPropertyNames.in: Ditto.
43104         * css/cssparser.cpp: (WebCore::CSSParser::parseValue): Rename and take out comment
43105         explaining why we aren't prefacing with -webkit.
43106         * css/cssstyleselector.cpp:
43107         (WebCore::CSSStyleSelector::applyProperty): Rename.
43108         * css/html4.css: Rename.
43109         * css/quirks.css: Rename.
43110
43111 2007-04-23  Alp Toker  <alp@atoker.com>
43112
43113         Reviewed by Hyatt.
43114
43115         * platform/graphics/cairo/GraphicsContextCairo.cpp:
43116         (WebCore::GraphicsContext::drawEllipse):
43117         (WebCore::GraphicsContext::drawConvexPolygon):
43118         Fix stroking and filling of ellipses and polygons.
43119         * platform/graphics/cairo/ImageCairo.cpp:
43120         (WebCore::BitmapImage::draw): Make use of a new GraphicsContext
43121         function to simplify the code.
43122         (WebCore::Image::drawPattern): Now implemented. This makes content
43123         with tiled patterns (eg. CSS repeat) render correctly.
43124         * platform/graphics/gdk/ImageGdk.cpp:
43125         (WebCore::Image::drawPattern): Remove old stub.
43126
43127 2007-04-22  Lars Naesbye Christensen  <lars@naesbye.dk>
43128
43129         Reviewed by Tim Hatcher.
43130
43131         Prettier, more modern 'cell' cursor
43132         http://bugs.webkit.org/show_bug.cgi?id=13441
43133         Also updates past ChangeLog entries to new email address
43134
43135         * ChangeLog:
43136         * ChangeLog-2006-12-31:
43137         * Resources/cellCursor.png:
43138
43139 2007-04-23  Mark Rowe  <mrowe@apple.com>
43140
43141         Rubber-stamped by Hyatt.
43142
43143         Rename cMaxPenderingSourceLengthInLowBandwidthDisplay to cMaxPendingSourceLengthInLowBandwidthDisplay.
43144
43145         * loader/FrameLoader.cpp:
43146         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
43147
43148 2007-04-22  Maciej Stachowiak  <mjs@apple.com>
43149
43150         Reviewed by Darin and Geoff.
43151
43152         - move most of Window's data members into a separate private object, to avoid needing
43153         to use the oversize allocator for it
43154         http://bugs.webkit.org/show_bug.cgi?id=13381
43155         
43156         It was the only remaining JSObject subclass to use the oversize
43157         allocator on 32-bit platforms, and having oversize objects around
43158         makes garbage collection slower so this would hurt performance
43159         with many tabs/windows open.
43160         
43161         No significant effect on JS iBench.
43162
43163         * bindings/js/kjs_events.cpp:
43164         (KJS::JSUnprotectedEventListener::JSUnprotectedEventListener):
43165         (KJS::JSUnprotectedEventListener::~JSUnprotectedEventListener):
43166         (KJS::JSEventListener::JSEventListener):
43167         (KJS::JSEventListener::~JSEventListener):
43168         (KJS::JSLazyEventListener::parseCode):
43169         * bindings/js/kjs_window.cpp:
43170         (KJS::WindowPrivate::WindowPrivate):
43171         (KJS::Window::Window):
43172         (KJS::Window::~Window):
43173         (KJS::Window::location):
43174         (KJS::Window::selection):
43175         (KJS::Window::locationbar):
43176         (KJS::Window::menubar):
43177         (KJS::Window::personalbar):
43178         (KJS::Window::statusbar):
43179         (KJS::Window::toolbar):
43180         (KJS::Window::scrollbars):
43181         (KJS::Window::mark):
43182         (KJS::Window::getValueProperty):
43183         (KJS::Window::findJSEventListener):
43184         (KJS::Window::findJSUnprotectedEventListener):
43185         (KJS::Window::clearHelperObjectProperties):
43186         (KJS::Window::clear):
43187         (KJS::Window::setCurrentEvent):
43188         (KJS::Window::setReturnValueSlot):
43189         (KJS::Window::clearAllTimeouts):
43190         (KJS::Window::installTimeout):
43191         (KJS::Window::pauseTimeouts):
43192         (KJS::Window::resumeTimeouts):
43193         (KJS::Window::clearTimeout):
43194         (KJS::Window::timerFired):
43195         (KJS::Window::disconnectFrame):
43196         (KJS::Window::jsEventListeners):
43197         (KJS::Window::jsHTMLEventListeners):
43198         (KJS::Window::jsUnprotectedEventListeners):
43199         (KJS::Window::jsUnprotectedHTMLEventListeners):
43200         * bindings/js/kjs_window.h:
43201
43202 2007-04-22  David Hyatt  <hyatt@apple.com>
43203
43204         Fix 1% regression on the PLT.  Make sure roundToDevicePixels does no
43205         work when no scale is in effect.
43206
43207         Reviewed by mjs
43208
43209 2007-04-22  Darin Adler  <darin@apple.com>
43210
43211         Reviewed by Oliver.
43212
43213         - fix small things noticed while looking into a font subsitution bug
43214
43215         * platform/Font.h: (WebCore::Font::operator==): Corrected a misleading comment.
43216
43217         * platform/Font.cpp:
43218         (WebCore::Font::Font): Initialize m_pageZero to 0 in the empty constructor instead
43219         of leaving it uninitialized. Initialize m_fontList for tighter code. Remove unneeded
43220         initialization of RefPtr members to 0. Changed the copy constructor to use initialization
43221         for tighter code.
43222         (WebCore::Font::operator=): Sorted to match the order from the header and the copy
43223         constructor, and removed the uneeded self-assignment check.
43224
43225 2007-04-22  Darin Adler  <darin@apple.com>
43226
43227         Reviewed by Maciej.
43228
43229         - fix http://bugs.webkit.org/show_bug.cgi?id=5196
43230           <rdar://problem/4537384> input type=file fields with style=display:none do not post
43231           their values (5196)
43232
43233         - fix http://bugs.webkit.org/show_bug.cgi?id=8248
43234           Can not clear file input field
43235
43236         * manual-tests/clear-input-file.html: Added.
43237
43238         * html/HTMLInputElement.cpp:
43239         (WebCore::HTMLInputElement::appendFormData): Remove check that prevents submission of
43240         form data when there is no renderer or the renderer is invisible. While well-intentioned,
43241         the rule does not match the behavior of other web browsers.
43242         (WebCore::HTMLInputElement::setValue): Instead of disallowing all value changes for file
43243         type, allow changes to the empty string.
43244         (WebCore::HTMLInputElement::storesValueSeparateFromAttribute): Made file type return true
43245         for this. 1) The file type does store its value separate from the value attribute.
43246         2) The code in setInputType() should do the right thing given this new value, according to
43247         my inspection of the code. 3) The code in both reset() and setValue() will work properly
43248         if this is true, which was the motivation for changing it.
43249
43250         * platform/FileChooser.h: Added a clear function.
43251         * platform/FileChooser.cpp: (WebCore::FileChooser::clear): Clear the filename and the icon.
43252
43253         * rendering/RenderFileUploadControl.cpp:
43254         (WebCore::RenderFileUploadControl::valueChanged): Used a local variable to make the code
43255         a little bit more readable (and match the change below).
43256         (WebCore::RenderFileUploadControl::updateFromElement): Used local variables a bit more in
43257         the old code. Added code that will call clear on the FileChooser and repaint if the DOM
43258         element has an empty value and the FileChooser does not.
43259
43260 2007-04-22  Grace Kloba  <klobag@gmail.com>
43261
43262         Reviewed by Hyatt.
43263
43264         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12279
43265         Implemented two pass loading. Enabled by WTF_USE_LOW_BANDWIDTH_DISPLAY flag.
43266
43267         * dom/Document.cpp:
43268         (WebCore::Document::Document): initialize member variable m_inLowBandwidthDisplay
43269
43270         * dom/Document.h:
43271         (WebCore::Document::haveStylesheetsLoaded): while in low bandwidth display mode, ignore pending style sheets
43272         (WebCore::Document::setDocLoader):
43273         (WebCore::Document::inLowBandwidthDisplay):
43274         (WebCore::Document::setLowBandwidthDisplay):
43275         * html/HTMLTokenizer.cpp:
43276         (WebCore::HTMLTokenizer::scriptHandler): while in low bandwidth display mode, don't execute JavaScript
43277
43278         * loader/Cache.cpp:
43279         (WebCore::Cache::requestResource): while in low bandwidth display mode, don't let style sheet and JavaScript block
43280
43281         * loader/CachedCSSStyleSheet.cpp:
43282         (WebCore::CachedCSSStyleSheet::checkNotify): add notifyFinished() as client may need "this" pointer
43283
43284         * loader/DocLoader.h:
43285         (WebCore::DocLoader::replaceDocument):
43286         * loader/FrameLoader.cpp:
43287         (WebCore::FrameLoader::FrameLoader):
43288         (WebCore::FrameLoader::requestFrame): while in low bandwidth display mode, don't load sub-frame
43289         (WebCore::FrameLoader::stopLoading):
43290         (WebCore::FrameLoader::begin): set to low bandwidth display mode if the top frame is HTML document
43291         (WebCore::FrameLoader::write):
43292         (WebCore::FrameLoader::endIfNotLoading):
43293         (WebCore::FrameLoader::checkCompleted): while in low bandwidth display mode, don't set complete
43294         (WebCore::FrameLoader::requestObject): while in low bandwidth display mode, don't care Object
43295         (WebCore::FrameLoader::addLowBandwidthDisplayRequest):
43296         (WebCore::FrameLoader::removeAllLowbandwidthDisplayRequests):
43297         (WebCore::FrameLoader::notifyFinished):
43298         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
43299         * loader/FrameLoader.h:
43300         (WebCore::FrameLoader::FrameLoader::needToSwitchOutLowBandwidthDisplay):
43301         (WebCore::FrameLoader::FrameLoader::setUseLowBandwidthDisplay):
43302         (WebCore::FrameLoader::FrameLoader::useLowBandwidthDisplay):
43303
43304 2007-04-22  Darin Adler  <darin@apple.com>
43305
43306         Reviewed by Tim Hatcher.
43307
43308         - fix http://bugs.webkit.org/show_bug.cgi?id=13439
43309           4 problems found in dashboard-region parser and serializer
43310
43311         Test: fast/css/dashboard-region-parser.html
43312
43313         * css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::cssText):
43314         Fix code that overwrote each additional region with the previous one to
43315         instead build a space-separated list. Check for the case of an identifier
43316         that's invalid, since that's (accidentally) how we represent a region
43317         value that doesn't have explicit top/right/bottom/left values. The old code
43318         would end up writing out four spaces after the region type.
43319
43320         * css/cssparser.cpp: (WebCore::CSSParser::parseDashboardRegions):
43321         Fail to parse if there is something after the "none" identifier or after
43322         the arguments inside the dashboard-region "function". Also replaced code
43323         that produced a identifier with CSS_VAL_INVALID in a roundabout way with
43324         code that does it explicitly.
43325
43326 2007-04-22  Darin Adler  <darin@apple.com>
43327
43328         Reviewed by Adele.
43329
43330         - support for fix for <rdar://problem/5100240> REGRESSION: Control-O broken
43331
43332         * dom/KeyboardEvent.h: Include a vector of command names in the KeypressCommand object
43333         instead of a single command name.
43334
43335 2007-04-22  Alexey Proskuryakov  <ap@webkit.org>
43336
43337         Reviewed by Darin.
43338
43339         http://bugs.webkit.org/show_bug.cgi?id=13115
43340         REGRESSION: 1000% performance regression in DOM access by index, which was already slow
43341
43342         * dom/NodeList.h: Move cached data into a separate class, so it can be shared.
43343
43344         * dom/Node.h: Replace the set of registered NodeLists with a struct that also
43345         contains a shared NodeList::Caches (so the size of Node doesn't change).
43346
43347         * dom/NodeList.cpp:
43348         (WebCore::NodeList::NodeList):
43349         (WebCore::NodeList::~NodeList):
43350         (WebCore::NodeList::recursiveLength):
43351         (WebCore::NodeList::itemForwardsFromCurrent):
43352         (WebCore::NodeList::itemBackwardsFromCurrent):
43353         (WebCore::NodeList::recursiveItem):
43354         (WebCore::NodeList::itemWithName):
43355         (WebCore::NodeList::rootNodeChildrenChanged):
43356         (WebCore::NodeList::NodeListInfo::NodeListInfo):
43357         (WebCore::NodeList::NodeListInfo::reset):
43358         * dom/ChildNodeList.cpp:
43359         (WebCore::ChildNodeList::ChildNodeList):
43360         (WebCore::ChildNodeList::length):
43361         (WebCore::ChildNodeList::item):
43362         (WebCore::ChildNodeList::nodeMatches):
43363         * dom/ChildNodeList.h:
43364         * dom/Node.cpp:
43365         (WebCore::Node::childNodes):
43366         (WebCore::Node::registerNodeList):
43367         (WebCore::Node::unregisterNodeList):
43368         (WebCore::Node::notifyLocalNodeListsAttributeChanged):
43369         (WebCore::Node::notifyLocalNodeListsChildrenChanged):
43370         Adjust for the above changes.
43371
43372 2007-04-21  Mitz Pettel  <mitz@webkit.org>
43373
43374         Reviewed by Darin.
43375
43376         - fix http://bugs.webkit.org/show_bug.cgi?id=13391
43377           REGRESSION (r18819): Incomplete repaint of button text
43378
43379         Test: fast/repaint/control-clip.html
43380
43381         Ignore controls' lightweight clip in repaint rect computation for now.
43382
43383         * rendering/RenderBox.cpp:
43384         (WebCore::RenderBox::computeAbsoluteRepaintRect):
43385
43386 2007-04-21  Darin Adler  <darin@apple.com>
43387
43388         Reviewed by Adam.
43389
43390         - fix <rdar://problem/4816343> :-khtml-drag CSS pseudo-class changed to :-webkit-drag, need alias
43391
43392         * css/CSSSelector.cpp: (WebCore::CSSSelector::extractPseudoType):
43393         Since Apple documentation claims "-khtml-drag" works, we need to keep it working,
43394         so add it back as an alias.
43395
43396 2007-04-21  Darin Adler  <darin@apple.com>
43397
43398         Reviewed by Oliver.
43399
43400         - fix <rdar://problem/4782422> REGRESSION: -[stringByEvaluatingJavaScriptFromString]
43401           returns an empty string instead of nil for non-string results
43402
43403         * page/mac/WebCoreFrameBridge.mm:
43404         (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
43405         Added a call to nsStringNilIfEmpty to restore the old behavior. It might be nice to
43406         distinguish the empty string from a non-string result, but there's no obvious way
43407         to do that, and for compatibility it's probably best to just restore the old
43408         behavior instead.
43409
43410 2007-04-21  David Hyatt  <hyatt@apple.com>
43411
43412         Fix for bug 13432, determineFlowSpacing is O(n^2).
43413
43414         Reviewed by aroben
43415
43416         * rendering/InlineBox.cpp:
43417         (WebCore::InlineBox::nextOnLineExists):
43418         (WebCore::InlineBox::prevOnLineExists):
43419         * rendering/InlineBox.h:
43420         (WebCore::InlineBox::InlineBox):
43421
43422 2007-04-21  Lamar Goddard <lamargoddard@gmail.com>
43423
43424         Reviewed by Darin.
43425
43426         Fix for http://bugs.webkit.org/show_bug.cgi?id=5262
43427         <rdar://problem/5018778>
43428         XMLSerializer drops Namespace information
43429
43430         Updated WebCore::markup to output namespace information for elements/attributes whose namespace information
43431         doesn't appear in its scope in the output.
43432
43433         Added test case: fast/dom/serialize-nodes.xhtml
43434
43435         * WebCore/editing/markup.cpp:
43436         (WebCore::createMarkup(const Node*, ...)): Changed call to WebCore::markup to match parameters
43437         (WebCore::markup): Changed recursive call to match tree structure, removed ASSERT and no longer needed includeSiblings parameter.
43438         (WebCore::startMarkup): Added optional parameter to track namespaces in the current scope.
43439         (WebCore::addNamespace): Function to add namespace information to markup.
43440         (WebCore::shouldAddNamespaceAttr):
43441         (WebCore::shouldAddNamespaceElem): Functions that test whether namespace information should be added for a given node.
43442         * WebCore/dom/Document.idl:
43443         (createElementNS):
43444         (createAttributeNS):
43445         (getElementsByTagNameNS): Added [ConvertNullToNullString] to namespaceURI parameter.
43446         * WebCore/dom/Node.cpp:
43447         (Node::getElementsByTagNameNS): removed test for namespaceURI being null as null can be a valid namespace.
43448
43449 2007-04-21  Alexey Proskuryakov  <ap@webkit.org>
43450
43451         Reviewed by Darin.
43452
43453         http://bugs.webkit.org/show_bug.cgi?id=13300
43454         Reproducible crash opening anekdot.ru
43455
43456         * html/HTMLParser.cpp:
43457         (WebCore::HTMLParser::HTMLParser):
43458         (WebCore::HTMLParser::getNode):
43459         (WebCore::HTMLParser::handleIsindex):
43460         * html/HTMLParser.h:
43461         Made HTMLParser::form a RefPtr, and renamed it to m_currentFormElement.
43462         Made m_currentMapElement a RefPtr.
43463
43464 2007-04-21  Mitz Pettel  <mitz@webkit.org>
43465
43466         Reviewed by Darin.
43467
43468         - fix http://bugs.webkit.org/show_bug.cgi?id=13353
43469           REGRESSION (r20754-20766): Textarea does not resize when scrollbar is present
43470
43471         Test: fast/overflow/hit-test-overflow-controls.html
43472
43473         * page/EventHandler.cpp:
43474         (WebCore::EventHandler::handleMouseMoveEvent): Avoid activating scrollbars
43475         during layer resize.
43476         * rendering/RenderBlock.cpp:
43477         (WebCore::RenderBlock::isPointInOverflowControl): Renamed isPointInScrollbar
43478         to this, to reflect that it returns true for points in the resize corner
43479         as well. Changed it to call the layer to do the actual work.
43480         (WebCore::RenderBlock::nodeAtPoint): Updated for the above rename.
43481         * rendering/RenderBlock.h:
43482         * rendering/RenderLayer.cpp:
43483         (WebCore::RenderLayer::horizontalScrollbarWidget): Fixed typo in this function's
43484         name (it was horizontaScrollbarWidget).
43485         (WebCore::RenderLayer::hitTestOverflowControls): Added. Returns whether the
43486         hit point is in one of the scrollbars or the resize corner, and updates the
43487         platform scrollbar in the hit test result if a scrollbar was hit.
43488         * rendering/RenderLayer.h:
43489         * rendering/RenderListBox.cpp:
43490         (WebCore::RenderListBox::isPointInOverflowControl): Rename.
43491         * rendering/RenderListBox.h:
43492
43493 2007-04-21  Mitz Pettel  <mitz@webkit.org>
43494
43495         Reviewed by Darin.
43496
43497         - fix http://bugs.webkit.org/show_bug.cgi?id=13417
43498           Repro crash when the first argument to getMatchedCSSRules is not an element
43499
43500         Test: fast/dom/Window/getMatchedCSSRules-null-crash.html
43501
43502         * css/cssstyleselector.cpp:
43503         (WebCore::CSSStyleSelector::styleRulesForElement): Added null check.
43504
43505 2007-04-21  Mitz Pettel  <mitz@webkit.org>
43506
43507         Reviewed by Darin.
43508
43509         - fix http://bugs.webkit.org/show_bug.cgi?id=13416
43510           Repro crash after referencing the user stylesheet from JavaScript
43511
43512         No test included because DumpRenderTree does not support setting the user stylesheet.
43513
43514         * css/cssstyleselector.cpp:
43515         (WebCore::CSSStyleSelector::CSSStyleSelector):
43516         (WebCore::CSSStyleSelector::~CSSStyleSelector):
43517         * css/cssstyleselector.h: Made m_userSheet a RefPtr.
43518
43519 2007-04-21  Darin Fisher  <darin@chromium.org>
43520
43521         Reviewed by Adam.
43522
43523         NPObject should be forward declared using 'struct' instead of 'class'
43524
43525         * page/Frame.h:
43526
43527 2007-04-21  Alp Toker  <alp@atoker.com>
43528
43529         Gdk build fix.
43530
43531         * platform/gdk/FontPlatformDataGdk.cpp:
43532         (WebCore::FontPlatformData::FontPlatformData): Use the correct casts.
43533
43534 2007-04-20  Brady Eidson  <beidson@apple.com>
43535
43536         Reviewed by Oliver (Black Sheep)
43537
43538         <rdar://problem/3559794>
43539         [WebView setMaintainsBackForwardList:] doesn't actually flush out the current page caches
43540
43541         * WebCore.exp:
43542         * history/BackForwardList.cpp:
43543         (WebCore::BackForwardList::BackForwardList): Set the flag to true by default
43544         (WebCore::BackForwardList::addItem): Check the flag and bail if its false
43545         (WebCore::BackForwardList::setCapacity): More correct if it set the m_current to 
43546           NoCurrentItemIndex if we're setting capacity to 0
43547         (WebCore::BackForwardList::enabled): 
43548         (WebCore::BackForwardList::setEnabled): If we're disabling, cycle capacity to 0 and 
43549           back to flush things out
43550         * history/BackForwardList.h: Add enabled(), setEnabled(bool), and m_enabled
43551
43552 2007-04-20  David Hyatt  <hyatt@apple.com>
43553
43554         Bug 13424, firstLineStyle and verticalPositionHint together take
43555         33% of the time on the new tag nesting PLT.  Don't waste time even
43556         looking for first-line styles if no stylesheet used them.
43557
43558         Reviewed by beth
43559
43560         * css/CSSGrammar.y:
43561         * dom/Document.cpp:
43562         (WebCore::Document::Document):
43563         * dom/Document.h:
43564         (WebCore::Document::usesFirstLineRules):
43565         (WebCore::Document::setUsesFirstLineRules):
43566         * rendering/RenderObject.cpp:
43567         (WebCore::RenderObject::verticalPositionHint):
43568         (WebCore::RenderObject::firstLineStyle):
43569
43570 2007-04-20  Peter Kasting  <pkasting@google.com>
43571
43572         Reviewed by Oliver.
43573
43574         - fix http://bugs.webkit.org/show_bug.cgi?id=13420
43575
43576         * platform/TextEncodingRegistry.cpp:
43577         (WebCore::addToTextEncodingNameMap): Change a pointer comparison to a
43578         strcmp(), since the strings here are not necessarily
43579         pointer-equivalent.
43580
43581 2007-04-20  Darin Adler  <darin@apple.com>
43582
43583         Reviewed by Geoff Garen and John Sullivan.
43584
43585         - fix <rdar://problem/4671964> document property on <iframe> elements causes problems for SAP application
43586
43587         Test: fast/dom/iframe-document.html
43588
43589         * bindings/js/kjs_html.h: Removed IFrameDocument.
43590         * bindings/js/kjs_html.cpp: (KJS::JSHTMLElement::iFrameGetter): Ditto.
43591
43592 2007-04-19  Alp Toker  <alp@atoker.com>
43593
43594         Reviewed by Mark.
43595
43596         * platform/gdk/FontGdk.cpp:
43597         (WebCore::Font::drawGlyphs):
43598         * platform/gdk/FontPlatformDataGdk.cpp:
43599         (WebCore::FontPlatformData::FontPlatformData): Fix font support in Gdk port.
43600
43601 2007-04-19  David Hyatt  <hyatt@apple.com>
43602
43603         Fix for bug 13208, implement word-break.  This patch produces a partial
43604         implementation of word-break.  word-break: break-all is implemented.  In
43605         addition, a custom value, word-break: break-word is added that is a hybrid
43606         of word-wrap: break-word and word-break: break-all (and more useful than
43607         either).
43608
43609         Reviewed by beth
43610
43611         Added fast/text/word-break.html
43612
43613         * css/CSSComputedStyleDeclaration.cpp:
43614         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
43615         * css/CSSPropertyNames.in:
43616         * css/CSSValueKeywords.in:
43617         * css/cssparser.cpp:
43618         (WebCore::CSSParser::parseValue):
43619         * css/cssstyleselector.cpp:
43620         (WebCore::CSSStyleSelector::applyProperty):
43621         * rendering/RenderStyle.cpp:
43622         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
43623         (WebCore::StyleRareInheritedData::operator==):
43624         (WebCore::RenderStyle::diff):
43625         * rendering/RenderStyle.h:
43626         (WebCore::):
43627         (WebCore::RenderStyle::breakWords):
43628         (WebCore::RenderStyle::wordBreak):
43629         (WebCore::RenderStyle::setWordBreak):
43630         (WebCore::RenderStyle::initialWordBreak):
43631         (WebCore::RenderStyle::initialWordWrap):
43632         * rendering/RenderText.cpp:
43633         (WebCore::RenderText::calcMinMaxWidthInternal):
43634         * rendering/RenderTextControl.cpp:
43635         (WebCore::RenderTextControl::createInnerTextStyle):
43636         (WebCore::RenderTextControl::calcHeight):
43637         * rendering/bidi.cpp:
43638         (WebCore::RenderBlock::findNextLineBreak):
43639
43640 2007-04-20  Mark Rowe  <mrowe@apple.com>
43641
43642         Qt build fix for FreeBSD.
43643
43644         * WebCore.pro: FreeBSD needs HAVE_PTHREAD_NP_H defined.
43645
43646 2007-04-19  Mitz Pettel  <mitz@webkit.org>
43647
43648         Reviewed by Darin.
43649
43650         - fix http://bugs.webkit.org/show_bug.cgi?id=13403
43651           REGRESSION (r18875-r18899): Can no longer type into search form field after searching and then clicking "back"
43652
43653         The problem was that the page was loaded from the page cache with a subtree
43654         marked for layout and the layout timer stopped (having been stopped when the
43655         page entered the page cache). FrameView::needsLayout() was returning false
43656         which prevented the pending layout from completing.
43657
43658         * page/FrameView.cpp:
43659         (WebCore::FrameView::clear): Removed the call to stop the layout timer, since
43660         reset() does that already.
43661         (WebCore::FrameView::needsLayout): Changed to return true if there's a subtree
43662         pending relayout.
43663
43664 2007-04-19  Justin Garcia  <justin.garcia@apple.com>
43665
43666         Reviewed by harrison
43667         
43668         <rdar://problem/5144139> 
43669         On delete, <BR> inserted into non-editable ToDo <TABLE> element
43670         
43671         The fact that the br was being inserted at a bad position 
43672         (a non-editable position and one inside a table instead of 
43673         before it) was fixed in the previous checkin. This change 
43674         stops us from inserting a br at all, to fix the bug.
43675         
43676         After a delete, we need a placeholder if the selection
43677         started at the start of a paragraph and ended at the end 
43678         of a paragraph. But not if it starts just before a table 
43679         and ends inside that table.  We need placeholders to hold 
43680         open emptied out table cells, but that is handled separately.
43681         
43682         Also, moved lineBreakExistsAtPosition to htmlediting.cpp 
43683         so that it can be used in more places.
43684
43685         * editing/CompositeEditCommand.cpp:
43686         (WebCore::CompositeEditCommand::removePlaceholderAt):
43687         (WebCore::CompositeEditCommand::moveParagraphs):
43688         * editing/DeleteSelectionCommand.cpp:
43689         (WebCore::DeleteSelectionCommand::doApply):
43690         * editing/InsertLineBreakCommand.cpp:
43691         * editing/InsertParagraphSeparatorCommand.cpp:
43692         (WebCore::InsertParagraphSeparatorCommand::doApply):
43693         * editing/htmlediting.cpp:
43694         (WebCore::lineBreakExistsAtPosition):
43695         * editing/htmlediting.h:
43696
43697 2007-04-19  Justin Garcia  <justin.garcia@apple.com>
43698
43699         Reviewed by harrison
43700         
43701         Fixes some issues found while investigating:
43702         <rdar://problem/5144139> On delete, <BR> inserted into non-editable ToDo <TABLE> element
43703         
43704         Move the code to handle inserting content before/after
43705         tables for [table, 0/max] to insertNodeAt, so that
43706         all insertions get it, not just some.
43707         Changed insertNodeAt to take in a position instead of a
43708         node and an offset.
43709
43710         * editing/CompositeEditCommand.cpp:
43711         (WebCore::CompositeEditCommand::insertNodeAt):
43712         (WebCore::CompositeEditCommand::insertNodeAtTabSpanPosition):
43713         (WebCore::CompositeEditCommand::insertBlockPlaceholder):
43714         (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
43715         If paragrahStart.node() is an atomic node, insertNodeAt can handle
43716         insertion, we don't need to special case it.
43717         (WebCore::CompositeEditCommand::moveParagraphs):
43718         (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
43719         * editing/CompositeEditCommand.h:
43720         * editing/DeleteSelectionCommand.cpp:
43721         (WebCore::DeleteSelectionCommand::mergeParagraphs):
43722         (WebCore::DeleteSelectionCommand::doApply):
43723         * editing/FormatBlockCommand.cpp:
43724         (WebCore::FormatBlockCommand::doApply):
43725         * editing/IndentOutdentCommand.cpp:
43726         (WebCore::IndentOutdentCommand::indentRegion):
43727         (WebCore::IndentOutdentCommand::outdentParagraph):
43728         * editing/InsertLineBreakCommand.cpp:
43729         (WebCore::InsertLineBreakCommand::doApply):
43730         * editing/InsertListCommand.cpp:
43731         (WebCore::InsertListCommand::doApply):
43732         * editing/InsertParagraphSeparatorCommand.cpp:
43733         (WebCore::InsertParagraphSeparatorCommand::doApply):
43734         * editing/InsertTextCommand.cpp:
43735         (WebCore::InsertTextCommand::prepareForTextInsertion): Removed some
43736         dead code that handled insertion at non-editable positions.
43737         (WebCore::InsertTextCommand::insertTab):
43738         * editing/ReplaceSelectionCommand.cpp:
43739         (WebCore::ReplaceSelectionCommand::doApply):
43740         (WebCore::ReplaceSelectionCommand::insertNodeAtAndUpdateNodesInserted):
43741         * editing/ReplaceSelectionCommand.h:
43742
43743 2007-04-19  Mitz Pettel  <mitz@webkit.org>
43744
43745         Reviewed by Darin.
43746
43747         - fix http://bugs.webkit.org/show_bug.cgi?id=13336
43748           REGRESSION (r20646): editing/execCommand/hilitecolor.html crashes under guardMalloc
43749
43750         Avoid calling selectionRect() and selectionGapRects() on a renderer that needs
43751         layout.
43752
43753         * rendering/RenderBlock.cpp:
43754         (WebCore::RenderBlock::selectionGapRects):
43755         * rendering/RenderBlock.h:
43756         (WebCore::RenderBlock::BlockSelectionInfo::BlockSelectionInfo):
43757         * rendering/RenderListMarker.cpp:
43758         (WebCore::RenderListMarker::selectionRect):
43759         * rendering/RenderObject.h:
43760         (WebCore::RenderObject::SelectionInfo::SelectionInfo):
43761         * rendering/RenderReplaced.cpp:
43762         (WebCore::RenderReplaced::selectionRect):
43763         * rendering/RenderText.cpp:
43764         (WebCore::RenderText::selectionRect):
43765
43766 2007-04-19  Justin Garcia  <justin.garcia@apple.com>
43767
43768         Reviewed by darin
43769
43770         <rdar://problem/5142012> 
43771         GoogleDocs: Crash at WebCore::Range::startPosition() when creating a list from a link
43772         
43773         List creation uses moveParagraphs to push content into list items.
43774         Its fragment creation (using createMarkup) incorrectly uses regular
43775         spaces instead of nbsps for spaces that were rendered (11475), which 
43776         causes spaces to be collapsed during the move operation.  This results 
43777         in a call to rangeFromLocationAndLength with a location past the end
43778         of the document.  We use the result from rangeFromLocationAndLength
43779         (null) and crash.
43780         
43781         Also when moveParagraphs tries to push content into a list item surrounded
43782         by an anchor, it fails because positionAvoidingSpecialElementBoundary avoids 
43783         the anchor, which also avoids the list item.  This was fixed by pushing
43784         down anchors before avoiding them.
43785         
43786         * editing/CompositeEditCommand.cpp:
43787         (WebCore::CompositeEditCommand::pushAnchorElementDown): Remove the
43788         old anchor after we push down clones of it, this is what callers
43789         expect.
43790         (WebCore::CompositeEditCommand::pushPartiallySelectedAnchorElementsDown):
43791         Call the new enclosingAnchorElement, that takes in a position instead
43792         of a node.
43793         (WebCore::CompositeEditCommand::moveParagraphs): If spaces collapsed
43794         as a result of the move, rangeFromLocationAndLength can return null,
43795         bail and don't try to preserve the selection in that case.
43796         (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
43797         Moved from htmlediting.cpp.
43798         Make sure anchors are pushed down before avoiding them so that we don't
43799         also avoid structural elements like lists and blocks.
43800         * editing/CompositeEditCommand.h:
43801         * editing/TypingCommand.cpp: Moved isFirst/LastPositionBefore/AfterTable
43802         to htmlediting.cpp.
43803         * editing/htmlediting.cpp:
43804         Moved positionAvoidingSpecialElementBoundary so that it could call
43805         pushAnchorElementDown.
43806         (WebCore::isFirstPositionAfterTable): Moved here.
43807         (WebCore::isLastPositionBeforeTable): Moved here.
43808         (WebCore::enclosingAnchorElement): Moved here.
43809         (WebCore::enclosingListChild): Removed an extraneous space.
43810         * editing/htmlediting.h:
43811
43812 2007-04-19  Beth Dakin  <bdakin@apple.com>
43813
43814         Reviewed by Hyatt.
43815
43816         Fix for <rdar://problem/5120889> Sized table cells w/borders not 
43817         drawn to correct size
43818
43819         When table cells have children with %-height, the cells were 
43820         incorrectly shrinking down to be the size of the child. This 
43821         exposed another problem with replaced children and sizing.
43822
43823         * rendering/RenderBox.cpp:
43824         (WebCore::RenderBox::calcReplacedHeightUsing): The exposed problem. 
43825         Subtract our borders and padding in the auto or percent table cell 
43826         containing block case.
43827         * rendering/RenderTableSection.cpp:
43828         (WebCore::RenderTableSection::layoutRows): When our children can 
43829         flex, do not always set the cellTopExtra and cellBottomExtra to 0! 
43830         That is bad! We should do the same as the non-flex case.
43831
43832 2007-04-19  Anders Carlsson  <andersca@apple.com>
43833
43834         Reviewed by Geoff.
43835
43836         http://bugs.webkit.org/show_bug.cgi?id=13333
43837         Support naturalWidth/naturalHeight on image elements
43838
43839         * html/HTMLImageElement.cpp:
43840         (WebCore::HTMLImageElement::naturalWidth):
43841         (WebCore::HTMLImageElement::naturalHeight):
43842         * html/HTMLImageElement.h:
43843         * html/HTMLImageElement.idl:
43844
43845 2007-04-19  Patti Hoa  <patti@apple.com>
43846
43847         Reviewed by Darin.
43848         - review suggestion for rdar://5145011 code change
43849         
43850         * bridge/mac/WebCoreAXObject.mm:
43851         (-[WebCoreAXObject value]):
43852         return early if value attribute is not supported by the attachment view.
43853
43854 2007-04-19  Patti Hoa  <patti@apple.com>
43855
43856         Reviewed by Darin.
43857
43858         <rdar://problem/5145011> Allow attachment view of web object to handle accessibility actions
43859         
43860         * bridge/mac/WebCoreAXObject.mm:
43861         (-[WebCoreAXObject value]):
43862         Only allow asking the attachmentView for value if attachmentView supports this value attribute 
43863         (-[WebCoreAXObject title]):
43864         (-[WebCoreAXObject accessibilityAttributeNames]):
43865         Should not return that long list of unrelated attributes for attachmentView.
43866         (-[WebCoreAXObject accessibilityActionNames]):
43867         (-[WebCoreAXObject accessibilityPerformAction:]):
43868         Allow attachmentView a chance to handle actions.
43869         (-[WebCoreAXObject accessibilityParameterizedAttributeNames]):
43870         Should not return that long list of unrelated attributes for attachmentView.
43871         
43872 2007-04-19  Mitz Pettel  <mitz@webkit.org>
43873
43874         Reviewed by Hyatt.
43875
43876         - fix http://bugs.webkit.org/show_bug.cgi?id=13291
43877           REGRESSION (r19595): WebViewDidBeginEditingNotification not posted when focusing with the mouse
43878
43879         Covered by editing tests.
43880
43881         * dom/Document.cpp:
43882         (WebCore::Document::setFocusedNode): Moved the call to Editor::didBeginEditing()
43883         back into here.
43884         * dom/Element.cpp:
43885         (WebCore::Element::updateFocusAppearance): Removed the call to didBeginEditing().
43886         * html/HTMLInputElement.cpp:
43887         (WebCore::HTMLInputElement::updateFocusAppearance): Ditto.
43888
43889 2007-04-19  Sam Weinig  <sam@webkit.org>
43890
43891         Reviewed by Darin.
43892
43893         - Patch for http://bugs.webkit.org/show_bug.cgi?id=12249
43894           FCKeditor: <hr>, <ul> and <ol> have id="undefined"
43895
43896         Convert undefined and null to a null string for third argument of
43897         execCommand(); 
43898
43899         Test: editing/execCommand/arguments-combinations.html
43900
43901         * WebCore.xcodeproj/project.pbxproj:
43902         * bindings/js/kjs_binding.cpp:
43903         (KJS::valueToStringWithUndefinedOrNullCheck):
43904         * bindings/js/kjs_binding.h:
43905         * bindings/scripts/CodeGeneratorJS.pm:
43906         * dom/Document.idl:
43907
43908 2007-04-19  Alp Toker  <alp@atoker.com>
43909
43910         Reviewed by hyatt.
43911
43912         * WebCoreSources.bkl: Remove obsolete source file from build.
43913
43914 2007-04-18  Alp Toker  <alp@atoker.com>
43915
43916         Gdk build fix.  Reviewed by Sam Weinig.
43917
43918         Track changes to make GdkLauncher work again.
43919
43920         * WebCoreSources.bkl:
43921         * platform/gdk/ChromeClientGdk.h:
43922         * platform/gdk/TemporaryLinkStubs.cpp:
43923         (ChromeClientGdk::createWindow):
43924         (ChromeClientGdk::createModalDialog):
43925         (Editor::markBadGrammar):
43926
43927 2007-04-17  Brady Eidson  <beidson@apple.com>
43928
43929         Reviewed by Tim
43930
43931         <rdar://problem/5008925>
43932         Expose the NSURLConnection delegate willCacheResponse API to WebResourceLoadDelegate
43933
43934         * WebCore.xcodeproj/project.pbxproj: Added ResourceLoaderMac.mm
43935
43936         * loader/FrameLoaderClient.h: Add the willCacheResponse SPI for WebKit to implement
43937
43938         * loader/ResourceLoader.h:
43939         * loader/mac/ResourceLoaderMac.mm: Added.
43940         (WebCore::ResourceLoader::willCacheResponse): Return the new cachedResponse from the client
43941
43942         * platform/graphics/svg/SVGImageEmptyClients.h:
43943         (WebCore::SVGEmptyFrameLoaderClient::willCacheResponse): Stub
43944
43945         * platform/network/ResourceHandleClient.h:
43946         (WebCore::ResourceHandleClient::willCacheResponse):  Return the new cachedResponse from the client
43947
43948         * platform/network/mac/ResourceHandleMac.mm:
43949         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): Call to get the new 
43950           cachedURLResponse before calling for the cache policy
43951
43952 2007-04-18  Darin Adler  <darin@apple.com>
43953
43954         Reviewed by Hyatt.
43955
43956         - fix http://bugs.webkit.org/show_bug.cgi?id=13375
43957           REGRESSION (r20901): failing fast/overflow/scrollRevealButton.html
43958
43959         * dom/Document.cpp: (WebCore::Document::updateLayout):
43960         If we have a parent frame, update its layout too.
43961
43962 2007-04-18  Alp Toker  <alp@atoker.com>
43963
43964         Gdk build fix.  Reviewed by Mark.
43965
43966         * loader/gdk/FrameLoaderClientGdk.cpp:
43967         (WebCore::FrameLoaderClientGdk::loadedFromCachedPage):
43968         (WebCore::FrameLoaderClientGdk::setDocumentViewFromCachedPage):
43969         (WebCore::FrameLoaderClientGdk::saveDocumentViewToCachedPage):
43970         * loader/gdk/FrameLoaderClientGdk.h:
43971         * platform/gdk/TemporaryLinkStubs.cpp:
43972         (CachedPage::close): Track PageCache to CachedPage refactoring.
43973
43974 2007-04-17  Mitz Pettel  <mitz@webkit.org>
43975
43976         Reviewed by Darin.
43977
43978         - fix http://bugs.webkit.org/show_bug.cgi?id=13369
43979           REGRESSION (r13366): Invisible table cell background is painted
43980
43981         Test: fast/table/invisible-cell-background.html
43982
43983         * rendering/RenderTableCell.cpp:
43984         (WebCore::RenderTableCell::paintBackgroundsBehindCell): Don't paint any
43985         background if the cell is not visible. This behavior matches WinIE and Opera.
43986
43987 2007-04-17  Justin Garcia  <justin.garcia@apple.com>
43988
43989         Reviewed by harrison
43990
43991         <rdar://problem/5119244> 
43992         Crash when indenting a selected ToDo
43993         
43994         indentRegion() was using the old (incorrect) editable root 
43995         getter, which returned null for a valid, editable position, 
43996         causing the crash.
43997
43998         * editing/IndentOutdentCommand.cpp:
43999         (WebCore::IndentOutdentCommand::indentRegion):
44000         The editable root for a position is editableRootForPosition(p),
44001         not p.node()->rootEditableElement(), because of VisiblePositions 
44002         before/after tables, replaced elements and others.
44003
44004 2007-04-17  Justin Garcia  <justin.garcia@apple.com>
44005
44006         Reviewed by hyatt
44007
44008         <rdar://problem/5138441> 
44009         GoogleDocs: Indented text looks like text that's been Quoted
44010         
44011         GoogleDocs uses FormatBlock, blockquotes and a style rule
44012         for blockquotes to implement a "Quote Text" feature.  Styles
44013         intended only for those blockquotes were added to the 
44014         blockquotes that we use for indenting.
44015
44016         * css/html4.css: Removed the webkit-indent-blockquote class rule.
44017         * editing/IndentOutdentCommand.cpp:
44018         (WebCore::createIndentBlockquoteElement): Use custom margins
44019         and turn off border and padding to override author rules for
44020         blockquotes.
44021
44022 2007-04-17  Justin Garcia  <justin.garcia@apple.com>
44023
44024         Reviewed by darin
44025
44026         <rdar://problem/5136770> 
44027         Gmail Editor: Hang when turning a particular multi-line selection into a list
44028         
44029         When InsertListCommand pushes content into list items, 
44030         it creates an empty list item and then calls moveParagraphs.  
44031         But moveParagraphs' selection preservation code fails when 
44032         it encounters empty list items (list items w/o placeholders).
44033         This causes InsertListCommand to lose track of where it has 
44034         already been performed, which causes the hang.
44035
44036         * editing/InsertListCommand.cpp:
44037         (WebCore::InsertListCommand::doApply): Use brs to hold open 
44038         empty list items.
44039
44040 2007-04-17  Darin Adler  <darin@apple.com>
44041
44042         Oops, rolled that last change out. I'll redo it again later after making
44043         som additional refinments.
44044
44045 2007-04-17  Darin Adler  <darin@apple.com>
44046
44047         Reviewed by Brady.
44048
44049         - a few baby steps to try to make lockHistory and userGesture less confusing
44050
44051         * page/FrameLoadRequest.h:
44052         (WebCore::FrameLoadRequest::FrameLoadRequest): Add initialization of m_isUserGesture
44053         to true.
44054         (WebCore::FrameLoadRequest::shouldLockHistory): Renamed from lockHistory to avoid having
44055         a getter that sounds like a verb phrase.
44056         (WebCore::FrameLoadRequest::setShouldLockHistory): Ditto.
44057         (WebCore::FrameLoadRequest::isUserGesture): Added.
44058         (WebCore::FrameLoadRequest::setIsUserGesture): Ditto.
44059
44060         * loader/FrameLoader.h: Remove userGesture parameter from load that takes
44061         FrameLoadRequest. Remove default values for lockHistory and userGesture parameters,
44062         since that just makes it more likely we'll forget to pass them in. Remove one of
44063         the overloads of urlSelected, since it's only called one place.
44064
44065         * loader/FrameLoader.cpp:
44066         (WebCore::FrameLoader::createWindow): Remove userGesture parameter, relying on
44067         the true default in FrameLoadRequest.
44068         (WebCore::FrameLoader::urlSelected): Call setShouldLockHistory and setIsUserGesture
44069         on the FrameLoadRequest, and call load directly; also eliminate the other urlSelected
44070         overload since this was the only place it was called.
44071         (WebCore::FrameLoader::load): Remove userGesture parameter, relying on the true
44072         default in FrameLoadRequest. In the other overload, clean up logic to eliminate the
44073         argsReferrer variable and get rid of the userGesture parameter, using the value from
44074         FrameLoadRequest.
44075         (WebCore::FrameLoader::submitForm): Remove userGesture parameter, relying on the value
44076         in the FrameLoadRequest. This actually changes behavior.
44077
44078         * bindings/js/kjs_html.cpp: (KJS::JSHTMLDocument::putValueProperty): Pass
44079         false for userGesture explicitly instead of relying on default argument.
44080
44081         * page/ContextMenuController.cpp: (WebCore::ContextMenuController::contextMenuItemSelected):
44082         Remove userGesture parameter, relying on the true default in FrameLoadRequest.
44083
44084 2007-04-16  David Kilzer  <ddkilzer@webkit.org>
44085
44086         Reviewed by NOBODY (fixed misspelling).
44087
44088         * manual-tests/containing-block-position-chage.html: Removed.
44089         * manual-tests/containing-block-position-change.html: Added.
44090
44091 2007-04-16  Justin Garcia  <justin.garcia@apple.com>
44092
44093         Reviewed by darin
44094
44095         <rdar://problem/5134759> 
44096         GMail Editor: Hang after pasting underlined text multiple times
44097         
44098         The moveParagraphs call that ReplaceSelectionCommand
44099         performs must receive only inline content from createMarkup, 
44100         or else it will result in another call to moveParagraphs 
44101         when it performs the move, resulting in infinite recursion.
44102
44103         * editing/markup.cpp:
44104         (WebCore::startMarkup): We were only converting a block to
44105         an inline if it had an inline style declaration or styles 
44106         coming from matched rules.  Cleaned up this code a bit by 
44107         handling an element's style separately from its other 
44108         attributes.
44109
44110 2007-04-16  Darin Adler  <darin@apple.com>
44111
44112         - get layout tests going again
44113
44114         * page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry):
44115         Replace assertion with a runtime check. We can consider changing it back to
44116         an assertion some day, but it's not important.
44117
44118 2007-04-16  Darin Adler  <darin@apple.com>
44119
44120         Reviewed by John Sullivan.
44121
44122         - fix http://bugs.webkit.org/show_bug.cgi?id=13303
44123           <rdar://problem/5126341> REGRESSION: controls in a background Safari window
44124           maintain active appearance if the address bar has focus (13303)
44125
44126         - fix a related problem where elements could look focused in non-active windows
44127
44128         - simplify secure keyboard entry logic in Frame::setIsActive
44129
44130         * WebCore.exp: Add two new symbols for use by WebKit.
44131
44132         * html/HTMLInputElement.cpp:
44133         (WebCore::HTMLInputElement::dispatchFocusEvent): Call setUseSecureKeyboardEntryWhenActive
44134         rather than calling setSecureKeyboardEntry directly -- does nothing if the frame is not active.
44135         (WebCore::HTMLInputElement::dispatchBlurEvent): Ditto.
44136
44137         * page/Frame.cpp:
44138         (WebCore::Frame::setUseSecureKeyboardEntryWhenActive): Added. Calls
44139         setUseSecureKeyboardEntry only if the frame is active, but also stores away the state,
44140         so that the setIsActive function doesn't have to recompute it.
44141         (WebCore::Frame::setIsActive): Rewrote all the comments in the function. Removed the code
44142         to manage control tints, which are not based on the whether the frame is active but rather
44143         on AppKit's concept of whether the window should have "key appearance". Simplified the
44144         logic about when to call setUseSecureKeyboardEntry by using the value of
44145         m_useSecureKeyboardEntryWhenActive.
44146         (WebCore::FramePrivate::FramePrivate): Initialize m_useSecureKeyboardEntryWhenActive.
44147         * page/Frame.h: Made setSecureKeyboardEntry private and renamed it to
44148         setUseSecureKeyboardEntry, removed isSecureKeyboardEntry, and
44149         added a public setUseSecureKeyboardEntryWhenActive.
44150         * page/FramePrivate.h: Added m_useSecureKeyboardEntryWhenActive.
44151         * page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry): Added an assertion,
44152         and removed isSecureKeyboardEntry().
44153
44154         * page/FrameView.h: Added updateControlTints.
44155         * page/FrameView.cpp: (WebCore::FrameView::updateControlTints): Added. Code was moved
44156         here from setIsActive for two reasons: (1) it makes more sense in the view class, and
44157         (2) it needs to be called at the appropriate time for AppKit, not when active changes.
44158
44159         * rendering/RenderTheme.cpp: (WebCore::RenderTheme::isFocused): Added an isActive
44160         check here to match the logic in the implementation of the CSS pseudo-state.
44161         * rendering/RenderThemeMac.mm:
44162         (WebCore::RenderThemeMac::updateFocusedState): Use the isFocused function instead of
44163         repeating the logic here. Removed the "need to add a key window test here" comment.
44164         (WebCore::RenderThemeMac::controlSupportsTints): Added a comment about the NSCell
44165         SPI that's related to the _windowChangedKeyState method we now use in WebHTMLView.
44166
44167 2007-04-16  Darin Adler  <darin@apple.com>
44168
44169         Reviewed by John Sullivan.
44170
44171         - fix http://bugs.webkit.org/show_bug.cgi?id=13227
44172           StringImpl::isLower incorrectly assumes islower returns 1 (it can return any non-0)
44173
44174         * platform/StringImpl.cpp:
44175         (WebCore::StringImpl::isLower): Based on test application results, changed to use &&
44176         instead of trying to use & to avoid branches. Use U16_NEXT so we can handle characters
44177         outside the BMP. Improved comments.
44178         (WebCore::StringImpl::lower): Improved comments.
44179         (WebCore::equalIgnoringCase): Changed to use && instead of trying to use & to avoid
44180         branches. Improved comments. Added an assertion about the assumption we're
44181         making that characters in the char* are all ASCII.
44182
44183 2007-04-13  David Kilzer  <ddkilzer@webkit.org>
44184
44185         Patch and review by hyatt.  Testing and landing by ddkilzer.
44186
44187         <rdar://problem/5078866>
44188         tables don't inherit text-align (in strict mode; they're not supposed to in quirks mode)
44189
44190         Test: fast/css/table-text-align-quirk.html
44191               fast/css/table-text-align-strict.html
44192
44193         Previous commit (r20731) removed the wrong property from WebCore/css/html4.css.  However,
44194         when the correct property was removed, it caused tables to inherit alignment properties
44195         from tags like <center> and <div align="center">.  This is fixed in
44196         WebCore::CSSStyleSelector::adjustRenderStyle() by special-casing tables to reset the
44197         text-align property.
44198
44199         * css/CSSComputedStyleDeclaration.cpp:
44200         (WebCore::valueForTextAlign): Renamed KHTML_CENTER, KHTML_LEFT and KHTML_RIGHT to
44201         WEBKIT_CENTER, WEBKIT_LEFT and WEBKIT_RIGHT.
44202         * css/cssparser.cpp:
44203         (WebCore::CSSParser::parseValue): Ditto.
44204         * css/cssstyleselector.cpp:
44205         (WebCore::CSSStyleSelector::adjustRenderStyle): Tables should not support -webkit-center,
44206         -webkit-left or -webkit-right values for text-align, so reset them back to auto.
44207         * css/html4.css: Removed "text-align: -webkit-auto;" property from tables selector.  It
44208         was previously added to css/quirks.css in r20731.
44209         * rendering/RenderBlock.cpp:
44210         (WebCore::RenderBlock::determineHorizontalPosition): Renamed KHTML_* to WEBKIT_*.
44211         * rendering/RenderBox.cpp:
44212         (WebCore::RenderBox::calcHorizontalMargins): Ditto.
44213         * rendering/RenderFlow.cpp:
44214         (WebCore::RenderFlow::caretRect): Ditto.
44215         * rendering/RenderStyle.h: Ditto.
44216         (WebCore::):
44217         * rendering/bidi.cpp:
44218         (WebCore::RenderBlock::computeHorizontalPositionsForLine): Ditto.
44219
44220 2007-04-12  Brady Eidson  <beidson@apple.com>
44221
44222         Reviewed by Black Sheep
44223
44224         <rdar://problem/4664154> and http://bugs.webkit.org/show_bug.cgi?id=3546
44225
44226         When you click on a link that opens in a new window from within gmail, they first create a new window 
44227         with an empty URL, then immediately document.write() into the window to schedule a redirect.
44228
44229         Since the initial page doesn't have a URL associated with it, a history item never gets created.  The 
44230         reasonable solution?  To actually create the history item after the redirect (in updateHistoryForInternalLoad)
44231
44232         * loader/FrameLoader.cpp:
44233         (WebCore::FrameLoader::addHistoryForCurrentLocation): Updates global and B/F history with a new history item
44234         (WebCore::FrameLoader::updateHistoryForStandardLoad): Call addHistoryForCurrentLocation
44235         (WebCore::FrameLoader::updateHistoryForInternalLoad): Call addHistoryForCurrentLocation if there is not already
44236           a current history item
44237         * loader/FrameLoader.h:
44238
44239 2007-04-12  Oliver Hunt  <oliver@apple.com>
44240
44241         Reviewed by Adam.
44242
44243         This fixes <rdar://problem/5060766> -- Frameset with 
44244         an empty frame crashes due to null document.  Debug
44245         builds hit the frame->document() assertion in 
44246         EventHandler::prepareMouseEvent
44247
44248         This null check seems necessary now, having run through 
44249         all the logic on the path to this crash it appears that
44250         we can't avoid this null check.  
44251
44252         * page/EventHandler.cpp:
44253         (WebCore::EventHandler::updateDragAndDrop):
44254
44255 2007-04-12  Justin Garcia  <justin.garcia@apple.com>
44256
44257         Reviewed by darin
44258         
44259         <rdar://problem/5131716> 
44260         Clicking just before a ToDo doesn't put the caret before the ToDo
44261         
44262         * rendering/RenderBlock.cpp:
44263         (WebCore::RenderBlock::positionForCoordinates):
44264         Consider clicks inside the blocks padding, instead of
44265         incorrectly sending them to the position before the block.
44266
44267 2007-04-12  John Sullivan  <sullivan@apple.com>
44268
44269         Reviewed by Anders
44270
44271         - WebCore part of fix for:
44272         <rdar://problem/5128697> REGRESSION: At least one PDF context menu item isn't appearing on Leopard
44273
44274         * platform/ContextMenuItem.h:
44275         (WebCore::):
44276         add two PDF-related context menu items to enum to keep it in sync with WebKit
44277
44278         * platform/ContextMenu.cpp:
44279         (WebCore::ContextMenu::checkOrEnableIfNeeded):
44280         add the new context menu items to the do-nothing case of a big switch statement
44281
44282 2007-04-12  Simon Hausmann  <hausmann@kde.org>
44283
44284         Reviewed by Zack.
44285
44286         Fixed drawing of justified text in the Qt port.
44287
44288         * platform/qt/FontQt.cpp:
44289         (Font::drawGlyphs):
44290
44291 2007-04-11  Oliver Hunt  <oliver@apple.com>
44292
44293         Reviewed by Maciej.
44294
44295         Adding RetainPtr to the many global obj-c pointers we use in
44296         C/C++ methods.  This is necessary to prevent GC from collecting
44297         globals we want to keep around.
44298
44299         We use RetainPtr in obj-c++ and c++ files, and CFRetain/Release in pure
44300         obj-c.
44301
44302         Also made the Pasteboard::m_pasteboard a RetainPtr although it
44303         shouldn't be necessary as the only NSPasteboard instances that 
44304         should ever be inserted are the system clipboard and dragging 
44305         pasteboard.  Neither of which should ever be collected.
44306
44307         * page/mac/WebCoreFrameBridge.mm:
44308         (_getPreSmartSet):
44309         (_getPostSmartSet):
44310         * platform/Pasteboard.h:
44311         * platform/graphics/mac/ColorMac.mm:
44312         (WebCore::nsColor):
44313         * platform/graphics/mac/GraphicsContextMac.mm:
44314         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
44315         * platform/mac/FontDataMac.mm:
44316         (WebCore::webFallbackFontFamily):
44317         * platform/mac/PasteboardMac.mm:
44318         (WebCore::writableTypesForURL):
44319         (WebCore::writableTypesForImage):
44320         (WebCore::Pasteboard::clear):
44321         (WebCore::Pasteboard::writeSelection):
44322         (WebCore::Pasteboard::writeURL):
44323         (WebCore::Pasteboard::writeFileWrapperAsRTFDAttachment):
44324         (WebCore::Pasteboard::writeImage):
44325         (WebCore::Pasteboard::canSmartReplace):
44326         (WebCore::Pasteboard::plainText):
44327         (WebCore::Pasteboard::documentFragment):
44328
44329 2007-04-11  Mitz Pettel  <mitz@webkit.org>
44330
44331         Reviewed by Dave Hyatt.
44332
44333         - fix http://bugs.webkit.org/show_bug.cgi?id=11362
44334           Native popup with size="1" wraps options
44335
44336         Test: fast/forms/menulist-option-wrap.html
44337
44338         * css/html4.css: Added white-space declaration for select[size="0"] and
44339         select[size="1"]. Added border-radius declaration for select.
44340
44341 2007-04-11  Darin Fisher  <darin@chromium.org>
44342
44343         Reviewed by Maciej.
44344
44345         Add a Frame pointer to ChromeClient methods:
44346         http://bugs.webkit.org/show_bug.cgi?id=13127
44347
44348         * loader/FrameLoader.cpp:
44349         (WebCore::FrameLoader::createWindow):
44350         * page/Chrome.cpp:
44351         (WebCore::Chrome::createWindow):
44352         (WebCore::Chrome::createModalDialog):
44353         * page/Chrome.h:
44354         * page/ChromeClient.h:
44355         * page/ContextMenuController.cpp:
44356         (WebCore::openNewWindow):
44357         * platform/graphics/svg/SVGImageEmptyClients.h:
44358         (WebCore::SVGEmptyChromeClient::createWindow):
44359         (WebCore::SVGEmptyChromeClient::createModalDialog):
44360
44361 2007-04-11  Brady Eidson  <beidson@apple.com>
44362
44363         Reviewed by Ada
44364
44365         <rdar://problem/5080987> - Crash in DocumentLoader::frameLoader() const
44366
44367         This was free nil checking lost during the ObjC -> C++ conversion
44368
44369         * loader/FrameLoader.cpp:
44370         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Null check the DocumentLoader
44371
44372 2007-04-11  Justin Garcia  <justin.garcia@apple.com>
44373
44374         Reviewed by harrison
44375
44376         <rdar://problem/5126166> 
44377         Deleting selection starting at before ToDo checkbox to end of line, inserts a BR in the subsequent ToDo
44378         
44379         If a selection ends in a table cell, we shouldn't perform
44380         a merge after deleting that selection.  We have code in
44381         place to prevent those merges, but it failed here.
44382         
44383         It fails because the end of the selection was [tableCell, 0],
44384         (normally not a valid VisiblePosition, but valid here
44385         because the table cell is empty).  We prevent the merge
44386         if the node of the position at the end of the selection 
44387         has an enclosingTableCell.  Even though [tableCell, 0] has 
44388         an enclosing table cell, the node tableCell doesn't, so 
44389         the check fails.
44390         
44391         Fixed this by changing enclosingTableCell to take in
44392         a position, instead of a node.  The other enclosing element
44393         getters should be changed in this way as well.
44394
44395         * editing/DeleteSelectionCommand.cpp:
44396         (WebCore::DeleteSelectionCommand::initializePositionData):
44397         Call the new enclosingTableCell.
44398         * editing/ReplaceSelectionCommand.cpp:
44399         (WebCore::ReplaceSelectionCommand::shouldMerge): Ditto.
44400         * editing/htmlediting.cpp:
44401         (WebCore::enclosingTableCell): Take in a position instead
44402         of a node.
44403         * editing/htmlediting.h:
44404
44405 2007-04-12  Mark Rowe  <mrowe@apple.com>
44406
44407         Qt build fix.
44408
44409         * WebCore.pro:
44410         * editing/qt/EditorQt.cpp:
44411         (WebCore::Editor::markBadGrammar):
44412         * history/qt/CachedPageQt.cpp: Added.
44413         (WebCore::CachedPage::close):
44414         * history/qt/PageCacheQt.cpp: Removed.
44415
44416 2007-04-11  Brady Eidson  <beidson@apple.com>
44417
44418         Reviewed by Antti
44419
44420         <rdar://problem/5125648> and http://bugs.webkit.org/show_bug.cgi?id=13326
44421
44422         Crash opening a link in a new window from Gmail
44423
44424         Problem here is that the currentHistoryItem in the new window is null.  This *shouldn't* be the case, 
44425         and is the cause of a very long standing bug - 
44426         http://bugs.webkit.org/show_bug.cgi?id=3546 - Can't go back to first page in new window opened from gmail
44427
44428         For now, adding a null check prevents this crash and restores the original, long standing regression
44429  
44430         * loader/FrameLoader.cpp:
44431         (WebCore::FrameLoader::updateHistoryForInternalLoad): NULL check
44432
44433 2007-04-11  Adam Roben  <aroben@apple.com>
44434
44435         Reviewed by Anders.
44436
44437         Made image document copying more cross-platform.
44438
44439         All layout tests pass.
44440
44441         * editing/Editor.cpp:
44442         (WebCore::imageNodeFromImageDocument): Added.
44443         (WebCore::Editor::canCopy): Called imageNodeFromImageDocument.
44444         (WebCore::Editor::copy): Ditto.
44445         (WebCore::Editor::copyImage): Updated for changes to Pasteboard.
44446         * platform/Pasteboard.h: Made writeImage more general, which allowed
44447         getting rid of its second incarnation.
44448         * platform/gdk/TemporaryLinkStubs.cpp:
44449         * platform/mac/PasteboardMac.mm:
44450         (WebCore::Pasteboard::writeImage): Collapsed logic from the two
44451         writeImage methods into one.
44452         (Pasteboard::writeImage): Updated for Pasteboard changes.
44453         * platform/qt/PasteboardQt.cpp:
44454         (WebCore::Pasteboard::writeImage): Ditto.
44455
44456 2007-04-11  Darin Adler  <darin@apple.com>
44457
44458         * css/CSSValueKeywords.in: Fix a comment.
44459
44460 2007-04-09  Justin Garcia  <justin.garcia@apple.com>
44461
44462         Reviewed by harrison
44463         
44464         <rdar://problem/4932260> 
44465         Invalid attributed string for attachment range obtained via AXPreviousWordStartTextMarkerForTextMarker
44466         
44467         By default, text iterators don't emit anything for replaced 
44468         elements.  Boundary finding code works around this but has 
44469         bugs: replaced elements act as sentence boundaries and the 
44470         above bug, where previousBoundary moves past the start of a 
44471         word if there is a replaced element just before it. This 
44472         patch fixes these issues by treating replaced elements as 
44473         punctuation for boundary finding.
44474
44475         * editing/TextIterator.cpp:
44476         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
44477         Set m_pastStartNode, the node after (in a reverse pre-order traversal) the 
44478         last one that should be processed.
44479         (WebCore::SimplifiedBackwardsTextIterator::advance):
44480         Stop at m_pastStartNode.
44481         Iterate over nodes in reverse pre-order (TextIterator traverses in 
44482         pre-orer). This makes knowing when to emit characters after nodes vs. when
44483         to emit characters before nodes easier.
44484         Remove the special case for entering a new block, emitting characters 
44485         after nodes can now be handled generally, in handleNonTextNode(), because
44486         of the way we traverse.
44487         Set m_handledChildren to false every iteration since we now do traverse in 
44488         reverse pre-order.
44489         (WebCore::SimplifiedBackwardsTextIterator::handleReplacedElement):
44490         Emit a comma for replaced elements.  We only use this kind of iterator 
44491         for finding boundaries, so we can do this unconditionally.
44492         (WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode):
44493         Don't use emitNewline, instead specify where the newline should be positioned.
44494         A node is handled before its children, so characters emitted here should 
44495         be positioned after the node, not before it.
44496         (WebCore::SimplifiedBackwardsTextIterator::exitNode): 
44497         Don't use emitNewline, instead specify where the newline should be positioned.
44498         (WebCore::CharacterIterator::CharacterIterator): 
44499         Create a TextIterator that emits content for replaced elements, if requested.
44500         * editing/TextIterator.h:
44501         * editing/visible_units.cpp:
44502         (WebCore::previousBoundary): 
44503         Removed replaced element handling code.
44504         If the start of the chunk that contained the boundary was in a non-text
44505         node, then the boundary is not necessarily in that node.  Particularly
44506         because it is only the end of the chunk that is guaranteed to be a valid
44507         position in those cases.  We must iterate backwards by character from 
44508         the end of the chunk to find the boundary.
44509         (WebCore::nextBoundary): Removed replaced element handling code.
44510
44511 2007-04-10  Brady Eidson  <beidson@apple.com>
44512
44513         Reviewed by Darin
44514
44515         <rdar://problem/4887095> - PageCache and PageState should be combined
44516
44517         These two objects are a relic of when the PageCache was split between WebCore and WebKit
44518         It just makes good sense to combine them now, and the new object is more appropriately
44519         called "CachedPage"
44520
44521         This patch is vast in scope, but simple in depth - anywhere a PageCache or PageState object 
44522         was used has been adjusted to use a CachedPage object instead.  The most notable change is
44523         that HistoryItem - which always used to have a PageCache object which may or may not have 
44524         had a PageState - now may or may not have a CachedPage.  This actually simplifies the 
44525         HistoryItem code a bit while making the role of CachedPage much more clear.
44526
44527         * WebCore.exp:
44528         * WebCore.xcodeproj/project.pbxproj:
44529
44530         * history/BackForwardList.cpp:
44531         (WebCore::BackForwardList::addItem):
44532         (WebCore::BackForwardList::setCapacity):
44533         (WebCore::BackForwardList::setPageCacheSize):
44534         (WebCore::BackForwardList::clearPageCache):
44535         (WebCore::BackForwardList::close):
44536
44537         * history/PageCache.cpp: Removed.
44538         * history/PageCache.h: Removed.
44539         * page/PageState.cpp: Removed.
44540         * page/PageState.h: Removed.
44541         * history/CachedPage.cpp: Added.
44542         (WebCore::CachedPage::create):
44543         (WebCore::CachedPage::CachedPage):
44544         (WebCore::CachedPage::~CachedPage):
44545         (WebCore::CachedPage::restore):
44546         (WebCore::CachedPage::clear):
44547         (WebCore::CachedPage::setDocumentLoader):
44548         (WebCore::CachedPage::documentLoader):
44549         (WebCore::CachedPage::setTimeStamp):
44550         (WebCore::CachedPage::setTimeStampToNow):
44551         (WebCore::CachedPage::timeStamp):
44552         * history/CachedPage.h: Added.
44553         (WebCore::CachedPage::document):
44554         (WebCore::CachedPage::mousePressNode):
44555         (WebCore::CachedPage::URL):
44556
44557         * history/HistoryItem.cpp:
44558         (WebCore::HistoryItem::HistoryItem):
44559         (WebCore::HistoryItem::setCachedPage):
44560         (WebCore::HistoryItem::setURL):
44561         (WebCore::HistoryItem::alwaysAttemptToUseCachedPage):
44562         (WebCore::HistoryItem::setAlwaysAttemptToUseCachedPage):
44563         (WebCore::HistoryItem::cachedPage):
44564         (WebCore::cachedPagesPendingRelease):
44565         (WebCore::HistoryItem::releaseCachedPagesOrReschedule):
44566         (WebCore::HistoryItem::releaseAllPendingCachedPages):
44567         (WebCore::HistoryItem::scheduleCachedPageForRelease):
44568         * history/HistoryItem.h:
44569         * history/mac/HistoryItemMac.mm:
44570
44571         * history/HistoryItemTimer.cpp:
44572         (WebCore::HistoryItemTimer::HistoryItemTimer):
44573         (WebCore::HistoryItemTimer::callReleaseCachedPagesOrReschedule):
44574         * history/HistoryItemTimer.h:
44575
44576         * history/mac/PageCacheMac.mm: Removed.
44577         * history/mac/CachedPageMac.mm: Added.
44578         (WebCore::CachedPage::close):
44579         (WebCore::CachedPage::setDocumentView):
44580         (WebCore::CachedPage::documentView):
44581
44582         * loader/DocumentLoader.cpp:
44583         (WebCore::DocumentLoader::DocumentLoader):
44584         (WebCore::DocumentLoader::loadFromCachedPage):
44585         (WebCore::DocumentLoader::setLoadingFromCachedPage):
44586         (WebCore::DocumentLoader::isLoadingFromCachedPage):
44587         * loader/DocumentLoader.h:
44588
44589         * loader/FrameLoader.cpp:
44590         (WebCore::FrameLoader::provisionalLoadStarted):
44591         (WebCore::FrameLoader::commitProvisionalLoad):
44592         (WebCore::FrameLoader::transitionToCommitted):
44593         (WebCore::FrameLoader::open):
44594         (WebCore::FrameLoader::startLoading):
44595         (WebCore::FrameLoader::receivedMainResourceError):
44596         (WebCore::FrameLoader::opened):
44597         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
44598         (WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
44599         (WebCore::FrameLoader::cachePageToHistoryItem):
44600         (WebCore::FrameLoader::createHistoryItem):
44601         (WebCore::FrameLoader::purgePageCache):
44602         (WebCore::FrameLoader::invalidateCurrentItemCachedPage):
44603         (WebCore::FrameLoader::loadItem):
44604         (WebCore::FrameLoader::updateHistoryForStandardLoad):
44605         (WebCore::FrameLoader::updateHistoryForClientRedirect):
44606         (WebCore::FrameLoader::updateHistoryForBackForwardNavigation):
44607         (WebCore::FrameLoader::updateHistoryForReload):
44608         (WebCore::FrameLoader::updateHistoryForInternalLoad):
44609         (WebCore::FrameLoader::updateHistoryForCommit):
44610         * loader/FrameLoader.h:
44611         * loader/FrameLoaderClient.h:
44612
44613         * page/mac/WebCoreFrameBridge.h: Got rid of unused WebCorePageCacheStateKey
44614         * page/mac/WebCoreFrameBridge.mm: Ditto
44615
44616         * platform/graphics/svg/SVGImage.cpp:
44617         * platform/graphics/svg/SVGImageEmptyClients.h: Update to reflect the new names
44618         (WebCore::SVGEmptyFrameLoaderClient::loadProvisionalItemFromCachedPage):
44619         (WebCore::SVGEmptyFrameLoaderClient::invalidateCurrentItemCachedPage):
44620         (WebCore::SVGEmptyFrameLoaderClient::loadedFromCachedPage):
44621         (WebCore::SVGEmptyFrameLoaderClient::clearLoadingFromCachedPage):
44622         (WebCore::SVGEmptyFrameLoaderClient::isLoadingFromCachedPage):
44623         (WebCore::SVGEmptyFrameLoaderClient::setDocumentViewFromCachedPage):
44624         (WebCore::SVGEmptyFrameLoaderClient::saveDocumentViewToCachedPage):
44625
44626 2007-04-10  Antti Koivisto  <antti@apple.com>
44627
44628         Reviewed by Hyatt.
44629
44630         Fix <rdar://5057686> 
44631         Flex box layout example hangs in WebCore::RenderFlexibleBox::allowedChildFlex
44632         
44633         Forcibly distribute remaining pixels if the algorithm is not advancing.
44634
44635         * rendering/RenderFlexibleBox.cpp:
44636         (WebCore::RenderFlexibleBox::layoutHorizontalBox):
44637         (WebCore::RenderFlexibleBox::layoutVerticalBox):
44638
44639 2007-04-11  Mark Rowe  <mrowe@apple.com>
44640
44641         Build fix.
44642
44643         * bridge/mac/WebCoreAXObject.mm:
44644         (-[WebCoreAXObject accessibilityDescription]):
44645
44646 2007-04-10  Patti Hoa <patti@apple.com>
44647
44648         Reviewed by Justin Garcia.
44649
44650         <rdar://problem/5122276> Allow focused frame to fire off notification
44651         Improve accessibility support for Mail WebView embedded Notes.
44652
44653         * bridge/mac/AXObjectCacheMac.mm:
44654         (WebCore::AXObjectCache::postNotification):
44655         The focused document with the selection change should fire the selection changed notification, not the top level document
44656         * bridge/mac/WebCoreAXObject.mm:
44657         (-[WebCoreAXObject accessibilityDescription]):
44658         Allow the name attribute of the html body to be used as the accessibility description
44659
44660 2007-04-09  Geoffrey Garen  <ggaren@apple.com>
44661
44662         Reviewed by Maciej Stachowiak.
44663         
44664         Support for fixing fast/forms/textarea-paste-newline.html.
44665         
44666         Changed clients to use new preference specifying whether a Page should 
44667         allow pasting through the DOM API, instead of a global flag.
44668
44669         Removed old behavior of always allowing DOM paste in debug builds. In 
44670         light of the new preference-based API, that behavior makes no sense anymore. 
44671         Instead, developers who want to test paste inside Safari can set the 
44672         preference for themselves.
44673
44674         * WebCore.exp:
44675         * editing/CommandByName.cpp: Removed crazy hack to keep an identically 
44676         named but invalid copy of the global "pate allowed" flag in this file.
44677         (WebCore::Frame::enabledPaste):
44678         * editing/JSEditor.cpp: Removed "always allow" behavior for debug builds.
44679         (WebCore::JSEditor::queryCommandSupported):
44680         * editing/JSEditor.h:
44681         * page/Settings.cpp:
44682         (WebCore::Settings::setDOMPasteAllowed):
44683         * page/Settings.h:
44684         (WebCore::Settings::isDOMPasteAllowed):
44685         * rendering/RenderTreeAsText.cpp:
44686         (WebCore::externalRepresentation): Removed crazy hack to allow DOM paste
44687         after this function has been called.
44688
44689 2007-04-10  John Sullivan  <sullivan@apple.com>
44690
44691         Reviewed by Tim Hatcher
44692
44693         - fixed <rdar://problem/4859132> Grammar must always be checked in entire-sentence chunks, 
44694           and shouldn't show markers for current sentence
44695
44696         * editing/Editor.h:
44697         add markBadGrammar, now distinct from markMisspellings
44698
44699         * editing/mac/EditorMac.mm:
44700         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
44701         call markMisspellings on one word, and markBadGrammar on entire sentence
44702         (WebCore::markMisspellingsOrBadGrammar):
44703         new static function, extracted from markMisspellings
44704         (WebCore::Editor::markMisspellings):
44705         now calls extracted function
44706         (WebCore::Editor::markBadGrammar):
44707         new method, calls extracted function
44708
44709         * page/Frame.cpp:
44710         (WebCore::Frame::respondToChangedSelection):
44711         update grammar markers for entire new and old sentences
44712
44713 2007-04-09  Anders Carlsson  <andersca@apple.com>
44714
44715         Reviewed by John.
44716
44717         * WebCore.exp:
44718         Add __ZNK7WebCore11FrameLoader10isCompleteEv.
44719         
44720 2007-04-09  Brady Eidson  <beidson@apple.com>
44721
44722         Reviewed by Darin
44723
44724         Fixes <rdar://4921797> and http://bugs.webkit.org/show_bug.cgi?id=12005
44725
44726         The original regression was to claim that more loads were the result of a "user gesture" than really
44727         were.  A lot of the ways a frame load could be kicked off didn't properly set up this flag, and it 
44728         wasn't properly propagated and respected where it should've been.
44729
44730         This patch cleans much of that up.  One loose end is the "treatAsUserGesture" flag which is a stop
44731         gap measure to keep "slow redirects" working to create a new history item.  In the future, we need
44732         to cleanup the meaning and use of "userGesture" and "lockHistory."  This includes integrating them 
44733         in to FrameLoadRequest and being very clear of what their meaning actually is at different stages of
44734         the Frame load process.
44735
44736         * dom/Document.cpp:
44737         (WebCore::Document::processHttpEquiv): Pass only the delay for the redirect
44738
44739         * html/HTMLAnchorElement.cpp:
44740         (WebCore::HTMLAnchorElement::defaultEventHandler): Pass "lockHistory" false, "userGesture" true
44741
44742         * ksvg2/svg/SVGAElement.cpp:
44743         (WebCore::SVGAElement::defaultEventHandler): Pass "lockHistory" false, "userGesture" true
44744
44745         * loader/FrameLoader.cpp:
44746         (WebCore::ScheduledRedirection::ScheduledRedirection): Figure "lockHistory" and "userGesture" from the 
44747           delay here, instead of at 3 other different sites that call this method
44748         (WebCore::FrameLoader::changeLocation): Set userGesture correctly
44749         (WebCore::FrameLoader::urlSelected): Propagate userGesture down
44750         (WebCore::FrameLoader::requestFrame): 
44751         (WebCore::FrameLoader::receivedFirstData):
44752         (WebCore::FrameLoader::scheduleRedirection): Pass only the delay here
44753         (WebCore::FrameLoader::redirectionTimerFired): Set userGesture correctly
44754         (WebCore::FrameLoader::load):
44755         (WebCore::FrameLoader::updateHistoryForInternalLoad): Insteading of asserting we aren't a redirect,
44756           handle the case where we *are* a redirect by updating the previous history item
44757         * loader/FrameLoader.h:
44758
44759 2007-04-09  Anders Carlsson  <andersca@apple.com>
44760
44761         Reviewed by Darin.
44762
44763         <rdar://problem/5120801> 
44764         http://bugs.webkit.org/show_bug.cgi?id=13247
44765         Closing a page during slow cloning causes crash in setJSStatusBarText (13247)
44766
44767         * bindings/js/kjs_window.cpp:
44768         (KJS::Window::put):
44769         Return early if m_frame is null. A closed window only has one property, "closed" 
44770         so no properties should be settable in that case.
44771
44772 2007-04-09  Andrew Wellington  <proton@wiretapped.net>
44773
44774         Reviewed by Justin Garcia.
44775         
44776         Fix for http://bugs.webkit.org/show_bug.cgi?id=12959
44777         "REGRESSION: Edit -> Copy not enabled on standalone images"
44778
44779         * dom/Document.h: Add support for determining if a document is an image
44780         (WebCore::Document::isImageDocument):
44781         * editing/Editor.cpp:
44782         (WebCore::Editor::canCopy): Image documents are copyable
44783         (WebCore::Editor::copy): If copying an image document, call appropriate pasteboard methods
44784         * loader/ImageDocument.h:
44785         (WebCore::ImageDocument::isImageDocument): Override to return true for image documents
44786         * platform/Pasteboard.h: Add new writeImage function to pasteboard
44787         * platform/mac/PasteboardMac.mm:
44788         (WebCore::Pasteboard::writeImage): Add writeImage implementation that takes Node and URL
44789         * platform/qt/PasteboardQt.cpp:
44790         (WebCore::Pasteboard::writeImage): Stub for Qt implementation of pasteboard
44791
44792 2007-04-08  Oliver Hunt  <oliver@apple.com>
44793
44794         rs=Adam.
44795
44796         Add ASSERT(selectedRange) to previous change
44797
44798         * platform/mac/PasteboardMac.mm:
44799         (WebCore::Pasteboard::writeSelection):
44800
44801 2007-04-08  Oliver Hunt  <oliver@apple.com>
44802
44803         rs=Adam.
44804
44805         Fix minor error when writing selection to pasteboard.
44806         This shouldn't have an effect as selectedRange should be the
44807         selected range from source frame, however this is safer.
44808
44809         * platform/mac/PasteboardMac.mm:
44810         (WebCore::Pasteboard::writeSelection):
44811
44812 2007-04-08  David Hyatt  <hyatt@apple.com>
44813
44814         Fix mouseover/out failing layout tests.
44815
44816         Reviewed by aroben
44817
44818         * page/EventHandler.cpp:
44819         (WebCore::EventHandler::handleMouseMoveEvent):
44820         (WebCore::EventHandler::updateMouseEventTargetNode):
44821         (WebCore::EventHandler::dispatchMouseEvent):
44822         * page/EventHandler.h:
44823
44824 2007-04-08  Oliver Hunt  <oliver@apple.com>
44825
44826         Reviewed by Adam.
44827
44828         Fix for <rdar://problem/5113621> REGRESSION: Dragging PDF as image does not give any feedback
44829
44830         If we fail when attempting to create a drag image for a dragged
44831         image, we fall back to the appropriate icon.
44832
44833         * page/DragController.cpp:
44834         (WebCore::DragController::doImageDrag):
44835
44836 2007-04-08  Adam Roben  <aroben@apple.com>
44837
44838         Reviewed by Oliver.
44839
44840         Bestowed the gift of -webkit-dashboard-region upon all platforms, since
44841         there's nothing Mac-specific about it other than the name. This also
44842         allowed me to get rid of FrameViewMac.mm.
44843
44844         Removed a lot of #if PLATFORM(MAC):
44845
44846         * css/CSSComputedStyleDeclaration.cpp:
44847         (WebCore::):
44848         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
44849         * css/CSSPrimitiveValue.cpp:
44850         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
44851         (WebCore::CSSPrimitiveValue::cleanup):
44852         (WebCore::CSSPrimitiveValue::cssText):
44853         * css/CSSPrimitiveValue.h:
44854         (WebCore::CSSPrimitiveValue::getDashboardRegionValue):
44855         (WebCore::CSSPrimitiveValue::):
44856         * css/cssparser.cpp:
44857         (WebCore::CSSParser::parseValue):
44858         (WebCore::CSSParser::parseDashboardRegions):
44859         * css/cssparser.h:
44860         * css/cssstyleselector.cpp:
44861         (WebCore::CSSStyleSelector::applyProperty):
44862         * dom/Document.cpp:
44863         (WebCore::Document::Document):
44864         * dom/Document.h:
44865         * page/Frame.cpp:
44866         (WebCore::Frame::paint):
44867         * page/Frame.h:
44868         * page/FrameView.cpp:
44869         (WebCore::FrameView::layout):
44870         (WebCore::FrameView::updateDashboardRegions): Moved from FrameViewMac.mm.
44871         * page/FrameView.h:
44872         * page/qt/FrameQt.cpp:
44873         (WebCore::Frame::dashboardRegionsChanged): Stubbed out.
44874         * platform/gdk/FrameGdk.cpp:
44875         (WebCore::Frame::dashboardRegionsChanged): Ditto.
44876         * rendering/RenderLayer.cpp:
44877         (WebCore::RenderLayer::scrollToOffset):
44878         (WebCore::RenderLayer::setHasHorizontalScrollbar):
44879         (WebCore::RenderLayer::setHasVerticalScrollbar):
44880         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
44881         * rendering/RenderObject.cpp:
44882         (WebCore::RenderObject::setStyle):
44883
44884         * WebCore.xcodeproj/project.pbxproj: Removed FrameViewMac.mm.
44885         * bridge/mac/FrameViewMac.mm: Removed.
44886
44887 2007-04-08  Mark Rowe  <mrowe@apple.com>
44888
44889         Qt build fix.
44890
44891         * platform/qt/TemporaryLinkStubs.cpp:
44892
44893 2007-04-06  Geoffrey Garen  <ggaren@apple.com>
44894
44895         Reviewed by Beth Dakin.
44896         
44897         Fixed one more case of <rdar://problem/5112273> REGRESSION(TOT): 
44898         Reproducible crash loading an old version of amazon.com as a web archive
44899
44900         * bindings/js/JSXMLHttpRequest.cpp:
44901         (KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction):
44902
44903 2007-04-06  Oliver Hunt  <oliver@apple.com>
44904
44905         Reviewed by Adam.
44906
44907         Fix MouseEvent so it's possible to distinguish between
44908         a MouseMouseEvent with NoButton down, and a move with
44909         LeftButton down.  It would be nice if the DOM allowed 
44910         for NoButton to exist, but it doesn't so this is necessary.
44911
44912         * dom/EventTargetNode.cpp:
44913         (WebCore::EventTargetNode::dispatchMouseEvent):
44914         * dom/MouseEvent.cpp:
44915         (WebCore::MouseEvent::MouseEvent):
44916         (WebCore::MouseEvent::initMouseEvent):
44917         * dom/MouseEvent.h:
44918         (WebCore::MouseEvent::noButton):
44919
44920 2007-04-06  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
44921
44922         Not reviewed - gdk build fix.
44923
44924         * platform/gdk/MouseEventGdk.cpp:
44925
44926 2007-04-06  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
44927
44928         Reviewed by darin.
44929
44930         Coverity fix. Coverity says:
44931         "Event var_deref_op: Variable "info_ptr" tracked as NULL was dereferenced."
44932
44933         * platform/image-decoders/png/pngrutil.c:
44934         (png_handle_gAMA):
44935
44936 2007-04-06  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
44937
44938         Reviewed by darin.
44939
44940         Coverity fix. Coverity says:
44941         "Event var_deref_model: Variable "(this)->clientptr" tracked as NULL was passed to a function that dereferences it."
44942
44943         * platform/image-decoders/gif/GIFImageReader.cpp:
44944         (GIFImageReader::read):
44945
44946 2007-04-06  David Hyatt  <hyatt@apple.com>
44947
44948         Fix more of the layout test failures caused by fixing the slider layout test failure (sigh).  clear()
44949         needs to null out the capturingMouseEventsNode in the case where a mousedown or move while captured
44950         causes a navigation to another page.
44951
44952         * page/EventHandler.cpp:
44953         (WebCore::EventHandler::clear):
44954         (WebCore::EventHandler::handleMouseReleaseEvent):
44955
44956 2007-04-06  David Hyatt  <hyatt@apple.com>
44957
44958         Fix failing slider layout test.  Don't clear the subframe capture unless we really were capturing on a
44959         subframe.
44960
44961         Reviewed by adele, darin
44962
44963         * page/EventHandler.cpp:
44964         (WebCore::EventHandler::handleMouseReleaseEvent):
44965
44966 2007-04-06  Beth Dakin  <bdakin@apple.com>
44967
44968         Reviewed by Geoff and Darin.
44969
44970         Fix for <rdar://problem/4875433> WebView underlines are too thick 
44971         when scaled small
44972
44973         When we have a small scale factor, we should follow the line-
44974         drawing code as if we were printing. Meaning, specifically, that we 
44975         should not round to device pixels and we should antialias.
44976
44977         * platform/graphics/cg/GraphicsContextCG.cpp:
44978         (WebCore::GraphicsContext::drawLineForText):
44979
44980 2007-04-06  Geoffrey Garen  <ggaren@apple.com>
44981
44982         Reviewed by Beth Dakin.
44983         
44984         Fixed <rdar://problem/5112273> REGRESSION(TOT): Reproducible crash loading 
44985         an old version of amazon.com as a web archive
44986         
44987         The problem was JavaScript executing inside a frame with a NULL document.
44988         It's probably a bug that the document was NULL, but we don't want a minor
44989         bug to be a crasher, and we don't want the DOM to depend on the implementation
44990         details of the JS bindings, so I added NULL checks.
44991
44992         * bindings/js/kjs_window.cpp: Call FrameLoader::completeURL instead of
44993         Document::completeURL, since FrameLoader::completeURL is safe against a
44994         NULL document.
44995         (KJS::Window::put):
44996         (KJS::WindowFunc::callAsFunction):
44997         (KJS::Location::put):
44998         (KJS::LocationFunc::callAsFunction):
44999
45000 2007-04-06  David Hyatt  <hyatt@apple.com>
45001
45002         Fix for bug 13274.  Rework mouse events so that subframe capturing works again.  Make sure
45003         everything just comes down through the top FrameView even when capturing is in effect.  Update
45004         scrollbar handling logic so that scrollbars receive events correctly while capturing is in
45005         effect.  Eliminate the notion of widget capture.  Fix mouse moves so that they only fire
45006         on the innermost hit frame.
45007
45008         Reviewed by olliej
45009
45010         * page/EventHandler.cpp:
45011         (WebCore::EventHandler::handleMouseDraggedEvent):
45012         (WebCore::subframeForTargetNode):
45013         (WebCore::EventHandler::handleMousePressEvent):
45014         (WebCore::EventHandler::handleMouseMoveEvent):
45015         (WebCore::EventHandler::handleMouseReleaseEvent):
45016         * page/EventHandler.h:
45017         * platform/PopupMenu.h:
45018         (WebCore::PopupMenu::scrollbarCapturingMouse):
45019         (WebCore::PopupMenu::setScrollbarCapturingMouse):
45020         * platform/ScrollBar.h:
45021         (WebCore::Scrollbar::handleMouseReleaseEvent):
45022         * platform/Widget.h:
45023         (WebCore::Widget::geometryChanged):
45024
45025 2007-04-06  Justin Garcia  <justin.garcia@apple.com>
45026
45027         Reviewed by john
45028
45029         <rdar://problem/5115601> 
45030         REGRESSION: Crash deleting a selection that starts in an editable table cell
45031         
45032         The selection starts at the start of an editable 
45033         root that's embedded in a non-editable ToDo (table).  
45034         Removing the selection removes all editable 
45035         VisiblePositions from the root.  Then, the creation 
45036         of mergeDestination fails, and using it causes a crash.
45037
45038         * editing/DeleteSelectionCommand.cpp:
45039         (WebCore::DeleteSelectionCommand::mergeParagraphs):
45040         Nil-check mergeDestination to avoid crashing and
45041         also insert a break in that case at m_upstreamStart, 
45042         so that we can create a valid mergeDestination and
45043         perform the merge.
45044         
45045         
45046 2007-04-06  Mitz Pettel  <mitz@webkit.org>
45047
45048         Reviewed by Oliver.
45049
45050         Eliminate PlatformMouseEvent::currentEvent.
45051
45052         No test possible (no change to functionality).
45053
45054         * page/EventHandler.cpp:
45055         (WebCore::EventHandler::handleDrag):
45056         * platform/PlatformMouseEvent.h:
45057         * platform/gdk/TemporaryLinkStubs.cpp:
45058         * platform/mac/PlatformMouseEventMac.mm:
45059         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
45060         * platform/qt/PlatformMouseEventQt.cpp:
45061         * platform/win/TemporaryLinkStubs.cpp:
45062
45063 2007-04-05  Oliver Hunt  <oliver@apple.com>
45064
45065         Reviewed by Maciej.
45066
45067         Fix for rdar://problem/4849948 -- JSCanvasRenderingContext2D::drawImage
45068         crashes when given invalid arguments.
45069
45070         JSCanvasRenderingContext2D frequently casts from JSValue* to JSObject*
45071         and then checks isObject *after* the cast.  JSObject::isObject is unsafe 
45072         if applied to a JSImmediate value (null, undefined, etc).  This patch 
45073         corrects the logic in a number of places by performing the isObject check
45074         before casting to JSObject.
45075
45076         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
45077         (WebCore::JSCanvasRenderingContext2D::drawImage):
45078         (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
45079         (WebCore::JSCanvasRenderingContext2D::createPattern):
45080
45081 2007-04-05  Adele Peterson  <adele@apple.com>
45082
45083         Reviewed by Oliver.
45084
45085         Fix for <rdar://problem/4965597> REGRESSION: mouseup doesn't fire for slider (causes it to always default to max)
45086
45087         Test: fast/forms/slider-mouse-events.html
45088
45089         * page/EventHandler.cpp: (WebCore::EventHandler::dispatchMouseEvent):
45090         Since the actual target node of the event can't be a shadow node, set the target node to the capturing node before adjusting it.
45091
45092 2007-04-05  Kevin McCullough  <kmccullough@apple.com>
45093
45094         Reviewed by Darin.
45095
45096         - Added reportLocalLoadFailed to FrameLoader to send an error to the console when
45097         calls to canLoad fail. 
45098
45099         * loader/Cache.cpp:
45100         (WebCore::Cache::requestResource):
45101         * loader/FrameLoader.cpp:
45102         (WebCore::FrameLoader::loadSubframe):
45103         (WebCore::FrameLoader::loadPlugin):
45104         (WebCore::FrameLoader::load):
45105         (WebCore::FrameLoader::reportLocalLoadFailed):
45106         * loader/FrameLoader.h:
45107         * loader/SubresourceLoader.cpp:
45108         (WebCore::SubresourceLoader::create):
45109
45110 2007-04-05  Adele Peterson  <adele@apple.com>
45111
45112         Reviewed by Maciej.
45113
45114         Add text-align: -webkit-auto for form controls.  Buttons already override this property to center their text.
45115
45116         * css/html4.css:
45117
45118 2007-04-05  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
45119
45120         Reviewed by rwlbuis.
45121
45122         Coverity fix. Coverity says:
45123         "Event var_deref_model: Variable "page" tracked as NULL was passed to a function that dereferences it."
45124
45125         * platform/Font.cpp:
45126         (WebCore::Font::glyphDataForCharacter):
45127
45128 2007-04-05  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
45129
45130         Reviewed by darin.
45131
45132         Coverity fix. Coverity says:
45133         "Event var_deref_model: Variable "unicode" tracked as NULL was passed to a 
45134         function that dereferences it."
45135
45136         * platform/DeprecatedString.cpp:
45137         (WebCore::DeprecatedString::DeprecatedString):
45138
45139 2007-04-05  Adele Peterson  <adele@apple.com>
45140
45141         Reviewed by Hyatt.
45142
45143         Fix for <rdar://problem/5113593> REGRESSION: Search fields in RSS pages don't show ibeam cursor
45144
45145         * css/html4.css: Set the cursor values explicitly for input, textarea (to auto), & select (to default).
45146
45147 2007-04-05  David Hyatt  <hyatt@apple.com>
45148
45149         Fix for <rdar://problem/5078866> tables should only reset text-align
45150         in quirks mode.
45151
45152         Reviewed by beth
45153
45154         * css/html4.css:
45155         * css/quirks.css:
45156
45157 2007-04-05  Adele Peterson  <adele@apple.com>
45158
45159         Fixing typo that's crashing.
45160
45161         * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::defaultEventHandler):
45162           Use evt instead of null variable k.
45163
45164 2007-04-05  Adele Peterson  <adele@apple.com>
45165
45166         Reviewed by Hyatt.
45167
45168         Fix for <rdar://problem/5021500> Cursor should stay as pointer when slider is being dragged
45169
45170         Don't set the selection ibeam cursor when there's a node that's capturing mouse events.
45171
45172         * page/EventHandler.cpp:
45173         (WebCore::selectCursor):
45174         (WebCore::EventHandler::handleMouseMoveEvent):
45175
45176 2007-04-05  Geoffrey Garen  <ggaren@apple.com>
45177
45178         Reviewed by Beth Dakin.
45179
45180         More clean-up while fixing <rdar://problem/5112273> REGRESSION(TOT): 
45181         Reproducible crash loading an old version of amazon.com as a web archive
45182         
45183         Layout tests pass.
45184         
45185         Removed more superfluous document NULL checks. (Node::document() never 
45186         returns NULL, and it asserts as much.)
45187         
45188         Merged some duplicate editing code into a static inline function.
45189         
45190         * page/mac/WebCoreFrameBridge.mm:
45191         (updateRenderingForBindings): Removed superfluous static_cast.
45192
45193 2007-04-05  Adele Peterson  <adele@apple.com>
45194
45195         Reviewed by Darin.
45196
45197         A little cleanup from my last checkin.  Always check if an Event is really a MouseEvent or a KeyboardEvent
45198         before casting it.
45199
45200         * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::defaultEventHandler):
45201         * html/HTMLSelectElement.cpp:
45202         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
45203         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
45204         * html/HTMLTextFieldInnerElement.cpp:
45205         (WebCore::HTMLSearchFieldResultsButtonElement::defaultEventHandler):
45206         (WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
45207         * ksvg2/svg/SVGAElement.cpp: (WebCore::SVGAElement::defaultEventHandler):
45208         * page/ContextMenuController.cpp: (WebCore::ContextMenuController::handleContextMenuEvent):
45209         * rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::userResize):
45210         * rendering/RenderSlider.cpp: (WebCore::HTMLSliderThumbElement::defaultEventHandler):
45211
45212 2007-04-05  Geoffrey Garen  <ggaren@apple.com>
45213
45214         Reviewed by Beth Dakin.
45215         
45216         Some clean-up while fixing <rdar://problem/5112273> REGRESSION(TOT): 
45217         Reproducible crash loading an old version of amazon.com as a web archive
45218         
45219         Removed superfluous document NULL checks. (Node::document() never returns
45220         NULL, and it asserts as much.)
45221         
45222         Removed duplicate implementation of displayString.
45223         
45224         Layout tests pass.
45225
45226         * bindings/objc/DOMInternal.h:
45227         * bindings/objc/DOMInternal.mm:
45228         * html/HTMLGenericFormElement.cpp:
45229         (WebCore::HTMLGenericFormElement::supportsFocus):
45230         * html/HTMLPlugInElement.cpp:
45231         (WebCore::HTMLPlugInElement::createNPObject):
45232         * platform/ContextMenu.cpp:
45233         (WebCore::ContextMenu::checkOrEnableIfNeeded):
45234         * rendering/HitTestResult.cpp:
45235         (WebCore::displayString):
45236         * rendering/HitTestResult.h:
45237         * rendering/RenderLayer.cpp:
45238         (WebCore::RenderLayer::updateHoverActiveState):
45239
45240 === Safari-5522.6 ===
45241
45242 2007-04-05  Oliver Hunt  <oliver@apple.com>
45243
45244         Reviewed by Adam.
45245
45246         Fix rdar://problem/5030934 -- landscape PDFs embedded as an image are cut off
45247         also fixes scaling of pdf images
45248
45249         PDFDocumentImage was not accounting for page rotation in a number of places
45250
45251         * platform/graphics/cg/PDFDocumentImage.cpp:
45252         (WebCore::PDFDocumentImage::size):
45253           we need to account for rotation of the pdf image effecting our bounds
45254         (WebCore::PDFDocumentImage::draw):
45255           When compensating for flipped coords we need to use the correct rect for the 
45256           coordinate space.  We can't pass size() to CGContextDrawPDFDocument as it
45257           returns the rotated bounds now -- this is also save the old 
45258           FloatSize -> IntSize -> FloatSize conversions.
45259           
45260 2007-04-04  Alexey Proskuryakov  <ap@webkit.org>
45261
45262         Reviewed by Darin.
45263
45264         http://bugs.webkit.org/show_bug.cgi?id=13278
45265         REGRESSION: cannot change SELECT option
45266
45267         Test: fast/forms/option-change-single-selected.html
45268
45269         * html/HTMLSelectElement.cpp:
45270         (WebCore::HTMLSelectElement::setSelectedIndex): If multiple selection is not allowed, 
45271         be sure to deselect the previous option.
45272
45273 2007-04-04  Adele Peterson  <adele@apple.com>
45274
45275         Reviewed by Oliver.
45276
45277         Fix for <rdar://5105009> Prepare for fix to send mousedown and mouseup (but not click) events when right-clicking
45278
45279         * page/EventHandler.cpp: Don't ever send click events for right-clicks.
45280         (WebCore::EventHandler::handleMouseDoubleClickEvent):
45281         (WebCore::EventHandler::handleMouseReleaseEvent):
45282         
45283         Check that the mousedown and mouseup are not with the right button before performing default behavior.
45284         * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::defaultEventHandler):
45285         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
45286         * html/HTMLSelectElement.cpp:
45287         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
45288         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
45289         * html/HTMLTextFieldInnerElement.cpp:
45290         (WebCore::HTMLSearchFieldResultsButtonElement::defaultEventHandler):
45291         (WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
45292         * ksvg2/svg/SVGAElement.cpp:(WebCore::SVGAElement::defaultEventHandler):
45293         * rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::userResize):
45294         * rendering/RenderSlider.cpp: (WebCore::HTMLSliderThumbElement::defaultEventHandler):
45295
45296 2007-04-03  Justin Garcia  <justin.garcia@apple.com>
45297
45298         Reviewed by darin
45299         
45300         <rdar://problem/5026848> Can cut/delete ToDo subunits
45301         
45302         We were removing non-editable content during a delete.
45303
45304         * editing/DeleteSelectionCommand.cpp: 
45305         (WebCore::DeleteSelectionCommand::initializePositionData): 
45306         Set m_startRoot and m_endRoot.
45307         (WebCore::DeleteSelectionCommand::removeNode): If a node
45308         is not inside both the start and end roots, remove it only
45309         if it is in editable content.
45310         * editing/DeleteSelectionCommand.h: Added m_startRoot and 
45311         m_endRoot, the editable roots that contain the start and end
45312         of the selection, respectively.  We consult these every
45313         time we remove a node, and don't want to recompute them 
45314         on every call to removeNode().
45315
45316 2007-04-03  David Hyatt  <hyatt@apple.com>
45317
45318         Fix for <rdar://problem/5108896>, make sure the assert for setEncodedSize
45319         deals with the error case.
45320
45321         Reviewed by andersca
45322
45323         * loader/CachedResource.cpp:
45324         (WebCore::CachedResource::setEncodedSize):
45325
45326 2007-04-03  Anders Carlsson  <andersca@apple.com>
45327
45328         Reviewed by Dave Hyatt.
45329
45330         * loader/ImageDocument.cpp:
45331         Don't call error() in stopParsing.
45332
45333 2007-04-03  Justin Garcia  <justin.garcia@apple.com>
45334
45335         Reviewed by darin
45336         
45337         <rdar://problem/5107422> 
45338         TOT REGRESSION: Delete key fails to delete text, and cursor disappears in Mail.app
45339         <rdar://problem/5107413> 
45340         TOT REGRESSION: Crash deleting text in email (infinite recursion in shouldInsertNode)
45341
45342         * editing/CompositeEditCommand.cpp:
45343         (WebCore::CompositeEditCommand::moveParagraphs):
45344         Back out the call to shouldInsert until we
45345         add WebViewInsertActionMoved, because Mail returns
45346         NO from shouldInsert for WebViewInsertActionPasted
45347         to override our Paste operation.
45348
45349 2007-04-03  Anders Carlsson  <andersca@apple.com>
45350
45351         Reviewed by Mitz.
45352
45353         Make window.innerWidth/innerHeight include the size of any present scrollbar to match Firefox.
45354         
45355         Make document.body.clientWidth/clientHeight return the width/height of the visible content when in
45356         quirks mode to match WinIE.
45357         
45358         * bindings/js/kjs_window.cpp:
45359         (KJS::Window::getValueProperty):
45360         Return the width and height of the scroll view, not the visible width and height.
45361         
45362         * dom/Element.cpp:
45363         (WebCore::Element::clientWidth):        
45364         (WebCore::Element::clientHeight):
45365         Return the visible size if the element is the body element and we're in quirks mode.
45366
45367 2007-04-03  Adele Peterson  <adele@apple.com>
45368
45369         Reviewed by Darin.
45370
45371         Updated fix for <rdar://problem/5107095> REGRESSION: disabled text color calculations are slowing down launchtime measurements
45372
45373         * platform/graphics/Color.cpp: Moved optimization for lightening black and darkening white into the Color class.
45374         (WebCore::Color::light):
45375         (WebCore::Color::dark):
45376         * rendering/RenderTextControl.cpp: (WebCore::disabledTextColor): Skip the difference calculation for black text, which will always be lightened.
45377
45378 2007-04-03  Anders Carlsson  <andersca@apple.com>
45379
45380         Reviewed by Tim.
45381
45382         <rdar://problem/4649516> 
45383         Turn off slow script dialog or crank up time that makes it come up
45384         
45385         * bindings/js/kjs_binding.cpp:
45386         (KJS::ScriptInterpreter::ScriptInterpreter):
45387         Increase the timeout to 10 seconds to match Firefox.
45388
45389 2007-04-03  Mitz Pettel  <mitz@webkit.org>
45390
45391         Reviewed by Darin.
45392
45393         - fix http://bugs.webkit.org/show_bug.cgi?id=13251
45394           editing/style/fontsize-1.html fails intermittently when run multiple times on Intel, generates incorrect DOM
45395
45396         Covered by existing editing tests.
45397
45398         * css/CSSPrimitiveValue.cpp:
45399         (WebCore::CSSPrimitiveValue::getFloatValue): Added ASSERTs that the requested conversion
45400         is from a scalar type to a scalar type. The intermittent failures in the test were
45401         the result of trying to convert an identifier type to a scalar type.
45402         * editing/ApplyStyleCommand.cpp:
45403         (WebCore::StyleChange::checkForLegacyHTMLStyleChange): Added a check that the
45404         font-size property value is an absolute length. If it is not (such as in the case
45405         of relative units or keywords like "x-large"), then no corresponding 'size' attribute
45406         will be generated for legacy HTML.
45407
45408 2007-04-03  Mitz Pettel  <mitz@webkit.org>
45409
45410         Reviewed by Darin.
45411
45412         - fix http://bugs.webkit.org/show_bug.cgi?id=13218
45413           <rdar://problem/5095977>
45414           Reproducible crash after call to window.close()
45415
45416         * manual-tests/stale-currentEvent.html: Added.
45417         * page/EventHandler.cpp:
45418         (WebCore::EventHandler::hoverTimerFired): Instead of faking a mouse event,
45419         just hit-test the last mouse event coordinates and update for hover state
45420         changes. This eliminates the use of currentEvent, which can be a non-mouse
45421         event or even a stale event.
45422
45423 2007-04-02  Adele Peterson  <adele@apple.com>
45424
45425         Reviewed by Maciej.
45426
45427         Fix for <rdar://problem/5107095> REGRESSION: disabled text color calculations are slowing down launchtime measurements
45428
45429         Hardcode disabled text colors for the most common cases- black and white.
45430
45431         * rendering/RenderTextControl.cpp: (WebCore::disabledTextColor):
45432
45433 2007-04-02  David Hyatt  <hyatt@apple.com>
45434
45435         Fix for <rdar://problem/5105784>, assertion failure in cache.  Encoded sizes were being set to
45436         garbage by accident because of a mismatch between derived class and base class constructors.  This
45437         patch cleans all of this up and gets rid of expiration date as a concept separate from the response.
45438
45439         Reviewed by anders
45440
45441         * dom/Document.cpp:
45442         (WebCore::Document::processHttpEquiv):
45443         * html/HTMLImageLoader.cpp:
45444         (WebCore::HTMLImageLoader::updateFromElement):
45445         * loader/Cache.cpp:
45446         (WebCore::createResource):
45447         (WebCore::Cache::requestResource):
45448         * loader/Cache.h:
45449         * loader/CachedCSSStyleSheet.cpp:
45450         (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
45451         * loader/CachedCSSStyleSheet.h:
45452         * loader/CachedImage.cpp:
45453         (WebCore::CachedImage::CachedImage):
45454         * loader/CachedImage.h:
45455         * loader/CachedResource.cpp:
45456         (WebCore::CachedResource::CachedResource):
45457         (WebCore::CachedResource::finish):
45458         * loader/CachedResource.h:
45459         * loader/CachedScript.cpp:
45460         (WebCore::CachedScript::CachedScript):
45461         * loader/CachedScript.h:
45462         * loader/CachedXBLDocument.cpp:
45463         (WebCore::CachedXBLDocument::CachedXBLDocument):
45464         * loader/CachedXBLDocument.h:
45465         * loader/CachedXSLStyleSheet.cpp:
45466         (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
45467         * loader/CachedXSLStyleSheet.h:
45468         * loader/DocLoader.cpp:
45469         (WebCore::DocLoader::DocLoader):
45470         (WebCore::DocLoader::requestResource):
45471         * loader/DocLoader.h:
45472
45473 2007-04-03  Antti Koivisto  <antti@apple.com>
45474
45475         Reviewed by Hyatt.
45476
45477         Render tree memory savings, part 3
45478         
45479         These changes shrink all RenderBlocks by additional 28 bytes. Together with parts 1 and 2
45480         RenderBlock goes from 172 bytes to 128 bytes, a saving of 26%.
45481         
45482         - Pack bitfields together in RenderFlow
45483         - Move top/bottom min/max margin values to a struct that is only allocated in case these
45484           variables have non default values. Usually this is <5% of all blocks. 
45485         - Move rarely used column variables to hash
45486
45487         * rendering/RenderBlock.cpp:
45488         (WebCore::ColumnInfo::ColumnInfo):
45489         (WebCore::RenderBlock::RenderBlock):
45490         (WebCore::RenderBlock::~RenderBlock):
45491         (WebCore::RenderBlock::layoutBlock):
45492         (WebCore::RenderBlock::collapseMargins):
45493         (WebCore::RenderBlock::clearFloatsIfNeeded):
45494         (WebCore::RenderBlock::setCollapsedBottomMargin):
45495         (WebCore::RenderBlock::layoutBlockChildren):
45496         (WebCore::RenderBlock::paintColumns):
45497         (WebCore::RenderBlock::paintObject):
45498         (WebCore::RenderBlock::fillSelectionGaps):
45499         (WebCore::RenderBlock::lowestPosition):
45500         (WebCore::RenderBlock::rightmostPosition):
45501         (WebCore::RenderBlock::leftmostPosition):
45502         (WebCore::RenderBlock::nodeAtPoint):
45503         (WebCore::RenderBlock::hitTestColumns):
45504         (WebCore::RenderBlock::positionForCoordinates):
45505         (WebCore::RenderBlock::availableWidth):
45506         (WebCore::RenderBlock::calcColumnWidth):
45507         (WebCore::RenderBlock::setDesiredColumnCountAndWidth):
45508         (WebCore::RenderBlock::desiredColumnWidth):
45509         (WebCore::RenderBlock::desiredColumnCount):
45510         (WebCore::RenderBlock::columnRects):
45511         (WebCore::RenderBlock::layoutColumns):
45512         (WebCore::RenderBlock::adjustPointToColumnContents):
45513         (WebCore::RenderBlock::adjustRectForColumns):
45514         (WebCore::RenderBlock::setMaxTopMargins):
45515         (WebCore::RenderBlock::setMaxBottomMargins):
45516         * rendering/RenderBlock.h:
45517         (WebCore::RenderBlock::maxTopMargin):
45518         (WebCore::RenderBlock::maxBottomMargin):
45519         (WebCore::RenderBlock::maxTopPosMargin):
45520         (WebCore::RenderBlock::maxTopNegMargin):
45521         (WebCore::RenderBlock::maxBottomPosMargin):
45522         (WebCore::RenderBlock::maxBottomNegMargin):
45523         (WebCore::RenderBlock::initMaxMarginValues):
45524         (WebCore::RenderBlock::MaxMargin::MaxMargin):
45525         (WebCore::RenderBlock::MaxMargin::topPosDefault):
45526         (WebCore::RenderBlock::MaxMargin::topNegDefault):
45527         (WebCore::RenderBlock::MaxMargin::bottomPosDefault):
45528         (WebCore::RenderBlock::MaxMargin::bottomNegDefault):
45529         * rendering/RenderFlexibleBox.cpp:
45530         (WebCore::RenderFlexibleBox::layoutBlock):
45531         * rendering/RenderFlow.h:
45532         (WebCore::RenderFlow::RenderFlow):
45533         (WebCore::RenderFlow::hasColumns):
45534         * rendering/RenderInline.cpp:
45535         (WebCore::RenderInline::RenderInline):
45536         * rendering/RenderInline.h:
45537
45538 2007-04-03  Antti Koivisto  <antti@apple.com>
45539
45540         Reviewed by Hyatt.
45541
45542         Fix asserts, these may also be called for rel positioned elements
45543
45544         * rendering/RenderBox.cpp:
45545         (WebCore::RenderBox::setStaticX):
45546         (WebCore::RenderBox::setStaticY):
45547
45548 2007-04-02  David Hyatt  <hyatt@apple.com>
45549
45550         Throw in an assert to try to track down a problem where an image is being set to a smaller encoded
45551         size.
45552
45553         * loader/CachedResource.cpp:
45554         (WebCore::CachedResource::setEncodedSize):
45555
45556 2007-04-02  Ada Chan  <adachan@apple.com>
45557
45558         Reviewed by Adele.
45559
45560         <rdar://5105331> Missing null check in Editor::execCommand
45561         Added null check.
45562
45563         * editing/Editor.cpp:
45564         (WebCore::Editor::execCommand):
45565
45566 2007-04-02  Justin Garcia  <justin.garcia@apple.com>
45567
45568         Reviewed by darin
45569
45570         <rdar://problem/5058163> 
45571         Hitting return inserts a new line between two To Dos, but caret is position after second ToDo
45572
45573         * editing/InsertParagraphSeparatorCommand.cpp:
45574         (WebCore::InsertParagraphSeparatorCommand::doApply):
45575         Removed refPos, it was unused.
45576         Don't assume that upstream() moves to a different
45577         node.  This assumption caused the line break to
45578         be inserted *after* the caret and a bad position
45579         to be set (added a testcase).
45580         Use isStartOfParagraph instead of checking
45581         for the existence of a br because the line might 
45582         be broken by a newline character in text that 
45583         preserves newlines.  Paragraphs that are created 
45584         in other ways, like with blocks, are handled 
45585         above (added a testcase).
45586
45587  2007-04-02  David Harrison  <harrison@apple.com>
45588
45589         Reviewed by Darin.
45590
45591         <rdar://problem/4906488> text attributes are not working for frame based web page
45592
45593         Attribute handling now treats each WebArea as its own world, rather than sometimes
45594         referring back up to the top WebArea. e.g. getting/setting the selection now
45595         operates on the WebArea containing the WebCoreAXObject that is being messaged (self).
45596         The methods that sit above this and are able to go into arbitrary WebAreas
45597         are accessibilityFocusedUIElement and doAXTextMarkerForPosition, allowing VoiceOver
45598         to navigate between frames.
45599         
45600         * bridge/mac/WebCoreAXObject.mm:
45601         (-[WebCoreAXObject topRenderer]):
45602         (-[WebCoreAXObject frameView]):
45603         (-[WebCoreAXObject topFrameView]):
45604         Removed topDocument, renamed topView to topFrameView, added frameView.
45605         
45606         (-[WebCoreAXObject accessibilityAttributeValue:]):
45607         AXSelectedTextMarkerRange, AXStartTextMarker, and AXEndTextMarker now use
45608         self's WebArea, rather than the top WebArea.
45609         
45610         (-[WebCoreAXObject doAXTextMarkerRangeForLine:]):
45611         Use self's WebArea, rather than the top WebArea.
45612
45613         (-[WebCoreAXObject doAXTextMarkerForPosition:]):
45614         Use renamed methods for accessing top WebArea.
45615          
45616         (-[WebCoreAXObject doAXBoundsForTextMarkerRange:]):
45617         Use renamed methods for accessing self's WebArea.
45618
45619         (AXAttributeStringSetColor):
45620         (AXAttributeStringSetNumber):
45621         (AXAttributeStringSetFont):
45622         (AXAttributeStringSetStyle):
45623         (AXAttributeStringSetElement):
45624         (-[WebCoreAXObject rendererForView:]):
45625         Clean up uses of nil and NULL.
45626         
45627         (-[WebCoreAXObject accessibilityFocusedUIElement]):
45628         Find the focused node on the whole page. If there is no focused node,
45629         return the WebArea for the focused document.
45630         
45631         (-[WebCoreAXObject doSetAXSelectedTextMarkerRange:]):
45632         Use self's WebArea, rather than the top WebArea.
45633
45634 2007-04-02  Antti Koivisto  <antti@apple.com>
45635
45636         Fix build. This one was not supposed to be checked in.
45637
45638         * rendering/RenderFlexibleBox.cpp:
45639         (WebCore::RenderFlexibleBox::layoutBlock):
45640
45641 2007-03-30  Antti Koivisto  <antti@apple.com>
45642
45643         Reviewed by Hyatt.
45644
45645         Render tree memory savings, part 2
45646         
45647         - Move staticX and staticY variables to RenderLayer since they are only
45648           applicable to positioned objects
45649         - Move very rarely used overrideSize variable to hash
45650         
45651         These changes shrink all box types by 12 bytes
45652
45653         * rendering/RenderBox.cpp:
45654         (WebCore::RenderBox::RenderBox):
45655         (WebCore::RenderBox::destroy):
45656         (WebCore::RenderBox::overrideSize):
45657         (WebCore::RenderBox::setOverrideSize):
45658         (WebCore::RenderBox::overrideWidth):
45659         (WebCore::RenderBox::overrideHeight):
45660         (WebCore::RenderBox::position):
45661         (WebCore::RenderBox::calcWidth):
45662         (WebCore::RenderBox::calcHeight):
45663         (WebCore::RenderBox::staticX):
45664         (WebCore::RenderBox::staticY):
45665         (WebCore::RenderBox::setStaticX):
45666         (WebCore::RenderBox::setStaticY):
45667         (WebCore::RenderBox::calcAbsoluteHorizontal):
45668         (WebCore::RenderBox::calcAbsoluteVertical):
45669         (WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
45670         (WebCore::RenderBox::calcAbsoluteVerticalReplaced):
45671         * rendering/RenderBox.h:
45672         * rendering/RenderLayer.cpp:
45673         (WebCore::RenderLayer::RenderLayer):
45674         * rendering/RenderLayer.h:
45675         (WebCore::RenderLayer::staticX):
45676         (WebCore::RenderLayer::staticY):
45677         (WebCore::RenderLayer::setStaticX):
45678         (WebCore::RenderLayer::setStaticY):
45679         * rendering/RenderObject.cpp:
45680         (WebCore::RenderObject::RenderObject):
45681         * rendering/RenderObject.h:
45682         (WebCore::):
45683         (WebCore::RenderObject::hasOverrideSize):
45684         (WebCore::RenderObject::setHasOverrideSize):
45685         * rendering/RenderWidget.cpp:
45686         (WebCore::RenderWidget::destroy):
45687
45688 2007-03-31  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
45689
45690         Not reviewed - gdk build fix.
45691
45692         * platform/gdk/TemporaryLinkStubs.cpp:
45693         (Font::selectionRectForComplexText):
45694         (Font::drawComplexText):
45695
45696 2007-03-31  Alexey Proskuryakov  <ap@webkit.org>
45697
45698         Reviewed by Darin.
45699
45700         http://bugs.webkit.org/show_bug.cgi?id=12778
45701         REGRESSION: Nightly won't load Curl plugin for full page use
45702
45703         * dom/DOMImplementation.cpp:
45704         (WebCore::DOMImplementation::createDocument): Re-order cases to give more priority to plugins.
45705         This also fixes Adobe SVG Viewer and any plugins that register XML MIME types.
45706         Added a case for XHTML to avoid enumerating plugins.
45707
45708 2007-03-31  David Hyatt  <hyatt@apple.com>
45709
45710         Fix for bug 13234, layout of selected justified text is broken.  Rework TextRuns to avoid having
45711         from/to members.  Let those be passed in only by the functions that need them (drawing and selection rect).
45712
45713         Reviewed by mitz
45714
45715         fast/text/justified-selection-at-edge.html
45716
45717         * platform/Font.cpp:
45718         (WebCore::WidthIterator::WidthIterator):
45719         (WebCore::WidthIterator::advance):
45720         (WebCore::Font::canUseGlyphCache):
45721         (WebCore::Font::drawSimpleText):
45722         (WebCore::Font::drawText):
45723         (WebCore::Font::floatWidth):
45724         (WebCore::Font::floatWidthForSimpleText):
45725         (WebCore::Font::selectionRectForText):
45726         (WebCore::Font::selectionRectForSimpleText):
45727         (WebCore::Font::offsetForPositionForSimpleText):
45728         * platform/Font.h:
45729         (WebCore::TextRun::m_len):
45730         * platform/graphics/GraphicsContext.cpp:
45731         (WebCore::GraphicsContext::drawText):
45732         (WebCore::GraphicsContext::drawHighlightForText):
45733         * platform/graphics/GraphicsContext.h:
45734         * platform/mac/FontMac.mm:
45735         (WebCore::addDirectionalOverride):
45736         (WebCore::overrideLayoutOperation):
45737         (WebCore::ATSULayoutParameters::initialize):
45738         (WebCore::Font::selectionRectForComplexText):
45739         (WebCore::Font::drawComplexText):
45740         (WebCore::Font::floatWidthForComplexText):
45741         (WebCore::Font::offsetForPositionForComplexText):
45742         * platform/qt/FontQt.cpp:
45743         (WebCore::Font::drawComplexText):
45744         (WebCore::Font::floatWidthForComplexText):
45745         * platform/qt/TemporaryLinkStubs.cpp:
45746         (Font::selectionRectForComplexText):
45747         * rendering/EllipsisBox.cpp:
45748         (WebCore::EllipsisBox::paint):
45749         * rendering/InlineTextBox.cpp:
45750         (WebCore::InlineTextBox::selectionRect):
45751         (WebCore::InlineTextBox::paint):
45752         (WebCore::InlineTextBox::paintSelection):
45753         (WebCore::InlineTextBox::paintMarkedTextBackground):
45754         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
45755         (WebCore::InlineTextBox::paintTextMatchMarker):
45756         (WebCore::InlineTextBox::offsetForPosition):
45757         (WebCore::InlineTextBox::positionForOffset):
45758         * rendering/RenderListMarker.cpp:
45759         (WebCore::RenderListMarker::paint):
45760         (WebCore::RenderListMarker::calcMinMaxWidth):
45761         (WebCore::RenderListMarker::getRelativeMarkerRect):
45762         * rendering/RenderMenuList.cpp:
45763         (WebCore::RenderMenuList::updateOptionsWidth):
45764         * rendering/RenderText.cpp:
45765         (WebCore::RenderText::widthFromCache):
45766         (WebCore::RenderText::width):
45767
45768 2007-03-31  Mitz Pettel  <mitz@webkit.org>
45769
45770         Reviewed by Darin.
45771
45772         - fix http://bugs.webkit.org/show_bug.cgi?id=13243
45773               <rdar://problem/5103226>
45774           REGRESSION (r20506): Repro crash/assert when using scroll wheel on a list box taller than its contents
45775
45776         * platform/ScrollBar.cpp:
45777         (WebCore::Scrollbar::setValue): Cleaned up a little.
45778         (WebCore::Scrollbar::scroll): Changed to apply the minimum and maximum constraints
45779         in the right order, and cleaned up a little.
45780
45781 2007-03-31  Mitz Pettel  <mitz@webkit.org>
45782
45783         Reviewed by Darin.
45784
45785         - fix http://bugs.webkit.org/show_bug.cgi?id=13242
45786           REGRESSION: Repro crash when specifying the content property for an image
45787
45788         Test: fast/images/text-content-crash.html
45789
45790         * html/HTMLImageElement.cpp:
45791         (WebCore::HTMLImageElement::parseMappedAttribute): Added a check that the
45792         renderer is an image.
45793         (WebCore::HTMLImageElement::attach): Ditto.
45794
45795 2007-03-31  Mark Rowe  <mrowe@apple.com>
45796
45797         Reviewed by Darin.
45798
45799         A more correct fix for http://bugs.webkit.org/show_bug.cgi?id=13129
45800         Bug 13129: Democracy Player dies in NSException from WebScriptObject on startup
45801
45802         The previous attempt at a fix in r20343 attempted to conditionally expose the 'count'
45803         method.  It did not work which resulted in 'count' always being hidden.  This change
45804         disables -[WebScriptObject count] completely until it can be determined whether it is
45805         needed and how to support it without breaking third-party applications.
45806
45807         * bindings/objc/WebScriptObject.mm:
45808         (-[WebScriptObject count]):
45809         * bindings/objc/WebScriptObjectPrivate.h:
45810
45811 2007-03-31  Nicholas Shanks  <webkit@nickshanks.com>
45812
45813         Reviewed by Adele.
45814
45815         http://bugs.webkit.org/show_bug.cgi?id=13184
45816         HTMLImageElement longdesc should be complete resolved URL
45817
45818         Test: fast/dom/HTMLImageElement/image-longdesc-absolute-url.html
45819
45820         * html/HTMLImageElement.cpp:
45821         (WebCore::HTMLImageElement::longDesc): Return absolute URL.
45822         Behaviour now matches Firefox and Opera.
45823
45824 2007-03-31  Mitz Pettel  <mitz@webkit.org>
45825
45826         Reviewed by Hyatt.
45827
45828         - fix http://bugs.webkit.org/show_bug.cgi?id=13209
45829           REGRESSION (r18756-18765): Incomplete list marker repaint when resizing list item
45830
45831         Test: fast/repaint/list-marker-2.html
45832
45833         A list marker can increase the horizontal overflow after layoutInlineChildren(),
45834         so made that function return only the vertical bounds of the repaint rect. As the
45835         horizontal bounds, made layoutBlock() just use the overflow bounds after layout.
45836
45837         * rendering/RenderBlock.cpp:
45838         (WebCore::RenderBlock::layoutBlock):
45839         * rendering/RenderBlock.h:
45840         * rendering/bidi.cpp:
45841         (WebCore::RenderBlock::layoutInlineChildren):
45842
45843 2007-03-31  Mitz Pettel  <mitz@webkit.org>
45844
45845         Reviewed by Hyatt.
45846
45847         - http://bugs.webkit.org/show_bug.cgi?id=13178
45848           Helvetica zero-width space has non-zero width
45849
45850         Test: fast/text/wide-zero-width-space.html
45851
45852         * platform/FontData.cpp:
45853         (WebCore::FontData::FontData): Force the ZERO WIDTH SPACE glyph to have width
45854         0, unless the SPACE character maps to the same glyph.
45855
45856 2007-03-31  Mitz Pettel  <mitz@webkit.org>
45857
45858         Reviewed by Darin.
45859
45860         - fix http://bugs.webkit.org/show_bug.cgi?id=8016
45861           REPRO: Safari hangs loading 18 MB page (deeply nested DOM tree)
45862
45863         Test: fast/tokenizer/lessthan-terminates-tags-and-attrs.html
45864
45865         * html/HTMLTokenizer.cpp:
45866         (WebCore::HTMLTokenizer::parseTag): Made "<" terminate tag and attribute
45867         names. This matches Firefox.
45868
45869 2007-03-31  Alexey Proskuryakov  <ap@webkit.org>
45870
45871         Debug build fix.
45872
45873         * xml/XPathValue.cpp:
45874         (WebCore::XPath::): Define Value::adopt.
45875
45876 2007-03-30  Alexey Proskuryakov  <ap@webkit.org>
45877
45878         Reviewed by Darin.
45879
45880         http://bugs.webkit.org/show_bug.cgi?id=13021
45881         XPath can be very slow
45882
45883         This patch finally makes us faster than Firefox 2.0 on this test case.
45884
45885         * xml/XPathFunctions.cpp:
45886         (WebCore::XPath::FunConcat::evaluate): Use a Vector buffer for faster appending.
45887         (WebCore::XPath::FunId::evaluate): Move the result NodeSet into Value instead of copying it.
45888         (WebCore::XPath::FunLocalName::evaluate): Cosmetic changes.
45889         (WebCore::XPath::FunNamespaceURI::evaluate): Ditto.
45890         (WebCore::XPath::FunName::evaluate): Ditto.
45891         (WebCore::XPath::FunNormalizeSpace::evaluate): Ditto.
45892
45893         * xml/XPathValue.cpp:
45894         (WebCore::XPath::Value::toNodeSet):
45895         (WebCore::XPath::Value::modifiableNodeSet):
45896         (WebCore::XPath::Value::toBoolean):
45897         (WebCore::XPath::Value::toNumber):
45898         (WebCore::XPath::Value::toString):
45899         * xml/XPathValue.h:
45900         (WebCore::XPath::ValueData::ValueData):
45901         (WebCore::XPath::Value::Value):
45902         Made Value copying faster by putting large data members into a separate refcounted ValueData class.
45903         Added provisions for moving a NodeSet in and out of Value without copying.
45904         Made construction safer by moving bool version to a template constructor.
45905         Removed an (almost) unused default constructor.
45906
45907         * xml/XPathPredicate.h: Store a Value for literal string and number expressions to avoid 
45908         constructing one each time.
45909
45910         * xml/XPathPath.cpp:
45911         (WebCore::XPath::Filter::evaluate):
45912         (WebCore::XPath::LocationPath::evaluate):
45913         (WebCore::XPath::Path::evaluate):
45914         * xml/XPathPath.h:
45915         * xml/XPathPredicate.cpp:
45916         (WebCore::XPath::NumericOp::evaluate):
45917         (WebCore::XPath::Union::evaluate):
45918         * xml/XPathResult.cpp:
45919         (WebCore::XPathResult::snapshotItem):
45920         * xml/XPathStep.cpp:
45921         (WebCore::XPath::Step::evaluate):
45922         (WebCore::XPath::Step::nodesInAxis):
45923         * xml/XPathStep.h:
45924         Got rid of unnecessary NodeSet copying in many cases.
45925
45926 2007-03-30  Justin Garcia  <justin.garcia@apple.com>
45927
45928         Reviewed by john
45929
45930         <rdar://problem/5076323> Only one To Do can be created by a selection in a message
45931
45932         When Mail's ToDoify operation called moveToEndOfDocument: 
45933         with a selection that started just before a ToDo, we'd 
45934         move them to the end of the document, not to the end
45935         of the editable root, because we incorrectly checked
45936         for the editability of positions before ToDos.  Then Mail
45937         would refuse to create a ToDo because the selection was 
45938         outside of the region where they allowed editing.
45939
45940         * editing/SelectionController.cpp:
45941         (WebCore::SelectionController::modifyExtendingRightForward):
45942         Check the position for editability, not the position's node,
45943         since there are editable positions of the form [node, offset]
45944         where node is contenteditable=false.
45945         Re-use pos.  Nothing that happens after it's created can invalidate
45946         it or the position and affinity used to create it.
45947         (WebCore::SelectionController::modifyMovingRightForward): Ditto.
45948         (WebCore::SelectionController::modifyExtendingLeftBackward): Ditto.
45949         (WebCore::SelectionController::modifyMovingLeftBackward): Ditto.
45950         * rendering/RenderBlock.cpp:
45951         (WebCore::RenderBlock::paintCaret): Ditto.
45952
45953 2007-03-30  Adele Peterson  <adele@apple.com>
45954
45955         Reviewed by Darin.
45956
45957         Added DeleteWordBackward and DeleteWordForward to execCommand.
45958
45959         * editing/Editor.cpp:
45960         (WebCore::execDeleteWordBackward):
45961         (WebCore::execDeleteWordForward):
45962         (WebCore::CommandEntry::):
45963
45964 2007-03-30  Simon Hausmann  <hausmann@kde.org>
45965
45966         Reviewed by Zack
45967
45968         * WebCore.pro: Fix release Qt builds.
45969
45970 2007-03-30  Antti Koivisto  <antti@apple.com>
45971
45972         Reviewed by bdash.
45973
45974         Spotted an int that should be float in previous patch.
45975
45976         * platform/Font.cpp:
45977         (WebCore::WidthIterator::advance):
45978
45979 2007-03-30  Antti Koivisto  <antti@apple.com>
45980
45981         Reviewed by Hyatt.
45982
45983         Render tree memory savings, part 1
45984         
45985         - Eliminate caching of monospace char width from RenderText. This optimization is not needed
45986           anymore since Font already caches space width (RenderText -4 bytes)
45987         - Eliminate caching of tab width from RenderBlock. Similary this optimization has become
45988           obsolete (RenderBlock -4 bytes)
45989
45990         * platform/Font.cpp:
45991         (WebCore::WidthIterator::advance):
45992         (WebCore::Font::spaceWidth):
45993         * platform/Font.h:
45994         (WebCore::Font::tabWidth):
45995         * platform/TextStyle.h:
45996         (WebCore::TextStyle::TextStyle):
45997         (WebCore::TextStyle::allowTabs):
45998         * rendering/InlineTextBox.cpp:
45999         (WebCore::InlineTextBox::selectionRect):
46000         (WebCore::InlineTextBox::paint):
46001         (WebCore::InlineTextBox::paintSelection):
46002         (WebCore::InlineTextBox::paintMarkedTextBackground):
46003         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
46004         (WebCore::InlineTextBox::paintTextMatchMarker):
46005         (WebCore::InlineTextBox::offsetForPosition):
46006         (WebCore::InlineTextBox::positionForOffset):
46007         * rendering/RenderBlock.cpp:
46008         (WebCore:::RenderFlow):
46009         (WebCore::RenderBlock::setStyle):
46010         * rendering/RenderBlock.h:
46011         * rendering/RenderObject.cpp:
46012         * rendering/RenderObject.h:
46013         * rendering/RenderText.cpp:
46014         (WebCore::RenderText::RenderText):
46015         (WebCore::RenderText::setStyle):
46016         (WebCore::RenderText::widthFromCache):
46017         (WebCore::RenderText::trimmedMinMaxWidth):
46018         (WebCore::RenderText::calcMinMaxWidthInternal):
46019         (WebCore::RenderText::setTextInternal):
46020         (WebCore::RenderText::width):
46021         * rendering/RenderText.h:
46022         (WebCore::RenderText::allowTabs):
46023         * rendering/bidi.cpp:
46024
46025 2007-03-30  David Hyatt  <hyatt@apple.com>
46026
46027         Fix (take 2) for bug 4334, flickering when floating elements gain/lose transparency.
46028
46029         Reviewed by mitz
46030
46031         * rendering/RenderBlock.cpp:
46032         * rendering/RenderBlock.h:
46033         * rendering/RenderBox.cpp:
46034         (WebCore::RenderBox::setStyle):
46035
46036 2007-03-29  Mitz Pettel  <mitz@webkit.org>
46037
46038         Reviewed by Darin.
46039
46040         - fix http://bugs.webkit.org/show_bug.cgi?id=13166
46041           REGRESSION (2005-10-16 - 2005-10-19): Ampersands showing up in the last column of the Gmail contacts table
46042
46043         Test: fast/tokenizer/write-partial-entity.html
46044
46045         * html/HTMLTokenizer.cpp:
46046         (WebCore::HTMLTokenizer::parseTag): Reordered to avoid resetting the buffer position
46047         after script execution which can write to the buffer.
46048
46049 2007-03-29  Justin Garcia  <justin.garcia@apple.com>
46050
46051         Reviewed by john
46052
46053         <rdar://problem/5099303> Deleting after a ToDo puts the caret in the wrong position
46054         
46055         We were failing to create the correct selection 
46056         for DeleteSelectionCommand because the selection extension 
46057         operations don't skip over non-editable content for editable 
46058         selections.
46059
46060         * editing/SelectionController.cpp:
46061         (WebCore::SelectionController::modifyExtendingRightForward):
46062         When extending an editable selection, don't extend into
46063         non-editable content.
46064         (WebCore::SelectionController::modifyExtendingLeftBackward):
46065         Ditto.
46066
46067 2007-03-29  Patti Hoa  <patti@apple.com>
46068
46069         Reviewed by harrison.
46070
46071         <rdar://problem/4918397> Exception raise inspecting note contents in the background
46072         * WebCore.xcodeproj/project.pbxproj:
46073         * bridge/mac/WebCoreAXObject.mm:
46074         (-[WebCoreAXObject subrole]):
46075         (-[WebCoreAXObject title]):
46076         Check that attachment supports the attribute before requesting it.
46077
46078 2007-03-29  Justin Garcia  <justin.garcia@apple.com>
46079
46080         Reviewed by john
46081
46082         <rdar://problem/5032066> Delete should work between ToDos
46083         
46084         Stop selecting the table when the user attempts to delete
46085         the line break just after it, instead, extend the selection
46086         into the last table cell.
46087         Let deletion merge content into table cells (as long as 
46088         its not from another table cell).  
46089         Start calling shouldInsertNode:replacingDOMRange:givenAction: 
46090         when moving content with moveParagraphs, so that Mail can 
46091         modify content before it is moved into a ToDo during a delete.
46092
46093         * editing/CompositeEditCommand.cpp:
46094         (WebCore::CompositeEditCommand::moveParagraphs): Ask the
46095         delegate before performing the move.  This will let Mail
46096         prevent styles from entering a ToDo.
46097         Added a FIXME about adding a new WebViewInsertAction
46098         * editing/DeleteSelectionCommand.cpp:
46099         (WebCore::DeleteSelectionCommand::initializePositionData):
46100         Allow merging into table cells from content not in a table.
46101         * editing/SelectionController.cpp:
46102         (WebCore::SelectionController::modifyExtendingRightForward):
46103         Don't select the table when extending by character/word from
46104         just before it.  This code was here to make it easier to select
46105         tables in order to delete them, but the deletion UI makes it 
46106         largely unnecessary.
46107         (WebCore::SelectionController::modifyExtendingLeftBackward):
46108         Ditto.
46109         * editing/TypingCommand.cpp:
46110         (WebCore::isFirstPositionAfterTable): Added.
46111         (WebCore::isLastPositionBeforeTable): Ditto.
46112         (WebCore::TypingCommand::deleteKeyPressed): When pressing
46113         the delete key with a caret at the beginning of a paragraph
46114         just after a table, move the paragraph into the last table
46115         cell.
46116         Do not do this if it would mean moving a block table.
46117         Removed some old irrelevant comments.
46118         * editing/htmlediting.cpp: Removed unused functions.
46119         * editing/htmlediting.h:
46120
46121 2007-03-29  Adam Treat  <adam@staikos.net>
46122
46123         Reviewed and committed by George Staikos.
46124
46125         Remove redundant line.
46126
46127         * platform/qt/FontDataQt.cpp:
46128         (WebCore::FontData::platformInit):
46129
46130 2007-03-29  Adam Treat  <adam@staikos.net>
46131
46132         Reviewed by David Hyatt, committed by George Staikos.
46133
46134         Test: fast/text/justified-selection.html
46135
46136         Take into account the entire run length to get a proper selection.
46137
46138         * platform/Font.cpp:
46139         (WebCore::WidthIterator::WidthIterator):
46140
46141 2007-03-29  David Hyatt  <hyatt@apple.com>
46142
46143         Fix for <rdar://problem/4545060>, technorati and arstechnica fail because of getComputedStyle not
46144         reporting display:none properly when it is set.  This is bugzilla bug 13103.
46145
46146         Reviewed by mitz
46147
46148         * css/CSSComputedStyleDeclaration.cpp:
46149         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
46150
46151 2007-03-28  Oliver Hunt  <oliver@apple.com>
46152
46153         Reviewed by Hyatt.
46154
46155         Rename DocLoader::setPasteInProgress, etc to more generic 
46156         setAllowStaleResources, etc
46157
46158         * editing/Editor.cpp:
46159         (WebCore::Editor::paste):
46160         * loader/DocLoader.cpp:
46161         (WebCore::DocLoader::DocLoader):
46162         (WebCore::DocLoader::checkForReload):
46163         * loader/DocLoader.h:
46164         (WebCore::DocLoader::setAllowStaleResources):
46165         * page/DragController.cpp:
46166         (WebCore::DragController::concludeDrag):
46167
46168 2007-03-28  Oliver Hunt  <oliver@apple.com>
46169
46170         Reviewed by Anders and Steve.
46171
46172         Add a flag to DocLoader to prevent it from reloading 
46173         when performing a paste or drop operation.
46174         
46175         Remove m_cachePolicy from CachedResource as it is never used
46176         
46177         Fixes rdar://problem/5044366 : REGRESSION: Repro ASSERT failures 
46178         dragging image into GMail message in _web_writeImage and 
46179         documentFragmentFromDragData
46180
46181         * editing/Editor.cpp:
46182         (WebCore::Editor::paste):
46183           prevent the docloader from reloading resources on paste
46184         * html/HTMLImageLoader.cpp:
46185         (WebCore::HTMLImageLoader::updateFromElement):
46186         * loader/Cache.cpp:
46187         (WebCore::createResource):
46188         * loader/CachedCSSStyleSheet.cpp:
46189         (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
46190         * loader/CachedCSSStyleSheet.h:
46191         * loader/CachedImage.cpp:
46192         (WebCore::CachedImage::CachedImage):
46193         * loader/CachedImage.h:
46194         * loader/CachedResource.cpp:
46195         (WebCore::CachedResource::CachedResource):
46196         * loader/CachedResource.h:
46197         * loader/CachedScript.cpp:
46198         (WebCore::CachedScript::CachedScript):
46199         * loader/CachedScript.h:
46200         * loader/CachedXBLDocument.cpp:
46201         (WebCore::CachedXBLDocument::CachedXBLDocument):
46202         * loader/CachedXBLDocument.h:
46203         * loader/CachedXSLStyleSheet.cpp:
46204         (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
46205         * loader/CachedXSLStyleSheet.h:
46206         * loader/DocLoader.cpp:
46207         (WebCore::DocLoader::DocLoader):
46208            Tidy up constructor initialise new field
46209         (WebCore::DocLoader::checkForReload):
46210            Prevent reload when pasting
46211         * loader/DocLoader.h:
46212         (WebCore::DocLoader::setPasteInProgress):
46213           new field and setter
46214         * page/DragController.cpp:
46215         (WebCore::DragController::concludeDrag):
46216           prevent the docloader from reloading resources on drop
46217
46218 2007-03-27  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
46219
46220         Not reviewed - fix typo in gdk build.
46221
46222         * platform/gdk/ScrollViewGdk.cpp:
46223         (WebCore::ScrollView::contentsToWindow):
46224
46225 2007-03-28  Maciej Stachowiak  <mjs@apple.com>
46226         
46227         Reviewed by Darin.
46228         
46229         - fixed <rdar://problem/4820817> Autoscroll is broken in Mail.app (message jumps around when trying to select text)
46230                 
46231         Handle scrolling external scrollviews around the webview during
46232         autoscroll or when scrolling into view.
46233         
46234         This should also restore performance on BenchJS test 6 lost due to Tim's partial fix.
46235
46236         * page/FrameView.cpp:
46237         (WebCore::FrameView::scrollRectIntoViewRecursively):
46238         * page/FrameView.h:
46239         * platform/ScrollView.h:
46240         * platform/gdk/ScrollViewGdk.cpp:
46241         (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
46242         (WebCore::ScrollView::scrollRectIntoViewRecursively):
46243         * platform/mac/ScrollViewMac.mm:
46244         (WebCore::ScrollView::visibleContentRect):
46245         (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
46246         (WebCore::ScrollView::scrollRectIntoViewRecursively):
46247         (WebCore::ScrollView::updateContents):
46248         * platform/qt/ScrollViewQt.cpp:
46249         (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
46250         (WebCore::ScrollView::scrollRectIntoViewRecursively):
46251         * platform/win/ScrollViewWin.cpp:
46252         (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
46253         * platform/win/TemporaryLinkStubs.cpp:
46254         (WebCore::ScrollView::scrollRectIntoViewRecursively):
46255         * rendering/RenderLayer.cpp:
46256         (WebCore::RenderLayer::scrollRectToVisible):
46257        
46258 2007-03-28  Jungshik Shin  <jungshik.shin@gmail.com>
46259
46260         Reviewed  and landed by Darin
46261
46262         Get rid of some misuses of |islower| and |tolower| for non-ASCII characters.
46263         http://bugs.webkit.org/show_bug.cgi?id=13138
46264
46265         * platform/StringImpl.cpp:
46266         (WebCore::StringImpl::isLower):
46267         (WebCore::StringImpl::lower):
46268         (WebCore::StringImpl::equalIgnoringCase):
46269
46270 2007-03-28  Antti Koivisto  <antti@apple.com>
46271
46272         Reviewed by Hyatt.
46273
46274         Fix <rdar://problem/5092653>
46275         REGRESSION: Image decoding making scrolling slow
46276         
46277         If decoder gave back a null frame (which I think happens regularly if you don't have full frame 
46278         data yet for image that does not decode incrementally) m_decodedSize was incremented anyway. This
46279         led to massive growth in calculated image size and eventually made cache prune constantly. 
46280         
46281         No test, I don't know how to make one for this.
46282
46283         * platform/graphics/BitmapImage.cpp:
46284         (WebCore::BitmapImage::cacheFrame):
46285
46286 2007-03-28  Adele Peterson  <adele@apple.com>
46287
46288         Reviewed by Kevin M.
46289
46290         WebCore part of fix for <rdar://problem/5095515> VitalSource Bookshelf should not pass return statements into stringByEvaluatingJavaScriptFromString
46291
46292         * page/mac/WebCoreFrameBridge.mm: (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
46293         Convert return value to a string.  This matches the behavior in Safari 2.0.
46294
46295 2007-03-28  Alexey Proskuryakov  <ap@webkit.org>
46296
46297         Reviewed by Darin.
46298
46299         http://bugs.webkit.org/show_bug.cgi?id=13190
46300         XPath incorrectly handles namespaces on attributes
46301
46302         * xml/XPathStep.cpp:
46303         (WebCore::XPath::Step::nodesInAxis): Added a special case for faster attribute lookup; gives a slight but 
46304         measurable performance improvement for bug 13021.
46305         (WebCore::XPath::Step::nodeMatches): Fixed NameTest for attribute nodes.
46306
46307         * xml/XPathStep.h:
46308         (WebCore::XPath::Step::NodeTest::NodeTest):
46309         (WebCore::XPath::Step::NodeTest::namespaceURI):
46310         (WebCore::XPath::Step::nodeTest):
46311         (WebCore::XPath::Step::setNodeTest):
46312         Move m_namespaceURI to NodeTest, where it belongs. Removed unused m_nodeTestData (oops!).
46313
46314         * xml/XPathGrammar.y:
46315         * xml/XPathPath.cpp:
46316         (WebCore::XPath::LocationPath::optimizeStepPair):
46317         Accounted for the above change.
46318
46319 2007-03-28  Oliver Hunt  <oliver@apple.com>
46320
46321         rs=Hyatt.
46322
46323         Rollout local changes :-/
46324
46325         * loader/Cache.cpp:
46326         (WebCore::Cache::pruneAllResources):
46327         (WebCore::Cache::remove):
46328
46329 2007-03-28  Oliver Hunt  <oliver@apple.com>
46330
46331         Reviewed by Hyatt.
46332
46333         Roll out r20511 due to incredible badness
46334
46335         * loader/Cache.cpp:
46336         (WebCore::Cache::pruneAllResources):
46337         (WebCore::Cache::remove):
46338
46339 2007-03-27  Oliver Hunt  <oliver@apple.com>
46340
46341         Reviewed by Adam.
46342
46343         Don't enforce text-selection drag delay when we are
46344         going to drag an image anyway.
46345
46346         Fixes rdar://problem/4668935
46347
46348         * page/EventHandler.cpp:
46349         (WebCore::EventHandler::handleDrag):
46350
46351 2007-03-27  Justin Garcia  <justin.garcia@apple.com>
46352
46353         Build fix
46354         
46355         * editing/markup.cpp:
46356         (WebCore::startMarkup):
46357
46358 2007-03-27  Justin Garcia  <justin.garcia@apple.com>
46359
46360         Reviewed by darin
46361         
46362         <rdar://problem/5091898> REGRESSION: GMail Editor: A line of underlined text copied with Select All pastes with wrong font family
46363         
46364         createMarkup skipped elements if they were blocks
46365         when called from moveParagraphs (because that function 
46366         must receive only inline content).  This patch adds 
46367         code to inline these blocks instead of skipping them 
46368         so that we don't lose any of the style that they 
46369         contribute to the copied markup.
46370
46371         * editing/markup.cpp:
46372         (WebCore::startMarkup): Add an inlineBlocks option.
46373         Make sure to overwrite display:block coming from
46374         a style sheet or the inline style declaration.
46375         (WebCore::createMarkup): Don't refuse to include a 
46376         specialCommonAncestor that's a block if we were asked 
46377         to include only inline content, since we can now inline 
46378         block elements in startMarkup.
46379
46380 2007-03-27  Adele Peterson  <adele@apple.com>
46381
46382         Reviewed by Hyatt.
46383
46384         Fix for <rdar://problem/5026141> REGRESSION: Aperture Viewer Flashes when switching from Index Page to Detail page in Web Gallery
46385
46386         This disables the paint that occurs after WebCore finishes loading the document.  We should reenable this when we
46387         move the dispatchDidFinishLoad delegate callback to happen around the same time as the JS onload call.  See <rdar://problem/5092361>.
46388
46389         * dom/Document.cpp: (WebCore::Document::implicitClose):
46390
46391 2007-03-26  Justin Garcia  <justin.garcia@apple.com>
46392
46393         Reviewed by darin
46394         
46395         <rdar://problem/5065910> REGRESSION: In Mail and GMail, Can't apply color to pasted line of text
46396         <rdar://problem/5084241> After deleting a paragraph of colored text, can't change text color
46397         <rdar://problem/5065605> REGRESSION: Text copied with Select All + Copy loses color on Paste
46398         <rdar://problem/4916887> GMAIL: Can't apply color to text once it becomes indented
46399
46400         * css/CSSComputedStyleDeclaration.cpp:
46401         (WebCore::CSSComputedStyleDeclaration::copyInheritableProperties):
46402         If a node's text fill color is invalid, then its children use 
46403         their font-color as their text fill color (they don't inherit 
46404         it).  Likewise for stroke color.
46405
46406 2007-03-27  Anders Carlsson  <acarlsson@apple.com>
46407
46408         * platform/ScrollBar.h:
46409         Use wtf/MathExtras.h instead of math.h
46410
46411 2007-03-27  Zack Rusin  <zrusin@trolltech.com>
46412
46413         Fix the compile - when using math.h functions
46414         actually include the header with them.
46415
46416         * platform/ScrollBar.h:
46417
46418 2007-03-27  Oliver Hunt  <oliver@apple.com>
46419
46420         Reviewed by Maciej.
46421
46422         The WebArchiver needs all the subresources of a document to be accessible
46423         through the DocLoader, so we can't remove a CachedResource simultaneously
46424         from the global Cache and all DocLoaders, just because it needs to be 
46425         reloaded in one.
46426
46427         Fixes rdar://problem/5044366
46428
46429         * loader/Cache.cpp:
46430         (WebCore::Cache::remove):
46431            Don't evict the resource from all DocLoaders
46432         * manual-tests/test-iframes-loading-the-same-resource.html: Added.
46433            Alas it wasn't possible to make a nice layout test, even this manual test
46434            is not entirely deterministic
46435
46436 2007-03-27  Mark Rowe  <mrowe@apple.com>
46437
46438         Build fix.
46439
46440         * platform/GlyphBuffer.h:
46441         (WebCore::GlyphBuffer::clear):
46442
46443 2007-03-27  Dave Hyatt  <hyatt@apple.com>
46444
46445         Add support for glyph offsets to the GlyphBuffer.
46446        
46447         Reviewed by olliej
46448
46449         * platform/Font.cpp:
46450         (WebCore::Font::drawGlyphBuffer):
46451         * platform/GlyphBuffer.h:
46452         (WebCore::GlyphBuffer::clear):
46453         (WebCore::GlyphBuffer::swap):
46454         (WebCore::GlyphBuffer::offsetAt):
46455         (WebCore::GlyphBuffer::add):
46456
46457 2007-03-27  Antti Koivisto  <antti@apple.com>
46458
46459         Keep buildbot happy.
46460
46461         * platform/mac/PlatformScrollBarMac.mm:
46462         (WebCore::PlatformScrollbar::scrollbarHit):
46463
46464 2007-03-26  Antti Koivisto  <antti@apple.com>
46465
46466         Reviewed by Darin.
46467         
46468         On Mac, support fine grained wheel events generated by trackpad and Mighty Mouse.
46469         http://bugs.webkit.org/show_bug.cgi?id=13134
46470         <rdar://problem/5076249?
46471
46472         * WebCore.exp:
46473             Export _wkGetWheelEventDeltas
46474         * page/EventHandler.cpp:
46475         (WebCore::EventHandler::handleWheelEvent):
46476             Remove (0, 0) scroll event hack, it is not needed anymore.
46477             Do per-pixel scrolling for fine grained events.
46478         * platform/PlatformWheelEvent.h:
46479         (WebCore::PlatformWheelEvent::isContinuous):
46480             Add new m_isContinuous boolean to indicate fine grained wheel events.
46481         * platform/ScrollBar.cpp:
46482         (WebCore::Scrollbar::Scrollbar):
46483         (WebCore::Scrollbar::setValue):
46484         (WebCore::Scrollbar::setSteps):
46485         (WebCore::Scrollbar::scroll):
46486         * platform/ScrollBar.h:
46487         (WebCore::Scrollbar::value):
46488             Use float to represent current position to support finer grained scrolling.
46489             Add ScrollByPixel, remove ScrollByWheel (which was same as ScrollByLine anyway)
46490         * platform/ScrollTypes.h:
46491         (WebCore::):
46492         * platform/gdk/WheelEventGdk.cpp:
46493         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
46494             Initalize m_isContinuous
46495         * platform/mac/WebCoreSystemInterface.h:
46496         * platform/mac/WebCoreSystemInterface.mm:
46497             Add wkGetWheelEventDeltas for getting fine grained wheel events
46498         * platform/mac/WheelEventMac.mm:
46499         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
46500             Get the wheel deltas using new wkGetWheelEventDeltas interface
46501         * platform/qt/WheelEventQt.cpp:
46502         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
46503             Initalize m_isContinuous
46504         * rendering/RenderListBox.cpp:
46505         (WebCore::RenderListBox::calcHeight):
46506             Pass item height to scrollbar
46507
46508 2007-03-26  Geoffrey Garen  <ggaren@apple.com>
46509
46510         Reviewed by Darin Adler.
46511
46512         Fixed <rdar://problem/5088234> REGRESSION: Crash occurs at WebCore::Node::
46513         createRendererIfNeeded() when changing map views with MS Virtual Earth 
46514         (http://www.ziprealty.com/)
46515         
46516         The cause of the crash was the insertion of a <script> element whose
46517         script removed it from the document. The <script> element would then be 
46518         garbage when the insertion routine went on to attach() it.
46519         
46520         The solution here is to check that an element is still your child before
46521         trying to attach() it. This matches the style of checks we do elsewhere
46522         in the node insertion and removal code.
46523
46524         * dom/ContainerNode.cpp:
46525         (WebCore::ContainerNode::insertBefore):
46526         (WebCore::ContainerNode::replaceChild):
46527         (WebCore::ContainerNode::appendChild):
46528
46529 2007-03-26  David Carson  <dacarson@gmail.com>
46530
46531         Reviewed by Darin, landed by Anders.
46532
46533         Manual test case for: REGRESSION (r19559): Java applet crash
46534         http://bugs.webkit.org/show_bug.cgi?id=13142
46535         <rdar://problem/5080340>
46536
46537         * manual-tests/liveconnect-applet-get-boolean.html: Added.
46538         * manual-tests/resources/CheckerApplet.class: Added.
46539         * manual-tests/resources/CheckerApplet.java: Added.
46540
46541 2007-03-26  Mitz Pettel  <mitz@webkit.org>
46542
46543         Reviewed and landed by Darin.
46544
46545         - fix http://bugs.webkit.org/show_bug.cgi?id=13194
46546           <rdar://problem/5087738>
46547           REGRESSION: Selection rects are wrong for images in search results from images.google.com
46548
46549         Test: fast/replaced/selection-rect-in-table-cell.html
46550
46551         * rendering/RenderReplaced.cpp:
46552         (WebCore::RenderReplaced::selectionRect):
46553
46554 2007-03-26  Geoffrey Garen  <ggaren@apple.com>
46555
46556         Removed now-stale #includes of <assert.h>.
46557         
46558         * WebCorePrefix.h:
46559         * config.h:
46560         * css/CSSGrammar.y:
46561         * platform/Arena.cpp:
46562         * platform/KURL.cpp:
46563         * platform/SegmentedString.h:
46564         * rendering/DataRef.h:
46565         * rendering/RenderArena.cpp:
46566
46567 2007-03-26  Geoffrey Garen  <ggaren@apple.com>
46568
46569         Reviewed by Kevin McCulough.
46570
46571         Global replace of "assert(" with "ASSERT(" to assist debugging. Removed
46572         one instance of commented-out code containing "assert(" instead of replacing it.
46573
46574 2007-03-25  Antti Koivisto  <antti@apple.com>
46575
46576         Reviewed by Adam.
46577
46578         Fix <rdar://problem/5049842>
46579         Gmail Editor: Dragging message text in the message body results in a crash at WebCore::Frame::eventHandler()
46580
46581         Null check frame in m_dragTarget, it might be gone already.
46582
46583         * page/EventHandler.cpp:
46584         (WebCore::EventHandler::updateDragAndDrop):
46585         (WebCore::EventHandler::cancelDragAndDrop):
46586         (WebCore::EventHandler::performDragAndDrop):
46587
46588 2007-03-25  Alexey Proskuryakov  <ap@webkit.org>
46589
46590         Reviewed by Darin.
46591
46592         A partial fix for http://bugs.webkit.org/show_bug.cgi?id=13021
46593         XPath can be very slow
46594
46595         * xml/XPathExpression.cpp:
46596         (WebCore::XPathExpression::evaluate): Reset a reference to the context node, as this may prevent the whole document
46597         from being destroyed in time.
46598
46599         * dom/Attr.cpp:
46600         (WebCore::Attr::createTextChild): Instead of calling appendChild(), just do the few operations it really needs to perform.
46601         * dom/ContainerNode.h:
46602         (WebCore::ContainerNode::fastSetFirstChild):
46603         (WebCore::ContainerNode::fastSetLastChild):
46604         Added operations that let Attr hack internal ContainerNode data (evil, but fast!).
46605
46606         * xml/XPathStep.cpp:
46607         (WebCore::XPath::Step::evaluate):
46608         (WebCore::XPath::Step::nodesInAxis):
46609         (WebCore::XPath::Step::nodeMatches):
46610         * xml/XPathStep.h:
46611         Merged node testing into axis enumeration. This saves a lot of Vector resizing and passing, and is necessary for future 
46612         optimizations (sometimes, we can just pick the single result node instead of enumerating and filtering the whole axis).
46613
46614 2007-03-24  Mitz Pettel  <mitz@webkit.org>
46615
46616         Reviewed by Darin.
46617
46618         - fix http://bugs.webkit.org/show_bug.cgi?id=13156
46619           REGRESSION (r19621): Pasting breakable content where wrapped line is too long to fit in a textarea fails to draw a horizontal scrollbar
46620
46621         Test: fast/text/midword-break-after-breakable-char.html
46622
46623         Breaking in the middle of the word
46624         is allowed only if no breaking opportunity between words has occurred yet. The
46625         first position on the line should not be considered "between words" even if
46626         it is a breaking opportunity.
46627         
46628         * rendering/bidi.cpp:
46629         (WebCore::RenderBlock::findNextLineBreak): Changed according to the above. Also
46630         cleaned up a couple of lines.
46631
46632 2007-03-24  David Hyatt  <hyatt@apple.com>
46633
46634         Fix for bugzilla bug 13187, place a hard limit on the amount of decoded data that WebCore will keep
46635         around even on live pages (pages being displayed in tabs/windows or in the back/forward cache).
46636         Images will decode to paint and once the decoded data exceeds the cache size, the decoded data will be
46637         tossed.
46638
46639         Refine the flushing algorithm to apply the two-pass decode/evict model to each LRU-SP queue individually, rather
46640         than to all the lists at once.  This allows the cache to evict large encoded resources before flushing small
46641         or frequently accessed decoded onces.
46642
46643         Added information on live/decoded data to the cache statistics.
46644
46645         Reviewed by darin
46646
46647         * loader/Cache.cpp:
46648         (WebCore::Cache::Cache):
46649         (WebCore::Cache::pruneLiveResources):
46650         (WebCore::Cache::pruneAllResources):
46651         (WebCore::Cache::setMaximumSize):
46652         (WebCore::Cache::remove):
46653         (WebCore::Cache::lruListFor):
46654         (WebCore::Cache::removeFromLRUList):
46655         (WebCore::Cache::insertInLRUList):
46656         (WebCore::Cache::liveLRUListFor):
46657         (WebCore::Cache::removeFromLiveResourcesList):
46658         (WebCore::Cache::insertInLiveResourcesList):
46659         (WebCore::Cache::addToLiveResourcesSize):
46660         (WebCore::Cache::removeFromLiveResourcesSize):
46661         (WebCore::Cache::adjustSize):
46662         (WebCore::Cache::getStatistics):
46663         * loader/Cache.h:
46664         (WebCore::Cache::TypeStatistic::TypeStatistic):
46665         * loader/CachedImage.cpp:
46666         (WebCore::CachedImage::decodedSizeWillChange):
46667         (WebCore::CachedImage::decodedSizeChanged):
46668         * loader/CachedImage.h:
46669         * loader/CachedResource.cpp:
46670         (WebCore::CachedResource::CachedResource):
46671         (WebCore::CachedResource::ref):
46672         (WebCore::CachedResource::deref):
46673         (WebCore::CachedResource::setEncodedSize):
46674         (WebCore::CachedResource::liveResourceAccessed):
46675         * loader/CachedResource.h:
46676         (WebCore::CachedResource::liveAccessCount):
46677         (WebCore::CachedResource::resetLiveAccessCount):
46678         (WebCore::CachedResource::increaseLiveAccessCount):
46679         * platform/graphics/BitmapImage.cpp:
46680         (WebCore::BitmapImage::destroyDecodedData):
46681         (WebCore::BitmapImage::cacheFrame):
46682         * platform/graphics/ImageObserver.h:
46683         * rendering/RenderBox.cpp:
46684         (WebCore::RenderBox::paintBackgroundExtended):
46685         * rendering/RenderImage.cpp:
46686         (WebCore::RenderImage::paint):
46687         * rendering/RenderListMarker.cpp:
46688         (WebCore::RenderListMarker::paint):
46689         * rendering/RenderObject.cpp:
46690         (WebCore::RenderObject::paintBorderImage):
46691
46692 2007-03-24  Darin Adler  <darin@apple.com>
46693
46694         Reviewed by Mitz.
46695
46696         - fix http://bugs.webkit.org/show_bug.cgi?id=13123
46697           CSS selectors that use :lang, :not, and namespaces do not serialize correctly
46698
46699         Test: fast/css/css-selector-text.html
46700
46701         * css/CSSSelector.cpp: (WebCore::CSSSelector::selectorText): Add the namespace
46702         prefix for tag or attribute names, the sub-selector for :not, and the argument
46703         for :lang.
46704
46705 2007-03-24  Brady Eidson  <beidson@apple.com>
46706
46707         Reviewed by Adam
46708
46709         <rdar://problem/5086210> - Move RetainPtr to WTF
46710
46711         * ForwardingHeaders/wtf/RetainPtr.h: Added.
46712         * WebCore.xcodeproj/project.pbxproj: Removed WebCore/RetainPtr.h
46713         
46714         * history/HistoryItem.h: Changed #include to <wtf/RetainPtr.h>
46715         * history/PageCache.h: Ditto
46716         * page/mac/WebCoreFrameBridge.mm: Ditto
46717         * platform/ContextMenu.h: Ditto
46718         * platform/ContextMenuItem.h: Ditto
46719         * platform/DragImage.h: Ditto
46720         * platform/FileChooser.h: Ditto
46721         * platform/PlatformKeyboardEvent.h: Ditto
46722         * platform/PopupMenu.h: Ditto
46723         * platform/SharedBuffer.h: Ditto
46724         * platform/cf/RetainPtr.h: Removed.
46725         * platform/graphics/Icon.h: Changed #include
46726         * platform/mac/ClipboardMac.h: Ditto
46727         * platform/mac/PasteboardMac.mm: Ditto
46728         * platform/mac/WidgetMac.mm: Ditto
46729         * platform/network/AuthenticationChallenge.h: Ditto
46730         * platform/network/ResourceError.h: Ditto
46731         * platform/network/ResourceHandle.h: Ditto
46732         * platform/network/ResourceRequest.h: Ditto
46733         * platform/network/ResourceResponse.h: Ditto
46734         * rendering/RenderThemeMac.mm: Ditto
46735
46736 2007-03-24  Mitz Pettel  <mitz@webkit.org>
46737
46738         Fix for <rdar://problem/5086797>, layoutPending is now reporting incorrect results, which will lead
46739         to all sorts of layout issues.  This is in bugzilla as 13179.
46740
46741         Reviewed by hyatt
46742
46743         - fix http://bugs.webkit.org/show_bug.cgi?id=13179
46744           REGRESSION (r20410): In debug builds, loading a certain page is suspended until redisplay is forced
46745
46746         Moved the root->needsLayout() check from layoutPending() to needsLayout()
46747         to restore the behavior before r20324.
46748
46749         * page/FrameView.cpp:
46750         (WebCore::FrameView::layoutPending):
46751         (WebCore::FrameView::needsLayout):
46752
46753 2007-03-24  Mitz Pettel  <mitz@webkit.org>
46754
46755         Reviewed by Adele.
46756
46757         - fix http://bugs.webkit.org/show_bug.cgi?id=13180
46758               <rdar://problem/5084478>
46759           Another debug build crash from ASSERTION FAILED: !needsLayout()
46760
46761         No test possible because updateRendering() is always called after script
46762         execution.
46763
46764         * page/FrameView.cpp:
46765         (WebCore::FrameView::layout): Get the layout root after calling recalcStyle()
46766         since a style recalc may result in needing to do start layout at the root.
46767
46768 2007-03-24  Nikolas Zimmermann  <zimmermann@kde.org>
46769
46770         Not reviewed. Build fix.
46771
46772         Fix FloatRect vs. IntRect confusion.
46773
46774         * rendering/RenderSVGImage.cpp:
46775         (WebCore::RenderSVGImage::nodeAtPoint):
46776
46777 2007-03-25  Mark Rowe  <mrowe@apple.com>
46778
46779         Fix incorrect radar number.
46780
46781         * platform/network/mac/ResourceHandleMac.mm:
46782         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
46783
46784 2007-03-23  Nikolas Zimmermann  <zimmermann@kde.org>
46785
46786         Reviewed by Oliver.
46787
46788         Fix all known RenderSVGImage problems.
46789
46790         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12126 (RenderSVGImage seems to suffer from integer overflow)
46791         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12442 (raster images disappearing during script execution (SVG))
46792         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12572 (WebKit does not properly invalidate image region after image load)
46793
46794         Added test: svg/custom/scrolling-embedded-svg-file-image-repaint-problem.html
46795
46796         In RenderSVGImage::paint, do not call shouldPaint() as this will never work properly for SVG renderers, as shouldPaint
46797         doesn't take into account any special SVG transformation (localTransform/absoluteTransform). Just remove the call.
46798
46799         Fix hit detection on RenderSVGImage - it didn't work properly at all. No idea why I didn't notice before.
46800         Thanks Andreas Neumann once again for writing excellent bug reports and pointing me to them :-)
46801
46802         The carto.net navigation tools work as expected now, and also the "dock like" image effect example.
46803
46804         * rendering/RenderSVGImage.cpp:
46805         (WebCore::RenderSVGImage::paint):
46806         (WebCore::RenderSVGImage::nodeAtPoint):
46807
46808 2007-03-24  Mitz Pettel  <mitz@webkit.org>
46809
46810         Reviewed by Dave Hyatt.
46811
46812         - http://bugs.webkit.org/show_bug.cgi?id=13177
46813           Suppress control characters in the ATSUI code path
46814
46815         * platform/mac/FontMac.mm:
46816         (WebCore::overrideLayoutOperation):
46817         (WebCore::ATSULayoutParameters::initialize):
46818
46819 2007-03-24  David Hyatt  <hyatt@apple.com>
46820
46821         Fix for <rdar://problem/5086400>, images scrolled offscreen continue to animate.  Safari 2 would
46822         halt animations when images were no longer visible.
46823
46824         Reviewed by mjs, olliej
46825
46826         * platform/graphics/BitmapImage.cpp:
46827         (WebCore::BitmapImage::advanceAnimation):
46828
46829 2007-03-24  David Hyatt  <hyatt@apple.com>
46830
46831         Fix for <rdar://problem/508328>, sluggish text entry in search field.  Make sure
46832         our size actually changed before we decide to do a full repaint because of background/border
46833         complexities.
46834
46835         Reviewed by aroben
46836
46837         * rendering/RenderObject.cpp:
46838         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
46839
46840 2007-03-23  Dave Hyatt  <hyatt@apple.com>
46841
46842         Fix for <rdar://problem/5048219>, spurious glyphs in gmail.   This is bugzilla bug 13136, which
46843         will remain open to cover patching the complex text path.
46844         
46845         Reviewed by aroben
46846
46847         * platform/Font.cpp:
46848         (WebCore::Font::glyphDataForCharacter):
46849         * platform/Font.h:
46850         (WebCore::Font::treatAsZeroWidthSpace):
46851         * platform/GlyphPageTreeNode.cpp:
46852         (WebCore::GlyphPageTreeNode::initializePage):
46853
46854 2007-03-23  Mitz Pettel  <mitz@webkit.org>
46855
46856         Reviewed by Adele.
46857
46858         - fix http://bugs.webkit.org/show_bug.cgi?id=13153
46859           REGRESSION: Visual highlighting of pre-populated blank line in textarea is broken
46860
46861         - fix a bug where selecting across a soft line break did not highlight to
46862           the end of the first line if it contained skipped whitespace
46863
46864         Test: fast/text/selection-hard-linebreak.html
46865
46866         * rendering/InlineTextBox.cpp:
46867         (WebCore::InlineTextBox::selectionState): Changed to treat a selection that ends on the
46868         end of a hard line break as if it ends after the line break. Fixed the case of a selection
46869         that starts and ends in the same text object as the box but does not intersect it
46870         to return SelectionNone instead of selectionBoth.
46871
46872 2007-03-23  Mitz Pettel  <mitz@webkit.org>
46873
46874         Reviewed by Adele.
46875
46876         - fix http://bugs.webkit.org/show_bug.cgi?id=13124
46877           REGRESSION: Reproducible crash in Widget::getView
46878
46879         Test: fast/frames/hover-timer-crash.html
46880
46881         * page/Frame.cpp:
46882         (WebCore::Frame::setView): Added a call to EventHandler::clear().
46883
46884 2007-03-23  Justin Garcia  <justin.garcia@apple.com>
46885
46886         Reviewed by adele
46887
46888         <rdar://problem/5078739> 
46889         Crash in in ReplaceSelectionCommand if the fragment contains only a style span
46890
46891         * editing/ReplaceSelectionCommand.cpp:
46892         (WebCore::ReplaceSelectionCommand::doApply): Check 
46893         for an empty fragment after removing a redundant
46894         style span instead of before.
46895
46896 2007-03-23  David Hyatt  <hyatt@apple.com>
46897
46898         <rdar://problem/5085063>
46899
46900         Fix non-looping animation on cuteoverload.com. Just always flush
46901         decoded data for large animated images to avoid our cache getting
46902         out of sync with the image source.
46903
46904         Reviewed by ggaren
46905
46906         * platform/graphics/BitmapImage.cpp:
46907         (WebCore::BitmapImage::advanceAnimation):
46908
46909 2007-03-23  Adele Peterson  <adele@apple.com>
46910
46911         Reviewed by Darin.
46912
46913         Fix for <rdar://problem/5061024> REGRESSION: Returning false from onkeypress event on Input is ignored when key is Tab
46914         http://bugs.webkit.org/show_bug.cgi?id= 13020
46915
46916         No known way to add a layout test for this.  We would need a way to know exactly how the event was consumed.
46917
46918         * page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler):
46919           If the keypress event has its default behavior prevented, then we should consider the keydown event handled.
46920
46921 2007-03-23  Justin Garcia  <justin.garcia@apple.com>
46922
46923         Reviewed by darin
46924
46925         <rdar://problem/5080333> 
46926         REGRESSION: Selection changes when changing the alignment of an image
46927         
46928         Regression occurred when we started using moveParagraphs
46929         to move content in applyBlockStyle.  moveParagraphs 
46930         moves by copying, deleting and reinserting content, and
46931         so must be accompanied by selection preservation code.
46932         That code uses rangeFromLocationAndLength and rangeLength,
46933         which use TextIterators, which don't emit anything for images 
46934         and other replaced elements, causing this bug.
46935
46936         * editing/ApplyStyleCommand.cpp:
46937         (WebCore::ApplyStyleCommand::applyBlockStyle): Ask rangeLength 
46938         and rangeFromLocationAndLength to request that their
46939         TextIterators emit spaces for replaced elements.
46940         Use rangeCompliantEquivalent()s when creating a Range from
46941         VisiblePositions, since some VisiblePositions have illegal
46942         deepEquivalent()s.
46943         * editing/CompositeEditCommand.cpp:
46944         (WebCore::CompositeEditCommand::moveParagraphs): Ditto.
46945         * editing/TextIterator.cpp:
46946         (WebCore::TextIterator::TextIterator):
46947         (WebCore::TextIterator::handleReplacedElement): Emit
46948         a space if requested.
46949         (WebCore::TextIterator::representNodeOffsetZero): Emit
46950         ranges before m_node, not around m_lastTextNode.  These
46951         ranges should represent the part of the document associated
46952         with the emitted character. 
46953         (WebCore::TextIterator::rangeLength): Take in the new bool.
46954         (WebCore::TextIterator::rangeFromLocationAndLength): Ditto.
46955         Also, don't loop an extra time after finding the end of the
46956         range when we're looking for zero length ranges.  This appeared
46957         to be a workaround for the bugs fixed in representNodeOffsetZero
46958         in this patch.
46959         * editing/TextIterator.h:
46960
46961 2007-03-24  Mark Rowe  <mrowe@apple.com>
46962
46963         Rubber-stamped by Darin.
46964
46965         * Configurations/WebCore.xcconfig: Remove unnecessary INFOPLIST_PREPROCESS.
46966
46967 2007-03-23  Darin Adler  <darin@apple.com>
46968
46969         * html/HTMLBodyElement.cpp: Fix comment typo.
46970
46971 2007-03-23  Adam Treat  <adam@staikos.net>
46972
46973         Reviewed and committed by George.
46974
46975         Patch from Adam Treat to make the Qt build work without SVG and XSLT.
46976         XMLNames is required in any case.
46977
46978         * WebCore.pro:
46979
46980 2007-03-23  Darin Adler  <darin@apple.com>
46981
46982         Reviewed by Hyatt.
46983
46984         - <rdar://problem/5074439> handle margins on frame and iframe elements
46985           without involving FrameView, FrameLoader, etc.
46986
46987         * html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::insertedIntoDocument):
46988         Grab the margin from the frame directly here. There was no real benefit
46989         to doing this via FrameView. Later we can delete quite a bit of unneeded code
46990         here and in WebKit that exists only to set up the margin values in FrameView,
46991         which are now unused.
46992
46993 2007-03-23  Adele Peterson  <adele@apple.com>
46994
46995         Reviewed by Darin.
46996
46997         Fix for <rdar://problem/5080428> REGRESSION: getting value for hidden input element fails after the fix for Bug 11866
46998         http://bugs.webkit.org/show_bug.cgi?id=13121
46999
47000         Rolled out the change for 11866 that made hidden input elements store the value separately from the value attribute.
47001         Added an m_originalValue field that gets set when the element is done being parsed (in closeRenderer).  In reset,
47002         use the m_originalValue for hidden input elements.
47003
47004         * html/HTMLInputElement.cpp:
47005         (WebCore::HTMLInputElement::closeRenderer):
47006         (WebCore::HTMLInputElement::reset):
47007         (WebCore::HTMLInputElement::setValue):
47008         (WebCore::HTMLInputElement::storesValueSeparateFromAttribute):
47009         * html/HTMLInputElement.h:
47010
47011 2007-03-23  Mitz Pettel  <mitz@webkit.org>
47012
47013         Reviewed by Dave Hyatt.
47014
47015         - fix http://bugs.webkit.org/show_bug.cgi?id=13157
47016               <rdar://problem/5083995>
47017           List markers positioned incorrectly and don't repaint properly on Oxford homepage
47018
47019         Test: fast/lists/marker-image-error.html
47020
47021         * rendering/RenderListMarker.cpp:
47022         (WebCore::RenderListMarker::imageChanged): Mark ourselves for relayout if
47023         the image failed to load, since that means we will use a bullet instead.
47024
47025 2007-03-23  Zack Rusin  <zrusin@trolltech.com>
47026
47027         Fix the compile.
47028
47029         * platform/graphics/qt/ImageSourceQt.cpp:
47030
47031 2007-03-22  Dave Hyatt  <hyatt@apple.com>
47032
47033         Fix for <rdar://problem/5083072>.
47034
47035         * page/Frame.cpp:
47036         (WebCore::Frame::setPrinting):
47037         (WebCore::Frame::forceLayoutWithPageWidthRange):
47038         * page/Frame.h:
47039         * page/mac/WebCoreFrameBridge.mm:
47040         (-[WebCoreFrameBridge forceLayoutWithMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
47041
47042 2007-03-22  Anders Carlsson  <acarlsson@apple.com>
47043
47044         Reviewed by Ada.
47045
47046         <rdar://problem/5074974>
47047         CrashTracer: [USER] repro crash in Safari at com.apple.WebCore: WebCore::FrameLoader::activeDocumentLoader const + 6
47048         
47049         * loader/mac/NetscapePlugInStreamLoaderMac.mm:
47050         (WebCore::NetscapePlugInStreamLoader::didReceiveResponse):
47051         Don't use ResourceResponse:isHTTP here since that only looks at the protocol instead of if the response came from a 
47052         HTTP server (and not a web archive).
47053
47054 2007-03-22  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
47055
47056         Not reviewed - gdk build fix.
47057
47058         * platform/graphics/cairo/ImageSourceCairo.cpp:
47059
47060 2007-03-22  Dave Hyatt  <hyatt@apple.com>
47061
47062         Fix for <rdar://problem/5083473>.  Make sure wheeling still forwards to the frame view even
47063         when no node is hit.  Technically not ever hitting a node is a regression from the RenderView
47064         size changes (making it be the size of the initial containing block according to CSS2.1), but
47065         we should still handle this case gracefully in case it comes up again.
47066        
47067         Reviewed by olliej
47068
47069         * page/EventHandler.cpp:
47070         (WebCore::EventHandler::handleWheelEvent):
47071
47072 2007-03-22  Justin Garcia  <justin.garcia@apple.com>
47073
47074         Reviewed by kevin
47075
47076         <rdar://problem/5081257> 
47077         REGRESSION: New Mail signatures start out empty
47078
47079         * editing/VisiblePosition.cpp:
47080         (WebCore::VisiblePosition::canonicalPosition): Allow
47081         descent from positions inside the document into an 
47082         editable body.
47083
47084 2007-03-22  Brady Eidson  <beidson@apple.com>
47085
47086         Reviewed by Adele and John
47087
47088         <rdar://5043528> - Prepare for new API
47089         
47090         * platform/network/ResourceHandle.cpp:
47091         (WebCore::ResourceHandle::clearAuthentication): Clear CF type
47092
47093 2007-03-22  Beth Dakin  <bdakin@apple.com>
47094
47095         Patch by Hyatt, reviewed and committed by me.
47096
47097         Does not reproduce consistently, so a layout test does not seem 
47098         possible.
47099
47100         Fix for <rdar://problem/5082421> Constantly hitting ASSERT(!
47101         needsLayout()) in RenderView::paint()
47102
47103         * page/FrameView.cpp:
47104         (WebCore::FrameView::layoutPending): It is not enough to ask if the 
47105         layout timer is active. There may be times that we don't have a 
47106         body yet so we cannot schedule layout yet, but the root still needs 
47107         layout.  
47108
47109 2007-03-22  John Sullivan  <sullivan@apple.com>
47110
47111         Reviewed by Darin
47112         
47113         Followup for recent fix to 5079700, found by assertion added to Safari.
47114
47115         * page/mac/FrameMac.mm:
47116         (WebCore::Frame::searchForLabelsBeforeElement):
47117         Fixed another place in this method where an empty NSString was being returned instead of nil.
47118         Cleaned up the style a little too.
47119
47120 2007-03-22  David Hyatt  <hyatt@apple.com>
47121
47122         Remove unnecessary destroyFrameAtIndex call.  Now that we throw away
47123         the image source, it is no longer needed.
47124
47125         Reviewed by beth
47126
47127         * platform/graphics/BitmapImage.cpp:
47128         (WebCore::BitmapImage::destroyDecodedData):
47129
47130 2007-03-22  David Harrison  <harrison@apple.com>
47131
47132         Reviewed by Geoff, Darin.
47133
47134         <rdar://problem/5077892> In RapidWeaver 3.5.1, a crash occurs when attempting to load Safari Bookmarks in iMedia Browser
47135         
47136         * platform/mac/ThreadCheck.mm:
47137         (WebCore::_WebCoreThreadViolationCheck):
47138         Change default on Tiger to NSLog rather than raise an exception.
47139
47140 2007-03-22  Darin Adler  <darin@apple.com>
47141
47142         Reviewed by Brady.
47143
47144         - use binary_search instead of hash table; slightly better performance and
47145           less memory use
47146
47147         * platform/network/ResourceHandle.cpp: (WebCore::ResourceHandle::portAllowed):
47148         Use binary_search.
47149
47150 2007-03-22  Darin Adler  <darin@apple.com>
47151
47152         Reviewed by Adele.
47153
47154         - fix <rdar://problem/5074630> detachChildren call should move from WebKit to WebCore
47155
47156         * loader/FrameLoader.cpp: (WebCore::FrameLoader::setDocumentLoader):
47157         Add a call to detachChildren() after the call to prepareForDataSourceReplacement().
47158         There was no reason for this crucial loading step to be left to the client.
47159
47160 2007-03-22  David Hyatt  <hyatt@apple.com>
47161
47162         Minor refactoring and cleanup of the bridge calls that want to control layout settings on the RenderView.
47163         Have the bridge talk through the FrameView instead of just asking for the RenderView directly.
47164
47165         Add an assert to help catch situations where the RenderView needs layout at paint time, since this is a known
47166         catastrophic scenario that will (much of the time) result in a crash in RenderTableSection::paint.
47167
47168         Reviewed by aroben
47169
47170         * page/FrameView.cpp:
47171         (WebCore::FrameView::adjustViewSize):
47172         (WebCore::FrameView::needsLayout):
47173         (WebCore::FrameView::setNeedsLayout):
47174         * page/FrameView.h:
47175         * page/mac/WebCoreFrameBridge.mm:
47176         (-[WebCoreFrameBridge needsLayout]):
47177         (-[WebCoreFrameBridge setNeedsLayout]):
47178         * rendering/RenderView.cpp:
47179         (WebCore::RenderView::paint):
47180
47181 2007-03-21  Geoffrey Garen  <ggaren@apple.com>
47182
47183         Reviewed by Beth Dakin.
47184         
47185         Re-worked the fix in r20375. 'M' and 'm' are not the only commands that
47186         accept "extra" coordinates -- virtually all commands accept them.
47187
47188         * ksvg2/svg/SVGParserUtilities.cpp:
47189         (WebCore::SVGPathParser::parseSVG):
47190
47191 2007-03-21  David Harrison  <harrison@apple.com>
47192
47193         Reviewed by hyatt.
47194
47195         <rdar://problem/5072460> CrashTracer: [USER] 1 crashes in Xcode at com.apple.ImageIO.framework: getBandProcPNG + 168
47196
47197         An NSData object was being alloc/init'd, then returned callers who cast the pointer as a
47198         CFDataRef, including calling CFRelease on it. The problem is that under garbage collection, the NS
47199         retain count is ignored (it's always 0), but the CFRetain and CFRelease are not ignored. This
47200         caused the object to be over-released. The solution that works in both GC and non-GC is to "transfer"
47201         the initial NS retain count to the CF retain count, using HardRetainWithNSRelease.
47202         
47203         The creator of the NSData was SharedBuffer::createNSData. The callers were PDFDocumentImage::dataChanged()
47204         and ImageSource::setData(). This particular crash involved the ImageSource::setData() case.
47205
47206         * platform/SharedBuffer.h:
47207         Declare createCFData().
47208         
47209         * platform/graphics/cg/ImageSourceCG.cpp:
47210         (WebCore::ImageSource::setData):
47211         Call createCFData instead of createNSData.
47212         
47213         * platform/graphics/cg/PDFDocumentImage.cpp:
47214         (WebCore::PDFDocumentImage::dataChanged):
47215         Call createCFData instead of createNSData.
47216         
47217        * platform/mac/SharedBufferMac.mm:
47218         (WebCore::SharedBuffer::createCFData):
47219         Implement createCFData(). Use HardRetainWithNSRelease for gc safety.
47220         
47221 2007-03-21  Mitz Pettel  <mitz@webkit.org>
47222
47223         Reviewed by Darin.
47224
47225         - fix http://bugs.webkit.org/show_bug.cgi?id=13145
47226           Regression: Scrollbar not resizing after display none
47227
47228         Test: fast/dynamic/view-overflow.html
47229
47230         * rendering/RenderView.cpp:
47231         (WebCore::RenderView::layout): Reset overflowHeight() and overflowWidth()
47232         before calling docHeight() and docWidth(), since the former act as a lower
47233         bound for the latter.
47234
47235 2007-03-21  Geoffrey Garen  <ggaren@apple.com>
47236
47237         Reviewed by Beth Dakin.
47238         
47239         A little cleanup based work I've been doing on the SVG parsers.
47240
47241         * ksvg2/svg/SVGParserUtilities.h:
47242         (WebCore::skipString):
47243         * ksvg2/svg/SVGPreserveAspectRatio.cpp: Moved checkString into
47244         SVGParserUtilities.h, so it could be with all its friends. Renamed 
47245         "checkString" to "skipString" to match the rest of the code and to be 
47246         clear about which functions move the buffer pointer.
47247         (WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio):
47248         * ksvg2/svg/SVGTransformable.cpp:
47249         (WebCore::SVGTransformable::parseTransformAttribute): Changed gotos into 
47250         returns. Removed unnecessary magic number.
47251
47252 2007-03-21  Geoffrey Garen  <ggaren@apple.com>
47253
47254         Reviewed by Beth Dakin.
47255         
47256         Fixed <rdar://problem/5078471> SVG rgb color parser runs past end of 
47257         buffer when running fuzzing test
47258
47259         * ksvg2/svg/SVGColor.cpp:
47260         (WebCore::parseNumberOrPercent): Check for past the end condition.
47261         (WebCore::SVGColor::colorFromRGBColorString): Reversed "read past end
47262         of buffer, then check if you're past the end" logic.
47263
47264 2007-03-21  Geoffrey Garen  <ggaren@apple.com>
47265
47266         Reviewed by Beth Dakin.
47267         
47268         Fixed <rdar://problem/5079410> SVG path parser hangs, exhausts memory when 
47269         running fuzzer test
47270
47271         * ksvg2/svg/SVGParserUtilities.cpp:
47272         (WebCore::SVGPathParser::parseSVG): Don't assume that extra digits are
47273         always preceded by an 'M' or an 'm'.
47274
47275 2007-03-21  John Sullivan  <sullivan@apple.com>
47276
47277         Reviewed by Adam
47278         
47279         - fixed <rdar://problem/5079700> REGRESSION (r19702): Name/password aren't autofilled 
47280           or saved for .Mac homepage login
47281
47282         * page/mac/FrameMac.mm:
47283         (WebCore::Frame::searchForLabelsBeforeElement):
47284         don't count empty strings as valid results
47285
47286 2007-03-21  Justin Garcia  <justin.garcia@apple.com>
47287
47288         Reviewed by darin
47289
47290         * editing/markup.cpp:
47291         (WebCore::styleFromMatchedRulesAndInlineDecl): 
47292         Release the RefPtr to avoid increasing/decreasing
47293         the refcount unnecessarily.
47294         (WebCore::propertyMissingOrEqualToNone): Added and used
47295         instead of converting values to strings.
47296         (WebCore::elementHasTextDecorationProperty): 
47297         (WebCore::createMarkup):
47298
47299 2007-03-21  Justin Garcia  <justin.garcia@apple.com>
47300
47301         Reviewed by oliver
47302
47303         <rdar://problem/5075944> 
47304         REGRESSION: Partially selected underlined content pastes as plain text
47305         
47306         We stopped adding markup for all the ancestors
47307         of lastClosed up to the commonAncestorBlock
47308         because it was adding a lot of unnecessary markup.
47309         This caused us to lose underlining when copying a 
47310         partially selected underlined element (even though 
47311         we put all styles that the copied markup inherits 
47312         into a style span, because the text-decoration 
47313         isn't inheritable).
47314
47315         * editing/markup.cpp:
47316         (WebCore::styleFromMatchedRulesAndInlineDecl): Moved
47317         code here.
47318         (WebCore::elementHasTextDecorationProperty): Added.
47319         (WebCore::createMarkup): If the copied markup has a
47320         text-decoration because some common ancestor has
47321         a text-decoration property set, include that ancestor
47322         and all its descendants in the copied markup.
47323
47324 2007-03-21  Oliver Hunt  <oliver@apple.com>
47325
47326         Reviewed by Antti.
47327
47328         Update a few SVG attribute parsers to be more defensive against
47329         reading beyond the end of input. 
47330
47331         Fixes rdar://problem/5077218 -- SVG transform parser runs past
47332         end of buffer when running fuzzing test
47333
47334         * ksvg2/svg/SVGParserUtilities.cpp:
47335         (WebCore::SVGPathParser::parseSVG):
47336         * ksvg2/svg/SVGParserUtilities.h:
47337         (WebCore::skipOptionalSpacesOrDelimiter):
47338         * ksvg2/svg/SVGTransformable.cpp:
47339         (WebCore::parseTransformParamList):
47340         (WebCore::SVGTransformable::parseTransformAttribute):
47341
47342 2007-03-21  Alexey Proskuryakov  <ap@webkit.org>
47343
47344         Reviewed by Mitz.
47345
47346         http://bugs.webkit.org/show_bug.cgi?id=13140
47347         Crash after loading SVG fragment with XMLHttpRequest (Yosemite Map Geology Layer)
47348
47349         Test: svg/carto.net/frameless-svg-parse-error.html
47350
47351         * ksvg2/misc/SVGDocumentExtensions.cpp:
47352         (WebCore::SVGDocumentExtensions::reportError): Added a null check.
47353         (WebCore::SVGDocumentExtensions::reportWarning): Ditto.
47354
47355 2007-03-21  Beth Dakin  <bdakin@apple.com>
47356
47357         Reviewed by Geoff.
47358
47359         Fix for <rdar://problem/5072678> Crash in
47360         RenderLayer::scrollRectToVisible with MallocScribble enabled
47361
47362         I tried to fix this earlier today but my fix caused a regression
47363         scrolling through RSS pages. It turns out that sometimes scroll
47364         events need to propagate immediately, and sometimes they must be
47365         delayed or they risk deleting objects that are expected to be
47366         around after the event has propagated. Mitz's original fix made
47367         sheduleEvent() only delay events that happen during layout. This
47368         fix marks two other places in addition to layout where events also
47369         need to be delayed. These two places are places that were marked
47370         with FIXMEs that Mitz removed in his original patch. (There was a
47371         third FIXME in RenderLayer::updateScrollInfoAfterLayout() but that
47372         case is only called through layout and is covered by Mitz's
47373         original patch.)
47374
47375         * page/FrameView.cpp:
47376         (WebCore::FrameView::~FrameView): Added assertion.
47377         (WebCore::FrameView::layout): Call new functions to increment and 
47378         decrement the queued events count.
47379         (WebCore::FrameView::pauseScheduledEvents):
47380         (WebCore::FrameView::resumeScheduledEvents): Decrement queued 
47381         events count and dispatch events if the count has zeroed.
47382         * page/FrameView.h:
47383         * rendering/RenderLayer.cpp:
47384         (WebCore::RenderLayer::scrollRectToVisible):
47385         (WebCore::Marquee::start):
47386
47387 2007-03-21  Mitz Pettel  <mitz@webkit.org>
47388
47389         Reviewed by John Sullivan.
47390
47391         - fix http://bugs.webkit.org/show_bug.cgi?id=13130
47392           REGRESSION: Sometimes a frame resizer keeps following the mouse after mouseup
47393
47394         * rendering/RenderFrameSet.cpp:
47395         (WebCore::RenderFrameSet::userResize): Reordered the code to allow resizing
47396         to be terminated by a mouseup event regardless of whether the frameset needs
47397         layout.
47398
47399 2007-03-20  Anders Carlsson  <acarlsson@apple.com>
47400
47401         Reviewed by Oliver.
47402
47403         <rdar://problem/5077252> 
47404         In NetNewsWire 2.1.1 and 3.0d62, a crash occurs after triple-clicking a link on the page
47405         
47406         * loader/FrameLoader.cpp:
47407         (WebCore::FrameLoader::load):
47408         Move the m_inStopAllLoaders check to the load function that's common for loading a request or substitute data.
47409
47410 2007-03-20  Brady Eidson  <beidson@apple.com>
47411
47412         Reviewed by Anders.
47413
47414         <rdar://problem/5073391> and http://bugs.webkit.org/show_bug.cgi?id=13137
47415
47416         Crash in IconDatabase when private browsing is enabled.
47417
47418         The problem was caused by http://trac.webkit.org/projects/webkit/changeset/20182 
47419         which changed many uses of char[] and Vector<char> to SharedBuffer.  The patch
47420         tended to literally replace a Vector<char> with RefPtr<SharedBuffers> but forgot
47421         to enforce the concept that Vector<char>'s always exist, whereas RefPtr<SharedBuffers>
47422         can be null.  This led to derefs.
47423
47424         I took the opportunity to rework the iconDB functions to live in a SharedBuffer 
47425         world, as that didn't exist when they were originally written - now they just return
47426         SharedBuffers instead of taking a Vector<char>& as a parameter
47427
47428         * loader/icon/IconDatabase.cpp:
47429         (WebCore::IconDatabase::imageDataForIconURL): Return a SharedBuffer
47430         (WebCore::IconDatabase::iconForPageURL): Null check the SharedBuffer before asking
47431           it if it's empty
47432         (WebCore::IconDatabase::imageDataForIconURLQuery): Return a new SharedBuffer
47433
47434         * loader/icon/IconDatabase.h: Return SharedBuffer's instead of taking Vector<char>&'s
47435
47436 2007-03-20  Adam Roben  <aroben@apple.com>
47437
47438         Rubberstamped by Adele.
47439
47440         Roll out r20348 because it was causing crashes.
47441
47442         * page/FrameView.cpp:
47443         (WebCore::FrameViewPrivate::FrameViewPrivate):
47444         (WebCore::FrameView::layout):
47445         (WebCore::FrameView::scheduleEvent):
47446
47447 2007-03-20  Timothy Hatcher  <timothy@apple.com>
47448
47449         Reviewed by Kevin Decker.
47450
47451         Rolling out part of r19828 that caused a scrolling regression in Mail.
47452
47453         <rdar://problem/4820817> Message jumps around when trying to select text
47454
47455         * platform/mac/ScrollViewMac.mm:
47456         (WebCore::ScrollView::visibleContentRect):
47457         (WebCore::ScrollView::updateContents):
47458
47459 2007-03-20  Brady Eidson  <beidson@apple.com>
47460
47461         Reviewed by John
47462
47463         <rdar://5071341> - Crash in IconLoader::finishLoading()
47464         
47465         Though the reproducibility of the crash is still elusive, there's been a crasher likely uncovered 
47466         Hyatt's recent caching changings to the IconLoader.  This crash tends to hit on sites without favicons,
47467         that serve up complex 404 pages, often when the load is cancelled or redirected.  Occasionally, it *seems*
47468         the IconLoader is getting failed/cancelled twice.
47469         
47470         This patch adds some assertions and a "fail gracefully in a release build" check that will have to
47471         serve us until we know more about the cause.
47472
47473         * loader/icon/IconLoader.cpp:
47474         (WebCore::IconLoader::didFail): Add an assertion to catch this case
47475         (WebCore::IconLoader::finishLoading): Add an assertion to catch the case, and fail
47476           gracefully in debug builds.  Also add an efficiency check to not commit to the DB if there is no
47477           IconURL
47478
47479 2007-03-20  Antti Koivisto  <antti@apple.com>
47480
47481         Reviewed by Darin.
47482
47483         - fix http://bugs.webkit.org/show_bug.cgi?id=10747
47484         REGRESSION: Using two fingers on a trackpad to scroll inside a text area makes the whole page move
47485         <rdar://problem/5045710>
47486         
47487         Eat smooth scroll events in WebCore if pointer is over scrollable area. Not
47488         really a good fix, smooth scrolling should be supported properly. It should do for now.
47489
47490         * page/EventHandler.cpp:
47491         (WebCore::EventHandler::handleWheelEvent):
47492         * rendering/RenderListBox.cpp:
47493         (WebCore::RenderListBox::isScrollable):
47494         * rendering/RenderListBox.h:
47495         * rendering/RenderObject.cpp:
47496         (WebCore::RenderObject::isScrollable):
47497         * rendering/RenderObject.h:
47498         * rendering/RenderTextControl.cpp:
47499         (WebCore::RenderTextControl::isScrollable):
47500         * rendering/RenderTextControl.h:
47501
47502 2007-03-20  Beth Dakin  <bdakin@apple.com>
47503
47504         Reviewed by Geoff.
47505
47506         Covered by existing test case.
47507
47508         Fix for <rdar://problem/5072678> Crash in 
47509         RenderLayer::scrollRectToVisible with MallocScribble enabled
47510
47511         This removes some code that was added with http://bugs.webkit.org/
47512         show_bug.cgi?id=8360. This code was not needed to fix that bug, but 
47513         the idea behind it was that there are times when it is safe for 
47514         scheduleEvent() to propagate the event immediately. The 
47515         MallocScribble crash revealed that this assumption was a bit too 
47516         broad; the cause of the crash was that we were propagating events 
47517         immediately when it was not safe. Mitz and I discussed this online 
47518         and we agree that the safest solution is to revert to the old 
47519         behavior here, and always delay the propagation of the event. 
47520
47521         * page/FrameView.cpp:
47522         (WebCore::FrameViewPrivate::FrameViewPrivate):
47523         (WebCore::FrameView::layout):
47524         (WebCore::FrameView::scheduleEvent):
47525
47526 2007-03-20  Brady Eidson  <beidson@apple.com>
47527
47528         Reviewed by John Sullivan
47529
47530         Add some very helpful logging to the IconLoader's SubresourceLoaderClient impl.
47531
47532         * loader/icon/IconLoader.cpp:
47533         (WebCore::IconLoader::didReceiveResponse):
47534         (WebCore::IconLoader::didReceiveData):
47535         (WebCore::IconLoader::didFail):
47536         (WebCore::IconLoader::didFinishLoading):
47537
47538 2007-03-20  Justin Garcia  <justin.garcia@apple.com>
47539
47540         Reviewed by darin
47541
47542         <rdar://problem/5071074> 
47543         REGRESSION: Links are pasted as plain text at certain positions
47544         
47545         moveParagraphs calls createMarkup without annotation, which leaves
47546         out anchor elements that aren't fully selected.
47547
47548         * editing/CompositeEditCommand.cpp:
47549         (WebCore::CompositeEditCommand::moveParagraphs): We don't want 
47550         createMarkup to do full annotation here.  Doing so could include 
47551         special ancestor blocks, which would prevent the copied content 
47552         from appearing in the destination paragraph when it's re-inserted.  
47553         Annotation would also inline styles from style sheets,  which is 
47554         unnecessary because the content is being moved to the same 
47555         document it's being moved from.
47556         Added a new bool to createMarkup that when true allows markup for 
47557         special ancestors as long as they are inline when annotation is off.
47558         * editing/markup.cpp:
47559         (WebCore::createMarkup): Don't set specialCommonAncestor if annotation
47560         is off, unless it's inline and we've been told it's ok to include such
47561         elements.
47562         * editing/markup.h:
47563
47564 2007-03-20  Alexey Proskuryakov  <ap@webkit.org>
47565
47566         Reviewed by Darin.
47567
47568         http://bugs.webkit.org/show_bug.cgi?id=12497
47569         Implement XPath result ordering.
47570
47571         XPath::NodeVector typedef is replaced with a real XPath::NodeSet class that knows how 
47572         to sort itself, and can remember whether it has been already sorted.
47573
47574         * CMakeLists.txt:
47575         * WebCore.pro:
47576         * WebCore.xcodeproj/project.pbxproj:
47577         * WebCoreSources.bkl:
47578         Added XPathNodeSet files.
47579
47580         * xml/XPathExpression.cpp: Fixed includes.
47581
47582         * xml/XPathFunctions.cpp:
47583         (WebCore::XPath::FunId::evaluate): Mark the resulting node-set as unsorted.
47584         (WebCore::XPath::FunLocalName::evaluate): Replacing NodeVector with NodeSet.
47585         (WebCore::XPath::FunNamespaceURI::evaluate): Ditto.
47586         (WebCore::XPath::FunName::evaluate): Ditto.
47587         (WebCore::XPath::FunCount::evaluate): Ditto.
47588         (WebCore::XPath::FunSum::evaluate): Ditto.
47589
47590         * xml/XPathNodeSet.cpp: Added.
47591         (WebCore::XPath::parentWithDepth):
47592         (WebCore::XPath::sortBlock):
47593         (WebCore::XPath::NodeSet::sort): Sort the node-set in document order.
47594         (WebCore::XPath::NodeSet::reverse): Reverse the order (useful for making axes such as 
47595         parent or ancestor sorted).
47596         (WebCore::XPath::NodeSet::firstNode): Returns the first node in document order; currently
47597         implemented via fully sorting the node-set, but this can obviously be optimized.
47598         (WebCore::XPath::NodeSet::anyNode): Added for symmetry with firstNode().
47599         
47600         * xml/XPathNodeSet.h: Added.
47601         (WebCore::XPath::NodeSet::NodeSet):
47602         (WebCore::XPath::NodeSet::operator=):
47603         (WebCore::XPath::NodeSet::size):
47604         (WebCore::XPath::NodeSet::isEmpty):
47605         (WebCore::XPath::NodeSet::operator[]):
47606         (WebCore::XPath::NodeSet::reserveCapacity):
47607         (WebCore::XPath::NodeSet::clear):
47608         (WebCore::XPath::NodeSet::swap):
47609         (WebCore::XPath::NodeSet::append):
47610         (WebCore::XPath::NodeSet::markSorted):
47611         (WebCore::XPath::NodeSet::isSorted):
47612         Most of these methods just call Vector counterparts. 
47613
47614         * xml/XPathParser.cpp: Updated the copyright notice.
47615
47616         * xml/XPathPath.cpp:
47617         (WebCore::XPath::Filter::evaluate): Replacing NodeVector with NodeSet.
47618         (WebCore::XPath::Path::evaluate): Ditto.
47619         (WebCore::XPath::LocationPath::evaluate): Replacing NodeVector with NodeSet. This function
47620         always marks the result as unsorted, because it is hard to tell whether a step breaks node order.
47621         Identifying and implementing special cases when it is not necessary to do so is an important
47622         future optimization.
47623
47624         * xml/XPathPath.h: Replacing NodeVector with NodeSet.
47625         * xml/XPathPredicate.cpp:
47626         (WebCore::XPath::EqTestOp::compare): Replacing NodeVector with NodeSet.
47627         (WebCore::XPath::Union::evaluate): Replacing NodeVector with NodeSet. Currently, Union just
47628         marks the result as unordered; we can consider using merge sort to avoid this.
47629
47630         * xml/XPathResult.cpp:
47631         (WebCore::XPathResult::XPathResult): Replacing NodeVector with NodeSet.
47632         (WebCore::XPathResult::singleNodeValue): Ditto.
47633         (WebCore::XPathResult::snapshotLength): Ditto.
47634         (WebCore::XPathResult::iterateNext): Ditto.
47635         (WebCore::XPathResult::snapshotItem): Ditto.
47636         (WebCore::XPathResult::convertTo): Ditto. Sort the result when requested to.
47637
47638         * xml/XPathResult.h: Replacing NodeVector with NodeSet.
47639
47640         * xml/XPathStep.cpp:
47641         (WebCore::XPath::Step::evaluate): If the input is not sorted, mark the output as such, too.
47642         (WebCore::XPath::Step::nodesInAxis): Fixed a number of bugs when enumerating with an
47643         attribute context node.
47644         (WebCore::XPath::Step::nodeTestMatches): Replacing NodeVector with NodeSet.
47645         * xml/XPathStep.h: Ditto.
47646
47647         * xml/XPathUtil.cpp:
47648         (WebCore::XPath::isValidContextNode): XPath data model doesn't put attribute data into child
47649         nodes, so passing such node as a context could cause problems.
47650
47651         * xml/XPathUtil.h: Removed NodeVector typedef.
47652
47653         * xml/XPathValue.cpp:
47654         (WebCore::XPath::Value::Value):
47655         (WebCore::XPath::Value::toNodeSet):
47656         (WebCore::XPath::Value::toBoolean):
47657         (WebCore::XPath::Value::toNumber):
47658         (WebCore::XPath::Value::toString):
47659         * xml/XPathValue.h:
47660         (WebCore::XPath::Value::):
47661         (WebCore::XPath::Value::isNodeSet):
47662         Replacing NodeVector with NodeSet.
47663
47664 2007-03-21  Mark Rowe  <mrowe@apple.com>
47665
47666         Build fix.
47667
47668         * bindings/objc/WebScriptObject.mm:
47669         (-[WebScriptObject methodForSelector:]):
47670         (-[WebScriptObject respondsToSelector:]):
47671
47672 2007-03-21  Mark Rowe  <mrowe@apple.com>
47673
47674         Reviewed by Tim Hatcher.
47675
47676         Fix for http://bugs.webkit.org/show_bug.cgi?id=13129.
47677         Bug 13129: Democracy Player dies in NSException from WebScriptObject on startup.
47678
47679         Some cross-language scripting bridges use the presence of -(int)count to determine
47680         whether to treat objects as sequence-like.  All WebScriptObject's exposed this method
47681         which lead to non-collection WebScriptObject's being mishandled by PyObjC.  We now
47682         expose -count only when the object we wrap looks like a collection from a JavaScript
47683         point of view (eg, it has a length property).
47684
47685         * bindings/objc/WebScriptObject.mm:
47686         (-[WebScriptObject _shouldRespondToCount]):
47687         (-[WebScriptObject methodForSelector:]):
47688         (-[WebScriptObject respondsToSelector:]):
47689         (-[WebScriptObject _count]):
47690         * bindings/objc/WebScriptObjectPrivate.h:
47691
47692 2007-03-20  Darin Adler  <darin@apple.com>
47693
47694         * page/EventHandler.cpp: (WebCore::EventHandler::handleMouseMoveEvent):
47695         Fix obvious typo in the change from last night -- forgot to assign to the variable.
47696
47697 2007-03-20  Dave Hyatt  <hyatt@apple.com>
47698
47699         Refactor fonts a bit for portability.
47700        
47701         Reviewed by aroben
47702
47703         * platform/Font.cpp:
47704         (WebCore::Font::drawSimpleText):
47705         (WebCore::Font::drawGlyphBuffer):
47706         (WebCore::Font::floatWidthForSimpleText):
47707         * platform/Font.h:
47708         * platform/FontData.h:
47709         (WebCore::FontData::isSystemFont):
47710         (WebCore::FontData::scriptCache):
47711         * platform/GlyphBuffer.h:
47712         (WebCore::GlyphBuffer::add):
47713
47714 2007-03-20  Anders Carlsson  <acarlsson@apple.com>
47715
47716         Reviewed by Adam.
47717
47718         Stub out a couple of CFNetwork backend functions.
47719         
47720         * platform/network/ResourceHandle.h:
47721
47722 2007-03-19  Oliver Hunt  <oliver@apple.com>
47723
47724         Reviewed by Ada.
47725
47726         Protect against possibility of JS detaching a frame (and losing its view)
47727         midway through a mouse move.
47728
47729         * page/EventHandler.cpp:
47730         (WebCore::EventHandler::handleMouseMoveEvent):
47731
47732 2007-03-19  Alexey Proskuryakov  <ap@webkit.org>
47733
47734         Reviewed by Darin.
47735
47736         http://bugs.webkit.org/show_bug.cgi?id=13107
47737         XPath should raise an exception when trying to parse an unknown function
47738
47739         Test: fast/xpath/invalid-functions.html
47740
47741         * xml/XPathFunctions.cpp:
47742         (WebCore::XPath::createFunction): Return 0 if the function couldn't be created.
47743         * xml/XPathGrammar.y: Handle nulls returned from createFunction().
47744
47745 2007-03-19  Adele Peterson  <adele@apple.com>
47746
47747         Reviewed by Beth.
47748
47749         Fix for http://bugs.webkit.org/show_bug.cgi?id=13087
47750         <rdar://problem/5064316> REGRESSION: Allow setting the checked attribute in js and in markup for unnamed radio buttons (dominos.com)
47751
47752         Test: fast/forms/radio_checked_name.html
47753
47754         We were matching a WinIE quirk that does not allow a user to check and uncheck an unnamed radio button.  But they still
47755         allow the checked attribute to be set in html, and changed in javascript.  So this change matches that behavior.
47756
47757         * html/HTMLInputElement.cpp:
47758         (WebCore::HTMLInputElement::parseMappedAttribute): We no longer need a special call to setChecked when parsing the name
47759          attribute, since we setChecked will now work with unnamed radio buttons.
47760         (WebCore::HTMLInputElement::preDispatchEventHandler): Added comment.
47761         (WebCore::HTMLInputElement::setChecked): Don't check for the unnamed radio button case here.
47762         (WebCore::HTMLInputElement::postDispatchEventHandler): Don't call setChecked for unnamed radio buttons.
47763         (WebCore::HTMLInputElement::defaultEventHandler): ditto.
47764
47765 2007-03-19  Adam Roben  <aroben@apple.com>
47766
47767         Rubberstamped by Oliver.
47768
47769         * bridge/JavaScriptStatistics.cpp: Added missing header for
47770         correctness.
47771
47772 2007-03-19  Andrew Wellington  <proton@wiretapped.net>
47773
47774         Reviewed by Maciej.
47775
47776         Really set Xcode editor to use 4 space indentation (http://webkit.org/coding/coding-style.html)
47777
47778         * WebCore.xcodeproj/project.pbxproj:
47779
47780 2007-03-19  Justin Garcia  <justin.garcia@apple.com>
47781
47782         Reviewed by darin
47783         
47784         <rdar://problem/5071074> 
47785         REGRESSION: Links that aren't fully selected copy and paste as only text
47786         
47787         We stopped adding markup for all commonAncestorBlocks
47788         and the ancestors of lastClosed up to them because it 
47789         was adding a lot of unnecessary markup.
47790
47791         * editing/markup.cpp:
47792         (WebCore::createMarkup): Also include markup for nodes
47793         up to an enclosing anchor.  Cleaned up the code for
47794         including special common ancestors a bit.
47795
47796 2007-03-19  Nikolas Zimmermann  <zimmermann@kde.org>
47797
47798         Reviewed by Lars Knoll.
47799
47800         Fix crash when opening a SVG document which contains SVG elements, but no <svg> root element.
47801         Moving the mouse was crashing WebKit. Fixes svg/hixie/dynamic/006.xml.
47802
47803         * rendering/RenderObject.cpp:
47804         (WebCore::RenderObject::updateHitTestResult):
47805
47806 2007-03-19  Mitz Pettel  <mitz@webkit.org>
47807
47808         Reviewed by Hyatt.
47809
47810         - fix http://bugs.webkit.org/show_bug.cgi?id=13117
47811         REGRESSION (r14658): Flickering text fields when updating via javascript
47812
47813         * page/Frame.cpp:
47814         (WebCore::Frame::forceLayout): Added a flag to allow partial relayout.
47815         * page/Frame.h:
47816         * page/mac/WebCoreFrameBridge.mm:
47817         (-[WebCoreFrameBridge forceLayoutAdjustingViewSize:]): Allow partial relayout
47818         if not adjusting view size.
47819         (-[WebCoreFrameBridge needsLayout]): Changed to check for pending subtree
47820         layout instead of just whether the root needs layout.
47821
47822 2007-03-18  Nikolas Zimmermann  <zimmermann@kde.org>
47823
47824         Reviewed by Maciej.
47825
47826         Make JS function calls on POD-types (ie. SVGLength) take effect.
47827         Calling ie. newValueInSpecifiedUnits on SVGLength works as expected.
47828
47829         This worked fine before we switched to SVGLength POD type, so this
47830         can be considered as P1 regression fix.
47831
47832         Partly fix svg/hixie/dynamic/005-broken.svg. We match Opera now though
47833         it's not yet completly fixed. Setting baseVal attribute on SVGAnimatedString
47834         doesn't work as expected - needs a seperated fix.
47835
47836         * bindings/scripts/CodeGeneratorJS.pm:
47837
47838 2007-03-19  Adele Peterson  <adele@apple.com>
47839
47840         Reviewed by Adam.
47841
47842         Adding comments and a little cleanup from my last checkin.
47843
47844         * html/HTMLSelectElement.cpp:
47845         (WebCore::HTMLSelectElement::setSelectedIndex): Removed commented out assert.  Added comment about how we use onChange.
47846         (WebCore::HTMLSelectElement::selectAll): Added comment about how we use saveLastSelection and onChange.
47847         (WebCore::HTMLSelectElement::dispatchFocusEvent): ditto.
47848         (WebCore::HTMLSelectElement::dispatchBlurEvent): ditto.
47849         (WebCore::HTMLSelectElement::menuListDefaultEventHandler): ditto.
47850         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): ditto.
47851         (WebCore::HTMLSelectElement::menuListOnChange): Added assert that usesMenuList() is true.
47852         (WebCore::HTMLSelectElement::listBoxOnChange): Added assert that usesMenuList() is false.
47853         (WebCore::HTMLSelectElement::saveLastSelection): Added early return for menu lists.
47854
47855 2007-03-19  Mitz Pettel  <mitz@webkit.org>
47856
47857         Reviewed by Tim Hatcher.
47858
47859         - fix http://bugs.webkit.org/show_bug.cgi?id=13091
47860           REGRESSION (r20075): Wrong text style and pixel break in Apple Store Locator HUD
47861
47862         Test: fast/innerHTML/additional-inline-style.html
47863
47864         * editing/markup.cpp:
47865         (WebCore::startMarkup): Changed to add inline style based on CSS rules only
47866         in AnnotateForInterchange mode.
47867
47868 2007-03-19  Zack Rusin  <zrusin@trolltech.com>
47869
47870         Compile fix.
47871
47872         * platform/qt/ScrollViewQt.cpp:
47873         (WebCore::ScrollView::update):
47874
47875 2007-03-19  Adam Roben  <aroben@apple.com>
47876
47877         Reviewed by Hyatt and Maciej.
47878
47879         Renamed WebCoreJavaScript to JavaScriptStatistics and made it C++ as
47880         part of <rdar://problem/5071653>.
47881
47882         All layout tests pass.
47883
47884         * WebCore.exp: Updated.
47885         * WebCore.xcodeproj/project.pbxproj: Updated.
47886         * bridge/JavaScriptStatistics.cpp: Moved from
47887         bridge/mac/WebCoreJavaScript.mm, and converted to C++.
47888         (WebCore::collect):
47889         (WebCore::JavaScriptStatistics::objectCount):
47890         (WebCore::JavaScriptStatistics::interpreterCount):
47891         (WebCore::JavaScriptStatistics::protectedObjectCount):
47892         (WebCore::JavaScriptStatistics::rootObjectTypeCounts):
47893         (WebCore::JavaScriptStatistics::garbageCollect):
47894         (WebCore::JavaScriptStatistics::garbageCollectOnAlternateThread):
47895         (WebCore::JavaScriptStatistics::shouldPrintExceptions):
47896         (WebCore::JavaScriptStatistics::setShouldPrintExceptions):
47897         * bridge/JavaScriptStatistics.h: Added.
47898         * bridge/mac/WebCoreJavaScript.h: Removed.
47899         * bridge/mac/WebCoreJavaScript.mm: Removed.
47900
47901 2007-03-18  Maciej Stachowiak  <mjs@apple.com>
47902
47903         Reviewed by Mark.
47904
47905         - avoid static construction (and global variable access) in a smarter, more portable way,
47906         to later enable MUTLI_THREAD mode to work on other platforms and compilers.
47907         
47908         * bindings/js/JSCustomXPathNSResolver.cpp:
47909         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
47910         * bindings/js/JSHTMLInputElementBase.cpp:
47911         (WebCore::JSHTMLInputElementBaseFunction::JSHTMLInputElementBaseFunction):
47912         * bindings/js/JSHTMLOptionElementConstructor.cpp:
47913         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
47914         * bindings/js/JSXMLHttpRequest.cpp:
47915         (KJS::JSXMLHttpRequestConstructorImp::JSXMLHttpRequestConstructorImp):
47916         * bindings/js/JSXSLTProcessor.cpp:
47917         (KJS::XSLTProcessorConstructorImp::XSLTProcessorConstructorImp):
47918         * bindings/js/kjs_dom.cpp:
47919         (KJS::DOMNamedNodeMap::getOwnPropertySlot):
47920         (KJS::DOMNamedNodesCollection::getOwnPropertySlot):
47921         * bindings/js/kjs_events.cpp:
47922         (KJS::JSAbstractEventListener::handleEvent):
47923         * bindings/js/kjs_html.cpp:
47924         (KJS::HTMLElementFunction::HTMLElementFunction):
47925         (KJS::JSHTMLCollection::getOwnPropertySlot):
47926         * bindings/js/kjs_window.cpp:
47927         (KJS::ScheduledAction::execute):
47928         * bindings/objc/WebScriptObject.mm:
47929         * bindings/scripts/CodeGeneratorJS.pm:
47930
47931 2007-03-18  Andrew Wellington  <proton@wiretapped.net>
47932
47933         Reviewed by Mark Rowe
47934
47935         Set Xcode editor to use 4 space indentation (http://webkit.org/coding/coding-style.html)
47936
47937         * WebCore.xcodeproj/project.pbxproj:
47938
47939 2007-03-18  David Hyatt  <hyatt@apple.com>
47940
47941         Fix for REGRESSION bug 13108, frame borders being painted when they shouldn't be.  Rework both frame borders
47942         and resizing to be more like other browsers.
47943
47944         Reviewed by ggaren
47945
47946         fast/frames/no-frame-borders.html
47947
47948         * html/HTMLFrameElement.cpp:
47949         (WebCore::HTMLFrameElement::HTMLFrameElement):
47950         (WebCore::HTMLFrameElement::attach):
47951         (WebCore::HTMLFrameElement::parseMappedAttribute):
47952         * html/HTMLFrameElement.h:
47953         (WebCore::HTMLFrameElement::hasFrameBorder):
47954         * html/HTMLFrameElementBase.cpp:
47955         (WebCore::HTMLFrameElementBase::HTMLFrameElementBase):
47956         (WebCore::HTMLFrameElementBase::parseMappedAttribute):
47957         * html/HTMLFrameElementBase.h:
47958         * html/HTMLFrameSetElement.cpp:
47959         (WebCore::HTMLFrameSetElement::attach):
47960         * html/HTMLFrameSetElement.h:
47961         (WebCore::HTMLFrameSetElement::hasFrameBorder):
47962         * html/HTMLIFrameElement.cpp:
47963         (WebCore::HTMLIFrameElement::HTMLIFrameElement):
47964         * rendering/RenderFrame.cpp:
47965         (WebCore::RenderFrame::edgeInfo):
47966         * rendering/RenderFrame.h:
47967         * rendering/RenderFrameSet.cpp:
47968         (WebCore::RenderFrameSet::paint):
47969         (WebCore::RenderFrameSet::GridAxis::resize):
47970         (WebCore::RenderFrameSet::fillFromEdgeInfo):
47971         (WebCore::RenderFrameSet::computeEdgeInfo):
47972         (WebCore::RenderFrameSet::edgeInfo):
47973         (WebCore::RenderFrameSet::layout):
47974         (WebCore::RenderFrameSet::startResizing):
47975         (WebCore::RenderFrameSet::continueResizing):
47976         (WebCore::RenderFrameSet::canResizeRow):
47977         (WebCore::RenderFrameSet::canResizeColumn):
47978         (WebCore::RenderFrameSet::splitPosition):
47979         (WebCore::RenderFrameSet::hitTestSplit):
47980         (WebCore::RenderFrameSet::dump):
47981         * rendering/RenderFrameSet.h:
47982         (WebCore::):
47983         (WebCore::FrameEdgeInfo::FrameEdgeInfo):
47984         (WebCore::FrameEdgeInfo::preventResize):
47985         (WebCore::FrameEdgeInfo::allowBorder):
47986         (WebCore::FrameEdgeInfo::setPreventResize):
47987         (WebCore::FrameEdgeInfo::setAllowBorder):
47988
47989 2007-03-19  Mark Rowe  <mrowe@apple.com>
47990
47991         Rubber-stamped by Brady.
47992
47993         Update references to bugzilla.opendarwin.org with bugs.webkit.org.
47994
47995         * ChangeLog:
47996         * WebCore.vcproj/WebCore/build-generated-files.sh:
47997         * manual-tests/ATSU-bad-layout.html:
47998         * manual-tests/accidental-strict-mode.html:
47999         * manual-tests/applet-param-no-name.html:
48000         * manual-tests/bidi-parens.html:
48001         * manual-tests/bugzilla-3855.html:
48002         * manual-tests/bugzilla-4840.html:
48003         * manual-tests/bugzilla-6821.html:
48004         * manual-tests/containing-block-position-chage.html:
48005         * manual-tests/contenteditable-link.html:
48006         * manual-tests/css3-cursor-fallback-quirks.html:
48007         * manual-tests/css3-cursor-fallback-strict.html:
48008         * manual-tests/custom-cursors.html:
48009         * manual-tests/dictionary-scrolled-iframe.html:
48010         * manual-tests/dom-manipulation-on-resize.html:
48011         * manual-tests/drag-image-to-address-bar.html:
48012         * manual-tests/empty-link-target.html:
48013         * manual-tests/empty-title-popup.html:
48014         * manual-tests/first-line-style-crash.html:
48015         * manual-tests/invalid-mouse-event.html:
48016         * manual-tests/left-overflow-repaint.html:
48017         * manual-tests/linkjump-3.html:
48018         * manual-tests/log-keypress-events.html:
48019         * manual-tests/named-window-blank-target.html:
48020         * manual-tests/plain-text-paste.html:
48021         * manual-tests/plugin-controller-datasource.html:
48022         * manual-tests/pre-tab-selection-rect.html:
48023         * manual-tests/redirection-target.html:
48024         * manual-tests/redraw-page-cache-visited-links.html:
48025         * manual-tests/reset-initiatedDrag.html:
48026         * manual-tests/resources/named-window-blank-target-step2.html:
48027         * manual-tests/resources/named-window-blank-target-step3.html:
48028         * manual-tests/resources/named-window-blank-target-step4.html:
48029         * manual-tests/resources/redraw-page-cache-visited-links-2.html:
48030         * manual-tests/scrollbar-hittest.html:
48031         * manual-tests/scrollbar-hittest2.html:
48032         * manual-tests/subview-click-assertion.html:
48033         * manual-tests/tabbing-input-google.html:
48034         * manual-tests/text-field-autoscroll.html:
48035         * manual-tests/textarea-after-stylesheet-link.html:
48036         * manual-tests/textarea-focus.html:
48037         * manual-tests/whitespace-pre-affinity.html:
48038
48039 2007-03-18  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
48040
48041         Not reviewed - gdk build fix.
48042
48043         * platform/gdk/ScrollViewGdk.cpp:
48044         (WebCore::ScrollView::update): add a stub
48045
48046 2007-03-18  Brady Eidson  <beidson@apple.com>
48047
48048         Reviewed by Hyatt
48049
48050         http://bugs.webkit.org/show_bug.cgi?id=13111
48051         When stopped a load before it completes, partial images become the 
48052         broken image icon
48053
48054         * loader/loader.cpp:
48055         (WebCore::Loader::didFail): Split off into a method that knows the 
48056           difference between failed and cancelled.  If a load is cancelled,
48057           don't call error() on the object - only remove it from the cache
48058         (WebCore::Loader::cancelRequests): Call didFail(loader, true)
48059         * loader/loader.h: Added didFail(SubresourceLoader*, bool cancelled)
48060
48061 2007-03-18  Mitz Pettel  <mitz@webkit.org>
48062
48063         Reviewed by Adele.
48064
48065         - fix http://bugs.webkit.org/show_bug.cgi?id=13101
48066           REGRESSION (NativeTextField): Specifying word-wrap:break-word makes text field wrap
48067
48068         Test: fast/forms/input-text-word-wrap.html
48069
48070         * rendering/RenderTextControl.cpp:
48071         (WebCore::RenderTextControl::createInnerTextStyle): Force the inner block to
48072         'word-wrap:normal'.
48073
48074 2007-03-18  Dan Waylonis  <waylonis@mac.com>
48075
48076         Reviewed by Tim Hatcher.
48077
48078         Fix http://bugs.webkit.org/show_bug.cgi?id=13005
48079         Bug 13005: WebScriptObject +throwException needs NULL check.
48080
48081         Add checking for NULL interpreter before throwing exception.
48082
48083         * bindings/objc/WebScriptObject.mm:
48084         (+[WebScriptObject throwException:]):
48085
48086 2007-03-18  Geoffrey Garen  <ggaren@apple.com>
48087
48088         Reviewed by Oliver Hunt.
48089         
48090         Fixed http://bugs.webkit.org/show_bug.cgi?id=13106
48091         REGRESSION: Incomplete document.all implementation breaks abtelectronics.com 
48092         (Style Change Through JavaScript Blanks Content)
48093         
48094         When indexing into collections, treat the empty string as an invalid argument,
48095         instead of the number 0.
48096
48097         * bindings/js/kjs_html.cpp:
48098         (KJS::JSHTMLCollection::getOwnPropertySlot):
48099         (KJS::JSHTMLCollection::callAsFunction):
48100         (KJS::JSHTMLCollectionPrototypeFunction::callAsFunction):
48101
48102 2007-03-18  David Hyatt  <hyatt@apple.com>
48103
48104         Use fillRect instead of drawLine, since drawLine has some odd behavior (it's only used for borders).
48105
48106         Reviewed by aroben
48107
48108         * platform/graphics/IntRect.h:
48109         * rendering/RenderFrameSet.cpp:
48110         (WebCore::RenderFrameSet::paintColumnBorder):
48111         (WebCore::RenderFrameSet::paintRowBorder):
48112
48113 2007-03-18  David Hyatt  <hyatt@apple.com>
48114
48115         Change the frameborder color to be light gray for framesets.
48116
48117         Reviewed by aroben
48118
48119         * rendering/RenderFrameSet.cpp:
48120         (WebCore::borderFillColor):
48121         (WebCore::RenderFrameSet::paintColumnBorder):
48122         (WebCore::RenderFrameSet::paintRowBorder):
48123
48124 2007-03-18  David Hyatt  <hyatt@apple.com>
48125
48126         Make iframes work properly with frameborder="0".
48127
48128         Reviewed by aroben
48129
48130         * html/HTMLIFrameElement.cpp:
48131         (WebCore::HTMLIFrameElement::mapToEntry):
48132         (WebCore::HTMLIFrameElement::parseMappedAttribute):
48133
48134 2007-03-18  David Hyatt  <hyatt@apple.com>
48135
48136         Add a 2px border by default to <iframe>s for compatibility with other browsers.
48137
48138         Reviewed by aroben
48139
48140         * css/html4.css:
48141
48142 2007-03-18  David Hyatt  <hyatt@apple.com>
48143
48144         Move frame borders out of WebKit and into WebCore.
48145
48146         Reviewed by aroben, olliej
48147
48148         * bridge/mac/FrameViewMac.mm:
48149         * css/html4.css:
48150         * html/HTMLFrameSetElement.cpp:
48151         (WebCore::HTMLFrameSetElement::HTMLFrameSetElement):
48152         (WebCore::HTMLFrameSetElement::mapToEntry):
48153         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
48154         (WebCore::HTMLFrameSetElement::attach):
48155         * html/HTMLFrameSetElement.h:
48156         (WebCore::HTMLFrameSetElement::hasBorderColor):
48157         * page/FrameView.cpp:
48158         (WebCore::FrameViewPrivate::FrameViewPrivate):
48159         * page/FrameView.h:
48160         * page/mac/WebCoreFrameBridge.h:
48161         * platform/graphics/IntRect.h:
48162         (WebCore::IntRect::topLeft):
48163         (WebCore::IntRect::topRight):
48164         (WebCore::IntRect::bottomLeft):
48165         (WebCore::IntRect::bottomRight):
48166         * rendering/RenderFrame.cpp:
48167         (WebCore::RenderFrame::viewCleared):
48168         * rendering/RenderFrameSet.cpp:
48169         (WebCore::borderStartEdgeColor):
48170         (WebCore::borderEndEdgeColor):
48171         (WebCore::RenderFrameSet::paintColumnBorder):
48172         (WebCore::RenderFrameSet::paintRowBorder):
48173         (WebCore::RenderFrameSet::paint):
48174         * rendering/RenderFrameSet.h:
48175         * rendering/RenderPartObject.cpp:
48176         (WebCore::RenderPartObject::viewCleared):
48177         * rendering/RenderView.cpp:
48178         (WebCore::RenderView::repaintViewRectangle):
48179
48180 2007-03-17  David Hyatt  <hyatt@apple.com>
48181
48182         Make onload do an explicit paint when a top-level document is ready (to ensure that a first paint always
48183         happens before any timers set by the onload can fire).
48184
48185         Reviewed by aroben
48186
48187         * dom/Document.cpp:
48188         (WebCore::Document::implicitClose):
48189         * platform/ScrollView.h:
48190         * platform/mac/ScrollViewMac.mm:
48191         (WebCore::ScrollView::update):
48192
48193 2007-03-17  Dave Hyatt  <hyatt@apple.com>
48194
48195         Prevent starvation of user input and painting when processing timers.
48196         If we are already in the processing of a custom timer message, don't allow that
48197         processing to do another PostMessage.  Force SetTimer to be used instead.
48198       
48199         Reviewed by ggaren
48200
48201        * platform/win/SharedTimerWin.cpp:
48202         (WebCore::TimerWindowWndProc):
48203         (WebCore::setSharedTimerFireTime):
48204
48205 2007-03-17  Geoffrey Garen  <ggaren@apple.com>
48206
48207         Reviewed by Beth Dakin.
48208
48209         Fixed <rdar://problem/5070967> REGRESSION (r20211): Repro crash when 
48210         closing View Source window
48211         
48212         I award myself 0 points, and may God have mercy on my soul.
48213
48214         * bindings/js/kjs_proxy.cpp:
48215         (WebCore::KJSProxy::~KJSProxy):
48216
48217 2007-03-17  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
48218
48219         Not reviewed - gdk build fix.
48220
48221         * platform/gdk/TemporaryLinkStubs.cpp:
48222         (Pasteboard::writeURL):
48223
48224 2007-03-17  David Hyatt  <hyatt@apple.com>
48225
48226         Fix tiny PLT regression.  Don't examine the border/background data for RenderImage when images change
48227         unless we actually have a border/background.
48228
48229         Reviewed by Brady
48230
48231         * rendering/RenderImage.cpp:
48232         (WebCore::RenderImage::imageChanged):
48233
48234 2007-03-17  Nikolas Zimmermann  <zimmermann@kde.org>
48235
48236         Reviewed by Sam Weinig.
48237
48238         Fixes: http://bugs.webkit.org/show_bug.cgi?id=13046 (CSS styles on hover and focus are broken for <use>)
48239         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12838 (SVG <use> CSS styles broken)
48240         Added test: svg/custom/use-css-events.svg
48241
48242         In general this fixes the peepo.co.uk website.
48243
48244         Forgot to pass the actual StyleChange to the recalcStyle() function,
48245         when calling it on the shadow tree root element.
48246
48247         * ksvg2/svg/SVGUseElement.cpp:
48248         (WebCore::SVGUseElement::recalcStyle):
48249
48250 2007-03-17  Timothy Hatcher  <timothy@apple.com>
48251
48252         Reviewed by Mark Rowe.
48253
48254         Made Version.xcconfig smarter when building for different configurations.
48255         Now uses the 522+ OpenSource version for Debug and Release, while using the
48256         full 522.4 version for Production builds. The system prefix is also computed
48257         based on the current system, so 4522.4 on Tiger and 5522.4 on Leopard.
48258
48259         * Configurations/Version.xcconfig:
48260         * Configurations/WebCore.xcconfig:
48261
48262 2007-03-17  Antti Koivisto  <antti@apple.com>
48263
48264         Reviewed by Adele.
48265
48266         Fix http://bugs.webkit.org/show_bug.cgi?id=12595
48267         REGRESSION: Can't add item to cart at lnt.com (JS type error)
48268         <rdar://problem/4722863>
48269         
48270         Emulate Firefox behavior where form elements accessed by a name
48271         can be accessed with that name later even if the name changes or
48272         even if element is removed from the document.
48273         
48274         This is loosely based on Darin's earlier patch for the same problem but
48275         is much less expansive. It takes somewhat different approach to more closely
48276         mimic Firefox behavior. Includes expanded test case.
48277
48278         * bindings/js/JSHTMLFormElementCustom.cpp:
48279         (WebCore::JSHTMLFormElement::canGetItemsForName):
48280             Use new the HTMLFormElement::getNamedElements() method
48281         (WebCore::JSHTMLFormElement::nameGetter):
48282             Use new the HTMLFormElement::getNamedElements() method
48283         * html/HTMLFormElement.cpp:
48284         (WebCore::HTMLFormElement::HTMLFormElement):
48285         (WebCore::HTMLFormElement::~HTMLFormElement):
48286         (WebCore::HTMLFormElement::elementForAlias):
48287         (WebCore::HTMLFormElement::addElementAlias):
48288             Maintain a map of known element aliases
48289         (WebCore::HTMLFormElement::getNamedElements):
48290             Get a list of elements matching the name, based both their
48291             current names and known aliases (earlier names).
48292             Keep the alias list in sync.
48293         * html/HTMLFormElement.h:
48294
48295 2007-03-17  Adele Peterson  <adele@apple.com>
48296
48297         Reviewed by Hyatt.
48298
48299         Fix for <rdar://problem/4990050> REGRESSION: onchange gets fired when clicking on a programmatically selected element in a listbox
48300         http://bugs.webkit.org/show_bug.cgi?id=12725
48301
48302         Test: updated fast/forms/listbox-onchange.html
48303
48304         Added HTMLSelectElement::saveLastSelection that is called before changing a selection that could result
48305         in onChange being called.  m_lastOnChangeIndex and m_lastOnChangeSelection no longer have to be up-to date all the time, 
48306         they just have to be up-to-date before we execute an action that may trigger onChange.
48307
48308         * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::setSelectedState): Added.
48309           The HTMLSelectElement will only set an option's selected state with this method.  This ensures
48310           that notifyOptionSelected won't get called when the call originates from the select element.
48311         * html/HTMLOptionElement.h:
48312
48313         * html/HTMLSelectElement.cpp:
48314         (WebCore::HTMLSelectElement::deselectItems): Calls setSelectedState.
48315         (WebCore::HTMLSelectElement::setSelectedIndex): ditto. Don't update the last selection variables here.  Scroll to the new selection.
48316          The scrolling call used to only be in notifyOptionSelected.  There's no reason we shouldn't scroll when the selection is set through
48317          the HTMLSelectElement.
48318         (WebCore::HTMLSelectElement::setValue): Call setSelectedIndex to update all options selected state.
48319         (WebCore::HTMLSelectElement::restoreState): Call setSelectedState.
48320         (WebCore::HTMLSelectElement::selectAll): Call saveLastSelection before making the selection, and calling onChange.
48321         (WebCore::HTMLSelectElement::recalcListItems): Call setSelectedState.  Don't need to save selection here anymore, 
48322          since it will get saved before we call onChange.
48323         (WebCore::HTMLSelectElement::reset): ditto.
48324         (WebCore::HTMLSelectElement::dispatchFocusEvent): Added. Call saveLastSelection for menu lists, since onChange can be fired
48325          on blur.
48326         (WebCore::HTMLSelectElement::dispatchBlurEvent): Call menuListOnChange.
48327         (WebCore::HTMLSelectElement::menuListDefaultEventHandler): Call saveLastSelection before showing the popup window.
48328         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):  Call saveLastSelection during mousedown (to prepare for an 
48329          onchange during mouseup, or after autoscroll).
48330         (WebCore::HTMLSelectElement::updateListBoxSelection): Call setSelectedState.
48331
48332         (WebCore::HTMLSelectElement::menuListOnChange): Added. Compares the m_lastOnChangeIndex to the selectedIndex().
48333         (WebCore::HTMLSelectElement::listBoxOnChange): Move the m_lastOnChangeSelection creation to saveLastSelection.
48334         (WebCore::HTMLSelectElement::saveLastSelection): Added. Sets m_lastOnChangeIndex or m_lastOnChangeSelection.
48335         * html/HTMLSelectElement.h:
48336         * platform/PopupMenu.h:
48337
48338 2007-03-16  Oliver Hunt  <oliver@apple.com>
48339
48340         Reviewed by Hyatt.
48341
48342         The old canSaveAsWebArchive call was necessary as stand alone
48343         images used to be rendered by ImageDocument.
48344
48345         Fixes rdar://problem/5061252
48346
48347         * dom/Clipboard.cpp:
48348         * dom/Clipboard.h:
48349         (WebCore::Clipboard::setDragHasStarted):
48350         * page/DragClient.h:
48351         (WebCore::DragClient::declareAndWriteDragImage):
48352         * platform/mac/ClipboardMac.mm:
48353         (WebCore::ClipboardMac::declareAndWriteDragImage):
48354
48355 2007-03-16  Anders Carlsson  <acarlsson@apple.com>
48356
48357         Reviewed by Maciej.
48358
48359         <rdar://problem/4869095>
48360         default content type changed for XMLHttpRequest POSTs changed (breaks Flickrator 0.1 widget)
48361         
48362         * xml/xmlhttprequest.cpp:
48363         (WebCore::XMLHttpRequest::send):
48364
48365 2007-03-16  Brady Eidson  <beidson@apple.com>
48366
48367         Rubberstamped by Tim Hatcher
48368
48369         Update the hash table header for Window object properties
48370
48371         * bindings/js/kjs_window.cpp:
48372
48373 2007-03-16  Brady Eidson  <beidson@apple.com>
48374
48375         Reviewed by Anders
48376
48377         <rdar://problem/5061826> and
48378         http://bugs.webkit.org/show_bug.cgi?id=12863
48379         Implement window.stop()
48380
48381         * bindings/js/kjs_window.cpp:
48382         (KJS::WindowFunc::callAsFunction): Add case Window::Stop
48383         * bindings/js/kjs_window.h:
48384         (KJS::Window::): Add "Stop"
48385
48386 2007-03-16  Geoffrey Garen  <ggaren@apple.com>
48387
48388         Reviewed by Brady Eidson.
48389
48390         Fixed dir creation to account for already existing dirs and missing leading
48391         dirs in path.
48392         
48393         * loader/icon/IconDatabase.cpp:
48394         (WebCore::makeAllDirectories):
48395
48396 2007-03-16  David Hyatt  <hyatt@apple.com>
48397
48398         Fix for 13084, assertion failure in the Cache.  Convert the client list
48399         to a HashCountedSet so that multiple refs and derefs are allowed.
48400
48401         Fix RenderImage so that if it has the same image used as a background/border
48402         and as the foreground that it will repaint properly (can be tested using
48403         border-image and a foreground image).
48404
48405         Optimize list marker so that it doesn't waste time in the base class method,
48406         since list markers don't support background or border images.
48407
48408         Reviewed by andersca
48409
48410         * ChangeLog:
48411         * loader/CachedResource.cpp:
48412         (WebCore::CachedResource::ref):
48413         * loader/CachedResource.h:
48414         * loader/CachedResourceClientWalker.cpp:
48415         (WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
48416         * loader/CachedResourceClientWalker.h:
48417         * rendering/RenderImage.cpp:
48418         (WebCore::RenderImage::imageChanged):
48419         * rendering/RenderListMarker.cpp:
48420         (WebCore::RenderListMarker::imageChanged):
48421
48422 2007-03-16  Geoffrey Garen  <ggaren@apple.com>
48423
48424         Reviewed by Anders Carlsson.
48425         
48426         Fixed <rdar://problem/5065399> REGRESSION: leaks in Frame::bindingRootObject 
48427         seen on buildbot
48428
48429         The problem was that we were initializing the same WebScriptObject twice.
48430         This caused it to leak its original set of ivars.
48431         
48432         I think some refactoring could prevent this situation from arising in the
48433         first place, but I'm just adding a check at the call site for now, to do 
48434         the simplest thing.
48435
48436         * bindings/objc/WebScriptObject.mm:
48437         (-[WebScriptObject _setImp:originRootObject:rootObject:]): Added ASSERTs
48438         against multiple calls.
48439
48440         * bindings/objc/WebScriptObjectPrivate.h: Renamed _initializeWithObjectImp
48441         to setImp because "init" vs "initialize" was a too subtle indication that
48442         one was a Cocoa initializer and one was not.
48443
48444 2007-03-16  Lars Knoll <lars@trolltech.com>
48445
48446         don't use #import in .cpp files.
48447
48448         * editing/qt/EditorQt.cpp:
48449
48450 2007-03-16  Lars Knoll <lars@trolltech.com>
48451
48452         Fix the Qt build once again.
48453
48454         * platform/qt/PasteboardQt.cpp:
48455         (WebCore::Pasteboard::Pasteboard):
48456         (WebCore::Pasteboard::writeSelection):
48457         (WebCore::Pasteboard::plainText):
48458         (WebCore::Pasteboard::documentFragment):
48459         (WebCore::Pasteboard::writeURL):
48460         (WebCore::Pasteboard::writeImage):
48461         (WebCore::Pasteboard::clear):
48462
48463 2007-03-15  Shrikant Gangoda  <shrikant.gangoda@celunite.com>
48464
48465         Gdk build fix.
48466
48467         * loader/gdk/FrameLoaderClientGdk.cpp:
48468         (WebCore::FrameLoaderClientGdk::blockedError):
48469         * loader/gdk/FrameLoaderClientGdk.h:
48470
48471 2007-03-15  Beth Dakin  <bdakin@apple.com>
48472
48473         Reviewed by Geoff.
48474
48475         Fix for http://bugs.webkit.org/show_bug.cgi?id=13088 REGRESSION
48476         (r19761-19779): Copy image no longer includes image address 
48477         (rdar://5067927)
48478
48479         writeURL() does not need an isImage parameter. Now that it accepts 
48480         the types as a parameter, we can just declare the appropriate image 
48481         types within writeImage and send them to writeURL(). Also, 
48482         declaring the types twice is what broke this.
48483
48484         * platform/Pasteboard.h:
48485         * platform/mac/PasteboardMac.mm:
48486         (WebCore::Pasteboard::writeURL):
48487         (WebCore::Pasteboard::writeImage):
48488
48489 2007-03-15  Adele Peterson  <adele@apple.com>
48490
48491         Reviewed by Kevin Decker.
48492
48493         Fix for <rdar://problem/4926179> Text in menulist control should never update if menu is open
48494
48495         * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::updateFromElement):
48496           Only setTextFromOption if the menu isn't visible.
48497
48498 2007-03-15  Brady Eidson  <beidson@apple.com>
48499
48500         Reviewed by Oliver
48501
48502         A few platform specific tweaks
48503
48504         * platform/cf/RetainPtr.h:
48505         (WebCore::RetainPtr::releaseRef): Fixed releaseRef to work with CF
48506         
48507         * platform/network/ResourceHandle.h: Added a "releaseRef" style call
48508
48509 2007-03-15  Maciej Stachowiak  <mjs@apple.com>
48510
48511         Reviewed by Geoff and Steve.
48512
48513         * config.h: Remove unneeded hack.
48514
48515 2007-03-15  Justin Garcia  <justin.garcia@apple.com>
48516
48517         Reviewed by john
48518         
48519         <rdar://problem/5062376> 
48520         REGRESSION: In Mail and Gmail, can't change alignment to text after it has been applied
48521         
48522         Bring back the remove step in applyBlockStyle.  It's 
48523         necessary because addBlockStyleIfNeeded assumes that 
48524         the properties it adds aren't already on the block that 
48525         it adds them to.
48526
48527         * editing/ApplyStyleCommand.cpp:
48528         (WebCore::ApplyStyleCommand::applyBlockStyle): 
48529         Bring back the remove step (added a testcase).
48530         Don't do the add step if m_removeOnly is true (no testcase
48531         because there aren't any clients using removeOnly functionality
48532         to remove styles yet, only styled elemets).
48533         Moved the code for creating new blocks up one level
48534         to this function so that we can pass blocks to removeCSSStyle.
48535         When converting VisiblePositions to indices and vice versa,
48536         use the highest node in the shadow tree if we're in one as
48537         the scope (working on a testcase).
48538         (WebCore::ApplyStyleCommand::addBlockStyle): Moved code to
48539         applyBlockStyle.
48540         * editing/ApplyStyleCommand.h: 
48541
48542 2007-03-15  Brady Eidson  <beidson@apple.com>
48543
48544         Reviewed by Maciej
48545
48546         <rdar://problem/4429701>
48547         Implements a port blocking black list that matches Firefox's
48548
48549         * loader/FrameLoader.cpp:
48550         (WebCore::FrameLoader::blockedError): Call through to the client for blockedError 
48551         * loader/FrameLoader.h:
48552
48553         * loader/FrameLoaderClient.h: Get the "port blocked" error for the current platform
48554
48555         * loader/ResourceLoader.cpp:
48556         (WebCore::ResourceLoader::wasBlocked): ResourceHandleClient method to pass on the didFail(error)
48557         (WebCore::ResourceLoader::blockedError): Following the pattern of "CancelledError()", get the 
48558           error to fail with for the didFail() call
48559         * loader/ResourceLoader.h:
48560
48561         * platform/graphics/svg/SVGImageEmptyClients.h:
48562         (WebCore::SVGEmptyFrameLoaderClient::blockedError): Added stub
48563
48564         * platform/network/ResourceHandle.cpp:
48565         (WebCore::ResourceHandle::create): If the port is blocked, create the handle but schedule it for
48566           deferred failure on a timer
48567         (WebCore::ResourceHandle::scheduleBlockedFailure): Do the timer scheduling
48568         (WebCore::ResourceHandle::fireBlockedFailure): Fire the timer here
48569         (WebCore::ResourceHandle::portAllowed): Implements checking of Mozilla's
48570         * platform/network/ResourceHandle.h:
48571         * platform/network/ResourceHandleClient.h:
48572         (WebCore::ResourceHandleClient::wasBlocked): Virtual for clients to get the "blocked" message
48573
48574 2007-03-15  Beth Dakin  <bdakin@apple.com>
48575
48576         Reviewed by Hyatt.
48577
48578         Fix for <rdar://problem/5065396> REGRESSION: leaks in 
48579         RenderBlock::layoutInlineChildren seen on buildbot
48580
48581         This leak appeared after http://trac.webkit.org/projects/webkit/
48582         changeset/20188. This change shifted line boxes around in 
48583         removeChild(). But since removeChild() calls 
48584         setNeedsLayoutAndMinMaxRecalc(), all of the line boxes will be 
48585         removed once we actually lay out anyway. So this patch fixes the 
48586         leak by deleting the line boxes instead of shifting them around. 
48587
48588         * editing/IndentOutdentCommand.cpp:
48589         (WebCore::IndentOutdentCommand::outdentParagraph): Call into 
48590         updateLayout(). This fixes an assertion I got in editing/
48591         execCommand/4976800.html This is very similar to the line box fix I 
48592         made recently (http://trac.webkit.org/projects/webkit/changeset/
48593         20177). We need to update layout before relying on VisiblePositions 
48594         after removing a node.
48595         * rendering/RenderBlock.cpp:
48596         (WebCore::RenderBlock::deleteLinesForBlock): New helper function 
48597         since this functionality is needed in three places now.
48598         (WebCore::RenderBlock::makeChildrenNonInline): Call into new 
48599         deleteLinesForBlock().
48600         (WebCore::RenderBlock::removeChild): Same.
48601         * rendering/RenderBlock.h:
48602
48603 2007-03-15  Timothy Hatcher  <timothy@apple.com>
48604
48605         Reviewed by John.
48606
48607         * Factored out most of our common build settings into .xcconfig files. Anything that was common in
48608           each build configuration was factored out into the shared .xcconfig file.
48609         * Adds a Version.xcconfig file to define the current framework version, to be used in other places.
48610         * Use the new $(BUNDLE_VERSION) (defined in Version.xcconfig) in the preprocessed Info.plist.
48611         * Use the versions defined in Version.xcconfig to set $(DYLIB_CURRENT_VERSION).
48612
48613         * Configurations/Base.xcconfig: Added.
48614         * Configurations/DebugRelease.xcconfig: Added.
48615         * Configurations/Version.xcconfig: Added.
48616         * Configurations/WebCore.xcconfig: Added.
48617         * Info.plist:
48618         * WebCore.xcodeproj/project.pbxproj:
48619
48620 2007-03-15  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
48621
48622         Not reviewed - gdk build fixes.
48623
48624         * platform/gdk/EditorClientGdk.cpp:
48625         (WebCore::EditorClientGdk::handleKeypress):
48626         * platform/graphics/cairo/ImageSourceCairo.cpp:
48627         (WebCore::ImageSource::setData):
48628         * platform/graphics/gdk/ImageGdk.cpp:
48629         (WebCore::Image::loadPlatformResource):
48630
48631 2007-03-14  Justin Garcia  <justin.garcia@apple.com>
48632
48633         Reviewed by john
48634         
48635         ~2x speed up of 5k rich text paste:
48636         http://shakespeare.mit.edu/hamlet/full.html        
48637
48638         * editing/ReplaceSelectionCommand.cpp:
48639         (WebCore::ReplaceSelectionCommand::doApply): Remove the top 
48640         level style span if it's unnecessary before inserting
48641         into the document, it's faster than doing it after.
48642         * editing/ReplaceSelectionCommand.h: Exposed 
48643         ReplacementFragment::removeNodePreservingChildren so that
48644         the style span can be removed using non-undoable removes,
48645         like the rest of the removes done on the ReplacementFragment.
48646         * editing/markup.cpp:
48647         (WebCore::createMarkup): Make the style span the top level
48648         element, otherwise it's useless.  This also facilitates the
48649         optimization mentioned above.
48650         When including markup for a fully selected root, include markup
48651         for all the nodes beneath that fully selected root, to preserve 
48652         the structure and appearance of the copied markup.  Did this
48653         by merging with the code for adding markup for descendants of
48654         special commonAncestorBlocks.
48655
48656 2007-03-15  Beth Dakin  <bdakin@apple.com>
48657
48658         Rubber-stamped by Adele.
48659
48660         Rolling out http://trac.webkit.org/projects/webkit/changeset/20148 
48661         (which is a fix for http://bugs.webkit.org/show_bug.cgi?id=12595 
48662         and rdar://4722863) because it causes a horrible memory-trasher. 
48663
48664         * bindings/js/JSHTMLFormElementCustom.cpp:
48665         (WebCore::JSHTMLFormElement::canGetItemsForName):
48666         (WebCore::JSHTMLFormElement::nameGetter):
48667         * bindings/js/kjs_dom.cpp:
48668         (KJS::):
48669         (KJS::DOMNamedNodesCollection::DOMNamedNodesCollection):
48670         (KJS::DOMNamedNodesCollection::lengthGetter):
48671         (KJS::DOMNamedNodesCollection::indexGetter):
48672         (KJS::DOMNamedNodesCollection::getOwnPropertySlot):
48673         * bindings/js/kjs_dom.h:
48674         (KJS::DOMNamedNodesCollection::classInfo):
48675         * bindings/js/kjs_html.cpp:
48676         (KJS::JSHTMLCollection::getNamedItems):
48677         * dom/ChildNodeList.cpp:
48678         (WebCore::ChildNodeList::ChildNodeList):
48679         (WebCore::ChildNodeList::length):
48680         (WebCore::ChildNodeList::item):
48681         (WebCore::ChildNodeList::nodeMatches):
48682         * dom/ChildNodeList.h:
48683         * dom/NameNodeList.cpp:
48684         (WebCore::NameNodeList::NameNodeList):
48685         (WebCore::NameNodeList::item):
48686         (WebCore::NameNodeList::nodeMatches):
48687         * dom/NameNodeList.h:
48688         (WebCore::NameNodeList::rootNodeAttributeChanged):
48689         * dom/Node.cpp:
48690         (WebCore::TagNodeList::TagNodeList):
48691         (WebCore::TagNodeList::nodeMatches):
48692         (WebCore::Node::registerNodeList):
48693         (WebCore::Node::unregisterNodeList):
48694         * dom/Node.h:
48695         * dom/NodeList.cpp:
48696         (WebCore::NodeList::NodeList):
48697         (WebCore::NodeList::~NodeList):
48698         (WebCore::NodeList::recursiveLength):
48699         (WebCore::NodeList::itemForwardsFromCurrent):
48700         (WebCore::NodeList::itemBackwardsFromCurrent):
48701         (WebCore::NodeList::recursiveItem):
48702         (WebCore::NodeList::itemWithName):
48703         (WebCore::NodeList::rootNodeChildrenChanged):
48704         * dom/NodeList.h:
48705         (WebCore::NodeList::rootNodeAttributeChanged):
48706         * html/HTMLFormElement.cpp:
48707         (WebCore::HTMLFormElement::HTMLFormElement):
48708         (WebCore::HTMLFormElement::~HTMLFormElement):
48709         (WebCore::HTMLFormElement::formData):
48710         (WebCore::HTMLFormElement::parseMappedAttribute):
48711         (WebCore::HTMLFormElement::removeFormElement):
48712         * html/HTMLFormElement.h:
48713         * html/HTMLGenericFormElement.cpp:
48714         (WebCore::HTMLGenericFormElement::parseMappedAttribute):
48715         (WebCore::HTMLGenericFormElement::insertedIntoTree):
48716         * html/HTMLGenericFormElement.h:
48717         * html/HTMLInputElement.cpp:
48718         (WebCore::HTMLInputElement::parseMappedAttribute):
48719
48720 2007-03-15  Geoffrey Garen  <ggaren@apple.com>
48721
48722         Added an assert to help catch a bug. Hopefully someone will hit it!
48723         
48724         * bindings/js/kjs_proxy.cpp:
48725         (WebCore::KJSProxy::~KJSProxy):
48726
48727 2007-03-14  Oliver Hunt  <oliver@apple.com>
48728
48729         Reviewed by Adele.
48730
48731         Fix for rdar://problem/5061737.
48732         
48733         This was a regression from the original Objective-C -> C++ conversion
48734         for the drag logic.  We don't need to call Range::startNode as we just
48735         need the document that contains the range.   
48736
48737         * page/DragController.cpp:
48738         (WebCore::documentFragmentFromDragData):
48739
48740 2007-03-14  Mitz Pettel  <mitz@webkit.org>
48741
48742         Reviewed by Hyatt.
48743
48744         - http://bugs.webkit.org/show_bug.cgi?id=13071
48745           REGRESSION: Plain text files no longer wrap lines longer than the width of the browser window
48746
48747         Test: fast/loader/text-document-wrapping.html
48748
48749         * loader/TextDocument.cpp:
48750         (WebCore::TextTokenizer::write): Specified word-wrap:break-word for the <pre> element.
48751
48752 2007-03-14  Mitz Pettel  <mitz@webkit.org>
48753
48754         Reviewed by Hyatt.
48755
48756         - fix http://bugs.webkit.org/show_bug.cgi?id=13072
48757           REGRESSION (r15617): white-space: pre-wrap breaks off the last character of a wide word
48758
48759         Test: fast/text/whitespace/pre-wrap-last-char.html
48760
48761         * rendering/bidi.cpp:
48762         (WebCore::RenderBlock::findNextLineBreak): Undid the change from r15617.
48763
48764 2007-03-14  David Hyatt  <hyatt@apple.com>
48765
48766         Add asserts to help catch double refs and double derefs of CachedResources.
48767
48768         Reviewed by mjs
48769
48770         * loader/CachedResource.cpp:
48771         (WebCore::CachedResource::ref):
48772         (WebCore::CachedResource::deref):
48773
48774 2007-03-14  Alice Liu  <alice.liu@apple.com>
48775
48776         Rubber-stamped by Hyatt.
48777
48778         Adding null check to prevent the crash that happens on 2nd run of iBench HTML load test
48779
48780         * loader/icon/IconDataCache.cpp:
48781         (WebCore::IconDataCache::writeToDatabase):
48782
48783 === Safari-5522.4 ===
48784
48785 2007-03-14  Adele Peterson  <adele@apple.com>
48786
48787         Reviewed by Adam.
48788
48789         Fix for <rdar://problem/5062898> REGRESSION: autocomplete window in text fields doesn't come up
48790
48791         When we moved the initialization of a bunch of variables in the HTMLFormElement constructor, m_autocomplete accidently got initialized to false.
48792
48793         * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::HTMLFormElement):
48794
48795 2007-03-14  Steve Falkenburg  <sfalken@apple.com>
48796
48797         Reviewed by Adam.
48798
48799         Added missing null check in case this is called on a subframe
48800         that hasn't started loading.
48801
48802         * page/Frame.cpp:
48803         (WebCore::Frame::setMarkedTextMatchesAreHighlighted): Check for a null document.
48804
48805 2007-03-14  Antti Koivisto  <antti@apple.com>
48806
48807         Reviewed by Geoff.
48808
48809         Fix http://bugs.webkit.org/show_bug.cgi?id=13060
48810         REGRESSION: Repro ASSERT failure in Cache::adjustSize running layout tests
48811         <rdar://5060208>
48812         
48813         Script evaluation may have dereffed the CachedScript object already, causing double deref and
48814         eventually m_liveResourcesSize underflow.
48815
48816         * html/HTMLScriptElement.cpp:
48817         (WebCore::HTMLScriptElement::notifyFinished):
48818
48819 2007-03-14  Adele Peterson  <adele@apple.com>
48820
48821         Reviewed by Darin.
48822
48823         Added InsertTab, InsertBacktab, InsertLineBreak, and InsertNewline to the editing command table.
48824         Added Event parameter to execCommand, and to all of the enabled and exec functions.  Right now,
48825         the event is only used by the newly added commands.  But in the future, many (and possibly all) of
48826         these editing commands will need to consider the event so they are applied to the correct selection.
48827
48828         * WebCore.exp:
48829         * editing/Editor.cpp:
48830         (WebCore::execCopy):
48831         (WebCore::execCut):
48832         (WebCore::execDelete):
48833         (WebCore::execBackwardDelete):
48834         (WebCore::execForwardDelete):
48835         (WebCore::execMoveBackward):
48836         (WebCore::execMoveBackwardAndModifySelection):
48837         (WebCore::execMoveUpByPageAndModifyCaret):
48838         (WebCore::execMoveDown):
48839         (WebCore::execMoveDownAndModifySelection):
48840         (WebCore::execMoveForward):
48841         (WebCore::execMoveForwardAndModifySelection):
48842         (WebCore::execMoveDownByPageAndModifyCaret):
48843         (WebCore::execMoveLeft):
48844         (WebCore::execMoveLeftAndModifySelection):
48845         (WebCore::execMoveRight):
48846         (WebCore::execMoveRightAndModifySelection):
48847         (WebCore::execMoveToBeginningOfDocument):
48848         (WebCore::execMoveToBeginningOfDocumentAndModifySelection):
48849         (WebCore::execMoveToBeginningOfSentence):
48850         (WebCore::execMoveToBeginningOfSentenceAndModifySelection):
48851         (WebCore::execMoveToBeginningOfLine):
48852         (WebCore::execMoveToBeginningOfLineAndModifySelection):
48853         (WebCore::execMoveToBeginningOfParagraph):
48854         (WebCore::execMoveToBeginningOfParagraphAndModifySelection):
48855         (WebCore::execMoveToEndOfDocument):
48856         (WebCore::execMoveToEndOfDocumentAndModifySelection):
48857         (WebCore::execMoveToEndOfSentence):
48858         (WebCore::execMoveToEndOfSentenceAndModifySelection):
48859         (WebCore::execMoveToEndOfLine):
48860         (WebCore::execMoveToEndOfLineAndModifySelection):
48861         (WebCore::execMoveToEndOfParagraph):
48862         (WebCore::execMoveToEndOfParagraphAndModifySelection):
48863         (WebCore::execMoveParagraphBackwardAndModifySelection):
48864         (WebCore::execMoveParagraphForwardAndModifySelection):
48865         (WebCore::execMoveUp):
48866         (WebCore::execMoveUpAndModifySelection):
48867         (WebCore::execMoveWordBackward):
48868         (WebCore::execMoveWordBackwardAndModifySelection):
48869         (WebCore::execMoveWordForward):
48870         (WebCore::execMoveWordForwardAndModifySelection):
48871         (WebCore::execMoveWordLeft):
48872         (WebCore::execMoveWordLeftAndModifySelection):
48873         (WebCore::execMoveWordRight):
48874         (WebCore::execMoveWordRightAndModifySelection):
48875         (WebCore::execPaste):
48876         (WebCore::execSelectAll):
48877         (WebCore::execToggleBold):
48878         (WebCore::execToggleItalic):
48879         (WebCore::execRedo):
48880         (WebCore::execUndo):
48881         (WebCore::execInsertTab):
48882         (WebCore::execInsertBacktab):
48883         (WebCore::execInsertNewline):
48884         (WebCore::execInsertLineBreak):
48885         (WebCore::enabled):
48886         (WebCore::canPaste):
48887         (WebCore::hasEditableSelection):
48888         (WebCore::hasEditableRangeSelection):
48889         (WebCore::hasRangeSelection):
48890         (WebCore::hasRichlyEditableSelection):
48891         (WebCore::canRedo):
48892         (WebCore::canUndo):
48893         (WebCore::CommandEntry::):
48894         (WebCore::Editor::toggleBold):
48895
48896         (WebCore::Editor::execCommand): Added optional event parameter.
48897         (WebCore::Editor::insertText): Added.  Calls handleTextInputEvent.
48898         (WebCore::Editor::insertTextWithoutSendingTextEvent): Renamed from insertText.
48899          Performs the actual insertion without dispatching any event.
48900         * editing/Editor.h:
48901         * page/EventHandler.cpp: (WebCore::EventHandler::defaultTextInputEventHandler):
48902           Call insertTextWithoutSendingTextEvent.
48903
48904 2007-03-14  Justin Garcia  <justin.garcia@apple.com>
48905
48906         Reviewed by darin
48907         
48908         ~3x speedup pasting 5k lines of rich text:
48909         http://shakespeare.mit.edu/hamlet/full.html
48910         ~2x speedup pasting 10k lines of plain text
48911         
48912         * css/CSSComputedStyleDeclaration.cpp:
48913         (WebCore::computedStyle): Added for convenience.
48914         * css/CSSComputedStyleDeclaration.h:
48915         * editing/ReplaceSelectionCommand.cpp:
48916         (WebCore::ReplaceSelectionCommand::removeRedundantStyles):
48917         The code that pushed down the top level style span had
48918         a bug in it that made it do unnecessary work.  Instead of
48919         fixing the bug I removed the code because it was used to 
48920         help see more redundancies in second level style spans, but 
48921         createMarkup now *only* creates a top level style span.
48922         Only remove redundant styles from style spans and only remove
48923         unstyled elements if they are style spans.  FF doesn't
48924         remove redundant styles from elements, or remove redundant 
48925         font tags on copy/paste.  We could offer this functionality 
48926         through a separate "cleanup" command.
48927         * editing/markup.cpp:
48928         (WebCore::createMarkup): Only add markup for ancestors of 
48929         lastClosed if we're including markup for acommonAncestorBlock 
48930         (we do this for commonAncestorBlocks like tables and lists),
48931         otherwise it's unnecessary/redundant.
48932
48933 2007-03-14  Anders Carlsson  <acarlsson@apple.com>
48934
48935         Reviewed by Ada.
48936
48937         Make sure to call ResourceLoader::didReceiveData to ensure that there's a shared buffer with the resource
48938         data, since SubresourceLoaderClients now make use of that buffer.
48939         
48940         * loader/SubresourceLoader.cpp:
48941         (WebCore::SubresourceLoader::didReceiveData):
48942
48943 2007-03-14  Administrator  <acarlsson@apple.com>
48944
48945         Get the size from the shared buffer.
48946         
48947         * platform/graphics/cg/ImageSourceCG.cpp:
48948         (WebCore::ImageSource::setData):
48949         * platform/graphics/cg/PDFDocumentImage.cpp:
48950         (WebCore::PDFDocumentImage::dataChanged):
48951
48952 2007-03-14  Mitz Pettel  <mitz@webkit.org>
48953
48954         Reviewed by Hyatt, thumbs up by Darin.
48955
48956         - fix http://bugs.webkit.org/show_bug.cgi?id=12782
48957           Reproducible crash in BidiContext::deref
48958
48959         Test: fast/dynamic/anonymous-block-orphaned-lines.html
48960
48961         * rendering/InlineBox.cpp:
48962         (WebCore::InlineBox::root): Added an assertion that we return a root inline box.
48963         * rendering/RenderBlock.cpp:
48964         (WebCore::RenderBlock::removeChild): Added code to adopt the line boxes of
48965         anonymous blocks being destroyed instead of leaving them orphaned, which
48966         is what caused this crash. The boxes will be deleted on the next layout, but
48967         this ensures consistency in the mean time.
48968
48969 2007-03-14  Lars Knoll <lars@trolltech.com>
48970
48971         Reviewed by Antti.
48972
48973         Fix the Qt build.
48974         Add a getter to SharedBuffer that returns a reference to the internal
48975         Vector to avoid an extra copy of the data.
48976
48977         * platform/SharedBuffer.h:
48978         (WebCore::SharedBuffer::buffer):
48979         * platform/graphics/qt/ImageQt.cpp:
48980         (WebCore::Image::loadPlatformResource):
48981         * platform/graphics/qt/ImageSourceQt.cpp:
48982         (WebCore::detectImageFormat):
48983         (WebCore::createDecoder):
48984         (WebCore::ImageSource::setData):
48985
48986 2007-03-14  Antti Koivisto  <antti@apple.com>
48987
48988         Reviewed by Mitz.
48989         
48990         Fix <rdar://problem/5058774>
48991         REGRESSION: In Mail, caret appears oversized when typing in a To Do note
48992         
48993         Horizontal and vertical were switched. Was regression from
48994         http://trac.webkit.org/projects/webkit/changeset/20103
48995
48996         * rendering/RootInlineBox.cpp:
48997         (WebCore::RootInlineBox::addHighlightOverflow):
48998
48999 2007-03-14  David Hyatt  <hyatt@apple.com>
49000
49001         Tweak the data() functions of stylesheets and scripts to be internally consistent.
49002
49003         * loader/CachedCSSStyleSheet.cpp:
49004         (WebCore::CachedCSSStyleSheet::data):
49005         * loader/CachedScript.cpp:
49006         (WebCore::CachedScript::data):
49007         * loader/CachedXSLStyleSheet.cpp:
49008         (WebCore::CachedXSLStyleSheet::data):
49009
49010 2007-03-14  David Hyatt  <hyatt@apple.com>
49011
49012         Fix Radar 5050688.  
49013
49014         For large animated GIFs, destroy and recreate the source for every animation frame.  This keeps
49015         the memory consumption down while giant images are animating.
49016
49017         Reviewed by andersca
49018
49019         * platform/graphics/BitmapImage.cpp:
49020         (WebCore::BitmapImage::BitmapImage):
49021         (WebCore::BitmapImage::destroyDecodedData):
49022         (WebCore::BitmapImage::dataChanged):
49023         (WebCore::BitmapImage::advanceAnimation):
49024         * platform/graphics/BitmapImage.h:
49025
49026 2007-03-14  David Hyatt  <hyatt@apple.com>
49027
49028         Make sure to use CFDataCreateWithBytesNoCopy where we can.
49029
49030         Reviewed by andersca
49031
49032         * platform/graphics/cg/ImageSourceCG.cpp:
49033         (WebCore::ImageSource::setData):
49034         * platform/graphics/cg/PDFDocumentImage.cpp:
49035         (WebCore::PDFDocumentImage::dataChanged):
49036
49037 2007-03-13  David Hyatt  <hyatt@apple.com>
49038
49039         Fix for bugzilla bug 13050 and also radar p1 5050645.
49040
49041         This patch reworks resource loading to avoid having redundant buffers in the icon database and in cached
49042         images in the WebCore cache.  It also avoids overcopying in top-level image documents and in the icon
49043         database.
49044
49045         There is now only one SharedBuffer for a resource and everybody observes that buffer now instead of ever
49046         making their own.  Even ImageIO uses the SharedBuffer while decoding.
49047
49048         The page in 13050 dropped from 145mb down to 45mb of memory use with this change for a stunning savings
49049         of 100mb.
49050
49051         Reviewed by olliej, mjs
49052
49053         * WebCore.exp:
49054         * loader/CachedCSSStyleSheet.cpp:
49055         (WebCore::CachedCSSStyleSheet::data):
49056         * loader/CachedCSSStyleSheet.h:
49057         * loader/CachedImage.cpp:
49058         (WebCore::CachedImage::data):
49059         * loader/CachedImage.h:
49060         * loader/CachedResource.cpp:
49061         (WebCore::CachedResource::CachedResource):
49062         (WebCore::CachedResource::~CachedResource):
49063         * loader/CachedResource.h:
49064         (WebCore::CachedResource::data):
49065         * loader/CachedScript.cpp:
49066         (WebCore::CachedScript::data):
49067         * loader/CachedScript.h:
49068         * loader/CachedXSLStyleSheet.cpp:
49069         (WebCore::CachedXSLStyleSheet::data):
49070         * loader/CachedXSLStyleSheet.h:
49071         * loader/DocLoader.cpp:
49072         (WebCore::DocLoader::checkCacheObjectStatus):
49073         * loader/ImageDocument.cpp:
49074         (WebCore::ImageTokenizer::writeRawData):
49075         (WebCore::ImageTokenizer::finish):
49076         * loader/icon/IconDataCache.cpp:
49077         (WebCore::IconDataCache::setImageData):
49078         (WebCore::IconDataCache::writeToDatabase):
49079         * loader/icon/IconDataCache.h:
49080         * loader/icon/IconDatabase.cpp:
49081         (WebCore::IconDatabase::imageDataForIconURL):
49082         (WebCore::IconDatabase::iconForPageURL):
49083         (WebCore::IconDatabase::setIconDataForIconURL):
49084         (WebCore::IconDatabase::setHaveNoIconForIconURL):
49085         (WebCore::IconDatabase::imageDataForIconURLQuery):
49086         * loader/icon/IconDatabase.h:
49087         * loader/icon/IconLoader.cpp:
49088         (WebCore::IconLoader::startLoading):
49089         (WebCore::IconLoader::didReceiveResponse):
49090         (WebCore::IconLoader::didReceiveData):
49091         (WebCore::IconLoader::didFail):
49092         (WebCore::IconLoader::finishLoading):
49093         (WebCore::IconLoader::clearLoadingState):
49094         * loader/icon/IconLoader.h:
49095         * loader/icon/SQLStatement.cpp:
49096         (WebCore::SQLStatement::getColumnBlobAsVector):
49097         (WebCore::SQLStatement::isExpired):
49098         * loader/icon/SQLStatement.h:
49099         * loader/loader.cpp:
49100         (WebCore::Loader::didFinishLoading):
49101         (WebCore::Loader::didReceiveData):
49102         * page/mac/WebCoreFrameBridge.mm:
49103         (-[WebCoreFrameBridge getData:andResponse:forURL:]):
49104         (-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
49105         * platform/SharedBuffer.h:
49106         (WebCore::SharedBuffer::isEmpty):
49107         * platform/graphics/BitmapImage.cpp:
49108         (WebCore::BitmapImage::destroyDecodedData):
49109         (WebCore::BitmapImage::dataChanged):
49110         * platform/graphics/BitmapImage.h:
49111         * platform/graphics/Image.cpp:
49112         (WebCore::Image::setData):
49113         * platform/graphics/Image.h:
49114         (WebCore::Image::dataChanged):
49115         (WebCore::Image::data):
49116         * platform/graphics/ImageSource.h:
49117         * platform/graphics/cg/ImageSourceCG.cpp:
49118         (WebCore::ImageSource::setData):
49119         * platform/graphics/cg/PDFDocumentImage.cpp:
49120         (WebCore::PDFDocumentImage::dataChanged):
49121         * platform/graphics/cg/PDFDocumentImage.h:
49122         * platform/graphics/mac/ImageMac.mm:
49123         (WebCore::Image::loadPlatformResource):
49124         * platform/graphics/svg/SVGImage.cpp:
49125         (WebCore::SVGImage::setData):
49126         * platform/mac/PasteboardMac.mm:
49127         (WebCore::fileWrapperForImage):
49128
49129 2007-03-13  Justin Garcia  <justin.garcia@apple.com>
49130
49131         Reviewed by darin
49132         
49133         <rdar://problem/5046875> 
49134         Gmail Editor: Applying alignment to selected text in message also applies alignment to signature
49135
49136         * editing/ApplyStyleCommand.cpp:
49137         (WebCore::ApplyStyleCommand::doApply): Don't call applyBlockStyle unless
49138         there is a block style to apply.
49139         (WebCore::ApplyStyleCommand::applyBlockStyle): Don't do the remove step.
49140         It was unnecessary and removed properties from blocks that could contain 
49141         content outside the range being operated on (added a testcase).
49142         (WebCore::ApplyStyleCommand::addBlockStyleIfNeeded): Used an early return
49143         instead of if-nesting.
49144         * editing/ApplyStyleCommand.h:
49145         * editing/CompositeEditCommand.cpp:
49146         (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
49147         Return the new block, if one was created.  Use moveParagraphs to move
49148         paragraphs into the new block, instead of moving nodes.  The old code moved
49149         too much (added a testcase).
49150         * editing/CompositeEditCommand.h:
49151
49152 2007-03-13  Oliver Hunt  <oliver@apple.com>
49153
49154         Reviewed by Brady.
49155
49156         To fix <rdar://problem/5044366> we now pass a NSString
49157         representation of the URL extracted with _web_originalDataAsString
49158         instead of relying on [NSURL absoluteString] in the bridge
49159
49160         * page/mac/WebCoreFrameBridge.h:
49161         * page/mac/WebCoreFrameBridge.mm:
49162         (-[WebCoreFrameBridge getData:andResponse:forURL:]):
49163
49164 2007-03-13  Brady Eidson  <beidson@apple.com>
49165
49166         Reviewed by Anders
49167
49168         <rdar://problem/5048818> - REGRESSION: Incompletely loaded resources being saved to the object cache
49169
49170         Due to a subtle change in loader behavior back in 10904, we would stop all loaders before calling 
49171         didFail() on them in the Cache loader.  As a result, we basically cleared all of the Subresource Loaders 
49172         out of the Cache loader before more properly failing them as errored out.  The result?  Partially loaded
49173         resources being cached.
49174         
49175         Since Loader::didFail() both calls error() on the object *and* removes the loader, the solution is to call 
49176         didFail() for all cancelled loaders instead of *only* removing them from the set of active loaders.
49177         
49178         In addition, pages that didn't completely load were being saved to the back/forward cache.  To fix that,
49179         I added a null check on the DocumentLoader's error to see if the page ended in an error, or did indeed 
49180         completely load.
49181
49182         Note that the layout test for this - if possible - will require other enhancements including possibly adding
49183         support for window.stop().  That task is documented in <rdar://problem/5061826>
49184
49185         * loader/FrameLoader.cpp:
49186         (WebCore::FrameLoader::provisionalLoadStarted): Fixed a few bugs relating to my original BFCache rewrite to
49187           more perfectly restore the original behavior - including only caching HTML documents via the 
49188           m_client->canCachePage() call
49189         (WebCore::FrameLoader::canCachePage): Don't make the call to m_client->canCachePage() as that serves a different
49190           purpose
49191           - Check the mainDocumentError to see if the load ended in error as a further criteria in determining the 
49192           cachability of a page
49193
49194         * loader/loader.cpp:
49195         (WebCore::Loader::cancelRequests): Call didFail(cancelledError()) instead of just removing the loaders from the 
49196           loaders-in-progress set.  This adds the effect of properly cleaning up the cached object.
49197
49198 2007-03-13  Beth Dakin  <bdakin@apple.com>
49199
49200         Rendering part reviewed by Hyatt. Editing part consulted with and 
49201         rubber stamped by Justin and Harrison.
49202
49203         Fix for <rdar://problem/5025925> A hang occurs in Safari when 
49204         attempting to print page at http://www.pcadvisor.co.uk
49205
49206         * rendering/RenderBlock.cpp:
49207         (WebCore::RenderBlock::makeChildrenNonInline): 
49208         RenderBlock::makeChildrenNonInline() takes a block's inline 
49209         children and turns them into block children. If the children had 
49210         line boxes, those boxes were being leaked. In the layout test I 
49211         added with the change (and at pcadvisor.co.uk during printing) 
49212         children were being made non-inline, and then they were being made 
49213         inline again. This meant that some of the children ended up 
49214         pointing to totally stale line boxes that are normally just leaked. 
49215         This caused an infinite loop in RenderFlow::destroy(). This patch 
49216         simply deletes everyone's line boxes in 
49217         RenderBlock::makeChildrenNonInline()
49218
49219         * editing/InsertParagraphSeparatorCommand.cpp:
49220         (WebCore::InsertParagraphSeparatorCommand::doApply): The other part 
49221         of this fix is that I added a call to updateLayout in 
49222         InsertParagraphSeparatorCommand::doApply(). One layout test 
49223         (editing/spelling/spelling.html) was changed by my patch to 
49224         RenderBlock. doApply() inserts a node into the render tree. In at 
49225         least one case in spelling.html, that caused some line boxes to be 
49226         deleted. Back in doApply() this meant that the RenderTree was out-
49227         of-date, and we mistakenly thought we were at the end of the 
49228         paragraph. This caused us to insert a RenderBR() at the end of the 
49229         tree instead of an empty RenderText(). No one seems to know exactly 
49230         why we insert either, or if the change is necessarily a problem. It 
49231         is clear, though, that the RenderTree in doApply() is out-of-date 
49232         after inserting the node and deleting some line boxes, so it seems 
49233         prudent to call into updateLayout().
49234
49235 2007-03-13  Adam Roben  <aroben@apple.com>
49236
49237         Reviewed by Anders.
49238
49239         * platform/FontData.h: Added m_isSystemFont parameter to match NSFont.
49240
49241 2007-03-13  Beth Dakin  <bdakin@apple.com>
49242
49243         Reviewed by Maciej.
49244
49245         Export DocumentLoader::setFrame(). Part of fix for <rdar://
49246         problem/4277074> 8F32: Help Viewer crashed on clicking link - 
49247         KHTMLView::viewportMouseReleaseEvent (12647)
49248
49249         * WebCore.exp:
49250
49251 2007-03-13  Darin Adler  <darin@apple.com>
49252
49253         Reviewed by Maciej.
49254
49255         - fix http://bugs.webkit.org/show_bug.cgi?id=12794
49256           <rdar://problem/5028154> REGRESSION: TripTik planner at aaa.com never
49257           finishes loading due to unclosed canvas tag (12794)
49258
49259         Change <canvas> elements so that their contents are parsed normally,
49260         but not rendered. This change fixes the bug, because normal parsing
49261         rules close the <canvas> element in that case. The special parser
49262         stuff was just getting in the way.
49263
49264         Also do some basic cleanup to the HTML parser. This was motivated by
49265         an earlier version of this patch that made even more changes to the
49266         parser, but the cleanup is still worth landing.
49267
49268         Test: fast/canvas/canvas-hides-fallback.html
49269         Test: fast/canvas/script-inside-canvas-fallback.html
49270         Test: fast/canvas/unclosed-canvas-1.html
49271         Test: fast/canvas/unclosed-canvas-2.html
49272         Test: fast/canvas/unclosed-canvas-3.html
49273         Test: fast/canvas/unclosed-canvas-4.html
49274
49275         * html/HTMLCanvasElement.h: Added a data member to keep track of whether the
49276         renderer is a RenderHTMLCanvas or not.
49277         * html/HTMLCanvasElement.cpp:
49278         (WebCore::HTMLCanvasElement::createRenderer): If JavaScript is enabled, create
49279         a RenderHTMLCanvas. If it's not, let the default code create the default type
49280         of renderer, which will result in fallback content being visible. The
49281         RenderHTMLCanvas class already hides all of its children. Set the m_rendererIsCanvas
49282         boolean accordingly. Since the actual storage for the canvas is allocated lazily
49283         when you actually get a drawing context, we don't need to do anything special
49284         to prevent it when JavaScript is disabled; the relevant functions won't be called.
49285         (WebCore::HTMLCanvasElement::reset): Protect the code that manipulates the
49286         RenderHTMLCanvas with a check of m_rendererIsCanvas. This is the only code inside
49287         the DOM element that relies on the renderer type.
49288
49289         * html/HTMLParser.h: Removed unneeded includes. Marked HTMLParser as
49290         Noncopyable. Changed the Document parameter to the constructor to instead
49291         be HTMLDocument. Renamed discard_until to m_skipModeTag for clarity.
49292         Removed unused noSpaces function and unneeded public doc() function.
49293         Moved data members all down to the end so you can see them together in order.
49294         Renamed map to m_currentMapElement and isindex to m_isindexElement.
49295         Removed unused end and headLoaded data members.  Renamed m_fragment to
49296         m_isParsingFragment to make it clearer that it's a boolean, not a fragment.
49297
49298         * html/HTMLParser.cpp:
49299         (WebCore::HTMLParser::HTMLParser): Changed to use member construction
49300         syntax instead of calling reset(). This is especially helpful in the
49301         fragment case, where calling reset() later on is illegal, so not using
49302         it in the constructor lets us assert.
49303         (WebCore::HTMLParser::~HTMLParser): Did an explicit deref instead of
49304         calling setCurrent for its side effect.
49305         (WebCore::HTMLParser::reset): Updated for member name changes and removal
49306         and to use document instead of doc().
49307         (WebCore::HTMLParser::setCurrent): Use document instead of doc().
49308         (WebCore::HTMLParser::setSkipMode): Added. No longer inline. Now sets the
49309         m_inCanvasBeforeFirstOpenTag data member to false.
49310         (WebCore::HTMLParser::parseToken): Tightened up the skip mode logic at the
49311         top of the function, and added a FIXME about the strange case there where
49312         we don't skip yet stay in skip mode. Updated for renaming and doc().
49313         (WebCore::HTMLParser::insertNode): Updated for renaming and doc().
49314         (WebCore::HTMLParser::handleError): Ditto.
49315         (WebCore::HTMLParser::framesetCreateErrorCheck): Ditto.
49316         (WebCore::HTMLParser::isindexCreateErrorCheck): Changed to use RefPtr.
49317         (WebCore::HTMLParser::noscriptCreateErrorCheck): Updated for renaming and doc().
49318         (WebCore::HTMLParser::mapCreateErrorCheck): Ditto.
49319         (WebCore::HTMLParser::getNode): Removed the special case for canvas here.
49320         Canvas fallback is now handled in the DOM, not the parser. Updated for
49321         renaming and doc().
49322         (WebCore::HTMLParser::allowNestedRedundantTag): Changed a #define into a C++
49323         constant.
49324         (WebCore::HTMLParser::processCloseTag): Updated for renaming and doc().
49325         (WebCore::HTMLParser::isInline): Ditto.
49326         (WebCore::HTMLParser::tagIsOnStack): Added. Used by new canvas logic.
49327         (WebCore::HTMLParser::popBlock): Updated for renaming and doc(). Also renamed
49328         the local variable Elem to elem.
49329         (WebCore::HTMLParser::createHead): Ditto.
49330         (WebCore::HTMLParser::handleIsindex): Changed to use RefPtr.
49331         (WebCore::HTMLParser::startBody): Updated for renaming and doc().
49332         (WebCore::HTMLParser::finished): Ditto.
49333
49334 2007-03-13  David Hyatt  <hyatt@apple.com>
49335
49336         Two more cleanup fixes to the cache.  Don't call destroyDecodedData in the BitmapImage destructor, since
49337         clearing the image source and calling setData on it again causes it to do an extra copy of the encoded
49338         data.  Since we're about to be destroyed this is just wasteful.
49339
49340         When the cache prunes, don't allow it to destroy the decoded data of an image that is still actively loading,
49341         since we've established that ImageIO can actually crash if you yank the rug out from under it like that.
49342
49343         Reviewed by ggaren
49344
49345         * loader/Cache.cpp:
49346         (WebCore::Cache::prune):
49347         * platform/graphics/BitmapImage.cpp:
49348         (WebCore::BitmapImage::~BitmapImage):
49349
49350 2007-03-13  Anders Carlsson  <acarlsson@apple.com>
49351
49352         Try fixing the Qt build.
49353         
49354         * editing/Editor.h:
49355         (WebCore::Editor::setStartNewKillRingSequence):
49356
49357 2007-03-13  David Harrison  <harrison@apple.com>
49358
49359         Reviewed by Justin.
49360
49361         <rdar://problem/5031181> cntl-k at end of paragraph adds nothing to the kill ring
49362         <rdar://problem/5031189> REGRESSION: cntl-y yanks only the most recently killed content
49363
49364         For rdar://5031181, properly extend the selection before the killring handling, and
49365         make sure plainText of that selection returns a linefeed.
49366         
49367         For rdar://5031189, restore Editor::deleteRange() code that continued current killring,
49368         even though the range deletion implicitly stopped it via changing the selection.
49369         
49370         A byproduct of this change is the elimination of RUNDFINDER vs CONTENT TextIterator. The
49371         only difference between the two was whether to emit a newline when the range started
49372         with a blockflow element. No callers actually need that any more.
49373
49374         Tests added:
49375         * editing/pasteboard/emacs-ctrl-k-y-001-expected.checksum: Added.
49376         * editing/pasteboard/emacs-ctrl-k-y-001-expected.png: Added.
49377         * editing/pasteboard/emacs-ctrl-k-y-001-expected.txt: Added.
49378         * editing/pasteboard/emacs-ctrl-k-y-001.html: Added.
49379
49380         * editing/Editor.cpp:
49381         (WebCore::Editor::deleteRange):
49382         Clear the "start new kill ring sequence" setting, because it was set to true
49383         when the selection was updated by deleting the range.
49384         
49385         (WebCore::Editor::deleteWithDirection):
49386         If extending the selection to the end of paragraph resulted in a caret selection,
49387         extend by character, to handle the case when the selection started as a caret at
49388         the end of paragraph.
49389         
49390         * editing/TextIterator.cpp:
49391         (WebCore::TextIterator::TextIterator):
49392         Initialize new member variables for tracking handling of the beginning of the range.
49393         
49394         (WebCore::TextIterator::advance):
49395         Call representNodeOffsetZero on the m_endContainer.
49396         Move visibility checks into handleTextNode and handleReplacedElement.
49397         
49398         (WebCore::TextIterator::handleTextNode):
49399         (WebCore::TextIterator::handleTextBox):
49400         Call emitText.
49401         
49402         (WebCore::TextIterator::handleReplacedElement):
49403         Moved visibility check into here.
49404         
49405         (WebCore::shouldEmitNewlinesBeforeAndAfterNode):
49406         
49407         (WebCore::TextIterator::shouldRepresentNodeOffsetZero):
49408         (WebCore::TextIterator::representNodeOffsetZero):
49409         New. Emits proper sequence when encountering offset 0 of a node, including the
49410         m_endContainer. Started with code from handleNonTextNode.
49411         
49412         (WebCore::TextIterator::handleNonTextNode):
49413         Call representNodeOffsetZero.
49414         
49415         (WebCore::TextIterator::exitNode):
49416         Similar to shouldRepresentNodeOffsetZero, do not emit the newline if the node
49417         was collapsed, and before any other emitted content.
49418         
49419         (WebCore::TextIterator::emitCharacter):
49420         
49421         (WebCore::TextIterator::emitText):
49422         New. Consolidates code used by handleText and handleTextBox.
49423         
49424         (WebCore::CharacterIterator::CharacterIterator):
49425         Removed RUNFINDER.
49426
49427         (WebCore::WordAwareIterator::WordAwareIterator):
49428         Removed RUNFINDER.
49429         
49430         (WebCore::WordAwareIterator::advance):
49431         Formatting.
49432
49433         (WebCore::TextIterator::rangeLength):
49434         Formatting.
49435         
49436         * editing/TextIterator.h:
49437         Added member variables for tracking handling of the beginning of the range.
49438         Eliminated concept of RUNDFINDER vs CONTENT TextIterator.
49439         
49440         * editing/visible_units.cpp:
49441         (WebCore::nextBoundary):
49442         Eliminated concept of RUNDFINDER vs CONTENT TextIterator.
49443
49444 2007-03-13  David Hyatt  <hyatt@apple.com>
49445
49446         Clean up the null image case in CachedImage::data to make sure the size totals will stay accurate.
49447         I'm not convinced this case can even be hit, but I'm cleaning it up just in case.
49448
49449         * loader/CachedImage.cpp:
49450         (WebCore::CachedImage::data):
49451
49452 2007-03-13  David Hyatt  <hyatt@apple.com>
49453
49454         Reorder the call to allReferencesRemoved, since otherwise the live object size will become
49455         incorrect.
49456
49457         * loader/CachedResource.cpp:
49458         (WebCore::CachedResource::deref):
49459
49460 2007-03-13  Antti Koivisto  <antti@apple.com>
49461
49462         Reviewed by Darin.
49463         
49464         Fix http://bugs.webkit.org/show_bug.cgi?id=11083
49465         REGRESSION: Typing tab key fails to insert a tab character in Google Docs editable area
49466         <rdar://problem/4757650>
49467         
49468         Allow inserting tabs in designMode. Backtab behaves like before (matches FF).
49469
49470         * page/EventHandler.cpp:
49471         (WebCore::EventHandler::defaultTabEventHandler):
49472
49473 2007-03-13  David Hyatt  <hyatt@apple.com>
49474
49475         Fix two counting errors in the decoded size of objects in the WebCore cache.  We need to explicitly
49476         destroy decoded data when clearing out a partially loaded image that had an error, since the destructor
49477         (although it does destroy the data) disconnects the observer so that the notification doesn't happen.
49478
49479         Some CachedImages aren't in the cache (like image documents).  When the decoded size of such an image
49480         changes we should not notify the cache, since - newsflash - we aren't actually in it.
49481
49482         Reviewed by ggaren
49483
49484         * loader/CachedImage.cpp:
49485         (WebCore::CachedImage::clear):
49486         (WebCore::CachedImage::decodedSizeChanged):
49487
49488 2007-03-13  Darin Adler  <darin@apple.com>
49489
49490         Reviewed by Tim Hatcher and John Sullivan.
49491
49492         - fix <rdar://problem/4915303> CrashTracer: 36 crashes in Safari at
49493           com.apple.AppKit: -[NSView getRectsBeingDrawn:count:] + 502
49494
49495         * page/mac/FrameMac.mm: (WebCore::Frame::imageFromRect):
49496         This was calling drawRect: directly, but NSView's getRectsBeingDrawn:count:
49497         method was never really safe to call unless it was AppKit that called your
49498         drawRect: method. Changed it to call drawSingleRect: instead. A little ugly,
49499         but seems to work and will almost certainly fix the bug.
49500
49501 2007-03-13  Nikolas Zimmermann  <zimmermann@kde.org>
49502
49503         Reviewed by Maciej.
49504
49505         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12974
49506
49507         Call forgetGenericContext in JSSVGPathSeg destructor, otherwhise
49508         we'll hit an ASSERT in a debug build, when running svg/custom/js-update-path-changes.svg
49509         a few dozen times in a single WebKit instance. The ASSERT is good and just warns that
49510         there was already a generic context pointer registered, and the new "to be registered"
49511         object already exists, but pointing to a different object. That's because garbage collection
49512         calls the JSSVGPathSeg destructor, but that didn't cleanup the generic context map.
49513
49514         Only JSSVGPathSeg is hit by this problem, as it's the only non SVGAnimated* type
49515         using the generic context system while using a custom JSSVGPathSegList implementation.
49516
49517         Also cleanup JSSVGPathSegListCustom code to call the static forgetGenericContext
49518         method instead of doing the same using custom code.
49519
49520         * bindings/js/JSSVGPathSegListCustom.cpp:
49521         (WebCore::removeFromPathSegContextMap):
49522         (WebCore::JSSVGPathSegList::clear):
49523         (WebCore::JSSVGPathSegList::removeItem):
49524         * bindings/scripts/CodeGeneratorJS.pm:
49525
49526 2007-03-13  Darin Adler  <darin@apple.com>
49527
49528         Reviewed by Adele.
49529
49530         - fix http://bugs.webkit.org/show_bug.cgi?id=12595
49531           <rdar://problem/4722863> REGRESSION: Can't add item to cart at lnt.com
49532           (JS type error) (12595)
49533
49534         Test: fast/forms/old-names.html
49535
49536         * bindings/js/JSHTMLFormElementCustom.cpp:
49537         (WebCore::JSHTMLFormElement::canGetItemsForName): If the form collection has
49538         nothing for a given name, try the form's oldNamedElement function.
49539         (WebCore::JSHTMLFormElement::nameGetter): Ditto.
49540
49541         * bindings/js/kjs_dom.h: Removed the DOMNamedNodesCollection. Instead we will use
49542         a class derived from NodeList.
49543         * bindings/js/kjs_dom.cpp: Ditto.
49544
49545         * bindings/js/kjs_html.cpp:
49546         (KJS::VectorNodeList::VectorNodeList): Added. Constructor for a new class derived
49547         from NodeList to be used for the named items result from a collection -- uses a
49548         vector of node pointers.
49549         (KJS::VectorNodeList::length): Added.
49550         (KJS::VectorNodeList::item): Added.
49551         (KJS::JSHTMLCollection::getNamedItems): Use VectorNodeList and the existing wrapper
49552         for NodeList rather than a custom JavaScript class, DOMNamedNodesCollection.
49553
49554         * dom/ChildNodeList.h:
49555         * dom/ChildNodeList.cpp:
49556         (WebCore::ChildNodeList::ChildNodeList): Updated to derive from TreeNodeList,
49557         since NodeList is now a simpler class.
49558         (WebCore::ChildNodeList::elementMatches): Updated for name and parameter change.
49559
49560         * dom/NameNodeList.h:
49561         * dom/NameNodeList.cpp:
49562         (WebCore::NameNodeList::NameNodeList): Updated to derive from TreeNodeList,
49563         since NodeList is now a simpler class.
49564         (WebCore::NameNodeList::rootNodeAttributeChanged): Updated for name and
49565         parameter change.
49566
49567         * dom/Node.h: Change register/unregister functions to take TreeNodeList.
49568         * dom/Node.cpp:
49569         (WebCore::TagNodeList::TagNodeList): Updated to derive from TreeNodeList,
49570         since NodeList is now a simpler abstract class.
49571         (WebCore::TagNodeList::elementMatches): Updated for name and parameter change.
49572         (WebCore::Node::registerNodeList): Changed type from NodeList to TreeNodeList.
49573         (WebCore::Node::unregisterNodeList): Ditto.
49574
49575         * dom/NodeList.h: Broke NodeList into a simpler base class and a derived class
49576         with the machinery for iterating a tree, called TreeNodeList.
49577         * dom/NodeList.cpp:
49578         (WebCore::NodeList::~NodeList): Added.
49579         (WebCore::NodeList::itemWithName): Factored out of the old itemWithName.
49580         (WebCore::TreeNodeList::TreeNodeList): Renamed from NodeList.
49581         (WebCore::TreeNodeList::~TreeNodeList): Ditto.
49582         (WebCore::TreeNodeList::recursiveLength): Ditto.
49583         (WebCore::TreeNodeList::itemForwardsFromCurrent): Ditto.
49584         (WebCore::TreeNodeList::itemBackwardsFromCurrent): Ditto.
49585         (WebCore::TreeNodeList::recursiveItem): Ditto.
49586         (WebCore::TreeNodeList::itemWithName): Factored half of this into this function,
49587         the other half in NodeList::itemWithName.
49588         (WebCore::TreeNodeList::rootNodeAttributeChanged): Added. No longer inline.
49589         (WebCore::TreeNodeList::rootNodeChildrenChanged): Renamed from NodeList.
49590
49591         * html/HTMLFormElement.h: Added formElementNameChanged and oldNamedElement
49592         fucntions, and a map called m_oldNames. Also removed m_boundary, which I
49593         thought I had already done.
49594         * html/HTMLFormElement.cpp:
49595         (WebCore::HTMLFormElement::HTMLFormElement): Initialize m_oldNames to 0.
49596         Switched the rest of the members to initialization syntax.
49597         (WebCore::HTMLFormElement::~HTMLFormElement): Delete m_oldNames.
49598         (WebCore::HTMLFormElement::formElementNameChanged): Added. Stores a reference
49599         to one element under each of its old names.
49600         (WebCore::HTMLFormElement::oldNamedElement): Added. Returns the old element
49601         that once had a given name.
49602
49603         * html/HTMLGenericFormElement.h:
49604         * html/HTMLGenericFormElement.cpp:
49605         (WebCore::HTMLGenericFormElement::parseMappedAttribute): When the name
49606         attribute changes, tell the form about the old name.
49607         (WebCore::HTMLGenericFormElement::insertedIntoTree): When telling a form
49608         about an element, also store away the old name so that we can use it
49609         when the name changes later.
49610
49611         * html/HTMLInputElement.cpp:
49612         (WebCore::HTMLInputElement::parseMappedAttribute): Added a call to the
49613         base class in the nameAttr case, so the code in HTMLGenericFormElement
49614         above will get called in the input element case.
49615
49616 2007-03-13  Antti Koivisto  <antti@apple.com>
49617
49618         Reviewed by Alexey.
49619
49620         Alexey spotted a DOS by using string of 64k unbreakable character in
49621         fix for http://bugs.webkit.org/show_bug.cgi?id=12833
49622
49623         * dom/Text.cpp:
49624         (WebCore::Text::createWithLengthLimit):
49625
49626 2007-03-13  Lars Knoll <lars@trolltech.com>
49627
49628         Fix the Qt build
49629
49630         * WebCore.pro:
49631
49632 2007-03-13  Rob Buis  <buis@kde.org>
49633
49634         Reviewed by Darin.
49635
49636         http://bugs.webkit.org/show_bug.cgi?id=12576
49637         WebKit does not support xlink:show attributes
49638
49639         Make an exception for non-empty targets, these should be opened
49640         in a new window, unless the value is _self.
49641
49642         * ksvg2/svg/SVGAElement.cpp:
49643         (WebCore::SVGAElement::defaultEventHandler):
49644
49645 2007-03-13  David Hyatt  <hyatt@apple.com>
49646
49647         - fix cache issues seen in http://bugs.webkit.org/show_bug.cgi?id=13050
49648           6 objects and ~200MB leaked after opening then closing tab
49649           <rdar://problem/5058714>
49650
49651         Double the encoded size of images for now.  We do this to account for a bug in ImageIO where they hold
49652         a separate copy of image data.  See <rdar://problem/5050645>.
49653
49654         Reviewed by aroben.
49655
49656         * loader/CachedImage.cpp:
49657         (WebCore::CachedImage::data):
49658
49659 2007-03-12  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
49660
49661         Not reviewed - gdk build fix.
49662
49663         * platform/gdk/TemporaryLinkStubs.cpp:
49664         (SearchPopupMenu::enabled): add missing stub.
49665
49666 2007-03-12  David Kilzer  <ddkilzer@kilzer.net>
49667
49668         Reviewed by Darin.
49669
49670         - fix http://bugs.webkit.org/show_bug.cgi?id=13045
49671           REGRESSION: Blackboard CourseWare Error with Nightlies after Mar 8
49672
49673         * html/HTMLFormElement.cpp:
49674         (WebCore::getUniqueBoundaryString): Speculative fix: remove dashes from
49675         the boundary prefix that appear after non-dash characters.
49676
49677 2007-03-12  Mitz Pettel  <mitz@webkit.org>
49678
49679         Reviewed by Anders.
49680
49681         - fix http://bugs.webkit.org/show_bug.cgi?id=13015
49682           REGRESSION (r17233-r17241): Repro crash when leaving a page whose unload handler submits a form
49683
49684         Test: fast/loader/onunload-form-submit-crash-2.html
49685
49686         * loader/DocumentLoader.cpp:
49687         (WebCore::DocumentLoader::finishedLoading): Added null check.
49688
49689 2007-03-12  Anders Carlsson  <acarlsson@apple.com>
49690
49691         Reviewed by Darin.
49692
49693         <rdar://problem/4900071>
49694         http://bugs.webkit.org/show_bug.cgi?id=6454
49695         ASSERTION: Navigating 'back' in frameset: !_private->previousItem (6454)
49696
49697         Change back the behavior of checkLoadComplete to traverse the entire frame tree instead of
49698         just the parent frames of the current frame. This is needed in order to reset the previous history item
49699         for all frames when doing a frame navigation. (This was changed in revision 11819)
49700         
49701         * loader/FrameLoader.cpp:
49702         (WebCore::FrameLoader::recursiveCheckLoadComplete):
49703         (WebCore::FrameLoader::checkLoadComplete):
49704         * loader/FrameLoader.h:
49705
49706 2007-03-12  Justin Garcia  <justin.garcia@apple.com>
49707
49708         Reviewed by darin
49709         
49710         <rdar://problem/5056619> 
49711         REGRESSION: Gmail Editor: Dragging text into Reply (textarea) field results in a crash at WebCore::InsertNodeBeforeCommand::doApply()
49712         
49713         * editing/SelectionController.cpp:
49714         (WebCore::removingNodeRemovesPosition): Added.
49715         (WebCore::SelectionController::nodeWillBeRemoved): Clear the
49716         selection if it's inside a shadow tree.
49717         * page/DragController.cpp:
49718         (WebCore::setSelectionToDragCaret): Return false to signal to
49719         clients that a drop shouldn't be performed if the second attempt
49720         to set a selection ends up in non-editable content.
49721
49722 2007-03-12  Darin Adler  <darin@apple.com>
49723
49724         Reviewed by Tim Hatcher.
49725
49726         - fixed JavaScript wrapper classes to be correct for a variety of cases
49727           that a new test uncovered: was broken for at least 5 classes
49728
49729         - fixed Objective-C wrapper classes to be correct for a variety of cases
49730           that a test case uncovered: was broken for ast least 50 classes
49731
49732         - added missing DOM API for creating OverflowEvent and WheelEvent instances
49733
49734         Test: fast/dom/wrapper-classes.html
49735
49736         * DerivedSources.make: Added missing bindings: HTMLCanvasElement for ObjC,
49737         CDATASection, Comment, and EntityReference for JavaScript.
49738         * WebCore.xcodeproj/project.pbxproj: Added those new generated files.
49739
49740         * bindings/js/JSHTMLElementWrapperFactory.cpp:
49741         (WebCore::createJSHTMLWrapper): Corrected the wrapper classes for <keygen>,
49742         which needs an HTMLSelectElement wrapper, and <xmp>, which needs an
49743         HTMLPreElement wrapper.
49744
49745         * bindings/objc/DOMInternal.h: Updated for new naming scheme.
49746         Also moved createDOMWrapper from the KJS namespace to the WebCore namespace.
49747         * bindings/objc/DOMUtility.mm:
49748         (KJS::createDOMWrapper): Broke the core function into a separate one, and
49749         left it in the KJS namespace because Objective-C++ rules make it impossible
49750         for it to work in the WebCore namespace. Used a macro-based implementation
49751         to cut down on repeated code, and added missing cases for Counter,
49752         HTMLOptionsCollection, Range, XPathExpression, XPathResult, Event, RGBColor,
49753         Rect, Window, DOMImplementation, NodeIterator, TreeWalker, and HTMLCollection.
49754         (WebCore::createDOMWrapper): The other half of the function.
49755
49756         * bindings/objc/DOM.mm:
49757         (WebCore::createElementClassMap): Corrected the wrapper classes for
49758         <canvas>, which needs a DOMHTMLCanvasElement wrapper, <del>, which needs
49759         a DOMHTMLModElement wrapper, <embed>, which needs a DOMHTMLEmbedElement
49760         wrapper, <ins>, which needs a DOMHTMLModElement wrapper, <th>, which needs
49761         a DOMHTMLTableCellElement wrapper, and <xmp>, which needs an
49762         DOMHTMLPreElement wrapper.
49763         (+[DOMNode _wrapNode:]): Updated for new naming scheme.
49764         (+[DOMNode _wrapEventTarget:]): Ditto.
49765         (+[DOMNodeFilter _wrapNodeFilter:]): Ditto.
49766         (ObjCNodeFilterCondition::acceptNode): Ditto.
49767         (-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]): Ditto.
49768         (-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]): Ditto.
49769         (WebCore::ObjCEventListener::handleEvent): Ditto.
49770
49771         * dom/Document.cpp: (WebCore::Document::createEvent):
49772         Added cases for OverflowEvent and WheelEvent.
49773
49774         * dom/OverflowEvent.h: Added empty constructor and initOverflowEvent.
49775         * dom/OverflowEvent.cpp:
49776         (WebCore::OverflowEvent::OverflowEvent): Added.
49777         (WebCore::OverflowEvent::initOverflowEvent): Added.
49778         * dom/OverflowEvent.idl: Added initOverflowEvent.
49779
49780         * bindings/objc/PublicDOMInterfaces.h: Added initOverflowEvent.
49781
49782         * bindings/objc/DOMCSS.mm:
49783         (+[DOMStyleSheet _wrapStyleSheet:]): Updated for new naming scheme.
49784         (+[DOMCSSRule _wrapCSSRule:]): Corrected wrapper for CSSUnknownRule.
49785         (+[DOMCSSValue _wrapCSSValue:]): Updated for new naming scheme.
49786
49787         * bindings/js/kjs_css.h:
49788         (KJS::DOMRGBColor::impl): Added. Used when making an ObjC wrapper.
49789         (KJS::DOMRect::impl): Ditto.
49790
49791         * bindings/js/kjs_dom.cpp: (KJS::toJS): Corrected the wrapper classes for
49792         CDATASection, Comment, and EntityReference.
49793
49794         * bindings/js/kjs_html.cpp: Corrected the class name for HTMLElement
49795         (was "DOMHTMLElement") and HTMLCollection (was "Collection").
49796
49797         * bindings/objc/DOMImplementationFront.h:
49798         * bindings/objc/DOMImplementationFront.cpp:
49799         (WebCore::implementationFront): Added new overload that returns a front given
49800         a JavaScript wrapper. Needed by the code that makes the Objective-C wrapper.
49801
49802         * bindings/objc/WebScriptObject.mm:
49803         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
49804         Updated since createDOMWrapper is now in the WebCore namespace.
49805
49806         * bindings/scripts/CodeGeneratorObjC.pm: Update the naming scheme for the
49807         wrapper creation functions to use _wrapElement: rather then _elementWith:
49808         style. Removed now-unneeded special cases for things that needed to stay
49809         upper-case, since we don't have to do the whole lcfirst thing.
49810
49811         * html/HTMLCanvasElement.idl: Added #if so we can successfully generate the
49812         Objective-C wrapper for this class, even though we can't yet handle the
49813         DOMObject return type.
49814
49815         * html/HTMLOptionsCollection.idl: Added GenerateNativeConverter so we get
49816         an appropriate toJS function.
49817
49818         * bindings/objc/DOMEvents.mm:
49819         (+[DOMEvent _wrapEvent:]):
49820         * bindings/objc/DOMHTML.mm:
49821         (-[DOMHTMLDocument createDocumentFragmentWithMarkupString:baseURL:]):
49822         (-[DOMHTMLDocument createDocumentFragmentWithText:]):
49823         * bindings/objc/DOMObject.mm:
49824         (-[DOMObject sheet]):
49825         * bindings/objc/DOMRGBColor.mm:
49826         (-[DOMRGBColor red]):
49827         (-[DOMRGBColor green]):
49828         (-[DOMRGBColor blue]):
49829         (-[DOMRGBColor alpha]):
49830         (+[DOMRGBColor _wrapRGBColor:]):
49831         * bindings/objc/DOMSVGPathSegInternal.mm:
49832         (+[DOMSVGPathSeg _wrapSVGPathSeg:]):
49833         * bindings/objc/DOMXPath.mm:
49834         (+[DOMNativeXPathNSResolver _wrapXPathNSResolver:]):
49835         * page/mac/WebCoreFrameBridge.mm:
49836         (-[WebCoreFrameBridge nodesFromList:]):
49837         (-[WebCoreFrameBridge elementWithName:inForm:]):
49838         (-[WebCoreFrameBridge formForElement:]):
49839         (-[WebCoreFrameBridge currentForm]):
49840         (-[WebCoreFrameBridge controlsInForm:]):
49841         (-[WebCoreFrameBridge rangeByAlteringCurrentSelection:SelectionController::direction:SelectionController::granularity:]):
49842         (-[WebCoreFrameBridge convertNSRangeToDOMRange:]):
49843         (-[WebCoreFrameBridge markDOMRange]):
49844         (-[WebCoreFrameBridge markedTextDOMRange]):
49845         (-[WebCoreFrameBridge smartDeleteRangeForProposedRange:]):
49846         (-[WebCoreFrameBridge documentFragmentWithMarkupString:baseURLString:]):
49847         (-[WebCoreFrameBridge documentFragmentWithText:inContext:]):
49848         (-[WebCoreFrameBridge documentFragmentWithNodesAsParagraphs:]):
49849         (-[WebCoreFrameBridge replaceSelectionWithNode:selectReplacement:smartReplace:matchStyle:]):
49850         (-[WebCoreFrameBridge replaceSelectionWithText:selectReplacement:smartReplace:]):
49851         (-[WebCoreFrameBridge increaseSelectionListLevel]):
49852         (-[WebCoreFrameBridge increaseSelectionListLevelOrdered]):
49853         (-[WebCoreFrameBridge increaseSelectionListLevelUnordered]):
49854         (-[WebCoreFrameBridge dragCaretDOMRange]):
49855         (-[WebCoreFrameBridge editableDOMRangeForPoint:]):
49856         (-[WebCoreFrameBridge characterRangeAtPoint:]):
49857         (-[WebCoreFrameBridge typingStyle]):
49858         (-[WebCoreFrameBridge rangeOfCharactersAroundCaret]):
49859         * platform/mac/ClipboardMac.mm:
49860         (WebCore::ClipboardMac::declareAndWriteDragImage):
49861         * platform/mac/PasteboardMac.mm:
49862         (WebCore::Pasteboard::writeSelection):
49863         Updated for new naming scheme.
49864
49865 2007-03-12  Timothy Hatcher  <timothy@apple.com>
49866
49867         Reviewed by Darin.
49868
49869         <rdar://problem/4990691> REGRESSION: Selecting text in Adium's Messages field causes horizontal shift
49870
49871         Corrected the recursive point conversion and scrolling done in scrollPointRecursively to use the
49872         document view of each NSClipView.
49873
49874         * platform/mac/ScrollViewMac.mm:
49875         (WebCore::ScrollView::scrollPointRecursively): Call convertPoint:fromView: on the document views,
49876         not the clip views as we encounter them. Then call constrainScrollPoint: on the converted point to
49877         constrain to the document view bounds. And finally call scrollPoint: on the document view, not the clip view.
49878
49879 2007-03-12  Antti Koivisto  <antti@apple.com>
49880
49881         Reviewed by Alexey.
49882
49883         Fix http://bugs.webkit.org/show_bug.cgi?id=12833
49884         REGRESSION: Selecting text in 6.6MB txt file is sluggish as of the Feb 19th nightly
49885         <rdar://problem/5028159>
49886         
49887         Divide large text blocks (>64kB) over multiple text nodes. This limits linebox searches to
49888         a manageable subset.
49889         
49890         * dom/Text.cpp:
49891         (WebCore::Text::createWithLengthLimit):
49892         * dom/Text.h:
49893         * html/HTMLParser.cpp:
49894         (WebCore::HTMLParser::parseToken):
49895         * loader/TextDocument.cpp:
49896         (WebCore::TextTokenizer::write):
49897
49898 2007-03-12  David Hyatt  <hyatt@apple.com>
49899
49900         Fix a regression in printing.  Printer fonts need to be part of the
49901         font cache key, since printer fonts have different glyph widths.
49902         (Integer antialiasing is used for screen fonts but not for printer fonts.)
49903
49904         Reviewed by aroben
49905
49906         * platform/FontCache.cpp:
49907         (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
49908         (WebCore::FontPlatformDataCacheKey::operator==):
49909         (WebCore::computeHash):
49910         (WebCore::FontCache::getCachedFontPlatformData):
49911
49912 2007-03-12  Lars Knoll <lars@trolltech.com>
49913
49914         add missing symbol to fix the Qt build again.
49915
49916         * platform/qt/SearchPopupMenuQt.cpp:
49917         (WebCore::SearchPopupMenu::enabled):
49918
49919 2007-03-12  Adele Peterson  <adele@apple.com>
49920
49921         Reviewed by Oliver.
49922
49923         Adding the ability to enable or disable a SearchPopupMenu.
49924
49925         * platform/SearchPopupMenu.h:
49926         * platform/mac/SearchPopupMenuMac.mm: (WebCore::SearchPopupMenu::enabled):
49927         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::showPopup):
49928
49929 2007-03-12  Rob Buis  <buis@kde.org>
49930
49931         Reviewed by Nikolas Zimmermann.
49932
49933         http://bugs.webkit.org/show_bug.cgi?id=12500
49934         SVG fails to correctly handle all link style selectors
49935         http://bugs.webkit.org/show_bug.cgi?id=12567
49936         <text> elements ignore <a> children
49937
49938         Allow <a> inside svg text and handle xlink:show.
49939
49940         * ksvg2/svg/SVGAElement.cpp:
49941         (WebCore::SVGAElement::createRenderer):
49942         (WebCore::SVGAElement::defaultEventHandler):
49943         (WebCore::SVGAElement::childShouldCreateRenderer):
49944         * ksvg2/svg/SVGAElement.h:
49945         * ksvg2/svg/SVGElement.h:
49946         (WebCore::SVGElement::isTextContent):
49947         * ksvg2/svg/SVGTextContentElement.h:
49948         (WebCore::SVGTextContentElement::isTextContent):
49949         * ksvg2/svg/SVGTextElement.cpp:
49950         (WebCore::SVGTextElement::childShouldCreateRenderer):
49951         * rendering/SVGInlineFlowBox.cpp:
49952         (WebCore::translateBox):
49953         (WebCore::placePositionedBoxesHorizontally):
49954         (WebCore::placeBoxesVerticallyWithAbsBaseline):
49955
49956 2007-03-12  Adele Peterson  <adele@apple.com>
49957
49958         Reviewed by Oliver.
49959
49960         Add a missing parameter to the constructor.
49961
49962         * platform/PlatformKeyboardEvent.h:
49963         * platform/win/KeyEventWin.cpp: (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
49964
49965 2007-03-12  Lars Knoll <lars@trolltech.com>
49966
49967         Fix the Qt build. I still get crashes though :/
49968
49969         * platform/graphics/qt/ImageDecoderQt.cpp:
49970         (WebCore::ImageDecoderQt::clearFrame):
49971         * platform/graphics/qt/ImageDecoderQt.h:
49972         * platform/graphics/qt/ImageSourceQt.cpp:
49973         (WebCore::ImageSource::setData):
49974         (WebCore::ImageSource::frameIsCompleteAtIndex):
49975         (WebCore::ImageSource::clear):
49976         (WebCore::ImageSource::destroyFrameAtIndex):
49977         * platform/qt/ClipboardQt.cpp:
49978         (WebCore::ClipboardQt::ClipboardQt):
49979         * platform/qt/ClipboardQt.h:
49980         * platform/qt/DragDataQt.cpp:
49981         (WebCore::DragData::createClipboard):
49982
49983 2007-03-11  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
49984
49985         Not reviewed - gdk build fixes.
49986
49987         * platform/gdk/EditorClientGdk.cpp:
49988         (WebCore::EditorClientGdk::respondToChangedSelection): add stub
49989         * platform/gdk/EditorClientGdk.h:
49990         * platform/gdk/FrameGdk.cpp:
49991         * platform/gdk/TemporaryLinkStubs.cpp:
49992         (Editor::markMisspellings): add stub
49993
49994 2007-03-11  Alexey Proskuryakov  <ap@webkit.org>
49995
49996         Reviewed by Adele.
49997
49998         http://bugs.webkit.org/show_bug.cgi?id=12560
49999         W3C XPath test Text_Nodes.svg fails
50000
50001         * xml/XPathStep.cpp:
50002         (WebCore::XPath::Step::nodeTestMatches): Revert the fix, as the behavior doesn't appear 
50003         all that desirable as it did at first glance.
50004
50005 2007-03-11  Oliver Hunt  <oliver@apple.com>
50006
50007         Reviewed by hyatt.
50008
50009         Fix for <rdar://problem/5055690> ASSERTION failure on drop into 
50010         editable element with content changed on drop 
50011
50012         After setting the selection for a drop into an editable region 
50013         we make sure the we succeeded.  If we didn't we assume a focus handler
50014         or similar altered the element contents and try again, if the second
50015         attempt fails we bail out.
50016
50017         * page/DragController.cpp:
50018         (WebCore::setSelectionToDragCaret):
50019         (WebCore::DragController::concludeDrag):
50020
50021 2007-03-11  Oliver Hunt  <oliver@apple.com>
50022
50023         Reviewed by Adele.
50024
50025         Moving Frame{Mac}::respondToChangedSelection to Frame.cpp
50026         Added new EditorClient method to handle old bridge function
50027         
50028         * bridge/EditorClient.h:
50029            Added respondToChangedSelection to replace old bridge function
50030         * editing/Editor.cpp:
50031         (WebCore::Editor::respondToChangedSelection):
50032            Add client call to replace old bridge call from Frame::respondToChangedSelection
50033         * editing/SelectionController.cpp:
50034         (WebCore::SelectionController::setSelection):
50035            No longer directly call Editor as Frame::respondToChangedSelection
50036            makes the call
50037         * page/Frame.cpp:
50038         (WebCore::Frame::respondToChangedSelection):
50039            Moved from FrameMac, replaced bridge call with call to Editor
50040         * page/mac/FrameMac.mm:
50041            Moved respondToChangedSelection to Frame.cpp
50042         * page/mac/WebCoreFrameBridge.h:
50043            Removed respondToChangedSelection from bridge
50044         * page/qt/FrameQt.cpp:
50045            Remove stub method for respondToChangedSelection
50046
50047 2007-03-11  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
50048
50049         Reviewed by Brady Eidson.
50050
50051         Linux/gdk fix.
50052
50053         * loader/gdk/FrameLoaderClientGdk.cpp:
50054         (WebCore::FrameLoaderClientGdk::shouldGoToHistoryItem): return true so
50055         that FrameLoader:goBackOrForwards() works.
50056
50057 2007-03-10  Geoffrey Garen  <ggaren@apple.com>
50058
50059         Reviewed by Darin Adler.
50060
50061         Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and 
50062         JSCore causes a hang @ www.panoramas.dk
50063         
50064         See JavaScriptCore ChangeLog for details.
50065         
50066         * bindings/objc/WebScriptObject.mm:
50067         (_didExecute): Added helpful ASSERT.
50068         (+[WebScriptObject throwException:]): Added missing JSLock.
50069
50070 2007-03-11  Antti Koivisto  <antti@apple.com>
50071
50072         Reviewed by Hyatt.
50073
50074         Optimize linebox memory consumption:
50075         - move all bitfields to baseclass compacting them
50076         - make InlineTextBox::m_truncation unsigned short and make it relative to m_start
50077         - remove extremely rarely used EllipsisBox pointer from RootInlineBox and instead
50078           use a global hashmap to store it if needed
50079         - use minimum required number of bits to store BidiStatus enum variables in RootInlineBox
50080         - move overflow variables in RootInlineBox to a separate struct that is instantiated
50081           only if any of the variables is set to a value that can't trivially be derived from 
50082           box x, y, width and height
50083           
50084         As a result line box objects shrink:
50085             InlineBox: 44 -> 44 bytes
50086             InlineTextBox: 68 -> 60 bytes
50087             InlineFlowBox: 68 -> 64 bytes
50088             RootInlineBox: 128 -> 88 bytes
50089             
50090         The optimizations possiblity was noticed when debugging http://bugs.webkit.org/show_bug.cgi?id=12833
50091         Bug 12833: REGRESSION: Selecting text in 6.6MB txt file is sluggish as of the Feb 19th nightly
50092         <rdar://problem/5028159>
50093         
50094         On that page the patch saves 11.5MB or some 21% of linebox memory consumption. It also
50095         actually improves selection performance somewhat by improving memory locality.
50096
50097         * rendering/InlineBox.h:
50098         (WebCore::InlineBox::InlineBox):
50099         * rendering/InlineFlowBox.h:
50100         (WebCore::InlineFlowBox::InlineFlowBox):
50101         * rendering/InlineTextBox.cpp:
50102         (WebCore::InlineTextBox::placeEllipsisBox):
50103         (WebCore::InlineTextBox::nodeAtPoint):
50104         (WebCore::InlineTextBox::paint):
50105         (WebCore::InlineTextBox::paintDecoration):
50106         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
50107         (WebCore::InlineTextBox::paintMarkedTextUnderline):
50108         * rendering/InlineTextBox.h:
50109         (WebCore::InlineTextBox::InlineTextBox):
50110         * rendering/RootInlineBox.cpp:
50111         (WebCore::throw):
50112         (WebCore::RootInlineBox::Overflow::operator delete):
50113         (WebCore::RootInlineBox::Overflow::destroy):
50114         (WebCore::RootInlineBox::destroy):
50115         (WebCore::RootInlineBox::detachEllipsisBox):
50116         (WebCore::RootInlineBox::clearTruncation):
50117         (WebCore::RootInlineBox::placeEllipsis):
50118         (WebCore::RootInlineBox::paintEllipsisBox):
50119         (WebCore::RootInlineBox::addHighlightOverflow):
50120         (WebCore::RootInlineBox::nodeAtPoint):
50121         (WebCore::RootInlineBox::adjustPosition):
50122         (WebCore::RootInlineBox::selectionTop):
50123         (WebCore::RootInlineBox::setLineBreakInfo):
50124         (WebCore::RootInlineBox::ellipsisBox):
50125         (WebCore::RootInlineBox::setVerticalOverflowPositions):
50126         (WebCore::RootInlineBox::setHorizontalOverflowPositions):
50127         (WebCore::RootInlineBox::setVerticalSelectionPositions):
50128         * rendering/RootInlineBox.h:
50129         (WebCore::RootInlineBox::RootInlineBox):
50130         (WebCore::RootInlineBox::topOverflow):
50131         (WebCore::RootInlineBox::bottomOverflow):
50132         (WebCore::RootInlineBox::leftOverflow):
50133         (WebCore::RootInlineBox::rightOverflow):
50134         (WebCore::RootInlineBox::lineBreakBidiStatus):
50135         (WebCore::RootInlineBox::selectionBottom):
50136         (WebCore::RootInlineBox::Overflow::Overflow):
50137
50138 2007-03-11  Alexey Proskuryakov  <ap@webkit.org>
50139
50140         Reviewed by Darin.
50141
50142         A partial fix for http://bugs.webkit.org/show_bug.cgi?id=13021
50143         XPath can be very slow
50144
50145         * xml/XPathExpression.cpp:
50146         (WebCore::XPathExpression::evaluate): Cache evaluationContext in a local variable.
50147
50148         * xml/XPathExpressionNode.cpp:
50149         (WebCore::XPath::Expression::evaluationContext):
50150         * xml/XPathExpressionNode.h:
50151         (WebCore::XPath::Expression::addSubExpression):
50152         (WebCore::XPath::Expression::subExprCount):
50153         (WebCore::XPath::Expression::subExpr):
50154         * xml/XPathFunctions.cpp:
50155         * xml/XPathFunctions.h:
50156         (WebCore::XPath::Function::setName):
50157         (WebCore::XPath::Function::arg):
50158         (WebCore::XPath::Function::argCount):
50159         (WebCore::XPath::Function::name):
50160         Made one-liners critical for performance inline.
50161
50162         * xml/XPathGrammar.y: Fully parse NodeTests, so that strings are no longer passed for what is
50163         essentially an enum. Use LocationPath accessors to add steps, instead of directly manipulating
50164         internal data members.
50165
50166         * xml/XPathParser.cpp:
50167         (WebCore::XPath::Parser::parseStatement):
50168         (WebCore::XPath::Parser::registerNodeTest):
50169         (WebCore::XPath::Parser::deleteNodeTest):
50170         * xml/XPathParser.h:
50171         Added support methods for changes in XPathGrammar.y.
50172
50173         * xml/XPathPath.cpp:
50174         (WebCore::XPath::Filter::evaluate): Cache evaluationContext in a local variable. Use swap() to avoid
50175         performing vector assignments.
50176         (WebCore::XPath::LocationPath::evaluate): Use swap() to avoid performing vector assignments.
50177         (WebCore::XPath::LocationPath::optimizeStepPair): This new method is called during LocationPath construction, 
50178         to simplify the path as it's being built. Currently, the only optimized case is "//*" - it is a basis for
50179         important operations that cannot be efficiently written in XPath 1.0, but can be optimized with a little bit
50180         of XPath 2.0.
50181         (WebCore::XPath::LocationPath::appendStep): A new accessor that modifies m_steps and calls optimizeStepPair().
50182         (WebCore::XPath::LocationPath::insertFirstStep): Ditto.
50183         * xml/XPathPath.h:
50184         (WebCore::XPath::LocationPath::setAbsolute): A new accessor.
50185
50186         * xml/XPathStep.h:
50187         (WebCore::XPath::Step::NodeTest::):
50188         (WebCore::XPath::Step::NodeTest::NodeTest):
50189         (WebCore::XPath::Step::NodeTest::kind):
50190         (WebCore::XPath::Step::NodeTest::data):
50191         Step::NodeTest is a new sub-class that represents a fully parsed NodeTest.
50192         (WebCore::XPath::Step::axis):
50193         (WebCore::XPath::Step::nodeTest):
50194         (WebCore::XPath::Step::nodeTestData):
50195         (WebCore::XPath::Step::namespaceURI):
50196         (WebCore::XPath::Step::predicates):
50197         (WebCore::XPath::Step::setAxis):
50198         (WebCore::XPath::Step::setNodeTest):
50199         (WebCore::XPath::Step::setNodeTestData):
50200         (WebCore::XPath::Step::setNamespaceURI):
50201         (WebCore::XPath::Step::setPredicates):
50202         New accessors that let optimizeStepPair() manipulate Step data.
50203
50204         * xml/XPathStep.cpp:
50205         (WebCore::XPath::Step::Step): Use the new NodeTest class.
50206         (WebCore::XPath::Step::evaluate): Cache evaluationContext in a local variable. Use swap() to avoid
50207         performing unneeded vector assignments.
50208         (WebCore::XPath::Step::nodesInAxis): Cosmetic changes.
50209         (WebCore::XPath::Step::nodeTestMatches): Use NodeTest instead of parsing the test from string each time.
50210         Added a partial implementation of XPath 2.0 element() node test.
50211
50212 2007-03-10  Alexey Proskuryakov  <ap@webkit.org>
50213
50214         Reviewed by Darin.
50215
50216         http://bugs.webkit.org/show_bug.cgi?id=12249
50217         FCKeditor: <hr>, <ul> and <ol> have id="undefined"
50218
50219         This fixes the attached reduction, but not the original issue.
50220
50221         Test: editing/execCommand/default-parameters.html
50222
50223         * dom/Document.h:
50224         * dom/Document.idl:
50225         Make second and third execCommand() parameters optional.
50226
50227 2007-03-10  Adele Peterson  <adele@apple.com>
50228
50229         Reviewed by Maciej.
50230
50231         Fix for http://bugs.webkit.org/show_bug.cgi?id=13028
50232         REGRESSION: textField:doCommandBySelector:inFrame: not being called properly
50233
50234         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
50235           Before calling the base class defaultEventHandler, which will call handleKeypress, call doTextFieldCommandFromEvent.        
50236
50237 2007-03-10  Mitz Pettel  <mitz@webkit.org>
50238
50239         Reviewed by Darin.
50240
50241         - fix http://bugs.webkit.org/show_bug.cgi?id=13013
50242           REGRESSION: Selection box does not scroll to where the focus jumps when pressing an alphanumeric key
50243
50244         Test: fast/forms/listbox-typeahead-scroll.html
50245
50246         * html/HTMLSelectElement.cpp:
50247         (WebCore::HTMLSelectElement::setSelectedIndex): Reordered to set the active selection's
50248         anchor and end before selecting the option, since the active selection is used to
50249         decide where to scroll when the selection is made.
50250         (WebCore::HTMLSelectElement::defaultEventHandler): Removed redundant check.
50251
50252 2007-03-10  Mitz Pettel  <mitz@webkit.org>
50253
50254         Reviewed by Darin.
50255
50256         - fix http://bugs.webkit.org/show_bug.cgi?id=12973
50257           REGRESSION: Reproducible assert while loading this test file if css is already in the cache
50258
50259         Test: fast/dom/css-cached-import-rule.html
50260
50261         Replaced some direct calls to document->stylesheetLoaded() with calls to
50262         the sheet's checkLoaded(). The latter calls back to the element's sheetLoaded() --
50263         which notifies the document of the load -- and then updates the sheet's
50264         loadCompleted() flag, ensuring that it stays in sync with whether the stylesheet
50265         is still considered pending by the document.
50266
50267         * dom/ProcessingInstruction.cpp:
50268         (WebCore::ProcessingInstruction::parseStyleSheet):
50269         * dom/StyleElement.cpp:
50270         (WebCore::StyleElement::childrenChanged):
50271         * html/HTMLLinkElement.cpp:
50272         (WebCore::HTMLLinkElement::process):
50273         (WebCore::HTMLLinkElement::setCSSStyleSheet):
50274         * ksvg2/svg/SVGStyleElement.cpp:
50275         (WebCore::SVGStyleElement::sheetLoaded):
50276         * ksvg2/svg/SVGStyleElement.h:
50277
50278 2007-03-10  David Kilzer  <ddkilzer@webkit.org>
50279
50280         Reviewed by Darin.
50281
50282         - fix http://bugs.webkit.org/show_bug.cgi?id=9609
50283           REGRESSION: Missing image icon needs to be moved back to WebKit
50284
50285         * WebCore.exp: Export WebCore::Image::loadPlatformResource(const char*) for use in
50286         [WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:].
50287
50288 2007-03-09  Darin Adler  <darin@apple.com>
50289
50290         Reviewed by Justin.
50291
50292         - fix http://bugs.webkit.org/show_bug.cgi?id=8928
50293           <rdar://problem/5045708> REPRODUCIBLE ASSERT: Cannot paste HTML into a
50294           contenteditable region in an XHTML document (8928)
50295
50296         Test: editing/pasteboard/paste-xml.xhtml
50297
50298         * editing/markup.cpp: (WebCore::createFragmentFromMarkup): Added a check for 0
50299         here, since createContextualFragment can return 0 for XML documents that fail
50300         to parse. In my testing, callers all seem equipped to handle 0.
50301
50302 2007-03-09  Mitz Pettel  <mitz@webkit.org>
50303
50304         Reviewed by Darin.
50305
50306         - fix http://bugs.webkit.org/show_bug.cgi?id=9929
50307           REGRESSION: crash on logging in on mijnpostbank.nl
50308
50309         Test: http/tests/misc/onload-remove-iframe-crash-2.html
50310
50311         The resulted from an iframe's load event handler removing the iframe
50312         from the document.
50313
50314         * dom/Document.cpp:
50315         (WebCore::Document::implicitClose): Bail out early if an event handler
50316         removed the frame.
50317         * loader/FrameLoader.cpp:
50318         (WebCore::FrameLoader::FrameLoader):
50319         (WebCore::FrameLoader::clear):
50320         (WebCore::FrameLoader::checkCompleted): Protect the frame from deletion
50321         by event handlers.
50322         (WebCore::FrameLoader::checkCompletedTimerFired):
50323         (WebCore::FrameLoader::scheduleCheckCompleted):
50324         (WebCore::FrameLoader::detachFromParent): Schedule a completion check
50325         on the parent (in case the child is what has been keeping it from completing).
50326         * loader/FrameLoader.h:
50327
50328 2007-03-08  David Kilzer  <ddkilzer@webkit.org>
50329
50330         Reviewed by Beth.
50331
50332         - fix http://bugs.webkit.org/show_bug.cgi?id=13019
50333           REGRESSION (r20074): Forms don't submit on a variety of websites
50334
50335         No tests added since LayoutTests/fast/forms/document-write.html was timing out
50336         and causing a layout test failure.
50337
50338         * html/HTMLFormElement.cpp:
50339         (WebCore::HTMLFormElement::submit): Removed stray code.
50340
50341 2007-03-08  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
50342
50343         Not reviewed - gdk build fix.
50344
50345         * platform/graphics/cairo/ImageSourceCairo.cpp:
50346         (WebCore::ImageSource::frameIsCompleteAtIndex): add empty stub
50347
50348 2007-03-08  Justin Garcia  <justin.garcia@apple.com>
50349
50350         Reviewed by harrison
50351         
50352         <rdar://problem/4903193> 
50353         On particular page, Copy is so slow it seems like a hang
50354         
50355         ~2x speedup copying:
50356         http://shakespeare.mit.edu/henryviii/full.html 
50357         Also produces less bloated markup.
50358
50359         * editing/markup.cpp:
50360         (WebCore::startMarkup): Don't wrap text nodes in style spans.
50361         For Elements, don't inline styles inherited from ancestors.
50362         (WebCore::createMarkup): No longer necessary to find 
50363         the root's default style and pass it to startMarkup.
50364         Add a wrapper span around the markup with the styles
50365         that all nodes in the markup inherit (the inheritable 
50366         styles from the common ancestor container's computed style).
50367         Added a FIXME about unecessary markup for inline ancestors 
50368         up to the commonAncestorBlock.
50369
50370 2007-03-08  Darin Adler  <darin@apple.com>
50371
50372         Reviewed by Adele.
50373
50374         - <rdar://problem/4470381> multipart/form-data boundary security vulnerability
50375
50376         By making the form data boundary a string with some random data in it, we reduce
50377         the possibility that anyone could take advantage of it by creating a file that
50378         intentionally has the boundary string in it.
50379
50380         * html/HTMLFormElement.h: Removed boundary(), setBoundary(), and m_boundary.
50381         Marked a lot more stuff private.
50382         * html/HTMLFormElement.cpp:
50383         (WebCore::HTMLFormElement::HTMLFormElement): Removed code to initialize
50384         m_boundary.
50385         (WebCore::randomNumber): Added. Function that returns a random number, including
50386         seeding the random number generator the first time it's called. For now, usees the more
50387         random function random() on Mac OS X and the more-standard rand() on other platforms.
50388         (WebCore::HTMLFormElement::formData): Take a parameter with the form boundary string,
50389         and use that instead of m_boundary.
50390         (WebCore::getUniqueBoundaryString): Added. Makes a boundary string using random numbers
50391         and base 64 encoding.
50392         (WebCore::HTMLFormElement::submit): Call getUniqueBoundaryString and pass the boundary
50393         string into formData for multipart form posts.
50394
50395 2007-03-08  Maciej Stachowiak  <mjs@apple.com>
50396
50397         Reviewed by Adele.
50398         
50399         <rdar://problem/4646563> REGRESSION: Unable to send text message from Verizon text message website: vtext.com (12588)
50400         http://bugs.webkit.org/show_bug.cgi?id=12588
50401
50402         Carefully revised which focus operations restore previous selection, which clear it, and which
50403         select the whole control contents.
50404         
50405         Tests:
50406         fast/forms/focus-selection-input.html
50407         fast/forms/focus-selection-textarea.html
50408         
50409         * dom/Element.cpp:
50410         (WebCore::Element::focus):
50411         * dom/Element.h:
50412         * html/HTMLInputElement.cpp:
50413         (WebCore::HTMLInputElement::focus):
50414         (WebCore::HTMLInputElement::accessKeyAction):
50415         * html/HTMLInputElement.h:
50416         * html/HTMLLabelElement.cpp:
50417         (WebCore::HTMLLabelElement::focus):
50418         (WebCore::HTMLLabelElement::accessKeyAction):
50419         * html/HTMLLabelElement.h:
50420         * html/HTMLLegendElement.cpp:
50421         (WebCore::HTMLLegendElement::focus):
50422         * html/HTMLLegendElement.h:
50423         * html/HTMLTextAreaElement.cpp:
50424         (WebCore::HTMLTextAreaElement::focus):
50425         * html/HTMLTextAreaElement.h:
50426         * page/FocusController.cpp:
50427         (WebCore::FocusController::advanceFocus):
50428
50429 2007-03-08  Justin Garcia  <justin.garcia@apple.com>
50430
50431         Reviewed by harrison
50432
50433         <http://bugs.webkit.org/show_bug.cgi?id=12244>
50434         FCKeditor: Find dialog doesn't work
50435
50436         * bindings/js/kjs_window.cpp:
50437         (KJS::Window::find): Added.  This function doesn't yet 
50438         support whole word searches, searching in subframes, or
50439         opening the find dialog.
50440         (KJS::WindowFunc::callAsFunction):
50441         * bindings/js/kjs_window.h:
50442         (KJS::Window::):
50443
50444 2007-03-08  David Hyatt  <hyatt@apple.com>
50445
50446         Fix regression from throwing away frames of large animated images.  Alter
50447         animated images so that they refuse to advance the animation until the
50448         current displayed frame has been fully decoded.
50449
50450         Reviewed by ggaren
50451
50452         * platform/graphics/BitmapImage.cpp:
50453         (WebCore::BitmapImage::startAnimation):
50454         (WebCore::BitmapImage::advanceAnimation):
50455         * platform/graphics/ImageSource.h:
50456         * platform/graphics/cg/ImageSourceCG.cpp:
50457         (WebCore::ImageSource::frameIsCompleteAtIndex):
50458
50459 2007-03-08  David Hyatt  <hyatt@apple.com>
50460
50461         Fix 2% performance regression on the PLT.  Increase the large animated
50462         image cutoff from 1MB to 5MB.
50463
50464         In addition when pruning we will aggressively discard image sources.
50465
50466         Reviewed by ggaren
50467
50468         * platform/graphics/BitmapImage.cpp:
50469         (WebCore::BitmapImage::destroyDecodedData):
50470
50471 2007-03-08  Timothy Hatcher  <timothy@apple.com>
50472
50473         Reviewed by John.
50474
50475         <rdar://problem/4664697> highlighter SPI needs a node parameter to give more context
50476
50477         Pass the RenderObject's node to customHighlightLineRect and paintCustomHighlight.
50478
50479         * page/Frame.h:
50480         * page/mac/FrameMac.mm:
50481         (WebCore::Frame::customHighlightLineRect):
50482         (WebCore::Frame::paintCustomHighlight):
50483         * page/mac/WebCoreFrameBridge.h:
50484         * rendering/InlineTextBox.cpp:
50485         (WebCore::InlineTextBox::paintCustomHighlight):
50486         * rendering/RenderBox.cpp:
50487         (WebCore::RenderBox::paintCustomHighlight):
50488         * rendering/RootInlineBox.cpp:
50489         (WebCore::RootInlineBox::addHighlightOverflow):
50490         (WebCore::RootInlineBox::paintCustomHighlight):
50491
50492 2007-03-08  Justin Garcia  <justin.garcia@apple.com>
50493
50494         Reviewed by harrison
50495         
50496         <http://bugs.webkit.org/show_bug.cgi?id=13000>
50497         Range.createContextualFragment is not supported
50498
50499         * dom/Range.cpp:
50500         (WebCore::Range::createContextualFragment): The
50501         "startContainer" may not be a container, if the
50502         range starts inside text.  In that case, look
50503         to the parent of the start node for an HTMLElement.
50504
50505 2007-03-08  Justin Garcia  <justin.garcia@apple.com>
50506
50507         Reviewed by harrison
50508         
50509         <rdar://problem/5049671>
50510         Gmail Editor: With linked text, Remove Formatting doesn't always remove underline
50511
50512         * editing/Editor.cpp:
50513         (WebCore::Editor::removeFormattingAndStyle): Clear removed
50514         anchors after the deletion.
50515
50516 2007-03-08  David Kilzer  <ddkilzer@webkit.org>
50517
50518         Reviewed by NOBODY (build fix).
50519
50520         Added missing file for r20059:
50521         <rdar://problem/4708689> -- REGRESSION: Some symbols with 2-byte display as garbage in Hotmail.
50522
50523         File was taken from this svn repository which contained versions of ucnv.h and ucnv_err.h
50524         that were identical to ours:
50525         http://source.icu-project.org/repos/icu/icu/tags/release-3-2/source/common/unicode/ucnv_cb.h
50526
50527         * icu/unicode/ucnv_cb.h: Added.
50528
50529 2007-03-08  Shrikant Gangoda  <shrikant.gangoda@celunite.com>
50530
50531         Gdk build fix.
50532
50533         * platform/graphics/cairo/ImageSourceCairo.cpp:
50534         (WebCore::ImageSource::~ImageSource):
50535         (WebCore::ImageSource::clear):
50536
50537 2007-03-08  Oliver Hunt  <oliver@apple.com>
50538
50539         Reviewed by Adam.
50540
50541         To match old TEC behaviour when using ICU we need to use 
50542         a few manual fallback encodings for the GBK/EUC-CN charsets
50543
50544         <rdar://problem/4708689> -- REGRESSION: Some symbols with 2-byte display as garbage in Hotmail.
50545
50546         * platform/TextCodecICU.cpp:
50547         (WebCore::TextCodecICU::TextCodecICU):
50548         (WebCore::TextCodecICU::createICUConverter):
50549         (WebCore::gbkEscapes):
50550         (WebCore::gbkCallbackEscape):
50551         (WebCore::gbkCallbackSubstitute):
50552         (WebCore::TextCodecICU::encode):
50553         * platform/TextCodecICU.h:
50554         (WebCore::TextCodecICU::needsGBKFallbacks):
50555         (WebCore::TextCodecICU::setNeedsGBKFallbacks):
50556
50557 2007-03-08  Alexey Proskuryakov  <ap@webkit.org>
50558
50559         Build fix.
50560
50561         * xml/XPathUtil.cpp:
50562         (WebCore::XPath::stringValue):
50563
50564 2007-03-08  David Hyatt  <hyatt@apple.com>
50565
50566         This patch dramatically reduces the memory consumed by animated images.  For large animated GIFs (defined for
50567         now as >1mb in terms of decoded frame buffer size), we will now aggressively flush previous frames of the
50568         animated GIF and just re-decode them on the fly if the animation loops.
50569
50570         Whenever a large animated GIF has its animation reset, we will also just throw out everything and start
50571         the animation over (in order to get rid of any cached detritus held in the ImageSource).
50572
50573         With this patch and the sample GIF used to test, WebKit's memory consumption went from 160MB down to 16MB.
50574
50575         Reviewed by mjs
50576
50577         * platform/graphics/BitmapImage.cpp:
50578         (WebCore::BitmapImage::destroyDecodedData):
50579         (WebCore::BitmapImage::resetAnimation):
50580         (WebCore::BitmapImage::advanceAnimation):
50581         * platform/graphics/ImageSource.h:
50582         * platform/graphics/cg/ImageSourceCG.cpp:
50583         (WebCore::ImageSource::~ImageSource):
50584         (WebCore::ImageSource::clear):
50585
50586 2007-03-08  Alexey Proskuryakov  <ap@webkit.org>
50587
50588         Reviewed by Darin.
50589
50590         http://bugs.webkit.org/show_bug.cgi?id=13006
50591         XPath string-value is broken for some node types
50592
50593         Test: fast/xpath/string-value.html
50594
50595         * xml/XPathUtil.cpp:
50596         (WebCore::XPath::stringValue): Fix it :-)
50597
50598 2007-03-07  Anders Carlsson  <acarlsson@apple.com>
50599
50600         Reviewed by Adam.
50601
50602         <rdar://problem/4981000> 
50603         http://bugs.webkit.org/show_bug.cgi?id=12634
50604         REGRESSION: crash loading web archive (12634)
50605         
50606         The reason this bug wasn't always reproducible is that it involved sending an event to a plugin while 
50607         the page was loading. Before we send the event to the plugin we defer loads. The problem was that
50608         MainResourceLoader::setDefersLoad would not work with data loads.
50609         
50610         * loader/DocumentLoader.cpp:
50611         (WebCore::DocumentLoader::setRequest):
50612         Only set m_committed to false if we also have a valid unreachable URL.
50613         
50614         * loader/MainResourceLoader.cpp:
50615         (WebCore::MainResourceLoader::setDefersLoading):
50616         Make sure to stop and start data loads.
50617
50618 2007-03-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
50619
50620         Not reviewed.
50621
50622         Gdk build fixes.
50623
50624         * platform/gdk/EditorClientGdk.cpp:
50625         (WebCore::EditorClientGdk::handleKeypress): renamed
50626         (WebCore::EditorClientGdk::handleInputMethodKeypress): add a stub
50627         * platform/gdk/EditorClientGdk.h:
50628         * platform/graphics/cairo/ImageSourceCairo.cpp:
50629         (WebCore::ImageSource::destroyFrameAtIndex): add a stub
50630
50631 2007-03-07  Alexey Proskuryakov  <ap@webkit.org>
50632
50633         Reviewed by Darin.
50634
50635         http://bugs.webkit.org/show_bug.cgi?id=13004
50636         Repeatedly calling XPathExpression.evaluate() causes crashes or memory leaks
50637
50638         Removed XPath::Expression::optimize() and related methods, since they were buggy and almost useless.
50639         Merged doEvaluate() into evaluate(), since this was all evaluate() was doing after the above changes.
50640
50641         Test: fast/xpath/evaluate-twice.html
50642
50643         * xml/XPathExpression.cpp:
50644         (WebCore::XPathExpression::evaluate):
50645         * xml/XPathExpressionNode.cpp:
50646         (WebCore::XPath::Expression::Expression):
50647         (WebCore::XPath::Expression::~Expression):
50648         * xml/XPathExpressionNode.h:
50649         * xml/XPathFunctions.cpp:
50650         (WebCore::XPath::FunLast::evaluate):
50651         (WebCore::XPath::FunPosition::evaluate):
50652         (WebCore::XPath::FunId::evaluate):
50653         (WebCore::XPath::FunLocalName::evaluate):
50654         (WebCore::XPath::FunNamespaceURI::evaluate):
50655         (WebCore::XPath::FunName::evaluate):
50656         (WebCore::XPath::FunCount::evaluate):
50657         (WebCore::XPath::FunString::evaluate):
50658         (WebCore::XPath::FunConcat::evaluate):
50659         (WebCore::XPath::FunStartsWith::evaluate):
50660         (WebCore::XPath::FunContains::evaluate):
50661         (WebCore::XPath::FunSubstringBefore::evaluate):
50662         (WebCore::XPath::FunSubstringAfter::evaluate):
50663         (WebCore::XPath::FunSubstring::evaluate):
50664         (WebCore::XPath::FunStringLength::evaluate):
50665         (WebCore::XPath::FunNormalizeSpace::evaluate):
50666         (WebCore::XPath::FunTranslate::evaluate):
50667         (WebCore::XPath::FunBoolean::evaluate):
50668         (WebCore::XPath::FunNot::evaluate):
50669         (WebCore::XPath::FunTrue::evaluate):
50670         (WebCore::XPath::FunLang::evaluate):
50671         (WebCore::XPath::FunFalse::evaluate):
50672         (WebCore::XPath::FunNumber::evaluate):
50673         (WebCore::XPath::FunSum::evaluate):
50674         (WebCore::XPath::FunFloor::evaluate):
50675         (WebCore::XPath::FunCeiling::evaluate):
50676         (WebCore::XPath::FunRound::evaluate):
50677         * xml/XPathPath.cpp:
50678         (WebCore::XPath::Filter::evaluate):
50679         (WebCore::XPath::LocationPath::evaluate):
50680         (WebCore::XPath::Path::evaluate):
50681         * xml/XPathPath.h:
50682         * xml/XPathPredicate.cpp:
50683         (WebCore::XPath::Number::evaluate):
50684         (WebCore::XPath::StringExpression::evaluate):
50685         (WebCore::XPath::Negative::evaluate):
50686         (WebCore::XPath::NumericOp::evaluate):
50687         (WebCore::XPath::EqTestOp::evaluate):
50688         (WebCore::XPath::LogicalOp::evaluate):
50689         (WebCore::XPath::Union::evaluate):
50690         * xml/XPathPredicate.h:
50691         * xml/XPathStep.cpp:
50692         * xml/XPathStep.h:
50693         * xml/XPathVariableReference.cpp:
50694         (WebCore::XPath::VariableReference::evaluate):
50695         * xml/XPathVariableReference.h:
50696
50697 2007-03-07  Sam Weinig  <sam@webkit.org>
50698
50699         Reviewed by Tim H.
50700
50701         Remove unused #import from Objective-C bindings and cleanup the order of #imports.
50702
50703         * bindings/scripts/CodeGeneratorObjC.pm:
50704
50705 2007-03-07  Sam Weinig  <sam@webkit.org>
50706
50707         Reviewed by Tim H.
50708
50709         Make sure the baseURI attribute generates for private Objective-C bindings.
50710
50711         * dom/Node.idl:
50712
50713 2007-03-07  Anders Carlsson  <acarlsson@apple.com>
50714
50715         Reviewed by Maciej.
50716
50717         <rdar://problem/4874059>
50718         REGRESSION: Painter IX:register - Crash in WebCore:: ResourceLoader::willSendRequest()
50719
50720         If a load is done from inside of an error delegate method that is called because we cancel another load, 
50721         the first load should be ignored since this is what shipping WebKit does. 
50722         
50723         (Actually, it does load the page in the data source but doesn't do anything with it since the data source
50724         won't have a web frame).
50725         
50726         * loader/FrameLoader.cpp:
50727         (WebCore::FrameLoader::load):
50728         Just bail out if m_isStoppingLoad is true.
50729
50730 2007-03-07  David Hyatt  <hyatt@apple.com>
50731
50732         Use CGImageRelease instead of CFRelease.
50733
50734         Reviewed by aroben
50735
50736         * platform/graphics/cg/ImageCG.cpp:
50737         (WebCore::FrameData::clear):
50738         * platform/graphics/cg/ImageSourceCG.cpp:
50739         (WebCore::ImageSource::destroyFrameAtIndex):
50740
50741 2007-03-07  David Hyatt  <hyatt@apple.com>
50742
50743         Fix a regression where the cache size overflows because of a double
50744         subtraction per resource when they got removed from the cache.  Add an
50745         assert to adjustSize to detect this case in the future.
50746
50747         Fix ImageSourceCG so that when we flush decoded data from our cache that
50748         we also flush it from the ImageSource.
50749
50750         Reviewed by mjs
50751
50752         * loader/Cache.cpp:
50753         (WebCore::Cache::adjustSize):
50754         * platform/graphics/BitmapImage.cpp:
50755         (WebCore::BitmapImage::~BitmapImage):
50756         (WebCore::BitmapImage::destroyDecodedData):
50757         * platform/graphics/Image.h:
50758         * platform/graphics/ImageSource.h:
50759         * platform/graphics/cg/ImageSourceCG.cpp:
50760         (WebCore::ImageSource::setData):
50761         (WebCore::ImageSource::destroyFrameAtIndex):
50762
50763 2007-03-07  Mitz Pettel  <mitz@webkit.org>
50764
50765         Reviewed by Darin.
50766
50767         - fix http://bugs.webkit.org/show_bug.cgi?id=13002
50768           Incomplete repaint of inset outlines
50769
50770         Test: fast/repaint/outline-inset.html
50771
50772         * rendering/RenderObject.cpp:
50773         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
50774
50775 2007-03-07  Oliver Hunt  <oliver@apple.com>
50776
50777         Reviewed by Antti.
50778
50779         Reset mouse down/drag state variables on mouse button release
50780         
50781         Fixes <rdar://problem/5044654>: Drag out of some QuickTime plug-ins converting into image drag
50782
50783         * page/EventHandler.cpp:
50784         (WebCore::EventHandler::handleMouseReleaseEvent):
50785
50786 2007-03-07  Adele Peterson  <adele@apple.com>
50787
50788         Reviewed by Darin.
50789
50790         WebCore part of fix for:
50791         http://bugs.webkit.org/show_bug.cgi?id=10871
50792         http://bugs.webkit.org/show_bug.cgi?id=12677
50793         <rdar://problem/4823129> REGRESSION: IME key events different in nightly
50794         <rdar://problem/4759563> REGRESSION: Return key is always sent when you confirm a clause in kotoeri
50795
50796         * page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler): Call handleInputMethodKeypress before actually dispatching the keypress event
50797           so that input methods have a chance to handle the event.  
50798           If the input method handles the event (by marking or unmarking text), then we don't need to send the keypress event.
50799           If an input method doesn't handle the event, then we'll save the data we need to perform the correct action (like what text to insert or what selector to use) 
50800           when we dispatch the keypress event.
50801
50802         * dom/KeyboardEvent.h: Added Mac-specific KeypressCommand struct, so we can store command info during handleInputMethodKeypress, and use it during handleKeypress.
50803         (WebCore::KeyboardEvent::keypressCommand):
50804         (WebCore::KeyboardEvent::setKeypressCommand):
50805
50806         * bridge/EditorClient.h:
50807         * editing/Editor.cpp:
50808         (WebCore::Editor::handleKeypress): Changed handleKeyPress to handleKeypress.
50809         (WebCore::Editor::handleInputMethodKeypress): Added.
50810         * editing/Editor.h:
50811
50812         * platform/graphics/svg/SVGImageEmptyClients.h:
50813         (WebCore::SVGEmptyEditorClient::handleKeypress): Changed handleKeyPress to handleKeypress.
50814         (WebCore::SVGEmptyEditorClient::handleInputMethodKeypress): Added.
50815
50816 2007-03-07  Rob Buis  <buis@kde.org>
50817
50818         Reviewed by Darin.
50819
50820         http://bugs.webkit.org/show_bug.cgi?id=12579
50821         WebKit fails SVG xml:base test
50822
50823         Implement DOM3 properties baseURI and documentURI to fix
50824         the testcase in bug 12579.
50825
50826         * bindings/js/kjs_dom.cpp:
50827         (KJS::DOMNode::getValueProperty):
50828         * bindings/js/kjs_domnode.h:
50829         (KJS::DOMNode::):
50830         * dom/Document.cpp:
50831         (WebCore::Document::documentURI):
50832         (WebCore::Document::setDocumentURI):
50833         (WebCore::Document::baseURI):
50834         * dom/Document.h:
50835         * dom/Document.idl:
50836         * dom/DocumentType.cpp:
50837         (WebCore::DocumentType::baseURI):
50838         * dom/DocumentType.h:
50839         * dom/Element.cpp:
50840         (WebCore::Element::baseURI):
50841         * dom/Element.h:
50842         * dom/Node.cpp:
50843         (WebCore::Node::baseURI):
50844         * dom/Node.h:
50845         * ksvg2/misc/SVGImageLoader.cpp:
50846         (WebCore::SVGImageLoader::updateFromElement):
50847         * ksvg2/svg/SVGImageElement.cpp:
50848         (WebCore::SVGImageElement::parseMappedAttribute):
50849         (WebCore::SVGImageElement::attach):
50850
50851 2007-03-07  Anders Carlsson  <acarlsson@apple.com>
50852
50853         Reviewed by Brady.
50854
50855         Remove some methods in FrameLoader that just calls down to the active document loader. Since each
50856         resource loader now has a pointer to its document loader, we can just call directly to the
50857         document loader.
50858
50859         * WebCore.exp:
50860         * loader/FrameLoader.cpp:
50861         * loader/FrameLoader.h:
50862         * loader/MainResourceLoader.cpp:
50863         (WebCore::MainResourceLoader::willSendRequest):
50864         (WebCore::MainResourceLoader::didReceiveResponse):
50865         * loader/SubresourceLoader.cpp:
50866         (WebCore::SubresourceLoader::SubresourceLoader):
50867         (WebCore::SubresourceLoader::didFinishLoading):
50868         (WebCore::SubresourceLoader::didFail):
50869         (WebCore::SubresourceLoader::didCancel):
50870         * loader/mac/NetscapePlugInStreamLoaderMac.mm:
50871         (WebCore::NetscapePlugInStreamLoader::didFinishLoading):
50872         (WebCore::NetscapePlugInStreamLoader::didFail):
50873         (WebCore::NetscapePlugInStreamLoader::didCancel):
50874
50875 2007-03-06  Geoffrey Garen  <ggaren@apple.com>
50876
50877         Reviewed by Maciej Stachowiak.
50878         
50879         Fixed <rdar://problem/4576242> | http://bugs.webkit.org/show_bug.cgi?id=12586
50880         PAC file: malloc deadlock sometimes causes a hang @ www.apple.com/pro/profiles/ (12586)
50881         
50882         No test because this is very difficult to repro, and the new ASSERTs in 
50883         JavaScriptCore catch the underlying cause while running normal layout tests.
50884         
50885         This is a modified version of r14752 on the branch.
50886         
50887         The fix is to use a bit inside each node, instead of a hash table, to track 
50888         which node subtrees are in the process of being marked. This avoids a call 
50889         to malloc inside mark().
50890         
50891         * bindings/js/kjs_binding.cpp:
50892         (KJS::domObjects):
50893         (KJS::domNodesPerDocument):
50894         * bindings/js/kjs_dom.cpp:
50895         (KJS::DOMNode::mark):
50896         * dom/Node.cpp:
50897         (WebCore::Node::Node):
50898         * dom/Node.h:
50899
50900 2007-03-06  David Hyatt  <hyatt@apple.com>
50901
50902         This patch reworks the WebCore memory cache to significantly reduce the amount of memory consumed by
50903         images in the cache and to enhance the accuracy of the cache size as an absolute bound for the objects
50904         contained within it.  WebCore's memory use over time should significantly improve as a result of these
50905         changes.
50906
50907         Cached resources now have both an encoded size (the original data stream) and a decoded size (an estimate of
50908         the amount of memory consumed by an expanded version of that resource, e.g., the decoded frames of an image).
50909         Both sizes now count towards the total size of the object and towards the allowed memory cache total.
50910
50911         By including both totals the reported size of resources will now be larger, and the cache will therefore become
50912         much more aggressive about flushing.
50913
50914         Objects are stored in size-adjusted and popularity-aware LRU lists as before, but encoded size is now always
50915         used when determining the correct LRU list.
50916
50917         The flush algorithm for the memory cache has been rewritten to first destroy decoded data before evicting
50918         resources.  By being able to compact its resources without evicting them, the memory cache can now hold many more
50919         unique resources (encoded) in the same amount of space.  Depending on how much of a hit we want to take from
50920         re-decoding images, the memory cache could in theory have its size significantly reduced now while still holding
50921         more resources than it did at the larger size!
50922
50923         Reviewed by mjs
50924
50925         * WebCore.xcodeproj/project.pbxproj:
50926         * loader/Cache.cpp:
50927         (WebCore::Cache::requestResource):
50928         (WebCore::Cache::prune):
50929         (WebCore::Cache::remove):
50930         (WebCore::Cache::lruListFor):
50931         (WebCore::Cache::adjustSize):
50932         * loader/Cache.h:
50933         * loader/CachedCSSStyleSheet.cpp:
50934         (WebCore::CachedCSSStyleSheet::data):
50935         * loader/CachedImage.cpp:
50936         (WebCore::CachedImage::CachedImage):
50937         (WebCore::CachedImage::allReferencesRemoved):
50938         (WebCore::CachedImage::clear):
50939         (WebCore::CachedImage::data):
50940         (WebCore::CachedImage::destroyDecodedData):
50941         (WebCore::CachedImage::decodedSize):
50942         (WebCore::CachedImage::decodedSizeChanged):
50943         (WebCore::CachedImage::shouldPauseAnimation):
50944         * loader/CachedImage.h:
50945         * loader/CachedResource.cpp:
50946         (WebCore::CachedResource::CachedResource):
50947         (WebCore::CachedResource::deref):
50948         (WebCore::CachedResource::setEncodedSize):
50949         * loader/CachedResource.h:
50950         (WebCore::CachedResource::allReferencesRemoved):
50951         (WebCore::CachedResource::size):
50952         (WebCore::CachedResource::encodedSize):
50953         (WebCore::CachedResource::decodedSize):
50954         (WebCore::CachedResource::destroyDecodedData):
50955         * loader/CachedScript.cpp:
50956         (WebCore::CachedScript::data):
50957         * loader/CachedXSLStyleSheet.cpp:
50958         (WebCore::CachedXSLStyleSheet::data):
50959         * platform/graphics/BitmapImage.cpp:
50960         (WebCore::BitmapImage::BitmapImage):
50961         (WebCore::BitmapImage::~BitmapImage):
50962         (WebCore::BitmapImage::destroyDecodedData):
50963         (WebCore::BitmapImage::pruneDecodedDataIfNeeded):
50964         (WebCore::BitmapImage::cacheFrame):
50965         (WebCore::BitmapImage::setNativeData):
50966         (WebCore::BitmapImage::shouldAnimate):
50967         (WebCore::BitmapImage::advanceAnimation):
50968         * platform/graphics/BitmapImage.h:
50969         (WebCore::BitmapImage::decodedSize):
50970         * platform/graphics/Image.cpp:
50971         (WebCore::Image::Image):
50972         * platform/graphics/Image.h:
50973         (WebCore::Image::destroyDecodedData):
50974         (WebCore::Image::decodedSize):
50975         (WebCore::Image::imageObserver):
50976         * platform/graphics/ImageAnimationObserver.h: Removed.
50977         * platform/graphics/ImageObserver.h: Added.
50978         (WebCore::ImageObserver::~ImageObserver):
50979         * platform/graphics/svg/SVGImage.cpp:
50980         (WebCore::SVGImage::SVGImage):
50981         * platform/graphics/svg/SVGImage.h:
50982
50983 2007-03-06  Alexey Proskuryakov  <ap@webkit.org>
50984
50985         Reviewed by Sam Weinig.
50986
50987         http://bugs.webkit.org/show_bug.cgi?id=12987
50988         Fix and import 4XPath test_numeric_expr.html
50989
50990         * xml/XPathPredicate.cpp:
50991         (WebCore::XPath::Negative::doEvaluate): Convert the argument to number.
50992         (WebCore::XPath::NumericOp::doEvaluate): Convert the arguments to numbers. Use a correct operation for mod.
50993         * xml/XPathStep.cpp:
50994         (WebCore::XPath::Step::nodesInAxis): Do not append parent node if there is none.
50995         * xml/XPathValue.cpp:
50996         (WebCore::XPath::Value::toNumber): Do not convert to DeprecatedString just to trim whitespace and to convert to double.
50997         * platform/DeprecatedString.cpp:
50998         (WebCore::DeprecatedStringData::makeAscii): Added a FIXME about unreliable makeAscii() behavior.
50999
51000 2007-03-06  Maciej Stachowiak  <mjs@apple.com>
51001
51002         Reviewed by Adele.
51003
51004         <rdar://problem/4619663> REGRESSION (NativePopup): Popup menu doesn't draw at the correct vertical position (9816)
51005         
51006         * platform/mac/PopupMenuMac.mm:
51007         (WebCore::PopupMenu::show): Make a temporary dummy view with the
51008         passed in rect, since AppKit will use the view bounds to determine
51009         what area to exclude when popping up a menu moved to the top of
51010         the screen.
51011
51012 2007-03-06  Geoffrey Garen  <ggaren@apple.com>
51013
51014         Reviewed by Maciej Stachowiak.
51015
51016         Fixed all known crashers exposed by run-webkit-tests --threaded [*]. See 
51017         JavaScriptCore ChangeLog for more details.
51018
51019         * bindings/js/kjs_binding.cpp:
51020         (KJS::domNodesPerDocument): Added thread safety ASSERT.
51021         (KJS::ScriptInterpreter::mark): Removed obsolete logic for marking unsafe
51022         objects when collecting on a secondary thread. The Collector takes care
51023         of this now.
51024
51025         * bindings/js/kjs_binding.h:
51026         (KJS::DOMObject::DOMObject): Used new API for specifying that WebCore
51027         objects should be garbage collected on the main thread only.
51028
51029         * bindings/js/kjs_window.cpp:
51030         (KJS::ScheduledAction::execute): Moved JSLock to cover implementedsCall() call,
51031         which, for some subclasses, ends up allocating garbage collected objects.
51032         (This fix was speculative. I didn't actually see a crash from this.)
51033         (KJS::Window::timerFired): Added JSLock around ScheduleAction destruction,
51034         since it destroys a KJS::List.
51035
51036         * bindings/objc/WebScriptObject.mm:
51037         (-[WebScriptObject setException:]): Added JSLock. (This fix was speculative. 
51038         I didn't actually see a crash from this.)
51039
51040         * bridge/mac/WebCoreScriptDebugger.mm:
51041         (-[WebCoreScriptCallFrame evaluateWebScript:]): Added JSLock. (This fix 
51042         was speculative. I didn't actually see a crash from this.)
51043
51044         * dom/Document.cpp:
51045         (WebCore::Document::~Document): Added JSLock around modification to 
51046         domNodesPerDocument(), which can be accessed concurrently during garbage 
51047         collection.
51048         * dom/Node.cpp:
51049         (WebCore::Node::setDocument): ditto.
51050         
51051         [*] fast/js/toString-stack-overflow.html is an exception. --threaded mode
51052         crashes this test because it causes the garbage collector to run frequently,
51053         and this test crashes if you happen to garbage collect while it's running.
51054         This is a known issue with stack overflow during the mark phase. It's
51055         not related to threading.
51056
51057 2007-03-06  Mark Rowe  <mrowe@apple.com>
51058
51059         Reviewed by Sam Weinig.
51060
51061         Fix http://bugs.webkit.org/show_bug.cgi?id=12942
51062         Bug 12942: ASSERTION FAILURE: qantas.com.au changing selected item in <select> via JS
51063
51064         Test: fast/dom/select-selectedIndex-bug-12942.html.
51065
51066         * html/HTMLSelectElement.cpp:
51067         (WebCore::HTMLSelectElement::recalcListItems): Reset m_lastOnChangeIndex when recalculating list items.
51068         * html/HTMLSelectElement.h:
51069
51070 2007-03-06  Brady Eidson  <beidson@apple.com>
51071
51072         Rubberstamped by Kevin Decker
51073
51074         20,000!
51075
51076         * ChangeLog: Point out revision 20,000
51077
51078 2007-03-06  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
51079
51080         Not reviewed.
51081
51082         Gdk build fix.
51083
51084         * loader/gdk/FrameLoaderClientGdk.cpp: update userAgent() signature.
51085         (WebCore::FrameLoaderClientGdk::userAgent):
51086         * loader/gdk/FrameLoaderClientGdk.h: ditto.
51087
51088 2007-03-06  Mitz Pettel  <mitz@webkit.org>
51089
51090         Reviewed by Adele.
51091
51092         - fix http://bugs.webkit.org/show_bug.cgi?id=12986
51093           REGRESSION(NativeListBox): Listboxes not updated when resized dynamically
51094
51095         Test: fast/forms/select-change-listbox-size.html
51096
51097         * html/HTMLSelectElement.cpp:
51098         (WebCore::HTMLSelectElement::parseMappedAttribute): Reattach on list box size change.
51099
51100 2007-03-06  Mitz Pettel  <mitz@webkit.org>
51101
51102         Reviewed by Dave Hyatt.
51103
51104         - fix http://bugs.webkit.org/show_bug.cgi?id=12885
51105           REGRESSION (r19696): Incomplete background repaint
51106
51107         Tests: fast/repaint/content-into-overflow.html
51108                fast/repaint/overflow-into-content.html
51109
51110         Changed repaintAfterLayoutIfNeeded() to take, in addition to the clipped overflow
51111         rect, the unclipped border box plus outline, and to repaint any areas that
51112         were added or removed from that box, in addition to any areas added or removed
51113         from the clipped overflow rect.
51114
51115         * platform/graphics/svg/SVGResourceMarker.cpp:
51116         (WebCore::SVGResourceMarker::draw):
51117         * rendering/RenderBlock.cpp:
51118         (WebCore::RenderBlock::layoutBlock):
51119         * rendering/RenderBox.cpp:
51120         (WebCore::RenderBox::absoluteClippedOverflowRect): Renamed getAbsoluteRepaintRect() to
51121         this.
51122         * rendering/RenderBox.h:
51123         * rendering/RenderFlexibleBox.cpp:
51124         (WebCore::RenderFlexibleBox::layoutBlock):
51125         * rendering/RenderFlow.cpp:
51126         (WebCore::RenderFlow::absoluteClippedOverflowRect):
51127         * rendering/RenderFlow.h:
51128         * rendering/RenderForeignObject.cpp:
51129         (WebCore::RenderForeignObject::layout):
51130         * rendering/RenderHTMLCanvas.cpp:
51131         (WebCore::RenderHTMLCanvas::layout):
51132         * rendering/RenderImage.cpp:
51133         (WebCore::RenderImage::layout):
51134         * rendering/RenderLayer.cpp:
51135         (WebCore::RenderLayer::RenderLayer):
51136         (WebCore::RenderLayer::checkForRepaintOnResize):
51137         (WebCore::RenderLayer::updateLayerPositions):
51138         * rendering/RenderLayer.h:
51139         * rendering/RenderObject.cpp:
51140         (WebCore::RenderObject::repaint):
51141         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
51142         (WebCore::RenderObject::getAbsoluteRepaintRectWithOutline):
51143         (WebCore::RenderObject::absoluteClippedOverflowRect):
51144         (WebCore::RenderObject::absoluteOutlineBox):
51145         * rendering/RenderObject.h:
51146         * rendering/RenderPath.cpp:
51147         (WebCore::RenderPath::layout):
51148         (WebCore::RenderPath::absoluteClippedOverflowRect):
51149         (WebCore::RenderPath::absoluteRects):
51150         (WebCore::RenderPath::drawMarkersIfNeeded):
51151         * rendering/RenderPath.h:
51152         * rendering/RenderSVGContainer.cpp:
51153         (WebCore::RenderSVGContainer::layout):
51154         (WebCore::RenderSVGContainer::absoluteClippedOverflowRect):
51155         (WebCore::RenderSVGContainer::absoluteRects):
51156         * rendering/RenderSVGContainer.h:
51157         * rendering/RenderSVGHiddenContainer.cpp:
51158         (WebCore::RenderSVGHiddenContainer::absoluteClippedOverflowRect):
51159         * rendering/RenderSVGHiddenContainer.h:
51160         * rendering/RenderSVGImage.cpp:
51161         (WebCore::RenderSVGImage::imageChanged):
51162         (WebCore::RenderSVGImage::absoluteClippedOverflowRect):
51163         (WebCore::RenderSVGImage::absoluteRects):
51164         * rendering/RenderSVGImage.h:
51165         * rendering/RenderSVGText.cpp:
51166         (WebCore::RenderSVGText::absoluteClippedOverflowRect):
51167         (WebCore::RenderSVGText::layout):
51168         (WebCore::RenderSVGText::absoluteRects):
51169         * rendering/RenderSVGText.h:
51170         * rendering/RenderTable.cpp:
51171         (WebCore::RenderTable::layout):
51172         * rendering/RenderTableCell.cpp:
51173         (WebCore::RenderTableCell::absoluteClippedOverflowRect):
51174         * rendering/RenderTableCell.h:
51175         * rendering/RenderTableCol.cpp:
51176         (WebCore::RenderTableCol::absoluteClippedOverflowRect):
51177         * rendering/RenderTableCol.h:
51178         * rendering/RenderTableRow.cpp:
51179         (WebCore::RenderTableRow::absoluteClippedOverflowRect):
51180         * rendering/RenderTableRow.h:
51181         * rendering/RenderText.cpp:
51182         (WebCore::RenderText::absoluteClippedOverflowRect):
51183         * rendering/RenderText.h:
51184
51185 2007-03-06  Feng Qian  <feng@chromium.org>
51186
51187         Reviewed by Maciej.
51188
51189         - fixed http://bugs.webkit.org/show_bug.cgi?id=12720
51190         Bug 12720: Re-defining window.location.toString function keeps re-loading forever
51191
51192         * bindings/js/kjs_window.cpp:
51193         Disallow replacing functions in LocationTable, and return early without updating URL.
51194
51195 2007-03-06  Kevin McCullough  <kmccullough@apple.com>
51196
51197         Reviewed by Darin.
51198
51199         <http://bugs.webkit.org/show_bug.cgi?id=12686>
51200         REGRESSION: Bloglines.com Feeds tab cannot expand folders in TOT
51201         - Now all class constructors implement implementsHasInstance.
51202
51203         * bindings/scripts/CodeGeneratorJS.pm:
51204
51205 2007-03-07  Nikolas Zimmermann  <zimmermann@kde.org>
51206
51207         Reviewed by Rob & Oliver.
51208
51209         Preparations for the new SVG text engine.
51210
51211         Handle baseline-shift / kerning css values correctly.
51212         Recognize missing svg presentation attribute "font-size-adjust".
51213         Add all missing svg<->css property mappings in mapToEntry().
51214
51215         Doesn't affect any layout test (as these properties are not used w/o my text patch).
51216         While I'm at it, unify the macro names (RS_ -> SVG_RS_) & cleanup style a bit.
51217
51218         * ksvg2/css/CSSPropertyNames.in:
51219         * ksvg2/css/SVGCSSParser.cpp:
51220         (WebCore::CSSParser::parseSVGValue):
51221         * ksvg2/css/SVGCSSStyleSelector.cpp:
51222         (WebCore::CSSStyleSelector::applySVGProperty):
51223         * ksvg2/css/SVGRenderStyle.cpp:
51224         (WebCore::SVGRenderStyle::SVGRenderStyle):
51225         (WebCore::SVGRenderStyle::operator==):
51226         (WebCore::SVGRenderStyle::inheritedNotEqual):
51227         (WebCore::SVGRenderStyle::inheritFrom):
51228         * ksvg2/css/SVGRenderStyle.h:
51229         (WebCore::SVGRenderStyle::NonInheritedFlags::):
51230         (WebCore::SVGRenderStyle::setBitDefaults):
51231         * ksvg2/css/SVGRenderStyleDefs.cpp:
51232         (StyleTextData::StyleTextData):
51233         (StyleTextData::operator==):
51234         (StyleMiscData::StyleMiscData):
51235         (StyleMiscData::operator==):
51236         * ksvg2/css/SVGRenderStyleDefs.h:
51237         (WebCore::):
51238         (WebCore::StyleTextData::operator!=):
51239         * ksvg2/svg/SVGStyledElement.cpp:
51240         (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName):
51241
51242 2007-03-06  Justin Garcia  <justin.garcia@apple.com>
51243
51244         Reviewed by kevin
51245         
51246         <http://bugs.webkit.org/show_bug.cgi?id=12245>
51247         FCKeditor: Remove Format sometimes doesn't work
51248         <rdar://problem/4786404>
51249         Underline style is not removed from selection after performing Remove Format
51250
51251         * editing/Editor.cpp:
51252         (WebCore::Editor::removeFormattingAndStyle): Re-wrote this.
51253
51254 2007-03-07  Nikolas Zimmermann  <zimmermann@kde.org>
51255
51256         Reviewed by Oliver.
51257
51258         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12979
51259         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12981
51260
51261         Guard against registering pending resources with empty id.
51262         Be careful with calling recalcStyle() in SVGUseElement, when change is "Detach" we
51263         have to use special code, as calling attach() on the shadow tree root element will crash,
51264         because it has no (direct) parent node, only a shadow parent node element.
51265
51266         * ksvg2/misc/SVGDocumentExtensions.cpp:
51267         (WebCore::SVGDocumentExtensions::addPendingResource):
51268         * ksvg2/svg/SVGUseElement.cpp:
51269         (WebCore::SVGUseElement::recalcStyle):
51270
51271 2007-03-06  Kevin Decker  <kdecker@apple.com>
51272
51273         Reviewed by Adele.
51274
51275         Fixed: <rdar://problem/5041660> REGRESSION: <keygen> element broken, prevents users from signing up for Thawte email certs
51276         
51277         * bindings/objc/DOM.mm:
51278         (WebCore::createElementClassMap): Added <keygen> to the DOM bindings so it can be accessed from Objective-C.
51279         * css/html4.css: Apply the look of the <select> element to <keygen>.
51280         * html/HTMLElementFactory.cpp:
51281         (WebCore::keygenConstructor): Added. 
51282         (WebCore::createFunctionMap): Added keygen.
51283         * html/HTMLSelectElement.cpp: Made const typeAheadTimeout variable static const. 
51284         (WebCore::HTMLSelectElement::HTMLSelectElement):  Fix both HTMLSelectElement constructors to initialize the
51285          same number of member variables. The fact that some fields were not initialized could (and would) crash the
51286          keygen element when selecting different items. Also removed m_typedString(String()) from the constructor
51287          initialization because this is not needed.
51288
51289 2007-03-06  Kevin McCullough  <kmccullough@apple.com>
51290
51291         Reviewed by Darin.
51292
51293         - Rename a function to clarify its purpose.
51294
51295         * WebCore.exp:
51296         * loader/FrameLoader.cpp:
51297         (WebCore::FrameLoader::registerURLSchemeAsLocal):
51298         * loader/FrameLoader.h:
51299
51300 2007-03-06  Adam Roben  <aroben@apple.com>
51301
51302         Build fix.
51303
51304         * WebCore.exp: Updated symbols.
51305
51306 2007-03-06  Adam Roben  <aroben@apple.com>
51307
51308         Reviewed by Anders.
51309
51310         Added a parameter to all StringTruncator methods to specify whether
51311         rounding hacks should be on or off.
51312
51313         No layout test possible.
51314
51315         * platform/StringTruncator.cpp:
51316         (WebCore::stringWidth): Added disableRoundingHacks parameter.
51317         (WebCore::truncateString): Ditto.
51318         (WebCore::StringTruncator::centerTruncate): Ditto.
51319         (WebCore::StringTruncator::rightTruncate): Ditto.
51320         (WebCore::StringTruncator::width): Ditto.
51321         * platform/StringTruncator.h: Ditto.
51322         * platform/mac/FileChooserMac.mm:
51323         (WebCore::FileChooser::basenameForWidth): Pass in false to
51324         centerTruncate so that the truncation matches the way the text will be
51325         rendered.
51326
51327 2007-03-06  Anders Carlsson  <acarlsson@apple.com>
51328
51329         Reviewed by Maciej.
51330
51331         <rdar://problem/5035045>
51332         REGRESSION: WebKit browser doesn't display image at http://www.metoffice.gov.uk/weather/satellite/index.html
51333         
51334         It turns out WinIE does allow you to access images by their id as special document properties. However, this is only
51335         allowed when the element also has a name attribute. The value of the name attribute is ignored and can even be empty!
51336         
51337         * bindings/js/kjs_html.cpp:
51338         (KJS::JSHTMLDocument::namedItemGetter):
51339         Return jsUndefined() if the collection is empty.
51340         
51341         * html/HTMLImageElement.cpp:
51342         (WebCore::HTMLImageElement::parseMappedAttribute):
51343         (WebCore::HTMLImageElement::insertedIntoDocument):
51344         (WebCore::HTMLImageElement::removedFromDocument):
51345         * html/HTMLImageElement.h:
51346         Add the id attribute value to the extra named item map.
51347         
51348         * html/HTMLNameCollection.cpp:
51349         (WebCore::HTMLNameCollection::traverseNextItem):
51350         Check for images with name attributes that match, as well as elements with id attributes that match where
51351         the element also has a name attribute.
51352
51353 2007-03-06  Anders Carlsson  <acarlsson@apple.com>
51354
51355         Reviewed by Adam.
51356
51357         WebCore part of patch to make it possible to have different user agents for different URLs.
51358
51359         * bindings/js/kjs_navigator.cpp:
51360         (KJS::Navigator::getValueProperty):
51361         * bindings/js/kjs_proxy.cpp:
51362         (WebCore::KJSProxy::initScriptIfNeeded):
51363         * loader/DocumentLoader.cpp:
51364         (WebCore::DocumentLoader::setLoading):
51365         * loader/FrameLoader.cpp:
51366         (WebCore::FrameLoader::userAgent):
51367         (WebCore::FrameLoader::loadResourceSynchronously):
51368         (WebCore::FrameLoader::applyUserAgent):
51369         * loader/FrameLoader.h:
51370         * loader/FrameLoaderClient.h:
51371         * platform/graphics/svg/SVGImageEmptyClients.h:
51372         (WebCore::SVGEmptyFrameLoaderClient::userAgent):
51373
51374 2007-03-05  Kevin McCullough  <kmccullough@apple.com>
51375
51376         Reviewed by Mark and Dave H.
51377
51378         - rdar://problem/5038491
51379         An oversight of the security fix that prevented remote from loading local is that it
51380         prevents user style sheets when the site is remote.  This fixes that.
51381
51382         * loader/Cache.cpp: Propogate and check user style sheet flag.
51383         (WebCore::createResource):
51384         (WebCore::Cache::requestResource):
51385         * loader/Cache.h: Propogate user style sheet flag.
51386         * loader/CachedCSSStyleSheet.cpp: Propogate user style sheet flag.
51387         (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
51388         * loader/CachedCSSStyleSheet.h: Propogate user style sheet flag.
51389         * loader/DocLoader.cpp: Propogate user style sheet flag.
51390         (WebCore::DocLoader::requestResource):
51391         * loader/SubresourceLoader.cpp: Propogate and check user style sheet flag.
51392         (WebCore::SubresourceLoader::create):
51393         * loader/SubresourceLoader.h: Add check for user style sheet flag.
51394         * loader/loader.cpp: Propogate user style sheet flag.
51395         (WebCore::Loader::load):
51396         (WebCore::Loader::servePendingRequests):
51397         * loader/loader.h: Propogate user style sheet flag.
51398
51399 2007-03-06  Nikolas Zimmermann  <zimmermann@kde.org>
51400
51401         Reviewed by Darin.
51402
51403         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12936 (Master bug used to track all current use problems.)
51404
51405         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12926 (transform attribute not respected in nested <use> elements)
51406         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12267 (getElementById broken for <use>)
51407         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12916 (use instance in symbol definition does not work)
51408         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12917 (mouseout event does not occur after scaling use instance)
51409         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12838 (SVG <use> DOM broken for script)
51410
51411         Added test: svg/custom/use-nested-transform.svg
51412         Added test: svg/custom/struct-use-09-b.svg (not yet official W3C-SVG-1.1 testcase)
51413         Fixes test: svg/custom/use-elementInstance-event-target.svg (rectangle now turns green on first click)
51414
51415         Fix all (except one) known <use> bug. The remaining bug (12630) is not crucical at all.
51416         Enable <use> again as default SVG feature, as discussed on webkit-dev.
51417
51418         dom/Element.cpp needed following tweak: set hasParentStyle to true, if there is no parentNode
51419         available - which happens for <use> nodes, as it's a shadow node. This fixes recalcStyle behaviour.
51420         Override recalcStyle() in SVGUseElement, and properly forward the call to the shadow tree root element.
51421         The shadow tree now receives proper style updates (without having to recreate the whole tree!).
51422
51423         Override attributeChanged() in SVGUseElement and only call notifyAttributeChange if one of x/y/width/height/xlink:href
51424         attribute changed - otherwhise we'll end up recreating the tree for every transform/style/(non-existing-attribute) change.
51425
51426         Do not override transform in nested use situations, but correctly append (right-sided) the translation of the <use> element.
51427         Some cosmetic fixes: don't add transform="translate(0 0)" attributes if both x/y values are null in the shadow tree.
51428
51429         Factor out logic for replacing symbol/svg tags in the shadow tree, and also invoke it during expandUseElementsInShadowTree -
51430         otherwhise <symbol><use xlink:href="#someOtherSymbol"></symbol> the <use> gets expanded to a <symbol>. Though no one expands
51431         the <symbol> element - and we're end up in hitting an assertion. Avoid that.
51432
51433         * bindings/js/JSSVGElementWrapperFactory.cpp:
51434         * bindings/js/kjs_dom.cpp:
51435         (KJS::toJS):
51436         * bindings/objc/DOM.mm:
51437         (WebCore::createElementClassMap):
51438         * dom/Element.cpp:
51439         (WebCore::Element::recalcStyle):
51440         * ksvg2/svg/SVGElement.cpp:
51441         (WebCore::shadowTreeParentElementForShadowTreeElement):
51442         (WebCore::SVGElement::dispatchEvent):
51443         * ksvg2/svg/SVGElementInstance.cpp:
51444         * ksvg2/svg/SVGElementInstance.h:
51445         * ksvg2/svg/SVGElementInstance.idl:
51446         * ksvg2/svg/SVGElementInstanceList.cpp:
51447         * ksvg2/svg/SVGElementInstanceList.h:
51448         * ksvg2/svg/SVGElementInstanceList.idl:
51449         * ksvg2/svg/SVGStyledElement.cpp:
51450         (WebCore::SVGStyledElement::notifyAttributeChange):
51451         (WebCore::SVGStyledElement::updateElementInstance):
51452         * ksvg2/svg/SVGStyledElement.h:
51453         * ksvg2/svg/SVGUseElement.cpp:
51454         (WebCore::SVGUseElement::attributeChanged):
51455         (WebCore::SVGUseElement::notifyAttributeChange):
51456         (WebCore::SVGUseElement::recalcStyle):
51457         (WebCore::SVGUseElement::buildPendingResource):
51458         (WebCore::SVGUseElement::buildShadowTreeForSymbolTag):
51459         (WebCore::SVGUseElement::alterShadowTreeForSVGTag):
51460         (WebCore::SVGUseElement::buildShadowTree):
51461         (WebCore::SVGUseElement::expandUseElementsInShadowTree):
51462         (WebCore::SVGUseElement::attachShadowTree):
51463         * ksvg2/svg/SVGUseElement.h:
51464         * ksvg2/svg/SVGUseElement.idl:
51465         * ksvg2/svg/svgtags.in:
51466
51467 2007-03-05  Brady Eidson  <beidson@apple.com>
51468
51469         Reviewed by John
51470
51471         Fixes <rdar://problem/4974258>
51472         Adds some key null checking
51473
51474         * bindings/js/kjs_html.cpp:
51475         (KJS::JSHTMLElement::implementsCall): Null check doc/frame
51476         * bindings/objc/DOMInternal.mm:
51477         (-[WebScriptObject _initializeScriptDOMNodeImp]): Null check doc/frame
51478
51479 2007-03-06  Nikolas Zimmermann  <zimmermann@kde.org>
51480
51481         Reviewed by Darin.
51482
51483         Path::normalAngleAtLength() / Path::pointAtLength() don't work correctly.
51484         pointAtLength() was not implemented, basically and normalAngleAtLength()
51485         had a bug in the tangent slope calculation.
51486
51487         The normalAngleAtLength() stuff can only be tested with my local textPath support.
51488         New LayoutTest: svg/custom/path-textPath-simulation.svg
51489
51490         * platform/graphics/Path.cpp:
51491         (WebCore::pathLengthApplierFunction):
51492         * platform/graphics/PathTraversalState.cpp:
51493         (WebCore::PathTraversalState::quadraticBezierTo):
51494         (WebCore::PathTraversalState::cubicBezierTo):
51495         * platform/graphics/PathTraversalState.h:
51496         (WebCore::PathTraversalState::):
51497
51498 2007-03-05  Alexey Proskuryakov  <ap@webkit.org>
51499
51500         Reviewed by Darin.
51501
51502         http://bugs.webkit.org/show_bug.cgi?id=12970
51503         Fix and import 4XPath test_core_functions.html test
51504
51505         * xml/XPathExpression.cpp:
51506         (WebCore::XPathExpression::evaluate): Fully initialize the evaluation context.
51507
51508         * xml/XPathFunctions.cpp:
51509         (WebCore::XPath::FunSubstring::doEvaluate): Fixed handling of edge cases.
51510         (WebCore::XPath::FunRound::round): Reimplemented to match the spec; exposed FunRound::round() to be used in
51511         other functions.
51512
51513 2007-03-05  Alexey Proskuryakov  <ap@webkit.org>
51514
51515         Reviewed by Darin.
51516
51517         http://bugs.webkit.org/show_bug.cgi?id=12954
51518         XPath relative operations are implemented incorrectly
51519
51520         * xml/XPathPredicate.cpp:
51521         (WebCore::XPath::NumericOp::doEvaluate):
51522         (WebCore::XPath::EqTestOp::compare):
51523         (WebCore::XPath::EqTestOp::doEvaluate):
51524         Reimplemented relative equality operations to match the spec.
51525
51526         * xml/XPathPredicate.h:
51527         (WebCore::XPath::NumericOp::):
51528         (WebCore::XPath::EqTestOp::):
51529         Moved relative operations to EqTestOp.
51530
51531         * xml/XPathGrammar.y:
51532         * xml/XPathParser.cpp:
51533         (WebCore::XPath::Parser::nextTokenInternal):
51534         (WebCore::XPath::Parser::lex):
51535         Adapted for the above changes.
51536
51537 2007-03-05  Mark Rowe  <mrowe@apple.com>
51538
51539         Reviewed by Lars.
51540
51541         Fix http://bugs.webkit.org/show_bug.cgi?id=12947
51542         Bug 12947: REGRESSION: ASSERTION FAILED: maxWidth >= 0 in StringTruncator.cpp:109 in WebCore::truncateString()
51543
51544         Handle nil window correctly in toUserSpace and toDeviceSpace.  On Intel Macs a message to nil that returns a
51545         float will return 0.0.  We use this as the divisor in calculating a scale factor, which results in NaN being
51546         introduced into our rect.
51547
51548         * platform/mac/ScreenMac.mm:
51549         (WebCore::toUserSpace):
51550         (WebCore::toDeviceSpace):
51551
51552 2007-03-05  Rob Buis  <buis@kde.org>
51553
51554         Reviewed by Darin.
51555
51556         http://bugs.webkit.org/show_bug.cgi?id=12868
51557         parts of the CSS classes in this simple SVG example are not applied
51558
51559         Make sure the xml stylesheets are parsed in strict mode.
51560
51561         * dom/ProcessingInstruction.cpp:
51562         (WebCore::ProcessingInstruction::parseStyleSheet):
51563
51564 2007-03-04  Adele Peterson  <adele@apple.com>
51565
51566         Reviewed by Darin.
51567
51568         Change to dispatch the keypress event during the defaultEventHandler for keydown events.  This matches IE behavior.
51569         This is preparation for fixing event dispatch with input methods (http://bugs.webkit.org/show_bug.cgi?id=10871)
51570
51571         Test: fast/events/keydown-keypress-preventDefault.html
51572
51573         * dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler): Call the defaultKeyboardEventHandler for keydown events.
51574         * page/EventHandler.cpp:
51575         (WebCore::eventTargetNodeForDocument): Return 0 instead of false since the return type in EventTargetNode.
51576         (WebCore::EventHandler::keyEvent): Removed dispatch of keypress event, since this is now done in the default event handler.
51577         (WebCore::EventHandler::defaultKeyboardEventHandler): For keydown events, create and dispatch a keypress event.
51578
51579 2007-03-04  Alexey Proskuryakov  <ap@webkit.org>
51580
51581         Reviewed by Nikolas Zimmermann (yay!).
51582
51583         http://bugs.webkit.org/show_bug.cgi?id=12962
51584         4XPath tests crash on lang() function
51585
51586         Covered by 4XPath tests, to be landed later.
51587
51588         * platform/StringImpl.cpp:
51589         (WebCore::StringImpl::reverseFind): Do not crash with empty strings.
51590         * xml/XPathFunctions.cpp:
51591         (WebCore::XPath::FunLang::doEvaluate): Do not crash when an element has no
51592         attributes. Use a proper namespace for xml:lang (not sure where "xms" came from).
51593         Rewrote the algorithm for suffix removing to match the spec.
51594
51595 2007-03-02  Anders Carlsson  <acarlsson@apple.com>
51596
51597         Reviewed by Darin.
51598
51599         <rdar://problem/5028165> 
51600         http://bugs.webkit.org/show_bug.cgi?id=12915
51601         REGRESSION: XMLHttpRequest.abort() does not stop loading (12915)
51602         
51603         * loader/DocumentLoader.cpp:
51604         (WebCore::DocumentLoader::stopLoading):
51605         Save the value of m_loading since calling FrameLoader::stopLoading could set it to false.
51606         
51607         * loader/SubresourceLoader.cpp:
51608         (WebCore::SubresourceLoader::didCancel):
51609         * loader/SubresourceLoader.h:
51610         Get rid of didCancel now, it's not needed anymore.
51611         
51612         * xml/xmlhttprequest.cpp:
51613         (WebCore::XMLHttpRequest::abort):
51614         Call cancel() instead of stopLoading(). Also, set m_aborted to true so the XMLHttpRequest object
51615         won't be dereferenced in didFail when aborting.
51616
51617 2007-03-04  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
51618
51619         Reviewed by Nikolas Zimmermann.
51620
51621         Move ScrollView stubs to ScrollViewGdk.cpp
51622
51623         * platform/gdk/FrameGdk.h: remove comment that no longer makes sense
51624         * platform/gdk/ScrollViewGdk.cpp:
51625         (WebCore::ScrollView::addChild):
51626         (WebCore::ScrollView::removeChild):
51627         (WebCore::ScrollView::scrollPointRecursively):
51628         (WebCore::ScrollView::inWindow):
51629         (WebCore::ScrollView::wheelEvent):
51630         (WebCore::ScrollView::updateScrollbars):
51631         (WebCore::ScrollView::updateScrollInfo):
51632         (WebCore::ScrollView::windowToContents):
51633         (WebCore::ScrollView::contentsToWindow):
51634         (WebCore::ScrollView::scrollbarUnderMouse):
51635         * platform/gdk/TemporaryLinkStubs.cpp:
51636
51637 2007-03-02  Kevin McCullough  <kmccullough@apple.com>
51638
51639         Reviewed by Geoff.
51640
51641         - rdar://problem/4922454
51642         - This fixes a security issue by making remote referrers not able to access local
51643         resources, unless they register their schemes to be treated as local. The result is
51644         that those schemes can access local resources and cannot be accessed by remote
51645         referrers.
51646         Because this behavior is new a link-on-or-after check is made to determine if the
51647         app should use the older, less safe, behavior.
51648
51649         * WebCore.exp: added exported functions
51650         * bindings/objc/DOM.mm: consolodated function to base class
51651         (-[DOMElement image]):
51652         (-[DOMElement _imageTIFFRepresentation]):
51653         * dom/Document.cpp: Cache the document's ability to load local resources.
51654         (WebCore::Document::Document):
51655         (WebCore::Document::setURL):
51656         (WebCore::Document::shouldBeAllowedToLoadLocalResources):
51657         (WebCore::Document::stylesheetLoaded):
51658         * dom/Document.h: Cache the docuent's ability to load local resources.
51659         (WebCore::Document::getPendingSheet):
51660         (WebCore::Document::isAllowedToLoadLocalResources):
51661         * html/HTMLImageLoader.cpp: Moved functionality into base class.
51662         (WebCore::HTMLImageLoader::updateFromElement):
51663         (WebCore::HTMLImageLoader::dispatchLoadEvent):
51664         * html/HTMLLinkElement.cpp: Handles null returns correctly now.
51665         * html/HTMLTokenizer.cpp: Moved functionality into base class.
51666         (WebCore::HTMLTokenizer::notifyFinished):
51667         * ksvg2/misc/SVGImageLoader.cpp: Moved functionality into base class.
51668         (WebCore::SVGImageLoader::dispatchLoadEvent):
51669         * loader/Cache.cpp: Checks if the cached resource can be loaded.
51670         (WebCore::Cache::requestResource):
51671         * loader/CachedCSSStyleSheet.cpp: Moved functionality into base class.
51672         (WebCore::CachedCSSStyleSheet::ref):
51673         (WebCore::CachedCSSStyleSheet::error):
51674         * loader/CachedImage.cpp: Moved functionality into base class.
51675         (WebCore::CachedImage::CachedImage):
51676         * loader/CachedImage.h: Moved functionality into base class.
51677         (WebCore::CachedImage::canRender):
51678         * loader/CachedResource.cpp: Cache if the CachedResource should be treated as local
51679         (WebCore::CachedResource::CachedResource):
51680         * loader/CachedResource.h: Moved functionality into base class.
51681         (WebCore::CachedResource::errorOccurred):
51682         (WebCore::CachedResource::shouldTreatAsLocal):
51683         * loader/CachedScript.cpp: Moved functionality into base class.
51684         (WebCore::CachedScript::CachedScript):
51685         * loader/CachedScript.h: Moved functionality into base class.
51686         (WebCore::CachedScript::schedule):
51687         * loader/CachedXBLDocument.cpp: Moved functionality into base class.
51688         (WebCore::CachedXBLDocument::error):
51689         * loader/CachedXSLStyleSheet.cpp: Moved functionality into base class.
51690         (WebCore::CachedXSLStyleSheet::error):
51691         * loader/FrameLoader.cpp: See comments for each function below.
51692         (WebCore::FrameLoader::loadSubframe): Use new canLoad.
51693         (WebCore::FrameLoader::restrictAccessToLocal): return value of linked-on-or-after check.
51694         (WebCore::FrameLoader::setRestrictAccessToLocal): set value for linked-on-or-after check.
51695         (WebCore::localSchemes): Return set of schemes that are to be treated as local.
51696         (WebCore::FrameLoader::loadPlugin): Use new canLoad.
51697         (WebCore::FrameLoader::canLoad): Now multiple functions that each do the same work but some can take advantage of the cached values, if they were computed previously.
51698         (WebCore::FrameLoader::shouldHideReferrer): Extracted out the logic to determine if the referrer should be hidden so it is only calculated when needed.
51699         (WebCore::FrameLoader::loadResourceSynchronously): No longer calls canLoad to get hideReferrer info.
51700         (WebCore::FrameLoader::registerSchemeAsLocal): Functionality to register a scheme to be treated as local.
51701         (WebCore::FrameLoader::treatURLAsLocal): Given a URL this function determines if it should be treated as local.
51702         * loader/FrameLoader.h: Declared functions for this security fix.  See above.
51703         * loader/MainResourceLoader.cpp: Optized order of bools to regain performance.
51704         (WebCore::MainResourceLoader::continueAfterContentPolicy):
51705         * loader/SubresourceLoader.cpp: Now restricts remote from loading local resources.
51706         (WebCore::SubresourceLoader::create):
51707         * page/EventHandler.cpp: Moved functionality into base class.
51708         (WebCore::selectCursor):
51709         * platform/KURL.cpp: KURLs need to check all the registered schemes now.
51710         (WebCore::KURL::isLocalFile):
51711         * rendering/HitTestResult.cpp: Moved functionality into base class.
51712         (WebCore::HitTestResult::image):
51713         * rendering/RenderImage.cpp: Moved functionality into base class.
51714         (WebCore::RenderImage::setCachedImage):
51715         (WebCore::RenderImage::imageChanged):
51716         (WebCore::RenderImage::paint):
51717         (WebCore::RenderImage::layout):
51718         (WebCore::RenderImage::calcAspectRatioWidth):
51719         (WebCore::RenderImage::calcAspectRatioHeight):
51720         * rendering/RenderImage.h: Moved functionality into base class.
51721         (WebCore::RenderImage::errorOccurred):
51722         * rendering/RenderListItem.cpp: Moved functionality into base class.
51723         (WebCore::RenderListItem::setStyle):
51724         * rendering/RenderListMarker.cpp: Moved functionality into base class.
51725         (WebCore::RenderListMarker::isImage):
51726         * xml/xmlhttprequest.cpp: Check doc's cached value instead of determining independently.
51727         (WebCore::XMLHttpRequest::urlMatchesDocumentDomain):
51728
51729 2007-03-02  Justin Garcia  <justin.garcia@apple.com>
51730
51731         Reviewed by kevin
51732         
51733         <rdar://problem/5028447>
51734         REGRESSION: Gmail Editor: Copied message text pastes at the wrong font size
51735
51736         * editing/markup.cpp:
51737         (WebCore::createMarkup): The style of the div that holds
51738         a fully selected body's styles didn't include styles inherited
51739         from the body's ancestors.
51740         
51741 2007-03-02  Justin Garcia  <justin.garcia@apple.com>
51742
51743         Reviewed by harrison
51744
51745         <rdar://problem/4545040>
51746         innerHTML does not HTML-escape text nodes inside PRE elements
51747         <rdar://problem/5027857>
51748         Pasting into Mail from Safari's view-source window renders the HTML
51749
51750         * editing/HTMLInterchange.cpp:
51751         (WebCore::convertHTMLTextToInterchangeFormat): Send this function
51752         the node that the text comes from as a parameter.  It shouldn't convert
51753         '\n's to spaces/nbsps if the text is coming from text where newlines are
51754         preserved.
51755         * editing/HTMLInterchange.h:
51756         * editing/markup.cpp:
51757         (WebCore::startMarkup): Escape text inside the children of PREs.
51758
51759 2007-03-02  Sam Weinig  <sam@webkit.org>
51760
51761         Reviewed by Anders.
51762
51763         Try to fix the Qt build.
51764
51765         * platform/qt/TemporaryLinkStubs.cpp: Add stubs.
51766         (WebCore::searchMenuNoRecentSearchesText):
51767         (WebCore::searchMenuRecentSearchesText):
51768         (WebCore::searchMenuClearRecentSearchesText):
51769         (WebCore::AXWebAreaText):
51770         (WebCore::AXLinkText):
51771         (WebCore::AXListMarkerText):
51772         (WebCore::AXImageMapText):
51773         (WebCore::AXHeadingText):
51774
51775 2007-03-02  David Harrison  <harrison@apple.com>
51776
51777         Suggested by Darin.
51778
51779         A more efficient solution to rdar://4961431.
51780
51781         * bridge/mac/WebCoreAXObject.mm:
51782         (-[WebCoreAXObject accessibilityIsIgnored]):
51783
51784 2007-03-01  Justin Garcia  <justin.garcia@apple.com>
51785
51786         Reviewed by john
51787         
51788         <rdar://problem/5032095>
51789         Gmail Editor: Copied text pastes on a new line instead of current line
51790         
51791         Start merge failed to occur because positionAtStartOfInsertedContent
51792         had a bug.
51793
51794         * editing/ReplaceSelectionCommand.cpp:
51795         (WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent):
51796         Was failing when inserting <span><div>foo/div></span>. Return the 
51797         inserted content's first VisiblePosition.
51798
51799 2007-03-02  Dave Hyatt  <hyatt@apple.com>
51800
51801         Fix crasher in glyph map code (buffer overrun).
51802
51803         Reviewed by darin
51804
51805         * platform/win/GlyphPageTreeNodeWin.cpp:
51806         (WebCore::GlyphPage::fill):
51807
51808 2007-03-01  Antti Koivisto  <antti@apple.com>
51809
51810         Reviewed by Maciej.
51811
51812         Fix for http://bugs.webkit.org/show_bug.cgi?id=12895
51813         REGRESSION: imagemap: pointer cursor is shown everywhere
51814         <rdar://problem/5028163>
51815  
51816         Image with imagemap should never itself be URLElement in hit test results. 
51817                
51818         No layout test, cursor state can't be captured.
51819
51820         * rendering/RenderLayer.cpp:
51821         (WebCore::RenderLayer::hitTest):
51822
51823 2007-03-01  Antti Koivisto  <antti@apple.com>
51824
51825         Reviewed by Maciej.
51826         
51827         Fix http://bugs.webkit.org/show_bug.cgi?id=12690
51828         REGRESSION: can not log in to bank of america with TOT webkit
51829         <rdar://problem/4990044>
51830         
51831         and http://bugs.webkit.org/show_bug.cgi?id=12604
51832         REGRESSION: After closing the "Would you like to save password" sheet, the form fails 
51833         to submit automatically at http://www.mac.com/WebObjects/HomePage.woa
51834         <rdar://problem/4871752>
51835         
51836         and http://bugs.webkit.org/show_bug.cgi?id=12020
51837         REGRESSION: Flickr uploading broken
51838         <rdar://problem/4928662>
51839         
51840         Turn protection against multiple forms submission back on. This approach is buggy 
51841         but it is way better than not having it at all. Not protecting against this
51842         breaks number of major sites.
51843         
51844         * bridge/mac/WebCoreAXObject.mm:
51845         (-[WebCoreAXObject accessibilityPerformAction:]):
51846         * loader/FrameLoader.cpp:
51847         (WebCore::FrameLoader::resetMultipleFormSubmissionProtection):
51848         (WebCore::FrameLoader::submitForm):
51849         (WebCore::FrameLoader::receivedMainResourceError):
51850         * loader/FrameLoader.h:
51851         * page/EventHandler.cpp:
51852         (WebCore::EventHandler::keyEvent):
51853         * page/Frame.cpp:
51854         (WebCore::Frame::setView):
51855         * page/mac/EventHandlerMac.mm:
51856         (WebCore::EventHandler::mouseDown):
51857
51858 2007-03-01  Kevin McCullough  <kmccullough@apple.com>
51859
51860         Reviewed by Adam.
51861
51862         - Added the test case: external-script-URL-location.html
51863         - Fix an issue where the url of a document is null after an open if the document
51864         has no parent.
51865
51866         * dom/Document.cpp:
51867         (WebCore::Document::open):
51868
51869 2007-03-01  Anders Carlsson  <acarlsson@apple.com>
51870
51871         Reviewed by Darin.
51872
51873         <rdar://problem/4960250> 
51874         http://bugs.webkit.org/show_bug.cgi?id=11627
51875         REGRESSION: Reproducible crash at IMDb in WebCore::FrameLoader::stopLoadingSubframes
51876         
51877         In rare cases, we could end up calling checkLoadComplete twice for the same frame. This would cause the 
51878         didFailProvisionalLoad delegate method to be called twice for the same frame, and also cause the provisional document loader
51879         to be reset to null when other code wasn't expecting it.
51880         
51881         This regressed in revision 10904 with the fix for <rdar://problem/4184719>. The fix is to only call stopLoading on the frame
51882         if either the document loader is loading, or the document is still being parsed. I've verified that the bug is still fixed and
51883         that no leaks occur.
51884         
51885         * loader/DocumentLoader.cpp:
51886         (WebCore::DocumentLoader::stopLoading):
51887
51888 2007-03-01  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
51889
51890         Reviewed by Darin.
51891
51892         Fix ARM crash due to accessing non-4-byte-aligned memory
51893         as 32-bit values.
51894
51895         * platform/AtomicString.cpp:
51896         (WebCore::UCharBufferTranslator::equal):
51897
51898 2007-03-01  David Harrison  <harrison@apple.com>
51899
51900         Reviewed by Darin.
51901
51902         <rdar://problem/5033905> Have the DOM secondary thread check raise an exception by default
51903
51904         * platform/mac/ThreadCheck.mm:
51905         (WebCore::_WebCoreThreadViolationCheck):
51906         Initialize threadViolationIsException to true.
51907
51908 2007-03-01  Brady Eidson  <beidson@apple.com>
51909
51910         Reviewed by Darin
51911
51912         <rdar://problem/5030628> - Crash opening a new window with the
51913         "New windows open to the same page" pref set
51914
51915         * history/HistoryItem.cpp:
51916         (WebCore::HistoryItem::HistoryItem): Set the m_subItems vector capacity correctly
51917
51918 2007-03-01  Alexey Proskuryakov  <ap@webkit.org>
51919
51920         Reviewed by Maciej.
51921
51922         http://bugs.webkit.org/show_bug.cgi?id=12801
51923         Assertion failure in createMarkup() (root) when doing Select All, Copy in an SVG document
51924
51925         Test: editing/pasteboard/createMarkup-assert.xml
51926
51927         * editing/markup.cpp:
51928         (WebCore::createMarkup): Removed the assertion, because it's wrong in a non-HTML world.
51929
51930 2007-02-28  Adam Roben  <aroben@apple.com>
51931
51932         Reviewed by Oliver and Hyatt.
51933
51934         Fix <rdar://problem/5024233> Crash while using Find on empty document
51935
51936         No layout test possible, as this involves a null document.
51937
51938         * dom/Range.cpp:
51939         (WebCore::rangeOfContents): Added an ASSERT.
51940         * page/Frame.cpp:
51941         (WebCore::Frame::findString): Added a null-check for document().
51942         (WebCore::Frame::markAllMatchesForText): Ditto.
51943
51944 2007-02-28  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
51945
51946         Not reviewed - simple gdk build fix.
51947
51948         Add stubs for newly introduced localized strings.
51949
51950         * platform/gdk/TemporaryLinkStubs.cpp:
51951         (WebCore::searchMenuNoRecentSearchesText):
51952         (WebCore::searchMenuRecentSearchesText):
51953         (WebCore::searchMenuClearRecentSearchesText):
51954
51955 2007-02-28  Brady Eidson  <beidson@apple.com>
51956
51957         Reviewed by Beth
51958
51959         Move the Thread Safety Check functions into their own header for export to WebKit
51960
51961         * WebCore.exp: Export the function
51962         * WebCore.xcodeproj/project.pbxproj: 
51963         * bindings/scripts/CodeGeneratorObjC.pm: Include the new header
51964         * platform/Logging.h: Move stuff to ThreadCheck.h
51965         * platform/ThreadCheck.h: Added.
51966         * platform/mac/LoggingMac.mm: Move stuff to ThreadCheck.mm
51967         * platform/mac/ThreadCheck.mm: Added.
51968         (WebCore::_WebCoreThreadViolationCheck):
51969         (WebCoreReportThreadViolation):
51970
51971 2007-02-28  Beth Dakin  <bdakin@apple.com>
51972
51973         Reviewed by Brady.
51974
51975         Fix for http://bugs.webkit.org/show_bug.cgi?id=12923 REGRESSION: 
51976         Assertion failure copying standalone image
51977
51978         * platform/mac/PasteboardMac.mm:
51979         (WebCore::Pasteboard::writeImage): Use the CachedImage as the 
51980         resource. This makes more sense anyway. There is no need to null-
51981         check the renderer or the CachedImage since we return early if 
51982         there is no Image* and the HitTestResult::image() function checks 
51983         for these things.
51984
51985 2007-02-28  Adele Peterson  <adele@apple.com>
51986
51987         Reviewed by Beth.
51988
51989         Fix for <rdar://problem/4887423> REGRESSION: search results popup menu strings are not localized
51990         and <rdar://problem/3517227> accessibility-related strings in WebCore are not localized
51991
51992         Use localized strings from WebKit instead of hard coded strings.
51993
51994         * bridge/mac/WebCoreAXObject.mm: (-[WebCoreAXObject roleDescription]):
51995         * page/mac/WebCoreViewFactory.h:
51996         * platform/LocalizedStrings.h:
51997         * platform/mac/LocalizedStringsMac.mm:
51998         (WebCore::searchMenuNoRecentSearchesText):
51999         (WebCore::searchMenuRecentSearchesText):
52000         (WebCore::searchMenuClearRecentSearchesText):
52001         (WebCore::AXWebAreaText):
52002         (WebCore::AXLinkText):
52003         (WebCore::AXListMarkerText):
52004         (WebCore::AXImageMapText):
52005         (WebCore::AXHeadingText):
52006         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::itemText):
52007
52008 2007-02-27  Antti Koivisto  <antti@apple.com>
52009
52010         Reviewed by Maciej.
52011
52012         - fix http://bugs.webkit.org/show_bug.cgi?id=12911
52013         GoogleDocs: Ordered lists don't update immediately when start attribute changed
52014         
52015         Update list marker value when start attribute changes.
52016
52017         * html/HTMLOListElement.cpp:
52018         (WebCore::HTMLOListElement::parseMappedAttribute):
52019
52020 2007-02-28  Nikolas Zimmermann  <zimmermann@kde.org>
52021
52022         Reviewed by Maciej.
52023
52024         Corrected the use of the new ENABLE() macros in some ksvg2/svg files.
52025         Add new build-webkit flags "--(no-)xpath" / "--(no-)xslt", to be able
52026         to switch off build features easily. Also add "--(no-)svg-experimental-features"
52027         flag, to be able to test filters/animations/use/foreignObject easily.
52028
52029         * DerivedSources.make:
52030         * ksvg2/scripts/make_names.pl:
52031         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
52032         * ksvg2/svg/SVGStyledElement.cpp:
52033         * ksvg2/svg/SVGUseElement.cpp:
52034
52035 2007-02-28  Rob Buis  <buis@kde.org>
52036
52037         Reviewed by Maciej.
52038
52039         http://bugs.webkit.org/show_bug.cgi?id=12609
52040         Any SVG element will create renderers even when children of HTML elements
52041
52042         Allow creation of svg renderers only when parent is SVG, except for
52043         the <svg> element.
52044
52045         * ksvg2/svg/SVGAElement.h:
52046         * ksvg2/svg/SVGAnimationElement.h:
52047         * ksvg2/svg/SVGCircleElement.h:
52048         * ksvg2/svg/SVGClipPathElement.h:
52049         (WebCore::SVGClipPathElement::rendererIsNeeded):
52050         * ksvg2/svg/SVGDefsElement.cpp:
52051         * ksvg2/svg/SVGDefsElement.h:
52052         * ksvg2/svg/SVGDescElement.h:
52053         (WebCore::SVGDescElement::rendererIsNeeded):
52054         * ksvg2/svg/SVGElement.cpp:
52055         * ksvg2/svg/SVGEllipseElement.h:
52056         * ksvg2/svg/SVGFilterElement.h:
52057         (WebCore::SVGFilterElement::rendererIsNeeded):
52058         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
52059         (WebCore::SVGFilterPrimitiveStandardAttributes::rendererIsNeeded):
52060         * ksvg2/svg/SVGForeignObjectElement.h:
52061         * ksvg2/svg/SVGGElement.h:
52062         * ksvg2/svg/SVGGradientElement.h:
52063         * ksvg2/svg/SVGImageElement.h:
52064         * ksvg2/svg/SVGLineElement.h:
52065         * ksvg2/svg/SVGMarkerElement.h:
52066         * ksvg2/svg/SVGMaskElement.h:
52067         * ksvg2/svg/SVGPathElement.h:
52068         * ksvg2/svg/SVGPatternElement.h:
52069         * ksvg2/svg/SVGPolyElement.h:
52070         * ksvg2/svg/SVGRectElement.h:
52071         * ksvg2/svg/SVGStopElement.h:
52072         * ksvg2/svg/SVGStyledElement.cpp:
52073         (WebCore::SVGStyledElement::rendererIsNeeded):
52074         * ksvg2/svg/SVGStyledElement.h:
52075         * ksvg2/svg/SVGSwitchElement.h:
52076         * ksvg2/svg/SVGSymbolElement.h:
52077         (WebCore::SVGSymbolElement::rendererIsNeeded):
52078         * ksvg2/svg/SVGTRefElement.h:
52079         * ksvg2/svg/SVGTSpanElement.h:
52080         * ksvg2/svg/SVGTextElement.h:
52081         * ksvg2/svg/SVGTitleElement.h:
52082         (WebCore::SVGTitleElement::rendererIsNeeded):
52083         * ksvg2/svg/SVGUseElement.h:
52084         * ksvg2/svg/SVGViewElement.h:
52085         (WebCore::SVGViewElement::rendererIsNeeded):
52086
52087 2007-02-28  Rob Buis  <buis@kde.org>
52088
52089         Reviewed by Maciej.
52090
52091         http://bugs.webkit.org/show_bug.cgi?id=12913
52092         Markers do not render in webkit when it misses markerWidth or markerHeight attribute
52093
52094         Set defaults for markerWidth/markerHeight so markers that do not specify them render.
52095
52096         * ksvg2/svg/SVGMarkerElement.cpp:
52097         (WebCore::SVGMarkerElement::SVGMarkerElement):
52098
52099 2007-02-27  Anders Carlsson  <acarlsson@apple.com>
52100
52101         * loader/ResourceLoader.cpp:
52102         (WebCore::ResourceLoader::~ResourceLoader):
52103         Remove comment.
52104
52105 2007-02-27  Justin Garcia  <justin.garcia@apple.com>
52106
52107         Reviewed by oliver
52108
52109         <rdar://problem/5027300>
52110         REGRESSION: Images inserted with align left/right are lost
52111
52112         * editing/ReplaceSelectionCommand.cpp:
52113         (WebCore::ReplaceSelectionCommand::shouldMerge):
52114         Don't attempt to merge to or from a position before 
52115         or after a block because it will be a no-op and
52116         lead to infinite recursion.
52117         In this case it instead resulted in content loss because 
52118         of bugs in start/endOfParagraph (5027702).
52119         * editing/visible_units.cpp: Added two FIXMEs for
52120         the problems with start/endOfParagraph.
52121
52122 2007-02-27  Anders Carlsson  <acarlsson@apple.com>
52123
52124         Reviewed by Geoff.
52125
52126         Make resource load delegate methods pass the right document loader.
52127         
52128         * loader/FrameLoader.cpp:
52129         (WebCore::FrameLoader::willSendRequest):
52130         (WebCore::FrameLoader::didReceiveResponse):
52131         (WebCore::FrameLoader::didReceiveData):
52132         (WebCore::FrameLoader::didFailToLoad):
52133         (WebCore::FrameLoader::didFinishLoad):
52134         (WebCore::FrameLoader::didReceiveAuthenticationChallenge):
52135         (WebCore::FrameLoader::didCancelAuthenticationChallenge):
52136         Use the resource loader's document loader instead of the active one.
52137         
52138         * loader/MainResourceLoader.cpp:
52139         (WebCore::MainResourceLoader::receivedError):
52140         Make it so we send the frame load delegate method before the resource load delegate method.
52141         This was a regression from 2.0 and was caused by the fix to rdar://problem/4609195. Because the way the loader
52142         now works, both delegate methods will be called.
52143         
52144         * loader/ResourceLoader.cpp:
52145         (WebCore::ResourceLoader::ResourceLoader):
52146         * loader/ResourceLoader.h:
52147         (WebCore::ResourceLoader::documentLoader):
52148         Add document loader pointer to ResourceLoader.
52149
52150 2007-02-27  Mitz Pettel  <mitz@webkit.org>
52151
52152         Reviewed by Hyatt.
52153
52154         - fix http://bugs.webkit.org/show_bug.cgi?id=12910
52155           REGRESSION (r18756-r18765): list-bullet doesn't redraw properly when changing the list's content using JavaScript
52156
52157         Test: fast/repaint/list-marker.html
52158
52159         * rendering/RenderListItem.cpp:
52160         (WebCore::RenderListItem::positionListMarker): Add the marker to the visual
52161         overflow of all its ancestor blocks up to the list item. This needs to be
52162         done here since the marker is positioned only after those blocks have been
52163         laid out.
52164
52165 2007-02-27  Antti Koivisto  <antti@apple.com>
52166
52167         Reviewed by Hyatt.
52168         
52169         - fix http://bugs.webkit.org/show_bug.cgi?id=12918
52170         REGRESSION: Google Finance dropdown Flickers
52171         <rdar://4988039>
52172         
52173         If a node dies while mouse is over it, it is still supposed to receive
52174         mouseout event (wasn't case in Tiger webkit). However this event should 
52175         not propagate to any other nodes. This patch matches Firefox behavior in
52176         this respect.
52177
52178         * dom/EventTargetNode.cpp:
52179         (WebCore::EventTargetNode::dispatchGenericEvent):
52180
52181 2007-02-27  Geoffrey Garen  <ggaren@apple.com>
52182
52183         Reviewed by Maciej Stachowiak.
52184         
52185         Fixed http://bugs.webkit.org/show_bug.cgi?id=12659 | <rdar://problem/4954306>
52186         JS objects not collected after closing window @ ebay.com/maps.google.com
52187
52188         Garbage collect in the KJSProxy destructor, after clearing our reference
52189         to the interpreter, because that's when the interpreter has torn down fully.
52190
52191         (Technically speaking, we can't *prove* that we have the only reference to 
52192         our interpreter, but that's how it works in practice, and manual garbage 
52193         collection is just an opportunistic optimization, so it's OK for it to 
52194         work in practice even if it can't be proven in theory.)
52195         
52196         Layout tests pass. No leaks reported.
52197
52198         * bindings/js/kjs_proxy.cpp:
52199         (WebCore::KJSProxy::~KJSProxy):
52200         * bindings/js/kjs_proxy.h:
52201         * page/Page.cpp:
52202         (WebCore::Page::~Page): Merged pageDestroyed() calls. Moved debug-only
52203         code to the bottom.
52204         * page/Frame.cpp:
52205         (WebCore::Frame::~Frame): Don't call getObject() because globalObject()
52206         returns a JSObject* already, and the call can leave a pointer to the Window
52207         object on the stack. Don't check for NULL because it is an invariant of
52208         JavaScriptCore that no JSObject* can be NULL. Do use a volatile pointer
52209         for w because the 'w = 0' assignment just screams to the compiler, "Don't
52210         generate any code for me!"
52211
52212 2007-02-27  Rob Buis  <buis@kde.org>
52213
52214         Reviewed by David Hyatt.
52215
52216         http://bugs.webkit.org/show_bug.cgi?id=4128
52217         !important is ignored in inline styling.
52218
52219         Handle properties with !important flag better in inline
52220         style declarations.
52221
52222         * css/CSSMutableStyleDeclaration.cpp:
52223         (WebCore::CSSMutableStyleDeclaration::addParsedProperties):
52224
52225 2007-02-27  David Hyatt  <hyatt@apple.com>
52226
52227         Bug 11435.  Make sure RenderViews always paintBoxDecorations.  They used to before I removed RenderView's
52228         paint method.  This fix restores the original behavior.
52229
52230         Reviewed by mitz
52231
52232         * rendering/RenderBox.cpp:
52233         (WebCore::RenderBox::setStyle):
52234
52235 2007-02-27  David Hyatt  <hyatt@apple.com>
52236
52237         Fix for bug 12094, make sure setMinMaxKnown starts off false for the weird/rare case of empty
52238         plaintext documents (which really are buggy and should be fixed to generate root elements).
52239
52240         Reviewed by mitz
52241
52242         * rendering/RenderView.cpp:
52243         (WebCore::RenderView::RenderView):
52244
52245 2007-02-27  Matt Perry  <mpcomplete@chromium.org>
52246
52247         Reviewed by Darin.
52248
52249         Fixed the case where a BackForwardList of capacity==1 would grow without bound.
52250
52251         * history/BackForwardList.cpp:
52252         (WebCore::BackForwardList::addItem):
52253
52254 2007-02-22  Lars Naesbye Christensen  <lars@naesbye.dk>
52255
52256         Reviewed by Maciej.
52257
52258         http://bugs.webkit.org/show_bug.cgi?id=12848
52259         Help cursor should have a white outline
52260
52261         * Resources/helpCursor.png:
52262
52263 2007-02-27  Alexey Proskuryakov  <ap@webkit.org>
52264
52265         Reviewed by Maciej.
52266
52267         http://bugs.webkit.org/show_bug.cgi?id=12594
52268         REGRESSION: Strange highlight in active input area
52269
52270         No automated test possible.
52271
52272         * rendering/InlineTextBox.cpp:
52273         (WebCore::InlineTextBox::paint): Restore a check lost in r12792.
52274
52275 2007-02-27  Darin Adler  <darin@apple.com>
52276
52277         Reviewed by Mitz.
52278
52279         - fix http://bugs.webkit.org/show_bug.cgi?id=12908
52280           crash in http/tests/incremental/frame-focus-before-load.html
52281
52282         * page/mac/EventHandlerMac.mm: (WebCore::EventHandler::focusDocumentView):
52283         Add null checks.
52284
52285 2007-02-27  Darin Adler  <darin@apple.com>
52286
52287         Reviewed by Alexey.
52288
52289         - fix http://bugs.webkit.org/show_bug.cgi?id=12909
52290           should use ICU, not TEC, for MacRoman decoding
52291
52292         * platform/TextCodecICU.cpp: (WebCore::TextCodecICU::registerEncodingNames):
52293         Add "macroman" as an alias for "macintosh". We have seen that in use in mail,
52294         although I'm not sure it's used on the web.
52295
52296         * platform/mac/mac-encodings.txt: Remove MacRoman line, which was added back
52297         as part of the patch for bug 4971226. But by adding it to this file rather
52298         than the ICU codec, we get it only on Mac OS X. And long term we are trying to
52299         get rid of the use of TEC entirely, so we want this file to be as empty as
52300         possible.
52301
52302 2007-02-27  Rob Buis  <buis@kde.org>
52303
52304         Reviewed by Maciej.
52305
52306         http://bugs.webkit.org/show_bug.cgi?id=12905
52307         Not all svg shapes should support markers
52308
52309         Restrict marker usage to svg shapes polyline, polygon, line and path.
52310
52311         * ksvg2/svg/SVGLineElement.h:
52312         (WebCore::SVGLineElement::supportsMarkers):
52313         * ksvg2/svg/SVGPathElement.h:
52314         (WebCore::SVGPathElement::supportsMarkers):
52315         * ksvg2/svg/SVGPolyElement.h:
52316         (WebCore::SVGPolyElement::supportsMarkers):
52317         * ksvg2/svg/SVGStyledElement.h:
52318         (WebCore::SVGStyledElement::supportsMarkers):
52319         * rendering/RenderPath.cpp:
52320         (WebCore::RenderPath::paint):
52321
52322 2007-02-26  Adele Peterson  <adele@apple.com>
52323
52324         Reviewed by Lars.
52325
52326         Fix for http://bugs.webkit.org/show_bug.cgi?id=12902
52327         <rdar://problem/5012679> REGRESSION: Pressing return key doesn't 
52328         move caret to next line after applying a font color in GMail
52329
52330         Test: fast/frames/iframe-window-focus-2.html
52331
52332         * page/EventHandler.h: Make focusDocumentView public.
52333         * page/Frame.cpp: (WebCore::Frame::focusWindow): Instead of just setting the focused frame,
52334           we should set also focus the document view.  The bug here was that since the subframe view
52335           wasn't the first responder, the key down event was going to the wrong frame.
52336
52337 2007-02-26  Maciej Stachowiak  <mjs@apple.com>
52338
52339         Reviewed by Oliver.
52340
52341         - fixed <rdar://problem/4946881> Recursive loop with <marker> not caught, crashes in WebCore::SVGPaintServer::draw (11244)
52342         http://bugs.webkit.org/show_bug.cgi?id=11244
52343
52344         * platform/graphics/svg/SVGResourceMarker.cpp:
52345         (WebCore::SVGResourceMarker::draw): Use a HashSet to guard against
52346         reference cycles.
52347
52348 2007-02-26  Maciej Stachowiak  <mjs@apple.com>
52349
52350         Reviewed by Kevin McCullough.
52351
52352         - fix Qt build for earlier SVG changes.
52353
52354         * platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
52355
52356 2007-02-26  Oliver Hunt  <oliver@apple.com>
52357
52358         Reviewed by Maciej.
52359
52360         Fix for <rdar://problem/4827378>: Canvas with large height 
52361         uses lots of memory, computer almost stops responding
52362          
52363         Put cap on maximum area of canvas, size is similar too the 
52364         maximum size allowed by firefox (firefox seems to to cut off 
52365         at area == 32767 * 9358). 
52366
52367         Also protect renderer against the possibility of a null context
52368         (this was triggering a CG warning)
52369
52370         * html/HTMLCanvasElement.cpp:
52371         (WebCore::HTMLCanvasElement::createDrawingContext):
52372            Apply maximum canvas area
52373         (WebCore::HTMLCanvasElement::createPlatformImage):
52374            Protect against null CG Context
52375
52376 2007-02-26  Mitz Pettel  <mitz@webkit.org>
52377
52378         Reviewed by Antti Koivisto.
52379
52380         - fix http://bugs.webkit.org/show_bug.cgi?id=12899
52381           Ordered lists not updating dynamically with new styles
52382
52383         Test: fast/lists/list-style-type-dynamic-change.html
52384
52385         * rendering/RenderListMarker.cpp:
52386         (WebCore::RenderListMarker::setStyle): Made changing the marker type trigger
52387         updating of the marker.
52388
52389 2007-02-26  Adele Peterson  <adele@apple.com>
52390
52391         Reviewed by Maciej.
52392
52393         Fix for <rdar://problem/5012761> REGRESSION: form submit invokes wrong event handler
52394
52395         Test: fast/events/submit-reset-nested-bubble.html
52396
52397         * dom/EventTargetNode.h: Made handleLocalEvents virtual.
52398         * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::handleLocalEvents): If we're
52399           not in the capture phase, and the target is a different form, and we're handling
52400           the submitEvent or the resetEvent, then stop propagation of the event.  This matches
52401           Firefox behavior.  You can only get in this situation if misnested tags cause
52402           forms to be nested.
52403         * html/HTMLFormElement.h: Added handleLocalEvents.
52404
52405 2007-02-26  Darin Adler  <darin@apple.com>
52406
52407         Reviewed by Oliver Hunt.
52408
52409         - <rdar://problem/5021555> TextCodecICU does not use fallback mappings; it should
52410
52411         * platform/TextCodecICU.cpp: (WebCore::TextCodecICU::createICUConverter):
52412         Added a call to ucnv_setFallback(TRUE).
52413
52414 2007-02-26  Oliver Hunt  <oliver@apple.com>
52415
52416         Reviewed by Adam.
52417
52418         Fix for rdar://problem/5021127 
52419
52420         Need to add null check to node -- original Obj-C didn't need 
52421         the null check due to the Obj-C null messaging semantics
52422
52423         * editing/Editor.cpp:
52424         (WebCore::Editor::shouldInsertFragment):
52425
52426 2007-02-26  David Hyatt  <hyatt@apple.com>
52427
52428         Make text files render using white-space: pre-wrap instead of white-space: pre.
52429         
52430         Reviewed by aroben
52431
52432         * loader/TextDocument.cpp:
52433         (WebCore::TextTokenizer::write):
52434
52435 2007-02-26  David Hyatt  <hyatt@apple.com>
52436
52437         Back out the change to add fullyClippedContentRect.  The layout test
52438         was actually showing more correct results.
52439
52440         * page/Frame.cpp:
52441         (WebCore::Frame::visibleSelectionRect):
52442         (WebCore::Frame::setIsActive):
52443         (WebCore::Frame::markAllMatchesForText):
52444         * platform/ScrollView.h:
52445         * platform/mac/ScrollViewMac.mm:
52446         * rendering/RenderLayer.cpp:
52447         (WebCore::RenderLayer::scrollRectToVisible):
52448
52449 2007-02-26  David Hyatt  <hyatt@apple.com>
52450
52451         Add support for a new property called -webkit-border-fit.  This property
52452         has two values: border and lines.  The "border" value means the border and
52453         background paint normally at the border box level.  The "lines" value indicates
52454         that the border and background should shrink dynamically to snugly hug the
52455         line boxes of normal flow descendants.
52456
52457         Reviewed by darin
52458
52459         fast/borders/border-fit.html
52460
52461         * WebCore.xcodeproj/project.pbxproj:
52462         * css/CSSComputedStyleDeclaration.cpp:
52463         (WebCore::):
52464         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
52465         * css/CSSPropertyNames.in:
52466         * css/CSSValueKeywords.in:
52467         * css/cssparser.cpp:
52468         (WebCore::CSSParser::parseValue):
52469         * css/cssstyleselector.cpp:
52470         (WebCore::CSSStyleSelector::applyProperty):
52471         * rendering/RenderBlock.cpp:
52472         (WebCore::RenderBlock::adjustForBorderFit):
52473         (WebCore::RenderBlock::borderFitAdjust):
52474         * rendering/RenderBlock.h:
52475         * rendering/RenderBox.cpp:
52476         (WebCore::RenderBox::paintBoxDecorations):
52477         * rendering/RenderBox.h:
52478         (WebCore::RenderBox::borderFitAdjust):
52479         * rendering/RenderStyle.cpp:
52480         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
52481         (WebCore::StyleRareNonInheritedData::operator==):
52482         (WebCore::RenderStyle::diff):
52483         * rendering/RenderStyle.h:
52484         (WebCore::):
52485         (WebCore::RenderStyle::borderFit):
52486         (WebCore::RenderStyle::setBorderFit):
52487         (WebCore::RenderStyle::initialBorderFit):
52488
52489 2007-02-26  Adam Roben  <aroben@apple.com>
52490
52491         Reviewed by Darin.
52492
52493         Build fix.
52494
52495         * rendering/RenderTreeAsText.cpp: Can't use #ifndef with ENABLE() macro.
52496
52497 2007-02-26  Adele Peterson  <adele@apple.com>
52498
52499         Reviewed by Adam.
52500
52501         Fix for <rdar://problem/4990700> Safari always crashes when attempting to edit/view 
52502         Yahoo pipes in WebCore::HTMLSelectElement::optionToListIndex
52503
52504         Test: fast/forms/select-out-of-bounds-index.html
52505
52506         * html/HTMLSelectElement.cpp:
52507         (WebCore::HTMLSelectElement::setSelectedIndex): If we're about to deselect all options, then set m_lastOnChangeIndex to -1.
52508         (WebCore::HTMLSelectElement::optionToListIndex): Moved listSize to a local variable.  Rewrote using a simpler for-loop to prevent out-of-bounds errors.
52509
52510 2007-02-26  Anders Carlsson  <acarlsson@apple.com>
52511
52512         Reviewed by Geoff.
52513
52514         <rdar://problem/4816376>
52515         REGRESSION: NetNewsWire 3.0 - Crashes in WebDocumentLoaderMac::attachToFrame() (12674)
52516         
52517         * loader/FrameLoader.cpp:
52518         (WebCore::FrameLoader::reload):
52519         Remove call to setPolicyDocumentLoader here, it's set by the ::load function that we end up calling.
52520
52521 2007-02-26  Maciej Stachowiak  <mjs@apple.com>
52522
52523         Reviewed by Lars.
52524
52525         - fixed <rdar://problem/5021698> Disable experimental SVG features (12883)
52526         
52527         I added an ENABLE_SVG_EXPERIMENTAL_FEATURES define to guard all use of the experimental
52528         features, and used it to guard relevant tag names, elements, JS bindings and renderers.
52529         
52530         I also converted all the existing optional feature defines to
52531         ENABLE_FOO instead of FOO_SUPPORT since that is the more standard
52532         way to do it in open source projects and works with the handy new
52533         ENABLE() macro.
52534
52535         * CMakeLists.txt:
52536         * DerivedSources.make:
52537         * Projects/gdk/webcore-gdk.bkl:
52538         * WebCore.pro:
52539         * WebCore.vcproj/WebCore/WebCore.vcproj:
52540         * WebCore.vcproj/WebCore/build-generated-files.sh:
52541         * WebCore.xcodeproj/project.pbxproj:
52542         * bindings/js/JSCustomXPathNSResolver.cpp:
52543         * bindings/js/JSCustomXPathNSResolver.h:
52544         * bindings/js/JSSVGElementWrapperFactory.cpp:
52545         * bindings/js/JSSVGElementWrapperFactory.h:
52546         * bindings/js/JSSVGMatrixCustom.cpp:
52547         * bindings/js/JSSVGPODTypeWrapper.h:
52548         * bindings/js/JSSVGPathSegCustom.cpp:
52549         * bindings/js/JSSVGPathSegListCustom.cpp:
52550         * bindings/js/JSSVGPointListCustom.cpp:
52551         * bindings/js/JSXSLTProcessor.cpp:
52552         * bindings/js/JSXSLTProcessor.h:
52553         * bindings/js/kjs_binding.cpp:
52554         (KJS::setDOMException):
52555         * bindings/js/kjs_css.cpp:
52556         (KJS::toJS):
52557         * bindings/js/kjs_dom.cpp:
52558         (KJS::toJS):
52559         * bindings/js/kjs_html.cpp:
52560         (KJS::HTMLElementFunction::callAsFunction):
52561         * bindings/js/kjs_proxy.cpp:
52562         * bindings/js/kjs_proxy.h:
52563         * bindings/js/kjs_window.cpp:
52564         (KJS::Window::getValueProperty):
52565         * bindings/objc/DOM.mm:
52566         (WebCore::createElementClassMap):
52567         (+[DOMNode _nodeWith:]):
52568         * bindings/objc/DOMCSS.mm:
52569         (+[DOMCSSValue _CSSValueWith:]):
52570         * bindings/objc/DOMCustomXPathNSResolver.h:
52571         * bindings/objc/DOMCustomXPathNSResolver.mm:
52572         * bindings/objc/DOMEvents.mm:
52573         (+[DOMEvent _eventWith:]):
52574         * bindings/objc/DOMInternal.h:
52575         * bindings/objc/DOMSVGPathSegInternal.mm:
52576         * bindings/objc/DOMXPath.mm:
52577         * bindings/objc/ExceptionHandlers.mm:
52578         (WebCore::raiseDOMException):
52579         * bindings/objc/PublicDOMInterfaces.h:
52580         * bindings/scripts/CodeGeneratorJS.pm:
52581         * bindings/scripts/CodeGeneratorObjC.pm:
52582         * config.h:
52583         * css/CSSGrammar.y:
52584         * css/CSSStyleDeclaration.cpp:
52585         (WebCore::propertyID):
52586         * css/StyleBase.h:
52587         * css/cssparser.cpp:
52588         (WebCore::CSSParser::parseValue):
52589         * css/cssparser.h:
52590         * css/cssstyleselector.cpp:
52591         (WebCore::CSSStyleSelector::loadDefaultStyle):
52592         (WebCore::CSSStyleSelector::initForStyleResolve):
52593         (WebCore::checkPseudoState):
52594         (WebCore::CSSStyleSelector::adjustRenderStyle):
52595         (WebCore::CSSStyleSelector::applyProperty):
52596         * css/cssstyleselector.h:
52597         * dom/DOMImplementation.cpp:
52598         (WebCore::DOMImplementation::hasFeature):
52599         (WebCore::DOMImplementation::createDocument):
52600         * dom/Document.cpp:
52601         (WebCore::Document::Document):
52602         (WebCore::Document::~Document):
52603         (WebCore::Document::createElement):
52604         (WebCore::Document::implicitClose):
52605         (WebCore::Document::recalcStyleSelector):
52606         (WebCore::Document::createEvent):
52607         * dom/Document.h:
52608         * dom/Document.idl:
52609         * dom/Event.cpp:
52610         * dom/Event.h:
52611         * dom/EventTarget.cpp:
52612         * dom/EventTarget.h:
52613         * dom/MappedAttributeEntry.h:
52614         (WebCore::):
52615         * dom/Node.cpp:
52616         (WebCore::Node::createRendererIfNeeded):
52617         (WebCore::Node::shadowAncestorNode):
52618         * dom/Node.h:
52619         * dom/ProcessingInstruction.cpp:
52620         (WebCore::ProcessingInstruction::ProcessingInstruction):
52621         (WebCore::ProcessingInstruction::checkStyleSheet):
52622         (WebCore::ProcessingInstruction::setCSSStyleSheet):
52623         * dom/ProcessingInstruction.h:
52624         * dom/Text.cpp:
52625         (WebCore::Text::createRenderer):
52626         * dom/XMLTokenizer.cpp:
52627         (WebCore::XMLTokenizer::startElementNs):
52628         (WebCore::XMLTokenizer::endElementNs):
52629         (WebCore::XMLTokenizer::processingInstruction):
52630         (WebCore::XMLTokenizer::end):
52631         (WebCore::XMLTokenizer::insertErrorMessageBlock):
52632         * dom/XMLTokenizer.h:
52633         * html/HTMLEmbedElement.cpp:
52634         * html/HTMLEmbedElement.h:
52635         * html/HTMLObjectElement.cpp:
52636         * html/HTMLObjectElement.h:
52637         * ksvg2/css/SVGCSSParser.cpp:
52638         * ksvg2/css/SVGCSSStyleSelector.cpp:
52639         * ksvg2/css/SVGRenderStyle.cpp:
52640         * ksvg2/css/SVGRenderStyle.h:
52641         * ksvg2/css/SVGRenderStyleDefs.cpp:
52642         * ksvg2/css/SVGRenderStyleDefs.h:
52643         * ksvg2/events/JSSVGLazyEventListener.cpp:
52644         * ksvg2/events/JSSVGLazyEventListener.h:
52645         * ksvg2/events/SVGZoomEvent.cpp:
52646         * ksvg2/events/SVGZoomEvent.h:
52647         * ksvg2/misc/KCanvasRenderingStyle.cpp:
52648         * ksvg2/misc/KCanvasRenderingStyle.h:
52649         * ksvg2/misc/PointerEventsHitRules.cpp:
52650         * ksvg2/misc/PointerEventsHitRules.h:
52651         * ksvg2/misc/SVGDocumentExtensions.cpp:
52652         * ksvg2/misc/SVGDocumentExtensions.h:
52653         * ksvg2/misc/SVGImageLoader.cpp:
52654         * ksvg2/misc/SVGImageLoader.h:
52655         * ksvg2/misc/SVGTimer.cpp:
52656         * ksvg2/misc/SVGTimer.h:
52657         * ksvg2/misc/TimeScheduler.cpp:
52658         * ksvg2/misc/TimeScheduler.h:
52659         * ksvg2/scripts/make_names.pl:
52660         * ksvg2/svg/ColorDistance.cpp:
52661         * ksvg2/svg/ColorDistance.h:
52662         * ksvg2/svg/GradientAttributes.h:
52663         * ksvg2/svg/LinearGradientAttributes.h:
52664         * ksvg2/svg/PatternAttributes.h:
52665         * ksvg2/svg/RadialGradientAttributes.h:
52666         * ksvg2/svg/SVGAElement.cpp:
52667         * ksvg2/svg/SVGAElement.h:
52668         * ksvg2/svg/SVGAngle.cpp:
52669         * ksvg2/svg/SVGAngle.h:
52670         * ksvg2/svg/SVGAnimateColorElement.cpp:
52671         * ksvg2/svg/SVGAnimateColorElement.h:
52672         * ksvg2/svg/SVGAnimateElement.cpp:
52673         * ksvg2/svg/SVGAnimateElement.h:
52674         * ksvg2/svg/SVGAnimateElement.idl:
52675         * ksvg2/svg/SVGAnimateMotionElement.cpp:
52676         * ksvg2/svg/SVGAnimateMotionElement.h:
52677         * ksvg2/svg/SVGAnimateTransformElement.cpp:
52678         * ksvg2/svg/SVGAnimateTransformElement.h:
52679         * ksvg2/svg/SVGAnimateTransformElement.idl:
52680         * ksvg2/svg/SVGAnimatedPathData.cpp:
52681         * ksvg2/svg/SVGAnimatedPathData.h:
52682         * ksvg2/svg/SVGAnimatedPoints.cpp:
52683         * ksvg2/svg/SVGAnimatedPoints.h:
52684         * ksvg2/svg/SVGAnimatedTemplate.h:
52685         * ksvg2/svg/SVGAnimationElement.cpp:
52686         * ksvg2/svg/SVGAnimationElement.h:
52687         * ksvg2/svg/SVGCircleElement.cpp:
52688         * ksvg2/svg/SVGCircleElement.h:
52689         * ksvg2/svg/SVGClipPathElement.cpp:
52690         * ksvg2/svg/SVGClipPathElement.h:
52691         * ksvg2/svg/SVGColor.cpp:
52692         * ksvg2/svg/SVGColor.h:
52693         * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
52694         * ksvg2/svg/SVGComponentTransferFunctionElement.h:
52695         * ksvg2/svg/SVGCursorElement.cpp:
52696         * ksvg2/svg/SVGCursorElement.h:
52697         * ksvg2/svg/SVGDefsElement.cpp:
52698         * ksvg2/svg/SVGDefsElement.h:
52699         * ksvg2/svg/SVGDescElement.cpp:
52700         * ksvg2/svg/SVGDescElement.h:
52701         * ksvg2/svg/SVGDocument.cpp:
52702         * ksvg2/svg/SVGDocument.h:
52703         * ksvg2/svg/SVGElement.cpp:
52704         (WebCore::SVGElement::dispatchEvent):
52705         * ksvg2/svg/SVGElement.h:
52706         * ksvg2/svg/SVGElementInstance.cpp:
52707         * ksvg2/svg/SVGElementInstance.h:
52708         * ksvg2/svg/SVGElementInstance.idl:
52709         * ksvg2/svg/SVGElementInstanceList.cpp:
52710         * ksvg2/svg/SVGElementInstanceList.h:
52711         * ksvg2/svg/SVGElementInstanceList.idl:
52712         * ksvg2/svg/SVGEllipseElement.cpp:
52713         * ksvg2/svg/SVGEllipseElement.h:
52714         * ksvg2/svg/SVGException.h:
52715         * ksvg2/svg/SVGExternalResourcesRequired.cpp:
52716         * ksvg2/svg/SVGExternalResourcesRequired.h:
52717         * ksvg2/svg/SVGFEBlendElement.cpp:
52718         * ksvg2/svg/SVGFEBlendElement.h:
52719         * ksvg2/svg/SVGFEBlendElement.idl:
52720         * ksvg2/svg/SVGFEColorMatrixElement.cpp:
52721         * ksvg2/svg/SVGFEColorMatrixElement.h:
52722         * ksvg2/svg/SVGFEColorMatrixElement.idl:
52723         * ksvg2/svg/SVGFEComponentTransferElement.cpp:
52724         * ksvg2/svg/SVGFEComponentTransferElement.h:
52725         * ksvg2/svg/SVGFEComponentTransferElement.idl:
52726         * ksvg2/svg/SVGFECompositeElement.cpp:
52727         * ksvg2/svg/SVGFECompositeElement.h:
52728         * ksvg2/svg/SVGFECompositeElement.idl:
52729         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
52730         * ksvg2/svg/SVGFEDiffuseLightingElement.h:
52731         * ksvg2/svg/SVGFEDiffuseLightingElement.idl:
52732         * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
52733         * ksvg2/svg/SVGFEDisplacementMapElement.h:
52734         * ksvg2/svg/SVGFEDisplacementMapElement.idl:
52735         * ksvg2/svg/SVGFEDistantLightElement.cpp:
52736         * ksvg2/svg/SVGFEDistantLightElement.h:
52737         * ksvg2/svg/SVGFEDistantLightElement.idl:
52738         * ksvg2/svg/SVGFEFloodElement.cpp:
52739         * ksvg2/svg/SVGFEFloodElement.h:
52740         * ksvg2/svg/SVGFEFloodElement.idl:
52741         * ksvg2/svg/SVGFEFuncAElement.cpp:
52742         * ksvg2/svg/SVGFEFuncAElement.h:
52743         * ksvg2/svg/SVGFEFuncAElement.idl:
52744         * ksvg2/svg/SVGFEFuncBElement.cpp:
52745         * ksvg2/svg/SVGFEFuncBElement.h:
52746         * ksvg2/svg/SVGFEFuncBElement.idl:
52747         * ksvg2/svg/SVGFEFuncGElement.cpp:
52748         * ksvg2/svg/SVGFEFuncGElement.h:
52749         * ksvg2/svg/SVGFEFuncGElement.idl:
52750         * ksvg2/svg/SVGFEFuncRElement.cpp:
52751         * ksvg2/svg/SVGFEFuncRElement.h:
52752         * ksvg2/svg/SVGFEFuncRElement.idl:
52753         * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
52754         * ksvg2/svg/SVGFEGaussianBlurElement.h:
52755         * ksvg2/svg/SVGFEGaussianBlurElement.idl:
52756         * ksvg2/svg/SVGFEImageElement.cpp:
52757         * ksvg2/svg/SVGFEImageElement.h:
52758         * ksvg2/svg/SVGFEImageElement.idl:
52759         * ksvg2/svg/SVGFELightElement.cpp:
52760         * ksvg2/svg/SVGFELightElement.h:
52761         * ksvg2/svg/SVGFEMergeElement.cpp:
52762         * ksvg2/svg/SVGFEMergeElement.h:
52763         * ksvg2/svg/SVGFEMergeElement.idl:
52764         * ksvg2/svg/SVGFEMergeNodeElement.cpp:
52765         * ksvg2/svg/SVGFEMergeNodeElement.h:
52766         * ksvg2/svg/SVGFEMergeNodeElement.idl:
52767         * ksvg2/svg/SVGFEOffsetElement.cpp:
52768         * ksvg2/svg/SVGFEOffsetElement.h:
52769         * ksvg2/svg/SVGFEOffsetElement.idl:
52770         * ksvg2/svg/SVGFEPointLightElement.cpp:
52771         * ksvg2/svg/SVGFEPointLightElement.h:
52772         * ksvg2/svg/SVGFEPointLightElement.idl:
52773         * ksvg2/svg/SVGFESpecularLightingElement.cpp:
52774         * ksvg2/svg/SVGFESpecularLightingElement.h:
52775         * ksvg2/svg/SVGFESpecularLightingElement.idl:
52776         * ksvg2/svg/SVGFESpotLightElement.cpp:
52777         * ksvg2/svg/SVGFESpotLightElement.h:
52778         * ksvg2/svg/SVGFESpotLightElement.idl:
52779         * ksvg2/svg/SVGFETileElement.cpp:
52780         * ksvg2/svg/SVGFETileElement.h:
52781         * ksvg2/svg/SVGFETileElement.idl:
52782         * ksvg2/svg/SVGFETurbulenceElement.cpp:
52783         * ksvg2/svg/SVGFETurbulenceElement.h:
52784         * ksvg2/svg/SVGFETurbulenceElement.idl:
52785         * ksvg2/svg/SVGFilterElement.cpp:
52786         * ksvg2/svg/SVGFilterElement.h:
52787         * ksvg2/svg/SVGFilterElement.idl:
52788         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp:
52789         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
52790         * ksvg2/svg/SVGFitToViewBox.cpp:
52791         * ksvg2/svg/SVGFitToViewBox.h:
52792         * ksvg2/svg/SVGForeignObjectElement.cpp:
52793         * ksvg2/svg/SVGForeignObjectElement.h:
52794         * ksvg2/svg/SVGForeignObjectElement.idl:
52795         * ksvg2/svg/SVGGElement.cpp:
52796         * ksvg2/svg/SVGGElement.h:
52797         * ksvg2/svg/SVGGradientElement.cpp:
52798         * ksvg2/svg/SVGGradientElement.h:
52799         * ksvg2/svg/SVGImageElement.cpp:
52800         * ksvg2/svg/SVGImageElement.h:
52801         * ksvg2/svg/SVGLangSpace.cpp:
52802         * ksvg2/svg/SVGLangSpace.h:
52803         * ksvg2/svg/SVGLength.cpp:
52804         * ksvg2/svg/SVGLength.h:
52805         * ksvg2/svg/SVGLengthList.cpp:
52806         * ksvg2/svg/SVGLengthList.h:
52807         * ksvg2/svg/SVGLineElement.cpp:
52808         * ksvg2/svg/SVGLineElement.h:
52809         * ksvg2/svg/SVGLinearGradientElement.cpp:
52810         * ksvg2/svg/SVGLinearGradientElement.h:
52811         * ksvg2/svg/SVGList.h:
52812         * ksvg2/svg/SVGListTraits.h:
52813         * ksvg2/svg/SVGLocatable.cpp:
52814         (WebCore::SVGLocatable::nearestViewportElement):
52815         (WebCore::SVGLocatable::farthestViewportElement):
52816         * ksvg2/svg/SVGLocatable.h:
52817         * ksvg2/svg/SVGMPathElement.cpp:
52818         * ksvg2/svg/SVGMPathElement.h:
52819         * ksvg2/svg/SVGMarkerElement.cpp:
52820         * ksvg2/svg/SVGMarkerElement.h:
52821         * ksvg2/svg/SVGMaskElement.cpp:
52822         * ksvg2/svg/SVGMaskElement.h:
52823         * ksvg2/svg/SVGMetadataElement.cpp:
52824         * ksvg2/svg/SVGMetadataElement.h:
52825         * ksvg2/svg/SVGNumberList.cpp:
52826         * ksvg2/svg/SVGNumberList.h:
52827         * ksvg2/svg/SVGPaint.cpp:
52828         * ksvg2/svg/SVGPaint.h:
52829         * ksvg2/svg/SVGParserUtilities.cpp:
52830         * ksvg2/svg/SVGParserUtilities.h:
52831         * ksvg2/svg/SVGPathElement.cpp:
52832         * ksvg2/svg/SVGPathElement.h:
52833         * ksvg2/svg/SVGPathSeg.h:
52834         * ksvg2/svg/SVGPathSegArc.cpp:
52835         * ksvg2/svg/SVGPathSegArc.h:
52836         * ksvg2/svg/SVGPathSegClosePath.cpp:
52837         * ksvg2/svg/SVGPathSegClosePath.h:
52838         * ksvg2/svg/SVGPathSegCurvetoCubic.cpp:
52839         * ksvg2/svg/SVGPathSegCurvetoCubic.h:
52840         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.cpp:
52841         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h:
52842         * ksvg2/svg/SVGPathSegCurvetoQuadratic.cpp:
52843         * ksvg2/svg/SVGPathSegCurvetoQuadratic.h:
52844         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.cpp:
52845         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h:
52846         * ksvg2/svg/SVGPathSegLineto.cpp:
52847         * ksvg2/svg/SVGPathSegLineto.h:
52848         * ksvg2/svg/SVGPathSegLinetoHorizontal.cpp:
52849         * ksvg2/svg/SVGPathSegLinetoHorizontal.h:
52850         * ksvg2/svg/SVGPathSegLinetoVertical.cpp:
52851         * ksvg2/svg/SVGPathSegLinetoVertical.h:
52852         * ksvg2/svg/SVGPathSegList.cpp:
52853         * ksvg2/svg/SVGPathSegList.h:
52854         * ksvg2/svg/SVGPathSegMoveto.cpp:
52855         * ksvg2/svg/SVGPathSegMoveto.h:
52856         * ksvg2/svg/SVGPatternElement.cpp:
52857         * ksvg2/svg/SVGPatternElement.h:
52858         * ksvg2/svg/SVGPointList.cpp:
52859         * ksvg2/svg/SVGPointList.h:
52860         * ksvg2/svg/SVGPolyElement.cpp:
52861         * ksvg2/svg/SVGPolyElement.h:
52862         * ksvg2/svg/SVGPolygonElement.cpp:
52863         * ksvg2/svg/SVGPolygonElement.h:
52864         * ksvg2/svg/SVGPolylineElement.cpp:
52865         * ksvg2/svg/SVGPolylineElement.h:
52866         * ksvg2/svg/SVGPreserveAspectRatio.cpp:
52867         * ksvg2/svg/SVGPreserveAspectRatio.h:
52868         * ksvg2/svg/SVGRadialGradientElement.cpp:
52869         * ksvg2/svg/SVGRadialGradientElement.h:
52870         * ksvg2/svg/SVGRectElement.cpp:
52871         * ksvg2/svg/SVGRectElement.h:
52872         * ksvg2/svg/SVGRenderingIntent.h:
52873         * ksvg2/svg/SVGSVGElement.cpp:
52874         * ksvg2/svg/SVGSVGElement.h:
52875         * ksvg2/svg/SVGScriptElement.cpp:
52876         * ksvg2/svg/SVGScriptElement.h:
52877         * ksvg2/svg/SVGSetElement.cpp:
52878         * ksvg2/svg/SVGSetElement.h:
52879         * ksvg2/svg/SVGStopElement.cpp:
52880         * ksvg2/svg/SVGStopElement.h:
52881         * ksvg2/svg/SVGStringList.cpp:
52882         * ksvg2/svg/SVGStringList.h:
52883         * ksvg2/svg/SVGStylable.cpp:
52884         * ksvg2/svg/SVGStylable.h:
52885         * ksvg2/svg/SVGStyleElement.cpp:
52886         * ksvg2/svg/SVGStyleElement.h:
52887         * ksvg2/svg/SVGStyledElement.cpp:
52888         (WebCore::SVGStyledElement::notifyAttributeChange):
52889         * ksvg2/svg/SVGStyledElement.h:
52890         * ksvg2/svg/SVGStyledLocatableElement.cpp:
52891         * ksvg2/svg/SVGStyledLocatableElement.h:
52892         * ksvg2/svg/SVGStyledTransformableElement.cpp:
52893         * ksvg2/svg/SVGStyledTransformableElement.h:
52894         * ksvg2/svg/SVGSwitchElement.cpp:
52895         * ksvg2/svg/SVGSwitchElement.h:
52896         * ksvg2/svg/SVGSymbolElement.cpp:
52897         * ksvg2/svg/SVGSymbolElement.h:
52898         * ksvg2/svg/SVGTRefElement.cpp:
52899         * ksvg2/svg/SVGTRefElement.h:
52900         * ksvg2/svg/SVGTSpanElement.cpp:
52901         * ksvg2/svg/SVGTSpanElement.h:
52902         * ksvg2/svg/SVGTests.cpp:
52903         * ksvg2/svg/SVGTests.h:
52904         * ksvg2/svg/SVGTextContentElement.cpp:
52905         * ksvg2/svg/SVGTextContentElement.h:
52906         * ksvg2/svg/SVGTextElement.cpp:
52907         * ksvg2/svg/SVGTextElement.h:
52908         * ksvg2/svg/SVGTextPositioningElement.cpp:
52909         * ksvg2/svg/SVGTextPositioningElement.h:
52910         * ksvg2/svg/SVGTitleElement.cpp:
52911         * ksvg2/svg/SVGTitleElement.h:
52912         * ksvg2/svg/SVGTransform.cpp:
52913         * ksvg2/svg/SVGTransform.h:
52914         * ksvg2/svg/SVGTransformDistance.cpp:
52915         * ksvg2/svg/SVGTransformDistance.h:
52916         * ksvg2/svg/SVGTransformList.cpp:
52917         * ksvg2/svg/SVGTransformList.h:
52918         * ksvg2/svg/SVGTransformable.cpp:
52919         * ksvg2/svg/SVGTransformable.h:
52920         * ksvg2/svg/SVGURIReference.cpp:
52921         * ksvg2/svg/SVGURIReference.h:
52922         * ksvg2/svg/SVGUnitTypes.h:
52923         * ksvg2/svg/SVGUseElement.cpp:
52924         * ksvg2/svg/SVGUseElement.h:
52925         * ksvg2/svg/SVGUseElement.idl:
52926         * ksvg2/svg/SVGViewElement.cpp:
52927         * ksvg2/svg/SVGViewElement.h:
52928         * ksvg2/svg/SVGZoomAndPan.cpp:
52929         * ksvg2/svg/SVGZoomAndPan.h:
52930         * ksvg2/svg/svgtags.in:
52931         * loader/Cache.cpp:
52932         (WebCore::createResource):
52933         (WebCore::Cache::getStatistics):
52934         * loader/Cache.h:
52935         * loader/CachedImage.cpp:
52936         (WebCore::CachedImage::createImage):
52937         * loader/CachedResource.h:
52938         (WebCore::CachedResource::):
52939         * loader/CachedResourceClient.h:
52940         * loader/CachedXBLDocument.cpp:
52941         * loader/CachedXBLDocument.h:
52942         * loader/CachedXSLStyleSheet.cpp:
52943         * loader/CachedXSLStyleSheet.h:
52944         * loader/DocLoader.cpp:
52945         * loader/DocLoader.h:
52946         * page/DOMWindow.idl:
52947         * page/EventHandler.cpp:
52948         (WebCore::EventHandler::handleMouseMoveEvent):
52949         (WebCore::selectCursor):
52950         * page/Frame.cpp:
52951         (WebCore::Frame::Frame):
52952         * page/PageState.cpp:
52953         (WebCore::PageState::PageState):
52954         (WebCore::PageState::restore):
52955         * platform/MimeTypeRegistry.cpp:
52956         (WebCore::initialiseSupportedNonImageMimeTypes):
52957         * platform/graphics/FloatPoint3D.cpp:
52958         * platform/graphics/FloatPoint3D.h:
52959         * platform/graphics/ImageBuffer.cpp:
52960         (WebCore::ImageBuffer::renderSubtreeToImage):
52961         * platform/graphics/svg/SVGImage.cpp:
52962         * platform/graphics/svg/SVGImage.h:
52963         * platform/graphics/svg/SVGImageEmptyClients.h:
52964         * platform/graphics/svg/SVGPaintServer.cpp:
52965         * platform/graphics/svg/SVGPaintServer.h:
52966         * platform/graphics/svg/SVGPaintServerGradient.cpp:
52967         * platform/graphics/svg/SVGPaintServerGradient.h:
52968         * platform/graphics/svg/SVGPaintServerLinearGradient.cpp:
52969         * platform/graphics/svg/SVGPaintServerLinearGradient.h:
52970         * platform/graphics/svg/SVGPaintServerPattern.cpp:
52971         * platform/graphics/svg/SVGPaintServerPattern.h:
52972         * platform/graphics/svg/SVGPaintServerRadialGradient.cpp:
52973         * platform/graphics/svg/SVGPaintServerRadialGradient.h:
52974         * platform/graphics/svg/SVGPaintServerSolid.cpp:
52975         * platform/graphics/svg/SVGPaintServerSolid.h:
52976         * platform/graphics/svg/SVGResource.cpp:
52977         * platform/graphics/svg/SVGResource.h:
52978         * platform/graphics/svg/SVGResourceClipper.cpp:
52979         * platform/graphics/svg/SVGResourceClipper.h:
52980         * platform/graphics/svg/SVGResourceFilter.cpp:
52981         * platform/graphics/svg/SVGResourceFilter.h:
52982         * platform/graphics/svg/SVGResourceMarker.cpp:
52983         * platform/graphics/svg/SVGResourceMarker.h:
52984         * platform/graphics/svg/SVGResourceMasker.cpp:
52985         * platform/graphics/svg/SVGResourceMasker.h:
52986         * platform/graphics/svg/cg/CgSupport.cpp:
52987         * platform/graphics/svg/cg/CgSupport.h:
52988         * platform/graphics/svg/cg/RenderPathCg.cpp:
52989         * platform/graphics/svg/cg/SVGPaintServerCg.cpp:
52990         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
52991         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
52992         * platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp:
52993         * platform/graphics/svg/cg/SVGResourceClipperCg.cpp:
52994         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
52995         * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
52996         * platform/graphics/svg/filters/SVGDistantLightSource.h:
52997         * platform/graphics/svg/filters/SVGFEBlend.cpp:
52998         * platform/graphics/svg/filters/SVGFEBlend.h:
52999         * platform/graphics/svg/filters/SVGFEColorMatrix.cpp:
53000         * platform/graphics/svg/filters/SVGFEColorMatrix.h:
53001         * platform/graphics/svg/filters/SVGFEComponentTransfer.cpp:
53002         * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
53003         * platform/graphics/svg/filters/SVGFEComposite.cpp:
53004         * platform/graphics/svg/filters/SVGFEComposite.h:
53005         * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
53006         * platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
53007         * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
53008         * platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
53009         * platform/graphics/svg/filters/SVGFEDisplacementMap.cpp:
53010         * platform/graphics/svg/filters/SVGFEDisplacementMap.h:
53011         * platform/graphics/svg/filters/SVGFEFlood.cpp:
53012         * platform/graphics/svg/filters/SVGFEFlood.h:
53013         * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
53014         * platform/graphics/svg/filters/SVGFEGaussianBlur.h:
53015         * platform/graphics/svg/filters/SVGFEImage.cpp:
53016         * platform/graphics/svg/filters/SVGFEImage.h:
53017         * platform/graphics/svg/filters/SVGFEMerge.cpp:
53018         * platform/graphics/svg/filters/SVGFEMerge.h:
53019         * platform/graphics/svg/filters/SVGFEMorphology.cpp:
53020         * platform/graphics/svg/filters/SVGFEMorphology.h:
53021         * platform/graphics/svg/filters/SVGFEOffset.cpp:
53022         * platform/graphics/svg/filters/SVGFEOffset.h:
53023         * platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
53024         * platform/graphics/svg/filters/SVGFESpecularLighting.h:
53025         * platform/graphics/svg/filters/SVGFETile.h:
53026         * platform/graphics/svg/filters/SVGFETurbulence.cpp:
53027         * platform/graphics/svg/filters/SVGFETurbulence.h:
53028         * platform/graphics/svg/filters/SVGFilterEffect.cpp:
53029         * platform/graphics/svg/filters/SVGFilterEffect.h:
53030         * platform/graphics/svg/filters/SVGLightSource.cpp:
53031         * platform/graphics/svg/filters/SVGLightSource.h:
53032         * platform/graphics/svg/filters/SVGPointLightSource.h:
53033         * platform/graphics/svg/filters/SVGSpotLightSource.h:
53034         * platform/graphics/svg/filters/cg/SVGFEBlendCg.mm:
53035         * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
53036         * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
53037         * platform/graphics/svg/filters/cg/SVGFECompositeCg.mm:
53038         * platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm:
53039         * platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm:
53040         * platform/graphics/svg/filters/cg/SVGFEFloodCg.mm:
53041         * platform/graphics/svg/filters/cg/SVGFEGaussianBlurCg.mm:
53042         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
53043         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm:
53044         * platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
53045         * platform/graphics/svg/filters/cg/SVGFEMergeCg.mm:
53046         * platform/graphics/svg/filters/cg/SVGFEOffsetCg.mm:
53047         * platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm:
53048         * platform/graphics/svg/filters/cg/SVGFETileCg.mm:
53049         * platform/graphics/svg/filters/cg/SVGFilterEffectCg.mm:
53050         * platform/graphics/svg/qt/SVGPaintServerGradientQt.cpp:
53051         * platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp:
53052         * platform/graphics/svg/qt/SVGPaintServerPatternQt.cpp:
53053         * platform/graphics/svg/qt/SVGPaintServerQt.cpp:
53054         * platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp:
53055         * platform/graphics/svg/qt/SVGPaintServerSolidQt.cpp:
53056         * platform/graphics/svg/qt/SVGResourceClipperQt.cpp:
53057         * platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
53058         * platform/graphics/svg/qt/SVGResourceMaskerQt.cpp:
53059         * rendering/HitTestResult.cpp:
53060         (WebCore::HitTestResult::absoluteImageURL):
53061         (WebCore::HitTestResult::absoluteLinkURL):
53062         (WebCore::HitTestResult::isLiveLink):
53063         * rendering/RenderForeignObject.cpp:
53064         * rendering/RenderForeignObject.h:
53065         * rendering/RenderLayer.cpp:
53066         (WebCore::RenderLayer::isTransparent):
53067         * rendering/RenderObject.cpp:
53068         (WebCore::RenderObject::containingBlock):
53069         * rendering/RenderObject.h:
53070         * rendering/RenderPath.cpp:
53071         * rendering/RenderPath.h:
53072         * rendering/RenderSVGBlock.cpp:
53073         * rendering/RenderSVGBlock.h:
53074         * rendering/RenderSVGContainer.cpp:
53075         * rendering/RenderSVGContainer.h:
53076         * rendering/RenderSVGGradientStop.cpp:
53077         * rendering/RenderSVGGradientStop.h:
53078         * rendering/RenderSVGHiddenContainer.cpp:
53079         * rendering/RenderSVGHiddenContainer.h:
53080         * rendering/RenderSVGImage.cpp:
53081         * rendering/RenderSVGImage.h:
53082         * rendering/RenderSVGInline.cpp:
53083         * rendering/RenderSVGInline.h:
53084         * rendering/RenderSVGInlineText.cpp:
53085         * rendering/RenderSVGInlineText.h:
53086         * rendering/RenderSVGTSpan.cpp:
53087         * rendering/RenderSVGTSpan.h:
53088         * rendering/RenderSVGText.cpp:
53089         * rendering/RenderSVGText.h:
53090         * rendering/RenderStyle.cpp:
53091         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
53092         (WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData):
53093         (WebCore::StyleRareNonInheritedData::operator==):
53094         (WebCore::RenderStyle::RenderStyle):
53095         (WebCore::RenderStyle::inheritFrom):
53096         (WebCore::RenderStyle::operator==):
53097         (WebCore::RenderStyle::inheritedNotEqual):
53098         (WebCore::RenderStyle::diff):
53099         * rendering/RenderStyle.h:
53100         * rendering/RenderText.cpp:
53101         (WebCore::RenderText::setStyle):
53102         (WebCore::RenderText::setTextInternal):
53103         * rendering/RenderTreeAsText.cpp:
53104         (WebCore::write):
53105         (WebCore::externalRepresentation):
53106         * rendering/SVGInlineFlowBox.cpp:
53107         * rendering/SVGInlineFlowBox.h:
53108         * rendering/SVGRenderTreeAsText.cpp:
53109         * rendering/SVGRenderTreeAsText.h:
53110         * rendering/SVGRootInlineBox.cpp:
53111         * rendering/SVGRootInlineBox.h:
53112         * rendering/bidi.cpp:
53113         (WebCore::shouldPreserveNewline):
53114         (WebCore::RenderBlock::findNextLineBreak):
53115         * webcore-base.bkl:
53116         * xml/NativeXPathNSResolver.cpp:
53117         * xml/NativeXPathNSResolver.h:
53118         * xml/XPathEvaluator.cpp:
53119         * xml/XPathEvaluator.h:
53120         * xml/XPathExpression.cpp:
53121         * xml/XPathExpression.h:
53122         * xml/XPathExpressionNode.cpp:
53123         * xml/XPathExpressionNode.h:
53124         * xml/XPathFunctions.cpp:
53125         * xml/XPathFunctions.h:
53126         * xml/XPathGrammar.y:
53127         * xml/XPathNSResolver.cpp:
53128         * xml/XPathNSResolver.h:
53129         * xml/XPathNamespace.cpp:
53130         * xml/XPathNamespace.h:
53131         * xml/XPathParser.cpp:
53132         * xml/XPathParser.h:
53133         * xml/XPathPath.cpp:
53134         * xml/XPathPath.h:
53135         * xml/XPathPredicate.cpp:
53136         * xml/XPathPredicate.h:
53137         * xml/XPathResult.cpp:
53138         * xml/XPathResult.h:
53139         * xml/XPathStep.cpp:
53140         * xml/XPathStep.h:
53141         * xml/XPathUtil.cpp:
53142         * xml/XPathUtil.h:
53143         * xml/XPathValue.cpp:
53144         * xml/XPathValue.h:
53145         * xml/XPathVariableReference.cpp:
53146         * xml/XPathVariableReference.h:
53147         * xml/XSLImportRule.cpp:
53148         * xml/XSLImportRule.h:
53149         * xml/XSLStyleSheet.cpp:
53150         * xml/XSLStyleSheet.h:
53151         * xml/XSLTProcessor.cpp:
53152         * xml/XSLTProcessor.h:
53153
53154 2007-02-25  Mitz Pettel  <mitz@webkit.org>
53155
53156         Reviewed by David Hyatt.
53157
53158         - fix http://bugs.webkit.org/show_bug.cgi?id=12886
53159           Crash with Scriptalicious javascript library
53160
53161         Test: fast/dynamic/float-withdrawal.html
53162
53163         * rendering/RenderBlock.cpp:
53164         (WebCore::RenderBlock::layoutBlockChildren): Detect when a child block had
53165         intruding floats in a previous layout, and in that case force it to relayout.
53166
53167 2007-02-25  David Hyatt  <hyatt@apple.com>
53168
53169         Revert my change to the default fill color.  Just set the color to transparent explicitly when
53170         drawing textarea resizer frames.
53171
53172         * platform/graphics/GraphicsContext.cpp:
53173         (WebCore::GraphicsContextState::GraphicsContextState):
53174         * rendering/RenderLayer.cpp:
53175         (WebCore::RenderLayer::paintOverflowControls):
53176
53177 2007-02-25  Sam Weinig  <sam@webkit.org>
53178
53179         Update forgotten files.
53180
53181         * rendering/RenderLayer.cpp:
53182         (WebCore::RenderLayer::updateLayerPosition):
53183
53184 2007-02-25  David Hyatt  <hyatt@apple.com>
53185
53186         Fix for regression caused by changing the containing block of positioned elements with no positioned ancestor
53187         to be the initial containing block (represented in our tree by the RenderView).  Rework RenderView's layout
53188         to have very few special cases.   Now it will just relayout its children when the width/height of the
53189         view actually changes.  Positioned elements no longer get a special additional layout, since width/height
53190         adjustments are caught by the base class already anyway.
53191
53192         Reviewed by mjs, darin
53193
53194         * rendering/RenderBlock.cpp:
53195         (WebCore::RenderBlock::layoutBlock):
53196         * rendering/RenderFlexibleBox.cpp:
53197         (WebCore::RenderFlexibleBox::layoutBlock):
53198         (WebCore::RenderFlexibleBox::layoutVerticalBox):
53199         * rendering/RenderView.cpp:
53200         (WebCore::RenderView::RenderView):
53201         (WebCore::RenderView::layout):
53202         * rendering/RenderView.h:
53203
53204 2007-02-25  Maciej Stachowiak  <mjs@apple.com>
53205
53206         Not reviewed, build fix.
53207
53208         - fix build breakage
53209
53210         * platform/gdk/ScrollViewGdk.cpp:
53211         (WebCore::ScrollView::fullyClippedContentRect):
53212         * platform/qt/ScrollViewQt.cpp:
53213         (WebCore::ScrollView::fullyClippedContentRect):
53214
53215 2007-02-24  Maciej Stachowiak  <mjs@apple.com>
53216
53217         Reviewed by Adam.
53218
53219         - fixed layout test failure in fast/overflow/scrollRevealButton
53220         
53221         I added a new ScrollView method, fullyClippedContentRect, that vies the content rect
53222         as clipped by all ancestor scroll views, not just this one. Currently it only works
53223         correctly on mac however. visibleContentRect, only accounting for the clipping from
53224         this particular scroll view, is sufficient for most purposes.
53225
53226         * page/Frame.cpp:
53227         (WebCore::Frame::visibleSelectionRect):
53228         (WebCore::Frame::setIsActive):
53229         (WebCore::Frame::markAllMatchesForText):
53230         * platform/ScrollView.h:
53231         * platform/gdk/ScrollViewGdk.cpp:
53232         (WebCore::ScrolView::fullyClippedContentRect):
53233         * platform/mac/ScrollViewMac.mm:
53234         (WebCore::ScrollView::fullyClippedContentRect):
53235         * platform/qt/ScrollViewQt.cpp:
53236         (WebCore::ScrolView::fullyClippedContentRect):
53237         * rendering/RenderLayer.cpp:
53238         (WebCore::RenderLayer::scrollRectToVisible):
53239
53240 2007-02-24  Adam Roben  <aroben@apple.com>
53241
53242         Reviewed by Steve.
53243
53244         "Look Up in Dictionary" context menu item should be Mac-only for now,
53245         since it's only implemented on that platform (<rdar://problem/5021468>)
53246
53247         * platform/ContextMenu.cpp:
53248         (WebCore::ContextMenu::populate): Wrap all instances of the dictionary
53249         menu item in #if PLATFORM(MAC).
53250
53251 2007-02-24  Geoffrey Garen  <ggaren@apple.com>
53252
53253         Reviewed by Darin Adler.
53254         
53255         Fixed <rdar://problem/4987649> leaks in BidiRun::operator new seen while 
53256         running WebKit unit tests
53257         
53258         In bidi.cpp, some functions allocate BidiRuns and put them in a global data
53259         structure, while others uses the BidiRuns in the global data structure. 
53260         The caller is responsible for knowing which functions may allocate runs
53261         and which may use them, and calling deleteBidiRuns() at the appropriate time.
53262
53263         The fix is to add some calls to deleteBidiRuns() where they were missing.
53264         
53265         I also added a BidiRun counter because these two leaks were introduced by
53266         our two bidi.cpp experts, so the odds that leaks will creep in again
53267         in the future seem pretty high.
53268
53269         * rendering/bidi.cpp:
53270         (WebCore::RenderBlock::bidiReorderCharacters): Added  missing call to
53271         deleteBidiRuns().
53272         (WebCore::BidiRunCounter::~BidiRunCounter):
53273         (WebCore::BidiRun::operator delete):
53274         (WebCore::RenderBlock::layoutInlineChildren): Added missing call to
53275         deleteBidiRuns(). Moved call to deleteBidiRuns() to same scope as call to
53276         bidiReorderLine(), to emphasize that they go together like new/delete.
53277         In theory, the old code was just as good, but I didn't want to rely on
53278         theory.
53279
53280 2007-02-24  David Harrison  <harrison@apple.com>
53281
53282         Reviewed by Kevin.
53283
53284         <rdar://problem/4961431> Image with empty string alt tag should be ignored
53285
53286         * bridge/mac/WebCoreAXObject.mm:
53287         (-[WebCoreAXObject accessibilityIsIgnored]):
53288         Ignore img element that has an alt attribute, but that string is empty.
53289
53290 2007-02-24  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
53291
53292         Reviewed by Adam Roben.
53293
53294         Gdk improvements.
53295
53296         * platform/gdk/FrameGdk.cpp: only scroll on keydown, not both keydown and keyup.
53297         (WebCore::FrameGdk::keyPress):
53298         (WebCore::FrameGdk::handleGdkEvent):
53299         (WebCore::Frame::print):
53300         (WebCore::Frame::issueTransposeCommand):
53301         (WebCore::Frame::respondToChangedSelection):
53302         (WebCore::Frame::cleanupPlatformScriptObjects):
53303         (WebCore::Frame::dragImageForSelection):
53304         * platform/network/gdk/ResourceHandleManager.cpp: don't free memory that
53305         doesn't belong to us.
53306         (WebCore::ResourceHandleManager::downloadTimerCallback):
53307
53308 2007-02-23  Kevin Decker <kdecker@apple.com>
53309
53310         Reviewed by Anders.
53311
53312         Fixed: <rdar://problem/4971226> REGRESSION: Replying to closed HTML mail message does not quote original body (12503)
53313         
53314         There were two problems here:
53315         
53316         * page/mac/WebCoreFrameBridge.mm:
53317         (+[WebCoreFrameBridge stringWithData:textEncodingName:]): The old code said  "if there is no text encoding name than
53318          assume WindowsLatin1 (iso-8859-1) and try to decode that". That's not sufficient because it doesn't handle the fallback
53319          case for unknown encodings. This method will now attempt to decode using WindowsLatin1 for unknown encoding types.
53320         * platform/mac/mac-encodings.txt: Added the missing "macroman" encoding type. 
53321
53322 2007-02-23  Mitz Pettel  <mitz@webkit.org>
53323
53324         Reviewed by Maciej.
53325
53326         - fix http://bugs.webkit.org/show_bug.cgi?id=12856
53327           REGRESSION (r13685): Canceling the suggestion popup does not revert the change
53328
53329         * editing/ReplaceSelectionCommand.cpp:
53330         (WebCore::ReplaceSelectionCommand::doApply): If the fragment to be inserted
53331         is empty, first delete the selection, and only then bail out. 
53332
53333 2007-02-23  Anders Carlsson  <acarlsson@apple.com>
53334
53335         Reviewed by Adam.
53336
53337         <rdar://problem/5001923> 
53338         REGRESSION: Crash when navigating forward from an error page in WebFrameLoaderClient::dispatchDidReceiveContentLength
53339
53340         Fix an error that was introduced in revision r18541. We should check if the provisional document loader 
53341         has an unreachable URL, not the actual document loader.
53342         
53343         * loader/FrameLoader.cpp:
53344         (WebCore::FrameLoader::updateHistoryForCommit):
53345
53346 2007-02-23  Mitz Pettel  <mitz@webkit.org>
53347
53348         Reviewed by Darin.
53349
53350         - fix http://bugs.webkit.org/show_bug.cgi?id=12823
53351           REGRESSION(r16968-16977): unable to prevent selection by cancelling "selectstart" event
53352
53353         Test: fast/events/selectstart-during-autoscroll.html
53354
53355         * rendering/RenderLayer.cpp:
53356         (WebCore::RenderLayer::autoscroll): Invoke the renderer's shouldSelect() --
53357         which dispatches the selection DOM event and gives it a chance to cancel
53358         the selection -- before updating the selection during autoscroll.
53359
53360 2007-02-23  Oliver Hunt  <oliver@apple.com>
53361
53362         Reviewed by Adam.
53363
53364         Fix for http://bugs.webkit.org/show_bug.cgi?id=12870
53365
53366         It turns out short circuiting DragData::containsURL() was bad
53367  
53368         * manual-tests/directory-drop-on-view.html: Added.
53369         * platform/mac/DragDataMac.mm:
53370         (WebCore::DragData::containsURL):
53371
53372 2007-02-23  Maciej Stachowiak  <mjs@apple.com>
53373
53374         Reviewed by Mitz.
53375
53376         - 12.5% speedup on BenchJS test 6
53377         Partial fix for http://bugs.webkit.org/show_bug.cgi?id=12866
53378         
53379         It turns out that calling documentVisibleRect on an NSScrollView is pretty expensive,
53380         and calling visibleRect even more so. Take measures to call them less often.
53381
53382         * platform/mac/ScrollViewMac.mm:
53383         (WebCore::ScrollView::visibleContentRect): Use documentVisibleRect when possible.
53384         (WebCore::ScrollView::updateContents): Use visibleContentRect to be able to use
53385         documentVisibleRect when possible.
53386         * rendering/RenderView.cpp:
53387         (WebCore::RenderView::repaintViewRectangle): Don't get or intersect with viewRect
53388         if we don't have a parent frame, since the ScrollView will do that anyway. Also,
53389         don't get contentX and contentY separately since they are in the viewRect already.
53390         (WebCore::RenderView::viewRect): Use visibleContentRect instead of getting each
53391         coordinate individually, to avoid calling documentVisibleRect repeatedly.
53392
53393 2007-02-23  Maciej Stachowiak  <mjs@apple.com>
53394
53395         Reviewed by Mitz.
53396
53397         - 2% speedup on BenchJS test 6
53398         Partial fix for http://bugs.webkit.org/show_bug.cgi?id=12866
53399
53400         * css/CSSPrimitiveValue.cpp:
53401         (WebCore::CSSPrimitiveValue::cssText): Use format() instead of
53402         number() followed by append of a constant string.
53403
53404 2007-02-22  George Staikos  <staikos@kde.org>
53405
53406         Fix the Qt build.
53407
53408         * platform/qt/ClipboardQt.cpp:
53409         (WebCore::ClipboardQt::ClipboardQt):
53410
53411 2007-02-22  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
53412
53413         Reviewed by Adam Roben, who never sleeps.
53414
53415         To avoid code duplication, move notImplementedGdk() macro to a separate
53416         header file. Remove existing notImplementedGdk() macros and replace
53417         remaining notImplemented() to notImplementedGdk() in gdk code.
53418
53419         * loader/gdk/DocumentLoaderGdk.cpp:
53420         (WebCore::DocumentLoader::getResponseModifiedHeader):
53421         * loader/gdk/FrameLoaderClientGdk.cpp:
53422         (WebCore::FrameLoaderClientGdk::hasWebView):
53423         (WebCore::FrameLoaderClientGdk::hasFrameView):
53424         * page/gdk/ContextMenuClientGdk.cpp:
53425         (WebCore::ContextMenuClientGdk::contextMenuDestroyed):
53426         (WebCore::ContextMenuClientGdk::getCustomMenuFromDefaultItems):
53427         (WebCore::ContextMenuClientGdk::contextMenuItemSelected):
53428         (WebCore::ContextMenuClientGdk::downloadURL):
53429         (WebCore::ContextMenuClientGdk::copyImageToClipboard):
53430         (WebCore::ContextMenuClientGdk::searchWithGoogle):
53431         (WebCore::ContextMenuClientGdk::lookUpInDictionary):
53432         (WebCore::ContextMenuClientGdk::speak):
53433         (WebCore::ContextMenuClientGdk::stopSpeaking):
53434         * page/gdk/EventHandlerGdk.cpp:
53435         * platform/gdk/CursorGdk.cpp:
53436         (WebCore::Cursor::Cursor):
53437         * platform/gdk/EditorClientGdk.cpp:
53438         * platform/gdk/NotImplementedGdk.h: Added.
53439         * platform/gdk/PopupMenuGdk.cpp:
53440         (WebCore::PopupMenu::PopupMenu):
53441         (WebCore::PopupMenu::~PopupMenu):
53442         (WebCore::PopupMenu::show):
53443         (WebCore::PopupMenu::hide):
53444         (WebCore::PopupMenu::updateFromElement):
53445         * platform/gdk/RenderThemeGdk.cpp:
53446         * platform/gdk/ScreenGdk.cpp:
53447         (WebCore::screenDepth):
53448         (WebCore::screenDepthPerComponent):
53449         (WebCore::screenIsMonochrome):
53450         (WebCore::screenRect):
53451         (WebCore::screenAvailableRect):
53452         * platform/gdk/TemporaryLinkStubs.cpp:
53453         * platform/graphics/gdk/ImageGdk.cpp:
53454         (WebCore::Image::drawPattern):
53455         * platform/network/gdk/ResourceHandleCurl.cpp:
53456         (WebCore::ResourceHandle::setDefersLoading):
53457         * platform/network/gdk/ResourceHandleManager.cpp:
53458         (WebCore::ResourceHandleManager::setupPUT):
53459         (WebCore::ResourceHandleManager::setupPOST):
53460
53461 2007-02-22  Feng Qian  <feng@chromium.org>
53462
53463         Reviewed by Maciej.
53464
53465         - Patch for http://bugs.webkit.org/show_bug.cgi?id=12850
53466           Leaks >10k objects
53467
53468         and
53469
53470         - http://bugs.webkit.org/show_bug.cgi?id=12853
53471           add a EventListener leak counter
53472
53473         Problem: RemoveEventListener leaks memory if the listener is not
53474         registered.
53475         Fix: Added Window::findJSEventListener function w/o creating a 
53476         JSEventListener; Renamed getJSEventListener to findOrCreateJSEventListener;
53477
53478         As an enhancement, added a leak counter for EventListeners.
53479
53480         Added a test case, LayoutTests/fast/events/remove-event-listener.html.
53481
53482         * WebCore/bindings/js/kjs_dom.cpp:
53483         * WebCore/bindings/js/kjs_window.h:
53484         * WebCore/bindings/js/kjs_window.cpp:
53485         * WebCore/bindings/js/kjs_event.cpp: Add a leak counter.
53486         * WebCore/bindings/js/JSXMLHttpRequest.cpp:
53487         * LayoutTests/fast/events/remove-event-listener.html:
53488
53489 2007-02-22  Anders Carlsson  <acarlsson@apple.com>
53490
53491         Reviewed by Geoff.
53492
53493         <rdar://problem/4998203> 
53494         REGRESSION: Back-forward list gets messed up when navigating to error pages with back-forward cache turned off
53495         
53496         * loader/FrameLoader.cpp:
53497         (WebCore::FrameLoader::load):
53498         Remove call to setPolicyDocumentLoader(), the policy document loader is set immediately after, and setting it before 
53499         calling shouldReloadToHandleUnreachableURL causes us to get the wrong URL.
53500         
53501         (WebCore::FrameLoader::shouldReloadToHandleUnreachableURL):
53502         Check if the unreachable URL is equal to the document loader's request.
53503         
53504         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
53505         Check the provisional document loader's unreachable URL.
53506
53507 2007-02-22  Justin Garcia  <justin.garcia@apple.com>
53508
53509         Reviewed by darin
53510         
53511         <rdar://problem/5007143>
53512         REGRESSION: WebKit doesn't remember horizontal position of caret when moving forward by line
53513
53514         * editing/SelectionController.cpp:
53515         (WebCore::SelectionController::SelectionController): Initialize 
53516         m_xPosForVerticalArrowNavigation.
53517         (WebCore::SelectionController::setSelection): Call the new setter.
53518         (WebCore::SelectionController::modifyMovingRightForward): For line
53519         and paragraph granularities, use the saved xPosForVerticalArrowNavigation 
53520         even if the old selection was a range. Use the x position of the 
53521         *start*, not the end of the selection if there is no saved 
53522         xPosForVerticalArrowNavigation.  This matches TextEdit's behavior.
53523         (WebCore::SelectionController::modifyMovingLeftBackward): For line
53524         and paragraph granularities, use the saved xPosForVerticalArrowNavigation 
53525         even if the old selection was a range.
53526         (WebCore::SelectionController::modify): Preserve the xPosForVerticalArrowNavigation
53527         for line and paragraph granularities.
53528         (WebCore::SelectionController::xPosForVerticalArrowNavigation): Removed
53529         the recalc bool because it is now always false.
53530         (WebCore::SelectionController::setXPosForVerticalArrowNavigation): Added.
53531         * editing/SelectionController.h: Moved m_xPosForVerticalArrowNavigation
53532         from Frame.
53533         * page/Frame.cpp: Moved m_xPosForVerticalArrowNavigation to SelectionController.
53534         * page/Frame.h: Ditto.
53535         * page/FramePrivate.h: Ditto.
53536
53537 2007-02-22  Beth Dakin  <bdakin@apple.com>
53538
53539         Reviewed by Adam. Manual test added.
53540
53541         Fix for http://bugs.webkit.org/show_bug.cgi?id=12399 REGRESSION: 
53542         Unable to prevent default context menu from appearing. <rdar://
53543         problem/5017416>
53544
53545         This problem appeared because of two facets of the current context 
53546         menu design. First, all context menu events are now considered to 
53547         be "swallowed" since we take care of building up the regular 
53548         context menu through the defaultEventHandler(). Second, the context 
53549         menu controller holds onto it's context menu until a new one is 
53550         created. There would be logistical problems changing this since 
53551         AppKit relies on the menu being around for as long as it is
53552         visible on the screen and we don't get any notification once the 
53553         menu is popped-down.
53554
53555         This patch fixes the problem by giving WebKit a way to clear the 
53556         controller's context menu. WebKit now clears the menu before it 
53557         propagates a new context menu event through the DOM.
53558
53559         * WebCore.exp:
53560         * manual-tests/DOMContextMenuEvent.html: Added.
53561         * page/ContextMenuController.cpp:
53562         (WebCore::ContextMenuController::clearContextMenu):
53563         * page/ContextMenuController.h:
53564
53565 2007-02-22  John Sullivan  <sullivan@apple.com>
53566
53567         Reviewed by Kevin and Adele
53568         
53569         - fixed <rdar://problem/4129417> Need final art for textarea's resize corner
53570         
53571         This probably broke some layout pixel tests since the image changed. I'm going to
53572         track those down in a moment (non-trivial since there are a bunch failing for other
53573         reasons).
53574
53575         * Resources/textAreaResizeCorner.tiff:
53576         new art
53577
53578         * Resources/deleteButton.tiff:
53579         * Resources/deleteButtonPressed.tiff:
53580         these got smaller when I ran compress-tiffs on this directory
53581         
53582 2007-02-22  Oliver Hunt  <oliver@apple.com>
53583
53584         Reviewed by Ada, Lou and Steve.
53585
53586         Moving basic components of ClipboardMac to Clipboard, 
53587         last of the basic common code merge will come later (namely setting the 
53588         drag element/image).
53589         
53590         Tidying up in DragController including a few bad PassRefPtr uses and
53591         removing unnecessary accessors.  Also initialise fields properly to
53592         fix <rdar:/problems/5014889>
53593
53594         * dom/Clipboard.cpp:
53595         (WebCore::Clipboard::Clipboard):
53596           New constructor
53597           
53598         * dom/Clipboard.h:
53599         (WebCore::Clipboard::isForDragging):
53600         (WebCore::Clipboard::dragLocation):
53601         (WebCore::Clipboard::dragImage):
53602         (WebCore::Clipboard::dragImageElement):
53603           Exposing common data
53604           
53605         * page/DragController.cpp:
53606         (WebCore::DragController::DragController):
53607           Initialise m_isHandlingDrag (oops)
53608         (WebCore::documentFragmentFromDragData):
53609         (WebCore::DragController::tryDocumentDrag):
53610           Fixing PassRefPtr misuse
53611         (WebCore::DragController::canProcessDrag):
53612         (WebCore::DragController::startDrag):
53613         (WebCore::DragController::doSystemDrag):
53614           Make sure we're using the correct coordinate space
53615           
53616         * page/EventHandler.cpp:
53617         (WebCore::EventHandler::handleDrag):
53618           Reset drag source correctly
53619           
53620         * platform/mac/ClipboardMac.h:
53621         * platform/mac/ClipboardMac.mm:
53622         (WebCore::ClipboardMac::ClipboardMac):
53623           update constructor to use new Clipboard constructor
53624
53625 2007-02-22  Adele Peterson  <adele@apple.com>
53626
53627         Reviewed by Darin.
53628
53629         Fix for <rdar://problem/5014970> 9A374: Tabs don't work in the message body
53630
53631         Test: fast/events/keypress-insert-tab.html
53632
53633         * page/EventHandler.cpp: (WebCore::EventHandler::defaultTextInputEventHandler):
53634           If the defaultTabEventHandler doesn't handle the event, then go on to the insertText case.
53635
53636 2007-02-22  Timothy Hatcher  <timothy@apple.com>
53637
53638         Reviewed by Darin.
53639
53640         <rdar://problem/4948887> REGRESSION: Correct differences in public DOM API that inadvertently changed in Leopard
53641
53642         * bindings/objc/PublicDOMInterfaces.h: Changes return types for two size properties, adds deprecated DOMEventTarget methods.
53643         * bindings/scripts/CodeGeneratorObjC.pm: Fixed public API checking for protocols, adds support for ConvertToString.
53644         * dom/EventTarget.idl: Marks addEventListener and removeEventListener with the OldStyleObjC attribute.
53645         * html/HTMLBaseFontElement.idl: Changes the size property to a DOMString for ObjC only.
53646         * html/HTMLInputElement.idl: Changes the size property to a DOMString for ObjC only.
53647         * html/HTMLOptionsCollection.idl: Changes the length property to be unsigned.
53648
53649 2007-02-22  Adele Peterson  <adele@apple.com>
53650
53651         Reviewed by John.
53652
53653         Fix <rdar://problem/5016969> REGRESSION: "Check Spelling As You Type" context menu item is never checked
53654
53655         * platform/ContextMenu.cpp: (WebCore::ContextMenu::checkOrEnableIfNeeded): Set shouldCheck for ContextMenuItemTagCheckSpellingWhileTyping.
53656
53657 2007-02-22  Antti Koivisto  <antti@apple.com>
53658
53659         Reviewed by Darin.
53660
53661         - fix http://bugs.webkit.org/show_bug.cgi?id=11447
53662         REGRESSION(NativeListBox): List not scrolled to preselected option
53663         <rdar://problem/4957463>
53664         
53665         Initiate scroll when selected <option> is added to <select>.
53666
53667         * html/HTMLOptionElement.cpp:
53668         (WebCore::HTMLOptionElement::insertedIntoDocument):
53669         * html/HTMLOptionElement.h:
53670         * html/HTMLSelectElement.cpp:
53671         (WebCore::HTMLSelectElement::notifyOptionSelected):
53672         (WebCore::HTMLSelectElement::updateListBoxSelection):
53673         (WebCore::HTMLSelectElement::scrollToSelection):
53674         * html/HTMLSelectElement.h:
53675
53676 2007-02-22  Zack Rusin  <zrusin@trolltech.com>
53677
53678         Reviewed by Lars
53679
53680         Fix sites with fixed positioned backgrounds.
53681
53682         * platform/qt/ScrollViewQt.cpp:
53683         (WebCore::ScrollView::setStaticBackground):
53684
53685 2007-02-22  Zack Rusin  <zrusin@trolltech.com>
53686
53687         Reviewed by Lars
53688
53689         Properly implement canvas/scrollview's. Get
53690         rid of ScrollViewCanvas and replace it with
53691         a tailor abstractscrollview (now in qwebframe).
53692         Scrolling of pages is finally completely smooth.
53693
53694         * WebCore.pro:
53695         * platform/ScrollView.h:
53696         * platform/qt/ScrollViewCanvasQt.cpp: Removed.
53697         * platform/qt/ScrollViewCanvasQt.h: Removed.
53698         * platform/qt/ScrollViewQt.cpp:
53699         (WebCore::ScrollView::ScrollView):
53700         (WebCore::ScrollView::setScrollArea):
53701         (WebCore::ScrollView::updateContents):
53702         (WebCore::ScrollView::resizeContents):
53703         (WebCore::ScrollView::contentsWidth):
53704         (WebCore::ScrollView::contentsHeight):
53705         (WebCore::ScrollView::contentsToWindow):
53706         (WebCore::ScrollView::windowToContents):
53707         (WebCore::ScrollView::addChild):
53708         * platform/qt/WidgetQt.cpp:
53709         (WebCore::WidgetPrivate::canvas):
53710         (WebCore::WidgetPrivate::parentScroll):
53711         (WebCore::WidgetPrivate::setGeometry):
53712         (WebCore::WidgetPrivate::geometry):
53713         (WebCore::Widget::frameGeometry):
53714         (WebCore::Widget::setQWidget):
53715         (WebCore::Widget::setFrameGeometry):
53716
53717 2007-02-21  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
53718
53719         Reviewed by Adam Roben.
53720
53721         Improve notImplemented() macro for gdk. Rename to notImplementedGdk() to
53722         give it a unique name (so that it doesn't clash with notImplemented()
53723         for other platforms).
53724         Make it print a given warning only once, so that frequently called
53725         functions don't clutter the output.
53726         Don't print the warning if DISABLE_NI_WARNING env variable is set.
53727
53728         * loader/gdk/FrameLoaderClientGdk.cpp:
53729         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveAuthenticationChallenge):
53730         (WebCore::FrameLoaderClientGdk::dispatchDidCancelAuthenticationChallenge):
53731         (WebCore::FrameLoaderClientGdk::dispatchWillSendRequest):
53732         (WebCore::FrameLoaderClientGdk::assignIdentifierToInitialRequest):
53733         (WebCore::FrameLoaderClientGdk::createPlugin):
53734         (WebCore::FrameLoaderClientGdk::createFrame):
53735         (WebCore::FrameLoaderClientGdk::redirectDataToPlugin):
53736         (WebCore::FrameLoaderClientGdk::createJavaAppletWidget):
53737         (WebCore::FrameLoaderClientGdk::objectContentType):
53738         (WebCore::FrameLoaderClientGdk::overrideMediaType):
53739         (WebCore::FrameLoaderClientGdk::windowObjectCleared):
53740         (WebCore::FrameLoaderClientGdk::hasWebView):
53741         (WebCore::FrameLoaderClientGdk::hasFrameView):
53742         (WebCore::FrameLoaderClientGdk::frameLoadCompleted):
53743         (WebCore::FrameLoaderClientGdk::saveViewStateToItem):
53744         (WebCore::FrameLoaderClientGdk::restoreViewState):
53745         (WebCore::FrameLoaderClientGdk::privateBrowsingEnabled):
53746         (WebCore::FrameLoaderClientGdk::makeDocumentView):
53747         (WebCore::FrameLoaderClientGdk::makeRepresentation):
53748         (WebCore::FrameLoaderClientGdk::forceLayout):
53749         (WebCore::FrameLoaderClientGdk::forceLayoutForNonHTML):
53750         (WebCore::FrameLoaderClientGdk::setCopiesOnScroll):
53751         (WebCore::FrameLoaderClientGdk::detachedFromParent1):
53752         (WebCore::FrameLoaderClientGdk::detachedFromParent2):
53753         (WebCore::FrameLoaderClientGdk::detachedFromParent3):
53754         (WebCore::FrameLoaderClientGdk::detachedFromParent4):
53755         (WebCore::FrameLoaderClientGdk::loadedFromPageCache):
53756         (WebCore::FrameLoaderClientGdk::dispatchDidHandleOnloadEvents):
53757         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveServerRedirectForProvisionalLoad):
53758         (WebCore::FrameLoaderClientGdk::dispatchDidCancelClientRedirect):
53759         (WebCore::FrameLoaderClientGdk::dispatchWillPerformClientRedirect):
53760         (WebCore::FrameLoaderClientGdk::dispatchDidChangeLocationWithinPage):
53761         (WebCore::FrameLoaderClientGdk::dispatchWillClose):
53762         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveIcon):
53763         (WebCore::FrameLoaderClientGdk::dispatchDidStartProvisionalLoad):
53764         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveTitle):
53765         (WebCore::FrameLoaderClientGdk::dispatchDidCommitLoad):
53766         (WebCore::FrameLoaderClientGdk::dispatchDidFinishDocumentLoad):
53767         (WebCore::FrameLoaderClientGdk::dispatchDidFirstLayout):
53768         (WebCore::FrameLoaderClientGdk::dispatchShow):
53769         (WebCore::FrameLoaderClientGdk::cancelPolicyCheck):
53770         (WebCore::FrameLoaderClientGdk::dispatchDidLoadMainResource):
53771         (WebCore::FrameLoaderClientGdk::revertToProvisionalState):
53772         (WebCore::FrameLoaderClientGdk::clearUnarchivingState):
53773         (WebCore::FrameLoaderClientGdk::willChangeTitle):
53774         (WebCore::FrameLoaderClientGdk::finishedLoading):
53775         (WebCore::FrameLoaderClientGdk::finalSetupForReplace):
53776         (WebCore::FrameLoaderClientGdk::setDefersLoading):
53777         (WebCore::FrameLoaderClientGdk::isArchiveLoadPending):
53778         (WebCore::FrameLoaderClientGdk::cancelPendingArchiveLoad):
53779         (WebCore::FrameLoaderClientGdk::clearArchivedResources):
53780         (WebCore::FrameLoaderClientGdk::canHandleRequest):
53781         (WebCore::FrameLoaderClientGdk::canShowMIMEType):
53782         (WebCore::FrameLoaderClientGdk::representationExistsForURLScheme):
53783         (WebCore::FrameLoaderClientGdk::generatedMIMETypeForURLScheme):
53784         (WebCore::FrameLoaderClientGdk::provisionalLoadStarted):
53785         (WebCore::FrameLoaderClientGdk::didFinishLoad):
53786         (WebCore::FrameLoaderClientGdk::prepareForDataSourceReplacement):
53787         (WebCore::FrameLoaderClientGdk::setTitle):
53788         (WebCore::FrameLoaderClientGdk::setDocumentViewFromPageCache):
53789         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveContentLength):
53790         (WebCore::FrameLoaderClientGdk::dispatchDidFinishLoading):
53791         (WebCore::FrameLoaderClientGdk::dispatchDidFailLoading):
53792         (WebCore::FrameLoaderClientGdk::dispatchDidLoadResourceFromMemoryCache):
53793         (WebCore::FrameLoaderClientGdk::dispatchDidFailProvisionalLoad):
53794         (WebCore::FrameLoaderClientGdk::dispatchDidFailLoad):
53795         (WebCore::FrameLoaderClientGdk::download):
53796         (WebCore::FrameLoaderClientGdk::cancelledError):
53797         (WebCore::FrameLoaderClientGdk::cannotShowURLError):
53798         (WebCore::FrameLoaderClientGdk::interruptForPolicyChangeError):
53799         (WebCore::FrameLoaderClientGdk::cannotShowMIMETypeError):
53800         (WebCore::FrameLoaderClientGdk::fileDoesNotExistError):
53801         (WebCore::FrameLoaderClientGdk::shouldFallBack):
53802         (WebCore::FrameLoaderClientGdk::willUseArchive):
53803         (WebCore::FrameLoaderClientGdk::saveDocumentViewToPageCache):
53804         (WebCore::FrameLoaderClientGdk::canCachePage):
53805         (WebCore::FrameLoaderClientGdk::dispatchCreatePage):
53806         (WebCore::FrameLoaderClientGdk::dispatchUnableToImplementPolicy):
53807         (WebCore::FrameLoaderClientGdk::setMainDocumentError):
53808         (WebCore::FrameLoaderClientGdk::startDownload):
53809         (WebCore::FrameLoaderClientGdk::updateGlobalHistoryForStandardLoad):
53810         (WebCore::FrameLoaderClientGdk::updateGlobalHistoryForReload):
53811         (WebCore::FrameLoaderClientGdk::shouldGoToHistoryItem):
53812         * page/gdk/EventHandlerGdk.cpp:
53813         (WebCore::EventHandler::passMouseDownEventToWidget):
53814         (WebCore::EventHandler::eventActivatedView):
53815         (WebCore::EventHandler::passSubframeEventToSubframe):
53816         (WebCore::EventHandler::passWheelEventToWidget):
53817         (WebCore::EventHandler::createDraggingClipboard):
53818         * platform/gdk/EditorClientGdk.cpp:
53819         (WebCore::EditorClientGdk::shouldDeleteRange):
53820         (WebCore::EditorClientGdk::isContinuousSpellCheckingEnabled):
53821         (WebCore::EditorClientGdk::isGrammarCheckingEnabled):
53822         (WebCore::EditorClientGdk::spellCheckerDocumentTag):
53823         (WebCore::EditorClientGdk::shouldBeginEditing):
53824         (WebCore::EditorClientGdk::shouldEndEditing):
53825         (WebCore::EditorClientGdk::shouldInsertText):
53826         (WebCore::EditorClientGdk::shouldChangeSelectedRange):
53827         (WebCore::EditorClientGdk::shouldApplyStyle):
53828         (WebCore::EditorClientGdk::didBeginEditing):
53829         (WebCore::EditorClientGdk::respondToChangedContents):
53830         (WebCore::EditorClientGdk::didEndEditing):
53831         (WebCore::EditorClientGdk::didWriteSelectionToPasteboard):
53832         (WebCore::EditorClientGdk::didSetSelectionTypesForPasteboard):
53833         (WebCore::EditorClientGdk::selectWordBeforeMenuEvent):
53834         (WebCore::EditorClientGdk::isEditable):
53835         (WebCore::EditorClientGdk::registerCommandForUndo):
53836         (WebCore::EditorClientGdk::registerCommandForRedo):
53837         (WebCore::EditorClientGdk::clearUndoRedoOperations):
53838         (WebCore::EditorClientGdk::canUndo):
53839         (WebCore::EditorClientGdk::canRedo):
53840         (WebCore::EditorClientGdk::undo):
53841         (WebCore::EditorClientGdk::redo):
53842         (WebCore::EditorClientGdk::shouldInsertNode):
53843         (WebCore::EditorClientGdk::pageDestroyed):
53844         (WebCore::EditorClientGdk::smartInsertDeleteEnabled):
53845         (WebCore::EditorClientGdk::toggleContinuousSpellChecking):
53846         (WebCore::EditorClientGdk::textFieldDidBeginEditing):
53847         (WebCore::EditorClientGdk::textFieldDidEndEditing):
53848         (WebCore::EditorClientGdk::textDidChangeInTextField):
53849         (WebCore::EditorClientGdk::doTextFieldCommandFromEvent):
53850         (WebCore::EditorClientGdk::textWillBeDeletedInTextField):
53851         (WebCore::EditorClientGdk::textDidChangeInTextArea):
53852         * platform/gdk/RenderThemeGdk.cpp:
53853         (WebCore::RenderThemeGdk::setCheckboxSize):
53854         (WebCore::RenderThemeGdk::setRadioSize):
53855         (WebCore::RenderThemeGdk::adjustTextFieldStyle):
53856         * platform/gdk/TemporaryLinkStubs.cpp:
53857         (FrameView::updateBorder):
53858         (Widget::setEnabled):
53859         (Widget::isEnabled):
53860         (Widget::focusPolicy):
53861         (Widget::enableFlushDrawing):
53862         (Widget::disableFlushDrawing):
53863         (Widget::lockDrawingFocus):
53864         (Widget::unlockDrawingFocus):
53865         (Widget::removeFromParent):
53866         (Widget::paint):
53867         (Widget::setIsSelected):
53868         (Widget::invalidate):
53869         (Widget::invalidateRect):
53870         (PlatformMouseEvent::PlatformMouseEvent):
53871         (WebCore::findNextSentenceFromIndex):
53872         (WebCore::findSentenceBoundary):
53873         (WebCore::findNextWordFromIndex):
53874         (ChromeClientGdk::chromeDestroyed):
53875         (ChromeClientGdk::windowRect):
53876         (ChromeClientGdk::setWindowRect):
53877         (ChromeClientGdk::pageRect):
53878         (ChromeClientGdk::scaleFactor):
53879         (ChromeClientGdk::focus):
53880         (ChromeClientGdk::unfocus):
53881         (ChromeClientGdk::createWindow):
53882         (ChromeClientGdk::createModalDialog):
53883         (ChromeClientGdk::show):
53884         (ChromeClientGdk::canRunModal):
53885         (ChromeClientGdk::runModal):
53886         (ChromeClientGdk::setToolbarsVisible):
53887         (ChromeClientGdk::toolbarsVisible):
53888         (ChromeClientGdk::setStatusbarVisible):
53889         (ChromeClientGdk::statusbarVisible):
53890         (ChromeClientGdk::setScrollbarsVisible):
53891         (ChromeClientGdk::scrollbarsVisible):
53892         (ChromeClientGdk::setMenubarVisible):
53893         (ChromeClientGdk::menubarVisible):
53894         (ChromeClientGdk::setResizable):
53895         (ChromeClientGdk::closeWindowSoon):
53896         (ChromeClientGdk::canTakeFocus):
53897         (ChromeClientGdk::takeFocus):
53898         (ChromeClientGdk::canRunBeforeUnloadConfirmPanel):
53899         (ChromeClientGdk::addMessageToConsole):
53900         (ChromeClientGdk::runBeforeUnloadConfirmPanel):
53901         (ChromeClientGdk::runJavaScriptAlert):
53902         (ChromeClientGdk::runJavaScriptConfirm):
53903         (ChromeClientGdk::runJavaScriptPrompt):
53904         (ChromeClientGdk::setStatusbarText):
53905         (ChromeClientGdk::shouldInterruptJavaScript):
53906         (ChromeClientGdk::tabsToLinks):
53907         (ChromeClientGdk::windowResizerRect):
53908         (ChromeClientGdk::addToDirtyRegion):
53909         (ChromeClientGdk::scrollBackingStore):
53910         (ChromeClientGdk::updateBackingStore):
53911         (PlugInInfoStore::createPluginInfoForPluginAtIndex):
53912         (PlugInInfoStore::pluginCount):
53913         (WebCore::PlugInInfoStore::supportsMIMEType):
53914         (WebCore::refreshPlugins):
53915         (SearchPopupMenu::saveRecentSearches):
53916         (SearchPopupMenu::loadRecentSearches):
53917         (SearchPopupMenu::SearchPopupMenu):
53918         (PlatformScrollbar::PlatformScrollbar):
53919         (PlatformScrollbar::~PlatformScrollbar):
53920         (PlatformScrollbar::setEnabled):
53921         (PlatformScrollbar::paint):
53922         (PlatformScrollbar::updateThumbPosition):
53923         (PlatformScrollbar::updateThumbProportion):
53924         (PlatformScrollbar::setRect):
53925         (FileChooser::FileChooser):
53926         (FileChooser::~FileChooser):
53927         (FileChooser::openFileChooser):
53928         (FileChooser::basenameForWidth):
53929         (ResourceHandle::willLoadFromCache):
53930         (ResourceHandle::loadsBlocked):
53931         (ResourceHandle::loadResourceSynchronously):
53932         (Icon::Icon):
53933         (Icon::~Icon):
53934         (Icon::newIconForFile):
53935         (Icon::paint):
53936         (Font::drawComplexText):
53937         (Font::floatWidthForComplexText):
53938         (Font::offsetForPositionForComplexText):
53939         (PageCache::close):
53940         (Editor::ignoreSpelling):
53941         (Editor::learnSpelling):
53942         (Editor::isSelectionUngrammatical):
53943         (Editor::isSelectionMisspelled):
53944         (Editor::guessesForMisspelledSelection):
53945         (Editor::guessesForUngrammaticalSelection):
53946         (Editor::markMisspellingsAfterTypingToPosition):
53947         (Editor::newGeneralClipboard):
53948         (Pasteboard::generalPasteboard):
53949         (Pasteboard::writeSelection):
53950         (Pasteboard::writeURL):
53951         (Pasteboard::writeImage):
53952         (Pasteboard::clear):
53953         (Pasteboard::canSmartReplace):
53954         (Pasteboard::documentFragment):
53955         (Pasteboard::plainText):
53956         (Pasteboard::Pasteboard):
53957         (Pasteboard::~Pasteboard):
53958         (ContextMenu::ContextMenu):
53959         (ContextMenu::~ContextMenu):
53960         (ContextMenu::appendItem):
53961         (ContextMenuItem::ContextMenuItem):
53962         (ContextMenuItem::~ContextMenuItem):
53963         (ContextMenuItem::releasePlatformDescription):
53964         (ContextMenuItem::type):
53965         (ContextMenuItem::setType):
53966         (ContextMenuItem::action):
53967         (ContextMenuItem::setAction):
53968         (ContextMenuItem::title):
53969         (ContextMenuItem::setTitle):
53970         (ContextMenuItem::platformSubMenu):
53971         (ContextMenuItem::setSubMenu):
53972         (ContextMenuItem::setChecked):
53973         (ContextMenuItem::setEnabled):
53974         (WebCore::supportedKeySizes):
53975         (WebCore::systemBeep):
53976         (WebCore::userIdleTime):
53977
53978 2007-02-21  Antti Koivisto  <antti@apple.com>
53979
53980         Reviewed by Hyatt.
53981
53982         - fix http://bugs.webkit.org/show_bug.cgi?id=12820
53983         REGRESSION (r19706): Caret not painted after popup, failing editing/pasteboard/4641033
53984
53985         Yet another attempt to figure out exactly who should paint the caret.
53986
53987         * editing/SelectionController.cpp:
53988         (WebCore::SelectionController::isInsideNode):
53989         * editing/SelectionController.h:
53990         * rendering/RenderBlock.cpp:
53991         (WebCore::RenderBlock::paintCaret):
53992
53993 2007-02-21  Mitz Pettel  <mitz@webkit.org>
53994
53995         Reviewed by Hyatt.
53996
53997         - fix http://bugs.webkit.org/show_bug.cgi?id=12818
53998           REGRESSION (r19148): shacknews.com does not render completely
53999
54000         Test: fast/dynamic/staticY-marking-parents-regression.html
54001
54002         Changed calls to setChildNeedsLayout(true) during layout to
54003         setChildNeedsLayout(true, false). Prior to r19148, the default behavior
54004         of marking containers did not matter because the caller was the container
54005         and was already marked, but r19148 added marking of the parent of
54006         objects with static Y, which can be different from the caller and not
54007         necessarily marked already.
54008
54009         * rendering/RenderBlock.cpp:
54010         (WebCore::RenderBlock::collapseMargins):
54011         (WebCore::RenderBlock::clearFloatsIfNeeded):
54012         (WebCore::RenderBlock::layoutBlockChildren):
54013         * rendering/RenderBox.cpp:
54014         (WebCore::RenderBox::setStaticY):
54015         * rendering/RenderFlexibleBox.cpp:
54016         (WebCore::RenderFlexibleBox::layoutVerticalBox):
54017
54018 2007-02-21  Brady Eidson  <beidson@apple.com>
54019
54020         Reviewed by Dave Harrison
54021
54022         <rdar://problem/5014313> - Crash in FrameLoader::restoreScrollPositionAndViewState() 
54023         after regaining network connection
54024
54025         * loader/FrameLoader.cpp:
54026         (WebCore::FrameLoader::restoreScrollPositionAndViewState):  Leave an assertion for debug
54027         build exploration, but gracefully handle the release build case
54028
54029 2007-02-21  Timothy Hatcher  <timothy@apple.com>
54030
54031         Rubber-stamped by Darin.
54032
54033         * bindings/objc/PublicDOMInterfaces.h: Add missing classes that are really public.
54034         Also adds the deprecated selector for getComputedStyle: on DOMDocument.
54035
54036 2007-02-21  Justin Garcia  <justin.garcia@apple.com>
54037
54038         Reviewed by john
54039         
54040         <rdar://problem/5012665>
54041         Removing indent from list moves the caret to the line below
54042
54043         Selection preservation during indent, outdent and list 
54044         operations uses rangeFromLocationAndLength.  Ranges returned 
54045         by rangeFromLocationAndLength were incorrect for locations 
54046         just before the line breaks that are emitted after blocks.  
54047         This is because TextIterator emitted bad ranges for these line 
54048         breaks (ranges that started and ended *after* the block).  
54049         The fix corrects the start but not the end.  This is acceptible 
54050         because there is code in rangeFromLocationAndLength that corrects 
54051         the ends of runs using the start of the run and VisiblePosition 
54052         creation.
54053         
54054         * editing/TextIterator.cpp:
54055         (WebCore::TextIterator::exitNode): Emit a position *inside* 
54056         the block, after its contents.
54057
54058 2007-02-21  Adele Peterson  <adele@apple.com>
54059
54060         Reviewed by Darin.
54061
54062         Fix for <rdar://problem/4999030> Indexing into select element to get to items in the options collection is broken
54063
54064         Test: fast/forms/select-index-setter.html
54065
54066         Added indexSetter for HTMLSelectElement.
54067
54068         * WebCore.xcodeproj/project.pbxproj: Added JSHTMLSelectElementCustom.h
54069
54070         * bindings/js/JSHTMLOptionsCollectionCustom.cpp: (WebCore::JSHTMLOptionsCollection::indexSetter):
54071           Moved code to selectIndexSetter so it can be shared between these classes.
54072         * bindings/js/JSHTMLSelectElementCustom.cpp:
54073         (WebCore::selectIndexSetter): Added.  Moved from JSHTMLOptionsCollection::indexSetter.
54074         (WebCore::JSHTMLSelectElement::indexSetter): Calls selectIndexSetter.
54075         * bindings/js/JSHTMLSelectElementCustom.h: Added.
54076         * html/HTMLSelectElement.idl: Added HasCustomIndexSetter keyword.
54077
54078         * bindings/scripts/CodeGeneratorJS.pm: When generating "put" methods, if the propertyName is a number, call the indexSetter first,
54079           and then call the version of lookupPut that will also try to use the parent's lookup table.  This matches the order of our
54080           old code, before we autogenerated the JSHTMLSelectElement class.
54081
54082 2007-02-21  George Staikos  <staikos@kde.org>
54083
54084         Reviewed by Zack.
54085
54086         Add files to the build.
54087
54088         * WebCore.pro:
54089
54090 2007-02-21  Zack Rusin  <zrusin@trolltech.com>
54091
54092         Reviewed by Lars
54093
54094         Implementing popups for the Qt platform.
54095
54096         * WebCore.pro:
54097         * platform/PopupMenu.h:
54098         * platform/Widget.h:
54099         * platform/qt/PopupMenuQt.cpp:
54100         (WebCore::PopupMenu::PopupMenu):
54101         (WebCore::PopupMenu::clear):
54102         (WebCore::PopupMenu::populate):
54103         (WebCore::PopupMenu::show):
54104         (WebCore::PopupMenu::hide):
54105         * platform/qt/QWebPopup.cpp: Added.
54106         (WebCore::QWebPopup::QWebPopup):
54107         (WebCore::QWebPopup::exec):
54108         (WebCore::QWebPopup::hideEvent):
54109         (WebCore::QWebPopup::activeChanged):
54110         * platform/qt/QWebPopup.h: Added.
54111         * platform/qt/WidgetQt.cpp:
54112         (WebCore::Widget::canvas):
54113
54114 2007-02-21  George Staikos  <staikos@kde.org>
54115
54116         Reviewed by Zack.
54117
54118         Remove unneeded hack now.
54119
54120         * platform/qt/RenderThemeQt.cpp:
54121         (WebCore::RenderThemeQt::setCheckboxSize):
54122
54123 2007-02-21  Zack Rusin  <zrusin@trolltech.com>
54124
54125         Reviewed by Lars
54126
54127         Fix rendering of lineedits and remove the spurious
54128         padding on push-buttons.
54129
54130         * platform/qt/RenderThemeQt.cpp:
54131         (WebCore::RenderThemeQt::baselinePosition):
54132         (WebCore::RenderThemeQt::adjustTextFieldStyle):
54133         (WebCore::RenderThemeQt::sizeForFont):
54134         (WebCore::RenderThemeQt::setButtonPadding):
54135
54136 2007-02-21  Zack Rusin  <zrusin@trolltech.com>
54137
54138         Fix compilation.
54139
54140         * platform/qt/PasteboardQt.cpp:
54141         (WebCore::Pasteboard::writeURL):
54142         (WebCore::Pasteboard::writeImage):
54143
54144 2007-02-20  Adam Roben  <aroben@apple.com>
54145
54146         Preemptive build fix.
54147
54148         * platform/mac/FontCacheMac.mm: Remove unused (and non-existent) header.
54149
54150 2007-02-20  Adam Roben  <aroben@apple.com>
54151
54152         Fix the build the right way.
54153
54154         * platform/StringTruncator.cpp:
54155         (WebCore::truncateString): Keep all widths as floats.
54156
54157 2007-02-20  Beth Dakin  <bdakin@apple.com>
54158
54159         Reviewed by Maciej.
54160
54161         Implement writeImage() on Pasteboard so that the context menus can 
54162         call into the editor for the "Copy image" command instead of 
54163         calling across the clients.
54164
54165         * WebCore.exp:
54166         * WebCore.xcodeproj/project.pbxproj:
54167         * editing/Editor.cpp:
54168         (WebCore::Editor::copyImage): Call into the Pasteboard.
54169         * editing/Editor.h:
54170         * loader/mac/LoaderNSURLExtras.h: A new NSURL extra needed inside 
54171         WebCore.
54172         * loader/mac/LoaderNSURLExtras.m: Made this file Objective-C++ 
54173         (from Objective-C) since the call into the MIMETypeRegistry will 
54174         return a Vector.
54175         (urlByRemovingComponent): Cast to build as Obj-C++
54176         (urlWithDataRelativeToURL): Same.
54177         (vectorContainsString): Helper.
54178         (suggestedFilenameWithMIMEType): New function.
54179         * page/ContextMenuClient.h: Remove copyImageToClipboard()
54180         * page/ContextMenuController.cpp:
54181         (WebCore::ContextMenuController::contextMenuItemSelected): Call 
54182         into the editor instead of the client.
54183         * page/mac/WebCoreViewFactory.h: New localized String.
54184         * platform/LocalizedStrings.h: Same.
54185         * platform/MimeTypeRegistry.h: Expose two additional functions for 
54186         MIMEType information from WebCore System Interface.
54187         * platform/Pasteboard.h:
54188         * platform/SharedBuffer.h: Make platformData() and platformDataSize
54189         () public since they are needed to write the image to the 
54190         pasteboard.
54191         * platform/mac/LocalizedStringsMac.mm: New localized string.
54192         (WebCore::copyImageUnknownFileLabel):
54193         * platform/mac/MimeTypeRegistryMac.mm:
54194         (WebCore::MimeTypeRegistry::getExtensionsForMIMEType):
54195         (WebCore::MimeTypeRegistry::getPreferredExtensionForMIMEType):
54196         * platform/mac/PasteboardMac.mm:
54197         (WebCore::writableTypesForImage):
54198         (WebCore::Pasteboard::writeURL): Write the correct types if the url 
54199         is for an image.
54200         (WebCore::fileWrapperForImage):
54201         (WebCore::Pasteboard::writeFileWrapperAsRTFDAttachment):
54202         (WebCore::Pasteboard::writeImage):
54203         * platform/mac/WebCoreNSStringExtras.h: Added. Some the the 
54204         NSStringExtras that were in WebKit are now needed by WebCore. To 
54205         avoid having two copies of these functions, I just moved the 
54206         implementations to WebCore. The WebKit functions just call into 
54207         WebCore.
54208         * platform/mac/WebCoreNSStringExtras.mm: Added.
54209         (hasCaseInsensitiveSuffix):
54210         (hasCaseInsensitiveSubstring):
54211         (filenameByFixingIllegalCharacters):
54212         * platform/mac/WebCoreSystemInterface.h: 
54213         wkGetPreferredExtensionForMIMEType and wkGetExtensionsForMIMEType 
54214         are now needed in WebCore as well as WebKit.
54215         * platform/mac/WebCoreSystemInterface.mm:
54216
54217 2007-02-20  Adam Roben  <aroben@apple.com>
54218
54219         Build fix.
54220
54221         * platform/StringTruncator.cpp:
54222         (WebCore::truncateString): Added explicit casts.
54223
54224 2007-02-20  Adam Roben  <aroben@apple.com>
54225
54226         Reviewed by Darin and Anders.
54227
54228         Fix <rdar://problem/4736215> Make WebCoreStringTruncator use WebCore types
54229
54230         * WebCore.exp: Updated symbols.
54231         * WebCore.xcodeproj/project.pbxproj: Updated file names.
54232         * bridge/mac/WebCoreStringTruncator.h: Removed.
54233         * bridge/mac/WebCoreStringTruncator.mm: Removed.
54234         * platform/StringTruncator.cpp: Added. Moved from bridge/mac/WebCoreStringTruncator.mm.
54235         (WebCore::textBreakAtOrPreceding): Added.
54236         (WebCore::boundedTextBreakFollowing): Added.
54237         (WebCore::centerTruncateToBuffer):
54238         (WebCore::rightTruncateToBuffer):
54239         (WebCore::stringWidth): Now takes a const Font& instead of a Font*.
54240         (WebCore::truncateString):
54241         (WebCore::StringTruncator::centerTruncate):
54242         (WebCore::StringTruncator::rightTruncate):
54243         (WebCore::StringTruncator::width):
54244         * platform/StringTruncator.h: Added.
54245         * platform/TextBreakIterator.h: Added isTextBreak declaration.
54246         * platform/TextBreakIteratorICU.cpp:
54247         (WebCore::isTextBreak): Implemented.
54248         * platform/mac/FileChooserMac.mm:
54249         (WebCore::FileChooser::basenameForWidth): Updated for changes to WebCoreStringTruncator.
54250         * platform/qt/TextBreakIteratorQt.cpp:
54251         (WebCore::isTextBreak): Stubbed out.
54252
54253 2007-02-20  Justin Garcia  <justin.garcia@apple.com>
54254
54255         Reviewed by harrison
54256
54257         <rdar://problem/5006779>
54258         REGRESSION: Paste and Match Style of quoted text onto empty line yields quoted text
54259         
54260         We decided to change the copy/paste behavior in both
54261         the Paste and the Paste and Match Style cases.
54262
54263         * editing/markup.cpp:
54264         (WebCore::createMarkup): Don't add mail blockquote wrappers
54265         unless the user selected one or more paragraphs.
54266
54267 2007-02-20  Timothy Hatcher  <timothy@apple.com>
54268
54269         Reviewed by Mark Rowe.
54270
54271         <rdar://problem/4912899> WebCore project ObjC @property cleanup
54272
54273         * bindings/objc/DOMObject.h: Add the new style @property
54274         * bindings/objc/PublicDOMInterfaces.h: Update to the new style @property
54275         * bindings/scripts/CodeGeneratorObjC.pm: Export both new and old style @properties
54276
54277 2007-02-20  Timothy Hatcher  <timothy@apple.com>
54278
54279         Reviewed by Sam Weinig.
54280
54281         <rdar://problem/5007248> need to export symbols for DOM exception constants
54282
54283         * WebCore.exp: Adds DOMEventException, DOMException, DOMRangeException, DOMXPathException
54284
54285 2007-02-20  Timothy Hatcher  <timothy@apple.com>
54286
54287         Reviewed by Darin.
54288
54289         <rdar://problem/4900579> WebKit -finalize methods are not thread-safe; design change needed
54290
54291         Call WebCoreObjCFinalizeOnMainThread from the initialize method of all the classes
54292         that have a finalizer that needs called on the main thread.
54293
54294         * WebCore.exp:
54295         * WebCore.xcodeproj/project.pbxproj:
54296         * bindings/objc/WebScriptObject.mm:
54297         (+[WebScriptObject initialize]):
54298         * bridge/mac/WebCoreScriptDebugger.mm:
54299         (+[WebCoreScriptDebugger initialize]):
54300         * platform/mac/SharedBufferMac.mm:
54301         (+[SharedBufferData initialize]):
54302         * platform/mac/WebCoreObjCExtras.c: Added.
54303         (WebCoreObjCFinalizeOnMainThread):
54304         * platform/mac/WebCoreObjCExtras.h: Added.
54305
54306 2007-02-20  Geoffrey Garen  <ggaren@apple.com>
54307
54308         Not not reviewed by Mitz Pettel.
54309
54310         Fixed http://bugs.webkit.org/show_bug.cgi?id=12827 | <rdar://problem/5006671> 
54311         REGRESSION: -[DOMCSSStyleDeclaration setValue:forKey:] doesn't have an 
54312         immediate effect
54313         
54314         Let's just pretend this never happened.
54315         
54316         I attempted a layout test but I couldn't get the old code to fail because 
54317         there's no obvious way to isolate the ObjC bindings in a test that's 
54318         controlled by JS.
54319         
54320         * bindings/objc/WebScriptObject.mm:
54321         (_didExecute):
54322
54323 2007-02-20  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
54324
54325         Reviewed by Maciej S.
54326
54327         Gdk build fixes for recent refactorings.
54328
54329         * Projects/gdk/webcore-gdk.bkl:
54330         * WebCoreSources.bkl:
54331         * page/gdk/DragControllerGdk.cpp:
54332         (WebCore::DragController::dragOperation):
54333         (WebCore::DragController::maxDragImageSize):
54334         * page/gdk/EventHandlerGdk.cpp:
54335         (WebCore::EventHandler::createDraggingClipboard):
54336         * platform/DragImage.h:
54337         * platform/gdk/ChromeClientGdk.h:
54338         * platform/gdk/CursorGdk.cpp:
54339         (WebCore::verticalTextCursor):
54340         (WebCore::cellCursor):
54341         (WebCore::contextMenuCursor):
54342         (WebCore::noDropCursor):
54343         (WebCore::copyCursor):
54344         (WebCore::progressCursor):
54345         (WebCore::aliasCursor):
54346         (WebCore::noneCursor):
54347         (WebCore::notAllowedCursor):
54348         * platform/gdk/EditorClientGdk.cpp:
54349         (WebCore::EditorClientGdk::shouldChangeSelectedRange):
54350         (WebCore::EditorClientGdk::isEditable):
54351         (WebCore::EditorClientGdk::textFieldDidBeginEditing):
54352         (WebCore::EditorClientGdk::textFieldDidEndEditing):
54353         (WebCore::EditorClientGdk::textDidChangeInTextField):
54354         (WebCore::EditorClientGdk::doTextFieldCommandFromEvent):
54355         (WebCore::EditorClientGdk::textWillBeDeletedInTextField):
54356         (WebCore::EditorClientGdk::textDidChangeInTextArea):
54357         * platform/gdk/EditorClientGdk.h:
54358         * platform/gdk/FrameGdk.cpp:
54359         (WebCore::Frame::print):
54360         (WebCore::Frame::issueTransposeCommand):
54361         (WebCore::Frame::respondToChangedSelection):
54362         (WebCore::Frame::cleanupPlatformScriptObjects):
54363         (WebCore::Frame::isCharacterSmartReplaceExempt):
54364         (WebCore::Frame::dragImageForSelection):
54365         * platform/gdk/FrameGdk.h:
54366         * platform/gdk/MimeTypeRegistryGdk.cpp: Added.
54367         * platform/gdk/TemporaryLinkStubs.cpp:
54368         (ChromeClientGdk::tabsToLinks):
54369         (ChromeClientGdk::windowResizerRect):
54370         (ChromeClientGdk::addToDirtyRegion):
54371         (ChromeClientGdk::scrollBackingStore):
54372         (ChromeClientGdk::updateBackingStore):
54373         * webcore-base.bkl:
54374
54375 2007-02-20  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
54376
54377         Reviewed by Darin.
54378
54379         Allow over-writting Product, ProductSub, Vendor and VendorSub
54380         js properties via #define WEBCORE_NAVIGATOR_*
54381
54382         * bindings/js/kjs_navigator.cpp:
54383         (KJS::Navigator::getValueProperty):
54384
54385 2007-02-20  Darin Adler  <darin@apple.com>
54386
54387         Reviewed by Anders.
54388
54389         - prepare to fix some "stop loading" bugs by moving state from the
54390           FrameLoader class to the DocumentLoader class
54391
54392         * WebCore.exp: Update since cancelMainResourceLoad is now on the document loader.
54393
54394         * html/HTMLDocument.h:
54395         * html/HTMLDocument.cpp:
54396         (WebCore::HTMLDocument::HTMLDocument): Removed unused bodyElement and htmlElement
54397         data members.
54398         (WebCore::HTMLDocument::lastModified): Call getResponseModifiedHeader directly on
54399         the document loader.
54400
54401         * loader/DocumentLoader.h: Moved m_mainResourceLoader, m_subresourceLoaders, and
54402         m_plugInStreamLoaders here.
54403         * loader/DocumentLoader.cpp:
54404         (WebCore::cancelAll): Moved here from FrameLoader.
54405         (WebCore::setAllDefersLoading): Ditto.
54406         (WebCore::DocumentLoader::mainResourceData): Moved the body of FrameLoader's
54407         mainResourceData function here.
54408         (WebCore::DocumentLoader::stopLoading): Replaced calls to hasMainResourceLoader
54409         and cancelMainResourceLoad with code that works directly on m_mainResourceLoader.
54410         Call the stop functions moved from FrameLoader here on ourselves.
54411         (WebCore::DocumentLoader::setupForReplaceByMIMEType): Ditto.
54412         (WebCore::DocumentLoader::setPrimaryLoadComplete): Moved the code to store the
54413         main resource data here; it doesn't require separate functions.
54414         (WebCore::DocumentLoader::isLoadingInAPISense): Removed call to isLoadingSubresources
54415         and instead just check if the m_subresourceLoaders set is empty.
54416         (WebCore::DocumentLoader::setDefersLoading): Moved code here from FrameLoader.
54417         (WebCore::DocumentLoader::stopLoadingPlugIns): Ditto.
54418         (WebCore::DocumentLoader::stopLoadingSubresources): Ditto.
54419         (WebCore::DocumentLoader::addSubresourceLoader): Ditto.
54420         (WebCore::DocumentLoader::removeSubresourceLoader): Ditto.
54421         (WebCore::DocumentLoader::addPlugInStreamLoader): Ditto.
54422         (WebCore::DocumentLoader::removePlugInStreamLoader): Ditto.
54423         (WebCore::DocumentLoader::isLoadingSubresources): Ditto.
54424         (WebCore::DocumentLoader::isLoadingPlugIns): Ditto.
54425         (WebCore::DocumentLoader::startLoadingMainResource): Ditto.
54426         (WebCore::DocumentLoader::cancelMainResourceLoad): Ditto.
54427
54428         * loader/FrameLoader.h: Removed stopLoadingPlugIns, stopLoadingSubresources,
54429         cancelMainResourceLoad, hasMainResourceLoader, isLoadingSubresources,
54430         mainResourceData, releaseMainResourceLoader, lastModified, startLoadingMainResource,
54431         isLoadingPlugIns, m_mainResourceLoader, m_subresourceLoaders, m_plugInStreamLoaders,
54432         m_responseRefreshHeader, and m_responseModifiedHeader.
54433         * loader/FrameLoader.cpp:
54434         (WebCore::FrameLoader::setDefersLoading): Call setDefersLoading on all the document
54435         loaders.
54436         (WebCore::FrameLoader::stopLoading): Get rid of code to set m_responseRefreshHeader
54437         and m_responseModifiedHeader.
54438         (WebCore::FrameLoader::receivedFirstData): Call httpHeaderField on the response
54439         here to get the Refresh, instead of storing it in a data member.
54440         (WebCore::FrameLoader::addPlugInStreamLoader): Change to just call this on the
54441         document loader.
54442         (WebCore::FrameLoader::removePlugInStreamLoader): Ditto.
54443         (WebCore::FrameLoader::isLoading): Change to call isLoadingSubresources and
54444         isLoadingPlugIns on the document loader.
54445         (WebCore::FrameLoader::addSubresourceLoader): Change to just call this on the
54446         document loader.
54447         (WebCore::FrameLoader::removeSubresourceLoader): Ditto.
54448         (WebCore::FrameLoader::commitProvisionalLoad): Call stopLoadingSubresources and
54449         stopLoadingPlugIns on the document loader. Removed code to set
54450         m_responseModifiedHeader.
54451         (WebCore::FrameLoader::startLoading): Call isLoadingMainResource and
54452         startLoadingMainResource on the document loader.
54453
54454         * loader/ImageDocument.cpp: (WebCore::ImageTokenizer::finish): Call
54455         mainResourceData() on the document loader instead of the frame loader.
54456
54457         - other changes
54458
54459         * loader/DocLoader.cpp:
54460         (WebCore::DocLoader::checkCacheObjectStatus): Fixed indentation.
54461
54462 2007-02-20  Zack Rusin  <zrusin@trolltech.com>
54463
54464         Reviewed by Lars
54465
54466         Fix focus handling and make the forms
54467         work as expected.
54468
54469         * platform/qt/ScrollViewQt.cpp:
54470         (WebCore::ScrollView::setScrollArea):
54471         * platform/qt/WidgetQt.cpp:
54472         (WebCore::WidgetPrivate::WidgetPrivate):
54473         (WebCore::WidgetPrivate::canvas):
54474         (WebCore::Widget::hasFocus):
54475         (WebCore::Widget::setFocus):
54476         (WebCore::Widget::clearFocus):
54477         (WebCore::Widget::setFont):
54478         (WebCore::Widget::setQWidget):
54479         (WebCore::Widget::focusPolicy):
54480
54481 2007-02-20  Mitz Pettel  <mitz@webkit.org>
54482
54483         Reviewed by Darin and then Sam.
54484
54485         - fix http://bugs.webkit.org/show_bug.cgi?id=10735
54486           Clicking in SVG results causes WebKit to consume 100% CPU for several minutes
54487
54488         No test since there is no change in functionality.
54489
54490         * CMakeLists.txt:
54491         * WebCore.pro:
54492         * WebCore.xcodeproj/project.pbxproj: Added PositionIterator.{cpp,h}.
54493         * WebCoreSources.bkl:
54494         * dom/Position.cpp:
54495         (WebCore::Position::Position): Added converting constructor from
54496         PositionIterator.
54497         (WebCore::Position::previous): Changed assert() to ASSERT().
54498         (WebCore::Position::next): Ditto.
54499         (WebCore::isStreamer): Changed the argument to a PositionIterator.
54500         (WebCore::Position::upstream): Changed to use PositionIterator.
54501         (WebCore::Position::downstream): Ditto.
54502         (WebCore::Position::inRenderedText): Made public.
54503         (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight): Changed
54504         into a static member function.
54505         (WebCore::Position::nodeIsUserSelectNone): Ditto.
54506         * dom/Position.h:
54507         * dom/PositionIterator.cpp: Added. A Position iterator with constant-time
54508         increment, decrement, and several predicates on the Position it is at.
54509         Conversion to/from Position is O(n) in the offset.
54510         (WebCore::PositionIterator::increment):
54511         (WebCore::PositionIterator::decrement):
54512         (WebCore::PositionIterator::atStart):
54513         (WebCore::PositionIterator::atEnd):
54514         (WebCore::PositionIterator::atStartOfNode):
54515         (WebCore::PositionIterator::atEndOfNode):
54516         (WebCore::PositionIterator::isCandidate):
54517         * dom/PositionIterator.h: Added.
54518         (WebCore::PositionIterator::PositionIterator):
54519         (WebCore::PositionIterator::node):
54520         (WebCore::PositionIterator::offsetInLeafNode):
54521         * editing/htmlediting.cpp:
54522         (WebCore::nextCandidate): Changed to use PositionIterator.
54523         (WebCore::previousCandidate): Changed to use PositionIterator.
54524
54525 2007-02-20  Rob Buis  <buis@kde.org>
54526
54527         Reviewed by Darin.
54528
54529         http://bugs.webkit.org/show_bug.cgi?id=12439
54530         SVG parser complains about points attribute in polygon and polyline element
54531
54532         Return true when the parsed points specification is valid.
54533
54534         * ksvg2/svg/SVGParserUtilities.cpp:
54535         (WebCore::parseNumber):
54536         (WebCore::SVGPolyParser::parsePoints):
54537         * ksvg2/svg/SVGPolyElement.cpp:
54538         (WebCore::SVGPolyElement::parseMappedAttribute):
54539
54540 2007-02-20  Zack Rusin  <zrusin@trolltech.com>
54541
54542         Reviewed by Lars
54543
54544         Make editing of forms work plus make sure that non-void methods
54545         always return something.
54546
54547         * WebCore.pro:
54548         * loader/qt/DocumentLoaderQt.cpp:
54549         (WebCore::DocumentLoader::getResponseModifiedHeader):
54550         * platform/qt/ClipboardQt.cpp:
54551         (WebCore::ClipboardQt::setData):
54552
54553 2007-02-20  Zack Rusin  <zrusin@trolltech.com>
54554
54555         Reviewed by Lars
54556
54557         Refactor and fix the implementation of theming of
54558         form elements on the Qt platform.
54559
54560         * platform/qt/RenderThemeQt.cpp:
54561         (WebCore::theme):
54562         (WebCore::RenderThemeQt::RenderThemeQt):
54563         (WebCore::RenderThemeQt::supportsHover):
54564         (WebCore::RenderThemeQt::supportsFocusRing):
54565         (WebCore::RenderThemeQt::baselinePosition):
54566         (WebCore::RenderThemeQt::controlSupportsTints):
54567         (WebCore::RenderThemeQt::supportsControlTints):
54568         (WebCore::RenderThemeQt::adjustRepaintRect):
54569         (WebCore::RenderThemeQt::paintResizeControl):
54570         (WebCore::RenderThemeQt::platformActiveSelectionBackgroundColor):
54571         (WebCore::RenderThemeQt::platformInactiveSelectionBackgroundColor):
54572         (WebCore::RenderThemeQt::platformActiveSelectionForegroundColor):
54573         (WebCore::RenderThemeQt::platformInactiveSelectionForegroundColor):
54574         (WebCore::RenderThemeQt::systemFont):
54575         (WebCore::RenderThemeQt::minimumMenuListSize):
54576         (WebCore::RenderThemeQt::adjustSliderThumbSize):
54577         (WebCore::RenderThemeQt::paintCheckbox):
54578         (WebCore::RenderThemeQt::paintRadio):
54579         (WebCore::RenderThemeQt::setRadioSize):
54580         (WebCore::RenderThemeQt::adjustButtonStyle):
54581         (WebCore::RenderThemeQt::setButtonSize):
54582         (WebCore::RenderThemeQt::adjustTextFieldStyle):
54583         (WebCore::RenderThemeQt::adjustMenuListStyle):
54584         (WebCore::RenderThemeQt::paintMenuList):
54585         (WebCore::RenderThemeQt::paintMenuListButton):
54586         (WebCore::RenderThemeQt::adjustMenuListButtonStyle):
54587         (WebCore::RenderThemeQt::paintSliderTrack):
54588         (WebCore::RenderThemeQt::paintSliderThumb):
54589         (WebCore::RenderThemeQt::paintSearchField):
54590         (WebCore::RenderThemeQt::adjustSearchFieldStyle):
54591         (WebCore::RenderThemeQt::adjustSearchFieldCancelButtonStyle):
54592         (WebCore::RenderThemeQt::paintSearchFieldCancelButton):
54593         (WebCore::RenderThemeQt::adjustSearchFieldDecorationStyle):
54594         (WebCore::RenderThemeQt::paintSearchFieldDecoration):
54595         (WebCore::RenderThemeQt::adjustSearchFieldResultsDecorationStyle):
54596         (WebCore::RenderThemeQt::paintSearchFieldResultsDecoration):
54597         (WebCore::RenderThemeQt::supportsFocus):
54598         (WebCore::RenderThemeQt::getStylePainterAndWidgetFromPaintInfo):
54599         (WebCore::RenderThemeQt::applyTheme):
54600         (WebCore::RenderThemeQt::setSizeFromFont):
54601         (WebCore::RenderThemeQt::sizeForFont):
54602         (WebCore::RenderThemeQt::setButtonPadding):
54603         (WebCore::RenderThemeQt::setPopupPadding):
54604         (WebCore::RenderThemeQt::setPrimitiveSize):
54605         * platform/qt/RenderThemeQt.h: Added.
54606
54607 2007-02-19  Lars Naesbye Christensen <lars@naesbye.dk>
54608
54609         Reviewed by Maciej.
54610
54611         http://bugs.webkit.org/show_bug.cgi?id=12815
54612         Two image files not included in project file
54613
54614         * WebCore.xcodeproj/project.pbxproj: Added crossHairCursor.png and
54615         notAllowedCursor.png.
54616
54617 2007-02-19  Geoffrey Garen  <ggaren@apple.com>
54618
54619         Reviewed by Adam Roben.
54620
54621         Fixed some leaks in RenderThemeMac.
54622         
54623         No test case because 'leaks' can't detect these leaks inside DRT, even if
54624         DRT forces the WebView to paint. ('leaks' can detect these leaks inside
54625         Safari. Weird.)
54626         
54627         * rendering/RenderThemeMac.h:
54628             - Renamed data members to m_*, to match our style guidelines.
54629             - Renamed *Is* to is**, to match our style guidelines.
54630             - Removed a few unnecessary data members.
54631             - Made cached values like m_checkbox mutable, since they can change
54632             inside functions that don't change the logical state of a RenderTheme
54633             object. (The alternative was to make some const functions non-const.)
54634
54635         (WebCore::RenderThemeMac::paintMenuList): Took CFType pointers that just 
54636         used to leak and placed them in RetainPtrs.
54637         (WebCore::RenderThemeMac::paintMenuListButtonGradients): ditto
54638
54639         Factored inline implementations of lazy initialization into these accessor
54640         functions, for better encapsulation:
54641         
54642         (WebCore::RenderThemeMac::checkbox):
54643         (WebCore::RenderThemeMac::radio):
54644         (WebCore::RenderThemeMac::button):
54645         (WebCore::RenderThemeMac::popupButton):
54646         (WebCore::RenderThemeMac::search):
54647         (WebCore::RenderThemeMac::sliderThumbHorizontal): The inline version of
54648         this initialization used to confuse the retained data member with a local
54649         stack value, causing both a leak and a failure to initialize. Fixed now.
54650         (WebCore::RenderThemeMac::sliderThumbVertical): ditto
54651         (WebCore::RenderThemeMac::resizeCornerImage):
54652
54653 2007-02-19  Mitz Pettel  <mitz@webkit.org>
54654
54655         Reviewed by Hyatt.
54656
54657         - fix http://bugs.webkit.org/show_bug.cgi?id=12817
54658           REGRESSION (r18634): Table border-collapse problems with right margin
54659
54660         Test: fast/repaint/table-outer-border.html
54661
54662         * rendering/RenderTable.cpp:
54663         (WebCore::RenderTable::layout): Reordered to initialize horizontal overflow
54664         after table sections have computed their outer horizontal borders.
54665
54666 2007-02-19  John Sullivan  <sullivan@apple.com>
54667
54668         Reviewed by Darin
54669         
54670         - fixed <rdar://problem/4613701> REGRESSION: A line break in the source HTML of a link becomes visible after drag & drop
54671
54672         * page/DragController.cpp:
54673         (WebCore::DragController::startDrag):
54674         Call simplifyWhiteSpace() on the proposed link title to match what's displayed on the web page, instead of using the
54675         raw source HTML text.
54676
54677 2007-02-19  David Hyatt  <hyatt@apple.com>
54678
54679         Fix for Radar 4981605, regression where button grows randomly when a select is
54680         opened.  With the new form controls, the WinIE quirk for using line width
54681         ended up being used for them more.
54682
54683         This patch removes the quirk after verifying that Firefox doesn't implement
54684         the quirk at all.  usesLineWidth is being renamed to shrinksToAvoidFloats to
54685         make it clear that the new method only applies to block objects that avoid floats
54686         and that have auto width.
54687
54688         Also fixed a regression where whitespace after a floating <select> at the start
54689         of a block got incorrectly rendered.  Make sure skipWhitespace always skips
54690         through floating/positioned elements regardless of the whitespace setting (this
54691         way the white-space:pre value on floating <select>s doesn't cause trouble).
54692
54693         Reviewed by darin
54694
54695         fast/block/float/float-avoidance.html
54696
54697         * rendering/RenderBlock.cpp:
54698         (WebCore::RenderBlock::collapseMargins):
54699         (WebCore::RenderBlock::clearFloatsIfNeeded):
54700         (WebCore::RenderBlock::layoutBlockChildren):
54701         (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
54702         * rendering/RenderBox.cpp:
54703         (WebCore::RenderBox::containingBlockWidth):
54704         * rendering/RenderObject.cpp:
54705         (WebCore::RenderObject::shrinkToAvoidFloats):
54706         * rendering/RenderObject.h:
54707         * rendering/bidi.cpp:
54708         (WebCore::RenderBlock::skipWhitespace):
54709
54710 2007-02-19  Zalan Bujtas  <zbujtas@gmail.com>
54711
54712         Reviewed by Darin.
54713
54714         Update stylesheet href, when document's baseUrl changes. It needs
54715         update when the stylesheet is constructed before the parser hits the base tag.
54716         http://bugs.webkit.org/show_bug.cgi?id=12214
54717
54718         * css/StyleSheet.h:
54719         (WebCore::StyleSheet::setHref):
54720         * dom/Document.cpp:
54721         (WebCore::Document::setBaseURL):
54722         * dom/Document.h:
54723
54724 2007-02-19  Mitz Pettel  <mitz@webkit.org>
54725
54726         Reviewed by Adam.
54727
54728         - fix http://bugs.webkit.org/show_bug.cgi?id=11518
54729           REGRESSION (r14376): View Source not available after Back navigation from a non-HTML page
54730
54731         The FrameLoader's responseMIMEType was not being updated when a page was
54732         brought back from the page cache.
54733         
54734         Moved the line that updates the MIME type from commitProvisionalLoad() to
54735         transitionToCommitted().
54736
54737         * loader/FrameLoader.cpp:
54738         (WebCore::FrameLoader::commitProvisionalLoad):
54739         (WebCore::FrameLoader::transitionToCommitted):
54740
54741 2007-02-19  Anders Carlsson  <acarlsson@apple.com>
54742
54743         Reviewed by Oliver.
54744
54745         Make DragController::maxDragImageSize a function to get rid of the global initializer.
54746         
54747         * page/DragController.cpp:
54748         (WebCore::DragController::doImageDrag):
54749         * page/DragController.h:
54750         * page/mac/DragControllerMac.mm:
54751         (WebCore::DragController::maxDragImageSize):
54752         * page/qt/DragControllerQt.cpp:
54753         (WebCore::DragController::maxDragImageSize):
54754
54755 2007-02-19  Darin Adler  <darin@apple.com>
54756
54757         Reviewed by Hyatt.
54758
54759         - <rdar://problem/5006414> REGRESSION: Crash occurs at WebCore::Frame::loader()
54760           when loading AFL Ladder widget
54761
54762         * html/HTMLFrameElementBase.cpp: (WebCore::HTMLFrameElementBase::openURL):
54763         Add missing null check so this fails without crashing when called on an element
54764         that's no longer in a frame.
54765
54766 2007-02-19  Antti Koivisto  <antti@apple.com>
54767
54768         Reviewed by Mitz.
54769
54770         - fix for http://bugs.webkit.org/show_bug.cgi?id=10990
54771           REGRESSION: Pressing a pop-up's access key doesn't focus it
54772           <rdar://problem/4823138>
54773           
54774         Focus the select element too in accessKeyAction.
54775
54776         * html/HTMLSelectElement.cpp:
54777         (WebCore::HTMLSelectElement::accessKeyAction):
54778
54779 2007-02-18  Antti Koivisto  <antti@apple.com>
54780
54781         Reviewed by Hyatt.
54782
54783         - really fix http://bugs.webkit.org/show_bug.cgi?id=11974
54784         REGRESSION: Caret drawn over input when smaller than font size on initial focus
54785         <rdar://problem/4960258>
54786         
54787         Avoid double painting caret when it is on a block element.
54788         
54789         Layout test for this already went in previous try (it only fails in pixel mode) in r19626.
54790
54791         * rendering/RenderBlock.cpp:
54792         (WebCore::RenderBlock::paintCaret):
54793
54794 2007-02-19  Lars Knoll <lars@trolltech.com>
54795
54796         Added a one line patch from Olliej to create the
54797         clipboard on demand (to stop things from crashing), 
54798         and added lots of notImplemented() warnings all 
54799         over the place.
54800
54801         * platform/qt/ClipboardQt.cpp:
54802         (WebCore::ClipboardQt::ClipboardQt):
54803         (WebCore::ClipboardQt::clearData):
54804         (WebCore::ClipboardQt::clearAllData):
54805         (WebCore::ClipboardQt::getData):
54806         (WebCore::ClipboardQt::setData):
54807         (WebCore::ClipboardQt::types):
54808         (WebCore::ClipboardQt::dragLocation):
54809         (WebCore::ClipboardQt::dragImage):
54810         (WebCore::ClipboardQt::setDragImage):
54811         (WebCore::ClipboardQt::dragImageElement):
54812         (WebCore::ClipboardQt::setDragImageElement):
54813         (WebCore::ClipboardQt::createDragImage):
54814         (WebCore::ClipboardQt::declareAndWriteDragImage):
54815         (WebCore::ClipboardQt::writeURL):
54816         (WebCore::ClipboardQt::writeRange):
54817         (WebCore::ClipboardQt::hasData):
54818         * platform/qt/DragDataQt.cpp:
54819         (WebCore::DragData::canSmartReplace):
54820         (WebCore::DragData::containsColor):
54821         (WebCore::DragData::containsPlainText):
54822         (WebCore::DragData::asPlainText):
54823         (WebCore::DragData::asColor):
54824         (WebCore::DragData::createClipboard):
54825         (WebCore::DragData::containsCompatibleContent):
54826         (WebCore::DragData::containsURL):
54827         (WebCore::DragData::asURL):
54828         (WebCore::DragData::asFragment):
54829
54830 2007-02-19  Lars Knoll <lars@trolltech.com>
54831
54832         Compile again.
54833
54834         * platform/qt/ClipboardQt.cpp:
54835         (WebCore::ClipboardQt::types):
54836
54837 2007-02-17  Lars Knoll <lars@trolltech.com>
54838
54839         Reviewed by Maciej.
54840         
54841         Additional coding by Maciej, additional review by Oliver.
54842
54843         Get rid of the FrameMac and FrameQt classes. Instead
54844         move all methods into Frame directly, and implement
54845         some platform specific methods in foo/FrameFoo.cpp.
54846
54847         Some general cleanup in Frame:
54848         * Move some methods out of Frame, to the place where they 
54849         belong.
54850         * Unify the different ways of creating the JavaScript wrappers
54851         for <object>, <embed> and <applet>
54852         * Some cleanup of the WebCoreFrameBridge
54853
54854         * ForwardingHeaders/bindings/NP_jsobject.h: Added.
54855         * ForwardingHeaders/bindings/npruntime_impl.h: Added.
54856         * ForwardingHeaders/bindings/runtime_root.h: Added.
54857         * WebCore.exp:
54858         * WebCore.xcodeproj/project.pbxproj:
54859         * bindings/js/kjs_binding.cpp:
54860         (KJS::ScriptInterpreter::shouldInterruptScript):
54861         * bindings/objc/DOM.mm:
54862         (-[DOMNode KJS::Bindings::]):
54863         * bindings/objc/DOMInternal.mm:
54864         (-[WebScriptObject _initializeScriptDOMNodeImp]):
54865         * bridge/EditorClient.h:
54866         * bridge/mac/FrameViewMac.mm:
54867         (WebCore::FrameView::updateBorder):
54868         (WebCore::FrameView::updateDashboardRegions):
54869         * bridge/mac/WebCoreAXObject.mm:
54870         (-[WebCoreAXObject rendererForView:]):
54871         * dom/Position.cpp:
54872         (WebCore::Position::next):
54873         * editing/CommandByName.cpp:
54874         (WebCore::Frame::execCopy):
54875         (WebCore::Frame::execCut):
54876         (WebCore::Frame::execPaste):
54877         * editing/Editor.cpp:
54878         (WebCore::Editor::canEdit):
54879         (WebCore::Editor::pasteWithPasteboard):
54880         (WebCore::Editor::paste):
54881         (WebCore::Editor::pasteAsPlainText):
54882         * editing/Editor.h:
54883         * editing/JSEditor.cpp:
54884         * html/HTMLAppletElement.cpp:
54885         (WebCore::HTMLAppletElement::getInstance):
54886         * html/HTMLEmbedElement.cpp:
54887         (WebCore::HTMLEmbedElement::getInstance):
54888         * html/HTMLFormElement.cpp:
54889         (WebCore::HTMLFormElement::formData):
54890         * html/HTMLObjectElement.cpp:
54891         (WebCore::HTMLObjectElement::getInstance):
54892         * loader/FrameLoader.cpp:
54893         (WebCore::FrameLoader::clear):
54894         (WebCore::FrameLoader::detachFromParent):
54895         * loader/mac/ImageDocumentMac.mm:
54896         (WebCore::finishImageLoad):
54897         * loader/qt/DocumentLoaderQt.cpp:
54898         * page/Chrome.cpp:
54899         (WebCore::Chrome::shouldInterruptJavaScript):
54900         * page/Chrome.h:
54901         * page/ChromeClient.h:
54902         * page/Frame.cpp:
54903         (WebCore::Frame::~Frame):
54904         (WebCore::Frame::markedTextRange):
54905         (WebCore::Frame::shouldChangeSelection):
54906         (WebCore::Frame::shouldDeleteSelection):
54907         (WebCore::Frame::isContentEditable):
54908         (WebCore::Frame::setSecureKeyboardEntry):
54909         (WebCore::Frame::isSecureKeyboardEntry):
54910         (WebCore::Frame::bindingRootObject):
54911         (WebCore::Frame::createRootObject):
54912         (WebCore::Frame::windowScriptNPObject):
54913         (WebCore::Frame::cleanupScriptObjects):
54914         (WebCore::FramePrivate::FramePrivate):
54915         * page/Frame.h:
54916         * page/FramePrivate.h:
54917         * page/FrameView.h:
54918         * page/mac/EventHandlerMac.mm:
54919         (WebCore::EventHandler::tabsToLinks):
54920         (WebCore::EventHandler::tabsToAllControls):
54921         (WebCore::EventHandler::focusDocumentView):
54922         (WebCore::EventHandler::passMouseDownEventToWidget):
54923         (WebCore::EventHandler::handleDrag):
54924         (WebCore::EventHandler::sendFakeEventsAfterWidgetTracking):
54925         (WebCore::EventHandler::keyboardUIMode):
54926         * page/mac/FrameMac.h: Removed.
54927         * page/mac/FrameMac.mm:
54928         (WebCore::Frame::setBridge):
54929         (WebCore::Frame::bridge):
54930         (WebCore::Frame::searchForLabelsAboveCell):
54931         (WebCore::Frame::searchForLabelsBeforeElement):
54932         (WebCore::Frame::matchLabelsAgainstElement):
54933         (WebCore::Frame::focusWindow):
54934         (WebCore::Frame::unfocusWindow):
54935         (WebCore::Frame::imageFromRect):
54936         (WebCore::Frame::selectionImage):
54937         (WebCore::Frame::snapshotDragImage):
54938         (WebCore::Frame::fontAttributesForSelectionStart):
54939         (WebCore::Frame::baseWritingDirectionForSelectionStart):
54940         (WebCore::Frame::print):
54941         (WebCore::Frame::issuePasteCommand):
54942         (WebCore::Frame::issueTransposeCommand):
54943         (WebCore::Frame::respondToChangedSelection):
54944         (WebCore::Frame::textFieldDidBeginEditing):
54945         (WebCore::Frame::textFieldDidEndEditing):
54946         (WebCore::Frame::textDidChangeInTextField):
54947         (WebCore::Frame::textDidChangeInTextArea):
54948         (WebCore::Frame::doTextFieldCommandFromEvent):
54949         (WebCore::Frame::textWillBeDeletedInTextField):
54950         (WebCore::Frame::setSecureKeyboardEntry):
54951         (WebCore::Frame::isSecureKeyboardEntry):
54952         (WebCore::Frame::setMarkedTextRange):
54953         (WebCore::Frame::dashboardRegionsDictionary):
54954         (WebCore::Frame::dashboardRegionsChanged):
54955         (WebCore::Frame::willPopupMenu):
54956         (WebCore::Frame::isCharacterSmartReplaceExempt):
54957         (WebCore::Frame::setNeedsReapplyStyles):
54958         (WebCore::Frame::customHighlightLineRect):
54959         (WebCore::Frame::paintCustomHighlight):
54960         (WebCore::Frame::createScriptInstanceForWidget):
54961         (WebCore::Frame::windowScriptObject):
54962         (WebCore::Frame::cleanupPlatformScriptObjects):
54963         * page/mac/WebCoreFrameBridge.h:
54964         * page/mac/WebCoreFrameBridge.mm:
54965         (createRootObject):
54966         (bridge):
54967         (-[WebCoreFrameBridge _frame]):
54968         * page/qt/EventHandlerQt.cpp:
54969         * page/qt/FrameQt.cpp:
54970         (WebCore::Frame::unfocusWindow):
54971         (WebCore::Frame::focusWindow):
54972         (WebCore::Frame::issueTransposeCommand):
54973         (WebCore::Frame::respondToChangedSelection):
54974         (WebCore::Frame::print):
54975         (WebCore::Frame::createScriptInstanceForWidget):
54976         (WebCore::Frame::cleanupPlatformScriptObjects):
54977         (WebCore::Frame::isCharacterSmartReplaceExempt):
54978         * page/qt/FrameQt.h: Removed.
54979         * platform/MimeTypeRegistry.h:
54980         * platform/graphics/svg/SVGImage.cpp:
54981         (WebCore::SVGImage::setData):
54982         * platform/graphics/svg/SVGImageEmptyClients.h:
54983         (WebCore::SVGEmptyChromeClient::shouldInterruptJavaScript):
54984         (WebCore::SVGEmptyEditorClient::shouldChangeSelectedRange):
54985         * platform/mac/ClipboardMac.h:
54986         * platform/mac/ClipboardMac.mm:
54987         (WebCore::ClipboardMac::ClipboardMac):
54988         * platform/mac/FileChooserMac.mm:
54989         (-[OpenPanelController beginSheetWithFrame:]):
54990         * platform/mac/MimeTypeRegistryMac.mm:
54991         (WebCore::MimeTypeRegistry::getMIMETypeForPath):
54992         * platform/mac/PopupMenuMac.mm:
54993         (WebCore::PopupMenu::show):
54994         * platform/mac/WidgetMac.mm:
54995         (WebCore::Widget::setFocus):
54996         (WebCore::Widget::setIsSelected):
54997         * platform/network/mac/ResourceHandleMac.mm:
54998         * platform/network/qt/ResourceHandleManagerQt.cpp:
54999         * platform/network/qt/ResourceHandleQt.cpp:
55000         (WebCore::ResourceHandle::start):
55001         * platform/qt/MimeTypeRegistryQt.cpp:
55002         (WebCore::MimeTypeRegistry::getMIMETypeForPath):
55003         * platform/qt/PopupMenuQt.cpp:
55004         * platform/qt/ScrollViewCanvasQt.cpp:
55005         * platform/qt/ScrollViewQt.cpp:
55006         * platform/win/TemporaryLinkStubs.cpp:
55007         * rendering/InlineTextBox.cpp:
55008         (WebCore::InlineTextBox::paintCustomHighlight):
55009         * rendering/RenderBox.cpp:
55010         (WebCore::RenderBox::paintCustomHighlight):
55011         * rendering/RootInlineBox.cpp:
55012         (WebCore::RootInlineBox::addHighlightOverflow):
55013         (WebCore::RootInlineBox::paintCustomHighlight):
55014
55015 2007-02-18  Oliver Hunt  <oliver@apple.com>
55016
55017         Reviewed by NOBODY (Buildfix).
55018
55019         Oops, missed a 'const'
55020
55021         * platform/qt/ClipboardQt.h:
55022
55023 2007-02-18  Oliver Hunt  <oliver@apple.com>
55024
55025         Reviewed by Adam.
55026
55027         Adding stubbed out implementation of Clipboard for Qt to stop
55028         it crashing whenever someone drags the mouse.
55029
55030         * WebCore.pro:
55031         * page/qt/EventHandlerQt.cpp:
55032         (WebCore::EventHandler::createDraggingClipboard):
55033         * platform/qt/ClipboardQt.cpp: Added.
55034         (WebCore::ClipboardQt::ClipboardQt):
55035         (WebCore::ClipboardQt::clearData):
55036         (WebCore::ClipboardQt::clearAllData):
55037         (WebCore::ClipboardQt::getData):
55038         (WebCore::ClipboardQt::setData):
55039         (WebCore::ClipboardQt::types):
55040         (WebCore::ClipboardQt::dragLocation):
55041         (WebCore::ClipboardQt::dragImage):
55042         (WebCore::ClipboardQt::setDragImage):
55043         (WebCore::ClipboardQt::dragImageElement):
55044         (WebCore::ClipboardQt::setDragImageElement):
55045         (WebCore::ClipboardQt::createDragImage):
55046         (WebCore::ClipboardQt::declareAndWriteDragImage):
55047         (WebCore::ClipboardQt::writeURL):
55048         (WebCore::ClipboardQt::writeRange):
55049         (WebCore::ClipboardQt::hasData):
55050         * platform/qt/ClipboardQt.h: Added.
55051         (WebCore::ClipboardQt::~ClipboardQt):
55052         (WebCore::ClipboardQt::isForDragging):
55053
55054 2007-02-18  Oliver Hunt  <oliver@apple.com>
55055
55056         Reviewed by Adam.
55057
55058         Don't even attempt to do a document based drag if there isn't a document
55059         Fixes rdar://problem/4960109
55060
55061         * page/DragController.cpp:
55062         (WebCore::DragController::tryDocumentDrag):  
55063            Null check m_document
55064         (WebCore::DragController::tryDHTMLDrag):
55065            ASSERT(m_document) -- tryDocumentDrag is the only 
55066            thing that will ever call us, but lets play it safe
55067
55068 2007-02-18  Adam Roben  <aroben@apple.com>
55069
55070         Reviewed by Hyatt.
55071
55072         A little preparation for <rdar://problem/5006872>.
55073
55074         * platform/PopupMenu.h:
55075
55076 2007-02-18  Alexey Proskuryakov  <ap@webkit.org>
55077
55078         Reviewed by Adele.
55079
55080         http://bugs.webkit.org/show_bug.cgi?id=12807
55081         XPath incorrectly converts NaN to boolean
55082
55083         Test: fast/xpath/nan-to-boolean.html
55084
55085         * xml/XPathValue.cpp:
55086         (WebCore::XPath::Value::toBoolean): Convert NaN to false.
55087         * xml/XPathFunctions.cpp:
55088         (WebCore::XPath::FunSubstringAfter::doEvaluate): Fix substring-after to actually work.
55089
55090 2007-02-18  Mitz Pettel  <mitz@webkit.org>
55091
55092         Reviewed by Hyatt.
55093
55094         - fix http://bugs.webkit.org/show_bug.cgi?id=12123
55095           REGRESSION: Incomplete repaint of floats' overflows
55096
55097         Tests: fast/repaint/float-overflow.html
55098                fast/repaint/float-overflow-right.html
55099                fast/repaint/table-cell-vertical-overflow.html
55100
55101         - fix http://bugs.webkit.org/show_bug.cgi?id=10116
55102           REGRESSION: Menu item drawn 2 pixels short on WWDC 2006 Attendee Site
55103
55104         Reflected in existing test results.
55105
55106         Unified floats and overflow for the purposes of painting and hit-testing.
55107         Overhanging and overflowing floats are now factored into a block's overflow
55108         unless their painting has been propagated to an ancestor.
55109
55110         Changed table cells to no longer expand to enclose overflow, thus making
55111         it purely "visual overflow", having no effect on layout in WebCore. It
55112         still determines scrolling dimensions.
55113
55114         * rendering/InlineFlowBox.cpp:
55115         (WebCore::InlineFlowBox::placeBoxesHorizontally): Include inline blocks'
55116         horizontal overflow in the inline box's dimensions.
55117         * rendering/RenderBlock.cpp:
55118         (WebCore::RenderBlock::layoutBlock): Removed the expand to enclose overflows
55119         behavior. Added code to add this block's floats (and their overflow) to its
55120         overflow rect if it is not in a block formatting context. Otherwise, the
55121         inclusion of floats in the overflow is deferred until this block's parent
55122         examines its floats and possibly adopts overhanging floats.
55123         (WebCore::RenderBlock::layoutBlockChildren):
55124         (WebCore::RenderBlock::paint): 
55125         (WebCore::RenderBlock::floatRect): Made non-virtual and changed to return an empty
55126         rect if there are no floats or the floats are clipped, instead of returning the border
55127         box.
55128         (WebCore::RenderBlock::addOverhangingFloats): Any floats of the child that
55129         are not to be painted by the parent are added to the child's overflow rect.
55130         (WebCore::RenderBlock::addVisualOverflow): Added. Adjusts the overflow
55131         bounds to include the given rect.
55132         (WebCore::RenderBlock::nodeAtPoint):
55133         * rendering/RenderBlock.h:
55134         * rendering/RenderFlexibleBox.cpp:
55135         (WebCore::RenderFlexibleBox::layoutBlock): 
55136         (WebCore::RenderFlexibleBox::layoutHorizontalBox): After placing a normal
55137         child, add its floats to its overflow, since painting of floats does not
55138         propagate to flexible boxes. 
55139         (WebCore::RenderFlexibleBox::layoutVerticalBox): Ditto.
55140         * rendering/RenderForeignObject.cpp:
55141         (WebCore::RenderForeignObject::layout):
55142         * rendering/RenderHTMLCanvas.cpp:
55143         (WebCore::RenderHTMLCanvas::layout):
55144         * rendering/RenderImage.cpp:
55145         (WebCore::RenderImage::layout):
55146         * rendering/RenderLayer.cpp:
55147         (WebCore::RenderLayer::updateLayerPositions):
55148         (WebCore::RenderLayer::absoluteBoundingBox):
55149         * rendering/RenderLayer.h:
55150         * rendering/RenderObject.cpp:
55151         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
55152         * rendering/RenderObject.h:
55153         (WebCore::RenderObject::expandsToEncloseOverhangingFloats):
55154         * rendering/RenderPath.cpp:
55155         (WebCore::RenderPath::layout):
55156         * rendering/RenderSVGContainer.cpp:
55157         (WebCore::RenderSVGContainer::layout):
55158         * rendering/RenderSVGText.cpp:
55159         (WebCore::RenderSVGText::layout):
55160         * rendering/RenderTable.h: Removed the override of overflowHeight() since now tables can have
55161         vertical overflow.
55162         * rendering/RenderTableCell.cpp:
55163         (WebCore::RenderTableCell::paint): Made sure that overflow is repainted.
55164         * rendering/RenderTableCell.h:
55165         (WebCore::RenderTableCell::expandsToEncloseOverhangingFloats): Removed.
55166         * rendering/RenderTableSection.cpp:
55167         (WebCore::RenderTableSection::RenderTableSection):
55168         (WebCore::RenderTableSection::layoutRows): Factor in vertical overflow from cells.
55169         (WebCore::RenderTableSection::paint):
55170         * rendering/RenderTableSection.h:
55171         (WebCore::RenderTableSection::overflowHeight):
55172         (WebCore::RenderTableSection::overflowTop):
55173
55174 2007-02-18  Oliver Hunt  <oliver@apple.com>
55175
55176         Reviewed by NOBODY (Buildfix).
55177
55178         Build fix for the build fix -- can't call something that isn't a function
55179
55180         * platform/qt/CursorQt.cpp:
55181         (WebCore::notAllowedCursor):
55182
55183 2007-02-18  Oliver Hunt  <oliver@apple.com>
55184
55185         Reviewed by NOBODY (Build fix).
55186
55187         Adding platform/DragImage.cpp and platform/qt/DragImageQt.cpp to the Qt
55188         project files
55189
55190         Stubbed method for WebCore::notAllowedCursor -- not sure what it should return, 
55191         have returned blank cursor, possibly needs to return something else
55192
55193         * WebCore.pro:
55194         * platform/qt/CursorQt.cpp:
55195         (WebCore::notAllowedCursor):
55196
55197 2007-02-18  Oliver Hunt  <oliver@apple.com>
55198
55199         Reviewed by NOBODY (Buildfix).
55200
55201         Sigh, obnoxious occasional auto conversion from float to int
55202
55203         * platform/mac/ClipboardMac.mm:
55204         (WebCore::ClipboardMac::createDragImage):
55205
55206 2007-02-18  Alexey Proskuryakov  <ap@webkit.org>
55207
55208         Reviewed by Hyatt.
55209
55210         http://bugs.webkit.org/show_bug.cgi?id=12799
55211         REGRESSION: Webpage doesn't load correctly (www.cincinnati.com
55212         redirects to the wrong URL)
55213
55214         Test: http/tests/misc/refresh-meta-with-newline.html
55215
55216         * platform/network/HTTPParsers.cpp:
55217         (WebCore::skipWhiteSpace):
55218         (WebCore::parseHTTPRefresh):
55219         * platform/network/HTTPParsers.h:
55220         In HTML, all characters with codes <= 0x20 are whitespace, while in
55221         HTTP, only space and tab are such.
55222
55223         * dom/Document.cpp:
55224         (WebCore::Document::processHttpEquiv):
55225         * loader/FrameLoader.cpp:
55226         (WebCore::FrameLoader::receivedFirstData):
55227         Pass parseHTTPRefresh() a flag telling about the source of data.
55228
55229 2007-02-18  Oliver Hunt  <oliver@apple.com>
55230
55231         Reviewed by NOBODY (Build fix).
55232
55233         Buld fix -- surprisingly RetainPtr doesn't exist on Qt
55234
55235         * platform/DragImage.h:
55236
55237 2007-02-18  Oliver Hunt  <oliver@apple.com>
55238
55239         Reviewed by Adam.
55240
55241         More drag and drop migration, now the entirety of the
55242         drag initiation logic has been rendered platform independent
55243         This has required a number of new interfaces, and a reasonable
55244         amount of logic migration.
55245
55246         As a side effect, this patch also fixes rdar://problem/4945341
55247
55248         There are some basic Qt stubs that should stop the build from failing,
55249         however the absence of ClipboardQt means any attempt to initiate a drag 
55250         may cause a crash.
55251
55252         * WebCore.exp:
55253            Exporting new symbols
55254
55255         * WebCore.xcodeproj/project.pbxproj:
55256            New files
55257
55258         * dom/Clipboard.cpp:
55259         (WebCore::Clipboard::canSaveAsWebArchive):
55260           Migrated from WebKit
55261
55262         * dom/Clipboard.h:
55263           Added more methods to allow Clipboard to be used as a 
55264           platform independent container for drag and drop
55265
55266         * page/DragClient.h:
55267         (WebCore::DragClient::declareAndWriteDragImage):
55268           This is a mac only helper function, so i've made it have an empty implementation,
55269           that way we won't need a PLATFORM(MAC) block in SVGImageEmptyClients
55270
55271         * page/DragController.cpp:
55272         (WebCore::DragController::dragExited):
55273         (WebCore::DragController::performDrag):
55274         (WebCore::DragController::tryDocumentDrag): 
55275         (WebCore::DragController::tryDHTMLDrag):
55276           Using RefPtrs now
55277         (WebCore::getCachedImage):
55278         (WebCore::getImage):
55279           Helper functions                   
55280         (WebCore::dragLocForDHTMLDrag):
55281         (WebCore::dragLocForSelectionDrag):
55282         (WebCore::DragController::startDrag):
55283         (WebCore::DragController::doImageDrag):
55284         (WebCore::DragController::doSystemDrag):
55285           Logic that generates drag images and clipboard content, and
55286           initiates the actual system drag operation
55287
55288         * page/DragController.h:
55289           Method and variable declarations
55290
55291         * page/EventHandler.cpp:
55292         (WebCore::EventHandler::handleDrag):
55293           handleDrag is now platform independent
55294         (WebCore::EventHandler::handleTextInputEvent):
55295            formatting
55296
55297         * page/EventHandler.h:
55298         (WebCore::EventHandler::eventLoopHandleMouseDragged):
55299           Forgot to define this stub function 
55300
55301         * page/Frame.h:
55302           Declaring dragImageForSelection to provide drag image for selected content
55303
55304         * page/mac/DragControllerMac.mm:
55305           Defining drag images control vars
55306
55307         * page/mac/EventHandlerMac.mm:
55308         (WebCore::EventHandler::createDraggingClipboard):
55309           Migrated old clipboard creation to here
55310
55311         * page/mac/FrameMac.mm:
55312         (WebCore::Frame::dragImageForSelection):
55313           Wrap FrameMac::selectionImage
55314
55315         * page/qt/DragControllerQt.cpp:
55316           Defining drag images control vars
55317
55318         * page/qt/EventHandlerQt.cpp:
55319         (WebCore::EventHandler::createDraggingClipboard):
55320           stub
55321
55322         * page/qt/FrameQt.cpp:
55323         (WebCore::Frame::dragImageForSelection):
55324           stub
55325
55326         * platform/DragImage.cpp: Added.
55327         (WebCore::fitDragImageToMaxSize):
55328         (WebCore::createDragImageForSelection):
55329            Platform independent processing for drag images
55330
55331         * platform/DragImage.h: Added.
55332            Declaring typedefs and wrapper functions to abstract the handling
55333            of drag images 
55334
55335         * platform/Pasteboard.h:
55336           Declaring extracted writeURL and writeSelection methods
55337
55338         * platform/graphics/svg/SVGImageEmptyClients.h:
55339         (WebCore::SVGEmptyDragClient::willPerformDragSourceAction):
55340         (WebCore::SVGEmptyDragClient::startDrag):
55341         (WebCore::SVGEmptyDragClient::createDragImageForLink):
55342           Stubs FTW!
55343
55344         * platform/mac/ClipboardMac.h:
55345         (WebCore::ClipboardMac::pasteboard):
55346           Provide accessor for underlying NSPasteboard
55347
55348         * platform/mac/ClipboardMac.mm:
55349         (WebCore::ClipboardMac::hasData):
55350         (WebCore::ClipboardMac::writeRange):
55351         (WebCore::ClipboardMac::writeURL):
55352         (WebCore::ClipboardMac::declareAndWriteDragImage):
55353         (WebCore::ClipboardMac::createDragImage):
55354            Implemented new Clipboarid functionality.
55355         (WebCore::ClipboardMac::dragNSImage):
55356            Made this a const method
55357
55358         * platform/mac/DragImageMac.mm: Added.
55359         (WebCore::dragImageSize):
55360         (WebCore::deleteDragImage):
55361         (WebCore::scaleDragImage):
55362         (WebCore::dissolveDragImageToFraction):
55363         (WebCore::createDragImageFromImage):
55364         (WebCore::createDragImageIconForCachedImage):
55365            Implemented platform specific DragImage functions
55366
55367         * platform/mac/PasteboardMac.mm:
55368         (WebCore::writeSelection):
55369         (WebCore::Pasteboard::writeSelection):
55370         (WebCore::writeURL):
55371         (WebCore::Pasteboard::writeURL):
55372            Extracted member implementations of these functions, so that
55373            Clipboard could also make use of this functionality.
55374            Pasteboard methods now call the new non-member implementations.
55375            Also fixed implementations to respect the list of requested types.
55376
55377         * platform/qt/DragImageQt.cpp: Added.
55378         (WebCore::dragImageSize):
55379         (WebCore::deleteDragImage):
55380         (WebCore::scaleDragImage):
55381         (WebCore::dissolveDragImageToFraction):
55382         (WebCore::createDragImageFromImage):
55383         (WebCore::createDragImageIconForCachedImage):  
55384           Stubs
55385
55386 2007-02-17  David Hyatt  <hyatt@apple.com>
55387
55388         Fix textarea resizers to not fill with black by making sure the fill color starts off as
55389         transparent instead of black.
55390
55391         Reviewed by aroben
55392
55393         * platform/graphics/GraphicsContext.cpp:
55394         (WebCore::GraphicsContextState::GraphicsContextState):
55395
55396 2007-02-17  Lars Knoll <lars@trolltech.com>
55397
55398         Reviewed by Adam.
55399
55400         fix http://bugs.webkit.org/show_bug.cgi?id=11476
55401         <rdar://problem/4960247> REGRESSION: Nesting the IMG tag inside of a
55402         MAP fails to render correctly in ToT
55403
55404         Test: fast/images/image-in-map.html
55405
55406         * html/HTMLMapElement.cpp:
55407         (WebCore::HTMLMapElement::checkDTD):
55408
55409 2007-02-17  Alexey Proskuryakov  <ap@webkit.org>
55410
55411         Reviewed by Maciej.
55412
55413         http://bugs.webkit.org/show_bug.cgi?id=12733
55414         XPath namespace is attached to a wrong step
55415
55416         * xml/XPathGrammar.y: NAMETEST is different from other NodeTests in that its
55417         resulting type is an expanded name, rather than a string. It is not really possible 
55418         to store the namespace inside Parser, because it gets used in wrong steps then.
55419
55420         * xml/XPathParser.cpp:
55421         (WebCore::XPath::Parser::expandQName):
55422         * xml/XPathParser.h:
55423         Moved code that expands a QName from XPathGrammar.y. Removed m_currentNamespaceURI.
55424
55425         * xml/XPathStep.cpp:
55426         (WebCore::XPath::Step::Step):
55427         * xml/XPathStep.h:
55428         Added a constructor that takes a namespace.
55429
55430 2007-02-17  Mitz Pettel  <mitz@webkit.org>
55431
55432         Reviewed by Maciej.
55433
55434         - fix http://bugs.webkit.org/show_bug.cgi?id=12479
55435           ASSERTION FAILURE: resource->inCache() in WebCore::Cache::remove
55436
55437         Test: fast/loader/simultaneous-reloads-assert.html
55438
55439         * loader/Cache.cpp:
55440         (WebCore::Cache::remove): Replaced the assertion with a check whether the
55441         resource is in the cache. The resource could have been removed from the cache
55442         as a result of a reload occurring simultaneously in a different document.
55443
55444 2007-02-12  Lars Naesbye Christensen  <lars@naesbye.dk>
55445
55446         Reviewed by Adam.
55447
55448         Fix for http://bugs.webkit.org/show_bug.cgi?id=12711
55449         Prettier and more distinct cursors
55450
55451         * Resources/crossHairCursor.png: Added.
55452         * Resources/northEastSouthWestResizeCursor.png:
55453         * Resources/northWestSouthEastResizeCursor.png:
55454         * Resources/notAllowedCursor.png: Added.
55455         * page/EventHandler.cpp: (WebCore::selectCursor):
55456         * platform/Cursor.h:
55457         * platform/mac/CursorMac.mm:
55458         (WebCore::crossCursor):
55459         (WebCore::notAllowedCursor):
55460
55461 2007-02-16  Mitz Pettel  <mitz@webkit.org>
55462
55463         Reviewed by Darin.
55464
55465         - fix http://bugs.webkit.org/show_bug.cgi?id=12780
55466           REGRESSION (r19341-r19385): Reproducible crash in "onselectstart" event
55467
55468         Test: fast/events/shadow-boundary-crossing.html
55469
55470         * dom/EventTargetNode.cpp:
55471         (WebCore::EventTargetNode::dispatchGenericEvent): Changed to use the new
55472         eventParentNode() function for constructing the chain of ancestors for
55473         capture and bubbling.
55474         * dom/Node.h:
55475         (WebCore::Node::eventParentNode): Added. Returns the node's parent for the
55476         purpose of of event capture and bubbling. The base class implementation is
55477         to return the parent node.
55478         * ksvg2/svg/SVGElement.h:
55479         (WebCore::SVGElement::eventParentNode): Added. Since in SVG events bubble
55480         to and can be captured across the shadow DOM boundary, returns the shadow parent
55481         for shadow nodes.
55482
55483 2007-02-17  Dave Hyatt <hyatt@apple.com>
55484
55485         Change how textarea resizers paint to more closely match the way the main window resizer paints.
55486         
55487         Reviewed by olliej
55488
55489         * rendering/RenderLayer.cpp:
55490         (WebCore::RenderLayer::paintOverflowControls):
55491
55492 2007-02-17  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
55493
55494         Reviewed by Adam Roben.
55495
55496         Fix crashes on ARM due to different struct packing. Based on a patch
55497         from Mike Emmel.
55498
55499         * platform/DeprecatedString.cpp: compile-time assert to make sure sizeof(DeprecatedChar) == 2
55500         * platform/DeprecatedString.h: pack DeprecatedChar struct to ensure that
55501         sizeof(DeprecatedChar) == 2. Move _internalBuffer in DeprecatedStringData
55502         to the end, to avoid crashes on ARM due to different struct packing.
55503
55504 2007-02-16  Adele Peterson  <adele@apple.com>
55505
55506         Reviewed by Mitz.
55507
55508         Fix for http://bugs.webkit.org/show_bug.cgi?id=11534
55509         <rdar://problem/4946947> REGRESSION: Readonly text fields don't scroll when selecting content
55510
55511         Test: fast/forms/input-readonly-autoscroll.html
55512
55513         Implemented autoscroll methods for RenderTextControl, so this works on non-editable text controls.
55514
55515         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::autoscroll):
55516         * rendering/RenderTextControl.h: (WebCore::RenderTextControl::shouldAutoscroll):
55517
55518 2007-02-17  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
55519
55520         Reviewed by Adam Roben.
55521
55522         Curl networking improvements inspired by Mike Emmel's patches in
55523         http://bugs.webkit.org/show_bug.cgi?id=11332.
55524         Fix FrameLoaderClientGdk due to changed FrameLoaderClient API.
55525
55526         * loader/gdk/FrameLoaderClientGdk.cpp: Massage for changed API.
55527         (WebCore::FrameLoaderClientGdk::saveViewStateToItem):
55528         (WebCore::FrameLoaderClientGdk::restoreViewState):
55529         (WebCore::FrameLoaderClientGdk::generatedMIMETypeForURLScheme):
55530         (WebCore::FrameLoaderClientGdk::willUseArchive):
55531         * loader/gdk/FrameLoaderClientGdk.h: Ditto.
55532         * platform/network/ResourceHandleInternal.h: Remember url and custom headers
55533         for the request lifetime and free them at the end.
55534         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
55535         * platform/network/gdk/ResourceHandleCurl.cpp: Ditto.
55536         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
55537         * platform/network/gdk/ResourceHandleManager.cpp: url improvements:
55538         - remove m_useSimple code-path since it wasn't used anywhere
55539         - don't use hashmap for keeping track of outstanding jobs - curl does it anyway
55540         - set custom headers from request
55541         - enable gzip and deflate through Accept-Encoding
55542         - setup curl to share cookies and DNS cache between requests
55543         - enable persisting of cookies in a file (if client provides file name
55544           for cookies via ResourceHandleManager::setCookieJarFileName())
55545         (WebCore::ResourceHandleManager::ResourceHandleManager):
55546         (WebCore::ResourceHandleManager::setCookieJarFileName):
55547         (WebCore::ResourceHandleManager::downloadTimerCallback):
55548         (WebCore::ResourceHandleManager::removeFromCurl):
55549         (WebCore::ResourceHandleManager::setupPUT):
55550         (WebCore::ResourceHandleManager::setupPOST):
55551         (WebCore::ResourceHandleManager::add):
55552         (WebCore::ResourceHandleManager::cancel):
55553         * platform/network/gdk/ResourceHandleManager.h:
55554
55555 2007-02-17  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
55556
55557         Reviewed by Adam Roben.
55558
55559         Gdk fixes.
55560
55561         * page/gdk/EventHandlerGdk.cpp: Comment out chatty message.
55562         (WebCore::EventHandler::handleDrag):
55563         * platform/gdk/EditorClientGdk.cpp: Enable entering text into text field.
55564         (WebCore::EditorClientGdk::shouldInsertText):
55565
55566 2007-02-16  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
55567
55568         Reviewed by Adam Roben.
55569
55570         Move Path implementation from TemporaryLinkStubs.cpp to
55571         its own file.
55572         Implement setLineCap, setLineJoin and setMiterLimit for
55573         cairo's GraphicsContext.
55574
55575         * WebCoreSources.bkl:
55576         * platform/gdk/TemporaryLinkStubs.cpp:
55577         * platform/graphics/cairo/GraphicsContextCairo.cpp:
55578         (WebCore::GraphicsContext::setPlatformFillColor):
55579         (WebCore::GraphicsContext::setPlatformStrokeColor):
55580         (WebCore::GraphicsContext::setLineCap):
55581         (WebCore::GraphicsContext::setLineJoin):
55582         (WebCore::GraphicsContext::setMiterLimit):
55583         * platform/graphics/cairo/PathCairo.cpp: Added.
55584         (WebCore::Path::Path):
55585         (WebCore::Path::~Path):
55586         (WebCore::Path::contains):
55587         (WebCore::Path::translate):
55588         (WebCore::Path::boundingRect):
55589         (WebCore::Path::operator=):
55590         (WebCore::Path::clear):
55591         (WebCore::Path::moveTo):
55592         (WebCore::Path::addLineTo):
55593         (WebCore::Path::addQuadCurveTo):
55594         (WebCore::Path::addBezierCurveTo):
55595         (WebCore::Path::addArcTo):
55596         (WebCore::Path::closeSubpath):
55597         (WebCore::Path::addArc):
55598         (WebCore::Path::addRect):
55599         (WebCore::Path::addEllipse):
55600         (WebCore::Path::transform):
55601         (WebCore::Path::apply):
55602
55603 2007-02-16  Ada Chan  <adachan@apple.com>
55604
55605         Reviewed by Adam and Maciej.
55606
55607         Use a RefPtr to store the old hover node.
55608
55609         * rendering/RenderLayer.cpp:
55610         (WebCore::RenderLayer::updateHoverActiveState):
55611
55612 2007-02-16  Darin Adler  <darin@apple.com>
55613
55614         Reviewed by Adele.
55615
55616         - fix <rdar://problem/4990864> ASSERT in FormDelegate.m while dragging text between frames
55617
55618         This symptom is specific to Safari, so no layout test.
55619
55620         * editing/DeleteSelectionCommand.cpp:
55621         (WebCore::DeleteSelectionCommand::doApply): Only call textWillBeDeletedInTextField if the
55622         text field is focused.
55623         * html/HTMLInputElement.cpp:
55624         (WebCore::HTMLInputElement::aboutToUnload): Only call textFieldDidEndEditing if the text
55625         field is focused.
55626         (WebCore::HTMLInputElement::dispatchBlurEvent): Remove unneeded type cast.
55627         (WebCore::HTMLInputElement::defaultEventHandler): Only call doTextFieldCommandFromEvent if
55628         the text field is focused.
55629         * rendering/RenderTextControl.cpp:
55630         (WebCore::RenderTextControl::subtreeHasChanged): Only call textDidChangeInTextArea,
55631         textFieldDidBeginEditing, and textDidChangeInTextField if the element is focused.
55632
55633 2007-02-16  Anders Carlsson  <acarlsson@apple.com>
55634
55635         Reviewed by Adam.
55636
55637         <rdar://problem/4943985> 
55638         REGRESSION: Dragging standalone images to Finder fails to download the image file
55639         
55640         Set the data and response on the image resource. Also, since this is platform-independent we don't need to do it in 
55641         ImageDocumentMac.mm
55642         
55643         * loader/ImageDocument.cpp:
55644         (WebCore::ImageTokenizer::finish):
55645         * loader/mac/ImageDocumentMac.h:
55646         * loader/mac/ImageDocumentMac.mm:
55647         (WebCore::finishImageLoad):
55648
55649 2007-02-16  David Harrison  <harrison@apple.com>
55650
55651         Reviewed by Adam.
55652
55653         <rdar://problem/5004746> Need mechanism to protect against WebKit calls from secondary threads (DOM APIs)
55654
55655         * platform/mac/LoggingMac.mm:
55656         (WebCore::_WebCoreThreadViolationCheck):
55657         Change the default to log the violations.
55658
55659 2007-02-16  Adele Peterson  <adele@apple.com>
55660
55661         Reviewed by Mitz.
55662
55663         Fixed: http://bugs.webkit.org/show_bug.cgi?id=12768
55664         <rdar://problem/4995250> REGRESSION: Crash occurs at WebCore::RenderLayer::scrollToOffset() when leaving page that has focus in field
55665
55666         No test case added.  This crash doesn't occur in DumpRenderTree because the B/F cache is turned off.
55667
55668         * dom/Node.cpp: (WebCore::Node::willRemove): Check that the document is not in the page cache before 
55669
55670         * dom/Element.cpp: (WebCore::Element::updateFocusAppearance): Added restorePreviousSelection argument, with appropriate default values.
55671         * dom/Element.h: ditto.
55672         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::updateFocusAppearance): ditto.
55673         * html/HTMLInputElement.h: ditto.
55674         * html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::updateFocusAppearance): ditto.
55675         * html/HTMLTextAreaElement.h: ditto.
55676
55677         * page/PageState.cpp: (WebCore::PageState::restore): Call updateFocusAppearance on the focused node for this page.  Pass true for the
55678           restorePreviousSelection argument.
55679
55680         * rendering/RenderLayer.cpp: Added ASSERTS and nil checks on the RenderView.  It shouldn't be null, but if it is, 
55681           we'll fail silently on release builds.
55682         (WebCore::RenderLayer::updateLayerPositions):
55683         (WebCore::RenderLayer::scrollToOffset):
55684         (WebCore::RenderLayer::windowClipRect):
55685         (WebCore::RenderLayer::calculateClipRects):
55686         (WebCore::RenderLayer::calculateRects):
55687         (WebCore::RenderLayer::intersectsDamageRect):
55688         (WebCore::RenderLayer::absoluteBoundingBox):
55689
55690 2007-02-16  Anders Carlsson  <acarlsson@apple.com>
55691
55692         Reviewed by Darin.
55693
55694         <rdar://problem/4993055> auto_refcount_underflow_error: WebCore::FrameLoader::continueAfterNavigationPolicy () over-releases under GC
55695
55696         Add ::adoptNS and ::adoptCF methods to RetainPtr to indicate what type of reference to adopt.
55697         
55698         * platform/cf/RetainPtr.h:
55699         (WebCore::):
55700         (WebCore::adoptNSReference):
55701         (WebCore::RetainPtr::RetainPtr):
55702         (WebCore::::adoptCF):
55703         (WebCore::::adoptNS):
55704         * platform/mac/FileChooserMac.mm:
55705         (WebCore::FileChooser::FileChooser):
55706         * platform/network/mac/ResourceErrorMac.mm:
55707         (WebCore::ResourceError::operator NSError*):
55708         * platform/network/mac/ResourceRequestMac.mm:
55709         (WebCore::ResourceRequest::doUpdatePlatformRequest):
55710         * platform/network/mac/ResourceResponseMac.mm:
55711         (WebCore::ResourceResponse::nsURLResponse):
55712
55713 2007-02-15  Brady Eidson  <beidson@apple.com>
55714
55715         Reviewed by Lost Objective-C Hippyness (or hippiness)
55716
55717         Oh boy, did I ever botch this one up...
55718
55719         * loader/FrameLoader.cpp:
55720         (WebCore::FrameLoader::saveScrollPositionAndViewStateToItem): Null check the FrameView
55721
55722 2007-02-15  Brady Eidson  <beidson@apple.com>
55723
55724         Reviewed by Adam's complaint
55725
55726         Adam wanted me to do an early return, instead.
55727
55728         * loader/FrameLoader.cpp:
55729         (WebCore::FrameLoader::saveScrollPositionAndViewStateToItem):
55730
55731 2007-02-15  Brady Eidson  <beidson@apple.com>
55732
55733         Reviewed by Adele
55734
55735         Forgot to bring the null check with me when I backed this code out of 
55736         the FrameLoaderClient
55737
55738         * loader/FrameLoader.cpp:
55739         (WebCore::FrameLoader::saveScrollPositionAndViewStateToItem): null check the HistoryItem
55740
55741 2007-02-15  Brady Eidson  <beidson@apple.com>
55742
55743         Reviewed by Adam
55744
55745         Save scroll state for back/forward navigation in FrameLoader, not the client
55746
55747        * loader/FrameLoader.cpp:
55748         (WebCore::FrameLoader::saveScrollPositionAndViewStateToItem): Actually save the scroll position
55749          here instead of asking the FrameLoaderClient
55750         (WebCore::FrameLoader::restoreScrollPositionAndViewState): Ditto
55751
55752         * loader/FrameLoaderClient.h: Renamed/repurposed 2 methods
55753
55754         * platform/graphics/svg/SVGImageEmptyClients.h:
55755         (WebCore::SVGEmptyFrameLoaderClient::restoreViewState): Ditto
55756         (WebCore::SVGEmptyFrameLoaderClient::saveViewStateToItem): Ditto
55757
55758 2007-02-15  Justin Garcia  <justin.garcia@apple.com>
55759
55760         Reviewed by harrison
55761         
55762         <rdar://problem/4989774>
55763         REGRESSION: Pasting a image into a plain text message can place image on a new line
55764
55765         <span><img><span><img></span></span> will appear as two
55766         images on different lines because of a layout/rendering
55767         bug.  This patch avoids the bug by producing cleaner
55768         markup so that the paste code can safely remove the style 
55769         spans.
55770
55771         * editing/markup.cpp:
55772         (WebCore::createMarkup): Get the default style from the
55773         editable root or body instead of the document element.
55774         This produces cleaner markup since we don't inline the 
55775         root's styles.
55776
55777 2007-02-15  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
55778
55779         Reviewed by Adam Roben.
55780
55781         Add gdk version of ContextMenuClient based on qt version.
55782
55783         * WebCoreSources.bkl:
55784         * page/gdk/ContextMenuClientGdk.cpp: Added.
55785         (WebCore::ContextMenuClientGdk::contextMenuDestroyed):
55786         (WebCore::ContextMenuClientGdk::getCustomMenuFromDefaultItems):
55787         (WebCore::ContextMenuClientGdk::contextMenuItemSelected):
55788         (WebCore::ContextMenuClientGdk::downloadURL):
55789         (WebCore::ContextMenuClientGdk::copyImageToClipboard):
55790         (WebCore::ContextMenuClientGdk::searchWithGoogle):
55791         (WebCore::ContextMenuClientGdk::lookUpInDictionary):
55792         (WebCore::ContextMenuClientGdk::speak):
55793         (WebCore::ContextMenuClientGdk::stopSpeaking):
55794         * page/gdk/ContextMenuClientGdk.h: Added.
55795         * webcore-base.bkl: curl is needed when building webcore_base files.
55796
55797 2007-02-15  Kevin Decker  <kdecker@apple.com>
55798
55799        Reviewed by Darin.
55800
55801        Fixed: <rdar://problem/4983883> Background of a .mov window should not be white
55802
55803        * loader/PluginDocument.cpp: 
55804        (WebCore::PluginTokenizer::createDocumentStructure): Set a background color of gray
55805        for full frame plug-ins, which makes it easier on the eyes. It's also the same 
55806        gray that PDFKit uses, too.
55807
55808 2007-02-15  Mitz Pettel  <mitz@webkit.org>
55809
55810         Reviewed by Darin.
55811
55812         - fix http://bugs.webkit.org/show_bug.cgi?id=12625
55813           REGRESSION: Crash when closing the web inspector with text selected
55814
55815         The problem was that selectionRect() was being called on a render tree that
55816         had pending style changes. The changes were committed as a side effect in
55817         the middle of traversing the render tree, and the current object got
55818         deleted as a result. The solution is to update the render tree before
55819         starting to traverse it.
55820
55821         The inspector was affected because it makes style changes in response to
55822         an AppKit notification that's sent right before the windowDidResignKey:
55823         notification, under which WebKit calls selectionRect(). I couldn't recreate
55824         the same conditions (having uncommitted style changes in the tree when the
55825         window becomes inactive) using HTML/JS in Safari, hence the lack of
55826         a regression test to go with this patch.
55827
55828         * rendering/RenderView.cpp:
55829         (WebCore::RenderView::selectionRect): Added call to updateRendering().
55830
55831 2007-02-15  Mitz Pettel  <mitz@webkit.org>
55832
55833         Reviewed by Darin.
55834
55835         - fix http://bugs.webkit.org/show_bug.cgi?id=10127
55836           REGRESSION: Crash undoing delete in textarea
55837
55838         Document::removeMarkers() was using a Vector iterator (which is just a
55839         pointer) and inserting into the Vector at the same time, which made the
55840         iterator invalid as the Vector's data buffer was relocated.
55841         
55842         Replaced all instances of Vector<DocumentMarker>::iterator with indices.
55843
55844         * dom/Document.cpp:
55845         (WebCore::Document::addMarker):
55846         (WebCore::Document::copyMarkers):
55847         (WebCore::Document::removeMarkers):
55848         (WebCore::Document::repaintMarkers):
55849         (WebCore::Document::shiftMarkers):
55850
55851 2007-02-15  Mitz Pettel  <mitz@webkit.org>
55852
55853         Reviewed by Darin.
55854
55855         - http://bugs.webkit.org/show_bug.cgi?id=12777
55856           REGRESSION (r18574): User profile pages display incorrectly at ebay.ca
55857
55858         Fixes existing layout tests: tables/mozilla/bugs/bug45486.html
55859                                      tables/mozilla_expected_failures/core/col_span2.html
55860
55861         * rendering/AutoTableLayout.cpp:
55862         (WebCore::AutoTableLayout::calcEffectiveWidth): Fixed a mismatch between which
55863         columns count as percentage columns when adding up the total percent and
55864         which columns count as percentage columns when converting non-percentage
55865         columns to effectively-percentage.
55866
55867 2007-02-14  Mitz Pettel  <mitz@webkit.org>
55868
55869         Reviewed by Sam Weinig!
55870
55871         - fix http://bugs.webkit.org/show_bug.cgi?id=12773
55872           REGRESSION (r19490): Crash on ipx-server.de
55873
55874         * manual-tests/background-image-change-in-page-cache.html: Added.
55875         * rendering/RenderBox.cpp:
55876         (WebCore::RenderBox::imageChanged): Bail out if the object is not in a view,
55877         which can happen if the document is in the page cache and the same cached
55878         image used for its background is also being used in another document that
55879         is currently in view.
55880
55881 2007-02-14  Adam Roben  <aroben@apple.com>
55882
55883         Reviewed by Darin.
55884
55885         Fix http://bugs.webkit.org/show_bug.cgi?id=12517
55886         <rdar://problem/4971227> REGRESSION: Tab order incorrect when input
55887         inside frame/iframe gets initial focus (12517)
55888
55889         Test: fast/events/frame-programmatic-focus.html
55890
55891         * dom/Element.cpp:
55892         (WebCore::Element::focus): Call FocusController::setFocusedNode to set
55893         the focus for the whole page.
55894         * html/HTMLInputElement.cpp:
55895         (WebCore::HTMLInputElement::focus): Ditto.
55896         * html/HTMLTextAreaElement.cpp:
55897         (WebCore::HTMLTextAreaElement::focus): Ditto.
55898         * page/EventHandler.cpp:
55899         (WebCore::EventHandler::handleTextInputEvent): Send the textInput
55900         event to the same target that was sent the keypress event before it.
55901         * page/FocusController.cpp:
55902         (WebCore::FocusController::advanceFocus): Added a FIXME.
55903         (WebCore::FocusController::setFocusedNode): Added. Sets the focused
55904         node for a whole page.
55905         * page/FocusController.h: Added declaration.
55906         * platform/cf/RetainPtr.h: Removed unused pointer_cast functions.
55907
55908 2007-02-14  Justin Garcia  <justin.garcia@apple.com>
55909
55910         Reviewed by adele
55911         
55912         <rdar://problem/4976800>
55913         Outdent combines 2 separate strings on 2 different lines
55914
55915         * editing/IndentOutdentCommand.cpp:
55916         (WebCore::IndentOutdentCommand::outdentParagraph): Add line breaks
55917         if removing the indented node causes content before or after it to
55918         collapse into the same paragraph as its content.
55919
55920 2007-02-14  Justin Garcia  <justin.garcia@apple.com>
55921
55922         Reviewed by adele
55923         
55924         <rdar://problem/4960120>
55925         REGRESSION: First Enter key ignored on initial focus of textarea after page load (11967)
55926         
55927         We'd insert a newline, but into an empty div.  We need two newlines
55928         in that case.
55929
55930         * editing/InsertLineBreakCommand.cpp:
55931         (WebCore::lineBreakExistsAtPosition): Returns true if there is a
55932         br or a '\n' in text that preserves newlines at the incoming position.
55933         (WebCore::InsertLineBreakCommand::doApply): Fixed to handle the empty
55934         block case, the anonymous block case.
55935
55936 2007-02-14  Darin Adler  <darin@apple.com>
55937
55938         Reviewed by Hyatt.
55939
55940         - test or http://bugs.webkit.org/show_bug.cgi?id=12417
55941           <rdar://problem/4990046> REGRESSION: pressing "Return" in a <select>
55942           box does not submit the form (12697)
55943
55944         Test: fast/forms/select-enter-key.html
55945
55946         * html/HTMLSelectElement.cpp:
55947         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
55948         Add code to submit when someone hits the Enter key.
55949
55950 2007-02-14  Anders Carlsson  <acarlsson@apple.com>
55951
55952         Reviewed by Darin.
55953
55954         <rdar://problem/4960112>
55955         http://bugs.webkit.org/show_bug.cgi?id=12417
55956         REGRESSION: "Are you sure you want to send a form again?" sheet is displayed twice (validator.w3.org)
55957         
55958         The problem was that doing a reload would cause the "Cache-Control" HTTP header to be set on the request _after_ the first
55959         navigation policy delegate callback was called. This would break the request equality check that's used to prevent multiple policy
55960         delegate callbacks from getting called for the same request. The solution is to set the header as early as possible.
55961         
55962         This patch also fixes some bugs in the ResourceRequest equality operator.
55963         
55964         * loader/FrameLoader.cpp:
55965         (WebCore::FrameLoader::reload):
55966         Set the "Cache-Control" header field on the request here.
55967         
55968         * platform/network/FormData.h:
55969         (WebCore::operator==):
55970         Short-circuit if the pointers are the same.
55971         
55972         * platform/network/ResourceRequest.cpp:
55973         (WebCore::operator==):
55974         Check the equality of the objects, not the pointers.
55975
55976 2007-02-14  David Hyatt  <hyatt@apple.com>
55977
55978         Move setPlatformData out of FontFallbackListMac.mm and delete the file.  The function was completely
55979         cross-platform already.
55980
55981         Reviewed by Ada
55982
55983         * WebCore.xcodeproj/project.pbxproj:
55984         * platform/FontFallbackList.cpp:
55985         (WebCore::FontFallbackList::setPlatformFont):
55986
55987 2007-02-14  David Hyatt  <hyatt@apple.com>
55988
55989         Make the Font constructor that takes a FontPlatformData cross-platform, since the implementation was already
55990         completely cross-platform.
55991
55992         Reviewed by Ada
55993
55994         * platform/Font.cpp:
55995         (WebCore::Font::Font):
55996         * platform/Font.h:
55997         * platform/mac/FontMac.mm:
55998
55999 2007-02-14  Antti Koivisto  <antti@apple.com>
56000
56001         Reverting http://bugs.webkit.org/show_bug.cgi?id=11974, it causes repainting problems in some cases.
56002
56003         * rendering/RenderTextControl.h:
56004         (WebCore::RenderTextControl::avoidsFloats):
56005
56006 2007-02-14  Antti Koivisto  <antti@apple.com>
56007
56008         Reviewed by Maciej.
56009         
56010         - fix http://bugs.webkit.org/show_bug.cgi?id=11974
56011         REGRESSION: Caret drawn over input when smaller than font size on initial focus
56012         <rdar://problem/4960258>
56013         
56014         Set controlClip for non-search text controls.
56015
56016         * rendering/RenderTextControl.h:
56017         (WebCore::RenderTextControl::hasControlClip):
56018
56019 2007-02-14  Mitz Pettel  <mitz@webkit.org>
56020
56021         Reviewed by Hyatt.
56022
56023         - fix http://bugs.webkit.org/show_bug.cgi?id=12726
56024           REGRESSION (r12073): Text wraps in the middle of a word instead of wrapping at the space before the word
56025
56026         Test: fast/text/break-word.html
56027
56028         The wrapW variable used to keep track of the width of the characters scanned
56029         so far by adding up the widths of individual characters. Because of the
56030         rounding hack, the total ended up being bigger than the width of the same characters
56031         when measured together as a single run.
56032
56033         The fix is to use wrapW only as an upper bound, and once it overflows the line's width,
56034         fall back on measuring everything from the beginning of the line as one run.
56035
56036         * rendering/bidi.cpp:
56037         (WebCore::RenderBlock::findNextLineBreak): Implemented the above fix, including not measuring
56038         additional single characters once wrapW overflows the line. Also moved the assignment
56039         to breakNBSP out of the loop since it is constant for the entire text object, made breakWords and
56040         midWordBreak update only when they might change, and cleaned up a few things.
56041
56042 2007-02-14  Antti Koivisto  <antti@apple.com>
56043
56044         Reviewed by Hyatt.
56045
56046         - fix http://bugs.webkit.org/show_bug.cgi?id=11923
56047         REGRESSION: Placeholder text in password field shows as bullets
56048         <rdar://problem/4960257> 
56049         
56050         Disable textSecurity when placeholder is visible.
56051         
56052         * rendering/RenderTextControl.cpp:
56053         (WebCore::RenderTextControl::updatePlaceholder):
56054
56055 2007-02-13  Alexey Proskuryakov  <ap@webkit.org>
56056
56057         Reviewed by Mark Rowe.
56058
56059         http://bugs.webkit.org/show_bug.cgi?id=12763
56060         REGRESSION: button title is displayed incorrectly at quotes.burntelectrons.org
56061
56062         Test: fast/parser/entities-in-attributes.xhtml
56063
56064         * dom/XMLTokenizer.cpp:
56065         (WebCore::getEntityHandler): Set a correct type for the found entity (I'm not really
56066         sure if XML_INTERNAL_GENERAL_ENTITY is _the_ correct one, but it fixes the problem).
56067
56068 2007-02-13  Darin Adler  <darin@apple.com>
56069
56070         Reviewed by Hyatt.
56071
56072         - removed some bogus names (Hyatt smacked me since this doesn't fix a P1)
56073
56074         * dom/EventNames.h: Removed half-implemented khtmlDragdrop and khtmlMove
56075         (you could add listeners, but nobody ever sent the events). Renamed the
56076         other two khtml-prefixed internal event names to use the webkit prefix.
56077
56078         * bindings/js/kjs_dom.cpp:
56079         (KJS::DOMEventTargetNode::getValueProperty): Removed ondragdrop and onmove.
56080         (KJS::DOMEventTargetNode::putValueProperty): Ditto.
56081         * bindings/js/kjs_dom.h:
56082         * bindings/js/kjs_window.cpp:
56083         (KJS::Window::getValueProperty): Ditto.
56084         (KJS::Window::put): Ditto.
56085         * bindings/js/kjs_window.h:
56086
56087         * dom/BeforeTextInsertedEvent.cpp:
56088         (WebCore::BeforeTextInsertedEvent::BeforeTextInsertedEvent): Renamed to webkit.
56089         * editing/Editor.cpp:
56090         (WebCore::dispatchEditableContentChangedEvents): Ditto.
56091         * editing/ReplaceSelectionCommand.cpp:
56092         (WebCore::ReplacementFragment::ReplacementFragment): Ditto.
56093         * html/HTMLTextFieldInnerElement.cpp:
56094         (WebCore::HTMLTextFieldInnerTextElement::defaultEventHandler): Ditto.
56095
56096 2007-02-13  Darin Adler  <darin@apple.com>
56097
56098         Rubber stamped by Maciej.
56099
56100         * dom/EventNames.h: Resort names. Removed unused names.
56101
56102 2007-02-13  Anders Carlsson  <acarlsson@apple.com>
56103
56104         Reviewed by Kevin Decker.
56105
56106         <rdar://problem/4990049> 
56107         http://bugs.webkit.org/show_bug.cgi?id=12718
56108         REGRESSION: Segmentation fault when loading abc.go.com (12718)
56109
56110         The problem is that redirecting to about:blank causes the delegate to be released even though the load wasn't finished.
56111         This is usally not a problem since NSURLConnection retains its delegate. However, the proxy delegate does not retain _it's_ 
56112         delegate. The solution is to make releaseDelegate clear out the proxy delegate's delegate.
56113         
56114         * platform/network/mac/ResourceHandleMac.mm:
56115         (WebCore::ResourceHandle::releaseDelegate):
56116         If there's a proxy, nil out its delegate too.
56117
56118 2007-02-13  Matt Perry  <mpcomplete@chromium.org>
56119
56120         Reviewed by Darin.
56121
56122         - fix for http://bugs.webkit.org/show_bug.cgi?id=12750
56123           Vector operator== was not defined correctly. It returned void,
56124           did not accept const Vectors, and used an int instead of size_t. 
56125
56126         * rendering/RenderStyle.h: Added a != operator for StyleDashboardRegion.
56127         The only reason this compiled before was that the comparing two vectors
56128         with a != was simply comparing the pointers.
56129
56130 2007-02-13  Darin Adler  <darin@apple.com>
56131
56132         - roll out fix for <rdar://problem/4874059> REGRESSION: Painter IX:register -
56133           Crash in WebCore:: ResourceLoader::willSendRequest()
56134
56135         This fix was causing a crash in at least one layout test.
56136
56137         * loader/FrameLoader.cpp:
56138         (WebCore::FrameLoader::stopAllLoaders):
56139         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
56140
56141 2007-02-13  Mitz Pettel  <mitz@webkit.org>
56142
56143         Reviewed by Hyatt.
56144
56145         - fix http://bugs.webkit.org/show_bug.cgi?id=12746
56146         REGRESSION (r13853): List item's first line overflows containing div
56147
56148         Test: fast/lists/item-not-in-list-line-wrapping.html
56149
56150         * rendering/bidi.cpp:
56151         (WebCore::RenderBlock::findNextLineBreak): Use the list marker's isInside()
56152         instead of looking at its style()->listStylePosition(), since if the
56153         list item is not in a list, the marker is inside regardless of the style.
56154
56155 2007-02-13  Rob Buis  <buis@kde.org>
56156
56157         Reviewed by Maciej.
56158
56159         http://bugs.webkit.org/show_bug.cgi?id=12578
56160         WebKit incorrectly strokes zero-width/height rectangles
56161
56162         Create an empty path when encountering zero-width/height rectangles, similar to circles with zero radius.
56163
56164         * platform/graphics/Path.cpp:
56165         (WebCore::Path::createRectangle):
56166
56167 2007-02-13  Rob Buis  <buis@kde.org>
56168
56169         Reviewed by Maciej.
56170
56171         Remove SVGDOMImplementation from the project.
56172
56173         * CMakeLists.txt:
56174         * WebCore.pro:
56175         * ksvg2/svg/SVGDOMImplementation.cpp: Removed.
56176         * ksvg2/svg/SVGDOMImplementation.h: Removed.
56177
56178 2007-02-13  Brady Eidson <beidson@apple.com>
56179
56180         Reviewed by Maciej and Adam
56181
56182         Fixes <rdar://problem/4985497> - Crash when opening a new window to "Same Page"
56183
56184         * loader/FrameLoader.cpp:
56185         (WebCore::FrameLoader::loadItem): Null check documentLoader() since if we're a brand new 
56186           WebView, cloning the history of another view, we have no documentLoader()
56187
56188 2007-02-12  Antti Koivisto  <antti@apple.com>
56189
56190         Reviewed by Maciej.
56191
56192         -fix REGRESSION: <select disabled size="5"> listbox cannot be scrolled
56193         http://bugs.webkit.org/show_bug.cgi?id=11852
56194         <rdar://problem/4960129>
56195         
56196         Pass mouse press events to scrollbars even if event is swallowed.
56197         
56198         No layout test, DumpRenderTree eventSender can't hit scrollbars.
56199
56200         * page/EventHandler.cpp:
56201         (WebCore::EventHandler::handleMousePressEvent):
56202
56203 2007-02-12  David Hyatt  <hyatt@apple.com>
56204
56205         Fix for bug 12149 (Radar Bug#4928692), external CSS causes incomplete
56206         text field focus.
56207
56208         Make sure to clear out the focus node in willRemove() rather than in
56209         detach(), since detach/attach caused by style recalc should not affect
56210         the focused node.
56211
56212         Reviewed by aroben
56213
56214         * dom/ContainerNode.cpp:
56215         (WebCore::ContainerNode::willRemove):
56216         * dom/Document.cpp:
56217         (WebCore::Document::focusedNodeRemoved):
56218         (WebCore::Document::setFocusedNode):
56219         * dom/Document.h:
56220         * dom/Element.cpp:
56221         (WebCore::Element::updateFocusAppearance):
56222         * dom/Node.cpp:
56223         (WebCore::Node::willRemove):
56224         (WebCore::Node::detach):
56225         * html/HTMLInputElement.cpp:
56226         (WebCore::HTMLInputElement::updateFocusAppearance):
56227
56228 2007-02-12  Kevin McCullough  <kmccullough@apple.com>
56229
56230         - reverting fix for rdar://problem/4922454 because it caused regressions
56231           and performance problems
56232
56233         * bindings/objc/DOM.mm:
56234         (-[DOMElement image]):
56235         (-[DOMElement _imageTIFFRepresentation]):
56236         * dom/XMLTokenizer.cpp:
56237         (WebCore::XMLTokenizer::notifyFinished):
56238         * html/HTMLImageLoader.cpp:
56239         (WebCore::HTMLImageLoader::dispatchLoadEvent):
56240         * html/HTMLTokenizer.cpp:
56241         (WebCore::HTMLTokenizer::reset):
56242         (WebCore::HTMLTokenizer::notifyFinished):
56243         * ksvg2/misc/SVGImageLoader.cpp:
56244         (WebCore::SVGImageLoader::dispatchLoadEvent):
56245         * loader/Cache.cpp:
56246         (WebCore::Cache::requestResource):
56247         (WebCore::Cache::remove):
56248         * loader/CachedImage.h:
56249         (WebCore::CachedImage::canRender):
56250         (WebCore::CachedImage::isErrorImage):
56251         * loader/CachedResource.h:
56252         * loader/CachedScript.h:
56253         (WebCore::CachedScript::errorOccurred):
56254         * loader/DocLoader.cpp:
56255         (WebCore::DocLoader::requestResource):
56256         (WebCore::DocLoader::setLoadInProgress):
56257         * loader/FrameLoader.cpp:
56258         (WebCore::FrameLoader::canLoad):
56259         * page/EventHandler.cpp:
56260         (WebCore::selectCursor):
56261         * rendering/HitTestResult.cpp:
56262         (WebCore::HitTestResult::image):
56263         * rendering/RenderImage.cpp:
56264         (WebCore::RenderImage::setCachedImage):
56265         (WebCore::RenderImage::imageChanged):
56266         (WebCore::RenderImage::paint):
56267         (WebCore::RenderImage::layout):
56268         (WebCore::RenderImage::calcAspectRatioWidth):
56269         (WebCore::RenderImage::calcAspectRatioHeight):
56270         * rendering/RenderImage.h:
56271         (WebCore::RenderImage::isErrorImage):
56272         * rendering/RenderListItem.cpp:
56273         (WebCore::RenderListItem::setStyle):
56274         * rendering/RenderListMarker.cpp:
56275         (WebCore::RenderListMarker::isImage):
56276
56277 2007-02-12  Mitz Pettel  <mitz@webkit.org>
56278
56279         Reviewed by Dave Hyatt.
56280
56281         - fix http://bugs.webkit.org/show_bug.cgi?id=12123
56282           REGRESSION: Incomplete repaint of floats' overflows
56283
56284         Tests: fast/repaint/float-overflow.html
56285                fast/repaint/float-overflow-right.html
56286
56287         - fix http://bugs.webkit.org/show_bug.cgi?id=10116
56288           REGRESSION: Menu item drawn 2 pixels short on WWDC 2006 Attendee Site
56289
56290         Reflected in existing test results.
56291
56292         Unified floats and overflow for the purposes of painting and hit-testing.
56293         Overhanging and overflowing floats are now factored into a block's overflow
56294         unless their painting has been propagated to an ancestor.
56295
56296         Changed table cells to no longer expand to enclose overflow, thus making
56297         it purely "visual overflow", having no effect on layout in WebCore. It
56298         still determines scrolling dimensions.
56299
56300         * rendering/InlineFlowBox.cpp:
56301         (WebCore::InlineFlowBox::placeBoxesHorizontally): Include inline blocks'
56302         horizontal overflow in the inline box's dimensions.
56303         * rendering/RenderBlock.cpp:
56304         (WebCore::RenderBlock::layoutBlock): Removed the expand to enclose overflows
56305         behavior. Added code to add this block's floats (and their overflow) to its
56306         overflow rect if it is not in a block formatting context. Otherwise, the
56307         inclusion of floats in the overflow is deferred until this block's parent
56308         examines its floats and possibly adopts overhanging floats.
56309         (WebCore::RenderBlock::layoutBlockChildren):
56310         (WebCore::RenderBlock::paint): 
56311         (WebCore::RenderBlock::floatRect): Changed to return an empty rect if there
56312         are no floats or the floats are clipped, instead of returning the border box.
56313         (WebCore::RenderBlock::addOverhangingFloats): Any floats of the child that
56314         are not to be painted by the parent are added to the child's overflow rect.
56315         (WebCore::RenderBlock::addVisualOverflow): Added. Adjusts the overflow
56316         bounds to include the given rect.
56317         (WebCore::RenderBlock::nodeAtPoint):
56318         * rendering/RenderBlock.h:
56319         * rendering/RenderFlexibleBox.cpp:
56320         (WebCore::RenderFlexibleBox::layoutBlock): 
56321         (WebCore::RenderFlexibleBox::layoutHorizontalBox): After placing a normal
56322         child, add its floats to its overflow, since painting of floats does not
56323         propagate to flexible boxes. 
56324         (WebCore::RenderFlexibleBox::layoutVerticalBox): Ditto.
56325         * rendering/RenderForeignObject.cpp:
56326         (WebCore::RenderForeignObject::layout):
56327         * rendering/RenderHTMLCanvas.cpp:
56328         (WebCore::RenderHTMLCanvas::layout):
56329         * rendering/RenderImage.cpp:
56330         (WebCore::RenderImage::layout):
56331         * rendering/RenderLayer.cpp:
56332         (WebCore::RenderLayer::updateLayerPositions):
56333         (WebCore::RenderLayer::absoluteBoundingBox):
56334         * rendering/RenderLayer.h:
56335         * rendering/RenderObject.cpp:
56336         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
56337         * rendering/RenderObject.h:
56338         (WebCore::RenderObject::expandsToEncloseOverhangingFloats):
56339         * rendering/RenderPath.cpp:
56340         (WebCore::RenderPath::layout):
56341         * rendering/RenderSVGContainer.cpp:
56342         (WebCore::RenderSVGContainer::layout):
56343         * rendering/RenderSVGText.cpp:
56344         (WebCore::RenderSVGText::layout):
56345         * rendering/RenderTable.cpp:
56346         (WebCore::RenderTable::layout):
56347         * rendering/RenderTableCell.h:
56348         (WebCore::RenderTableCell::expandsToEncloseOverhangingFloats):
56349
56350 2007-02-12  Darin Adler  <darin@apple.com>
56351
56352         Reviewed by Hyatt.
56353
56354         - fix http://bugs.webkit.org/show_bug.cgi?id=12668
56355           <rdar://problem/4893344> REGRESSION: underline not visible for the international
56356           input inline hole in most text fields (12668)
56357
56358         - fix bug where overline and line-through were 1px lower than we intended
56359
56360         * platform/graphics/GraphicsContext.h: Removed unneeded y offset parameter.
56361         * platform/graphics/cairo/GraphicsContextCairo.cpp:
56362         (WebCore::GraphicsContext::drawLineForText): Removed bogus y offset and +1.
56363         * platform/graphics/cg/GraphicsContextCG.cpp:
56364         (WebCore::GraphicsContext::drawLineForText): Ditto.
56365         * platform/graphics/qt/GraphicsContextQt.cpp:
56366         (WebCore::GraphicsContext::drawLineForText): Ditto.
56367
56368         * rendering/InlineFlowBox.cpp:
56369         (WebCore::InlineFlowBox::paintTextDecorations): Added the "+1" that used to be
56370         inside drawLineForText to the underline-drawing code. Changed the other callers
56371         of drawLineForText to include the y offset in the y coordinate.
56372         * rendering/InlineTextBox.cpp:
56373         (WebCore::InlineTextBox::paintDecoration): Ditto. Also renamed _tx and _ty to
56374         remove the gratuitious underscores.
56375         (WebCore::InlineTextBox::paintMarkedTextUnderline): Made the default thickness
56376         be 1px instead of 0 (which ends up being roughly 1px in the CG code path anyway).
56377         Fixed the code computing the position to put the underline at the bottom of the
56378         line (different from regular underlines which are put 1px under the baseline).
56379         The old code used to put the underline 1px further down in the thick case, and
56380         2px further down in the non-thick case. Both of those are bad, because they
56381         could be completely clipped out in many cases.
56382
56383 2007-02-12  Anders Carlsson  <acarlsson@apple.com>
56384
56385         Reviewed by Darin.
56386
56387         <rdar://problem/4846962>
56388         Aperture: Aperture 1.5 - DOM exception occurs when exporting a web gallery
56389
56390         * dom/ContainerNode.cpp:
56391         (WebCore::ContainerNode::replaceChild):
56392         Call checkReplaceChild here.
56393         
56394         * dom/Document.cpp:
56395         (WebCore::Document::canReplaceChild):
56396         * dom/Document.h:
56397         Add implementation of canReplaceChild that makes sure that doing the replacement won't cause
56398         more than one element and document type node to end up in the document.
56399         
56400         * dom/Node.cpp:
56401         (WebCore::Node::canReplaceChild):
56402         Base implementation of canReplaceChild.
56403         
56404         (WebCore::Node::checkReplaceChild):
56405         New function that does what checAddChild does but calls canReplaceChild.
56406         
56407 2007-02-12  Kevin Decker <kdecker@apple.com>
56408
56409         Reviewed by Anders.
56410
56411         Fixed: <rdar://problem/4874059> REGRESSION: Painter IX:register - Crash in WebCore:: ResourceLoader::willSendRequest()
56412         
56413         What happened here was that a WebDataSource was being dealloced *while* a load for that resource is still in progress. 
56414
56415         * loader/FrameLoader.cpp:
56416         (WebCore::FrameLoader::stopAllLoaders): Calling stopAllLoaders cancels loads and informs the frame load delegate accordingly.
56417         The delegate however may decide to kick off a new provisional load as the result of the cancel. Therefore a local variable 
56418         for the provisional and main doucment loader is introduced, and we now only nil out the provisional loader if the local and
56419         member provisional variables represent the exact same load.
56420         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): Added the same check here, too.
56421
56422 2007-02-12  Lars Knoll  <lars@trolltech.com>
56423
56424         Reviewed by Mitz.
56425
56426         Do not create child renderers for table column groups
56427         if the child has not a table column display type.
56428
56429         * dom/Node.cpp:
56430         (WebCore::Node::createRendererIfNeeded):
56431         * rendering/RenderObject.h:
56432         (WebCore::RenderObject::isChildAllowed):
56433         * rendering/RenderTableCol.cpp:
56434         (WebCore::RenderTableCol::isChildAllowed):
56435         * rendering/RenderTableCol.h:
56436
56437 2007-02-12  Antti Koivisto  <antti@apple.com>
56438
56439         Reviewed by Mitz
56440
56441         Fix assertion failure in layout test.
56442
56443         * html/HTMLMapElement.cpp:
56444         (WebCore::HTMLMapElement::parseMappedAttribute):
56445
56446 2007-02-12  Kevin McCulough  <kmccullough@apple.com>
56447
56448         Reviewed by Brady.
56449
56450         - Fixing a performance regression caused by r19500.  The heart of the matter
56451         is that we now call canLoad on every resource request even ones in the cache,
56452         to avoid a security issue. So I could not take out the canLoad call, but I
56453         but I could try to make it more efficient.
56454
56455         * loader/DocLoader.cpp:
56456         (WebCore::DocLoader::requestResource):
56457         (WebCore::DocLoader::setLoadInProgress):
56458         * loader/FrameLoader.cpp:
56459         (WebCore::FrameLoader::canLoad):
56460
56461 2007-02-12  Darin Adler  <darin@apple.com>
56462
56463         Reviewed by Oliver.
56464
56465         - fix http://bugs.webkit.org/show_bug.cgi?id=12677
56466           <rdar://problem/4759563> REGRESSION: Return key is always sent when you confirm
56467           a clause in kotoeri (12677)
56468
56469         - fix http://bugs.webkit.org/show_bug.cgi?id=12596
56470           <rdar://problem/4794346> REGRESSION: Tab key shifts form field focus instead of
56471           navigating prediction window (12596)
56472
56473         - fix http://bugs.webkit.org/show_bug.cgi?id=10010
56474           <rdar://problem/4822935> REGRESSION: Pressing Return with unconfirmed text in
56475           Hangul inserts carriage return (10010)
56476
56477         - fix http://bugs.webkit.org/show_bug.cgi?id=12531
56478           <rdar://problem/4975126> REGRESSION: Inline text input types repeated keys in
56479           latest nightly (r19336) (12531)
56480
56481         - fix http://bugs.webkit.org/show_bug.cgi?id=12539
56482           <rdar://problem/4975130> REGRESSION: Pressing Backspace while in inline input
56483           area moves to the previous page in history (12539)
56484
56485         This area still needs work because keypress events are being sent for all the
56486         events before they go to the input methods, and it seems that this is not
56487         compatible with what other browsers do and with what sites assume. That's covered
56488         by this bug:
56489
56490             http://bugs.webkit.org/show_bug.cgi?id=10871
56491             <rdar://problem/4823129> REGRESSION: IME key events different in nightly (10871)
56492
56493         which is still open.
56494
56495         * bindings/objc/ExceptionHandlers.h: Remove selectRange helper that doesn't really
56496         belong here, and also isn't needed since the callers don't want to raise ObjC
56497         exceptions.
56498         * bindings/objc/ExceptionHandlers.mm: Ditto. Also removed unneeded external globals
56499         that aren't exported anyway and unneeded includes.
56500
56501         * bridge/EditorClient.h: Added Mac-specific function, markedTextAbandoned. Long term
56502         this might move into platform instead, but it's fine to have it on the client for now
56503         as long as it doesn't cause trouble for platforms other than Mac.
56504
56505         * dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler): Since
56506         all the event handling code in this function is intended to run on the node itself,
56507         not parent nodes, check and do nothing if this event is bubbling up from another
56508         node. Added code to call a function on EventHandler for default handling of text
56509         input events.
56510
56511         * dom/KeyboardEvent.h:
56512         * dom/KeyboardEvent.cpp: (WebCore::findKeyboardEvent): Added. Just like the
56513         findUIEventWithKeyState function, but specific to keyboard events.
56514
56515         * dom/TextEvent.h: Added isLineBreak and isBackTab flags so that we can carry
56516         additional information about what a text input event is trying to do, but still
56517         go through the DOM event machinery.
56518         * dom/TextEvent.cpp: Ditto.
56519
56520         * editing/Editor.h:
56521         * editing/Editor.cpp:
56522         (WebCore::Editor::handleKeyPress): Removed unneeded check of isCaretOrRange, since
56523         isContentEditable already checks that.
56524         (WebCore::Editor::canEdit): Ditto.
56525         (WebCore::Editor::canEditRichly): Ditto.
56526         (WebCore::Editor::canPaste): Changed to call canEdit for brevity.
56527         (WebCore::Editor::replaceSelectionWithText): Changed to take a const String&.
56528         (WebCore::Editor::shouldInsertText): Ditto.
56529         (WebCore::hasEditableSelection): Removed unneeded check of isCaretOrRange, since
56530         isContentEditable already checks that.
56531         (WebCore::Editor::Editor): Initialize the new m_ignoreMarkedTextSelectionChange
56532         flag. Moved here from WebHTMLView.
56533         (WebCore::Editor::insertText): Moved most of the code from -[WebHTMLView insertText:]
56534         here, since this needs to be done in response to a text input event and we don't want
56535         to go back over the WebKit side for that.
56536         (WebCore::Editor::insertLineBreak): Added. Moved here from -[WebHTMLView insertLineBreak:]
56537         for the same reason -- needs to be done in response to text input events.
56538         (WebCore::Editor::insertParagraphSeparator): Ditto.
56539         (WebCore::Editor::selectMarkedText): Added. Used by insertText.
56540         (WebCore::Editor::discardMarkedText): Added. Used by insertText.
56541         (WebCore::Editor::unmarkText): Added. Used by insertText.
56542         * editing/mac/EditorMac.mm:
56543         (WebCore::Editor::unmarkText): Added. Used by insertText.
56544
56545         * html/HTMLInputElement.cpp:
56546         (WebCore::HTMLInputElement::canHaveSelection): Changed to use isTextField to avoid repeating
56547         the switch statement.
56548         (WebCore::HTMLInputElement::selectionStart): Ditto.
56549         (WebCore::HTMLInputElement::selectionEnd): Ditto.
56550         (WebCore::HTMLInputElement::setSelectionStart): Ditto.
56551         (WebCore::HTMLInputElement::setSelectionEnd): Ditto.
56552         (WebCore::HTMLInputElement::select): Ditto.
56553         (WebCore::HTMLInputElement::setSelectionRange): Ditto.
56554         (WebCore::HTMLInputElement::createRenderer): Resorted cases alphaebtically.
56555         (WebCore::HTMLInputElement::defaultEventHandler): Added code to make hitting return cause the
56556         form to be submitted when it comes through as a text input event. This is now the normal case
56557         on Macintosh, because enter key presses normally turn into this. In addition, change the other
56558         event handling to run only after trying the base defaultEventHandler. That makes the key
56559         handling done in EventTargetNode take precedence over the event handling here for editable text
56560         fields, which is what we want. This gets rid of the need for the hack where we check
56561         inputManagerHasMarkedText and suppress the handling of the enter key.
56562
56563         * page/EventHandler.h: Removed unneeded includes. Moved EventHandlerDragState down into the
56564         private part of the class. Changed sendContextMenuEvent to take a const&. Added new
56565         handleTextInputEvent and defaultTextInputEventHandler functions. Made eventLoopHandleMouseUp
56566         and eventLoopHandleMouseDragged private. Added private defaultTabEventHandler function.
56567         * page/EventHandler.cpp:
56568         (WebCore::EventHandler::sendContextMenuEvent): Changed parameter to be a const&.
56569         (WebCore::EventHandler::defaultKeyboardEventHandler): Rearranged things so that the key bindings
56570         handling in handleKeyPress comes before special tab event handling. In cases where the tab turns
56571         into text to insert, we now handle it in the text input event handler.
56572         (WebCore::EventHandler::handleTextInputEvent): Added. Creates and dispatches a text input event.
56573         (WebCore::EventHandler::defaultTextInputEventHandler): Added. Inserts text, but has special cases
56574         for the tab and newline character cases.
56575         (WebCore::EventHandler::defaultTabEventHandler): Added. Shared by the tab-handling code in
56576         the keyboard event and text input event handlers.
56577         * page/mac/EventHandlerMac.mm: Tweak formatting, remove some unused functions.
56578
56579         * page/FocusController.h: Removed unnneded includes and forwards, and added an overload of
56580         advanceFocus that takes a FocusDirection parameter.
56581         * page/FocusController.cpp: (WebCore::FocusController::advanceFocus): Changed to allow a 0 for
56582         the event pointer. Also added a version where the direction is passed explicitly, to be used
56583         for cases where we want to tab backward even if the event doesn't have a shift modifier key set.
56584
56585         * platform/graphics/svg/SVGImageEmptyClients.h: Updated for change to EditorClient.
56586         This should really probably just use 0 for the EditorClient.
56587
56588         * WebCore.exp: Update both for newly used and no-longer-used entry points.
56589
56590         * page/mac/WebCoreFrameBridge.h:
56591         * page/mac/WebCoreFrameBridge.mm: Removed two unused methods.
56592
56593 2007-02-12  Antti Koivisto  <antti@apple.com>
56594
56595         Reviewed by Darin.
56596
56597         - fixed Imagemap not clickable in www.toptenbooks.net/
56598         http://bugs.webkit.org/show_bug.cgi?id=12738
56599         
56600         Make imagemap names case insensitive in HTML mode
56601
56602         * dom/Document.cpp:
56603         (WebCore::Document::getImageMap):
56604         * html/HTMLMapElement.cpp:
56605         (WebCore::HTMLMapElement::parseMappedAttribute):
56606
56607 2007-02-12  Maciej Stachowiak  <mjs@apple.com>
56608
56609         Reviewed by Antti.
56610
56611         - fixed <rdar://problem/4928675> REGRESSION: Crash in CGBlt_copyBytes under WebCore::Font::drawGlyphs (12083)
56612         http://bugs.webkit.org/show_bug.cgi?id=12083
56613         
56614         Test: fast/text/text-shadow-extreme-value.html
56615
56616         * platform/graphics/cg/GraphicsContextCG.cpp:
56617         (WebCore::GraphicsContext::setShadow): Clamp shadow value to 1000px, anything more seems to 
56618         make CG unhappy.
56619
56620 2007-02-11  Brady Eidson <beidson@apple.com>
56621
56622         Reviewed by Maciej.
56623
56624         First in what will be a series of HistoryItem enhancements to help debugging
56625
56626         * history/HistoryItem.cpp:
56627         (WebCore::HistoryItem::showTree):
56628         (WebCore::HistoryItem::showTreeWithIndent):
56629         (showTree): Outside of WebCore namespace, and extern "C" - to make even the 
56630           DWARF debugger able to find it...  *sigh* 
56631         * history/HistoryItem.h:
56632
56633 2007-02-11  Eric Seidel  <eric@webkit.org>
56634
56635         Reviewed by Anders.
56636
56637         - fixed <rdar://problem/4975133> ASSERT failure and crash right-clicking on image in SVG use test
56638         http://bugs.webkit.org/show_bug.cgi?id=12580
56639         
56640         Test: svg/cust/use-events-crash.svg
56641
56642         * bindings/js/kjs_dom.cpp:
56643         (KJS::toJS):
56644         * ksvg2/svg/SVGElementInstance.cpp:
56645         (WebCore::SVGElementInstance::toNode):
56646         * ksvg2/svg/SVGElementInstance.h:
56647
56648 2007-02-11  Mitz Pettel  <mitz@webkit.org>
56649
56650         Reviewed by Maciej.
56651
56652         - fix http://bugs.webkit.org/show_bug.cgi?id=10144
56653           REGRESSION: Reproducible assertion failure in DeleteSelectionCommand::fixupWhitespace()
56654
56655         Test: fast/text/delete-hard-break-character.html
56656
56657         The bug was caused by not updating a line whose line break object and offset
56658         has been deleted. When deleting text, all lines containing the deleted text
56659         are marked dirty. However, if the first character being deleted is a newline
56660         which serves as a hard line break for the previous line, then that line will
56661         not be marked, and since it will be a clean line ending with a line break,
56662         relayout will begin at the next line. The fix is to check for this when
56663         determining where to relayout from. 
56664
56665         * rendering/bidi.cpp:
56666         (WebCore::RenderBlock::determineStartPosition): Changed the condition for
56667         including the last clean line in relayout to include the case where the
56668         last clean line ends with a line break, but that line break is a newline that
56669         has been deleted.
56670
56671 2007-02-12  Antti Koivisto  <antti@apple.com>
56672
56673         Reviewed by Maciej.
56674         
56675         REGRESSION: Google Calendar cell highlight misplaced
56676         http://bugs.webkit.org/show_bug.cgi?id=12687
56677         
56678         Make offsetLeft/offsetTop/offsetParent behavior match Firefox.
56679
56680         * rendering/RenderObject.cpp:
56681         (WebCore::RenderObject::offsetLeft):
56682         (WebCore::RenderObject::offsetTop):
56683         (WebCore::RenderObject::offsetParent):
56684
56685 2007-02-10  Antti Koivisto  <antti@apple.com>
56686
56687         Reviewed by Maciej.
56688
56689         - fixed REGRESSION: No day/week scrollbar in Google Calendar
56690         http://bugs.webkit.org/show_bug.cgi?id=11985
56691
56692         Make sure overflow:auto scrollbars are always enabled. If they were overflow:scroll
56693         and dynamically changed to auto they might still be disabled.
56694
56695         * rendering/RenderLayer.cpp:
56696         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
56697
56698 2007-02-11  Alexey Proskuryakov  <ap@webkit.org>
56699
56700         Reviewed by Hyatt.
56701
56702         http://bugs.webkit.org/show_bug.cgi?id=12581
56703         XPath //title shouldn't match <title> in XHTML
56704
56705         Test: fast/xpath/ensure-null-namespace.xhtml
56706
56707         * xml/XPathStep.cpp:
56708         (WebCore::XPath::Step::nodeTestMatches): Only let a null namespace match any for HTML.
56709
56710 2007-02-10  Alexey Proskuryakov  <ap@webkit.org>
56711
56712         Reviewed by Adam.
56713
56714         http://bugs.webkit.org/show_bug.cgi?id=12701
56715         REGRESSION: After javascript, onChange not triggered when selecting same option
56716
56717         * html/HTMLSelectElement.cpp:
56718         (WebCore::HTMLSelectElement::setSelectedIndex): Remember m_lastOnChangeIndex value,
56719         as it can change from setSelected() now.
56720         (WebCore::HTMLSelectElement::notifyOptionSelected): Update m_lastOnChangeIndex.
56721
56722         * manual-tests/select-onchange-after-js.html: Added. Also tests for bug 11402.
56723
56724 2007-02-10  David Carson  <dacarson@gmail.com>`
56725
56726         Reviewed by Maciej.
56727
56728         Manual tests for http://bugs.webkit.org/show_bug.cgi?id=12636
56729         Call different Java methods that take a variety of Array parameters
56730         from Javascript, passing a Javascript array.
56731
56732         * manual-tests/liveconnect-applet-array-parameters.html: Added.
56733         * manual-tests/resources/ArrayParameterTestApplet.class: Added.
56734         * manual-tests/resources/ArrayParameterTestApplet.java: Added.
56735
56736 2007-02-10  Alexey Proskuryakov  <ap@webkit.org>
56737
56738         Reviewed by Maciej.
56739
56740         http://bugs.webkit.org/show_bug.cgi?id=12724
56741         Crash when enumerating XPath namespace axis
56742
56743         * xml/XPathStep.cpp:
56744         (WebCore::XPath::Step::nodesInAxis): Namespace axis enumeration was broken in that it crashed, and also in that
56745         it returned attribute nodes instead of XPath namespace ones. Removed it altogether.
56746
56747 2007-02-10  Mitz Pettel  <mitz@webkit.org>
56748
56749         Reviewed by Adam.
56750
56751         - fix http://bugs.webkit.org/show_bug.cgi?id=12565
56752           ASSERTION failure on some declarative animations <rdar://problem/4975132>
56753
56754         * ksvg2/svg/SVGAnimationElement.cpp:
56755         (WebCore::parseValues): Changed the string length math to avoid truncating
56756         the last character of each value.
56757         * manual-tests/svg-animation-parseValues.svg: Added.
56758
56759 2007-02-10  Mitz Pettel  <mitz@webkit.org>
56760
56761         Reviewed by Adam.
56762
56763         - fix http://bugs.webkit.org/show_bug.cgi?id=11621
56764           REGRESSION (Native slider): slider thumb not updated when the mouse is dragged/released out of range
56765
56766         No automated test case because dumping the render tree updates layer positions anyway.
56767
56768         * manual-tests/slider-thumb-tracking.html: Added.
56769         * rendering/RenderSlider.cpp:
56770         (WebCore::RenderSlider::setCurrentPosition): Added call to updateLayerPosition()
56771         for the thumb's layer.
56772
56773 2007-02-09  Brady Eidson <beidson@apple.com>
56774
56775         Reviewed by Maciej
56776
56777         <rdar://problem/4965133> WebKit sends file:// url referrers
56778
56779         * loader/SubresourceLoader.cpp:
56780         (WebCore::SubresourceLoader::create): In SubresourceLoader::create(), we make a copy of the original request
56781         to use for the load.  We then call FrameLoader::canLoad() which tells us if we should hide the referer.  Before 
56782         this fix if it said to hide the referrer, we would simply not apply a new referrer to our copy of the request.
56783         But if the original request already had a referrer, so did our copy.  We simply have to clear the referrer from
56784         the copied request.
56785
56786 2007-02-10  Maciej Stachowiak  <mjs@apple.com>
56787
56788         Reviewed by me, patch from Feng Qian (cleaned up by me some).
56789
56790         - fixed <rdar://problem/4988091> objects attached to Window not cleared (memory leak)
56791         
56792         Test case: fast/dom/Window/window-appendages-cleared.html
56793
56794         * bindings/js/kjs_window.cpp:
56795         (KJS::Window::clearHelperObjectProperties):
56796         (KJS::Window::clear):
56797         * bindings/js/kjs_window.h:
56798
56799 2007-02-09  Brady Eidson  <beidson@apple.com>
56800
56801         Reviewed by Tim Hatcher
56802
56803         <rdar://problem/4985497> - Plugs a potential null DocumentLoader deref when 
56804         transitioning out of the Bookmarks View
56805
56806         * loader/FrameLoader.cpp:
56807         (WebCore::FrameLoader::recursiveGoToItem): add a null check
56808
56809 2007-02-09  Beth Dakin  <bdakin@apple.com>
56810
56811         Rubber-stamped by John . . . and Adam.
56812
56813         * page/ContextMenuController.cpp:
56814         (WebCore::ContextMenuController::contextMenuItemSelected): Missing 
56815         break.
56816
56817 2007-02-09  Justin Garcia  <justin.garcia@apple.com>
56818
56819         Reviewed by darin
56820
56821         <rdar://problem/4975120>
56822         REGRESSION: double-cursor after switching window away/back (11770)
56823         <http://bugs.webkit.org/show_bug.cgi?id=11328>
56824         Gmail Editor: Caret can simultaneously appear in both the TO: and message body fields
56825
56826         * page/mac/WebCoreFrameBridge.h: Removed two unused methods
56827         left over from the old form control implementation.
56828
56829 2007-02-09  John Sullivan  <sullivan@apple.com>
56830
56831         * rendering/bidi.cpp:
56832         (WebCore::bidiNext):
56833         At Darin's suggestion, moved the "next = 0" line from my previous patch to the start of the loop body
56834
56835 2007-02-09  Justin Garcia  <justin.garcia@apple.com>
56836
56837         Reviewed by john
56838         
56839         <rdar://problem/4960116>
56840         REGRESSION: Nightly Safari crashes in WebCore::SelectionController::xPosForVerticalArrowNavigation (12416)
56841
56842         * editing/SelectionController.cpp:
56843         (WebCore::SelectionController::xPosForVerticalArrowNavigation):
56844         Null check.  VisiblePosition creation can fail if a node that 
56845         contains the selection was made invisible after the selection 
56846         was made and before this function is called during a selection 
56847         modification operation.
56848
56849 2007-02-09  Justin Garcia  <justin.garcia@apple.com>
56850
56851         Reviewed by john
56852         
56853         <rdar://problem/4983858>
56854         REGRESSION: In a new mail message, attempting to select a single word causes the selection to extend to the previous line
56855
56856         * editing/TextIterator.cpp:
56857         (WebCore::SimplifiedBackwardsTextIterator::exitNode):
56858         We recently split shouldEmitNewlineForNode into
56859         shouldEmitNewline{Before, After}Node, so this function now
56860         needs an implementation that is different from
56861         SimplifiedBackwardsTextIterator::handleNonTextNode.  The
56862         difference is that we must call shouldEmit*BeforeNode
56863         instead of shouldEmit*AfterNode since we are a) exiting
56864         nodes and b) moving backward.
56865
56866 2007-02-09  Justin Garcia  <justin.garcia@apple.com>
56867
56868         Reviewed by john
56869
56870         <rdar://problem/4916541>
56871         Some of the selection isn't preserved during an Indent opreration
56872
56873         * editing/IndentOutdentCommand.cpp:
56874         (WebCore::indexForVisiblePosition): Added.
56875         (WebCore::IndentOutdentCommand::indentRegion): Use rangeLength
56876         and rangeFromLocationAndLength to restore the selection after
56877         the repeated moveParagraph calls necessary to perform indent are
56878         finished.
56879
56880 2007-02-09  John Sullivan  <sullivan@apple.com>
56881
56882         Reviewed by Kevin Decker
56883         
56884         - fixed <rdar://problem/4960095> REPRODUCIBLE HANG: WebKit freezes when printing as PDF
56885           a certain kind of code (12449)
56886  
56887         No test case because I don't know how to make the bug occur without printing.
56888
56889         * rendering/bidi.cpp:
56890         (WebCore::bidiNext):
56891         reset loop's "next" variable after using it; we were setting "current" to the same value
56892         of "next" each subsequent time through the loop, which is not helpful.
56893
56894 2007-02-09  Darin Adler  <darin@apple.com>
56895
56896         Reviewed by Adele.
56897
56898         - Add TextEvent to the DOM (based on the proposed DOM level 3)
56899           to be used to fix some international input bugs soon.
56900           At this point, we don't send any text events.
56901
56902         - Remove some obsolete files.
56903
56904         * CMakeLists.txt:
56905         * WebCore.pro:
56906         * WebCore.xcodeproj/project.pbxproj:
56907         * WebCoreSources.bkl:
56908         Add new files, remove obsolete files.
56909
56910         * DerivedSources.make: Add TextEvent to the Objective-C and JavaScript bindings lists.
56911         * WebCore.exp: Export DOMTextEvent Objective-C wrapper.
56912
56913         * bindings/js/kjs_events.cpp: (KJS::toJS): Added TextEvent to the list of Event subclasses
56914         so we make the right kind of JS wrapper.
56915         * bindings/objc/DOMEvents.mm: (+[DOMEvent _eventWith:]): Same thing, for Objective-C.
56916
56917         * bindings/objc/DOMInternal.h: Added DOMTextEventInternal.h.
56918
56919         * dom/DOMImplementation.cpp: (WebCore::DOMImplementation::hasFeature):
56920         Added "TextEvents", "3.0" to the list of things we'll answer true for
56921         (as specified in the DOM Level 3 documentation).
56922         This isn't so great until we actually send textInput events, but that's coming soon.
56923
56924         * dom/Document.cpp: (WebCore::Document::createEvent): Add "TextEvent" as a way to make
56925         a TextEvent (as specified in the DOM Level 3 documentation).
56926
56927         * dom/Event.h:
56928         * dom/Event.cpp: (WebCore::Event::isTextEvent): Added virtual function to be used
56929         for runtime type checking of Event objects (as for other event types).
56930
56931         * dom/TextEvent.cpp: Added.
56932         * dom/TextEvent.h: Added.
56933         * dom/TextEvent.idl: Added.
56934
56935         * platform/mac/WebCoreWidgetHolder.h: Removed.
56936         * rendering/CounterListItem.h: Removed.
56937         * rendering/CounterResetNode.cpp: Removed.
56938         * rendering/CounterResetNode.h: Removed.
56939
56940 2007-02-09  Anders Carlsson  <acarlsson@apple.com>
56941
56942         Reviewed by Geoff.
56943
56944         <rdar://problem/4816376> 
56945         REGRESSION: NetNewsWire 3.0 - Crashes in WebDocumentLoaderMac::attachToFrame() (12674)
56946         
56947         The bug was that the NNW policy delegate never calls back on the policy listener so we'll try to do a load
56948         while there's a policy decision underway. The extra call to setPolicyDocumentLoader would cause a detached (and deallocated)
56949         WebDataSource to be reattached and thus causing a crash.
56950         
56951         * loader/FrameLoader.cpp:
56952         (WebCore::FrameLoader::load):
56953         Remove extra call to setPolicyDocumentLoader.
56954
56955 2007-02-09  Beth Dakin  <bdakin@apple.com>
56956
56957         Reviewed by Darin.
56958
56959         Fix for <rdar://problem/4674537> REGRESSION: Adobe Acrobat 8 - Text 
56960         blinks when mouse is moved, and is invisible otherwise
56961
56962         Acrobat 8 was relying on a WebKit bug that was fixed about a year 
56963         ago with r12753. The bug was that we would not reload a page if the 
56964         source of an iframe was set to the same value it already was. Now 
56965         that we have fixed the bug, Acrobat constantly reloads their EULA, 
56966         making it blinky and impossible to read. 
56967
56968         No layout test since the fix is to add an Acrobat-specific quirk.
56969
56970         * WebCore.exp:
56971         * html/HTMLFrameElementBase.cpp:
56972         (WebCore::HTMLFrameElementBase::setLocation): If the new url is the 
56973         same as the old one and we are honoring the Acrobat quirk, don't do 
56974         anything.
56975         * page/Settings.cpp:
56976         (WebCore::Settings::Settings):
56977         (WebCore::Settings::setNeedsAcrobatFrameReloadingQuirk):
56978         * page/Settings.h:
56979         (WebCore::Settings::needsAcrobatFrameReloadingQuirk):
56980
56981 2007-02-09  Brady Eidson  <beidson@apple.com>
56982
56983         Rubberstamped by Dave Harrison
56984
56985         Disable the thread-check assertion in WebCore, as well as Webkit
56986
56987         * WebCore.xcodeproj/project.pbxproj:
56988
56989 2007-02-08  Anders Carlsson  <acarlsson@apple.com>
56990
56991         Reviewed by Geoff.
56992
56993         No need to pause timeout checks anymore.
56994         
56995         * bindings/js/kjs_window.cpp:
56996         (KJS::WindowFunc::callAsFunction):
56997
56998 2007-02-09  John Sullivan  <sullivan@apple.com>
56999
57000         Reviewed by Beth
57001         
57002         - WebCore part of fix for radar 4939636, problems with context menu items and binaries linked
57003           against WebKit 2.0.
57004
57005         * platform/ContextMenuItem.h:
57006         (WebCore::):
57007         Tweaked comment; bumped enum value for new SPI tags to avoid conflict with pre-3.0 SPI tag values.
57008
57009 2007-02-09  Nicholas Shanks  <webkit@nickshanks.com>
57010
57011         Reviewed by Dave Hyatt.
57012
57013         Removed broken recognition of :last-* and :only-* selectors
57014
57015         * css/CSSGrammar.y:
57016         * css/CSSSelector.cpp:
57017         (WebCore::CSSSelector::extractPseudoType):
57018         * css/CSSSelector.h:
57019         (WebCore::CSSSelector::):
57020         * css/cssstyleselector.cpp:
57021         (WebCore::CSSStyleSelector::checkOneSelector):
57022
57023 2007-02-09  Maciej Stachowiak  <mjs@apple.com>
57024
57025         Reviewed by Mark.
57026
57027         <rdar://problem/4980176>
57028
57029         * page/Frame.cpp:
57030         (WebCore::Frame::pageDestroyed): Since this frame is getting
57031         disconnected from its page, ensure it is not the focus node.
57032
57033 2007-02-09  Krzysztof  <kkowalczyk@gmail.com>
57034
57035         Reviewed by Maciej.
57036
57037         gdklauncher crashes when compiled with NDEBUG defined.
57038
57039         * Projects/gdk/webcore-gdk.bkl:
57040
57041 2007-02-09  Maciej Stachowiak  <mjs@apple.com>
57042
57043         Reviewed by Mitz.
57044
57045         <rdar://problem/4971224> REGRESSION: ASSERT in WebCore with Mail (12491)
57046         http://bugs.webkit.org/show_bug.cgi?id=12491
57047
57048         No test case. Not testable since there is no way to do substitute
57049         data loads from layout tests.
57050         
57051         * loader/MainResourceLoader.cpp:
57052         (WebCore::MainResourceLoader::continueAfterContentPolicy): Don't dispatch data load
57053         callback when loading empty data.
57054
57055 2007-02-09  Mark Rowe  <mrowe@apple.com>
57056
57057         Reviewed by Maciej.
57058
57059         http://bugs.webkit.org/show_bug.cgi?id=12705
57060         REGRESSION: Crash with user stylesheet set
57061
57062         Allow the Frame::canLoad check to skipped so that user stylesheets can be loaded in remote documents.
57063
57064         * ChangeLog:
57065         * loader/DocLoader.cpp:
57066         (WebCore::DocLoader::requestCSSStyleSheet): Skip canLoad check if this is a user stylesheet.
57067         (WebCore::DocLoader::requestUserCSSStyleSheet):
57068         (WebCore::DocLoader::requestResource): Allow canLoad check to be skipped.
57069         * loader/DocLoader.h:
57070         * page/Frame.cpp:
57071         (WebCore::UserStyleSheetLoader::UserStyleSheetLoader):
57072
57073 2007-02-08  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57074
57075         Reviewed by Darin.
57076
57077         Linux/gdk build fixes.
57078
57079         * Projects/gdk/webcore-gdk.bkl: Account for file renaming.
57080         * platform/gdk/KeyEventGdk.cpp: Make gdk's tab key recognized as tab so that
57081         keyboard link walking works on gdk.
57082         (WebCore::keyIdentifierForGdkKeyCode):
57083
57084 2007-02-08  Adele Peterson  <adele@apple.com>
57085
57086         Reviewed by Brady.
57087
57088         Fix for http://bugs.webkit.org/show_bug.cgi?id=12599
57089         <rdar://problem/4973507> REGRESSION: When replying in Gmail, the caret disappears when you start to type (12599)
57090
57091         When a frame's window was focused, the page didn't get updated about the new frame getting focus.
57092         This was causing handleKeyPress to fail because it kept getting a selection for the wrong frame (which wasn't editable).
57093
57094         Test: fast/frames/iframe-window-focus.html
57095
57096         * page/Frame.cpp:
57097         (WebCore::Frame::focusWindow):
57098         (WebCore::Frame::unfocusWindow):
57099         * page/Frame.h:
57100         * page/mac/FrameMac.mm:
57101         (WebCore::FrameMac::focusWindow):
57102         (WebCore::FrameMac::unfocusWindow):
57103
57104 2007-02-08  Adele Peterson  <adele@apple.com>
57105
57106         Reviewed by Brady.
57107
57108         Fix for http://bugs.webkit.org/show_bug.cgi?id=12480
57109         <rdar://problem/4971222> REGRESSION (NativeListBox): Deselecting option causes list to jump to top
57110
57111         Test: fast/forms/listbox-deselect-scroll.html
57112
57113         * html/HTMLSelectElement.cpp:
57114         (WebCore::HTMLSelectElement::activeSelectionStartListIndex): Added.  Returns the index for the active selection.  If there is no active selection,
57115          it returns the first selected index.
57116         (WebCore::HTMLSelectElement::activeSelectionEndListIndex): Added.  If there is no active selection, it returns the last selected index.
57117         * html/HTMLSelectElement.h:
57118         * rendering/RenderListBox.cpp: (WebCore::RenderListBox::scrollToRevealSelection): Instead of using the first and last selected indices,
57119           use the active selection indices to determine which item to reveal.  This way, when you're selecting with the keyboard, or the mouse,
57120           no unnecessary scrolling will occur if the end of your active selection is already visible.
57121
57122 2007-02-08  Adele Peterson  <adele@apple.com>
57123
57124         Reviewed by Hyatt.
57125
57126         Fix for <rdar://problem/4963411> Items of SELECT element are incorrectly highlighted when display:block is set
57127
57128         Test: fast/forms/select-block-background.html
57129
57130         * rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintObject):
57131           Paint the item backgrounds during the PaintPhaseChildBlockBackground or PaintPhaseChildBlockBackgrounds phase.
57132
57133 2007-02-08  Mitz Pettel  <mitz@webkit.org>
57134
57135         Reviewed by Adele.
57136
57137         - fix http://bugs.webkit.org/show_bug.cgi?id=11047
57138           REGRESSION: Empty options cause the entire select to collapse
57139         
57140         Test: fast/forms/select-empty-option-height.html
57141
57142         - fix http://bugs.webkit.org/show_bug.cgi?id=10783
57143           REGRESSION (r16044): Clicking a popup changes layout around it
57144
57145         * rendering/RenderMenuList.cpp:
57146         (WebCore::RenderMenuList::setText): If the option text is empty, use a RenderBR
57147         as inner text, to ensure that the inner div has line height.
57148
57149 2007-02-08  Geoffrey Garen  <ggaren@apple.com>
57150
57151         Reviewed by Beth Dakin.
57152
57153         Added a hard counter for SubresourceLoaders because the leaks tool now
57154         ignores them.
57155         
57156         * loader/SubresourceLoader.cpp:
57157         (WebCore::):
57158         (WebCore::SubresourceLoaderCounter::~SubresourceLoaderCounter):
57159         (WebCore::SubresourceLoader::SubresourceLoader):
57160         (WebCore::SubresourceLoader::~SubresourceLoader):
57161         * page/Frame.cpp: Removed unnecessary #define
57162
57163 2007-02-08  Geoffrey Garen  <ggaren@apple.com>
57164
57165         Reviewed by Beth Dakin.
57166
57167         Fixed <rdar://problem/4982374> CSSComputedStyleDeclaration::getPropertyCSSValue 
57168         leak reported by buildbot
57169         
57170         The leak was a typo: "new" instead of "return new". I also generously
57171         deployed RefPtr in places that were holding ref-counted objects in
57172         bare pointers.
57173
57174         * css/CSSComputedStyleDeclaration.cpp:
57175         (WebCore::valueForShadow):
57176         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
57177
57178 2007-02-08  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57179
57180         Reviewed by Adam Roben.
57181
57182         Linux/gdk build fixes.
57183
57184         * platform/gdk/EditorClientGdk.cpp: Added. Based on qt version.
57185         (WebCore::EditorClientGdk::shouldDeleteRange):
57186         (WebCore::EditorClientGdk::shouldShowDeleteInterface):
57187         (WebCore::EditorClientGdk::isContinuousSpellCheckingEnabled):
57188         (WebCore::EditorClientGdk::isGrammarCheckingEnabled):
57189         (WebCore::EditorClientGdk::spellCheckerDocumentTag):
57190         (WebCore::EditorClientGdk::shouldBeginEditing):
57191         (WebCore::EditorClientGdk::shouldEndEditing):
57192         (WebCore::EditorClientGdk::shouldInsertText):
57193         (WebCore::EditorClientGdk::shouldApplyStyle):
57194         (WebCore::EditorClientGdk::didBeginEditing):
57195         (WebCore::EditorClientGdk::respondToChangedContents):
57196         (WebCore::EditorClientGdk::didEndEditing):
57197         (WebCore::EditorClientGdk::didWriteSelectionToPasteboard):
57198         (WebCore::EditorClientGdk::didSetSelectionTypesForPasteboard):
57199         (WebCore::EditorClientGdk::selectWordBeforeMenuEvent):
57200         (WebCore::EditorClientGdk::isEditable):
57201         (WebCore::EditorClientGdk::registerCommandForUndo):
57202         (WebCore::EditorClientGdk::registerCommandForRedo):
57203         (WebCore::EditorClientGdk::clearUndoRedoOperations):
57204         (WebCore::EditorClientGdk::canUndo):
57205         (WebCore::EditorClientGdk::canRedo):
57206         (WebCore::EditorClientGdk::undo):
57207         (WebCore::EditorClientGdk::redo):
57208         (WebCore::EditorClientGdk::shouldInsertNode):
57209         (WebCore::EditorClientGdk::pageDestroyed):
57210         (WebCore::EditorClientGdk::smartInsertDeleteEnabled):
57211         (WebCore::EditorClientGdk::toggleContinuousSpellChecking):
57212         (WebCore::EditorClientGdk::toggleGrammarChecking):
57213         (WebCore::EditorClientGdk::handleKeyPress):
57214         (WebCore::EditorClientGdk::EditorClientGdk):
57215         (WebCore::EditorClientGdk::setPage):
57216         * platform/gdk/EditorClientGdk.h: Added. Ditto.
57217         * platform/gdk/FrameGdk.cpp: Add exitAfterLoading and dumpRenderTreeAfterLoading
57218         as small debugging features. Remove FrameGdkClient as no other platform has Frame*Client
57219         anymore. Adjust for new APIs.
57220         (WebCore::FrameGdk::FrameGdk):
57221         (WebCore::FrameGdk::onDidFinishLoad):
57222         (WebCore::FrameGdk::dumpRenderTree):
57223         (WebCore::FrameGdk::keyPress):
57224         (WebCore::FrameGdk::handleGdkEvent):
57225         (WebCore::FrameGdk::focusWindow):
57226         (WebCore::FrameGdk::unfocusWindow):
57227         (WebCore::FrameGdk::getObjectInstanceForWidget):
57228         (WebCore::FrameGdk::getEmbedInstanceForWidget):
57229         (WebCore::FrameGdk::bindingRootObject):
57230         (WebCore::FrameGdk::print):
57231         (WebCore::FrameGdk::getAppletInstanceForWidget):
57232         (WebCore::FrameGdk::issueCutCommand):
57233         (WebCore::FrameGdk::issueCopyCommand):
57234         (WebCore::FrameGdk::issuePasteCommand):
57235         (WebCore::FrameGdk::issueTransposeCommand):
57236         (WebCore::FrameGdk::issuePasteAndMatchStyleCommand):
57237         (WebCore::FrameGdk::markedTextRange):
57238         (WebCore::FrameGdk::shouldChangeSelection):
57239         (WebCore::FrameGdk::respondToChangedSelection):
57240         (WebCore::FrameGdk::mimeTypeForFileName):
57241         * platform/gdk/FrameGdk.h: Ditto.
57242         (WebCore::FrameGdk::setExitAfterLoading):
57243         (WebCore::FrameGdk::exitAfterLoading):
57244         (WebCore::FrameGdk::setDumpRenderTreeAfterLoading):
57245         (WebCore::FrameGdk::dumpRenderTreeAfterLoading):
57246         (WebCore::GdkFrame):
57247         * platform/gdk/TemporaryLinkStubs.cpp: Adjust to new APIs. Small cleanups.
57248         (FrameView::updateBorder):
57249         (Widget::setEnabled):
57250         (Widget::isEnabled):
57251         (Widget::enableFlushDrawing):
57252         (Widget::removeFromParent):
57253         (Widget::paint):
57254         (Widget::setIsSelected):
57255         (Widget::invalidate):
57256         (Widget::invalidateRect):
57257         (PlatformMouseEvent::PlatformMouseEvent):
57258         (WebCore::findWordBoundary):
57259         (ChromeClientGdk::chromeDestroyed):
57260         (ChromeClientGdk::closeWindowSoon):
57261         (ChromeClientGdk::canTakeFocus):
57262         (ChromeClientGdk::takeFocus):
57263         (ChromeClientGdk::canRunBeforeUnloadConfirmPanel):
57264         (ChromeClientGdk::addMessageToConsole):
57265         (ChromeClientGdk::runBeforeUnloadConfirmPanel):
57266         (ChromeClientGdk::runJavaScriptAlert):
57267         (ChromeClientGdk::runJavaScriptConfirm):
57268         (ChromeClientGdk::runJavaScriptPrompt):
57269         (ChromeClientGdk::setStatusbarText):
57270         (ChromeClientGdk::shouldInterruptJavaScript):
57271         (WebCore::inputElementAltText):
57272         (WebCore::resetButtonDefaultLabel):
57273         (WebCore::searchableIndexIntroduction):
57274         (WebCore::fileButtonChooseFileLabel):
57275         (WebCore::fileButtonNoFileSelectedLabel):
57276         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
57277         (WebCore::contextMenuItemTagDownloadLinkToDisk):
57278         (WebCore::contextMenuItemTagCopyLinkToClipboard):
57279         (WebCore::contextMenuItemTagOpenImageInNewWindow):
57280         (WebCore::contextMenuItemTagDownloadImageToDisk):
57281         (WebCore::contextMenuItemTagCopyImageToClipboard):
57282         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
57283         (WebCore::contextMenuItemTagCopy):
57284         (WebCore::contextMenuItemTagGoBack):
57285         (WebCore::contextMenuItemTagGoForward):
57286         (WebCore::contextMenuItemTagStop):
57287         (WebCore::contextMenuItemTagReload):
57288         (WebCore::contextMenuItemTagCut):
57289         (WebCore::contextMenuItemTagPaste):
57290         (WebCore::contextMenuItemTagNoGuessesFound):
57291         (WebCore::contextMenuItemTagIgnoreSpelling):
57292         (WebCore::contextMenuItemTagLearnSpelling):
57293         (WebCore::contextMenuItemTagSearchWeb):
57294         (WebCore::contextMenuItemTagLookUpInDictionary):
57295         (WebCore::contextMenuItemTagOpenLink):
57296         (WebCore::contextMenuItemTagIgnoreGrammar):
57297         (WebCore::contextMenuItemTagSpellingMenu):
57298         (WebCore::contextMenuItemTagShowSpellingPanel):
57299         (WebCore::contextMenuItemTagCheckSpelling):
57300         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
57301         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
57302         (WebCore::contextMenuItemTagFontMenu):
57303         (WebCore::contextMenuItemTagBold):
57304         (WebCore::contextMenuItemTagItalic):
57305         (WebCore::contextMenuItemTagUnderline):
57306         (WebCore::contextMenuItemTagOutline):
57307         (WebCore::contextMenuItemTagWritingDirectionMenu):
57308         (WebCore::contextMenuItemTagDefaultDirection):
57309         (WebCore::contextMenuItemTagLeftToRight):
57310         (WebCore::contextMenuItemTagRightToLeft):
57311         (PlugInInfoStore::createPluginInfoForPluginAtIndex):
57312         (PlugInInfoStore::pluginCount):
57313         (WebCore::PlugInInfoStore::supportsMIMEType):
57314         (WebCore::refreshPlugins):
57315         (SearchPopupMenu::saveRecentSearches):
57316         (SearchPopupMenu::loadRecentSearches):
57317         (SearchPopupMenu::SearchPopupMenu):
57318         (Path::apply):
57319         (PlatformScrollbar::PlatformScrollbar):
57320         (PlatformScrollbar::~PlatformScrollbar):
57321         (PlatformScrollbar::width):
57322         (PlatformScrollbar::height):
57323         (PlatformScrollbar::setEnabled):
57324         (PlatformScrollbar::paint):
57325         (PlatformScrollbar::updateThumbPosition):
57326         (PlatformScrollbar::updateThumbProportion):
57327         (PlatformScrollbar::setRect):
57328         (ResourceHandle::willLoadFromCache):
57329         (ResourceHandle::loadsBlocked):
57330         (ResourceHandle::loadResourceSynchronously):
57331         (PageCache::close):
57332         (Editor::ignoreSpelling):
57333         (Editor::learnSpelling):
57334         (Editor::isSelectionUngrammatical):
57335         (Editor::isSelectionMisspelled):
57336         (Editor::guessesForMisspelledSelection):
57337         (Editor::guessesForUngrammaticalSelection):
57338         (Editor::markMisspellingsAfterTypingToPosition):
57339         (Editor::newGeneralClipboard):
57340         (Pasteboard::generalPasteboard):
57341         (Pasteboard::writeSelection):
57342         (Pasteboard::writeURL):
57343         (Pasteboard::clear):
57344         (Pasteboard::canSmartReplace):
57345         (Pasteboard::documentFragment):
57346         (Pasteboard::plainText):
57347         (Pasteboard::Pasteboard):
57348         (Pasteboard::~Pasteboard):
57349         (ContextMenu::ContextMenu):
57350         (ContextMenu::~ContextMenu):
57351         (ContextMenu::appendItem):
57352         (ContextMenu::setPlatformDescription):
57353         (ContextMenu::platformDescription):
57354         (ContextMenuItem::ContextMenuItem):
57355         (ContextMenuItem::~ContextMenuItem):
57356         (ContextMenuItem::releasePlatformDescription):
57357         (ContextMenuItem::type):
57358         (ContextMenuItem::setType):
57359         (ContextMenuItem::action):
57360         (ContextMenuItem::setAction):
57361         (ContextMenuItem::title):
57362         (ContextMenuItem::setTitle):
57363         (ContextMenuItem::platformSubMenu):
57364         (ContextMenuItem::setSubMenu):
57365         (ContextMenuItem::setChecked):
57366         (ContextMenuItem::setEnabled):
57367         (WebCore::systemBeep):
57368         (WebCore::userIdleTime):
57369
57370 2007-02-08  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57371
57372         Reviewed by Adam Roben.
57373
57374         Linux/gdk build fixes.
57375
57376         * platform/GlyphPageTreeNode.h: Fix header guard name.
57377         * platform/gdk/ChromeClientGdk.h:
57378         * platform/gdk/CursorGdk.cpp:
57379         (WebCore::verticalTextCursor):
57380         (WebCore::cellCursor):
57381         (WebCore::contextMenuCursor):
57382         (WebCore::noDropCursor):
57383         (WebCore::copyCursor):
57384         (WebCore::progressCursor):
57385         (WebCore::aliasCursor):
57386         * platform/gdk/MouseEventGdk.cpp:
57387         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
57388         * platform/gdk/PageGdk.cpp: Removed. No longer used.
57389         * platform/gdk/RenderThemeGdk.cpp:
57390         (WebCore::RenderThemeGdk::getThemeData):
57391         (WebCore::RenderThemeGdk::setCheckboxSize):
57392         (WebCore::RenderThemeGdk::paintCheckbox):
57393         (WebCore::RenderThemeGdk::setRadioSize):
57394         (WebCore::RenderThemeGdk::paintRadio):
57395         (WebCore::RenderThemeGdk::paintButton):
57396         (WebCore::RenderThemeGdk::adjustTextFieldStyle):
57397         (WebCore::RenderThemeGdk::paintTextField):
57398         (WebCore::RenderThemeGdk::paintTextArea):
57399         (WebCore::RenderThemeGdk::systemFont):
57400         * platform/gdk/RenderThemeGdk.h:
57401         * platform/gdk/ScreenGdk.cpp:
57402         (WebCore::screenDepth):
57403         (WebCore::screenDepthPerComponent):
57404         (WebCore::screenIsMonochrome):
57405         (WebCore::screenRect):
57406         (WebCore::screenAvailableRect):
57407
57408 2007-02-08  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57409
57410         Reviewed by Adam Roben.
57411
57412         Linux/gdk build fixes for cairo.
57413
57414         * platform/graphics/GraphicsContext.cpp:
57415         * platform/graphics/cairo/GraphicsContextCairo.cpp:
57416         (WebCore::GraphicsContext::GraphicsContext):
57417         (WebCore::GraphicsContext::strokeArc):
57418         (WebCore::GraphicsContext::drawFocusRing):
57419         (WebCore::GraphicsContext::setFocusRingClip):
57420         (WebCore::GraphicsContext::clearFocusRingClip):
57421         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
57422         (WebCore::GraphicsContext::origin):
57423         (WebCore::GraphicsContext::setPlatformFillColor):
57424         (WebCore::GraphicsContext::setPlatformStrokeColor):
57425         (WebCore::GraphicsContext::setPlatformStrokeThickness):
57426         (WebCore::GraphicsContext::setPlatformStrokeStyle):
57427         (WebCore::GraphicsContext::setPlatformFont):
57428         (WebCore::GraphicsContext::setURLForRect):
57429         (WebCore::GraphicsContext::addRoundedRectClip):
57430         (WebCore::GraphicsContext::addInnerRoundedRectClip):
57431         (WebCore::GraphicsContext::setShadow):
57432         (WebCore::GraphicsContext::clearShadow):
57433         (WebCore::GraphicsContext::beginTransparencyLayer):
57434         (WebCore::GraphicsContext::endTransparencyLayer):
57435         (WebCore::GraphicsContext::clearRect):
57436         (WebCore::GraphicsContext::strokeRect):
57437         (WebCore::GraphicsContext::setLineCap):
57438         (WebCore::GraphicsContext::setLineJoin):
57439         (WebCore::GraphicsContext::setMiterLimit):
57440         (WebCore::GraphicsContext::setAlpha):
57441         (WebCore::toCairoOperator):
57442         (WebCore::GraphicsContext::setCompositeOperation):
57443         (WebCore::GraphicsContext::clip):
57444         (WebCore::GraphicsContext::rotate):
57445         (WebCore::GraphicsContext::scale):
57446         (WebCore::GraphicsContext::clipOut):
57447         (WebCore::GraphicsContext::clipOutEllipseInRect):
57448         (WebCore::GraphicsContext::fillRoundedRect):
57449
57450 2007-02-08  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57451
57452         Reviewed by Adam Roben.
57453
57454         Linux/gdk build fixes.
57455
57456         * Projects/gdk/webcore-gdk.bkl:
57457         * WebCoreSources.bkl:
57458         * webcore-base.bkl:
57459
57460 2007-02-08  Brady Eidson  <beidson@apple.com>
57461
57462         Reviewed by Tim Hatcher
57463
57464         Tweaked the thread violation behavior to be disabled by default, and to provide
57465         an easy breakpoint to set.  
57466         The possibilities for the "WebCoreThreadCheck" user defaults key are -
57467           - The value "None" disables thread checking
57468           - The value "Log" causes an NSLog on a violation
57469           - The value "Exception" causes exceptions to be raised on a violation
57470
57471         * platform/Logging.h:
57472         * platform/mac/LoggingMac.mm:
57473         (WebCore::_WebCoreThreadViolationCheck):
57474         (WebCoreReportThreadViolation):  In the global namespace, making breakpoints cake!
57475
57476 2007-02-08  Brady Eidson  <beidson@apple.com>
57477
57478         Reviewed by Tim Hatcher
57479
57480         <rdar://problem/4983515> Need mechanism to protect against WebKit calls from secondary threads
57481         This initial landing is a conservative move until we can be certain of performance impact.
57482         By writing to the user defaults key @"WebCoreThreadCheck" for the WebKit app you're running -
57483           - The value "None" disables thread checking
57484           - The value "Exception" causes exceptions to be raised on a violation
57485           - The default is to do the check, and NSLog each violation
57486
57487         * bindings/objc/ExceptionHandlers.h:  Add a "Is Main Thread" assert macro
57488         * bindings/scripts/CodeGeneratorObjC.pm: Use new mechanism in allocs and deallocs for now
57489
57490         * platform/Logging.h: Added WebCoreThreadViolationCheck macro
57491         * platform/mac/LoggingMac.mm:
57492         (WebCore::_WebCoreThreadViolationCheck): Check for main-threadedness, and do some stuff
57493
57494 2007-02-08  Kevin McCullough  <KMcCullough@apple.com>
57495
57496         Reviewed by Maciej, Darin, and Mark.
57497
57498         rdar://problem/4922454
57499         - Prevents remote sites from executing local scripts.
57500
57501         * bindings/objc/DOM.mm: - renamed a function that is now in the base class
57502         (-[DOMElement image]):
57503         (-[DOMElement _imageTIFFRepresentation]):
57504         * dom/XMLTokenizer.cpp: - removed needless asserts
57505         (WebCore::XMLTokenizer::notifyFinished):
57506         * html/HTMLImageLoader.cpp: - renamed a function that is now in the base class
57507         (WebCore::HTMLImageLoader::dispatchLoadEvent):
57508         * html/HTMLTokenizer.cpp: - removed needless asserts
57509         (WebCore::HTMLTokenizer::reset):
57510         (WebCore::HTMLTokenizer::notifyFinished):
57511         * ksvg2/misc/SVGImageLoader.cpp: - renamed a function that is now in the base class
57512         (WebCore::SVGImageLoader::dispatchLoadEvent):
57513         * loader/Cache.cpp: - return early if an error occured
57514         (WebCore::Cache::requestResource):
57515         (WebCore::Cache::remove):
57516         * loader/CachedImage.h: - renamed a function that is now in the base class
57517         (WebCore::CachedImage::canRender):
57518         * loader/CachedResource.h: - renamed a function that is now in the base class
57519         (WebCore::CachedResource::errorOccurred):
57520         * loader/CachedScript.h: - renamed a function that is now in the base class 
57521         (WebCore::CachedScript::schedule):
57522         * loader/DocLoader.cpp: - The heart of the fix, prevents resources from being created or retrieved from the cache if a remote site is requesting the local resource.
57523         (WebCore::DocLoader::requestResource):
57524         (WebCore::DocLoader::setLoadInProgress):
57525         * page/EventHandler.cpp: - renamed a function that is now in the base class
57526         (WebCore::selectCursor):
57527         * rendering/HitTestResult.cpp: - renamed a function that is now in the base class
57528         (WebCore::HitTestResult::image):
57529         * rendering/RenderImage.cpp: - renamed a function that is now in the base class
57530         (WebCore::RenderImage::setCachedImage):
57531         (WebCore::RenderImage::imageChanged):
57532         (WebCore::RenderImage::paint):
57533         (WebCore::RenderImage::layout):
57534         (WebCore::RenderImage::calcAspectRatioWidth):
57535         (WebCore::RenderImage::calcAspectRatioHeight):
57536         * rendering/RenderImage.h: - renamed a function that is now in the base class
57537         (WebCore::RenderImage::errorOccurred):
57538         * rendering/RenderListItem.cpp: - renamed a function that is now in the base class
57539         (WebCore::RenderListItem::setStyle):
57540         * rendering/RenderListMarker.cpp: - renamed a function that is now in the base class
57541         (WebCore::RenderListMarker::isImage):
57542
57543 2007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57544
57545         Reviewed by Maciej.
57546
57547         Add updateGeometry() to gdk's ScrollView. Needed to fix resizing of the window
57548         in gdk.
57549
57550         * platform/ScrollView.h:
57551         * platform/gdk/ScrollViewGdk.cpp:
57552         (WebCore::ScrollView::updateGeometry):
57553         (WebCore::ScrollView::setDrawable):
57554
57555 2007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57556
57557         Reviewed by Maciej.
57558
57559         Linux/gdk build fixes.
57560
57561         * platform/ContextMenuItem.h:
57562         * platform/PlatformMenuDescription.h:
57563         * platform/gdk/PopupMenuGdk.cpp: Added. Renamed from RenderPopupMenuGdk.cpp for
57564         consistency with other platforms.
57565         (WebCore::PopupMenu::PopupMenu):
57566         (WebCore::PopupMenu::~PopupMenu):
57567         * platform/gdk/RenderPopupMenuGdk.cpp: Removed.
57568         * platform/gdk/RenderPopupMenuGdk.h: Removed.
57569
57570 2007-02-07  Mitz Pettel  <mitz@webkit.org>
57571
57572         Reviewed by Maciej.
57573
57574         - fix http://bugs.webkit.org/show_bug.cgi?id=12608
57575           Incorrect min. width calculation of a series of floats with clear:both and white-space:nowrap
57576
57577         Test: fast/block/float/nowrap-clear-min-width.html
57578
57579         * rendering/RenderBlock.cpp:
57580         (WebCore::RenderBlock::calcInlineMinMaxWidth):
57581
57582 2007-02-07  Mitz Pettel  <mitz@webkit.org>
57583
57584         Reviewed by Dave Hyatt.
57585
57586         - fix http://bugs.webkit.org/show_bug.cgi?id=10522
57587           REGRESSION: Incomplete repaint after table relayout that decreases height
57588
57589         Test: fast/repaint/intermediate-layout-position.html
57590
57591         * rendering/RenderBlock.cpp:
57592         (WebCore::RenderBlock::layoutBlock): Adjust the old bounds by the layout delta,
57593         to get the block's absolute bounds as they were before its ancestors moved it
57594         during layout.
57595         (WebCore::RenderBlock::collapseMargins): Update the layout delta for the child
57596         when moving it.
57597         (WebCore::RenderBlock::clearFloatsIfNeeded): Ditto.
57598         (WebCore::RenderBlock::determineHorizontalPosition): Ditto.
57599         (WebCore::RenderBlock::layoutBlockChildren): Ditto.
57600         * rendering/RenderFlexibleBox.cpp:
57601         (WebCore::RenderFlexibleBox::layoutBlock): Adjust the old bounds by the current
57602         layout delta.
57603         * rendering/RenderHTMLCanvas.cpp:
57604         (WebCore::RenderHTMLCanvas::layout): Ditto.
57605         * rendering/RenderImage.cpp:
57606         (WebCore::RenderImage::layout): Ditto.
57607         * rendering/RenderTable.cpp:
57608         (WebCore::RenderTable::layout): Ditto.
57609         * rendering/RenderView.h:
57610         (WebCore::RenderView::layoutDelta): Added. Keeps track of the offset between
57611         the position of the object currently being laid out and its position at the
57612         end of the last layout.
57613         (WebCore::RenderView::addLayoutDelta): Added.
57614
57615 2007-02-07  Christopher Brichford  <chrisb@adobe.com>
57616
57617         Reviewed by Brady.
57618
57619         http://bugs.webkit.org/show_bug.cgi?id=6286
57620         Very large (~500MB) images cause reproducible Safari crash
57621
57622         * loader/CachedImage.cpp: 
57623         (WebCore::CachedImage::bufferData): Detect failure to create a
57624         large Vector<> and call error() when that happens.
57625
57626 2007-02-07  Mitz Pettel  <mitz@webkit.org>
57627
57628         Reviewed by Dave Hyatt.
57629
57630         - fix http://bugs.webkit.org/show_bug.cgi?id=5399
57631           no-repeat on negatively positioned background images are ignored
57632
57633         Test: fast/backgrounds/repeat/negative-offset-repeat.html
57634
57635         - fix http://bugs.webkit.org/show_bug.cgi?id=5821
57636           Changing background of <col> doesn't repaint the column
57637
57638         Test: fast/repaint/table-col-background.html
57639
57640         - fix http://bugs.webkit.org/show_bug.cgi?id=11720
57641           REGRESSION: large amounts of CPU consumed viewing this site
57642
57643         * rendering/RenderBox.cpp:
57644         (WebCore::RenderBox::imageChanged): Added. Finds the border and/or background
57645         layer(s) that use the image and invalidates only the rect in which the image
57646         actually paints. There are two special cases in this function: 1) for the body
57647         element, the background is propagated to the root; 2) inline flows do a full
57648         repaint.
57649         (WebCore::RenderBox::calculateBackgroundImageGeometry): Added. Factored out,
57650         simplified and corrected the calculation of the rectangle into which the background
57651         image paints, the tile size and the pattern phase.
57652         (WebCore::RenderBox::paintBackgroundExtended):
57653         * rendering/RenderBox.h:
57654         * rendering/RenderObject.cpp:
57655         * rendering/RenderObject.h:
57656         (WebCore::RenderObject::imageChanged): Moved the implementation to RenderBox.
57657         * rendering/RenderTableCol.cpp:
57658         (WebCore::RenderTableCol::getAbsoluteRepaintRect): Overridden to return the
57659         table's repaint rect.
57660         (WebCore::RenderTableCol::imageChanged): Overridden to do a full repaint, which
57661         currently repaints the entire table.
57662         * rendering/RenderTableCol.h:
57663         * rendering/RenderTableRow.cpp:
57664         (WebCore::RenderTableRow::imageChanged): Overridden to do a full repaint
57665         of the row, since the backgrounds are painted by the cells.
57666         * rendering/RenderTableRow.h:
57667         * rendering/RenderTableSection.cpp:
57668         (WebCore::RenderTableSection::imageChanged): Overridden to do a full
57669         repaint of the section, since the backgrounds are painted by the cells.
57670         * rendering/RenderTableSection.h:
57671
57672 2007-02-07  Anders Carlsson  <acarlsson@apple.com>
57673
57674         Reviewed by Maciej.
57675
57676         Move shouldInterruptJavaScript to the Chrome.
57677
57678         * bindings/js/kjs_binding.cpp:
57679         (KJS::ScriptInterpreter::shouldInterruptScript):
57680         * page/Chrome.cpp:
57681         (WebCore::Chrome::shouldInterruptJavaScript):
57682         * page/Chrome.h:
57683         * page/ChromeClient.h:
57684         * page/Frame.h:
57685         * page/mac/FrameMac.h:
57686         * page/mac/FrameMac.mm:
57687         * page/mac/WebCoreFrameBridge.h:
57688         * platform/graphics/svg/SVGImageEmptyClients.h:
57689         (WebCore::SVGEmptyChromeClient::shouldInterruptJavaScript):
57690
57691 2007-02-07  Darin Adler  <darin@apple.com>
57692
57693         Reviewed by Maciej.
57694
57695         - <rdar://problem/4826861> WebKit tests show memory leaks in NSHTMLReader, caused by method named "hash"
57696
57697         * bindings/scripts/CodeGeneratorObjC.pm: Added a list of method names we should never use, since they
57698         are in base classes WebScriptObject and NSObject. Luckily, only "hash" is causing trouble. Added
57699         "hash" to the existing special case for "id". Now "hash" is "hashName" just as "id" is "idName".
57700
57701 2007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57702
57703         Reviewed by Adam Roben.
57704
57705         Linux/gdk build fixes for graphics-related stuff.
57706
57707         * platform/graphics/cairo/ImageCairo.cpp:
57708         (WebCore::BitmapImage::checkForSolidColor):
57709         * platform/graphics/cairo/ImageSourceCairo.cpp:
57710         (WebCore::ImageSource::setData):
57711         * platform/graphics/gdk/ImageGdk.cpp:
57712         (WebCore::BitmapImage::initPlatformData):
57713         (WebCore::BitmapImage::invalidatePlatformData):
57714         (WebCore::Image::loadPlatformResource):
57715         (WebCore::Image::drawPattern):
57716
57717 2007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57718
57719         Reviewed by Maciej.
57720
57721         Linux/gdk build fixes related to networking.
57722
57723         * platform/network/ResourceHandleInternal.h: Add accessor for m_client.
57724         (WebCore::ResourceHandleInternal::client):
57725         * platform/network/gdk/ResourceHandleCurl.cpp: Add missing functions and
57726         massage for changed APIs.
57727         (WebCore::ResourceHandle::start):
57728         (WebCore::ResourceHandle::cancel):
57729         (WebCore::ResourceHandle::bufferedData):
57730         (WebCore::ResourceHandle::supportsBufferedData):
57731         (WebCore::ResourceHandle::setDefersLoading):
57732         * platform/network/gdk/ResourceHandleManager.cpp: Rename get() to
57733         sharedInstance(). Massaged for changed APIs.
57734         (WebCore::ResourceHandleManager::sharedInstance):
57735         (WebCore::writeCallback):
57736         (WebCore::ResourceHandleManager::downloadTimerCallback):
57737         (WebCore::ResourceHandleManager::remove):
57738         * platform/network/gdk/ResourceHandleManager.h: Ditto.
57739
57740 2007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57741
57742         Reviewed by Maciej.
57743
57744         Mismatched type of alloc/free function crashes gdk build.
57745
57746         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
57747         (WebCore::JPEGImageReader::close):
57748
57749 2007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57750
57751         Reviewed by Adam Roben.
57752
57753         Linux/gdk build fixes - add file based on qt implementation.
57754
57755         * platform/DragData.h:
57756         * platform/gdk/DragDataGdk.cpp: Added.
57757
57758 2007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57759
57760         Reviewed by Adam Roben.
57761
57762         Linux/gdk build fixes - add new files based on qt implementation.
57763
57764         * page/gdk/DragControllerGdk.cpp: Added.
57765         (WebCore::DragController::dragOperation):
57766         * page/gdk/EventHandlerGdk.cpp: Added.
57767         (WebCore::EventHandler::focusDocumentView):
57768         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
57769         (WebCore::EventHandler::handleDrag):
57770         (WebCore::EventHandler::eventActivatedView):
57771
57772 2007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57773
57774         Reviewed by Adam Roben.
57775
57776         Linux/gdk build fixes - add new files based on Qt implementation.
57777
57778         * loader/gdk/DocumentLoaderGdk.cpp: Added.
57779         (WebCore::DocumentLoader::getResponseModifiedHeader):
57780         * loader/gdk/FrameLoaderClientGdk.cpp: Added.
57781         (WebCore::FrameLoaderClientGdk::FrameLoaderClientGdk):
57782         (WebCore::FrameLoaderClientGdk::frame):
57783         (WebCore::FrameLoaderClientGdk::userAgent):
57784         (WebCore::FrameLoaderClientGdk::createDocumentLoader):
57785         (WebCore::FrameLoaderClientGdk::dispatchWillSubmitForm):
57786         (WebCore::FrameLoaderClientGdk::committedLoad):
57787         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveAuthenticationChallenge):
57788         (WebCore::FrameLoaderClientGdk::dispatchDidCancelAuthenticationChallenge):
57789         (WebCore::FrameLoaderClientGdk::dispatchWillSendRequest):
57790         (WebCore::FrameLoaderClientGdk::assignIdentifierToInitialRequest):
57791         (WebCore::FrameLoaderClientGdk::postProgressStartedNotification):
57792         (WebCore::FrameLoaderClientGdk::postProgressEstimateChangedNotification):
57793         (WebCore::FrameLoaderClientGdk::postProgressFinishedNotification):
57794         (WebCore::FrameLoaderClientGdk::frameLoaderDestroyed):
57795         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveResponse):
57796         (WebCore::FrameLoaderClientGdk::dispatchDecidePolicyForMIMEType):
57797         (WebCore::FrameLoaderClientGdk::dispatchDecidePolicyForNewWindowAction):
57798         (WebCore::FrameLoaderClientGdk::dispatchDecidePolicyForNavigationAction):
57799         (WebCore::FrameLoaderClientGdk::createPlugin):
57800         (WebCore::FrameLoaderClientGdk::createFrame):
57801         (WebCore::FrameLoaderClientGdk::redirectDataToPlugin):
57802         (WebCore::FrameLoaderClientGdk::createJavaAppletWidget):
57803         (WebCore::FrameLoaderClientGdk::objectContentType):
57804         (WebCore::FrameLoaderClientGdk::overrideMediaType):
57805         (WebCore::FrameLoaderClientGdk::windowObjectCleared):
57806         (WebCore::FrameLoaderClientGdk::setMainFrameDocumentReady):
57807         (WebCore::FrameLoaderClientGdk::hasWebView):
57808         (WebCore::FrameLoaderClientGdk::hasFrameView):
57809         (WebCore::FrameLoaderClientGdk::dispatchDidFinishLoad):
57810         (WebCore::FrameLoaderClientGdk::frameLoadCompleted):
57811         (WebCore::FrameLoaderClientGdk::privateBrowsingEnabled):
57812         (WebCore::FrameLoaderClientGdk::makeDocumentView):
57813         (WebCore::FrameLoaderClientGdk::makeRepresentation):
57814         (WebCore::FrameLoaderClientGdk::forceLayout):
57815         (WebCore::FrameLoaderClientGdk::forceLayoutForNonHTML):
57816         (WebCore::FrameLoaderClientGdk::setCopiesOnScroll):
57817         (WebCore::FrameLoaderClientGdk::detachedFromParent1):
57818         (WebCore::FrameLoaderClientGdk::detachedFromParent2):
57819         (WebCore::FrameLoaderClientGdk::detachedFromParent3):
57820         (WebCore::FrameLoaderClientGdk::detachedFromParent4):
57821         (WebCore::FrameLoaderClientGdk::loadedFromPageCache):
57822         (WebCore::FrameLoaderClientGdk::dispatchDidHandleOnloadEvents):
57823         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveServerRedirectForProvisionalLoad):
57824         (WebCore::FrameLoaderClientGdk::dispatchDidCancelClientRedirect):
57825         (WebCore::FrameLoaderClientGdk::dispatchWillPerformClientRedirect):
57826         (WebCore::FrameLoaderClientGdk::dispatchDidChangeLocationWithinPage):
57827         (WebCore::FrameLoaderClientGdk::dispatchWillClose):
57828         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveIcon):
57829         (WebCore::FrameLoaderClientGdk::dispatchDidStartProvisionalLoad):
57830         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveTitle):
57831         (WebCore::FrameLoaderClientGdk::dispatchDidCommitLoad):
57832         (WebCore::FrameLoaderClientGdk::dispatchDidFinishDocumentLoad):
57833         (WebCore::FrameLoaderClientGdk::dispatchDidFirstLayout):
57834         (WebCore::FrameLoaderClientGdk::dispatchShow):
57835         (WebCore::FrameLoaderClientGdk::cancelPolicyCheck):
57836         (WebCore::FrameLoaderClientGdk::dispatchDidLoadMainResource):
57837         (WebCore::FrameLoaderClientGdk::revertToProvisionalState):
57838         (WebCore::FrameLoaderClientGdk::clearUnarchivingState):
57839         (WebCore::FrameLoaderClientGdk::willChangeTitle):
57840         (WebCore::FrameLoaderClientGdk::didChangeTitle):
57841         (WebCore::FrameLoaderClientGdk::finishedLoading):
57842         (WebCore::FrameLoaderClientGdk::finalSetupForReplace):
57843         (WebCore::FrameLoaderClientGdk::setDefersLoading):
57844         (WebCore::FrameLoaderClientGdk::isArchiveLoadPending):
57845         (WebCore::FrameLoaderClientGdk::cancelPendingArchiveLoad):
57846         (WebCore::FrameLoaderClientGdk::clearArchivedResources):
57847         (WebCore::FrameLoaderClientGdk::canHandleRequest):
57848         (WebCore::FrameLoaderClientGdk::canShowMIMEType):
57849         (WebCore::FrameLoaderClientGdk::representationExistsForURLScheme):
57850         (WebCore::FrameLoaderClientGdk::generatedMIMETypeForURLScheme):
57851         (WebCore::FrameLoaderClientGdk::restoreScrollPositionAndViewState):
57852         (WebCore::FrameLoaderClientGdk::provisionalLoadStarted):
57853         (WebCore::FrameLoaderClientGdk::didFinishLoad):
57854         (WebCore::FrameLoaderClientGdk::prepareForDataSourceReplacement):
57855         (WebCore::FrameLoaderClientGdk::setTitle):
57856         (WebCore::FrameLoaderClientGdk::setDocumentViewFromPageCache):
57857         (WebCore::FrameLoaderClientGdk::dispatchDidReceiveContentLength):
57858         (WebCore::FrameLoaderClientGdk::dispatchDidFinishLoading):
57859         (WebCore::FrameLoaderClientGdk::dispatchDidFailLoading):
57860         (WebCore::FrameLoaderClientGdk::dispatchDidLoadResourceFromMemoryCache):
57861         (WebCore::FrameLoaderClientGdk::dispatchDidFailProvisionalLoad):
57862         (WebCore::FrameLoaderClientGdk::dispatchDidFailLoad):
57863         (WebCore::FrameLoaderClientGdk::download):
57864         (WebCore::FrameLoaderClientGdk::cancelledError):
57865         (WebCore::FrameLoaderClientGdk::cannotShowURLError):
57866         (WebCore::FrameLoaderClientGdk::interruptForPolicyChangeError):
57867         (WebCore::FrameLoaderClientGdk::cannotShowMIMETypeError):
57868         (WebCore::FrameLoaderClientGdk::fileDoesNotExistError):
57869         (WebCore::FrameLoaderClientGdk::shouldFallBack):
57870         (WebCore::FrameLoaderClientGdk::willUseArchive):
57871         (WebCore::FrameLoaderClientGdk::saveScrollPositionAndViewStateToItem):
57872         (WebCore::FrameLoaderClientGdk::saveDocumentViewToPageCache):
57873         (WebCore::FrameLoaderClientGdk::canCachePage):
57874         (WebCore::FrameLoaderClientGdk::dispatchCreatePage):
57875         (WebCore::FrameLoaderClientGdk::dispatchUnableToImplementPolicy):
57876         (WebCore::FrameLoaderClientGdk::setMainDocumentError):
57877         (WebCore::FrameLoaderClientGdk::startDownload):
57878         (WebCore::FrameLoaderClientGdk::updateGlobalHistoryForStandardLoad):
57879         (WebCore::FrameLoaderClientGdk::updateGlobalHistoryForReload):
57880         (WebCore::FrameLoaderClientGdk::shouldGoToHistoryItem):
57881         * loader/gdk/FrameLoaderClientGdk.h: Added.
57882         (WebCore::FrameLoaderClientGdk::~FrameLoaderClientGdk):
57883         (WebCore::FrameLoaderClientGdk::setFrame):
57884
57885 2007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57886
57887         Reviewed by Maciej.
57888
57889         Linux/gdk fixes related to fonts.
57890
57891         * platform/gdk/FontDataGdk.cpp:
57892         (WebCore::FontData::platformInit): remove a work-around for older cairo versions
57893         since Ubuntu 6.10 ships with cairo that is new enough
57894         * platform/gdk/FontGdk.cpp:
57895         (WebCore::Font::drawGlyphs):
57896         * platform/gdk/FontPlatformDataGdk.cpp: Remove unused variables.
57897         (WebCore::FontPlatformData::FontPlatformData):
57898
57899 2007-02-07  Alexey Proskuryakov  <ap@webkit.org>
57900
57901         Reviewed by Darin.
57902
57903         http://bugs.webkit.org/show_bug.cgi?id=12582
57904         REGRESSION: Unclosed <title> makes the window display garbage or empty title
57905
57906         Automatic testing is not possible, and manual testing probably doesn't make sense.
57907
57908         * loader/DocumentLoader.cpp:
57909         (WebCore::canonicalizedTitle): Bail out early if the passed in string is all whitespace.
57910
57911 2007-02-06  Anders Carlsson  <acarlsson@apple.com>
57912
57913         Reviewed by John Sullivan.
57914
57915         <rdar://problem/4977952>
57916         REGRESSION: Yahoo Messenger IM is totally blank
57917         
57918         * loader/FrameLoader.cpp:
57919         (WebCore::FrameLoader::checkContentPolicy):
57920         Don't ask the policy delegate for content that has valid substitute data.
57921         
57922         (WebCore::FrameLoader::checkNavigationPolicy):
57923         If the loader has substitute data but doesn't have an unreachable URL, let the policy
57924         delegate decide what to do.
57925
57926 2007-02-07  Geoffrey Garen  <ggaren@apple.com>
57927
57928         Reviewed by Darin Adler.
57929
57930         Restoring some of the functionality I removed in r19445. It's insufficient for
57931         each page to cancel keepAlive only for its child frames, because a frame
57932         can be removed from the page before we get a chance to cancel its keepAlive.
57933         So, the page destructor has to cancel keepAlive for all frames. This is safe
57934         because we prohibit closing a WebView while JavaScript is executing.
57935
57936         * page/Frame.cpp:
57937         (WebCore::keepAliveSet):
57938         (WebCore::Frame::keepAlive):
57939         (WebCore::Frame::cancelAllKeepAlive):
57940         (WebCore::Frame::lifeSupportTimerFired):
57941         * page/Frame.h:
57942         * page/Page.cpp:
57943         (WebCore::Page::~Page):
57944
57945 2007-02-07  Alexey Proskuryakov  <ap@webkit.org>
57946
57947         Reviewed by Darin.
57948
57949         http://bugs.webkit.org/show_bug.cgi?id=12603
57950         A crash when trying to use XPath functions normalize-space(), string-length() and number()
57951
57952         Test: fast/xpath/implicit-node-args.html
57953
57954         * xml/XPathFunctions.cpp:
57955         (WebCore::XPath::FunNumber::doEvaluate): Implemented zero parameter case.
57956         (WebCore::XPath::FunctionMapping::): Corrected descriptions of these functions, as they
57957         do allow zero parameters.
57958         (WebCore::XPath::createFunction): Combined the two failure cases to ensure that this
57959         function never returns 0.
57960
57961 2007-02-07  Zack Rusin  <zrusin@trolltech.com>
57962
57963         Fix compilation
57964
57965         * page/qt/EventHandlerQt.cpp:
57966         (WebCore::EventHandler::eventActivatedView):
57967
57968 2007-02-06  Alice Liu  <alice.liu@apple.com>
57969
57970         Reviewed by Maciej.
57971
57972         Added editing command functions for scrolling by page and moving the caret
57973
57974         * editing/Editor.cpp:
57975         (WebCore::execMoveUpByPageAndModifyCaret):
57976         (WebCore::execMoveDownByPageAndModifyCaret):
57977         (WebCore::CommandEntry::):
57978
57979 2007-02-06  Justin Garcia  <justin.garcia@apple.com>
57980
57981         Reviewed by john
57982
57983         <rdar://problem/4922367>
57984         WebView selectLine: followed by deleteBackward: deletes TABLE element of following line
57985
57986         * editing/AppendNodeCommand.cpp:
57987         (WebCore::AppendNodeCommand::doApply): Don't ASSERT when manipulating
57988         non-editable content that is embedded in editable content.  We'll do 
57989         this kind of manipulation when removing redundant style spans after
57990         pasting content that has non-editable pieces.
57991         * editing/InsertNodeBeforeCommand.cpp:
57992         (WebCore::InsertNodeBeforeCommand::doApply): Ditto.
57993         * editing/htmlediting.cpp:
57994         (WebCore::isContentEditable): Added, wrapper for Node::isContentEditable
57995         (WebCore::rangeCompliantEquivalent): Although legal, 
57996         [{table, select, etc.}, {0, numChildren}] don't refer to children of the element, 
57997         but positions before and after the element.  So, rangeCompliantEquivalent is 
57998         really responsible for converting illegal positions *and* legal positions 
57999         that have a special meaning internally.
58000         * editing/htmlediting.h:
58001
58002 2007-02-06  Anders Carlsson  <acarlsson@apple.com>
58003
58004         Reviewed by Brady.
58005
58006         * platform/String.cpp:
58007         (WebCore::String::ascii):
58008         Fix dumping null Strings.
58009
58010 2007-02-06  Anders Carlsson  <acarlsson@apple.com>
58011
58012         Reviewed by Geoff.
58013
58014         Fix <rdar://problem/4979484>
58015         
58016         * css/CSSPrimitiveValue.cpp:
58017         (WebCore::isCSSTokenizerIdentifier):
58018         Do the range check before calling isalpha or isalnum.
58019
58020 2007-02-06  Geoffrey Garen  <ggaren@apple.com>
58021
58022         Reviewed by Darin Adler.
58023
58024         Fixed Frame/RenderObject/Node leak report seen while running SVG image tests.
58025         (We'll need this fix if we ever re-enable SVG image.)
58026         
58027         The extra reference belonged to the Frame keepAlive timer (so this was
58028         not a "real" leak, in the end). The Page destructor has code to cancel all 
58029         Frame keepAlive timers upon the destruction of the last Page, but an SVG 
58030         image puts a Page within a Page, making this condition impossible to meet.
58031         
58032         The fix here is to have each individual page cancel the keepAlive timers 
58033         belonging to its child frames.
58034         
58035         * page/Frame.cpp: Changed the FrameCounter to use WTF logging.
58036         (WebCore::): Nixed the lifeSupportSet, since it's no longer used.
58037         (WebCore::Frame::cancelKeepAlive): Renamed from "endLifeSupport" to match
58038         the name "keepAlive".
58039         * page/Page.cpp:
58040         (WebCore::Page::~Page): Made each page cancel its child keepAlive timers 
58041         and clear its mainFrame, since we may never reach the condition of having 0 Pages.
58042
58043 2007-02-06  Adam Roben  <aroben@apple.com>
58044
58045         Rubberstamped by Brady.
58046
58047         Revert the log channel constants to their old values for all you pretty
58048         people out there who were using the old ones. I also renamed
58049         LogResources to LogPlatformLeaks to be a bit more specific.
58050
58051         * platform/Logging.cpp:
58052         (WebCore::):
58053         * platform/Logging.h:
58054
58055 2007-02-05  Justin Garcia  <justin.garcia@apple.com>
58056
58057         Reviewed by john
58058
58059         <rdar://problem/4959067>
58060         Bullets get erased or moved down to another line
58061         <rdar://problem/4912529>
58062         Seed: Bulleted list in Note in Mail.app does not work with Japanese input mode
58063         
58064         Do not expand the selection to include fully selected 
58065         special elements when insering text over a selection.
58066
58067         * editing/CompositeEditCommand.cpp:
58068         (WebCore::CompositeEditCommand::deleteSelection): Pass
58069         expandForSpecialElements through to DeleteSelectionCommand's constructor.
58070         (WebCore::CompositeEditCommand::moveParagraphs): Use the 
58071         convenience function.
58072         * editing/CompositeEditCommand.h:
58073         * editing/DeleteSelectionCommand.h:
58074         * editing/InsertTextCommand.cpp:
58075         (WebCore::InsertTextCommand::input): Do not expand the selection
58076         to be deleted for special elements.
58077         * editing/ReplaceSelectionCommand.cpp:
58078         (WebCore::ReplaceSelectionCommand::doApply): Added a FIXME about 
58079         when we should expand the selection.
58080
58081 2007-02-06  Geoffrey Garen  <ggaren@apple.com>
58082
58083         Reviewed by Anders Carlsson.
58084         
58085         Disabled support for SVG image because it crashes all the time.
58086
58087         * loader/CachedImage.cpp:
58088         (WebCore::CachedImage::createImage):
58089
58090 2007-02-06  Mitz Pettel  <mitz@webkit.org>
58091
58092         Reviewed by Darin.
58093
58094         - fix http://bugs.webkit.org/show_bug.cgi?id=12518
58095           Betsson.com crashes browser
58096
58097         Test: fast/layers/generated-layer-scrollbar-crash.html
58098
58099         * rendering/RenderLayer.cpp:
58100         (WebCore::RenderLayer::createScrollbar): Changed element()->document() to
58101         document() to work with anonymous objects.
58102         (WebCore::RenderLayer::updateOverflowStatus): Ditto.
58103
58104 2007-02-06  Eric Seidel  <eric@webkit.org>
58105
58106         Reviewed by mitz.
58107
58108         WebKit ignores floating point values for stroke-miterlimit
58109         http://bugs.webkit.org/show_bug.cgi?id=12577
58110         
58111         Test: svg/W3C-SVG-1.1/painting-stroke-07-t.svg
58112
58113         * ksvg2/css/SVGCSSParser.cpp:
58114         (WebCore::CSSParser::parseSVGValue):
58115         * ksvg2/css/SVGCSSStyleSelector.cpp:
58116         (WebCore::CSSStyleSelector::applySVGProperty):
58117         * ksvg2/css/SVGRenderStyle.h:
58118         * ksvg2/css/SVGRenderStyleDefs.h:
58119         (WebCore::StyleStrokeData::operator!=):
58120
58121 2007-02-06  Adam Roben  <aroben@apple.com>
58122
58123         Reviewed by Ada and Oliver.
58124
58125         Adding a new LogResources channel for tracking platform resource usage.
58126
58127         * platform/Logging.cpp: Added new channel, cleaned up constants to be more readable.
58128         * platform/Logging.h: Declare new channel.
58129
58130 2007-02-06  Alexey Proskuryakov  <ap@webkit.org>
58131
58132         Reviewed by Geoff.
58133
58134         http://bugs.webkit.org/show_bug.cgi?id=12619
58135         Non-abbreviated XPaths don't work
58136
58137         Test: fast/xpath/ancestor-axis.html
58138
58139         * xml/XPathParser.cpp:
58140         (WebCore::XPath::Parser::lex): Fix axis name parsing to actually work.
58141         * xml/XPathStep.cpp:
58142         (WebCore::XPath::Step::nodeTestMatches): Fix "*" node test to actually work.
58143
58144 2007-02-06  Mark Rowe  <mrowe@apple.com>
58145
58146         Roll out incomplete support for font-stretch (r19350) at Dave Hyatt's request.
58147         See http://bugs.webkit.org/show_bug.cgi?id=12530#c9 for more info.
58148
58149         * css/CSSComputedStyleDeclaration.cpp:
58150         (WebCore::):
58151         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
58152         * css/cssparser.cpp:
58153         (WebCore::CSSParser::parseValue):
58154         * css/cssstyleselector.cpp:
58155         (WebCore::CSSStyleSelector::applyDeclarations):
58156         (WebCore::CSSStyleSelector::applyProperty):
58157         * platform/FontCache.cpp:
58158         (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
58159         (WebCore::FontPlatformDataCacheKey::operator==):
58160         (WebCore::computeHash):
58161         (WebCore::FontPlatformDataCacheKeyTraits::deletedValue):
58162         (WebCore::FontPlatformDataCacheKeyTraits::emptyValue):
58163         (WebCore::FontCache::getCachedFontPlatformData):
58164         * platform/FontDescription.h:
58165         (WebCore::FontDescription::FontDescription):
58166         (WebCore::FontDescription::weight):
58167         (WebCore::FontDescription::setWeight):
58168         (WebCore::FontDescription::operator==):
58169         * platform/mac/FontCacheMac.mm:
58170         (WebCore::FontCache::createFontPlatformData):
58171         * platform/mac/WebFontCache.mm:
58172         (acceptableChoice):
58173         (betterChoice):
58174         (+[WebFontCache fontWithFamily:traits:size:]):
58175
58176 2007-02-05  Adele Peterson  <adele@apple.com>
58177
58178         Reviewed by Darin.
58179
58180         A few small updates to my bidi patch.
58181
58182         * rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::paintObject): Moved the declaration of the CharacterBuffer outside the if statement since we use its data outside that scope.
58183         * rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintItemForeground): ditto.
58184         * rendering/bidi.cpp: (WebCore::RenderBlock::bidiReorderCharacters): Used a PassRefPtr for the BidiContext.
58185
58186 2007-02-05  Adele Peterson  <adele@apple.com>
58187
58188         Reviewed by Adam.
58189
58190         Fix for assertion failure in fast/events/objc-keyboard-event-creation.html
58191
58192         * html/HTMLInputElement.cpp:
58193         (WebCore::HTMLInputElement::selectionStart): Check that the selection offsets are not equal to -1 (which is means the selection has never been set) instead of checking for >= 0.
58194         (WebCore::HTMLInputElement::selectionEnd): ditto.
58195         (WebCore::HTMLInputElement::setValue): ditto.
58196         (WebCore::HTMLInputElement::selection): Return an empty selection if the input is not a text field or if no selection has ever been set in the text field.
58197         * html/HTMLTextAreaElement.cpp:
58198         (WebCore::HTMLTextAreaElement::selectionStart): Check that the selection offsets are not equal to -1.
58199         (WebCore::HTMLTextAreaElement::selectionEnd): ditto.
58200         (WebCore::HTMLTextAreaElement::setValue): ditto.
58201         (WebCore::HTMLTextAreaElement::selection): Return an empty selection if no selection has ever been set in the textarea.
58202
58203         * dom/Position.cpp: Added FIXMEs that we should catch the negative offset earlier.
58204         (WebCore::Position::previous):
58205         (WebCore::Position::next):
58206
58207 2007-02-05  Justin Garcia  <justin.garcia@apple.com>
58208
58209         Reviewed by harrison
58210
58211         <rdar://problem/4947387>
58212         REGRESSION Shift Command Left should only select to the beginning of the line
58213
58214         * editing/Editor.cpp:
58215         (WebCore::CommandEntry::): Never copy/paste code.
58216
58217 2007-02-05  Darin Adler  <darin@apple.com>
58218
58219         Reviewed by John Sullivan.
58220
58221         - fix http://bugs.webkit.org/show_bug.cgi?id=11535
58222           <rdar://problem/4946959> REGRESSION: onclick="this.select();" not working on new forms (11535)
58223
58224         Test: fast/forms/input-select-on-click.html
58225
58226         * page/EventHandler.h: Added m_mouseDownWasSingleClickInSelection boolean.
58227         Organized other booleans a bit more logically.
58228         * page/EventHandler.cpp:
58229         (WebCore::EventHandler::EventHandler): Rearrange order to match EventHandler.h, add
58230         m_mouseDownWasSingleClickInSelection initialization.
58231         (WebCore::EventHandler::handleMousePressEventSingleClick): Set m_mouseDownWasSingleClickInSelection
58232         to true in the appropriate special case.
58233         (WebCore::EventHandler::handleMousePressEvent): Set m_mouseDownWasSingleClickInSelection to false.
58234         (WebCore::EventHandler::handleMouseReleaseEvent): Change code to clear selection or set to caret to
58235         only fire if m_mouseDownWasSingleClickInSelection was true rather than firing for any
58236         m_mouseDownMayStartSelect case.
58237
58238 2007-02-05  George Staikos  <staikos@kde.org>
58239
58240         Reviewed by Maciej.
58241
58242         Send HTTP cookies.
58243
58244         * platform/network/qt/ResourceHandleManagerQt.cpp:
58245         (WebCore::RequestQt::RequestQt):
58246
58247 2007-02-05  Adele Peterson  <adele@apple.com>
58248
58249         Reviewed by Mitz and Anders.
58250
58251         Fix for http://bugs.webkit.org/show_bug.cgi?id=11811
58252         <rdar://problem/4947184> REGRESSION (r11783): Hebrew text in list boxes is reversed
58253
58254         http://bugs.webkit.org/show_bug.cgi?id=11812
58255         <rdar://problem/4960269> REGRESSION (Native file upload): Hebrew filenames are reversed
58256
58257         Tests: 
58258         fast/text/international/bidi-listbox.html
58259         fast/text/international/bidi-listbox-atsui.html
58260
58261         * rendering/RenderBlock.h: Added static bidiReorderCharacters that will run the bidi algorithm on a character buffer.
58262         * rendering/bidi.cpp:
58263         (WebCore::RenderBlock::bidiReorderCharacters): Added. Creates an anonymous RenderBlock and RenderText to feed into bidiReorderLines.
58264         (WebCore::RenderBlock::constructLine): Uses the new convenience methods on BidiRun.
58265         * rendering/bidi.h:
58266         (WebCore::BidiRun::reversed): Added convenience method.
58267         (WebCore::BidiRun::dirOverride): ditto.
58268
58269         * rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::paintObject): Creates a buffer and calls bidiReorderCharacters
58270           to get a correctly ordered character buffer for drawText.
58271         * rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintItemForeground): ditto.
58272
58273 2007-02-05  Mitz Pettel  <mitz@webkit.org>
58274
58275         Reviewed by Darin.
58276
58277         - fix http://bugs.webkit.org/show_bug.cgi?id=12590
58278           REGRESSION: Text selection is weird in textareas in Trac wiki editing pages
58279
58280         Test: fast/repaint/selection-gap-overflow-scroll.html
58281
58282         * rendering/RenderBlock.cpp:
58283         (WebCore::RenderBlock::selectionGapRects): Adjust for overflow scroll.
58284
58285 2007-02-05  Mitz Pettel  <mitz@webkit.org>
58286
58287         Reviewed by Adele.
58288
58289         - fix http://bugs.webkit.org/show_bug.cgi?id=11916
58290           REGRESSION (SearchField): RTL search fields are mixed up
58291
58292         Test: fast/forms/search-rtl.html
58293
58294         * rendering/RenderTextControl.cpp:
58295         (WebCore::RenderTextControl::createInnerBlockStyle): Always make the inner
58296         block LTR so that the results button will be on the left and the cancel
58297         button will be on the right.
58298         (WebCore::RenderTextControl::createInnerTextStyle): Inherit the direction
58299         property directly from the control so that it won't be masked by the inner
58300         block's LTR override.
58301         (WebCore::RenderTextControl::nodeAtPoint): Removed code that swapped the
58302         results and cancel buttons for RTL.
58303         (WebCore::RenderTextControl::forwardEvent): Ditto.
58304         (WebCore::RenderTextControl::clientPaddingLeft): Ditto.
58305         (WebCore::RenderTextControl::clientPaddingRight): Ditto.
58306
58307 2007-02-05  Mitz Pettel  <mitz@webkit.org>
58308
58309         Reviewed by Adele.
58310
58311         - fix http://bugs.webkit.org/show_bug.cgi?id=12618
58312           REGRESSION (SearchField): Dragging across the text and releasing over the clear button clears the field
58313
58314         Test: fast/forms/search-cancel-button-mouseup.html
58315
58316         Made the cancel button capturing.
58317
58318         * html/HTMLTextFieldInnerElement.cpp:
58319         (WebCore::HTMLSearchFieldCancelButtonElement::HTMLSearchFieldCancelButtonElement):
58320         (WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
58321         * html/HTMLTextFieldInnerElement.h:
58322
58323 2007-02-05  Mitz Pettel  <mitz@webkit.org>
58324
58325         Reviewed by Darin.
58326
58327         - fix http://bugs.webkit.org/show_bug.cgi?id=6626
58328           Arabic & Farsi rendered with no shaping (all glyphs separate, unreadable!)
58329
58330         No test possible since Mac OS X only ships with fonts that contain shaping
58331         information.
58332
58333         * icu/unicode/ushape.h: Added from
58334         http://www.opensource.apple.com/darwinsource/10.4.8.ppc/ICU-6.2.9/icuSources/common/unicode/
58335         * platform/FontData.h:
58336         (WebCore::FontData::shapesArabic): Added. Returns whether the font contains
58337         shaping information for Arabic or not.
58338         * platform/mac/FontDataMac.mm:
58339         (WebCore::FontData::platformInit):
58340         (WebCore::FontData::checkShapesArabic): Added. Checks whether the font contains
58341         a glyph metamorphosis table. The heuristic is that if a font contains Arabic glyphs
58342         and a metamorphosis table, then it includes shaping information for Arabic.
58343         * platform/mac/FontMac.mm:
58344         (WebCore::overrideLayoutOperation): Changed to use the same character buffer passed
58345         to ATSUI instead of the original character buffer and to give zero-width spaces zero
58346         width.
58347         (WebCore::isArabicLamWithAlefLigature): Added. Checks if the character is one
58348         of the Arabic presentation forms of Lam with Alef.
58349         (WebCore::shapeArabic): Added. This is a wrapper around the ICU Arabic shaping routine
58350         that replaces each space following a Lam with Alef ligature resulting from shaping
58351         with a zero-width space.
58352         (WebCore::ATSULayoutParameters::initialize): Changed to allocate the auxiliary buffer
58353         lazily for mirroring and Arabic shaping. Added a call to shapeArabic() when required.
58354
58355 2007-02-05  Eric Seidel  <eric@webkit.org>
58356
58357         No review, build fix only.
58358
58359         * ksvg2/svg/SVGStyleElement.cpp: add forgotten header.
58360
58361 2007-02-05  Eric Seidel  <eric@webkit.org>
58362
58363         Reviewed by bdash.
58364
58365         Fix style name testcase which I broke in my last commit.
58366
58367         * ksvg2/svg/SVGStyleElement.cpp:
58368         (WebCore::SVGStyleElement::xmlspace):
58369         (WebCore::SVGStyleElement::title): override Element::title()
58370         (WebCore::SVGStyleElement::parseMappedAttribute):
58371         * ksvg2/svg/SVGStyleElement.h:
58372
58373 2007-02-04  Eric Seidel  <eric@webkit.org>
58374
58375         Reviewed by darin.
58376
58377         Fix hand cursor on link hover for SVG
58378         Fix status text on link hover for SVG
58379         Fix tooltips on link hover for SVG
58380         Fix link dragging for SVG
58381         http://bugs.webkit.org/show_bug.cgi?id=12575
58382         
58383         Test: added manual-tests/svg-links.svg
58384
58385         * dom/Document.cpp:
58386         (WebCore::Document::prepareMouseEvent):
58387         * dom/Element.cpp:
58388         (WebCore::Element::title):
58389         * dom/Element.h:
58390         * html/HTMLElement.cpp:
58391         (WebCore::HTMLElement::setId):
58392         (WebCore::HTMLElement::title):
58393         (WebCore::HTMLElement::setTitle):
58394         (WebCore::HTMLElement::setLang):
58395         * html/HTMLElement.h:
58396         * ksvg2/svg/SVGAElement.cpp:
58397         (WebCore::SVGAElement::title):
58398         (WebCore::SVGAElement::parseMappedAttribute):
58399         (WebCore::SVGAElement::defaultEventHandler):
58400         * ksvg2/svg/SVGAElement.h:
58401         * ksvg2/svg/SVGTitleElement.cpp:
58402         * ksvg2/svg/SVGTitleElement.h:
58403         * manual-tests/svg-links.svg: Added.
58404         * rendering/HitTestResult.cpp:
58405         (WebCore::HitTestResult::title):
58406         (WebCore::HitTestResult::absoluteImageURL):
58407         (WebCore::HitTestResult::absoluteLinkURL):
58408         (WebCore::HitTestResult::isLiveLink):
58409         (WebCore::HitTestResult::titleDisplayString):
58410
58411 2007-02-04  Alexey Proskuryakov  <ap@webkit.org>
58412
58413         Reviewed by Darin.
58414
58415         http://bugs.webkit.org/show_bug.cgi?id=12602
58416         XPath functions string(), normalize-space() and string-length() don't work
58417         without arguments
58418
58419         Test: fast/xpath/implicit-node-args.html
58420
58421         * xml/XPathFunctions.cpp:
58422         (WebCore::XPath::FunString::doEvaluate):
58423         (WebCore::XPath::FunStringLength::doEvaluate):
58424         (WebCore::XPath::FunNormalizeSpace::doEvaluate):
58425         Don't try to pass RefPtr<Node> to the Value ctor.
58426
58427 2007-02-04  Alexey Proskuryakov  <ap@webkit.org>
58428
58429         Reviewed by Darin.
58430
58431         http://bugs.webkit.org/show_bug.cgi?id=8791
58432         XPath should support custom node resolvers
58433
58434         * bindings/js/JSCustomXPathNSResolver.cpp: Added.
58435         (WebCore::JSCustomXPathNSResolver::create):
58436         (WebCore::JSCustomXPathNSResolver::JSCustomXPathNSResolver):
58437         (WebCore::JSCustomXPathNSResolver::~JSCustomXPathNSResolver):
58438         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
58439         * bindings/js/JSCustomXPathNSResolver.h: Added.
58440         * bindings/objc/DOMCustomXPathNSResolver.h: Added.
58441         * bindings/objc/DOMCustomXPathNSResolver.mm: Added.
58442         (WebCore::DOMCustomXPathNSResolver::DOMCustomXPathNSResolver):
58443         (WebCore::DOMCustomXPathNSResolver::~DOMCustomXPathNSResolver):
58444         (WebCore::DOMCustomXPathNSResolver::lookupNamespaceURI):
58445         Wrappers for JS/ObjC objects that can be used as resolvers.
58446
58447         * bindings/scripts/CodeGeneratorJS.pm:
58448         * bindings/scripts/CodeGeneratorObjC.pm:
58449         Use the above wrappers to support custom resolvers.
58450
58451         * xml/XPathNSResolver.cpp:
58452         * xml/XPathNSResolver.h:
58453         Turned this class into an abstract one.
58454
58455         * xml/NativeXPathNSResolver.cpp: Added.
58456         (WebCore::NativeXPathNSResolver::NativeXPathNSResolver):
58457         (WebCore::NativeXPathNSResolver::~NativeXPathNSResolver):
58458         (WebCore::NativeXPathNSResolver::lookupNamespaceURI):
58459         * xml/NativeXPathNSResolver.h: Added.
58460         A XPathNSResolver subclass, doing what XPathNSResolver used to do.
58461
58462         * xml/XPathEvaluator.cpp:
58463         (WebCore::XPathEvaluator::createNSResolver): Create a NativeXPathNSResolver.
58464
58465         * WebCore.xcodeproj/project.pbxproj: Added new files.
58466
58467 2007-02-04  Oliver Hunt  <oliver@apple.com>
58468
58469         Reviewed by Adam.
58470
58471         Tidying up EventHandler, and moving more of
58472         EventHandlerMac.mm to EventHandler.cpp
58473
58474         Also added EventHandler::eventLoopHandleMouse[Dragged,Up]
58475         these are basically helper functions to allow correct event
58476         handling on MacOS.        
58477
58478         * page/EventHandler.cpp:
58479         (WebCore::EventHandler::handleMouseUp):
58480         (WebCore::EventHandler::dragSourceMovedTo):
58481         (WebCore::EventHandler::dragSourceEndedAt):
58482         (WebCore::EventHandler::dispatchDragSrcEvent):
58483            Moved from EventHandlerMac to EventHandler
58484
58485         * page/EventHandler.h:
58486         (WebCore::EventHandler::eventLoopHandleMouseUp):
58487         (WebCore::EventHandler::eventLoopHandleMouseDragged):
58488           Null implementations of two Mac helper functions
58489         * page/mac/EventHandlerMac.mm:
58490         (WebCore::EventHandler::eventLoopHandleMouseDragged):           
58491         (WebCore::EventHandler::handleDrag):
58492           Much tidying, reduced nesting, made less dependent on NS types   
58493         (WebCore::EventHandler::eventLoopHandleMouseDragged):
58494         (WebCore::EventHandler::eventLoopHandleMouseUp):  
58495           Helper functions to let us process events properly on MacOS
58496
58497         * page/mac/WebCoreFrameBridge.mm:
58498         (-[WebCoreFrameBridge dragSourceEndedAt:operation:]):
58499
58500 2007-02-04  George Staikos  <staikos@kde.org>
58501
58502         Reviewed by Zack.
58503
58504         Some Qt hacks and cleanups - makes rendering of forms much better on
58505         OS X
58506
58507         * platform/qt/PlatformKeyboardEventQt.cpp: Add Key_Return/Enter
58508         (WebCore::keyIdentifierForQtKeyCode):
58509         (WebCore::windowsKeyCodeForKeyEvent):
58510         * platform/qt/RenderThemeQt.cpp: Hacks and fix buttons
58511         (WebCore::RenderThemeQt::addIntrinsicMargins):
58512         (WebCore::RenderThemeQt::setCheckboxSize):
58513         (WebCore::RenderThemeQt::supportsFocus):
58514         (WebCore::RenderThemeQt::applyTheme):
58515
58516 2007-02-03  Maciej Stachowiak  <mjs@apple.com>
58517
58518         Rubber stamped by Adam.
58519
58520         - remove obsolete code that has an annoying space in the directory name
58521
58522         * WebCore.vcproj/Image Viewer/Image Viewer.cpp: Removed.
58523         * WebCore.vcproj/Image Viewer/Image Viewer.h: Removed.
58524         * WebCore.vcproj/Image Viewer/Image Viewer.rc: Removed.
58525         * WebCore.vcproj/Image Viewer/Image Viewer.reg: Removed.
58526         * WebCore.vcproj/Image Viewer/Image Viewer.vcproj: Removed.
58527         * WebCore.vcproj/Image Viewer/ImageDocument.cpp: Removed.
58528         * WebCore.vcproj/Image Viewer/ImageDocument.h: Removed.
58529         * WebCore.vcproj/Image Viewer/ImageMainFrame.cpp: Removed.
58530         * WebCore.vcproj/Image Viewer/ImageMainFrame.h: Removed.
58531         * WebCore.vcproj/Image Viewer/ImageView.cpp: Removed.
58532         * WebCore.vcproj/Image Viewer/ImageView.h: Removed.
58533         * WebCore.vcproj/Image Viewer/Resource.h: Removed.
58534         * WebCore.vcproj/Image Viewer/res/Image Viewer.ico: Removed.
58535         * WebCore.vcproj/Image Viewer/res/Image ViewerDoc.ico: Removed.
58536         * WebCore.vcproj/Image Viewer/res/ImageViewer.rc2: Removed.
58537         * WebCore.vcproj/Image Viewer/res/Toolbar.bmp: Removed.
58538         * WebCore.vcproj/Image Viewer/stdafx.cpp: Removed.
58539         * WebCore.vcproj/Image Viewer/stdafx.h: Removed.
58540
58541 2007-02-04  Mitz Pettel  <mitz@webkit.org>
58542
58543         Reviewed by Oliver.
58544
58545         - fix http://bugs.webkit.org/show_bug.cgi?id=12564
58546           REGRESSION: Uncaught AppKit exception when using the scrollwheel while Gmail is loading
58547
58548         * platform/mac/PlatformMouseEventMac.mm:
58549         (WebCore::eventNumberForEvent): Scroll wheel events don't have an event number.
58550
58551 2007-02-04  Nikolas Zimmermann  <zimmermann@kde.org>
58552
58553         Reviewed by Sam.
58554
58555         Add support for xml:space="preserve" for SVG text.
58556         It can be modeled by using white-space="pre" and replace \n by spaces.
58557
58558         Handle xml:space="default" correctly.
58559         Always remove tabs from SVG text - as demanded by spec.
58560
58561         Added test: svg/custom/text-whitespace-handling.svg
58562
58563         * css/svg.css:
58564         * ksvg2/svg/SVGTextContentElement.cpp:
58565         (WebCore::SVGTextContentElement::parseMappedAttribute):
58566         * rendering/RenderText.cpp:
58567         (WebCore::RenderText::setStyle):
58568         (WebCore::RenderText::setTextInternal):
58569         * rendering/bidi.cpp:
58570         (WebCore::shouldPreserveNewline):
58571         (WebCore::RenderBlock::skipWhitespace):
58572         (WebCore::RenderBlock::findNextLineBreak):
58573
58574 2007-02-03  Alexey Proskuryakov  <ap@webkit.org>
58575
58576         Reviewed by Darin.
58577
58578         http://bugs.webkit.org/show_bug.cgi?id=12560
58579         W3C XPath test Text_Nodes.svg fails
58580
58581         Covered by dom/svg/level3/xpath/Text_Nodes.svg
58582
58583         * xml/XPathStep.cpp:
58584         (WebCore::XPath::Step::nodeTestMatches): Only include the first text sibling in text() matches.
58585
58586 2007-02-03  Alexey Proskuryakov  <ap@webkit.org>
58587
58588         Reviewed by Darin.
58589
58590         http://bugs.webkit.org/show_bug.cgi?id=12485
58591         XPath id() function doesn't work as root in paths
58592
58593         Test: fast/xpath/id-path.html
58594
58595         * xml/XPathPath.cpp:
58596         (WebCore::XPath::Path::doEvaluate): Implemented.
58597         (WebCore::XPath::LocationPath::evaluate): A new overload that takes an initial NodeVector.
58598         (WebCore::XPath::LocationPath::doEvaluate): Moved most of the logic to the new evaluate().
58599
58600         * xml/XPathPath.h: Added a new evaluate() overload and a using declaration to keep the
58601         generic one visible.
58602
58603 2007-02-03  Alexey Proskuryakov  <ap@webkit.org>
58604
58605         Reviewed by Darin.
58606
58607         http://bugs.webkit.org/show_bug.cgi?id=12559
58608         REGRESSION: Crash in checkForHeadCharset() under GuardMalloc
58609
58610         No tests possible.
58611
58612         * loader/TextResourceDecoder.cpp:
58613         (WebCore::TextResourceDecoder::checkForHeadCharset): Fix end of buffer checks; sprinkle a number 
58614         of new ones over the function.
58615
58616 2007-02-03  David Kilzer  <ddkilzer@webkit.org>
58617
58618         Reviewed by NOBODY (no-svg build fix).
58619
58620         * page/EventHandler.cpp: Include FloatPoint.h.
58621
58622 2007-02-03  Alexey Proskuryakov  <ap@webkit.org>
58623
58624         Reviewed by Mitz.
58625
58626         http://bugs.webkit.org/show_bug.cgi?id=12549
58627         Wrong character encoding at www.ravmilim.co.il
58628
58629         Test: fast/encoding/meta-charset.html
58630
58631         * loader/TextResourceDecoder.cpp:
58632         (WebCore::TextResourceDecoder::checkForHeadCharset): Fix an off by one error.
58633
58634 2007-02-02  Maciej Stachowiak  <mjs@apple.com>
58635         
58636         Reviewed by Hyatt & Adele.
58637         
58638         - <rdar://problem/4896972> TV guide listings page doesn't finish loading (11674)
58639         
58640         Test case: fast/forms/disabled-select-change-index.html
58641         
58642         * html/HTMLOptionElement.cpp:
58643         (WebCore::HTMLOptionElement::setSelected): Allow changing selected state of a disabled
58644         option.
58645         
58646 2007-02-03  Nikolas Zimmermann  <zimmermann@kde.org>
58647
58648         Build fix, not reviewed.
58649
58650         Blind attempt to fix Qt build.
58651
58652         * WebCore.pro: Add RenderSVGGradientStop.cpp / RenderSVGHiddenContainer.cpp
58653
58654 2007-02-03  Nikolas Zimmermann  <zimmermann@kde.org>
58655
58656         Reviewed by Eric & Maciej.
58657
58658         Fix serveral <use> issues:
58659         - When events are dispatch to a referenced element, the actual event.target
58660           has to be set to the corresponding SVGElementInstance object
58661
58662         - Node::shadowAncestorNode() should _not_ return the shadowParentNode for SVG elements
58663           This is only needed for the HTML forms concept and breaks event dispatching for SVG shadow tree elements.
58664
58665         - Add SVGElementInstance as possible EventTarget in bindings/js/kjs_dom.cpp
58666           (Now event.target returns the actual SVGElementInstance object for a shadow tree element)
58667
58668         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12502 (Reproducible crash when browsing SVG map.)
58669         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12511 (<use> has event dispatching issues)
58670
58671         Added test: svg/custom/use-event-handler-on-use-element.svg
58672         Added test: svg/custom/use-event-handler-on-referenced-element.svg
58673         Added test: svg/custom/use-elementInstance-event-target.svg
58674         Added test: svg/custom/use-elementInstance-methods.svg
58675
58676         * bindings/js/kjs_dom.cpp:
58677         (KJS::toJS):
58678         * dom/EventTarget.cpp:
58679         (WebCore::EventTarget::toSVGElementInstance):
58680         * dom/EventTarget.h:
58681         * dom/EventTargetNode.cpp:
58682         (WebCore::EventTargetNode::handleLocalEvents):
58683         (WebCore::EventTargetNode::dispatchGenericEvent):
58684         (WebCore::EventTargetNode::dispatchEvent):
58685         * dom/EventTargetNode.h:
58686         * dom/Node.cpp:
58687         (WebCore::Node::shadowAncestorNode):
58688         * ksvg2/svg/SVGElement.cpp:
58689         (WebCore::shadowTreeParentElementForShadowTreeElement):
58690         (WebCore::SVGElement::dispatchEvent):
58691         * ksvg2/svg/SVGElement.h:
58692         * ksvg2/svg/SVGElementInstance.cpp:
58693         (WebCore::SVGElementInstance::toSVGElementInstance):
58694         * ksvg2/svg/SVGElementInstance.h:
58695         * ksvg2/svg/SVGUseElement.cpp:
58696         (WebCore::SVGUseElement::notifyAttributeChange):
58697         (WebCore::SVGUseElement::instanceForShadowTreeElement):
58698         * ksvg2/svg/SVGUseElement.h:
58699
58700 2007-02-02  Oliver Hunt  <oliver@apple.com>
58701
58702         Reviewed by Geoff.
58703
58704         Add guard around accessing [NSEvent eventNumber] to ensure
58705         we don't attempt to access it on on non-mouse related NSEvent.
58706
58707         * platform/mac/PlatformMouseEventMac.mm:
58708         (WebCore::eventNumberForEvent):
58709         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
58710
58711 2007-02-02  Adam Roben  <aroben@apple.com>
58712
58713         Reviewed by Anders.
58714
58715         Try to be a little less selfish about DocumentLoader.
58716
58717         Spotted while working on <rdar://problem/4957747>.
58718
58719         * page/ContextMenuController.cpp:
58720         (WebCore::ContextMenuController::contextMenuItemSelected):
58721             Everyone can open frames in new windows.
58722
58723 2007-02-02  Nikolas Zimmermann  <zimmermann@kde.org>
58724
58725         Reviewed by Eric.
58726
58727         Move xml:space/xml:lang from svgattrs.in to xmlattrs.in where they actually belong.
58728         Now they are actually recognized by SVGLangSpace::parseMappedAttribute.
58729         Patch implementing xml:space="preserve" coming soon, which acts as test for this stuff.
58730
58731         Always build XMLNames.cpp (not only for SVG) and replace all occourences of
58732         "http://www.w3.org/XML/1998/namespace" by "XMLNames::xmlNamespaceURI".
58733
58734         * DerivedSources.make:
58735         * dom/DOMImplementation.cpp:
58736         (WebCore::DOMImplementation::createDocument):
58737         * ksvg2/svg/SVGLangSpace.cpp:
58738         (WebCore::SVGLangSpace::SVGLangSpace):
58739         (WebCore::SVGLangSpace::parseMappedAttribute):
58740         * ksvg2/svg/SVGLangSpace.h:
58741         * ksvg2/svg/svgattrs.in:
58742         * page/Frame.cpp:
58743         (WebCore::Frame::Frame):
58744         * xml/XPathNSResolver.cpp:
58745         (WebCore::XPathNSResolver::lookupNamespaceURI):
58746         * xml/xmlattrs.in:
58747
58748 2007-02-02  Beth Dakin  <bdakin@apple.com>
58749
58750         Reviewed by Maciej.
58751
58752         Working on a layout test.
58753
58754         Fix for <rdar://problem/4966100> REGRESSION: Reproducible ASSERT 
58755         hit at Walgreens.com
58756
58757         * page/Frame.cpp:
58758         (WebCore::Frame::setView): If we are setting the view to 0 and 
58759         detaching the document, call unscheduleRealyout() on the old view 
58760         before setting it to 0.
58761
58762 2007-02-01  Geoffrey Garen  <ggaren@apple.com>
58763
58764         Reviewed by Maciej Stachowiak.
58765         
58766         Added support for selectively ignoring WebCore::Node leaks during layout
58767         tests, so that we can ignore known leaks in other components.
58768
58769         * WebCore.exp:
58770         * dom/Node.cpp:
58771         (WebCore::Node::isSupported): Moved isSupported up with the rest of the static functions.
58772
58773         (WebCore::): Added an ignoreSet, which collects WebCore::Nodes whose lifetime
58774         we want to ignore. We need to track which nodes to ignore rather than, say,
58775         just suspending the count, because node destruction depends on lots of
58776         different variables, so it would be nearly impossible to know when exactly 
58777         to suspend the count and when exactly to resume it.
58778
58779         (WebCore::NodeCounter::~NodeCounter): Changed to use WTFLog instead of fprintf.
58780
58781         (WebCore::Node::startIgnoringLeaks): Do the ignoring.
58782         (WebCore::Node::stopIgnoringLeaks): ditto
58783         (WebCore::Node::Node): ditto
58784         (WebCore::Node::~Node): ditto
58785
58786         * dom/Node.h: Moved isSupported up with the rest of the static functions.
58787
58788         * platform/mac/LoggingMac.mm:
58789         (WebCore::initializeWithUserDefault): Renamed from "initializeLoggingChannel"
58790         because the real goal here is to honor a user default -- WTFLoggingChannels
58791         need no run-time initialization. Also replaced "off by default, on if a 
58792         user default says so" behavior with "only override existing setting if a
58793         user default says so" behavior. It seemed like a bug that you would specify 
58794         a channel's on/off state in its definition, but this function would unconditionally
58795         blow that state away.
58796         (WebCore::InitializeLoggingChannelsIfNecessary):
58797
58798 2007-02-02  Eric Seidel  <eric@webkit.org>
58799
58800         Reviewed by mitz.
58801
58802         Fix gradient stop style resolution to be less of a hack, fixing style invalidation:
58803         http://bugs.webkit.org/show_bug.cgi?id=12193
58804         and fix stop-color and stop-opacity not to inherit:
58805         http://bugs.webkit.org/show_bug.cgi?id=12193
58806         
58807         Tests:
58808         * svg/custom/gradient-stops-style-change.svg: added
58809         * svg/W3C-SVG-1.1/pservers-grad-18-b.svg: updated
58810
58811         * WebCore.xcodeproj/project.pbxproj:
58812         * ksvg2/css/SVGCSSStyleSelector.cpp:
58813         (WebCore::CSSStyleSelector::applySVGProperty):
58814         * ksvg2/css/SVGRenderStyle.cpp:
58815         (WebCore::SVGRenderStyle::inheritedNotEqual):
58816         (WebCore::SVGRenderStyle::inheritFrom):
58817         * ksvg2/css/SVGRenderStyle.h:
58818         * ksvg2/svg/SVGDefsElement.cpp:
58819         (WebCore::SVGDefsElement::createRenderer):
58820         * ksvg2/svg/SVGGradientElement.cpp:
58821         (WebCore::SVGGradientElement::createRenderer):
58822         (WebCore::SVGGradientElement::buildStops):
58823         * ksvg2/svg/SVGGradientElement.h:
58824         (WebCore::SVGGradientElement::rendererIsNeeded):
58825         * ksvg2/svg/SVGStopElement.cpp:
58826         (WebCore::SVGStopElement::createRenderer):
58827         * ksvg2/svg/SVGStopElement.h:
58828         (WebCore::SVGStopElement::rendererIsNeeded):
58829         * rendering/RenderSVGGradientStop.cpp: Added.
58830         * rendering/RenderSVGGradientStop.h: Added.
58831         * rendering/RenderSVGHiddenContainer.cpp: Added.
58832         * rendering/RenderSVGHiddenContainer.h: Added.
58833         * rendering/RenderSVGContainer.cpp:
58834         * rendering/RenderSVGContainer.h:
58835
58836 2007-02-02  Zack Rusin  <zrusin@trolltech.com>
58837
58838         Reviewed by Lars
58839
58840         Fix scrolling-on-selection bug by correctly
58841         scrolling to the offset instead of trying to 
58842         ensure visibility with margins.
58843
58844         * platform/qt/ScrollViewQt.cpp:
58845         (WebCore::ScrollView::scrollPointRecursively):
58846
58847 2007-02-02  Zack Rusin  <zrusin@trolltech.com>
58848
58849         Reviewed by Lars
58850
58851         Fix drawing of dashed and colored lines. Pen
58852         has to be inherited for stroke to stay consistent.
58853
58854         * platform/graphics/qt/GraphicsContextQt.cpp:
58855         (WebCore::GraphicsContext::setAlpha):
58856         (WebCore::GraphicsContext::setPlatformStrokeColor):
58857         (WebCore::GraphicsContext::setPlatformStrokeStyle):
58858
58859 2007-02-01  Nicholas Shanks  <webkit@nickshanks.com>
58860
58861         Reviewed by Mark.
58862
58863         Add support for CSS2 font-stretch property.
58864
58865         * css/CSSComputedStyleDeclaration.cpp:
58866         (WebCore::):
58867         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
58868         * css/cssparser.cpp:
58869         (WebCore::CSSParser::parseValue):
58870         * css/cssstyleselector.cpp:
58871         (WebCore::CSSStyleSelector::applyDeclarations):
58872         (WebCore::CSSStyleSelector::applyProperty):
58873         * platform/FontCache.cpp:
58874         (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
58875         (WebCore::FontPlatformDataCacheKey::operator==):
58876         (WebCore::computeHash):
58877         (WebCore::FontPlatformDataCacheKeyTraits::deletedValue):
58878         (WebCore::FontPlatformDataCacheKeyTraits::emptyValue):
58879         (WebCore::FontCache::getCachedFontPlatformData):
58880         * platform/FontDescription.h:
58881         (WebCore::):
58882         (WebCore::FontDescription::FontDescription):
58883         (WebCore::FontDescription::stretch):
58884         (WebCore::FontDescription::narrowerStretch):
58885         (WebCore::FontDescription::widerStretch):
58886         (WebCore::FontDescription::setStretch):
58887         (WebCore::FontDescription::operator==):
58888         * platform/mac/FontCacheMac.mm:
58889         (WebCore::FontCache::createFontPlatformData):
58890         * platform/mac/WebFontCache.mm:
58891         (acceptableChoice):
58892         (betterChoice):
58893         (+[WebFontCache fontWithFamily:traits:size:]):
58894
58895 2007-02-01  Timothy Hatcher  <timothy@apple.com>
58896
58897         Reviewed by Mark Rowe.
58898
58899         <rdar://problem/4969201> REGRESSION: Safari applies the wrong font to BODY element at http://www.apple.com/downloads/dashboard/
58900
58901         * platform/mac/WebFontCache.mm:
58902         (+[WebFontCache fontWithFamily:traits:size:]): Don't call [NSFont fontWithName:] with the desiredFamily on Tiger.
58903
58904 2007-02-01  Alexey Proskuryakov  <ap@webkit.org>
58905
58906         Reviewed by Darin.
58907
58908         http://bugs.webkit.org/show_bug.cgi?id=12506
58909         REGRESSION: Safari doesn't display hebrew text on a web page,
58910         displayed correctly on Tiger
58911
58912         * loader/TextResourceDecoder.cpp:
58913         (WebCore::TextResourceDecoder::checkForHeadCharset): Advance the pointer when necessary.
58914
58915 2007-02-01  George Staikos  <staikos@kde.org>
58916
58917         Reviewed by Zack and Lars.
58918
58919         Add a cookie interface for the Qt build.
58920
58921         * WebCore.pro:
58922         * platform/qt/CookieJarQt.cpp:
58923         (WebCore::setCookies):
58924         (WebCore::cookies):
58925         (WebCore::cookiesEnabled):
58926
58927 2007-02-01  Maciej Stachowiak  <mjs@apple.com>
58928
58929         Reviewed by Adele.
58930         
58931         - fixed <rdar://problem/4922764> ASSERTION: (!m_contentFunction) in PolicyCheck::call trying to visit feed URL (CNN, Apple, etc.)
58932
58933         * loader/FrameLoader.cpp:
58934         (WebCore::FrameLoader::stopPolicyCheck): Call new cancel method instead of call(false) on old check.
58935         (WebCore::PolicyCheck::cancel): call any callback function that is set with false or PolicyIgnore as
58936         appropriate.
58937         * loader/FrameLoader.h:
58938
58939 2007-02-01  Beth Dakin  <bdakin@apple.com>
58940
58941         Reviewed by Hyatt.
58942
58943         Fix for http://bugs.webkit.org/show_bug.cgi?id=10517 REGRESSION 
58944         (r12065-r12082): Navigation graphic wraps to the next line on 
58945         duart.com and <rdar://problem/4960505> REGRESSION: The Awesome 
58946         Windows Vista page has a layout error in the header table (10517)
58947
58948         The problem is that we never supported a quirk that other browsers 
58949         support where, under very specific circumstances, a table cell will 
58950         grow to fit an image inside of it. This is only a regression 
58951         because a bug was fixed were we were 1 pixel off in the calculation 
58952         of overflow in some cases.
58953
58954         * rendering/RenderBlock.cpp:
58955         (WebCore::shouldGrowTableCellForImage):
58956         (WebCore::RenderBlock::calcInlineMinMaxWidth):
58957
58958 2007-02-01  Zack Rusin  <zrusin@trolltech.com>
58959
58960         Reviewed by Lars
58961
58962         Implement native look for comboboxes
58963         and fix/implement popup menus.
58964
58965         * platform/PopupMenu.h:
58966         * platform/qt/PopupMenuQt.cpp:
58967         (WebCore::PopupMenu::PopupMenu):
58968         (WebCore::PopupMenu::~PopupMenu):
58969         (WebCore::PopupMenu::clear):
58970         (WebCore::PopupMenu::populate):
58971         (WebCore::PopupMenu::show):
58972         (WebCore::PopupMenu::hide):
58973         (WebCore::PopupMenu::updateFromElement):
58974         * platform/qt/RenderThemeQt.cpp:
58975         (WebCore::RenderThemeQt::adjustMenuListStyle):
58976         (WebCore::RenderThemeQt::paintButton):
58977         (WebCore::RenderThemeQt::paintTextField):
58978         (WebCore::RenderThemeQt::paintMenuList):
58979
58980 2007-02-01  Darin Adler  <darin@apple.com>
58981
58982         Reviewed by Maciej.
58983
58984         - fix <rdar://problem/4887428> REGRESSION: Implement slight delay for firing incremental onSearch event
58985
58986         * rendering/RenderTextControl.h:
58987         * rendering/RenderTextControl.cpp:
58988         (WebCore::RenderTextControl::RenderTextControl): Set up timer.
58989         (WebCore::RenderTextControl::subtreeHasChanged): Start timer here instead of immediately sending event.
58990         (WebCore::RenderTextControl::searchEventTimerFired): Added. Sends search event.
58991         (WebCore::RenderTextControl::stopSearchEventTimer): Added.
58992         (WebCore::RenderTextControl::startSearchEventTimer): Added. Sends search event right away if there is
58993         no text. If there is some text, sets the timer using the same delay rule as NSSearchField. If you keep
58994         typing, then the timer keeps getting reset 0.2 seconds into the future until you pause.
58995
58996         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::onSearch): Tell the renderer to
58997         stop the timer, since we're sending a search event. This helps when a caller other than
58998         the timer decides to send an explicit search event.
58999
59000 2007-02-01  Maciej Stachowiak  <mjs@apple.com>
59001
59002         Fix by Darin, reviewed by Maciej.
59003
59004         - fix ~10% performance regression from encoding fix
59005
59006         * loader/TextResourceDecoder.cpp:
59007         (WebCore::TextResourceDecoder::checkForHeadCharset): Fix a logic
59008         error which made huge strings accidentally.
59009
59010 2007-02-01  Lars Knoll <lars@trolltech.com>
59011
59012         Fix the Qt build
59013
59014         * page/qt/EventHandlerQt.cpp:
59015
59016 2007-01-31  Darin Adler  <darin@apple.com>
59017
59018         Reviewed by Adam and Geoff.
59019
59020         - fix <rdar://problem/4786767> REGRESSION: <select> controls are not resized when zooming text
59021
59022         Test: fast/forms/select-width-font-change.html
59023
59024         * rendering/RenderMenuList.h: Cleaned up formatting a bit. Removed unneeded include of PopupMenu.h.
59025         Made a lot more things private, including the PopupMenuClient base class, all of the virtual
59026         functions from PopupMenuClient, and the setTextFromOption function. Added updateOptionsWidth.
59027
59028         * rendering/RenderMenuList.cpp:
59029         (WebCore::RenderMenuList::setStyle): Added code to call updateOptionsWidth when the font changes.
59030         (WebCore::RenderMenuList::updateOptionsWidth): Added. Factored code out of updateFromElement.
59031         Changed to do nothing when m_optionsWidth is already correct.
59032         (WebCore::RenderMenuList::updateFromElement): Moved code to recomputed options width to the new
59033         updateOptionsWidth function.
59034         (WebCore::RenderMenuList::text): Made const.
59035
59036 2007-01-31  Oliver Hunt  <oliver@apple.com>
59037
59038         Reviewed by Adam.
59039
59040         Migrate more drag and drop logic to WebCore, start preparing
59041         to move EventHandler::handleDrag from EventHandlerMac to EventHandler 
59042
59043         * WebCore.exp:   
59044           updating methods
59045                     
59046         * dom/Clipboard.cpp:
59047         * dom/Clipboard.h:
59048         (WebCore::Clipboard::Clipboard):
59049         (WebCore::Clipboard::setDragHasStarted):
59050         (WebCore::Clipboard::dragStarted): 
59051           Moving from ClipboardMac to Clipboard 
59052
59053         * dom/EventTargetNode.cpp:
59054         (WebCore::EventTargetNode::dispatchMouseEvent):
59055           PlatformMouseEvent no longer lies about button state, however 
59056           DOM Events don't allow NoButton, so we need to convert NoButton 
59057           to LeftButton when we create a DOM Event from PlatformMouseEvent
59058
59059         * page/DragClient.h:
59060           Tidying comment 
59061
59062         * page/DragController.cpp:
59063         (WebCore::createMouseEvent):
59064           Updated for new PlatformMouseEvent constructors
59065         (WebCore::DragController::mayStartDragAtEventLocation):
59066           Migrated from WebKit
59067
59068         * page/DragController.h:
59069           Added above function declarations
59070
59071         * page/EventHandler.cpp:
59072         (WebCore::EventHandler::dragState): 
59073         (WebCore::EventHandler::dragHysteresisExceeded):
59074         (WebCore::EventHandler::freeClipboard):
59075         (WebCore::EventHandler::shouldDragAutoNode):
59076           Moved from EventHandlerMac
59077         (WebCore::EventHandler::handleMouseMoveEvent):
59078         (WebCore::EventHandler::eventMayStartDrag):
59079         (WebCore::EventHandler::handleMousePressEvent):
59080           Use DragController     
59081
59082         * page/EventHandler.h:
59083           Added DragState struct definition to EventHandler
59084
59085         * page/mac/EventHandlerMac.mm:
59086         (WebCore::EventHandler::eventActivatedView):
59087         (WebCore::EventHandler::handleDrag):
59088         (WebCore::EventHandler::handleMouseUp):
59089         (WebCore::EventHandler::mouseDown):
59090           Update to use DragController and PlatformMouseEvent
59091
59092         * page/mac/WebCoreFrameBridge.h:
59093         * page/mac/WebCoreFrameBridge.mm:
59094         (-[WebCoreFrameBridge dragSourceMovedTo:]):
59095         (-[WebCoreFrameBridge dragSourceEndedAt:operation:]):
59096           Use DragController for state
59097
59098         * platform/PlatformMouseEvent.h:
59099         (WebCore::):
59100         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
59101         (WebCore::PlatformMouseEvent::eventType):
59102         (WebCore::PlatformMouseEvent::timestamp):
59103         (WebCore::PlatformMouseEvent::eventNumber):
59104         (WebCore::PlatformMouseEvent::setClickCount):
59105           Exposing necessary data for Drag logic
59106
59107         * platform/mac/ClipboardMac.h:
59108         * platform/mac/ClipboardMac.mm:
59109         (WebCore::ClipboardMac::ClipboardMac):
59110         (WebCore::ClipboardMac::setDragImage):
59111           Have moved a number of fields from ClipboardMac to Clipboard
59112           so need to use accessors in a few places now
59113
59114         * platform/mac/PlatformMouseEventMac.mm:
59115         (WebCore::mouseButtonForEvent):
59116         (WebCore::mouseEventForNSEvent):
59117         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
59118           Determine MouseEventType, and provide event time info
59119
59120 2007-01-31  Alexey Proskuryakov  <ap@webkit.org>
59121
59122         Reviewed by Darin.
59123
59124         http://bugs.webkit.org/show_bug.cgi?id=12506
59125         REGRESSION: Safari doesn't display hebrew text on a web page,
59126         displayed correctly on Tiger
59127
59128         * loader/TextResourceDecoder.cpp:
59129         (WebCore::TextResourceDecoder::checkForHeadCharset): Skip over 
59130         quoted attributes.
59131
59132 2007-01-31  David Carson  <dacarson@gmail.com>
59133
59134         Reviewed by Darin.
59135
59136         - fix http://bugs.webkit.org/show_bug.cgi?id=12510
59137         Initialize the variable m_totalLoops
59138         Is tested by LayoutTests/fast/css/MarqueeLayoutTest.html
59139
59140         * rendering/RenderLayer.cpp:
59141         (WebCore::Marquee::Marquee):
59142
59143 2007-01-31  Anders Carlsson  <acarlsson@apple.com>
59144
59145         Reviewed by Maciej.
59146
59147         <rdar://problem/4886776>
59148         REGRESSION: After opening a web archive, location shows the actual URL, not the webarchive file
59149
59150         * WebCore.exp:
59151         * loader/FrameLoader.cpp:
59152         (WebCore::FrameLoader::continueLoadWithData):
59153         * loader/FrameLoader.h:
59154         New function which continues a load but using a given buffer instead.
59155         
59156 2007-01-31  Adele Peterson  <adele@apple.com>
59157
59158         Reviewed by Adam.
59159
59160         Fix for http://bugs.webkit.org/show_bug.cgi?id=12516
59161         REGRESSION (r19313): All keyboard navigation has stopped working
59162
59163         For non-editable selections, handleKeyPress doesn't need to call _interceptEditingKeyEvent. 
59164
59165         * editing/Editor.cpp:
59166         (WebCore::selectionForEvent): Moved this to the top of the file.
59167         (WebCore::Editor::handleKeyPress): Do the equivalent of the _canEdit check that used to be in WebKit WebEditorClient::handleKeyPress.
59168
59169 2007-01-31  Geoffrey Garen  <ggaren@apple.com>
59170
59171         Reviewed by Darin Adler.
59172
59173         Added a Range counter to detect leaks. Tweaked the Node counter.
59174         
59175         Also fixed a TextIterator destructive modification bug that I noticed along the
59176         way. No test case for this bug because no clients have been bitten by it
59177         yet.
59178
59179         * dom/Node.cpp: Renamed NodeImplCounter to NodeCounter, changed counter
59180         to unsigned, fixed formatting to match style guidelines.
59181         (WebCore::NodeCounter::~NodeCounter):
59182         (WebCore::Node::Node):
59183         (WebCore::Node::~Node):
59184
59185         * dom/Range.cpp:
59186         (WebCore::RangeCounter::~RangeCounter): Added.
59187         (WebCore::Range::Range):
59188         (WebCore::Range::~Range):
59189         (WebCore::Range::ownerDocument): New accessor, used by TextIterator to avoid
59190         annoying NULL checks.
59191         * dom/Range.h:
59192
59193         * editing/TextIterator.cpp:
59194         (WebCore::TextIterator::subrange): 
59195         (1) Don't initialize result with entireRange --  doing so would create a 
59196         PassRefPtr that pointed to entireRange, so this function would destructively 
59197         modify the Range you passed it. Initialize it with a new Range instead.
59198         (2) Don't use a PassRefPtr as a local variable, because they have sneaky
59199         semantics. Use a RefPtr instead.
59200         (3) Don't call CharacterIterator::range() willy-nilly, since it does 
59201         non-trivial work. Use a local variable instead.
59202
59203 2007-01-31  Adele Peterson  <adele@apple.com>
59204
59205         Reviewed by Darin.
59206
59207         WebCore part of fix for <rdar://problem/4521461> REGRESSION: when keyPress event changes form focus, inserted key goes to wrong control
59208
59209         Test: fast/events/keypress-focus-change.html
59210
59211         * editing/Editor.cpp:
59212         (WebCore::selectionForEvent): Added.  This computes a selection that considers the case where an event handler 
59213          has moved the selection outside of a text control.  In that case, we use the target control's selection.
59214         (WebCore::Editor::insertText): This gets the selectionForEvent, checks that the selection is editable,
59215          and calls TypingCommand::insertText with the correct selection.
59216
59217         * editing/TypingCommand.h: Added a version of insertText that takes a selection.  The old version of insertText will call this, and pass
59218           in the frame's selection.
59219         * editing/TypingCommand.cpp: (WebCore::TypingCommand::insertText): Added. Uses the passed in selection to 
59220           set the starting and ending selections correctly so that the editing machinery will insert the text in the correct place.
59221
59222         * page/Page.h: Added convenience method to get selection from focused or main frame.
59223         * page/Page.cpp: (WebCore::Page::selection):
59224
59225         * html/HTMLInputElement.h: Added selection methods to get selection for text controls.
59226         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::selection):
59227         * html/HTMLTextAreaElement.h:
59228         * html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::selection):
59229         * rendering/RenderTextControl.h:
59230         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::selection):
59231
59232 2007-01-31  Darin Adler  <darin@apple.com>
59233
59234         - fix build
59235
59236         * ForwardingHeaders/wtf/ListHashSet.h: Added.
59237
59238 2007-01-31  Zack Rusin  <zrusin@trolltech.com>
59239
59240         Reviewed by Lars
59241
59242         Return the correct selection color.
59243
59244         * platform/qt/RenderThemeQt.cpp:
59245         (WebCore::RenderThemeQt::supportsFocusRing):
59246         (WebCore::RenderThemeQt::platformActiveSelectionBackgroundColor):
59247         (WebCore::RenderThemeQt::platformInactiveSelectionBackgroundColor):
59248         (WebCore::RenderThemeQt::platformActiveSelectionForegroundColor):
59249         (WebCore::RenderThemeQt::platformInactiveSelectionForegroundColor):
59250
59251 2007-01-31  Maciej Stachowiak  <mjs@apple.com>
59252
59253         Reviewed by Mark.
59254
59255         - fixed <rdar://problem/4751164> REGRESSION: Safari places text on incorrect button when returning to a page via back [10541]
59256         http://bugs.webkit.org/show_bug.cgi?id=10541
59257
59258         * dom/Document.cpp:
59259         (WebCore::Document::formElementsState):
59260         * dom/Document.h:
59261         
59262         I couldn't figure out the back/forward support in the tests enough
59263         to make an automated test, but this maual test reproduces the
59264         problem 100% without this patch:
59265         
59266         * manual-tests/back.html: Added.
59267         * manual-tests/form-control-madness.html: Added.
59268
59269 2007-01-31  David Kilzer  <ddkilzer@kilzer.net>
59270
59271         Reviewed by Mitz.
59272
59273         - fix http://bugs.webkit.org/show_bug.cgi?id=12490
59274           Clean up canPlaceOnLine logic in bidi.cpp
59275
59276         No test cases since there is no change in functionality.
59277
59278         * rendering/bidi.cpp:
59279         (WebCore::RenderBlock::findNextLineBreak): Simplify canFitOnLine expression.
59280
59281 2007-01-31  Zack Rusin  <zack@kde.org>
59282
59283         Adding comments explaining how the focus ring implementation
59284         works on the Qt platform and just move focus ring rendering
59285         related code to the same spot.
59286
59287         * platform/graphics/qt/GraphicsContextQt.cpp:
59288         (WebCore::setFocusRingColorChangeFunction):
59289         (WebCore::focusRingColor):
59290         (WebCore::GraphicsContext::drawFocusRing):
59291         * platform/qt/TemporaryLinkStubs.cpp:
59292
59293 2007-01-31  Zack Rusin  <zrusin@trolltech.com>
59294
59295         Reviewed by Lars
59296
59297         Properly propagate key events. 
59298
59299         * page/qt/FrameQt.cpp:
59300         * page/qt/FrameQt.h: Remove redundant method.
59301         * platform/qt/ScrollViewCanvasQt.cpp:
59302         (WebCore::ScrollViewCanvasQt::handleKeyEvent):
59303
59304 2007-01-31  George Staikos  <staikos@kde.org>
59305
59306         Reviewed by Zack and Lars.
59307
59308         Fix double delete on cancel as well as assertion with proxy.
59309
59310         * platform/network/qt/ResourceHandleManagerQt.cpp:
59311         (WebCore::WebCoreHttp::getConnection):
59312         (WebCore::WebCoreHttp::onRequestFinished):
59313         (WebCore::WebCoreHttp::cancel):
59314
59315 2007-01-31  Mark Rowe  <mrowe@apple.com>
59316
59317         Reviewed by Oliver.
59318
59319         * dom/Document.h: Change #if XSLT_SUPPORT to #ifdef XSLT_SUPPORT.
59320
59321 2007-01-31  Lars Knoll <lars@trolltech.com>
59322
59323         Fix the Qt build.
59324
59325         * platform/network/qt/ResourceHandleQt.cpp:
59326         (WebCore::ResourceHandle::setDefersLoading):
59327
59328 2007-01-31  Zack Rusin  <zack@kde.org>
59329
59330         Reviewed by Eric.
59331
59332         Implement SVGImage on the Qt platform.
59333
59334         * WebCore.pro:
59335         * loader/CachedImage.cpp:
59336         (WebCore::CachedImage::createImage):
59337         * platform/graphics/ImageBuffer.h:
59338         * platform/graphics/qt/ImageBufferQt.cpp:
59339         (WebCore::ImageBuffer::create):
59340         (WebCore::ImageBuffer::ImageBuffer):
59341         (WebCore::ImageBuffer::~ImageBuffer):
59342         (WebCore::ImageBuffer::context):
59343         (WebCore::ImageBuffer::pixmap):
59344         * platform/graphics/svg/SVGImage.cpp:
59345         (WebCore::SVGImage::nativeImageForCurrentFrame):
59346         (WebCore::SVGImage::setData):
59347
59348 2007-01-30  Maciej Stachowiak  <mjs@apple.com>
59349
59350         Reviewed by Brady.
59351
59352         - fixed <rdar://problem/4939366> REGRESSION: Assertion failure and crash when going back in history (12314)
59353
59354         * loader/FrameLoader.cpp:
59355         (WebCore::FrameLoader::createWindow): special case a frame name of "_blank"
59356         (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): ditto
59357
59358 2007-01-30  Maciej Stachowiak  <mjs@apple.com>
59359
59360         Reviewed by Anders.
59361
59362         - fixed <rdar://problem/4963871> REGRESSION: Crash occurs at WebCore::Frame::loader() when attempting to open a saved archive file
59363
59364         * loader/DocumentLoader.cpp:
59365         (WebCore::DocumentLoader::request): Removed obsolete FIXME.
59366         (WebCore::DocumentLoader::initialRequest): Ditto.
59367         * loader/MainResourceLoader.cpp:
59368         (WebCore::MainResourceLoader::MainResourceLoader): Handle data loads from a timer, otherwise bad things happen.
59369         (WebCore::MainResourceLoader::handleDataLoadNow):
59370         (WebCore::MainResourceLoader::handleDataLoadSoon):
59371         (WebCore::MainResourceLoader::loadNow):
59372         (WebCore::MainResourceLoader::didCancel): cancel data load timer
59373         * loader/MainResourceLoader.h:
59374
59375 2007-01-30  Timothy Hatcher  <timothy@apple.com>
59376
59377         Reviewed by Darin.
59378
59379         <rdar://problem/4961953> Stop using NSString deprecated methods like initWithCString:
59380
59381         * WebCore.xcodeproj/project.pbxproj:
59382         * platform/graphics/svg/filters/cg/WKArithmeticFilter.m:
59383         (-[WKArithmeticFilter init]):
59384         * platform/graphics/svg/filters/cg/WKComponentMergeFilter.m:
59385         (-[WKComponentMergeFilter init]):
59386         * platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.m:
59387         (-[WKDiffuseLightingFilter init]):
59388         * platform/graphics/svg/filters/cg/WKDiscreteTransferFilter.m:
59389         (-[WKDiscreteTransferFilter init]):
59390         * platform/graphics/svg/filters/cg/WKDisplacementMapFilter.m:
59391         (-[WKDisplacementMapFilter init]):
59392         * platform/graphics/svg/filters/cg/WKDistantLightFilter.m:
59393         (-[WKDistantLightFilter init]):
59394         * platform/graphics/svg/filters/cg/WKGammaTransferFilter.m:
59395         (-[WKGammaTransferFilter init]):
59396         * platform/graphics/svg/filters/cg/WKLinearTransferFilter.m:
59397         (-[WKLinearTransferFilter init]):
59398         * platform/graphics/svg/filters/cg/WKNormalMapFilter.m:
59399         (-[WKNormalMapFilter init]):
59400         * platform/graphics/svg/filters/cg/WKPointLightFilter.m:
59401         (-[WKPointLightFilter init]):
59402         * platform/graphics/svg/filters/cg/WKSpecularLightingFilter.m:
59403         (-[WKSpecularLightingFilter init]):
59404         * platform/graphics/svg/filters/cg/WKSpotLightFilter.m:
59405         (-[WKSpotLightFilter init]):
59406         * platform/graphics/svg/filters/cg/WKTableTransferFilter.m:
59407         (-[WKTableTransferFilter init]):
59408
59409 2007-01-30  David Hyatt  <hyatt@apple.com>
59410
59411         Fix for Radar bug #4679426, golden gate bridge Web site layout broken.
59412         
59413         This is a regression caused by the addition of :lang support.  This
59414         feature caused us to accept any pseudo-class/element with function
59415         arguments, even ones we couldn't handle.  The site used such a construct
59416         in conjunction with :not, which turned :not(something-crazy) into not(false).
59417         This ended up being "true", and so we started matching a rule we used to
59418         reject.
59419
59420         The fix is to now aggressively parse pseudo-elements and classes and to
59421         cause the rejection of an entire rule if any pseudoclass or element within
59422         any simple selector of that rule is unrecognized.
59423
59424         Reviewed by darin
59425
59426         fast/css/invalid-pseudo-classes.html
59427
59428         * css/CSSGrammar.y:
59429         * css/CSSSelector.cpp:
59430         (WebCore::CSSSelector::extractPseudoType):
59431         * css/CSSSelector.h:
59432         (WebCore::CSSSelector::):
59433         * css/cssstyleselector.cpp:
59434         (WebCore::CSSStyleSelector::checkOneSelector):
59435
59436 2007-01-30  Mitz Pettel  <mitz@webkit.org>
59437
59438         Reviewed by Darin.
59439
59440         - fix http://bugs.webkit.org/show_bug.cgi?id=12487
59441           REGRESSION: Repro crash when a second background image is animated
59442
59443         Test: fast/images/animated-background-image-crash.html
59444
59445         * rendering/RenderObject.cpp:
59446         (WebCore::RenderObject::arenaDelete): Deref() all background images and the
59447         border image.
59448
59449 2007-01-30  Darin Adler  <darin@apple.com>
59450
59451         Reviewed by Maciej.
59452
59453         * dom/EventTarget.h:
59454         * dom/EventTarget.cpp: (WebCore::EventTarget::toNode):
59455         Use EventTargetNode instead of Node. Removed unneeded includes.
59456         Make EventTarget's destructor protected to make it clear that you
59457         should never delete one.
59458
59459         * dom/EventTargetNode.h:
59460         (WebCore::EventTargetNode::toNode):
59461         Tweaked formatting. Updated for change to return value.
59462
59463         * platform/graphics/BitmapImage.h: Updated comment for clarity.
59464         Marked FrameData Noncopyable.
59465
59466         * platform/graphics/Image.h: Tweaked formatting.
59467
59468         * platform/graphics/ImageAnimationObserver.h:
59469         Make ImageAnimationObserver's destructor protected to make it clear that you
59470         should never delete one.
59471
59472 2007-01-30  Mitz Pettel  <mitz@webkit.org>
59473
59474         Reviewed by Darin (by way of Hyatt).
59475
59476         - fix http://bugs.webkit.org/show_bug.cgi?id=12373
59477           ASSERTION FAILURE: !child->needsLayout() on paypal.com
59478
59479         Test: fast/table/inline-form-assert.html
59480
59481         * rendering/RenderContainer.cpp:
59482         (WebCore::RenderContainer::layout): Changed the assertion to ignore inlines.
59483
59484 2007-01-30  Alexey Proskuryakov  <ap@webkit.org>
59485
59486         Reviewed by Darin.
59487
59488         http://bugs.webkit.org/show_bug.cgi?id=12486
59489         XPathNSResolver.lookupNamespaceURI should return null if no URI is found
59490
59491         * xml/XPathNSResolver.idl: added [ConvertNullStringTo=Null].
59492
59493 2007-01-30  Anders Carlsson  <acarlsson@apple.com>
59494
59495         Reviewed by Maciej.
59496
59497         Revert the parts of 19244 that removed deferring NSURLConnections, that was not a correct change.
59498         Remove ASSERTS from loader.cpp that aren't true anymore since the callbacks are invoked without a handle
59499         when loading a subresource from an archive.
59500
59501         * loader/MainResourceLoader.cpp:
59502         (WebCore::MainResourceLoader::loadNow):
59503         * loader/ResourceLoader.cpp:
59504         (WebCore::ResourceLoader::releaseResources):
59505         (WebCore::ResourceLoader::load):
59506         (WebCore::ResourceLoader::setDefersLoading):
59507         * loader/loader.cpp:
59508         (WebCore::Loader::didFail):
59509         (WebCore::Loader::didReceiveResponse):
59510         (WebCore::Loader::didReceiveData):
59511         * platform/network/ResourceHandle.cpp:
59512         (WebCore::ResourceHandle::ResourceHandle):
59513         (WebCore::ResourceHandle::create):
59514         * platform/network/ResourceHandle.h:
59515         * platform/network/ResourceHandleInternal.h:
59516         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
59517         * platform/network/mac/ResourceHandleMac.mm:
59518         (WebCore::ResourceHandle::start):
59519         (WebCore::ResourceHandle::setDefersLoading):
59520
59521 2007-01-30  Darin Adler  <darin@apple.com>
59522
59523         Reviewed by John.
59524
59525         - fix for <rdar://problem/4911504> REGRESSION: With a image selected, ctrl-clicking
59526           on page displays the wrong contextual menu items "Search in Google", "Search in Spotlight"
59527           and "Look up in Dictionary"
59528
59529         * platform/ContextMenu.cpp:
59530         (WebCore::selectionContainsPossibleWord): Added. Returns true if there are some
59531         non-whitespace characters in the selection.
59532         (WebCore::ContextMenu::populate): Don't add SearchSpotlightItem, SearchWebItem,
59533         or LookInDictionaryItem if selectionContainsPossibleWord returns false.
59534
59535 2007-01-30  Nikolas Zimmermann  <zimmermann@kde.org>
59536
59537         Reviewed by Oliver.
59538
59539         Respect stroke-width in absolute repaint rect calculations for SVG text.
59540         Added test: svg/custom/text-repaint-including-stroke.svg
59541
59542         * rendering/RenderSVGText.cpp:
59543         (WebCore::RenderSVGText::relativeBBox):
59544
59545 2007-01-30  Steve Falkenburg  <sfalken@apple.com>
59546
59547         Reviewed by Oliver.
59548
59549         Add missing includes.
59550
59551         * ksvg2/svg/SVGElementInstance.cpp:
59552
59553 2007-01-30  Alexey Proskuryakov  <ap@webkit.org>
59554
59555         Reviewed by Darin.
59556
59557         http://bugs.webkit.org/show_bug.cgi?id=12452
59558         XPath id() function is not supported
59559
59560         * xml/XPathFunctions.cpp:
59561         (WebCore::XPath::isWhitespace): A helper to detect XML whitespace.
59562
59563         (WebCore::XPath::FunId::isConstant):
59564         (WebCore::XPath::FunId::doEvaluate):
59565         (WebCore::XPath::FunctionMapping::):
59566         Implemented id().
59567
59568 2007-01-30  Zack Rusin  <zrusin@trolltech.com>
59569
59570         Reviewed by Sam.
59571
59572         Make the gradients work on the Qt platform.
59573
59574         * platform/graphics/svg/SVGPaintServerGradient.h:
59575         * platform/graphics/svg/SVGPaintServerLinearGradient.h:
59576         * platform/graphics/svg/SVGPaintServerRadialGradient.h:
59577         * platform/graphics/svg/qt/SVGPaintServerGradientQt.cpp:
59578         (WebCore::SVGPaintServerGradient::fillColorArray):
59579         (WebCore::SVGPaintServerGradient::setup):
59580         * platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp:
59581         (WebCore::SVGPaintServerLinearGradient::setupGradient):
59582         * platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp:
59583         (WebCore::SVGPaintServerRadialGradient::setupGradient):
59584
59585 2007-01-30  Nikolas Zimmermann  <zimmermann@kde.org>
59586
59587         Reviewed by Eric & Oliver. Leak related fixes reviewed by Mark.
59588
59589         Finally make the SVG <use> implementation use the proper "shadow tree" concept,
59590         which is also used by the HTML forms implementation. It's the first time in ksvg
59591         history that <use> is not implement as a crude hack, but proper & sane.
59592
59593         Implement deep expansion of use trees both for the instance & shadow tree.
59594         (<use> on a <symbol> containing a <g> containg a <use> element referencing a <rect>)
59595  
59596         The shadow tree is free of any symbol/use tags, but is properly expanded to the
59597         actual referenced content. The instance tree (SVGElementInstance objects) now exactly
59598         exposes the "expanded" shadow tree, as required by the specification. Previously
59599         we cloned referenced <use> elements, so our faked use shadow tree itself contained
59600         <use> elements. That lead to very nasty bugs - finally these dirty pieces are gone.
59601
59602         Checked twice that the updating logic works for all weird "deep expansions" cases. Example:
59603         <rect id="someRect"/> <g id="g"> <symbol> <use xlink:href="#someRect"/> </g> <use xlink:href="#g" id="use"/>
59604  
59605         If you walk through the instanceRoot using JavasScript, and explicitely modify some propertties of "someRect"
59606         -> all instances get updated correctly. For such simple cases it doesn't even involve recloning the shadow tree!
59607
59608         SVGElementInstance is now an EventTarget, as demanded by the specification - sending events to <use> instances
59609         will be implemented in a follow-up patch - as well as the "share event listeners with referenced target" logic.
59610
59611         Fixes all updating/stability issues with svg/carto.net/window.svg.
59612         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6000 (<use> does not handle recursion safely)
59613
59614         Added test: svg/custom/use-on-use.svg (deep use referencing)
59615         Added test: svg/custom/use-on-g-containing-use.svg (nested deep use referencing)
59616         Added test: svg/custom/use-modify-target-container.svg (instanceRoot scripting, modifying <g> target)
59617         Added test: svg/custom/use-modify-target-symbol.svg (instanceRoot scripting, modfiying <symbol> target)
59618         Added test: svg/custom/use-modify-container-in-target.svg (modify <g> within referenced use target -> needs to update instances)
59619         Added test: svg/custom/use-recursion-1.svg (referencing container, whose children reference itself)
59620         Added test: svg/custom/use-recursion-2.svg (<use> self referencing)
59621         Added test: svg/custom/use-recursion-3.svg (<use> self rerencing, within <use> target)
59622         Added test: svg/custom/use-recursion-4.svg (cyclic referencing, within <use> target)
59623
59624         * bindings/scripts/CodeGeneratorJS.pm:
59625         * css/cssstyleselector.cpp:
59626         (WebCore::CSSStyleSelector::initForStyleResolve):
59627         (WebCore::CSSStyleSelector::adjustRenderStyle):
59628         * ksvg2/misc/SVGDocumentExtensions.cpp:
59629         (WebCore::SVGDocumentExtensions::removeTimeContainer):
59630         * ksvg2/svg/SVGElement.cpp:
59631         (WebCore::SVGElement::SVGElement):
59632         (WebCore::SVGElement::viewportElement):
59633         * ksvg2/svg/SVGElement.h:
59634         (WebCore::SVGElement::isShadowNode):
59635         (WebCore::SVGElement::shadowParentNode):
59636         (WebCore::SVGElement::setShadowParentNode):
59637         * ksvg2/svg/SVGElementInstance.cpp:
59638         (WebCore::SVGElementInstance::SVGElementInstance):
59639         (WebCore::SVGElementInstance::correspondingUseElement):
59640         (WebCore::SVGElementInstance::shadowTreeElement):
59641         (WebCore::SVGElementInstance::setShadowTreeElement):
59642         (WebCore::containsUseChildNode):
59643         (WebCore::SVGElementInstance::updateInstance):
59644         (WebCore::SVGElementInstance::addEventListener):
59645         (WebCore::SVGElementInstance::removeEventListener):
59646         (WebCore::SVGElementInstance::dispatchEvent):
59647         * ksvg2/svg/SVGElementInstance.h:
59648         (WebCore::SVGElementInstance::refEventTarget):
59649         (WebCore::SVGElementInstance::derefEventTarget):
59650         (WebCore::SVGElementInstance::hasOneRef):
59651         (WebCore::SVGElementInstance::refCount):
59652         (WebCore::SVGElementInstance::setParent):
59653         (WebCore::SVGElementInstance::parent):
59654         * ksvg2/svg/SVGElementInstance.idl:
59655         * ksvg2/svg/SVGGElement.cpp:
59656         (WebCore::SVGGElement::localMatrix):
59657         * ksvg2/svg/SVGGElement.h:
59658         * ksvg2/svg/SVGHiddenElement.h: Removed.
59659         * ksvg2/svg/SVGSVGElement.cpp:
59660         (WebCore::SVGSVGElement::~SVGSVGElement):
59661         * ksvg2/svg/SVGStyledElement.cpp:
59662         (WebCore::SVGStyledElement::updateElementInstance):
59663         * ksvg2/svg/SVGUseElement.cpp:
59664         (WebCore::SVGUseElement::removedFromDocument):
59665         (WebCore::SVGUseElement::notifyAttributeChange):
59666         (WebCore::dumpInstanceTree):
59667         (WebCore::SVGUseElement::buildPendingResource):
59668         (WebCore::SVGUseElement::attach):
59669         (WebCore::SVGUseElement::buildInstanceTree):
59670         (WebCore::SVGUseElement::handleDeepUseReferencing):
59671         (WebCore::SVGUseElement::buildShadowTree):
59672         (WebCore::SVGUseElement::expandUseElementsInShadowTree):
59673         (WebCore::SVGUseElement::attachShadowTree):
59674         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
59675         (WebCore::SVGUseElement::transferUseAttributesToReplacedElement):
59676         * ksvg2/svg/SVGUseElement.h:
59677
59678 2007-01-30  Maciej Stachowiak  <mjs@apple.com>
59679
59680         Reviewed by Eric.
59681
59682         <rdar://problem/4928646> REGRESSION: manual-tests/remove-input-file-onchange.html crashes
59683         
59684         * platform/FileChooser.h:
59685         (WebCore::FileChooser::disconnected): New method, so the RenderFileControl can tell when it's
59686         gotten disconected.
59687         * rendering/RenderFileUploadControl.cpp:
59688         (WebCore::RenderFileUploadControl::valueChanged): Avoid calling repainted() when onChange()
59689         handler destroyed us.
59690
59691 2007-01-30  Simon Hausmann  <hausmann@kde.org>
59692
59693         Reviewed by Zack.
59694
59695         Combine libJavaScriptCore into libWebKitQt.
59696         Build with ELF visibility if possible.
59697
59698         * WebCore.pro:
59699
59700 2007-01-30  Zack Rusin  <zack@kde.org>
59701
59702         The method has been removed from the header
59703         (make it compile)
59704
59705         * platform/network/qt/ResourceHandleQt.cpp:
59706
59707 2007-01-30  Zack Rusin  <zrusin@trolltech.com>
59708
59709         Reviewed by aroben
59710
59711         Compile fix. 
59712
59713         * loader/ResourceLoader.cpp:
59714         (WebCore::ResourceLoader::releaseResources):
59715         (WebCore::ResourceLoader::setDefersLoading):
59716
59717 2007-01-29  Zack Rusin  <zack@kde.org>
59718
59719         Reviewed by Lars
59720
59721         Propagate the allows-scrolling property on the frames
59722         correctly. If the frame has been constructed as non-
59723         scrolling, respect that and don't show scrollbars.
59724
59725         * platform/ScrollView.h:
59726         * platform/qt/ScrollViewQt.cpp:
59727         (WebCore::ScrollView::ScrollView):
59728         (WebCore::ScrollView::setHScrollbarMode):
59729         (WebCore::ScrollView::setVScrollbarMode):
59730         (WebCore::ScrollView::setAllowsScrolling):
59731
59732 2007-01-29  Geoffrey Garen  <ggaren@apple.com>
59733
59734         I am the chosen one! I have seen the faces of the final five! I will
59735         save the WebKit build!
59736         
59737         * loader/ResourceLoader.cpp:
59738         (WebCore::ResourceLoader::load):
59739
59740 2007-01-30  Graham Dennis  <graham.dennis@gmail.com>
59741
59742         Reviewed by Maciej.
59743
59744         Part of fix for http://bugs.webkit.org/show_bug.cgi?id=10725
59745         Image data in from RTFD clipboard data thrown away
59746         
59747         ResourceHandles no longer need to be able to defer loading as that is
59748         now handled by the ResourceLoader.
59749
59750         * loader/MainResourceLoader.cpp:
59751         (WebCore::MainResourceLoader::loadNow): updated to remove defersLoading argument.
59752         * loader/ResourceLoader.cpp:
59753         (WebCore::ResourceLoader::releaseResources): release the deferred request.
59754         (WebCore::ResourceLoader::load): defer creating the ResourceHandle instead of
59755         asking the ResourceHandle to defer loading.
59756         (WebCore::ResourceLoader::setDefersLoading): create the ResourceHandle if we have deferred creating it.
59757         * loader/ResourceLoader.h:
59758         * platform/network/ResourceHandle.cpp: ResourceHandle's don't need to know about deferLoading.
59759         (WebCore::ResourceHandle::ResourceHandle):
59760         (WebCore::ResourceHandle::create):
59761         * platform/network/ResourceHandle.h: ditto.
59762         * platform/network/ResourceHandleInternal.h: ditto.
59763         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
59764         * platform/network/mac/ResourceHandleMac.mm: ditto.
59765         (WebCore::ResourceHandle::start):
59766
59767 2007-01-29  Brady Eidson  <beidson@apple.com>
59768
59769         Reviewed by Alice
59770
59771         Lets use smart pointers, shall we?
59772
59773         * platform/network/ResourceHandleInternal.h:
59774
59775 2007-01-29  Justin Garcia  <justin.garcia@apple.com>
59776
59777         Reviewed by harrison
59778         
59779         <rdar://problem/4960137>
59780         ASSERTION FAILURE calling SelectionController::setBaseAndExtent (11833)
59781
59782         * editing/SelectionController.cpp:
59783         (WebCore::SelectionController::setSelection): Hand off the selection
59784         to the selectionController responsible for it, instead of asserting.
59785         A selection object can't be constructed with endpoints in different 
59786         documents, so this code is only necessary for one endpoint.
59787
59788 2007-01-29  Ada Chan  <adachan@apple.com>
59789
59790         Reviewed by Brady.
59791         
59792         Moved the update of the title of the current entry in the backforward list to WebCore.
59793
59794         * loader/FrameLoader.cpp:
59795         (WebCore::FrameLoader::didChangeTitle):
59796
59797 2007-01-29  Adele Peterson  <adele@apple.com>
59798
59799         Reviewed by Darin.
59800
59801         More preparation for event handling fixes.
59802
59803         * bridge/EditorClient.h: Removed EventTargetNode parameter from handleKeyPress since we can just get that from the event.
59804         * dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler): ditto.
59805         * page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler): ditto.
59806         * page/EventHandler.h: ditto.
59807         * platform/graphics/svg/SVGImageEmptyClients.h: (WebCore::SVGEmptyEditorClient::handleKeyPress): ditto.
59808
59809         * editing/Editor.h:
59810         * editing/Editor.cpp:
59811         (WebCore::Editor::handleKeyPress): Removed EventTargetNode parameter.
59812         (WebCore::Editor::execCommand): Made commandMap use AtomicStringImpls instead of Strings.
59813         (WebCore::Editor::insertText): Moved from the bridge.
59814
59815         * page/mac/WebCoreFrameBridge.h: Moved insertText method to Editor.
59816         * page/mac/WebCoreFrameBridge.mm:
59817
59818         * WebCore.exp: Updated exports.
59819
59820 2007-01-29  Anders Carlsson  <acarlsson@apple.com>
59821
59822         Reviewed by Geoff.
59823
59824         <rdar://problem/4960097>
59825         http://bugs.webkit.org/show_bug.cgi?id=12444
59826         Assertion failure in -[WebCoreFrameBridge installInFrame:]
59827         
59828         The problem was that the XML tokenizer didn't create elements with 
59829         createdByParser set to true.
59830         
59831         * dom/Document.cpp:
59832         (WebCore::Document::createElement):
59833         New method which takes a QName. This is used by both the XML tokenizer and createElementNS.
59834         
59835         (WebCore::Document::createElementNS):
59836         Call new createElement method.
59837         
59838         * dom/XMLTokenizer.h:        
59839         * dom/XMLTokenizer.cpp:
59840         (WebCore::XMLTokenizer::XMLTokenizer):
59841         (WebCore::XMLTokenizer::~XMLTokenizer):
59842         Use an OwnPtr for the pending callbacks object. Also, use String instead of StringImpl in the hash map.
59843         
59844         (WebCore::toString):
59845         (WebCore::XMLTokenizer::startElementNs):
59846         Call createElement.
59847         
59848 2007-01-29  Brady Eidson  <beidson@apple.com>
59849
59850         Reviewed by Oliver
59851
59852         http://bugs.webkit.org/show_bug.cgi?id=12465
59853         Only set the iconURL port for non-zero ports
59854
59855         * loader/FrameLoader.cpp:
59856         (WebCore::FrameLoader::iconURL):
59857
59858 2007-01-29  John Sullivan  <sullivan@apple.com>
59859
59860         * platform/network/mac/ResourceRequestMac.mm:
59861         Build fix -- removed #import of no-longer-extant WebDataProtocol.h (and also one of the
59862         two #imports for WebCoreSystemInterface.h, while I was at it)
59863
59864 2007-01-29  Anders Carlsson  <acarlsson@apple.com>
59865
59866         Reviewed by Oliver.
59867
59868         * page/DragController.cpp:
59869         (WebCore::DragController::dragEnteredOrUpdated):
59870         Only try a drag operation if the drag client explicitly specified that it is OK
59871
59872 2007-01-29  Oliver Hunt  <oliver@apple.com>
59873
59874         Reviewed by Adam.
59875
59876         Migrated more drag logic and state to WebCore
59877                                               
59878         * page/DragClient.h:       
59879
59880         * page/DragController.cpp:
59881         (WebCore::DragController::delegateDragSourceAction):
59882           New forwarding method for the UI delegate
59883         * page/DragController.h:
59884         (WebCore::DragController::dragOffset):
59885           Now store the drag offset -- the offset of the cursor relative to the drag image)
59886           in DragController
59887         * page/EventHandler.cpp:
59888         (WebCore::EventHandler::allowDHTMLDrag):
59889           Moved from WebFrameBridge
59890         * page/EventHandler.h:
59891         * page/mac/EventHandlerMac.mm:
59892         (WebCore::EventHandler::eventMayStartDrag):
59893         (WebCore::EventHandler::handleDrag):                  
59894           EventHandlerMac now uses EventHandler::allowDHTMLDrag rather than the 
59895           implementation in WebFrameBridge
59896         * page/mac/WebCoreFrameBridge.h:
59897           removed definition of allowDHTMLDrag from WebFrameBridge
59898         * platform/graphics/svg/SVGImageEmptyClients.h:
59899         (WebCore::SVGEmptyDragClient::dragSourceActionMaskForPoint):
59900           Updated empty DragClient
59901
59902 2007-01-29  Alexey Proskuryakov  <ap@webkit.org>
59903
59904         Reviewed by Darin.
59905
59906         http://bugs.webkit.org/show_bug.cgi?id=12359
59907         XPathEvaluator may return some nodes more than once in a result set
59908
59909         Test: fast/xpath/nodeset-duplicates.html
59910
59911         * xml/XPathPath.cpp:
59912         (WebCore::XPath::LocationPath::doEvaluate): Ensure uniqueness of elements
59913         in the node-set.
59914
59915         * xml/XPathPredicate.cpp:
59916         (WebCore::XPath::Union::doEvaluate): Fixed a uniqueness algorithm that was
59917         already present here. Added a FIXME about incorrect result ordering.
59918
59919 2007-01-29  Alexey Proskuryakov  <ap@webkit.org>
59920
59921         Reviewed by Darin.
59922
59923         http://bugs.webkit.org/show_bug.cgi?id=12340
59924         XPathEvaluator behavior does not match Firefox - name() and attribute nodes
59925
59926         * xml/XPathFunctions.cpp:
59927         (WebCore::XPath::FunName::doEvaluate): Do not try to append a prefix if it doesn't exist.
59928
59929 2007-01-29  Alexey Proskuryakov  <ap@webkit.org>
59930
59931         Reviewed by Darin.
59932
59933         http://bugs.webkit.org/show_bug.cgi?id=11815
59934         XPathEvaluator behavior does not match Firefox - substring() and empty element
59935
59936         Test: fast/xpath/empty-string-substring.html
59937
59938         * xml/XPathValue.cpp:
59939         (WebCore::XPath::Value::Value):
59940         * xml/XPathValue.h:
59941         Added a constructor taking const char*, so that string literals and arrays don't 
59942         get converted to boolean values.
59943
59944 2007-01-29  Zack Rusin  <zrusin@trolltech.com>
59945
59946         Cosmetic fixes - don't resize the widget in the constructor
59947         (it was a hack from the initial port) and fix the paint
59948         signature.
59949
59950         * platform/qt/ScrollViewCanvasQt.cpp:
59951         (WebCore::ScrollViewCanvasQt::ScrollViewCanvasQt):
59952         * platform/qt/WidgetQt.cpp:
59953         (WebCore::Widget::paint):
59954
59955 2007-01-29  Maciej Stachowiak  <mjs@apple.com>
59956
59957         - change from struct to class to make picky compilers happy
59958
59959         * loader/SubstituteData.h:
59960
59961 2007-01-30  Mark Rowe  <mrowe@apple.com>
59962
59963         Reviewed by Maciej.
59964
59965         http://bugs.webkit.org/show_bug.cgi?id=12458
59966         Bug 12458: Crash in W3C-SVG-1.1/animate-elem-09-t.svg running layout tests under guard malloc
59967
59968         * ksvg2/svg/SVGAnimationElement.cpp: 
59969         (WebCore::parseValues): ptr either points to a ';' or off the end of the buffer.  We're
59970         interested in what comes before the ';', so start there instead.
59971
59972 2007-01-29  Zack Rusin  <zrusin@trolltech.com>
59973
59974         Reviewed by Lars.
59975
59976         Take the scrollbars into considation when computing
59977         the contents size of the main frame.
59978
59979         * platform/qt/PlatformScrollBarQt.cpp:
59980         (WebCore::PlatformScrollbar::paint):
59981         * platform/qt/ScrollViewQt.cpp:
59982         (WebCore::ScrollView::visibleWidth):
59983         (WebCore::ScrollView::visibleHeight):
59984         (WebCore::ScrollView::visibleContentRect):
59985         * platform/qt/WidgetQt.cpp:
59986         (WebCore::Widget::invalidate):
59987         (WebCore::Widget::invalidateRect):
59988
59989 2007-01-29  Maciej Stachowiak  <mjs@apple.com>
59990
59991         - fix includes
59992
59993         * loader/SubstituteData.h:
59994
59995 2007-01-29  Maciej Stachowiak  <mjs@apple.com>
59996
59997         - added new file that I forgot in the last commit
59998
59999         * loader/SubstituteData.h: Added.
60000         (WebCore::SubstituteData::SubstituteData):
60001         (WebCore::SubstituteData::isValid):
60002         (WebCore::SubstituteData::content):
60003         (WebCore::SubstituteData::mimeType):
60004         (WebCore::SubstituteData::textEncoding):
60005         (WebCore::SubstituteData::failingURL):
60006
60007 2007-01-29  Maciej Stachowiak  <mjs@apple.com>
60008
60009         Reviewed by Mark.
60010
60011         - made data loading cross-platform
60012         - fixed <rdar://problem/4910106>
60013
60014         * WebCore.exp:
60015         * WebCore.xcodeproj/project.pbxproj:
60016         * loader/CachedResource.cpp:
60017         * loader/CachedResource.h:
60018         * loader/DocLoader.cpp:
60019         (WebCore::DocLoader::requestResource):
60020         * loader/DocumentLoader.cpp:
60021         (WebCore::DocumentLoader::DocumentLoader):
60022         (WebCore::DocumentLoader::setRequest):
60023         (WebCore::DocumentLoader::urlForHistory):
60024         (WebCore::DocumentLoader::unreachableURL):
60025         * loader/DocumentLoader.h:
60026         (WebCore::DocumentLoader::substituteData):
60027         * loader/FrameLoader.cpp:
60028         (WebCore::FrameLoader::load):
60029         (WebCore::FrameLoader::shouldReloadToHandleUnreachableURL):
60030         (WebCore::FrameLoader::reloadAllowingStaleData):
60031         (WebCore::FrameLoader::reload):
60032         (WebCore::FrameLoader::commitProvisionalLoad):
60033         (WebCore::FrameLoader::startLoadingMainResource):
60034         (WebCore::FrameLoader::startLoading):
60035         (WebCore::FrameLoader::checkNavigationPolicy):
60036         * loader/FrameLoader.h:
60037         * loader/FrameLoaderClient.h:
60038         * loader/MainResourceLoader.cpp:
60039         (WebCore::MainResourceLoader::willSendRequest):
60040         (WebCore::MainResourceLoader::continueAfterContentPolicy):
60041         (WebCore::MainResourceLoader::handleEmptyLoad):
60042         (WebCore::MainResourceLoader::handleDataLoad):
60043         (WebCore::MainResourceLoader::loadNow):
60044         (WebCore::MainResourceLoader::load):
60045         * loader/MainResourceLoader.h:
60046         * loader/mac/DocumentLoaderMac.mm:
60047         * loader/mac/WebDataProtocol.h: Removed.
60048         * loader/mac/WebDataProtocol.mm: Removed.
60049         * loader/qt/DocumentLoaderQt.cpp:
60050         * platform/graphics/svg/SVGImageEmptyClients.h:
60051         (WebCore::SVGEmptyFrameLoaderClient::createDocumentLoader):
60052
60053 2007-01-29  Zack Rusin  <zrusin@trolltech.com>
60054
60055         Order the build files alphabetically instead of
60056         the random mess we had before.
60057
60058         * WebCore.pro:
60059
60060 2007-01-29  Zack Rusin  <zack@kde.org>
60061
60062         Reviewed by Lars
60063
60064         Use the platform independent scrollbar code.
60065         Remove the redundant empty stubs and forward
60066         few missing platform scrollbar calls.
60067
60068         * WebCore.pro:
60069         * platform/qt/PlatformScrollBarQt.cpp:
60070         (WebCore::PlatformScrollbar::paint):
60071         (WebCore::PlatformScrollbar::setRect):
60072
60073 2007-01-29  Lars Knoll <lars@trolltech.com>
60074
60075         Reviewed by Zack
60076
60077         Fix the way we handle native widgets (QWidget) inside
60078         WebCore. Now WebCore::Widget owns the QWidget in all
60079         cases. This is the only way to get well defined semantics
60080         for all teh native widgets we have (currently ScrollView
60081         and ScrollBar, but plugins will follow).
60082
60083         This has the side effect that one cannot rely on a defined 
60084         lifetime of a QWebFrame when using the API. 
60085
60086         * platform/Widget.h:
60087         * platform/qt/PlatformScrollBarQt.cpp:
60088         (WebCore::PlatformScrollbar::PlatformScrollbar):
60089         * platform/qt/ScrollViewQt.cpp:
60090         (WebCore::ScrollView::addChild):
60091         (WebCore::ScrollView::removeChild):
60092         * platform/qt/WidgetQt.cpp:
60093         (WebCore::WidgetPrivate::WidgetPrivate):
60094         (WebCore::WidgetPrivate::~WidgetPrivate):
60095         (WebCore::Widget::qwidget):
60096
60097 2007-01-28  George Staikos  <staikos@kde.org>
60098
60099         Reviewed by Maciej.
60100
60101         Don't send data during a redirect -> causes assert failure.
60102
60103         * platform/network/qt/ResourceHandleManagerQt.cpp:
60104         (WebCore::ResourceHandleManager::receivedData):
60105
60106 2007-01-29  Mark Rowe  <mrowe@apple.com>
60107
60108         Reviewed by Brady.
60109
60110         http://bugs.webkit.org/show_bug.cgi?id=11085
60111         Bug 11085: REGRESSION: favicon.ico always looked for on port 80
60112
60113         * loader/FrameLoader.cpp:
60114         (WebCore::FrameLoader::iconURL): Copy the port over to the favicon URL.
60115
60116 2007-01-28  Adam Roben  <aroben@apple.com>
60117
60118         Reviewed by Adele.
60119
60120         Fix http://bugs.webkit.org/show_bug.cgi?id=12453
60121         REGRESSION(r19197): Tabbing into web page requires two key presses
60122
60123         All layout tests pass.
60124
60125         * page/FocusController.cpp:
60126         (WebCore::FocusController::advanceFocus): If there's no focused frame,
60127         actually go ahead and find a focusable node instead of just focusing
60128         the main frame and quitting. This behavior was a holdover from a
60129         previous desired tabbing behavior with respect to frames.
60130
60131 2007-01-28  David Kilzer  <ddkilzer@webkit.org>
60132
60133         Reviewed by Darin and David Hyatt.
60134
60135         - fix http://bugs.webkit.org/show_bug.cgi?id=12423
60136           Mixing white-space:pre text with non white-space:pre text does not wrap properly
60137
60138         Test: fast/block/basic/white-space-pre-wraps.html
60139
60140         * rendering/bidi.cpp:
60141         (WebCore::RenderBlock::findNextLineBreak): Wrap a non-wrapping text run if it
60142         appears on a line with previous text runs that do wrap.
60143
60144 2007-01-28  Mitz Pettel  <mitz@webkit.org>
60145
60146         Reviewed by Darin.
60147
60148         - fix http://bugs.webkit.org/show_bug.cgi?id=8360
60149           Repro crash when onscroll handler deletes the scrolled object
60150
60151         Test: fast/layers/removed-by-scroll-handler.html
60152
60153         * page/FrameView.cpp:
60154         (WebCore::FrameViewPrivate::FrameViewPrivate): Added a m_enqueueEvents count.
60155         (WebCore::FrameView::layout): Raise the enqueue count before starting layout and
60156         until after enqueued events are dispatched.
60157         (WebCore::FrameView::scheduleEvent): Made this function dispatch the event
60158         immediately unless the enqueue count is positive.
60159         * rendering/RenderLayer.cpp:
60160         (WebCore::RenderLayer::scrollToOffset): Schedule the scroll event through the
60161         FrameView.
60162         (WebCore::RenderLayer::scrollRectToVisible):
60163         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
60164         (WebCore::Marquee::start):
60165
60166 2007-01-28  Charles Ying  <charles_ying@yahoo.com>
60167
60168         Reviewed by eseidel.  Landed by eseidel.
60169
60170         Fix http://bugs.webkit.org/show_bug.cgi?id=12429
60171             animateTransform rotate, with cx/cy is broken
60172             
60173         SVGTransform now contains a float point to store the rotation center, needed
60174             to track rotation center for interpolation by animateTransform.
60175             
60176         SVGTransform now has an additional constructor:
60177             SVGTransform(type) to make empty base value transforms that match their
60178             distanced values.
60179             
60180         Removed m_colorDistance and m_transformDistance from their respective classes
60181             as they are now computed at update time.
60182
60183         Fix a case where animateTransform did not parse transform values correctly
60184             according to BNF in W3C spec:
60185
60186         Test case in:
60187         * manual-tests/animation/animateTransform-toanimation.svg: Added.
60188
60189         Fix a case where animateTransform only specified a to animation only.
60190
60191         Test case in:
60192         * manual-tests/animation/animateTransform-parser.svg: Added.
60193
60194         * ksvg2/svg/SVGAnimateColorElement.cpp:
60195         (WebCore::SVGAnimateColorElement::updateAnimationBaseValueFromElement):
60196         (WebCore::SVGAnimateColorElement::updateAnimatedValue):
60197         (WebCore::SVGAnimateColorElement::calculateFromAndToValues):
60198         * ksvg2/svg/SVGAnimateColorElement.h:
60199         * ksvg2/svg/SVGAnimateTransformElement.cpp:
60200         (WebCore::SVGAnimateTransformElement::updateAnimatedValue):
60201         (WebCore::SVGAnimateTransformElement::updateAnimationBaseValueFromElement):
60202         (WebCore::SVGAnimateTransformElement::calculateFromAndToValues):
60203         (WebCore::SVGAnimateTransformElement::parseTransformValue):
60204         * ksvg2/svg/SVGAnimateTransformElement.h:
60205         * ksvg2/svg/SVGTransform.cpp:
60206         (SVGTransform::SVGTransform):
60207         (SVGTransform::angle):
60208         (SVGTransform::rotationCenter):
60209         (SVGTransform::setTranslate):
60210         (SVGTransform::setScale):
60211         (SVGTransform::setRotate):
60212         (SVGTransform::setSkewX):
60213         (SVGTransform::setSkewY):
60214         * ksvg2/svg/SVGTransform.h:
60215         * ksvg2/svg/SVGTransformDistance.cpp:
60216         (WebCore::SVGTransformDistance::SVGTransformDistance):
60217         (WebCore::SVGTransformDistance::scaledDistance):
60218         (WebCore::SVGTransformDistance::addSVGTransforms):
60219         (WebCore::SVGTransformDistance::addSVGTransform):
60220         (WebCore::SVGTransformDistance::addToSVGTransform):
60221         (WebCore::SVGTransformDistance::distance):
60222         * ksvg2/svg/SVGTransformDistance.h:
60223         * manual-tests/animation/animateTransform-parser.svg: Added.
60224         * manual-tests/animation/animateTransform-toanimation.svg: Added.
60225
60226 2007-01-27  Adam Roben  <aroben@apple.com>
60227
60228         Reviewed by Ada.
60229
60230         Fix <rdar://problem/4957184> REGRESSION: After creating a new mail
60231         message, the caret is automatically in message body
60232
60233         -[WebHTMLView _updateActiveState] was calling
60234         FocusController::focusedOrMainFrame, which had the surprising
60235         side-effect of setting the focused frame if there was none. The fix
60236         was to remove this side-effect.
60237
60238         No tests possible, as this bug involves focus outside the WebView,
60239         which we have no support for in DRT.
60240
60241         Change inspired by Dave Harrison.
60242
60243         * page/FocusController.cpp:
60244         (WebCore::FocusController::focusedOrMainFrame): Removed this method's
60245         non-obvious side-effect of setting the focused frame.
60246         * WebCore.xcodeproj/project.pbxproj: Version wars.
60247
60248 2007-01-27  Peter Kasting  <pkasting@google.com>
60249
60250         Reviewed by Maciej.
60251
60252         http://bugs.webkit.org/show_bug.cgi?id=11880: Improve some egregious
60253         Windows form control drawing issues:
60254         Provide Classic mode fallbacks for the button/textfield drawing
60255         routines.
60256         Provide some basic drawing of menulists (still relatively broken).
60257         Some cleanup.
60258
60259         * platform/win/TemporaryLinkStubs.cpp:
60260         (WebCore::RenderThemeWin::systemFont):
60261         * rendering/RenderThemeWin.cpp:
60262         (WebCore::m_menuListTheme):
60263         (WebCore::RenderThemeWin::close):
60264         (WebCore::RenderThemeWin::determineClassicState):
60265         (WebCore::RenderThemeWin::getThemeData):
60266         (WebCore::RenderThemeWin::paintButton):
60267         (WebCore::RenderThemeWin::paintTextField):
60268         (WebCore::RenderThemeWin::paintMenuList):
60269         (WebCore::RenderThemeWin::paintMenuListButton):
60270         * rendering/RenderThemeWin.h:
60271         (WebCore::ThemeData::m_classicState):
60272         (WebCore::RenderThemeWin::setRadioSize):
60273         (WebCore::RenderThemeWin::paintTextArea):
60274
60275 2007-01-27  David Kilzer  <ddkilzer@webkit.org>
60276
60277         Reviewed by Adam.
60278
60279         - fix http://bugs.webkit.org/show_bug.cgi?id=12260
60280           Windows platform build is not maintained
60281
60282         * loader/win/FrameLoaderWin.cpp:
60283         * platform/network/win/ResourceHandleWin.cpp:
60284         * platform/win/TemporaryLinkStubs.cpp:
60285         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
60286         (WebCore::contextMenuItemTagDownloadLinkToDisk):
60287         (WebCore::contextMenuItemTagCopyLinkToClipboard):
60288         (WebCore::contextMenuItemTagOpenImageInNewWindow):
60289         (WebCore::contextMenuItemTagDownloadImageToDisk):
60290         (WebCore::contextMenuItemTagCopyImageToClipboard):
60291         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
60292         (WebCore::contextMenuItemTagCopy):
60293         (WebCore::contextMenuItemTagGoBack):
60294         (WebCore::contextMenuItemTagGoForward):
60295         (WebCore::contextMenuItemTagStop):
60296         (WebCore::contextMenuItemTagReload):
60297         (WebCore::contextMenuItemTagCut):
60298         (WebCore::contextMenuItemTagPaste):
60299         (WebCore::contextMenuItemTagNoGuessesFound):
60300         (WebCore::contextMenuItemTagIgnoreSpelling):
60301         (WebCore::contextMenuItemTagLearnSpelling):
60302         (WebCore::contextMenuItemTagSearchWeb):
60303         (WebCore::contextMenuItemTagLookUpInDictionary):
60304         (WebCore::contextMenuItemTagOpenLink):
60305         (WebCore::contextMenuItemTagIgnoreGrammar):
60306         (WebCore::contextMenuItemTagSpellingMenu):
60307         (WebCore::contextMenuItemTagShowSpellingPanel):
60308         (WebCore::contextMenuItemTagCheckSpelling):
60309         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
60310         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
60311         (WebCore::contextMenuItemTagFontMenu):
60312         (WebCore::contextMenuItemTagBold):
60313         (WebCore::contextMenuItemTagItalic):
60314         (WebCore::contextMenuItemTagUnderline):
60315         (WebCore::contextMenuItemTagOutline):
60316         (WebCore::contextMenuItemTagWritingDirectionMenu):
60317         (WebCore::contextMenuItemTagDefaultDirection):
60318         (WebCore::contextMenuItemTagLeftToRight):
60319         (WebCore::contextMenuItemTagRightToLeft):
60320         (WebCore::DocumentLoader::unreachableURL):
60321         (WebCore::FrameLoader::redirectDataToPlugin):
60322         (WebCore::FrameLoader::partClearedInBegin):
60323         (WebCore::FrameLoader::createPlugin):
60324
60325 2007-01-27  Sam Weinig  <sam@webkit.org>
60326
60327         Reviewed by Mitz.
60328
60329         - Patch for http://bugs.webkit.org/show_bug.cgi?id=11957
60330           REGRESSION: Unordered List Bullets too big and changing from size
60331
60332         * rendering/RenderListMarker.cpp:
60333         (WebCore::RenderListMarker::paint): Explicitly set the stroke size to 1.0f.
60334
60335 2007-01-27  Lars Knoll <lars@trolltech.com>
60336
60337         Fix the Qt build and disable the usage
60338         of QScrollbars for PlatformScrollBar for 
60339         now as it causes crashes in the layout tests.
60340
60341         * WebCore.pro:
60342         * ksvg2/svg/SVGTransformDistance.cpp:
60343         * page/qt/FrameQt.cpp:
60344         (WebCore::FrameQt::FrameQt):
60345         (WebCore::FrameQt::bindingRootObject):
60346         (WebCore::FrameQt::createRootObject):
60347         * page/qt/FrameQt.h:
60348         * platform/qt/PlatformScrollBarQt.cpp:
60349         (WebCore::PlatformScrollbar::PlatformScrollbar):
60350         * platform/qt/ScrollViewQt.cpp:
60351         (WebCore::ScrollView::addChild):
60352
60353 2007-01-27  David Kilzer  <ddkilzer@kilzer.net>
60354
60355         Reviewed by NOBODY (buildbot build fix).
60356
60357         * ksvg2/svg/ColorDistance.cpp:
60358         (WebCore::ColorDistance::scaledDistance): Added static cast of arguments to int.
60359
60360 2007-01-27  Rob Buis  <buis@kde.org>
60361
60362         Reviewed by NOBODY (typo in method name fix).
60363
60364         * ksvg2/svg/SVGSVGElement.cpp:
60365         (WebCore::SVGSVGElement::addSVGWindowEventListener):
60366         (WebCore::SVGSVGElement::parseMappedAttribute):
60367         * ksvg2/svg/SVGSVGElement.h:
60368
60369 2007-01-27  Eric Seidel  <eric@webkit.org>
60370
60371         Reviewed by olliej.
60372
60373         Fix support for SVG's <set> element.
60374
60375         Manual test added.
60376
60377         * ksvg2/svg/SVGSetElement.cpp:
60378         (WebCore::SVGSetElement::updateAnimatedValue):
60379         (WebCore::SVGSetElement::calculateFromAndToValues):
60380         * ksvg2/svg/SVGSetElement.h:
60381         * manual-tests/animation/set-to.svg: Added.
60382
60383 2007-01-27  Alexey Proskuryakov  <ap@webkit.org>
60384
60385         Release build fix.
60386
60387         * loader/TextResourceDecoder.cpp:
60388         (WebCore::TextResourceDecoder::checkForHeadCharset):
60389
60390 2007-01-27  Alexey Proskuryakov  <ap@webkit.org>
60391
60392         Reviewed by Darin.
60393
60394         http://bugs.webkit.org/show_bug.cgi?id=12389
60395         Chinese decoding error at hk.antispam.yahoo.com
60396
60397         Test: fast/encoding/noscript-in-head.html
60398
60399         * loader/TextResourceDecoder.cpp:
60400         (WebCore::TextResourceDecoder::checkForHeadCharset): We were already allowing 
60401         NOSCRIPT tags in head, let's actually skip over their content.
60402
60403 2007-01-26  Geoffrey Garen  <ggaren@apple.com>
60404
60405         Reviewed by Maciej Stachowiak.
60406         
60407         Fixed <rdar://problem/4608404> WebScriptObject's _executionContext lack 
60408         of ownership policy causes crashes (e.g., in Dashcode)
60409
60410         Added RootObject ref-counting goodness.
60411
60412         * page/mac/FrameMac.h:
60413         * page/mac/FrameMac.mm:
60414         (WebCore::FrameMac::cleanupPluginObjects): Invalidate our RootObjects 
60415         instead of detroying them. Track _bindingRootObject separately from the
60416         rest of our RootObjects, since it has its own variable.
60417
60418         * page/mac/WebCoreFrameBridge.mm:
60419         (createRootObject): Use the Frame's new, more encapsulated function to
60420         create a RootObject.
60421
60422         * bindings/objc/WebScriptObject.mm: Nixed rootObject setters, since they
60423         were unused and they complicated reference-counting.
60424
60425 2007-01-26  David Kilzer  <ddkilzer@webkit.org>
60426
60427         Reviewed by Eric.
60428
60429         Release build fix.
60430
60431         * ksvg2/svg/SVGAnimationElement.cpp:
60432         (WebCore::SVGAnimationElement::calculateValueIndexAndPercentagePast): Added static cast
60433         to unsigned when calculating flooredValueIndex.
60434
60435 2007-01-26  Darin Adler  <darin@apple.com>
60436
60437         - checked in slightly newer revision of the patch below
60438
60439         * css/CSSComputedStyleDeclaration.cpp:
60440         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
60441         Grouped all the unimplemented values at the bottom. Fixed the ifdef for
60442         CSS_PROP__WEBKIT_DASHBOARD_REGION so that it compiles on all platforms.
60443
60444         * css/cssparser.cpp: (WebCore::CSSParser::parseValue): Removed default
60445         case and added type so that the compiler warns about missing properties.
60446         * css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::applyProperty): Ditto.
60447
60448 2007-01-26  Darin Adler  <darin@apple.com>
60449
60450         Reviewed by Beth.
60451
60452         - fix http://bugs.webkit.org/show_bug.cgi?id=12412
60453           "unimplemented propertyID: 46" seen at dojotoolkit.org
60454
60455         Covered by fast/css/computed-style.html
60456
60457         * css/CSSPropertyNames.in: Sorted the file into two separate sections, one
60458         for properties without the -webkit- prefix and another for properties with.
60459
60460         * css/makeprop: Generate a CSSPropertyID enum instead of a set of #defines.
60461         Removed unused CSS_PROP_MIN and CSS_PROP_MAX. Renamed CSS_PROP_TOTAL to
60462         numCSSProperties and changed it to a const int instead of #define.
60463         Added a declaration of getPropertyName in the header. Changed the return
60464         type of getPropertyName to const char* and the parameter type to CSSPropertyID.
60465
60466         * css/CSSComputedStyleDeclaration.cpp: Sort the lists of properties in
60467         an easier to maintain order -- properties without a WebKit prefix first.
60468         (WebCore::valueForLength): Changed return value to PassRefPtr.
60469         (WebCore::valueForMaxLength): Ditto.
60470         (WebCore::valueForBorderStyle): Ditto.
60471         (WebCore::valueForTextAlign): Ditto.
60472         (WebCore::valueForAppearance): Added.
60473         (WebCore::valueForMarginCollapse): Added.
60474         (WebCore::valueForShadow): Changed return value to PassRefPtr.
60475         (WebCore::getPositionOffsetValue): Ditto.
60476         (WebCore::currentColorOrValidColor): Ditto.
60477         (WebCore::CSSComputedStyleDeclaration::cssText): Added cast since
60478         getPropertyName now takes an enum value.
60479         (WebCore::primitiveValueFromLength): Changed return value to PassRefPtr.
60480         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
60481         Added cast to CSSPropertyID so that gcc will detect missing enums in the
60482         switch statement. Simplified the background-size and border-spacing
60483         implementations so they don't have local variables. Added lots of cases
60484         to the switch statement for unimplemented properties. Implemented the
60485         outline-width, box-sizing, -webkit-appearance, -webkit-rtl-ordering,
60486         -webkit-user-drag, and -webkit-user-select properties.
60487         (WebCore::CSSComputedStyleDeclaration::item): Added cast since
60488         getPropertyName now takes an enum value.
60489
60490         * css/CSSMutableStyleDeclaration.cpp: Removed declaration of getPropertyName.
60491         (WebCore::CSSMutableStyleDeclaration::item): Added cast since
60492         getPropertyName now takes an enum value.
60493
60494         * css/CSSProperty.cpp: Removed declaration of getPropertyName.
60495         (WebCore::CSSProperty::cssText): Added cast since
60496         getPropertyName now takes an enum value and returns a const char*.
60497
60498         * css/CSSStyleDeclaration.cpp: Removed declaration of getPropertyName.
60499         (WebCore::CSSStyleDeclaration::getPropertyShorthand): Added cast since
60500         getPropertyName now takes an enum value and returns a const char*.
60501
60502 2007-01-26  Alice Liu  <alice.liu@apple.com>
60503
60504         Reviewed by Brady.
60505
60506         Fixed <rdar://problem/4838076> CrashTracer: 10 crashes in Mail at com.apple.WebCore: WTF::HashMap<WebCore::String
60507
60508         * loader/DocLoader.cpp:
60509         (WebCore::DocLoader::requestResource):
60510         Added nil check around resource from cache.
60511
60512 2007-01-26  Adam Roben  <aroben@apple.com>
60513
60514         Reviewed by Oliver.
60515
60516         Build fix.
60517
60518         * ksvg2/svg/SVGAnimationElement.cpp:
60519         (WebCore::SVGAnimationElement::calculateValueIndexAndPercentagePast):
60520         Keep index variables as unsigned until we need to convert to float.
60521
60522 2007-01-26  Alice Liu  <alice.liu@apple.com>
60523
60524         Reviewed by Ada.
60525
60526         Fixed <rdar://problem/4919097> REGRESSION: Ctrl-Y fails to yank (11076)
60527
60528         * editing/Editor.cpp:
60529         (WebCore::Editor::deleteWithDirection):
60530         If there's no selection, locally create a range that is to the end of the granularity unit and pass that to deleteRange(). 
60531
60532 2007-01-26  Sam Weinig  <sam@webkit.org>
60533
60534         Reviewed by Maciej.
60535
60536         Qt build fix.
60537
60538         * page/qt/EventHandlerQt.cpp:
60539
60540 2007-01-26  Matt Perry  <mpcomplete@chromium.org>
60541
60542         Reviewed by Hyatt.
60543
60544         Fix so that we only relayout frameset children on calls to layout.
60545
60546         * page/FrameView.cpp:
60547         (WebCore::FrameView::layout):
60548
60549 2007-01-26  Oliver Hunt  <oliver@apple.com>
60550
60551         Build Fix
60552
60553         * ksvg2/svg/ColorDistance.cpp:
60554         * ksvg2/svg/SVGAnimationElement.cpp:
60555         (WebCore::SVGAnimationElement::handleTimerEvent):
60556
60557 2007-01-26  Eric Seidel  <eric@webkit.org>
60558
60559         Reviewed by olliej.
60560
60561         Add support for calcMode, keyTimes and (nearly) keySplines.
60562         http://bugs.webkit.org/show_bug.cgi?id=12350
60563         Re-architect much of the animation system to remove huge sections of code.
60564         Added new ColorDistance, SVGTransformDistance to simplify animateColor, animateTransform calculations.
60565         I also added basic <animateMotion> support since it was so easy w/ the new architecture.
60566         
60567         Adding manual animation tests until bug 12074 is fixed.
60568
60569         * WebCore.xcodeproj/project.pbxproj:
60570         * ksvg2/misc/SVGTimer.cpp:
60571         (WebCore::SVGTimer::applyAnimations):
60572         * ksvg2/svg/ColorDistance.cpp: Added.
60573         (WebCore::ColorDistance::ColorDistance):
60574         (WebCore::clampColorValue):
60575         (WebCore::ColorDistance::scaledDistance):
60576         (WebCore::ColorDistance::addColorsAndClamp):
60577         (WebCore::ColorDistance::addToColorAndClamp):
60578         (WebCore::ColorDistance::isZero):
60579         (WebCore::ColorDistance::distance):
60580         * ksvg2/svg/ColorDistance.h: Added.
60581         * ksvg2/svg/SVGAnimateColorElement.cpp:
60582         (WebCore::SVGAnimateColorElement::SVGAnimateColorElement):
60583         (WebCore::SVGAnimateColorElement::updateAnimationBaseValueFromElement):
60584         (WebCore::SVGAnimateColorElement::applyAnimatedValueToElement):
60585         (WebCore::SVGAnimateColorElement::updateAnimatedValue):
60586         (WebCore::SVGAnimateColorElement::calculateFromAndToValues):
60587         * ksvg2/svg/SVGAnimateColorElement.h:
60588         (WebCore::SVGAnimateColorElement::contextElement):
60589         * ksvg2/svg/SVGAnimateElement.h:
60590         (WebCore::SVGAnimateElement::updateAnimatedValue):
60591         (WebCore::SVGAnimateElement::calculateFromAndToValues):
60592         * ksvg2/svg/SVGAnimateMotionElement.cpp:
60593         (WebCore::SVGAnimateMotionElement::hasValidTarget):
60594         (WebCore::SVGAnimateMotionElement::updateAnimatedValue):
60595         (WebCore::parsePoint):
60596         (WebCore::SVGAnimateMotionElement::calculateFromAndToValues):
60597         (WebCore::SVGAnimateMotionElement::updateAnimationBaseValueFromElement):
60598         (WebCore::SVGAnimateMotionElement::applyAnimatedValueToElement):
60599         * ksvg2/svg/SVGAnimateMotionElement.h:
60600         * ksvg2/svg/SVGAnimateTransformElement.cpp:
60601         (WebCore::SVGAnimateTransformElement::SVGAnimateTransformElement):
60602         (WebCore::SVGAnimateTransformElement::updateAnimatedValue):
60603         (WebCore::SVGAnimateTransformElement::updateAnimationBaseValueFromElement):
60604         (WebCore::SVGAnimateTransformElement::applyAnimatedValueToElement):
60605         (WebCore::SVGAnimateTransformElement::calculateFromAndToValues):
60606         (WebCore::SVGAnimateTransformElement::parseTransformValue):
60607         * ksvg2/svg/SVGAnimateTransformElement.h:
60608         (WebCore::SVGAnimateTransformElement::contextElement):
60609         * ksvg2/svg/SVGAnimationElement.cpp:
60610         (WebCore::SVGAnimationElement::parseKeyNumbers):
60611         (WebCore::parseValues):
60612         (WebCore::parseKeySplines):
60613         (WebCore::SVGAnimationElement::parseMappedAttribute):
60614         (WebCore::SVGAnimationElement::targetAttributeAnimatedValue):
60615         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
60616         (WebCore::SVGAnimationElement::detectAnimationMode):
60617         (WebCore::adjustPercentagePastForKeySplines):
60618         (WebCore::SVGAnimationElement::valueIndexAndPercentagePastForDistance):
60619         (WebCore::SVGAnimationElement::calculateTotalDistance):
60620         (WebCore::caculateValueIndexForKeyTimes):
60621         (WebCore::SVGAnimationElement::isValidAnimation):
60622         (WebCore::SVGAnimationElement::calculateValueIndexAndPercentagePast):
60623         (WebCore::SVGAnimationElement::updateAnimationBaseValueFromElement):
60624         (WebCore::SVGAnimationElement::applyAnimatedValueToElement):
60625         (WebCore::SVGAnimationElement::handleTimerEvent):
60626         (WebCore::SVGAnimationElement::updateAnimatedValueForElapsedSeconds):
60627         * ksvg2/svg/SVGAnimationElement.h:
60628         * ksvg2/svg/SVGParserUtilities.cpp:
60629         (WebCore::SVGPolyParser::parsePoints):
60630         * ksvg2/svg/SVGParserUtilities.h:
60631         * ksvg2/svg/SVGSetElement.cpp:
60632         * ksvg2/svg/SVGSetElement.h:
60633         (WebCore::SVGSetElement::updateAnimatedValue):
60634         (WebCore::SVGSetElement::calculateFromAndToValues):
60635         * ksvg2/svg/SVGTransform.cpp:
60636         (SVGTransform::type):
60637         (SVGTransform::translate):
60638         (SVGTransform::scale):
60639         (SVGTransform::setSkewX):
60640         (SVGTransform::setSkewY):
60641         * ksvg2/svg/SVGTransform.h:
60642         (WebCore::operator==):
60643         (WebCore::operator!=):
60644         * ksvg2/svg/SVGTransformDistance.cpp: Added.
60645         (WebCore::SVGTransformDistance::SVGTransformDistance):
60646         (WebCore::SVGTransformDistance::scaledDistance):
60647         (WebCore::SVGTransformDistance::addSVGTransforms):
60648         (WebCore::SVGTransformDistance::addSVGTransform):
60649         (WebCore::SVGTransformDistance::addToSVGTransform):
60650         (WebCore::SVGTransformDistance::isZero):
60651         (WebCore::SVGTransformDistance::distance):
60652         * ksvg2/svg/SVGTransformDistance.h: Added.
60653         * ksvg2/svg/SVGTransformList.cpp:
60654         (SVGTransformList::concatenateForType):
60655         * ksvg2/svg/SVGTransformList.h:
60656         * manual-tests/animation/animateColor-by.svg: Added.
60657         * manual-tests/animation/animateColor-from-by.svg: Added.
60658         * manual-tests/animation/animateColor-repeat-indefinite.svg: Added.
60659         * manual-tests/animation/animateColor-to-from.svg: Added.
60660         * manual-tests/animation/animateColor-to.svg: Added.
60661         * manual-tests/animation/animateColor-values-simple.svg: Added.
60662         * manual-tests/animation/animateMotion-to.svg: Added.
60663         * manual-tests/animation/animateTransform-keyTimes.svg: Added.
60664         * manual-tests/animation/animateTransform-repeat-once.svg: Added.
60665
60666 2007-01-26  Beth Dakin  <bdakin@apple.com>
60667
60668         Reviewed by Darin.
60669
60670         Fix for <rdar://problem/4956565> REGRESSION: After scrolling frame, 
60671         hovering over link in this frame doesn't change cursor to pointing 
60672         hand
60673
60674         The mouseMove event was not being propagated correctly after using 
60675         the mouse to scroll the frame because m_mousePressed was never 
60676         getting set to false.
60677
60678         * page/EventHandler.cpp:
60679         (WebCore::EventHandler::handleMousePressEvent): This code does not 
60680         belong here.
60681         * page/EventHandler.h: lastEventIsMouseUp() is only ever relevant 
60682         in EventHandlerMac, so it can just be a static function there.
60683         * page/mac/EventHandlerMac.mm:
60684         (WebCore::lastEventIsMouseUp): Make this static.
60685         (WebCore::EventHandler::passMouseDownEventToWidget): Here is where 
60686         we need to set m_mousePressed to false if lastEventIsMouseUp() is 
60687         true.
60688
60689 2007-01-26  David Hyatt  <hyatt@apple.com>
60690
60691         Fix for style regression caused by strictness checking of the number of properties.  This caused code like:
60692         "width: 20 px" to fail, because we interpreted it as two values and rejected it.  Our old code allowed 20 to be
60693         used like a pixel value and then ignored the orphaned unit.
60694
60695         This patch actually scans the list of values looking for orphaned units and reattaches them to the numeric
60696         values that they should correspond to.  This means rules like "width: 5 em" will now work in quirks mdoe and
60697         the "em" unit type will be honored.
60698
60699         Reviewed by beth
60700
60701         * WebCore.xcodeproj/project.pbxproj:
60702         * css/cssparser.cpp:
60703         (WebCore::unitFromString):
60704         (WebCore::CSSParser::checkForOrphanedUnits):
60705         (WebCore::CSSParser::parseValue):
60706         * css/cssparser.h:
60707         (WebCore::ValueList::valueAt):
60708         (WebCore::ValueList::deleteValueAt):
60709
60710 2007-01-26  George Staikos  <staikos@kde.org>
60711
60712         Reviewed by Zack.
60713
60714         Qt implementation.
60715
60716         * WebCore.pro:
60717         * platform/qt/FontPlatformDataQt.cpp:
60718         (WebCore::FontPlatformData::FontPlatformData):
60719         * platform/qt/ScrollViewQt.cpp:
60720         (WebCore::ScrollView::scrollbarUnderMouse):
60721
60722 2007-01-26  Brady Eidson  <beidson@apple.com>
60723
60724         Reviewed by Anders' rubberstamp
60725         
60726         Warning about unreferenced formal parameter caused compile to fail
60727
60728         * platform/cf/RetainPtr.h:
60729         (WebCore::adoptCFReference):
60730
60731 2007-01-26  Darin Adler  <darin@apple.com>
60732
60733         Reviewed by Brady.
60734
60735         - fix <rdar://problem/4956688> move Mac-specific part of icon code into IconMac
60736         - fix a GC-compatibility problem in the icon code I noticed by code inspection
60737
60738         * platform/FileChooser.cpp: (WebCore::FileChooser::chooseIcon): Removed Mac-specific
60739         path check -- that's in newIconForFile now.
60740
60741         * platform/graphics/Icon.h: Changed the image to be a RetainPtr. The old code was
60742         using -[NSObject retain] which is not good enough for a pointer in a C++ object.
60743         * platform/graphics/mac/IconMac.mm:
60744         (WebCore::Icon::Icon): Got rid of unneeded code to do what RetainPtr does for us.
60745         (WebCore::Icon::~Icon): Ditto.
60746         (WebCore::Icon::newIconForFile): Added check for non-absolute file names. Updated
60747         for use of RetainPtr. Use constructor that takes NSImage.
60748         (WebCore::Icon::paint): Add get() calls needed now that we are using a RetainPtr.
60749
60750         * WebCore.xcodeproj/project.pbxproj: Let Xcode do its thing.
60751
60752 2007-01-26  Alexey Proskuryakov  <ap@webkit.org>
60753
60754         Reviewed by Maciej.
60755
60756         http://bugs.webkit.org/show_bug.cgi?id=12385
60757         Assertion failure when loading subresources from "data:" frames
60758
60759         Test: fast/loader/opaque-base-url.html
60760
60761         * platform/KURL.cpp:
60762         (WebCore::KURL::init): Make the URL invalid if it's relative, but has an opaque or empty base.
60763
60764 2007-01-26  Matt Perry  <mpcomplete@chromium.org>
60765
60766         Reviewed by Darin.
60767
60768         * page/EventHandler.cpp:
60769         (WebCore::EventHandler::handleMouseMoveEvent):
60770         Removed a call to invalidateClick(), since we don't want to cancel a
60771         click if the mouse moves.
60772
60773 2007-01-26  Darin Adler  <darin@apple.com>
60774
60775         * css/MediaQueryEvaluator.cpp:
60776         (WebCore::MediaQueryEvaluator::mediaTypeMatchSpecific):
60777         Oops, forgot a !.
60778
60779 2007-01-26  Darin Adler  <darin@apple.com>
60780
60781         Patch by Nate Begeman.
60782         Reviewed by Darin and Maciej.
60783
60784         - <rdar://problem/4946877> Avoid unnecessary allocations in CSS, patch attached (12401)
60785           http://bugs.webkit.org/show_bug.cgi?id=12401
60786
60787         * css/MediaQueryEvaluator.h: Add mediaTypeMatchSpecific, a function that
60788         takes a char* to avoid creating and destroying a String for simple media
60789         type queries.
60790         * css/MediaQueryEvaluator.cpp:
60791         (WebCore::MediaQueryEvaluator::mediaTypeMatchSpecific): Added. Besides
60792         avoiding the conversion to String, this also doesn't have the special
60793         case code to handle "" and "all".
60794
60795         * css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::matchUARules):
60796         Call mediaTypeMatchSpecific here when deciding whether to use the
60797         print version of the user agent style sheet.
60798
60799         * loader/Cache.cpp: (WebCore::Cache::requestResource): Don't convert to
60800         a string and back to a KURL when calling createResource. Avoids reparsing
60801         the URL string.
60802
60803 2007-01-26  Zack Rusin  <zrusin@trolltech.com>
60804
60805         Reviewed by Lars
60806
60807         Add history related classes to the project file.
60808
60809         * WebCore.pro:
60810
60811 2007-01-26  Zack Rusin  <zack@kde.org>
60812
60813         Reviewed by Lars
60814
60815         Introduce PlatformScrollBar and try to make 
60816         the scrollbar behavior a little more sane.
60817
60818         * WebCore.pro:
60819         * platform/qt/PlatformScrollBarQt.cpp: Added.
60820         (WebCore::Scrollbar::Scrollbar):
60821         (WebCore::Scrollbar::setSteps):
60822         (WebCore::Scrollbar::scroll):
60823         (WebCore::Scrollbar::setValue):
60824         (WebCore::Scrollbar::setProportion):
60825         (WebCore::PlatformScrollbar::PlatformScrollbar):
60826         (WebCore::PlatformScrollbar::~PlatformScrollbar):
60827         (WebCore::PlatformScrollbar::width):
60828         (WebCore::PlatformScrollbar::height):
60829         (WebCore::PlatformScrollbar::setEnabled):
60830         (WebCore::PlatformScrollbar::paint):
60831         (WebCore::PlatformScrollbar::updateThumbPosition):
60832         (WebCore::PlatformScrollbar::updateThumbProportion):
60833         (WebCore::PlatformScrollbar::setRect):
60834         * platform/qt/ScrollViewQt.cpp:
60835         (WebCore::ScrollView::addChild):
60836         * platform/qt/TemporaryLinkStubs.cpp:
60837         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
60838
60839 2007-01-26  Mitz Pettel  <mitz@webkit.org>
60840
60841         Reviewed by Darin.
60842
60843         - fix http://bugs.webkit.org/show_bug.cgi?id=11109
60844           REGRESSION (r15471): menus are offset on eink.com
60845           <rdar://problem/4824760>
60846
60847         Changed offset{Left,Top} to match Firefox. If the body element is statically
60848         positioned, it is still returned as the offsetParent of elements whose containing
60849         block is the initial containing block (the root), but their offset{Left,Top} are
60850         relative to the root. If the body element is positioned, then offsets are relative
60851         to it. The body's own offset{Left,Top} are always 0. 
60852
60853         Test: fast/dom/Element/offsetLeft-offsetTop-body-quirk.html
60854
60855         * rendering/RenderObject.cpp:
60856         (WebCore::RenderObject::offsetLeft):
60857         (WebCore::RenderObject::offsetTop):
60858
60859 2007-01-26  Mitz Pettel  <mitz@webkit.org>
60860
60861         Reviewed by Darin and Maciej.
60862
60863         - fix http://bugs.webkit.org/show_bug.cgi?id=10983
60864           REGRESSION (r12290): Drop shadow of flickr photo note is positioned incorrectly the second time it's shown
60865
60866         Test: fast/dynamic/staticY.html
60867
60868         * rendering/RenderBlock.cpp:
60869         (WebCore::RenderBlock::layoutPositionedObjects): Avoid marking the object's
60870         parents, since they have already been laid out.
60871         * rendering/RenderBox.cpp:
60872         (WebCore::RenderBox::setStaticY): Added a call to setChildNeedsLayout() to
60873         ensure relayout by this box's container (third and fourth cases in the
60874         layout test).
60875         * rendering/RenderBox.h:
60876         * rendering/RenderObject.cpp:
60877         (WebCore::RenderObject::markContainingBlocksForLayout): For positioned objects
60878         with static y, also mark the object's parent to ensure that it recomputes
60879         the static y value (first case in the layout test).
60880
60881 2007-01-26  Lars Knoll <lars@trolltech.com>
60882
60883         Reviewed by Zack
60884
60885         Get rid of FrameQtClient. It's unused since we moved over
60886         to the loader.
60887
60888         * WebCore.pro:
60889         * page/qt/FrameQt.cpp:
60890         (WebCore::FrameQt::FrameQt):
60891         * page/qt/FrameQt.h:
60892         * page/qt/FrameQtClient.cpp: Removed.
60893         * page/qt/FrameQtClient.h: Removed.
60894         * platform/network/ResourceHandleInternal.h:
60895         * platform/network/qt/ResourceHandleManagerQt.cpp:
60896         (WebCore::RequestQt::RequestQt):
60897         (WebCore::ResourceHandleManager::add):
60898         * platform/network/qt/ResourceHandleManagerQt.h:
60899         * platform/network/qt/ResourceHandleQt.cpp:
60900         (WebCore::ResourceHandle::start):
60901
60902 2007-01-26  Zack Rusin  <zack@kde.org>
60903
60904         Fix the compile
60905
60906         * WebCore.pro:
60907
60908 2007-01-26  Adam Roben  <aroben@apple.com>
60909
60910         Reviewed by Maciej.
60911
60912         Fixed <rdar://problem/4946499>, which made it impossible to tab
60913         forward into the left frame of tivofaq.com after tabbing out of the
60914         document.
60915
60916         * page/FocusController.cpp:
60917         (WebCore::FocusController::advanceFocus): Clear the focused frame
60918         before passing off focus to Chrome so that when we re-enter the
60919         document we start at the main frame instead of the last focused frame.
60920
60921 2007-01-25  Rob Buis  <buis@kde.org>
60922
60923         Reviewed by olliej.
60924
60925         http://bugs.webkit.org/show_bug.cgi?id=11911
60926         SVG exhibits double-text-selection behavior
60927
60928         Fix selection height of the inline text boxes for svg.
60929
60930         * WebCore.xcodeproj/project.pbxproj:
60931         * rendering/InlineTextBox.cpp:
60932         (WebCore::InlineTextBox::selectionTop):
60933         (WebCore::InlineTextBox::selectionHeight):
60934         (WebCore::InlineTextBox::selectionRect):
60935         (WebCore::InlineTextBox::paintSelection):
60936         (WebCore::InlineTextBox::paintMarkedTextBackground):
60937         (WebCore::InlineTextBox::paintCustomHighlight):
60938         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
60939         (WebCore::InlineTextBox::paintTextMatchMarker):
60940         * rendering/InlineTextBox.h:
60941         * rendering/RenderSVGInlineText.cpp:
60942         (WebCore::RenderSVGInlineText::createInlineTextBox):
60943         * rendering/RenderSVGInlineText.h:
60944         * rendering/RenderText.cpp:
60945         (WebCore::RenderText::createInlineTextBox):
60946         (WebCore::RenderText::createInlineBox):
60947         * rendering/RenderText.h:
60948         * rendering/SVGInlineTextBox.cpp: Added.
60949         (WebCore::SVGInlineTextBox::selectionTop):
60950         (WebCore::SVGInlineTextBox::selectionHeight):
60951         * rendering/SVGInlineTextBox.h: Added.
60952         (WebCore::SVGInlineTextBox::SVGInlineTextBox):
60953
60954 2007-01-26  Zack Rusin  <zack@kde.org>
60955
60956         Reviewed by Lars
60957
60958         Fix drawing of tiled images.
60959
60960         * WebCore.pro:
60961         * platform/graphics/qt/ImageQt.cpp:
60962         (WebCore::BitmapImage::drawPattern):
60963
60964 2007-01-26  Zack Rusin  <zack@kde.org>
60965
60966         Reviewed by Lars
60967
60968         Fixing image loading - we decode QImages
60969         but render QPixmaps now. Implement Icon
60970         class
60971
60972         * platform/graphics/BitmapImage.h:
60973         * platform/graphics/Icon.h:
60974         * platform/graphics/Image.h:
60975         (WebCore::Image::getPixmap):
60976         * platform/graphics/qt/IconQt.cpp:
60977         (WebCore::Icon::Icon):
60978         (WebCore::Icon::~Icon):
60979         (WebCore::Icon::newIconForFile):
60980         (WebCore::Icon::paint):
60981         * platform/graphics/qt/ImageDecoderQt.cpp:
60982         (WebCore::ImageDecoderQt::ImageData::ImageData):
60983         (WebCore::ImageDecoderQt::ReadContext::read):
60984         (WebCore::ImageDecoderQt::ReadContext::readImageLines):
60985         (WebCore::ImageDecoderQt::reset):
60986         (WebCore::ImageDecoderQt::imageAtIndex):
60987         * platform/graphics/qt/ImageDecoderQt.h:
60988         * platform/graphics/qt/ImageQt.cpp:
60989         (WebCore::BitmapImage::drawPattern):
60990         (WebCore::BitmapImage::getPixmap):
60991         * platform/graphics/qt/ImageSourceQt.cpp:
60992         (WebCore::ImageSource::createFrameAtIndex):
60993
60994 2007-01-25  Justin Garcia  <justin.garcia@apple.com>
60995
60996         Reviewed by oliver
60997         
60998         <http://bugs.webkit.org/show_bug.cgi?id=12409>
60999         REGRESSION (r19039): Drag caret isn't cleared after a drop
61000
61001         No new layout tests because the regression was
61002         caught by current layout tests.
61003
61004         * page/DragController.cpp:
61005         (WebCore::DragController::concludeDrag): Clear the drag caret.
61006
61007 2007-01-25  Darin Adler  <darin@apple.com>
61008
61009         Reviewed and landed by Geoffrey Garen.
61010
61011         - fix http://bugs.webkit.org/show_bug.cgi?id=12342
61012           REGRESSION: destroying a frame from its own script causes various crashes
61013
61014         * bindings/js/kjs_window.cpp: (KJS::ScheduledAction::execute):
61015         Use RefPtr for the frame and the interpreter object so they don't get deleted
61016         out from underneath us.
61017
61018         * bindings/js/kjs_proxy.cpp: (WebCore::KJSProxy::evaluate):
61019         Add a check for a page of 0. This was the only call site for the
61020         addMessageToConsole function that did not have a check for a page of 0.
61021
61022 2007-01-25 Dirk Mueller  <mueller@kde.org>
61023
61024         Reviewed and merged by Beth.
61025
61026         Fix for <rdar://problem/4921692> not processing comments inside a 
61027         title element leads to XSS (for at least BlogSpot)
61028
61029         This is equivalent to commit 626791 in the KDE tree. Basically, the 
61030         patch allows comment parsing in titles to avoid capturing a 
61031         <script> tag by accident.
61032
61033         * html/HTMLTokenizer.cpp:
61034         (WebCore::HTMLTokenizer::parseSpecial):
61035         (WebCore::HTMLTokenizer::parseComment):
61036
61037 2007-01-25  Darin Adler  <darin@apple.com>
61038
61039         * ksvg2/svg/SVGPreserveAspectRatio.cpp: Add a couple of comments.
61040
61041 2007-01-25  Darin Adler  <darin@apple.com>
61042
61043         Reviewed by Maciej.
61044
61045         - fix http://bugs.webkit.org/show_bug.cgi?id=12365
61046           Reproducible crash in WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio
61047           in svg/W3C-SVG-1.1/animate-elem-40-t.svg under guard malloc
61048         - fix bug where the parser accepts "meet" or "slice" as an entire string
61049         - fix bug where "slice" is ignored if the old alignment was "none"
61050           even if the newly-parsed alignment is something other than "none", and
61051           "slice" is not ignored if the old alignment was not "none", but the
61052           newly-parsed alignment is "none"
61053         - optimize to only call notifyAttributeChange if the attribute actually changed
61054
61055         Test: svg/dom/preserve-aspect-ratio-parser-test.html
61056
61057         * ksvg2/svg/SVGPreserveAspectRatio.cpp:
61058         (WebCore::checkString): Added an overload for using char* constants which is
61059         much simpler than the old one, and almost as fast.
61060         (WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio): Fail if there's no
61061         more text after "defer". Fail if there's neither "none" nor an x/y specified.
61062         Check that there's more text before looking at the "m" and "s" for "meet" and
61063         "slice". Merged the failure and success cases. Only call notifyAttributeChange
61064         if something changed.
61065
61066         I think all the "optimized" code where we check the first character before
61067         calling checkString isn't really helpful, but I decided to leave it as-is
61068         for now.
61069
61070 2007-01-25  Lars Knoll <lars@trolltech.com>
61071
61072         Reviewed by Zack
61073
61074         Trivial implementation of getMIMETypeForExtension.
61075         Use the above method in the ResourceHandleManager to set
61076         a mimetype on Resources that don't have one set (which
61077         includes everything loaded from local disk).
61078
61079         Should fix quite a few test cases :)
61080
61081         * platform/network/qt/ResourceHandleManagerQt.cpp:
61082         (WebCore::ResourceHandleManager::receivedResponse):
61083         * platform/qt/MimeTypeRegistryQt.cpp:
61084         (WebCore::):
61085         (WebCore::MimeTypeRegistry::getMIMETypeForExtension):
61086
61087 2007-01-25 Harald Fernengel <harald@trolltech.com>
61088
61089         Reviewed by zack
61090
61091         Compile on platforms where qreal is not a double.
61092
61093         * platform/graphics/qt/AffineTransformQt.cpp:
61094         (WebCore::AffineTransform::map):
61095
61096 2007-01-25  Zack Rusin  <zack@kde.org>
61097
61098         Reviewed by Lars.
61099
61100         Add wheel event handling and make explicit usage
61101         of the EventHandler.
61102
61103         * WebCore.pro:
61104         * page/qt/EventHandlerQt.cpp:
61105         (WebCore::EventHandler::focusDocumentView):
61106         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
61107         (WebCore::EventHandler::passMouseDownEventToWidget):
61108         (WebCore::EventHandler::lastEventIsMouseUp):
61109         (WebCore::EventHandler::handleMouseUp):
61110         * platform/PlatformWheelEvent.h:
61111         * platform/qt/ScrollViewCanvasQt.cpp:
61112         (WebCore::ScrollViewCanvasQt::ScrollViewCanvasQt):
61113         (WebCore::ScrollViewCanvasQt::mousePressEvent):
61114         (WebCore::ScrollViewCanvasQt::wheelEvent):
61115         (WebCore::ScrollViewCanvasQt::dragEnterEvent):
61116         (WebCore::ScrollViewCanvasQt::dragLeaveEvent):
61117         (WebCore::ScrollViewCanvasQt::dragMoveEvent):
61118         * platform/qt/ScrollViewCanvasQt.h:
61119         * platform/qt/ScrollViewQt.cpp:
61120         (WebCore::ScrollView::wheelEvent):
61121         * platform/qt/WheelEventQt.cpp: Added.
61122         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
61123
61124 2007-01-25  Rob Buis  <buis@kde.org>
61125
61126         Reviewed by Maciej.
61127
61128         http://bugs.webkit.org/show_bug.cgi?id=12391
61129         SVG containers with viewports should respect overflow when hit testing
61130
61131         Take into account the overflow property when hit testing <svg>.
61132
61133         * rendering/RenderSVGContainer.cpp:
61134         (WebCore::RenderSVGContainer::nodeAtPoint):
61135
61136 2007-01-23  Alice Liu  <alice.liu@apple.com>
61137
61138         Reviewed by Maciej.
61139
61140         fixed <rdar://problem/4808039> REGRESSION: eBay ID check never completes
61141         Also known as http://bugs.webkit.org/show_bug.cgi?id=11230
61142
61143         * bindings/js/kjs_window.cpp:
61144         It's not necessary to check safeScript when doing a location.replace, .reload, or .assign
61145         (KJS::Location::getOwnPropertySlot):
61146         (KJS::LocationFunc::callAsFunction):
61147
61148 2007-01-25  Alice Liu  <alice.liu@apple.com>
61149
61150         Reviewed by Geoff and Adele.
61151
61152         fixed <rdar://problem/4866655> REGRESSION: Copying out of Calculator & CIFIlterWidget is broken on 9A320
61153
61154         * editing/Editor.cpp:
61155         (WebCore::Editor::canDHTMLCut):
61156         (WebCore::Editor::canDHTMLCopy):
61157         (WebCore::Editor::tryDHTMLCopy):
61158         (WebCore::Editor::tryDHTMLCut):
61159         Reverting some mistakes made in r17504:
61160         Anything in r17503 that used to call mayDHTML* still calls canDHTML* as it was changed in r17504, where canDHTML* now calls !selectionController::isInPasswordField instead of editor::canCopy
61161         Anything else in r17503 that used to call mayCopy now calls (!)selectionController::isInPasswordField.
61162
61163         * editing/JSEditor.cpp:
61164         copy via JS should be enabled as long as selection is not in a password field.  a range selection shouldn't be required. 
61165
61166 2007-01-24  Adele Peterson  <adele@apple.com>
61167
61168         Reviewed by Brady and Oliver.
61169
61170         Fix for <rdar://problem/4953504> When the keydown event changes focus, the keypress event should go to the new focused node
61171
61172         Test: fast/events/keydown-keypress-focus-change.html
61173
61174         * page/EventHandler.cpp:
61175         (WebCore::eventTargetNodeForDocument): Added for convenience.
61176         (WebCore::EventHandler::keyEvent): Moved from EventHandlerMac.mm.  After dispatching the keyDown event,
61177          recheck the target node for the keyPress event in case its changed.
61178         * page/EventHandler.h:
61179         * page/mac/EventHandlerMac.mm: (WebCore::EventHandler::keyEvent):
61180           Moved the bulk of this code to EventHandler.cpp.
61181
61182 2007-01-24  Geoffrey Garen  <ggaren@apple.com>
61183
61184         New forwarding header. No review necessary.
61185
61186         * ForwardingHeaders/kjs/ustring.h: Added.
61187
61188 2007-01-24  Oliver Hunt  <oliver@apple.com>
61189
61190         Reviewed by Maciej.
61191
61192         Migrating more drag state information to WebCore
61193
61194         * page/DragController.cpp:
61195         * page/DragController.h:
61196         (WebCore::DragController::dragOperation):
61197         (WebCore::DragController::setDraggingImageURL):
61198         (WebCore::DragController::draggingImageURL):
61199         (WebCore::DragController::setDragOffset):
61200         (WebCore::DragController::dragOffset):
61201
61202 2007-01-24  Darin Adler  <darin@apple.com>
61203
61204         Reviewed by Adele.
61205
61206         - fix http://bugs.webkit.org/show_bug.cgi?id=12331
61207           REGRESSION(r18951): Selecting text in a textarea makes the page scroll
61208
61209         Test: fast/events/autoscroll.html
61210
61211         * rendering/RenderLayer.cpp: (WebCore::RenderLayer::autoscroll):
61212         Adjust position to be relative to the object's corner for the hit test, but not for the
61213         scrollRectToVisible call. The previous version accidentally re-used the version that was
61214         adjusted for the hit test.
61215
61216 2007-01-24  Beth Dakin  <bdakin@apple.com>
61217
61218         Reviewed by Geoff.
61219
61220         Fix for <rdar://problem/4948128> REGRESSION: A crash occurs at 
61221         WebCore::Frame::view() after completing a query at mapquest.com 
61222         then switching to Bookmarks view
61223
61224         This is just a null-check. If you are in strict mode and ask for 
61225         the clientWidth or clientHeight after the document was removed from 
61226         it's parent, we no longer have a frameView, so we have to null-
61227         check it. I added null checks for the FrameView in some other 
61228         places where it seems like we could potentially run into this 
61229         issue.
61230
61231         * bindings/objc/DOMHTML.mm:
61232         (-[DOMHTMLInputElement _rectOnScreen]):
61233         * bridge/mac/WebCoreAXObject.mm:
61234         (-[WebCoreAXObject accessibilityAttributeValue:]):
61235         * dom/ContainerNode.cpp:
61236         (WebCore::ContainerNode::getUpperLeftCorner):
61237         * dom/Element.cpp:
61238         (WebCore::Element::clientWidth): Actual bug fix here!
61239         (WebCore::Element::clientHeight): And here!
61240         * ksvg2/svg/SVGLength.cpp:
61241         (WebCore::SVGLength::PercentageOfViewport):
61242         * loader/FrameLoader.cpp:
61243         (WebCore::FrameLoader::createJavaAppletWidget):
61244         * page/mac/WebCoreFrameBridge.mm:
61245         (-[WebCoreFrameBridge computePageRectsWithPrintWidthScaleFactor:printHeight:]):
61246         * rendering/RenderLayer.cpp:
61247         (WebCore::RenderLayer::windowClipRect):
61248         (WebCore::RenderLayer::updateOverflowStatus):
61249         (WebCore::frameVisibleRect):
61250         * rendering/RenderListBox.cpp:
61251         (WebCore::RenderListBox::windowClipRect):
61252         * rendering/RenderTable.cpp:
61253         (WebCore::RenderTable::layout):
61254
61255 2007-01-24  Maciej Stachowiak  <mjs@apple.com>
61256
61257         Not reviewed, just removing accidentally committed file.
61258
61259         - removed file that shouldn't be there
61260
61261         * Image Viewer/Image Viewer.aps: Removed.
61262
61263 2007-01-24  Anders Carlsson  <acarlsson@apple.com>
61264
61265         Reviewed by Geoff and Adam.
61266
61267         <rdar://problem/4922655>
61268         http://galeri.milliyet.com.tr/ reproducibly crashes Safari
61269         
61270         * loader/FrameLoader.cpp:
61271         (WebCore::FrameLoader::requestFrame):
61272         If the frame already exists, defer the navigation so that we won't end up replacing the document
61273         while we're parsing it. This is similar to what setting window.location ends up doing.
61274
61275 2007-01-25  Mark Rowe  <mrowe@apple.com>
61276
61277         Reviewed by Darin.
61278
61279         * Info.plist: Update copyright string.
61280
61281 2007-01-24  Justin Garcia  <justin.garcia@apple.com>
61282
61283         Reviewed by harrison
61284
61285         <rdar://problem/4916235>
61286         eBay Editor: Crash occurs at WebCore::Range::startPosition() after applying ordered list styling to selected text
61287         <rdar://problem/4857269>
61288         REGRESSION: editing/execCommand/create-list-from-range-selection.html no longer works as intended
61289         <rdar://problem/4916583>
61290         eBay Editor: Removing a indent from a list item actually deletes the list item instead
61291         <rdar://problem/4928635>
61292         designMode outdent causes crash (11750)
61293
61294         * editing/CompositeEditCommand.cpp:
61295         (WebCore::CompositeEditCommand::moveParagraphs): Fixed br insertion
61296         after the pruning of empty containers left over after the paragraph
61297         to move is removed.
61298         * editing/DeleteSelectionCommand.cpp:
61299         (WebCore::DeleteSelectionCommand::DeleteSelectionCommand): There are
61300         bugs that leave the wrong number of line breaks after a deletion 
61301         that expands to include special elements (lists/tables).  Added 
61302         a workaround so that moveParagraphs can avoid these until they 
61303         are fixed.
61304         (WebCore::DeleteSelectionCommand::initializeStartEnd): Ditto.
61305         (WebCore::DeleteSelectionCommand::initializePositionData): Ditto.
61306         * editing/DeleteSelectionCommand.h:
61307         * editing/TextIterator.cpp:
61308         (WebCore::TextIterator::advance): We used to not call exitNode for
61309         ancestors of a node where the next node in a pre-order traversal is 
61310         the ranges's pastEndNode().  This is only correct for ancestors that
61311         contain the end of the range.
61312         (WebCore::shouldEmitNewlineAfterNode): Added, we should only emit newlines
61313         after blocks that have VisiblePositions after them.  VisiblePosition creation
61314         though is too expensive to do here, what I added here is an OK substitute.
61315         (WebCore::shouldEmitNewlineBeforeNode): Added.  No special logic yet.
61316         (WebCore::TextIterator::handleNonTextNode): Call shouldEmitNewlineBeforeNode.
61317         (WebCore::TextIterator::exitNode): Call shouldEmitNewlineAfterNode.
61318         (WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode): Call
61319         shouldEmitNewlineAfterNode.
61320
61321 2007-01-24  Darin Adler  <darin@apple.com>
61322
61323         Reviewed by Mark Rowe.
61324
61325         * WebCore.xcodeproj/project.pbxproj: Changed to /usr/sbin/sysctl
61326         so we don't rely on people's paths.
61327
61328 2007-01-24  Darin Adler  <darin@apple.com>
61329
61330         Reviewed by Adele.
61331
61332         - a couple minor tweaks to recently-changed things
61333
61334         * dom/Document.h: Use HTMLHeadElement as type for the head function.
61335         * dom/Document.cpp: (WebCore::Document::head):
61336
61337         * ksvg2/svg/SVGElementInstance.cpp:
61338         (WebCore::SVGElementInstance::~SVGElementInstance): Change loop to
61339         a for loop and use a local variable for document.
61340
61341 2007-01-24  Oliver Hunt  <oliver@apple.com>
61342
61343         Reviewed by Adele.
61344
61345         Fixes DragController to allow a null target Document.
61346         This is encountered in new tabs/windows that have not 
61347         loaded any page
61348
61349         * page/DragController.cpp:
61350         (WebCore::documentAtPoint):
61351         (WebCore::DragController::tryDocumentDrag):
61352         (WebCore::DragController::operationForLoad):
61353         (WebCore::DragController::concludeDrag):
61354         * page/mac/DragControllerMac.mm:
61355         (WebCore::DragController::dragOperation):
61356
61357 2007-01-24  Sam Weinig  <sam@webkit.org>
61358
61359         Reviewed by Mitz.
61360
61361         Patch for http://bugs.webkit.org/show_bug.cgi?id=12394
61362         Cleanup RenderBox
61363
61364         No functionality changes, just a good old fashion cleanup,
61365         thus no tests.
61366
61367         * rendering/RenderBox.cpp:
61368         (WebCore::RenderBox::RenderBox):
61369         (WebCore::RenderBox::setStyle):
61370         (WebCore::RenderBox::destroy):
61371         (WebCore::RenderBox::setPos):
61372         (WebCore::RenderBox::calcBorderBoxWidth):
61373         (WebCore::RenderBox::calcBorderBoxHeight):
61374         (WebCore::RenderBox::calcContentBoxWidth):
61375         (WebCore::RenderBox::calcContentBoxHeight):
61376         (WebCore::RenderBox::nodeAtPoint):
61377         (WebCore::RenderBox::paintRootBoxDecorations):
61378         (WebCore::RenderBox::paintBoxDecorations):
61379         (WebCore::RenderBox::paintBackgrounds):
61380         (WebCore::RenderBox::paintBackground):
61381         (WebCore::cacluateBackgroundSize):
61382         (WebCore::RenderBox::paintBackgroundExtended):
61383         (WebCore::RenderBox::getOverflowClipRect):
61384         (WebCore::RenderBox::getClipRect):
61385         (WebCore::RenderBox::containingBlockWidth):
61386         (WebCore::RenderBox::absolutePosition):
61387         (WebCore::RenderBox::dirtyLineBoxes):
61388         (WebCore::RenderBox::position):
61389         (WebCore::RenderBox::getAbsoluteRepaintRect):
61390         (WebCore::RenderBox::computeAbsoluteRepaintRect):
61391         (WebCore::RenderBox::repaintDuringLayoutIfMoved):
61392         (WebCore::RenderBox::relativePositionOffsetX):
61393         (WebCore::RenderBox::relativePositionOffsetY):
61394         (WebCore::RenderBox::calcWidth):
61395         (WebCore::RenderBox::calcWidthUsing):
61396         (WebCore::RenderBox::sizesToIntrinsicWidth):
61397         (WebCore::RenderBox::calcHorizontalMargins):
61398         (WebCore::RenderBox::calcHeight):
61399         (WebCore::RenderBox::calcPercentageHeight):
61400         (WebCore::RenderBox::calcReplacedWidthUsing):
61401         (WebCore::RenderBox::calcReplacedHeightUsing):
61402         (WebCore::RenderBox::availableHeightUsing):
61403         (WebCore::RenderBox::calcVerticalMargins):
61404         (WebCore::RenderBox::containingBlockWidthForPositioned):
61405         (WebCore::RenderBox::calcAbsoluteHorizontal):
61406         (WebCore::RenderBox::calcAbsoluteHorizontalValues):
61407         (WebCore::RenderBox::calcAbsoluteVertical):
61408         (WebCore::RenderBox::calcAbsoluteVerticalValues):
61409         (WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
61410         (WebCore::RenderBox::caretRect):
61411         * rendering/RenderBox.h:
61412         (WebCore::RenderBox::setOverrideSize):
61413         (WebCore::RenderBox::width):
61414         (WebCore::RenderBox::height):
61415         (WebCore::RenderBox::setWidth):
61416         (WebCore::RenderBox::setHeight):
61417         (WebCore::RenderBox::inlineBoxWrapper):
61418         (WebCore::RenderBox::setInlineBoxWrapper):
61419         (WebCore::RenderBox::stretchesToViewHeight):
61420         (WebCore::RenderBox::setStaticX):
61421         (WebCore::RenderBox::setStaticY):
61422
61423 2007-01-24  Eric Seidel  <eric@webkit.org>
61424
61425         Reviewed by ap.
61426
61427         Converted SVGTransform from being Shared<T> to a POD type.
61428
61429         No functional changes, thus no tests.
61430
61431         * bindings/scripts/CodeGenerator.pm:
61432         * bindings/scripts/CodeGeneratorJS.pm:
61433         * ksvg2/misc/SVGTimer.cpp:
61434         (WebCore::baseValueTransformList):
61435         * ksvg2/svg/SVGAnimateTransformElement.cpp:
61436         (WebCore::SVGAnimateTransformElement::storeInitialValue):
61437         (WebCore::SVGAnimateTransformElement::resetValues):
61438         (WebCore::SVGAnimateTransformElement::updateCurrentValue):
61439         (WebCore::SVGAnimateTransformElement::handleStartCondition):
61440         (WebCore::SVGAnimateTransformElement::applyAnimationToValue):
61441         (WebCore::SVGAnimateTransformElement::parseTransformValue):
61442         * ksvg2/svg/SVGAnimateTransformElement.h:
61443         * ksvg2/svg/SVGLinearGradientElement.cpp:
61444         (WebCore::SVGLinearGradientElement::collectGradientProperties):
61445         * ksvg2/svg/SVGPatternElement.cpp:
61446         (WebCore::SVGPatternElement::collectPatternProperties):
61447         * ksvg2/svg/SVGRadialGradientElement.cpp:
61448         (WebCore::SVGRadialGradientElement::collectGradientProperties):
61449         * ksvg2/svg/SVGSVGElement.cpp:
61450         (WebCore::SVGSVGElement::createSVGTransform):
61451         (WebCore::SVGSVGElement::createSVGTransformFromMatrix):
61452         * ksvg2/svg/SVGSVGElement.h:
61453         * ksvg2/svg/SVGStyledTransformableElement.cpp:
61454         (WebCore::SVGStyledTransformableElement::updateLocalTransform):
61455         * ksvg2/svg/SVGTextElement.cpp:
61456         (WebCore::SVGTextElement::updateLocalTransform):
61457         * ksvg2/svg/SVGTransform.cpp:
61458         (SVGTransform::SVGTransform):
61459         (SVGTransform::isValid):
61460         * ksvg2/svg/SVGTransform.h:
61461         * ksvg2/svg/SVGTransform.idl:
61462         * ksvg2/svg/SVGTransformList.cpp:
61463         (SVGTransformList::SVGTransformList):
61464         (SVGTransformList::createSVGTransformFromMatrix):
61465         (SVGTransformList::consolidate):
61466         (SVGTransformList::concatenate):
61467         * ksvg2/svg/SVGTransformList.h:
61468         * ksvg2/svg/SVGTransformable.cpp:
61469         (WebCore::SVGTransformable::parseTransformAttribute):
61470
61471 2007-01-24  Mark Rowe  <mrowe@apple.com>
61472
61473         Reviewed by Eric.
61474
61475         Plug another bunch of SVG memory leaks.
61476
61477         * ksvg2/misc/SVGDocumentExtensions.cpp:
61478         (WebCore::SVGDocumentExtensions::~SVGDocumentExtensions): Delete memory we have allocated.
61479         (WebCore::SVGDocumentExtensions::removePendingResource): Return an auto_ptr to show that we are transferring ownership.
61480         * ksvg2/misc/SVGDocumentExtensions.h:
61481         * ksvg2/svg/SVGElement.cpp:
61482         (WebCore::SVGElement::insertedIntoDocument): Update for use of auto_ptr.
61483
61484 2007-01-23  Mark Rowe  <mrowe@apple.com>
61485
61486         Reviewed by Brady.
61487
61488         Plug thousands of node leaks seen running layout tests.
61489
61490         * ksvg2/svg/SVGElementInstance.cpp:
61491         (WebCore::SVGElementInstance::~SVGElementInstance): Disassociate ourselves from our children so they will
61492         be destroyed if we were the only thing referencing them.
61493         * ksvg2/svg/SVGUseElement.cpp:
61494         (WebCore::SVGUseElement::removedFromDocument):
61495         * ksvg2/svg/SVGUseElement.h:
61496
61497 2007-01-23  Alice Liu  <alice.liu@apple.com>
61498
61499         Reviewed by Brady.
61500
61501         * editing/Editor.cpp:
61502         (WebCore::Editor::appliedEditing):
61503         minor change.  removing unnecessary call to frame to fetch editor
61504
61505 2007-01-23  Mark Rowe  <mrowe@apple.com>
61506
61507         Reviewed by Adele.
61508
61509         http://bugs.webkit.org/show_bug.cgi?id=12375
61510         Bug 12375: REGRESSION(r19038): fast/dom/title-text-property-2.html failing
61511
61512         Fix regression by making setTitle/updateTitle/removeTitle logic match document.title
61513         specification at http://whatwg.org/specs/web-apps/current-work/#the-title1.
61514
61515         * dom/Document.cpp:
61516         (WebCore::Document::setTitle): Materialize a title element into the head if one doesn't exist when setting
61517         document.title.  Also update the contents of the title element when the title is set via document.title.
61518         (WebCore::Document::removeTitle): Update the title based on first title element in the head, if one exists.
61519         (WebCore::Document::head): Convenience method to retrieve the head element in an HTML document.
61520         * dom/Document.h:
61521
61522 2007-01-23  Beth Dakin  <bdakin@apple.com>
61523
61524         Reviewed by Hyatt.
61525
61526         Follow-up to the fix below for 4843226.
61527
61528         * rendering/RenderLayer.cpp:
61529         (WebCore::transparencyClipBox): Has to be recursive or we will miss 
61530         out on grandchildren!
61531
61532 2007-01-23  Oliver Hunt  <oliver@apple.com>
61533
61534         Reviewed by Adam.
61535
61536         Fixes dropping of files into safari
61537
61538         * page/DragController.cpp:
61539         (WebCore::DragController::performDrag):
61540
61541 2007-01-23  Brady Eidson  <beidson@apple.com>
61542
61543         Reviewed by Darin
61544
61545         Added a couple of CF things previously missed
61546
61547         * platform/network/ResourceError.h:
61548         * platform/network/ResourceHandle.h:
61549
61550 2007-01-23  Nikolas Zimmermann  <zimmermann@kde.org>
61551
61552         Reviewed by Maciej.
61553
61554         Fix evil genericContext() assertion, which occours sometimes when running DRT.
61555         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12379
61556
61557         * bindings/scripts/CodeGeneratorJS.pm:
61558         * ksvg2/misc/SVGDocumentExtensions.h:
61559         (WebCore::SVGDocumentExtensions::genericContextMap):
61560         (WebCore::SVGDocumentExtensions::forgetGenericContext):
61561
61562 2007-01-23  Beth Dakin  <bdakin@apple.com>
61563
61564         Reviewed by Hyatt.
61565
61566         Fix for <rdar://problem/4843226> REGRESSION: Pull down menu appears 
61567         clipped at http://istweb.apple.com/
61568
61569         * rendering/RenderLayer.cpp:
61570         (WebCore::transparencyClipBox): Always unite with sibling rects.
61571
61572 2007-01-22  Justin Garcia  <justin.garcia@apple.com>
61573
61574         Reviewed by john
61575
61576         <rdar://problem/4920742>
61577         REGRESSION: GMail Editor: Attempting to remove formatting from selection results in a crash at WebCore::Range::checkDeleteExtract()
61578
61579         * dom/Range.cpp:
61580         (WebCore::Range::checkDeleteExtract): Return if there is no
61581         commonAncestor container or if commonAncestorContainer() throws
61582         an exception.
61583         * editing/Editor.cpp:
61584         (WebCore::Editor::removeFormattingAndStyle): Fixed a bug that reversed
61585         the order of the selected paragraphs.
61586
61587 2007-01-23  Nikolas Zimmermann  <zimmermann@kde.org>
61588
61589         Reviewed by Sam.
61590
61591         Fix dynamic creation/updates of markers, masks, clipPaths, and several tiny pattern issues.
61592         Added 16 (!) new layout tests covering quite some weird scenerios - Batik & Opera do have problems, we don't.
61593
61594         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12380
61595         Fixes: svg/custom/image-with-transform-clip-filter.svg (filter shows up again)
61596
61597         Added: svg/custom/clip-path-child-changes.svg
61598         Added: svg/custom/clip-path-href-changes.svg
61599         Added: svg/custom/clip-path-units-changes.svg
61600         Added: svg/custom/deep-dynamic-updates.svg
61601         Added: svg/custom/js-late-clipPath-and-object-creation.svg
61602         Added: svg/custom/js-late-clipPath-creation.svg
61603         Added: svg/custom/js-late-marker-and-object-creation.svg
61604         Added: svg/custom/js-late-marker-creation.svg
61605         Added: svg/custom/js-late-mask-and-object-creation.svg
61606         Added: svg/custom/js-late-mask-creation.svg
61607         Added: svg/custom/js-update-pattern-child.svg
61608         Added: svg/custom/marker-changes.svg
61609         Added: svg/custom/marker-child-changes.svg
61610         Added: svg/custom/marker-viewBox-changes.svg
61611         Added: svg/custom/mask-changes.svg
61612         Added: svg/custom/mask-child-changes.svg
61613
61614         * ksvg2/misc/KCanvasRenderingStyle.cpp:
61615         (WebCore::KSVGPainterFactory::fillPaintServer):
61616         (WebCore::KSVGPainterFactory::strokePaintServer):
61617         * ksvg2/svg/SVGClipPathElement.cpp:
61618         (WebCore::SVGClipPathElement::notifyAttributeChange):
61619         * ksvg2/svg/SVGClipPathElement.h:
61620         * ksvg2/svg/SVGGradientElement.cpp:
61621         * ksvg2/svg/SVGGradientElement.h:
61622         * ksvg2/svg/SVGMarkerElement.cpp:
61623         (WebCore::SVGMarkerElement::canvasResource):
61624         (WebCore::SVGMarkerElement::notifyAttributeChange):
61625         * ksvg2/svg/SVGMarkerElement.h:
61626         * ksvg2/svg/SVGMaskElement.cpp:
61627         (WebCore::SVGMaskElement::notifyAttributeChange):
61628         * ksvg2/svg/SVGMaskElement.h:
61629         * ksvg2/svg/SVGStopElement.cpp:
61630         (WebCore::SVGStopElement::notifyAttributeChange):
61631         * ksvg2/svg/SVGStyledElement.cpp:
61632         (WebCore::SVGStyledElement::notifyAttributeChange):
61633         (WebCore::SVGStyledElement::notifyResourceParentIfExistant):
61634         (WebCore::SVGStyledElement::rebuildRenderer):
61635         * ksvg2/svg/SVGStyledElement.h:
61636         * ksvg2/svg/SVGUseElement.cpp:
61637         (WebCore::SVGUseElement::notifyAttributeChange):
61638         * platform/graphics/svg/SVGResource.cpp:
61639         (WebCore::SVGResource::invalidate):
61640         (WebCore::SVGResource::addClient):
61641         (WebCore::SVGResource::repaintClients):
61642         * platform/graphics/svg/SVGResource.h:
61643         * platform/graphics/svg/SVGResourceMarker.cpp:
61644         (WebCore::SVGResourceMarker::draw):
61645         (WebCore::SVGResourceMarker::cachedBounds):
61646         * platform/graphics/svg/SVGResourceMarker.h:
61647         * rendering/RenderPath.cpp:
61648         (WebCore::RenderPath::layout):
61649         (WebCore::RenderPath::getAbsoluteRepaintRect):
61650         (WebCore::RenderPath::paint):
61651         (WebCore::drawMarkerWithData):
61652         (WebCore::RenderPath::drawMarkersIfNeeded):
61653         * rendering/RenderPath.h:
61654         * rendering/RenderSVGContainer.cpp:
61655         (WebCore::RenderSVGContainer::paint):
61656         (WebCore::RenderSVGContainer::getAbsoluteRepaintRect):
61657         * rendering/RenderSVGImage.cpp:
61658         (WebCore::RenderSVGImage::paint):
61659         (WebCore::RenderSVGImage::getAbsoluteRepaintRect):
61660         * rendering/SVGInlineFlowBox.cpp:
61661         (WebCore::paintSVGInlineFlow):
61662
61663 2007-01-23  Adele Peterson  <adele@apple.com>
61664
61665         Reviewed by Darin.
61666         
61667         WebCore part of fix for <rdar://problem/4946753>REGRESSION: Inserting tabs is broken in Mail
61668
61669         In addition to this fix, I also reorganized some event handling code for keyPress events to
61670         prepare for another fix.  There's also just a little bit of unrelated cleanup.
61671         
61672         * dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler):
61673           Move tab focus behavior into new defaultKeyboardEventHandler method.
61674         
61675         * bridge/EditorClient.h: Added handleKeyPress.
61676         * editing/Editor.cpp:
61677         (WebCore::Editor::handleKeyPress): Added. Calls over to the client method.
61678         (WebCore::Editor::deleteRange): Removed unnecessary propogateDOMException.
61679         * editing/Editor.h: Added handleKeyPress.
61680         (WebCore::Editor::addToKillRing): Formatting cleanup.
61681         * editing/mac/EditorMac.mm: Removed unnecessary propogateDOMException.
61682         
61683         * page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler): Added. Checks
61684           the tabKeyCyclesThroughElements setting before advancing focus for tab key events.  Calls handleKeyPress.
61685         * page/EventHandler.h: Added defaultKeyboardEventHandler.
61686         
61687         * page/Page.cpp: (WebCore::Page::Page): Initialize m_tabKeyCyclesThroughElements to true.
61688         * page/Page.h: Added m_tabKeyCyclesThroughElements.
61689         (WebCore::Page::setTabKeyCyclesThroughElements): Added.
61690         (WebCore::Page::tabKeyCyclesThroughElements): Added.
61691         
61692         * platform/PlatformKeyboardEvent.h: Added ability to get NSEvent from PlatformKeyboardEvent.
61693         * platform/mac/KeyEventMac.mm: (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
61694           Initialize m_macEvent to the NSEvent.
61695         
61696         * platform/graphics/svg/SVGImageEmptyClients.h: (WebCore::SVGEmptyEditorClient::handleKeyPress): Added.
61697
61698 2007-01-23  George Staikos  <staikos@kde.org>
61699
61700         Compile with a released Qt.
61701
61702         * platform/graphics/qt/ImageQt.cpp:
61703
61704 2007-01-23  Lars Knoll <lars@trolltech.com>
61705
61706         Reviewed by Zack
61707
61708         Widget and ScrollView do not own the Qt widgets
61709         anymore. Make sure they can handle the case of
61710         a null QWidget and never delete them.
61711
61712         * platform/qt/ScrollViewQt.cpp:
61713         (WebCore::ScrollView::setScrollArea):
61714         (WebCore::ScrollView::updateContents):
61715         (WebCore::ScrollView::visibleWidth):
61716         (WebCore::ScrollView::visibleHeight):
61717         (WebCore::ScrollView::visibleContentRect):
61718         (WebCore::ScrollView::setContentsPos):
61719         (WebCore::ScrollView::resizeContents):
61720         (WebCore::ScrollView::contentsX):
61721         (WebCore::ScrollView::contentsY):
61722         (WebCore::ScrollView::contentsWidth):
61723         (WebCore::ScrollView::contentsHeight):
61724         (WebCore::ScrollView::scrollOffset):
61725         (WebCore::ScrollView::scrollBy):
61726         (WebCore::ScrollView::hScrollbarMode):
61727         (WebCore::ScrollView::vScrollbarMode):
61728         (WebCore::ScrollView::setHScrollbarMode):
61729         (WebCore::ScrollView::setVScrollbarMode):
61730         * platform/qt/WidgetQt.cpp:
61731         (WebCore::WidgetPrivate::~WidgetPrivate):
61732         (WebCore::Widget::setQWidget):
61733
61734 2007-01-23  Zack Rusin  <zack@kde.org>
61735
61736         Forgot to add one new file to the build.
61737
61738         * WebCore.pro: Add dom/clipboard.cpp
61739
61740 2007-01-23  Zack Rusin  <zack@kde.org>
61741
61742         Fix the Qt build
61743
61744         * page/DragActions.h:
61745         * page/DragController.cpp:
61746         * platform/qt/DragDataQt.cpp:
61747         (WebCore::DragData::canSmartReplace):
61748         (WebCore::DragData::containsColor):
61749         (WebCore::DragData::containsPlainText):
61750         (WebCore::DragData::asPlainText):
61751         (WebCore::DragData::asColor):
61752         (WebCore::DragData::createClipboard):
61753         (WebCore::DragData::containsCompatibleContent):
61754         (WebCore::DragData::containsURL):
61755         (WebCore::DragData::asURL):
61756         (WebCore::DragData::asFragment):
61757         * platform/qt/FileChooserQt.cpp:
61758
61759 2007-01-23  Lars Knoll <lars@trolltech.com>
61760
61761         Reviewed by Maciej
61762
61763         Make the last remaining pieces of the FrameLoader platform 
61764         independent. Move most of the code over to WebFrameLoaderClient.
61765         Some smaller cleanups in the WebFrameBridge, and moved some
61766         platform independent functionality over to the shared code
61767         in WebCore.
61768         
61769         * WebCore.exp:
61770         * WebCore.pro:
61771         * WebCore.xcodeproj/project.pbxproj:
61772         * loader/FrameLoader.cpp:
61773         (WebCore::FrameLoader::loadSubframe):
61774         (WebCore::FrameLoader::shouldUsePlugin):
61775         (WebCore::FrameLoader::loadPlugin):
61776         (WebCore::FrameLoader::detachFromParent):
61777         (WebCore::FrameLoader::partClearedInBegin):
61778         (WebCore::FrameLoader::createJavaAppletWidget):
61779         (WebCore::FrameLoader::didChangeTitle):
61780         * loader/FrameLoader.h:
61781         * loader/FrameLoaderClient.h:
61782         * loader/FrameLoaderTypes.h:
61783         (WebCore::):
61784         * loader/PluginDocument.cpp:
61785         (WebCore::PluginTokenizer::writeRawData):
61786         * loader/mac/FrameLoaderMac.mm: Removed.
61787         * loader/qt/FrameLoaderQt.cpp: Removed.
61788         * page/Frame.cpp:
61789         (WebCore::Frame::Frame):
61790         * page/FrameView.cpp:
61791         (WebCore::FrameView::mediaType):
61792         * page/qt/FrameQt.cpp:
61793         (WebCore::FrameQt::FrameQt):
61794         * platform/graphics/svg/SVGImageEmptyClients.h:
61795         (WebCore::SVGEmptyFrameLoaderClient::makeRepresentation):
61796         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
61797         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidCommitLoad):
61798         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidFailLoad):
61799         (WebCore::SVGEmptyFrameLoaderClient::dispatchCreatePage):
61800         (WebCore::SVGEmptyFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
61801         (WebCore::SVGEmptyFrameLoaderClient::dispatchUnableToImplementPolicy):
61802         (WebCore::SVGEmptyFrameLoaderClient::revertToProvisionalState):
61803         (WebCore::SVGEmptyFrameLoaderClient::setMainDocumentError):
61804         (WebCore::SVGEmptyFrameLoaderClient::startDownload):
61805         (WebCore::SVGEmptyFrameLoaderClient::committedLoad):
61806         (WebCore::SVGEmptyFrameLoaderClient::shouldFallBack):
61807         (WebCore::SVGEmptyFrameLoaderClient::willUseArchive):
61808         (WebCore::SVGEmptyFrameLoaderClient::createDocumentLoader):
61809         (WebCore::SVGEmptyFrameLoaderClient::createFrame):
61810         (WebCore::SVGEmptyFrameLoaderClient::createPlugin):
61811         (WebCore::SVGEmptyFrameLoaderClient::createJavaAppletWidget):
61812         (WebCore::SVGEmptyFrameLoaderClient::objectContentType):
61813         (WebCore::SVGEmptyFrameLoaderClient::overrideMediaType):
61814         (WebCore::SVGEmptyFrameLoaderClient::redirectDataToPlugin):
61815         (WebCore::SVGEmptyFrameLoaderClient::windowObjectCleared):
61816
61817 2007-01-23  Oliver Hunt  <oliver@apple.com>
61818
61819         Reviewed by Adam.
61820
61821         Added DragController to handled drag and drop state and control logic.
61822         Currently this only handles logic for Dragging and Dropping, and is 
61823         unable to initialise a drag itself.
61824
61825         platform/DragData encapsulate the paltform Drag data (NSDraggingInfo on Mac, 
61826         QMimeType in Qt).  This provides methods to pull data out the drag data as a String, 
61827         a URL, a DocumentFragment (for rich content), or a Colour.
61828
61829         * WebCore.exp:
61830         * WebCore.pro:
61831         * WebCore.xcodeproj/project.pbxproj:
61832         * dom/Clipboard.cpp: Added.
61833         (WebCore::Clipboard::setAccessPolicy):
61834         (WebCore::dragOpFromIEOp):
61835         (WebCore::IEOpFromDragOp):
61836         (WebCore::Clipboard::sourceOperation):
61837         (WebCore::Clipboard::destinationOperation):
61838         (WebCore::Clipboard::setSourceOperation):
61839         (WebCore::Clipboard::setDestinationOperation):
61840         (WebCore::Clipboard::setDropEffect):
61841         (WebCore::Clipboard::setEffectAllowed):
61842           move platform independent functions from ClipboardMac to Clipboard
61843
61844         * dom/Clipboard.h:
61845         (WebCore::Clipboard::Clipboard):
61846         (WebCore::Clipboard::dropEffect):
61847         (WebCore::Clipboard::effectAllowed):
61848         (WebCore::Clipboard::policy):
61849           as above -- also removed virtual modifier from now 
61850           platform independent methods
61851
61852         * editing/Editor.cpp:
61853         (WebCore::Editor::smartInsertDeleteEnabled): 
61854         (WebCore::Editor::shouldApplyStyle):
61855         * editing/Editor.h:
61856           adding calls through to EditorClient
61857          
61858         * page/DragActions.h: Added.
61859         (WebCore::):
61860           Replicates a number of NS* enums in the WebCore namespace
61861
61862         * page/DragClient.h: Added.
61863         (WebCore::DragClient::~DragClient):
61864           Standard client interface for dragging UIDelegate
61865
61866         * page/DragController.cpp: Added.
61867         (WebCore::createMouseEvent):
61868         (WebCore::DragController::DragController):
61869         (WebCore::DragController::~DragController):
61870         (WebCore::documentFragmentFromDragData):
61871         (WebCore::DragController::isMoveDrag):
61872         (WebCore::visiblePositionForPoint):
61873         (WebCore::DragController::cancelDrag):
61874         (WebCore::documentAtPoint):
61875         (WebCore::DragController::dragEntered):
61876         (WebCore::DragController::dragExited):
61877         (WebCore::DragController::dragUpdated):
61878         (WebCore::DragController::performDrag):
61879         (WebCore::DragController::dragEnteredOrUpdated):
61880         (WebCore::DragController::tryDocumentDrag):
61881         (WebCore::DragController::operationForLoad):
61882         (WebCore::DragController::concludeDrag):
61883         (WebCore::DragController::canProcessDrag):
61884         (WebCore::DragController::tryDHTMLDrag):
61885           Class to handle state and logic for dragging and dropping
61886
61887         * page/DragController.h: Added.
61888         (WebCore::DragController::client):
61889         (WebCore::DragController::didInitiateDrag):
61890         (WebCore::DragController::isHandlingDrag):
61891         (WebCore::DragController::dragOperation):
61892         (WebCore::DragController::document):
61893         (WebCore::DragController::dragInitiator):
61894         (WebCore::DragController::dragDestinationAction):
61895         (WebCore::DragController::dragSourceAction):
61896         (WebCore::DragController::dragEnded):
61897         (WebCore::DragController::setIsHandlingDrag):
61898         (WebCore::DragController::setDidInitiateDrag):
61899         (WebCore::DragController::setDragOperation):
61900         (WebCore::DragController::setDragSourceAction):
61901         (WebCore::DragController::setDragInitiator):
61902           See above
61903
61904         * page/Page.cpp:
61905         (WebCore::Page::Page):
61906           Update Page to have DragController
61907
61908         * page/Page.h:
61909         (WebCore::Page::dragController):
61910           ditto
61911
61912         * page/mac/DragControllerMac.mm: Added.
61913         (WebCore::DragController::isCopyKeyDown):
61914         (WebCore::DragController::dragOperation):
61915           Platform specific portions of the DragController
61916
61917         * page/mac/EventHandlerMac.mm:
61918         (WebCore::EventHandler::handleDrag):
61919         (WebCore::EventHandler::dragSourceEndedAt):
61920           Convert from NSDragOperation to WebCore::DragOperation
61921
61922         * page/mac/WebCoreFrameBridge.h:
61923         * page/mac/WebCoreFrameBridge.mm:
61924           Remove obsolete Drag functions
61925
61926         * page/qt/DragControllerQt.cpp: Added.
61927         (WebCore::DragController::isCopyKeyDown):
61928         (WebCore::DragController::dragOperation):
61929           Basic stubs to maintain Qt  build
61930
61931         * platform/DragData.cpp: Added.
61932         (WebCore::DragData::DragData):
61933         * platform/DragData.h: Added.
61934         (WebCore::DragData::clientPosition):
61935         (WebCore::DragData::globalPosition):
61936         (WebCore::DragData::platformData):
61937         (WebCore::DragData::draggingSourceOperationMask):
61938           DragData class to encapsulate platform drag data/event
61939
61940         * platform/graphics/svg/SVGImage.cpp:
61941         (WebCore::SVGImage::setData):
61942           Addition of dummy DragClient
61943
61944         * platform/graphics/svg/SVGImageEmptyClients.h:
61945         (WebCore::SVGEmptyDragClient::~SVGEmptyDragClient):
61946         (WebCore::SVGEmptyDragClient::willPerformDragDestinationAction):
61947         (WebCore::SVGEmptyDragClient::actionMaskForDrag):
61948         (WebCore::SVGEmptyDragClient::dragControllerDestroyed):
61949           ditto
61950
61951         * platform/mac/ClipboardMac.h:
61952         * platform/mac/ClipboardMac.mm:
61953         (WebCore::ClipboardMac::ClipboardMac):
61954         (WebCore::ClipboardMac::clearData):
61955         (WebCore::ClipboardMac::clearAllData):
61956         (WebCore::ClipboardMac::getData):
61957         (WebCore::ClipboardMac::setData):
61958         (WebCore::ClipboardMac::types):
61959         (WebCore::ClipboardMac::setDragImage):
61960          Moving platform independent logic to Clipboard, and updating
61961          platform specific methods to use appropriate accessors rather than 
61962          directly manipulating data they no longer own
61963
61964         * platform/mac/DragDataMac.mm: Added.
61965         (WebCore::DragData::DragData):
61966         (WebCore::DragData::canSmartReplace):
61967         (WebCore::DragData::containsColor):
61968         (WebCore::DragData::containsPlainText):
61969         (WebCore::DragData::asPlainText):
61970         (WebCore::DragData::asColor):
61971         (WebCore::DragData::createClipboard):
61972         (WebCore::imageExistsAtPaths):
61973         (WebCore::DragData::containsCompatibleContent):
61974         (WebCore::DragData::containsURL):
61975         (WebCore::DragData::asURL):
61976         (WebCore::DragData::asFragment):
61977           Mac implementations of DragData methods.  A number of these use
61978           a Helper class that accesses WebKit functionality.  That functionality 
61979           should be migrated to WebCore in the future.
61980
61981         * platform/mac/PasteboardHelper.h: Added.
61982         (WebCore::PasteboardHelper::~PasteboardHelper):
61983           Temporary, and Mac only, helper class to access WebKit functionality 
61984           from WebCore
61985
61986         * platform/qt/DragDataQt.cpp: Added.
61987         (WebCore::DragData::canSmartReplace):
61988         (WebCore::DragData::containsColor):
61989         (WebCore::DragData::containsPlainText):
61990         (WebCore::DragData::asPlainText):
61991         (WebCore::DragData::asColor):
61992         (WebCore::DragData::createClipboard):
61993         (WebCore::DragData::containsCompatibleContent):
61994         (WebCore::DragData::containsURL):
61995         (WebCore::DragData::asURL):
61996         (WebCore::DragData::asFragment):
61997          Basic stubs to maintain Qt build
61998
61999         * rendering/HitTestResult.cpp:
62000         (WebCore::HitTestResult::HitTestResult):
62001          Correct HitTestResult copy contructor to copy localPoint
62002
62003 2007-01-22  Mark Rowe  <mrowe@apple.com>
62004
62005         Reviewed by Maciej.
62006
62007         http://bugs.webkit.org/show_bug.cgi?id=11692
62008         Bug 11692: REGRESSION(r17352): Disappearing page title
62009
62010         * dom/Document.cpp:
62011         (WebCore::Document::setTitle): If the title has already been set explicitly via JavaScript,
62012         ignore any changes to it due to encountering <title> tags.
62013
62014 2007-01-22  Mitz Pettel  <mitz@webkit.org>
62015
62016         Reviewed by Darin.
62017
62018         - fix http://bugs.webkit.org/show_bug.cgi?id=12344
62019           NativeListBox: item hit testing does not account for top padding and border
62020
62021         Test: fast/forms/listbox-selection-2.html
62022
62023         * rendering/RenderListBox.cpp:
62024         (WebCore::RenderListBox::numVisibleItems): Changed height() to contentHeight()
62025         since items are visible only in the content box.
62026         (WebCore::RenderListBox::listIndexAtOffset): Adjusted for vertical padding and
62027         borders. Changed to return -1 instead of the last item's index if the given offset
62028         is below the last item.
62029         (WebCore::RenderListBox::autoscroll): Adjusted for vertical padding and borders.
62030         (WebCore::RenderListBox::controlClipRect): Changed to return the content box since
62031         items should not spill into the padding box. This change is the reason the test
62032         generates pixel results.
62033
62034 2007-01-22  Justin Garcia  <justin.garcia@apple.com>
62035
62036         Reviewed by darin
62037         
62038         <rdar://problem/4944770>
62039         editing/pasteboard/4641033 layout test is broken (12328)
62040         
62041         This layout test failure demonstrates three bugs:
62042         Smart replace shouldn't be turned on, but is because a word
62043         selection granularity from the previous test isn't cleared.
62044         Smart replace shouldn't add any spaces because the paste is performed
62045         in an empty paragraph.
62046         Smart replace spaces are added to the text of options inside
62047         the select element instead of before/after the select element.
62048         
62049         This patch fixes the second two problems.  During a 
62050         ReplaceSelectionCommand, the VisiblePosition for the end of 
62051         the inserted content is the last position in the last leaf 
62052         inserted.  This is a problem when the last leaf is inside a 
62053         select element, since VP creation is inconsistent there.  
62054         Second, smart spaces were inserted inside the last leaf, not
62055         at the endOfInsertedContent.
62056
62057         * editing/ReplaceSelectionCommand.cpp:
62058         (WebCore::ReplaceSelectionCommand::shouldMergeStart): Renamed 
62059         m_lastNodeInserted to m_lastLeafInserted.  Use the 
62060         start/endOfInsertedContent getters.
62061         (WebCore::ReplaceSelectionCommand::shouldMergeEnd): Ditto.
62062         (WebCore::ReplaceSelectionCommand::removeNodePreservingChildren): Ditto.
62063         (WebCore::ReplaceSelectionCommand::removeRedundantStyles): Ditto.
62064         (WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent): Added.
62065         Special case for when the last leaf inserted is inside a select 
62066         element: return the VisiblePosition after the select element.
62067         (WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent): Added.
62068         (WebCore::ReplaceSelectionCommand::doApply): Did renaming.  Used
62069         the start/endOfInsertedContent getters.  Insert smart replace spaces
62070         into the right nodes.
62071         (WebCore::ReplaceSelectionCommand::shouldRemoveEndBR): Renaming.
62072         (WebCore::ReplaceSelectionCommand::completeHTMLReplacement): Ditto.
62073         (WebCore::ReplaceSelectionCommand::updateNodesInserted): Ditto.
62074         * editing/ReplaceSelectionCommand.h:
62075
62076 2007-01-22  Darin Adler  <darin@apple.com>
62077
62078         Reviewed by Adam.
62079
62080         - fix http://bugs.webkit.org/show_bug.cgi?id=12273
62081           REGRESSION: File input value invisible after removing and re-appending
62082
62083         - made more of the file chooser code cross-platform
62084
62085         - fixed an Objective-C garbage collection problem in FileChooser
62086
62087         - tried to remove layering violations where FileChooser in the platform
62088           directory knows about the rendering and DOM trees (but wasn't able to
62089           do it entirely)
62090
62091         * platform/FileChooser.cpp: Added.
62092         (WebCore::FileChooser::create): Changed parameters.
62093         (WebCore::FileChooser::chooseFile): Changed to call chooseIcon function.
62094         (WebCore::FileChooser::chooseIcon): Added.
62095
62096         * platform/FileChooser.h: Added FileChooserClient so this file doesn't have
62097         to know about RenderFileUploadControl. Used RetainPtr instead of retain/release
62098         so this works properly with Objective-C GC. Replaced disconnectUploadControl
62099         with disconnectClient, which has a simple inline implementation. Moved the
62100         Document parameter from the constructor to openFileChooser, along with a comment
62101         about why it should not be there. Added a filename parameter to the constructor
62102         for the initial filename. Added a font parameter to basenameForWidth so we don't
62103         depend on having a pointer to the renderer. Removed the uploadControl() and
62104         document() functions since no one calls either of them.
62105
62106         * platform/mac/FileChooserMac.mm: Removed code that is now cross-platform.
62107         (-[OpenPanelController beginSheetWithFrame:]): Added frame parameter, instead
62108         of storing a document pointer in the FileChooser.
62109         (WebCore::FileChooser::FileChooser): Updated for changed parameters. Also added
62110         code to choose the icon based on the initial filename. Pass the adopt parameter
62111         to the constructor of the RetainPtr.
62112         (WebCore::FileChooser::~FileChooser): Removed the release call, since the
62113         RetainPtr will take care of it. Added a call to disconnectFileChooser here.
62114         There's no need to disconnect at disconnectClient time, and that lets us have
62115         one more cross-platform function.
62116         (WebCore::FileChooser::openFileChooser): Added document parameter. Added code
62117         to get the frame from the document. And added a nil check since there's no
62118         ironclad guarantee the document won't have outlived its frame.
62119         (WebCore::FileChooser::basenameForWidth): Added font parameter. Use that instead
62120         of going at the upload control's style. The caller can handle that now.
62121
62122         * rendering/RenderFileUploadControl.h: Removed unnecessary includes.
62123         Made class inherit privately from FileChooserClient. Changed constructor
62124         parameter to HTMLInputElement rather than Node. Made protected members be
62125         private instead, and made a couple function members const.
62126         * rendering/RenderFileUploadControl.cpp: Moved constants to the top of the file,
62127         but after the "using namespace"
62128         (WebCore::RenderFileUploadControl::RenderFileUploadControl): Updated for changes
62129         to the FileChooser::create function and the parameter types.
62130         (WebCore::RenderFileUploadControl::~RenderFileUploadControl): Removed unneeded
62131         null check -- there's no case where the FileChooser fails to be created.
62132         (WebCore::RenderFileUploadControl::click): Pass document to openFileChooser.
62133         (WebCore::RenderFileUploadControl::updateFromElement): Tweaked code a bit by
62134         using updateFromElement and setValue instead of casting the renderer to a
62135         RenderButton and calling setText directly. Put setInputType call here.
62136         (WebCore::RenderFileUploadControl::maxFilenameWidth): Made const. Broke long line.
62137         (WebCore::RenderFileUploadControl::createButtonStyle): Made const.
62138         (WebCore::RenderFileUploadControl::paintObject): Moved buttonShadowHeight constant
62139         to the top of the file. Call isEmpty instead of checking width and height of
62140         IntRect for 0. Computed font to pass to FileChooser::basenameForWidth. Broke
62141         long lines.
62142         (WebCore::HTMLFileUploadInnerButtonElement::HTMLFileUploadInnerButtonElement):
62143         Moved the setInputType call to the caller; concept here is that this class is
62144         as simple as possible, rather than doing as much of the button job as possible.
62145
62146         * WebCore.xcodeproj/project.pbxproj: Added FileChooser.cpp.
62147         * WebCore.pro: Ditto.
62148         * CMakeLists.txt: Ditto.
62149         * WebCoreSources.bkl: Ditto.
62150
62151         * platform/gdk/TemporaryLinkStubs.cpp: Updated stubs.
62152         * platform/qt/FileChooserQt.cpp: Updated stubs.
62153
62154 2007-01-22  Mitz Pettel  <mitz@webkit.org>
62155
62156         Reviewed by Darin.
62157
62158         - fix http://bugs.webkit.org/show_bug.cgi?id=12364
62159           REGRESSSION (NativeListBox): Selected option's background is not clipped to the list box
62160
62161         Test: fast/forms/select-item-background-clip.html
62162
62163         * rendering/RenderListBox.cpp:
62164         (WebCore::RenderListBox::paintItemBackground): Intersect the item's rect with
62165         the list box's clip rect.
62166
62167 2007-01-22  Darin Adler  <darin@apple.com>
62168
62169         Reviewed by Beth.
62170
62171         - fix http://bugs.webkit.org/show_bug.cgi?id=12369
62172           REGRESSION (r19027): amazon.com home page crashes WebKit r19028 debug build
62173
62174         I caused this a few hours ago. Oops!
62175
62176         * rendering/RenderText.cpp: (WebCore::RenderText::setStyle):
62177         Compute whether the font changed before calling RenderObject::setStyle.
62178
62179 2007-01-22  Beth Dakin  <bdakin@apple.com>
62180
62181         Reviewed by Maciej.
62182
62183         Fix for <rdar://problem/4912129> REGRESSION: Crash occurs at 
62184         WebCore::Frame::eventHandler() after clicking to dismiss a 
62185         contextual menu on the page
62186
62187         * page/EventHandler.cpp:
62188         (WebCore::EventHandler::stopAutoscrollTimer): Added nil-check.
62189
62190 2007-01-22  Darin Adler  <darin@apple.com>
62191
62192         Reviewed by Mitz.
62193
62194         Inspired by a much simpler patch by Andrew Wellington <proton@wiretapped.net>.
62195
62196         - fix http://bugs.webkit.org/show_bug.cgi?id=11197
62197           REGRESSION: Specifying a counter for a CODE tag's content style property
62198           on before or after causes a crash.
62199
62200         Test: fast/css/beforeSelectorOnCodeElement.html
62201
62202         - fix regression I recently introduced where the monospace cache could be
62203           used for text that was not ASCII, if text was changed after the style was set
62204
62205         Test: fast/text/monospace-width-cache.html
62206
62207         - streamline RenderText.h -- remove unneeded functions, make some needlessly
62208           virtual functions non-virtual, remove unneeded header includes, replace use
62209           of Font* with Font& for consistency with RenderStyle, use "text" consistently
62210           instead of "string"
62211
62212         * rendering/RenderText.h: Removed unneeded include of "Text.h", declarations of
62213         SOFT_HYPHEN, DocumentMarker, InlineBox, Position, String. Got rid of friend
62214         declaration for InlineTextBox. Changed constructor to take a PassRefPtr since
62215         we do take owership of the passed-in text. Made deleteTextBoxes() private.
62216         Removed unneeded data(). Made override of length() private so people will use
62217         the faster textLength() instead. Renamed string() to text() so it matches up
62218         better with setText(). Same for stringLength(), originalString(), and
62219         setInternalString(), which are now textLength(), originalText(), and
62220         setTextInternal(). Renamed the old text() function to characters(), since it
62221         returns a pointer as StringImpl::characters does. Changed Font* to Font& everywhere.
62222         Renamed the internal calcMinMaxWidth() function to calcMinMaxWidthInternal() and
62223         made it non-virtual since it's not overriden anywhere. Also made the
62224         trimmedMinMaxWidth() function non-virtual. Made containsOnlyWhitespace() private.
62225         Removed both font() functions (one was needlessly virtual) and element().
62226         Renamed cacheWidths() to updateMonospaceCharacterWidth() and removed the
62227         shouldUseMonospaceCache() function. Renamed allAscii() to isAllASCII() and made
62228         it an inline function. Removed the m_allAsciiChecked flag and renamed the
62229         m_allAscii flag to m_isAllASCII.
62230         * rendering/RenderText.cpp:
62231         (WebCore::RenderText::RenderText): Removed initialization of m_allAsciiChecked.
62232         Initialize m_isAllASCII. Changed all occurrences of m_str->length() and
62233         m_str->characters () to use the stringLength() and characters() inline functions
62234         instead.
62235         (WebCore::RenderText::setStyle): Replaced the unconditional call to cacheWidths
62236         with a conditional call to updateMonospaceCharacterWidth. This speeds up the common
62237         case where style is changed without changing the font.
62238         (WebCore::RenderText::originalText): Changed code to not depend on overridden
62239         element() function with casts to a Text node -- this was one of only two call sites.
62240         Also renamed.
62241         (WebCore::RenderText::positionForCoordinates): Name change.
62242         (WebCore::RenderText::caretRect): Ditto.
62243         (WebCore::RenderText::updateMonospaceCharacterWidth): Renamed from cacheWidths and
62244         incorporate the check that was formerly in a separate shouldUseMonospaceCache
62245         function.
62246         (WebCore::RenderText::widthFromCache): Changed to take a Font& instead of Font*.
62247         Changed to take advantage of the fact that the string is known to be all ASCII in
62248         the m_monospaceCharacterWidth code path.
62249         (WebCore::RenderText::trimmedMinMaxWidth): Ditto. Also use style()->font() instead
62250         of font(false).
62251         (WebCore::RenderText::calcMinMaxWidth): Ditto. Also changed to use softHyphen instead
62252         of SOFT_HYPHEN.
62253         (WebCore::RenderText::containsOnlyWhitespace): More of the same.
62254         (WebCore::RenderText::setSelectionState): Ditto.
62255         (WebCore::RenderText::setTextWithOffset): Ditto.
62256         (WebCore::isInlineFlowOrEmptyText): Ditto.
62257         (WebCore::RenderText::setTextInternal): Updated for name changes. Also changed to
62258         set the m_isAllASCII flag every time, in the more-efficient way we use elsewhere
62259         (or'ing all the characters together), and to call updateMonospaceCharacterWidth
62260         if the "all ASCII"-ness of the text changes.
62261         (WebCore::RenderText::setText): Updated for name changes.
62262         (WebCore::RenderText::width): More like above.
62263         (WebCore::RenderText::selectionRect): Ditto.
62264         (WebCore::RenderText::caretMaxOffset): Ditto.
62265         (WebCore::RenderText::previousOffset): Ditto.
62266         (WebCore::RenderText::nextOffset): Ditto.
62267
62268         * dom/Position.cpp:
62269         * dom/Range.cpp:
62270         * editing/CompositeEditCommand.cpp:
62271         * editing/DeleteSelectionCommand.cpp:
62272         * editing/VisiblePosition.cpp:
62273         * html/HTMLElement.cpp:
62274         Added now-needed include of "Text.h" which is no longer included by "RenderText.h".
62275
62276         * editing/SelectionController.cpp:
62277         (WebCore::SelectionController::debugRenderer):
62278         * editing/TextIterator.cpp:
62279         (WebCore::TextIterator::handleTextNode):
62280         (WebCore::TextIterator::handleTextBox):
62281         (WebCore::SimplifiedBackwardsTextIterator::handleTextNode):
62282         Update for name changes of stringLength(), string(), and originalString() to
62283         textLength(), text(), and originalText(), and to always use textLength() instead
62284         of length() when we have a RenderText* rather than a RenderObject*.
62285         * editing/visible_units.cpp:
62286         (WebCore::startOfParagraph): Ditto.
62287         (WebCore::endOfParagraph): Ditto.
62288         * rendering/InlineFlowBox.cpp:
62289         (WebCore::InlineFlowBox::placeBoxesHorizontally): Ditto. Also removed use of the
62290         RenderObject::font() function and replaced it with explicit access to the style.
62291         (WebCore::InlineFlowBox::placeBoxesVertically): Ditto.
62292         * rendering/InlineTextBox.cpp:
62293         (WebCore::InlineTextBox::selectionRect): Ditto.
62294         (WebCore::InlineTextBox::isLineBreak): Ditto.
62295         (WebCore::InlineTextBox::paint): Ditto.
62296         (WebCore::InlineTextBox::selectionStartEnd): Ditto.
62297         (WebCore::InlineTextBox::paintSelection): Ditto.
62298         (WebCore::InlineTextBox::paintMarkedTextBackground): Ditto.
62299         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker): Ditto.
62300         (WebCore::InlineTextBox::paintTextMatchMarker): Ditto.
62301         (WebCore::InlineTextBox::offsetForPosition): Ditto.
62302         (WebCore::InlineTextBox::positionForOffset): Ditto.
62303         * rendering/RenderContainer.cpp:
62304         (WebCore::RenderContainer::addChild): Ditto.
62305         * rendering/RenderCounter.cpp:
62306         (WebCore::RenderCounter::originalText): Ditto.
62307         (WebCore::RenderCounter::calcMinMaxWidth): Ditto.
62308         * rendering/RenderCounter.h: Ditto.
62309         * rendering/RenderTextFragment.cpp:
62310         (WebCore::RenderTextFragment::originalText): Ditto.
62311         * rendering/RenderTextFragment.h: Ditto.
62312         * rendering/SVGInlineFlowBox.cpp:
62313         (WebCore::placePositionedBoxesHorizontally): Ditto.
62314         (WebCore::placeBoxesVerticallyWithAbsBaseline): Ditto.
62315         * rendering/bidi.cpp:
62316         (WebCore::BidiIterator::increment): Ditto.
62317         (WebCore::BidiIterator::current): Ditto.
62318         (WebCore::BidiIterator::direction): Ditto.
62319         (WebCore::addRun): Ditto.
62320         (WebCore::checkMidpoints): Ditto.
62321         (WebCore::RenderBlock::computeHorizontalPositionsForLine): Ditto.
62322         (WebCore::RenderBlock::skipWhitespace): Ditto.
62323         (WebCore::RenderBlock::findNextLineBreak): Ditto.
62324
62325         * rendering/RenderBR.h: Updated signature of width function which now takes a
62326         Font& instead of a Font*.
62327
62328         * rendering/RenderBlock.cpp: (WebCore::stripTrailingSpace): Updated to no longer
62329         use the RenderObject::font() function, and added a comment about first-line, which
62330         is not handled properly here.
62331
62332         * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::text):
62333         * rendering/RenderTreeAsText.cpp: (WebCore::writeTextRun):
62334         Eliminated use of RenderText::data().
62335
62336         * rendering/RenderObject.h: Removed RenderObject::font(). This had the bad effect of
62337         having everyone pass in a boolean rather than using the cleaner style() and
62338         firstLineStyle() functions in cases where there's no a firstLineStyle boolean.
62339         * rendering/RenderObject.cpp:
62340         (WebCore::RenderObject::getVerticalPosition): Replaced use of RenderObject::font()
62341         with direct use of the style instead, which is arguably easier to understand anyway.
62342         (WebCore::RenderObject::baselinePosition): Ditto.
62343
62344 2007-01-22  Sam Weinig  <sam@webkit.org>
62345
62346         Reviewed by The Mitz.
62347
62348         Move JSHTMLSelectElementCustom.cpp from bindings to bindings/js
62349         where it belongs.
62350
62351         * WebCore.pro:
62352         * WebCore.xcodeproj/project.pbxproj:
62353         * bindings/JSHTMLSelectElementCustom.cpp: Removed.
62354         * bindings/js/JSHTMLSelectElementCustom.cpp: Added.
62355
62356 2007-01-22  Zack Rusin  <zack@kde.org>
62357
62358         Fix the Qt build.
62359
62360         * WebCore.pro: adjust after last changes
62361
62362 2007-01-21  Alexey Proskuryakov  <ap@webkit.org>
62363
62364         Reviewed by Darin.
62365
62366         http://bugs.webkit.org/show_bug.cgi?id=10934
62367         REGRESSION: prototype.js logs error (HTMLFormElement) on webkit builds
62368
62369         Added constructors for most HTML elements; started auto-generating HTMLSelectElement JS binding.
62370
62371         Test: fast/dom/Window/element-constructors-on-window.html
62372
62373         * DerivedSources.make: Generate JSHTMLSelectElement.
62374         * WebCore.xcodeproj/project.pbxproj: Added JSHTMLSelectElement{Custom}.
62375         * bindings/js/JSHTMLElementWrapperFactory.cpp: Create a proper binding for SELECT.
62376
62377         * bindings/js/kjs_html.cpp:
62378         (KJS::):
62379         (KJS::JSHTMLElement::classInfo):
62380         (KJS::JSHTMLElement::accessors):
62381         (KJS::JSHTMLElement::getOwnPropertySlot):
62382         (KJS::HTMLElementFunction::callAsFunction):
62383         (KJS::JSHTMLElement::put):
62384         * bindings/js/kjs_html.h:
62385         (KJS::JSHTMLElement::):
62386         Removed everything related to SELECT. Renamed getHTMLOptionsCollection to toJS for autogenerated code 
62387         to be happy, and rewrote it using cacheDOMObject.
62388
62389         * bindings/scripts/CodeGeneratorJS.pm: Added HTMLElement to the list of types that cannot fail conversion.
62390
62391         * html/HTMLAnchorElement.idl:
62392         * html/HTMLAppletElement.idl:
62393         * html/HTMLAreaElement.idl:
62394         * html/HTMLBRElement.idl:
62395         * html/HTMLBaseElement.idl:
62396         * html/HTMLBaseFontElement.idl:
62397         * html/HTMLBodyElement.idl:
62398         * html/HTMLButtonElement.idl:
62399         * html/HTMLCanvasElement.idl:
62400         * html/HTMLDListElement.idl:
62401         * html/HTMLDirectoryElement.idl:
62402         * html/HTMLDivElement.idl:
62403         * html/HTMLFieldSetElement.idl:
62404         * html/HTMLFontElement.idl:
62405         * html/HTMLFormElement.idl:
62406         * html/HTMLHRElement.idl:
62407         * html/HTMLHeadElement.idl:
62408         * html/HTMLHeadingElement.idl:
62409         * html/HTMLHtmlElement.idl:
62410         * html/HTMLImageElement.idl:
62411         * html/HTMLInputElement.idl:
62412         * html/HTMLIsIndexElement.idl:
62413         * html/HTMLLIElement.idl:
62414         * html/HTMLLabelElement.idl:
62415         * html/HTMLLegendElement.idl:
62416         * html/HTMLLinkElement.idl:
62417         * html/HTMLMapElement.idl:
62418         * html/HTMLMenuElement.idl:
62419         * html/HTMLMetaElement.idl:
62420         * html/HTMLModElement.idl:
62421         * html/HTMLOListElement.idl:
62422         * html/HTMLOptGroupElement.idl:
62423         * html/HTMLParagraphElement.idl:
62424         * html/HTMLParamElement.idl:
62425         * html/HTMLPreElement.idl:
62426         * html/HTMLQuoteElement.idl:
62427         * html/HTMLScriptElement.idl:
62428         * html/HTMLStyleElement.idl:
62429         * html/HTMLTextAreaElement.idl:
62430         * html/HTMLTitleElement.idl:
62431         * html/HTMLUListElement.idl:
62432         Generate constructors.
62433
62434         * html/HTMLSelectElement.cpp:
62435         (WebCore::HTMLSelectElement::length):
62436         * html/HTMLSelectElement.h:
62437         Make length() return unsigned for auto-generated code to be happy.
62438
62439         * html/HTMLSelectElement.idl: Adjusted to be usable for JS.
62440
62441         * bindings/JSHTMLSelectElementCustom.cpp: Added. Implements remove().
62442
62443         * page/DOMWindow.idl:
62444         Added properties for most elements' constructors.
62445
62446 2007-01-21  Mark Rowe  <mrowe@apple.com>
62447
62448         Reviewed by Maciej.
62449
62450         http://bugs.webkit.org/show_bug.cgi?id=12357
62451         Bug 12357: Reproducible crash in WebCore::Settings::isJavaScriptEnabled in svg/custom/js-update-bounce.svg under guard-malloc
62452
62453         * page/Frame.cpp:
62454         (WebCore::Frame::~Frame): Access the global object directly rather than via Window::retrieveWindow to prevent our reference to
62455         a deleted settings object being used.
62456
62457 2007-01-21  Darin Adler  <darin@apple.com>
62458
62459         Reviewed by Maciej.
62460
62461         - fix <rdar://problem/4930503> REGRESSION: Page changes title when
62462           command-clicking on named anchor link (12299)
62463
62464         * loader/FrameLoader.cpp:
62465         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
62466         Return if shouldContinue is false. This matches the other similar
62467         functions and prevents us from doing extra work in the "ignore" case.
62468
62469 2007-01-21  Mark Rowe  <mrowe@apple.com>
62470
62471         Reviewed by Darin.
62472
62473         http://bugs.webkit.org/show_bug.cgi?id=12355
62474         Bug 12355: Reproducible crash in WebCore::parseNumber in svg/custom/js-update-bounce.svg under guard-malloc
62475
62476         * ksvg2/svg/SVGParserUtilities.cpp:
62477         (WebCore::parseNumber): Parenthesize to prevent reading past end of buffer.
62478
62479 2007-01-21  Mitz Pettel  <mitz@webkit.org>
62480
62481         Reviewed by Darin.
62482
62483         - fix http://bugs.webkit.org/show_bug.cgi?id=12345
62484           REGRESSION: Disabled pop-up text is not grayed out
62485
62486         Test: fast/forms/select-disabled-appearance.html
62487
62488         * rendering/RenderThemeMac.mm:
62489         (WebCore::RenderThemeMac::adjustMenuListStyle):
62490
62491 2007-01-21  Darin Adler  <darin@apple.com>
62492
62493         - fix non-Mac builds
62494
62495         * CMakeLists.txt: Added JSDocumentCustom.cpp.
62496         * WebCore.pro: Ditto.
62497         * WebCoreSources.bkl: Ditto.
62498
62499 2007-01-21  Mitz Pettel  <mitz@webkit.org>
62500
62501         Reviewed by Darin.
62502
62503         - fix http://bugs.webkit.org/show_bug.cgi?id=12353 <rdar://problem/4944599>
62504           REGRESSION: Crash on load (mutation event dispatch under the image element constructor deletes the element)
62505     
62506         Test: fast/dom/HTMLImageElement/constructor-mutation-event-dispatch.html
62507
62508         * bindings/js/kjs_html.cpp:
62509         (KJS::ImageConstructorImp::construct): Protect the image element before setting
62510         its attributes.
62511
62512 2007-01-21  Sam Weinig  <sam@webkit.org>
62513
62514         Rolling out patch for http://bugs.webkit.org/show_bug.cgi?id=8360.
62515
62516         * rendering/RenderLayer.cpp:
62517         (WebCore::RenderLayer::RenderLayer):
62518         (WebCore::RenderLayer::scrollToOffset):
62519         (WebCore::RenderLayer::scrollRectToVisible):
62520         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
62521         (WebCore::Marquee::start):
62522         * rendering/RenderLayer.h:
62523
62524 2007-01-21  David Kilzer  <ddkilzer@webkit.org>
62525
62526         Reviewed by Darin.
62527
62528         - fix http://bugs.webkit.org/show_bug.cgi?id=12280
62529           select element not available by name through document.all
62530           (dropdown list not available on smarthome.com checkout)
62531
62532         Test: fast/dom/document-all-select.html
62533
62534         * html/HTMLCollection.cpp:
62535         (WebCore::HTMLCollection::checkForNameMatch):
62536         (WebCore::HTMLCollection::updateNameCache):
62537
62538 2007-01-21  Mitz Pettel  <mitz@webkit.org>
62539
62540         Reviewed by Darin.
62541
62542         - http://bugs.webkit.org/show_bug.cgi?id=10805
62543           REGRESSION (r15720): manual-tests/onblur-remove.html failing
62544
62545         * manual-tests/onblur-remove.html: Changed the test to not require pressing
62546         Enter, since the correct behavior for Enter is to send a blur event.
62547
62548 2007-01-21  Sanjay Madhav  <sanjay12@gmail.com>
62549
62550         Reviewed by Darin.
62551
62552         Fix for: <rdar://problem/4928583> Memory usage grows when reloading google.com/ig
62553
62554         JSDocuments are now responsible for marking the DOM wrappers associated with them, when they get marked.
62555         This fixes a JS object leak when a DOM wrapper has a reference to a JSDocument that is otherwise not reachable.
62556
62557         Test: fast/dom/gc-10.html
62558
62559         * WebCore.vcproj/WebCore/WebCore.vcproj:
62560         * WebCore.xcodeproj/project.pbxproj:
62561         * bindings/js/JSDocumentCustom.cpp: Added.
62562         (WebCore::JSDocument::mark):
62563         * bindings/js/kjs_binding.cpp:
62564         (KJS::ScriptInterpreter::markDOMNodesForDocument):
62565         (KJS::ScriptInterpreter::mark):
62566         * bindings/js/kjs_binding.h:
62567         * dom/Document.idl:
62568
62569 2007-01-21  Mitz Pettel  <mitz@webkit.org>
62570
62571         Reviewed by Darin.
62572
62573         - fix http://bugs.webkit.org/show_bug.cgi?id=10692
62574           REGRESSION (r14847): Unnecessary scrollbars with position:relative; and overflow:auto;
62575
62576         Test: fast/overflow/position-relative.html
62577
62578         * rendering/RenderBox.cpp:
62579         (WebCore::RenderBox::lowestPosition): Add the relative position offset only
62580         if 'includeSelf' is true.
62581         (WebCore::RenderBox::rightmostPosition): Ditto.
62582         (WebCore::RenderBox::leftmostPosition): Ditto.
62583         * rendering/RenderFlow.cpp:
62584         (WebCore::RenderFlow::lowestPosition): Ditto.
62585         (WebCore::RenderFlow::rightmostPosition): Ditto.
62586         (WebCore::RenderFlow::leftmostPosition): Ditto.
62587
62588 2007-01-21  Mitz Pettel  <mitz@webkit.org>
62589
62590         Reviewed by Darin.
62591
62592         - fix http://bugs.webkit.org/show_bug.cgi?id=10472
62593           REGRESSION: "add" method of <select> object does not put the <option> object in the correct position
62594
62595         Test: fast/dom/HTMLSelectElement/options-collection-detached.html
62596
62597         * html/HTMLSelectElement.cpp:
62598         (WebCore::HTMLSelectElement::setRecalcListItems): Reset the options collection
62599         info if the <select> is not in the document. For in-document <select>s this
62600         happens anyway as a result of the DOM tree version increasing.
62601
62602 2007-01-21  Mitz Pettel  <mitz@webkit.org>
62603
62604         Reviewed by Darin.
62605
62606         - fix http://bugs.webkit.org/show_bug.cgi?id=12349
62607           NativeFileUpload: Button text is not grayed out when the control is disabled
62608
62609         Covered by fast/forms/file-input-disabled.html 
62610
62611         * css/html4.css: Changed selectors that had pseudo-classes after the -webkit-file-upload-button
62612         pseudo-element to have the pseudo-element at the end. Pseudo-elements must be at the end.
62613         * rendering/RenderFileUploadControl.cpp:
62614         (WebCore::RenderFileUploadControl::createButtonStyle): Changed to not overwrite the button's
62615         style with its parent's style. getPseudoStyle() handles inheritance properly.
62616
62617 2007-01-21  Mitz Pettel  <mitz@webkit.org>
62618
62619         Reviewed by Darin.
62620
62621         - fix http://bugs.webkit.org/show_bug.cgi?id=12343
62622           crash in css2.1/t1202-counter-09-b.html
62623
62624         * platform/Font.cpp:
62625         (WebCore::Font::glyphDataForCharacter):
62626
62627 2007-01-21  Darin Adler  <darin@apple.com>
62628
62629         Reviewed by Adam and Mitz.
62630
62631         - fix http://bugs.webkit.org/show_bug.cgi?id=12347
62632           REGRESSION: list box scrolling broken (fast/forms/listbox-selection.html)
62633
62634         Covered by existing test: fast/forms/listbox-selection.html
62635
62636         * rendering/RenderListBox.h: Added override of layout(), made selectionChanged()
62637         no longer an inline. Added private scrollToRevealSelection(),
62638         m_scrollToRevealSelectionAfterLayout, and m_inAutoscroll.
62639         * rendering/RenderListBox.cpp:
62640         (WebCore::RenderListBox::RenderListBox): Initialize new data members.
62641         (WebCore::RenderListBox::updateFromElement): Remove scrolling code.
62642         (WebCore::RenderListBox::selectionChanged): Moved from header. Calls repaint
62643         and then scrollToRevealSelection, but if we need layout, instead schedules
62644         scrollToRevealSelection to be done after layout.
62645         (WebCore::RenderListBox::layout): Added. After calling base class, calls
62646         scrollToRevealSelection if the m_scrollToRevealSelectionAfterLayout is set.
62647         (WebCore::RenderListBox::scrollToRevealSelection): Added. Code was originally
62648         in updateFromElement.
62649         (WebCore::RenderListBox::autoscroll): Set m_inAutoscroll so that the
62650         selectionChanged function knows not to scroll. Also removed the repaint()
62651         here because updateListBoxSelection() takes care of repainting by calling
62652         selectionChanged().
62653
62654 2007-01-21  David Kilzer  <ddkilzer@webkit.org>
62655
62656         * page/EventHandler.cpp:
62657         (WebCore::EventHandler::handleMouseMoveEvent): Changed #if SVG_SUPPORT to #ifdef SVG_SUPPORT.
62658
62659 2007-01-20  Mitz Pettel  <mitz@webkit.org>
62660
62661         Reviewed by Maciej.
62662
62663         - fix http://bugs.webkit.org/show_bug.cgi?id=11115
62664           REGRESSION: Crash on Flickr after hitting cancel from adding a note
62665
62666         Test: fast/forms/text-set-value-crash.html
62667
62668         * html/HTMLInputElement.cpp:
62669         (WebCore::HTMLInputElement::setValue): Added a call to Document::updateRendering().
62670         * html/HTMLTextAreaElement.cpp:
62671         (WebCore::HTMLTextAreaElement::setValue): Ditto.
62672
62673 2007-01-20  Mitz Pettel  <mitz@webkit.org>
62674
62675         Reviewed by Darin.
62676
62677         - fix http://bugs.webkit.org/show_bug.cgi?id=8360
62678           Repro crash when onscroll handler deletes the scrolled object
62679
62680         Test: fast/layers/removed-by-scroll-handler.html
62681
62682         * rendering/RenderLayer.cpp:
62683         (WebCore::RenderLayer::RenderLayer):
62684         (WebCore::RenderLayer::dispatchScrollEvent): Added. Called when the timer
62685         fires and dispatches the scroll event to the layer's element.
62686         (WebCore::RenderLayer::scrollToOffset): Instead of dispatching the scroll
62687         event from this function, which is called during layout, schedule a 0-duration
62688         timer to dispatch the event after layout.
62689         (WebCore::RenderLayer::scrollRectToVisible):
62690         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
62691         (WebCore::Marquee::start):
62692         * rendering/RenderLayer.h:
62693
62694 2007-01-20  Nikolas Zimmermann  <zimmermann@kde.org>
62695
62696         Reviewed by Sam.
62697
62698         Fix JS bindings for SVGAnimated{Boolean, Enumeration, Integer, Number, String}.
62699
62700         Dynamic SVG DOM updates (ie. "someUse.href.baseVal = '#rect'") with these types
62701         didn't work. Existing gradient updating examples relied on calling setAttribute
62702         after a SVG DOM update - that was the only reason it worked, added a new test
62703         only using SVG DOM updates (js-update-stop.svg).
62704
62705         Added test: js-update-stop.svg
62706         Added test: use-property-changes-through-dom.svg (change xlink:href, x/y attributes using setAttribute)
62707         Added test: use-property-changes-through-svg-dom.svg (change xlink:href, x/y attributes using SVG DOM)
62708
62709         * bindings/js/JSSVGPODTypeWrapper.h:
62710         (WebCore::JSSVGPODTypeWrapper::commitChange):
62711         (WebCore::JSSVGPODTypeWrapperCreator::commitChange):
62712         (WebCore::JSSVGPODTypeWrapperCreatorForList::commitChange):
62713         * bindings/js/JSSVGPathSegListCustom.cpp:
62714         (WebCore::updatePathSegContextMap):
62715         (WebCore::removeFromPathSegContextMap):
62716         * bindings/scripts/CodeGeneratorJS.pm:
62717         * ksvg2/misc/SVGDocumentExtensions.h:
62718         (WebCore::SVGDocumentExtensions::baseValueMap):
62719         (WebCore::SVGDocumentExtensions::genericContextMap):
62720         (WebCore::SVGDocumentExtensions::baseValue):
62721         (WebCore::SVGDocumentExtensions::setBaseValue):
62722         (WebCore::SVGDocumentExtensions::removeBaseValue):
62723         (WebCore::SVGDocumentExtensions::hasBaseValue):
62724         (WebCore::SVGDocumentExtensions::genericContext):
62725         (WebCore::SVGDocumentExtensions::setGenericContext):
62726         (WebCore::SVGDocumentExtensions::removeGenericContext):
62727         (WebCore::SVGDocumentExtensions::hasGenericContext):
62728         (WebCore::String):
62729         (WebCore::FloatRect):
62730         (WebCore::bool):
62731         (WebCore::double):
62732         * ksvg2/svg/SVGClipPathElement.h:
62733         * ksvg2/svg/SVGElement.h:
62734         (WebCore::SVGElement::notifyAttributeChange):
62735         * ksvg2/svg/SVGPathSegList.cpp:
62736         (WebCore::SVGPathSegList::SVGPathSegList):
62737         (WebCore::SVGPathSegList::context):
62738         * ksvg2/svg/SVGPathSegList.h:
62739         * ksvg2/svg/SVGPatternElement.h:
62740         * ksvg2/svg/SVGPointList.cpp:
62741         (SVGPointList::SVGPointList):
62742         (SVGPointList::context):
62743         * ksvg2/svg/SVGPointList.h:
62744         * ksvg2/svg/SVGStopElement.cpp:
62745         (WebCore::SVGStopElement::parseMappedAttribute):
62746         (WebCore::SVGStopElement::notifyAttributeChange):
62747         * ksvg2/svg/SVGStopElement.h:
62748         * ksvg2/svg/SVGUseElement.cpp:
62749         (WebCore::SVGUseElement::notifyAttributeChange):
62750
62751 2007-01-20  Rob Buis  <buis@kde.org>
62752
62753         Reviewed by Sam.
62754
62755         http://bugs.webkit.org/show_bug.cgi?id=12334
62756         Respect <text> boundaries for svg text selecting
62757
62758         Make sure the text selection for svg stays inside
62759         containing blocks.
62760         Added one manual test since html selection does not
62761         seem to work for SVG and selectSubString for SVG
62762         is not implemented yet.
62763
62764         * manual-tests/svg-text-selection.svg: Added.
62765         * page/EventHandler.cpp:
62766         (WebCore::EventHandler::handleMouseMoveEvent):
62767         * rendering/RenderObject.h:
62768         (WebCore::RenderObject::isSVGText):
62769         * rendering/RenderSVGInlineText.h:
62770         (WebCore::RenderSVGInlineText::isSVGText):
62771         * rendering/RenderSVGText.h:
62772         (WebCore::RenderSVGText::isSVGText):
62773
62774 2007-01-19  Adele Peterson  <adele@apple.com>
62775
62776         Reviewed by Hyatt.
62777
62778         Fix for: <rdar://problem/4697438> REGRESSION: select menu lists match the wrong css rule on www.chainreaction.com
62779
62780         Update the size attribute value for select elements to match the numeric value.  This is a special case since this
62781         attribute is used to determine which control to use.  We want to make sure that the size attribute is valid when we match
62782         CSS rules.
62783
62784         Test: fast/forms/select-size.html
62785
62786         * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::parseMappedAttribute): If the attribute string value is not the
62787           same as its integer value, then update the attribute value to match the integer.
62788         * dom/Attribute.h: Made setValue and setPrefix public.
62789
62790 2007-01-19  John Sullivan  <sullivan@apple.com>
62791
62792         Reviewed by Darin
62793
62794         - WebCore part of fix for: <rdar://problem/4451715> REGRESSION: On some sites, have to 
62795           type a character before username/password autofill kicks in
62796
62797         * loader/FrameLoaderClient.h:
62798         new dispatchDidFinishDocumentLoad call
62799
62800         * loader/FrameLoader.cpp:
62801         (WebCore::FrameLoader::finishedParsing):
62802         call dispatchDidFinishDocumentLoad
62803         
62804         * platform/graphics/svg/SVGImageEmptyClients.h:
62805         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidFinishDocumentLoad):
62806         empty implementation for dispatchDidFinishDocumentLoad
62807
62808 2007-01-19  Adele Peterson  <adele@apple.com>
62809
62810         Reviewed by Hyatt.
62811
62812         Fix for <rdar://problem/4760280> REGRESSION: Bottom portion of text hangs off edge of SELECT element at http://macreviewzone.com/index.php
62813         
62814         Test: fast/forms/control-restrict-line-height.html
62815
62816         * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::setFontFromControlSize): Don't honor line-height for controls that
62817           have restricted font size.
62818
62819 2007-01-19  Darin Adler  <darin@apple.com>
62820
62821         Reviewed by Adele.
62822
62823         - fix http://bugs.webkit.org/show_bug.cgi?id=11999
62824           <rdar://problem/4940442> REGRESSION: Incomplete listing in TVListings window (11999)
62825           Fix was to use the actual size of the renderer in the RenderListBox
62826           case, instead of always using the size specified by the select element.
62827
62828         Test: fast/forms/select-list-box-with-height.html
62829
62830         - fix http://bugs.webkit.org/show_bug.cgi?id=11995
62831           <rdar://problem/4901834> REGRESSION(NativeListBox): Focus is not placed on
62832           SELECT after mousing down on OPTION
62833
62834         Test: fast/forms/select-list-box-mouse-focus.html
62835
62836         - fix bug where auto-scrolling was not working in list box select elements
62837
62838         No test yet.
62839
62840         - fix a missing semicolon in the radio/checkbox section of html4.css
62841
62842         Test: fast/forms/radio-no-theme-padding.html
62843
62844         - fix bug where the scroll bars for select elements were pixel-type scroll
62845           bars even though the scrolling is line at a time scrolling
62846
62847         No test.
62848
62849         * html/HTMLSelectElement.cpp:
62850         (WebCore::HTMLSelectElement::selectAll): Removed an explicit call
62851         to repaint, since the RenderListBox now does that in selectionChanged.
62852         (WebCore::HTMLSelectElement::notifyOptionSelected): Call the new
62853         selectionChanged instead of the old setSelectionChanged.
62854         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Added a call
62855         to focus. Removed an explicit call to repaint and added a call to the
62856         new setMouseDownMayStartAutoscroll function in EventHandler. Removed an
62857         explicit call to repaint as above.
62858         (WebCore::HTMLSelectElement::updateListBoxSelection): Call the new
62859         selectionChanged instead of the old setSelectionChanged.
62860
62861         * page/EventHandler.h: Added setMouseDownMayStartAutoscroll, needed
62862         because the existing code to set that flag won't get triggered when
62863         the select element's default event handler handles the event.
62864
62865         * rendering/RenderListBox.h: Made ScrollbarClient a private base class.
62866         Removed setSelectionChanged and m_selectionChanged. Added selectionChanged,
62867         which is really just a synonym for repaint for now. Moved valueChanged,
62868         the ScrollbarClient function implementations, and itemHeight into the
62869         private part of the class. Added numVisibleItems() and listHeight() to
62870         the private section. Changed m_vBar to be a RefPtr.
62871
62872         * rendering/RenderListBox.cpp: Removed unneeded includes. Moved all
62873         the constants to the top of the file.
62874         (WebCore::RenderListBox::RenderListBox): Removed initialization of
62875         m_selectionChanged because it was removed and of m_vBar because it's
62876         now a RefPtr which is automaticall initialized.
62877         (WebCore::RenderListBox::~RenderListBox): Removed the explicit deref of
62878         m_vBar because it's a RefPtr. Added null checking for FrameView.
62879         (WebCore::RenderListBox::updateFromElement): Use numItems().
62880         (WebCore::RenderListBox::calcMinMaxWidth): Added null checking for
62881         FrameView and used RefPtr for the newly-created scroll bar.
62882         (WebCore::RenderListBox::size): Tweaked formatting. Also renamed the
62883         misleading minDefaultSize to maxDefaultSize, since it's a maximum.
62884         (WebCore::RenderListBox::numVisibleItems): Added. Used in many places
62885         where size() was used before. This computes the number of rows we have
62886         room for. We don't need a row space after the last row, and this takes
62887         that into account.
62888         (WebCore::RenderListBox::numItems): Tweaked to remove the local variable.
62889         (WebCore::RenderListBox::listHeight): Added. Total height of all the rows
62890         and spaces between them.
62891         (WebCore::RenderListBox::calcHeight): Changed to call itemHeight for the
62892         row height, and to subtract the last row spacing off since we don't need
62893         a space after the last row. Changed the scroll bar setup to make it
62894         correspond to row numbers, not pixel numbers.
62895         (WebCore::RenderListBox::baselinePosition): Moved the comment to the
62896         constant declaration at the top of the file.
62897         (WebCore::RenderListBox::itemBoundingBoxRect): Simplified by using
62898         the itemHeight() function.
62899         (WebCore::RenderListBox::paintObject): Changed to use numItems and
62900         to use numVisibleItems instead of size.
62901         (WebCore::RenderListBox::isPointInScrollbar): Added get() call since
62902         m_vBar is now a RefPtr.
62903         (WebCore::RenderListBox::listIndexAtOffset): Changed to use numItems(),
62904         itemHeight(), and rearranged a min/max combo so it starts with the low,
62905         then the value, then the high value for pinning.
62906         (WebCore::RenderListBox::autoscroll): Use numVisibleItems() instead of
62907         size().
62908         (WebCore::RenderListBox::stopAutoscroll): Removed an unneeded nil check
62909         of the element.
62910         (WebCore::RenderListBox::scrollToRevealElementAtListIndex): Changed
62911         to use numItems() and to use numVisibleItems() instead of size().
62912         Also changed scroll bar code to work more simply now that the scroll
62913         bar is row-based.
62914         (WebCore::RenderListBox::listIndexIsVisible): Changed to use
62915         numVisibleItems() instead of size().
62916         (WebCore::RenderListBox::valueChanged): Simplified since the scrollbar
62917         is now row-based. Also removed an unnecessary null check.
62918         (WebCore::RenderListBox::itemHeight): Updated for name change from
62919         optionsSpacingMiddle to rowSpacing.
62920         (WebCore::RenderListBox::scrollHeight): Changed to use listHeight().
62921         (WebCore::RenderListBox::setScrollTop): Simplified, and removed the code
62922         that does nothing if the computed list index is visible (which did not
62923         make sense for this function and seemed a cut and paste error from the
62924         scrollToReveal function). The scrollbar part is simpler now that it's
62925         row-based.
62926         (WebCore::RenderListBox::windowClipRect): Changed to use document()->view()
62927         so we don't have to include RenderView.h.
62928
62929         * css/html4.css: Added a semicolon I noticed was missing.
62930
62931 2007-01-19  Beth Dakin  <bdakin@apple.com>
62932
62933         Reviewed by Maciej and Darin.
62934
62935         Fix for <rdar://problem/4702420> REGRESSION: Null characters need 
62936         to be stripped from text nodes (townhall.com)
62937
62938         This was a regression from the fix for <rdar://problem/3727939>
62939         Safari strips \0 characters from HTML tags making them valid, which
62940         was fixed with r12652. We still need to strip null characters in
62941         text nodes.
62942
62943         * html/HTMLTokenizer.cpp:
62944         (WebCore::HTMLTokenizer::write): No behavior change here, this is
62945         just to make Darin happy.
62946         (WebCore::HTMLTokenizer::processToken): Call into StringImpl's new 
62947         createStrippingNull function instead of the normal StringImpl 
62948         constructor.
62949         * platform/StringImpl.cpp:
62950         (WebCore::StringImpl::createStrippingNull): Strip null.
62951         * platform/StringImpl.h:
62952
62953 2007-01-19  David Kilzer  <ddkilzer@webkit.org>
62954
62955         Reviewed by NOBODY (no-svg build fix).
62956
62957         * ksvg2/svg/SVGMPathElement.cpp: Added #ifdef SVG_SUPPORT/#endif guards.
62958
62959 2007-01-19  Anders Carlsson  <acarlsson@apple.com>
62960         
62961         Build fix.
62962         
62963         * platform/graphics/svg/SVGImageEmptyClients.h:
62964         (WebCore::SVGEmptyChromeClient::setStatusbarText):
62965
62966 2007-01-18  Anders Carlsson  <acarlsson@apple.com>
62967
62968         Reviewed by Adam.
62969
62970         Move JavaScript alert and status bar functions to the chrome.
62971         
62972         * bindings/js/kjs_window.cpp:
62973         (KJS::WindowFunc::callAsFunction):
62974         * page/Chrome.cpp:
62975         (WebCore::Chrome::runJavaScriptAlert):
62976         (WebCore::Chrome::runJavaScriptConfirm):
62977         (WebCore::Chrome::runJavaScriptPrompt):
62978         (WebCore::Chrome::setStatusBarText):
62979         * page/Chrome.h:
62980         * page/ChromeClient.h:
62981         * page/Frame.cpp:
62982         (WebCore::Frame::setJSStatusBarText):
62983         (WebCore::Frame::setJSDefaultStatusBarText):
62984         * page/Frame.h:
62985         * page/mac/FrameMac.h:
62986         * page/mac/FrameMac.mm:
62987         * page/mac/WebCoreFrameBridge.h:
62988         * platform/graphics/svg/SVGImageEmptyClients.h:
62989         (WebCore::SVGEmptyChromeClient::runJavaScriptAlert):
62990         (WebCore::SVGEmptyChromeClient::runJavaScriptConfirm):
62991         (WebCore::SVGEmptyChromeClient::runJavaScriptPrompt):
62992         (WebCore::SVGEmptyChromeClient::setStatusBarText):
62993
62994 2007-01-19  Zack Rusin  <zack@kde.org>
62995
62996         Fix the build.
62997
62998         * WebCore.pro: Add missing files
62999
63000 2007-01-19  Eric Seidel  <eric@webkit.org>
63001
63002         Reviewed by rwlbuis.
63003
63004         More cleanup to SVGAnimated* classes.
63005
63006         No tests possible (only code cleanup)
63007
63008         * ksvg2/svg/SVGAnimateMotionElement.cpp:
63009         (WebCore::SVGAnimateMotionElement::applyAnimationToValue):
63010         * ksvg2/svg/SVGAnimateMotionElement.h:
63011         * ksvg2/svg/SVGAnimationElement.cpp:
63012         (WebCore::SVGAnimationElement::parseBeginOrEndValue):
63013         (WebCore::SVGAnimationElement::parseMappedAttribute):
63014         (WebCore::SVGAnimationElement::parseClockValue):
63015         (WebCore::SVGAnimationElement::isIndefinite):
63016         * ksvg2/svg/SVGAnimationElement.h:
63017
63018 2007-01-19  Nikolas Zimmermann  <zimmermann@kde.org>
63019
63020         Not reviewed.
63021
63022         Remove accidently commited debug output. Shame on me :-)
63023
63024         * ksvg2/svg/SVGUseElement.cpp:
63025         (WebCore::SVGUseElement::notifyAttributeChange):
63026
63027 2007-01-19  Nikolas Zimmermann  <zimmermann@kde.org>
63028
63029         Reviewed by Eric.
63030
63031         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10410 (SVG Slider example renders completely wrong (inserting <use> dynamically doesn't work))
63032         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11660 (SVG: creation of <use/> elements through scripting/DOM doesn't work)
63033
63034         Added test: svg/custom/use-instanceRoot-modifications.svg
63035         Added test: svg/custom/use-on-g.svg
63036         Added test: svg/custom/use-on-rect.svg
63037         Added test: svg/custom/use-on-symbol-inside-pattern.svg
63038         Added test: svg/custom/use-on-symbol.svg
63039         Added test: svg/custom/use-on-text.svg
63040         Added test: svg/custom/use-transform.svg
63041
63042         Fixes: svg/W3C-SVG-1.1/text-text-04-t.svg (missing use elements)
63043         Fixes: svg/carto.net/button.svg (image buttons didn't appear)
63044         Fixes: svg/carto.net/colourpicker.svg (slider handles finally show up)
63045         Fixes: svg/carto.net/slider.svg (slider handles finally show up)
63046         Fixes: svg/carto.net/window.svg (window decorations show up) 
63047         Fixes: svg/custom/use-forward-refs.svg (missing use elements)
63048
63049         Rewrite <use> support with a real-shadow tree (as the spec demands), and implement SVGElementInstance.
63050         AFAIK we're the first implementing this SVG feature - after ASV3 (!).
63051
63052         * DerivedSources.make:
63053         * WebCore.xcodeproj/project.pbxproj:
63054         * bindings/objc/DOMInternal.h:
63055         * bindings/objc/DOMSVG.h:
63056         * ksvg2/misc/SVGDocumentExtensions.cpp:
63057         (WebCore::SVGDocumentExtensions::reportWarning):
63058         (WebCore::SVGDocumentExtensions::reportError):
63059         (WebCore::SVGDocumentExtensions::addPendingResource):
63060         (WebCore::SVGDocumentExtensions::isPendingResource):
63061         (WebCore::SVGDocumentExtensions::removePendingResource):
63062         (WebCore::SVGDocumentExtensions::mapInstanceToElement):
63063         (WebCore::SVGDocumentExtensions::removeInstanceMapping):
63064         (WebCore::SVGDocumentExtensions::instancesForElement):
63065         * ksvg2/misc/SVGDocumentExtensions.h:
63066         * ksvg2/svg/SVGCircleElement.cpp:
63067         (WebCore::SVGCircleElement::notifyAttributeChange):
63068         * ksvg2/svg/SVGElement.cpp:
63069         (WebCore::SVGElement::insertedIntoDocument):
63070         * ksvg2/svg/SVGElement.h:
63071         (WebCore::SVGElement::buildPendingResource):
63072         * ksvg2/svg/SVGElementInstance.cpp:
63073         (WebCore::SVGElementInstance::SVGElementInstance):
63074         (WebCore::SVGElementInstance::~SVGElementInstance):
63075         (WebCore::SVGElementInstance::clonedElement):
63076         (WebCore::SVGElementInstance::correspondingElement):
63077         (WebCore::SVGElementInstance::correspondingUseElement):
63078         (WebCore::SVGElementInstance::parentNode):
63079         (WebCore::SVGElementInstance::childNodes):
63080         (WebCore::SVGElementInstance::previousSibling):
63081         (WebCore::SVGElementInstance::nextSibling):
63082         (WebCore::SVGElementInstance::firstChild):
63083         (WebCore::SVGElementInstance::lastChild):
63084         (WebCore::SVGElementInstance::appendChild):
63085         (WebCore::SVGElementInstance::updateInstance):
63086         * ksvg2/svg/SVGElementInstance.h:
63087         * ksvg2/svg/SVGElementInstance.idl: Added.
63088         * ksvg2/svg/SVGElementInstanceList.cpp:
63089         (WebCore::SVGElementInstanceList::SVGElementInstanceList):
63090         (WebCore::SVGElementInstanceList::length):
63091         (WebCore::SVGElementInstanceList::item):
63092         * ksvg2/svg/SVGElementInstanceList.h:
63093         * ksvg2/svg/SVGElementInstanceList.idl: Added.
63094         * ksvg2/svg/SVGEllipseElement.cpp:
63095         (WebCore::SVGEllipseElement::notifyAttributeChange):
63096         * ksvg2/svg/SVGGElement.cpp:
63097         * ksvg2/svg/SVGGElement.h:
63098         (WebCore::SVGGElement::contextElement):
63099         * ksvg2/svg/SVGGradientElement.cpp:
63100         * ksvg2/svg/SVGGradientElement.h:
63101         * ksvg2/svg/SVGHiddenElement.h: Added.
63102         (WebCore::SVGHiddenElement::Type):
63103         (WebCore::SVGHiddenElement::~SVGHiddenElement):
63104         (WebCore::SVGHiddenElement::localName):
63105         * ksvg2/svg/SVGImageElement.cpp:
63106         (WebCore::SVGImageElement::notifyAttributeChange):
63107         * ksvg2/svg/SVGLineElement.cpp:
63108         (WebCore::SVGLineElement::notifyAttributeChange):
63109         * ksvg2/svg/SVGPathElement.cpp:
63110         (WebCore::SVGPathElement::notifyAttributeChange):
63111         * ksvg2/svg/SVGPatternElement.cpp:
63112         * ksvg2/svg/SVGPatternElement.h:
63113         * ksvg2/svg/SVGPolyElement.cpp:
63114         (WebCore::SVGPolyElement::notifyAttributeChange):
63115         * ksvg2/svg/SVGRectElement.cpp:
63116         (WebCore::SVGRectElement::notifyAttributeChange):
63117         * ksvg2/svg/SVGStyledElement.cpp:
63118         (WebCore::SVGStyledElement::notifyAttributeChange):
63119         (WebCore::SVGStyledElement::updateElementInstance):
63120         * ksvg2/svg/SVGStyledElement.h:
63121         * ksvg2/svg/SVGUseElement.cpp:
63122         (WebCore::SVGUseElement::instanceRoot):
63123         (WebCore::SVGUseElement::animatedInstanceRoot):
63124         (WebCore::SVGUseElement::hasChildNodes):
63125         (WebCore::SVGUseElement::insertedIntoDocument):
63126         (WebCore::SVGUseElement::buildPendingResource):
63127         (WebCore::SVGUseElement::createRenderer):
63128         (WebCore::SVGUseElement::buildShadowTree):
63129         (WebCore::SVGUseElement::recursiveShadowTreeBuilder):
63130         (WebCore::dumpShadowTree):
63131         (WebCore::SVGUseElement::addShadowTree):
63132         * ksvg2/svg/SVGUseElement.h:
63133         * ksvg2/svg/SVGUseElement.idl:
63134
63135 2007-01-19  Eric Seidel  <eric@webkit.org>
63136
63137         Reviewed by rwlbuis.
63138
63139         Add support for SVGMPathElement parsing.
63140
63141         No test cases possible (SVGAnimateMotion doesn't work yet)
63142
63143         * WebCore.xcodeproj/project.pbxproj:
63144         * ksvg2/svg/SVGAnimateMotionElement.cpp:
63145         (WebCore::SVGAnimateMotionElement::animationPath):
63146         * ksvg2/svg/SVGMPathElement.cpp: Added.
63147         (WebCore::SVGMPathElement::SVGMPathElement):
63148         (WebCore::SVGMPathElement::~SVGMPathElement):
63149         (WebCore::SVGMPathElement::parseMappedAttribute):
63150         (WebCore::SVGMPathElement::pathElement):
63151         * ksvg2/svg/SVGMPathElement.h: Added.
63152         * ksvg2/svg/SVGNumberList.cpp:
63153         (WebCore::SVGNumberList::parse): fix typo in comment
63154         * ksvg2/svg/svgtags.in: add back mpath
63155
63156 2007-01-19  Eric Seidel  <eric@webkit.org>
63157
63158         Reviewed by rwlbuis.
63159
63160         Implement better parsing for keyTimes, keySplines and keyPoints.
63161
63162         Unfortunately none of this code is used much yet, thus isn't very testable.
63163
63164         * ksvg2/svg/SVGAnimateMotionElement.cpp:
63165         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
63166         * ksvg2/svg/SVGAnimationElement.cpp:
63167         (WebCore::SVGAnimationElement::parseKeyNumbers):
63168         (WebCore::parseKeySplines):
63169         (WebCore::SVGAnimationElement::parseMappedAttribute):
63170         * ksvg2/svg/SVGAnimationElement.h:
63171         * ksvg2/svg/SVGNumberList.cpp:
63172         (WebCore::SVGNumberList::parse):
63173
63174 2007-01-18  Adam Roben  <aroben@apple.com>
63175
63176         Reviewed by Beth.
63177
63178         Fix: <rdar://problem/4939672> REGRESSION: With text selected that is
63179         not a link, the "Remove Link" contextual menu item remains active
63180
63181         * platform/ContextMenuItem.h: Added enabled method.
63182         * platform/qt/ContextMenuItemQt.cpp:
63183         (WebCore::ContextMenuItem::enabled): Implemented.
63184         * platform/mac/ContextMenuItemMac.mm:
63185         (WebCore::ContextMenuItem::enabled): Ditto.
63186         * platform/mac/ContextMenuMac.mm:
63187         (-[WebCoreMenuTarget validateMenuItem:]): Implemented to fulfill the
63188         NSMenuValidation protocol.
63189         
63190 2007-01-18  Beth Dakin  <bdakin@apple.com>
63191
63192         Reviewed by Adele.
63193
63194         Fix for <rdar://problem/4939558> REGRESSION: "Search in Google", 
63195         "Search in Spotlight" and "Look up in Dictionary" are missing 
63196         initially from the contextual menu
63197
63198         The bug here is that we select the we were selecting the word after 
63199         the context menu event was dispatched and after the context menu 
63200         was built up.
63201
63202         * page/EventHandler.cpp:
63203         (WebCore::EventHandler::sendContextMenuEvent): Select the word 
63204         before dispatching the event. It is safe to remove the check for 
63205         swallowEvent since WebCore context menus ensure that we always 
63206         swallow the event anyway.
63207
63208 2007-01-18  Mark Rowe  <mrowe@apple.com>
63209
63210         Reviewed by Tim H.
63211
63212         Fix for http://bugs.webkit.org/show_bug.cgi?id=7926
63213         Bug 7926: Crash using -callWebScriptMethod to access offsetTop property
63214
63215         * bindings/objc/WebScriptObject.mm:
63216         (-[WebScriptObject callWebScriptMethod:withArguments:]): Bail out early if function value is an immediate,
63217         or if the function object is not callable.
63218
63219 2007-01-18  Sam Weinig  <sam@webkit.org>
63220
63221         Reviewed by Maciej.
63222
63223         Patch for http://bugs.webkit.org/show_bug.cgi?id=11853
63224         REGRESSION (r17352): Whitespace in <title> is rendered
63225
63226         * loader/DocumentLoader.cpp:
63227         (WebCore::canonicalizedTitle): Changed to also collapse internal
63228         whitespace.  This required removing an optimization that is no
63229         longer possible.
63230         * manual-tests/title-internal-whitespace.html: Added.
63231
63232 2007-01-18  Mitz Pettel  <mitz@webkit.org>
63233
63234         Reviewed by Maciej.
63235
63236         - fix http://bugs.webkit.org/show_bug.cgi?id=12039
63237           Assertion failure in WebCore::Font::primaryFont
63238
63239         Test: fast/text/font-initial.html
63240
63241         * css/cssstyleselector.cpp:
63242         (WebCore::CSSStyleSelector::applyProperty): Give 'font: initial' the
63243         Standard generic family. This makes the FontDescription different from
63244         that of the initial font of a GraphicsContext, ensuring that the latter
63245         will not be used.
63246
63247 2007-01-18  Mitz Pettel  <mitz@webkit.org>
63248
63249         Reviewed by Darin.
63250
63251         - fix http://bugs.webkit.org/show_bug.cgi?id=11451
63252           REGRESSION: Dell.com does not render correctly in ToT (stylesheet not loaded)
63253
63254         Test: http/tests/misc/css-accept-any-type.html
63255
63256         * loader/CachedCSSStyleSheet.cpp:
63257         (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet): Changed the accept header
63258         for stylesheets to "text/css,*/*;q=0.1" to match Firefox, accepting CSS served
63259         as any type.
63260
63261 2007-01-18  Mitz Pettel  <mitz@webkit.org>
63262
63263         Reviewed by Darin.
63264
63265         - fix http://bugs.webkit.org/show_bug.cgi?id=11271
63266         REGRESSION (r12358): Text in display: table unselectable
63267
63268         Test: editing/selection/display-table-text.html
63269
63270         * editing/htmlediting.cpp:
63271         (WebCore::isTableElement): Changed to return false for text nodes.
63272
63273 2007-01-18  Mitz Pettel  <mitz@webkit.org>
63274
63275         Reviewed by Darin.
63276
63277         - fix http://bugs.webkit.org/show_bug.cgi?id=6218
63278           CSS1: WebTextRenderer caches and re-uses fallback renderers that are based on family lists
63279
63280         This patch takes character-to-glyph mapping out of FontData and instead makes
63281         each Font keep its own mapping, using a shared set of glyph page fallback trees.
63282
63283         For each page number there is (at most) one tree. A path from the root to a
63284         node in the tree corresponds to a fallback list of FontDatas. The node points to
63285         a page (which may be shared with other nodes) that maps each character in its range
63286         to a glyph in the first FontData in the fallback list that has it, or to 0 if none of
63287         the FontDatas has a glyph for that character. A special kind of node, that can
63288         only occur as a leaf, corresponds to using system fallback fonts after the list
63289         has been exhausted. This prevents system fallback from polluting non-leaf
63290         nodes.
63291
63292         Nodes and pages are initialized lazily and employ "copy on write".
63293
63294         * CMakeLists.txt:
63295         * WebCore.pro:
63296         * WebCore.vcproj/WebCore/WebCore.vcproj:
63297         * WebCore.xcodeproj/project.pbxproj:
63298         * WebCoreSources.bkl:
63299         * platform/Font.cpp:
63300         (WebCore::WidthIterator::WidthIterator): Removed substituteFontData.
63301         (WebCore::WidthIterator::advance): Moved all character-to-glyph mapping logic out
63302         of here and replaced it with a call to Font::glyphDataForCharacter().
63303         (WebCore::Font::Font):
63304         (WebCore::Font::operator=):
63305         (WebCore::Font::glyphDataForCharacter): Added. This method performs the lookup in the
63306         page fallback trees, triggering lazy initialization as needed, and caching pointers to
63307         the retrieved page tree nodes in the font.
63308         (WebCore::Font::update):
63309         (WebCore::Font::drawSimpleText):
63310         (WebCore::Font::floatWidth):
63311         (WebCore::Font::floatWidthForSimpleText): Removed substituteFont argument.
63312         (WebCore::Font::offsetForPositionForSimpleText):
63313         * platform/Font.h:
63314         * platform/FontData.cpp:
63315         (WebCore::FontData::FontData):
63316         * platform/FontData.h:
63317         (WebCore::FontData::missingGlyphData): Added. Returns the "missing glyph" GlyphData for
63318         this FontData.
63319         * platform/GlyphMap.cpp: Removed.
63320         * platform/GlyphMap.h: Removed.
63321         * platform/GlyphPageTreeNode.cpp: Renamed GlyphMap.cpp to this.
63322         (WebCore::GlyphPageTreeNode::getRoot): Added. Returns the root of the page fallback tree for
63323         the given page number.
63324         (WebCore::GlyphPageTreeNode::initializePage): Added. Helper method that initializes the page
63325         pointer of a node, possibly to a pointer to another node's page or to 0.
63326         (WebCore::GlyphPageTreeNode::getChild): Added.
63327         * platform/GlyphPageTreeNode.h: Renamed GlyphMap.h to this.
63328         (WebCore::GlyphPage::glyphDataForCharacter):
63329         (WebCore::GlyphPage::setGlyphDataForCharacter):
63330         (WebCore::GlyphPage::setGlyphDataForIndex):
63331         (WebCore::GlyphPageTreeNode::GlyphPageTreeNode):
63332         (WebCore::GlyphPageTreeNode::getRootChild):
63333         (WebCore::GlyphPageTreeNode::parent):
63334         (WebCore::GlyphPageTreeNode::page):
63335         (WebCore::GlyphPageTreeNode::level):
63336         (WebCore::GlyphPageTreeNode::isSystemFallback): Added. Returns whether the node corresponds
63337         to the system providing fallback fonts, which is done on a character-by-character basis.
63338         * platform/gdk/GlyphMapGdk.cpp: Removed.
63339         * platform/gdk/GlyphPageTreeNodeGdk.cpp: Renamed GlyphMapGdk.cpp to this.
63340         (WebCore::GlyphPage::fill):
63341         * platform/mac/FontDataMac.mm:
63342         (WebCore::FontData::platformInit):
63343         * platform/mac/FontMac.mm:
63344         (WebCore::Font::Font):
63345         * platform/mac/GlyphMapMac.cpp: Removed.
63346         * platform/mac/GlyphPageTreeNodeMac.cpp: Renamed GlypMapMac.cpp to this.
63347         (WebCore::GlyphPage::fill): Changed to return false if the font has no glyphs in the page.
63348         * platform/qt/GlyphMapQt.cpp: Removed.
63349         * platform/qt/GlyphPageTreeNodeQt.cpp: Renamed GlyphMapQt.cpp to this.
63350         (WebCore::GlyphPage::fill):
63351         * platform/win/GlyphMapWin.cpp: Removed.
63352         * platform/win/GlyphPageTreeNodeWin.cpp: Renamed GlyphMapWin to this.
63353         (WebCore::GlyphPage::fill):
63354
63355 2007-01-18  Mitz Pettel  <mitz@webkit.org>
63356
63357         Reviewed by Darin.
63358
63359         - fix http://bugs.webkit.org/show_bug.cgi?id=9952
63360           REGRESSION: Repro crash when dragging an image from the window to the address bar
63361
63362         * page/FrameView.cpp:
63363         (WebCore::FrameView::~FrameView): Removed the call to Document::detach(). If this
63364         view is the current view, then the Frame should have already detached the document.
63365         Added an assertion that this is the case. If this view is not the current view,
63366         then it cannot access its document, but the page cache should have detached it already.
63367         Similarly, changed to call RenderPart::setWidget() only if this is the current view
63368         in the frame.
63369         (WebCore::FrameView::adjustViewSize): Added an assertion that this view is the current
63370         view in the frame.
63371         (WebCore::FrameView::layout): Ditto.
63372         (WebCore::FrameView::scheduleRelayout): Ditto.
63373         (WebCore::FrameView::scheduleRelayoutOfSubtree): Ditto.
63374         (WebCore::FrameView::windowClipRect): Ditto.
63375
63376 2007-01-18  Eric Seidel  <eric@webkit.org>
63377
63378         Reviewed by bdash.
63379
63380         No test needed, removed bogus debug-only ASSERT.
63381
63382         * rendering/RenderSVGContainer.cpp:
63383         (WebCore::RenderSVGContainer::paint):
63384
63385 2007-01-18  Alice Liu  <alice.liu@apple.com>
63386
63387         Build Fix
63388
63389         * platform/mac/PasteboardMac.mm:
63390         (WebCore::Pasteboard::writeSelection):
63391
63392 2007-01-18  Alice Liu  <alice.liu@apple.com>
63393
63394         Reviewed by Mark Rowe.
63395
63396         Fixes the leaks from my last patch, except for the first change below which is a missing delegate call for Mail purposes
63397
63398         * editing/Editor.cpp:
63399         (WebCore::Editor::cut):
63400         * platform/Pasteboard.h:
63401         * platform/mac/PasteboardMac.mm:
63402         (WebCore::Pasteboard::Pasteboard):
63403         (WebCore::Pasteboard::clear):
63404         (WebCore::Pasteboard::writeSelection):
63405         (WebCore::Pasteboard::writeURL):
63406         (WebCore::Pasteboard::plainText):
63407         (WebCore::Pasteboard::documentFragment):
63408
63409 2007-01-18  David Hyatt  <hyatt@apple.com>
63410
63411         Make sure layer autoscrolling puts the event coordinates into the layer's coordinate space before
63412         calling hitTest on it.  Fixes "flashy" selection in textareas.
63413
63414         Reviewed by darin
63415
63416         * rendering/RenderLayer.cpp:
63417         (WebCore::RenderLayer::autoscroll):
63418         * rendering/RenderTextControl.cpp:
63419         (WebCore::RenderTextControl::nodeAtPoint):
63420
63421 2007-01-18  Anders Carlsson  <acarlsson@apple.com>
63422
63423         Reviewed by Adam.
63424
63425         Get rid of ResourceLoaderMac.mm and make willCacheResponse platform-independent.
63426         
63427         * loader/ResourceLoader.cpp:
63428         (WebCore::ResourceLoader::willCacheResponse):
63429         * loader/ResourceLoader.h:
63430         * loader/mac/ResourceLoaderMac.mm: Removed.
63431         * platform/network/ResourceHandleClient.h:
63432         (WebCore::):
63433         (WebCore::ResourceHandleClient::willCacheResponse):
63434         (WebCore::ResourceHandleClient::willStopBufferingData):
63435         * platform/network/mac/ResourceHandleMac.mm:
63436         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
63437
63438 2007-01-18  Maciej Stachowiak  <mjs@apple.com>
63439
63440         Reviewed by John.
63441
63442         - fixed <rdar://problem/4887416> REGRESSION (SearchField): Assertion failure in HTMLInputElement::setValueFromRenderer when editing via drag and drop (11846)
63443         http://bugs.webkit.org/show_bug.cgi?id=11846
63444         
63445         * editing/ReplaceSelectionCommand.cpp:
63446         (WebCore::ReplaceSelectionCommand::doApply): Don't insert extra paragraph separators to avoid
63447         nesting blocks in plaintext mode, since that's not an issue under normal circumstances.
63448         * html/HTMLInputElement.h:
63449         * manual-tests/drag-move-in-search-field.html: Added.
63450         * rendering/RenderTextControl.cpp:
63451         (WebCore::RenderTextControl::subtreeHasChanged): constrain the value; we'd
63452         rather truncate it than end up with an illegal value here.
63453
63454 2007-01-18  Simon Hausmann  <hausmann@kde.org>
63455
63456         Reviewed by Zack.
63457
63458         * WebCore.pro: Ha^H^HFix to support massive parallel builds.
63459
63460 2007-01-18  David Kilzer  <ddkilzer@kilzer.net>
63461
63462         Reviewed by Darin and Mitz.
63463
63464         - fix http://bugs.webkit.org/show_bug.cgi?id=12305
63465           REGRESSION: Images do not load in video sections on CNN.com homepage
63466
63467         <rdar://problem/4931480> REGRESSION: Images do not load in video sections on CNN.com homepage (12305)
63468
63469         Test: fast/dom/HTMLImageElement/image-lowsrc-getset.html
63470
63471         * html/HTMLAttributeNames.in: Added lowsrc.
63472         * html/HTMLImageElement.cpp:
63473         (WebCore::HTMLImageElement::isURLAttribute): Added lowsrc.
63474         (WebCore::HTMLImageElement::lowsrc): Added.
63475         (WebCore::HTMLImageElement::setLowsrc): Added.
63476         * html/HTMLImageElement.h: Added lowsrc and setLowsrc.
63477         * html/HTMLImageElement.idl: Added lowsrc.
63478
63479 2007-01-18  Simon Hausmann  <hausmann@kde.org>
63480
63481         Reviewed by Zack.
63482
63483         * WebCore.pro: Remove generated files on make clean.
63484
63485 2007-01-17  Alice Liu  <alice.liu@apple.com>
63486
63487         Reviewed by Harrison.
63488
63489         Fix for <rdar://problem/4894155> REGRESSION: Extra line break is pasted with content into message body after choosing File - Paste
63490
63491         Migration of some editing code from WebHTMView to WebCore::Editor
63492         resulted in not calling pasteboardTypesForSelection, which Mail was
63493         overriding for the special purpose of adding a type to the
63494         pasteboard after WebKit did.  This patch adds 2 separate code paths
63495         for Tiger and Leopard.  On Tiger we give in and call the WebView's
63496         pasteboardTypesForSelection.  On Leopard we call a delegate after
63497         the pasteboard types are set. 
63498
63499         * bridge/EditorClient.h:
63500         * editing/Editor.h:
63501         * platform/Pasteboard.h:
63502         * platform/graphics/svg/SVGImageEmptyClients.h:
63503         (WebCore::SVGEmptyEditorClient::didSetSelectionTypesForPasteboard):
63504         (WebCore::SVGEmptyEditorClient::pasteboardTypesForSelection):
63505         * platform/mac/PasteboardMac.mm:
63506         (WebCore::Pasteboard::Pasteboard):
63507         (WebCore::Pasteboard::clear):
63508         (WebCore::Pasteboard::writeSelection):
63509         (WebCore::Pasteboard::writeURL):
63510         (WebCore::Pasteboard::plainText):
63511         (WebCore::Pasteboard::documentFragment):
63512
63513 2007-01-17  John Sullivan  <sullivan@apple.com>
63514
63515         Reviewed by Darin
63516
63517         - WebCore part of fix for <rdar://problem/4462420> REGRESSION: Mail hangs during 
63518           Replace All if the replacement string contains the search string
63519         
63520         * page/Frame.h:
63521         * page/Frame.cpp:
63522         (WebCore::Frame::findString):
63523         new startInSelection parameter -- if true, search starts looking in selection; if false,
63524         search starts looking after the selection
63525         
63526         * page/mac/WebCoreFrameBridge.h:
63527         * page/mac/WebCoreFrameBridge.mm:
63528         (-[WebCoreFrameBridge searchFor:direction:caseSensitive:wrap:startInSelection:]):
63529         new startInSelection parameter, passed through to Frame::findString()
63530
63531         * editing/JSEditor.cpp:
63532         pass false for new findString parameter, to match old behavior
63533
63534 2007-01-17  Beth Dakin  <bdakin@apple.com>
63535
63536         Rubber stamped by Darin.
63537
63538         * rendering/HitTestResult.cpp: Just added a comment.
63539
63540 2007-01-17  Justin Garcia  <justin.garcia@apple.com>
63541
63542         Reviewed by darin
63543         
63544         <rdar://problem/4920488>
63545         REGRESSION: A crash occurs at WebCore::Range::processContents () when removing formatting from selected text (that contains a link)
63546
63547         * dom/Range.cpp:
63548         (WebCore::Range::commonAncestorContainer): Return null if the nodes
63549         don't have a common ancestor.  As a side effect, the public 
63550         commonAncestorContainer now sets an exception if the Range starts
63551         in one document and ends in another, or starts or ends in a tree
63552         that's been removed from the document.  The spec doesn't cover
63553         this and there is no precedent in other browsers for this case because
63554         they don't allow invalid Ranges (you can create one with WebCore
63555         by removing a node that contains the start/end of a Range).
63556         (WebCore::Range::compareBoundaryPoints): If the the two positions
63557         are in nodes that have no common ancestor, return null.  This doesn't
63558         change the behavior of the public compareBoundaryPoints: it already
63559         throws an exception if the two positions are in nodes that don't have
63560         a common ancestor.  This follows the spec.
63561
63562 2007-01-17  John Sullivan  <sullivan@apple.com>
63563
63564         The one word was typed by me, but only after debugging for a long time with Darin.
63565
63566         - fixed <rdar://problem/4912002> REGRESSION: Series of words marked as a single misspelled word
63567
63568         * editing/TextIterator.cpp:
63569         (WebCore::WordAwareIterator::WordAwareIterator):
63570         We were creating a TextIterator with the default kind, but WordAwareIterator is designed to work
63571         in concert with CharacterIterator, so they need to use the same kind. CharacterIterator uses
63572         kind RUNFINDER, so WordAwareIterator needs to do so also.
63573
63574 2007-01-17  Adele Peterson  <adele@apple.com>
63575
63576         Reviewed by Brady.
63577
63578         Fix for <rdar://problem/4900895> REGRESSION: onChange doesn't always fire for popups that have had value changed by JS
63579
63580         No test case since you need to open up the menu to fire onChange.
63581
63582         * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::setSelectedIndex):
63583           Keep track of m_lastOnChangeIndex even when we're not firing onChange.  Since
63584           the selected index has changed, we still want the m_lastOnChangeIndex to be up to date when we compare
63585           it later.  This matches our behavior in Safari 2.0.
63586
63587 2007-01-17  Adele Peterson  <adele@apple.com>
63588
63589         Reviewed by Darin and John.
63590
63591         - Fix for <rdar://problem/4816550> REGRESSION: autoscrolling doesn't work after double-click
63592
63593         * page/EventHandler.cpp: (WebCore::EventHandler::handleMousePressEvent): Set swallowEvent bool instead
63594           of returning early for double and triple clicks.
63595
63596 2007-01-17  Darin Adler  <darin@apple.com>
63597
63598         Reviewed by Hyatt.
63599
63600         * rendering/RenderObject.h: Removed unused nextEditable and previousEditable.
63601         * rendering/RenderObject.cpp: Ditto.
63602
63603 2007-01-17  Darin Adler  <darin@apple.com>
63604
63605         Reviewed by Maciej.
63606
63607         - fix http://bugs.webkit.org/show_bug.cgi?id=12278
63608           <rdar://problem/4928705> REGRESSION(r13070): Dragged image size includes padding (12278)
63609
63610         * WebCore.exp: Added HitTestResult::imageRect,
63611         removed HitTestResult::boundingBox.
63612
63613         * rendering/HitTestResult.h:
63614         * rendering/HitTestResult.cpp: (WebCore::HitTestResult::imageRect):
63615         Added. Returns the content rectangle of the image.
63616
63617         * rendering/RenderObject.h:
63618         * rendering/RenderObject.cpp:
63619         (WebCore::RenderObject::absolutePosition): Made const.
63620         (WebCore::RenderObject::contentBox): Added.
63621         (WebCore::RenderObject::absoluteContentBox): Added.
63622
63623         * rendering/RenderBox.h:
63624         * rendering/RenderBox.cpp:
63625         (WebCore::RenderBox::absolutePosition): Made const.
63626
63627         * rendering/RenderTableCell.h:
63628         * rendering/RenderTableCell.cpp:
63629         (WebCore::RenderTableCell::absolutePosition): Made const.
63630
63631         * rendering/RenderView.h:
63632         * rendering/RenderView.cpp:
63633         (WebCore::RenderView::absolutePosition): Made const.
63634
63635 2007-01-17  Adele Peterson  <adele@apple.com>
63636
63637         Reviewed by Beth.
63638
63639         Fix for  http://bugs.webkit.org/show_bug.cgi?id=10139
63640         <rdar://problem/4823028> REGRESSION: Reproducible crash when selecting a popup/button with ::selection pseudostyle
63641
63642         Test: fast/css/pseudostyle-anonymous-text.html
63643
63644         * rendering/RenderObject.cpp: (WebCore::RenderObject::getPseudoStyle): Nil check the node.
63645
63646 2007-01-17  Adele Peterson  <adele@apple.com>
63647
63648         Reviewed by Anders and John.
63649
63650         Fix for http://bugs.webkit.org/show_bug.cgi?id=11278
63651         <rdar://problem/4826875> REGRESSION: Popup width doesn't change to accommodate dynamic changes to options
63652
63653         Test: fast/forms/menulist-width-change.html
63654
63655         * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::updateFromElement):
63656           When the options change, call setNeedsLayoutAndMinMaxRecalc.
63657
63658 2007-01-16  Alexey Proskuryakov  <ap@webkit.org>
63659
63660         Reviewed by Maciej.
63661
63662         http://bugs.webkit.org/show_bug.cgi?id=12268
63663         Give object prototypes their own names
63664
63665         * bindings/js/kjs_html.cpp: Changed the names of KJS:HTMLElement and KJS::HTMLElement to 
63666         not match the names of their WebCore counterparts. The "DOM" prefix I gave them doesn't 
63667         seem to carry much sense, but matches some other kjs_html object names.
63668
63669         * bindings/scripts/CodeGeneratorJS.pm: Append "Proto" to interface name for the prototype's ClassInfo.
63670
63671         * bindings/js/JSHTMLInputElementBase.cpp:
63672         (WebCore::JSHTMLInputElementBasePrototypeFunction::callAsFunction):
63673         (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase):
63674         * bindings/js/JSHTMLInputElementBase.h:
63675         * bindings/js/JSXMLHttpRequest.cpp:
63676         (KJS::JSXMLHttpRequestConstructorImp::JSXMLHttpRequestConstructorImp):
63677         (KJS::JSXMLHttpRequest::JSXMLHttpRequest):
63678         (KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction):
63679         * bindings/js/JSXMLHttpRequest.h:
63680         * bindings/js/JSXSLTProcessor.cpp:
63681         (KJS::JSXSLTProcessor::JSXSLTProcessor):
63682         (KJS::XSLTProcessorPrototypeFunction::callAsFunction):
63683         (KJS::XSLTProcessorConstructorImp::XSLTProcessorConstructorImp):
63684         * bindings/js/kjs_css.cpp:
63685         (KJS::DOMCSSStyleDeclaration::DOMCSSStyleDeclaration):
63686         (KJS::DOMCSSStyleDeclarationPrototypeFunction::callAsFunction):
63687         (KJS::DOMMediaList::DOMMediaList):
63688         (KJS::KJS::DOMMediaListPrototypeFunction::callAsFunction):
63689         (KJS::DOMCSSStyleSheet::DOMCSSStyleSheet):
63690         (KJS::DOMCSSStyleSheetPrototypeFunction::callAsFunction):
63691         (KJS::DOMCSSValue::DOMCSSValue):
63692         (KJS::DOMCSSValuePrototypeFunction::callAsFunction):
63693         * bindings/js/kjs_css.h:
63694         * bindings/js/kjs_dom.cpp:
63695         (KJS::DOMNode::DOMNode):
63696         (KJS::DOMNodePrototypeFunction::callAsFunction):
63697         (KJS::DOMEventTargetNode::DOMEventTargetNode):
63698         (KJS::DOMEventTargetNodePrototypeFunction::callAsFunction):
63699         (KJS::DOMNamedNodeMap::DOMNamedNodeMap):
63700         (KJS::DOMNamedNodeMapPrototypeFunction::callAsFunction):
63701         * bindings/js/kjs_dom.h:
63702         * bindings/js/kjs_domnode.h:
63703         * bindings/js/kjs_events.cpp:
63704         (KJS::DOMEvent::DOMEvent):
63705         (KJS::DOMEventPrototypeFunction::callAsFunction):
63706         (KJS::Clipboard::Clipboard):
63707         (KJS::ClipboardPrototypeFunction::callAsFunction):
63708         * bindings/js/kjs_events.h:
63709         * bindings/js/kjs_html.cpp:
63710         (KJS::JSHTMLDocumentPrototypeFunction::callAsFunction):
63711         (KJS::):
63712         (KJS::JSHTMLDocument::JSHTMLDocument):
63713         (KJS::JSHTMLElementPrototypeFunction::callAsFunction):
63714         (KJS::JSHTMLElement::JSHTMLElement):
63715         (KJS::JSHTMLCollection::JSHTMLCollection):
63716         (KJS::JSHTMLCollectionPrototypeFunction::callAsFunction):
63717         * bindings/js/kjs_html.h:
63718         * bindings/js/kjs_navigator.cpp:
63719         * bindings/js/kjs_traversal.cpp:
63720         (KJS::DOMNodeFilter::DOMNodeFilter):
63721         (KJS::DOMNodeFilterPrototypeFunction::callAsFunction):
63722         * bindings/js/kjs_window.cpp:
63723         (KJS::Window::clear):
63724         Changed Proto to Prototype, and ProtoFunc to PrototypeFunction.
63725
63726 2007-01-17  Lars Knoll <lars@trolltech.com>
63727
63728         Reviewed by Zack and Darin
63729
63730         Fix the Qt build again after the latest Image changes.
63731         Also make some of the methods implemented in ImageCG 
63732         crossplatform.
63733
63734         * platform/graphics/BitmapImage.h:
63735         * platform/graphics/Image.cpp:
63736         (WebCore::Image::fillWithSolidColor):
63737         (WebCore::calculatePatternScale):
63738         (WebCore::Image::drawTiled):
63739         * platform/graphics/Image.h:
63740         * platform/graphics/cg/ImageCG.cpp:
63741         (WebCore::BitmapImage::draw):
63742         * platform/graphics/qt/ImageQt.cpp:
63743         (WebCore::Image::loadPlatformResource):
63744         (WebCore::Image::drawPattern):
63745         (WebCore::BitmapImage::initPlatformData):
63746         (WebCore::BitmapImage::invalidatePlatformData):
63747         (WebCore::BitmapImage::draw):
63748         (WebCore::BitmapImage::drawPattern):
63749         * platform/qt/TemporaryLinkStubs.cpp:
63750
63751 2007-01-17  Darin Adler  <darin@apple.com>
63752
63753         - quick attempt to fix the Qt build
63754
63755         * platform/graphics/qt/ImageQt.cpp: (WebCore::BitmapImage::drawTiled):
63756         Remove obsolete parameters from this stub.
63757
63758 2007-01-17  Eric Seidel  <eric@webkit.org>
63759
63760         Reviewed by rwlbuis.
63761
63762         Test: svg/custom/inner-svg-hit-test.svg
63763
63764         * rendering/RenderSVGContainer.cpp:
63765         (WebCore::RenderSVGContainer::nodeAtPoint): never allow containers to be hit.
63766
63767 2007-01-17  Lars Knoll <lars@trolltech.com>
63768
63769         Reviewed by Zack
63770
63771         Don't call receivedResponse twice for file: URLs.
63772         Never call back into the ResourceHandleClient once
63773         cancel() has been called on the ResourceHandle.
63774
63775         * WebCore.pro:
63776         * platform/network/qt/ResourceHandleManagerQt.cpp:
63777         (WebCore::ResourceHandleManager::cancel):
63778         (WebCore::ResourceHandleManager::receivedResponse):
63779         (WebCore::ResourceHandleManager::receivedData):
63780         (WebCore::ResourceHandleManager::receivedFinished):
63781         (WebCore::FileLoader::request):
63782         (WebCore::FileLoader::parseDataUrl):
63783         (WebCore::WebCoreHttp::scheduleNextRequest):
63784         * platform/network/qt/ResourceHandleManagerQt.h:
63785
63786 2007-01-17  Eric Seidel  <eric@webkit.org>
63787
63788         No review, build fix only.
63789
63790         * platform/graphics/cg/ImageCG.cpp: correct drawPatternCombined to drawPattern
63791         (WebCore::Image::drawPattern):
63792         (WebCore::Image::drawTiled):
63793
63794 2007-01-17  Eric Seidel  <eric@webkit.org>
63795
63796         Reviewed by mitz and rwlbuis.
63797         
63798         SVGs do not work as background images:
63799         http://bugs.webkit.org/show_bug.cgi?id=12096
63800
63801         Tests updated:
63802         - fast/images/svg-as-background.svg: now passes
63803         - fast/images/svg-as-tiled-background.svg: now passes
63804
63805         * platform/graphics/BitmapImage.h:
63806         (WebCore::BitmapImage::nativeImageForCurrentFrame):
63807         (WebCore::BitmapImage::mayFillWithSolidColor):
63808         (WebCore::BitmapImage::solidColor):
63809         * platform/graphics/Image.h:
63810         (WebCore::Image::mayFillWithSolidColor):
63811         (WebCore::Image::solidColor):
63812         (WebCore::Image::nativeImageForCurrentFrame):
63813         (WebCore::Image::startAnimation):
63814         * platform/graphics/cg/ImageCG.cpp:
63815         (WebCore::Image::drawPatternCallback):
63816         (WebCore::Image::drawPatternCombined):
63817         (WebCore::caculatePatternScale):
63818         (WebCore::Image::drawTiled):
63819         * platform/graphics/cg/PDFDocumentImage.cpp:
63820         * platform/graphics/cg/PDFDocumentImage.h:
63821         * platform/graphics/svg/SVGImage.cpp:
63822         (WebCore::SVGImage::nativeImageForCurrentFrame):
63823         * platform/graphics/svg/SVGImage.h:
63824
63825 2007-01-17  Rob Buis  <buis@kde.org>
63826
63827         Reviewed by Eric
63828
63829         Add proper condition for rx attribute negative check.
63830
63831         * ksvg2/svg/SVGRectElement.cpp:
63832         (WebCore::SVGRectElement::parseMappedAttribute):
63833
63834 2007-01-17  Lars Knoll <lars@trolltech.com>
63835
63836         Reviewed by Zack
63837
63838         change all notImplemented() macros to use qDebug
63839         instead of fprintf(stder, ...)
63840
63841         * loader/qt/DocumentLoaderQt.cpp:
63842         * loader/qt/FrameLoaderQt.cpp:
63843         * page/qt/EventHandlerQt.cpp:
63844         * page/qt/FrameQt.cpp:
63845         * platform/graphics/qt/GraphicsContextQt.cpp:
63846         * platform/graphics/qt/IconQt.cpp:
63847         * platform/network/qt/ResourceHandleManagerQt.cpp:
63848         * platform/network/qt/ResourceHandleQt.cpp:
63849         * platform/qt/CursorQt.cpp:
63850         * platform/qt/FileChooserQt.cpp:
63851         * platform/qt/MimeTypeRegistryQt.cpp:
63852         * platform/qt/PageQt.cpp: Removed.
63853         * platform/qt/PopupMenuQt.cpp:
63854         * platform/qt/ScrollViewQt.cpp:
63855         * platform/qt/TemporaryLinkStubs.cpp:
63856         * platform/qt/TextBoundaries.cpp:
63857         * platform/qt/WidgetQt.cpp:
63858
63859 2007-01-16  Brady Eidson  <beidson@apple.com>
63860
63861         Reviewed by Oliver
63862
63863         A few enhancements to the HTTP Auth architecture
63864
63865         * platform/network/ProtectionSpace.cpp:
63866         (WebCore::ProtectionSpace::isProxy):
63867         (WebCore::ProtectionSpace::receivesCredentialSecurely):
63868         * platform/network/ProtectionSpace.h:
63869
63870 2007-01-16  Alice Liu  <alice.liu@apple.com>
63871
63872         Reviewed by harrison.
63873
63874         Fixed <rdar://problem/4921134> WebKit needs extensible cut/copy to allow additional types to be written to pasteboard
63875
63876         * WebCore.xcodeproj/project.pbxproj:
63877         * bridge/EditorClient.h:
63878         * editing/Editor.cpp:
63879         (WebCore::Editor::copy):
63880         (WebCore::Editor::didWriteSelectionToPasteboard):
63881         * editing/Editor.h:
63882         * platform/graphics/svg/SVGImageEmptyClients.h:
63883         (WebCore::SVGEmptyEditorClient::didWriteSelectionToPasteboard):
63884
63885 2007-01-16  Justin Garcia  <justin.garcia@apple.com>
63886
63887         Reviewed by harrison
63888         
63889         <rdar://problem/4747450>
63890         Gmail Editor: Caret doesn't always position itself after list marker
63891         <rdar://problem/4917055>
63892         GMail Editor: A hang can occur when attempting to apply list styling to selected indented text
63893
63894         * editing/TextIterator.cpp:
63895         (WebCore::TextIterator::rangeFromLocationAndLength): Use VisiblePositions
63896         to compute the end of a run for emitted '\n's, because it's often wrong
63897         in that case.
63898
63899 2007-01-16  Darin Adler  <darin@apple.com>
63900
63901         - quick lame attempt to get Qt compiling again
63902
63903         * platform/qt/ContextMenuQt.cpp: Removed show() function.
63904
63905 2007-01-17  Nicholas Shanks  <contact@nickshanks.com>
63906
63907         Reviewed by Darin.
63908
63909         * platform/network/ResourceRequest.h:
63910         (WebCore::ResourceRequest::setHTTPAccept): Correct argument name.
63911
63912 2007-01-16  Beth Dakin  <bdakin@apple.com>
63913
63914         Reviewed by Adam.
63915
63916         Get rid of show() and hide() since they don't do anything.
63917
63918         * page/ContextMenuController.cpp:
63919         (WebCore::ContextMenuController::handleContextMenuEvent):
63920         * platform/ContextMenu.h:
63921         * platform/mac/ContextMenuMac.mm:
63922
63923 2007-01-16  Lars Knoll <lars@trolltech.com>
63924
63925         Reviewed by Zack
63926
63927         Cleaned up the way we create native widgets. They are
63928         now not created in WebCore anymore, but in the new
63929         Qt API to WebKit.
63930
63931         Fix a compile issue in the ResourceHandleManager.
63932
63933         * WebCore.pro:
63934         * platform/ScrollView.h:
63935         * platform/Widget.h:
63936         (WebCore::ResourceHandleManager::cancel):
63937         * platform/qt/ScrollViewCanvasQt.cpp:
63938         (WebCore::ScrollViewCanvasQt::ScrollViewCanvasQt):
63939         (WebCore::ScrollViewCanvasQt::paintEvent):
63940         (WebCore::ScrollViewCanvasQt::mouseMoveEvent):
63941         (WebCore::ScrollViewCanvasQt::mousePressEvent):
63942         (WebCore::ScrollViewCanvasQt::mouseReleaseEvent):
63943         (WebCore::ScrollViewCanvasQt::handleKeyEvent):
63944         * platform/qt/ScrollViewCanvasQt.h:
63945         * platform/qt/ScrollViewQt.cpp:
63946         (WebCore::ScrollView::ScrollView):
63947         (WebCore::ScrollView::setScrollArea):
63948         (WebCore::ScrollView::addChild):
63949         * platform/qt/WidgetQt.cpp:
63950         * platform/network/qt/ResourceHandleManagerQt.cpp:
63951
63952 2007-01-16  Lars Knoll <lars@trolltech.com>
63953
63954         Reviewed by Zack
63955
63956         Looks like ResourceHandle _has_ to do everything
63957         asynchronously if we don't want to run into
63958         lots of trouble in the loader.
63959
63960         Implement support data: URLs.
63961
63962         Remove some unused Qt only code in ResourceHandleClient.h
63963
63964         * platform/network/ResourceHandleClient.h:
63965         * platform/network/qt/ResourceHandleManagerQt.cpp:
63966         (WebCore::RequestQt::setURL):
63967         (WebCore::ResourceHandleManager::add):
63968         (WebCore::ResourceHandleManager::cancel):
63969         (WebCore::ResourceHandleManager::receivedFinished):
63970         (WebCore::LoaderThread::run):
63971         (WebCore::FileLoader::request):
63972         (WebCore::FileLoader::sendData):
63973         (WebCore::FileLoader::parseDataUrl):
63974         * platform/network/qt/ResourceHandleManagerQt.h:
63975
63976 2007-01-16  Eric Seidel  <eric@webkit.org>
63977
63978         Reviewed by mitz.
63979
63980         Refactor drawTiled implementations in preparation for combining them.
63981         Removed unused RoundTile code path.
63982
63983         * platform/graphics/cg/ImageCG.cpp:
63984         (WebCore::drawPattern):
63985         (WebCore::BitmapImage::drawTiled):
63986         (WebCore::caculatePatternScale):
63987
63988 2007-01-16  Darin Adler  <darin@apple.com>
63989
63990         Reviewed by Mark Rowe.
63991
63992         - removed unused field from loader
63993
63994         * loader/loader.cpp:
63995         (WebCore::Loader::numRequests):
63996         (WebCore::Loader::cancelRequests):
63997         * loader/loader.h:
63998
63999 2007-01-15  Rob Buis  <buis@kde.org>
64000
64001         Reviewed by Eric.
64002
64003         http://bugs.webkit.org/show_bug.cgi?id=12272
64004         SVG picture is clipped (edges not visible)
64005
64006         Expose css dpi constant and use it for svg, making
64007         1in amount to 96 pixels like for html.
64008
64009         * css/CSSPrimitiveValue.cpp:
64010         (WebCore::CSSPrimitiveValue::computeLengthFloat):
64011         (WebCore::scaleFactorForConversion):
64012         * css/csshelper.h:
64013         * ksvg2/svg/SVGLength.cpp:
64014         (WebCore::SVGLength::value):
64015         (WebCore::SVGLength::setValue):
64016         * ksvg2/svg/SVGLength.h:
64017
64018 2007-01-15  Brady Eidson  <beidson@apple.com>
64019
64020         Reviewed by Adam
64021         
64022         CFNet additions
64023
64024         * platform/network/AuthenticationChallenge.cpp:
64025         (WebCore::operator==):
64026         * platform/network/AuthenticationChallenge.h:
64027         (WebCore::AuthenticationChallenge::sourceHandle):
64028         (WebCore::AuthenticationChallenge::cfURLAuthChallengeRef):
64029         * platform/network/ResourceError.h:
64030         * platform/network/ResourceHandle.h:
64031         * platform/network/ResourceHandleInternal.h:
64032         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
64033
64034 2007-01-15  Eric Seidel  <eric@webkit.org>
64035
64036         Reviewed by hyatt.
64037
64038         Don't map attributes in namespaces other than null to CSS properties.
64039         
64040         Test: svg/custom/attribute-namespace-check.svg
64041
64042         * ksvg2/svg/SVGStyledElement.cpp:
64043         (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName):
64044
64045 2007-01-15  Lars Naesbye Christensen  <lars@naesbye.dk>
64046
64047         Reviewed by Darin.
64048
64049         - http://bugs.webkit.org/show_bug.cgi?id=11112
64050           add a drop shadow to the hand cursor used for links
64051
64052         * Resources/linkCursor.png: Added a drop shadow.
64053
64054 2007-01-15  Darin Adler  <darin@apple.com>
64055
64056         Reviewed by Adam.
64057
64058         - fix http://bugs.webkit.org/show_bug.cgi?id=12190
64059           REGRESSION: Placeholder text does not reflect dynamic updates
64060
64061         Test: fast/forms/placeholder-set-attribute.html
64062
64063         * html/HTMLTextFieldInnerElement.cpp:
64064         (WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
64065         Call onSearch on the element since I removed it from the renderer.
64066
64067         * rendering/RenderTextControl.h: Added explicit virtual keywords for overrides
64068         of virtual functions. Removed the unneeded onSearch function. Made the inheritance
64069         from PopupMenuClient be private, and made the overrides all private. Replaced the
64070         showPlaceholderIfNeeded and hidePlaceholderIfNeeded functions with updatePlaceholder.
64071         * rendering/RenderTextControl.cpp:
64072         (WebCore::RenderTextControl::createResultsButtonStyle): Added an assertion.
64073         (WebCore::RenderTextControl::updatePlaceholder): Added. Replaces the two
64074         functions, showPlaceholderIfNeeded and hidePlaceholderIfNeeded.
64075         (WebCore::RenderTextControl::updateFromElement): Added call to
64076         updatePlaceholder before updating the value. Also improved the structure
64077         of the function and corrected incorrect use of copy and replace.
64078         (WebCore::RenderTextControl::updateCancelButtonVisibility): Added an
64079         assertion and removed an unneeded local variable.
64080         (WebCore::RenderTextControl::subtreeHasChanged): Removed an unneeded
64081         null check and virtual function calls.
64082         (WebCore::RenderTextControl::forwardEvent): Replaced calls to the old
64083         functions with calls to updatePlaceholder.
64084         (WebCore::RenderTextControl::selectionChanged): Changed code to dispatch
64085         the select event directly -- I plan to remove the onSelect function, which
64086         was only called here.
64087         (WebCore::RenderTextControl::autosaveName): Removed too-specific cast and
64088         local variable.
64089         (WebCore::RenderTextControl::addSearchResult): Added assertion and changed
64090         variable name for clarity.
64091         (WebCore::RenderTextControl::valueChanged): Changed code to check for empty
64092         autosave name instead of null for consistency with other call sites that
64093         manage the autosave name. Also changed the code that dispatches an event
64094         to call onSearch on the input element so we don't need our own function.
64095
64096 2007-01-15  Eric Seidel  <eric@webkit.org>
64097
64098         Reviewed by hyatt.
64099
64100         Fix SVGStyledElement::parseMappedAttribute to only map SVG-allowed CSS properties
64101         (i.e. width is no longer mapped to CSS for SVG)
64102         Add SVGStyledElement::mapToEntry to allow RenderStyle-sharing
64103         http://bugs.webkit.org/show_bug.cgi?id=12060
64104
64105         * dom/MappedAttributeEntry.h:
64106         (WebCore::):
64107         * ksvg2/svg/SVGStyledElement.cpp:
64108         (WebCore::cssPropertyIdForName): new helper
64109         (WebCore::mapAttributeToCSSProperty): new helper
64110         (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName): new helper
64111         (WebCore::SVGStyledElement::mapToEntry): added.
64112         (WebCore::SVGStyledElement::parseMappedAttribute): use cssPropertyIdForSVGAttributeName
64113         * ksvg2/svg/SVGStyledElement.h:
64114
64115 2007-01-15  Eric Seidel  <eric@webkit.org>
64116
64117         Reviewed by bdash.
64118
64119         Update header guards to follow new style guidelines using new clean-header-guards script.
64120
64121         * bindings/js/JSHTMLElementWrapperFactory.h:
64122         * bindings/js/JSHTMLInputElementBase.h:
64123         * bindings/js/JSHTMLOptionElementConstructor.h:
64124         * bindings/js/JSSVGElementWrapperFactory.h:
64125         * bindings/js/JSSVGPODTypeWrapper.h:
64126         * bindings/js/JSXMLHttpRequest.h:
64127         * bindings/js/JSXSLTProcessor.h:
64128         * bindings/js/kjs_binding.h:
64129         * bindings/js/kjs_css.h:
64130         * bindings/js/kjs_dom.h:
64131         * bindings/js/kjs_domnode.h:
64132         * bindings/js/kjs_events.h:
64133         * bindings/js/kjs_html.h:
64134         * bindings/js/kjs_navigator.h:
64135         * bindings/js/kjs_proxy.h:
64136         * bindings/js/kjs_traversal.h:
64137         * bindings/js/kjs_window.h:
64138         * bridge/EditorClient.h:
64139         * bridge/History.h:
64140         * css/CSSStyleSheet.h:
64141         * css/CSSValue.h:
64142         * css/CSSValueList.h:
64143         * css/DashboardRegion.h:
64144         * css/FontFamilyValue.h:
64145         * css/FontValue.h:
64146         * css/MediaFeatureNames.h:
64147         * css/MediaList.h:
64148         * css/Pair.h:
64149         * css/RectImpl.h:
64150         * css/ShadowValue.h:
64151         * css/StyleBase.h:
64152         * css/StyleList.h:
64153         * css/StyleSheet.h:
64154         * css/StyleSheetList.h:
64155         * css/cssstyleselector.h:
64156         * dom/BeforeTextInsertedEvent.h:
64157         * dom/CDATASection.h:
64158         * dom/CharacterData.h:
64159         * dom/ChildNodeList.h:
64160         * dom/Comment.h:
64161         * dom/DOMImplementation.h:
64162         * dom/DocPtr.h:
64163         * dom/Document.h:
64164         * dom/DocumentFragment.h:
64165         * dom/DocumentMarker.h:
64166         * dom/DocumentType.h:
64167         * dom/EditingText.h:
64168         * dom/Entity.h:
64169         * dom/EntityReference.h:
64170         * dom/EventNames.h:
64171         * dom/EventTargetNode.h:
64172         * dom/NameNodeList.h:
64173         * dom/NamedNodeMap.h:
64174         * dom/Node.h:
64175         * dom/NodeList.h:
64176         * dom/Notation.h:
64177         * dom/Position.h:
64178         * dom/ProcessingInstruction.h:
64179         * dom/Range.h:
64180         * dom/StyleElement.h:
64181         * dom/Text.h:
64182         * editing/AppendNodeCommand.h:
64183         * editing/ApplyStyleCommand.h:
64184         * editing/BreakBlockquoteCommand.h:
64185         * editing/CommandByName.h:
64186         * editing/CompositeEditCommand.h:
64187         * editing/DeleteButton.h:
64188         * editing/DeleteButtonController.h:
64189         * editing/DeleteFromTextNodeCommand.h:
64190         * editing/DeleteSelectionCommand.h:
64191         * editing/InsertIntoTextNodeCommand.h:
64192         * editing/InsertLineBreakCommand.h:
64193         * editing/InsertNodeBeforeCommand.h:
64194         * editing/InsertParagraphSeparatorCommand.h:
64195         * editing/InsertTextCommand.h:
64196         * editing/JoinTextNodesCommand.h:
64197         * editing/MergeIdenticalElementsCommand.h:
64198         * editing/ModifySelectionListLevel.h:
64199         * editing/MoveSelectionCommand.h:
64200         * editing/RemoveCSSPropertyCommand.h:
64201         * editing/RemoveNodeAttributeCommand.h:
64202         * editing/RemoveNodeCommand.h:
64203         * editing/RemoveNodePreservingChildrenCommand.h:
64204         * editing/ReplaceSelectionCommand.h:
64205         * editing/SetNodeAttributeCommand.h:
64206         * editing/SplitElementCommand.h:
64207         * editing/SplitTextNodeCommand.h:
64208         * editing/SplitTextNodeContainingElementCommand.h:
64209         * editing/TextGranularity.h:
64210         * editing/TypingCommand.h:
64211         * editing/WrapContentsInDummySpanCommand.h:
64212         * history/BackForwardList.h:
64213         * history/HistoryItem.h:
64214         * history/HistoryItemTimer.h:
64215         * history/PageCache.h:
64216         * html/CanvasGradient.h:
64217         * html/CanvasPattern.h:
64218         * html/CanvasRenderingContext2D.h:
64219         * html/CanvasStyle.h:
64220         * html/FormDataList.h:
64221         * html/HTMLAnchorElement.h:
64222         * html/HTMLAppletElement.h:
64223         * html/HTMLAreaElement.h:
64224         * html/HTMLBRElement.h:
64225         * html/HTMLBaseElement.h:
64226         * html/HTMLBaseFontElement.h:
64227         * html/HTMLBlockquoteElement.h:
64228         * html/HTMLBodyElement.h:
64229         * html/HTMLButtonElement.h:
64230         * html/HTMLCanvasElement.h:
64231         * html/HTMLCollection.h:
64232         * html/HTMLDListElement.h:
64233         * html/HTMLDirectoryElement.h:
64234         * html/HTMLDivElement.h:
64235         * html/HTMLElement.h:
64236         * html/HTMLElementFactory.h:
64237         * html/HTMLEmbedElement.h:
64238         * html/HTMLFieldSetElement.h:
64239         * html/HTMLFontElement.h:
64240         * html/HTMLFormCollection.h:
64241         * html/HTMLFormElement.h:
64242         * html/HTMLFrameSetElement.h:
64243         * html/HTMLGenericFormElement.h:
64244         * html/HTMLHRElement.h:
64245         * html/HTMLHeadElement.h:
64246         * html/HTMLHeadingElement.h:
64247         * html/HTMLHtmlElement.h:
64248         * html/HTMLImageElement.h:
64249         * html/HTMLImageLoader.h:
64250         * html/HTMLInputElement.h:
64251         * html/HTMLIsIndexElement.h:
64252         * html/HTMLKeygenElement.h:
64253         * html/HTMLLIElement.h:
64254         * html/HTMLLabelElement.h:
64255         * html/HTMLLegendElement.h:
64256         * html/HTMLLinkElement.h:
64257         * html/HTMLMapElement.h:
64258         * html/HTMLMarqueeElement.h:
64259         * html/HTMLMenuElement.h:
64260         * html/HTMLMetaElement.h:
64261         * html/HTMLModElement.h:
64262         * html/HTMLNameCollection.h:
64263         * html/HTMLOListElement.h:
64264         * html/HTMLObjectElement.h:
64265         * html/HTMLOptGroupElement.h:
64266         * html/HTMLOptionElement.h:
64267         * html/HTMLOptionsCollection.h:
64268         * html/HTMLParagraphElement.h:
64269         * html/HTMLParamElement.h:
64270         * html/HTMLParser.h:
64271         * html/HTMLPlugInElement.h:
64272         * html/HTMLPreElement.h:
64273         * html/HTMLQuoteElement.h:
64274         * html/HTMLScriptElement.h:
64275         * html/HTMLSelectElement.h:
64276         * html/HTMLStyleElement.h:
64277         * html/HTMLTableCaptionElement.h:
64278         * html/HTMLTableCellElement.h:
64279         * html/HTMLTableColElement.h:
64280         * html/HTMLTableElement.h:
64281         * html/HTMLTablePartElement.h:
64282         * html/HTMLTableRowElement.h:
64283         * html/HTMLTableSectionElement.h:
64284         * html/HTMLTextAreaElement.h:
64285         * html/HTMLTextFieldInnerElement.h:
64286         * html/HTMLTitleElement.h:
64287         * html/HTMLUListElement.h:
64288         * ksvg2/css/SVGRenderStyle.h:
64289         * ksvg2/css/SVGRenderStyleDefs.h:
64290         * ksvg2/events/JSSVGLazyEventListener.h:
64291         * ksvg2/events/SVGZoomEvent.h:
64292         * ksvg2/misc/KCanvasRenderingStyle.h:
64293         * ksvg2/misc/PointerEventsHitRules.h:
64294         * ksvg2/misc/SVGDocumentExtensions.h:
64295         * ksvg2/misc/SVGImageLoader.h:
64296         * ksvg2/misc/TimeScheduler.h:
64297         * ksvg2/svg/GradientAttributes.h:
64298         * ksvg2/svg/LinearGradientAttributes.h:
64299         * ksvg2/svg/PatternAttributes.h:
64300         * ksvg2/svg/RadialGradientAttributes.h:
64301         * ksvg2/svg/SVGAElement.h:
64302         * ksvg2/svg/SVGAngle.h:
64303         * ksvg2/svg/SVGAnimateColorElement.h:
64304         * ksvg2/svg/SVGAnimateElement.h:
64305         * ksvg2/svg/SVGAnimateMotionElement.h:
64306         * ksvg2/svg/SVGAnimateTransformElement.h:
64307         * ksvg2/svg/SVGAnimatedPathData.h:
64308         * ksvg2/svg/SVGAnimatedPoints.h:
64309         * ksvg2/svg/SVGAnimatedTemplate.h:
64310         * ksvg2/svg/SVGAnimationElement.h:
64311         * ksvg2/svg/SVGCircleElement.h:
64312         * ksvg2/svg/SVGClipPathElement.h:
64313         * ksvg2/svg/SVGColor.h:
64314         * ksvg2/svg/SVGComponentTransferFunctionElement.h:
64315         * ksvg2/svg/SVGCursorElement.h:
64316         * ksvg2/svg/SVGDOMImplementation.h:
64317         * ksvg2/svg/SVGDefsElement.h:
64318         * ksvg2/svg/SVGDescElement.h:
64319         * ksvg2/svg/SVGDocument.h:
64320         * ksvg2/svg/SVGElement.h:
64321         * ksvg2/svg/SVGElementInstance.h:
64322         * ksvg2/svg/SVGElementInstanceList.h:
64323         * ksvg2/svg/SVGEllipseElement.h:
64324         * ksvg2/svg/SVGExternalResourcesRequired.h:
64325         * ksvg2/svg/SVGFEBlendElement.h:
64326         * ksvg2/svg/SVGFEColorMatrixElement.h:
64327         * ksvg2/svg/SVGFEComponentTransferElement.h:
64328         * ksvg2/svg/SVGFECompositeElement.h:
64329         * ksvg2/svg/SVGFEDiffuseLightingElement.h:
64330         * ksvg2/svg/SVGFEDisplacementMapElement.h:
64331         * ksvg2/svg/SVGFEDistantLightElement.h:
64332         * ksvg2/svg/SVGFEFloodElement.h:
64333         * ksvg2/svg/SVGFEFuncAElement.h:
64334         * ksvg2/svg/SVGFEFuncBElement.h:
64335         * ksvg2/svg/SVGFEFuncGElement.h:
64336         * ksvg2/svg/SVGFEFuncRElement.h:
64337         * ksvg2/svg/SVGFEGaussianBlurElement.h:
64338         * ksvg2/svg/SVGFEImageElement.h:
64339         * ksvg2/svg/SVGFELightElement.h:
64340         * ksvg2/svg/SVGFEMergeElement.h:
64341         * ksvg2/svg/SVGFEMergeNodeElement.h:
64342         * ksvg2/svg/SVGFEOffsetElement.h:
64343         * ksvg2/svg/SVGFEPointLightElement.h:
64344         * ksvg2/svg/SVGFESpecularLightingElement.h:
64345         * ksvg2/svg/SVGFESpotLightElement.h:
64346         * ksvg2/svg/SVGFETileElement.h:
64347         * ksvg2/svg/SVGFETurbulenceElement.h:
64348         * ksvg2/svg/SVGFilterElement.h:
64349         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
64350         * ksvg2/svg/SVGFitToViewBox.h:
64351         * ksvg2/svg/SVGForeignObjectElement.h:
64352         * ksvg2/svg/SVGGElement.h:
64353         * ksvg2/svg/SVGGradientElement.h:
64354         * ksvg2/svg/SVGImageElement.h:
64355         * ksvg2/svg/SVGLangSpace.h:
64356         * ksvg2/svg/SVGLength.h:
64357         * ksvg2/svg/SVGLengthList.h:
64358         * ksvg2/svg/SVGLineElement.h:
64359         * ksvg2/svg/SVGLinearGradientElement.h:
64360         * ksvg2/svg/SVGList.h:
64361         * ksvg2/svg/SVGListTraits.h:
64362         * ksvg2/svg/SVGLocatable.h:
64363         * ksvg2/svg/SVGMarkerElement.h:
64364         * ksvg2/svg/SVGMaskElement.h:
64365         * ksvg2/svg/SVGMetadataElement.h:
64366         * ksvg2/svg/SVGNumberList.h:
64367         * ksvg2/svg/SVGPaint.h:
64368         * ksvg2/svg/SVGParserUtilities.h:
64369         * ksvg2/svg/SVGPathElement.h:
64370         * ksvg2/svg/SVGPathSeg.h:
64371         * ksvg2/svg/SVGPathSegArc.h:
64372         * ksvg2/svg/SVGPathSegClosePath.h:
64373         * ksvg2/svg/SVGPathSegCurvetoCubic.h:
64374         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h:
64375         * ksvg2/svg/SVGPathSegCurvetoQuadratic.h:
64376         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h:
64377         * ksvg2/svg/SVGPathSegLineto.h:
64378         * ksvg2/svg/SVGPathSegLinetoHorizontal.h:
64379         * ksvg2/svg/SVGPathSegLinetoVertical.h:
64380         * ksvg2/svg/SVGPathSegList.h:
64381         * ksvg2/svg/SVGPathSegMoveto.h:
64382         * ksvg2/svg/SVGPatternElement.h:
64383         * ksvg2/svg/SVGPointList.h:
64384         * ksvg2/svg/SVGPolyElement.h:
64385         * ksvg2/svg/SVGPolygonElement.h:
64386         * ksvg2/svg/SVGPolylineElement.h:
64387         * ksvg2/svg/SVGPreserveAspectRatio.h:
64388         * ksvg2/svg/SVGRadialGradientElement.h:
64389         * ksvg2/svg/SVGRectElement.h:
64390         * ksvg2/svg/SVGRenderingIntent.h:
64391         * ksvg2/svg/SVGSVGElement.h:
64392         * ksvg2/svg/SVGScriptElement.h:
64393         * ksvg2/svg/SVGSetElement.h:
64394         * ksvg2/svg/SVGStopElement.h:
64395         * ksvg2/svg/SVGStringList.h:
64396         * ksvg2/svg/SVGStylable.h:
64397         * ksvg2/svg/SVGStyleElement.h:
64398         * ksvg2/svg/SVGStyledElement.h:
64399         * ksvg2/svg/SVGStyledLocatableElement.h:
64400         * ksvg2/svg/SVGStyledTransformableElement.h:
64401         * ksvg2/svg/SVGSwitchElement.h:
64402         * ksvg2/svg/SVGSymbolElement.h:
64403         * ksvg2/svg/SVGTRefElement.h:
64404         * ksvg2/svg/SVGTSpanElement.h:
64405         * ksvg2/svg/SVGTests.h:
64406         * ksvg2/svg/SVGTextContentElement.h:
64407         * ksvg2/svg/SVGTextElement.h:
64408         * ksvg2/svg/SVGTextPositioningElement.h:
64409         * ksvg2/svg/SVGTitleElement.h:
64410         * ksvg2/svg/SVGTransform.h:
64411         * ksvg2/svg/SVGTransformList.h:
64412         * ksvg2/svg/SVGTransformable.h:
64413         * ksvg2/svg/SVGURIReference.h:
64414         * ksvg2/svg/SVGUnitTypes.h:
64415         * ksvg2/svg/SVGUseElement.h:
64416         * ksvg2/svg/SVGViewElement.h:
64417         * ksvg2/svg/SVGZoomAndPan.h:
64418         * loader/CachedCSSStyleSheet.h:
64419         * loader/CachedImage.h:
64420         * loader/CachedXSLStyleSheet.h:
64421         * loader/DocumentLoader.h:
64422         * loader/Request.h:
64423         * loader/SubresourceLoader.h:
64424         * loader/icon/IconDataCache.h:
64425         * loader/icon/IconDatabase.h:
64426         * loader/icon/IconLoader.h:
64427         * loader/icon/SQLDatabase.h:
64428         * loader/icon/SQLStatement.h:
64429         * loader/icon/SQLTransaction.h:
64430         * page/Frame.h:
64431         * page/FrameLoadRequest.h:
64432         * page/FrameTree.h:
64433         * page/FrameView.h:
64434         * page/PageState.h:
64435         * page/Plugin.h:
64436         * page/qt/FrameQt.h:
64437         * page/qt/FrameQtClient.h:
64438         * platform/Arena.h:
64439         * platform/ArrayImpl.h:
64440         * platform/Cursor.h:
64441         * platform/DeprecatedArray.h:
64442         * platform/DeprecatedCString.h:
64443         * platform/FileChooser.h:
64444         * platform/Font.h:
64445         * platform/FontCache.h:
64446         * platform/FontData.h:
64447         * platform/FontDescription.h:
64448         * platform/FontFamily.h:
64449         * platform/GlyphBuffer.h:
64450         * platform/GlyphMap.h:
64451         * platform/GlyphWidthMap.h:
64452         * platform/Logging.h:
64453         * platform/Pasteboard.h:
64454         * platform/PlatformString.h:
64455         * platform/PlugInInfoStore.h:
64456         * platform/PopupMenu.h:
64457         * platform/PopupMenuClient.h:
64458         * platform/ScrollBar.h:
64459         * platform/ScrollView.h:
64460         * platform/SearchPopupMenu.h:
64461         * platform/Shared.h:
64462         * platform/Sound.h:
64463         * platform/SystemTime.h:
64464         * platform/Timer.h:
64465         * platform/Widget.h:
64466         * platform/cf/RetainPtr.h:
64467         * platform/gdk/ChromeClientGdk.h:
64468         * platform/gdk/FontPlatformData.h:
64469         * platform/gdk/FrameGdk.h:
64470         * platform/gdk/KeyboardCodes.h:
64471         * platform/gdk/RenderPopupMenuGdk.h:
64472         * platform/gdk/RenderThemeGdk.h:
64473         * platform/graphics/BitmapImage.h:
64474         * platform/graphics/Color.h:
64475         * platform/graphics/FloatPoint.h:
64476         * platform/graphics/FloatPoint3D.h:
64477         * platform/graphics/FloatRect.h:
64478         * platform/graphics/Icon.h:
64479         * platform/graphics/Image.h:
64480         * platform/graphics/ImageAnimationObserver.h:
64481         * platform/graphics/ImageBuffer.h:
64482         * platform/graphics/ImageSource.h:
64483         * platform/graphics/IntPoint.h:
64484         * platform/graphics/IntRect.h:
64485         * platform/graphics/IntSize.h:
64486         * platform/graphics/IntSizeHash.h:
64487         * platform/graphics/PathTraversalState.h:
64488         * platform/graphics/Pen.h:
64489         * platform/graphics/qt/ImageDecoderQt.h:
64490         * platform/graphics/svg/SVGImage.h:
64491         * platform/graphics/svg/SVGImageEmptyClients.h:
64492         * platform/graphics/svg/SVGPaintServer.h:
64493         * platform/graphics/svg/SVGPaintServerGradient.h:
64494         * platform/graphics/svg/SVGPaintServerLinearGradient.h:
64495         * platform/graphics/svg/SVGPaintServerPattern.h:
64496         * platform/graphics/svg/SVGPaintServerRadialGradient.h:
64497         * platform/graphics/svg/SVGPaintServerSolid.h:
64498         * platform/graphics/svg/SVGResource.h:
64499         * platform/graphics/svg/SVGResourceClipper.h:
64500         * platform/graphics/svg/SVGResourceFilter.h:
64501         * platform/graphics/svg/SVGResourceMarker.h:
64502         * platform/graphics/svg/SVGResourceMasker.h:
64503         * platform/graphics/svg/cg/CgSupport.h:
64504         * platform/graphics/svg/filters/SVGDistantLightSource.h:
64505         * platform/graphics/svg/filters/SVGFEBlend.h:
64506         * platform/graphics/svg/filters/SVGFEColorMatrix.h:
64507         * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
64508         * platform/graphics/svg/filters/SVGFEComposite.h:
64509         * platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
64510         * platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
64511         * platform/graphics/svg/filters/SVGFEDisplacementMap.h:
64512         * platform/graphics/svg/filters/SVGFEFlood.h:
64513         * platform/graphics/svg/filters/SVGFEGaussianBlur.h:
64514         * platform/graphics/svg/filters/SVGFEImage.h:
64515         * platform/graphics/svg/filters/SVGFEMerge.h:
64516         * platform/graphics/svg/filters/SVGFEMorphology.h:
64517         * platform/graphics/svg/filters/SVGFEOffset.h:
64518         * platform/graphics/svg/filters/SVGFESpecularLighting.h:
64519         * platform/graphics/svg/filters/SVGFETile.h:
64520         * platform/graphics/svg/filters/SVGFETurbulence.h:
64521         * platform/graphics/svg/filters/SVGFilterEffect.h:
64522         * platform/graphics/svg/filters/SVGLightSource.h:
64523         * platform/graphics/svg/filters/SVGPointLightSource.h:
64524         * platform/graphics/svg/filters/SVGSpotLightSource.h:
64525         * platform/mac/FontPlatformData.h:
64526         * platform/mac/PlatformScrollBar.h:
64527         * platform/network/AuthenticationChallenge.h:
64528         * platform/network/Credential.h:
64529         * platform/network/HTTPHeaderMap.h:
64530         * platform/network/ProtectionSpace.h:
64531         * platform/network/ResourceError.h:
64532         * platform/network/ResourceRequest.h:
64533         * platform/network/ResourceResponse.h:
64534         * platform/network/cf/FormDataStreamCFNet.h:
64535         * platform/network/cf/ResourceRequestCFNet.h:
64536         * platform/network/cf/ResourceResponseCFNet.h:
64537         * platform/network/gdk/ResourceHandleManager.h:
64538         * platform/network/mac/AuthenticationMac.h:
64539         * platform/network/mac/FormDataStreamMac.h:
64540         * platform/network/qt/ResourceHandleManagerKDE.h:
64541         * platform/network/qt/ResourceHandleManagerQt.h:
64542         * platform/network/win/ResourceHandleWin.h:
64543         * platform/qt/FontPlatformData.h:
64544         * platform/qt/KeyboardCodes.h:
64545         * platform/qt/PlatformScrollBar.h:
64546         * platform/qt/ScrollViewCanvasQt.h:
64547         * platform/qt/SharedTimerQt.h:
64548         * platform/win/FontPlatformData.h:
64549         * platform/win/PlatformScrollBar.h:
64550         * rendering/AutoTableLayout.h:
64551         * rendering/HitTestRequest.h:
64552         * rendering/HitTestResult.h:
64553         * rendering/InlineBox.h:
64554         * rendering/InlineFlowBox.h:
64555         * rendering/Length.h:
64556         * rendering/ListMarkerBox.h:
64557         * rendering/RenderBox.h:
64558         * rendering/RenderMenuList.h:
64559         * rendering/RenderPart.h:
64560         * rendering/RenderPartObject.h:
64561         * rendering/RenderPath.h:
64562         * rendering/RenderReplaced.h:
64563         * rendering/RenderSVGContainer.h:
64564         * rendering/RenderSVGImage.h:
64565         * rendering/RenderSVGInline.h:
64566         * rendering/RenderSVGInlineText.h:
64567         * rendering/RenderSVGTSpan.h:
64568         * rendering/RenderSVGText.h:
64569         * rendering/RenderStyle.h:
64570         * rendering/RenderTableCol.h:
64571         * rendering/RenderThemeWin.h:
64572         * rendering/bidi.h:
64573         * xml/DOMParser.h:
64574         * xml/XPathEvaluator.h:
64575         * xml/XPathExpression.h:
64576         * xml/XPathExpressionNode.h:
64577         * xml/XPathFunctions.h:
64578         * xml/XPathNSResolver.h:
64579         * xml/XPathNamespace.h:
64580         * xml/XPathParser.h:
64581         * xml/XPathPath.h:
64582         * xml/XPathPredicate.h:
64583         * xml/XPathResult.h:
64584         * xml/XPathStep.h:
64585         * xml/XPathUtil.h:
64586         * xml/XPathValue.h:
64587         * xml/XPathVariableReference.h:
64588         * xml/XSLImportRule.h:
64589         * xml/XSLStyleSheet.h:
64590         * xml/XSLTProcessor.h:
64591         * xml/xmlhttprequest.h:
64592
64593 2007-01-15  Anders Carlsson  <acarlsson@apple.com>
64594
64595         Build fix.
64596         
64597         * loader/ProgressTracker.cpp:
64598
64599 2007-01-15  Lars Knoll <lars@trolltech.com>
64600
64601         Fix the Qt build
64602
64603         * WebCore.pro:
64604
64605 2007-01-15  Anders Carlsson  <acarlsson@apple.com>
64606
64607         Reviewed by Darin.
64608
64609         * loader/ProgressTracker.cpp:
64610         Set finalProgressValue to its value explicitly instead of calculating it 
64611         (which causes a global initializer to be generated).
64612
64613 2007-01-15  Anders Carlsson  <acarlsson@apple.com>
64614
64615         Reviewed by Darin and Adam.
64616
64617         Move progress tracking down to WebCore.
64618         
64619         * WebCore.exp:
64620         Add ProgressTracker::estimatedProgress() to be used by WebKit.
64621         
64622         * WebCore.xcodeproj/project.pbxproj:
64623         Add ProgressTracker.[cpp|h]
64624         
64625         * loader/FrameLoader.cpp:
64626         (WebCore::FrameLoader::prepareForLoadStart):
64627         (WebCore::FrameLoader::clearProvisionalLoad):
64628         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
64629         (WebCore::FrameLoader::startLoading):
64630         (WebCore::FrameLoader::didReceiveResponse):
64631         (WebCore::FrameLoader::didReceiveData):
64632         (WebCore::FrameLoader::didFailToLoad):
64633         (WebCore::FrameLoader::requestFromDelegate):
64634         (WebCore::FrameLoader::didFinishLoad):
64635         Call directly to the progress tracker instead of through the frame loader client.
64636         
64637         * loader/FrameLoaderClient.h:
64638         Get rid of the old methods and add new methods for tracking progress.
64639         
64640         * loader/ProgressTracker.cpp: Added.
64641         (WebCore::ProgressItem::ProgressItem):
64642         (WebCore::ProgressTracker::ProgressTracker):
64643         (WebCore::ProgressTracker::~ProgressTracker):
64644         (WebCore::ProgressTracker::estimatedProgress):
64645         (WebCore::ProgressTracker::reset):
64646         (WebCore::ProgressTracker::progressStarted):
64647         (WebCore::ProgressTracker::progressCompleted):
64648         (WebCore::ProgressTracker::finalProgressComplete):
64649         (WebCore::ProgressTracker::incrementProgress):
64650         (WebCore::ProgressTracker::completeProgress):
64651         (WebCore::ProgressTracker::createUniqueIdentifier):
64652         * loader/ProgressTracker.h: Added.
64653         New per page class which tracks progress.
64654         
64655         * loader/ResourceLoader.cpp:
64656         (WebCore::ResourceLoader::willSendRequest):
64657         * page/Page.cpp:
64658         (WebCore::Page::Page):
64659         * page/Page.h:
64660         (WebCore::Page::progress):
64661         Move createUniqueIdentifier to ProgressTracker, add ProgressTracker object to Page.
64662         
64663         * platform/graphics/svg/SVGImageEmptyClients.h:
64664         (WebCore::SVGEmptyFrameLoaderClient::willChangeEstimatedProgress):
64665         (WebCore::SVGEmptyFrameLoaderClient::didChangeEstimatedProgress):
64666         (WebCore::SVGEmptyFrameLoaderClient::postProgressStartedNotification):
64667         (WebCore::SVGEmptyFrameLoaderClient::postProgressEstimateChangedNotification):
64668         (WebCore::SVGEmptyFrameLoaderClient::postProgressFinishedNotification):
64669         Add new methods, get rid of the old ones.
64670
64671 2007-01-15  Adam Roben  <aroben@apple.com>
64672
64673         Reviewed by Anders.
64674
64675         Fix comment.
64676
64677         * html/HTMLScriptElement.cpp:
64678         (WebCore::HTMLScriptElement::shouldExecuteAsJavaScript):
64679
64680 2007-01-15  John Sullivan  <sullivan@apple.com>
64681
64682         * platform/ContextMenu.cpp:
64683         (WebCore::ContextMenu::checkOrEnableIfNeeded):
64684         Leopard build fix; don't declare one of the case values twice
64685
64686 2007-01-15  Mitz Pettel  <mitz@webkit.org>
64687
64688         Reviewed by Darin.
64689
64690         - fix http://bugs.webkit.org/show_bug.cgi?id=8604
64691           rowspan does not work when set through javascript
64692
64693         Covered by existing tests.
64694
64695         * rendering/RenderTableCell.cpp:
64696         (WebCore::RenderTableCell::updateFromElement): Mark the section for grid recalc
64697         if row span or column span change.
64698
64699 2007-01-15  Adam Roben  <aroben@apple.com>
64700
64701         Reviewed by Darin.
64702
64703         Small context menu fixes.
64704
64705         * platform/ContextMenu.cpp:
64706         (WebCore::ContextMenu::populate): Fix typo.
64707         (WebCore::ContextMenu::checkOrEnableIfNeeded): Disabled "No Guesses
64708         Found", and added all enum values explicitly.
64709
64710 2007-01-15  Alexey Proskuryakov  <ap@webkit.org>
64711
64712         Reviewed by Darin.
64713
64714         http://bugs.webkit.org/show_bug.cgi?id=6272
64715         XMLHttpRequest freezes on getting a missing document with overridden Content-Length
64716
64717         http://bugs.webkit.org/show_bug.cgi?id=6212
64718         Investigate disallowing some XMLHttpRequest headers from being set via setRequestHeader.
64719
64720         Tests:
64721         - http/tests/xmlhttprequest/connection-error-sync.html
64722         - http/tests/xmlhttprequest/set-dangerous-headers.html
64723
64724         * bindings/js/kjs_binding.cpp:
64725         (KJS::):
64726         (KJS::setDOMException): Added support for NETWORK_ERR. Changed the temporary 
64727         PERMISSION_DENIED error into a special case.
64728
64729         * loader/FrameLoader.cpp:
64730         (WebCore::FrameLoader::loadResourceSynchronously):
64731         * loader/FrameLoader.h:
64732         Return the error object to the caller. Removed an extra local variable for error, 
64733         which shadowed the one from enclosing block.
64734
64735         * dom/XMLTokenizer.cpp:
64736         (WebCore::openFunc): 
64737         * xml/XSLTProcessor.cpp:
64738         (WebCore::docLoaderFunc): 
64739         Updated to pass an error object (currently ignored).
64740
64741         * xml/xmlhttprequest.cpp:
64742         (WebCore::canSetRequestHeader): Added. The headers to block include the ones from 
64743         the current XMLHttpRequest draft plus "Via", which is blocked by Firefox.
64744         (WebCore::XMLHttpRequest::send): Raise an exception if a sync request results in 
64745         an error.
64746         (WebCore::XMLHttpRequest::setRequestHeader): Call canSetRequestHeader().
64747         * xml/xmlhttprequest.h:
64748         (WebCore::): Added NETWORK_ERR and a comment about PERMISSION_DENIED.
64749
64750 2007-01-15  Zack Rusin  <zack@kde.org>
64751
64752         Optimizing rendering on the Qt platform. Mainly
64753         switching from client side QImage to QPixmap's.
64754         Also cleaning the the ScrollViewCanvasQt code
64755         quite a bit.
64756
64757         * platform/graphics/ImageSource.h: use QPixmap
64758         * platform/graphics/qt/GraphicsContextQt.cpp:
64759         (WebCore::TransparencyLayer::TransparencyLayer):
64760         (WebCore::GraphicsContext::clip): clip rects when you can
64761         * platform/graphics/qt/ImageDecoderQt.cpp:
64762         (WebCore::ImageDecoderQt::ImageData::ImageData):
64763         (WebCore::ImageDecoderQt::ReadContext::read):
64764         (WebCore::ImageDecoderQt::ReadContext::readImageLines):
64765         (WebCore::ImageDecoderQt::imageAtIndex):
64766         * platform/graphics/qt/ImageDecoderQt.h: use QPixmap
64767         * platform/graphics/qt/ImageQt.cpp: QPixmap instead of QImage
64768         (WebCore::BitmapImage::draw):
64769         (WebCore::BitmapImage::drawTiled):
64770         * platform/graphics/qt/ImageSourceQt.cpp:
64771         (WebCore::):
64772         (WebCore::ImageSource::createFrameAtIndex):
64773         (WebCore::ImageSource::frameHasAlphaAtIndex):
64774         * platform/qt/ScrollViewCanvasQt.cpp: clean up
64775         (WebCore::ScrollViewCanvasQt::ScrollViewCanvasQt):
64776         (WebCore::ScrollViewCanvasQt::updateFrameView):
64777         (WebCore::ScrollViewCanvasQt::paintEvent):
64778         (WebCore::ScrollViewCanvasQt::mouseMoveEvent):
64779         (WebCore::ScrollViewCanvasQt::mousePressEvent):
64780         (WebCore::ScrollViewCanvasQt::mouseReleaseEvent):
64781         (WebCore::ScrollViewCanvasQt::handleKeyEvent):
64782         * platform/qt/ScrollViewCanvasQt.h:
64783         * platform/qt/ScrollViewQt.cpp: remove hacks
64784         (WebCore::ScrollView::ScrollView):
64785         (WebCore::ScrollView::setParentWidget):
64786         (WebCore::ScrollView::updateContents):
64787
64788 2007-01-15  Lars Knoll <lars@trolltech.com>
64789
64790         Reviewed by Zack
64791
64792         Fix weird crashes when running the layout tests. The
64793         reason was that I used KURL (and thus DeprecatedString)
64794         in a thread. Unfortunately that class is not threadsafe
64795         at all.
64796
64797         * platform/network/qt/ResourceHandleManagerQt.cpp:
64798         (WebCore::RequestQt::RequestQt):
64799         (WebCore::RequestQt::setURL):
64800         (WebCore::ResourceHandleManager::add):
64801         (WebCore::ResourceHandleManager::cancel):
64802         (WebCore::ResourceHandleManager::receivedResponse):
64803         (WebCore::FileLoader::request):
64804         (WebCore::HostInfo::HostInfo):
64805         (WebCore::NetworkLoader::request):
64806         (WebCore::NetworkLoader::cancel):
64807         * platform/network/qt/ResourceHandleManagerQt.h:
64808         (WebCore::HostInfo::HostInfo):
64809         (WebCore::HostInfo::isLocalFile):
64810
64811 2007-01-15  Eric Seidel  <eric@webkit.org>
64812
64813         Reviewed by rwlbuis.
64814
64815         Make isValid check not malloc 3 SVGStringLists for every element.
64816         
64817         No test possible, performance fix only.
64818
64819         * ksvg2/svg/SVGTests.cpp:
64820         (WebCore::SVGTests::isValid):
64821
64822 2007-01-15  Rob Buis  <buis@kde.org>
64823
64824         Reviewed by Eric.
64825
64826         Remove unused member var.
64827
64828         * ksvg2/svg/SVGStyledElement.h:
64829
64830 2007-01-15  Rob Buis  <buis@kde.org>
64831
64832         Reviewed by Eric.
64833
64834         http://bugs.webkit.org/show_bug.cgi?id=12069
64835         Hit detection fails under some viewbox constraints
64836
64837         Do not take viewBox into account when hit testing svg container.
64838
64839         * rendering/RenderSVGContainer.cpp:
64840         (WebCore::RenderSVGContainer::nodeAtPoint):
64841
64842 2007-01-15  David Hyatt  <hyatt@apple.com>
64843
64844         Fix  for 12275, negative margins confuse page breaks.
64845
64846         Reviewed by Eric
64847
64848         * rendering/RenderBlock.cpp:
64849         (WebCore::RenderBlock::paintChildren):
64850
64851 2007-01-15  Eric Seidel  <eric@webkit.org>
64852
64853         Reviewed by mjs.
64854         
64855         SVG gradients do not notice stop additions
64856         http://bugs.webkit.org/show_bug.cgi?id=12192
64857
64858         Test: svg/custom/gradient-add-stops.svg
64859
64860         * ksvg2/svg/SVGGradientElement.cpp:
64861         (WebCore::SVGGradientElement::childrenChanged):
64862         * ksvg2/svg/SVGGradientElement.h:
64863
64864 2007-01-14  David Hyatt  <hyatt@apple.com>
64865
64866         Fix for bug 10356, positioning doesn't work with <svg> elements in XHTML.  Change the requiresLayer
64867         check to use the DOM, since the old check would fail if the parent block had no element.
64868
64869         Reviewed by Eric
64870
64871         Added svg/custom/relative-positioning.html (absolute/fixed too)
64872
64873         * rendering/RenderSVGContainer.cpp:
64874         (WebCore::RenderSVGContainer::requiresLayer):
64875
64876 2007-01-14  Eric Seidel  <eric@webkit.org>
64877
64878         Reviewed by hyatt.
64879         
64880         SVG does not correctly handle float: left
64881         http://bugs.webkit.org/show_bug.cgi?id=12210
64882
64883         Test: svg/custom/svg-float-border-padding.xml
64884
64885         * rendering/RenderSVGContainer.cpp:
64886         (WebCore::RenderSVGContainer::paint):
64887
64888 2007-01-14  David Hyatt  <hyatt@apple.com>
64889
64890         More work to fix 10145, regression where form elements don't break properly.  Make sure to really use
64891         the parent of the replaced element's whitespace value everywhere.
64892
64893         Reviewed by olliej
64894
64895         fast/replaced/three-selects-break.html
64896
64897         * rendering/bidi.cpp:
64898         (WebCore::RenderBlock::findNextLineBreak):
64899
64900 2007-01-14  Sam Weinig  <sam@webkit.org>
64901
64902         Reviewed by Darin and then by Mitz.
64903
64904         Patch for http://bugs.webkit.org/show_bug.cgi?id=12228
64905         Cleanup assorted CSS classes
64906
64907         * css/CSSBorderImageValue.cpp:
64908         (WebCore::CSSBorderImageValue::CSSBorderImageValue):
64909         (WebCore::CSSBorderImageValue::cssText):
64910         * css/CSSBorderImageValue.h:
64911         * css/CSSComputedStyleDeclaration.cpp:
64912         (WebCore::valueForLength):
64913         (WebCore::valueForBorderStyle):
64914         (WebCore::valueForTextAlign):
64915         (WebCore::valueForShadow):
64916         (WebCore::getPositionOffsetValue):
64917         (WebCore::CSSComputedStyleDeclaration::cssText):
64918         (WebCore::primitiveValueFromLength):
64919         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
64920         (WebCore::CSSComputedStyleDeclaration::getPropertyPriority):
64921         (WebCore::CSSComputedStyleDeclaration::removeProperty):
64922         (WebCore::CSSComputedStyleDeclaration::setProperty):
64923         (WebCore::CSSComputedStyleDeclaration::length):
64924         (WebCore::CSSComputedStyleDeclaration::item):
64925         * css/CSSComputedStyleDeclaration.h:
64926         * css/CSSCursorImageValue.cpp:
64927         (WebCore::CSSCursorImageValue::CSSCursorImageValue):
64928         * css/CSSCursorImageValue.h:
64929         * css/CSSGrammar.y:
64930         * css/CSSImageValue.cpp:
64931         * css/CSSImageValue.h:
64932         * css/CSSInheritedValue.cpp:
64933         * css/CSSInheritedValue.h:
64934         * css/CSSInitialValue.cpp:
64935         * css/CSSInitialValue.h:
64936         * css/CSSMutableStyleDeclaration.cpp:
64937         (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
64938         (WebCore::CSSMutableStyleDeclaration::operator=):
64939         (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
64940         (WebCore::CSSMutableStyleDeclaration::get4Values):
64941         (WebCore::CSSMutableStyleDeclaration::getShorthandValue):
64942         (WebCore::CSSMutableStyleDeclaration::getPropertyCSSValue):
64943         (WebCore::CSSMutableStyleDeclaration::removeProperty):
64944         (WebCore::CSSMutableStyleDeclaration::setChanged):
64945         (WebCore::CSSMutableStyleDeclaration::getPropertyPriority):
64946         (WebCore::CSSMutableStyleDeclaration::getPropertyShorthand):
64947         (WebCore::CSSMutableStyleDeclaration::isPropertyImplicit):
64948         (WebCore::CSSMutableStyleDeclaration::setProperty):
64949         (WebCore::CSSMutableStyleDeclaration::setImageProperty):
64950         (WebCore::CSSMutableStyleDeclaration::parseDeclaration):
64951         (WebCore::CSSMutableStyleDeclaration::addParsedProperties):
64952         (WebCore::CSSMutableStyleDeclaration::setLengthProperty):
64953         (WebCore::CSSMutableStyleDeclaration::cssText):
64954         (WebCore::CSSMutableStyleDeclaration::merge):
64955         (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet):
64956         * css/CSSMutableStyleDeclaration.h:
64957         (WebCore::CSSMutableStyleDeclaration::setProperty):
64958         (WebCore::CSSMutableStyleDeclaration::removeProperty):
64959         * css/CSSNamespace.h:
64960         (WebCore::CSSNamespace::CSSNamespace):
64961         * css/CSSPrimitiveValue.cpp:
64962         (WebCore::isCSSTokenizerIdentifier):
64963         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
64964         (WebCore::CSSPrimitiveValue::cleanup):
64965         (WebCore::CSSPrimitiveValue::computeLengthInt):
64966         (WebCore::CSSPrimitiveValue::computeLengthIntForLength):
64967         (WebCore::CSSPrimitiveValue::computeLengthShort):
64968         (WebCore::CSSPrimitiveValue::computeLengthFloat):
64969         (WebCore::CSSPrimitiveValue::setFloatValue):
64970         (WebCore::scaleFactorForConversion):
64971         (WebCore::CSSPrimitiveValue::getFloatValue):
64972         (WebCore::CSSPrimitiveValue::setStringValue):
64973         (WebCore::CSSPrimitiveValue::getStringValue):
64974         (WebCore::CSSPrimitiveValue::parseString):
64975         (WebCore::CSSPrimitiveValue::getIdent):
64976         (WebCore::CSSPrimitiveValue::cssText):
64977         * css/CSSPrimitiveValue.h:
64978         (WebCore::CSSPrimitiveValue::getCounterValue):
64979         (WebCore::CSSPrimitiveValue::getRectValue):
64980         (WebCore::CSSPrimitiveValue::getRGBColorValue):
64981         (WebCore::CSSPrimitiveValue::getPairValue):
64982         (WebCore::CSSPrimitiveValue::getDashboardRegionValue):
64983         * css/CSSProperty.cpp:
64984         (WebCore::operator==):
64985         * css/CSSProperty.h:
64986         (WebCore::CSSProperty::operator=):
64987         * css/CSSQuirkPrimitiveValue.h:
64988         (WebCore::CSSQuirkPrimitiveValue::CSSQuirkPrimitiveValue):
64989         * css/CSSRuleList.cpp:
64990         (WebCore::CSSRuleList::CSSRuleList):
64991         (WebCore::CSSRuleList::deleteRule):
64992         (WebCore::CSSRuleList::insertRule):
64993         * css/CSSRuleList.h:
64994         (WebCore::CSSRuleList::item):
64995         * css/CSSSelector.cpp:
64996         (WebCore::CSSSelector::print):
64997         (WebCore::CSSSelector::specificity):
64998         (WebCore::CSSSelector::extractPseudoType):
64999         (WebCore::CSSSelector::operator==):
65000         (WebCore::CSSSelector::selectorText):
65001         * css/CSSSelector.h:
65002         (WebCore::CSSSelector::CSSSelector):
65003         (WebCore::CSSSelector::~CSSSelector):
65004         (WebCore::CSSSelector::append):
65005         (WebCore::CSSSelector::next):
65006         (WebCore::CSSSelector::pseudoType):
65007         (WebCore::CSSSelector::hasTag):
65008         (WebCore::CSSSelector::hasAttribute):
65009         * css/CSSStyleDeclaration.cpp:
65010         (WebCore::propertyID):
65011         (WebCore::CSSStyleDeclaration::getPropertyPriority):
65012         (WebCore::CSSStyleDeclaration::getPropertyShorthand):
65013         (WebCore::CSSStyleDeclaration::isPropertyImplicit):
65014         (WebCore::CSSStyleDeclaration::setProperty):
65015         (WebCore::CSSStyleDeclaration::isPropertyName):
65016         (WebCore::CSSStyleDeclaration::parentRule):
65017         (WebCore::CSSStyleDeclaration::diff):
65018         (WebCore::CSSStyleDeclaration::copyPropertiesInSet):
65019         * css/CSSStyleDeclaration.h:
65020         * css/Counter.h:
65021         (WebCore::Counter::Counter):
65022         (WebCore::Counter::listStyleNumber):
65023         * css/csshelper.cpp:
65024         (WebCore::parseURL):
65025         * css/csshelper.h:
65026         * css/cssparser.h:
65027         (WebCore::domString):
65028         (WebCore::atomicString):
65029         (WebCore::CSSParser::operator|):
65030         * css/cssstyleselector.cpp:
65031         (WebCore::CSSStyleSelector::matchRulesForList):
65032         (WebCore::CSSStyleSelector::checkSelector):
65033         (WebCore::CSSStyleSelector::checkOneSelector):
65034         (WebCore::CSSRuleSet::addRule):
65035
65036 2007-01-14  Mitz Pettel  <mitz@webkit.org>
65037
65038         Reviewed by Adam.
65039
65040         - fix http://bugs.webkit.org/show_bug.cgi?id=12264
65041           REGRESSION (r18843): Webkit crashes on 43Folders.com home page
65042
65043         Test: fast/tokenizer/ignore-tags-in-iframe.html
65044
65045         * html/HTMLParser.cpp:
65046         (WebCore::HTMLParser::reset): Removed unused inSelect member variable.
65047         (WebCore::HTMLParser::selectCreateErrorCheck): Ditto.
65048         (WebCore::HTMLParser::processCloseTag): Ditto.
65049         * html/HTMLParser.h: Ditto.
65050         * html/HTMLTokenizer.cpp:
65051         (WebCore::HTMLTokenizer::parseTag): Changed not to process <pre>, <listing>,
65052         <script>, <style>, <title>, <textarea> and <xmp> if the parser is in skip mode
65053         (waiting for a close tag of an element whose contents are not parsed,
65054         such as iframe).
65055         * html/HTMLTokenizer.h:
65056         (WebCore::HTMLTokenizer::State::setInStyle): Removed unused bit.
65057         (WebCore::HTMLTokenizer::State::): Ditto.
65058
65059 2007-01-14  Alexey Proskuryakov  <ap@webkit.org>
65060
65061         Reviewed by Darin.
65062
65063         http://bugs.webkit.org/show_bug.cgi?id=12258
65064         fast/tokenizer/002 test broken
65065
65066         * loader/FrameLoader.h: Added a flush parameter to write().
65067         * loader/FrameLoader.cpp:
65068         (WebCore::FrameLoader::write): Ditto.
65069         (WebCore::FrameLoader::endIfNotLoading): Instead of poorly duplicating the logic in write(),
65070         call it directly.
65071
65072 2007-01-14  Adam Roben  <aroben@apple.com>
65073
65074         Reviewed by Maciej.
65075
65076         Make sure our whitelisting of the type and language attributes of the
65077         <script> element is enforced in all HTMLTokenizer/HTMLScriptElement
65078         code paths.
65079
65080         All layout tests pass.
65081
65082         * html/HTMLScriptElement.cpp:
65083         (WebCore::HTMLScriptElement::shouldExecuteAsJavaScript): New method to
65084         determine whether the script should be executed, given its type and
65085         language attributes.
65086         (WebCore::HTMLScriptElement::evaluateScript): Check type/language
65087         before executing.
65088         * html/HTMLScriptElement.h: Added new declarations.
65089         * html/HTMLTokenizer.cpp:
65090         (WebCore::HTMLTokenizer::begin): Made scriptSrc a String. 
65091         (WebCore::HTMLTokenizer::scriptHandler): Check
65092         shouldExecuteAsJavaScript before executing.
65093         (WebCore::HTMLTokenizer::notifyFinished): Ditto.
65094         (WebCore::HTMLTokenizer::parseTag): Moved type/language checking from
65095         here to HTMLScriptElement::shouldExecuteAsJavaScript.
65096         * html/HTMLTokenizer.h: Made scriptSrc a String, and removed the
65097         javascript member.
65098
65099 2007-01-14  David Hyatt  <hyatt@apple.com>
65100
65101         Make sure floats are avoided if you have non-auto column property values.  Fixes the crazy layout
65102         on http://weblogs.mozillazine.org/roc.
65103
65104         Reviewed by mitz
65105
65106         Added fast/multicol/float-avoidance.html
65107
65108         * rendering/RenderBlock.cpp:
65109         (WebCore::RenderBlock::avoidsFloats):
65110
65111 2007-01-14  David Hyatt  <hyatt@apple.com>
65112
65113         Fix for 10145, regression where line breaks are not being honored between adjacent replaced elements.
65114         When checking for break opportunities where replaced elements are involved, we ignore their white-space
65115         values and use their parents' instead.  The assumption/idea behind this change is that because the element
65116         is replaced, its white-space value is irrelevant except as a means of applying style to its interior.
65117
65118         The CSS spec does not cover this situation, so we're implementing this based off what other browsers seem to
65119         do.
65120
65121         Reviewed by aroben
65122
65123         * css/CSSComputedStyleDeclaration.cpp:
65124         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
65125         * css/CSSValueKeywords.in:
65126         * css/cssparser.cpp:
65127         (WebCore::CSSParser::parseValue):
65128         * css/cssstyleselector.cpp:
65129         (WebCore::CSSStyleSelector::applyProperty):
65130         * page/EventHandler.cpp:
65131         (WebCore::EventHandler::EventHandler):
65132         (WebCore::EventHandler::clear):
65133         (WebCore::EventHandler::handleWheelEvent):
65134         * page/EventHandler.h:
65135         * rendering/RenderBox.cpp:
65136         (WebCore::RenderBox::calcHeight):
65137         * rendering/RenderLayer.cpp:
65138         (WebCore::Marquee::Marquee):
65139         (WebCore::Marquee::start):
65140         (WebCore::Marquee::updateMarqueePosition):
65141         (WebCore::Marquee::updateMarqueeStyle):
65142         (WebCore::Marquee::timerFired):
65143         * rendering/RenderLayer.h:
65144         * rendering/RenderPartObject.cpp:
65145         (WebCore::RenderPartObject::viewCleared):
65146         * rendering/RenderStyle.h:
65147         (WebCore::):
65148         * rendering/bidi.cpp:
65149         (WebCore::RenderBlock::findNextLineBreak):
65150
65151 2007-01-13  David Hyatt  <hyatt@apple.com>
65152
65153         While optimizing form controls and fixing their clipping, I caused this text zoom regression.  The layout
65154         of text is necessary because it needs to recalc minmaxwidth.  This is still a really unfortunate
65155         bit of code... since a lot of properties don't apply to text (e.g., borders), we're marking text renderers
65156         as dirty when we don't have to.
65157
65158         Reviewed by mitz
65159
65160         * rendering/RenderObject.cpp:
65161         (WebCore::RenderObject::setStyle):
65162
65163 2007-01-13  Lars Knoll <lars@trolltech.com>
65164
65165         Reviewed by Alexey
65166
65167         String::format() was relying on undefined behaviour, which
65168         happened to work on lots of systems (Mac and 32bit Linux at least)
65169         but broke badly on 64bit Linux.
65170         
65171         * platform/String.cpp:
65172         (WebCore::String::format):
65173
65174 2007-01-13  Martin Reddy  <reddy@pixar.com>
65175
65176         Fix for bug 11924: WebCore would crash on any HTML content
65177         with a non-empty <table> tag in it on a 64-bit machine. The
65178         size_t (64bit) vs int (32bit) cast is now fixed in ensureRows,
65179         and the clients of this function have been updated to check
65180         for a false return code.
65181
65182         Reviewed by Darin, landed by Lars
65183
65184         * rendering/RenderTableSection.cpp:
65185         (WebCore::RenderTableSection::addChild):
65186         (WebCore::RenderTableSection::ensureRows):
65187         (WebCore::RenderTableSection::recalcCells):
65188
65189 2007-01-13  Alexey Proskuryakov  <ap@webkit.org>
65190
65191         Reviewed by Darin.
65192
65193         http://bugs.webkit.org/show_bug.cgi?id=12165
65194         REGRESSION: text encoding problem at jn.sapo.pt
65195
65196         Test: fast/encoding/script-in-head.html
65197
65198         * loader/TextResourceDecoder.cpp:
65199         (WebCore::TextResourceDecoder::checkForHeadCharset):
65200         Ignore tags within <script> elements in head, just like we do for <title>.
65201
65202 2007-01-13  Lars Knoll <lars@trolltech.com>
65203
65204         Reviewed by Maciej
65205
65206         Don't crash when constructing a GraphicsContext with a 0
65207         PlatformGraphicsContext and don't do anything if painting
65208         is disabled.
65209
65210         * platform/graphics/qt/GraphicsContextQt.cpp:
65211         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
65212         (WebCore::GraphicsContext::origin):
65213         (WebCore::GraphicsContext::setPlatformFont):
65214         (WebCore::GraphicsContext::setPlatformStrokeColor):
65215         (WebCore::GraphicsContext::setPlatformStrokeStyle):
65216         (WebCore::GraphicsContext::setPlatformStrokeThickness):
65217         (WebCore::GraphicsContext::setPlatformFillColor):
65218
65219 2007-01-13  Eric Seidel  <eric@webkit.org>
65220
65221         Reviewed by hyatt.
65222
65223         RichDraw demo does not live-update in Safari
65224         (SVG elements should ignore CSS position)
65225         http://bugs.webkit.org/show_bug.cgi?id=10364
65226
65227         * css/cssstyleselector.cpp:
65228         (WebCore::CSSStyleSelector::adjustRenderStyle): ignore position for everything but <svg>
65229         * ksvg2/svg/SVGStyledElement.cpp:
65230         (WebCore::SVGStyledElement::rebuildRenderer): move path generation into layout()
65231         * rendering/RenderContainer.cpp:
65232         (WebCore::RenderContainer::layout): ASSERT kids marked as having completed layout
65233         * rendering/RenderPath.cpp:
65234         (WebCore::RenderPath::layout): move path generation into layout()
65235         * rendering/RenderSVGContainer.cpp:
65236         (WebCore::RenderSVGContainer::layout): ASSERT kids marked as having completed layout
65237
65238 2007-01-12  David Hyatt  <hyatt@apple.com>
65239
65240         Add support for column rules.
65241
65242         Reviewed by bdash
65243
65244         fast/multicol/column-rules.html
65245
65246         * rendering/RenderBlock.cpp:
65247         (WebCore::RenderBlock::paintColumns):
65248         * rendering/RenderStyle.h:
65249         (WebCore::RenderStyle::columnRuleIsTransparent):
65250
65251 2007-01-12  David Hyatt  <hyatt@apple.com>
65252
65253         Make multicolumn layout work with floats.
65254
65255         Reviewed by andersca
65256
65257         Added fast/multicol/float-multicol.html
65258
65259         * rendering/RenderBlock.cpp:
65260         (WebCore::RenderBlock::layoutBlock):
65261         (WebCore::RenderBlock::paintColumns):
65262         (WebCore::RenderBlock::paintObject):
65263         * rendering/RenderBlock.h:
65264
65265 2007-01-12  David Kilzer  <ddkilzer@kilzer.net>
65266
65267         Reviewed by Maciej.
65268
65269         - fix http://bugs.webkit.org/show_bug.cgi?id=12239
65270           REGRESSION (r18816-r18818): Assertion failure in 
65271           WebCore::Length::Length[in-charge](int, WebCore::LengthType, bool)
65272
65273         Test: fast/css/line-height.html
65274
65275         * rendering/RenderTextControl.cpp:
65276         (WebCore::RenderTextControl::createInnerTextStyle): Use a float to create a percent Length.
65277
65278 2007-01-12  Anders Carlsson  <acarlsson@apple.com>
65279
65280         Reviewed by Darin.
65281
65282         Use unsigned long for identifiers instead of Objective-C objects.
65283         
65284         * loader/FrameLoader.cpp:
65285         (WebCore::FrameLoader::loadResourceSynchronously):
65286         (WebCore::FrameLoader::startLoadingMainResource):
65287         (WebCore::FrameLoader::startLoading):
65288         (WebCore::FrameLoader::assignIdentifierToInitialRequest):
65289         (WebCore::FrameLoader::opened):
65290         (WebCore::FrameLoader::sendRemainingDelegateMessages):
65291         (WebCore::FrameLoader::requestFromDelegate):
65292         (WebCore::FrameLoader::loadedResourceFromMemoryCache):
65293         * loader/FrameLoader.h:
65294         * loader/FrameLoaderClient.h:
65295         * loader/ResourceLoader.cpp:
65296         (WebCore::ResourceLoader::ResourceLoader):
65297         (WebCore::ResourceLoader::willSendRequest):
65298         * loader/ResourceLoader.h:
65299         (WebCore::ResourceLoader::setIdentifier):
65300         (WebCore::ResourceLoader::identifier):
65301         * page/Page.cpp:
65302         (WebCore::Page::Page):
65303         (WebCore::Page::createUniqueIdentifier):
65304         * page/Page.h:
65305         * platform/graphics/svg/SVGImageEmptyClients.h:
65306         (WebCore::SVGEmptyFrameLoaderClient::assignIdentifierToInitialRequest):
65307         (WebCore::SVGEmptyFrameLoaderClient::dispatchWillSendRequest):
65308         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
65309         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidCancelAuthenticationChallenge):
65310         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveResponse):
65311         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveContentLength):
65312         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidFinishLoading):
65313         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidFailLoading):
65314         (WebCore::SVGEmptyFrameLoaderClient::incrementProgress):
65315         (WebCore::SVGEmptyFrameLoaderClient::completeProgress):
65316
65317 2007-01-12  Mitz Pettel  <mitz@webkit.org>
65318
65319         Reviewed by Darin.
65320
65321         - fix http://bugs.webkit.org/show_bug.cgi?id=12235
65322           REGRESSION (r18815): Marquees do not scroll
65323
65324         * css/cssstyleselector.cpp:
65325         (WebCore::CSSStyleSelector::applyProperty): Apply the '-webkit-marquee' value
65326         of 'overflow-x' and 'overflow-y'.
65327
65328 2007-01-12  Justin Garcia  <justin.garcia@apple.com>
65329
65330         Reviewed by hyatt
65331         
65332         <rdar://problem/4875425>
65333         EBay, GMail, and GoogleDocs RTEs font size popups don't work
65334
65335         Changed execCommand("FontSize", ...) to match the spec 
65336         and the behavior of other browsers.  It expects a number, 
65337         n, which, the spec says can be 1 through 7.  Other browsers 
65338         perform the font size change by creating a font element 
65339         wrapper with size="n".  We convert n into one of the absolute 
65340         size CSS keywords (x-small, medium, etc.).
65341
65342         * editing/JSEditor.cpp: Call cssValueFromFontSizeNumber.  If
65343         successful, perform the style change.
65344         * html/HTMLFontElement.cpp:
65345         (WebCore::HTMLFontElement::cssValueFromFontSizeNumber):  Added.
65346         Moved this code from parsedMappedAttribute so that it could be
65347         called from the Editor.
65348         (WebCore::HTMLFontElement::parseMappedAttribute): Moved code into
65349         cssValueFromFontSizeNumber.
65350         * html/HTMLFontElement.h:
65351
65352 2007-01-12  David Hyatt  <hyatt@apple.com>
65353
65354         Fix for bug 11598, implement lightweight control clipping mechanism for
65355         buttons, list boxes, and dropdown lists.  Make sure list box respects
65356         scrollLeft/Top/Width/Height as well as clientWidth/Height.
65357
65358         Fix bugs in RenderStyle::diff.  CursorData was not being compared properly.
65359         vertical-align had a non-inline display check that was wrong (preventing
65360         dynamic changes to keyword-based vertical-align from working).
65361
65362         Reviewed by mitz
65363
65364         * page/EventHandler.cpp:
65365         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
65366         * rendering/RenderBlock.cpp:
65367         (WebCore::RenderBlock::layout):
65368         (WebCore::RenderBlock::layoutBlock):
65369         (WebCore::RenderBlock::determineHorizontalPosition):
65370         (WebCore::RenderBlock::layoutBlockChildren):
65371         (WebCore::RenderBlock::paint):
65372         (WebCore::RenderBlock::fillHorizontalSelectionGap):
65373         (WebCore::RenderBlock::nodeAtPoint):
65374         (WebCore::RenderBlock::layoutColumns):
65375         * rendering/RenderBox.cpp:
65376         (WebCore::RenderBox::computeAbsoluteRepaintRect):
65377         * rendering/RenderBox.h:
65378         * rendering/RenderButton.cpp:
65379         (WebCore::RenderButton::setStyle):
65380         (WebCore::RenderButton::controlClipRect):
65381         * rendering/RenderButton.h:
65382         (WebCore::RenderButton::hasControlClip):
65383         * rendering/RenderFlexibleBox.cpp:
65384         (WebCore::RenderFlexibleBox::layoutBlock):
65385         (WebCore::RenderFlexibleBox::layoutHorizontalBox):
65386         (WebCore::RenderFlexibleBox::layoutVerticalBox):
65387         * rendering/RenderFlow.cpp:
65388         (WebCore::RenderFlow::addFocusRingRects):
65389         * rendering/RenderListBox.cpp:
65390         (WebCore::RenderListBox::itemBoundingBoxRect):
65391         (WebCore::RenderListBox::paintObject):
65392         (WebCore::RenderListBox::itemHeight):
65393         (WebCore::RenderListBox::verticalScrollbarWidth):
65394         (WebCore::RenderListBox::scrollWidth):
65395         (WebCore::RenderListBox::scrollHeight):
65396         (WebCore::RenderListBox::scrollLeft):
65397         (WebCore::RenderListBox::setScrollLeft):
65398         (WebCore::RenderListBox::scrollTop):
65399         (WebCore::RenderListBox::setScrollTop):
65400         (WebCore::RenderListBox::controlClipRect):
65401         * rendering/RenderListBox.h:
65402         (WebCore::RenderListBox::hasControlClip):
65403         * rendering/RenderMenuList.cpp:
65404         (WebCore::RenderMenuList::setStyle):
65405         (WebCore::RenderMenuList::controlClipRect):
65406         * rendering/RenderMenuList.h:
65407         (WebCore::RenderMenuList::hasControlClip):
65408         * rendering/RenderObject.cpp:
65409         (WebCore::RenderObject::verticalScrollbarWidth):
65410         (WebCore::RenderObject::horizontalScrollbarHeight):
65411         (WebCore::RenderObject::clientWidth):
65412         (WebCore::RenderObject::clientHeight):
65413         (WebCore::RenderObject::setStyle):
65414         * rendering/RenderObject.h:
65415         (WebCore::RenderObject::hasControlClip):
65416         (WebCore::RenderObject::controlClipRect):
65417         (WebCore::RenderObject::contentWidth):
65418         (WebCore::RenderObject::contentHeight):
65419         * rendering/RenderStyle.cpp:
65420         (WebCore::StyleVisualData::StyleVisualData):
65421         (WebCore::cursorDataEqvuialent):
65422         (WebCore::StyleInheritedData::operator==):
65423         (WebCore::CursorList::operator==):
65424         (WebCore::RenderStyle::diff):
65425         * rendering/RenderStyle.h:
65426         (WebCore::LengthBox::operator!=):
65427         (WebCore::StyleVisualData::operator==):
65428         (WebCore::CursorData::operator==):
65429         (WebCore::CursorData::operator!=):
65430         (WebCore::CursorList::operator!=):
65431         (WebCore::RenderStyle::setTableLayout):
65432         * rendering/bidi.cpp:
65433         (WebCore::RenderBlock::layoutInlineChildren):
65434
65435 2007-01-12  David Hyatt  <hyatt@apple.com>
65436
65437         Fix for bug 9934, smaller line heights should not be allowed on
65438         text fields.
65439
65440         Reviewed by darin
65441
65442         * rendering/RenderTextControl.cpp:
65443         (WebCore::RenderTextControl::createInnerTextStyle):
65444
65445 2007-01-12  Mitz Pettel  <mitz@webkit.org>
65446
65447         Reviewed by Hyatt.
65448
65449         - http://bugs.webkit.org/show_bug.cgi?id=12215
65450           Treat 'overflow' and '-webkit-border-radius' as shorthands when parsing and
65451           when removing.
65452
65453         Test: fast/css/remove-shorthand.html (updated)
65454
65455         * css/CSSMutableStyleDeclaration.cpp:
65456         (WebCore::initShorthandMap):
65457         * css/cssparser.cpp:
65458         (WebCore::CSSParser::parseValue):
65459
65460 2007-01-12  Rob Buis  <buis@kde.org>
65461
65462         Reviewed by Mitz.
65463
65464         Do not mix up JSSVGPolygonElement and JSSVGPolylineElement.
65465
65466         * bindings/js/JSSVGElementWrapperFactory.cpp:
65467
65468 2007-01-12  Kevin Decker <kdecker@apple.com>
65469
65470         Reviewed by andersca.
65471
65472         Fixed: <rdar://problem/4701326>21.2 ms launch time regression spent in +[WebPluginDatabase installedPlugins]
65473
65474         * dom/DOMImplementation.cpp:
65475         (WebCore::DOMImplementation::createDocument): Added a guard clause for text/html which used to be in WebKit before a lot of the 
65476         loader plumbing was moved to WebCore.  Pinging the plug-in database to ask it if it supports a given mime type has the side 
65477         effect of reading from disk on first call, therefore such a check should be a last resort.  
65478
65479 2007-01-12  Mitz Pettel  <mitz@webkit.org>
65480
65481         Reviewed by Darin.
65482
65483         - fix http://bugs.webkit.org/show_bug.cgi?id=12223
65484           REGRESSION: Leaks under CSSStyleSelector::applyProperty
65485
65486         No test possible (no change to functionality).
65487
65488         * rendering/RenderObject.h: Removed unused forward declaration.
65489         * rendering/RenderStyle.cpp:
65490         (WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData):
65491         Delete shadow data.
65492
65493 2007-01-12  Anders Carlsson  <acarlsson@apple.com>
65494
65495         Build fix.
65496         
65497         * WebCore.xcodeproj/project.pbxproj:
65498         Remove SubresourceLoaderMac.mm.
65499         
65500 2007-01-12  Lars Knoll <lars@trolltech.com>
65501
65502         Reviewed by Darin and Anders.
65503
65504         Make some more of the loader code platform independent.
65505
65506         * loader/FrameLoader.cpp:
65507         (WebCore::FrameLoader::clear):
65508         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
65509         (WebCore::FrameLoader::urlSelected):
65510         (WebCore::FrameLoader::createEmptyDocument):
65511         (WebCore::FrameLoader::setTitle):
65512         (WebCore::FrameLoader::originalRequestURL):
65513         (WebCore::FrameLoader::referrer):
65514         * loader/SubresourceLoader.cpp:
65515         (WebCore::SubresourceLoader::SubresourceLoader):
65516         (WebCore::SubresourceLoader::load):
65517         (WebCore::SubresourceLoader::create):
65518         (WebCore::SubresourceLoader::willSendRequest):
65519         (WebCore::SubresourceLoader::didReceiveResponse):
65520         (WebCore::SubresourceLoader::didReceiveData):
65521         (WebCore::SubresourceLoader::didFinishLoading):
65522         (WebCore::SubresourceLoader::didFail):
65523         (WebCore::SubresourceLoader::didCancel):
65524         (WebCore::SubresourceLoader::stopLoading):
65525         * loader/SubresourceLoader.h:
65526         * loader/mac/FrameLoaderMac.mm:
65527         * loader/mac/SubresourceLoaderMac.mm: Removed.
65528         * loader/qt/FrameLoaderQt.cpp:
65529
65530 2007-01-12  Lars Knoll <lars@trolltech.com>
65531
65532         Reviewed by Zack
65533
65534         Valgrind reported uninitialized variable.
65535
65536         * platform/network/qt/ResourceHandleManagerQt.cpp:
65537         (WebCore::FileLoader::request):
65538
65539 2007-01-12  Mitz Pettel  <mitz@webkit.org>
65540
65541         Reviewed by rwlbuis.
65542
65543         - add missing null check in new fixed table layout code
65544
65545         * rendering/FixedTableLayout.cpp:
65546         (WebCore::FixedTableLayout::calcWidthArray):
65547
65548 2007-01-12  Lars Knoll <lars@trolltech.com>
65549
65550         Fix the Qt build after the Authenitcation changes.
65551
65552         * WebCore.pro:
65553         * platform/network/ResourceHandleInternal.h:
65554
65555 2007-01-12  David Hyatt  <hyatt@apple.com>
65556
65557         Fix for bug 9569.  Make sure the selection offset for selection roots excludes border and padding.
65558
65559         Reviewed by Eric
65560
65561         * rendering/RenderBlock.cpp:
65562         (WebCore::RenderBlock::leftSelectionOffset):
65563         (WebCore::RenderBlock::rightSelectionOffset):
65564
65565 2007-01-11  David Hyatt  <hyatt@apple.com>
65566
65567         Fix for bug 8705, readonly text fields should not get focus rings.  Add a rule to that effect to
65568         html4.css and then also add readonly as a special case for style sharing so that we can retain the
65569         performance boost from sharing styles on inputs.
65570
65571         Reviewed by bdash
65572
65573         * css/cssstyleselector.cpp:
65574         (WebCore::CSSStyleSelector::canShareStyleWithElement):
65575         (WebCore::CSSStyleSelector::checkOneSelector):
65576         * css/html4.css:
65577
65578 2007-01-11  David Hyatt  <hyatt@apple.com>
65579
65580         Fix for bug 11595.  Autoscrolling of layers didn't really work at all unless the layer was coincidentally
65581         in the root layer's coordinate space.  The event point was an absolute position within the document, but
65582         the layer's rect was only local coords.  This patch makes sure to use absolute bounds for the layer
65583         when comparing it with the point.
65584
65585         This is covered by the scrollRevealButton test case already in the tree... the results change to be more
65586         correct.
65587
65588         Reviewed by ggaren
65589
65590         * rendering/RenderLayer.cpp:
65591         (WebCore::RenderLayer::scrollRectToVisible):
65592
65593 2007-01-11  Brady Eidson  <beidson@apple.com>
65594
65595         Reviewed by Oliver
65596
65597         -Move more HTTP Auth handling towards ResourceHandle, away from ResourceHandleClient
65598         -Make more of ResourceLoader cross-platform
65599
65600         * loader/ResourceLoader.cpp:
65601         (WebCore::ResourceLoader::ResourceLoader):
65602         (WebCore::ResourceLoader::releaseResources):
65603         (WebCore::ResourceLoader::didCancel):
65604         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
65605         (WebCore::ResourceLoader::didCancelAuthenticationChallenge):
65606         (WebCore::ResourceLoader::receivedCancellation):
65607         * loader/ResourceLoader.h:
65608         (WebCore::ResourceLoader::willStopBufferingData):
65609         (WebCore::ResourceLoader::didCancelAuthenticationChallenge):
65610         (WebCore::ResourceLoader::willCacheResponse):
65611         * loader/mac/ResourceLoaderMac.mm:
65612         * platform/network/ResourceHandle.h:
65613         * platform/network/ResourceHandleClient.h:
65614         (WebCore::ResourceHandleClient::willStopBufferingData):
65615         * platform/network/ResourceHandleInternal.h:
65616         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
65617         * platform/network/mac/ResourceHandleMac.mm:
65618         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
65619         (WebCore::ResourceHandle::didCancelAuthenticationChallenge):
65620         (WebCore::ResourceHandle::receivedCredential):
65621         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
65622         (WebCore::ResourceHandle::receivedCancellation):
65623         (WebCore::ResourceHandle::clearAuthentication):
65624         (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
65625         (-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]):
65626         (-[WebCoreResourceHandleAsDelegate useCredential:forAuthenticationChallenge:]):
65627         (-[WebCoreResourceHandleAsDelegate continueWithoutCredentialForAuthenticationChallenge:]):
65628         (-[WebCoreResourceHandleAsDelegate cancelAuthenticationChallenge:]):
65629
65630 2007-01-11  David Hyatt  <hyatt@apple.com>
65631
65632         A hit test is returning a null renderer.  Make sure to null-check it in the autoscroll code.
65633         This really shouldn't happen, but I'm just going to bullet proof for now given that it's happening
65634         on the front page of yahoo.com!
65635
65636         Reviewed by mark
65637
65638         * rendering/RenderLayer.cpp:
65639         (WebCore::RenderLayer::autoscroll):
65640
65641 2007-01-11  David Hyatt  <hyatt@apple.com>
65642
65643         Force column-width to parse in strict mode so that there is no confusion when it is used in the columns
65644         shorthand (it can be mistaken for column-count otherwise).
65645
65646         Reviewed by Mark
65647
65648         fast/multicol/columns-shorthand-parsing.html
65649
65650         * css/cssparser.cpp:
65651         (WebCore::CSSParser::parseValue):
65652
65653 2007-01-11  Mitz Pettel  <mitz@webkit.org>
65654
65655         Reviewed by Hyatt.
65656
65657         - fix http://bugs.webkit.org/show_bug.cgi?id=12124
65658           RenderTable::section{Above,Below}() can return the wrong answer for the {footer,header}
65659
65660         * rendering/RenderTable.cpp:
65661         (WebCore::resetSectionPointerIfNotBefore): Added this function to help with
65662         checking if a section being inserted is the going to be the first of its kind.
65663         (WebCore::RenderTable::addChild): Changed to maintain the pointers to the
65664         header, the footer, the caption and the first table body properly when objects
65665         are inserted in the middle. Also changed to make the first caption win over
65666         any other captions. This matches Firefox and what already used to happen when a
65667         section recalc took place.
65668         (WebCore::RenderTable::layout): Changed to use sectionBelow() for iterating
65669         over the sections from top to bottom.
65670         (WebCore::RenderTable::calcBorderLeft): Changed to really find the section
65671         containing the first row.
65672         (WebCore::RenderTable::calcBorderRight): Ditto.
65673         (WebCore::RenderTable::sectionAbove): Fixed a bug when the last section was
65674         skipped if the input was the footer.
65675         (WebCore::RenderTable::sectionBelow): Ditto for "first" and "header"
65676         respectively.
65677
65678 2007-01-11  Mitz Pettel  <mitz@webkit.org>
65679
65680         Reviewed by Hyatt.
65681
65682         - fix http://bugs.webkit.org/show_bug.cgi?id=12115
65683           RTL text is jumbled on display
65684
65685         Fixed fixed table layout. Implemented an algorithm that matches the behavior
65686         of Firefox, up to rounding errors.
65687
65688         Fixes three existing table tests.
65689
65690         * rendering/FixedTableLayout.cpp:
65691         Undid accidental search-and-replace of "width" to "m_width" in the comments.
65692         Removed an outdated comment, since WebKit no longer honors table-layout:fixed
65693         for variable-width tables.
65694         (WebCore::FixedTableLayout::calcWidthArray): Fixed the logic that finds the
65695         first row. Changed to divide the width specified for a cell that spans multiple
65696         columns between the columns rather than assign its entire width to each column.
65697         (WebCore::FixedTableLayout::calcMinMaxWidth):
65698         (WebCore::FixedTableLayout::layout): Implemented the behavior observed in
65699         Firefox.
65700         * rendering/FixedTableLayout.h:
65701
65702 2007-01-11  Mitz Pettel  <mitz@webkit.org>
65703
65704         Reviewed by Hyatt.
65705
65706         - fix http://bugs.webkit.org/show_bug.cgi?id=8438
65707           iExploder(#460): Assertion failure in RenderObject::drawBorder()
65708
65709         Test: fast/block/basic/fieldset-stretch-to-legend.html
65710
65711         * rendering/RenderBox.cpp:
65712         (WebCore::RenderBox::calcWidth): Stretch to the minimum intrinsic
65713         width if the object requires it.
65714         (WebCore::RenderBox::calcHorizontalMargins): Some style cleanup.
65715         (WebCore::RenderBox::calcAbsoluteHorizontal): Stretch to the minimum
65716         intrinsic width if the object requires it.
65717         * rendering/RenderBox.h:
65718         (WebCore::RenderBox::stretchesToMinIntrinsicWidth): Added. Returns false.
65719         * rendering/RenderFieldset.cpp:
65720         (WebCore::RenderFieldset::calcMinMaxWidth): Overloaded RenderBlock's
65721         implementation to ensure that the legend's will fit in the fieldset's
65722         minimum intrinsic width.
65723         (WebCore::RenderFieldset::findLegend): Made const.
65724         (WebCore::RenderFieldset::paintBoxDecorations):
65725         (WebCore::RenderFieldset::paintBorderMinusLegend): Fixed the behavior when
65726         the legend does overflow the fieldset. This is the part of the fix that
65727         prevents the assertion failure. If the legend intersects with a corner of
65728         the fieldset's border, that corner will not be painted, even if it is not
65729         completely occluded. This edge case can be improved with clipping in the
65730         future. Added FIXME to implement border-radius.
65731         * rendering/RenderFieldset.h:
65732         (WebCore::RenderFieldset::stretchesToMinIntrinsicWidth): Overloaded to
65733         return true.
65734
65735 2007-01-11  Brady Eidson  <beidson@apple.com>
65736
65737         Reviewed by Build Fix Karma
65738
65739         I broke the release build (debug build passed)
65740
65741         * platform/network/mac/AuthenticationMac.mm:
65742         (WebCore::core):
65743
65744 2007-01-11  Brady Eidson  <beidson@apple.com>
65745
65746         Reviewed by Anders
65747
65748         Rewrites HTTP Authentication setting up a more platform-independent structure
65749
65750         * WebCore.exp:
65751         * WebCore.xcodeproj/project.pbxproj:
65752         * loader/FrameLoader.cpp:
65753         (WebCore::FrameLoader::didReceiveAuthenticationChallenge):
65754         (WebCore::FrameLoader::didCancelAuthenticationChallenge):
65755         * loader/FrameLoader.h:
65756         * loader/FrameLoaderClient.h:
65757         * loader/ResourceLoader.cpp:
65758         (WebCore::ResourceLoader::ResourceLoader):
65759         (WebCore::ResourceLoader::didCancel):
65760         * loader/ResourceLoader.h:
65761         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
65762         (WebCore::ResourceLoader::didCancelAuthenticationChallenge):
65763         (WebCore::ResourceLoader::receivedCredential):
65764         (WebCore::ResourceLoader::receivedRequestToContinueWithoutCredential):
65765         (WebCore::ResourceLoader::receivedCancellation):
65766         * loader/mac/FrameLoaderMac.mm:
65767         * loader/mac/ResourceLoaderMac.mm:
65768         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
65769         (WebCore::ResourceLoader::didCancelAuthenticationChallenge):
65770         (WebCore::ResourceLoader::receivedCredential):
65771         (WebCore::ResourceLoader::receivedRequestToContinueWithoutCredential):
65772         (WebCore::ResourceLoader::receivedCancellation):
65773         * platform/graphics/svg/SVGImageEmptyClients.h:
65774         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
65775         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidCancelAuthenticationChallenge):
65776         * platform/network/ResourceHandleClient.h:
65777         (WebCore::ResourceHandleClient::willSendRequest):
65778         (WebCore::ResourceHandleClient::didReceiveAuthenticationChallenge):
65779         (WebCore::ResourceHandleClient::didCancelAuthenticationChallenge):
65780         (WebCore::ResourceHandleClient::receivedCredential):
65781         (WebCore::ResourceHandleClient::receivedRequestToContinueWithoutCredential):
65782         (WebCore::ResourceHandleClient::receivedCancellation):
65783         (WebCore::ResourceHandleClient::willCacheResponse):
65784         * platform/network/ResourceResponse.h:
65785         (WebCore::operator!=):
65786         * platform/network/URLAuthenticationChallenge.cpp: Added.
65787         (WebCore::URLAuthenticationChallenge::URLAuthenticationChallenge):
65788         (WebCore::URLAuthenticationChallenge::previousFailureCount):
65789         (WebCore::URLAuthenticationChallenge::proposedCredential):
65790         (WebCore::URLAuthenticationChallenge::protectionSpace):
65791         (WebCore::URLAuthenticationChallenge::failureResponse):
65792         (WebCore::URLAuthenticationChallenge::error):
65793         (WebCore::URLAuthenticationChallenge::isNull):
65794         (WebCore::URLAuthenticationChallenge::nullify):
65795         (WebCore::operator==):
65796         (WebCore::operator!=):
65797         * platform/network/URLAuthenticationChallenge.h: Added.
65798         (WebCore::URLAuthenticationChallenge::sender):
65799         (WebCore::URLAuthenticationChallenge::nsURLAuthenticationChallenge):
65800         * platform/network/URLCredential.cpp: Added.
65801         (WebCore::URLCredential::URLCredential):
65802         (WebCore::URLCredential::user):
65803         (WebCore::URLCredential::password):
65804         (WebCore::URLCredential::hasPassword):
65805         (WebCore::URLCredential::persistence):
65806         (WebCore::operator==):
65807         * platform/network/URLCredential.h: Added.
65808         (WebCore::):
65809         (WebCore::operator!=):
65810         * platform/network/URLProtectionSpace.cpp: Added.
65811         (WebCore::URLProtectionSpace::URLProtectionSpace):
65812         (WebCore::URLProtectionSpace::host):
65813         (WebCore::URLProtectionSpace::port):
65814         (WebCore::URLProtectionSpace::serverType):
65815         (WebCore::URLProtectionSpace::realm):
65816         (WebCore::URLProtectionSpace::authenticationScheme):
65817         (WebCore::operator==):
65818         * platform/network/URLProtectionSpace.h: Added.
65819         (WebCore::):
65820         (WebCore::operator!=):
65821         * platform/network/mac/AuthenticationMac.h: Added.
65822         * platform/network/mac/AuthenticationMac.mm: Added.
65823         (WebCore::URLAuthenticationChallenge::URLAuthenticationChallenge):
65824         (WebCore::mac):
65825         (WebCore::core):
65826         * platform/network/mac/ResourceHandleMac.mm:
65827         (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
65828         (-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]):
65829         (-[WebCoreResourceHandleAsDelegate useCredential:forAuthenticationChallenge:]):
65830         (-[WebCoreResourceHandleAsDelegate continueWithoutCredentialForAuthenticationChallenge:]):
65831         (-[WebCoreResourceHandleAsDelegate cancelAuthenticationChallenge:]):
65832         * platform/network/mac/ResourceResponseMac.mm:
65833         (WebCore::operator==):
65834
65835 2007-01-11  Geoffrey Garen  <ggaren@apple.com>
65836
65837         Reviewed by Anders Carlsson.
65838         
65839         Even more cleanup in preparation for fixing <rdar://problem/4608404> 
65840         WebScriptObject's _executionContext lack of ownership policy causes 
65841         crashes (e.g., in Dashcode)
65842         
65843         Layout tests pass.
65844         
65845         Renames:
65846             findRootObjectForNativeHandleFunction => createRootObject
65847             FindRootObjectForNativeHandleFunctionPtr => createRootObjectFunction
65848             rootForView => createRootObject
65849             getInstanceForView => getPluginInstanceForWidget
65850
65851         * page/mac/FrameMac.mm:
65852         (WebCore::FrameMac::getAppletInstanceForWidget): Put the NSView * in a void*
65853         variable named "nativeHandle" to be more explicit about the fact that JavaScript's
65854         "nativeHandle" is just an NSView *.
65855
65856         (WebCore::getPluginInstanceForWidget): This function now does the NSView *
65857         fetching that its callers used to do.
65858         (WebCore::FrameMac::getEmbedInstanceForWidget): Updated for rename.
65859         (WebCore::FrameMac::getObjectInstanceForWidget): ditto
65860
65861         * page/mac/WebCoreFrameBridge.mm: Killed the WebCoreBridgeInternal category,
65862         which was really more of a shmategory.
65863         (createRootObject): Removed rootObjectForView, folding it into its only
65864         caller, the similarly named rootForView. Renamed the pair to "createRootObject"
65865         because that's what they do.
65866
65867         (-[WebCoreFrameBridge init]): Updated for renames
65868
65869 2007-01-11  Anders Carlsson  <acarlsson@apple.com>
65870
65871         Reviewed by Darin.
65872
65873         Fix crash on platforms that don't use the new loader yet.
65874         
65875         * loader/DocLoader.cpp:
65876         (WebCore::DocLoader::requestResource):
65877
65878 2007-01-11  Mitz Pettel  <mitz@webkit.org>
65879
65880         Reviewed by Adam.
65881
65882         - fix http://bugs.webkit.org/show_bug.cgi?id=11449
65883           Type-to-select in unopened popups doesn't work with Hebrew
65884
65885         Test: fast/forms/select-type-ahead-non-latin.html
65886
65887         * html/HTMLSelectElement.cpp:
65888         (WebCore::HTMLSelectElement::defaultEventHandler): Changed locale-specific
65889         isprint() condition to a Unicode isPrintableChar().
65890
65891 2007-01-09  Justin Garcia  <justin.garcia@apple.com>
65892
65893         Reviewed by geoff
65894         
65895         <rdar://problem/4889140>
65896         GMail Editor: List creation fails in new message
65897
65898         * editing/InsertListCommand.cpp:
65899         (WebCore::InsertListCommand::doApply): Inserting the list
65900         into an empty paragraph not held open by a br or a '\n', 
65901         will invalidate start and end.  Insert a placeholder and 
65902         then recompute start and end.
65903
65904 2007-01-11  Lars Knoll <lars@trolltech.com>
65905
65906         Rubberstamped by Anders
65907
65908         This one is not needed any longer neither.
65909
65910         * ChangeLog:
65911         * WebCore.pro:
65912         * loader/qt/NavigationActionQt.cpp: Removed.
65913
65914 2007-01-11  Lars Knoll <lars@trolltech.com>
65915
65916         Reviewed by Anders
65917
65918         Remove now unused file
65919
65920         * WebCore.pro:
65921         * loader/qt/LoaderFunctionsQt.cpp: Removed.
65922
65923 2007-01-11  David Kilzer  <ddkilzer@webkit.org>
65924
65925         Reviewed by NOBODY (build fix).
65926
65927         * loader/mac/FrameLoaderMac.mm:  Removed import of LoaderNSURLRequestExtras.h.
65928         * loader/mac/SubresourceLoaderMac.mm:  Ditto.
65929
65930 2007-01-11  George Staikos  <staikos@kde.org>
65931
65932         Fix compile.
65933
65934         * page/qt/FrameQtClient.cpp:
65935
65936 2007-01-11  Anders Carlsson  <acarlsson@apple.com>
65937
65938         Fix build.
65939         
65940         * dom/XMLTokenizer.cpp:
65941         * loader/CachedCSSStyleSheet.cpp:
65942         * loader/CachedImage.cpp:
65943         * loader/DocLoader.cpp:
65944         * loader/loader.cpp:
65945         * xml/XSLTProcessor.cpp:
65946         * xml/xmlhttprequest.cpp:
65947
65948 2007-01-11  Anders Carlsson  <acarlsson@apple.com>
65949
65950         Reviewed by Adam.
65951
65952         Loader cleanup, get rid of unused code.
65953         
65954         * WebCore.xcodeproj/project.pbxproj:
65955         * loader/CachedResource.h:
65956         * loader/DocLoader.cpp:
65957         (WebCore::DocLoader::requestResource):
65958         (WebCore::DocLoader::checkCacheObjectStatus):
65959         * loader/DocLoader.h:
65960         * loader/LoaderFunctions.h: Removed.
65961         * loader/mac/CachedResourceMac.mm: Removed.
65962         * loader/mac/LoaderFunctionsMac.mm: Removed.
65963         * loader/mac/LoaderNSURLRequestExtras.h: Removed.
65964         * loader/mac/LoaderNSURLRequestExtras.m: Removed.
65965         * loader/mac/SubresourceLoaderMac.mm:
65966         * page/mac/WebCoreFrameBridge.mm:
65967         * platform/network/ResourceHandle.cpp:
65968
65969 2007-01-11  Beth Dakin  <bdakin@apple.com>
65970
65971         Reviewed by Adam.
65972
65973         Fix for http://bugs.webkit.org/show_bug.cgi?id=12135 REGRESSION: 
65974         <input> and <textarea> not focused on right click (4908884 in 
65975         Radar)
65976
65977         * page/EventHandler.cpp:
65978         (WebCore::EventHandler::sendContextMenuEvent): Since WebcCore now 
65979         handles the context menu event, we want to ask if we *have* 
65980         swallowed the event instead of if we *haven't* when deciding to 
65981         perform a selection. In the past, WebKit handled the event, so 
65982         swallowEvent was false in the case where we want to pop up a menu. 
65983
65984 2007-01-11  Darin Adler  <darin@apple.com>
65985
65986         Reviewed by Anders.
65987
65988         - fix http://bugs.webkit.org/show_bug.cgi?id=12189
65989           REGRESSION(r18614-18640): Crash in WebCore::SharedBuffer::hasPlatformData()
65990
65991         * loader/mac/LoaderFunctionsMac.mm: (WebCore::CheckCacheObjectStatus):
65992         Added null check.
65993
65994 2007-01-11  Darin Adler  <darin@apple.com>
65995
65996         * platform/CharacterNames.h: Oops! horizontalEllipsis != zeroWidthSpace!
65997
65998 2007-01-11  Lars Knoll <lars@trolltech.com>
65999
66000         Reviewed by Darin.
66001
66002         Start using the loader in the Qt port.
66003
66004         * loader/FrameLoader.cpp:
66005         (WebCore::FrameLoader::clear):
66006         (WebCore::FrameLoader::URL):
66007         (WebCore::FrameLoader::createEmptyDocument):
66008         * loader/qt/FrameLoaderQt.cpp:
66009         (WebCore::FrameLoader::setTitle):
66010         (WebCore::FrameLoader::originalRequestURL):
66011         (WebCore::FrameLoader::referrer):
66012         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
66013         * page/qt/FrameQtClient.cpp:
66014         (WebCore::FrameQtClient::openURL):
66015
66016 2007-01-11  Darin Adler  <darin@apple.com>
66017
66018         Reviewed by Hyatt.
66019
66020         - removed a couple Mac bridging classes; put the code in WebKit instead
66021
66022         * WebCore.exp: Updated for new WebKit uses.
66023
66024         * WebCore.xcodeproj/project.pbxproj: Removed files.
66025         * bridge/mac/WebCoreEncodings.h: Removed.
66026         * bridge/mac/WebCoreEncodings.mm: Removed.
66027         * bridge/mac/WebMimeTypeRegistryBridge.h: Removed.
66028         * bridge/mac/WebMimeTypeRegistryBridge.mm: Removed.
66029         * platform/mac/WebNSAttributedStringExtras.h: Removed.
66030         * platform/mac/WebNSAttributedStringExtras.mm: Removed.
66031
66032         * platform/mac/PasteboardMac.mm:
66033         (WebCore::stripAttachmentCharacters): Added. Moved code from
66034         WebNSAttributedStringExtras.mm, and fixed a garbage collection problem
66035         (a global with a plain old retain rather than HardRetain).
66036         (WebCore::Pasteboard::writeSelection): Updated to use stripAttachmentCharacters.
66037
66038         - removed some DeprecatedCString use
66039
66040         * loader/FrameLoader.cpp: Changed to use String more to eliminate use of
66041         DeprecatedCString here in the mailto form support. But maybe we can remove
66042         this entirely. Do we really care about mailto forms any more?
66043
66044         * platform/Pasteboard.h: Removed unneeded DeprecatedCString declaration.
66045
66046         * platform/PlatformString.h: Added replace that takes two strings.
66047         * platform/StringImpl.h: Ditto.
66048         * platform/StringImpl.cpp: (WebCore::StringImpl::replace): Ditto.
66049
66050         * platform/TextStream.h: Remove DeprecatedCString case.
66051         * platform/TextStream.cpp: Ditto.
66052
66053         - made a few more files use CharacterNames.h
66054
66055         * platform/CharacterNames.h: Added some more character names and
66056         sorted alphabetically.
66057
66058         * bridge/mac/WebCoreStringTruncator.mm:
66059         (centerTruncateToBuffer): Use character name from CharacterNames.h.
66060         (rightTruncateToBuffer): Ditto.
66061         (truncateString): Ditto.
66062         * platform/mac/FontMac.mm: (WebCore::addDirectionalOverride): Ditto.
66063         * rendering/RenderFlexibleBox.cpp:
66064         (WebCore::RenderFlexibleBox::layoutVerticalBox): Ditto.
66065         * rendering/bidi.cpp:
66066         (WebCore::RenderBlock::checkLinesForTextOverflow): Ditto.
66067
66068 2007-01-11  David Hyatt  <hyatt@apple.com>
66069
66070         Fix two bugs in positionForCoordinates.  (Make it work when you have a margin in between your border and
66071         your first child block.)
66072
66073         Rewrite column rebalancing to have two modes: constrained and unconstrained.  In unconstrained mode,
66074         the system will dynamically rebalance as it loses space to breaks and compute a final intrinsic height
66075         for the overall block.  In constrained mode, columns flow into the fixed height block, and extra columns
66076         spill out horizontally in the appropriate direction (RTL/LTR).
66077
66078         Make columns work properly with both LTR and RTL overflow blocks.
66079
66080         Initial column test suite coming soon now that the basic layout is right.
66081
66082         Reviewed by darin
66083
66084         * rendering/RenderBlock.cpp:
66085         (WebCore:::RenderFlow):
66086         (WebCore::RenderBlock::layoutBlock):
66087         (WebCore::RenderBlock::paintColumns):
66088         (WebCore::RenderBlock::lowestPosition):
66089         (WebCore::RenderBlock::rightmostPosition):
66090         (WebCore::RenderBlock::leftmostPosition):
66091         (WebCore::RenderBlock::hitTestColumns):
66092         (WebCore::RenderBlock::positionForCoordinates):
66093         (WebCore::RenderBlock::availableWidth):
66094         (WebCore::RenderBlock::calcColumnWidth):
66095         (WebCore::RenderBlock::layoutColumns):
66096         (WebCore::RenderBlock::adjustPointToColumnContents):
66097         * rendering/RenderBlock.h:
66098         (WebCore::RenderBlock::hasColumns):
66099
66100 2007-01-10  Rob Buis  <buis@kde.org>
66101
66102         Reviewed by Eric.
66103
66104         http://bugs.webkit.org/show_bug.cgi?id=12201
66105         Fix image dragging issues with http://www.carto.net/papers/svg/gui/scrollbar/index.svg
66106
66107         Fix calculation of absolute transform so that viewport x,y
66108         translation is always done, also when viewBox is set.     
66109
66110         * rendering/RenderSVGContainer.cpp:
66111         (WebCore::RenderSVGContainer::paint):
66112         (WebCore::RenderSVGContainer::viewportTransform):
66113         (WebCore::RenderSVGContainer::absoluteTransform):
66114
66115 2007-01-10  David Hyatt  <hyatt@apple.com>
66116
66117         Rework positionForCoordinates to be more efficient and to handle multi-column content.  This entailed
66118         adding a new field to HitTestResult called localPoint that cached the mouse coordinate in the coordinate
66119         space of the renderer.
66120
66121         positionForCoordinates now takes local coordinates and so no longer needs to waste time recomputing
66122         absolute positions over and over again.
66123
66124         Reviewed by darin
66125
66126         * bridge/mac/WebCoreAXObject.mm:
66127         (-[WebCoreAXObject value]):
66128         (-[WebCoreAXObject doAXTextMarkerRangeForLine:]):
66129         (-[WebCoreAXObject doAXTextMarkerForPosition:]):
66130         * dom/Document.cpp:
66131         (WebCore::Document::prepareMouseEvent):
66132         * editing/SelectionController.cpp:
66133         (WebCore::SelectionController::contains):
66134         * editing/visible_units.cpp:
66135         (WebCore::previousLinePosition):
66136         (WebCore::nextLinePosition):
66137         * page/EventHandler.cpp:
66138         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
66139         (WebCore::EventHandler::handleMousePressEventDoubleClick):
66140         (WebCore::EventHandler::handleMousePressEventTripleClick):
66141         (WebCore::EventHandler::handleMousePressEventSingleClick):
66142         (WebCore::EventHandler::handleMouseMoveEvent):
66143         (WebCore::EventHandler::handleMouseReleaseEvent):
66144         (WebCore::EventHandler::sendContextMenuEvent):
66145         * page/EventHandler.h:
66146         * page/MouseEventWithHitTestResults.cpp:
66147         (WebCore::MouseEventWithHitTestResults::MouseEventWithHitTestResults):
66148         * page/MouseEventWithHitTestResults.h:
66149         (WebCore::MouseEventWithHitTestResults::localPoint):
66150         * page/mac/WebCoreFrameBridge.mm:
66151         (-[WebCoreFrameBridge _visiblePositionForPoint:]):
66152         * rendering/EllipsisBox.cpp:
66153         (WebCore::EllipsisBox::nodeAtPoint):
66154         * rendering/HitTestResult.h:
66155         (WebCore::HitTestResult::localPoint):
66156         (WebCore::HitTestResult::setLocalPoint):
66157         * rendering/InlineFlowBox.cpp:
66158         (WebCore::InlineFlowBox::nodeAtPoint):
66159         * rendering/InlineTextBox.cpp:
66160         (WebCore::InlineTextBox::nodeAtPoint):
66161         * rendering/RenderBlock.cpp:
66162         (WebCore::RenderBlock::nodeAtPoint):
66163         (WebCore::RenderBlock::hitTestContents):
66164         (WebCore::RenderBlock::positionForCoordinates):
66165         * rendering/RenderBox.cpp:
66166         (WebCore::RenderBox::nodeAtPoint):
66167         * rendering/RenderContainer.cpp:
66168         (WebCore::RenderContainer::positionForCoordinates):
66169         * rendering/RenderFlow.cpp:
66170         (WebCore::RenderFlow::hitTestLines):
66171         * rendering/RenderInline.cpp:
66172         (WebCore::RenderInline::positionForCoordinates):
66173         * rendering/RenderLayer.cpp:
66174         (WebCore::RenderLayer::autoscroll):
66175         (WebCore::RenderLayer::hitTestLayer):
66176         * rendering/RenderObject.cpp:
66177         (WebCore::RenderObject::updateHitTestResult):
66178         * rendering/RenderObject.h:
66179         * rendering/RenderPath.cpp:
66180         (WebCore::RenderPath::nodeAtPoint):
66181         * rendering/RenderReplaced.cpp:
66182         (WebCore::RenderReplaced::positionForCoordinates):
66183         * rendering/RenderTableRow.cpp:
66184         (WebCore::RenderTableRow::nodeAtPoint):
66185         * rendering/RenderTableSection.cpp:
66186         (WebCore::RenderTableSection::nodeAtPoint):
66187         * rendering/RenderText.cpp:
66188         (WebCore::RenderText::positionForCoordinates):
66189         * rendering/RootInlineBox.cpp:
66190         (WebCore::RootInlineBox::nodeAtPoint):
66191         (WebCore::RootInlineBox::closestLeafChildForXPos):
66192         * rendering/RootInlineBox.h:
66193
66194 2007-01-11  George Staikos  <staikos@kde.org>
66195
66196         Reviewed by Maciej.
66197
66198         Fix Qt Build.
66199
66200         * loader/qt/DocumentLoaderQt.cpp:
66201         (WebCore::DocumentLoader::getResponseModifiedHeader):
66202
66203 2007-01-10  Pam Greene  <pam@chromium.org>
66204
66205         Reviewed by Darin.
66206
66207         Fixes for http://bugs.webkit.org/show_bug.cgi?id=11841
66208
66209         Set image size to fit alt text when image or input-image element
66210         has no src attribute, so that those images show their alt text instead
66211         of showing nothing at all.
66212
66213         * html/HTMLImageElement.cpp:
66214         (WebCore::HTMLImageElement::attach):
66215         * html/HTMLInputElement.cpp:
66216         (WebCore::HTMLInputElement::attach):
66217         * rendering/RenderImage.cpp:
66218         (WebCore::RenderImage::setImageSizeForAltText):
66219         (WebCore::RenderImage::imageChanged):
66220         * rendering/RenderImage.h:
66221
66222 2007-01-11  Mark Rowe  <mrowe@apple.com>
66223
66224         Build fix.
66225
66226         * rendering/RenderView.cpp:
66227         (WebCore::RenderView::printing):
66228
66229 2007-01-10  Mitz Pettel  <mitz@webkit.org>
66230
66231         Reviewed by Darin.
66232
66233         - fix http://bugs.webkit.org/show_bug.cgi?id=9284
66234           Quirksmode (CSS1): Removing inline border styles is impossible
66235
66236         Test: fast/css/remove-shorthand.html
66237
66238         * css/CSSMutableStyleDeclaration.cpp:
66239         (WebCore::PropertyLonghand::PropertyLonghand): Added this structure
66240         containing a pointer to an array if properties and the array's length.
66241         (WebCore::PropertyLonghand::properties):
66242         (WebCore::PropertyLonghand::length):
66243         (WebCore::initShorthandMap): Initialize the mapping from shorthand
66244         properties to their dependent properties.
66245         (WebCore::CSSMutableStyleDeclaration::removeProperty): Changed to check
66246         if the property being removed is a shorthand, and if so, to remove all
66247         of its dependent properties.
66248         (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet): Added a
66249         'notifyChanged' boolean parameter which controls whether this method
66250         calls setChanged() if it actually removes any property.
66251         * css/CSSMutableStyleDeclaration.h:
66252
66253 2007-01-10  Steve Falkenburg  <sfalken@apple.com>
66254
66255         Reviewed by Kevin.
66256
66257         Removed unnecessary printing state
66258
66259         * page/FrameView.cpp:
66260         (WebCore::FrameView::layout):
66261         * page/mac/WebCoreFrameBridge.mm:
66262         (-[WebCoreFrameBridge forceLayoutAdjustingViewSize:]):
66263         (-[WebCoreFrameBridge forceLayoutWithMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
66264         (-[WebCoreFrameBridge drawRect:]):
66265         (-[WebCoreFrameBridge computePageRectsWithPrintWidthScaleFactor:printHeight:]):
66266         (-[WebCoreFrameBridge adjustPageHeightNew:top:bottom:limit:]):
66267         * rendering/RenderLayer.cpp:
66268         (WebCore::RenderLayer::updateLayerPositions):
66269         * rendering/RenderObject.cpp:
66270         (WebCore::RenderObject::repaint):
66271         (WebCore::RenderObject::repaintRectangle):
66272         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
66273         * rendering/RenderView.cpp:
66274         (WebCore::RenderView::RenderView):
66275         (WebCore::RenderView::calcHeight):
66276         (WebCore::RenderView::calcWidth):
66277         (WebCore::RenderView::layout):
66278         (WebCore::RenderView::paint):
66279         (WebCore::RenderView::repaintViewRectangle):
66280         (WebCore::RenderView::computeAbsoluteRepaintRect):
66281         (WebCore::RenderView::printing):
66282         (WebCore::RenderView::viewRect):
66283         (WebCore::RenderView::docHeight):
66284         (WebCore::RenderView::docWidth):
66285         * rendering/RenderView.h:
66286         * rendering/RenderWidget.cpp:
66287         (WebCore::RenderWidget::updateWidgetPosition):
66288         * rendering/bidi.cpp:
66289         (WebCore::RenderBlock::layoutInlineChildren):
66290
66291 2007-01-10  Anders Carlsson  <acarlsson@apple.com>
66292
66293         Reviewed by Maciej.
66294
66295         Get the Refresh header directly from the ResourceResponse.
66296         
66297         * loader/DocumentLoader.h:
66298         * loader/FrameLoader.cpp:
66299         (WebCore::FrameLoader::commitProvisionalLoad):
66300         * loader/mac/DocumentLoaderMac.mm:
66301         (WebCore::DocumentLoader::getResponseModifiedHeader):
66302
66303 2007-01-10  Beth Dakin  <bdakin@apple.com>
66304
66305         Reviewed by John.
66306
66307         Fix for <rdar://problem/4914258> REGRESSION: Search in Google now 
66308         operates on the current WebView instead of invoking Safari's 
66309         service
66310
66311         * page/ContextMenuClient.h: New call to the client to search in 
66312         google.
66313         * page/ContextMenuController.cpp:
66314         (WebCore::ContextMenuController::contextMenuItemSelected): Call 
66315         into the client instead of forming a new url string and loading it.
66316         * platform/graphics/svg/SVGImageEmptyClients.h:
66317         (WebCore::SVGEmptyContextMenuClient::searchWithGoogle): New call.
66318
66319 2007-01-10  Adam Roben  <aroben@apple.com>
66320
66321         Rubberstamped by Darin.
66322
66323         * page/ContextMenuController.cpp:
66324         (WebCore::ContextMenuController::contextMenuItemSelected): Pass 0
66325         instead of an empty Event to FrameLoader::load and
66326         FrameLoader::urlSelected.
66327
66328 2007-01-10  Anders Carlsson  <acarlsson@apple.com>
66329
66330         * loader/ResourceLoader.cpp:
66331         (WebCore::ResourceLoader::~ResourceLoader):
66332         Disable assertion (I forgot to do this even though I added the comment!)
66333
66334 2007-01-10  Ross Burton  <ross@burtonini.com>
66335
66336         Reviewed and landed by Anders.
66337
66338         Fix case in vcproj file (the GTK+ port uses the vcproj file).
66339
66340         * WebCore.vcproj/WebCore/WebCore.vcproj:
66341
66342 2007-01-10  Lars Knoll  <lars@trolltech.com>
66343
66344         Make the Qt build compile again after 
66345         the ResourceLoader was made platform
66346         independent. 
66347
66348         * WebCore.pro:
66349         * loader/FrameLoader.cpp:
66350         (WebCore::FrameLoader::didFirstLayout):
66351         * loader/qt/FrameLoaderQt.cpp:
66352         * loader/qt/MainResourceLoaderQt.cpp: Removed.
66353         * loader/qt/ResourceLoaderQt.cpp: Removed.
66354         * page/qt/FrameQtClient.cpp:
66355         (WebCore::FrameQtClient::openURL):
66356         * platform/network/qt/ResourceHandleQt.cpp:
66357         (WebCore::ResourceHandle::setDefersLoading):
66358
66359 2007-01-10  Anders Carlsson  <acarlsson@apple.com>
66360
66361         Rubber-stamped by Maciej.
66362         
66363         Move most of ResourceLoader and MainResourceLoader into the platform-independent files.
66364         
66365         * WebCore.xcodeproj/project.pbxproj:
66366         * loader/FrameLoader.cpp:
66367         (WebCore::FrameLoader::didFinishLoad):
66368         * loader/MainResourceLoader.cpp:
66369         (WebCore::MainResourceLoader::MainResourceLoader):
66370         (WebCore::MainResourceLoader::~MainResourceLoader):
66371         (WebCore::MainResourceLoader::create):
66372         (WebCore::MainResourceLoader::receivedError):
66373         (WebCore::MainResourceLoader::didCancel):
66374         (WebCore::MainResourceLoader::interruptionForPolicyChangeError):
66375         (WebCore::MainResourceLoader::stopLoadingForPolicyChange):
66376         (WebCore::MainResourceLoader::callContinueAfterNavigationPolicy):
66377         (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
66378         (WebCore::MainResourceLoader::isPostOrRedirectAfterPost):
66379         (WebCore::MainResourceLoader::addData):
66380         (WebCore::MainResourceLoader::willSendRequest):
66381         (WebCore::shouldLoadAsEmptyDocument):
66382         (WebCore::MainResourceLoader::continueAfterContentPolicy):
66383         (WebCore::MainResourceLoader::callContinueAfterContentPolicy):
66384         (WebCore::MainResourceLoader::didReceiveResponse):
66385         (WebCore::MainResourceLoader::didReceiveData):
66386         (WebCore::MainResourceLoader::didFinishLoading):
66387         (WebCore::MainResourceLoader::didFail):
66388         (WebCore::MainResourceLoader::loadNow):
66389         (WebCore::MainResourceLoader::load):
66390         (WebCore::MainResourceLoader::setDefersLoading):
66391         * loader/MainResourceLoader.h:
66392         * loader/ResourceLoader.cpp:
66393         (WebCore::ResourceLoader::ResourceLoader):
66394         (WebCore::ResourceLoader::~ResourceLoader):
66395         (WebCore::ResourceLoader::releaseResources):
66396         (WebCore::ResourceLoader::load):
66397         (WebCore::ResourceLoader::setDefersLoading):
66398         (WebCore::ResourceLoader::frameLoader):
66399         (WebCore::ResourceLoader::addData):
66400         (WebCore::ResourceLoader::clearResourceData):
66401         (WebCore::ResourceLoader::willSendRequest):
66402         (WebCore::ResourceLoader::didReceiveResponse):
66403         (WebCore::ResourceLoader::didReceiveData):
66404         (WebCore::ResourceLoader::willStopBufferingData):
66405         (WebCore::ResourceLoader::didFinishLoading):
66406         (WebCore::ResourceLoader::didFinishLoadingOnePart):
66407         (WebCore::ResourceLoader::didFail):
66408         (WebCore::ResourceLoader::didCancel):
66409         (WebCore::ResourceLoader::cancel):
66410         (WebCore::ResourceLoader::response):
66411         (WebCore::ResourceLoader::cancelledError):
66412         * loader/ResourceLoader.h:
66413         (WebCore::ResourceLoader::willStopBufferingData):
66414         (WebCore::ResourceLoader::setRequest):
66415         * loader/mac/FrameLoaderMac.mm:
66416         * loader/mac/MainResourceLoaderMac.mm: Removed.
66417         * loader/mac/ResourceLoaderMac.mm:
66418
66419 2007-01-10  Lars Knoll <lars@trolltech.com>
66420
66421         Move files to the correct location,
66422         and remove a few unused methods from 
66423         LoaderFunctionsQt.cpp
66424
66425         * WebCore.pro:
66426         * loader/qt/LoaderFunctionsQt.cpp: Added.
66427         (WebCore::CheckCacheObjectStatus):
66428         * page/qt/FrameQt.cpp: Added.
66429         (WebCore::doScroll):
66430         (WebCore::FrameQt::FrameQt):
66431         (WebCore::FrameQt::~FrameQt):
66432         (WebCore::FrameQt::passMouseDownEventToWidget):
66433         (WebCore::FrameQt::isLoadTypeReload):
66434         (WebCore::FrameQt::markedTextRange):
66435         (WebCore::FrameQt::mimeTypeForFileName):
66436         (WebCore::FrameQt::unfocusWindow):
66437         (WebCore::FrameQt::focusWindow):
66438         (WebCore::FrameQt::getEmbedInstanceForWidget):
66439         (WebCore::FrameQt::getObjectInstanceForWidget):
66440         (WebCore::FrameQt::getAppletInstanceForWidget):
66441         (WebCore::FrameQt::issueCutCommand):
66442         (WebCore::FrameQt::issueCopyCommand):
66443         (WebCore::FrameQt::issuePasteCommand):
66444         (WebCore::FrameQt::issuePasteAndMatchStyleCommand):
66445         (WebCore::FrameQt::issueTransposeCommand):
66446         (WebCore::FrameQt::respondToChangedSelection):
66447         (WebCore::FrameQt::shouldChangeSelection):
66448         (WebCore::FrameQt::print):
66449         (WebCore::FrameQt::shouldInterruptJavaScript):
66450         (WebCore::FrameQt::keyEvent):
66451         (WebCore::FrameQt::setFrameGeometry):
66452         (WebCore::FrameQt::client):
66453         (WebCore::FrameQt::createNewWindow):
66454         (WebCore::FrameQt::goBackOrForward):
66455         (WebCore::FrameQt::historyURL):
66456         (WebCore::FrameQt::runJavaScriptAlert):
66457         (WebCore::FrameQt::runJavaScriptConfirm):
66458         (WebCore::FrameQt::runJavaScriptPrompt):
66459         (WebCore::FrameQt::bindingRootObject):
66460         (WebCore::FrameQt::addPluginRootObject):
66461         * page/qt/FrameQt.h: Added.
66462         (WebCore::QtFrame):
66463         * page/qt/FrameQtClient.cpp: Added.
66464         (WebCore::FrameQtClient::FrameQtClient):
66465         (WebCore::FrameQtClient::~FrameQtClient):
66466         (WebCore::FrameQtClient::setFrame):
66467         (WebCore::FrameQtClient::openURL):
66468         (WebCore::FrameQtClient::submitForm):
66469         (WebCore::FrameQtClient::didReceiveResponse):
66470         (WebCore::FrameQtClient::didFinishLoading):
66471         (WebCore::FrameQtClient::didFail):
66472         (WebCore::FrameQtClient::didReceiveData):
66473         (WebCore::FrameQtClient::traverseNextFrameStayWithin):
66474         (WebCore::numRequests):
66475         (WebCore::FrameQtClient::numPendingOrLoadingRequests):
66476         * page/qt/FrameQtClient.h: Added.
66477         * platform/qt/FrameQt.cpp: Removed.
66478         * platform/qt/FrameQt.h: Removed.
66479         * platform/qt/FrameQtClient.cpp: Removed.
66480         * platform/qt/FrameQtClient.h: Removed.
66481         * platform/qt/LoaderFunctionsQt.cpp: Removed.
66482
66483 2007-01-10  Adam Roben  <aroben@apple.com>
66484
66485         Reviewed by Geoff.
66486
66487         Fix: <rdar://problem/4917054> ContextMenuController leaks Events
66488
66489         No layout tests possible.
66490
66491         * page/ContextMenuController.cpp:
66492         (WebCore::ContextMenuController::contextMenuItemSelected): Use RefPtr
66493         to manage the lifetime of Shared objects.
66494
66495 2007-01-10  Rob Buis  <buis@kde.org>
66496
66497         Reviewed by Sam.
66498
66499         http://bugs.webkit.org/show_bug.cgi?id=12196
66500         SVGPatternElement should not be locatable
66501
66502         Replace SVGStyledLocatableElement derivation with
66503         SVGStyledElement.
66504
66505         * ksvg2/svg/SVGPatternElement.cpp:
66506         (WebCore::SVGPatternElement::SVGPatternElement):
66507         * ksvg2/svg/SVGPatternElement.h:
66508
66509 2007-01-10  Nikolas Zimmermann  <zimmermann@kde.org>
66510
66511         Build fix, not reviewed.
66512
66513         * rendering/RenderSVGText.cpp: Use correct method name.
66514         (WebCore::RenderSVGText::relativeBBox):
66515
66516 2007-01-10  Nikolas Zimmermann  <zimmermann@kde.org>
66517
66518         Reviewed by Eric.
66519
66520         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10262 (SVG fails to redraw top 20 pixels)
66521         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10263 (SVG seems to repaint way too many times during load)
66522         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10404 (Invalidation issues with text skew)
66523         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10407 (bad SVG text invalidation issues on mouseover/mouseout)
66524         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10806 (failing manual-tests/svg-repaint-group.svg)
66525         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10913 (SVG charts from plotkit fail to render unless you scroll them offscreen)
66526         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10964 (inclusion of svg into svg leave a ghost invisible rectangle)
66527         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11680 (DojoKit SVG test chart fails to render (clipping issue?))
66528         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11883 (SVG Text has updating/repainting issues)
66529         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11907 (RenderSVGContainer does not mark itself for repaint after setting viewBox, slice or align) 
66530         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11913 (Invalidation issues in SVG javascript-based animation example)
66531         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11979 (SVG text does not respect font-size scaling in bbox calculation)
66532         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11984 (SVG <text> does not calculate the correct absoluteRepaintRect)
66533         Partly fixes: http://bugs.webkit.org/show_bug.cgi?id=10745 (SVG layout needs to move out of DOM and into rendering tree during layout() call)
66534
66535         Fixes text redrawing issues seen in svg/carto.net (when actually playing with those files, manually)
66536         Fixes svg/carto.net/window.svg (moving "Navigation Window" caused artefacts)
66537         Fixes svg/W3C-SVG-1.1/types-basicDOM-01-b.svg (bbox calculations had one pixel offset)
66538
66539         Large SVG dynamic update rework/optimization. Also fixes SVG printing.
66540
66541         Rename updateCanvasItem() to rebuildRenderer(), as this is what it really does.
66542
66543         Do NOT call rebuildRenderer() in notifyAttributeChange() anymore,
66544         but override notifyAttributeChange() in SVGPathElement/SVGCircleElement/etc..
66545         (as only primitives using RenderPath as rendering object need this logic!)
66546
66547         This should clarify what really happens, as discussed with Eric.
66548
66549         Remove the invocations of notifyAttributeChange() in SVGLength. It's already
66550         handled by the JS bindings, and we do double updating work. Fixed.
66551
66552         Because SVG dynamic updates have been flaky in the past, there was a hack introduced
66553         in RenderPath causing the updateCanvasItem() function to be called _on every layout_ (!!!).
66554         Finally this hack is gone. Offer RenderSVGContainer::absoluteRects() function to be able
66555         to use WebInspector for <g> elements (very handy!).
66556
66557         Remove the unneeded "m_updateVectorial" bool from SVGStyledElement.
66558         Remove computeAbsoluteRepaintRect() from RenderSVGContainer/RenderSVGImage/RenderSVGText,
66559         as dicussed with David (we only need to reimplement getAbsoluteRepaintRect there).
66560
66561         Make RenderSVGText::absoluteRects just use the getAbsoluteRepaintRect() function, instead of
66562         code duplication. Remove unneeded RenderSVGImage::layout() function (RenderImage does the same).
66563
66564         Add new function SVGStyledElement::renderStyleForElement, which centralizes the manual style
66565         resolving needed for gradient stops.
66566
66567         * ksvg2/svg/SVGCircleElement.cpp:
66568         (WebCore::SVGCircleElement::notifyAttributeChange):
66569         (WebCore::SVGCircleElement::hasRelativeValues):
66570         * ksvg2/svg/SVGCircleElement.h:
66571         * ksvg2/svg/SVGEllipseElement.cpp:
66572         (WebCore::SVGEllipseElement::notifyAttributeChange):
66573         (WebCore::SVGEllipseElement::hasRelativeValues):
66574         * ksvg2/svg/SVGEllipseElement.h:
66575         * ksvg2/svg/SVGImageElement.cpp:
66576         (WebCore::SVGImageElement::notifyAttributeChange):
66577         * ksvg2/svg/SVGImageElement.h:
66578         * ksvg2/svg/SVGLength.cpp:
66579         (WebCore::SVGLength::setValue):
66580         (WebCore::SVGLength::setValueInSpecifiedUnits):
66581         * ksvg2/svg/SVGLength.h:
66582         (WebCore::SVGLength::isRelative):
66583         * ksvg2/svg/SVGLineElement.cpp:
66584         (WebCore::SVGLineElement::notifyAttributeChange):
66585         (WebCore::SVGLineElement::hasRelativeValues):
66586         * ksvg2/svg/SVGLineElement.h:
66587         * ksvg2/svg/SVGLocatable.cpp:
66588         (WebCore::SVGLocatable::getBBox):
66589         * ksvg2/svg/SVGPathElement.cpp:
66590         (WebCore::SVGPathElement::notifyAttributeChange):
66591         * ksvg2/svg/SVGPathElement.h:
66592         * ksvg2/svg/SVGPolyElement.cpp:
66593         (WebCore::SVGPolyElement::notifyAttributeChange):
66594         * ksvg2/svg/SVGPolyElement.h:
66595         (WebCore::SVGPolyElement::rendererIsNeeded):
66596         * ksvg2/svg/SVGRectElement.cpp:
66597         (WebCore::SVGRectElement::notifyAttributeChange):
66598         (WebCore::SVGRectElement::hasRelativeValues):
66599         * ksvg2/svg/SVGRectElement.h:
66600         * ksvg2/svg/SVGSVGElement.cpp:
66601         (WebCore::SVGSVGElement::hasRelativeValues):
66602         * ksvg2/svg/SVGSVGElement.h:
66603         * ksvg2/svg/SVGStyledElement.cpp:
66604         (WebCore::SVGStyledElement::SVGStyledElement):
66605         (WebCore::SVGStyledElement::createRenderer):
66606         (WebCore::SVGStyledElement::notifyAttributeChange):
66607         (WebCore::SVGStyledElement::rebuildRenderer):
66608         * ksvg2/svg/SVGStyledElement.h:
66609         (WebCore::SVGStyledElement::hasRelativeValues):
66610         * rendering/RenderPath.cpp:
66611         (WebCore::RenderPath::setLocalTransform):
66612         (WebCore::RenderPath::fillContains):
66613         (WebCore::RenderPath::relativeBBox):
66614         (WebCore::RenderPath::layout):
66615         (WebCore::RenderPath::getAbsoluteRepaintRect):
66616         (WebCore::RenderPath::paint):
66617         (WebCore::RenderPath::nodeAtPoint):
66618         (WebCore::drawMarkerWithData):
66619         (WebCore::updateMarkerDataForElement):
66620         (WebCore::drawStartAndMidMarkers):
66621         (WebCore::RenderPath::drawMarkersIfNeeded):
66622         (WebCore::RenderPath::hasRelativeValues):
66623         * rendering/RenderPath.h:
66624         * rendering/RenderSVGContainer.cpp:
66625         (WebCore::RenderSVGContainer::layout):
66626         (WebCore::RenderSVGContainer::paint):
66627         (WebCore::RenderSVGContainer::calcViewport):
66628         (WebCore::RenderSVGContainer::setViewBox):
66629         (WebCore::RenderSVGContainer::setAlign):
66630         (WebCore::RenderSVGContainer::viewportTransform):
66631         (WebCore::RenderSVGContainer::getAbsoluteRepaintRect):
66632         (WebCore::RenderSVGContainer::absoluteRects):
66633         (WebCore::RenderSVGContainer::fillContains):
66634         (WebCore::RenderSVGContainer::strokeContains):
66635         (WebCore::RenderSVGContainer::relativeBBox):
66636         (WebCore::RenderSVGContainer::setSlice):
66637         * rendering/RenderSVGContainer.h:
66638         * rendering/RenderSVGImage.cpp:
66639         (WebCore::RenderSVGImage::RenderSVGImage):
66640         (WebCore::RenderSVGImage::adjustRectsForAspectRatio):
66641         (WebCore::RenderSVGImage::relativeBBox):
66642         (WebCore::RenderSVGImage::imageChanged):
66643         (WebCore::RenderSVGImage::getAbsoluteRepaintRect):
66644         (WebCore::RenderSVGImage::absoluteRects):
66645         * rendering/RenderSVGImage.h:
66646         * rendering/RenderSVGText.cpp:
66647         (WebCore::RenderSVGText::getAbsoluteRepaintRect):
66648         (WebCore::RenderSVGText::layout):
66649         (WebCore::RenderSVGText::createInlineBox):
66650         (WebCore::RenderSVGText::absoluteRects):
66651         (WebCore::RenderSVGText::relativeBBox):
66652         * rendering/RenderSVGText.h:
66653         * rendering/SVGInlineFlowBox.cpp:
66654         (WebCore::placePositionedBoxesHorizontally):
66655
66656 2007-01-10  David Hyatt  <hyatt@apple.com>
66657
66658         Make the selectionRect() method of RenderText better by reusing computeAbsoluteRepaintRect.  This enables
66659         the method to be multi-column aware and also to understand when the selection is clipped out by overflow.
66660
66661         Reviewed by bdash
66662
66663         * rendering/RenderText.cpp:
66664         (WebCore::RenderText::selectionRect):
66665
66666 2007-01-10  David Hyatt  <hyatt@apple.com>
66667
66668         Make the absolutePosition method multi-column aware.  Note that there is now a real problem with the
66669         absoluteRects method, since an object can split across multiple columns and break into multiple rects.
66670         absolutePosition just returns the top-left corner of the element's box in the first column in which it
66671         appears.
66672
66673         Reviewed by bdash
66674
66675         * rendering/RenderBlock.cpp:
66676         (WebCore::RenderBlock::adjustRectForColumns):
66677         * rendering/RenderBlock.h:
66678         * rendering/RenderBox.cpp:
66679         (WebCore::RenderBox::absolutePosition):
66680         (WebCore::RenderBox::computeAbsoluteRepaintRect):
66681         * rendering/RenderFlow.cpp:
66682         (WebCore::RenderFlow::getAbsoluteRepaintRect):
66683
66684 2007-01-09  David Hyatt  <hyatt@apple.com>
66685
66686         Avoid crashing when repainting multiple columns... make sure to use the current vector's size and
66687         not the newly-computed column count.
66688
66689         * rendering/RenderBlock.cpp:
66690         (WebCore::RenderBlock::layoutColumns):
66691         (WebCore::RenderBlock::adjustRepaintRectForColumns):
66692
66693 2007-01-09  David Hyatt  <hyatt@apple.com>
66694
66695         Break up painting and hit testing of children into helper methods and add multi-column versions for both.
66696         
66697         Make incremental repainting able to invalidate the right spot in multiple column layouts so that e.g., link
66698         hover works.
66699
66700         Turn off selection gap filling in columns for now until it can be made to work correctly.
66701
66702         Improve the column balancing heuristic by adding in the block's lineHeight/2 to each column initially to
66703         account for column break adjustments that shrink the columns slightly.  Avoid clipping of the last column's
66704         contents by ensuring it gets all the remaining available height.
66705
66706         Reviewed by mitz
66707
66708         * rendering/RenderBlock.cpp:
66709         (WebCore::RenderBlock::paintColumns):
66710         (WebCore::RenderBlock::paintContents):
66711         (WebCore::RenderBlock::paintObject):
66712         (WebCore::RenderBlock::fillSelectionGaps):
66713         (WebCore::RenderBlock::nodeAtPoint):
66714         (WebCore::RenderBlock::hitTestColumns):
66715         (WebCore::RenderBlock::layoutColumns):
66716         (WebCore::RenderBlock::adjustRepaintRectForColumns):
66717         * rendering/RenderBlock.h:
66718         * rendering/RenderBox.cpp:
66719         (WebCore::RenderBox::computeAbsoluteRepaintRect):
66720         * rendering/RenderFlow.cpp:
66721         (WebCore::RenderFlow::getAbsoluteRepaintRect):
66722
66723 2007-01-09  Remi Zara  <remi_zara@mac.com>
66724
66725         Reviewed by Darin and Eric.
66726
66727         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12150
66728
66729         Don't use memset to set float to 0
66730
66731         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
66732         (WebCore::cgGradientCallback):
66733
66734 2007-01-09  Anders Carlsson  <acarlsson@apple.com>
66735
66736         Reviewed by Brady.
66737
66738         Add default constructor to SharedBuffer.
66739
66740         * platform/SharedBuffer.cpp:
66741         (WebCore::SharedBuffer::SharedBuffer):
66742         * platform/SharedBuffer.h:
66743
66744 2007-01-09  David Hyatt  <hyatt@apple.com>
66745
66746         This patch gets rudimentary column layout working.  Normal flow content only gets laid out into
66747         columns properly and painted correctly initially.  What doesn't work: hit testing, incremental repainting,
66748         column rule painting, child layers.
66749
66750         Some work needs to be done on the render tree dumper before column tests will be
66751         meaningful.
66752
66753         Also reworked overflow and fixed a bunch of bugs with the computation of overflow.  These include an error
66754         in the height calculations caused by not adding in the horizontal scrollbar height and other errors caused
66755         by not checking overflow in lowest/rightmostPosition.  Existing tests improve their rendering to match
66756         Firefox with this change.
66757
66758         Fixed a bug where a table cell incorrectly expanded to encompass floats inside an overflow:auto block.
66759         This should not have happened.  Covered by new test fast/overflow/table-overflow-float.html.
66760
66761         Reviewed by mitz
66762
66763         * page/Frame.cpp:
66764         * rendering/RenderBlock.cpp:
66765         (WebCore:::RenderFlow):
66766         (WebCore::RenderBlock::layoutBlock):
66767         (WebCore::RenderBlock::paintContents):
66768         (WebCore::RenderBlock::paintChildren):
66769         (WebCore::RenderBlock::paintObject):
66770         (WebCore::RenderBlock::lowestPosition):
66771         (WebCore::RenderBlock::rightmostPosition):
66772         (WebCore::RenderBlock::leftmostPosition):
66773         (WebCore::RenderBlock::avoidsFloats):
66774         (WebCore::RenderBlock::nodeAtPoint):
66775         (WebCore::RenderBlock::hitTestContents):
66776         (WebCore::RenderBlock::layoutColumns):
66777         * rendering/RenderBlock.h:
66778         (WebCore::RenderBlock::hasOverhangingFloats):
66779         (WebCore::RenderBlock::hasColumns):
66780         * rendering/RenderFlexibleBox.cpp:
66781         (WebCore::RenderFlexibleBox::layoutBlock):
66782         (WebCore::RenderFlexibleBox::layoutHorizontalBox):
66783         (WebCore::RenderFlexibleBox::layoutVerticalBox):
66784         * rendering/RenderFlow.cpp:
66785         (WebCore::RenderFlow::paintLines):
66786         (WebCore::RenderFlow::lowestPosition):
66787         (WebCore::RenderFlow::rightmostPosition):
66788         (WebCore::RenderFlow::leftmostPosition):
66789         * rendering/RenderFlow.h:
66790         (WebCore::RenderFlow::hasColumns):
66791         * rendering/RenderListMarker.cpp:
66792         (WebCore::RenderListMarker::paint):
66793         * rendering/RenderObject.h:
66794         (WebCore::RenderObject::expandsToEncloseOverflow):
66795         * rendering/RenderTableCell.h:
66796         (WebCore::RenderTableCell::expandsToEncloseOverflow):
66797         * rendering/RenderView.cpp:
66798         (WebCore::RenderView::paint):
66799
66800 2007-01-09  Darin Adler  <darin@apple.com>
66801
66802         - update all 2007 Apple copyrights for the new company name
66803
66804         * css/cssstyleselector.cpp:
66805         * html/HTMLLIElement.cpp:
66806         * platform/CharacterNames.h:
66807         * platform/TextBreakIterator.h:
66808         * platform/TextBreakIteratorICU.cpp:
66809         * platform/graphics/ImageBuffer.h:
66810         * rendering/CounterNode.cpp:
66811         * rendering/CounterNode.h:
66812         * rendering/RenderBox.h:
66813         * rendering/RenderContainer.cpp:
66814         * rendering/RenderCounter.cpp:
66815         * rendering/RenderCounter.h:
66816         * rendering/RenderImage.h:
66817         * rendering/RenderListItem.h:
66818         * rendering/RenderListMarker.h:
66819         * rendering/RenderObject.cpp:
66820         * rendering/RenderObject.h:
66821         * rendering/RenderStyle.cpp:
66822         * rendering/RenderStyle.h:
66823         * rendering/RenderTable.cpp:
66824         * rendering/RenderTableCell.cpp:
66825         * rendering/RenderTableCell.h:
66826         * rendering/RenderText.cpp:
66827         * rendering/RenderText.h:
66828         * rendering/RenderTreeAsText.cpp:
66829         * rendering/SVGRenderTreeAsText.cpp:
66830         * rendering/break_lines.cpp:
66831
66832 2007-01-09  Justin Garcia  <justin.garcia@apple.com>
66833
66834         Reviewed by john
66835
66836         <rdar://problem/4840662>
66837         REGRESSION: Mail crash when dragging text into a link
66838         
66839         moveParagraphs fails to move content into a display:block 
66840         anchor because of code in positionAvoidingSpecialElementBoundary,
66841         and so it infinitely recurs.
66842         
66843         * editing/htmlediting.cpp:
66844         (WebCore::positionAvoidingSpecialElementBoundary): Don't avoid anchors
66845         that have display:block so that content is inserted in the expected
66846         paragraph.  This fixes the bug and weird behavior when typing before/after
66847         anchors with display:block.
66848
66849 2007-01-09  Rob Buis  <buis@kde.org>
66850
66851         Reviewed by Darin.
66852
66853         http://bugs.webkit.org/show_bug.cgi?id=12145
66854         Color parsing is too relaxed in strict mode
66855         http://bugs.webkit.org/show_bug.cgi?id=12166
66856         REGRESSION (r18480): "336633" is not parsed as a color
66857
66858         Fix a regression by using String::format return value.
66859         Also make strict mode more strict for cases where hexcolors
66860         lack a #.
66861
66862         * css/cssparser.cpp:
66863         (WebCore::CSSParser::parseColor):
66864         (WebCore::CSSParser::parseColorFromValue):
66865         * css/cssparser.h:
66866
66867 2007-01-09  Darin Adler  <darin@apple.com>
66868
66869         Reviewed by Maciej.
66870
66871         - fixed regression where redirects did not have user-agent any more
66872
66873         Showed up as a failure in one of the http tests, so no new test needed.
66874
66875         * loader/mac/ResourceLoaderMac.mm: (WebCore::ResourceLoader::willSendRequest):
66876         Don't use a copy of the ResourceRequest; pass the original so it can be modified.
66877
66878 2007-01-09  Mitz Pettel  <mitz@webkit.org>
66879
66880         Reviewed by Darin.
66881
66882         - fix http://bugs.webkit.org/show_bug.cgi?id=11078
66883           Forms Don't Submit (ASP Pages)
66884
66885         Test: fast/dom/collection-namedItem-via-item.html
66886
66887         * bindings/js/kjs_html.cpp:
66888         (KJS::JSHTMLCollectionProtoFunc::callAsFunction): Changed item() to fall back
66889         to namedItem() if its argument does not convert to a number.
66890
66891 2007-01-09  Darin Adler  <darin@apple.com>
66892
66893         Reviewed by Maciej.
66894
66895         - fix http://bugs.webkit.org/show_bug.cgi?id=12174
66896           improve Unicode use (less WTF::Unicode:: prefix, centralized character names)
66897
66898         - got rid of namespace prefixes from most uses of WTF::Unicode
66899
66900         - updated for removal of WTF::Unicode::memcmp
66901         - updated for renaming of WTF::Unicode::strcasecmp to umemcasecmp.
66902
66903         - unified constants for special Unicode characters in a new
66904           CharacterNames.h header
66905
66906         * WebCore.xcodeproj/project.pbxproj:
66907         * css/cssparser.cpp:
66908         (WebCore::ParseString::lower):
66909         * dom/Document.cpp:
66910         (WebCore::isValidNameStart):
66911         (WebCore::isValidNamePart):
66912         * dom/Position.cpp:
66913         (WebCore::Position::leadingWhitespacePosition):
66914         (WebCore::Position::trailingWhitespacePosition):
66915         * editing/CompositeEditCommand.cpp:
66916         (WebCore::isWhitespace):
66917         * editing/HTMLInterchange.cpp:
66918         * editing/TextIterator.cpp:
66919         (WebCore::CircularSearchBuffer::CircularSearchBuffer):
66920         (WebCore::CircularSearchBuffer::append):
66921         * editing/htmlediting.cpp:
66922         (WebCore::stringWithRebalancedWhitespace):
66923         (WebCore::nonBreakingSpaceString):
66924         * editing/htmlediting.h:
66925         * html/HTMLFontElement.cpp:
66926         (WebCore::parseFontSizeNumber):
66927         * html/HTMLParser.cpp:
66928         (WebCore::HTMLParser::handleError):
66929         * html/HTMLSelectElement.cpp:
66930         (WebCore::stripLeadingWhiteSpace):
66931         * platform/Font.cpp:
66932         (WebCore::WidthIterator::advance):
66933         (WebCore::WidthIterator::normalizeVoicingMarks):
66934         * platform/GlyphMap.cpp:
66935         (WebCore::GlyphMap::locatePage):
66936         * platform/MimeTypeRegistry.h:
66937         * platform/StringHash.h:
66938         * platform/StringImpl.cpp:
66939         (WebCore::isSpace):
66940         (WebCore::StringImpl::append):
66941         (WebCore::StringImpl::insert):
66942         (WebCore::StringImpl::truncate):
66943         (WebCore::StringImpl::remove):
66944         (WebCore::parseLength):
66945         (WebCore::StringImpl::isLower):
66946         (WebCore::StringImpl::lower):
66947         (WebCore::StringImpl::upper):
66948         (WebCore::StringImpl::secure):
66949         (WebCore::StringImpl::foldCase):
66950         (WebCore::StringImpl::capitalize):t
66951         (WebCore::StringImpl::toInt):
66952         (WebCore::equalIgnoringCase):
66953         (WebCore::StringImpl::find):
66954         * platform/TextBoundaries.h:
66955         * platform/TextCodec.h:
66956         * platform/TextCodecLatin1.cpp:
66957         * platform/TextEncoding.h:
66958         * platform/TextEncodingRegistry.h:
66959         * platform/mac/PasteboardMac.mm:
66960         (WebCore::Pasteboard::writeSelection):
66961         * platform/mac/TextCodecMac.cpp:
66962         (WebCore::TextCodecMac::decode):
66963         * rendering/RenderBlock.cpp:
66964         (WebCore::RenderBlock::updateFirstLetter):
66965         * rendering/RenderListMarker.cpp:
66966         (WebCore::listMarkerText):
66967         (WebCore::RenderListMarker::paint):
66968         * rendering/RenderText.cpp:
66969         (WebCore::RenderText::widthFromCache):
66970         (WebCore::isSpaceAccordingToStyle):
66971         (WebCore::RenderText::setInternalString):
66972         * rendering/RenderTreeAsText.cpp:
66973         (WebCore::quoteAndEscapeNonPrintables):
66974         (WebCore::operator<<):
66975         * rendering/bidi.cpp:
66976         (WebCore::BidiState::BidiState):
66977         (WebCore::BidiContext::BidiContext):
66978         (WebCore::bidiNext):
66979         (WebCore::bidiFirst):
66980         (WebCore::BidiIterator::direction):
66981         (WebCore::appendRun):
66982         (WebCore::embed):
66983         (WebCore::RenderBlock::bidiReorderLine):
66984         (WebCore::RenderBlock::layoutInlineChildren):
66985         (WebCore::skipNonBreakingSpace):
66986         (WebCore::RenderBlock::findNextLineBreak):
66987         * rendering/break_lines.cpp:
66988         (WebCore::nextBreakablePosition):
66989         * rendering/break_lines.h:
66990         * xml/XPathParser.cpp:
66991         (WebCore::XPath::charCat):
66992
66993 2007-01-09  Matt Perry  <mpcomplete@chromium.org>
66994
66995         Reviewed by Darin.
66996
66997         - fix http://bugs.webkit.org/show_bug.cgi?id=12170
66998           RenderView holds dangling reference to RenderObjects as selection markers
66999
67000         This fixes the crash seen on Windows -- the underlying problem
67001         may still exist.
67002
67003         * rendering/RenderText.h:
67004         (WebCore::RenderText::selectionState):
67005         Change the m_selectionState enum-bitfield to an unsigned-bitfield,
67006         because enums on Windows are signed, which caused it to become
67007         negative (whereas the valid values are all positive).
67008
67009 2007-01-09  Darin Adler  <darin@apple.com>
67010
67011         Reviewed by Hyatt.
67012
67013         - http://bugs.webkit.org/show_bug.cgi?id=12175
67014           port break_lines.cpp to be platform independent
67015
67016         * platform/TextBreakIterator.h: Added lineBreakIterator.
67017         Removed ICU-specific stuff from the header.
67018
67019         * platform/TextBreakIteratorICU.cpp:
67020         (WebCore::setUpIterator): Added helper to be shared by the three different
67021         creation functions.
67022         (WebCore::characterBreakIterator): Changed to use setUpIterator.
67023         (WebCore::wordBreakIterator): Ditto.
67024         (WebCore::lineBreakIterator): Added.
67025
67026         * platform/qt/TextBreakIteratorQt.cpp:
67027         (WebCore::lineBreakIterator): Added a stub.
67028
67029         * rendering/break_lines.cpp:
67030         (WebCore::isBreakableSpace): Added.
67031         (WebCore::shouldBreakAfter): Added.
67032         (WebCore::needsAdvancedBreakAnalysis): Added.
67033         (WebCore::nextBreakablePosition): Changed to use TextBreakIterator on platforms
67034         other than Mac.
67035
67036 2007-01-09  Maciej Stachowiak  <mjs@apple.com>
67037
67038         Reviewed by Darin.
67039
67040         - move WebDataProtocol load handling from ResourceLoader to MainResourceLoader
67041         
67042         (it's only ever used for main resources)
67043
67044         * loader/ResourceLoader.h:
67045         (WebCore::ResourceLoader::setRequest):
67046         * loader/mac/MainResourceLoaderMac.mm:
67047         (WebCore::MainResourceLoader::willSendRequest):
67048         (WebCore::MainResourceLoader::continueAfterContentPolicy):
67049         * loader/mac/ResourceLoaderMac.mm:
67050         (WebCore::ResourceLoader::willSendRequest):
67051         (WebCore::ResourceLoader::didReceiveResponse):
67052
67053 2007-01-09  Rob Buis  <buis@kde.org>
67054
67055         Reviewed by Eric.
67056
67057         http://bugs.webkit.org/show_bug.cgi?id=12129
67058         repaint issue after setting viewBox attribute with ECMAScript
67059
67060         Make sure RenderSVGContainer updates after setting viewBox from js.
67061
67062         * ksvg2/svg/SVGSVGElement.cpp:
67063         (WebCore::SVGSVGElement::parseMappedAttribute):
67064         * rendering/RenderSVGContainer.cpp:
67065         (WebCore::RenderSVGContainer::setViewBox):
67066
67067 2007-01-09  Lars Knoll <lars@trolltech.com>
67068
67069         Make the Qt build compile... again!
67070
67071         * WebCore.pro:
67072         * loader/qt/FrameLoaderQt.cpp:
67073         * platform/graphics/qt/GraphicsContextQt.cpp:
67074         * platform/graphics/qt/ImageBufferQt.cpp:
67075         (WebCore::ImageBuffer::create):
67076         * platform/qt/WidgetQt.cpp:
67077         (WebCore::Widget::focusPolicy):
67078
67079 2007-01-09  David Hyatt  <hyatt@apple.com>
67080
67081         Fix for background: inherit bug where background-color wasn't getting properly overridden.  This was a
67082         regression from Safari 1.3 to 2.0.
67083
67084         Reviewed by bdash
67085
67086         fast/backgrounds/background-color-inherit-bug.html
67087
67088         * css/cssstyleselector.cpp:
67089         (WebCore::CSSStyleSelector::applyProperty):
67090
67091 2007-01-08  Brady Eidson <beidson@apple.com>
67092
67093         Reviewed by Brian Dash
67094
67095         <rdar://problem/4895178> 
67096         WebCore::BackForwardList vector should be backed by a HashSet to remove
67097         the potential expense in frequently calling BackForwardList::containsItem()
67098
67099         * history/BackForwardList.cpp:
67100         (WebCore::BackForwardList::addItem): Maintain HashSet as well as Vector
67101         (WebCore::BackForwardList::setCapacity): Ditto
67102         (WebCore::BackForwardList::close): Ditto
67103         (WebCore::BackForwardList::removeItem): Ditto
67104         (WebCore::BackForwardList::containsItem): Make a hash lookup instead of iterate 
67105         through the Vector
67106         * history/BackForwardList.h:
67107
67108 2007-01-08  David Hyatt  <hyatt@apple.com>
67109
67110         Fix a regression where layout is triggering on all recalcStyles, due to a bad comparison
67111         in the multicol assignment operator.
67112
67113         * rendering/RenderStyle.cpp:
67114         (WebCore::StyleMultiColData::operator==):
67115
67116 2007-01-08  Darin Adler  <darin@apple.com>
67117
67118         - rolled out Beth's RenderFlow::destroy change, which broke 5 editing tests
67119
67120         * rendering/InlineBox.cpp: (WebCore::InlineBox::root):
67121         * rendering/RenderFlow.cpp: (WebCore::RenderFlow::destroy):
67122         Used svn merge to roll the change out.
67123
67124 2007-01-09  Mark Rowe  <mrowe@apple.com>
67125
67126         Reviewed by Tim H.
67127
67128         Build fix for 64-bit platforms.
67129
67130         * platform/graphics/svg/SVGPaintServerGradient.h:
67131         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
67132         (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
67133
67134 2007-01-08  Anders Carlsson  <acarlsson@apple.com>
67135
67136         Reviewed by Brady.
67137
67138         Move some history related functions off the bridge and into FrameLoader directly.
67139
67140         * loader/FrameLoader.cpp:
67141         (WebCore::FrameLoader::canGoBackOrForward):
67142         (WebCore::FrameLoader::getHistoryLength):
67143         (WebCore::FrameLoader::historyURL):
67144         * loader/mac/FrameLoaderMac.mm:
67145         * page/mac/WebCoreFrameBridge.h:
67146
67147 2007-01-08  Sam Weinig  <sam@webkit.org>
67148
67149         Reviewed by Mark.
67150
67151         Adds outline-color to list of computable styles.
67152
67153         * css/CSSComputedStyleDeclaration.cpp:
67154         (WebCore::):
67155
67156 2007-01-08  Beth Dakin  <bdakin@apple.com>
67157
67158         Reviewed by Hyatt.
67159
67160         Fix for a bug that Adam, Hyatt, and I noticed when debugging 
67161         another problem.
67162
67163         * rendering/InlineBox.cpp:
67164         (WebCore::InlineBox::root): Added assertion. If we are casting to a 
67165         root, we should make sure we are root.
67166         * rendering/RenderFlow.cpp:
67167         (WebCore::RenderFlow::destroy): It is not enough to remove the 
67168         child boxes for anonymous blocks. We need to be more thorough when 
67169         cleaning these up. Adam's test case illustrates the problem well.
67170
67171 2007-01-08  John Sullivan  <sullivan@apple.com>
67172
67173         Tweak to previous checkin
67174
67175         * page/ContextMenuController.cpp:
67176         (WebCore::ContextMenuController::contextMenuItemSelected):
67177         Adam suggested I should nil-check frame->page()
67178
67179 2007-01-08  John Sullivan  <sullivan@apple.com>
67180
67181         Reviewed by Brady and Beth
67182         
67183         - fixed <rdar://problem/4912541> GMAIL: With selected text in a rich text message, choosing 
67184         "Search in Google" displays search results in the message body field
67185
67186         * page/ContextMenuController.cpp:
67187         (WebCore::ContextMenuController::contextMenuItemSelected):
67188         Visit google URL in main frame rather than in current frame
67189
67190 2007-01-08  David Hyatt  <hyatt@apple.com>
67191
67192         Fix computed style errors for color properties that had invalid colors.
67193         They should return the value of the 'color' property when their colors
67194         are not valid.
67195
67196         Fixed the computed style value for border-top-color (a typo was causing it to
67197         use border-left-color instead).
67198
67199         Implement outline-color computed style.
67200
67201         Reviewed by harrison
67202
67203         * css/CSSComputedStyleDeclaration.cpp:
67204         (WebCore::currentColorOrValidColor):
67205         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
67206
67207 2007-01-08  Remi Zara  <remi_zara@mac.com>
67208
67209         Reviewed by Darin and Eric.
67210
67211         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12150
67212         Handle correctly cases where no stops are defined, cases where a
67213         stop offset value is less than previous stops offset value, and cases
67214         where a stop offset value is greater than 1.0.
67215         
67216         * platform/graphics/svg/SVGPaintServerGradient.cpp:
67217         (WebCore::SVGPaintServerGradient::setGradientStops): Don't sort stops
67218         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
67219         (WebCore::cgGradientCallback): When there are no stops, use a transparent
67220         fill
67221         (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
67222         a stop offset must always be considered at greater or equal to all
67223         preceding stop offsets, but no more than 1.0
67224
67225 2007-01-08  Timothy Hatcher  <timothy@apple.com>
67226
67227         Reviewed by Geoff.
67228
67229         <rdar://problem/4865325> please re-add auto font activation support in WebKit
67230
67231         * platform/mac/WebFontCache.mm:
67232         (+[WebFontCache fontWithFamily:traits:size:]):
67233
67234 2007-01-08  Darin Adler  <darin@apple.com>
67235
67236         Reviewed by Adam.
67237
67238         - http://bugs.webkit.org/show_bug.cgi?id=12143
67239           remove Widget code unneeded now that form elements do not use Widget
67240
67241         * bindings/objc/DOMHTML.mm: (-[DOMHTMLSelectElement _activateItemAtIndex:]):
67242         Removed useless implementation that would only work with NSView-based
67243         <select> elements, and added a FIXME about the fact that this function
67244         doesn't do anything any more. I think it's used by Safari forms auto-fill.
67245
67246         * bridge/mac/WebCoreAXObject.mm: (-[WebCoreAXObject rendererForView:]):
67247         Removed code that depends on elementForView:, since that always returns
67248         nil now.
67249
67250         * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::~HTMLFormElement):
67251         Use a formDestroyed() function rather than clearing m_form directly so that
67252         this class doesn't have to be a friend of HTMLGenericFormElement.
67253
67254         * html/HTMLGenericFormElement.h: Removed now-unneeded friend declaration
67255         for HTMLFormElement. Moved definition of supportsFocus into the .cpp file.
67256         Added a public formDestroyed function for use by HTMLFormElement.
67257         * html/HTMLGenericFormElement.cpp:
67258         (WebCore::HTMLGenericFormElement::attach): Removed widget-specific code.
67259         (WebCore::HTMLGenericFormElement::isKeyboardFocusable): Ditto.
67260         (WebCore::HTMLGenericFormElement::isMouseFocusable): Ditto.
67261         (WebCore::HTMLGenericFormElement::supportsFocus): Added this here; it was
67262         in the header file before, for no good reason.
67263
67264         * page/EventHandler.h: Removed unused Mac-specific
67265         currentEventIsMouseDownInWidget.
67266         * page/mac/EventHandlerMac.mm: Ditto.
67267
67268         * page/Frame.cpp: (WebCore::Frame::frameForWidget): Changed to use
67269         RenderWidget to find the frame rather than the WigetClient element()
67270         function.
67271
67272         * page/mac/FrameMac.h: Removed unused bridgeForWidget.
67273         * page/mac/FrameMac.mm: Ditto.
67274
67275         * page/mac/WebCoreFrameBridge.h: Removed elementForView.
67276         * page/mac/WebCoreFrameBridge.mm: Ditto. While the scroll bar still did
67277         implement WebCoreWidgetHolder, it does not correspond to a DOM element,
67278         so this method was always returning nil.
67279
67280         * platform/Widget.h: Moved unused types and functions that are still
67281         in the platform-specific implementations into a "to be deleted" section:
67282         FocusPolicy, NoFocus, TabFocus, ClickFocus, StrongFocus, WheelFocus,
67283         lockDrawingFocus, font, focusPolicy, hasFocus, clearFocus, setFont,
67284         disableFlushDrawing, enableFlushDrawing, unlockDrawingFocus.
67285         Removed unused functions that are not in platform-specific implementations:
67286         sizeHint, baselinePosition, checksDescendantsForFocus.
67287         * platform/Widget.cpp: Removed functions.
67288
67289         * platform/WidgetClient.h: Emptied out the class. Soon we can delete it.
67290
67291         * platform/mac/PlatformScrollBarMac.mm: (-[WebCoreScrollBar mouseDown:]):
67292         Got rid of unneeded includes, removed use of the WebCoreWidgetHolder
67293         protocol and the one method in it, and changed the calls to beforeMouseDown
67294         and afterMouseDown to pass the widget pointer in.
67295
67296         * platform/mac/WebCoreWidgetHolder.h: Emptied out the file -- to be deleted
67297         later.
67298
67299         * platform/mac/WidgetMac.mm:
67300         (WebCore::Widget::~Widget): Removed code to manage deferredFirstResponder.
67301         (WebCore::Widget::hasFocus): Removed body of function and replaced with
67302         an assertion that it's never called. Later we'll remove it.
67303         (WebCore::Widget::setFocus): Tweaked a bit to work given changes to the
67304         FrameMac class. Also added a FIXME. Given how this works, it does not
67305         belong in the platform layer.
67306         (WebCore::Widget::clearFocus): Removed body of function and replaced with
67307         an assertion that it's never called. Later we'll remove it.
67308         (WebCore::Widget::focusPolicy): Ditto.
67309         (WebCore::Widget::font): Ditto.
67310         (WebCore::Widget::setFont): Ditto.
67311         (WebCore::Widget::lockDrawingFocus): Ditto.
67312         (WebCore::Widget::unlockDrawingFocus): Ditto.
67313         (WebCore::Widget::disableFlushDrawing): Ditto.
67314         (WebCore::Widget::enableFlushDrawing): Ditto.
67315         (WebCore::Widget::paint): Removed obsolete comment.
67316         (WebCore::Widget::sendConsumedMouseUp): Removed body of function and replaced with
67317         an assertion that it's never called. Later we'll remove it.
67318         (WebCore::Widget::setIsSelected): Tweaked a bit to work given changes to the
67319         FrameMac class. Also added a FIXME. Given how this works, it does not
67320         belong in the platform layer.
67321         (WebCore::Widget::beforeMouseDown): Changed to take an explicit Widget parameter.
67322         (WebCore::Widget::afterMouseDown): Ditto.
67323
67324         * rendering/RenderApplet.cpp:
67325         (WebCore::RenderApplet::intrinsicWidth): Changed to not call sizeHint() any more.
67326         I didn't change the values returned by the function, but they make no sense and
67327         this should probably be fixed later.
67328         (WebCore::RenderApplet::intrinsicHeight): Ditto.
67329
67330         * rendering/RenderWidget.h: Removed unneeded WidgetClient.h include. Changed
67331         RenderWidget to no longer inherit from WidgetClient. Added a find function to find
67332         a RenderWidget given a Widget. Removed all the virtual functions that override
67333         WidgetClient hooks.
67334         * rendering/RenderWidget.cpp: Removed all the WidgetClient functions.
67335         (WebCore::widgetRendererMap): Added. Map that gives the RenderWidget for each
67336         Widget that is owned by a RenderWidget.
67337         (WebCore::RenderWidget::destroy): Removed the setClient call and added a call to
67338         remove the widget from the widgetRendererMap.
67339         (WebCore::RenderWidget::setWidget): Ditto.
67340         (WebCore::RenderWidget::setStyle): Removed the call to Widget::setFont.
67341         (WebCore::RenderWidget::find): Added. Returns the RenderWidget for a Widget, if any.
67342
67343         - other changes
67344
67345         * dom/Node.cpp:
67346         (WebCore::Node::dump): Removed unnecessary use of DeprecatedString.
67347         (WebCore::appendAttributeDesc): Ditto.
67348         (WebCore::Node::showNode): Ditto.
67349         (WebCore::Node::formatForDebugger): Ditto.
67350
67351         * loader/CachedImage.cpp: (WebCore::CachedImage::createImage): Cleaned up
67352         conditional compilation so adding more MIME types here doesn't make the
67353         function more and more difficult to read.
67354
67355         * page/Frame.h: Removed unneeded includes and declarations.
67356         Tweaked formatting.
67357         * page/Page.h: Removed unneeded declarations.
67358         * platform/ScrollView.h: Removed unneeded includes.
67359
67360         * rendering/RenderBlock.cpp: (WebCore::RenderBlock::renderName): Tweaked formatting.
67361
67362 2007-01-08  Mitz Pettel  <mitz@webkit.org>
67363
67364         Reviewed by Darin.
67365
67366         - fix http://bugs.webkit.org/show_bug.cgi?id=12162
67367           The inheritableProperties array is duplicated
67368
67369         No test possible (no change to functionality).
67370
67371         * css/CSSComputedStyleDeclaration.cpp:
67372         (WebCore::CSSComputedStyleDeclaration::removeComputedInheritablePropertiesFrom): Added.
67373         Removes the inheritable properties that CSSComputedStyleDeclaration knows how to compute
67374         from the given mutable declaration.
67375         * css/CSSComputedStyleDeclaration.h:
67376         * css/CSSMutableStyleDeclaration.cpp: Removed one copy of the inheritableProperties array.
67377         * css/CSSMutableStyleDeclaration.h:
67378         * editing/ReplaceSelectionCommand.cpp:
67379         (WebCore::ReplaceSelectionCommand::removeRedundantStyles): Changed to call
67380         CSSComputedStyleDeclaration::removeComputedInheritablePropertiesFrom.
67381
67382 2007-01-08  Alexey Proskuryakov  <ap@webkit.org>
67383
67384         Reviewed by Darin.
67385
67386         http://bugs.webkit.org/show_bug.cgi?id=12099
67387         XMLHttpRequest shouldn't honor a charset specified via setRequestHeader
67388
67389         Test: http/tests/xmlhttprequest/request-encoding.html
67390
67391         * xml/xmlhttprequest.cpp:
67392         (WebCore::XMLHttpRequest::send): Don't try to get the charset from Content-Type. Keep checking 
67393         for unknown charsets, because that will be needed again when we start using document.xmlEncoding.
67394
67395 2007-01-08  Alexey Proskuryakov  <ap@webkit.org>
67396
67397         Reviewed by Darin.
67398
67399         http://bugs.webkit.org/show_bug.cgi?id=7640
67400         Menu items are displayed as "undefined"
67401
67402         * bindings/js/kjs_dom.cpp:
67403         (KJS::DOMNodeProtoFunc::callAsFunction):
67404         * bindings/js/kjs_domnode.h:
67405         (KJS::DOMNode::):
67406         Removed Node::item. No idea why it was there in the first place.
67407
67408         * bindings/js/kjs_html.cpp:
67409         (KJS::HTMLElementFunction::callAsFunction):
67410         * bindings/js/kjs_html.h:
67411         (KJS::JSHTMLElement::):
67412         Added HTMLSelectElement::item. It is not in DOM2 IDL, but the spec seems to mentions it anyway:
67413         "The contained options can be directly accessed through the select element as a collection."
67414
67415         * html/HTMLSelectElement.cpp:
67416         (WebCore::HTMLSelectElement::namedItem):
67417         (WebCore::HTMLSelectElement::item):
67418         * html/HTMLSelectElement.h:
67419         * html/HTMLSelectElement.idl:
67420         Added this method to DOM and IDL, too. Made namedItem() non-virtual.
67421
67422 2007-01-08  Beth Dakin  <bdakin@apple.com>
67423
67424         Reviewed by Maciej.
67425
67426         Fix for <rdar://problem/4912254> REGRESSION: After copying text to 
67427         the clipboard, the paste contextual remains dimmed when it should
67428         be active
67429
67430         No layout test for context menu problems.
67431
67432         * platform/ContextMenu.cpp:
67433         (WebCore::ContextMenu::checkOrEnableIfNeeded): Remove check to see 
67434         if the content is richly editable; it only has to be regular 
67435         editable and the call to canPaste() takes care of that.
67436
67437 2007-01-08  Sam Weinig  <sam@webkit.org>
67438
67439         Reviewed by Mitz.
67440
67441         Attempt to fix build for buildbots.
67442
67443         * rendering/RenderBlock.cpp:
67444         (WebCore::RenderBlock::columnGap):
67445         (WebCore::RenderBlock::calcColumnWidth):
67446
67447 2007-01-08  Darin Adler  <darin@apple.com>
67448
67449         Reviewed by Maciej.
67450
67451         - fix http://bugs.webkit.org/show_bug.cgi?id=3232
67452           CSS2: Web Kit does not support all list style types
67453
67454         Test case showed problems in cjk-ideographic and hebrew
67455         Test: fast/lists/w3-list-styles.html
67456
67457         * rendering/RenderListMarker.cpp:
67458         (WebCore::toCJKIdeographic): Fix the algorithm so it doesn't include leading zeroes.
67459         I had misread the part that says you start with the decimal form of the number.
67460         Fix an assertion that was too stringent. Fix the code to collapse consecutive zeroes
67461         so that it doesn't get confused by intervening "noChar" characters.
67462         (WebCore::RenderListMarker::paint): Reverse the text before painting if the first character's
67463         direction is right to left.
67464
67465 2007-01-08  Darin Adler  <darin@apple.com>
67466
67467         Reviewed by Beth.
67468
67469         - http://bugs.webkit.org/show_bug.cgi?id=12142
67470           render tree dump for test results should include the value of list markers
67471
67472         * rendering/RenderTreeAsText.cpp:
67473         (WebCore::getTagName): Changed to use String instead of DeprecatedString.
67474         (WebCore::quoteAndEscapeNonPrintables): Ditto. Also moved up so it can be used
67475         in the operator below.
67476         (WebCore::operator<<): Added clause for RenderListMarker that dumps the value
67477         of the list marker's text.
67478         (WebCore::nodePosition): Changed to use String instead of DeprecatedString.
67479         * rendering/SVGRenderTreeAsText.cpp:
67480         (WebCore::TextStreamSeparator::TextStreamSeparator): Changed to use String
67481         instead of DeprecatedString.
67482         (WebCore::getTagName): Ditto.
67483         (WebCore::write): Ditto.
67484
67485 2007-01-08  Sam Weinig  <sam@webkit.org>
67486
67487         Reviewed by ap and the rubber stamp of Maciej.
67488
67489         Patch for http://bugs.webkit.org/show_bug.cgi?id=12164
67490         Cleanup Tokenizers
67491
67492         - Moves Tokenizer class into its own file.
67493         - Move XMLTokenizer declaration from XMLTokenizer.cpp to XMLTokenizer.h
67494         - Fixup #includes.
67495
67496         * WebCore.xcodeproj/project.pbxproj:
67497         * dom/Document.cpp:
67498         (WebCore::Document::createTokenizer):
67499         * dom/Tokenizer.h: Added.
67500         (WebCore::Tokenizer::Tokenizer):
67501         (WebCore::Tokenizer::~Tokenizer):
67502         (WebCore::Tokenizer::stopParsing):
67503         (WebCore::Tokenizer::processingData):
67504         (WebCore::Tokenizer::executingScript):
67505         (WebCore::Tokenizer::wantsRawData):
67506         (WebCore::Tokenizer::writeRawData):
67507         (WebCore::Tokenizer::inViewSourceMode):
67508         (WebCore::Tokenizer::setInViewSourceMode):
67509         (WebCore::Tokenizer::wellFormed):
67510         (WebCore::Tokenizer::lineNumber):
67511         (WebCore::Tokenizer::columnNumber):
67512         * dom/XMLTokenizer.cpp:
67513         * dom/XMLTokenizer.h:
67514         (WebCore::XMLTokenizer::):
67515         (WebCore::XMLTokenizer::setIsXHTMLDocument):
67516         (WebCore::XMLTokenizer::isXHTMLDocument):
67517         (WebCore::XMLTokenizer::wellFormed):
67518         * html/HTMLElement.cpp:
67519         * html/HTMLTokenizer.h:
67520         (WebCore::Token::reset):
67521         (WebCore::HTMLTokenizer::checkBuffer):
67522         (WebCore::HTMLTokenizer::checkScriptBuffer):
67523         (WebCore::HTMLTokenizer::State::State):
67524         (WebCore::HTMLTokenizer::State::setBit):
67525         * xml/XSLTProcessor.cpp:
67526
67527 2007-01-08  Sam Weinig  <sam@webkit.org>
67528
67529         Reviewed by Tim H.
67530
67531         Adds -webkit-box-shadow to list of computable styles.
67532
67533         * css/CSSComputedStyleDeclaration.cpp:
67534         (WebCore::):
67535
67536 2007-01-08  Rob Buis  <buis@kde.org>
67537
67538         Reviewed by bdash.
67539
67540         Initialize the member vars, fixes testcases
67541         pointer-events-path.svg and pointer-events-text.svg
67542         on the PPC build.
67543
67544         * ksvg2/misc/PointerEventsHitRules.cpp:
67545         (WebCore::PointerEventsHitRules::PointerEventsHitRules):
67546
67547 2007-01-08  David Hyatt  <hyatt@apple.com>
67548
67549         This patch computes the correct column width and column count.  It ensures that content lays out constrained
67550         to the column width in one long strip.  It does not yet balance the long strip into multiple columns.
67551
67552         Reviewed by Mark
67553
67554         * rendering/RenderBlock.cpp:
67555         (WebCore:::RenderFlow):
67556         (WebCore::RenderBlock::layoutBlock):
67557         (WebCore::RenderBlock::rightOffset):
67558         (WebCore::RenderBlock::availableWidth):
67559         (WebCore::RenderBlock::columnGap):
67560         (WebCore::RenderBlock::calcColumnWidth):
67561         * rendering/RenderBlock.h:
67562         * rendering/RenderStyle.h:
67563         (WebCore::RenderStyle::setColumnWidth):
67564
67565 2007-01-08  David Hyatt  <hyatt@apple.com>
67566
67567         Fix column-count so that it supports auto just like column-width does.
67568
67569         Add a new function, availableWidth(), that will be used to return the width available to content placed inside
67570         a block.  For now it still returns contentWidth(), so no behavioral change has occurred yet.
67571
67572         Subclass calcWidth() in RenderBlock, but don't change anything yet.  This is where RenderBlock will calc the
67573         correct column width.
67574
67575         Reviewed by mark
67576
67577         * css/CSSComputedStyleDeclaration.cpp:
67578         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
67579         * css/cssstyleselector.cpp:
67580         (WebCore::CSSStyleSelector::applyProperty):
67581         * rendering/RenderBlock.cpp:
67582         (WebCore::RenderBlock::leftRelOffset):
67583         (WebCore::RenderBlock::rightRelOffset):
67584         (WebCore::RenderBlock::getClearDelta):
67585         (WebCore::RenderBlock::availableWidth):
67586         (WebCore::RenderBlock::calcWidth):
67587         * rendering/RenderBlock.h:
67588         * rendering/RenderBox.cpp:
67589         (WebCore::RenderBox::containingBlockWidth):
67590         * rendering/RenderObject.cpp:
67591         (WebCore::RenderObject::containingBlockWidth):
67592         (WebCore::RenderObject::paddingTop):
67593         (WebCore::RenderObject::paddingBottom):
67594         (WebCore::RenderObject::paddingLeft):
67595         (WebCore::RenderObject::paddingRight):
67596         * rendering/RenderObject.h:
67597         (WebCore::RenderObject::availableWidth):
67598         * rendering/RenderStyle.cpp:
67599         (WebCore::StyleMultiColData::StyleMultiColData):
67600         (WebCore::StyleMultiColData::operator==):
67601         * rendering/RenderStyle.h:
67602         (WebCore::RenderStyle::hasAutoColumnCount):
67603         (WebCore::RenderStyle::setColumnCount):
67604         (WebCore::RenderStyle::setHasAutoColumnCount):
67605         * rendering/RenderTable.cpp:
67606         (WebCore::RenderTable::calcWidth):
67607
67608 2007-01-08  David Hyatt  <hyatt@apple.com>
67609
67610         Fix z-index:inherit so that it works properly when inheriting from z-index:auto.
67611
67612         Reviewed by eric
67613
67614         fast/layers/zindex-inherit.html
67615
67616         * css/cssstyleselector.cpp:
67617         (WebCore::CSSStyleSelector::applyProperty):
67618
67619 2007-01-08  David Hyatt  <hyatt@apple.com>
67620
67621         Add support for all of the CSS3 multi-column properties in preparation for implementing the
67622         feature.
67623
67624         Reviewed by eric
67625
67626         * css/CSSComputedStyleDeclaration.cpp:
67627         (WebCore::):
67628         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
67629         * css/CSSMutableStyleDeclaration.cpp:
67630         (WebCore::):
67631         * css/CSSPropertyNames.in:
67632         * css/cssparser.cpp:
67633         (WebCore::CSSParser::parseValue):
67634         * css/cssstyleselector.cpp:
67635         (WebCore::CSSStyleSelector::applyProperty):
67636         * rendering/RenderStyle.cpp:
67637         (WebCore::StyleMultiColData::StyleMultiColData):
67638         (WebCore::StyleMultiColData::operator==):
67639         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
67640         (WebCore::StyleRareNonInheritedData::operator==):
67641         (WebCore::RenderStyle::RenderStyle):
67642         (WebCore::RenderStyle::diff):
67643         * rendering/RenderStyle.h:
67644         (WebCore::StyleMultiColData::operator!=):
67645         (WebCore::StyleMultiColData::ruleWidth):
67646         (WebCore::RenderStyle::columnWidth):
67647         (WebCore::RenderStyle::hasAutoColumnWidth):
67648         (WebCore::RenderStyle::columnCount):
67649         (WebCore::RenderStyle::columnGap):
67650         (WebCore::RenderStyle::hasAutoColumnGap):
67651         (WebCore::RenderStyle::columnRuleColor):
67652         (WebCore::RenderStyle::columnRuleStyle):
67653         (WebCore::RenderStyle::columnRuleWidth):
67654         (WebCore::RenderStyle::columnBreakBefore):
67655         (WebCore::RenderStyle::columnBreakInside):
67656         (WebCore::RenderStyle::columnBreakAfter):
67657         (WebCore::RenderStyle::setColumnWidth):
67658         (WebCore::RenderStyle::setHasAutoColumnWidth):
67659         (WebCore::RenderStyle::setColumnCount):
67660         (WebCore::RenderStyle::setColumnGap):
67661         (WebCore::RenderStyle::setHasAutoColumnGap):
67662         (WebCore::RenderStyle::setColumnRuleColor):
67663         (WebCore::RenderStyle::setColumnRuleStyle):
67664         (WebCore::RenderStyle::setColumnRuleWidth):
67665         (WebCore::RenderStyle::resetColumnRule):
67666         (WebCore::RenderStyle::setColumnBreakBefore):
67667         (WebCore::RenderStyle::setColumnBreakInside):
67668         (WebCore::RenderStyle::setColumnBreakAfter):
67669         (WebCore::RenderStyle::initialColumnCount):
67670         (WebCore::RenderStyle::initialColumnWidth):
67671
67672 2007-01-07  Rob Buis  <buis@kde.org>
67673
67674         Reviewed by Eric.
67675
67676         http://bugs.webkit.org/show_bug.cgi?id=10587
67677         pointer-events is not implemented for RenderSVGImage or RenderSVGText
67678
67679         Implement pointer-events for raster images and svg text.
67680
67681         * WebCore.xcodeproj/project.pbxproj:
67682         * ksvg2/misc/PointerEventsHitRules.cpp: Added.
67683         (WebCore::PointerEventsHitRules::PointerEventsHitRules):
67684         * ksvg2/misc/PointerEventsHitRules.h: Added.
67685         (WebCore::PointerEventsHitRules::):
67686         * rendering/RenderPath.cpp:
67687         (WebCore::RenderPath::nodeAtPoint):
67688         * rendering/RenderPath.h:
67689         * rendering/RenderSVGImage.cpp:
67690         (WebCore::RenderSVGImage::nodeAtPoint):
67691         * rendering/RenderSVGImage.h:
67692         * rendering/RenderSVGText.cpp:
67693         (WebCore::RenderSVGText::nodeAtPoint):
67694         * rendering/RenderSVGText.h:
67695
67696 2007-01-07  David Hyatt  <hyatt@apple.com>
67697
67698         Fix a regression where border-radius was not clipping the background when border was set to none.
67699         Fix multi-line inline flow painting to properly apply border-radius to the background only at the
67700         beginning of the first line and end of the last line.
67701
67702         Reviewed by eric
67703
67704         * rendering/InlineFlowBox.cpp:
67705         (WebCore::InlineFlowBox::paintBackground):
67706         * rendering/RenderBox.cpp:
67707         (WebCore::RenderBox::paintBackground):
67708         (WebCore::RenderBox::paintBackgroundExtended):
67709         * rendering/RenderBox.h:
67710         * rendering/RenderObject.h:
67711         (WebCore::RenderObject::paintBackgroundExtended):
67712
67713 2007-01-07  David Hyatt  <hyatt@apple.com>
67714
67715         Add support for the CSS3 box-shadow property.
67716
67717         Reviewed by olliej
67718
67719         fast/box-shadow/ contains the tests for this feature.
67720
67721         * platform/graphics/GraphicsContext.cpp:
67722         (WebCore::GraphicsContext::clipOutRoundedRect):
67723         * platform/graphics/GraphicsContext.h:
67724         * platform/graphics/cg/GraphicsContextCG.cpp:
67725         (WebCore::GraphicsContext::fillRoundedRect):
67726         (WebCore::GraphicsContext::clipOut):
67727         (WebCore::GraphicsContext::clipOutEllipseInRect):
67728         * platform/graphics/qt/GraphicsContextQt.cpp:
67729         (WebCore::GraphicsContext::fillRoundedRect):
67730         (WebCore::GraphicsContext::clipOut):
67731         (WebCore::GraphicsContext::clipOutEllipseInRect):
67732         * rendering/InlineFlowBox.cpp:
67733         (WebCore::InlineFlowBox::paint):
67734         (WebCore::InlineFlowBox::paintBoxShadow):
67735         (WebCore::InlineFlowBox::paintBoxDecorations):
67736         (WebCore::shouldDrawTextDecoration):
67737         (WebCore::InlineFlowBox::paintTextDecorations):
67738         * rendering/InlineFlowBox.h:
67739         * rendering/InlineRunBox.h:
67740         (WebCore::InlineRunBox::paintBoxDecorations):
67741         (WebCore::InlineRunBox::paintTextDecorations):
67742         * rendering/RenderBlock.cpp:
67743         (WebCore::RenderBlock::paintObject):
67744         * rendering/RenderBox.cpp:
67745         (WebCore::RenderBox::setStyle):
67746         (WebCore::RenderBox::paintBoxDecorations):
67747         (WebCore::RenderBox::paintBackgroundExtended):
67748         * rendering/RenderFieldset.cpp:
67749         (WebCore::RenderFieldset::paintBoxDecorations):
67750         * rendering/RenderHTMLCanvas.cpp:
67751         (WebCore::RenderHTMLCanvas::paint):
67752         * rendering/RenderImage.cpp:
67753         (WebCore::RenderImage::paint):
67754         * rendering/RenderImage.h:
67755         * rendering/RenderListMarker.cpp:
67756         (WebCore::RenderListMarker::paint):
67757         * rendering/RenderObject.cpp:
67758         (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
67759         (WebCore::RenderObject::paintBoxShadow):
67760         (WebCore::RenderObject::dump):
67761         (WebCore::RenderObject::setStyle):
67762         * rendering/RenderObject.h:
67763         (WebCore::RenderObject::hasBoxDecorations):
67764         (WebCore::RenderObject::setHasBoxDecorations):
67765         * rendering/RenderSVGContainer.cpp:
67766         (WebCore::RenderSVGContainer::paint):
67767         * rendering/RenderTable.cpp:
67768         (WebCore::RenderTable::paint):
67769         (WebCore::RenderTable::paintBoxDecorations):
67770         * rendering/RenderTableCell.cpp:
67771         (WebCore::RenderTableCell::RenderTableCell):
67772         (WebCore::RenderTableCell::setStyle):
67773         (WebCore::RenderTableCell::paintBoxDecorations):
67774         * rendering/RenderWidget.cpp:
67775         (WebCore::RenderWidget::paint):
67776
67777 2007-01-07  Rob Buis  <buis@kde.org>
67778
67779         Reviewed by weinig.
67780
67781         http://bugs.webkit.org/show_bug.cgi?id=10362
67782         SVG needs to support SVGError events and some form of "error state"
67783
67784         Report SVG warnings and errors on (JS) console.
67785         Expose line and column number getters in Tokenizer in
67786         order to display them with the error message.
67787
67788         * dom/XMLTokenizer.cpp:
67789         * dom/XMLTokenizer.h:
67790         (WebCore::Tokenizer::lineNumber):
67791         (WebCore::Tokenizer::columnNumber):
67792         * html/HTMLTokenizer.h:
67793         (WebCore::HTMLTokenizer::lineNumber):
67794         (WebCore::HTMLTokenizer::columnNumber):
67795         * ksvg2/misc/SVGDocumentExtensions.cpp:
67796         (WebCore::SVGDocumentExtensions::reportWarning):
67797         (WebCore::SVGDocumentExtensions::reportError):
67798         * ksvg2/misc/SVGDocumentExtensions.h:
67799         * ksvg2/svg/SVGCircleElement.cpp:
67800         (WebCore::SVGCircleElement::parseMappedAttribute):
67801         * ksvg2/svg/SVGElement.h:
67802         * ksvg2/svg/SVGEllipseElement.cpp:
67803         (WebCore::SVGEllipseElement::parseMappedAttribute):
67804         * ksvg2/svg/SVGFitToViewBox.cpp:
67805         (WebCore::SVGFitToViewBox::parseViewBox):
67806         * ksvg2/svg/SVGFitToViewBox.h:
67807         * ksvg2/svg/SVGImageElement.cpp:
67808         (WebCore::SVGImageElement::parseMappedAttribute):
67809         * ksvg2/svg/SVGParserUtilities.cpp:
67810         (WebCore::SVGPolyParser::parsePoints):
67811         * ksvg2/svg/SVGParserUtilities.h:
67812         * ksvg2/svg/SVGPathElement.cpp:
67813         (WebCore::SVGPathElement::parseMappedAttribute):
67814         * ksvg2/svg/SVGPatternElement.cpp:
67815         (WebCore::SVGPatternElement::parseMappedAttribute):
67816         * ksvg2/svg/SVGPolyElement.cpp:
67817         (WebCore::SVGPolyElement::parseMappedAttribute):
67818         * ksvg2/svg/SVGRadialGradientElement.cpp:
67819         (WebCore::SVGRadialGradientElement::parseMappedAttribute):
67820         * ksvg2/svg/SVGRectElement.cpp:
67821         (WebCore::SVGRectElement::parseMappedAttribute):
67822         * ksvg2/svg/SVGSVGElement.cpp:
67823         (WebCore::SVGSVGElement::parseMappedAttribute):
67824         * ksvg2/svg/SVGTextContentElement.cpp:
67825         (WebCore::SVGTextContentElement::parseMappedAttribute):
67826         * ksvg2/svg/SVGUseElement.cpp:
67827         (WebCore::SVGUseElement::parseMappedAttribute):
67828
67829 2007-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
67830
67831         Reviewed by Sam.
67832
67833         Cleanup code & fix InlineBox positioning when text-anchor is used.
67834
67835         * rendering/RenderSVGText.cpp: Cleanup code.
67836         (WebCore::RenderSVGText::nodeAtPoint):
67837         (WebCore::RenderSVGText::absoluteRects):
67838         (WebCore::RenderSVGText::paint):
67839         * rendering/RenderText.cpp: Remove unused function posOfChar()
67840         * rendering/RenderText.h: Ditto.
67841         * rendering/SVGInlineFlowBox.cpp:
67842         (WebCore::translateBox):
67843         (WebCore::placePositionedBoxesHorizontally):
67844
67845 2007-01-06  George Staikos  <staikos@kde.org>
67846
67847         Reviewed by Brady.
67848
67849         Make the Qt build work.... again.
67850
67851         * WebCore.pro:
67852         * loader/FrameLoader.cpp:
67853         (WebCore::FrameLoader::requestFromDelegate):
67854         * loader/qt/DocumentLoaderQt.cpp:
67855         * loader/qt/FrameLoaderQt.cpp:
67856         * loader/qt/MainResourceLoaderQt.cpp: Added.
67857         (WebCore::MainResourceLoader::create):
67858         * loader/qt/ResourceLoaderQt.cpp:
67859         (WebCore::ResourceLoader::load):
67860         (WebCore::ResourceLoader::cancel):
67861         (WebCore::ResourceLoader::releaseResources):
67862         (WebCore::ResourceLoader::addData):
67863         * platform/network/qt/ResourceHandleQt.cpp:
67864         (WebCore::ResourceHandle::supportsBufferedData):
67865         (WebCore::ResourceHandle::bufferedData):
67866         (WebCore::ResourceHandle::loadResourceSynchronously):
67867         * platform/qt/LoaderFunctionsQt.cpp:
67868         * platform/qt/TemporaryLinkStubs.cpp: implemented some functions
67869         (WebCore::screenDepth):
67870         (WebCore::screenDepthPerComponent):
67871         (WebCore::screenIsMonochrome):
67872         (WebCore::screenRect):
67873         (WebCore::screenAvailableRect):
67874
67875 2007-01-07  Mitz Pettel  <mitz@webkit.org>
67876
67877         Reviewed by Mark Rowe.
67878
67879         - fix http://bugs.webkit.org/show_bug.cgi?id=11133
67880
67881         Test: fast/forms/listbox-clip.html
67882
67883         * platform/mac/PlatformScrollBarMac.mm:
67884         (-[WebCoreScrollBar initWithPlatformScrollbar:]): Get the correct scrollbar
67885         width/height based on control size.
67886         * rendering/RenderListBox.cpp:
67887         Renamed optionsSpacingLeft to optionsSpacingHorizontal since it is applied
67888         on both sides.
67889         (WebCore::RenderListBox::calcMinMaxWidth): Account for optionsSpacingHorizontal.
67890         Not including the spacing before went unnoticed since the scrollbar was lying
67891         about its width by exactly the same amount.
67892         (WebCore::RenderListBox::paintObject): Clip out the scrollbar.
67893         (WebCore::RenderListBox::paintItemForeground): Changed for the rename.
67894
67895 2007-01-07  Mitz Pettel  <mitz@webkit.org>
67896
67897         Reviewed by Hyatt.
67898
67899         - fix http://bugs.webkit.org/show_bug.cgi?id=11935
67900           REGRESSION: Changing the overflow style dynamically does not force repaint
67901
67902         Test: fast/repaint/erase-overflow.html
67903
67904         * rendering/RenderBox.cpp:
67905         (WebCore::RenderBox::setStyle): Added a repaint before changing hasOverflowClip
67906         to true, to ensure that the current overflow is erased.
67907
67908 2007-01-07  Graham Dennis  <graham.dennis@gmail.com>
67909
67910         Reviewed by Darin.
67911
67912         Patch for http://bugs.webkit.org/show_bug.cgi?id=12106
67913         Changed URL from WebResourceLoadDelegate's webView:resource:willSendRequest:... is ignored
67914
67915         * loader/mac/SubresourceLoaderMac.mm:
67916         (WebCore::SubresourceLoader::willSendRequest): Use m_originalURL instead of request().url()
67917         as m_request is not set until the end of ResourceLoader::willSendRequest. Also, ensure that
67918         the request is updated if the frame's client changes it, and that the SubresourceLoader's client
67919         gets the new request and not the old one. 
67920
67921 2007-01-07  Alexey Proskuryakov  <ap@webkit.org>
67922
67923         Reviewed by Darin.
67924
67925         http://bugs.webkit.org/show_bug.cgi?id=10313
67926         xsl:import doesn't work in stylesheets loaded via XMLHttpRequest
67927
67928         This is a partial fix that makes a couple more steps towards fixing the problem.
67929
67930         Test: fast/xsl/transform-xhr-doc.xhtml
67931
67932         * xml/XSLTProcessor.cpp:
67933         (WebCore::xsltStylesheetPointer): Pass an URL for the stylesheet. I'm not sure why this constructor even needs it, 
67934         given that it has a Node, but this is a small modifications that makes XSLImportRule try to load from a correct URL.
67935         (WebCore::XSLTProcessor::transformToString): Fix the crash for real this time.
67936
67937 2007-01-06  Rob Buis  <buis@kde.org>
67938
67939         Reviewed by Darin.
67940
67941         http://bugs.webkit.org/show_bug.cgi?id=12125
67942         overflow attribute of the symbol element not respected
67943
67944         Copy the attribute map to the cloned node so the overflow on
67945         the symbol is respected.
67946
67947         * ksvg2/svg/SVGUseElement.cpp:
67948         (WebCore::SVGUseElement::closeRenderer):
67949
67950 2007-01-06  Eric Seidel  <eric@webkit.org>
67951
67952         Reviewed and significantly tweaked by Darin.
67953
67954         - fix http://bugs.webkit.org/show_bug.cgi?id=12103
67955           LEAK: Fix the leaking ImageBuffer buffers on TOT
67956
67957         * ksvg2/svg/SVGMaskElement.h:
67958         * ksvg2/svg/SVGMaskElement.cpp:
67959         (WebCore::SVGMaskElement::drawMaskerContent):
67960         Changed to return auto_ptr since it returns a newly-created ImageBuffer.
67961
67962         * ksvg2/svg/SVGPatternElement.cpp:
67963         (WebCore::SVGPatternElement::buildPattern):
67964         Changed to use auto_ptr since ImageBuffer::create now returns one.
67965
67966         * platform/graphics/GraphicsContext.h: Removed the include of ImageBuffer.h,
67967         which was never needed, and the declaration of createImageBuffer, which is
67968         now a class member function of ImageBuffer.
67969
67970         * platform/graphics/ImageBuffer.h: Replaced the constructor with a create
67971         function. Added a comment about the need to move renderSubtreeToImage
67972         elsewhere. Added an m_data member to store the data so it can be deleted
67973         when the object is done, made the m_size member non-platform-specific.
67974         Added a private constructor for use to create the CG version.
67975
67976         * platform/graphics/cg/GraphicsContextCG.cpp: Removed
67977         GraphicsContext::createImageBuffer.
67978
67979         * platform/graphics/cg/ImageBufferCG.cpp:
67980         (WebCore::ImageBuffer::create): Added. Replaces the old
67981         GraphicsContext::createImageBuffer function.
67982         (WebCore::ImageBuffer::ImageBuffer): Added m_data and m_context.
67983         (WebCore::ImageBuffer::~ImageBuffer): Added a fastFree of the data and got
67984         rid of the unneeded null check before calling CGImageRelease.
67985
67986         * platform/graphics/svg/SVGPaintServerGradient.h: Removed the include of
67987         ImageBuffer.h and declared the ImageBuffer class instead.
67988
67989         * platform/graphics/svg/SVGPaintServerPattern.h: Removed the include of
67990         ImageBuffer.h and declared the ImageBuffer class instead, and changed setTile
67991         to take an auto_ptr since it takes ownership of the ImageBuffer.
67992         * platform/graphics/svg/SVGPaintServerPattern.cpp:
67993         (WebCore::SVGPaintServerPattern::setTile): Ditto.
67994
67995         * platform/graphics/svg/SVGResourceMasker.h: Removed the include of
67996         ImageBuffer.h and declared the ImageBuffer class instead, and changed setMask
67997         to take an auto_ptr since it takes ownership of the ImageBuffer.
67998         * platform/graphics/svg/SVGResourceMasker.cpp:
67999         (WebCore::SVGResourceMasker::setMask): Ditto.
68000
68001         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
68002         (WebCore::SVGPaintServerGradient::setup): Updated to use auto_ptr.
68003
68004         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp: Updated includes.
68005
68006         * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
68007         (WebCore::SVGResourceMasker::applyMask): Updated to use auto_ptr.
68008
68009         - other changes
68010
68011         * ksvg2/svg/SVGAnimateTransformElement.cpp:
68012         (WebCore::SVGAnimateTransformElement::handleStartCondition):
68013         Remove unused variables.
68014
68015 2007-01-06  Mitz Pettel  <mitz@webkit.org>
68016
68017         Reviewed by Maciej.
68018
68019         - fix http://bugs.webkit.org/show_bug.cgi?id=12136
68020           REGRESSION: Counters-related leaks
68021
68022         * rendering/RenderCounter.cpp:
68023         (WebCore::destroyCounterNodeChildren): Delete the child counter nodes.
68024
68025 2007-01-05  Adele Peterson  <adele@apple.com>
68026
68027         Release build fix.
68028
68029         * rendering/RenderListItem.cpp: (WebCore::RenderListItem::explicitValueChanged): Initialize listRenderer.
68030
68031 2007-01-05  Darin Adler  <darin@apple.com>
68032
68033         Reviewed by Hyatt.
68034
68035         - eliminated use of DeprecatedString for list item markers
68036         - eliminated use of DeprecatedValueList for border style collapsing
68037         - made many members private instead of protected or public
68038
68039         - reworked counter implementation to fix most of the CSS 2.1 counter tests;
68040             made CounterNode be a simple non-polymorphic class, moved most counter-
68041             specific code out of RenderObject into RenderCounter, changed the data
68042             structure in RenderStyle to be more speed-efficient but less space-
68043             efficient for nodes with counter styles
68044         - fixed http://bugs.webkit.org/show_bug.cgi?id=11557
68045
68046         Tests: css2.1
68047
68048         - fixed a bug where counter text did not have text transform or text security
68049           applied to it
68050
68051         Test: fast/css/counters/counter-text-security.html
68052         Test: fast/css/counters/counter-text-transform.html
68053
68054         - improved handling of CSS content property values with data of the wrong
68055           type; this probably needs a bit more refinement
68056
68057         Test: fast/css-generated-content/reset-content-to-initial-expected.txt
68058
68059         - fixed a bug where removing the value attribute from an HTMLLIElement would
68060           set the list item's value to 0 instead of restoring it to normal
68061
68062         Test: fast/lists/li-values.html
68063
68064         - fixed a bug where changing the text security style from one style to another
68065           would not change the displayed text
68066
68067         Test: fast/css/text-security.html
68068
68069         - fixed some problems handling long sequences of counter-related styles;
68070           still needs more work and some super-large test cases to check if
68071           recursive algorithms for these that will overflow stack remain
68072
68073         - added support for list styles decimal-leading-zero, hiragana, hirigana-iroha,
68074           katakana, katakana-iroha, cjk-ideographic, armenian, and georgian
68075
68076         Test: fast/lists/decimal-leading-zero.html
68077
68078         - minor tweaks and bug fixes for other list styles, including range checking
68079
68080         * WebCore.exp: Updated for RenderListItem change.
68081
68082         * bridge/mac/WebCoreAXObject.mm: (-[WebCoreAXObject value]): Updated to use
68083         String instead of DeprecatedString.
68084
68085         * css/CSSComputedStyleDeclaration.cpp:
68086         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Removed
68087         implementation for counter styles for now. We should probably restore it
68088         later, but we need to make sure the returned list is separate from the
68089         original list in the DOM -- modifying the list should not change the element
68090         it was computed from.
68091
68092         * css/Counter.h: Removed unneeded empty constructor and destructor.
68093
68094         * css/cssstyleselector.cpp:
68095         (WebCore::applyCounterList): Added. Stores counter directives in hash tables
68096         that should allow us to efficiently implement dynamic counter changes. Full
68097         support will have to wait for a future check-in.
68098         (WebCore::CSSStyleSelector::applyProperty): Changed counter properties to
68099         call applyCounterList. Reformatted the code to parse the content property for
68100         changes to RenderStyle and to handle the case where some the items in the
68101         content list don't generate any content.
68102
68103         * editing/visible_units.cpp:
68104         * rendering/RenderBox.cpp:
68105         * rendering/RenderFlexibleBox.cpp:
68106         * rendering/RenderFlow.cpp:
68107         * rendering/RenderSlider.cpp:
68108         Added includes needed because of header changes.
68109
68110         * html/HTMLLIElement.H: Removed unneeded m_isValued.
68111         * html/HTMLLIElement.cpp:
68112         (WebCore::HTMLLIElement::parseMappedAttribute): To match test results seen
68113         in WinIE, ignore values that are 0 or negative, and use new functions in
68114         RenderListItem to communicate the lack of a valid value.
68115         (WebCore::HTMLLIElement::attach): More of the same.
68116
68117         * rendering/CounterNode.h: Made CounterNode be a non-polymorphic class,
68118         removing all the subclasses. Merged in CounterResetNode. Removed
68119         m_total from CounterResetNode, because it isn't needed for any of
68120         the styles (decimal-leading-zero always uses two digits). Removed
68121         m_hasSeparator and m_willNeedLayout since they aren't needed any more.
68122         Renamed m_count to m_countInParent for clarify, and named the list
68123         links the same as their associated functions. Removed many functions
68124         as well.
68125         * rendering/CounterNode.cpp:
68126         (WebCore::CounterNode::CounterNode): Added new fields.
68127         (WebCore::CounterNode::computeCountInParent): Added. Used by recount.
68128         (WebCore::CounterNode::recount): Simplified by removing unused parameter and the
68129         "get next" idiom. Changed to be iterative instead of recursive so we can handle
68130         arbitrarily long lists.
68131         (WebCore::CounterNode::insertAfter): Moved here from CounterResetNode. Updated
68132         for field name changes. Corrected rule for when to recount.
68133         (WebCore::CounterNode::removeChild): Moved here from CounterResetNode. Changed
68134         to only work on nodes without children. Corrected rule for when to recount.
68135         (WebCore::nextInPreOrderAfterChildren): Added. For debugging only.
68136         (WebCore::nextInPreOrder): Ditto.
68137         (WebCore::showTreeAndMark): Ditto.
68138         (showTree): Ditto.
68139
68140         * rendering/CounterListItem.h:
68141         * rendering/CounterResetNode.h:
68142         * rendering/CounterResetNode.cpp:
68143         Marked ready to remove. I'll do the remove in a separate patch, since I have
68144         to update a lot of different make files when I do.
68145
68146         * rendering/ListMarkerBox.cpp: (WebCore::ListMarkerBox::isText): Changed for the
68147         change to RenderListMarker.
68148
68149         * rendering/RenderBlock.cpp:
68150         (WebCore::RenderBlock::addChildToFlow): Changed to use functions instead of
68151         direct field access so the fields can be private and we don't need to be friends.
68152         (WebCore::RenderBlock::getBaselineOfFirstLineBox): Ditto.
68153         (WebCore::RenderBlock::getBaselineOfLastLineBox): Ditto.
68154         * rendering/RenderBlock.h:
68155         (WebCore::RenderBlock::initMaxMarginValues): Ditto.
68156         (WebCore::RenderBlock::firstRootBox): Ditto.
68157         (WebCore::RenderBlock::lastRootBox): Ditto.
68158         * rendering/RenderBox.h:
68159         (WebCore::RenderBox::setWidth): Ditto.
68160         (WebCore::RenderBox::setHeight): Ditto.
68161         * rendering/RenderButton.cpp:
68162         (WebCore::RenderButton::addChild): Ditto.
68163         * rendering/bidi.cpp:
68164         (WebCore::RenderBlock::determineStartPosition): Ditto.
68165
68166         * rendering/RenderContainer.h: Renamed m_first and m_last to m_firstChild
68167         and m_lastChild. Made them private instead of proected. Removed the
68168         setFirstChild and setLastChild functions.
68169         * rendering/RenderContainer.cpp:
68170         (WebCore::RenderContainer::RenderContainer): Updated for field name change.
68171         Changed all calls to get at fields directly instead of using functions.
68172         (WebCore::RenderContainer::destroyLeftoverChildren): Ditto.
68173         (WebCore::updateListMarkerNumbers): Updated for RenderListItem change.
68174         (WebCore::RenderContainer::addChild): Changed to get at fields directly
68175         instead of using functions. Also used release() since RenderText::setText
68176         now takes PassRefPtr.
68177         (WebCore::RenderContainer::removeChildNode): Changed to get at fields directly
68178         instead of using functions.
68179         (WebCore::RenderContainer::updatePseudoChildForObject): Create the anonymous
68180         box only if at least one of of the items in the content list actually
68181         generates content. Since a RenderCounter is a RenderText, don't bother making
68182         a new style for it -- it just shares the style with its parent. Changed code
68183         to use RenderImage::setCachedImage() instead of of setContentObject().
68184         Added a call to setIsAnonymousImage() here, which was the only special thing
68185         that setContentObject() used to do. Pass a reference to the counter to the
68186         RenderCounter rather than a pointer. Pass document() as the node instead of
68187         passing the element to RenderCounter, which makes it anonymous automatically,
68188         and removed the setIsAnonymous call.
68189         (WebCore::RenderContainer::appendChildNode): Chagned to get at fields directly
68190         instead of using functions.
68191         (WebCore::RenderContainer::insertChildNode): Ditto.
68192         (WebCore::RenderContainer::layout): Ditto.
68193         (WebCore::RenderContainer::removeLeftoverAnonymousBoxes): Ditto.
68194         (WebCore::RenderContainer::positionForCoordinates): Ditto.
68195         (WebCore::RenderContainer::addLineBoxRects): Ditto.
68196
68197         * rendering/RenderCounter.h: Removed unneeded layout override, never called on a
68198         text node. Added override of originalString. Replaced CounterData* with a copy of
68199         the CounterContent -- it's two atomic strings and an integer so it's efficient
68200         enough to store all three in the render object, and this eliminates the lifetime
68201         problems we could have if we used a pointer.
68202         * rendering/RenderCounter.cpp: Removed duplicate copy of list marker code.
68203         (WebCore::counterMaps): Moved these maps here from RenderObject.
68204         (WebCore::previousSiblingOrParent): Added.
68205         (WebCore::lastDescendant): Added.
68206         (WebCore::previousInPreOrder): Added.
68207         (WebCore::planCounter): Added.
68208         (WebCore::findPlaceForCounter): Added.
68209         (WebCore::counter): New name of function that was named RenderObject::findCounter.
68210         Also uses a new algorithm that passes all the CSS 2.1 tests.
68211         (WebCore::RenderCounter::RenderCounter): Changed to take a Document* instead of a
68212         Node*, since at the moment counters are always anonymous.
68213         (WebCore::RenderCounter::originalString): Added. This overrides the originalString
68214         in the RenderText base class so that any text transforms will use the counter's
68215         value. This code was previously in calcMinMaxWidth.
68216         (WebCore::RenderCounter::calcMinMaxWidth): Changed to call setInternalString and
68217         pass originalString -- this uses the counter's value from the counter tree.
68218         (WebCore::destroyCounterNodeChildren): Added.
68219         (WebCore::RenderCounter::destroyCounterNodes): Added. Called as needed from
68220         RenderObject::destroy for objects that have counter nodes.
68221
68222         * rendering/RenderFlow.h: Made m_continuation private instead of protected.
68223
68224         * rendering/RenderImage.h: Removed unneeded includes, and unnecessary element()
68225         function that casts to HTMLElement*. Made image() protected, and made the two
68226         calcAspectRatio functions private. Removed setContentObject(). Renamed the
68227         errorOccured() function to isErrorImage() and made it private.
68228         * rendering/RenderImage.cpp:
68229         (WebCore::RenderImage::RenderImage): Removed initialization of removed
68230         m_selectionState field.
68231         (WebCore::RenderImage::setCachedImage): Rearrange code so it won't try to
68232         call isErrorImage() on a null image.
68233         (WebCore::RenderImage::paint): Updated for name change.
68234
68235         * rendering/RenderListBox.h: Removed unneeded forward declarations.
68236
68237         * rendering/RenderListItem.h:
68238         Renamed markerStringValue() to markerText() and made it return a String instead of
68239         a DeprecatedString. Renamed m_prededfVal to m_explicitValue. Added booleans named
68240         m_hasExplicitValue and m_isValueUpToDate and marked m_value mutable so it can be
68241         computed in const member functions.
68242         (WebCore::RenderListItem::value): Changed to update value on demand at the time
68243         you ask for it.
68244         (WebCore::RenderListItem::hasExplicitValue): Added. Use instead of magic -1 value
68245         to indicate that the item does or does not have an explicit value.
68246         (WebCore::RenderListItem::explicitValue): Added.
68247         (WebCore::RenderListItem::setExplicitValue): Added.
68248         (WebCore::RenderListItem::clearExplicitValue): Added.
68249         * rendering/RenderListItem.cpp:
68250         (WebCore::RenderListItem::RenderListItem): Updated to not use magic -1 values.
68251         (WebCore::RenderListItem::setStyle): Removed call to RenderListMarker::setListItem
68252         since it's not needed any more, and instead pass the list item to the constructor.
68253         (WebCore::previousListItem): Made parameter const.
68254         (WebCore::RenderListItem::calcValue): Restructed the function a bit.
68255         (WebCore::RenderListItem::updateValueNow): Added. Calls calcValue.
68256         (WebCore::RenderListItem::updateValue): Added. New name for resetValue(). Unlike
68257         the old version, this no longer calculates the value until it's asked-for later.
68258         (WebCore::RenderListItem::markerText): Changed to return String rather than a
68259         DeprecatedString and to return a null string rather than empty string when there
68260         is no marker.
68261
68262         * rendering/RenderListMarker.h: Added listMarkerText function -- common code shared
68263         with anyone who needs to convert a value into text given a list style.
68264         Changed constructor to take a RenderListItem and figure out the document from that.
68265         Added isImage() and isText() functions and removed listImage() function. Changed the
68266         type of the text() function from DeprecatedString to String. Removed the listItem()
68267         and seListeItem() functions. Made the getRelativeMarkerRect() function private.
68268         Renamed m_item to m_text and chagned it from DeprecatedString to String. Renamed
68269         m_listImage to m_image.
68270         * rendering/RenderListMarker.cpp:
68271         (WebCore::toRoman): Added range checking to fix buffer overrun for large or negative
68272         numbers. Rewrote to use a local UChar array and String rather than prepending to a
68273         DeprecatedString.
68274         (WebCore::toAlphabetic): Replaces toLetterString, and is more flexible since it takes
68275         an alphabet array. Changed to match CSS 3 specification by using decimal numbering for
68276         0 and negative numbers. Rewrote to use a local UChar array and String rather than
68277         prepending to a DeprecatedString.
68278         (WebCore::toHebrewUnder1000): Added. Helper function for Hebrew numbers so we can
68279         handle numbers up to a million.
68280         (WebCore::toHebrew): Changed to use toHebrewUnder1000, added a special case for
68281         zero, negative, and too-large numbers.
68282         (WebCore::toArmenianUnder10000): Added. Used by toArmenian.
68283         (WebCore::toArmenian): Added.
68284         (WebCore::toGeorgian): Added.
68285         (WebCore::toCJKIdeographic): Added.
68286         (WebCore::listMarkerText): Added. Moved the code here from calcMinMaxWidth, but added
68287         support for text for the styles disc, circle, square, decimal-leading-zero, hiragana,
68288         hirigana-iroha, katakana, katakana-iroha, cjk-ideographic, armenian, and georgian.
68289         Also changed some of the styles to share the new toAlphabetic function.
68290         (WebCore::RenderListMarker::RenderListMarker): Updated for name changes and list
68291         item parameter.
68292         (WebCore::RenderListMarker::~RenderListMarker): Updated for name changes.
68293         (WebCore::RenderListMarker::setStyle): Updated for name changes.
68294         (WebCore::RenderListMarker::isImage): Added. Useful helper that unifies the check
68295         for no image and the error image.
68296         (WebCore::RenderListMarker::paint): Updated for name changes to to use isImage()
68297         and rearranged the code a bit.
68298         (WebCore::RenderListMarker::imageChanged): Updated for name change
68299         (WebCore::RenderListMarker::calcMinMaxWidth): Updated for name change, fixed a bug
68300         where we'd leave the old text around if we were using an image-based marker. Also
68301         changed the code to use isImage() instead of checking m_listImage.
68302         (WebCore::RenderListMarker::calcWidth): Changed to use isImage().
68303         (WebCore::RenderListMarker::lineHeight): Changed to use isImage().
68304         (WebCore::RenderListMarker::baselinePosition): Changed to use isImage().
68305         (WebCore::RenderListMarker::getRelativeMarkerRect): Changed to use isImage(),
68306         restructured the code a little.
68307
68308         * rendering/RenderObject.h: Removed now-uneeded includes. Removed collectBorders()
68309         and isFormElement(). Made remove() function and m_hasCounterNodeMap public so
68310         we could remove friend declarations for RenderListItem and RenderView.
68311         Moved findCounter() to become a private function inside RenderCounter.cpp.
68312         * rendering/RenderObject.cpp:
68313         (WebCore::RenderObject::createObject): Fix bug where a contentData() with
68314         CONTENT_NONE is treated as image content -- only look at the content property
68315         if it has exactly one entry which is a CONTENT_OBJECT.
68316         (WebCore::RenderObject::selectionStartEnd): Add const.
68317         (WebCore::RenderObject::destroy): Moved counter-specific code to
68318         RenderCounter::destroyCounterNodes.
68319         (WebCore::RenderObject::recalcMinMaxWidths): Changed code to set m_recalcMinMax
68320         near the top of the function -- the old code would potentially reset it after it
68321         was set by the calcMinMaxWidths functions, and possibly skip a future needed
68322         recalc. That came up in counter test cases. Removed unneeded boolean check right
68323         after an assertion.
68324
68325         * rendering/RenderPart.h: Marked two virtual functions virtual for clarity.
68326
68327         * rendering/RenderReplaced.h: Made shouldPaint be protected, and made
68328         m_intrinsicWidth, m_intrinsicHeight, and m_selectionState be private.
68329         Also marked isSelected() const.
68330         * rendering/RenderReplaced.cpp: Added newly-needed include.
68331         (WebCore::RenderReplaced::RenderReplaced): Use constructor syntax.
68332         (WebCore::RenderReplaced::isSelected): Made const and changed to call the
68333         selectionStartEnd function in the straightforward way.
68334
68335         * rendering/RenderSVGText.cpp:
68336         (WebCore::RenderSVGText::absoluteRects): Use functions instead of direct field
68337         access so the fields can be private.
68338         (WebCore::RenderSVGText::relativeBBox): Ditto.
68339
68340         * rendering/RenderStyle.h: Tweaked formatting. Changed names of CSS3 holders
68341         to say "rare" instead, since it's not all CSS 3. Renamed CounterData to
68342         CounterContent, since it's used inside ContentData. Changed names of fields in
68343         ContentData to have m prefix. Moved content and counter fields into the rare
68344         non-inherited data object. Removed unneeded assignment operator from a class
68345         that already inherits from Shared which makes it start out noncopyable.
68346         * rendering/RenderStyle.cpp: Name changes, plus:
68347         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
68348         Updated for added fields (content, counter-reset, counter-increment).
68349         (WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData): Ditto.
68350         (WebCore::StyleRareNonInheritedData::operator==): Reformatted and sorted so it's
68351         easy to see if any fields are missing.
68352         (WebCore::operator!=): Added. Compares two CounterContent objects.
68353         (WebCore::RenderStyle::arenaDelete): Removed code to handle content, which is
68354         now in the rareNonInheritedData structure.
68355         (WebCore::RenderStyle::RenderStyle): Ditto.
68356         (WebCore::RenderStyle::inheritFrom): Ditto.
68357         (WebCore::RenderStyle::operator==): Ditto.
68358         (WebCore::RenderStyle::inheritedNotEqual):
68359         (WebCore::RenderStyle::diff):
68360         (WebCore::RenderStyle::contentDataEquivalent): Added case for counter,
68361         which previously would be ignored when determining if content is equivalent.
68362         (WebCore::RenderStyle::clearContent): Added.
68363         (WebCore::RenderStyle::setContent): Updated for change in content location.
68364         (WebCore::ContentData::clear): Changed algorithm so that it's not recursive
68365         and thus can handle a very long list of ContentData.
68366         (WebCore::operator==): Added. Compares two CounterDirective objects.
68367         (WebCore::RenderStyle::counterDirectives): Added.
68368         (WebCore::RenderStyle::accessCounterDirectives): Added.
68369
68370         * rendering/RenderTable.h: Made m_currentBorder const to better reflect the
68371         paint algorithm.
68372         * rendering/RenderTable.cpp: (WebCore::RenderTable::paint): Changed to use
68373         Vector instead of DeprecatedValueList for the border styles, and to sort
68374         rather than inserting in sorted order as we go. Put the code to loop through
68375         the nodes and collect border styles here instead of in a RenderObject virtual
68376         function. Also set m_currentBorder to 0 after the loop for greater clarity.
68377
68378         * rendering/RenderTableCell.h: Added a typedef for a vector of border values.
68379         Removed the virtual collectBorders and replaced with the non-virtual named
68380         collectBorderStyles. Also added a static member function named sortBorderStyles.
68381         * rendering/RenderTableCell.cpp:
68382         (WebCore::CollapsedBorders::CollapsedBorders): Removed unneeded constructor
68383         parameter.
68384         (WebCore::addBorderStyle): Changed to use a vector instead of a
68385         DeprecatedValueList. Wrote out a loop since Vector doesn't have a contains
68386         member function. Removed the code to insert the border at a sorted location;
68387         instead we have a separate call to sort the border styles
68388         (WebCore::RenderTableCell::collectBorderStyles): Renamed, and changed the
68389         parameter type.
68390         (WebCore::compareBorderStylesForQSort): Added.
68391         (WebCore::RenderTableCell::sortBorderStyles): Added.
68392
68393         * rendering/RenderText.h: Changed StringImpl parameters in setText functions
68394         to be PassRefPtr; added a new setInternalString function. Made a bunch of the
68395         member functions private and made all the data members private instead of
68396         protected.
68397         * rendering/RenderText.cpp:
68398         (WebCore::RenderText::setStyle): Restructure a bit for clarity. Fix case where
68399         the old style has a different security than the new style. Use release() since
68400         RenderText::setText now takes PassRefPtr. Always call cacheWidths here.
68401         (WebCore::RenderText::setTextWithOffset): Changed to take the string as a
68402         PassRefPtr instead of a raw pointer.
68403         (WebCore::isInlineFlowOrEmptyText): Added.
68404         (WebCore::RenderText::setInternalString): Refactored core of setText into a
68405         separate protected member function that can be used RenderCounter. Changed
68406         the text security square character to match what's used in list markers.
68407         Changed the text transform switch statement so that gcc will warn us if we add
68408         a new value and don't add a case for it.
68409         (WebCore::RenderText::setText): Refactored most of the function into
68410         setInternalString. Removed the call to cacheWidths -- that's now done in the
68411         setStyle function only.
68412
68413         * rendering/RenderView.h:
68414         * rendering/RenderView.cpp: (WebCore::RenderView::selectionStartEnd): Now const.
68415
68416         * rendering/RenderWidget.cpp: Added newly-needed include.
68417         (WebCore::RenderWidget::setSelectionState): Don't bother setting m_selectionState
68418         here since RenderReplaced::setSelectionState already does that.
68419
68420 2007-01-05  Anders Carlsson  <acarlsson@apple.com>
68421
68422         Rubber stamped by Adam.
68423         
68424         Move even more code to .cpp files.
68425
68426         * WebCore.xcodeproj/project.pbxproj:
68427         * loader/FrameLoader.cpp:
68428         (WebCore::FrameLoader::createWindow):
68429         (WebCore::FrameLoader::load):
68430         (WebCore::FrameLoader::canLoad):
68431         (WebCore::FrameLoader::initialRequest):
68432         (WebCore::FrameLoader::receivedData):
68433         (WebCore::FrameLoader::setRequest):
68434         (WebCore::FrameLoader::setResponse):
68435         (WebCore::FrameLoader::willUseArchive):
68436         (WebCore::FrameLoader::handleUnimplementablePolicy):
68437         (WebCore::FrameLoader::cannotShowMIMEType):
68438         (WebCore::FrameLoader::interruptionForPolicyChangeError):
68439         (WebCore::FrameLoader::checkNavigationPolicy):
68440         (WebCore::FrameLoader::checkContentPolicy):
68441         (WebCore::FrameLoader::shouldReloadToHandleUnreachableURL):
68442         (WebCore::FrameLoader::reloadAllowingStaleData):
68443         (WebCore::FrameLoader::reload):
68444         (WebCore::FrameLoader::finishedLoading):
68445         (WebCore::FrameLoader::continueAfterWillSubmitForm):
68446         (WebCore::FrameLoader::submitForm):
68447         (WebCore::FrameLoader::post):
68448         (WebCore::FrameLoader::isReloading):
68449         (WebCore::FrameLoader::loadEmptyDocumentSynchronously):
68450         (WebCore::FrameLoader::loadResourceSynchronously):
68451         (WebCore::FrameLoader::startLoadingMainResource):
68452         (WebCore::FrameLoader::startLoading):
68453         (WebCore::FrameLoader::cancelMainResourceLoad):
68454         (WebCore::FrameLoader::identifierForInitialRequest):
68455         (WebCore::FrameLoader::willSendRequest):
68456         (WebCore::FrameLoader::didReceiveResponse):
68457         (WebCore::FrameLoader::didReceiveData):
68458         (WebCore::FrameLoader::didFailToLoad):
68459         (WebCore::FrameLoader::originalRequest):
68460         (WebCore::FrameLoader::receivedMainResourceError):
68461         (WebCore::FrameLoader::callContinueFragmentScrollAfterNavigationPolicy):
68462         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
68463         (WebCore::FrameLoader::opened):
68464         (WebCore::FrameLoader::dataURLBaseFromRequest):
68465         (WebCore::FrameLoader::checkNewWindowPolicy):
68466         (WebCore::FrameLoader::continueAfterNewWindowPolicy):
68467         (WebCore::FrameLoader::continueAfterNavigationPolicy):
68468         (WebCore::FrameLoader::callContinueLoadAfterNavigationPolicy):
68469         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
68470         (WebCore::FrameLoader::callContinueLoadAfterNewWindowPolicy):
68471         (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
68472         (WebCore::FrameLoader::sendRemainingDelegateMessages):
68473         (WebCore::FrameLoader::requestFromDelegate):
68474         (WebCore::FrameLoader::loadedResourceFromMemoryCache):
68475         (WebCore::FrameLoader::applyUserAgent):
68476         (WebCore::PolicyCheck::PolicyCheck):
68477         (WebCore::PolicyCheck::clear):
68478         (WebCore::PolicyCheck::set):
68479         (WebCore::PolicyCheck::call):
68480         (WebCore::PolicyCheck::clearRequest):
68481         * loader/FrameLoader.h:
68482         * loader/FrameLoaderClient.h:
68483         * loader/MainResourceLoader.h:
68484         * loader/ResourceLoader.h:
68485         (WebCore::ResourceLoader::setIdentifier):
68486         (WebCore::ResourceLoader::identifier):
68487         * loader/mac/FrameLoaderMac.mm:
68488         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
68489         (WebCore::FrameLoader::referrer):
68490         (WebCore::FrameLoader::didReceiveAuthenticationChallenge):
68491         (WebCore::FrameLoader::didCancelAuthenticationChallenge):
68492         (WebCore::FrameLoader::didChangeTitle):
68493         * platform/graphics/svg/SVGImageEmptyClients.h:
68494         (WebCore::SVGEmptyFrameLoaderClient::dispatchCreatePage):
68495
68496 2007-01-05  Mitz Pettel  <mitz@webkit.org>
68497
68498         Reviewed by Hyatt.
68499
68500         - fix http://bugs.webkit.org/show_bug.cgi?id=12079
68501           Nested tables don't repaint properly when a certain row is added
68502
68503         Tests: fast/repaint/table-section-repaint.html
68504                fast/repaint/table-section-overflow.html
68505
68506         Fixed repainting when table sections move during layout.
68507
68508         Made table cells' overflows propagate to table sections and gave tables
68509         overflows.
68510
68511         * rendering/RenderTable.cpp:
68512         (WebCore::RenderTable::layout): Added computation of horizontal and vertical overflows
68513         based on the caption's and the table sections' overflows.
68514         Added checks for table sections that change position during layout. When that happens,
68515         we assume all sections below the first section that moved also moved, and repaint
68516         everything downwards from there.
68517         Added calls to repaintDuringLayoutIfMoved() for the caption.
68518         Changed the way table sections are iterated over and added a FIXME to change it again
68519         once bug 12124 is fixed.
68520         (WebCore::RenderTable::paint): Changed to paint overflow.
68521         (WebCore::RenderTable::outerBorderBottom):
68522         * rendering/RenderTableSection.cpp:
68523         (WebCore::RenderTableSection::RenderTableSection):
68524         (WebCore::RenderTableSection::layoutRows): Added code to compute the section's overflow
68525         and a flag saying whether any cells in this section overflow.
68526         (WebCore::RenderTableSection::paint): Changed to paint overflow. If any cell
68527         in the section has overflow, then all cells are given a chance to paint. This is needed
68528         because there can be internal overflow, and external overflow can be coming from any
68529         cell inside.
68530         * rendering/RenderTableSection.h:
68531         (WebCore::RenderTableSection::overflowWidth):
68532         (WebCore::RenderTableSection::overflowLeft):
68533
68534 2007-01-05  Beth Dakin  <bdakin@apple.com>
68535
68536         Reviewed by Adam.
68537
68538         Fix for <rdar://problem/4863434> Wrong contextual menu appears for 
68539         textarea and input elements at http://www.apple.com/feedback/
68540         ical.html
68541
68542         No test cases added since context menus are not in DRT.
68543
68544         * page/ContextMenuController.cpp: 
68545         (WebCore::ContextMenuController::handleContextMenuEvent): Call 
68546         EventHandler's hitTestResultAtPoint() instead of just hit testing 
68547         the layer.
68548
68549 2007-01-05  Anders Carlsson  <acarlsson@apple.com>
68550
68551         Rubber-stamped by Adam.
68552         
68553         Move a bunch of platform independent code over to DocumentLoader.cpp
68554
68555         * WebCore.xcodeproj/project.pbxproj:
68556         * loader/DocumentLoader.cpp:
68557         (WebCore::canonicalizedTitle):
68558         (WebCore::DocumentLoader::DocumentLoader):
68559         (WebCore::DocumentLoader::frameLoader):
68560         (WebCore::DocumentLoader::~DocumentLoader):
68561         (WebCore::DocumentLoader::setMainResourceData):
68562         (WebCore::DocumentLoader::mainResourceData):
68563         (WebCore::DocumentLoader::originalRequest):
68564         (WebCore::DocumentLoader::originalRequestCopy):
68565         (WebCore::DocumentLoader::request):
68566         (WebCore::DocumentLoader::initialRequest):
68567         (WebCore::DocumentLoader::actualRequest):
68568         (WebCore::DocumentLoader::URL):
68569         (WebCore::DocumentLoader::replaceRequestURLForAnchorScroll):
68570         (WebCore::DocumentLoader::setRequest):
68571         (WebCore::DocumentLoader::setMainDocumentError):
68572         (WebCore::DocumentLoader::clearErrors):
68573         (WebCore::DocumentLoader::mainReceivedError):
68574         (WebCore::DocumentLoader::stopLoading):
68575         (WebCore::DocumentLoader::setupForReplace):
68576         (WebCore::DocumentLoader::commitIfReady):
68577         (WebCore::DocumentLoader::finishedLoading):
68578         (WebCore::DocumentLoader::setCommitted):
68579         (WebCore::DocumentLoader::isCommitted):
68580         (WebCore::DocumentLoader::setLoading):
68581         (WebCore::DocumentLoader::isLoading):
68582         (WebCore::DocumentLoader::commitLoad):
68583         (WebCore::DocumentLoader::doesProgressiveLoad):
68584         (WebCore::DocumentLoader::receivedData):
68585         (WebCore::DocumentLoader::setupForReplaceByMIMEType):
68586         (WebCore::DocumentLoader::updateLoading):
68587         (WebCore::DocumentLoader::setFrame):
68588         (WebCore::DocumentLoader::attachToFrame):
68589         (WebCore::DocumentLoader::detachFromFrame):
68590         (WebCore::DocumentLoader::prepareForLoadStart):
68591         (WebCore::DocumentLoader::setIsClientRedirect):
68592         (WebCore::DocumentLoader::isClientRedirect):
68593         (WebCore::DocumentLoader::setPrimaryLoadComplete):
68594         (WebCore::DocumentLoader::isLoadingInAPISense):
68595         (WebCore::DocumentLoader::addResponse):
68596         (WebCore::DocumentLoader::stopRecordingResponses):
68597         (WebCore::DocumentLoader::title):
68598         (WebCore::DocumentLoader::setLastCheckedRequest):
68599         (WebCore::DocumentLoader::lastCheckedRequest):
68600         (WebCore::DocumentLoader::triggeringAction):
68601         (WebCore::DocumentLoader::setTriggeringAction):
68602         (WebCore::DocumentLoader::responses):
68603         (WebCore::DocumentLoader::setOverrideEncoding):
68604         (WebCore::DocumentLoader::overrideEncoding):
68605         (WebCore::DocumentLoader::setTitle):
68606         (WebCore::DocumentLoader::urlForHistory):
68607         * loader/DocumentLoader.h:
68608         * loader/FrameLoader.cpp:
68609         (WebCore::FrameLoader::load):
68610         (WebCore::FrameLoader::committedLoad):
68611         (WebCore::FrameLoader::setMainDocumentError):
68612         (WebCore::FrameLoader::mainReceivedCompleteError):
68613         (WebCore::FrameLoader::mainReceivedError):
68614         (WebCore::FrameLoader::cancelledError):
68615         (WebCore::FrameLoader::fileDoesNotExistError):
68616         (WebCore::FrameLoader::mainResourceData):
68617         * loader/FrameLoader.h:
68618         * loader/FrameLoaderClient.h:
68619         * loader/mac/DocumentLoaderMac.mm:
68620         (WebCore::DocumentLoader::unreachableURL):
68621         * loader/mac/FrameLoaderMac.mm:
68622
68623 2007-01-05  Brady Eidson  <beidson@apple.com>
68624
68625         Reviewed by Eric Seidel
68626
68627         http://bugs.webkit.org/show_bug.cgi?id=12117
68628         Fixes null deref when opening links from a gmail account
68629
68630         * loader/FrameLoader.cpp:
68631         (WebCore::FrameLoader::updateHistoryForStandardLoad): Null check m_currentHistoryItem
68632         (WebCore::FrameLoader::updateHistoryForClientRedirect): Ditto
68633
68634 2007-01-05  Anders Carlsson  <acarlsson@apple.com>
68635
68636         Move some now cross platform functions over to ResourceLoader.cpp in an attempt to fix the non Mac builds.
68637         
68638         * loader/CachedResource.h:
68639         (WebCore::CachedResource::setAllData):
68640         * loader/ResourceLoader.cpp:
68641         (WebCore::ResourceLoader::resourceData):
68642         * loader/ResourceLoader.h:
68643         * loader/SubresourceLoader.cpp:
68644         (WebCore::SubresourceLoader::didFinishLoading):
68645         * loader/mac/LoaderFunctionsMac.mm:
68646         * loader/mac/ResourceLoaderMac.mm:
68647         * platform/SharedBuffer.cpp:
68648         (WebCore::SharedBuffer::platformDataSize):
68649         * platform/network/ResourceHandle.h:
68650
68651 2007-01-05  David Hyatt  <hyatt@apple.com>
68652
68653         Back out fix for 12114.  I missed rule #5 in the float positioning part of the CSS2.1 spec.  Keep all
68654         the code cleanup though.
68655
68656         Reviewed by mitz
68657
68658         * rendering/RenderBlock.cpp:
68659         (WebCore::RenderBlock::positionNewFloats):
68660
68661 2007-01-05  Anders Carlsson  <acarlsson@apple.com>
68662
68663         Reviewed by Maciej.
68664
68665         Add a shared buffer class which is backed by either a vector or an NSData object. This object can also
68666         be held in a custom NSData subclass. Use this in the loader wherever NSData was used.
68667         
68668         * WebCore.exp:
68669         * WebCore.xcodeproj/project.pbxproj:
68670         * loader/CachedResource.h:
68671         (WebCore::CachedResource::allData):
68672         * loader/DocumentLoader.h:
68673         * loader/FrameLoader.h:
68674         * loader/ResourceLoader.h:
68675         * loader/SubresourceLoaderClient.h:
68676         (WebCore::SubresourceLoaderClient::didFail):
68677         * loader/loader.cpp:
68678         (WebCore::Loader::didFinishLoading):
68679         * loader/loader.h:
68680         * loader/mac/DocumentLoaderMac.mm:
68681         (WebCore::DocumentLoader::setMainResourceData):
68682         (WebCore::DocumentLoader::mainResourceData):
68683         (WebCore::DocumentLoader::setupForReplaceByMIMEType):
68684         * loader/mac/FrameLoaderMac.mm:
68685         (WebCore::FrameLoader::mainResourceData):
68686         * loader/mac/ImageDocumentMac.mm:
68687         (WebCore::finishImageLoad):
68688         * loader/mac/LoaderFunctionsMac.mm:
68689         (WebCore::CheckCacheObjectStatus):
68690         (WebCore::CachedResource::setAllData):
68691         * loader/mac/NetscapePlugInStreamLoaderMac.mm:
68692         (WebCore::NetscapePlugInStreamLoader::didFinishLoading):
68693         * loader/mac/ResourceLoaderMac.mm:
68694         (WebCore::ResourceLoader::addData):
68695         (WebCore::ResourceLoader::resourceData):
68696         (WebCore::ResourceLoader::clearResourceData):
68697         (WebCore::ResourceLoader::didReceiveData):
68698         (WebCore::ResourceLoader::willStopBufferingData):
68699         * loader/mac/SubresourceLoaderMac.mm:
68700         (WebCore::SubresourceLoader::didReceiveResponse):
68701         (WebCore::SubresourceLoader::didFinishLoading):
68702         * page/mac/WebCoreFrameBridge.mm:
68703         (-[WebCoreFrameBridge getData:andResponse:forURL:]):
68704         (-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
68705         * platform/KURL.h:
68706         * platform/SharedBuffer.cpp: Added.
68707         (WebCore::SharedBuffer::SharedBuffer):
68708         (WebCore::SharedBuffer::size):
68709         (WebCore::SharedBuffer::data):
68710         (WebCore::SharedBuffer::append):
68711         (WebCore::SharedBuffer::clear):
68712         (WebCore::SharedBuffer::clearPlatformData):
68713         (WebCore::SharedBuffer::maybeTransferPlatformData):
68714         (WebCore::SharedBuffer::hasPlatformData):
68715         (WebCore::SharedBuffer::platformData):
68716         * platform/SharedBuffer.h: Added.
68717         * platform/mac/SharedBufferMac.mm: Added.
68718         (-[SharedBufferData dealloc]):
68719         (-[SharedBufferData finalize]):
68720         (-[SharedBufferData initWithSharedBuffer:]):
68721         (-[SharedBufferData length]):
68722         (-[SharedBufferData bytes]):
68723         (WebCore::SharedBuffer::wrapNSData):
68724         (WebCore::SharedBuffer::SharedBuffer):
68725         (WebCore::SharedBuffer::createNSData):
68726         (WebCore::SharedBuffer::hasPlatformData):
68727         (WebCore::SharedBuffer::platformData):
68728         (WebCore::SharedBuffer::platformDataSize):
68729         (WebCore::SharedBuffer::maybeTransferPlatformData):
68730         (WebCore::SharedBuffer::clearPlatformData):
68731         * platform/network/ResourceHandle.h:
68732         * platform/network/ResourceHandleClient.h:
68733         * platform/network/mac/ResourceHandleMac.mm:
68734         (WebCore::ResourceHandle::bufferedData):
68735
68736 2007-01-05  Anders Carlsson  <acarlsson@apple.com>
68737
68738         Reviewed by Adam.
68739
68740         http://bugs.webkit.org/show_bug.cgi?id=12120
68741         REGRESSION(r18605): Safari snippet editor no longer works
68742         
68743         * loader/mac/ResourceLoaderMac.mm:
68744         (WebCore::ResourceLoader::willSendRequest):
68745         Put back the code change in r18607.
68746         
68747         * platform/mac/KURLMac.mm:
68748         (WebCore::KURL::KURL):
68749         Convert nil NSURLs to null KURLs.
68750
68751 2007-01-04  Alexey Proskuryakov  <ap@webkit.org>
68752
68753         Reviewed by Geoff.
68754
68755         http://bugs.webkit.org/show_bug.cgi?id=7296
68756         Disable JavaScript exceptions when dynamically changing CSS properties.
68757
68758         * bindings/js/kjs_css.cpp:
68759         (KJS::DOMCSSStyleDeclaration::put): Removed the Dashboard quirk logic.
68760
68761         * css/CSSMutableStyleDeclaration.cpp:
68762         (WebCore::CSSMutableStyleDeclaration::setProperty): Don't raise an exception if parsing fails.
68763
68764 2007-01-05  Antti Koivisto  <koivisto@iki.fi>
68765
68766         Reviewed by hyatt.
68767         
68768         http://bugs.webkit.org/show_bug.cgi?id=12109
68769         
68770         Fix layer visibility in some cases with nested layers.
68771
68772         * rendering/RenderLayer.cpp:
68773         (WebCore::RenderLayer::updateVisibilityStatus):
68774
68775 2007-01-05  Lars Knoll <lars@trolltech.com>
68776
68777         Make it compile with gcc 4.1
68778
68779         * rendering/RenderTableSection.h:
68780
68781 2007-01-04  Adam Roben  <aroben@apple.com>
68782
68783         Reviewed by Geoff, cheered by others.
68784
68785         Dead code elimination.
68786
68787         All layout tests pass.
68788
68789         * page/EventHandler.h:
68790         * page/mac/EventHandlerMac.mm:
68791         * page/mac/WebCoreFrameBridge.h:
68792         * page/mac/WebCoreFrameBridge.mm:
68793
68794 2007-01-04  Adam Roben  <aroben@apple.com>
68795
68796         Reviewed by Geoff.
68797
68798         Fix: <rdar://4800335> REGRESSION: shift-tabbing from location field
68799         goes to first field rather than last (businessweek.com)
68800
68801         Fix: <rdar://4800373> REGRESSION: tabbing from last control focuses
68802         nothing visible (busniessweek.com)
68803
68804         Handle tabbing into/out of subframes in WebCore instead of letting
68805         AppKit do the dirty work. This change also fixes a number of bugs and
68806         changes some behavior to match other browsers:
68807           - No frames receive a focus event when the page is first loaded.
68808           - When a frame is clicked or focused with the keyboard, it receives
68809             a focus event and all other frames receive a blur event.
68810           - tabindex values are clamped to the range of a signed short, rather
68811             than overflowing within an unsigned short.
68812           - tabindex is respected on frame owner elements, even though HTML4
68813             says it shouldn't be.
68814           - Subframes will be focused when tabbing if they don't contain any
68815             focusable elements within them (it would be nice to only focus the
68816             frame if it has scrollbars).
68817
68818         Renamed SelectionDirection to FocusDirection and put it in its own file.
68819
68820         * page/FocusDirection.h: Added.
68821         (WebCore::):
68822         * page/mac/WebCoreFrameBridge.mm: Updated for renames.
68823         (-[WebCoreFrameBridge nextKeyView]):
68824         (-[WebCoreFrameBridge previousKeyView]):
68825         (-[WebCoreFrameBridge nextKeyViewInsideWebFrameViews]):
68826         (-[WebCoreFrameBridge previousKeyViewInsideWebFrameViews]):
68827
68828         Moved advanceFocus from EventHandler to FocusController and added
68829         support for moving into/out of subframes..
68830
68831         * page/EventHandler.cpp: Moved advanceFocus to FocusController.
68832         * page/EventHandler.h: Ditto.
68833         * page/FocusController.cpp:
68834         (WebCore::deepFocusableNode): Static helper function to find focusable
68835         nodes nested within frames.
68836         (WebCore::FocusController::advanceFocus): Moved from EventHandler and
68837         rewritten to handle subframes.
68838         * page/FocusController.h: Added advanceFocus declaration.
68839         * dom/EventTargetNode.cpp:
68840         (WebCore::EventTargetNode::defaultEventHandler): Updated for the move
68841         of advanceFocus to FocusController.
68842         * html/HTMLFrameOwnerElement.h:
68843         (WebCore::HTMLFrameOwnerElement::isFrameOwnerElement): New method.
68844         (WebCore::HTMLFrameOwnerElement::isKeyboardFocusable): New virtual
68845         implementation used to trick Document::nextFocusableNode so that we
68846         can focus frames.
68847
68848         Rewrote/renamed
68849         Document::nextFocusableNode/Document::previousFocusableNode.
68850
68851         * dom/Document.cpp:
68852         (WebCore::nextNodeWithExactTabIndex): New static helper
68853         function.
68854         (WebCore::previousNodeWithExactTabIndex): Ditto.
68855         (WebCore::nextNodeWithGreaterTabIndex): Ditto.
68856         (WebCore::previousNodeWithLowerTabIndex): Ditto.
68857         (WebCore::Document::nextFocusableNode): Renamed from nextFocusedNode,
68858         and rewritten with much simpler logic.
68859         (WebCore::Document::previousFocusableNode): Ditto.
68860         * dom/Document.h: Updated declarations for renames.
68861         * page/mac/EventHandlerMac.mm: Updated for rename of SelectionDirection
68862         to FocusDirection.
68863         (WebCore::EventHandler::nextKeyViewInFrame): Updated for renames.
68864         (WebCore::EventHandler::nextKeyViewInFrameHierarchy): Ditto.
68865         (WebCore::EventHandler::nextKeyView): Ditto.
68866         (WebCore::EventHandler::focusDocumentView): Added call to
68867         setFocusedFrame when focusing the document view.
68868         (WebCore::EventHandler::passMouseDownEventToWidget): Removed LOG_ERROR
68869         when a nil NSView is returned from AppKit, as this is a fairly common
68870         occurrence when a RenderWidget has a border.
68871         (WebCore::EventHandler::passWheelEventToWidget): Added a nil-check of
68872         the hit-tested NSView.
68873
68874         Changed storage of tabIndex to a signed short, and added clamping of
68875         tabindex attribute values to match Firefox's behavior.
68876
68877         * dom/Node.h: Use a signed short to store m_tabIndex.
68878         (WebCore::Node::isFrameOwnerElement): New method.
68879         (WebCore::Node::tabIndex): Updated for signedness.
68880         (WebCore::Node::setTabIndex): Ditto.
68881         * html/HTMLAnchorElement.cpp: Remove implementation of tabIndex() so
68882         that Node::tabIndex() will be called instead and return the clamped
68883         value (which matches Firefox's behavior).
68884         * html/HTMLAnchorElement.h: Ditto.
68885         * html/HTMLAreaElement.cpp: Ditto.
68886         * html/HTMLAreaElement.h: Ditto.
68887         * html/HTMLGenericFormElement.cpp: Ditto.
68888         * html/HTMLGenericFormElement.h: Ditto.
68889         * html/HTMLObjectElement.cpp: Ditto.
68890         * html/HTMLObjectElement.h: Ditto.
68891         * html/HTMLElement.cpp:
68892         (WebCore::HTMLElement::parseMappedAttribute): Clamp tabIndex to the
68893         range of a signed short to match Firefox.
68894
68895         Added two new Chrome methods for transferring focus out of the
68896         WebView.
68897
68898         * page/Chrome.cpp:
68899         (WebCore::Chrome::canTakeFocus):
68900         (WebCore::Chrome::takeFocus):
68901         * page/Chrome.h:
68902         * page/ChromeClient.h:
68903         * platform/graphics/svg/SVGImageEmptyClients.h: Fixed typo "CromeClient" -> "ChromeClient".
68904         (WebCore::SVGEmptyChromeClient::~SVGEmptyChromeClient):
68905         (WebCore::SVGEmptyChromeClient::canTakeFocus):
68906         (WebCore::SVGEmptyChromeClient::takeFocus):
68907         * platform/graphics/svg/SVGImage.cpp:
68908         (WebCore::SVGImage::setData): Fixed typo.
68909
68910         Miscellaneous:
68911
68912         * WebCore.exp: Updated/sorted symbols.
68913         * WebCore.xcodeproj/project.pbxproj: Made FocusController.h Private so
68914         WebKit can access it.
68915
68916 2007-01-04  Brady Eidson  <beidson@apple.com>
68917
68918         Reverted Anders' change to fix the world
68919
68920         * loader/mac/ResourceLoaderMac.mm:
68921         (WebCore::ResourceLoader::willSendRequest):
68922         (WebCore::ResourceLoader::didReceiveResponse):
68923
68924 2007-01-04  Mitz Pettel  <mitz@webkit.org>
68925
68926         Reviewed by Sam Weinig.
68927
68928         - http://bugs.webkit.org/show_bug.cgi?id=12078
68929           Clean up RenderTable*
68930
68931         - Coding style cleanup.
68932         - Canceled AutoTableLayout and FixedTableLayout being friend classes of
68933           RenderTable. Instead, added public accessors to RenderTable for what
68934           the table layout classes need and changed TableLayout::calcMinMaxWidth()
68935           to take references to the caller's min and max widths.
68936         - Made RenderTableSection's grid protected and moved code that accessed it
68937           from RenderTable into RenderTableSection.
68938
68939         No test possible (no change to functionality).
68940
68941         * rendering/AutoTableLayout.cpp:
68942         (WebCore::AutoTableLayout::calcMinMaxWidth):
68943         (WebCore::AutoTableLayout::layout):
68944         * rendering/AutoTableLayout.h:
68945         * rendering/FixedTableLayout.cpp:
68946         (WebCore::FixedTableLayout::calcWidthArray):
68947         (WebCore::FixedTableLayout::calcMinMaxWidth):
68948         (WebCore::FixedTableLayout::layout):
68949         * rendering/FixedTableLayout.h:
68950         * rendering/RenderTable.cpp:
68951         (WebCore::RenderTable::RenderTable):
68952         (WebCore::RenderTable::~RenderTable):
68953         (WebCore::RenderTable::setStyle):
68954         (WebCore::RenderTable::addChild):
68955         (WebCore::RenderTable::calcWidth):
68956         (WebCore::RenderTable::layout):
68957         (WebCore::RenderTable::setCellWidths):
68958         (WebCore::RenderTable::paint):
68959         (WebCore::RenderTable::paintBoxDecorations):
68960         (WebCore::RenderTable::calcMinMaxWidth):
68961         (WebCore::RenderTable::splitColumn): Factored out the section work
68962         to RenderTableSection::splitColumn().
68963         (WebCore::RenderTable::appendColumn): Factored out the section work
68964         to RenderTableSection::appendColumn().
68965         (WebCore::RenderTable::colElement):
68966         (WebCore::RenderTable::recalcSections):
68967         (WebCore::RenderTable::removeChildNode):
68968         (WebCore::RenderTable::calcBorderLeft):
68969         (WebCore::RenderTable::calcBorderRight):
68970         (WebCore::RenderTable::outerBorderTop):
68971         (WebCore::RenderTable::outerBorderBottom):
68972         (WebCore::RenderTable::outerBorderLeft):
68973         (WebCore::RenderTable::outerBorderRight):
68974         (WebCore::RenderTable::sectionAbove):
68975         (WebCore::RenderTable::sectionBelow):
68976         (WebCore::RenderTable::cellAbove):
68977         (WebCore::RenderTable::cellBelow):
68978         (WebCore::RenderTable::cellBefore):
68979         (WebCore::RenderTable::getOverflowClipRect):
68980         (WebCore::RenderTable::dump):
68981         * rendering/RenderTable.h:
68982         (WebCore::RenderTable::getColumnPos):
68983         (WebCore::RenderTable::hBorderSpacing):
68984         (WebCore::RenderTable::vBorderSpacing):
68985         (WebCore::RenderTable::getRules):
68986         (WebCore::RenderTable::cellPadding):
68987         (WebCore::RenderTable::setCellPadding):
68988         (WebCore::RenderTable::ColumnStruct::ColumnStruct):
68989         (WebCore::RenderTable::columns): Added this accessor.
68990         (WebCore::RenderTable::columnPositions): Added this accessor.
68991         (WebCore::RenderTable::header):
68992         (WebCore::RenderTable::footer):
68993         (WebCore::RenderTable::firstBody):
68994         (WebCore::RenderTable::numEffCols):
68995         (WebCore::RenderTable::spanOfEffCol):
68996         (WebCore::RenderTable::colToEffCol):
68997         (WebCore::RenderTable::effColToCol):
68998         (WebCore::RenderTable::bordersPaddingAndSpacing):
68999         (WebCore::RenderTable::needsSectionRecalc):
69000         (WebCore::RenderTable::setNeedsSectionRecalc): Renamed setNeedSectionRecalc()
69001         to this.
69002         (WebCore::RenderTable::hasSections):
69003         (WebCore::RenderTable::recalcSectionsIfNeeded):
69004         * rendering/RenderTableCell.cpp:
69005         (WebCore::RenderTableCell::RenderTableCell):
69006         (WebCore::RenderTableCell::destroy):
69007         (WebCore::RenderTableCell::updateFromElement):
69008         (WebCore::RenderTableCell::styleOrColWidth):
69009         (WebCore::RenderTableCell::computeAbsoluteRepaintRect):
69010         (WebCore::RenderTableCell::absolutePosition):
69011         (WebCore::RenderTableCell::baselinePosition):
69012         (WebCore::RenderTableCell::setStyle):
69013         (WebCore::compareBorders):
69014         (WebCore::RenderTableCell::collapsedTopBorder):
69015         (WebCore::RenderTableCell::paint):
69016         (WebCore::collapsedBorderStyle):
69017         (WebCore::CollapsedBorder::CollapsedBorder):
69018         (WebCore::CollapsedBorders::CollapsedBorders):
69019         (WebCore::CollapsedBorders::addBorder):
69020         (WebCore::CollapsedBorders::nextBorder):
69021         (WebCore::RenderTableCell::paintCollapsedBorder):
69022         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
69023         (WebCore::RenderTableCell::paintBoxDecorations):
69024         (WebCore::RenderTableCell::dump):
69025         * rendering/RenderTableCell.h:
69026         (WebCore::RenderTableCell::colSpan):
69027         (WebCore::RenderTableCell::setColSpan):
69028         (WebCore::RenderTableCell::rowSpan):
69029         (WebCore::RenderTableCell::setRowSpan):
69030         (WebCore::RenderTableCell::col):
69031         (WebCore::RenderTableCell::setCol):
69032         (WebCore::RenderTableCell::row):
69033         (WebCore::RenderTableCell::setRow):
69034         (WebCore::RenderTableCell::section):
69035         (WebCore::RenderTableCell::table):
69036         (WebCore::RenderTableCell::yPos):
69037         (WebCore::RenderTableCell::setCellTopExtra):
69038         (WebCore::RenderTableCell::setCellBottomExtra):
69039         (WebCore::RenderTableCell::borderTopExtra):
69040         (WebCore::RenderTableCell::borderBottomExtra):
69041         * rendering/RenderTableRow.cpp:
69042         (WebCore::RenderTableRow::destroy):
69043         (WebCore::RenderTableRow::setStyle):
69044         (WebCore::RenderTableRow::addChild):
69045         (WebCore::RenderTableRow::layout):
69046         (WebCore::RenderTableRow::getAbsoluteRepaintRect):
69047         (WebCore::RenderTableRow::paint):
69048         * rendering/RenderTableRow.h:
69049         (WebCore::RenderTableRow::section):
69050         (WebCore::RenderTableRow::table):
69051         (WebCore::RenderTableRow::lineHeight):
69052         * rendering/RenderTableSection.cpp:
69053         (WebCore::RenderTableSection::RenderTableSection):
69054         (WebCore::RenderTableSection::destroy):
69055         (WebCore::RenderTableSection::setStyle):
69056         (WebCore::RenderTableSection::addChild):
69057         (WebCore::RenderTableSection::ensureRows):
69058         (WebCore::RenderTableSection::addCell):
69059         (WebCore::RenderTableSection::setCellWidths):
69060         (WebCore::RenderTableSection::calcRowHeight):
69061         (WebCore::RenderTableSection::layoutRows):
69062         (WebCore::RenderTableSection::lowestPosition):
69063         (WebCore::RenderTableSection::rightmostPosition):
69064         (WebCore::RenderTableSection::leftmostPosition):
69065         (WebCore::RenderTableSection::calcOuterBorderTop):
69066         (WebCore::RenderTableSection::calcOuterBorderBottom):
69067         (WebCore::RenderTableSection::calcOuterBorderLeft):
69068         (WebCore::RenderTableSection::calcOuterBorderRight):
69069         (WebCore::RenderTableSection::paint):
69070         (WebCore::RenderTableSection::recalcCells):
69071         (WebCore::RenderTableSection::clearGrid):
69072         (WebCore::RenderTableSection::numColumns):
69073         (WebCore::RenderTableSection::appendColumn): Added. Moved code from
69074         RenderTable::appendColumn() into here.
69075         (WebCore::RenderTableSection::splitColumn): Added. Moved code from
69076         RenderTable::splitColumn() into here.
69077         (WebCore::RenderTableSection::removeChildNode):
69078         (WebCore::RenderTableSection::dump):
69079         * rendering/RenderTableSection.h:
69080         (WebCore::RenderTableSection::renderName):
69081         (WebCore::RenderTableSection::isTableSection):
69082         (WebCore::RenderTableSection::lineHeight):
69083         (WebCore::RenderTableSection::table):
69084         (WebCore::RenderTableSection::cellAt):
69085         (WebCore::RenderTableSection::numRows):
69086         (WebCore::RenderTableSection::recalcCellsIfNeeded):
69087         (WebCore::RenderTableSection::needsCellRecalc):
69088         (WebCore::RenderTableSection::setNeedsCellRecalc):
69089         (WebCore::RenderTableSection::getBaseline):
69090         * rendering/TableLayout.h:
69091
69092 2007-01-04  Anders Carlsson  <acarlsson@apple.com>
69093
69094         Reviewed by Adam.
69095
69096         http://bugs.webkit.org/show_bug.cgi?id=12120
69097         REGRESSION(r18605): Safari snippet editor no longer works
69098         
69099         * loader/mac/ResourceLoaderMac.mm:
69100         (WebCore::ResourceLoader::willSendRequest):
69101         Fix logic so applewebdata: URLs no longer cause the underlying URL to be fetched .
69102
69103 2007-01-04  Anders Carlsson  <acarlsson@apple.com>
69104
69105         Reviewed by Adam.
69106
69107         Move all remaining instances of NSURLRequest over to ResourceRequest (well, pretty much all).
69108
69109         * loader/MainResourceLoader.h:
69110         * loader/ResourceLoader.h:
69111         * loader/SubresourceLoader.h:
69112         * loader/mac/FrameLoaderMac.mm:
69113         (WebCore::FrameLoader::startLoadingMainResource):
69114         * loader/mac/MainResourceLoaderMac.mm:
69115         (WebCore::MainResourceLoader::loadNow):
69116         (WebCore::MainResourceLoader::load):
69117         (WebCore::MainResourceLoader::setDefersLoading):
69118         * loader/mac/ResourceLoaderMac.mm:
69119         (WebCore::ResourceLoader::load):
69120         * loader/mac/SubresourceLoaderMac.mm:
69121         (WebCore::SubresourceLoader::load):
69122         (WebCore::SubresourceLoader::create):
69123         * platform/graphics/svg/SVGImage.cpp:
69124         (WebCore::SVGImage::setData):
69125         * platform/network/mac/ResourceRequestMac.mm:
69126         (WebCore::ResourceRequest::doUpdatePlatformRequest):
69127
69128 2007-01-04  Anders Carlsson  <acarlsson@apple.com>
69129
69130         Reviewed by Brady.
69131
69132         Move more NSURLRequests over to ResourceRequests.
69133         
69134         * loader/DocumentLoader.h:
69135         * loader/FrameLoader.h:
69136         * loader/FrameLoaderClient.h:
69137         * loader/MainResourceLoader.h:
69138         * loader/ResourceLoader.h:
69139         (WebCore::ResourceLoader::request):
69140         * loader/SubresourceLoader.h:
69141         * loader/mac/FrameLoaderMac.mm:
69142         (WebCore::FrameLoader::willSendRequest):
69143         (WebCore::FrameLoader::opened):
69144         (WebCore::FrameLoader::requestFromDelegate):
69145         (WebCore::FrameLoader::loadedResourceFromMemoryCache):
69146         (WebCore::FrameLoader::loadResourceSynchronously):
69147         * loader/mac/MainResourceLoaderMac.mm:
69148         (WebCore::MainResourceLoader::willSendRequest):
69149         (WebCore::MainResourceLoader::continueAfterContentPolicy):
69150         (WebCore::MainResourceLoader::loadNow):
69151         (WebCore::MainResourceLoader::setDefersLoading):
69152         * loader/mac/ResourceLoaderMac.mm:
69153         (WebCore::ResourceLoader::load):
69154         (WebCore::ResourceLoader::willSendRequest):
69155         (WebCore::ResourceLoader::didReceiveResponse):
69156         (WebCore::ResourceLoader::cancelledError):
69157         * loader/mac/SubresourceLoaderMac.mm:
69158         (WebCore::SubresourceLoader::willSendRequest):
69159         * platform/graphics/svg/SVGImageEmptyClients.h:
69160         (WebCore::SVGEmptyFrameLoaderClient::dispatchWillSendRequest):
69161         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
69162         * platform/network/ResourceRequest.cpp:
69163         (WebCore::ResourceRequest::isNull):
69164         * platform/network/ResourceRequest.h:
69165
69166 2007-01-04  Brady Eidson  <beidson@apple.com>
69167
69168         Reviewed by Mark Rowe
69169
69170         http://bugs.webkit.org/show_bug.cgi?id=12119
69171         Changing the behavior of HistoryItem::pageCache() this morning also necessitated
69172         changing the behavior of HistoryItem::hasPageCache()
69173
69174         * history/HistoryItem.cpp:
69175         (WebCore::HistoryItem::hasPageCache): Add the same pendingRelease check pageCache() has
69176
69177 2007-01-04  Mitz Pettel  <mitz@webkit.org>
69178
69179         Reviewed by Sam Weinig.
69180
69181         - fix http://bugs.webkit.org/show_bug.cgi?id=12043
69182           Another assertion failure in WebCore::RenderObject::drawBorder
69183
69184         Test: fast/borders/border-radius-huge-assert.html
69185
69186         * platform/graphics/cg/GraphicsContextCG.cpp:
69187         (WebCore::GraphicsContext::addRoundedRectClip): Fixed the check for border radii
69188         that do not fit in the given width or height to work with radii that sum up to
69189         more than MAX_INT.
69190         * rendering/RenderObject.cpp:
69191         (WebCore::RenderObject::paintBorder): Ditto.
69192
69193 2007-01-04  Justin Garcia  <justin.garcia@apple.com>
69194
69195         Reviewed by john
69196
69197         <rdar://problem/4861080>
69198         GMail Editor: Crash when dropping content into certain list items
69199         
69200         A rendering bug (4907469) creates unwanted space at the top of a 
69201         list item when its contents are wrapped in span.  Dropping content 
69202         inside that space causes a crash because positionForCoordinates 
69203         fails there and the code that creates drag carets can't handle it.
69204
69205         * page/mac/WebCoreFrameBridge.mm:
69206         (-[WebCoreFrameBridge _visiblePositionForPoint:]): Added the
69207         that's inside click handling for the case where 
69208         positionForCoordinates returns null.  We should also fix 
69209         positionForCoordinates but that's less important: now its only side 
69210         effect is that a no-op drop is performed instead of a snap back 
69211         when you drop the contents of one of these list items its own 
69212         unwanted space.
69213
69214 2007-01-04  Beth Dakin  <bdakin@apple.com>
69215
69216         Reviewed by Adam.
69217
69218         Fix for http://bugs.webkit.org/show_bug.cgi?id=12118 REGRESSION 
69219         (Context menus): No context menu displayed when clicking outside a 
69220         short document
69221
69222         No test case added since we do not currently have a way to automate 
69223         context menus. 
69224
69225         * page/ContextMenuController.cpp:
69226         (WebCore::ContextMenuController::handleContextMenuEvent): If the 
69227         hit test does not find a node, use the document node.
69228
69229 2007-01-04  Anders Carlsson  <acarlsson@apple.com>
69230
69231         Reviewed by Adam.
69232
69233         Convert NSURLRequest to ResourceRequest in a few places
69234
69235         * loader/FrameLoader.h:
69236         * loader/FrameLoaderClient.h:
69237         * loader/MainResourceLoader.h:
69238         * loader/mac/FrameLoaderMac.mm:
69239         (WebCore::FrameLoader::identifierForInitialRequest):
69240         (WebCore::FrameLoader::willUseArchive):
69241         * loader/mac/MainResourceLoaderMac.mm:
69242         (WebCore::MainResourceLoader::isPostOrRedirectAfterPost):
69243         * platform/graphics/svg/SVGImageEmptyClients.h:
69244         (WebCore::SVGEmptyFrameLoaderClient::download):
69245         (WebCore::SVGEmptyFrameLoaderClient::willUseArchive):
69246
69247 2007-01-04  David Hyatt  <hyatt@apple.com>
69248
69249         Bug 12114 fix, make sure left/right floats are allowed to go above
69250         other floats of opposite alignment.
69251
69252         Reviewed by aroben
69253
69254         fast/block/float/independent-align-positioning.html
69255
69256         * rendering/RenderBlock.cpp:
69257         (WebCore::RenderBlock::positionNewFloats):
69258
69259 2007-01-04  Anders Carlsson  <acarlsson@apple.com>
69260
69261         Reviewed by Brady.
69262
69263         http://bugs.webkit.org/show_bug.cgi?id=12116
69264         REGRESSION: ASSERTION FAILED: URL in +[WebDataProtocol _webIsDataProtocolURL:]
69265         
69266         <rdar://problem/4908910> 
69267         REGRESSION: After switching to Bookmarks view, the browser window is completely empty (no bookmarks are displayed)
69268         
69269         * platform/network/ResourceResponse.h:
69270         (WebCore::ResourceResponse::ResourceResponse):
69271         Initialize m_isNull
69272
69273 2007-01-04  Beth Dakin  <bdakin@apple.com>
69274
69275         Reviewed by Adam.
69276
69277         Turn on WebCore context menus.
69278
69279         * dom/EventTargetNode.cpp:
69280         (WebCore::EventTargetNode::defaultEventHandler): Turn on WebCore 
69281         menus.
69282         * page/ContextMenuClient.h: Name change and have the 
69283         former getCustomMenuFromDefaultItems function return the 
69284         PlatformMenuDescription since it feels funny to have the client set 
69285         the new platform description.
69286         * page/ContextMenuController.cpp:
69287         (WebCore::ContextMenuController::handleContextMenuEvent): Above 
69288         name change.
69289         (WebCore::ContextMenuController::contextMenuItemSelected): Use 
69290         local variable.
69291         * platform/ContextMenu.cpp:
69292         (WebCore::createAndAppendSpeechSubMenu): Fix silly mistake -- make 
69293         "Stop speaking" actually stop speaking.
69294         * platform/graphics/svg/SVGImageEmptyClients.h: Name change and 
69295         have the former getCustomMenuFromDefaultItems function return the 
69296         PlatformMenuDescription since it feels funny to have the client set 
69297         the new platform description.
69298        (WebCore::SVGEmptyContextMenuClient::getCustomMenuFromDefaultItems):
69299
69300 2007-01-04  Mitz Pettel  <mitz@webkit.org>
69301
69302         Reviewed and landed by Brady
69303
69304         - fix http://bugs.webkit.org/show_bug.cgi?id=12087
69305           REGRESSION: Reproducible crash going back in Back/Forward history
69306
69307         Allow a PageCache that is pending release to be resurrected by its
69308         HistoryItem instead of creating a new PageCache. This avoids the
69309         the condition of having two PageCaches for the same HistoryItem, one
69310         current and one pending release but not yet released, which was causing
69311         this and other bugs before.
69312         
69313         Replaced the vector of PageCaches pending release with a set of
69314         HistoryItems that are pending release of their PageCache.
69315
69316         * history/HistoryItem.cpp:
69317         (WebCore::HistoryItem::HistoryItem):
69318         (WebCore::HistoryItem::setHasPageCache): Check for an existing PageCache
69319         pending release, and if found, resurrect it by canceling the release.
69320         (WebCore::HistoryItem::pageCache): Return 0 if the PageCache is pending
69321         release.
69322         (WebCore::itemsWithPendingPageCacheToRelease): Renamed pendingPageCacheToRelease
69323         to this. This method now returns a HashSet of HistoryItems that have scheduled
69324         their PageCaches for release.
69325         (WebCore::HistoryItem::releasePageCachesOrReschedule): Renamed releasePageCache
69326         to this.
69327         (WebCore::HistoryItem::releasePageCache): Added. Actually closes and releases
69328         the PageCache.
69329         (WebCore::HistoryItem::releaseAllPendingPageCaches): Rolled closeObjectsInPendingPageCaches
69330         into this method.
69331         (WebCore::HistoryItem::scheduleRelease):
69332         (WebCore::HistoryItem::cancelRelease): Added.
69333         * history/HistoryItem.h: Removed unused declaration of scheduleReleaseTimer()
69334         * history/HistoryItemTimer.cpp:
69335         (WebCore::HistoryItemTimer::HistoryItemTimer):
69336         (WebCore::HistoryItemTimer::callReleasePageCachesOrReschedule):
69337         * history/HistoryItemTimer.h:
69338
69339 2007-01-04  David Hyatt  <hyatt@apple.com>
69340
69341         Just make the synthetic bold offset always be 1.0.  This fixes bug
69342         9534, synthetic bold looks doubled.
69343
69344         Reviewed by olliej
69345
69346         * platform/mac/FontDataMac.mm:
69347         (WebCore::FontData::platformInit):
69348
69349 2007-01-04  Anders Carlsson  <acarlsson@apple.com>
69350
69351         Reviewed by Brady.
69352
69353         Convert almost all occurrences of NSURLResponse to ResourceResponse.
69354
69355         * WebCore.exp:
69356         * loader/DocumentLoader.h:
69357         * loader/FrameLoader.h:
69358         * loader/FrameLoaderClient.h:
69359         * loader/MainResourceLoader.h:
69360         * loader/NetscapePlugInStreamLoader.h:
69361         * loader/ResourceLoader.h:
69362         * loader/SubresourceLoader.h:
69363         * loader/loader.h:
69364         * loader/mac/FrameLoaderMac.mm:
69365         (WebCore::FrameLoader::willSendRequest):
69366         (WebCore::FrameLoader::didReceiveResponse):
69367         (WebCore::FrameLoader::opened):
69368         (WebCore::FrameLoader::sendRemainingDelegateMessages):
69369         (WebCore::FrameLoader::loadedResourceFromMemoryCache):
69370         (WebCore::FrameLoader::loadResourceSynchronously):
69371         * loader/mac/LoaderFunctionsMac.mm:
69372         (WebCore::CheckCacheObjectStatus):
69373         * loader/mac/MainResourceLoaderMac.mm:
69374         (WebCore::MainResourceLoader::isPostOrRedirectAfterPost):
69375         (WebCore::MainResourceLoader::willSendRequest):
69376         (WebCore::MainResourceLoader::continueAfterContentPolicy):
69377         (WebCore::MainResourceLoader::didReceiveResponse):
69378         (WebCore::MainResourceLoader::loadNow):
69379         * loader/mac/NetscapePlugInStreamLoaderMac.mm:
69380         (WebCore::NetscapePlugInStreamLoader::didReceiveResponse):
69381         * loader/mac/ResourceLoaderMac.mm:
69382         (WebCore::ResourceLoader::willSendRequest):
69383         (WebCore::ResourceLoader::didReceiveResponse):
69384         (WebCore::ResourceLoader::response):
69385         * loader/mac/SubresourceLoaderMac.mm:
69386         (WebCore::SubresourceLoader::willSendRequest):
69387         (WebCore::SubresourceLoader::didReceiveResponse):
69388         * platform/graphics/svg/SVGImageEmptyClients.h:
69389         (WebCore::SVGEmptyFrameLoaderClient::download):
69390         (WebCore::SVGEmptyFrameLoaderClient::dispatchWillSendRequest):
69391         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveResponse):
69392         (WebCore::SVGEmptyFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
69393         (WebCore::SVGEmptyFrameLoaderClient::incrementProgress):
69394         * platform/network/ResourceHandle.h:
69395         * platform/network/ResourceHandleClient.h:
69396         * platform/network/ResourceResponse.cpp:
69397         (WebCore::ResourceResponse::isHTTP):
69398         * platform/network/ResourceResponse.h:
69399         (WebCore::ResourceResponse::ResourceResponse):
69400         (WebCore::ResourceResponse::isNull):
69401         * platform/network/mac/ResourceResponseMac.mm:
69402         (WebCore::ResourceResponse::nsURLResponse):
69403         (WebCore::ResourceResponse::doUpdateResourceResponse):
69404
69405 2007-01-03  Adele Peterson  <adele@apple.com>
69406
69407         Reviewed by Darin.
69408
69409         - Fix for <rdar://problem/4887422>
69410         http://bugs.webkit.org/show_bug.cgi?id=11848
69411         REGRESSION (SearchField): Search field on developer.apple.com not drawn with top/bottom borders (11848)
69412
69413         Test: fast/forms/searchfield-heights.html
69414
69415         Override the border and the height for search fields that use -webkit-appearance: searchfield.
69416
69417         * css/html4.css: Use box-sizing: border-box for search fields.  We don't need to have the border-box quirk
69418           that we use for the other text fields for this control.
69419         * rendering/RenderThemeMac.h:
69420         * rendering/RenderThemeMac.mm:
69421         (WebCore::RenderThemeMac::searchFieldSizes): Added.
69422         (WebCore::RenderThemeMac::setSearchFieldSize): Added.
69423         (WebCore::RenderThemeMac::adjustSearchFieldStyle): Override the border and the height of the search field.
69424
69425 2007-01-04  Lars Knoll <lars@trolltech.com>
69426
69427         * platform/qt/TemporaryLinkStubs.cpp:
69428         (WebCore::inputElementAltText):
69429         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
69430         (WebCore::contextMenuItemTagDownloadLinkToDisk):
69431         (WebCore::contextMenuItemTagCopyLinkToClipboard):
69432         (WebCore::contextMenuItemTagOpenImageInNewWindow):
69433         (WebCore::contextMenuItemTagDownloadImageToDisk):
69434         (WebCore::contextMenuItemTagCopyImageToClipboard):
69435         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
69436         (WebCore::contextMenuItemTagCopy):
69437         (WebCore::contextMenuItemTagGoBack):
69438         (WebCore::contextMenuItemTagGoForward):
69439         (WebCore::contextMenuItemTagStop):
69440         (WebCore::contextMenuItemTagReload):
69441         (WebCore::contextMenuItemTagCut):
69442         (WebCore::contextMenuItemTagPaste):
69443         (WebCore::contextMenuItemTagNoGuessesFound):
69444         (WebCore::contextMenuItemTagIgnoreSpelling):
69445         (WebCore::contextMenuItemTagLearnSpelling):
69446         (WebCore::contextMenuItemTagSearchWeb):
69447         (WebCore::contextMenuItemTagLookUpInDictionary):
69448         (WebCore::contextMenuItemTagOpenLink):
69449         (WebCore::contextMenuItemTagIgnoreGrammar):
69450         (WebCore::contextMenuItemTagSpellingMenu):
69451         (WebCore::contextMenuItemTagShowSpellingPanel):
69452         (WebCore::contextMenuItemTagCheckSpelling):
69453         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
69454         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
69455         (WebCore::contextMenuItemTagFontMenu):
69456         (WebCore::contextMenuItemTagBold):
69457         (WebCore::contextMenuItemTagItalic):
69458         (WebCore::contextMenuItemTagUnderline):
69459         (WebCore::contextMenuItemTagOutline):
69460         (WebCore::contextMenuItemTagWritingDirectionMenu):
69461         (WebCore::contextMenuItemTagDefaultDirection):
69462         (WebCore::contextMenuItemTagLeftToRight):
69463         (WebCore::contextMenuItemTagRightToLeft):
69464             Added missing stubs.
69465
69466 2007-01-04  Peter Kasting  <pkasting@google.com>
69467
69468         Reviewed by Alexey.
69469
69470         http://bugs.webkit.org/show_bug.cgi?id=11900:
69471         Windows build bustage
69472
69473         * WebCore.vcproj/WebCore/WebCore.vcproj:
69474         * bridge/win/FrameWin.cpp:
69475         (WebCore::FrameWin::FrameWin):
69476         * platform/graphics/BitmapImage.h:
69477         * platform/graphics/GraphicsContext.cpp:
69478         (WebCore::GraphicsContext::setPlatformStrokeColor):
69479         * platform/graphics/Image.h:
69480         * platform/graphics/cairo/GraphicsContextCairo.cpp:
69481         (WebCore::GraphicsContext::drawRect):
69482         (WebCore::adjustLineToPixelBoundaries):
69483         (WebCore::GraphicsContext::drawLine):
69484         (WebCore::GraphicsContext::drawEllipse):
69485         (WebCore::GraphicsContext::strokeArc):
69486         (WebCore::GraphicsContext::drawConvexPolygon):
69487         * platform/graphics/cairo/ImageCairo.cpp:
69488         (WebCore::BitmapImage::checkForSolidColor):
69489         (WebCore::BitmapImage::draw):
69490         (WebCore::BitmapImage::drawTiled):
69491         * platform/graphics/win/ImageWin.cpp:
69492         (WebCore::BitmapImage::initPlatformData):
69493         (WebCore::BitmapImage::invalidatePlatformData):
69494         (WebCore::Image::loadPlatformResource):
69495         * platform/win/FontWin.cpp:
69496         (WebCore::Font::drawGlyphs):
69497         * platform/win/TemporaryLinkStubs.cpp:
69498         (WebCore::userIdleTime):
69499         (WebCore::BitmapImage::drawTiled):
69500         (WebCore::BitmapImage::getHBITMAP):
69501         (WebCore::ContextMenu::~ContextMenu):
69502         (WebCore::ContextMenu::appendItem):
69503         (WebCore::ContextMenuItem::ContextMenuItem):
69504         (WebCore::ContextMenuItem::releasePlatformDescription):
69505         (WebCore::ContextMenuItem::type):
69506         (WebCore::ContextMenuItem::setType):
69507         (WebCore::ContextMenuItem::setAction):
69508         (WebCore::ContextMenuItem::setTitle):
69509         (WebCore::ContextMenuItem::setSubMenu):
69510         (WebCore::ContextMenuItem::setChecked):
69511         (WebCore::ContextMenuItem::setEnabled):
69512         (WebCore::DocumentLoader::originalRequest):
69513         (WebCore::DocumentLoader::request):
69514         (WebCore::DocumentLoader::unreachableURL):
69515         (WebCore::DocumentLoader::getResponseRefreshAndModifiedHeaders):
69516         (WebCore::DocumentLoader::replaceRequestURLForAnchorScroll):
69517         (WebCore::DocumentLoader::setCommitted):
69518         (WebCore::DocumentLoader::isLoading):
69519         (WebCore::DocumentLoader::prepareForLoadStart):
69520         (WebCore::DocumentLoader::isClientRedirect):
69521         (WebCore::DocumentLoader::title):
69522         (WebCore::DocumentLoader::urlForHistory):
69523         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
69524         (WebCore::FrameLoader::load):
69525         (WebCore::FrameLoader::referrer):
69526         (WebCore::FrameLoader::dataURLBaseFromRequest):
69527         (WebCore::FrameLoader::opened):
69528         (WebCore::FrameLoader::applyUserAgent):
69529         (WebCore::GraphicsContext::strokeRect):
69530         (WebCore::IconDatabase::iconForPageURL):
69531         (WebCore::IconDatabase::defaultIcon):
69532         (WebCore::IconDatabase::retainIconForPageURL):
69533         (WebCore::IconDatabase::releaseIconForPageURL):
69534         (WebCore::PageCache::close):
69535         (WebCore::ResourceHandle::willLoadFromCache):
69536         (WebCore::SearchPopupMenu::saveRecentSearches):
69537         (WebCore::SearchPopupMenu::loadRecentSearches):
69538         (WebCore::SearchPopupMenu::SearchPopupMenu):
69539
69540 2007-01-04  Alexey Proskuryakov  <ap@webkit.org>
69541
69542         Reviewed by Darin.
69543
69544         http://bugs.webkit.org/show_bug.cgi?id=11611
69545         REGRESSION: No http referer header sent on XMLHttpRequest
69546
69547         Test: http/tests/xmlhttprequest/referer.html
69548
69549         * loader/FrameLoader.h: Removed FrameLoader::addExtraFieldsToRequest(NSMutableURLRequest*, bool, bool),
69550         which is no longer used.
69551         * loader/mac/FrameLoaderMac.mm: Ditto.
69552         * WebCore.exp: Do not export this method (WebKit doesn't use it).
69553
69554         * loader/mac/SubresourceLoaderMac.mm:
69555         (WebCore::SubresourceLoader::create): Rewrote to create the request with ResourceRequest::nsURLRequest.
69556
69557         * platform/PlatformString.h:
69558         (WebCore::operator!): Added. Previously, attempts to use operator! on a String would result 
69559         with an NSString* conversion, which never returns nil. This was causing a problem in SubresourceLoader::create().
69560
69561 2007-01-04  Lars Knoll <lars@trolltech.com>
69562
69563
69564         Make the Qt build compile again.
69565
69566         * platform/ContextMenu.cpp:
69567         (WebCore::ContextMenu::populate):
69568
69569 2007-01-03  Mitz Pettel  <mitz@webkit.org>
69570
69571         Reviewed by Hyatt.
69572
69573         - fix http://bugs.webkit.org/show_bug.cgi?id=5164
69574           Non-integer percentages are incorrectly rounded down in Safari
69575
69576         Test: fast/css/percentage-non-integer.html
69577
69578         Added floating point constructor and accessors to Length for use with
69579         Percent lengths only. The raw value of a percent length is the integer
69580         part of a constant multiple of the original double value. The constant
69581         is percentScaleFactor, which is currently 128.
69582         
69583         Added assertions that the correct constructors and accessors are used
69584         depending on the type: the double-based percent(), setValue() and Length()
69585         for the Percent type, and the integer-based value(), setValue() and Length()
69586         for all other types.
69587         
69588         calcValue() and calcMinValue() work the same as before, regardless of the
69589         type.
69590
69591         Added helpers for testing if the value is 0, positive, negative or undefined
69592         without having to check the type first.
69593         
69594         Added raw value accessors. These are useful for doing integer math and
69595         comparisons with scaled percent values or doing Length type-agnostic math.
69596
69597         Changed the rest of the code to use the appropriate accessors and helpers.
69598
69599         * css/CSSComputedStyleDeclaration.cpp:
69600         (WebCore::valueForLength):
69601         (WebCore::primitiveValueFromLength):
69602         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
69603         * css/cssstyleselector.cpp:
69604         (WebCore::convertToLength):
69605         (WebCore::CSSStyleSelector::applyProperty):
69606         (WebCore::CSSStyleSelector::mapBackgroundSize):
69607         (WebCore::CSSStyleSelector::mapBackgroundXPosition):
69608         (WebCore::CSSStyleSelector::mapBackgroundYPosition):
69609         * platform/StringImpl.cpp:
69610         (WebCore::parseLength):
69611         * rendering/AutoTableLayout.cpp:
69612         (WebCore::AutoTableLayout::recalcColumn):
69613         (WebCore::AutoTableLayout::fullRecalc):
69614         (WebCore::AutoTableLayout::calcMinMaxWidth):
69615         (WebCore::AutoTableLayout::calcEffectiveWidth):
69616         (WebCore::AutoTableLayout::layout):
69617         (WebCore::AutoTableLayout::calcPercentages):
69618         * rendering/FixedTableLayout.cpp:
69619         (WebCore::FixedTableLayout::calcWidthArray):
69620         (WebCore::FixedTableLayout::layout):
69621         * rendering/Length.h:
69622         (WebCore::Length::Length):
69623         (WebCore::Length::value):
69624         (WebCore::Length::rawValue):
69625         (WebCore::Length::percent):
69626         (WebCore::Length::setValue):
69627         (WebCore::Length::setRawValue):
69628         (WebCore::Length::calcValue):
69629         (WebCore::Length::calcMinValue):
69630         (WebCore::Length::isUndefined):
69631         (WebCore::Length::isZero):
69632         (WebCore::Length::isPositive):
69633         (WebCore::Length::isNegative):
69634         * rendering/RenderBR.cpp:
69635         (WebCore::RenderBR::lineHeight):
69636         * rendering/RenderBlock.cpp:
69637         (WebCore::RenderBlock::isSelfCollapsingBlock):
69638         * rendering/RenderBox.cpp:
69639         (WebCore::cacluateBackgroundSize):
69640         (WebCore::RenderBox::calcWidth):
69641         (WebCore::RenderBox::calcHeight):
69642         (WebCore::RenderBox::calcReplacedWidth):
69643         (WebCore::RenderBox::calcReplacedHeight):
69644         (WebCore::RenderBox::calcAbsoluteHorizontal):
69645         (WebCore::RenderBox::calcAbsoluteVertical):
69646         * rendering/RenderFlexibleBox.cpp:
69647         (WebCore::RenderFlexibleBox::allowedChildFlex):
69648         * rendering/RenderFlow.cpp:
69649         (WebCore::RenderFlow::lineHeight):
69650         * rendering/RenderImage.cpp:
69651         (WebCore::RenderImage::calcReplacedWidth):
69652         (WebCore::RenderImage::calcReplacedHeight):
69653         * rendering/RenderLayer.cpp:
69654         (WebCore::Marquee::direction):
69655         (WebCore::Marquee::start):
69656         * rendering/RenderObject.cpp:
69657         (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
69658         (WebCore::RenderObject::lineHeight):
69659         * rendering/RenderSlider.cpp:
69660         (WebCore::RenderSlider::layout): Added FIXMEs.
69661         * rendering/RenderStyle.h:
69662         (WebCore::LengthBox::nonZero):
69663         (WebCore::RenderStyle::initialLineHeight):
69664         * rendering/RenderTable.cpp:
69665         (WebCore::RenderTable::calcWidth):
69666         * rendering/RenderTableSection.cpp:
69667         (WebCore::RenderTableSection::addCell):
69668         (WebCore::RenderTableSection::layoutRows):
69669
69670 2007-01-03  Mitz Pettel  <mitz@webkit.org>
69671
69672         Reviewed by Hyatt.
69673
69674         - fix http://bugs.webkit.org/show_bug.cgi?id=11744
69675           Setting the 'content' property dynamically has no effect
69676
69677         Test: fast/css/content-dynamic.html
69678
69679         * dom/Node.cpp:
69680         (WebCore::Node::diff): Changed to return 'Detach' if the styles' content
69681         data are not equivalent.
69682
69683 2007-01-03  Mitz Pettel  <mitz@webkit.org>
69684
69685         Reviewed by Darin.
69686
69687         - fix http://bugs.webkit.org/show_bug.cgi?id=12082
69688           REGRESSION (r18333): Crash in RenderFrameSet::layOutAxis()
69689
69690         Test: fast/frames/negative-remaining-length-crash.html
69691
69692         * rendering/RenderFrameSet.cpp:
69693         (WebCore::RenderFrameSet::layOutAxis): Treat negative availableLength
69694         as zero.
69695
69696 2007-01-03  John Sullivan  <sullivan@apple.com>
69697
69698         Written by Darin over my shoulder; reviewed by me
69699
69700         - fixed <rdar://problem/4907437> Find doesn't work if invoked when a form field is focused
69701
69702         * page/Frame.cpp:
69703         (WebCore::isInShadowTree):
69704         new helper function used by findString
69705         (WebCore::Frame::findString):
69706         when deciding whether to start from the selection, ignore selections that are in
69707         a shadow tree (i.e. in a form control)
69708
69709 2007-01-03  Brady Eidson  <beidson@apple.com>
69710
69711         Reviewed by Mark Rowe
69712
69713         Fixes http://bugs.webkit.org/show_bug.cgi?id=12089
69714
69715         * loader/FrameLoader.cpp:
69716         (WebCore::FrameLoader::updateHistoryForCommit): Null check the documentLoader
69717
69718 2007-01-03  David Hyatt  <hyatt@apple.com>
69719
69720         Relax the display type restriction a little bit for generated content inside
69721         inlines.  We still don't allow block display types like we should (since this
69722         will cause a crash), but we at least handle inline-table and inline-block now.
69723
69724         Reviewed by beth
69725
69726         fast/css-generated-content/inline-display-types.html
69727
69728         * rendering/RenderContainer.cpp:
69729         (WebCore::RenderContainer::updatePseudoChildForObject):
69730
69731 2007-01-03  Justin Garcia  <justin.garcia@apple.com>
69732
69733         Reviewed by john
69734         
69735         <rdar://problem/4663571> Spell checking won't cross boundary of individual To-Do item
69736         
69737         No layout tests because advanceToNextMisspelling isn't yet exposed to automated tests.
69738
69739         * editing/mac/EditorMac.mm:
69740         (WebCore::Editor::advanceToNextMisspelling): Confine spell checking to
69741         the highest editable root, instead of the lowest.  Use firstEditablePosition...
69742         to look for an editable position.
69743
69744 2007-01-03  Beth Dakin  <bdakin@apple.com>
69745
69746         Fixing silly mistake. 
69747
69748         * platform/ContextMenu.cpp:
69749         (WebCore::ContextMenu::checkOrEnableIfNeeded): Called wrong string 
69750         function.
69751
69752 2007-01-03  Brady Eidson  <beidson@apple.com>
69753
69754         Reviewed by Anders
69755
69756         http://bugs.webkit.org/show_bug.cgi?id=12093 - Assertion in certain SVG layout tests
69757         I can't really think of a cleaner way to fix this then to help these SVG cases avoid
69758         the ASSERT - hopefully we can clean up the svg-as-image situation as the loader stabilizes 
69759         and we find better ways to handle it...
69760
69761         * loader/mac/DocumentLoaderMac.mm:
69762         (WebCore::DocumentLoader::urlForHistory): empty-check the url before passing it to the
69763         ASSERTing method
69764
69765 2007-01-03  Darin Adler  <darin@apple.com>
69766
69767         Reviewed by Adele.
69768
69769         - removed some obsolete source files
69770
69771         * CMakeLists.txt: Removed obsolete files.
69772         * WebCore.pro: Ditto.
69773         * WebCore.vcproj/WebCore/WebCore.vcproj: Ditto.
69774         * WebCore.xcodeproj/project.pbxproj: Ditto.
69775         * WebCoreSources.bkl: Ditto.
69776
69777         * html/HTMLGenericFormElement.h: Removed reference to RenderFormElement.
69778
69779         * platform/qt/ComboBoxQt.cpp: Removed.
69780         * platform/qt/LineEditQt.cpp: Removed.
69781         * platform/qt/ListBoxQt.cpp: Removed.
69782         * platform/qt/TextEditQt.cpp: Removed.
69783         * rendering/RenderFormElement.cpp: Removed.
69784         * rendering/RenderFormElement.h: Removed.
69785         * rendering/RenderLabel.cpp: Removed.
69786         * rendering/RenderLabel.h: Removed.
69787
69788 2007-01-03  Darin Adler  <darin@apple.com>
69789
69790         Reviewed by Hyatt.
69791
69792         - fix bug where :after content appears backwards
69793
69794         Test: fast/css-generated-content/after-order.html
69795
69796         * rendering/RenderBlock.cpp:
69797         (WebCore::isAfterContent): Added.
69798         (WebCore::RenderBlock::addChildToFlow): Use isAfterContent.
69799         * rendering/RenderInline.cpp:
69800         (WebCore::isAfterContent): Added.
69801         (WebCore::RenderInline::addChildToFlow): Use isAfterContent.
69802
69803 2007-01-03  David Hyatt  <hyatt@apple.com>
69804
69805         Implement box-shadow parsing... getting it all into the RenderStyle.
69806
69807         Reviewed by beth
69808
69809         * css/CSSComputedStyleDeclaration.cpp:
69810         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
69811         * css/CSSPropertyNames.in:
69812         * css/cssparser.cpp:
69813         (WebCore::CSSParser::parseValue):
69814         * css/cssstyleselector.cpp:
69815         (WebCore::CSSStyleSelector::applyProperty):
69816         * rendering/RenderStyle.cpp:
69817         (WebCore::StyleCSS3NonInheritedData::StyleCSS3NonInheritedData):
69818         (WebCore::StyleCSS3NonInheritedData::operator==):
69819         (WebCore::StyleCSS3NonInheritedData::shadowDataEquivalent):
69820         (WebCore::RenderStyle::diff):
69821         (WebCore::RenderStyle::setBoxShadow):
69822         * rendering/RenderStyle.h:
69823         (WebCore::RenderStyle::boxShadow):
69824
69825 2007-01-03  Beth Dakin  <bdakin@apple.com>
69826
69827         Reviewed by John.
69828
69829         Call into WebKit to get localized strings for all of the context 
69830         menu item titles.
69831
69832         * page/mac/WebCoreViewFactory.h:
69833         * platform/ContextMenu.cpp:
69834         (WebCore::createAndAppendFontSubMenu):
69835         (WebCore::createAndAppendSpellingAndGrammarSubMenu):
69836         (WebCore::createAndAppendSpellingSubMenu):
69837         (WebCore::createAndAppendSpeechSubMenu):
69838         (WebCore::createAndAppendWritingDirectionSubMenu):
69839         (WebCore::ContextMenu::populate):
69840         (WebCore::ContextMenu::checkOrEnableIfNeeded):
69841         * platform/LocalizedStrings.h:
69842         * platform/mac/LocalizedStringsMac.mm:
69843         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
69844         (WebCore::contextMenuItemTagDownloadLinkToDisk):
69845         (WebCore::contextMenuItemTagCopyLinkToClipboard):
69846         (WebCore::contextMenuItemTagOpenImageInNewWindow):
69847         (WebCore::contextMenuItemTagDownloadImageToDisk):
69848         (WebCore::contextMenuItemTagCopyImageToClipboard):
69849         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
69850         (WebCore::contextMenuItemTagCopy):
69851         (WebCore::contextMenuItemTagGoBack):
69852         (WebCore::contextMenuItemTagGoForward):
69853         (WebCore::contextMenuItemTagStop):
69854         (WebCore::contextMenuItemTagReload):
69855         (WebCore::contextMenuItemTagCut):
69856         (WebCore::contextMenuItemTagPaste):
69857         (WebCore::contextMenuItemTagNoGuessesFound):
69858         (WebCore::contextMenuItemTagIgnoreSpelling):
69859         (WebCore::contextMenuItemTagLearnSpelling):
69860         (WebCore::contextMenuItemTagSearchInSpotlight):
69861         (WebCore::contextMenuItemTagSearchWeb):
69862         (WebCore::contextMenuItemTagLookUpInDictionary):
69863         (WebCore::contextMenuItemTagOpenLink):
69864         (WebCore::contextMenuItemTagIgnoreGrammar):
69865         (WebCore::contextMenuItemTagSpellingMenu):
69866         (WebCore::contextMenuItemTagShowSpellingPanel):
69867         (WebCore::contextMenuItemTagCheckSpelling):
69868         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
69869         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
69870         (WebCore::contextMenuItemTagFontMenu):
69871         (WebCore::contextMenuItemTagShowFonts):
69872         (WebCore::contextMenuItemTagBold):
69873         (WebCore::contextMenuItemTagItalic):
69874         (WebCore::contextMenuItemTagUnderline):
69875         (WebCore::contextMenuItemTagOutline):
69876         (WebCore::contextMenuItemTagStyles):
69877         (WebCore::contextMenuItemTagShowColors):
69878         (WebCore::contextMenuItemTagSpeechMenu):
69879         (WebCore::contextMenuItemTagStartSpeaking):
69880         (WebCore::contextMenuItemTagStopSpeaking):
69881         (WebCore::contextMenuItemTagWritingDirectionMenu):
69882         (WebCore::contextMenuItemTagDefaultDirection):
69883         (WebCore::contextMenuItemTagLeftToRight):
69884         (WebCore::contextMenuItemTagRightToLeft):
69885
69886 2007-01-03  Brady Eidson  <beidson@apple.com>
69887
69888         Reviewed by Darin and Geoff
69889
69890         http://bugs.webkit.org/show_bug.cgi?id=12105 - Crash visiting Acid2 test page
69891         -Replace lost "free nil checking" in the WebKit->WebCore conversion of the BackForwardList
69892         -Changed ::createItem and ::createItemTree to ::createHistoryItem and ::createHistoryItemTree
69893
69894         * loader/FrameLoader.cpp:
69895         (WebCore::FrameLoader::createHistoryItem):
69896         (WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
69897         (WebCore::FrameLoader::createHistoryItemTree):
69898         (WebCore::FrameLoader::updateHistoryForInternalLoad):
69899         * loader/FrameLoader.h:
69900
69901 2007-01-03  Anders Carlsson  <acarlsson@apple.com>
69902
69903         Reviewed by Geoff.
69904         
69905         Allow plugin elements to handle off events to their widgets.
69906         
69907         * html/HTMLPlugInElement.cpp:
69908         (WebCore::HTMLPlugInElement::defaultEventHandler):
69909         * html/HTMLPlugInElement.h:
69910         * platform/Widget.h:
69911         (WebCore::Widget::handleEvent):
69912
69913 2007-01-03  Lars Knoll <lars@trolltech.com>
69914
69915         Fix the Qt build
69916
69917         * WebCore.pro:
69918         * history/qt/PageCacheQt.cpp: Added.
69919         (WebCore::PageCache::close):
69920         * loader/qt/DocumentLoaderQt.cpp:
69921         (WebCore::DocumentLoader::getResponseRefreshAndModifiedHeaders):
69922         (WebCore::DocumentLoader::urlForHistory):
69923         * loader/qt/FrameLoaderQt.cpp:
69924         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
69925         (WebCore::FrameLoader::didFirstLayout):
69926         (WebCore::FrameLoader::load):
69927         (WebCore::FrameLoader::opened):
69928         (WebCore::FrameLoader::dataURLBaseFromRequest):
69929         (WebCore::FrameLoader::applyUserAgent):
69930         * platform/network/qt/ResourceHandleQt.cpp:
69931         (WebCore::ResourceHandle::loadsBlocked):
69932         (WebCore::ResourceHandle::willLoadFromCache):
69933
69934 2007-01-02  Brady Eidson  <beidson@apple.com>
69935
69936         Reviewed extensively and repeatedly by Darin
69937
69938         <rdar://problem/4887137> - WebCore Back/Forward Cache
69939
69940         * WebCore.exp:
69941         * WebCore.xcodeproj/project.pbxproj:
69942
69943         * bridge/mac/WebCorePageState.h: Removed.
69944         * bridge/mac/WebCorePageState.mm: Removed.
69945
69946         * history/BackForwardList.cpp: Added - This largely emulates the design of WebBackForwardList
69947         (WebCore::BackForwardList::BackForwardList):
69948         (WebCore::BackForwardList::~BackForwardList):
69949         (WebCore::BackForwardList::addItem):
69950         (WebCore::BackForwardList::goBack):
69951         (WebCore::BackForwardList::goForward):
69952         (WebCore::BackForwardList::goToItem):
69953         (WebCore::BackForwardList::backItem):
69954         (WebCore::BackForwardList::currentItem):
69955         (WebCore::BackForwardList::forwardItem):
69956         (WebCore::BackForwardList::backListWithLimit):
69957         (WebCore::BackForwardList::forwardListWithLimit):
69958         (WebCore::BackForwardList::capacity):
69959         (WebCore::BackForwardList::setCapacity):
69960         (WebCore::BackForwardList::setPageCacheSize):
69961         (WebCore::BackForwardList::pageCacheSize):
69962         (WebCore::BackForwardList::clearPageCache):
69963         (WebCore::BackForwardList::usesPageCache):
69964         (WebCore::BackForwardList::backListCount):
69965         (WebCore::BackForwardList::forwardListCount):
69966         (WebCore::BackForwardList::itemAtIndex):
69967         (WebCore::BackForwardList::entries):
69968         (WebCore::BackForwardList::close):
69969         (WebCore::BackForwardList::closed):
69970         (WebCore::BackForwardList::removeItem):
69971         (WebCore::BackForwardList::containsItem):
69972         (WebCore::BackForwardList::setDefaultPageCacheSize):
69973         (WebCore::BackForwardList::defaultPageCacheSize):
69974         * history/BackForwardList.h: Added.
69975
69976         * history/HistoryItem.cpp: Added - This largely emulates the design of WebBackForwardList
69977         (WebCore::defaultNotifyHistoryItemChanged):
69978         (WebCore::HistoryItem::HistoryItem):
69979         (WebCore::HistoryItem::~HistoryItem):
69980         (WebCore::HistoryItem::copy):
69981         (WebCore::HistoryItem::setHasPageCache):
69982         (WebCore::HistoryItem::retainIconInDatabase):
69983         (WebCore::HistoryItem::urlString):
69984         (WebCore::HistoryItem::originalURLString):
69985         (WebCore::HistoryItem::title):
69986         (WebCore::HistoryItem::alternateTitle):
69987         (WebCore::HistoryItem::icon):
69988         (WebCore::HistoryItem::lastVisitedTime):
69989         (WebCore::HistoryItem::url):
69990         (WebCore::HistoryItem::originalURL):
69991         (WebCore::HistoryItem::target):
69992         (WebCore::HistoryItem::parent):
69993         (WebCore::HistoryItem::setAlternateTitle):
69994         (WebCore::HistoryItem::setURLString):
69995         (WebCore::HistoryItem::setURL):
69996         (WebCore::HistoryItem::setOriginalURLString):
69997         (WebCore::HistoryItem::setTitle):
69998         (WebCore::HistoryItem::setTarget):
69999         (WebCore::HistoryItem::setParent):
70000         (WebCore::HistoryItem::setLastVisitedTime):
70001         (WebCore::HistoryItem::visitCount):
70002         (WebCore::HistoryItem::setVisitCount):
70003         (WebCore::HistoryItem::scrollPoint):
70004         (WebCore::HistoryItem::setScrollPoint):
70005         (WebCore::HistoryItem::clearScrollPoint):
70006         (WebCore::HistoryItem::setDocumentState):
70007         (WebCore::HistoryItem::documentState):
70008         (WebCore::HistoryItem::clearDocumentState):
70009         (WebCore::HistoryItem::isTargetItem):
70010         (WebCore::HistoryItem::setIsTargetItem):
70011         (WebCore::HistoryItem::alwaysAttemptToUsePageCache):
70012         (WebCore::HistoryItem::setAlwaysAttemptToUsePageCache):
70013         (WebCore::HistoryItem::addChildItem):
70014         (WebCore::HistoryItem::childItemWithName):
70015         (WebCore::HistoryItem::recurseToFindTargetItem):
70016         (WebCore::HistoryItem::targetItem):
70017         (WebCore::HistoryItem::pageCache):
70018         (WebCore::HistoryItem::children):
70019         (WebCore::HistoryItem::hasChildren):
70020         (WebCore::HistoryItem::formContentType):
70021         (WebCore::HistoryItem::formReferrer):
70022         (WebCore::HistoryItem::rssFeedReferrer):
70023         (WebCore::HistoryItem::setRSSFeedReferrer):
70024         (WebCore::HistoryItem::setFormInfoFromRequest):
70025         (WebCore::HistoryItem::formData):
70026         (WebCore::HistoryItem::mergeAutoCompleteHints):
70027         (WebCore::HistoryItem::hasPageCache):
70028         (WebCore::timer): Function to manage the global release timer
70029         (WebCore::pendingPageCacheToRelease): Function to manage the global queue of caches to be released
70030         (WebCore::HistoryItem::releasePageCache):
70031         (WebCore::closeObjectsInPendingPageCaches):
70032         (WebCore::HistoryItem::releaseAllPendingPageCaches):
70033         (WebCore::HistoryItem::scheduleRelease):
70034         (WebCore::HistoryItem::print):
70035         * history/HistoryItem.h: Added.
70036         * history/mac/HistoryItemMac.mm: Added.
70037         (WebCore::HistoryItem::viewState): In the future we need a platform agnostic way to manage the view state
70038         (WebCore::HistoryItem::setViewState):
70039         (WebCore::HistoryItem::getTransientProperty): Transient properties are, for now, only a Mac concept
70040         (WebCore::HistoryItem::setTransientProperty):
70041
70042         * history/HistoryItemTimer.cpp: Added
70043         (WebCore::HistoryItemTimer::HistoryItemTimer): We need a specific class to be the history item timer because
70044         WebCore::Timers only work when you have an instance of an object, but the caches pending release is a static concept
70045         (WebCore::HistoryItemTimer::isActive):
70046         (WebCore::HistoryItemTimer::schedule):
70047         (WebCore::HistoryItemTimer::invalidate):
70048         (WebCore::HistoryItemTimer::callReleasePageCache):
70049         * history/HistoryItemTimer.h: Added.
70050
70051         * history/PageCache.cpp Added - This is a class that contains the fields that used to be in an NSDictionary in WebKit
70052         (WebCore::PageCache::PageCache):
70053         (WebCore::PageCache::setPageState):
70054         (WebCore::PageCache::~PageCache):
70055         (WebCore::PageCache::pageState):
70056         (WebCore::PageCache::setDocumentLoader):
70057         (WebCore::PageCache::documentLoader):
70058         (WebCore::PageCache::setTimeStamp):
70059         (WebCore::PageCache::setTimeStampToNow):
70060         (WebCore::PageCache::timeStamp):
70061         * history/PageCache.h: Added.
70062         * history/mac/PageCacheMac.mm: Added.
70063         (WebCore::PageCache::close):
70064         (WebCore::PageCache::setDocumentView): In the future we need a platform agnostic way to manage the documentView
70065         (WebCore::PageCache::documentView):
70066
70067         * loader/DocumentLoader.cpp:
70068         (WebCore::DocumentLoader::loadFromPageCache):
70069         (WebCore::DocumentLoader::setLoadingFromPageCache): 
70070         (WebCore::DocumentLoader::isLoadingFromPageCache):
70071         (WebCore::DocumentLoader::originalURL):
70072         (WebCore::DocumentLoader::requestURL):
70073         (WebCore::DocumentLoader::responseURL):
70074         (WebCore::DocumentLoader::responseMIMEType):
70075         * loader/DocumentLoader.h:
70076
70077         * loader/FrameLoader.cpp: Responsibilities previously scattered in WebKit but concentrated in WebView and WebFrame 
70078           are now here, where they should be.
70079         (WebCore::FrameLoader::clear):
70080         (WebCore::FrameLoader::restoreDocumentState):
70081         (WebCore::FrameLoader::goBackOrForward):
70082         (WebCore::FrameLoader::provisionalLoadStarted):
70083         (WebCore::FrameLoader::canCachePage):
70084         (WebCore::FrameLoader::commitProvisionalLoad):
70085         (WebCore::FrameLoader::transitionToCommitted):
70086         (WebCore::FrameLoader::open):
70087         (WebCore::FrameLoader::didFirstLayout):
70088         (WebCore::FrameLoader::dispatchDidChangeLocationWithinPage):
70089         (WebCore::FrameLoader::dispatchDidFinishLoadToClient):
70090         (WebCore::FrameLoader::updateGlobalHistoryForStandardLoad): Marked for usage in future GlobalHistory (uses client for now)
70091         (WebCore::FrameLoader::updateGlobalHistoryForReload): Ditto
70092         (WebCore::FrameLoader::shouldGoToHistoryItem):
70093         (WebCore::FrameLoader::addExtraFieldsToRequest):
70094         (WebCore::FrameLoader::addHistoryItemForFragmentScroll):
70095         (WebCore::FrameLoader::loadProvisionalItemFromPageCache):
70096         (WebCore::FrameLoader::createPageCache):
70097         (WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent):
70098         (WebCore::FrameLoader::createItem):
70099         (WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
70100         (WebCore::FrameLoader::createItemTree):
70101         (WebCore::FrameLoader::saveScrollPositionAndViewStateToItem):
70102         (WebCore::FrameLoader::restoreScrollPositionAndViewState):
70103         (WebCore::FrameLoader::purgePageCache):
70104         (WebCore::FrameLoader::invalidateCurrentItemPageCache):
70105         (WebCore::FrameLoader::saveDocumentState):
70106         (WebCore::FrameLoader::loadItem):
70107         (WebCore::FrameLoader::urlsMatchItem):
70108         (WebCore::FrameLoader::goToItem):
70109         (WebCore::FrameLoader::recursiveGoToItem):
70110         (WebCore::FrameLoader::childFramesMatchItem):
70111         (WebCore::FrameLoader::updateHistoryForStandardLoad):
70112         (WebCore::FrameLoader::updateHistoryForClientRedirect):
70113         (WebCore::FrameLoader::updateHistoryForBackForwardNavigation):
70114         (WebCore::FrameLoader::updateHistoryForReload):
70115         (WebCore::FrameLoader::updateHistoryForInternalLoad):
70116         (WebCore::FrameLoader::updateHistoryForCommit):
70117         (WebCore::FrameLoader::saveDocumentAndScrollState):
70118         (WebCore::FrameLoader::currentHistoryItem):
70119         (WebCore::FrameLoader::previousHistoryItem):
70120         (WebCore::FrameLoader::provisionalHistoryItem):
70121         (WebCore::FrameLoader::setCurrentHistoryItem):
70122         (WebCore::FrameLoader::setPreviousHistoryItem):
70123         (WebCore::FrameLoader::setProvisionalHistoryItem):
70124         * loader/FrameLoader.h:
70125
70126         * loader/FrameLoaderClient.h:
70127
70128         * loader/mac/DocumentLoaderMac.mm:
70129         (WebCore::DocumentLoader::DocumentLoader):
70130         (WebCore::DocumentLoader::getResponseRefreshAndModifiedHeaders):
70131         (WebCore::DocumentLoader::commitIfReady):
70132         (WebCore::DocumentLoader::urlForHistory):
70133
70134         * loader/mac/FrameLoaderMac.mm:
70135         (WebCore::FrameLoader::load):
70136         (WebCore::FrameLoader::startLoading):
70137         (WebCore::FrameLoader::receivedMainResourceError):
70138         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
70139         (WebCore::FrameLoader::opened):
70140         (WebCore::FrameLoader::dataURLBaseFromRequest):
70141         (WebCore::FrameLoader::didChangeTitle):
70142         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
70143         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
70144
70145         * page/FrameTree.cpp:
70146         (WebCore::FrameTree::removeChild):
70147
70148         * page/Page.cpp: Transfered a handful of concepts from WebView
70149         (WebCore::Page::Page):
70150         (WebCore::Page::~Page):
70151         (WebCore::Page::backForwardList):
70152         (WebCore::Page::goBack):
70153         (WebCore::Page::goForward):
70154         (WebCore::Page::goToItem):
70155         * page/Page.h:
70156
70157         * page/PageState.h:
70158         * page/mac/FrameMac.h:
70159         * page/mac/FrameMac.mm:
70160         * page/mac/WebCoreFrameBridge.h:
70161         * page/mac/WebCoreFrameBridge.mm:
70162
70163         * platform/KURL.cpp:
70164         (WebCore::KURL::print):  Added debug only method for debugging convenience
70165         * platform/KURL.h:
70166
70167         * platform/Logging.cpp:
70168         (WebCore::): Added some logging channels
70169         * platform/Logging.h:
70170
70171         * platform/PlatformString.h:
70172         (WebCore::nsStringNilIfEmpty): Added for WebKit use
70173
70174         * platform/SystemTime.h: Added userIdleTime()
70175
70176         * platform/graphics/svg/SVGImage.cpp:
70177         * platform/graphics/svg/SVGImageEmptyClients.h: Updated for new FrameLoaderClient methods
70178         (WebCore::SVGEmptyFrameLoaderClient::setDocumentViewFromPageCache):
70179         (WebCore::SVGEmptyFrameLoaderClient::updateGlobalHistoryForStandardLoad):
70180         (WebCore::SVGEmptyFrameLoaderClient::updateGlobalHistoryForReload):
70181         (WebCore::SVGEmptyFrameLoaderClient::shouldGoToHistoryItem):
70182         (WebCore::SVGEmptyFrameLoaderClient::saveScrollPositionAndViewStateToItem):
70183         (WebCore::SVGEmptyFrameLoaderClient::saveDocumentViewToPageCache):
70184         (WebCore::SVGEmptyFrameLoaderClient::canCachePage):
70185         (WebCore::SVGEmptyEditorClient::~SVGEmptyEditorClient):
70186
70187         * platform/mac/LoggingMac.mm:
70188         (WebCore::InitializeLoggingChannelsIfNecessary):
70189
70190         * platform/mac/SystemTimeMac.cpp:
70191         (WebCore::userIdleTime):
70192
70193         * platform/mac/WebCoreSystemInterface.h: Added wkSecondsSinceLastInput for use in userIdleTime
70194         * platform/mac/WebCoreSystemInterface.mm:
70195
70196         * platform/network/FormData.cpp:
70197         (WebCore::FormData::FormData):
70198         (WebCore::FormData::copy):
70199         * platform/network/FormData.h:
70200
70201         * platform/network/ResourceHandle.h:
70202         * platform/network/mac/ResourceHandleMac.mm:
70203         (WebCore::ResourceHandle::willLoadFromCache): For "are you sure you want to resubmit?" nag
70204
70205         * platform/qt/TemporaryLinkStubs.cpp:
70206         (WebCore::userIdleTime):
70207         * rendering/RenderPart.h:
70208
70209 2007-01-02  Darin Adler  <darin@apple.com>
70210
70211         Rubber stamped by Mitz.
70212
70213         Rename isRenderSVGContainer to isSVGContainer.
70214
70215         * platform/graphics/ImageBuffer.cpp:
70216         (WebCore::ImageBuffer::renderSubtreeToImage):
70217         * rendering/RenderObject.cpp:
70218         (WebCore::RenderObject::containingBlock):
70219         * rendering/RenderObject.h:
70220         (WebCore::RenderObject::isSVGContainer):
70221         * rendering/RenderSVGContainer.cpp:
70222         (WebCore::RenderSVGContainer::viewportTransform):
70223         * rendering/RenderSVGContainer.h:
70224         (WebCore::RenderSVGContainer::isSVGContainer):
70225         * rendering/RenderTreeAsText.cpp:
70226         (WebCore::write):
70227
70228 2007-01-03  Nikolas Zimmermann  <zimmermann@kde.org>
70229
70230         Reviewed by Mitz.
70231
70232         Rename isKCanvasContainer to isRenderSVGContainer.
70233
70234         * platform/graphics/ImageBuffer.cpp:
70235         (WebCore::ImageBuffer::renderSubtreeToImage):
70236         * rendering/RenderObject.cpp:
70237         (WebCore::RenderObject::containingBlock):
70238         * rendering/RenderObject.h:
70239         (WebCore::RenderObject::isRenderSVGContainer):
70240         * rendering/RenderSVGContainer.cpp:
70241         (WebCore::RenderSVGContainer::viewportTransform):
70242         * rendering/RenderSVGContainer.h:
70243         (WebCore::RenderSVGContainer::isRenderSVGContainer):
70244         * rendering/RenderTreeAsText.cpp:
70245         (WebCore::write):
70246
70247 2007-01-02  Beth Dakin  <bdakin@apple.com>
70248
70249         Reviewed by Darin.
70250
70251         Fix assertion failure with WebCore context menus by getting "Copy 
70252         Image" item added in.
70253
70254         * platform/ContextMenu.cpp:
70255         (WebCore::ContextMenu::populate): Check if the image url is a local 
70256         file or if we have an image in the cache.
70257
70258 2007-01-02  Sam Weinig  <sam@webkit.org>
70259
70260         Reviewed by Anders.
70261
70262         Patch for http://bugs.webkit.org/show_bug.cgi?id=12072
70263         select with align attribute should not affect contained text
70264
70265         Don't map align for select elements.
70266
70267         Test: fast/forms/select-align.html
70268
70269         * html/HTMLSelectElement.cpp:
70270         (WebCore::HTMLSelectElement::parseMappedAttribute):
70271
70272 2007-01-02  Sam Weinig  <sam@webkit.org>
70273
70274         Reviewed by Mitz.
70275
70276         Patch for http://bugs.webkit.org/show_bug.cgi?id=12071
70277         button with align attribute should not affect contained text
70278
70279         Don't map align for button elements.
70280
70281         Test: fast/forms/button-align.html
70282
70283         * html/HTMLButtonElement.cpp:
70284         (WebCore::HTMLButtonElement::parseMappedAttribute):
70285
70286 2007-01-02  Sam Weinig  <sam@webkit.org>
70287
70288         Reviewed by Mitz and Anders.
70289
70290         Patch for http://bugs.webkit.org/show_bug.cgi?id=7075
70291         textarea with align=right should not cause contained text to 
70292         be right-justified
70293
70294         Don't map align for textarea elements.
70295
70296         Test: fast/forms/textarea-align.html
70297
70298         * html/HTMLTextAreaElement.cpp:
70299         (WebCore::HTMLTextAreaElement::parseMappedAttribute):
70300
70301 2007-01-02  Eric Seidel  <eric@webkit.org>
70302
70303         Reviewed by mitz.
70304
70305         Implement SVGSVGElement::deselectAll()
70306
70307         * ksvg2/svg/SVGAnimationElement.h:
70308         (WebCore::SVGAnimationElement::updateLastValueWithCurrent): add comment
70309         * ksvg2/svg/SVGSVGElement.cpp:
70310         (WebCore::SVGSVGElement::deselectAll): implement
70311         (WebCore::SVGSVGElement::setCurrentTime): add comment about bug
70312         * ksvg2/svg/SVGSVGElement.idl: remove unnecessary comment
70313
70314 2007-01-02  Sam Weinig  <sam@webkit.org>
70315
70316         Reviewed by Darin.
70317
70318         Patch for http://bugs.webkit.org/show_bug.cgi?id=3360
70319         align="right" on a text input aligns the input field to the right
70320
70321         Don't map align if input type is not 'image'.
70322
70323         Test: fast/forms/input-align-image.html
70324         Test: fast/forms/input-align.html
70325
70326         * WebCore.xcodeproj/project.pbxproj:
70327         * html/HTMLInputElement.cpp:
70328         (WebCore::HTMLInputElement::setInputType):
70329         (WebCore::HTMLInputElement::mapToEntry):
70330         (WebCore::HTMLInputElement::parseMappedAttribute):
70331
70332 2007-01-02  Nikolas Zimmermann  <zimmermann@kde.org>
70333
70334         Reviewed by Eric.
70335
70336         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12013
70337         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11980
70338         Partly fixes: http://bugs.webkit.org/show_bug.cgi?id=6000 (pattern/gradient recursion works now)
70339
70340         Fixed testcases:
70341         coords-units-01-b.svg (<pattern> in objectBoundingBoxMode were broken.)
70342         pattern-in-defs.svg (clip pattern size against target size, to avoid excessive mallocs)
70343         js-update-pattern.svg (live updating really works now!)
70344         js-late-gradient-and-object-creation.svg (objectBoundingBoxMode gradients-on-text work now)
70345         js-late-gradient-creation.svg (same)
70346
70347         Added testcases:
70348         js-late-pattern-and-object-creation.svg (objectBoundingBoxMode patterns-on-text work now)
70349         js-late-pattern-creation.svg (same)
70350         gradient-cycle-detection.svg (tests that cyclic gradients are ignored)
70351         gradient-deep-referencing.svg
70352         pattern-cycle-detection.svg (tests that cyclic patterns are ignored)
70353         pattern-deep-referencing.svg
70354
70355         Rewrite gradient & pattern code, fixing all known bugs & regressions.
70356
70357         -> Remove SVGResourceListener completly (the ugly resourceNotification() hack is gone now)
70358
70359         -> Make patterns operate in all possible combinations of patternUnits / patternContentunits
70360            The SVGPaintServerPattern now asks the SVGPatternElement to build the pattern tile, passing
70361            the target object's bbox rectangle -> objectBoundingBox calculations can be done, so SVGPaintServerPattern
70362            itself doesn't need to know anything about "bounding box mode". Same could be done for gradients.
70363
70364         -> SVGLength::valueAsPercentage() returns again fractional values, saves some "/ 100.0" statements.
70365
70366         -> Deep references (gradientA -> gradientB -> gradientC...) work now. Previously only one reference worked.
70367            Adding GradientAttributes.h / PatternAttributes.h helper structures for the property collection.
70368            Cycle detection is implemented and won't kill us anymore :-)
70369
70370         JS updates on gradients/patterns only cause one repaint of the client's now. Gradient drawing
70371         does not cause the target object to be redrawn immediately afterwards anymore.
70372
70373         * WebCore.xcodeproj/project.pbxproj:
70374         * ksvg2/misc/KCanvasRenderingStyle.cpp:
70375         (WebCore::KSVGPainterFactory::fillPaintServer):
70376         (WebCore::KSVGPainterFactory::strokePaintServer):
70377         * ksvg2/misc/KCanvasRenderingStyle.h:
70378         * ksvg2/misc/SVGDocumentExtensions.cpp:
70379         (WebCore::SVGDocumentExtensions::addPendingResource):
70380         (WebCore::SVGDocumentExtensions::isPendingResource):
70381         (WebCore::SVGDocumentExtensions::removePendingResource):
70382         * ksvg2/misc/SVGDocumentExtensions.h:
70383         * ksvg2/svg/GradientAttributes.h: Added.
70384         (WebCore::GradientAttributes::GradientAttributes):
70385         (WebCore::GradientAttributes::spreadMethod):
70386         (WebCore::GradientAttributes::boundingBoxMode):
70387         (WebCore::GradientAttributes::gradientTransform):
70388         (WebCore::GradientAttributes::stops):
70389         (WebCore::GradientAttributes::setSpreadMethod):
70390         (WebCore::GradientAttributes::setBoundingBoxMode):
70391         (WebCore::GradientAttributes::setGradientTransform):
70392         (WebCore::GradientAttributes::setStops):
70393         (WebCore::GradientAttributes::hasSpreadMethod):
70394         (WebCore::GradientAttributes::hasBoundingBoxMode):
70395         (WebCore::GradientAttributes::hasGradientTransform):
70396         (WebCore::GradientAttributes::hasStops):
70397         * ksvg2/svg/LinearGradientAttributes.h: Added.
70398         (WebCore::LinearGradientAttributes::LinearGradientAttributes):
70399         (WebCore::LinearGradientAttributes::x1):
70400         (WebCore::LinearGradientAttributes::y1):
70401         (WebCore::LinearGradientAttributes::x2):
70402         (WebCore::LinearGradientAttributes::y2):
70403         (WebCore::LinearGradientAttributes::setX1):
70404         (WebCore::LinearGradientAttributes::setY1):
70405         (WebCore::LinearGradientAttributes::setX2):
70406         (WebCore::LinearGradientAttributes::setY2):
70407         (WebCore::LinearGradientAttributes::hasX1):
70408         (WebCore::LinearGradientAttributes::hasY1):
70409         (WebCore::LinearGradientAttributes::hasX2):
70410         (WebCore::LinearGradientAttributes::hasY2):
70411         * ksvg2/svg/PatternAttributes.h: Added.
70412         (WebCore::PatternAttributes::PatternAttributes):
70413         (WebCore::PatternAttributes::x):
70414         (WebCore::PatternAttributes::y):
70415         (WebCore::PatternAttributes::width):
70416         (WebCore::PatternAttributes::height):
70417         (WebCore::PatternAttributes::boundingBoxMode):
70418         (WebCore::PatternAttributes::boundingBoxModeContent):
70419         (WebCore::PatternAttributes::patternTransform):
70420         (WebCore::PatternAttributes::patternContentElement):
70421         (WebCore::PatternAttributes::setX):
70422         (WebCore::PatternAttributes::setY):
70423         (WebCore::PatternAttributes::setWidth):
70424         (WebCore::PatternAttributes::setHeight):
70425         (WebCore::PatternAttributes::setBoundingBoxMode):
70426         (WebCore::PatternAttributes::setBoundingBoxModeContent):
70427         (WebCore::PatternAttributes::setPatternTransform):
70428         (WebCore::PatternAttributes::setPatternContentElement):
70429         (WebCore::PatternAttributes::hasX):
70430         (WebCore::PatternAttributes::hasY):
70431         (WebCore::PatternAttributes::hasWidth):
70432         (WebCore::PatternAttributes::hasHeight):
70433         (WebCore::PatternAttributes::hasBoundingBoxMode):
70434         (WebCore::PatternAttributes::hasBoundingBoxModeContent):
70435         (WebCore::PatternAttributes::hasPatternTransform):
70436         (WebCore::PatternAttributes::hasPatternContentElement):
70437         * ksvg2/svg/RadialGradientAttributes.h: Added.
70438         (WebCore::RadialGradientAttributes::RadialGradientAttributes):
70439         (WebCore::RadialGradientAttributes::cx):
70440         (WebCore::RadialGradientAttributes::cy):
70441         (WebCore::RadialGradientAttributes::r):
70442         (WebCore::RadialGradientAttributes::fx):
70443         (WebCore::RadialGradientAttributes::fy):
70444         (WebCore::RadialGradientAttributes::setCx):
70445         (WebCore::RadialGradientAttributes::setCy):
70446         (WebCore::RadialGradientAttributes::setR):
70447         (WebCore::RadialGradientAttributes::setFx):
70448         (WebCore::RadialGradientAttributes::setFy):
70449         (WebCore::RadialGradientAttributes::hasCx):
70450         (WebCore::RadialGradientAttributes::hasCy):
70451         (WebCore::RadialGradientAttributes::hasR):
70452         (WebCore::RadialGradientAttributes::hasFx):
70453         (WebCore::RadialGradientAttributes::hasFy):
70454         * ksvg2/svg/SVGGradientElement.cpp:
70455         (WebCore::SVGGradientElement::notifyAttributeChange):
70456         (WebCore::SVGGradientElement::canvasResource):
70457         (WebCore::SVGGradientElement::buildStops):
70458         (WebCore::SVGGradientElement::insertedIntoDocument):
70459         * ksvg2/svg/SVGGradientElement.h:
70460         * ksvg2/svg/SVGLength.cpp:
70461         (WebCore::SVGLength::valueAsPercentage):
70462         * ksvg2/svg/SVGLinearGradientElement.cpp:
70463         (WebCore::SVGLinearGradientElement::buildGradient):
70464         (WebCore::SVGLinearGradientElement::collectGradientProperties):
70465         * ksvg2/svg/SVGLinearGradientElement.h:
70466         * ksvg2/svg/SVGLocatable.cpp:
70467         (WebCore::SVGLocatable::getScreenCTM):
70468         * ksvg2/svg/SVGPatternElement.cpp:
70469         (WebCore::SVGPatternElement::SVGPatternElement):
70470         (WebCore::SVGPatternElement::buildPattern):
70471         (WebCore::SVGPatternElement::notifyAttributeChange):
70472         (WebCore::SVGPatternElement::canvasResource):
70473         (WebCore::SVGPatternElement::insertedIntoDocument):
70474         (WebCore::SVGPatternElement::collectPatternProperties):
70475         * ksvg2/svg/SVGPatternElement.h:
70476         * ksvg2/svg/SVGRadialGradientElement.cpp:
70477         (WebCore::SVGRadialGradientElement::buildGradient):
70478         (WebCore::SVGRadialGradientElement::collectGradientProperties):
70479         * ksvg2/svg/SVGRadialGradientElement.h:
70480         * platform/graphics/svg/SVGPaintServerGradient.cpp:
70481         (WebCore::SVGPaintServerGradient::SVGPaintServerGradient):
70482         (WebCore::SVGPaintServerGradient::externalRepresentation):
70483         * platform/graphics/svg/SVGPaintServerGradient.h:
70484         (WebCore::):
70485         * platform/graphics/svg/SVGPaintServerLinearGradient.cpp:
70486         (WebCore::SVGPaintServerLinearGradient::SVGPaintServerLinearGradient):
70487         * platform/graphics/svg/SVGPaintServerLinearGradient.h:
70488         * platform/graphics/svg/SVGPaintServerPattern.cpp:
70489         (WebCore::SVGPaintServerPattern::SVGPaintServerPattern):
70490         (WebCore::SVGPaintServerPattern::patternBoundaries):
70491         (WebCore::SVGPaintServerPattern::setPatternBoundaries):
70492         (WebCore::SVGPaintServerPattern::setTile):
70493         (WebCore::SVGPaintServerPattern::externalRepresentation):
70494         * platform/graphics/svg/SVGPaintServerPattern.h:
70495         * platform/graphics/svg/SVGPaintServerRadialGradient.cpp:
70496         (WebCore::SVGPaintServerRadialGradient::SVGPaintServerRadialGradient):
70497         * platform/graphics/svg/SVGPaintServerRadialGradient.h:
70498         * platform/graphics/svg/SVGResource.cpp:
70499         (WebCore::SVGResource::invalidate):
70500         (WebCore::SVGResource::repaintClients):
70501         * platform/graphics/svg/SVGResource.h:
70502         * platform/graphics/svg/SVGResourceListener.h:
70503         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
70504         (WebCore::cgGradientCallback):
70505         (WebCore::CGShadingRefForRadialGradient):
70506         (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
70507         (WebCore::SVGPaintServerGradient::updateQuartzGradientCache):
70508         (WebCore::SVGPaintServerGradient::teardown):
70509         (WebCore::SVGPaintServerGradient::renderPath):
70510         (WebCore::SVGPaintServerGradient::handleBoundingBoxModeAndGradientTransformation):
70511         (WebCore::SVGPaintServerGradient::setup):
70512         (WebCore::SVGPaintServerGradient::invalidate):
70513         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
70514         (WebCore::SVGPaintServerPattern::setup):
70515         (WebCore::SVGPaintServerPattern::teardown):
70516         * platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp:
70517         (WebCore::SVGPaintServerLinearGradient::setup):
70518         * platform/graphics/svg/qt/SVGPaintServerPatternQt.cpp:
70519         (WebCore::SVGPaintServerPattern::setup):
70520         * platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp:
70521         (WebCore::SVGPaintServerRadialGradient::setup):
70522
70523 2007-01-02  Zack Rusin  <zack@kde.org>
70524
70525         Compilation fix. File names are case-sensitive.
70526
70527         * ksvg2/svg/SVGPathSegList.cpp:
70528
70529 2007-01-02  Zack Rusin  <zack@kde.org>
70530
70531         Compilation fixes for the Qt port.
70532
70533         * WebCore.pro:
70534         * platform/qt/FrameQt.cpp:
70535         (WebCore::FrameQt::bindingRootObject):
70536         (WebCore::FrameQt::addPluginRootObject):
70537
70538 2007-01-02  Eric Seidel  <eric@webkit.org>
70539
70540         Reviewed by rwlbuis.
70541
70542         Refactor more animation code for better sharing between SVGAnimate*Element classes.
70543         - replace handleEndCondition with resetValues() and updateLastValueWithCurrent()
70544         - move initialTransform() function down into SVGTimer (eventually to AnimationCompositor)
70545         Add non-functional (only parses) SVGAnimateMotionElement
70546         Improve precision of getPointAtLength calculations and add support for "getNormalAtLength" functionality (needed for rotate='auto' support in animateMotion)
70547         Move add getSegmentAtLength functionality to SVGPathSegList, move toPathData into SVGPathSegList as well.
70548         Add SVGAnimationElement::hasValidTarget() for future better/simpler ASSERT checking
70549         change transformMatrix() to currentTransform() to match AffineTransform class name
70550
70551         * WebCore.xcodeproj/project.pbxproj:
70552         * ksvg2/misc/SVGTimer.cpp:
70553         (WebCore::SVGTimer::animationsByElement):
70554         (WebCore::baseValueTransformList):
70555         (WebCore::SVGTimer::applyAnimations):
70556         * ksvg2/svg/SVGAnimateColorElement.cpp:
70557         (WebCore::SVGAnimateColorElement::updateLastValueWithCurrent):
70558         * ksvg2/svg/SVGAnimateColorElement.h:
70559         * ksvg2/svg/SVGAnimateMotionElement.cpp: Added.
70560         (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
70561         (WebCore::SVGAnimateMotionElement::~SVGAnimateMotionElement):
70562         (WebCore::SVGAnimateMotionElement::hasValidTarget): added.
70563         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
70564         (WebCore::SVGAnimateMotionElement::animationPath): fetch path from <mpath> or d attribute
70565         (WebCore::SVGAnimateMotionElement::updateCurrentValue):
70566         (WebCore::SVGAnimateMotionElement::handleStartCondition):
70567         (WebCore::SVGAnimateMotionElement::applyAnimationToValue):
70568         * ksvg2/svg/SVGAnimateMotionElement.h: Added.
70569         (WebCore::SVGAnimateMotionElement::contextElement):
70570         (WebCore::SVGAnimateMotionElement::):
70571         * ksvg2/svg/SVGAnimateTransformElement.cpp:
70572         (WebCore::SVGAnimateTransformElement::hasValidTarget): added.
70573         (WebCore::SVGAnimateTransformElement::storeInitialValue):
70574         (WebCore::SVGAnimateTransformElement::updateCurrentValue):
70575         (WebCore::SVGAnimateTransformElement::updateLastValueWithCurrent):
70576         (WebCore::SVGAnimateTransformElement::applyAnimationToValue):
70577         (WebCore::SVGAnimateTransformElement::currentTransform):
70578         * ksvg2/svg/SVGAnimateTransformElement.h:
70579         * ksvg2/svg/SVGAnimationElement.cpp:
70580         (WebCore::SVGAnimationElement::hasValidTarget): added.
70581         (WebCore::SVGAnimationElement::parseMappedAttribute):
70582         (WebCore::SVGAnimationElement::isAdditive):
70583         (WebCore::SVGAnimationElement::isAccumulated):
70584         (WebCore::SVGAnimationElement::handleTimerEvent):
70585         * ksvg2/svg/SVGAnimationElement.h:
70586         (WebCore::SVGAnimationElement::updateLastValueWithCurrent):
70587         (WebCore::SVGAnimationElement::resetValues):
70588         * ksvg2/svg/SVGPathElement.cpp:
70589         (WebCore::SVGPathElement::getPointAtLength):
70590         (WebCore::SVGPathElement::getPathSegAtLength):
70591         (WebCore::SVGPathElement::parseMappedAttribute):
70592         (WebCore::SVGPathElement::toPathData):
70593         * ksvg2/svg/SVGPathSegList.cpp:
70594         (WebCore::SVGPathSegList::getPathSegAtLength): added.
70595         (WebCore::SVGPathSegList::toPathData): added.
70596         * ksvg2/svg/SVGPathSegList.h:
70597         * ksvg2/svg/svgtags.in: add animateMotion
70598         * platform/graphics/Path.cpp:
70599         (WebCore::pathLengthApplierFunction): add support for TraversalNormalAngleAtLength
70600         * platform/graphics/PathTraversalState.cpp:
70601         (WebCore::curveLength): support higher precision pointAtLength calculations, and add normalAtLength support
70602         (WebCore::PathTraversalState::quadraticBezierTo):
70603         (WebCore::PathTraversalState::cubicBezierTo):
70604         * platform/graphics/PathTraversalState.h:
70605         (WebCore::PathTraversalState::): add TraversalNormalAngleAtLength mode
70606
70607 2007-01-01  Mitz Pettel  <mitz@webkit.org>
70608
70609         Reviewed by Darin.
70610
70611         - WebCore changes for http://bugs.webkit.org/show_bug.cgi?id=11849
70612           REGRESSION (r18182): Google Calendar is broken (a regular expression containing a null character is not parsed correctly)
70613
70614         * platform/RegularExpression.cpp:
70615         (WebCore::RegularExpression::Private::compile): Changed to not null-terminate
70616         the pattern string and instead pass its length to pcre_compile.
70617
70618 2007-01-01  Mitz Pettel  <mitz@webkit.org>
70619
70620         Reviewed by Darin.
70621
70622         - fix http://bugs.webkit.org/show_bug.cgi?id=11359
70623           Incomplete repaint of table cell's collapsed border when changing only the cell
70624
70625         Test: fast/repaint/table-cell-collapsed-border.html
70626
70627         * rendering/RenderTable.h:
70628         Added needsSectionRecalc() accessor.
70629         * rendering/RenderTableCell.cpp:
70630         (WebCore::RenderTableCell::getAbsoluteRepaintRect): Overloaded to add the
70631         outer half of any collapsed borders. This function checks the cell's borders'
70632         widths but also the widths of the adjoining cells' borders, since they can
70633         contribute to the length of this cell's borders perpendicular to them, making
70634         such a border overflow the cell in both dimensions.
70635         (WebCore::RenderTableCell::borderLeft): Split the collapsing borders case off to
70636         borderHalfLeft().
70637         (WebCore::RenderTableCell::borderRight): Ditto.
70638         (WebCore::RenderTableCell::borderTop): Ditto.
70639         (WebCore::RenderTableCell::borderBottom): Ditto.
70640         (WebCore::RenderTableCell::borderHalfLeft): Added. Takes an 'outer' boolean
70641         parameter. When true, this function returns the width of the part of the border
70642         that is outside the cell (different from the inner width when the total width is odd).
70643         (WebCore::RenderTableCell::borderHalfRight): Ditto.
70644         (WebCore::RenderTableCell::borderHalfTop): Ditto.
70645         (WebCore::RenderTableCell::borderHalfBottom): Ditto.
70646         * rendering/RenderTableCell.h:
70647
70648 2007-01-01  David Kilzer  <ddkilzer@webkit.org>
70649
70650         WebCore.vcproj change reviewed by Darin.  Additional build files updated by ddkilzer.
70651
70652         * CMakeLists.txt: Removed RenderLineEdit.cpp.
70653         * WebCore.vcproj/WebCore/WebCore.vcproj: Removed RenderLineEdit.cpp and RenderLineEdit.h.
70654         * WebCoreSources.bkl: Removed RenderLineEdit.cpp.
70655
70656 2007-01-01  Mitz Pettel  <mitz@webkit.org>
70657
70658         Reviewed by Mark Rowe.
70659
70660         - fix http://bugs.webkit.org/show_bug.cgi?id=12042
70661           Assertion failure in WebCore::RenderObject::drawBorder
70662
70663         Test: fast/borders/outline-offset-min-assert.html
70664
70665         * rendering/RenderObject.cpp:
70666         (WebCore::RenderObject::paintOutline): Bail out if the width or height is
70667         smaller than twice the outline inset.
70668         
70669 2007-01-01  Mark Rowe  <bdash@webkit.org>
70670
70671         Reviewed by Eric.
70672
70673         http://bugs.webkit.org/show_bug.cgi?id=12061
70674         Bug 12061: Crash in WebCore::Shared<WebCore::StringImpl>::deref
70675
70676         * rendering/RenderStyle.cpp:
70677         (WebCore::ContentData::clearContent): Reset _contentType to CONTENT_NONE to ensure repeated calls to clearContent
70678         do not result in derefing deallocated members.
70679
70680 2007-01-01  Eric Seidel  <eric@webkit.org>
70681
70682         Reviewed by andersca.
70683
70684         Begin pushing code down into SVGAnimateElement
70685
70686         * ksvg2/svg/SVGAnimateColorElement.cpp:
70687         (WebCore::SVGAnimateColorElement::handleStartCondition):
70688         * ksvg2/svg/SVGAnimateColorElement.h:
70689         * ksvg2/svg/SVGAnimateElement.h:
70690         (WebCore::SVGAnimateElement::updateCurrentValue):
70691         (WebCore::SVGAnimateElement::handleStartCondition):
70692         (WebCore::SVGAnimateElement::handleEndCondition):
70693         * ksvg2/svg/SVGAnimateTransformElement.cpp:
70694         (WebCore::SVGAnimateTransformElement::handleStartCondition):
70695         * ksvg2/svg/SVGAnimateTransformElement.h:
70696         * ksvg2/svg/SVGAnimationElement.cpp:
70697         (WebCore::SVGAnimationElement::handleTimerEvent):
70698         * ksvg2/svg/SVGAnimationElement.h:
70699         * ksvg2/svg/SVGSetElement.cpp:
70700         (WebCore::SVGSetElement::updateCurrentValue):
70701         (WebCore::SVGSetElement::handleStartCondition):
70702         (WebCore::SVGSetElement::handleEndCondition):
70703         * ksvg2/svg/SVGSetElement.h:
70704
70705 2007-01-01  Eric Seidel  <eric@webkit.org>
70706
70707         Reviewed by andersca.
70708
70709         Add static function SVGColor::colorFromRGBColorString to allow parsing Colors from SVG color strings w/o creating an SVGColor object.
70710
70711         * ksvg2/svg/SVGAnimateColorElement.cpp:
70712         (WebCore::SVGAnimateColorElement::storeInitialValue): use colorFromRGBColorString
70713         (WebCore::SVGAnimateColorElement::startIfNecessary): use colorFromRGBColorString
70714         * ksvg2/svg/SVGColor.cpp:
70715         (WebCore::SVGColor::setRGBColor): use colorFromRGBColorString
70716         (WebCore::parseNumberOrPercent): new color parsing helper
70717         (WebCore::SVGColor::colorFromRGBColorString): cleaned up version of setRGBColor parsing logic
70718         * ksvg2/svg/SVGColor.h:
70719
70720 2007-01-01  Eric Seidel  <eric@webkit.org>
70721
70722         Reviewed by andersca.
70723
70724         Split handleTimerEvent logic into separate functions in preparation for moving down into SVGAnimationElement
70725
70726         * ksvg2/svg/SVGAnimateColorElement.cpp:
70727         (WebCore::SVGAnimateColorElement::storeInitialValue):
70728         (WebCore::SVGAnimateColorElement::resetValues):
70729         (WebCore::SVGAnimateColorElement::updateCurrentValue):
70730         (WebCore::SVGAnimateColorElement::startIfNecessary):
70731         (WebCore::SVGAnimateColorElement::handleEndCondition):
70732         (WebCore::SVGAnimateColorElement::handleTimerEvent):
70733         * ksvg2/svg/SVGAnimateColorElement.h:
70734         * ksvg2/svg/SVGAnimateTransformElement.cpp:
70735         (WebCore::SVGAnimateTransformElement::storeInitialValue):
70736         (WebCore::SVGAnimateTransformElement::resetValues):
70737         (WebCore::SVGAnimateTransformElement::updateCurrentValue):
70738         (WebCore::SVGAnimateTransformElement::startIfNecessary):
70739         (WebCore::SVGAnimateTransformElement::handleEndCondition):
70740         (WebCore::SVGAnimateTransformElement::handleTimerEvent):
70741         * ksvg2/svg/SVGAnimateTransformElement.h:
70742
70743 2007-01-01  Rob Buis  <buis@kde.org>
70744
70745         Reviewed by Eric.
70746
70747         Simple cleanups, removing unused color table, copyright and include guard fixes.
70748
70749         * ksvg2/svg/SVGColor.cpp:
70750         * ksvg2/svg/SVGColor.h:
70751
70752 2007-01-01  Eric Seidel  <eric@webkit.org>
70753
70754         Reviewed by andersca.
70755
70756         More animation code cleanup.
70757
70758         * ksvg2/svg/SVGAnimateColorElement.cpp:
70759         (WebCore::SVGAnimateColorElement::handleTimerEvent):
70760         * ksvg2/svg/SVGAnimateTransformElement.cpp:
70761         (WebCore::SVGAnimateTransformElement::handleTimerEvent):
70762         * ksvg2/svg/SVGAnimationElement.cpp:
70763         (WebCore::SVGAnimationElement::SVGAnimationElement):
70764         (WebCore::SVGAnimationElement::connectedToTimer):
70765         (WebCore::SVGAnimationElement::connectTimer):
70766         (WebCore::SVGAnimationElement::disconnectTimer):
70767         (WebCore::SVGAnimationElement::updateForElapsedSeconds):
70768         * ksvg2/svg/SVGAnimationElement.h:
70769         * ksvg2/svg/SVGSetElement.cpp:
70770         (WebCore::SVGSetElement::handleTimerEvent):
70771         * ksvg2/svg/SVGSetElement.h:
70772
70773 2007-01-01  Eric Seidel  <eric@webkit.org>
70774
70775         Reviewed by mitz.
70776
70777         More clean-up to animation code.
70778
70779         * ksvg2/svg/SVGAnimateColorElement.cpp:
70780         (WebCore::SVGAnimateColorElement::handleTimerEvent):
70781         * ksvg2/svg/SVGAnimateTransformElement.cpp:
70782         (WebCore::SVGAnimateTransformElement::handleTimerEvent):
70783         (WebCore::SVGAnimateTransformElement::parseTransformValue):
70784         (WebCore::SVGAnimateTransformElement::calculateRotationFromMatrix):
70785
70786 2007-01-01  Eric Seidel  <eric@webkit.org>
70787
70788         Reviewed by olliej.
70789
70790         Begin pushing more animation logic out of SVGTimer and into the SVGAnimate* classes.
70791         
70792         * ksvg2/misc/SVGTimer.cpp:
70793         (WebCore::SVGTimer::animationsByElement): add comment
70794         (WebCore::SVGTimer::notifyAll): push logic into SVGAnimte* classes
70795         * ksvg2/svg/SVGAnimateColorElement.cpp:
70796         (WebCore::SVGAnimateColorElement::applyAnimationToValue): added.
70797         * ksvg2/svg/SVGAnimateColorElement.h:
70798         * ksvg2/svg/SVGAnimateElement.cpp:
70799         * ksvg2/svg/SVGAnimateTransformElement.cpp:
70800         (WebCore::SVGAnimateTransformElement::applyAnimationToValue): added.
70801         * ksvg2/svg/SVGAnimateTransformElement.h:
70802         * ksvg2/svg/SVGAnimationElement.cpp:
70803         (WebCore::calculateTimePercentage): logic moved from SVGTimer
70804         (WebCore::SVGAnimationElement::updateForElapsedSeconds): logic moved from SVGTimer
70805         * ksvg2/svg/SVGAnimationElement.h:
70806         * ksvg2/svg/SVGTransformList.cpp:
70807         (SVGTransformList::concatenate): fixed spacing
70808
70809 2007-01-01  Eric Seidel  <eric@webkit.org>
70810
70811         Reviewed by olliej.
70812
70813         Split out animationsByElement() logic in preparation for adding AnimationCompositor class
70814         Add addColorsAndClamp helper (since adding and clamping is the common case)
70815
70816         * ksvg2/misc/SVGTimer.cpp:
70817         (WebCore::SVGTimer::animationsByElement): split out from notifyAll
70818         (WebCore::SVGTimer::notifyAll):
70819         * ksvg2/misc/SVGTimer.h:
70820         * ksvg2/svg/SVGAnimateColorElement.cpp:
70821         (WebCore::SVGAnimateColorElement::addColorsAndClamp): added.
70822         * ksvg2/svg/SVGAnimateColorElement.h:
70823
70824 2006-12-31  Eric Seidel  <eric@webkit.org>
70825
70826         Reviewed by olliej.
70827
70828         Split KSVGTimeScheduler into SVGTimer and TimeScheduler.
70829         (Basic clean-up before re-working animation system)
70830
70831         * WebCore.xcodeproj/project.pbxproj:
70832         * ksvg2/misc/KSVGTimeScheduler.cpp: Removed.
70833         * ksvg2/misc/KSVGTimeScheduler.h: Removed.
70834         * ksvg2/misc/SVGTimer.cpp: Added.
70835         (WebCore::SVGTimer::SVGTimer):
70836         (WebCore::SVGTimer::calculateTimePercentage):
70837         (WebCore::SVGTimer::notifyAll):
70838         * ksvg2/misc/SVGTimer.h: Added.
70839         * ksvg2/misc/TimeScheduler.cpp: Added.
70840         (WebCore::TimeScheduler::TimeScheduler):
70841
70842 2006-12-31  Eric Seidel  <eric@webkit.org>
70843
70844         Reviewed by olliej.
70845
70846         Re-enable animateTransform (now that SVGList is fixed)
70847         (Things are only "less broken" not totally fixed yet.)
70848
70849         * ksvg2/misc/KSVGTimeScheduler.cpp:
70850         (WebCore::SVGTimer::notifyAll):
70851
70852 2006-12-31  Mitz Pettel  <mitz@webkit.org>
70853
70854         Reviewed by Hyatt.
70855
70856         - http://bugs.webkit.org/show_bug.cgi?id=12049
70857           RenderBlock::calcMinMaxWidth() should not examine children of fixed-width blocks
70858
70859         No test possible (no change to functionality).
70860
70861         * rendering/RenderBlock.cpp:
70862         (WebCore::RenderBlock::calcMinMaxWidth): Call calc{Inline,Block}MinMaxWidth()
70863         only if their result is needed.
70864
70865 == Rolled over to ChangeLog-2006-12-31 ==