7490f78f4f8b076f5322ad2f1b4ab636bb31029f
[WebKit-https.git] / WebCore / ChangeLog
1 === Start merge of feature-branch 11-11-2007 ===
2
3 2007-10-11  Oliver Hunt  <oliver@apple.com>
4
5         Reviewed by Sam.
6
7         Bug 15469: feature branch has 100's of implicit double -> float conversions
8
9         Re-enable -Wshorten-64-to-32, and make required code changes to make us build sanely again.
10         
11         * WebCore.xcodeproj/project.pbxproj:
12         * bindings/js/JSSVGMatrixCustom.cpp:
13         (WebCore::JSSVGMatrix::translate):
14         (WebCore::JSSVGMatrix::scale):
15         (WebCore::JSSVGMatrix::scaleNonUniform):
16         (WebCore::JSSVGMatrix::rotate):
17         (WebCore::JSSVGMatrix::skewX):
18         (WebCore::JSSVGMatrix::skewY):
19         * bindings/scripts/CodeGeneratorJS.pm:
20         * bindings/scripts/CodeGeneratorObjC.pm:
21         * ksvg2/css/SVGRenderStyle.cpp:
22         (WebCore::SVGRenderStyle::cssPrimitiveToLength):
23         * ksvg2/css/SVGRenderStyle.h:
24         * ksvg2/svg/SVGAnimateMotionElement.cpp:
25         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
26         (WebCore::SVGAnimateMotionElement::updateAnimatedValue):
27         (WebCore::parsePoint):
28         (WebCore::SVGAnimateMotionElement::calculateFromAndToValues):
29         * ksvg2/svg/SVGAnimationElement.cpp:
30         (WebCore::SVGAnimationElement::parseKeyNumbers):
31         (WebCore::parseKeySplines):
32         * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
33         (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
34         (WebCore::SVGComponentTransferFunctionElement::parseMappedAttribute):
35         * ksvg2/svg/SVGFECompositeElement.cpp:
36         (WebCore::SVGFECompositeElement::SVGFECompositeElement):
37         (WebCore::SVGFECompositeElement::parseMappedAttribute):
38         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
39         (WebCore::SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement):
40         (WebCore::SVGFEDiffuseLightingElement::parseMappedAttribute):
41         * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
42         (WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
43         (WebCore::SVGFEDisplacementMapElement::parseMappedAttribute):
44         * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
45         (WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement):
46         (WebCore::SVGFEGaussianBlurElement::parseMappedAttribute):
47         * ksvg2/svg/SVGFELightElement.cpp:
48         (WebCore::SVGFELightElement::SVGFELightElement):
49         (WebCore::SVGFELightElement::parseMappedAttribute):
50         * ksvg2/svg/SVGFEOffsetElement.cpp:
51         (WebCore::SVGFEOffsetElement::SVGFEOffsetElement):
52         (WebCore::SVGFEOffsetElement::parseMappedAttribute):
53         * ksvg2/svg/SVGFESpecularLightingElement.cpp:
54         (WebCore::SVGFESpecularLightingElement::SVGFESpecularLightingElement):
55         (WebCore::SVGFESpecularLightingElement::parseMappedAttribute):
56         * ksvg2/svg/SVGFETurbulenceElement.cpp:
57         (WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
58         (WebCore::SVGFETurbulenceElement::parseMappedAttribute):
59         * ksvg2/svg/SVGFitToViewBox.cpp:
60         (WebCore::SVGFitToViewBox::parseMappedAttribute):
61         * ksvg2/svg/SVGFitToViewBox.h:
62         * ksvg2/svg/SVGLength.cpp:
63         (WebCore::SVGLength::setValueAsString):
64         (WebCore::SVGLength::PercentageOfViewport):
65         * ksvg2/svg/SVGNumber.idl:
66         * ksvg2/svg/SVGNumberList.cpp:
67         (WebCore::SVGNumberList::parse):
68         * ksvg2/svg/SVGNumberList.h:
69         * ksvg2/svg/SVGParserUtilities.cpp:
70         (WebCore::_parseNumber):
71         (WebCore::parseNumber):
72         (WebCore::pointsListFromSVGData):
73         (WebCore::PathBuilder::svgMoveTo):
74         (WebCore::PathBuilder::svgLineTo):
75         (WebCore::PathBuilder::svgCurveToCubic):
76         (WebCore::SVGPathSegListBuilder::svgMoveTo):
77         (WebCore::SVGPathSegListBuilder::svgLineTo):
78         (WebCore::SVGPathSegListBuilder::svgLineToHorizontal):
79         (WebCore::SVGPathSegListBuilder::svgLineToVertical):
80         (WebCore::SVGPathSegListBuilder::svgCurveToCubic):
81         (WebCore::SVGPathSegListBuilder::svgCurveToCubicSmooth):
82         (WebCore::SVGPathSegListBuilder::svgCurveToQuadratic):
83         (WebCore::SVGPathSegListBuilder::svgCurveToQuadraticSmooth):
84         (WebCore::SVGPathSegListBuilder::svgArcTo):
85         * ksvg2/svg/SVGParserUtilities.h:
86         * ksvg2/svg/SVGPathElement.cpp:
87         (WebCore::SVGPathElement::SVGPathElement):
88         * ksvg2/svg/SVGSVGElement.cpp:
89         (WebCore::SVGSVGElement::pixelUnitToMillimeterX):
90         (WebCore::SVGSVGElement::pixelUnitToMillimeterY):
91         * ksvg2/svg/SVGSVGElement.h:
92         * ksvg2/svg/SVGTransformDistance.cpp:
93         (WebCore::SVGTransformDistance::addToSVGTransform):
94         (WebCore::SVGTransformDistance::distance):
95         * ksvg2/svg/SVGTransformDistance.h:
96         * ksvg2/svg/SVGTransformable.cpp:
97         (WebCore::SVGTransformable::parseTransformValue):
98         * ksvg2/svg/SVGViewSpec.cpp:
99         (WebCore::SVGViewSpec::parseViewSpec):
100         * platform/graphics/svg/SVGResourceFilter.cpp:
101         (WebCore::SVGResourceFilter::filterBBoxForItemBBox):
102         * platform/graphics/svg/cg/CgSupport.cpp:
103         (WebCore::applyStrokeStyleToContext):
104         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
105         (WebCore::SVGPaintServerPattern::setup):
106         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
107         (WebCore::SVGResourceFilter::applyFilter):
108         * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
109         (WebCore::SVGComponentTransferFunction::SVGComponentTransferFunction):
110         * platform/graphics/svg/filters/SVGFEComposite.cpp:
111         (WebCore::SVGFEComposite::SVGFEComposite):
112         * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
113         (WebCore::SVGFEConvolveMatrix::SVGFEConvolveMatrix):
114         * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
115         (WebCore::SVGFEDiffuseLighting::SVGFEDiffuseLighting):
116         * platform/graphics/svg/filters/SVGFEFlood.cpp:
117         (WebCore::SVGFEFlood::SVGFEFlood):
118         * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
119         (WebCore::SVGFEGaussianBlur::SVGFEGaussianBlur):
120         * platform/graphics/svg/filters/SVGFEMorphology.cpp:
121         (WebCore::SVGFEMorphology::SVGFEMorphology):
122         * platform/graphics/svg/filters/SVGFEOffset.cpp:
123         (WebCore::SVGFEOffset::SVGFEOffset):
124         * platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
125         (WebCore::SVGFESpecularLighting::SVGFESpecularLighting):
126         * platform/graphics/svg/filters/SVGFETurbulence.cpp:
127         (WebCore::SVGFETurbulence::SVGFETurbulence):
128         * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
129         (WebCore::SVGFEColorMatrix::getCIFilter):
130         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm:
131         (WebCore::getVectorForChannel):
132         (WebCore::getLightVectors):
133         * platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
134         (WebCore::SVGFEImage::getCIFilter):
135         * rendering/RenderPath.cpp:
136         (WebCore::RenderPath::drawMarkersIfNeeded):
137         * rendering/RenderSVGImage.cpp:
138         (WebCore::RenderSVGImage::paint):
139         * rendering/RenderSVGInlineText.cpp:
140         (WebCore::RenderSVGInlineText::computeAbsoluteRectForRange):
141         * rendering/RenderSVGRoot.cpp:
142         (WebCore::RenderSVGRoot::applyContentTransforms):
143         (WebCore::RenderSVGRoot::calcViewport):
144         (WebCore::RenderSVGRoot::nodeAtPoint):
145         * rendering/RenderSVGText.cpp:
146         (WebCore::RenderSVGText::absoluteRects):
147         (WebCore::RenderSVGText::relativeBBox):
148         * rendering/RenderSVGTextPath.cpp:
149         * rendering/SVGCharacterLayoutInfo.cpp:
150         (WebCore::calculateBaselineShift):
151         (WebCore::SVGCharacterLayoutInfo::SVGCharacterLayoutInfo):
152         (WebCore::SVGCharacterLayoutInfo::processedChunk):
153         (WebCore::SVGCharacterLayoutInfo::nextPathLayoutPointAndAngle):
154         (WebCore::SVGCharacterLayoutInfo::addLayoutInformation):
155         * rendering/SVGCharacterLayoutInfo.h:
156         * rendering/SVGInlineTextBox.cpp:
157         (WebCore::SVGInlineTextBox::calculateGlyphBoundaries):
158         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
159         (WebCore::pathForDecoration):
160         * rendering/SVGRenderTreeAsText.cpp:
161         (WebCore::writeStyle):
162         * rendering/SVGRootInlineBox.cpp:
163         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
164         (WebCore::applyTextAnchorToTextChunk):
165         (WebCore::SVGRootInlineBox::buildLayoutInformation):
166         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
167
168 2007-10-11  Andrew Wellington  <proton@wiretapped.net>
169
170         Reviewed by Eric Seidel.
171
172         Fix for http://bugs.webkit.org/show_bug.cgi?id=15076
173         "deg2rad has multiple definitions"
174         
175         Use deg2rad, rad2deg, deg2grad, grad2deg, rad2grad, grad2rad
176         from wtf where appropriate.
177         
178         No test cases as this doesn't change behaviour.
179         
180         Change based on original patch by Rob Buis.
181
182         * ksvg2/svg/SVGAngle.cpp:
183         (WebCore::SVGAngle::calculate):
184         (WebCore::SVGAngle::convertToSpecifiedUnits):
185         (WebCore::SVGAngle::todeg):
186         (WebCore::SVGAngle::torad):
187         * platform/graphics/AffineTransform.cpp:
188         (WebCore::AffineTransform::rotateFromVector):
189         (WebCore::AffineTransform::skewX):
190         (WebCore::AffineTransform::skewY):
191         * platform/graphics/cg/AffineTransformCG.cpp:
192         (WebCore::AffineTransform::rotate):
193         * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
194         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
195         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm:
196         * rendering/RenderPath.cpp:
197         (WebCore::drawMarkerWithData):
198
199 2007-10-11  Nikolas Zimmermann  <zimmermann@kde.org>
200
201         Reviewed by Oliver.
202
203         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6421 (<text> textLength attribute is not respected)
204         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6422 (<text> lengthAdjust attribute is not respected)
205
206         Implement textLength and full lengthAdjust (both 'spacing' & 'spacingAndGlyphs' mode)
207         for <text> & <tspan> & friends. <textPath> is still todo, as it's special.
208
209         Also fix usage of cummulatedGlyphWidth/Height in SVGInlineTextBox, calculateGlyphBoundaries was
210         supposed to be used in the distance calculations, to take per character transformations into account (ie. rotation).
211
212         Fixes: svg/W3C-SVG-1.1/text-text-01-b.svg (complelty fixed the single W3C textLength testcase)
213         Partly fixed: svg/batik/text/textOnPathSpaces.svg (kerning support missing)
214         Partly fixed: svg/batik/text/textLayout.svg (word-letter spacing & textLength is todo)
215
216         * ksvg2/svg/SVGTextContentElement.cpp:
217         (WebCore::SVGTextContentElement::SVGTextContentElement):
218         (WebCore::SVGTextContentElement::parseMappedAttribute):
219         * rendering/SVGCharacterLayoutInfo.cpp:
220         (WebCore::SVGCharacterLayoutInfo::nextPathLayoutPointAndAngle):
221         * rendering/SVGCharacterLayoutInfo.h:
222         (WebCore::SVGTextChunk::SVGTextChunk):
223         (WebCore::SVGTextChunkWalker::operator()):
224         * rendering/SVGInlineTextBox.cpp:
225         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
226         (WebCore::SVGInlineTextBoxSelectionRectWalker::chunkPortionCallback):
227         (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
228         * rendering/SVGRootInlineBox.cpp:
229         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
230         (WebCore::cummulatedWidthOrHeightOfTextChunk):
231         (WebCore::cummulatedWidthOfTextChunk):
232         (WebCore::cummulatedHeightOfTextChunk):
233         (WebCore::applyTextAnchorToTextChunk):
234         (WebCore::applyTextLengthCorrectionToTextChunk):
235         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
236         (WebCore::SVGRootInlineBox::buildTextChunks):
237         (WebCore::SVGRootInlineBox::layoutTextChunks):
238         (WebCore::SVGRootInlineBox::walkTextChunks):
239
240 2007-10-11  Oliver Hunt  <oliver@apple.com>
241
242         Reviewed by Niko.
243
244         Fix for Bug 15468: Parsing of numbers and lists is too lenient in SVG
245
246         Correct parsing of numbers, number lists, and length lists in SVG.
247
248         * ksvg2/svg/SVGLength.cpp:
249         (WebCore::SVGLength::setValueAsString):
250         * ksvg2/svg/SVGLength.h:
251         * ksvg2/svg/SVGLengthList.cpp:
252         (WebCore::SVGLengthList::parse):
253         * ksvg2/svg/SVGParserUtilities.cpp:
254         (WebCore::parseNumber):
255
256 2007-10-11  Allan Sandfeld Jensen  <sandfeld@kde.org>
257  
258          Reviewed by Maciej and Eric.
259  
260          Implement CSS selector combinators nondeterministic matching. 
261          Fixes http://bugs.webkit.org/show_bug.cgi?id=3428
262  
263          * css/CSSStyleSelector.cpp:
264          (WebCore::CSSStyleSelector::matchRulesForList):
265          (WebCore::CSSStyleSelector::checkSelector): Split the function and make the second part recursive
266          (WebCore::CSSStyleSelector::checkOneSelector): Handle pseodo-elements rules and hoveractive quirks 
267          here instead of in checkSelector.
268          * css/CSSStyleSelector.h:
269  
270 2007-10-10  Eric Seidel  <eric@webkit.org>
271
272         Reviewed by Nikolas Zimmermann.
273         
274         Fix the SVG dom so that rect.x.baseVal = rect.x.baseVal like it should.
275         http://bugs.webkit.org/show_bug.cgi?id=14150
276
277         Test: svg/dom/animated-tearoff-equlity.xhtml
278
279         * ksvg2/svg/SVGAnimatedTemplate.h:
280         (WebCore::SVGAnimatedTypeWrapperKey::SVGAnimatedTypeWrapperKey):
281         (WebCore::SVGAnimatedTypeWrapperKey::operator==):
282         (WebCore::SVGAnimatedTypeWrapperKeyHash::hash):
283         (WebCore::SVGAnimatedTypeWrapperKeyHash::equal):
284         (WebCore::SVGAnimatedTypeWrapperKeyHashTraits::deletedValue):
285         (WebCore::SVGAnimatedTypeWrapperKeyHashTraits::emptyValue):
286         (WebCore::SVGAnimatedTemplate::~SVGAnimatedTemplate):
287         (WebCore::SVGAnimatedTemplate::wrapperCache):
288         (WebCore::SVGAnimatedTemplate::forgetWrapper):
289         (WebCore::lookupOrCreateWrapper):
290         * ksvg2/svg/SVGElement.h:
291
292 2007-10-10  Oliver Hunt  <oliver@apple.com>
293
294         Reviewed by Maciej.
295
296         Leopard build fix -- SVGDocument should not trty to make read/write properties read-only
297
298         Remove those API definitions SVGDocument now inherits from Document
299
300         * ksvg2/svg/SVGDocument.idl:
301
302 2007-10-10  Eric Seidel  <eric@webkit.org>
303
304         Reviewed by Oliver.
305
306         Make renderers pull localTransform instead of depending on DOM elements to push
307         This allows for cleaner invalidation code, and makes writing animation easier.
308         Also fixed a tiny bug in SVGRenderImage focus ring calculations while there
309         
310         Updated test results for svg/custom/focus-ring.svg
311
312         * WebCore.xcodeproj/project.pbxproj:
313         * ksvg2/svg/SVGAElement.cpp:
314         (WebCore::SVGAElement::createRenderer):
315         * ksvg2/svg/SVGAnimateMotionElement.cpp:
316         (WebCore::SVGAnimateMotionElement::applyAnimatedValueToElement):
317         * ksvg2/svg/SVGAnimateTransformElement.cpp:
318         (WebCore::SVGAnimateTransformElement::applyAnimatedValueToElement):
319         * ksvg2/svg/SVGClipPathElement.cpp:
320         (WebCore::SVGClipPathElement::canvasResource):
321         * ksvg2/svg/SVGElement.h:
322         * ksvg2/svg/SVGGElement.cpp:
323         (WebCore::SVGGElement::createRenderer):
324         * ksvg2/svg/SVGImageElement.cpp:
325         * ksvg2/svg/SVGLocatable.cpp:
326         (WebCore::SVGLocatable::getCTM):
327         (WebCore::SVGLocatable::getScreenCTM):
328         * ksvg2/svg/SVGMarkerElement.cpp:
329         (WebCore::SVGMarkerElement::canvasResource):
330         (WebCore::SVGMarkerElement::notifyAttributeChange):
331         * ksvg2/svg/SVGSVGElement.h:
332         * ksvg2/svg/SVGStyledElement.cpp:
333         (WebCore::SVGStyledElement::rendererIsNeeded):
334         (WebCore::SVGStyledElement::notifyResourceParentIfExistant):
335         * ksvg2/svg/SVGStyledElement.h:
336         (WebCore::SVGStyledElement::style):
337         * ksvg2/svg/SVGStyledTransformableElement.cpp:
338         (WebCore::SVGStyledTransformableElement::animatedLocalTransform):
339         (WebCore::SVGStyledTransformableElement::parseMappedAttribute):
340         (WebCore::SVGStyledTransformableElement::notifyAttributeChange):
341         (WebCore::SVGStyledTransformableElement::createRenderer):
342         * ksvg2/svg/SVGStyledTransformableElement.h:
343         (WebCore::SVGStyledTransformableElement::toPathData):
344         * ksvg2/svg/SVGSwitchElement.cpp:
345         (WebCore::SVGSwitchElement::createRenderer):
346         * ksvg2/svg/SVGTRefElement.cpp:
347         (WebCore::SVGTRefElement::updateReferencedText):
348         * ksvg2/svg/SVGTextElement.cpp:
349         (WebCore::SVGTextElement::parseMappedAttribute):
350         (WebCore::SVGTextElement::animatedLocalTransform):
351         * ksvg2/svg/SVGTextElement.h:
352         * ksvg2/svg/SVGTextPathElement.cpp:
353         * ksvg2/svg/SVGTextPathElement.h:
354         * ksvg2/svg/SVGTransformable.cpp:
355         (WebCore::SVGTransformable::getCTM):
356         (WebCore::SVGTransformable::getScreenCTM):
357         * ksvg2/svg/SVGTransformable.h:
358         * ksvg2/svg/SVGUseElement.cpp:
359         (WebCore::SVGUseElement::createRenderer):
360         (WebCore::SVGUseElement::attachShadowTree):
361         * platform/graphics/AffineTransform.h:
362         (WebCore::AffineTransform::operator!=):
363         * platform/graphics/svg/SVGResourceMarker.cpp:
364         (WebCore::SVGResourceMarker::setMarker):
365         * platform/graphics/svg/SVGResourceMarker.h:
366         * rendering/RenderForeignObject.cpp:
367         (WebCore::RenderForeignObject::calculateLocalTransform):
368         (WebCore::RenderForeignObject::layout):
369         * rendering/RenderForeignObject.h:
370         (WebCore::RenderForeignObject::localTransform):
371         * rendering/RenderObject.cpp:
372         * rendering/RenderObject.h:
373         * rendering/RenderPath.cpp:
374         (WebCore::RenderPath::RenderPath):
375         (WebCore::RenderPath::localTransform):
376         (WebCore::RenderPath::calculateLocalTransform):
377         (WebCore::RenderPath::layout):
378         * rendering/RenderPath.h:
379         * rendering/RenderSVGContainer.cpp:
380         (WebCore::RenderSVGContainer::localTransform):
381         (WebCore::RenderSVGContainer::calculateLocalTransform):
382         (WebCore::RenderSVGContainer::layout):
383         * rendering/RenderSVGContainer.h:
384         * rendering/RenderSVGImage.h:
385         (WebCore::RenderSVGImage::localTransform):
386         * rendering/RenderSVGText.cpp:
387         (WebCore::RenderSVGText::calculateLocalTransform):
388         (WebCore::RenderSVGText::layout):
389         * rendering/RenderSVGText.h:
390         (WebCore::RenderSVGText::isSVGText):
391         (WebCore::RenderSVGText::localTransform):
392         * rendering/RenderSVGTextPath.cpp:
393         (WebCore::RenderSVGTextPath::layoutPath):
394         (WebCore::RenderSVGTextPath::startOffset):
395         (WebCore::RenderSVGTextPath::exactAlignment):
396         (WebCore::RenderSVGTextPath::stretchMethod):
397         * rendering/RenderSVGTextPath.h:
398         * rendering/RenderSVGTransformableContainer.cpp: Added.
399         (WebCore::RenderSVGTransformableContainer::RenderSVGTransformableContainer):
400         (WebCore::RenderSVGTransformableContainer::calculateLocalTransform):
401         * rendering/RenderSVGTransformableContainer.h: Added.
402         * rendering/RenderSVGViewportContainer.h:
403
404 2007-10-10  Oliver Hunt  <oliver@apple.com>
405
406         Reviewed by Eric.
407
408         Bug 15451: SVGStyledElement must unregister itself from Resources on detach
409         
410         Use a global hashtable to maintain the relationship between the
411         various SVG resources and their clients, across dom updates, etc.
412
413         * ksvg2/svg/SVGStyledElement.cpp:
414         (WebCore::SVGStyledElement::detach):
415         * ksvg2/svg/SVGStyledElement.h:
416         * platform/graphics/svg/SVGPaintServer.h:
417         * platform/graphics/svg/SVGResource.cpp:
418         (WebCore::ResourceSet::ResourceSet):
419         (WebCore::clientMap):
420         (WebCore::SVGResource::~SVGResource):
421         (WebCore::SVGResource::invalidate):
422         (WebCore::SVGResource::removeClient):
423         (WebCore::SVGResource::addClient):
424         * platform/graphics/svg/SVGResource.h:
425         (WebCore::):
426         (WebCore::SVGResource::isPaintServer):
427         (WebCore::SVGResource::isFilter):
428         (WebCore::SVGResource::isClipper):
429         (WebCore::SVGResource::isMarker):
430         (WebCore::SVGResource::isMasker):
431         * platform/graphics/svg/SVGResourceClipper.h:
432         (WebCore::SVGResourceClipper::resourceType):
433         * platform/graphics/svg/SVGResourceFilter.h:
434         * platform/graphics/svg/SVGResourceMarker.h:
435         * platform/graphics/svg/SVGResourceMasker.h:
436
437 2007-10-10  Mark Rowe  <mrowe@apple.com>
438
439         Windows build fix after r26109.
440
441         * WebCore.vcproj/WebCore.vcproj:
442
443 2007-10-10  Oliver Hunt  <oliver@apple.com>
444
445         Reviewed by Eric.
446
447         Fix Bug 15433: Filters do not repaint when base resources change/update
448
449         SVGFEImage now actually responds to image updates, and triggers a repaint.
450
451         * platform/graphics/svg/SVGResource.h:
452         * platform/graphics/svg/filters/SVGFEImage.cpp:
453         (WebCore::SVGFEImage::setCachedImage):
454           Don't re-set the image lest we want to trigger infinite recursion.
455         (WebCore::SVGFEImage::imageChanged):
456           Image change means we need to tell our clients to repaint
457         * platform/graphics/svg/filters/SVGFEImage.h:
458         * rendering/SVGRenderSupport.cpp:
459         (WebCore::prepareToRenderSVGContent):
460           make sure that users of filters are registered.
461
462 2007-10-09  Eric Seidel  <eric@webkit.org>
463
464         Reviewed by Alp.
465
466         Track changes in r26109 to fix the Gtk+ build.
467
468         * WebCore.pro:
469
470 2007-10-09  Alexey Proskuryakov  <ap@webkit.org>
471
472         Reviewed by Anders.
473
474         http://bugs.webkit.org/show_bug.cgi?id=15436
475         Wrong node order for XPath reverse axes
476
477         Test: fast/xpath/reverse-axes.html
478
479         * xml/XPathStep.cpp:
480         (WebCore::XPath::Step::nodesInAxis): Do not prematurely sort reverse
481         axes. Generate preceding axis nodes in reversed document order.
482
483 2007-10-09  Alexey Proskuryakov  <ap@webkit.org>
484
485         Reviewed by Mitz.
486
487         http://bugs.webkit.org/show_bug.cgi?id=15437
488         XPath substring-after function is broken
489
490         Test: fast/xpath/substring-after.html
491
492         * xml/XPathFunctions.cpp:
493         (WebCore::XPath::FunSubstringAfter::evaluate): Fix it for real this time, hopefully.
494
495 2007-10-09  Rob Buis  <buis@kde.org>
496
497         Reviewed by Eric.
498
499         http://bugs.webkit.org/show_bug.cgi?id=15080
500         <use> element not refresh after adding objects by script in referrer
501
502         Update shadow tree when elements are added/removed from a tree
503         that is referenced by a <use>.
504
505         * ksvg2/svg/SVGStyledElement.cpp:
506         (WebCore::SVGStyledElement::childrenChanged):
507         * ksvg2/svg/SVGStyledElement.h:
508
509 2007-10-09  Rob Buis  <buis@kde.org>
510
511         Reviewed by Maciej.
512
513         http://bugs.webkit.org/show_bug.cgi?id=15088
514         HTMLOptionElement.selected returns false when parent HTMLSelectElement is "display: none" until parent's .selectedIndex is accessed
515
516         Make sure the list items are up to date when there is no renderer.
517
518         * html/HTMLSelectElement.cpp:
519         (WebCore::HTMLSelectElement::recalcStyle):
520
521 2007-10-08  Eric Seidel  <eric@webkit.org>
522
523         Reviewed by Oliver.
524
525         Build fix.  Fix circular build rule for CSS*.in files evident on clean build.
526
527         * DerivedSources.make:
528         * WebCore.xcodeproj/project.pbxproj:
529         * ksvg2/css/CSSPropertyNames.in: Removed.
530         * ksvg2/css/CSSValueKeywords.in: Removed.
531         * ksvg2/css/SVGCSSPropertyNames.in: Copied from ksvg2/css/CSSPropertyNames.in.
532         * ksvg2/css/SVGCSSValueKeywords.in: Copied from ksvg2/css/CSSValueKeywords.in.
533
534 2007-10-08  Eric Seidel  <eric@webkit.org>
535
536         Reviewed by hyatt.
537
538         Implement getComputedStyle support for SVG CSS values
539         http://bugs.webkit.org/show_bug.cgi?id=15422
540         
541         This also unifies SVG and non-SVG CSS hash lookups. A unified hash
542         solves correctness problems as well as offers improved speed.
543         
544         Test: svg/css/getComputedStyle-basic.xhtml
545
546         * DerivedSources.make: unify SVG and non-SVG CSS hash files
547         * WebCore.xcodeproj/project.pbxproj: remove old SVG CSS hash files
548         * css/CSSComputedStyleDeclaration.cpp:
549         (WebCore::):
550         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): call getPropertyCSSValue
551         * css/CSSComputedStyleDeclaration.h: add getPropertyCSSValue
552         * css/CSSGrammar.y:
553         * css/CSSParser.cpp:
554         (WebCore::CSSParser::parseValue):
555         * css/CSSStyleDeclaration.cpp:
556         (WebCore::propertyID):
557         * css/CSSStyleSelector.cpp:
558         (WebCore::CSSStyleSelector::applyProperty):
559         * ksvg2/css/CSSPropertyNames.in: remove font-size-adjust
560         * ksvg2/css/SVGCSSComputedStyleDeclaration.cpp: Added.
561         (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue): added.
562         * ksvg2/css/SVGCSSParser.cpp:
563         (WebCore::CSSParser::parseSVGValue):
564         * ksvg2/css/SVGCSSStyleSelector.cpp:
565         (WebCore::CSSStyleSelector::applySVGProperty):
566         * ksvg2/scripts/cssmakeprops: Removed.
567         * ksvg2/scripts/cssmakevalues: Removed.
568         * ksvg2/svg/SVGAnimationElement.cpp:
569         * ksvg2/svg/SVGStyledElement.cpp:
570         (WebCore::mapAttributeToCSSProperty):
571         (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName): remove font-size-adjust
572
573 2007-10-08  Sam Weinig  <sam@webkit.org>
574
575         Reviewed by Steve Falkenburg;
576
577         Fix for <rdar://problem/5519698> CrashTracer: [USER] 47 crashes in Safari at com.apple.WebCore: WebCore::XMLTokenizer::lineNumber const + 9
578
579         Test: fast/innerHTML/innerHTML-script-tag-crash.xhtml
580
581         * dom/XMLTokenizer.cpp:
582         (WebCore::XMLTokenizer::lineNumber): Return 1 when there is no context.
583         (WebCore::XMLTokenizer::columnNumber): ditto.
584
585 2007-10-08  Alexey Proskuryakov  <ap@webkit.org>
586
587         * platform/mac/FontPlatformDataMac.mm:
588         (WebCore::FontPlatformData::setFont): Restored one of the -1 checks removed in
589         the previous change - we do need to check m_font!
590
591 2007-10-08  Alexey Proskuryakov  <ap@webkit.org>
592
593         Reviewed by Darin.
594
595         http://bugs.webkit.org/show_bug.cgi?id=15397
596         Layout tests freeze in HashTable::lookup
597
598         Fixes a DRT freeze on PowerPC.
599
600         * platform/mac/FontPlatformDataMac.mm:
601         (WebCore::FontPlatformData::FontPlatformData): Don't ask for a size of a nil font,
602         the result is undefined.
603         (WebCore::FontPlatformData::setFont): Ditto. Also removed some checks for -1 that
604         were not sufficient, and thus likely unnecessary,
605
606 2007-10-07  Nikolas Zimmermann  <zimmermann@kde.org>
607
608         Reviewed by Eric.
609
610         Fix some issues with rotation & baseline-shift, when spanning
611         across <tspan> elements. Highlighted by the existing batik tests.
612
613         * rendering/SVGCharacterLayoutInfo.cpp:
614         (WebCore::SVGCharacterLayoutInfo::SVGCharacterLayoutInfo):
615         (WebCore::SVGCharacterLayoutInfo::processedChunk):
616         (WebCore::SVGChar::characterTransform):
617         * rendering/SVGCharacterLayoutInfo.h:
618         * rendering/SVGInlineTextBox.cpp:
619         (WebCore::SVGInlineTextBox::calculateGlyphBoundaries):
620         (WebCore::SVGInlineTextBox::paintCharacters):
621         (WebCore::SVGInlineTextBox::paintDecoration):
622         * rendering/SVGRootInlineBox.cpp:
623         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
624
625 2007-10-07  Mark Rowe  <mrowe@apple.com>
626
627         Reviewed by Maciej.
628
629         Bug 5122: Need an equivalent of Mozilla's DOMContentLoaded event
630         http://bugs.webkit.org/show_bug.cgi?id=5122
631
632         This is based on a patch by Daniel Peebles (pumpkingod@gmail.com).
633
634         Test: http/tests/loading/DOMContentLoaded-event.html
635
636         * dom/Document.cpp:
637         (WebCore::Document::finishedParsing): Dispatch the DOMContentLoaded event when parsing completes.
638         * dom/EventNames.h:  Add DOMContentLoaded to the list of events.
639
640 2007-10-07  Alexey Proskuryakov  <ap@webkit.org>
641
642         Reviewed by Eric Seidel.
643
644         http://bugs.webkit.org/show_bug.cgi?id=15368
645         xsl:import fails when preceded by comment
646
647         Test: fast/xsl/import-after-comment.xml
648
649         * xml/XSLStyleSheet.cpp:
650         (WebCore::XSLStyleSheet::loadChildSheets): It's OK for xsl:import to be preceded by
651         non-element nodes.
652
653 2007-10-07  Vincent Ricard  <magic@magicninja.org>
654
655         Reviewed by Maciej.  Landed by eseidel.
656
657         http://bugs.webkit.org/show_bug.cgi?id=15062
658         Implement document.compatMode
659
660         Tests: fast/dom/compatMode-AlmostStrict.html
661                fast/dom/compatMode-Compat.html
662                fast/dom/compatMode-Strict.html
663
664         * html/HTMLDocument.cpp:
665         (WebCore::HTMLDocument::compatMode):
666         * html/HTMLDocument.h:
667         * html/HTMLDocument.idl:
668
669 2007-10-07  Sam Weinig  <sam@webkit.org>
670
671         Reviewed by Darin & Nikolas.  Landed by eseidel.
672
673         Patch for http://bugs.webkit.org/show_bug.cgi?id=14455
674         Autogenerate the JS bindings for the StyleSheetList
675
676         * DerivedSources.make:
677         * WebCore.pro:
678         * WebCore.vcproj/WebCore.vcproj:
679         * WebCore.xcodeproj/project.pbxproj:
680         * bindings/js/JSStyleSheetListCustom.cpp: Added.
681         (WebCore::JSStyleSheetList::canGetItemsForName):
682         (WebCore::JSStyleSheetList::nameGetter):
683         * bindings/js/kjs_css.cpp:
684         * bindings/js/kjs_css.h:
685         * bindings/objc/DOMUtility.mm:
686         * bindings/scripts/CodeGeneratorJS.pm:
687         * css/StyleSheetList.cpp:
688         (WebCore::StyleSheetList::StyleSheetList):
689         (WebCore::StyleSheetList::documentDestroyed):
690         (WebCore::StyleSheetList::getNamedItem):
691         * css/StyleSheetList.h: Add Document member variable and
692         getNamedItem function to accommodate the odd javascript 
693         name getter functionality.
694         * css/StyleSheetList.idl:
695         * dom/Document.cpp:
696         (WebCore::Document::Document):
697         (WebCore::Document::~Document):
698         * page/DOMWindow.idl: Add StyleSheetListConstructor
699
700 2007-10-07  Lars Naesbye Christensen  <lars@naesbye.dk>
701
702         Reviewed by Eric Seidel.
703
704         make CSS cell cursor more mac-like
705         http://bugs.webkit.org/show_bug.cgi?id=15325
706
707         * Resources/cellCursor.png:
708
709 2007-10-06  Eric Seidel  <eric@webkit.org>
710
711         Reviewed by Oliver.
712         
713         SVG does not correctly handle onfocusin, onfocusout or onactivate
714         http://bugs.webkit.org/show_bug.cgi?id=12573
715
716         Test: svg/W3C-SVG-1.1/script-handle-02-b.svg
717
718         * ksvg2/svg/SVGElement.cpp:
719         (WebCore::SVGElement::parseMappedAttribute):
720         * ksvg2/svg/svgattrs.in: add onfocusin, onfocusout and onactivate
721
722 2007-10-06  Nikolas Zimmermann  <zimmermann@kde.org>
723
724         Reviewed by Oliver.
725
726         Never pass null input images to CICrop filter.
727
728         * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
729         (WebCore::SVGFEComponentTransfer::getCIFilter):
730         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
731
732 2007-10-06  Mark Rowe  <mrowe@apple.com>
733
734         Reviewed by Alp Toker.
735
736         Gtk+ build fix and minor code cleanup.
737
738         * WebCore.pro:
739         * platform/gtk/FontCacheGtk.cpp:
740         (WebCore::FontCache::getLastResortFallbackFont):
741         (WebCore::FontCache::fontExists):
742
743 2007-10-06  Alexey Proskuryakov  <ap@webkit.org>
744
745         Reviewed by Mitz.
746
747         http://bugs.webkit.org/show_bug.cgi?id=15380
748         XPath: id('foo') doesn't resolve correctly
749
750         Test: fast/xpath/id-simple.html
751
752         * xml/XPathFunctions.cpp:
753         (WebCore::XPath::FunId::evaluate): Fixed a logic error in id() parameter parsing.
754
755 2007-10-06  Alexey Proskuryakov  <ap@webkit.org>
756
757         Reviewed by Darin.
758
759         Patch for http://bugs.webkit.org/show_bug.cgi?id=13707
760         REGRESSION: JavaScript exceptions on quotes.burntelectrons.org
761
762         http://bugs.webkit.org/show_bug.cgi?id=12628
763         document.body is not supported in XHTML documents
764
765         http://bugs.webkit.org/show_bug.cgi?id=14213
766         On page with MIME type application/xhtml+xml, cookie don't work
767
768         Moved a bunch of methods and properties from HTMLDocument down into Document to make
769         them available for all documents (xml, svg).
770         What was kept in HTMLDocument:
771         - some methods and properties that are not in HTML5 (yet?);
772         - open/write/writeln/close, as they will need to be modified to work on XML documents, and aren't
773         of much use for those anyway;
774         - designMode, because its definition in HTML5 is incompatible with our implementation.
775
776         Covered by existing tests.
777
778         * bindings/js/JSDocumentCustom.cpp:
779         (WebCore::JSDocument::location):
780         (WebCore::JSDocument::setLocation):
781         * bindings/js/JSHTMLDocumentCustom.cpp:
782         * bindings/objc/PublicDOMInterfaces.h:
783         * dom/Document.cpp:
784         (WebCore::Document::setBody):
785         (WebCore::Document::cookie):
786         (WebCore::Document::setCookie):
787         (WebCore::Document::lastModified):
788         * dom/Document.h:
789         (WebCore::Document::title):
790         * dom/Document.idl:
791         * html/HTMLDocument.cpp:
792         * html/HTMLDocument.h:
793         * html/HTMLDocument.idl:
794
795 2007-10-06  Eric Seidel  <eric@webkit.org>
796
797         Reviewed by Oliver Hunt.
798
799         RenderSVGContainer (<g>) should not repaint when its bounds change (unless it has a filter)
800         http://bugs.webkit.org/show_bug.cgi?id=15388
801         This makes the Sun Lively Kernel invalidate only what it should!
802         
803         No tests possible in DRT.
804
805         * ksvg2/svg/SVGCircleElement.cpp:
806         (WebCore::SVGCircleElement::notifyAttributeChange): replace call to rebuildRenderer
807         * ksvg2/svg/SVGEllipseElement.cpp:
808         (WebCore::SVGEllipseElement::notifyAttributeChange): replace call to rebuildRenderer
809         * ksvg2/svg/SVGImageElement.cpp:
810         (WebCore::SVGImageElement::notifyAttributeChange): replace call to rebuildRenderer
811         (WebCore::SVGImageElement::hasRelativeValues): implemented
812         * ksvg2/svg/SVGImageElement.h:
813         * ksvg2/svg/SVGLineElement.cpp:
814         (WebCore::SVGLineElement::notifyAttributeChange): replace call to rebuildRenderer
815         * ksvg2/svg/SVGPathElement.cpp:
816         (WebCore::SVGPathElement::notifyAttributeChange): replace call to rebuildRenderer
817         * ksvg2/svg/SVGPolyElement.cpp:
818         (WebCore::SVGPolyElement::notifyAttributeChange): replace call to rebuildRenderer
819         * ksvg2/svg/SVGRectElement.cpp:
820         (WebCore::SVGRectElement::notifyAttributeChange): replace call to rebuildRenderer
821         * ksvg2/svg/SVGStyledElement.cpp:
822         * ksvg2/svg/SVGStyledElement.h:
823         (WebCore::SVGStyledElement::hasRelativeValues): default to true instead
824         * ksvg2/svg/SVGStyledTransformableElement.cpp:
825         (WebCore::SVGStyledTransformableElement::updateLocalTransform): don't layout if no change
826         * ksvg2/svg/SVGStyledTransformableElement.h:
827         * ksvg2/svg/SVGTransform.h:
828         * rendering/RenderPath.cpp:
829         (WebCore::RenderPath::layout):
830         * rendering/RenderPath.h:
831         * rendering/RenderSVGContainer.cpp:
832         (WebCore::RenderSVGContainer::layout):
833         (WebCore::RenderSVGContainer::selfWillPaint): return true if have a filter
834         (WebCore::RenderSVGContainer::paint):
835         * rendering/RenderSVGContainer.h:
836         * rendering/RenderSVGHiddenContainer.cpp:
837         (WebCore::RenderSVGHiddenContainer::layout):
838         * rendering/RenderSVGRoot.cpp:
839         (WebCore::RenderSVGRoot::layout):
840         * rendering/RenderSVGViewportContainer.cpp:
841         (WebCore::RenderSVGViewportContainer::layout):
842         (WebCore::RenderSVGViewportContainer::calcViewport): use floats
843
844 2007-10-06  Rob Buis  <buis@kde.org>
845
846         Reviewed by Eric.
847
848         Use document() instead of ownerDocument() and a few other cleanups.
849
850         * ksvg2/misc/SVGDocumentExtensions.cpp:
851         (WebCore::SVGDocumentExtensions::mapInstanceToElement):
852         * ksvg2/svg/SVGCircleElement.cpp:
853         (WebCore::SVGCircleElement::notifyAttributeChange):
854         * ksvg2/svg/SVGClipPathElement.cpp:
855         (WebCore::SVGClipPathElement::notifyAttributeChange):
856         * ksvg2/svg/SVGElementInstance.cpp:
857         (WebCore::containsUseChildNode):
858         * ksvg2/svg/SVGEllipseElement.cpp:
859         (WebCore::SVGEllipseElement::notifyAttributeChange):
860         * ksvg2/svg/SVGGradientElement.cpp:
861         (WebCore::SVGGradientElement::notifyAttributeChange):
862         * ksvg2/svg/SVGImageElement.cpp:
863         (WebCore::SVGImageElement::notifyAttributeChange):
864         * ksvg2/svg/SVGLineElement.cpp:
865         (WebCore::SVGLineElement::notifyAttributeChange):
866         * ksvg2/svg/SVGMarkerElement.cpp:
867         (WebCore::SVGMarkerElement::notifyAttributeChange):
868         * ksvg2/svg/SVGMaskElement.cpp:
869         (WebCore::SVGMaskElement::notifyAttributeChange):
870         * ksvg2/svg/SVGPathElement.cpp:
871         (WebCore::SVGPathElement::notifyAttributeChange):
872         * ksvg2/svg/SVGPatternElement.cpp:
873         (WebCore::SVGPatternElement::notifyAttributeChange):
874         * ksvg2/svg/SVGPolyElement.cpp:
875         (WebCore::SVGPolyElement::notifyAttributeChange):
876         * ksvg2/svg/SVGRectElement.cpp:
877         (WebCore::SVGRectElement::notifyAttributeChange):
878         * ksvg2/svg/SVGStopElement.cpp:
879         (WebCore::SVGStopElement::notifyAttributeChange):
880
881 2007-10-05  Eric Seidel  <eric@webkit.org>
882
883         Reviewed by Oliver Hunt.
884
885         SVG invalidates way too much during layout()
886         http://bugs.webkit.org/show_bug.cgi?id=14003
887
888         * ksvg2/svg/SVGElement.cpp:
889         (WebCore::SVGElement::ownerSVGElement): simplify if
890         (WebCore::SVGElement::viewportElement): simplify if
891         * rendering/RenderSVGContainer.cpp:
892         (WebCore::RenderSVGContainer::layout): only layout children if parent changed
893         * rendering/RenderSVGRoot.cpp:
894         (WebCore::RenderSVGRoot::layout): only layout children when size changes
895         * rendering/RenderSVGText.cpp:
896         (WebCore::RenderSVGText::layout): hack to avoid bad RenderBlock::layout code
897         * rendering/RenderSVGViewportContainer.cpp:
898         (WebCore::RenderSVGViewportContainer::layout): don't use RenderSVGContainer::layout()
899
900 2007-10-05  Oliver Hunt  <oliver@apple.com>
901
902         Reviewed by Eric.
903
904         30%+ performance improvement for svg embedded in xhtml
905
906         Relayout internal to SVG was incorrectly being propagated to
907         the containing xhtml element, which subsequently resulted in
908         a full paint of the SVG, rather than just the dirty regions.
909
910         * rendering/RenderObject.cpp:
911         (WebCore::objectIsRelayoutBoundary):
912         (WebCore::RenderObject::markContainingBlocksForLayout):
913
914 2007-10-03  Eric Seidel  <eric@webkit.org>
915
916         Reviewed by Maciej.
917         
918         http://bugs.webkit.org/show_bug.cgi?id=12310
919         Remove static variables from removeAllChildren causing crash.
920         removeAllChildren now iterates over the entire tree instead of recursing.
921         Also (according to Maciej) a possible 1-2% speedboost on HTML iBench.
922
923         Test: fast/images/svg-background-crash-on-refresh.html
924
925         * WebCore.xcodeproj/project.pbxproj:
926         * dom/ContainerNode.cpp:
927         (WebCore::addChildNodesToDeletionQueue):
928         (WebCore::ContainerNode::removeAllChildren): use new addChildNodesToDeletionQueue
929
930 2007-10-03  David Hyatt  <hyatt@apple.com>
931
932         Land support for the CSS @font-face rule.  This patch allows custom fonts
933         to be downloaded from the Web and rendered in Web pages.  Right now only
934         TrueType fonts are supported.  Proprietary formats like .eot are not
935         supported.
936
937         Reviewed by Eric Seidel
938
939         Many tests will be coming in a future landing.
940
941         * WebCore.base.exp:
942         Expose some more stuff for WebKit, caused by font restructuring.
943
944         * WebCore.xcodeproj/project.pbxproj:
945         Add all the new font face files.
946
947         * css/CSSComputedStyleDeclaration.cpp:
948         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
949         Make sure to ignore the 'src' property of @font-face rules.
950
951         * css/CSSFontFace.cpp: Added.
952         (WebCore::CSSFontFace::CSSFontFace):
953         (WebCore::CSSFontFace::~CSSFontFace):
954         (WebCore::CSSFontFace::isLoaded):
955         (WebCore::CSSFontFace::isValid):
956         (WebCore::CSSFontFace::addSource):
957         (WebCore::CSSFontFace::fontLoaded):
958         (WebCore::CSSFontFace::getFontData):
959         * css/CSSFontFace.h: Added.
960         A CSSFontFace is a composite object.  It consists of multiple font-face sources, where each source represents either a remote or local
961         file in a @font-face rule's src list.
962
963         * css/CSSFontFaceRule.cpp:
964         (WebCore::CSSFontFaceRule::setDeclaration):
965         (WebCore::CSSFontFaceRule::cssText):
966         * css/CSSFontFaceRule.h:
967         The implementation of the @font-face rule itself in the CSS sheet back end.
968         
969         * css/CSSFontFaceSource.cpp: Added.
970         (WebCore::CSSFontFaceSource::CSSFontFaceSource):
971         (WebCore::CSSFontFaceSource::~CSSFontFaceSource):
972         (WebCore::CSSFontFaceSource::pruneTable):
973         (WebCore::CSSFontFaceSource::isLoaded):
974         (WebCore::CSSFontFaceSource::isValid):
975         (WebCore::CSSFontFaceSource::fontLoaded):
976         (WebCore::CSSFontFaceSource::getFontData):
977         * css/CSSFontFaceSource.h: Added.
978         (WebCore::CSSFontFaceSource::string):
979         (WebCore::CSSFontFaceSource::setFontFace):
980         A font face source represents a single remote or local font.  If it represents a remote font than it wraps a CachedFont.
981         
982         * css/CSSFontFaceSrcValue.cpp: Added.
983         (WebCore::CSSFontFaceSrcValue::isSupportedFormat):
984         (WebCore::CSSFontFaceSrcValue::cssText):
985         * css/CSSFontFaceSrcValue.h: Added.
986         (WebCore::CSSFontFaceSrcValue::m_isLocal):
987         (WebCore::CSSFontFaceSrcValue::~CSSFontFaceSrcValue):
988         (WebCore::CSSFontFaceSrcValue::resource):
989         (WebCore::CSSFontFaceSrcValue::format):
990         (WebCore::CSSFontFaceSrcValue::isLocal):
991         (WebCore::CSSFontFaceSrcValue::setFormat):
992         Used in parsing.  Represents the parsed form of the src value that can then be used to build up a CSSFontFace.
993
994         * css/CSSFontSelector.cpp: Added.
995         (WebCore::CSSFontSelector::CSSFontSelector):
996         (WebCore::CSSFontSelector::~CSSFontSelector):
997         (WebCore::CSSFontSelector::isEmpty):
998         (WebCore::CSSFontSelector::docLoader):
999         (WebCore::hashForFont):
1000         (WebCore::CSSFontSelector::addFontFaceRule):
1001         (WebCore::CSSFontSelector::fontLoaded):
1002         (WebCore::CSSFontSelector::getFontData):
1003         * css/CSSFontSelector.h: Added.
1004         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
1005         back.
1006
1007         * css/CSSGrammar.y:
1008         * css/CSSParser.cpp:
1009         (WebCore::CSSParser::parseValue):
1010         (WebCore::CSSParser::parseFontFaceSrc):
1011         (WebCore::CSSParser::createFontFaceRule):
1012         * css/CSSParser.h:
1013         Modify the CSS grammar to now understand @font-face rules.
1014
1015         * css/CSSPropertyNames.in:
1016         Add the src property.
1017
1018         * css/CSSStyleSelector.cpp:
1019         (WebCore::CSSStyleSelector::CSSStyleSelector):
1020         (WebCore::CSSStyleSelector::styleForElement):
1021         (WebCore::CSSStyleSelector::updateFont):
1022         (WebCore::CSSRuleSet::addRulesFromSheet):
1023         (WebCore::CSSStyleSelector::applyProperty):
1024         (WebCore::CSSStyleSelector::ensureFontSelector):
1025         * css/CSSStyleSelector.h:
1026         (WebCore::CSSStyleSelector::fontSelector):
1027         The style selector now creates a font selector object and feeds it the appropriate information when @font-face rules are encountered.
1028     
1029         * dom/Document.cpp:
1030         (WebCore::Document::recalcStyle):
1031         Patch the update method now that it takes a font selector argument.
1032     
1033         * loader/Cache.cpp:
1034         (WebCore::createResource):
1035         (WebCore::Cache::getStatistics):
1036         * loader/Cache.h:
1037         Teach the Cache about CachedFonts.
1038
1039         * loader/CachedFont.cpp: Added.
1040         (WebCore::CachedFont::CachedFont):
1041         (WebCore::CachedFont::~CachedFont):
1042         (WebCore::CachedFont::ref):
1043         (WebCore::CachedFont::data):
1044         (WebCore::CachedFont::beginLoadIfNeeded):
1045         (WebCore::CachedFont::ensureCustomFontData):
1046         (WebCore::CachedFont::platformDataFromCustomData):
1047         (WebCore::CachedFont::allReferencesRemoved):
1048         (WebCore::CachedFont::checkNotify):
1049         (WebCore::CachedFont::error):
1050         * loader/CachedFont.h: Added.
1051         (WebCore::CachedFont::schedule):
1052         The implementation of CachedFont.  This represents the downloaded resource and has all the raw font data.
1053
1054         * loader/CachedResource.h:
1055         (WebCore::CachedResource::):
1056         * loader/CachedResourceClient.h:
1057         (WebCore::CachedResourceClient::fontLoaded):
1058         Add a new fontLoaded method for clients of cached resources to track when fonts finish downloading.
1059     
1060         * loader/DocLoader.cpp:
1061         (WebCore::DocLoader::requestFont):
1062         * loader/DocLoader.h:
1063          Add the ability to request a font.
1064
1065         * platform/Font.cpp:
1066         (WebCore::Font::operator==):
1067         (WebCore::Font::update):
1068         (WebCore::Font::drawText):
1069         * platform/Font.h:
1070         * platform/FontCache.cpp:
1071         (WebCore::FontCache::getFontData):
1072         * platform/FontCache.h:
1073         * platform/FontData.cpp:
1074         (WebCore::FontData::FontData):
1075         * platform/FontData.h:
1076         (WebCore::FontData::isCustomFont):
1077         (WebCore::FontData::isLoading):
1078         * platform/FontFallbackList.cpp:
1079         (WebCore::FontFallbackList::FontFallbackList):
1080         (WebCore::FontFallbackList::invalidate):
1081         (WebCore::FontFallbackList::fontDataAt):
1082         * platform/FontFallbackList.h:
1083         (WebCore::FontFallbackList::loadingCustomFonts):
1084         (WebCore::FontFallbackList::fontSelector):
1085         * platform/FontSelector.h: Added.
1086         (WebCore::FontSelector::~FontSelector):
1087         * platform/GlyphPageTreeNode.cpp:
1088         (WebCore::GlyphPageTreeNode::getRoot):
1089         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
1090         (WebCore::GlyphPageTreeNode::~GlyphPageTreeNode):
1091         (WebCore::GlyphPageTreeNode::initializePage):
1092         (WebCore::GlyphPageTreeNode::getChild):
1093         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
1094         * platform/GlyphPageTreeNode.h:
1095         (WebCore::GlyphPageTreeNode::GlyphPageTreeNode):
1096         (WebCore::GlyphPageTreeNode::page):
1097         * platform/PopupMenuClient.h:
1098         * platform/mac/FontCacheMac.mm:
1099         (WebCore::FontCache::getFontDataForCharacters):
1100         (WebCore::FontCache::getLastResortFallbackFont):
1101         (WebCore::FontCache::fontExists):
1102         (WebCore::FontCache::createFontPlatformData):
1103         * platform/mac/FontCustomPlatformData.cpp: Added.
1104         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
1105         (WebCore::FontCustomPlatformData::fontPlatformData):
1106         (WebCore::createFontCustomPlatformData):
1107         * platform/mac/FontCustomPlatformData.h: Added.
1108         (WebCore::FontCustomPlatformData::FontCustomPlatformData):
1109         * platform/mac/FontDataMac.mm:
1110         (WebCore::initFontData):
1111         (WebCore::FontData::platformInit):
1112         (WebCore::FontData::smallCapsFontData):
1113         (WebCore::FontData::platformWidthForGlyph):
1114         (WebCore::FontData::checkShapesArabic):
1115         * platform/mac/FontMac.mm:
1116         (WebCore::initializeATSUStyle):
1117         (WebCore::Font::drawGlyphs):
1118         * platform/mac/FontPlatformData.h:
1119         (WebCore::FontPlatformData::FontPlatformData):
1120         (WebCore::FontPlatformData::hash):
1121         (WebCore::FontPlatformData::operator==):
1122         * platform/mac/FontPlatformDataMac.mm: Added.
1123         (WebCore::FontPlatformData::FontPlatformData):
1124         (WebCore::~FontPlatformData):
1125         (WebCore::FontPlatformData::setFont):
1126         * platform/mac/WebCoreSystemInterface.h:
1127         * platform/mac/WebCoreSystemInterface.mm:
1128         * platform/win/FontCacheWin.cpp:
1129         (WebCore::FontCache::getLastResortFallbackFont):
1130         (WebCore::FontCache::fontExists):
1131         * platform/win/FontCustomPlatformData.cpp: Added.
1132         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
1133         (WebCore::FontCustomPlatformData::fontPlatformData):
1134         (WebCore::getData):
1135         (WebCore::releaseData):
1136         (WebCore::getBytesWithOffset):
1137         (WebCore::createFontCustomPlatformData):
1138         * platform/win/FontCustomPlatformData.h: Added.
1139         (WebCore::FontCustomPlatformData::FontCustomPlatformData):
1140         * platform/win/FontDataWin.cpp:
1141         (WebCore::FontData::platformInit):
1142         (WebCore::FontData::platformDestroy):
1143         (WebCore::FontData::smallCapsFontData):
1144         (WebCore::FontData::containsCharacters):
1145         (WebCore::FontData::determinePitch):
1146         * platform/win/FontPlatformData.h:
1147         (WebCore::FontPlatformData::FontPlatformData):
1148         (WebCore::FontPlatformData::hash):
1149         (WebCore::FontPlatformData::operator==):
1150         * platform/win/FontPlatformDataWin.cpp:
1151         (WebCore::FontPlatformData::FontPlatformData):
1152         * platform/win/PopupMenuWin.cpp:
1153         (WebCore::PopupMenu::paint):
1154         Changes to platform to support rendering of custom fonts.  Too large to go into, but for ports, the relevant object to implement is
1155         FontCustomPlatformData (to get the data loaded into your native font format), and then you have to patch your other font objects to know
1156         how to use the font.
1157
1158         * rendering/RenderListBox.cpp:
1159         (WebCore::RenderListBox::updateFromElement):
1160         (WebCore::RenderListBox::paintItemForeground):
1161         * rendering/RenderMenuList.cpp:
1162         (WebCore::RenderMenuList::fontSelector):
1163         * rendering/RenderMenuList.h:
1164         * rendering/RenderTextControl.cpp:
1165         (WebCore::RenderTextControl::fontSelector):
1166         * rendering/RenderTextControl.h:
1167         * rendering/RenderThemeMac.mm:
1168         (WebCore::RenderThemeMac::setFontFromControlSize):
1169         * rendering/RenderThemeSafari.cpp:
1170         (WebCore::RenderThemeSafari::setFontFromControlSize):
1171         Patches for update now taking a font selector argument.
1172     
1173 2007-10-03  Rob Buis  <buis@kde.org>
1174
1175         Reviewed by Eric.
1176
1177         Remove unneeded code and other cleanups.
1178
1179         * ksvg2/svg/SVGScriptElement.cpp:
1180         (WebCore::SVGScriptElement::parseMappedAttribute):
1181         * ksvg2/svg/SVGScriptElement.h:
1182
1183 2007-10-03  Rob Buis  <buis@kde.org>
1184
1185         Reviewed by Maciej.
1186
1187         http://bugs.webkit.org/show_bug.cgi?id=15260
1188         Any styles defined after <element> {<property>:%} style are ignored by Safari
1189     
1190         Add dummy rule to skip constructions like width: %.
1191
1192         * css/CSSGrammar.y:
1193
1194 2007-10-03  Mark Rowe  <mrowe@apple.com>
1195
1196         Reviewed by Lars.
1197
1198         Get Gtk+ port building on the feature branch.
1199
1200         * WebCore.pro:
1201         * ksvg2/svg/SVGSVGElement.cpp:
1202         * platform/graphics/svg/cairo/RenderPathCairo.cpp:
1203         (WebCore::RenderPath::strokeContains):
1204         * platform/graphics/svg/cairo/SVGPaintServerCairo.cpp:
1205         (WebCore::SVGPaintServer::draw):
1206         (WebCore::SVGPaintServer::renderPath):
1207         * platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp:
1208         (WebCore::SVGPaintServerSolid::setup):
1209         * platform/graphics/svg/cairo/SVGResourceMaskerCairo.cpp:
1210         (WebCore::SVGResourceMasker::applyMask):
1211         * rendering/SVGCharacterLayoutInfo.cpp:
1212         * rendering/SVGInlineTextBox.cpp:
1213         * rendering/SVGRootInlineBox.cpp:
1214
1215 2007-10-02  Alexey Proskuryakov  <ap@webkit.org>
1216
1217         Reviewed by Maciej.
1218
1219         http://bugs.webkit.org/show_bug.cgi?id=15102
1220         XMLHttpRequests should dispatch a readystatechange event.
1221
1222         Test: http/tests/xmlhttprequest/readystatechange.html
1223
1224         * xml/XMLHttpRequest.cpp:
1225         (WebCore::XMLHttpRequest::callReadyStateChangeListener): Added readystatechange
1226         event support. Fixed the function to dispatch the same event to all listeners
1227         instead of creating a new copy for each one. Changed bubbling/cancelability of
1228         load and readystatechange events to match Firefox.
1229
1230 2007-10-02  Eric Seidel  <eric@webkit.org>
1231
1232         Reviewed by Oliver Hunt.
1233
1234         http://bugs.webkit.org/show_bug.cgi?id=13828
1235         Fixes svg/custom/rootmost-svg-xy-attrs.xhtml
1236
1237         * WebCore.xcodeproj/project.pbxproj: fix warning about SVGDOM.h
1238         * ksvg2/svg/SVGSVGElement.cpp:
1239         (WebCore::SVGSVGElement::viewport): use new isOutermostSVG()
1240         (WebCore::SVGSVGElement::getCTM): use isOutermostSVG()
1241         (WebCore::SVGSVGElement::getScreenCTM): use isOutermostSVG()
1242         (WebCore::SVGSVGElement::createRenderer): use isOutermostSVG()
1243         (WebCore::SVGSVGElement::isOutermostSVG):
1244         * ksvg2/svg/SVGSVGElement.h: add isOutermostSVG
1245         * rendering/RenderSVGRoot.cpp:
1246         (WebCore::RenderSVGRoot::calcViewport): ignore x/y
1247
1248 2007-10-02  Maciej Stachowiak  <mjs@apple.com>
1249
1250         Reviewed by Mitz.
1251         
1252         - Avoid uselessly serializing CSS property values on replacement for 10% CK DOM speedup
1253         http://bugs.webkit.org/show_bug.cgi?id=15340
1254
1255         * css/CSSMutableStyleDeclaration.cpp:
1256         (WebCore::CSSMutableStyleDeclaration::removeProperty): Don't generate return value unless needed.
1257         (WebCore::CSSMutableStyleDeclaration::setProperty): Use the no-return version appropriately.
1258         * css/CSSMutableStyleDeclaration.h:
1259         (WebCore::CSSMutableStyleDeclaration::removeProperty): New version with no return value.
1260
1261 2007-10-02  Maciej Stachowiak  <mjs@apple.com>
1262
1263         Reviewed by Oliver.
1264
1265         - Use Vector<UChar> instead of DeprecatedString for innerHTML, for 35% speedup on CK DOM test
1266         http://bugs.webkit.org/show_bug.cgi?id=15339
1267
1268         Rewrote both versions of createMarkup to build based on
1269         Vector<UChar> instead of String. Also other miscellaneous
1270         speedups (mainly content strings are now encoded in a way that
1271         doesn't take a function call per character, and switch is avoided).
1272         
1273         This also causes a functional change - we no longer escape '>' since this was unnecessary and it's faster
1274         to avoid testing for it. See updated test results.
1275         
1276         * editing/markup.cpp:
1277         (WebCore::appendString):
1278         (WebCore::appendAttributeValue):
1279         (WebCore::escapeContentText):
1280         (WebCore::appendEscapedContent):
1281         (WebCore::appendDeprecatedString):
1282         (WebCore::appendQuotedURLAttributeValue):
1283         (WebCore::stringValueForRange):
1284         (WebCore::ucharRange):
1285         (WebCore::appendUCharRange):
1286         (WebCore::appendNamespace):
1287         (WebCore::appendStartMarkup):
1288         (WebCore::getStartMarkup):
1289         (WebCore::appendEndMarkup):
1290         (WebCore::getEndMarkup):
1291         (WebCore::appendMarkup):
1292         (WebCore::joinMarkups):
1293         (WebCore::createMarkup):
1294         * editing/markup.h:
1295         * page/mac/WebCoreFrameBridge.mm:
1296         (-[WebCoreFrameBridge markupStringFromNode:nodes:]):
1297         (-[WebCoreFrameBridge markupStringFromRange:nodes:]):
1298
1299 2007-10-02  Maciej Stachowiak  <mjs@apple.com>
1300
1301         Reviewed by Eric.
1302         
1303         - fixed "innerHTML updates layout every time (very bad if adding to it in a loop)"
1304         http://bugs.webkit.org/show_bug.cgi?id=15326
1305         (65% speedup on Celtic Kane JS 2007 DOM test)
1306
1307         * editing/markup.cpp:
1308         (WebCore::createMarkup): The Node version of this function currently never uses
1309         the render tree, so don't bother to update layout. This is the version used for
1310         innerHTML.
1311
1312 2007-10-02  Nicholas Shanks  <webkit@nickshanks.com>
1313
1314         Reviewed by eseidel & hyatt.
1315
1316         Add support for CSS3 values 'start' and 'end' to text-align property.
1317
1318         * css/cssparser.cpp:
1319         (WebCore::CSSParser::parseValue): allow start and end values
1320         * css/cssstyleselector.cpp:
1321         (WebCore::CSSStyleSelector::applyProperty): handle start and end values
1322
1323 2007-10-01  Oliver Hunt  <oliver@apple.com>
1324
1325         Reviewed by Mark.
1326
1327         Enable Experimental SVG features by default when building from Xcode
1328
1329         * Configurations/WebCore.xcconfig:
1330
1331 2007-10-01  Eric Seidel  <eric@webkit.org>
1332
1333         Reviewed by Oliver Hunt.
1334
1335         This only affects Debug builds, and the ability to save SVGs as WebArchives
1336         neither are testable via DumpRenderTree.
1337
1338         * Configurations/WebCore.xcconfig: change where Xcode looks for WebCore.exp
1339         * DerivedSources.make: adds SVG symbols to WebCore.exp when necessary
1340         * WebCore.SVG.exp: Added.
1341         * WebCore.exp: moved to WebCore.base.exp
1342         * WebCore.xcodeproj/project.pbxproj: updated to reflect moved files
1343         * bindings/objc/DOMSVGExecption.h: moved to DOMSVGException.h
1344
1345 2007-10-01  Eric Seidel  <eric@webkit.org>
1346
1347         Reviewed by olliej.
1348
1349         Make feature-branch build again with ENABLE_SVG_EXPERIMENTAL_FEATURES
1350         Needed a double -> float change to make the new filter types build.
1351
1352         Build fix, no test cases.
1353
1354         * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
1355         * ksvg2/svg/SVGComponentTransferFunctionElement.h:
1356         * ksvg2/svg/SVGFECompositeElement.cpp:
1357         * ksvg2/svg/SVGFECompositeElement.h:
1358         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
1359         * ksvg2/svg/SVGFEDiffuseLightingElement.h:
1360         * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
1361         * ksvg2/svg/SVGFEDisplacementMapElement.h:
1362         * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
1363         * ksvg2/svg/SVGFEGaussianBlurElement.h:
1364         * ksvg2/svg/SVGFELightElement.cpp:
1365         * ksvg2/svg/SVGFELightElement.h:
1366         * ksvg2/svg/SVGFEOffsetElement.cpp:
1367         * ksvg2/svg/SVGFEOffsetElement.h:
1368         * ksvg2/svg/SVGFESpecularLightingElement.cpp:
1369         * ksvg2/svg/SVGFESpecularLightingElement.h:
1370         * ksvg2/svg/SVGFETurbulenceElement.cpp:
1371         * ksvg2/svg/SVGFETurbulenceElement.h:
1372
1373 2007-09-30  Julien  <julien.chaffraix@gmail.com>
1374
1375         Reviewed by aroben & eseidel.
1376
1377         fix http://bugs.webkit.org/show_bug.cgi?id=14898
1378
1379         getAllResponseHeaders() separates each header with a CR LF according to the specification
1380
1381         Test: http/tests/xmlhttprequest/xmlhttprequest-crlf-getAllResponseHeader.html
1382
1383         * xml/XMLHttpRequest.cpp:
1384         (WebCore::XMLHttpRequest::getAllResponseHeaders):
1385
1386 2007-09-28  Eric Seidel  <eric@webkit.org>
1387
1388         Reviewed by Sam Wenig.
1389
1390         ASSERT when dragging <svg:image> with non-null prefix
1391         http://bugs.webkit.org/show_bug.cgi?id=15308
1392
1393         * bindings/objc/DOM.mm:
1394         (WebCore::lookupElementClass): added
1395         (WebCore::elementClass): use new lookupElementClass function
1396
1397 2007-09-25  Eric Seidel  <eric@webkit.org>
1398
1399         Reviewed by Mark Rowe.
1400
1401         I managed to break the SVG build when fixing the --no-svg build for
1402         http://bugs.webkit.org/show_bug.cgi?id=15281
1403         This adds the appropriate DOMSVG headers to the copy headers phase
1404         (in fixing the no-svg build I mistakenly re-marked them project-only)
1405
1406         * WebCore.xcodeproj/project.pbxproj:
1407
1408 2007-09-25  Eric Seidel  <eric@webkit.org>
1409
1410         Reviewed by Rob Buis.
1411
1412         Already tested by SVG/W3C-SVG-1.1/linking-a-07-t.svg
1413
1414         * ksvg2/svg/SVGAElement.cpp:
1415         (WebCore::SVGAElement::defaultEventHandler): properly pass along target values
1416
1417 2007-09-22  Oliver Hunt  <oliver@apple.com>
1418
1419         Reviewed by NOBODY (Build fix).
1420
1421         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
1422         (WebCore::SVGPaintServerGradient::teardown):
1423         (WebCore::SVGPaintServerGradient::renderPath):
1424         * rendering/SVGRootInlineBox.cpp:
1425         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
1426
1427 2007-09-09  Nikolas Zimmermann  <zimmermann@kde.org>
1428
1429         Reviewed by Oliver.
1430
1431         Rework <pattern> support to take overflow & viewBox into account.
1432         Also fix all possible combinations of patternUnits/patternContentUnits, tested by several batik testcases.
1433         (Status: <mask>, <pattern>, <linearGradient>, <radialGradient>, <filter> regions work perfectly. <clipPath> is sill todo)
1434
1435         While I'm at it, add a very helpful debugging tool "dumpCGOutputImage" and rename "dumpOutputImage" to "dumpCIOutputImage".
1436         Also fix possible null image buffer problems. (ie. large alloc)
1437
1438         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12221 (Webkit ToT fails to render this pattern example)
1439
1440         * ksvg2/svg/PatternAttributes.h:
1441         (WebCore::PatternAttributes::PatternAttributes):
1442         (WebCore::PatternAttributes::x):
1443         (WebCore::PatternAttributes::y):
1444         (WebCore::PatternAttributes::width):
1445         (WebCore::PatternAttributes::height):
1446         (WebCore::PatternAttributes::setX):
1447         (WebCore::PatternAttributes::setY):
1448         (WebCore::PatternAttributes::setWidth):
1449         (WebCore::PatternAttributes::setHeight):
1450         * ksvg2/svg/SVGPatternElement.cpp:
1451         (WebCore::SVGPatternElement::buildPattern):
1452         (WebCore::SVGPatternElement::collectPatternProperties):
1453         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
1454         (WebCore::SVGPaintServerGradient::setup):
1455         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
1456         (WebCore::patternCallback):
1457         (WebCore::SVGPaintServerPattern::setup):
1458         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
1459         (WebCore::dumpCIOutputImage):
1460         (WebCore::dumpCGOutputImage):
1461
1462 2007-09-05  Nikolas Zimmermann  <zimmermann@kde.org>
1463
1464         Reviewed by Oliver.
1465
1466         Fix <mask> in userSpaceOnUse coordinates. Verified by new testcase taken from Batik.
1467
1468         * ksvg2/svg/SVGMaskElement.cpp:
1469         (WebCore::SVGMaskElement::drawMaskerContent):
1470
1471 2007-09-03  Nikolas Zimmermann  <zimmermann@kde.org>
1472
1473         Reviewed by Oliver.
1474
1475         Rewrite text painting code path, to be based on "text chunks" instead of using the InlineBox* hierarchy.
1476         This allows us to reuse paint servers as long as possible - and to actually paint in the way didacted by the spec.
1477
1478         This also implements advanced SVG text decorations (ie. stroked/filled decos with gradient/pattern).
1479         Fixes: http://bugs.webkit.org/show_bug.cgi?id=7200 (Gradient appears and disappears in SVG when text is off screen)
1480
1481         Fixes paint server usage on text paths. (ie. styled text paths, with gradients/filters).
1482
1483         * platform/graphics/svg/SVGPaintServer.h:
1484         * platform/graphics/svg/SVGPaintServerGradient.h:
1485         * platform/graphics/svg/cg/SVGPaintServerCg.cpp:
1486         (WebCore::SVGPaintServer::draw):
1487         (WebCore::SVGPaintServer::renderPath):
1488         (WebCore::SVGPaintServer::strokePath):
1489         (WebCore::SVGPaintServer::clipToStrokePath):
1490         (WebCore::SVGPaintServer::fillPath):
1491         (WebCore::SVGPaintServer::clipToFillPath):
1492         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
1493         (WebCore::findTextRootObject):
1494         (WebCore::SVGPaintServerGradient::teardown):
1495         (WebCore::SVGPaintServerGradient::renderPath):
1496         (WebCore::SVGPaintServerGradient::handleBoundingBoxModeAndGradientTransformation):
1497         (WebCore::SVGPaintServerGradient::setup):
1498         * platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp:
1499         (WebCore::SVGPaintServerSolid::setup):
1500         * platform/graphics/svg/qt/SVGPaintServerQt.cpp:
1501         (WebCore::SVGPaintServer::draw):
1502         (WebCore::SVGPaintServer::renderPath):
1503         * rendering/RenderSVGInlineText.cpp:
1504         * rendering/RenderSVGTSpan.cpp:
1505         * rendering/RenderSVGText.cpp:
1506         * rendering/RenderSVGTextPath.cpp:
1507         * rendering/SVGCharacterLayoutInfo.h:
1508         (WebCore::SVGTextChunkWalkerBase::~SVGTextChunkWalkerBase):
1509         (WebCore::SVGTextChunkWalker::SVGTextChunkWalker):
1510         (WebCore::SVGTextChunkWalker::operator()):
1511         (WebCore::SVGTextChunkWalker::start):
1512         (WebCore::SVGTextChunkWalker::end):
1513         (WebCore::SVGTextChunkWalker::setupFill):
1514         (WebCore::SVGTextChunkWalker::setupStroke):
1515         * rendering/SVGInlineFlowBox.h:
1516         * rendering/SVGInlineTextBox.cpp:
1517         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::SVGInlineTextBoxClosestCharacterToPositionWalker):
1518         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
1519         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::character):
1520         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::offset):
1521         (WebCore::SVGInlineTextBoxSelectionRectWalker::SVGInlineTextBoxSelectionRectWalker):
1522         (WebCore::SVGInlineTextBoxSelectionRectWalker::chunkPortionCallback):
1523         (WebCore::SVGInlineTextBoxSelectionRectWalker::selectionRect):
1524         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
1525         (WebCore::SVGInlineTextBox::selectionRect):
1526         (WebCore::SVGInlineTextBox::paintCharacters):
1527         (WebCore::SVGInlineTextBox::paintSelection):
1528         (WebCore::pathForDecoration):
1529         (WebCore::SVGInlineTextBox::paintDecoration):
1530         * rendering/SVGInlineTextBox.h:
1531         * rendering/SVGRenderSupport.cpp:
1532         (WebCore::prepareToRenderSVGContent):
1533         * rendering/SVGRenderSupport.h:
1534         * rendering/SVGRootInlineBox.cpp:
1535         (WebCore::SVGRootInlineBoxPaintWalker::SVGRootInlineBoxPaintWalker):
1536         (WebCore::SVGRootInlineBoxPaintWalker::~SVGRootInlineBoxPaintWalker):
1537         (WebCore::SVGRootInlineBoxPaintWalker::teardownFillPaintServer):
1538         (WebCore::SVGRootInlineBoxPaintWalker::teardownStrokePaintServer):
1539         (WebCore::SVGRootInlineBoxPaintWalker::chunkStartCallback):
1540         (WebCore::SVGRootInlineBoxPaintWalker::chunkEndCallback):
1541         (WebCore::SVGRootInlineBoxPaintWalker::chunkSetupFillCallback):
1542         (WebCore::SVGRootInlineBoxPaintWalker::chunkSetupStrokeCallback):
1543         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
1544         (WebCore::SVGRootInlineBox::paint):
1545         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
1546         (WebCore::addPaintServerToTextDecorationInfo):
1547         (WebCore::SVGRootInlineBox::retrievePaintServersForTextDecoration):
1548         (WebCore::SVGRootInlineBox::walkTextChunks):
1549         * rendering/SVGRootInlineBox.h:
1550
1551 2007-08-27  Nikolas Zimmermann  <zimmermann@kde.org>
1552
1553         Reviewed by Mitz.
1554
1555         Expose unitsPerEm() in Font classes.
1556         This is needed to implement SVG's advanced text decorations. We won't draw lines for text-decorations
1557         but fillable & strokable rectangles with a certain height, computed through unitsPerEm & font size.
1558
1559         * platform/Font.cpp:
1560         (WebCore::Font::unitsPerEm):
1561         * platform/Font.h:
1562         * platform/FontData.h:
1563         (WebCore::FontData::unitsPerEm):
1564         * platform/gdk/FontDataGdk.cpp:
1565         (WebCore::FontData::platformInit):
1566         * platform/mac/FontDataMac.mm:
1567         (WebCore::FontData::platformInit):
1568         * platform/qt/FontDataQt.cpp:
1569         (WebCore::FontData::platformInit):
1570         * platform/win/FontDataWin.cpp:
1571         (WebCore::FontData::platformInit):
1572         * platform/wx/FontDataWx.cpp:
1573         (WebCore::FontData::platformInit):
1574
1575 2007-08-27  Oliver Hunt  <oliver@apple.com>
1576
1577         Reviewed by NOBODY (Build fix).
1578
1579         Initialise iterators to appease gcc
1580
1581         * rendering/SVGInlineTextBox.cpp:
1582         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
1583
1584 2007-08-22  Rob Buis  <buis@kde.org>
1585
1586         Reviewed by Sam.
1587
1588         http://bugs.webkit.org/show_bug.cgi?id=12059
1589         SVG colors have two separate parsing paths (one CSS and one SVGColor::setRGBColor)
1590
1591         Reuse the css parser as much as possible in setRGBColor.
1592
1593         * css/cssparser.cpp:
1594         (WebCore::CSSParser::parseColor):
1595         * css/cssparser.h:
1596         * editing/ApplyStyleCommand.cpp:
1597         (WebCore::StyleChange::checkForLegacyHTMLStyleChange):
1598         * html/CanvasGradient.cpp:
1599         (WebCore::CanvasGradient::addColorStop):
1600         * html/CanvasRenderingContext2D.cpp:
1601         (WebCore::CanvasRenderingContext2D::setShadow):
1602         (WebCore::CanvasRenderingContext2D::applyShadow):
1603         * html/CanvasStyle.cpp:
1604         (WebCore::CanvasStyle::applyStrokeColor):
1605         (WebCore::CanvasStyle::applyFillColor):
1606         * ksvg2/svg/SVGColor.cpp:
1607         (WebCore::SVGColor::colorFromRGBColorString):
1608
1609 2007-08-21  Nikolas Zimmermann  <zimmermann@kde.org>
1610
1611         Reviewed by Oliver.
1612
1613         Large SVG filter rework. Bring it back in a useable state.
1614
1615         Fixes: http://bugs.webkit.org/show_bug.cgi?id=5527 (Filters need subregion support)
1616         Fixes: http://bugs.webkit.org/show_bug.cgi?id=5579 (WebKit+SVG renders full-filters-example incorrectly)
1617         Fixes: http://bugs.webkit.org/show_bug.cgi?id=5976 (filterUnits="userSpaceOnUse" is broken (breaking feTile test case))
1618         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12064 (Need function for manual style-resolution for things like gradient stops)
1619
1620         filters-blend-01-b.svg & filters-example-01-b.svg & filters-displace-01-b.svg & filters-diffuse-01-f.svg are fixed now.
1621
1622         In detail:
1623         - flood-color & flood-opacity have been incorrectly resolved on the <feBlend> parent element!
1624         - 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
1625         - add subregion support to all filter primitives (primitiveUnits & filterUnits handled in all cases)
1626         - WKDisplacmentMap.cikernel incorrectly flipped the y-axis.
1627         - Correctly specify default values for all filter primitives in ksvg2/svg!
1628         - Initialize all variables of the SVGFE* classes in platform/graphics/svg/filters.
1629         - Fix 'flood-color' initial value (was set to the _stop_ color initial value)
1630           -> both initial values were pointing to 'black' though, so it was no visible problem.
1631         - Parse 'lighting-color' css property, no more hacking in SVGFEDiffuseLighting.
1632           -> Correct it's initial from black to white value fixes SVG lighting filters!
1633         - Add diffuseConstant support to feDiffuseLighting filter.
1634         - Centralize manual style resolution (needed for stop-color, flood-color & flood-opacity, lighting-color)
1635
1636         * ksvg2/css/SVGCSSParser.cpp:
1637         * ksvg2/css/SVGCSSStyleSelector.cpp:
1638         (WebCore::CSSStyleSelector::applySVGProperty):
1639         * ksvg2/css/SVGRenderStyle.h:
1640         * ksvg2/css/SVGRenderStyleDefs.cpp:
1641         (StyleMiscData::StyleMiscData):
1642         (StyleMiscData::operator==):
1643         * ksvg2/css/SVGRenderStyleDefs.h:
1644         * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
1645         (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
1646         * ksvg2/svg/SVGFEBlendElement.cpp:
1647         (WebCore::SVGFEBlendElement::SVGFEBlendElement):
1648         (WebCore::SVGFEBlendElement::filterEffect):
1649         * ksvg2/svg/SVGFEBlendElement.h:
1650         * ksvg2/svg/SVGFEColorMatrixElement.cpp:
1651         (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
1652         (WebCore::SVGFEColorMatrixElement::filterEffect):
1653         * ksvg2/svg/SVGFEColorMatrixElement.h:
1654         * ksvg2/svg/SVGFEComponentTransferElement.cpp:
1655         (WebCore::SVGFEComponentTransferElement::filterEffect):
1656         * ksvg2/svg/SVGFEComponentTransferElement.h:
1657         * ksvg2/svg/SVGFECompositeElement.cpp:
1658         (WebCore::SVGFECompositeElement::SVGFECompositeElement):
1659         (WebCore::SVGFECompositeElement::parseMappedAttribute):
1660         (WebCore::SVGFECompositeElement::filterEffect):
1661         * ksvg2/svg/SVGFECompositeElement.h:
1662         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
1663         (WebCore::SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement):
1664         (WebCore::SVGFEDiffuseLightingElement::parseMappedAttribute):
1665         (WebCore::SVGFEDiffuseLightingElement::filterEffect):
1666         * ksvg2/svg/SVGFEDiffuseLightingElement.h:
1667         * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
1668         (WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
1669         (WebCore::SVGFEDisplacementMapElement::filterEffect):
1670         * ksvg2/svg/SVGFEDisplacementMapElement.h:
1671         * ksvg2/svg/SVGFEDistantLightElement.cpp:
1672         (WebCore::SVGFEDistantLightElement::SVGFEDistantLightElement):
1673         * ksvg2/svg/SVGFEDistantLightElement.h:
1674         * ksvg2/svg/SVGFEFloodElement.cpp:
1675         (WebCore::SVGFEFloodElement::filterEffect):
1676         * ksvg2/svg/SVGFEFloodElement.h:
1677         * ksvg2/svg/SVGFEFuncAElement.cpp:
1678         * ksvg2/svg/SVGFEFuncAElement.h:
1679         * ksvg2/svg/SVGFEFuncBElement.cpp:
1680         * ksvg2/svg/SVGFEFuncBElement.h:
1681         * ksvg2/svg/SVGFEFuncGElement.cpp:
1682         (WebCore::SVGFEFuncGElement::SVGFEFuncGElement):
1683         * ksvg2/svg/SVGFEFuncGElement.h:
1684         * ksvg2/svg/SVGFEFuncRElement.cpp:
1685         * ksvg2/svg/SVGFEFuncRElement.h:
1686         * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
1687         (WebCore::SVGFEGaussianBlurElement::filterEffect):
1688         * ksvg2/svg/SVGFEGaussianBlurElement.h:
1689         * ksvg2/svg/SVGFEImageElement.cpp:
1690         (WebCore::SVGFEImageElement::notifyFinished):
1691         (WebCore::SVGFEImageElement::filterEffect):
1692         * ksvg2/svg/SVGFEImageElement.h:
1693         * ksvg2/svg/SVGFELightElement.cpp:
1694         (WebCore::SVGFELightElement::SVGFELightElement):
1695         * ksvg2/svg/SVGFELightElement.h:
1696         * ksvg2/svg/SVGFEMergeElement.cpp:
1697         (WebCore::SVGFEMergeElement::filterEffect):
1698         * ksvg2/svg/SVGFEMergeElement.h:
1699         * ksvg2/svg/SVGFEMergeNodeElement.cpp:
1700         * ksvg2/svg/SVGFEMergeNodeElement.h:
1701         * ksvg2/svg/SVGFEOffsetElement.cpp:
1702         (WebCore::SVGFEOffsetElement::filterEffect):
1703         * ksvg2/svg/SVGFEOffsetElement.h:
1704         * ksvg2/svg/SVGFEPointLightElement.h:
1705         * ksvg2/svg/SVGFESpecularLightingElement.cpp:
1706         (WebCore::SVGFESpecularLightingElement::SVGFESpecularLightingElement):
1707         (WebCore::SVGFESpecularLightingElement::parseMappedAttribute):
1708         (WebCore::SVGFESpecularLightingElement::filterEffect):
1709         (WebCore::SVGFESpecularLightingElement::updateLights):
1710         * ksvg2/svg/SVGFESpecularLightingElement.h:
1711         * ksvg2/svg/SVGFESpotLightElement.cpp:
1712         (WebCore::SVGFESpotLightElement::lightSource):
1713         * ksvg2/svg/SVGFESpotLightElement.h:
1714         * ksvg2/svg/SVGFETileElement.cpp:
1715         (WebCore::SVGFETileElement::filterEffect):
1716         * ksvg2/svg/SVGFETileElement.h:
1717         * ksvg2/svg/SVGFETurbulenceElement.cpp:
1718         (WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
1719         (WebCore::SVGFETurbulenceElement::filterEffect):
1720         * ksvg2/svg/SVGFETurbulenceElement.h:
1721         * ksvg2/svg/SVGFilterElement.cpp:
1722         (WebCore::SVGFilterElement::canvasResource):
1723         * ksvg2/svg/SVGFilterElement.h:
1724         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp:
1725         (WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
1726         (WebCore::SVGFilterPrimitiveStandardAttributes::setStandardAttributes):
1727         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
1728         * ksvg2/svg/SVGGradientElement.cpp:
1729         (WebCore::SVGGradientElement::buildStops):
1730         * ksvg2/svg/SVGStyledElement.cpp:
1731         (WebCore::SVGStyledElement::resolveStyle):
1732         * ksvg2/svg/SVGStyledElement.h:
1733         * platform/graphics/svg/SVGResourceFilter.cpp:
1734         (WebCore::SVGResourceFilter::addFilterEffect):
1735         (WebCore::SVGResourceFilter::filterBBoxForItemBBox):
1736         * platform/graphics/svg/SVGResourceFilter.h:
1737         (WebCore::SVGResourceFilter::xBoundingBoxMode):
1738         (WebCore::SVGResourceFilter::setXBoundingBoxMode):
1739         (WebCore::SVGResourceFilter::yBoundingBoxMode):
1740         (WebCore::SVGResourceFilter::setYBoundingBoxMode):
1741         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
1742         (WebCore::SVGResourceFilter::SVGResourceFilter):
1743         (WebCore::SVGResourceFilter::createFilterEffect):
1744         (WebCore::SVGResourceFilter::prepareFilter):
1745         (WebCore::dumpOutputImage):
1746         (WebCore::SVGResourceFilter::applyFilter):
1747         (WebCore::SVGResourceFilter::getCIFilterStack):
1748         (WebCore::SVGResourceFilter::imageForName):
1749         (WebCore::SVGResourceFilter::setImageForName):
1750         (WebCore::SVGResourceFilter::setOutputImage):
1751         (WebCore::alphaImageForImage):
1752         (WebCore::SVGResourceFilter::inputImage):
1753         * platform/graphics/svg/filters/SVGDistantLightSource.h:
1754         * platform/graphics/svg/filters/SVGFEBlend.cpp:
1755         (WebCore::SVGFEBlend::SVGFEBlend):
1756         * platform/graphics/svg/filters/SVGFEBlend.h:
1757         * platform/graphics/svg/filters/SVGFEColorMatrix.cpp:
1758         (WebCore::SVGFEColorMatrix::SVGFEColorMatrix):
1759         * platform/graphics/svg/filters/SVGFEColorMatrix.h:
1760         * platform/graphics/svg/filters/SVGFEComponentTransfer.cpp:
1761         (WebCore::SVGFEComponentTransfer::SVGFEComponentTransfer):
1762         * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
1763         (WebCore::SVGComponentTransferFunction::SVGComponentTransferFunction):
1764         * platform/graphics/svg/filters/SVGFEComposite.cpp:
1765         (WebCore::SVGFEComposite::SVGFEComposite):
1766         * platform/graphics/svg/filters/SVGFEComposite.h:
1767         * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
1768         (WebCore::SVGFEConvolveMatrix::SVGFEConvolveMatrix):
1769         * platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
1770         * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
1771         (WebCore::SVGFEDiffuseLighting::SVGFEDiffuseLighting):
1772         * platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
1773         * platform/graphics/svg/filters/SVGFEDisplacementMap.cpp:
1774         (WebCore::SVGFEDisplacementMap::SVGFEDisplacementMap):
1775         * platform/graphics/svg/filters/SVGFEDisplacementMap.h:
1776         * platform/graphics/svg/filters/SVGFEFlood.cpp:
1777         (WebCore::SVGFEFlood::SVGFEFlood):
1778         * platform/graphics/svg/filters/SVGFEFlood.h:
1779         * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
1780         (WebCore::SVGFEGaussianBlur::SVGFEGaussianBlur):
1781         * platform/graphics/svg/filters/SVGFEGaussianBlur.h:
1782         * platform/graphics/svg/filters/SVGFEImage.cpp:
1783         (WebCore::SVGFEImage::SVGFEImage):
1784         * platform/graphics/svg/filters/SVGFEImage.h:
1785         * platform/graphics/svg/filters/SVGFEMerge.cpp:
1786         * platform/graphics/svg/filters/SVGFEMerge.h:
1787         (WebCore::SVGFEMerge::SVGFEMerge):
1788         * platform/graphics/svg/filters/SVGFEMorphology.cpp:
1789         (WebCore::SVGFEMorphology::SVGFEMorphology):
1790         * platform/graphics/svg/filters/SVGFEMorphology.h:
1791         * platform/graphics/svg/filters/SVGFEOffset.cpp:
1792         (WebCore::SVGFEOffset::SVGFEOffset):
1793         * platform/graphics/svg/filters/SVGFEOffset.h:
1794         * platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
1795         (WebCore::SVGFESpecularLighting::SVGFESpecularLighting):
1796         * platform/graphics/svg/filters/SVGFESpecularLighting.h:
1797         * platform/graphics/svg/filters/SVGFETile.h:
1798         (WebCore::SVGFETile::SVGFETile):
1799         * platform/graphics/svg/filters/SVGFETurbulence.cpp:
1800         (WebCore::SVGFETurbulence::SVGFETurbulence):
1801         * platform/graphics/svg/filters/SVGFETurbulence.h:
1802         * platform/graphics/svg/filters/SVGFilterEffect.cpp:
1803         (WebCore::SVGFilterEffect::SVGFilterEffect):
1804         (WebCore::SVGFilterEffect::primitiveBBoxForFilterBBox):
1805         (WebCore::SVGFilterEffect::filter):
1806         (WebCore::SVGFilterEffect::setFilter):
1807         * platform/graphics/svg/filters/SVGFilterEffect.h:
1808         (WebCore::SVGFilterEffect::xBoundingBoxMode):
1809         (WebCore::SVGFilterEffect::setXBoundingBoxMode):
1810         (WebCore::SVGFilterEffect::yBoundingBoxMode):
1811         (WebCore::SVGFilterEffect::setYBoundingBoxMode):
1812         (WebCore::SVGFilterEffect::widthBoundingBoxMode):
1813         (WebCore::SVGFilterEffect::setWidthBoundingBoxMode):
1814         (WebCore::SVGFilterEffect::heightBoundingBoxMode):
1815         (WebCore::SVGFilterEffect::setHeightBoundingBoxMode):
1816         * platform/graphics/svg/filters/SVGLightSource.cpp:
1817         * platform/graphics/svg/filters/SVGLightSource.h:
1818         * platform/graphics/svg/filters/SVGPointLightSource.h:
1819         (WebCore::SVGPointLightSource::SVGPointLightSource):
1820         * platform/graphics/svg/filters/SVGSpotLightSource.h:
1821         (WebCore::SVGSpotLightSource::SVGSpotLightSource):
1822         * platform/graphics/svg/filters/cg/SVGFEBlendCg.mm:
1823         (WebCore::SVGFEBlend::getCIFilter):
1824         * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
1825         (WebCore::SVGFEColorMatrix::getCIFilter):
1826         * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
1827         (WebCore::filterForComponentFunc):
1828         (WebCore::SVGFEComponentTransfer::getCIFilter):
1829         * platform/graphics/svg/filters/cg/SVGFECompositeCg.mm:
1830         (WebCore::SVGFEComposite::getCIFilter):
1831         * platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm:
1832         (WebCore::SVGFEDiffuseLighting::getCIFilter):
1833         * platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm:
1834         (WebCore::SVGFEDisplacementMap::getCIFilter):
1835         * platform/graphics/svg/filters/cg/SVGFEFloodCg.mm:
1836         (WebCore::SVGFEFlood::getCIFilter):
1837         * platform/graphics/svg/filters/cg/SVGFEGaussianBlurCg.mm:
1838         (WebCore::SVGFEGaussianBlur::getCIFilter):
1839         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
1840         * platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
1841         (WebCore::SVGFEImage::getCIFilter):
1842         * platform/graphics/svg/filters/cg/SVGFEMergeCg.mm:
1843         (WebCore::SVGFEMerge::getCIFilter):
1844         * platform/graphics/svg/filters/cg/SVGFEOffsetCg.mm:
1845         (WebCore::SVGFEOffset::getCIFilter):
1846         * platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm:
1847         (WebCore::SVGFESpecularLighting::getCIFilter):
1848         * platform/graphics/svg/filters/cg/SVGFETileCg.mm:
1849         (WebCore::SVGFETile::getCIFilter):
1850         * platform/graphics/svg/filters/cg/SVGFilterEffectCg.mm:
1851         (WebCore::SVGFilterEffect::getCIFilter):
1852         * platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.cikernel:
1853         * platform/graphics/svg/filters/cg/WKDisplacementMapFilter.cikernel:
1854         * platform/graphics/svg/filters/cg/WKSpotLightFilter.m:
1855         (-[WKSpotLightFilter outputImage]):
1856         * platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
1857         (WebCore::SVGResourceFilter::createFilterEffect):
1858
1859 2007-08-20  Rob Buis  <buis@kde.org>
1860
1861         Reviewed by Nikolas.
1862
1863         http://bugs.webkit.org/show_bug.cgi?id=14924
1864         rotated rect with pattern draws incorrectly
1865
1866         Use the bounding box before transformation.
1867
1868         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
1869         (WebCore::SVGPaintServerPattern::setup):
1870
1871 2007-08-19  Rob Buis  <buis@kde.org>
1872
1873         Reviewed by Nikolas.
1874
1875         http://bugs.webkit.org/show_bug.cgi?id=14926
1876         WebKit has 'em' length handling problems related to CSS properties
1877
1878         Parse the properties in inline style attributes non-strict for SVG.
1879
1880         * dom/StyledElement.cpp:
1881         (WebCore::StyledElement::createInlineStyleDecl):
1882
1883 2007-08-17  Rob Buis  <buis@kde.org>
1884
1885         Reviewed by Oliver.
1886
1887         http://bugs.webkit.org/show_bug.cgi?id=14927
1888         use element in SVG does not render after parent is displayed off and on
1889
1890         Also detach the shadow tree when detaching the <use>.
1891
1892         * ksvg2/svg/SVGUseElement.cpp:
1893         (WebCore::SVGUseElement::detach):
1894         * ksvg2/svg/SVGUseElement.h:
1895
1896 2007-08-10  Nikolas Zimmermann  <zimmermann@kde.org>
1897
1898         Reviewed by Rob.
1899
1900         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14153
1901
1902         Final, long-awaited RenderSVGContainer split. Make RenderSVGContainer really a simple
1903         container without special cases for inner <svg> elements or <marker>. Create a new
1904         RenderSVGViewportContainer class handling these cases now.
1905
1906         * WebCore.xcodeproj/project.pbxproj:
1907         * ksvg2/svg/SVGMarkerElement.cpp:
1908         (WebCore::SVGMarkerElement::createRenderer):
1909         * ksvg2/svg/SVGSVGElement.cpp:
1910         (WebCore::SVGSVGElement::createRenderer):
1911         * ksvg2/svg/SVGSVGElement.h:
1912         * rendering/RenderSVGContainer.cpp:
1913         (WebCore::RenderSVGContainer::layout):
1914         (WebCore::RenderSVGContainer::applyContentTransforms):
1915         (WebCore::RenderSVGContainer::applyAdditionalTransforms):
1916         (WebCore::RenderSVGContainer::paint):
1917         (WebCore::RenderSVGContainer::viewportTransform):
1918         (WebCore::RenderSVGContainer::relativeBBox):
1919         (WebCore::RenderSVGContainer::nodeAtPoint):
1920         * rendering/RenderSVGContainer.h:
1921         * rendering/RenderSVGRoot.cpp:
1922         * rendering/RenderSVGViewportContainer.cpp: Added.
1923         (WebCore::RenderSVGViewportContainer::RenderSVGViewportContainer):
1924         (WebCore::RenderSVGViewportContainer::~RenderSVGViewportContainer):
1925         (WebCore::RenderSVGViewportContainer::layout):
1926         (WebCore::RenderSVGViewportContainer::paint):
1927         (WebCore::RenderSVGViewportContainer::applyContentTransforms):
1928         (WebCore::RenderSVGViewportContainer::applyAdditionalTransforms):
1929         (WebCore::RenderSVGViewportContainer::viewport):
1930         (WebCore::RenderSVGViewportContainer::calcViewport):
1931         (WebCore::RenderSVGViewportContainer::viewportTransform):
1932         (WebCore::RenderSVGViewportContainer::absoluteTransform):
1933         (WebCore::RenderSVGViewportContainer::nodeAtPoint):
1934         * rendering/RenderSVGViewportContainer.h: Added.
1935         (WebCore::RenderSVGViewportContainer::isSVGContainer):
1936         (WebCore::RenderSVGViewportContainer::renderName):
1937
1938 2007-08-10  Nikolas Zimmermann  <zimmermann@kde.org>
1939
1940         Reviewed by Oliver & Rob.
1941
1942         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12501 (SVG Text fails to respect opacity, fill-opacity and stroke-opacity)
1943         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14045 (Incorrect support for opacity, fill-opacity and stroke-opacity)
1944
1945         Based on an older patch from Rob, this fixes SVG text opacity as well as group opacity for solid fills & gradients.
1946         The pattern changes are still missing a testcase (need to wait for Antoine Quint for that).
1947
1948         * platform/graphics/svg/SVGResourceFilter.h:
1949         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
1950         (WebCore::SVGPaintServerGradient::setup):
1951         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
1952         (WebCore::SVGPaintServerPattern::setup):
1953         * platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp:
1954         (WebCore::colorFromFloatComponents):
1955         (WebCore::SVGPaintServerSolid::setup):
1956         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
1957         (WebCore::SVGResourceFilter::SVGResourceFilter):
1958         (WebCore::SVGResourceFilter::prepareFilter):
1959         (WebCore::SVGResourceFilter::applyFilter):
1960         * rendering/RenderPath.cpp:
1961         (WebCore::RenderPath::paint):
1962         * rendering/RenderSVGContainer.cpp:
1963         (WebCore::RenderSVGContainer::paint):
1964         (WebCore::RenderSVGContainer::absoluteClippedOverflowRect):
1965         * rendering/RenderSVGImage.cpp:
1966         (WebCore::RenderSVGImage::paint):
1967         (WebCore::RenderSVGImage::absoluteClippedOverflowRect):
1968         * rendering/RenderSVGRoot.cpp:
1969         (WebCore::RenderSVGRoot::paint):
1970         * rendering/RenderSVGText.cpp:
1971         (WebCore::RenderSVGText::absoluteClippedOverflowRect):
1972         * rendering/SVGRenderSupport.cpp:
1973         (WebCore::prepareToRenderSVGContent):
1974         (WebCore::finishRenderSVGContent):
1975         * rendering/SVGRenderSupport.h:
1976         * rendering/SVGRootInlineBox.cpp:
1977         (WebCore::prepareTextRendering):
1978         (WebCore::SVGRootInlineBox::paint):
1979         (WebCore::SVGRootInlineBox::paintChildInlineFlowBox):
1980
1981 2007-08-08  Rob Buis  <buis@kde.org>
1982
1983         Reviewed by Nikolas.
1984
1985         http://bugs.webkit.org/show_bug.cgi?id=11909
1986         Regression: large SVG from Illustrator comes out blank
1987
1988         Fix last issue with the Illustrator file by making relativeBBox
1989         calculation take into account viewBox.
1990
1991         * rendering/RenderSVGContainer.cpp:
1992         (WebCore::RenderSVGContainer::relativeBBox):
1993         * rendering/RenderSVGRoot.cpp:
1994         (WebCore::RenderSVGRoot::relativeBBox):
1995
1996 2007-08-08  Nikolas Zimmermann  <zimmermann@kde.org>
1997
1998         Reviewed by Oliver.
1999
2000         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14896 (SVG InlineText/Flow box sizes don't take rotated glyphs into account)
2001
2002         Introduce new helper function calculateGlyphBoundaries, which takes into account any per-character transformation.
2003         This fixes box size calculations in svg/W3C-SVG-1.1/text-text-07-t.svg, svg/batik/text/textEffect3.svg (rotated glyphs)
2004         -> These strings can be properly selected now, just as well as text path elements.
2005
2006         * rendering/SVGInlineTextBox.cpp:
2007         (WebCore::SVGInlineTextBox::calculateGlyphBoundaries):
2008         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
2009         (WebCore::SVGInlineTextBox::nodeAtPoint):
2010         (WebCore::SVGInlineTextBox::selectionRect):
2011         * rendering/SVGInlineTextBox.h:
2012         * rendering/SVGRootInlineBox.cpp:
2013         (WebCore::SVGRootInlineBox::layoutInlineBoxes):
2014
2015 2007-08-08  Nikolas Zimmermann  <zimmermann@kde.org>
2016
2017         Reviewed by Oliver.
2018
2019         Fixes: http://bugs.webkit.org/show_bug.cgi?id=13909 (SVG text selection doesn't work with RTL text)
2020
2021         Use drawHighlightForText() to draw the selection, instead of my home-brewn solution.
2022         Affected code in SVGRootInlineBox::paintSelectionForTextBox. Removed not anymore needed
2023         helper function cummulatedWidthOfSelectionRange.
2024
2025         Dump all contained InlineTextBox(es) in SVGRenderTreeAsText, take into account multiple
2026         child text boxes in ie. a RenderSVGInlineText objects (which happens for RTL text and
2027         LTR text cases where newlines were involved - see changed testcase results.)
2028         This affects a lot of LTR tests which actually had more than one child text box, that
2029         wasn't taken properly into account before (in terms of selection, not rendering.)
2030
2031         Fix selection for RTL text by taking box start offsets into account in closestCharacterToPosition()
2032         and by offering RTL text selection special cases in svgCharacterHitsPosition().
2033
2034         Centralized the creation of a TextStyle object for text selection/painting in a new helper function
2035         svgTextStyleForInlineTextBox. Add new helper functions calculateGlyphWidth/calculateGlyphHeight to
2036         centralize these calculations -> use these new helpers everywhere to avoid code duplication.
2037
2038         A single fix in bidi.cpp was needed to fix SVG's unicode-bidi/direction handling, to fix text-intro-02-b.svg.
2039         SVG didacts that the 'direction' attribute is ignored if unicode-bidi is set to 'normal' (default).
2040         Discussed with Mitz.
2041
2042         * rendering/RenderSVGInlineText.cpp:
2043         (WebCore::RenderSVGInlineText::positionForCoordinates):
2044         * rendering/SVGInlineTextBox.cpp:
2045         (WebCore::SVGInlineTextBox::calculateGlyphWidth):
2046         (WebCore::SVGInlineTextBox::calculateGlyphHeight):
2047         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
2048         (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
2049         (WebCore::SVGInlineTextBox::nodeAtPoint):
2050         (WebCore::SVGInlineTextBox::selectionRect):
2051         * rendering/SVGInlineTextBox.h:
2052         * rendering/SVGRenderTreeAsText.cpp:
2053         (WebCore::writeSVGInlineTextBox):
2054         (WebCore::writeSVGInlineText):
2055         * rendering/SVGRootInlineBox.cpp:
2056         (WebCore::cummulatedWidthOfInlineBoxCharacterRange): Take box start offset into account.
2057         (WebCore::svgTextStyleForInlineTextBox): New helper function.
2058         (WebCore::totalAdvanceOfInlineTextBox): Take box start offset into account.
2059         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox): Ditto. (correctly calculate advance values in RTL mode!)
2060         (WebCore::SVGRootInlineBox::paintSelectionForTextBox): Use GraphicsContext drawHighlightForText() instead of self-made hacks.
2061         (WebCore::SVGRootInlineBox::paintCharacterRangeForTextBox): Use new helper function svgTextStyleForInlineTextBox.
2062         * rendering/SVGRootInlineBox.h:
2063         * rendering/bidi.cpp: Add special case for SVG.
2064         (WebCore::RenderBlock::layoutInlineChildren):
2065
2066 2007-07-30  Nikolas Zimmermann  <zimmermann@kde.org>
2067
2068         Reviewed by Oliver & Rob.
2069
2070         Enable SVG textPath selection. Actually build chunks for them instead of
2071         ignoring them - was easier than I thought. Respect per-character transformation
2072         when calculating the chunk boundaries for the selection rectangles. Also fixes
2073         selection rect drawing of rotated characters.
2074
2075         Next thing todo is to unify the glyph size calculations, as per-glyph transformations
2076         are not respected when calculating flow box sizes in SVGRootInlineBox.
2077  
2078         * rendering/RenderObject.h:
2079         (WebCore::RenderObject::isSVGHiddenContainer):
2080         * rendering/RenderSVGHiddenContainer.h:
2081         (WebCore::RenderSVGHiddenContainer::isSVGHiddenContainer):
2082         * rendering/RenderSVGInlineText.cpp:
2083         (WebCore::isChildOfHiddenContainer):
2084         (WebCore::RenderSVGInlineText::selectionRect):
2085         (WebCore::RenderSVGInlineText::computeAbsoluteRectForRange):
2086         * rendering/SVGCharacterLayoutInfo.h:
2087         (WebCore::SVGTextChunk::SVGTextChunk):
2088         (WebCore::SVGTextChunkLayoutInfo::SVGTextChunkLayoutInfo):
2089         * rendering/SVGInlineTextBox.cpp:
2090         (WebCore::SVGInlineTextBox::selectionRect):
2091         * rendering/SVGRootInlineBox.cpp:
2092         (WebCore::applyTextAnchorToTextChunk):
2093         (WebCore::SVGRootInlineBox::buildTextChunks):
2094
2095 2007-07-25  Rob Buis  <buis@kde.org>
2096
2097         Reviewed by Nikolas.
2098
2099         http://bugs.webkit.org/show_bug.cgi?id=14312
2100         Removing an attribute has no effect on SVG
2101
2102         Update the transform matrix also when transform attribute is empty.
2103
2104         * ksvg2/svg/SVGStyledTransformableElement.cpp:
2105         (WebCore::SVGStyledTransformableElement::updateLocalTransform):
2106
2107 2007-07-26  Nikolas Zimmermann  <zimmermann@kde.org>
2108
2109         Reviewed by Oliver.
2110
2111         Unify absoluteRects() of RenderSVGTSpan & RenderSVGTextPath.
2112         The RenderSVGTextPath one was still using the old, wrong concept.
2113
2114         * rendering/RenderSVGTSpan.cpp: Remove unused params tx, ty, while I'm at it.
2115         (WebCore::RenderSVGTSpan::absoluteRects):
2116         * rendering/RenderSVGTextPath.cpp:
2117         (WebCore::RenderSVGTextPath::absoluteRects):
2118
2119 2007-07-25  Nikolas Zimmermann  <zimmermann@kde.org>
2120
2121         Reviewed by Sam.
2122
2123         Let <textPath> be recognized within the ObjC bindings.
2124         Forgot to add that months ago.
2125
2126         * bindings/objc/DOM.mm:
2127         (WebCore::createElementClassMap):
2128         * bindings/objc/DOMInternal.h:
2129         * bindings/objc/DOMSVG.h:
2130
2131 2007-07-25  Nikolas Zimmermann  <zimmermann@kde.org>
2132
2133         Reviewed by Oliver.
2134
2135         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14065
2136
2137         Fix all known bugs regarding to SVG text selection, when embedded in XHTML.
2138         Also fix inspecting <text> elements when embedded in XHTML. (WebInspector)
2139
2140         Short story: selectionRect() & friends are special in terms of the "HTML parent translation".
2141         Caused by ie. CSS translation like "left: 50px; top: 50px" when <svg> is a child of a <div>.
2142         For non-textual objects like RenderPath, we can easily add a translation to a new coordinate
2143         space in RenderSVGRoot::applyContentTransformations() and we're done with it.
2144
2145         Same for painting text, but text selection makes problems in this concept.
2146         We have to remove the 'html parent translation' from our selection rects that we return
2147         from RenderSVGText & RenderSVGInlineText. Hopefully all issues are fixed now.
2148
2149         Long story:
2150         - RenderSVGRoot::nodeAtPoint didn't take the parent 'scroll offset' into account. We exited
2151           too early, because the overflow rect wasn't correctly sized. Fixed.
2152         - RenderSVGRoot::absoluteRects() can't return the absoluteClippedOverflowRect() as it includes
2153           the 'html parent translation', which needs to be removed, otherwhise the painted rects are off
2154           when inspecting with WebInspector. -> Pass down absoluteRects() call to it's children..
2155         - RenderSVGText::absoluteRects() can't use absoluteClippedOverflowRect() for the same reason.
2156         - Add RenderSVGInlineText::computeAbsoluteRectForRange() function - shared by absoluteRects() and
2157           selectionRect() - and remove the 'html parent translation' there by asking the RenderSVGRoot
2158           object for the correct offsets.
2159
2160         This lead to nasty bugs showing that SVGInlineTextBox::selectionRect() wasn't actually returning
2161         correct rectangles. It couldn't work for text chunks the way it was implemented. Fixed by implementing
2162         it exactly the same way that closestCharacterToPosition() was done - could share more code later on.
2163
2164         * rendering/RenderSVGInlineText.cpp:
2165         (WebCore::RenderSVGInlineText::absoluteRects):
2166         (WebCore::RenderSVGInlineText::selectionRect):
2167         (WebCore::RenderSVGInlineText::computeAbsoluteRectForRange):
2168         * rendering/RenderSVGInlineText.h:
2169         * rendering/RenderSVGRoot.cpp:
2170         (WebCore::RenderSVGRoot::absoluteRects):
2171         (WebCore::RenderSVGRoot::nodeAtPoint):
2172         * rendering/RenderSVGText.cpp:
2173         (WebCore::RenderSVGText::absoluteRects):
2174         * rendering/SVGCharacterLayoutInfo.h: Removed unused variable 'bool selected'
2175         * rendering/SVGInlineTextBox.cpp:
2176         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
2177         (WebCore::SVGInlineTextBox::nodeAtPoint):
2178         (WebCore::SVGInlineTextBox::selectionRect):
2179         * rendering/SVGRootInlineBox.cpp: Add 'findSVGRootObject' helper function.
2180         (WebCore::findSVGRootObject):
2181         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
2182         (WebCore::SVGRootInlineBox::paintSelectionForTextBox): Remove unused tx/ty parameters.
2183         (WebCore::SVGRootInlineBox::paintChildInlineTextBox):
2184         (WebCore::SVGRootInlineBox::paintCharacterRangeForTextBox):
2185         * rendering/SVGRootInlineBox.h:
2186
2187 2007-07-17  Nikolas Zimmermann  <zimmermann@kde.org>
2188
2189         Build fix. Not reviewed.
2190
2191         Rob forgot to land the changes to SVGResourceMarker in his last commit.
2192
2193         * platform/graphics/svg/SVGResourceMarker.cpp:
2194         (WebCore::SVGResourceMarker::draw):
2195
2196 2007-07-17  Rob Buis  <buis@kde.org>
2197
2198         Reviewed by Nikolas.
2199
2200         http://bugs.webkit.org/show_bug.cgi?id=5996
2201         SVG <view> is unimplemented
2202
2203         Implement <view> and refactor the code in the svg renderer container classes.
2204
2205         * WebCore.xcodeproj/project.pbxproj:
2206         * ksvg2/svg/SVGDocument.cpp:
2207         (WebCore::SVGDocument::zoomAndPanEnabled): Take into account currentView for zoom/pan
2208         * ksvg2/svg/SVGDocument.h:
2209         * ksvg2/svg/SVGFEImageElement.cpp:
2210         (WebCore::SVGFEImageElement::parseMappedAttribute):
2211         * ksvg2/svg/SVGFitToViewBox.cpp:
2212         (WebCore::SVGFitToViewBox::parseViewBox):
2213         (WebCore::SVGFitToViewBox::parseMappedAttribute):
2214         * ksvg2/svg/SVGFitToViewBox.h:
2215         * ksvg2/svg/SVGImageElement.cpp:
2216         (WebCore::SVGImageElement::parseMappedAttribute):
2217         * ksvg2/svg/SVGLocatable.h:
2218         * ksvg2/svg/SVGMarkerElement.cpp:
2219         (WebCore::SVGMarkerElement::createRenderer):
2220         (WebCore::SVGMarkerElement::notifyAttributeChange):
2221         * ksvg2/svg/SVGPreserveAspectRatio.cpp:
2222         (WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio):
2223         * ksvg2/svg/SVGPreserveAspectRatio.h:
2224         * ksvg2/svg/SVGSVGElement.cpp:
2225         (WebCore::SVGSVGElement::SVGSVGElement):
2226         (WebCore::SVGSVGElement::currentView):
2227         (WebCore::SVGSVGElement::parseMappedAttribute):
2228         (WebCore::SVGSVGElement::createRenderer):
2229         (WebCore::SVGSVGElement::viewBoxToViewTransform):
2230         (WebCore::SVGSVGElement::inheritViewAttributes):
2231         * ksvg2/svg/SVGSVGElement.h:
2232         * ksvg2/svg/SVGTransformable.cpp:
2233         (WebCore::SVGTransformable::parseTransformAttribute):
2234         * ksvg2/svg/SVGTransformable.h:
2235         * ksvg2/svg/SVGViewElement.cpp:
2236         (WebCore::SVGViewElement::parseMappedAttribute):
2237         * ksvg2/svg/SVGViewElement.h:
2238         * ksvg2/svg/SVGViewSpec.cpp: Added.
2239         (WebCore::SVGViewSpec::SVGViewSpec):
2240         (WebCore::SVGViewSpec::~SVGViewSpec):
2241         (WebCore::SVGViewSpec::setTransform):
2242         (WebCore::SVGViewSpec::setViewBoxString):
2243         (WebCore::SVGViewSpec::setPreserveAspectRatioString):
2244         (WebCore::SVGViewSpec::setViewTargetString):
2245         (WebCore::SVGViewSpec::viewTarget):
2246         (WebCore::SVGViewSpec::contextElement):
2247         (WebCore::):
2248         (WebCore::SVGViewSpec::parseViewSpec):
2249         * ksvg2/svg/SVGViewSpec.h: Added.
2250         (WebCore::SVGViewSpec::transform):
2251         (WebCore::SVGViewSpec::viewTargetString):
2252         * ksvg2/svg/SVGZoomAndPan.cpp:
2253         (WebCore::SVGZoomAndPan::parseMappedAttribute):
2254         (WebCore::):
2255         (WebCore::SVGZoomAndPan::parseZoomAndPan):
2256         * ksvg2/svg/SVGZoomAndPan.h:
2257         * loader/FrameLoader.cpp:
2258         (WebCore::FrameLoader::gotoAnchor):
2259         * page/Frame.cpp:
2260         (WebCore::Frame::setZoomFactor): do not zoom when it is disabled
2261         * rendering/RenderSVGContainer.cpp:
2262         (WebCore::RenderSVGContainer::RenderSVGContainer):
2263         (WebCore::RenderSVGContainer::paint):
2264         (WebCore::RenderSVGContainer::viewportTransform):
2265         * rendering/RenderSVGContainer.h:
2266         * rendering/RenderSVGRoot.cpp:
2267         (WebCore::RenderSVGRoot::RenderSVGRoot):
2268         (WebCore::RenderSVGRoot::applyContentTransforms):
2269         (WebCore::RenderSVGRoot::paint):
2270         (WebCore::RenderSVGRoot::absoluteTransform):
2271         (WebCore::RenderSVGRoot::localTransform):
2272         * rendering/RenderSVGRoot.h:
2273
2274 2007-07-16  Nikolas Zimmermann  <zimmermann@kde.org>
2275
2276         Reviewed by Rob.
2277
2278         Fixes: http://bugs.webkit.org/show_bug.cgi?id=13611 (Crash in setAttributeNS setting href of SVG <use> to nonexistent symbol)
2279         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14631 (<use> doesn't deep-expand <symbol> elements.)
2280
2281         Rework <use> on <foreignObject> cases, to not just ignore these cases, but actually proceed and skip <fO> objects
2282         from the resulting cloned tree. This fixes parts of "treasure_map.svg" (no bug report availabe on that one, private "testcase").
2283
2284         Fix assertion happening with <use> on <g> containing <symbol>. Introduce expandSymbolElementsInShadowTree()
2285         concept, just like it's done for <use> on <use>, to deep-replace all <symbol> elements by <svg>, as demanded
2286         by the spec. This only worked on <use> on <symbol> direct cases so far.
2287
2288         Added testcase: svg/custom/use-on-g-containing-foreignObject-and-image.svg (testcase for treasure_map.svg)
2289                         svg/custom/use-on-disallowed-foreign-object-5.svg (<use> on <symbol> containg <foreignObject>)
2290                         svg/custom/use-on-disallowed-foreign-object-6.svg (<use> on <g> containing <svg> containing <foreignObject>)
2291                         svg/custom/use-on-disallowed-foreign-object-7.svg (<use> on <g> containing <symbol> containing <foreignObject>)
2292                         svg/custom/use-scripting-changes-to-nonexistant-href.svg
2293
2294         * ksvg2/svg/SVGUseElement.cpp:
2295         (WebCore::isDisallowedElement):
2296         (WebCore::subtreeContainsDisallowedElement):
2297         (WebCore::SVGUseElement::buildPendingResource):
2298         (WebCore::SVGUseElement::buildInstanceTree):
2299         (WebCore::SVGUseElement::removeDisallowedElementsFromSubtree):
2300         (WebCore::SVGUseElement::buildShadowTree):
2301         (WebCore::SVGUseElement::expandUseElementsInShadowTree):
2302         (WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
2303         * ksvg2/svg/SVGUseElement.h:
2304
2305 2007-07-15  Nikolas Zimmermann  <zimmermann@kde.org>
2306
2307         Reviewed by Rob.
2308
2309         Fix invisible-text-after-scrolling.xhtml regression. Scroll offset not
2310         taken into account properly. Also fix RenderSVGInlineText::selectionRect(),
2311         so that SVG text can be selected, when being embedded in XHTML.
2312
2313         * rendering/RenderSVGInlineText.cpp:
2314         (WebCore::RenderSVGInlineText::selectionRect):
2315         * rendering/RenderSVGRoot.cpp:
2316         (WebCore::RenderSVGRoot::applyContentTransforms):
2317
2318 2007-07-15  Nikolas Zimmermann  <zimmermann@kde.org>
2319
2320         Reviewed by Oliver.
2321
2322         Fixes: http://bugs.webkit.org/show_bug.cgi?id=5940 (<svg> inside <body> incorrectly extends over top/bottom borders)
2323         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14145 (RenderSVGContainer should not inherit from RenderContainer)
2324
2325         Make RenderSVGContainer inherit from RenderObject directly, instead of RenderContainer.
2326         Itdoes a lot of things that we don't need for SVG, and by removing this inheritance
2327         we can finally fix the differences about SVG object positioning, as we don't need
2328         parent translation (tx/ty). Fixes SVG text rendering within XHTML.
2329
2330         Fix requireLayer() function on RenderSVGRoot, as it can actually be a layer now.
2331         This change is based on Rob's patch at 5940 - fixing z-order indexing.
2332
2333         Change RenderSVGRoot renderName() and update all layout tests, because of this change.
2334         
2335         Fix absoluteRects() function for RenderSVGInlineText & RenderSVGTSpan.
2336         Checked extensively using WebInspector, to assure all rects are correctly displayed.
2337
2338         Testcases fixed: junk-data.svg, missing-xlink.svg hixie/013.xml (all regressions!)
2339         (junk-data.svg & missing-xlink.svg previously relied on SVG text painting out of <svg> overflow rect.
2340          Fix these testcases, as within this new RenderSVGContainer concept, that bug is now fixed, and breaks them)
2341
2342         Testcases added: custom/absolute-sized-svg-in-xhtml.xhtml, custom/inline-svg-in-xhtml.xml (Mozilla XTech demo)
2343
2344         * ksvg2/svg/SVGSVGElement.cpp:
2345         (WebCore::SVGSVGElement::parseMappedAttribute):
2346         * rendering/RenderObject.cpp:
2347         (WebCore::RenderObject::containingBlock):
2348         * rendering/RenderObject.h:
2349         (WebCore::RenderObject::isSVGRoot):
2350         * rendering/RenderPath.cpp:
2351         (WebCore::RenderPath::paint):
2352         (WebCore::RenderPath::addFocusRingRects):
2353         * rendering/RenderSVGContainer.cpp:
2354         (WebCore::RenderSVGContainer::RenderSVGContainer):
2355         (WebCore::RenderSVGContainer::canHaveChildren):
2356         (WebCore::RenderSVGContainer::addChild):
2357         (WebCore::RenderSVGContainer::removeChild):
2358         (WebCore::RenderSVGContainer::destroy):
2359         (WebCore::RenderSVGContainer::destroyLeftoverChildren):
2360         (WebCore::RenderSVGContainer::removeChildNode):
2361         (WebCore::RenderSVGContainer::appendChildNode):
2362         (WebCore::RenderSVGContainer::insertChildNode):
2363         (WebCore::RenderSVGContainer::layout):
2364         (WebCore::RenderSVGContainer::calcReplacedWidth):
2365         (WebCore::RenderSVGContainer::calcReplacedHeight):
2366         (WebCore::RenderSVGContainer::applyContentTransforms):
2367         (WebCore::RenderSVGContainer::paint):
2368         (WebCore::RenderSVGContainer::absoluteTransform):
2369         (WebCore::RenderSVGContainer::nodeAtPoint):
2370         * rendering/RenderSVGContainer.h:
2371         (WebCore::RenderSVGContainer::firstChild):
2372         (WebCore::RenderSVGContainer::lastChild):
2373         (WebCore::RenderSVGContainer::width):
2374         (WebCore::RenderSVGContainer::height):
2375         (WebCore::RenderSVGContainer::moveChildNode):
2376         (WebCore::RenderSVGContainer::calcPrefWidths):
2377         * rendering/RenderSVGHiddenContainer.cpp:
2378         (WebCore::RenderSVGHiddenContainer::RenderSVGHiddenContainer):
2379         (WebCore::RenderSVGHiddenContainer::paint):
2380         (WebCore::RenderSVGHiddenContainer::absoluteRects):
2381         (WebCore::RenderSVGHiddenContainer::relativeBBox):
2382         * rendering/RenderSVGHiddenContainer.h:
2383         * rendering/RenderSVGImage.cpp:
2384         (WebCore::RenderSVGImage::paint):
2385         * rendering/RenderSVGInline.cpp:
2386         (WebCore::RenderSVGInline::RenderSVGInline):
2387         * rendering/RenderSVGInlineText.cpp:
2388         (WebCore::RenderSVGInlineText::absoluteRects):
2389         * rendering/RenderSVGRoot.cpp:
2390         (WebCore::RenderSVGRoot::applyContentTransforms):
2391         (WebCore::RenderSVGRoot::paint):
2392         (WebCore::RenderSVGRoot::addFocusRingRects):
2393         * rendering/RenderSVGRoot.h:
2394         (WebCore::RenderSVGRoot::isSVGRoot):
2395         (WebCore::RenderSVGRoot::renderName):
2396         * rendering/RenderSVGTSpan.cpp:
2397         (WebCore::RenderSVGTSpan::RenderSVGTSpan):
2398         (WebCore::RenderSVGTSpan::absoluteRects):
2399         * rendering/RenderSVGTextPath.cpp:
2400         (WebCore::RenderSVGTextPath::absoluteRects):
2401         * rendering/RenderTreeAsText.cpp:
2402         (WebCore::write):
2403         * rendering/SVGRenderTreeAsText.cpp:
2404         (WebCore::operator<<):
2405         (WebCore::write):
2406         * rendering/SVGRenderTreeAsText.h:
2407
2408 2007-07-11  Nikolas Zimmermann  <zimmermann@kde.org>
2409
2410         Reviewed by Sam.
2411
2412         Remove all "SVGElement* m_context" parameters spread over SVG primitives
2413         (like SVGAngle, SVGPreserveAspectRatio, SVGTransformList, ...)
2414
2415         This is all handled by the JS generation in the bindings now, leading
2416         to a faster static rendering codepaths, and easier handling of the dynamic
2417         parts like JS scripting. Remove the mystified genericContext() concept alltogether.
2418
2419         * bindings/js/JSSVGMatrixCustom.cpp: Adapt to the context() change.
2420         (WebCore::JSSVGMatrix::multiply):
2421         (WebCore::JSSVGMatrix::inverse):
2422         (WebCore::JSSVGMatrix::translate):
2423         (WebCore::JSSVGMatrix::scale):
2424         (WebCore::JSSVGMatrix::scaleNonUniform):
2425         (WebCore::JSSVGMatrix::rotate):
2426         (WebCore::JSSVGMatrix::rotateFromVector):
2427         (WebCore::JSSVGMatrix::flipX):
2428         (WebCore::JSSVGMatrix::flipY):
2429         (WebCore::JSSVGMatrix::skewX):
2430         (WebCore::JSSVGMatrix::skewY):
2431         * bindings/js/JSSVGPODTypeWrapper.h: Remove all nAC() calls here!
2432         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::commitChange):
2433         (WebCore::JSSVGPODTypeWrapperCreatorForList::JSSVGPODTypeWrapperCreatorForList):
2434         (WebCore::JSSVGPODTypeWrapperCreatorForList::~JSSVGPODTypeWrapperCreatorForList):
2435         * bindings/js/JSSVGPathSegCustom.cpp: Adapt to the context() change.
2436         (WebCore::toJS):
2437         * bindings/js/JSSVGPathSegListCustom.cpp: Ditto.
2438         (WebCore::JSSVGPathSegList::clear):
2439         (WebCore::JSSVGPathSegList::initialize):
2440         (WebCore::JSSVGPathSegList::getItem):
2441         (WebCore::JSSVGPathSegList::insertItemBefore):
2442         (WebCore::JSSVGPathSegList::replaceItem):
2443         (WebCore::JSSVGPathSegList::removeItem):
2444         (WebCore::JSSVGPathSegList::appendItem):
2445         * bindings/js/JSSVGPointListCustom.cpp: Ditto.
2446         (WebCore::JSSVGPointList::clear):
2447         (WebCore::JSSVGPointList::initialize):
2448         (WebCore::JSSVGPointList::getItem):
2449         (WebCore::JSSVGPointList::insertItemBefore):
2450         (WebCore::JSSVGPointList::replaceItem):
2451         (WebCore::JSSVGPointList::removeItem):
2452         (WebCore::JSSVGPointList::appendItem): 
2453         * bindings/js/JSSVGTransformListCustom.cpp: Ditto.
2454         (WebCore::JSSVGTransformList::clear):
2455         (WebCore::JSSVGTransformList::initialize):
2456         (WebCore::JSSVGTransformList::getItem):
2457         (WebCore::JSSVGTransformList::insertItemBefore):
2458         (WebCore::JSSVGTransformList::replaceItem):
2459         (WebCore::JSSVGTransformList::removeItem):
2460         (WebCore::JSSVGTransformList::appendItem):
2461         * bindings/js/kjs_binding.h: Add new cacheSVGDOMObject, taking third parameter: context.
2462         (KJS::cacheSVGDOMObject):
2463         * bindings/scripts/CodeGeneratorJS.pm: Change generation to step aways from genericContext().
2464         * ksvg2/misc/SVGDocumentExtensions.h: Kill all genericContext() stuff.
2465         (WebCore::SVGDocumentExtensions::hasBaseValue):
2466         * ksvg2/svg/SVGAngle.cpp: Kill context parameter.
2467         (WebCore::SVGAngle::SVGAngle):
2468         * ksvg2/svg/SVGAngle.h: ditto.
2469         * ksvg2/svg/SVGFEImageElement.cpp: SVG classes don't get context params passed anymore.
2470         (WebCore::SVGFEImageElement::SVGFEImageElement):
2471         * ksvg2/svg/SVGFitToViewBox.cpp: Ditto.
2472         (WebCore::SVGFitToViewBox::SVGFitToViewBox):
2473         * ksvg2/svg/SVGGradientElement.cpp: Ditto.
2474         (WebCore::SVGGradientElement::SVGGradientElement):
2475         * ksvg2/svg/SVGImageElement.cpp: Ditto.
2476         (WebCore::SVGImageElement::SVGImageElement):
2477         * ksvg2/svg/SVGMarkerElement.cpp: Ditto.
2478         (WebCore::SVGMarkerElement::SVGMarkerElement):
2479         (WebCore::SVGMarkerElement::parseMappedAttribute):
2480         * ksvg2/svg/SVGPathElement.cpp: Ditto.
2481         (WebCore::SVGPathElement::pathSegList):
2482         * ksvg2/svg/SVGPathSegList.cpp: Kill context parameter.
2483         (WebCore::SVGPathSegList::SVGPathSegList):
2484         * ksvg2/svg/SVGPathSegList.h:
2485         * ksvg2/svg/SVGPatternElement.cpp: SVG classes don't get context params passed anymore.
2486         (WebCore::SVGPatternElement::SVGPatternElement):
2487         * ksvg2/svg/SVGPointList.cpp: Kill context parameter.
2488         (SVGPointList::SVGPointList):
2489         * ksvg2/svg/SVGPointList.h:
2490         * ksvg2/svg/SVGPolyElement.cpp: SVG classes don't get context params passed anymore.
2491         (WebCore::SVGPolyElement::points):
2492         * ksvg2/svg/SVGPreserveAspectRatio.cpp: Kill context parameter.
2493         (WebCore::SVGPreserveAspectRatio::SVGPreserveAspectRatio):
2494         (WebCore::SVGPreserveAspectRatio::setAlign):
2495         (WebCore::SVGPreserveAspectRatio::setMeetOrSlice):
2496         (WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio):
2497         * ksvg2/svg/SVGPreserveAspectRatio.h:
2498         * ksvg2/svg/SVGSVGElement.cpp: SVG classes don't get cntext params passed anymore.
2499         (WebCore::SVGSVGElement::createSVGAngle):
2500         * ksvg2/svg/SVGStyledTransformableElement.cpp: Ditto.
2501         (WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
2502         * ksvg2/svg/SVGTextElement.cpp: Ditto.
2503         (WebCore::SVGTextElement::SVGTextElement):
2504         * ksvg2/svg/SVGTransformList.cpp: Kill context parameter.
2505         (SVGTransformList::SVGTransformList):
2506         * ksvg2/svg/SVGTransformList.h:
2507
2508 2007-07-10  Nikolas Zimmermann  <zimmermann@kde.org>
2509
2510         Reviewed by Sam.
2511
2512         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11167.
2513
2514         Recognize <textPath> in SVG JS bindings.
2515         Add JSSVGTextPathElement to JSSVGElementWrapperFactory.
2516
2517         Add SVGException.idl just for the JS generation.
2518         Turn on all SVG JS constructors and add them to DOMWindow.idl.
2519
2520         Testcase added: LayoutTests/svg/custom/js-svg-constructors.svg
2521     
2522         * DerivedSources.make: Add JSSVGException.h
2523         * WebCore.xcodeproj/project.pbxproj: Correct paths for DOM/JS*SVGTextPathElement
2524         * bindings/scripts/CodeGeneratorJS.pm: Forward port hash fix from trunk.
2525         * bindings/js/JSSVGElementWrapperFactory.cpp: Add JSSVGTextPathElement support
2526         * ksvg2/svg/SVGComponentTransferFunctionElement.idl:
2527         * ksvg2/svg/SVGTextPathElement.h:
2528         * ksvg2/svg/SVGException.h:
2529         * ksvg2/svg/SVGException.idl: Added.
2530         * ksvg2/svg/SVGFEBlendElement.idl:
2531         * ksvg2/svg/SVGFEColorMatrixElement.idl:
2532         * ksvg2/svg/SVGFECompositeElement.idl:
2533         * ksvg2/svg/SVGFEDisplacementMapElement.idl:
2534         * ksvg2/svg/SVGFETurbulenceElement.idl:
2535         * ksvg2/svg/SVGGradientElement.idl:
2536         * ksvg2/svg/SVGMarkerElement.idl:
2537         * ksvg2/svg/SVGTextContentElement.idl:
2538         * ksvg2/svg/SVGTextPathElement.idl:
2539         * page/DOMWindow.idl: Recognize new js svg constructors.
2540
2541 2007-06-28  Rob Buis  <buis@kde.org>
2542
2543         Reviewed by Maciej.
2544
2545         http://bugs.webkit.org/show_bug.cgi?id=14241
2546         SVG <image> with height or width less than 1 fails to render image
2547
2548         Keep extra member vars to get width/height as floats for accurate
2549         calculations.
2550
2551         * rendering/RenderSVGImage.cpp:
2552         (WebCore::RenderSVGImage::adjustRectsForAspectRatio):
2553         (WebCore::RenderSVGImage::paint):
2554         (WebCore::RenderSVGImage::calcWidth):
2555         (WebCore::RenderSVGImage::calcHeight):
2556         * rendering/RenderSVGImage.h:
2557
2558 2007-06-26  Rob Buis  <buis@kde.org>
2559
2560         Reviewed by Maciej.
2561
2562         http://bugs.webkit.org/show_bug.cgi?id=9976
2563         Fix negative width issue in Hixie's test
2564
2565         Refuse to render zero or negative width/height.
2566
2567         * rendering/RenderSVGContainer.cpp:
2568         (WebCore::RenderSVGContainer::paint):
2569         * rendering/RenderSVGRoot.cpp:
2570         (WebCore::RenderSVGRoot::paint):
2571
2572 2007-06-26  Rob Buis  <buis@kde.org>
2573
2574         Reviewed by Maciej.
2575
2576         http://bugs.webkit.org/show_bug.cgi?id=12062
2577         WebCore does not handle CSS-specified fill fallback correctly
2578
2579         Implement fallback for fill and stroke.
2580
2581         * ksvg2/css/SVGCSSParser.cpp:
2582         (WebCore::CSSParser::parseSVGValue):
2583         * ksvg2/svg/SVGPaint.cpp:
2584         (WebCore::SVGPaint::SVGPaint):
2585         * ksvg2/svg/SVGPaint.h:
2586         * platform/graphics/svg/SVGPaintServer.cpp:
2587         (WebCore::SVGPaintServer::fillPaintServer):
2588         (WebCore::SVGPaintServer::strokePaintServer):
2589
2590 2007-06-20  Rob Buis  <buis@kde.org>
2591
2592         Reviewed by Eric.
2593
2594         http://bugs.webkit.org/show_bug.cgi?id=14157
2595         Rotated shape has wrong gradient rendering
2596
2597         Use the untransformed bbox in objectBoundingBoxMode. Also
2598         don't do objectBoundingBoxMode should the bbox width ort height
2599         be zero.
2600
2601         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
2602         (WebCore::SVGPaintServerGradient::teardown):
2603         (WebCore::SVGPaintServerGradient::renderPath):
2604
2605 2007-06-20  Nikolas Zimmermann  <zimmermann@kde.org>
2606
2607         Reviewed by Eric & Oliver.
2608
2609         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14198
2610
2611         Reeanble <foreignObject>. Explicitely disallow <use> on <foreignObject>
2612         as it may lead to bad problems. 
2613
2614         While I'm at it disallow <use> on any non-svg element.
2615
2616         * bindings/js/JSSVGElementWrapperFactory.cpp:
2617         * bindings/objc/DOM.mm:
2618         (WebCore::createElementClassMap):
2619         * ksvg2/svg/SVGForeignObjectElement.cpp:
2620         * ksvg2/svg/SVGForeignObjectElement.h:
2621         * ksvg2/svg/SVGForeignObjectElement.idl:
2622         * ksvg2/svg/SVGLocatable.cpp:
2623         (WebCore::SVGLocatable::nearestViewportElement):
2624         (WebCore::SVGLocatable::farthestViewportElement):
2625         * ksvg2/svg/SVGUseElement.cpp:
2626         (WebCore::SVGUseElement::buildPendingResource):
2627         * ksvg2/svg/svgtags.in:
2628         * rendering/RenderForeignObject.cpp:
2629
2630 2007-06-19  Rob Buis  <buis@kde.org>
2631
2632         Reviewed by Oliver.
2633
2634         http://bugs.webkit.org/show_bug.cgi?id=14144
2635         All tx/ty (parentX/parentY) usage should be removed from SVG renders
2636         http://bugs.webkit.org/show_bug.cgi?id=13981
2637         <br> prevents click handler from firing
2638
2639         Fix the hit testing issues by making RenderSVGRoot take its m_x, m_y
2640         into account in the absolute transform.
2641
2642         * rendering/RenderPath.cpp:
2643         (WebCore::RenderPath::absoluteRects):
2644         (WebCore::RenderPath::nodeAtPoint):
2645         * rendering/RenderSVGImage.cpp:
2646         (WebCore::RenderSVGImage::nodeAtPoint):
2647         * rendering/RenderSVGRoot.cpp:
2648         (WebCore::RenderSVGRoot::absoluteTransform):
2649         (WebCore::RenderSVGRoot::nodeAtPoint):
2650
2651 2007-06-16  Nikolas Zimmermann  <zimmermann@kde.org>
2652
2653         Reviewed by Eric.
2654
2655         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14015 (SVGTransformList::initialize() has no effect)
2656
2657         Fix SVGTransformList usage in SVG DOM exposed to JS.
2658         This also fixes SVG space invaders including most repainting issues. (still some unrelated ones left)
2659
2660         This is basically the _same_ fix applied to SVGPointList some months ago. We just forgot
2661         to add JSSVGTransformListCustom when switching from SVGTransform* -> SVGTransform (POD type).
2662
2663         * WebCore.xcodeproj/project.pbxproj:
2664         * bindings/js/JSSVGTransformListCustom.cpp: Added.
2665         (WebCore::JSSVGTransformList::clear):
2666         (WebCore::JSSVGTransformList::initialize):
2667         (WebCore::JSSVGTransformList::getItem):
2668         (WebCore::JSSVGTransformList::insertItemBefore):
2669         (WebCore::JSSVGTransformList::replaceItem):
2670         (WebCore::JSSVGTransformList::removeItem):
2671         (WebCore::JSSVGTransformList::appendItem):
2672         * ksvg2/svg/SVGCircleElement.cpp:
2673         (WebCore::SVGCircleElement::notifyAttributeChange):
2674         * ksvg2/svg/SVGEllipseElement.cpp:
2675         (WebCore::SVGEllipseElement::notifyAttributeChange):
2676         * ksvg2/svg/SVGGradientElement.cpp:
2677         (WebCore::SVGGradientElement::SVGGradientElement):
2678         * ksvg2/svg/SVGImageElement.cpp:
2679         (WebCore::SVGImageElement::notifyAttributeChange):
2680         * ksvg2/svg/SVGLineElement.cpp:
2681         (WebCore::SVGLineElement::notifyAttributeChange):
2682         * ksvg2/svg/SVGPathElement.cpp:
2683         (WebCore::SVGPathElement::notifyAttributeChange):
2684         * ksvg2/svg/SVGPatternElement.cpp:
2685         (WebCore::SVGPatternElement::SVGPatternElement):
2686         * ksvg2/svg/SVGPolyElement.cpp:
2687         (WebCore::SVGPolyElement::notifyAttributeChange):
2688         * ksvg2/svg/SVGRectElement.cpp:
2689         (WebCore::SVGRectElement::notifyAttributeChange):
2690         * ksvg2/svg/SVGStyledTransformableElement.cpp:
2691         (WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
2692         (WebCore::SVGStyledTransformableElement::notifyAttributeChange):
2693         * ksvg2/svg/SVGStyledTransformableElement.h:
2694         * ksvg2/svg/SVGTextElement.cpp:
2695         (WebCore::SVGTextElement::SVGTextElement):
2696         * ksvg2/svg/SVGTransformList.cpp:
2697         (SVGTransformList::SVGTransformList):
2698         (SVGTransformList::context):
2699         * ksvg2/svg/SVGTransformList.h:
2700         * ksvg2/svg/SVGTransformList.idl:
2701
2702 2007-06-15  Nikolas Zimmermann  <zimmermann@kde.org>
2703
2704         Reviewed by Eric.
2705
2706         Fixes: http://bugs.webkit.org/show_bug.cgi?id=14155
2707
2708         JSSVGMatrix was not working properly.
2709         "matrix.translate(10, 10)" actually altered 'matrix' instead of returning a
2710         new SVGMatrix object, as described in SVG 1.1 specification.
2711
2712         * bindings/js/JSSVGMatrixCustom.cpp:
2713         (WebCore::JSSVGMatrix::multiply):
2714         (WebCore::JSSVGMatrix::inverse):
2715         (WebCore::JSSVGMatrix::translate):
2716         (WebCore::JSSVGMatrix::scale):
2717         (WebCore::JSSVGMatrix::scaleNonUniform):
2718         (WebCore::JSSVGMatrix::rotate):
2719         (WebCore::JSSVGMatrix::flipX):
2720         (WebCore::JSSVGMatrix::flipY):
2721         (WebCore::JSSVGMatrix::skewX):
2722         (WebCore::JSSVGMatrix::skewY):
2723         * ksvg2/svg/SVGMatrix.idl:
2724
2725 2007-06-15  Eric Seidel  <eric@webkit.org>
2726
2727         Reviewed by Niko.
2728
2729         Fix the release build.
2730
2731         * rendering/SVGRootInlineBox.cpp:
2732         (WebCore::applyTextAnchorToTextChunk):
2733
2734 2007-06-15  Rob Buis  <buis@kde.org>
2735
2736         Reviewed by Eric.
2737
2738         http://bugs.webkit.org/show_bug.cgi?id=14051
2739         <svg:image> fails to position correctly when <svg> is inside an inline <div>
2740
2741         Leave parent translation to the containers.
2742
2743         * rendering/RenderSVGImage.cpp:
2744         (WebCore::RenderSVGImage::paint):
2745
2746 2007-06-15  Nikolas Zimmermann  <zimmermann@kde.org>
2747
2748         Reviewed by Eric.
2749
2750         Fixes: http://bugs.webkit.org/show_bug.cgi?id=13963
2751
2752         Fix SVG space invaders. It actually highlighted a bad problem with our JSSVGPODTypeWrapper's.
2753         Introduce a new "2nd-level cache" for all readwrite POD properties. Subsequent calls to ie.
2754         myRect.x.baseVal.value don't create a new wrapper everytime, but are properly cached now.
2755         This leads to a massive reduction in created wrappers.
2756
2757         * bindings/js/JSSVGMatrixCustom.cpp:
2758         (WebCore::JSSVGMatrix::inverse):
2759         (WebCore::JSSVGMatrix::rotateFromVector):
2760         * bindings/js/JSSVGPODTypeWrapper.h:
2761         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::JSSVGPODTypeWrapperCreatorReadWrite):
2762         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::~JSSVGPODTypeWrapperCreatorReadWrite):
2763         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::operator PODType):
2764         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::commitChange):
2765         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::JSSVGPODTypeWrapperCreatorReadOnly):
2766         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::~JSSVGPODTypeWrapperCreatorReadOnly):
2767         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::operator PODType):
2768         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::commitChange):
2769         (WebCore::JSSVGPODTypeWrapperCreatorForList::JSSVGPODTypeWrapperCreatorForList):
2770         (WebCore::JSSVGPODTypeWrapperCreatorForList::commitChange):
2771         (WebCore::PODTypeReadWriteHashInfo::PODTypeReadWriteHashInfo):
2772         (WebCore::PODTypeReadWriteHashInfo::operator==):
2773         (WebCore::PODTypeReadWriteHashInfoHash::hash):
2774         (WebCore::PODTypeReadWriteHashInfoHash::equal):
2775         (WebCore::PODTypeReadWriteHashInfoTraits::deletedValue):
2776         (WebCore::PODTypeReadWriteHashInfoTraits::emptyValue):
2777         (WebCore::JSSVGPODTypeWrapperCache::readWriteHashMap):
2778         (WebCore::JSSVGPODTypeWrapperCache::lookupOrCreateWrapper):
2779         (WebCore::JSSVGPODTypeWrapperCache::forgetWrapper):
2780         * bindings/js/JSSVGPointListCustom.cpp:
2781         (WebCore::JSSVGPointList::removeItem):
2782         * bindings/scripts/CodeGeneratorJS.pm:
2783
2784 2007-06-14  Eric Seidel  <eric@webkit.org>
2785
2786         Reviewed by Niko.
2787
2788         Text gradients are broken on feature branch
2789         http://bugs.webkit.org/show_bug.cgi?id=14142
2790
2791         * rendering/SVGRenderSupport.cpp:
2792         (WebCore::prepareToRenderSVGContent):
2793         * rendering/SVGRootInlineBox.cpp:
2794         (WebCore::prepareTextRendering):
2795         (WebCore::SVGRootInlineBox::paint):
2796         (WebCore::SVGRootInlineBox::paintInlineBoxes):
2797         (WebCore::SVGRootInlineBox::paintChildInlineTextBox):
2798         (WebCore::SVGRootInlineBox::paintChildInlineFlowBox):
2799         * rendering/SVGRootInlineBox.h:
2800
2801 2007-06-14  Nikolas Zimmermann  <zimmermann@kde.org>
2802
2803         Reviewed by Sam.
2804
2805         Fixes: http://bugs.webkit.org/show_bug.cgi?id=11273
2806
2807         Implement pixelUnitToMillimeterX(), pixelUnitToMillimeterY() in SVGSVGElement.
2808         Use cssPixelsPerInch, just like done in CSSPrimitiveValue & SVGLength.
2809
2810         * ksvg2/svg/SVGSVGElement.cpp:
2811         (WebCore::SVGSVGElement::pixelUnitToMillimeterX):
2812         (WebCore::SVGSVGElement::pixelUnitToMillimeterY):
2813
2814 2007-06-14  Rob Buis  <buis@kde.org>
2815
2816         Reviewed by Eric.
2817
2818         http://bugs.webkit.org/show_bug.cgi?id=9752
2819         %-sizing of elements with a html parent is broken
2820
2821         Calculate width/height for length percentages when embedded in xhtml.
2822
2823         * ksvg2/svg/SVGLength.cpp:
2824         (WebCore::SVGLength::PercentageOfViewport):
2825
2826 2007-06-14  Rob Buis  <buis@kde.org>
2827
2828         Build fix.
2829
2830         * rendering/SVGCharacterLayoutInfo.cpp:
2831
2832 2007-06-14  Rob Buis  <buis@kde.org>
2833
2834         Reviewed by Eric.
2835
2836         http://bugs.webkit.org/show_bug.cgi?id=12207
2837         RenderSVGContainer should be split into multiple classes
2838         http://bugs.webkit.org/show_bug.cgi?id=14125
2839         KCanvasRenderingStyle should be removed
2840
2841         Introduce the RenderSVGRoot class and kill the KCanvas enums.
2842
2843         * WebCore.xcodeproj/project.pbxproj:
2844         * ksvg2/css/SVGRenderStyle.cpp:
2845         (WebCore::SVGRenderStyle::cssPrimitiveToLength):
2846         * ksvg2/css/SVGRenderStyle.h:
2847         * ksvg2/misc/KCanvasRenderingStyle.cpp: Removed.
2848         * ksvg2/misc/KCanvasRenderingStyle.h: Removed.
2849         * ksvg2/svg/SVGMarkerElement.cpp:
2850         (WebCore::SVGMarkerElement::createRenderer):
2851         (WebCore::SVGMarkerElement::notifyAttributeChange):
2852         * ksvg2/svg/SVGSVGElement.cpp:
2853         (WebCore::SVGSVGElement::createRenderer):
2854         * ksvg2/svg/SVGSVGElement.h:
2855         * platform/graphics/svg/SVGPaintServer.cpp:
2856         (WebCore::sharedSolidPaintServer):
2857         (WebCore::SVGPaintServer::fillPaintServer):
2858         (WebCore::SVGPaintServer::strokePaintServer):
2859         (WebCore::dashArrayFromRenderingStyle):
2860         * platform/graphics/svg/SVGPaintServer.h:
2861         * platform/graphics/svg/cg/CgSupport.cpp:
2862         (WebCore::applyStrokeStyleToContext):
2863         * platform/graphics/svg/cg/RenderPathCg.cpp:
2864         (WebCore::RenderPath::strokeContains):
2865         * rendering/RenderPath.cpp:
2866         (WebCore::RenderPath::fillContains):
2867         (WebCore::fillAndStrokePath):
2868         (WebCore::RenderPath::drawMarkersIfNeeded):
2869         * rendering/RenderSVGContainer.cpp:
2870         (WebCore::RenderSVGContainer::requiresLayer):
2871         (WebCore::RenderSVGContainer::layout):
2872         (WebCore::RenderSVGContainer::applyContentTransforms):
2873         (WebCore::RenderSVGContainer::paint):
2874         (WebCore::RenderSVGContainer::setAlign):
2875         (WebCore::RenderSVGContainer::align):
2876         (WebCore::RenderSVGContainer::viewportTransform):
2877         (WebCore::RenderSVGContainer::absoluteTransform):
2878         (WebCore::RenderSVGContainer::getAspectRatio):
2879         * rendering/RenderSVGContainer.h:
2880         * rendering/RenderSVGInlineText.cpp:
2881         * rendering/RenderSVGRoot.cpp: Added.
2882         (WebCore::RenderSVGRoot::RenderSVGRoot):
2883         (WebCore::RenderSVGRoot::~RenderSVGRoot):
2884         (WebCore::RenderSVGRoot::localTransform):
2885         (WebCore::RenderSVGRoot::setLocalTransform):
2886         (WebCore::RenderSVGRoot::requiresLayer):
2887         (WebCore::RenderSVGRoot::lineHeight):
2888         (WebCore::RenderSVGRoot::baselinePosition):
2889         (WebCore::RenderSVGRoot::layout):
2890         (WebCore::RenderSVGRoot::applyContentTransforms):
2891         (WebCore::RenderSVGRoot::paint):
2892         (WebCore::RenderSVGRoot::viewport):
2893         (WebCore::RenderSVGRoot::calcViewport):
2894         (WebCore::RenderSVGRoot::setViewBox):
2895         (WebCore::RenderSVGRoot::viewBox):
2896         (WebCore::RenderSVGRoot::setAlign):
2897         (WebCore::RenderSVGRoot::align):
2898         (WebCore::RenderSVGRoot::viewportTransform):
2899         (WebCore::RenderSVGRoot::absoluteClippedOverflowRect):
2900         (WebCore::RenderSVGRoot::addFocusRingRects):
2901         (WebCore::RenderSVGRoot::absoluteRects):
2902         (WebCore::RenderSVGRoot::absoluteTransform):
2903         (WebCore::RenderSVGRoot::fillContains):
2904         (WebCore::RenderSVGRoot::strokeContains):
2905         (WebCore::RenderSVGRoot::relativeBBox):
2906         (WebCore::RenderSVGRoot::setSlice):
2907         (WebCore::RenderSVGRoot::slice):
2908         (WebCore::RenderSVGRoot::getAspectRatio):
2909         (WebCore::RenderSVGRoot::nodeAtPoint):
2910         * rendering/RenderSVGRoot.h: Added.
2911         (WebCore::RenderSVGRoot::isSVGContainer):
2912         (WebCore::RenderSVGRoot::renderName):
2913         * rendering/RenderSVGTSpan.cpp:
2914         * rendering/RenderSVGText.cpp:
2915         (WebCore::RenderSVGText::relativeBBox):
2916         * rendering/SVGRenderTreeAsText.cpp:
2917         (WebCore::operator<<):
2918         (WebCore::writeStyle):
2919         * rendering/SVGRootInlineBox.cpp:
2920         (WebCore::SVGRootInlineBox::paint):
2921         (WebCore::SVGRootInlineBox::paintInlineBoxes):
2922
2923 2007-06-12  Nikolas Zimmermann  <zimmermann@kde.org>
2924
2925         Reviewed by Eric.
2926
2927         Fix regression: SVG images drawn in the wrong paint phase.
2928
2929         * rendering/RenderSVGImage.cpp:
2930         (WebCore::RenderSVGImage::paint):
2931
2932 2007-06-11  Rob Buis  <buis@kde.org>
2933
2934         Reviewed by weinig.
2935
2936         http://bugs.webkit.org/show_bug.cgi?id=14064
2937         fill property is reported as type SVGColor
2938
2939         Do the checks in the right order.
2940
2941         * bindings/js/kjs_css.cpp:
2942         (KJS::toJS):
2943
2944 2007-06-07  Rob Buis  <buis@kde.org>
2945
2946         Reviewed by Eric.
2947
2948         http://bugs.webkit.org/show_bug.cgi?id=12122
2949         SVGPathElement should not inherit from SVGPathParser
2950
2951         Use path builders for building Path and PathSegLists.
2952
2953         * ksvg2/svg/SVGAnimateMotionElement.cpp:
2954         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
2955         * ksvg2/svg/SVGParserUtilities.cpp:
2956         (WebCore::pointsListFromSVGData):
2957         (WebCore::SVGPathParser::~SVGPathParser):
2958         (WebCore::SVGPathParser::svgLineToHorizontal):
2959         (WebCore::SVGPathParser::svgLineToVertical):
2960         (WebCore::SVGPathParser::svgCurveToCubicSmooth):
2961         (WebCore::SVGPathParser::svgCurveToQuadratic):
2962         (WebCore::SVGPathParser::svgCurveToQuadraticSmooth):
2963         (WebCore::SVGPathParser::svgArcTo):
2964         (WebCore::PathBuilder::build):
2965         (WebCore::PathBuilder::svgMoveTo):
2966         (WebCore::PathBuilder::svgLineTo):
2967         (WebCore::PathBuilder::svgCurveToCubic):
2968         (WebCore::PathBuilder::svgClosePath):
2969         (WebCore::pathFromSVGData):
2970         (WebCore::SVGPathSegListBuilder::build):
2971         (WebCore::SVGPathSegListBuilder::svgMoveTo):
2972         (WebCore::SVGPathSegListBuilder::svgLineTo):
2973         (WebCore::SVGPathSegListBuilder::svgLineToHorizontal):
2974         (WebCore::SVGPathSegListBuilder::svgLineToVertical):
2975         (WebCore::SVGPathSegListBuilder::svgCurveToCubic):
2976         (WebCore::SVGPathSegListBuilder::svgCurveToCubicSmooth):
2977         (WebCore::SVGPathSegListBuilder::svgCurveToQuadratic):
2978         (WebCore::SVGPathSegListBuilder::svgCurveToQuadraticSmooth):
2979         (WebCore::SVGPathSegListBuilder::svgArcTo):
2980         (WebCore::SVGPathSegListBuilder::svgClosePath):
2981         (WebCore::pathSegListFromSVGData):
2982         * ksvg2/svg/SVGParserUtilities.h:
2983         * ksvg2/svg/SVGPathElement.cpp:
2984         (WebCore::SVGPathElement::SVGPathElement):
2985         (WebCore::SVGPathElement::parseMappedAttribute):
2986         * ksvg2/svg/SVGPathElement.h:
2987         * ksvg2/svg/SVGPolyElement.cpp:
2988         (WebCore::SVGPolyElement::SVGPolyElement):
2989         (WebCore::SVGPolyElement::parseMappedAttribute):
2990         * ksvg2/svg/SVGPolyElement.h:
2991
2992 2007-06-06  Eric Seidel  <eric@webkit.org>
2993
2994         Reviewed by olliej.
2995
2996         Add support for tabbing between links in an SVG file
2997         Also add support for drawing a focus ring around focused svg content.
2998         http://bugs.webkit.org/show_bug.cgi?id=8823
2999         
3000         Layout test is blocked by http://bugs.webkit.org/show_bug.cgi?id=14027
3001
3002         * css/svg.css:
3003         * ksvg2/svg/SVGAElement.cpp:
3004         (WebCore::SVGAElement::defaultEventHandler):
3005         (WebCore::SVGAElement::supportsFocus):
3006         (WebCore::SVGAElement::isFocusable):
3007         (WebCore::SVGAElement::isMouseFocusable):
3008         (WebCore::SVGAElement::isKeyboardFocusable):
3009         * ksvg2/svg/SVGAElement.h:
3010
3011 2007-06-06  Eric Seidel  <eric@webkit.org>
3012
3013         Reviewed by olliej.
3014
3015         Make SVG (mostly) support CSS outline property (and thus focus rings)
3016         http://bugs.webkit.org/show_bug.cgi?id=10849
3017
3018         Test: svg/custom/focus-ring.svg
3019
3020         * rendering/RenderPath.cpp:
3021         (WebCore::RenderPath::paint):
3022         (WebCore::RenderPath::addFocusRingRects):
3023         * rendering/RenderPath.h:
3024         * rendering/RenderSVGContainer.cpp:
3025         (WebCore::RenderSVGContainer::paint):
3026         (WebCore::RenderSVGContainer::addFocusRingRects):
3027         * rendering/RenderSVGContainer.h:
3028         * rendering/RenderSVGImage.cpp:
3029         (WebCore::RenderSVGImage::paint):
3030         (WebCore::RenderSVGImage::addFocusRingRects):
3031         * rendering/RenderSVGImage.h:
3032
3033 2007-06-06  Eric Seidel  <eric@webkit.org>
3034
3035         Reviewed by weinig.
3036         
3037         Break out common SVG rendering logic into prepareToRenderSVGContent in SVGRenderSupport
3038
3039         No test cases should be changed by this.
3040
3041         * WebCore.xcodeproj/project.pbxproj:
3042         * rendering/RenderPath.cpp:
3043         (WebCore::fillAndStrokePath):
3044         (WebCore::RenderPath::paint):
3045         * rendering/RenderSVGContainer.cpp:
3046         (WebCore::RenderSVGContainer::RenderSVGContainer):
3047         (WebCore::RenderSVGContainer::requiresLayer):
3048         (WebCore::RenderSVGContainer::isOutermostSVG):
3049         (WebCore::RenderSVGContainer::layout):
3050         (WebCore::RenderSVGContainer::applyContentTransforms):
3051         (WebCore::RenderSVGContainer::paint):
3052         (WebCore::RenderSVGContainer::viewportTransform):
3053         (WebCore::RenderSVGContainer::absoluteTransform):
3054         * rendering/RenderSVGContainer.h:
3055         * rendering/RenderSVGImage.cpp:
3056         (WebCore::RenderSVGImage::paint):
3057         (WebCore::RenderSVGImage::translationForAttributes):
3058         * rendering/SVGRenderSupport.cpp: Added.
3059         (WebCore::prepareToRenderSVGContent):
3060         * rendering/SVGRenderSupport.h: Added.
3061         * rendering/SVGRootInlineBox.cpp:
3062         (WebCore::prepareTextRendering):
3063         (WebCore::SVGRootInlineBox::paint):
3064         (WebCore::SVGRootInlineBox::paintInlineBoxes):
3065
3066 2007-06-06  Rob Buis  <buis@kde.org>
3067
3068         Reviewed by Eric.
3069
3070         http://bugs.webkit.org/show_bug.cgi?id=13976
3071         getPresentationAttribute not implemented
3072
3073         Implement getPresentationAttribute.
3074
3075         * ksvg2/svg/SVGStylable.h:
3076         * ksvg2/svg/SVGStylable.idl:
3077         * ksvg2/svg/SVGStyledElement.cpp:
3078         (WebCore::SVGStyledElement::getPresentationAttribute):
3079         * ksvg2/svg/SVGStyledElement.h:
3080
3081 2007-06-06  Rob Buis  <buis@kde.org>
3082
3083         Reviewed by olliej and eric.
3084
3085         http://bugs.webkit.org/show_bug.cgi?id=12430
3086         SVG has two transform parsers when it should have one.
3087
3088         Refactor SVGTransformable parser so SVGAnimateTransformElement can reuse it better.
3089
3090         * ksvg2/svg/SVGAnimateTransformElement.cpp:
3091         (WebCore::SVGAnimateTransformElement::calculateFromAndToValues):
3092         * ksvg2/svg/SVGAnimateTransformElement.h:
3093         * ksvg2/svg/SVGTransformable.cpp:
3094         (WebCore::):
3095         (WebCore::SVGTransformable::parseTransformValue):
3096         (WebCore::SVGTransformable::parseTransformAttribute):
3097         * ksvg2/svg/SVGTransformable.h:
3098
3099 2007-06-05  Eric Seidel  <eric@webkit.org>
3100
3101         Reviewed by olliej.
3102
3103         Commit files missing from previous commit, oops!
3104         
3105         * platform/graphics/svg/SVGResourceMasker.cpp:
3106         (WebCore::SVGResourceMasker::SVGResourceMasker):
3107         (WebCore::SVGResourceMasker::invalidate):
3108         * platform/graphics/svg/SVGResourceMasker.h:
3109         * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
3110         (WebCore::SVGResourceMasker::applyMask):
3111
3112 2007-06-01  Eric Seidel  <eric@webkit.org>
3113
3114         Reviewed by olliej.
3115
3116         Add support for maskUnits and maskContentUnits
3117         http://bugs.webkit.org/show_bug.cgi?id=12568
3118         
3119         This is covered by the W3C tests (including mask-intro01)
3120
3121         * ksvg2/svg/SVGMaskElement.cpp:
3122         (WebCore::SVGMaskElement::SVGMaskElement):
3123         (WebCore::SVGMaskElement::parseMappedAttribute):
3124         (WebCore::SVGMaskElement::drawMaskerContent):
3125         (WebCore::SVGMaskElement::canvasResource):
3126         (WebCore::SVGMaskElement::notifyAttributeChange):
3127         * ksvg2/svg/SVGMaskElement.h:
3128         * ksvg2/svg/SVGMaskElement.idl:
3129         * platform/graphics/svg/SVGResourceMasker.cpp:
3130         (WebCore::SVGResourceMasker::SVGResourceMasker):
3131         (WebCore::SVGResourceMasker::invalidate):
3132         * platform/graphics/svg/SVGResourceMasker.h:
3133         * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
3134         (WebCore::SVGResourceMasker::applyMask):
3135
3136 2007-06-01  Eric Seidel  <eric@webkit.org>
3137
3138         Reviewed by lars.
3139         
3140         Cursor does not change to hand over links containing <use>
3141         http://bugs.webkit.org/show_bug.cgi?id=12630
3142
3143         Test: manual-tests/svg-link-hover-use.svg
3144
3145         * manual-tests/svg-link-hover-use.svg: Added.
3146         * rendering/RenderLayer.cpp:
3147         (WebCore::RenderLayer::hitTest): use eventParentNode instead of parentNode
3148
3149 2007-06-01  Eric Seidel  <eric@webkit.org>
3150
3151         Reviewed by olliej.
3152
3153         SVG is not correctly respecting scroll during hit testing
3154         http://bugs.webkit.org/show_bug.cgi?id=13083
3155
3156         Test: svg/custom/scroll-hit-test.svg
3157
3158         * rendering/RenderPath.cpp:
3159         (WebCore::RenderPath::nodeAtPoint):
3160         * rendering/RenderSVGContainer.cpp:
3161         (WebCore::RenderSVGContainer::nodeAtPoint):
3162
3163 2007-06-01  Eric Seidel  <eric@webkit.org>
3164
3165         Reviewed by hyatt.
3166
3167         Fix for: http://bugs.webkit.org/show_bug.cgi?id=12187
3168
3169         Tests: fast/dom/attribute-case-sensitivity.html, fast/dom/attribute-case-sensitivity2.xhtml
3170
3171         * dom/Element.cpp:
3172         (WebCore::shouldIgnoreAttributeCase): check to make sure element is an HTMLElement
3173         (WebCore::Element::getAttribute):
3174         (WebCore::Element::setAttribute):
3175         (WebCore::Element::removeAttribute):
3176         (WebCore::Element::getAttributeNode):
3177         (WebCore::Element::hasAttribute):
3178         * dom/NamedAttrMap.cpp:
3179         (WebCore::shouldIgnoreAttributeCase):
3180         (WebCore::NamedAttrMap::getNamedItem):
3181         (WebCore::NamedAttrMap::removeNamedItem):
3182
3183 2007-05-31  Eric Seidel  <eric@webkit.org>
3184
3185         Reviewed by Niko.
3186
3187         Links are activated based on mouse down events instead of click events
3188         http://bugs.webkit.org/show_bug.cgi?id=12570
3189         
3190         Test: svg/custom/prevent-default.svg
3191
3192         * html/HTMLAnchorElement.cpp: use MiddleButton and RightButton instead of 1 and 2
3193         (WebCore::HTMLAnchorElement::defaultEventHandler):
3194         * ksvg2/svg/SVGAElement.cpp:
3195         (WebCore::SVGAElement::defaultEventHandler): make it function more like the HTML side
3196
3197 2007-05-30  Rob Buis  <buis@kde.org>
3198
3199         Reviewed by Darin.
3200
3201         http://bugs.webkit.org/show_bug.cgi?id=11272
3202         Implement currentScale(), setCurrentScale() and currentTranslate() in SVGSVGElement
3203
3204         Allow zooming and panning, thereby implementing the above methods.
3205
3206         * ksvg2/svg/SVGDocument.cpp:
3207         (WebCore::SVGDocument::zoomAndPanEnabled):
3208         (WebCore::SVGDocument::startPan):
3209         (WebCore::SVGDocument::updatePan):
3210         * ksvg2/svg/SVGDocument.h:
3211         * ksvg2/svg/SVGSVGElement.cpp:
3212         (WebCore::SVGSVGElement::currentScale):
3213         (WebCore::SVGSVGElement::setCurrentScale):
3214         (WebCore::SVGSVGElement::currentTranslate):
3215         (WebCore::SVGSVGElement::setCurrentTranslate):
3216         * ksvg2/svg/SVGSVGElement.h:
3217         * page/EventHandler.cpp:
3218         (WebCore::EventHandler::EventHandler):
3219         (WebCore::EventHandler::handleMousePressEvent):
3220         (WebCore::EventHandler::handleMouseMoveEvent):
3221         (WebCore::EventHandler::handleMouseReleaseEvent):
3222         * page/EventHandler.h:
3223         * page/Frame.cpp:
3224         (WebCore::Frame::setZoomFactor):
3225         * rendering/RenderSVGContainer.cpp:
3226         (WebCore::RenderSVGContainer::layout):
3227         (WebCore::RenderSVGContainer::paint):
3228         (WebCore::RenderSVGContainer::absoluteTransform):
3229
3230 2007-05-30  Nikolas Zimmermann  <zimmermann@kde.org>
3231
3232         Reviewed by Oliver.
3233
3234         Fix regression: gradient on fill of text works again!
3235
3236         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
3237         (WebCore::SVGPaintServerGradient::teardown):
3238
3239 2007-05-29  Nikolas Zimmermann  <zimmermann@kde.org>
3240
3241         Reviewed by Oliver.
3242
3243         Fix "jumpy" selection by correcting the way svgCharacterHitsPosition works.
3244         I basically mixed up the "closest character to position" logic.
3245
3246         * rendering/RenderSVGInlineText.cpp: Only call svgCharacterHitsPosition for the firstTextBox -> it handles all children anyway.
3247         (WebCore::RenderSVGInlineText::positionForCoordinates):
3248         * rendering/SVGInlineTextBox.cpp:
3249         (WebCore::SVGInlineTextBox::closestCharacterToPosition): Fix logic - was really broken!
3250         (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
3251         (WebCore::SVGInlineTextBox::nodeAtPoint): Do not use svgCharacterHitsPosition here - too accurate!
3252                                                   We don't want to loose the 'text' cursor if one is just between two characters.
3253
3254 2007-05-24  Nikolas Zimmermann  <zimmermann@kde.org>
3255
3256         Reviewed by Oliver.
3257
3258         Add new code path dumping SVG text engine specific layout test results.
3259         Finally the dumped results are actually accurate and respond to the
3260         rendered glyphs. This has never been correct so far.
3261
3262         * rendering/RenderTreeAsText.cpp:
3263         (WebCore::quoteAndEscapeNonPrintables):
3264         (WebCore::write):
3265         * rendering/RenderTreeAsText.h:
3266         * rendering/SVGInlineTextBox.h:
3267         * rendering/SVGRenderTreeAsText.cpp:
3268         (WebCore::operator<<):
3269         (WebCore::containsInlineTextBox):
3270         (WebCore::writeSVGInlineText):
3271         (WebCore::write):
3272         * rendering/SVGRenderTreeAsText.h:
3273         * rendering/SVGRootInlineBox.cpp:
3274         (WebCore::topLeftPositionOfCharacterRange):
3275         (WebCore::cummulatedWidthOfInlineBoxCharacterRange):
3276         (WebCore::cummulatedHeightOfInlineBoxCharacterRange):
3277         (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
3278         * rendering/SVGRootInlineBox.h:
3279
3280 2007-05-20  Nikolas Zimmermann  <zimmermann@kde.org>
3281
3282         Reviewed by Oliver.
3283
3284         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12698 (SVG text needs a special per-character layout mode.)
3285
3286         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6420 (<text> does not respect x,y offset lists)
3287         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6425 (<textPath> element not implemented)
3288         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6481 (text-anchor (vertical) does not work in SVG text elements)
3289         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)
3290         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12376 (glyph rotation in text/tspan not implemented)
3291         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12377 (multiple dx and dy attributes not respected in text and tspan elements)
3292         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12574 (<text> does not handle baseline-shift correctly)
3293
3294         Introduce new experimental SVG text engine - after 5+ months of hacking.
3295
3296         Add textPath support, absolute positioned SVG characters, vertical text,
3297         text rotation, baseline-shift, text chunks spanning <tspan>'s etc.
3298
3299         Check my Flickr page for screenshots: http://www.flickr.com/photos/43532360@N00 (a bit outdated)
3300
3301         Fixes/Improvments:
3302         - animate-elem-40-t.svg (x/y lists respected on <text> now)
3303         - interact-cursor-01-f.svg (text-anchor correctly handled in <text><a> situations)
3304         - struct-frag-05-t.svg (ditto)
3305         - text-align-02-b.svg (baseline-shift recognized)
3306         - text-align-04-b.svg (textPath displayed)
3307         - text-align-05-b.svg (text-anchor & vertical text handled correctly)
3308         - text-align-06-b.svg (baseline-shift & vertical text handled correctly)
3309         - text-deco-01-b.svg (longstanding regression fixed for text-decoration)
3310         - text-path-01-b.svg (all textPaths are displayed correctly)
3311         - text-text-04-t.svg (all x/y/dx/dy list situations work fine now)
3312         - text-text-05-t.svg (ditto)
3313         - text-text-06-t.svg (ditto)
3314         - text-text-07-t.svg (rotation works fine now)
3315         - text-tspan-01-b.svg (per character placment works great in all situations)
3316
3317         Most files using text-anchor show 0.5-1% differences because the shift offset calculation is more correct now.
3318
3319         Regressions:    
3320         - Gradient on fill is broken (on stroke works) -> this is a regression (easy to fix soon)
3321           js-late-gradient-and-object-creation.svg & js-late-gradient-creation.svg & pservers-grad-08-b.svg & pservers-grad-11-b.svg are broken
3322
3323         Complete list of missing things:
3324         - 'textLength' / 'lengthAdjust' properties on <text>/<tspan> not yet handled.
3325         - 'dominant-baseline / alignment-baseline missing (neither FF/Opera/Batik support this)
3326         - 'kerning' property ignored
3327         - 'glyph-orientation-vertical' / 'glyph-orientation-horizontal' not yet handled.
3328         - Hebrew text selection broken (discontinous selection doesn't work)
3329         - <textPath> doesn't yet participate in text selection
3330         - <textPath> 'text-anchor' handling is flawed
3331         - <textPath> doesn't yet handle 'method' / 'spacing' properties
3332         - 'letter-spacing' / 'word-spacing' is still handled in the "legacy" mode. That means it only works
3333           for simple cases -> won't work for textPath's for instance
3334         - SVG fonts (<altGlyph>, <font> ..... tons more)
3335
3336         * DerivedSources.make: Add DOM/JSSVGTextPathElement.h to build
3337         * WebCore.xcodeproj/project.pbxproj: Add textPath related files to build
3338         * css/svg.css: Correct white-space default setting for textPath element
3339         * ksvg2/svg/SVGFEFloodElement.cpp: Missing include (experimental build was broken)
3340         * ksvg2/svg/SVGTSpanElement.cpp: Recognize textPath children.
3341         (WebCore::SVGTSpanElement::childShouldCreateRenderer):
3342         * ksvg2/svg/SVGTextElement.cpp: Ditto.
3343         (WebCore::SVGTextElement::childShouldCreateRenderer):
3344         * ksvg2/svg/SVGTextPathElement.cpp: Added.
3345         (WebCore::SVGTextPathElement::SVGTextPathElement):
3346         (WebCore::SVGTextPathElement::~SVGTextPathElement):
3347         (WebCore::SVGTextPathElement::parseMappedAttribute):
3348         (WebCore::SVGTextPathElement::createRenderer):
3349         (WebCore::SVGTextPathElement::childShouldCreateRenderer):
3350         (WebCore::SVGTextPathElement::insertedIntoDocument):
3351         (WebCore::SVGTextPathElement::buildPendingResource):
3352         (WebCore::SVGTextPathElement::attach):
3353         * ksvg2/svg/SVGTextPathElement.h: Added.
3354         (WebCore::):
3355         (WebCore::SVGTextPathElement::rendererIsNeeded):
3356         (WebCore::SVGTextPathElement::contextElement):
3357         * ksvg2/svg/SVGTextPathElement.idl: Added.
3358         * ksvg2/svg/svgtags.in: Add textPath tag.
3359         * rendering/InlineTextBox.cpp: Make two methods non static to share with SVG.
3360         (WebCore::correctedTextColor):
3361         (WebCore::updateGraphicsContext):
3362         * rendering/InlineTextBox.h:
3363         * rendering/RenderSVGInlineText.cpp: Special positionForCoordinates() implementation. Stub caretRect() for SVG.
3364         (WebCore::RenderSVGInlineText::selectionRect):
3365         (WebCore::RenderSVGInlineText::caretRect):
3366         (WebCore::RenderSVGInlineText::positionForCoordinates):
3367         * rendering/RenderSVGInlineText.h:
3368         * rendering/RenderSVGTextPath.cpp: Added.
3369         (WebCore::RenderSVGTextPath::RenderSVGTextPath):
3370         (WebCore::RenderSVGTextPath::layoutPath):
3371         (WebCore::RenderSVGTextPath::setLayoutPath):
3372         (WebCore::RenderSVGTextPath::startOffset):
3373         (WebCore::RenderSVGTextPath::setStartOffset):
3374         (WebCore::RenderSVGTextPath::exactAlignment):
3375         (WebCore::RenderSVGTextPath::setExactAlignment):
3376         (WebCore::RenderSVGTextPath::stretchMethod):
3377         (WebCore::RenderSVGTextPath::setStretchMethod):
3378         (WebCore::RenderSVGTextPath::absoluteRects):
3379         * rendering/RenderSVGTextPath.h: Added.
3380         (WebCore::RenderSVGTextPath::renderName):
3381         * rendering/RenderText.cpp: Fix indention and use StringImpl::empty() instead of creating an empty string manually.
3382         (WebCore::RenderText::setTextInternal):
3383         * rendering/RootInlineBox.h: Add virtual no-op computePerCharacterLayoutInformation().
3384         (WebCore::RootInlineBox::computePerCharacterLayoutInformation):
3385         * rendering/SVGCharacterLayoutInfo.cpp: Added.
3386         (WebCore::calculateBaselineShift):
3387         (WebCore::SVGCharacterLayoutInfo::SVGCharacterLayoutInfo):
3388         (WebCore::SVGCharacterLayoutInfo::xValueAvailable):
3389         (WebCore::SVGCharacterLayoutInfo::yValueAvailable):
3390         (WebCore::SVGCharacterLayoutInfo::dxValueAvailable):
3391         (WebCore::SVGCharacterLayoutInfo::dyValueAvailable):
3392         (WebCore::SVGCharacterLayoutInfo::angleValueAvailable):
3393         (WebCore::SVGCharacterLayoutInfo::baselineShiftValueAvailable):
3394         (WebCore::SVGCharacterLayoutInfo::xValueNext):
3395         (WebCore::SVGCharacterLayoutInfo::yValueNext):
3396         (WebCore::SVGCharacterLayoutInfo::dxValueNext):
3397         (WebCore::SVGCharacterLayoutInfo::dyValueNext):
3398         (WebCore::SVGCharacterLayoutInfo::angleValueNext):
3399         (WebCore::SVGCharacterLayoutInfo::baselineShiftValueNext):
3400         (WebCore::SVGCharacterLayoutInfo::processedSingleCharacter):
3401         (WebCore::SVGCharacterLayoutInfo::processedChunk):
3402         (WebCore::SVGCharacterLayoutInfo::nextPathLayoutPointAndAngle):
3403         (WebCore::SVGCharacterLayoutInfo::inPathLayout):
3404         (WebCore::SVGCharacterLayoutInfo::setInPathLayout):
3405         (WebCore::SVGCharacterLayoutInfo::addLayoutInformation):
3406         (WebCore::SVGCharacterLayoutInfo::addStackContent):
3407         (WebCore::SVGCharacterLayoutInfo::xStackWalk):
3408         (WebCore::SVGCharacterLayoutInfo::yStackWalk):
3409         (WebCore::SVGCharacterLayoutInfo::dxStackWalk):
3410         (WebCore::SVGCharacterLayoutInfo::dyStackWalk):
3411         (WebCore::SVGCharacterLayoutInfo::angleStackWalk):
3412         (WebCore::SVGCharacterLayoutInfo::baselineShiftStackWalk):
3413         * rendering/SVGCharacterLayoutInfo.h: Added.
3414         (WebCore::PositionedVector::Type):
3415         (WebCore::PositionedVector::position):
3416         (WebCore::PositionedVector::advance):
3417         (WebCore::PositionedVector::valueAtCurrentPosition):
3418         (WebCore::SVGCharacterLayoutInfo::):
3419         (WebCore::SVGInlineBoxCharacterRange::SVGInlineBoxCharacterRange):
3420         (WebCore::SVGInlineBoxCharacterRange::isOpen):
3421         (WebCore::SVGInlineBoxCharacterRange::isClosed):
3422         (WebCore::SVGTextChunk::SVGTextChunk):
3423         (WebCore::SVGTextChunkLayoutInfo::SVGTextChunkLayoutInfo):
3424         * rendering/SVGInlineFlowBox.cpp: Make all methods no-ops when using the new text engine.
3425         (WebCore::SVGInlineFlowBox::paint):
3426         (WebCore::SVGInlineFlowBox::placeBoxesHorizontally):
3427         (WebCore::SVGInlineFlowBox::verticallyAlignBoxes):
3428         * rendering/SVGInlineFlowBox.h:
3429         * rendering/SVGInlineTextBox.cpp: Add new text selection / character hit detection related code.
3430         (WebCore::SVGInlineTextBox::SVGInlineTextBox):
3431         (WebCore::SVGInlineTextBox::selectionTop):
3432         (WebCore::SVGInlineTextBox::svgRootInlineBox):
3433         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
3434         (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
3435         (WebCore::SVGInlineTextBox::offsetForPosition):
3436         (WebCore::SVGInlineTextBox::positionForOffset):
3437         (WebCore::SVGInlineTextBox::nodeAtPoint):
3438         (WebCore::SVGInlineTextBox::selectionRect):
3439         * rendering/SVGInlineTextBox.h:
3440         * rendering/SVGRootInlineBox.cpp: The heart of the new text engine lives here.
3441         (WebCore::prepareTextRendering):
3442         (WebCore::isVerticalWritingMode):
3443         (WebCore::SVGRootInlineBox::paint):
3444         (WebCore::SVGRootInlineBox::placeBoxesHorizontally):
3445         (WebCore::SVGRootInlineBox::verticallyAlignBoxes):
3446         (WebCore::SVGRootInlineBox::cummulatedWidthOfSelectionRange):
3447         (WebCore::cummulatedWidthOfInlineBoxCharacterRange):
3448         (WebCore::cummulatedWidthOfTextChunk):
3449         (WebCore::cummulatedHeightOfTextChunk):
3450         (WebCore::applyTextAnchorToTextChunk):
3451         (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
3452         (WebCore::totalAdvanceOfInlineTextBox):
3453         (WebCore::totalAdvanceOfInlineBox):
3454         (WebCore::SVGRootInlineBox::buildLayoutInformation):
3455         (WebCore::SVGRootInlineBox::layoutInlineBoxes):
3456         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
3457         (WebCore::SVGRootInlineBox::buildTextChunks):
3458         (WebCore::SVGRootInlineBox::svgTextChunks):
3459         (WebCore::SVGRootInlineBox::layoutTextChunks):
3460         (WebCore::SVGRootInlineBox::paintSelectionForTextBox):
3461         (WebCore::SVGRootInlineBox::paintInlineBoxes):
3462         (WebCore::SVGRootInlineBox::paintCharacterRangeForTextBox):
3463         * rendering/SVGRootInlineBox.h:
3464         * rendering/bidi.cpp: Call the new computePerCharacterLayoutInformation() method.
3465         (WebCore::RenderBlock::layoutInlineChildren):
3466
3467 2007-05-10  Eric Seidel  <eric@webkit.org>
3468
3469         Reviewed by olliej.
3470
3471         http://bugs.webkit.org/show_bug.cgi?id=11931
3472         PathCG fails to hit on unclosed sub-paths
3473
3474         Test: svg/custom/hit-test-unclosed-subpaths.svg
3475
3476         * platform/graphics/cg/PathCG.cpp:
3477         (WebCore::copyClosingSubpathsApplierFunction):
3478         (WebCore::copyCGPathClosingSubpaths):
3479         (WebCore::Path::contains): use new copy & close function
3480
3481 === End merge of feature-branch 11-11-2007 ===
3482
3483 2007-10-11  Jon Honeycutt  <jhoneycutt@apple.com>
3484
3485         Reviewed by Anders.
3486
3487         Handle a race condition that could arise if a plugin was loaded while it
3488         was scheduled to be freed: check whether the timer that schedules
3489         library frees is active in PluginPackageWin::load().
3490
3491         * plugins/win/PluginPackageWin.cpp:
3492         (WebCore::PluginPackageWin::freeLibrarySoon): Added assertions
3493         (WebCore::PluginPackageWin::freeLibraryTimerFired): Added assertion
3494         (WebCore::PluginPackageWin::load): If we are scheduled to free this
3495         library, cancel the timer, and don't call LoadLibrary
3496
3497 2007-10-11  Justin Garcia  <justin.garcia@apple.com>
3498
3499         Reviewed by Harrison.
3500
3501         <rdar://problem/5483567> REGRESSION (Tiger only): Pasting words copied from TextEdit in Mail adds extra newline
3502         
3503         * editing/ReplaceSelectionCommand.cpp:
3504         (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Added.
3505         We would like to insert the fragment as-is if possible, but AppKit on Tiger
3506         creates fragments from RTF data that have carriage returns and spaces at the
3507         beginning and end, and those need to be removed since they'll interfere with 
3508         paragraph merging.
3509         (WebCore::ReplaceSelectionCommand::doApply):
3510         * editing/ReplaceSelectionCommand.h:
3511
3512 2007-10-10  Justin Garcia  <justin.garcia@apple.com>
3513
3514         Reviewed by Maciej.
3515         
3516         <rdar://problem/5521237> Pasting a word copied from TextEdit after a regular, breaking space, adds a leading newline
3517         
3518         * editing/CompositeEditCommand.cpp:
3519         (WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit):
3520         Fixed a typo.
3521
3522 2007-10-10  Jon Honeycutt  <jhoneycutt@apple.com>
3523
3524         Reviewed by Darin.
3525
3526         <rdar://5530519> REGRESSION (303-310A18): Crash when closing tab with
3527         pdf file (Reader 7 only)
3528
3529         Reader 7 subclasses its parent window, so posting a WM_DESTROY to this
3530         window puts us in plugin code. When the plugin forwards the message
3531         back to the original window proc, and we free the plugin library from
3532         there, we will jump back to code we just freed when we return, so delay 
3533         calling FreeLibrary at least until the next message loop
3534
3535         * plugins/win/PluginPackageWin.cpp:
3536         (WebCore::PluginPackageWin::freeLibrarySoon): Start a timer to free the
3537         plugin library
3538         (WebCore::PluginPackageWin::freeLibraryTimerFired): Free the library
3539         (WebCore::PluginPackageWin::PluginPackageWin): Initialize the timer that
3540         will free this library
3541         (WebCore::PluginPackageWin::unloadWithoutShutdown): Call
3542         freeLibrarySoon()
3543         * plugins/win/PluginPackageWin.h: Added m_freeLibraryTimer
3544
3545 2007-10-11  Ada Chan  <adachan@apple.com>
3546
3547         <rdar://problem/5534421> 
3548         Switched to using wkGetDefaultHTTPCookieStorage() and removed some cookie-related
3549         methods we no longer need in ResourceHandle.
3550         
3551         <rdar://problem/5244261> "Never" cookie policy was ignored on windows
3552         Need to set the cookie accept policy on each CFURLRequest.
3553         
3554         Reviewed by Oliver.
3555
3556         * platform/network/ResourceHandle.h:
3557         * platform/network/cf/ResourceHandleCFNet.cpp:
3558         (WebCore::makeFinalRequest):
3559         * platform/network/cf/ResourceRequestCFNet.cpp:
3560         (WebCore::ResourceRequest::doUpdatePlatformRequest):
3561         * platform/network/win/CookieJarWin.cpp:
3562         (WebCore::setCookies):
3563         (WebCore::cookies):
3564         (WebCore::cookiesEnabled):
3565
3566 2007-10-11  Mark Rowe  <mrowe@apple.com>
3567
3568         Reviewed by Tim Hatcher.
3569
3570         Fix for <rdar://problem/5488678>.  Disable debugging symbols in production builds for 10.4
3571         PowerPC to prevent a huge STABS section from being generated.
3572
3573         * Configurations/Base.xcconfig:
3574
3575 2007-10-11  Lars Knoll  <lars@trolltech.com>
3576
3577         Reviewed by Erik Seidel and Simon.
3578
3579         Ensure that setting innerHTML on an element doesn't do
3580         weird things with the document.
3581         Fixes most issues with http://bugs.webkit.org/show_bug.cgi?id=15456
3582
3583         Test: fast/innerHTML/innerHTML-changing-document-properties.xhtml
3584
3585         * dom/XMLTokenizer.cpp:
3586         (WebCore::XMLTokenizer::write):
3587         (WebCore::XMLTokenizer::startDocument):
3588         (WebCore::XMLTokenizer::end):
3589         (WebCore::):
3590
3591 2007-10-10  George Staikos  <staikos@kde.org>
3592
3593         Reviewed by Adam Roben.
3594
3595         Fix Qt build on Win32 with VS2005.
3596
3597         * loader/FTPDirectoryDocument.cpp:
3598         (WebCore::processFileDateString):
3599         * loader/FTPDirectoryParser.cpp:
3600         (WebCore::parseOneFTPLine):
3601
3602 2007-10-10  Alice Liu  <alice.liu@apple.com>
3603
3604         Reviewed by Geoff Garen.
3605
3606         Fixed <rdar://5464402> Crash when running fast/frames/onload-remove-iframe-crash.html in DRT
3607         createFrame() now returns a RefPtr instead of a raw Frame pointer. 
3608         Making this change improves the way we handle frames on Windows webkit. 
3609
3610         * loader/FrameLoader.cpp:
3611         (WebCore::FrameLoader::loadSubframe):
3612         * loader/FrameLoaderClient.h:
3613         * platform/graphics/svg/SVGImageEmptyClients.h:
3614         (WebCore::SVGEmptyFrameLoaderClient::createFrame):
3615
3616 2007-10-10  Simon Hausmann  <hausmann@kde.org>
3617
3618         Reviewed by Lars.
3619
3620         Fix compilation using gcc 4.3. Header files have been reorganized and as a result some extra
3621         includes are needed for INT_MAX, std::auto_ptr and the like.
3622
3623         WARNING: NO TEST CASES ADDED OR CHANGED
3624
3625         * bridge/AXObjectCache.h:
3626         * ksvg2/misc/SVGDocumentExtensions.h:
3627         * platform/Base64.cpp:
3628         * platform/graphics/svg/SVGPaintServerPattern.h:
3629         * platform/graphics/svg/SVGResourceMasker.h:
3630
3631 2007-10-08  Sam Weinig  <sam@webkit.org>
3632
3633         Reviewed by Steve Falkenburg.
3634
3635         Fix for <rdar://problem/5519698> CrashTracer: [USER] 47 crashes in Safari at com.apple.WebCore: WebCore::XMLTokenizer::lineNumber const + 9
3636
3637         Test: fast/innerHTML/innerHTML-script-tag-crash.xhtml
3638
3639         * dom/XMLTokenizer.cpp:
3640         (WebCore::XMLTokenizer::lineNumber): Return 1 when there is no context.
3641         (WebCore::XMLTokenizer::columnNumber): ditto.
3642
3643 2007-10-08  Adam Roben  <aroben@apple.com>
3644
3645         Fix Bug 15305: Crash when dragging an image when "load images automatically" preference is off
3646
3647         http://bugs.webkit.org/show_bug.cgi?id=15305
3648         <rdar://problem/5524774>
3649
3650         Reviewed by Eric Seidel.
3651
3652         No test possible: to reproduce this you have to change a WebKit
3653         preference and reload the page. See
3654         http://bugs.webkit.org/show_bug.cgi?id=15414
3655
3656         * platform/win/ClipboardWin.cpp:
3657         (WebCore::createGlobalImageFileDescriptor): ASSERT that we have an
3658         image and that it has a SharedBuffer.
3659         (WebCore::writeImageToDataObject): The fix: null-check imageBuffer.
3660
3661 2007-10-05  Geoffrey Garen  <ggaren@apple.com>
3662
3663         Reviewed by Sam Weinig.
3664         
3665         New fix for <rdar://problem/5522487> REGRESSION: With JavaScript 
3666         disabled, any page load causes a crash in PropertyMap::put
3667         
3668         Explicitly remove the "document" property from the window. The old 
3669         solution would leave a stale "document" property around after JavaScript
3670         was re-enabled.
3671
3672         The architecture for disabling JavaScript could use some consolidation. 
3673         It seems wrong that a script proxy even exists when JavaScript is 
3674         disabled. It also seems wrong that so many individual call sites are 
3675         responsible for checking whether JavaScript is enabled. I've filed a 
3676         bug about this: http://bugs.webkit.org/show_bug.cgi?id=15385.
3677
3678         * bindings/js/kjs_proxy.cpp:
3679         (WebCore::KJSProxy::clearDocumentWrapper):
3680         * bindings/js/kjs_proxy.h:
3681         * page/Frame.cpp:
3682         (WebCore::Frame::setDocument):
3683
3684 2007-10-05  Jon Honeycutt  <jhoneycutt@apple.com>
3685
3686         Reviewed by Anders.
3687
3688         <rdar://5520913> Ticketmaster.com doesn't display correctly (Flash
3689         related?)
3690
3691         The plugin is requesting files that don't exist on the server, and
3692         we are passing the 404 error page to the plugin. This change cancels the
3693         stream if the response code indicates a failure.
3694
3695         This is a port of the safari / mac code.
3696
3697         * loader/win/NetscapePlugInStreamLoaderWin.cpp:
3698         (WebCore::NetscapePlugInStreamLoader::didReceiveResponse): If the
3699         response code indicates a failure, cancel the stream
3700
3701 2007-10-05  Geoffrey Garen  <ggaren@apple.com>
3702
3703         Reviewed by Sam Weinig.
3704         
3705         Fixed <rdar://problem/5522487> REGRESSION: With JavaScript disabled, 
3706         any page load causes a crash in PropertyMap::put
3707         
3708         The problem was that we were using JavaScript when JavaScript was
3709         disabled. The architecture for disabling JavaScript could use some
3710         consolidation, but this is the simplest, safest change for now.
3711         
3712         Currently passing layout tests still pass.
3713
3714         * bindings/js/kjs_proxy.cpp:
3715         (WebCore::KJSProxy::updateDocumentWrapper):
3716
3717 2007-10-04  Beth Dakin  <bdakin@apple.com>
3718
3719         Reviewed by John Sullivan.
3720
3721         Fix for <rdar://problem/5441823> REGRESSION (r25142, Tiger only): 
3722         Vertical scroll bar not redrawn properly when going back in history 
3723         (15033)
3724
3725         This fix if-defs r25142 to be Leopard-only since it causes 
3726         correctness issues on Tiger and does not seem to have any 
3727         performance impact on Tiger either.
3728
3729         * loader/FrameLoader.cpp:
3730         (WebCore::FrameLoader::transitionToCommitted):
3731
3732 2007-10-05  Ada Chan  <adachan@apple.com>
3733
3734         <rdar://problem/5436617> Favicons sometimes don't show up even when they are
3735         in the database
3736         - A client can try to retain an icon for a page before the database is actually
3737         opened.  Since isOpened() is not a requirement to retain an icon, remove the check
3738         for that.  Instead, we'll check to make sure whether this database is enabled
3739         before proceeding.
3740
3741         Reviewed by Brady.
3742
3743         * loader/icon/IconDatabase.cpp:
3744         (WebCore::IconDatabase::retainIconForPageURL):
3745         (WebCore::IconDatabase::releaseIconForPageURL): only check isOpen() before we
3746         schedule for a sync.
3747
3748 2007-10-05  Lars Knoll  <lars@trolltech.com>
3749
3750         Reviewed by olliej.
3751
3752         fix a hang in editing/selection/extend-by-word-002.html
3753
3754         * platform/qt/TextBreakIteratorQt.cpp:
3755         (WebCore::CharBreakIteratorQt::next):
3756         (WebCore::characterBreakIterator):
3757
3758 2007-10-04  Mark Rowe  <mrowe@apple.com>
3759
3760         Reviewed by Oliver.
3761
3762         Switch to default level of debugging symbols to resolve <rdar://problem/5488678>.
3763         The "full" level appears to offer no observable benefits even though the documentation
3764         suggests it be used for dead code stripping.  This should also decrease link times.
3765
3766         * Configurations/Base.xcconfig:
3767
3768 2007-10-04  Adele Peterson  <adele@apple.com>
3769
3770         Reviewed by Darin.
3771
3772         WebCore part of fix for <rdar://problem/5369017> REGRESSION: Can't tab to webview that doesn't have editable content
3773
3774         * page/FocusController.h: Added FocusDirection argument.
3775         * page/FocusController.cpp: (WebCore::FocusController::setInitialFocus):
3776           Use FocusDirection argument instead of key modifiers to send direction to advanceFocus.
3777         * WebCore.exp: Updated symbol.
3778
3779 2007-10-04  Kevin Decker  <kdecker@apple.com>
3780
3781         Reviewed by John.
3782         
3783         <rdar://problems/5516309>
3784         
3785         * page/FrameView.cpp:
3786         (WebCore::FrameView::updateControlTints): Avoid the expense of updating tints on controls for the
3787         empty-window case since this can take a significant amount of time even on windows that have no
3788         content at all. Note this fix specifically optimizes the empty window/tab case; for a more broad
3789         fix John wrote up rdar://problem/5521050.
3790
3791 2007-10-04  Darin Adler  <darin@apple.com>
3792
3793         * page/Frame.h: Put functions into categories to indicate other classes
3794         we'd like to move them into in the future. Just organizational -- no code
3795         change.
3796
3797 2007-10-04  Lars Knoll  <lars@trolltech.com>
3798
3799         Reviewed by maciej.
3800
3801         fix a crash in the FrameLoader that can happen under certain
3802         conditions in the Qt port.
3803
3804         Test: fast/loader/iframe-crash-on-missing-image.xhtml
3805
3806         * loader/FrameLoader.cpp:
3807         (WebCore::FrameLoader::receivedMainResourceError):
3808
3809 2007-10-03  Alp Toker  <alp@atoker.com>
3810
3811         Reviewed by Adam.
3812
3813         http://bugs.webkit.org/show_bug.cgi?id=14726
3814         [gtk] API design. Mapping the WebView delegates to signals.
3815
3816         Change the API namespace of the Gtk+ port from 'WebKitGtk' to 'WebKit'.
3817
3818         * WebCore.pro:
3819
3820 2007-10-03  Alp Toker  <alp@atoker.com>
3821
3822         Reviewed by Eric.
3823
3824         http://bugs.webkit.org/show_bug.cgi?id=14129
3825         [CAIRO] Support the canvas element
3826
3827         Add a new canvas implementation using Cairo for rendering.
3828
3829         * html/CanvasGradient.cpp:
3830         (WebCore::CanvasGradient::CanvasGradient):
3831         (WebCore::CanvasGradient::~CanvasGradient):
3832         (WebCore::CanvasGradient::addColorStop):
3833         (WebCore::CanvasGradient::platformShading):
3834         * html/CanvasGradient.h:
3835         * html/CanvasRenderingContext2D.cpp:
3836         (WebCore::CanvasRenderingContext2D::setFillStyle):
3837         (WebCore::CanvasRenderingContext2D::fill):
3838         (WebCore::CanvasRenderingContext2D::stroke):
3839         (WebCore::CanvasRenderingContext2D::fillRect):
3840         (WebCore::CanvasRenderingContext2D::drawImage):
3841         (WebCore::CanvasRenderingContext2D::applyStrokePattern):
3842         * html/CanvasStyle.cpp:
3843         (WebCore::CanvasStyle::applyStrokeColor):
3844         * html/HTMLCanvasElement.cpp:
3845         (WebCore::HTMLCanvasElement::~HTMLCanvasElement):
3846         (WebCore::HTMLCanvasElement::reset):
3847         (WebCore::HTMLCanvasElement::paint):
3848         (WebCore::HTMLCanvasElement::createDrawingContext):
3849         (WebCore::HTMLCanvasElement::createPlatformImage):
3850         * html/HTMLCanvasElement.h:
3851
3852 2007-10-03  Lars Knoll  <lars@trolltech.com>
3853
3854         Signed off by olliej.
3855
3856         move WebKitQt to WebKit/qt for consistency with the other ports.
3857
3858         WARNING: NO TEST CASES ADDED OR CHANGED
3859
3860         * WebCore.pro:
3861
3862 2007-10-02  Sam Weinig  <sam@webkit.org>
3863
3864         Reviewed by Oliver and Adam.
3865
3866         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)
3867
3868         Use CoreFoundation to do the conversion from path to URL, as the Windows API was not
3869         correctly converting to UTF-8 and we know CFURL will.
3870
3871         * platform/win/ClipboardUtilitiesWin.cpp:
3872         (WebCore::urlFromPath):
3873         (WebCore::getURL):
3874
3875 2007-10-02  Tristan O'Tierney  <tristan@apple.com>
3876
3877         Reviewed by Darin Adler.
3878
3879         <rdar://problem/5511842> REGRESSION: Webkit stops responding while loading Apple Store Canada page (15304)
3880         
3881         Included the NSSynchronousURLConnection_PrivateMode mode, in addition to the default run loop modes
3882         as an acceptable mode when using performSelectorOnMainThread with our syncronous url callbacks.
3883
3884         * platform/network/mac/ResourceHandleMac.mm:
3885         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
3886         Added NSSynchronousURLConnection_PrivateMode to the list of accepted modes.
3887
3888 2007-10-02  Darin Adler  <darin@apple.com>
3889
3890         Reviewed by Adam.
3891
3892         - add support for GDI objects to OwnPtr; I plan to use this
3893           to fix some GDI handle leaks
3894
3895         * css/CSSGrammar.y: Change parser to avoid macro that conflicts
3896         with macro defined in Windows system headers: FLOAT. This is needed
3897         because OwnPtr.h will now include <windows.h>.
3898         * css/CSSParser.cpp: (WebCore::CSSParser::lex): Ditto.
3899         * css/tokenizer.flex: Ditto.
3900
3901         * platform/win/CursorWin.cpp: (WebCore::Cursor::Cursor):
3902         Use OwnPtr for a few HBITMAP objects as a test case.
3903
3904         * platform/win/COMPtr.h: (COMPtr::COMPtr): Fix so that we can use
3905         Query with other COMPtr. Before this would not compile if it was
3906         ever instantiated.
3907
3908 2007-10-02  Steve Falkenburg  <sfalken@apple.com>
3909
3910         Reviewed by Adam, Ada.
3911
3912         Fix leak of GDI handle when we call MLANG.
3913
3914         * platform/win/FontCacheWin.cpp:
3915         (WebCore::FontCache::getFontDataForCharacters):
3916
3917 2007-10-02  Lars Knoll  <lars@trolltech.com>
3918
3919         Reviewed by Olliej.
3920
3921         The cookies() method should only return the value of the
3922         cookie, not additional info such as the expiration date.
3923
3924         * platform/qt/CookieJarQt.cpp:
3925         (WebCore::cookies):
3926
3927 2007-10-01  Lars Knoll  <lars@trolltech.com>
3928
3929         Reviewed by Eric.
3930
3931         Fix a wrong extension mapping in the MIMETypeRegistry and identify about: url's as frames in the FrameLoaderClient.
3932
3933         * platform/qt/MIMETypeRegistryQt.cpp:
3934         (WebCore::):
3935
3936 2007-10-01  Justin Garcia  <justin.garcia@apple.com>
3937
3938         Reviewed by Harrison.
3939
3940         <rdar://problem/5516183> REGRESSION: Creating a ToDo on an incoming message fails
3941         
3942         Rolling out r25721.
3943
3944         * editing/ReplaceSelectionCommand.cpp:
3945         (WebCore::ReplaceSelectionCommand::doApply):
3946         * editing/ReplaceSelectionCommand.h:
3947
3948 2007-10-01  Beth Dakin  <bdakin@apple.com>
3949
3950         Reviewed by Adam.
3951
3952         Fix for <rdar://problem/5515426> NetNewsWire 3 crashes at launch in 
3953         WebCore::FrameView::layout (other repro scenarios too)
3954
3955         The new call to updateWidget() that we added to FrameView::layout() 
3956         can destroy the RenderPartObject. And so we were crashing on the 
3957         subsequent call to updateWidgetPosition(). This patch fixes that by 
3958         checking to make sure the RenderPartObject is still in the HashSet 
3959         after updateWidget(). Because m_widgetUpdateSet can be modified 
3960         during the call to updateWidget(), we need it to be intact while we 
3961         are iterating through the copy, so we cannot use the HashSet::swap 
3962         call we were using before. This patch instead uses a Vector to 
3963         iterate through the HashSet data and calls clear() on the HashSet 
3964         at the end.
3965
3966         * page/FrameView.cpp:
3967         (WebCore::FrameView::layout):
3968
3969 2007-10-01  Eli Fidler  <eli@staikos.net>
3970
3971         Reviewed by George Staikos.
3972
3973         Switch bogus assert to a conditional and return.  This case happens
3974         when a widget is hidden.
3975
3976         * platform/qt/WidgetQt.cpp:
3977         (WebCore::Widget::invalidateRect):
3978
3979 2007-09-30  Darin Adler  <darin@apple.com>
3980
3981         Reviewed by Maciej.
3982
3983         - tone down the assertion I asked Harrison to include in his fix for
3984           <rdar://problem/5511128>; it's OK to re-ref and deref the document
3985           as long as you do so after the children are done being destroyed
3986
3987         No effect on release builds. Assertion change only.
3988
3989         Besides the changes listed below, renamed m_hasDeleted flag to
3990         m_deletionHasBegun.
3991
3992         * dom/ContainerNode.cpp: (WebCore::ContainerNode::removeAllChildren):
3993         Added code to set the m_deletionHasBegun flag and some assertions
3994         that test its state.
3995
3996         * dom/Document.h: Removed m_hasDeleted -- we now use m_deletionHasBegun
3997         in the base class TreeShared.
3998         * dom/Document.cpp:
3999         (WebCore::Document::Document): Removed initialization of m_hasDeleted.
4000         (WebCore::Document::removedLastRef): Added code to clear
4001         m_inRemovedLastRefFunction if we end up deciding not to delete this.
4002
4003         * platform/Shared.h:
4004         (WebCore::TreeShared::TreeShared): Added m_deletionHasBegun in addition to
4005         m_inRemovedLastRefFunction (formerly named m_hasRemovedLastRef).
4006         (WebCore::TreeShared::~TreeShared): Assert that m_deletionHasBegun is true.
4007         (WebCore::TreeShared::ref): Assert neither flag is true.
4008         (WebCore::TreeShared::deref): Ditto.
4009         (WebCore::TreeShared::hasOneRef): Ditto.
4010         (WebCore::TreeShared::removedLastRef): Made private. Added code to
4011         set m_hasDeleted to true. Also removed cast; since this class template
4012         has a virtual destructor, we don't need to cast before calling delete.
4013
4014 2007-09-29  Holger Hans Peter Freyther  <zecke@selfish.org>
4015
4016         Reviewed by Mark.
4017
4018         -Fix http://bugs.webkit.org/show_bug.cgi?id=13226.
4019         Remove Bakefiles from svn.
4020
4021         * Projects/gdk/webcore-gdk.bkl: Removed.
4022         * Projects/wx/webcore-wx.bkl: Removed.
4023         * WebCoreSources.bkl: Removed.
4024         * webcore-base.bkl: Removed.
4025
4026 2007-09-28  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
4027
4028         Reviewed by Mark.
4029
4030         -Fix http://bugs.webkit.org/show_bug.cgi?id=15254.
4031
4032         * platform/gtk/RenderThemeGtk.cpp:
4033         (WebCore::RenderThemeGtk::determineState):
4034             - Apply state if control is readonly
4035             - Added state GTK_STATE_SELECTED of object is checked
4036             - Apply GTK_STATE_ACTIVE if RenderObject isFocused()
4037         (WebCore::RenderThemeGtk::paintTextField):
4038         (WebCore::RenderThemeGtk::gtkEntry):
4039             - Implemented theme-aware text field based on gtk/gtkentry.c implementation
4040
4041 2007-09-29  Holger Hans Peter Freyther  <zecke@selfish.org>
4042
4043         Reviewed by Eric.
4044
4045         Build fix for Mac Gtk+ and Qt builds. In revision 25798 changing
4046         XSLTProcessor.cpp was forgotten.
4047
4048         * xml/XSLTProcessor.cpp: Use PLATFORM(MAC) instead of PLATFORM(DARWIN)
4049
4050 2007-09-29  Adam Roben  <aroben@apple.com>
4051
4052         Fix <rdar://4965715> Horizontal scrollwheel scrolling moves in opposite direction on Vista
4053
4054         Reviewed by Sam.
4055
4056         No regression test possible.
4057
4058         * platform/win/WheelEventWin.cpp:
4059         (WebCore::PlatformWheelEvent::PlatformWheelEvent): Use a negative
4060         delta when scrolling right to match EventHandler's expectations (which
4061         are based on AppKit).
4062
4063 2007-09-28  Kevin Decker  <kdecker@apple.com>
4064
4065         Reviewed by Mark Rowe
4066
4067         Build fix for Mac Gtk+ and Qt builds.
4068         
4069         * xml/XSLStyleSheet.cpp: Use PLATFORM(MAC) instead of PLATFORM(DARWIN)
4070         * xml/XSLTExtensions.cpp: Ditto.
4071
4072 2007-09-28  David Harrison  <harrison@apple.com>
4073
4074         Reviewed by Darin Adler.
4075
4076         <rdar://problem/5511128> Crash closing or reloading this SVG
4077
4078         * dom/ContainerNode.cpp:
4079         (WebCore::dispatchChildInsertionEvents):
4080         (WebCore::dispatchChildRemovalEvents):
4081         Use DocPtr instead of RefPtr, since these events are dispatched
4082         when the Document is being being torn down by removedLastRef().
4083
4084         * dom/DocPtr.h:
4085         (WebCore::DocPtr::DocPtr):
4086         Fix longstanding typo in template so that the DocPtr(DocPtr) constructor can be used.
4087
4088         * dom/Document.cpp:
4089         (WebCore::Document::Document):
4090         (WebCore::Document::removedLastRef):
4091         * dom/Document.h:
4092         (WebCore::Document::selfOnlyRef):
4093         (WebCore::Document::selfOnlyDeref):
4094         * platform/Shared.h:
4095         (WebCore::Shared::Shared):
4096         (WebCore::Shared::ref):
4097         (WebCore::Shared::deref):
4098         (WebCore::Shared::hasOneRef):
4099         (WebCore::TreeShared::TreeShared):
4100         (WebCore::TreeShared::ref):
4101         (WebCore::TreeShared::deref):
4102         (WebCore::TreeShared::hasOneRef):
4103         (WebCore::TreeShared::refCount):
4104         Add debug-only checks for a document being ref-counted while being deleted.
4105
4106 2007-09-27  Kevin McCullough  <kmccullough@apple.com>
4107
4108         Reviewed by Darin.
4109
4110         - <rdar://5261371> Nothing downloaded when exporting bookmarks from iGoogle web history
4111
4112         Function for use by WebKit. Currently used only on Windows.
4113
4114         * platform/network/ResourceResponse.cpp:
4115         (WebCore::ResourceResponse::isAttachment):
4116         * platform/network/ResourceResponse.h:
4117
4118 2007-09-27  Mitz Pettel  <mitz@webkit.org>
4119
4120         Reviewed by Dave Hyatt.
4121
4122         - fix http://bugs.webkit.org/show_bug.cgi?id=15262
4123           REGRESSION: Margin-top:18px is pushing down the multiple select list box outside the div.
4124
4125         Reflected in existing tests.
4126
4127         * css/html4.css: Changed listboxes to use border-box sizing, to match Firefox,
4128         WinIE and apparently also Safari 2.
4129
4130 2007-09-27  Kevin Decker  <kdecker@apple.com>
4131
4132         <rdar://problem/5493093>
4133     
4134         Rubber stamped by John Sullivan.
4135         
4136         * WebCore.order: Added.
4137         * WebCore.xcodeproj/project.pbxproj:  We're changing from using an order file built by another team to using one
4138          we actually check into our project repository. Linker settings for Symbol Ordering Flags have been updated
4139          accordingly.
4140          
4141 2007-09-27  Antti Koivisto  <antti@apple.com>
4142
4143         Reviewed by Geoff.
4144         
4145         Fix for <rdar://problem/5499125>
4146         REGRESSION (r21367): After launching Kidzui beta, a webview frame fails to appear in its main window
4147         
4148         If window object properties were modified when it had initial empty document (synchronously after 
4149         window.open() for example) those modifications were lost when the real document was switched in.
4150         
4151         Match Firefox behavior where window properties are not cleared if the inital document and the loaded one
4152         have matching security domains.
4153
4154         Tests: fast/dom/Window/window-early-properties.html
4155                http/tests/security/window-properties-clear-domain.html
4156                http/tests/security/window-properties-clear-port.html
4157                http/tests/security/window-properties-pass.html
4158
4159         * WebCore.exp:
4160         * loader/FrameLoader.cpp:
4161         (WebCore::FrameLoader::FrameLoader):
4162         (WebCore::FrameLoader::init):
4163         (WebCore::FrameLoader::clear):
4164         (WebCore::FrameLoader::isSecureTransition):
4165         (WebCore::FrameLoader::begin):
4166         * loader/FrameLoader.h:
4167         If we are transitioning from initial empty document to the final one, do a domain security check
4168         between old security policy URL and new URL. If that passes don't clear script proxy and script objects.
4169         
4170         * bindings/js/kjs_proxy.cpp:
4171         (WebCore::KJSProxy::updateDocumentWrapper):
4172         * bindings/js/kjs_proxy.h:
4173         * page/Frame.cpp:
4174         (WebCore::Frame::setDocument):
4175         Since we don't always clear window properties anymore, we need to update the document property to point to
4176         the newly created one. 
4177         
4178 2007-09-27  Kevin Decker  <kdecker@apple.com>
4179